ソースを参照

通知公告

master
zhichao lei 3年前
コミット
96eefa843d
5個のファイルの変更998行の追加629行の削除
  1. +1
    -1
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/components/learun-mpui/learun-ui-ali/title.vue
  2. +1
    -1
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/components/learun-mpui/learun-ui-mp/title.vue
  3. +7
    -0
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages.json
  4. +286
    -0
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/LR_OAModule/list.vue
  5. +703
    -627
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/home.vue

+ 1
- 1
Learun.Framework.Ultimate V7/LearunApp-2.2.0/components/learun-mpui/learun-ui-ali/title.vue ファイルの表示

@@ -1,5 +1,5 @@
<template>
<view v-if="type !== 'default'" :class="className" :style="style" class="cu-bar bg-white cu-title">
<view @click="$emit('click', $event)" v-if="type !== 'default'" :class="className" :style="style" class="cu-bar bg-white cu-title">
<!-- 下划线标题(普通/变色) -->
<view v-if="type === 'underline' || type === 'colorfulUnderline'" class="action border-title">
<text :class="['text-' + color, blod ? 'text-blod' : '']" class="text-xl"><slot></slot></text>


+ 1
- 1
Learun.Framework.Ultimate V7/LearunApp-2.2.0/components/learun-mpui/learun-ui-mp/title.vue ファイルの表示

@@ -31,7 +31,7 @@
</view>

<!-- 普通标题(圆点/长圆点) -->
<view v-else :class="[border ? 'solid-bottom' : '']" class="cu-bar bg-white cu-title">
<view @click="$emit('click', $event)" v-else :class="[border ? 'solid-bottom' : '']" class="cu-bar bg-white cu-title">
<view class="action" style="vertical-align: middle;">
<text
:class="[subColor ? 'text-' + subColor : '', long ? 'cuIcon-titles' : 'cuIcon-title']"


+ 7
- 0
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages.json ファイルの表示

@@ -934,6 +934,13 @@
"style": {
"navigationBarTitleText": "扫码入校记录"
}
},
//通知公告
{
"path": "pages/LR_OAModule/list",
"style": {
"navigationBarTitleText": "通知公告"
}
}



+ 286
- 0
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/LR_OAModule/list.vue ファイルの表示

@@ -0,0 +1,286 @@
<template>
  <view class="page">
    <!-- 主列表页 -->
    <view :class="sideOpen ? 'show' : ''" class="mainpage" style="padding-top: 80rpx;">
      <!-- 顶部条目/分页信息栏 -->
      <l-customlist-banner @buttonClick="sideOpen = true">{{ tips }}</l-customlist-banner>
  
      <!-- 滚动列表,跨端支持上拉/下拉 -->
      <l-scroll-list v-if="ready" @pullDown="pullDown" @toBottom="fetchList()" ref="list">
        <l-customlist :tips="loadState" showTips>
          <!-- 单条记录 -->
          <view class="customlist-item" v-for="item of list" :key="item.F_NewsId">
  
            <view class="customlist-item-field">
              <text class="customlist-item-field-title">公告标题:</text>
              {{ displayListItem(item, 'F_FullHead') }}
            </view>
  
            <view class="customlist-item-field">
              <text class="customlist-item-field-title">所属类别:</text>
              {{ displayListItem(item, 'F_Category') }}
            </view>
  
            <view class="customlist-item-field">
              <text class="customlist-item-field-title">发布时间:</text>
              {{ displayListItem(item, 'F_CreateDate') }}
            </view>
  
            <view class="customlist-item-field">
              <text class="customlist-item-field-title">信息来源:</text>
              {{ displayListItem(item, 'F_SourceName') }}
            </view>
  
           
  
  
            <l-customlist-action @view="action('view', item)" />
          </view>
        </l-customlist>
      </l-scroll-list>
    </view>
  
    <!-- 关闭侧边抽屉按钮 -->
    <view @click="sideOpen = false" :class="sideOpen ? 'show' : ''" class="sideclose">
      <l-icon type="pullright" color="blue" />
    </view>
  
    <!-- 侧边栏,用于设置查询条件 -->
    <scroll-view :class="sideOpen ? 'show' : ''" class="sidepage" scroll-y>
      <view v-if="ready" class="padding">
  
  
        <!-- 重置查询条件按钮 -->
        <view class="padding-tb">
          <l-button @click="reset" line="orange" class="block" block>重置查询条件</l-button>
        </view>
      </view>
    </scroll-view>
  
    <l-customlist-add v-if="!sideOpen" @click="action('add')" />
  
  </view>
</template>
  
  
<script>
/*
 * 版 本 Learun-ADMS V7.0.3 力软敏捷开发框架(http://www.learun.cn)
 * Copyright (c) 2013-2021 上海力软信息技术有限公司
 * 创建人:超级管理员
 * 日  期:2021-02-20 11:28
 * 描  述:通知公告
 */
  
/**
 * 本段代码由移动端代码生成器输出,移动端须 2.2.0 版本及以上可以使用
 * 请在移动端 /pages.json 中的 pages 字段中添加一条记录:
 * { "path": "pages/LR_Desktop/Notice/list", "style": { "navigationBarTitleText": "表单列表页" } }
 * 
 * (navigationBarTitleText 字段为本页面的标题文本,可以修改)
 * (必须自行操作该步骤,力软代码生成器不会自动帮您修改 /pages.json 文件)
 */
import moment from 'moment'
import get from 'lodash/get'
import set from 'lodash/set'
import pickBy from 'lodash/pickBy'
import mapValues from 'lodash/mapValues'
  
export default {
  data() {
    return {
      // 数据项的数据类型、结构
      scheme: {
        F_FullHead: { type: 'text' },
        F_Category: { type: 'text' },
        F_CreateDate: { type: 'datetime', dateformat: '0' },
        F_SourceName: { type: 'text' },
        F_NewsContent: { type: 'texteditor' },
      },
  
      // 查询条件
      searchData: {},
      defaultQueryData: {},
      queryData: {
      },
  
      // 数据源
      dataSource: {
      },
  
      // 页面相关参数
      ready: false,
      tips: '加载中...',
      loadState: '向下翻以加载更多',
      sideOpen: false,
  
      // 列表与分页信息
      page: 1,
      total: 2,
      list: []
    }
  },
  
  async onLoad() {
    await this.init()
  },
  onUnload() {
    this.OFF('LR_DesktopNotice-list-change')
  },
  
  methods: {
    // 页面初始化
    async init() {
      this.ON('LR_DesktopNotice-list-change', this.refreshList)
  
      // 拉取加载列表和数据源
      await Promise.all([
  
  
        () => {}
      ])
      await this.fetchList()
      // 初始化查询条件
      this.defaultQueryData = this.COPY(this.queryData)
      this.ready = true
    },
  
    // 拉取列表
    async fetchList() {
      if (this.page > this.total) { return }
  
      const result = await this.HTTP_GET(
        '/learun/news/list?F_CategoryId=',
        {
          // 这里 sidx 表示排序字段,sord 表示排序方式(DESC=降序,ASC=升序)
          // 代码生成器生成时默认按照主键排序,您可以修改成按创建时间的字段降序
          pagination: { rows: 10, page: this.page, sidx: 'F_NewsId', sord: 'DESC' },
          queryJson: JSON.stringify(this.searchData)
        },
        '加载数据时出错'
      )
  
      if (!result) { return }
  
      this.total = result.total
      this.page = result.page + 1
      this.list = this.list.concat(result.rows)
  
      this.tips = `已加载 ${Math.min(result.page, result.total)} / ${result.total} 页,共 ${result.records} 项`
      this.loadState = result.page >= result.total ? '已加载所有项目' : '向下翻以加载更多'
    },
  
    // 刷新清空列表
    async refreshList() {
      this.page = 1
      this.total = 2
      this.list = []
  
      await this.fetchList()
    },
  
    // 列表下拉
    pullDown() {
      this.refreshList().then(() => {
        this.$refs.list.stopPullDown()
      })
    },
  
    // 设置搜索条件
    async searchChange() {
      const result = {}
  
      // 将其他查询项添加到查询 JSON 中
      const queryObj = pickBy(this.queryData, t => (Array.isArray(t) ? t.length > 0 : t))
      Object.assign(result, mapValues(queryObj, t => (Array.isArray(t) ? t.join(',') : t)))
  
      this.searchData = result
      await this.refreshList()
    },
  
    // 点击「清空查询条件」按钮
    reset() {
      this.queryData = this.COPY(this.defaultQueryData)
      this.searchChange()
    },
  
    // 点击「编辑」、「查看」、「添加」、「删除」按钮
    async action(type, id = '') {
      switch (type) {
        case 'view':
var param={
f_category:id.F_Category,
f_content:id.F_NewsContent,
f_createdate:id.F_CreateDate,
f_createusername:id.F_CreateUserName,
f_id:id.F_NewsId,
f_time:id.F_ReleaseTime,
f_title:'['+id.F_Category+']'+id.F_FullHead


}
          this.NAV_TO(`/pages/home/notice`,param,true)
          return
  
        case 'add':
          this.NAV_TO('./single?type=create')
          return
  
        case 'edit':
          this.NAV_TO(`./single?type=edit&id=${id}`)
          return
  
        case 'delete':
          if (!(await this.CONFIRM('删除项目', '确定要删除该项吗?', true))) {
            return
          }
  
          this.HTTP_POST('/LR_Desktop/Notice/delete', id, '删除失败').then(success => {
            if(!success) { return }
            this.TOAST('删除成功', 'success')
            this.refreshList()
          })
          return
  
        default:
          return
      }
    },
  
    // 显示列表中的标题项
    displayListItem(item, field) {
      const fieldItem = this.scheme[field]
      const value = item[field]
  
      switch (fieldItem.type) {
        case 'currentInfo':
        case 'organize':
          return fieldItem.dataType === 'time' ? value : get(this.GET_GLOBAL(fieldItem.dataType), `${value}.name`, '')
  
        case 'radio':
        case 'select':
          const selectItem = this.dataSource[field].find(t => t.value === String(value))
          return get(selectItem, 'text', '')
  
        case 'checkbox':
          if (!value || value.split(',').length <= 0) { return '' }
          const checkboxItems = value.split(',')
          return this.dataSource[field].filter(t => checkboxItems.includes(t.value)).map(t => t.text).join(',')
  
        case 'datetime':
          if (!value) { return '' }
          return moment(value).format(Number(fieldItem.dateformat) === 0 ? 'YYYY年 M月 D日' : 'YYYY-MM-DD HH:mm')
  
        default: return value === null || value === undefined ? '' : value
      }
    }
  
  }
}
</script>
  
  
<style lang="less" scoped>
@import '~@/common/css/sidepage.less';
@import '~@/common/css/customlist.less';
</style>

+ 703
- 627
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/home.vue
ファイル差分が大きすぎるため省略します
ファイルの表示


読み込み中…
キャンセル
保存