Просмотр исходного кода

首页改版,首页消息bug修复,体系运行记录盒通用页面新增事务说明字段

cfort 3 лет назад
Родитель
Сommit
217aa137a9

+ 12 - 0
src/api/platform/message/innerMessage.js

@@ -119,3 +119,15 @@ export function getMsgList(params) {
     data: params
   })
 }
+
+/**
+ * 获取我的未读消息列表,带参数
+ * @param {*} params
+ */
+ export function getMyMsgList(params) {
+  return request({
+    url: MSG_URL() + '/msg/innerMessage/indexMsgList',
+    method: 'post',
+    data: params
+  })
+}

+ 215 - 175
src/business/platform/cat/type/tree.vue

@@ -1,185 +1,225 @@
 <template>
-  <div class="jbd-tree">
-    <ibps-tree :title="title" :width="width" :height="height" :data="treeData" :location="location"
-      :options="treeOptions" :contextmenus="hasContextmenu ? treeContextmenus : []" :position="position"
-      @action-event="handleTreeAction" @node-click="handleNodeClick" @expand-collapse="handleExpandCollapse"
-      ref="treeIndex" />
-    <!-- 分类编辑 -->
-    <type-edit :id="editId" :parent-data="typeData" :is-private="isPrivate" :category-key="categoryKey"
-      :visible="typeFormVisible" :title="editTitle" @callback="loadTreeData"
-      @close="visible => typeFormVisible = visible" />
-    <type-move :id="editId" :parent-data="typeData" :is-private="isPrivate" :category-key="categoryKey" :data="treeData"
-      :visible="moveFormVisible" :title="editTitle" @callback="loadTreeData"
-      @close="visible => moveFormVisible = visible" />
-    <!-- 分类排序 -->
-    <type-sort :id="editId" :visible="sortFormVisible" title="分类排序" @callback="loadTreeData"
-      @close="visible => sortFormVisible = visible" />
-  </div>
+    <div class="jbd-tree">
+        <ibps-tree
+            :title="title"
+            :width="width"
+            :height="height"
+            :data="treeData"
+            :location="location"
+            :options="treeOptions"
+            :contextmenus="hasContextmenu ? treeContextmenus : []"
+            :position="position"
+            :hasPermission="hasPermission"
+            @action-event="handleTreeAction"
+            @node-click="handleNodeClick"
+            @expand-collapse="handleExpandCollapse"
+            ref="treeIndex"
+        />
+        <!-- 分类编辑 -->
+        <type-edit
+            :id="editId"
+            :parent-data="typeData"
+            :is-private="isPrivate"
+            :category-key="categoryKey"
+            :visible="typeFormVisible"
+            :title="editTitle"
+            @callback="loadTreeData"
+            @close="(visible) => (typeFormVisible = visible)"
+        />
+        <type-move
+            :id="editId"
+            :parent-data="typeData"
+            :is-private="isPrivate"
+            :category-key="categoryKey"
+            :data="treeData"
+            :visible="moveFormVisible"
+            :title="editTitle"
+            @callback="loadTreeData"
+            @close="(visible) => (moveFormVisible = visible)"
+        />
+        <!-- 分类排序 -->
+        <type-sort
+            :id="editId"
+            :visible="sortFormVisible"
+            title="分类排序"
+            @callback="loadTreeData"
+            @close="(visible) => (sortFormVisible = visible)"
+        />
+    </div>
 </template>
 
 <script>
-import { findTreeData, remove } from '@/api/platform/cat/type'
-import ActionUtils from '@/utils/action'
+    import { findTreeData, remove } from '@/api/platform/cat/type'
+    import ActionUtils from '@/utils/action'
 
-import TypeEdit from '@/views/platform/cat/type/edit'
-import TypeSort from '@/views/platform/cat/type/sort'
-import TypeMove from '@/views/platform/cat/type/move'
-export default {
-  components: {
-    TypeEdit,
-    TypeSort,
-    TypeMove
-  },
-  props: {
-    title: {
-      type: String
-    },
-    location: {
-      type: String,
-      default: 'initial'
-    },
-    categoryKey: {
-      type: String,
-      required: true
-    },
-    hasContextmenu: { // 是否有右键菜单
-      type: Boolean,
-      default: false
-    },
-    width: {
-      type: [String, Number],
-      default: 200
-    },
-    height: {
-      type: [String, Number],
-      default: 500
-    },
-    position: {
-      type: String,
-      default: 'west'
-    }
-  },
-  data() {
-    return {
-      typeFormVisible: false,
-      sortFormVisible: false,
-      moveFormVisible: false,
-      editId: '', // 编辑dialog需要使用
-      editTitle: '编辑分类',
-
-      // 树配置
-      treeOptions: { 'rootPId': '-1' },
-      treeContextmenus: [
-        { icon: 'add', label: '添加分类', value: 'add' },
-        { icon: 'edit', label: '编辑分类', value: 'edit', rights: ['node'] },
-        { icon: 'delete', label: '删除分类', value: 'remove', rights: ['node'] },
-        { type: 'divided' },
-        { icon: 'sort', label: '分类排序', value: 'sort' },
-        { icon: 'arrows-v', label: '移动节点', value: 'moveNode', rights: ['node'] }
-      ],
-      treeData: [],
-
-      isPrivate: false,
-      typeData: {} // 记录分类信息
-    }
-  },
-  created() {
-    this.loadTreeData()
-  },
-  methods: {
-    loadTreeData() {
-      findTreeData({ 'categoryKey': this.categoryKey }).then(response => {
-        this.treeData = response.data || []
-        this.$emit('treeData', response.data)
-      })
-    },
-    handleTreeAction(command, position, selection, data) {
-      switch (command) {
-        case 'refresh':// 查询
-          this.loadTreeData()
-          break
-        case 'add':// 添加
-          this.typeData = data // { 'name': data.name, 'id': data.id }
-          this.isPrivate = false
-          this.editTitle = '添加分类'
-          this.handTreeEdit()
-          break
-        case 'addPrivate':// 添加
-          this.typeData = data // { 'name': data.name, 'id': data.id }
-          this.isPrivate = true
-          this.editTitle = '添加私有分类'
-          this.handTreeEdit()
-          break
-        case 'edit':// 编辑
-          this.typeData = data
-          this.isPrivate = true
-          this.editTitle = '编辑分类'
-          this.handTreeEdit(data.id)
-          break
-        case 'moveNode':// 移动节点
-          this.typeData = data
-          this.isPrivate = true
-          this.editTitle = '移动节点'
-          this.handTreeMove(data.id)
-          break
-        case 'remove':// 删除
-          this.handleTreeRemove(data.id)
-          break
-        case 'export':// 导出
-          this.handTreeExport(data.id, data.name)
-          break
-        case 'sort':// 排序
-          this.handTreeSort(data)
-          break
-      }
-    },
-    handleNodeClick(data) {
-      this.$emit('node-click', data.parentId === '-1' ? '' : data.id, data, this.treeData)
-    },
-    handleExpandCollapse(isExpand) {
-      this.$emit('expand-collapse', isExpand)
-    },
-    handTreeEdit(editId) {
-      this.editId = editId || ''
-      this.typeFormVisible = true
-    },
-    handTreeMove(editId) {
-      this.editId = editId || ''
-      this.moveFormVisible = true
-    },
-    handTreeSort(data) {
-      const children = data.children
-      if (children && children.length > 0) {
-        if (children.length === 1) {
-          ActionUtils.warning('只有一个节点无需排序')
-        } else {
-          this.editId = data.id || ''
-          this.sortFormVisible = true
+    import TypeEdit from '@/views/platform/cat/type/edit'
+    import TypeSort from '@/views/platform/cat/type/sort'
+    import TypeMove from '@/views/platform/cat/type/move'
+    export default {
+        components: {
+            TypeEdit,
+            TypeSort,
+            TypeMove
+        },
+        props: {
+            title: {
+                type: String
+            },
+            location: {
+                type: String,
+                default: 'initial'
+            },
+            categoryKey: {
+                type: String,
+                required: true
+            },
+            hasContextmenu: {
+                // 是否有右键菜单
+                type: Boolean,
+                default: false
+            },
+            width: {
+                type: [String, Number],
+                default: 200
+            },
+            height: {
+                type: [String, Number],
+                default: 500
+            },
+            position: {
+                type: String,
+                default: 'west'
+            },
+            hasPermission: {
+                // 是否有权限控制
+                type: Boolean,
+                default: false
+            }
+        },
+        data() {
+            return {
+                typeFormVisible: false,
+                sortFormVisible: false,
+                moveFormVisible: false,
+                editId: '', // 编辑dialog需要使用
+                editTitle: '编辑分类',
+                // 树配置
+                treeOptions: { rootPId: '-1' },
+                treeContextmenus: [
+                    { icon: 'add', label: '添加分类', value: 'add' },
+                    { icon: 'edit', label: '编辑分类', value: 'edit', rights: ['node'] },
+                    { icon: 'delete', label: '删除分类', value: 'remove', rights: ['node'] },
+                    { type: 'divided' },
+                    { icon: 'sort', label: '分类排序', value: 'sort' },
+                    { icon: 'arrows-v', label: '移动节点', value: 'moveNode', rights: ['node'] }
+                ],
+                treeData: [],
+                isPrivate: false,
+                typeData: {} // 记录分类信息
+            }
+        },
+        created() {
+            this.loadTreeData()
+        },
+        methods: {
+            loadTreeData() {
+                findTreeData({ categoryKey: this.categoryKey }).then(response => {
+                    this.treeData = response.data || []
+                    if (this.hasPermission) {
+                        this.treeData = this.treeData.filter(i => i.isShow !== '1')
+                    }
+                    this.$emit('treeData', response.data)
+                })
+            },
+            handleTreeAction(command, position, selection, data) {
+                switch (command) {
+                    case 'refresh': // 查询
+                        this.loadTreeData()
+                        break
+                    case 'add': // 添加
+                        this.typeData = data // { 'name': data.name, 'id': data.id }
+                        this.isPrivate = false
+                        this.editTitle = '添加分类'
+                        this.handTreeEdit()
+                        break
+                    case 'addPrivate': // 添加
+                        this.typeData = data // { 'name': data.name, 'id': data.id }
+                        this.isPrivate = true
+                        this.editTitle = '添加私有分类'
+                        this.handTreeEdit()
+                        break
+                    case 'edit': // 编辑
+                        this.typeData = data
+                        this.isPrivate = true
+                        this.editTitle = '编辑分类'
+                        this.handTreeEdit(data.id)
+                        break
+                    case 'moveNode': // 移动节点
+                        this.typeData = data
+                        this.isPrivate = true
+                        this.editTitle = '移动节点'
+                        this.handTreeMove(data.id)
+                        break
+                    case 'remove': // 删除
+                        this.handleTreeRemove(data.id)
+                        break
+                    case 'export': // 导出
+                        this.handTreeExport(data.id, data.name)
+                        break
+                    case 'sort': // 排序
+                        this.handTreeSort(data)
+                        break
+                }
+            },
+            handleNodeClick(data) {
+                this.$emit('node-click', data.parentId === '-1' ? '' : data.id, data)
+            },
+            handleExpandCollapse(isExpand) {
+                this.$emit('expand-collapse', isExpand)
+            },
+            handTreeEdit(editId) {
+                this.editId = editId || ''
+                this.typeFormVisible = true
+            },
+            handTreeMove(editId) {
+                this.editId = editId || ''
+                this.moveFormVisible = true
+            },
+            handTreeSort(data) {
+                const children = data.children
+                if (children && children.length > 0) {
+                    if (children.length === 1) {
+                        ActionUtils.warning('只有一个节点无需排序')
+                    } else {
+                        this.editId = data.id || ''
+                        this.sortFormVisible = true
+                    }
+                } else {
+                    ActionUtils.warning('无子节点排序')
+                }
+            },
+            handleTreeRemove(ids) {
+                ActionUtils.removeRecord(ids).then((ids) => {
+                    remove({ typeId: ids })
+                        .then((response) => {
+                            ActionUtils.removeSuccessMessage()
+                            this.loadTreeData()
+                        })
+                        .catch((err) => {
+                            console.error(err)
+                        })
+                }).catch(() => {})
+            },
+            showTree() {
+                this.$nextTick(() => {
+                    this.$refs.treeIndex.handleExpandCollapse()
+                })
+            }
         }
-      } else {
-        ActionUtils.warning('无子节点排序')
-      }
-    },
-    handleTreeRemove(ids) {
-      ActionUtils.removeRecord(ids).then((ids) => {
-        remove({ typeId: ids }).then(response => {
-          ActionUtils.removeSuccessMessage()
-          this.loadTreeData()
-        }).catch((err) => {
-          console.error(err)
-        })
-      }).catch(() => { })
-    },
-    showTree() {
-      this.$nextTick(() => {
-        this.$refs.treeIndex.handleExpandCollapse();
-      })
     }
-  }
-}
 </script>
 <style>
-/* .jbd-tree  .el-tree > .el-tree-node > .el-tree-node__content {
-    display: none;
-  } */
+    /* .jbd-tree .el-tree > .el-tree-node > .el-tree-node__content {
+        display: none;
+    } */
 </style>

+ 201 - 228
src/layout/header-aside/components/header-message/index.vue

@@ -1,241 +1,214 @@
 <template>
-  <div class="ibps-mr-5">
-    <el-tooltip
-      v-if="messageCount === 0"
-      :content="tooltipContent"
-      effect="dark"
-      placement="bottom"
-    >
-      <el-button
-        class="ibps-ml-0 ibps-mr btn-text can-hover"
-        type="text"
-      >
-        <el-badge
-          :max="99"
-          :value="messageCount"
+    <div class="ibps-mr-5">
+        <el-tooltip
+            v-if="messageCount === 0"
+            :content="tooltipContent"
+            effect="dark"
+            placement="bottom"
         >
-          <ibps-icon
-            name="bell-o"
-            size="16"
-          />
-        </el-badge>
-      </el-button>
-    </el-tooltip>
-    <el-popover
-      v-else
-      placement="bottom-end"
-      width="350"
-      trigger="click"
-      popper-class="header-message-popper"
-    >
-
-      <el-button
-        slot="reference"
-        class="ibps-ml-0 ibps-mr btn-text can-hover"
-        type="text"
-      >
-        <el-badge
-          :max="99"
-          :value="messageCount"
+            <el-button class="ibps-ml-0 ibps-mr btn-text can-hover" type="text">
+                <el-badge :max="99" :value="messageCount">
+                    <ibps-icon name="bell-o" size="16" />
+                </el-badge>
+            </el-button>
+        </el-tooltip>
+        <el-popover
+            v-else
+            placement="bottom-end"
+            width="350"
+            trigger="click"
+            popper-class="header-message-popper"
         >
-          <ibps-icon
-            name="bell-o"
-            size="16"
-          />
-        </el-badge>
-      </el-button>
-
-      <el-card body-style="padding:0;">
-        <div slot="header" style="font-size: 20px; font-weight: 600;">
-          {{ $t('layout.header-aside.header-message.message-count',{messageCount:messageCount}) }}
-        </div>
-        <div style="height:250px;">
-          <el-scrollbar
-            style="height: 100%;width:100%;"
-            wrap-class="ibps-scrollbar-wrapper "
-          >
-            <ibps-list class="ibps-p-10">
-              <ibps-list-item
-                v-for="(message,index) in messageList"
-                :key="index"
-                @click.native="handelInteriorClick(message)"
-              >
-                <ibps-list-item-meta
-                  :title="message.subject"
-                  :description="message.ownerName"
-                >
-                  <el-avatar
-                    slot="avatar"
-                    :icon="message.messageType==='bulletin'?'ibps-icon-bullhorn':'ibps-icon-user'"
-                    shape="circle"
-                    style="background-color: #87d068"
-                  />
-                </ibps-list-item-meta>
-                <div slot="extra">
-                  {{ message.createTime|formatRelativeTime({'year':'yyyy-MM-dd'}) }}
+            <el-button
+                slot="reference"
+                class="ibps-ml-0 ibps-mr btn-text can-hover"
+                type="text"
+            >
+                <el-badge :max="99" :value="messageCount">
+                    <ibps-icon name="bell-o" size="16" />
+                </el-badge>
+            </el-button>
+            <el-card body-style="padding:0;">
+                <div slot="header" style="font-size: 20px; font-weight: 600;">
+                    {{ $t('layout.header-aside.header-message.message-count', { messageCount: messageCount }) }}
+                </div>
+                <div style="height: 250px;">
+                    <el-scrollbar style="height: 100%; width: 100%;" wrap-class="ibps-scrollbar-wrapper ">
+                        <ibps-list class="ibps-p-10">
+                            <ibps-list-item
+                                v-for="(message, index) in messageList"
+                                :key="index"
+                                @click.native="handelInteriorClick(message)"
+                            >
+                                <ibps-list-item-meta :title="message.subject" :description="message.ownerName">
+                                    <el-avatar
+                                        slot="avatar"
+                                        :icon="message.messageType === 'bulletin' ? 'ibps-icon-bullhorn' : 'ibps-icon-user'"
+                                        shape="circle"
+                                        style="background-color: #87d068;"
+                                    />
+                                </ibps-list-item-meta>
+                                <div slot="extra">
+                                    {{ message.createTime | formatRelativeTime({ year: 'yyyy-MM-dd' }) }}
+                                </div>
+                            </ibps-list-item>
+                        </ibps-list>
+                    </el-scrollbar>
+                </div>
+                <div class="message-more">
+                    <el-link type="primary" @click="clickMore">{{ $t('layout.header-aside.header-message.viewmore') }}</el-link>
                 </div>
-              </ibps-list-item>
-            </ibps-list>
-          </el-scrollbar>
-        </div>
-        <div class="message-more">
-          <el-link type="primary" @click="clickMore">{{ $t('layout.header-aside.header-message.viewmore') }}</el-link>
-        </div>
-      </el-card>
-    </el-popover>
+            </el-card>
+        </el-popover>
 
-    <!-- 消息明细 -->
-    <inner-detail-dialog
-      :id="editId"
-      :visible="dialogFormVisible"
-      :title="$t('layout.header-aside.header-message.details')"
-      inside
-      readonly
-      @callback="loadData"
-      @close="visible => dialogFormVisible = visible"
-    />
-  </div>
+        <!-- 消息明细 -->
+        <inner-detail-dialog
+            :id="editId"
+            :visible="dialogFormVisible"
+            :title="$t('layout.header-aside.header-message.details')"
+            inside
+            readonly
+            @callback="loadData"
+            @close="(visible) => (dialogFormVisible = visible)"
+        />
+    </div>
 </template>
 
 <script>
-import { getMsgList,queryReceivePageList } from '@/api/platform/message/innerMessage'
-import InnerDetailDialog from '@/views/platform/message/inner/detail/dialog'
-import Watermark from './watermark/watermark-cont.js'
-export default {
-  components: {
-    InnerDetailDialog
-  },
-  data() {
-    return {
-      editId: '',
-      dialogFormVisible: false,
-      isControl:true,
-      messageList: [],
-      messageCount: 0,
-      infoMessage:'',
-
-      countNumber:0,
-    }
-  },
-  computed: {
-    tooltipContent() {
-      return this.messageCount === 0 ? this.$t('layout.header-aside.header-message.empty') : ''
-    }
-  },
-  mounted() {
-    //轮询弹窗任务提醒
-    /* setTimeout(() => {
-      this.isControl=true
-      this.loadData()
-    }, 1000) */
-    this.loadData()
-    // Watermark.set('线上试用版本','深圳市金源信通')
-  },
-  beforeDestroy () {
-    Watermark.set('', '')
-  },
-  methods: {
-    // 加载数据
-   loadData() {
-      queryReceivePageList(
-               { parameters:[/* {key: "Q^subject^SL", value: "提醒"},
-                             {key: "Q^messageType^SL", value: "system"} */],
-                requestPage:{limit:5,pageNo: 1,totalCount: 0},
-                sorts: [],
-                }).then(response => {
-                  const data = response.data
-                  this.messageList = data.dataResult
-                  this.messageCount = data.pageResult ? data.pageResult.totalCount : 0
-        if(this.countNumber == 0){
-            /*
-            if(response.data.pageResult.totalCount>0){
-                this.$message.warning('您有'+response.data.pageResult.totalCount+'条未处理的 [ 待审批 / 被驳回任务消息 ],请及时处理!!!')
-            } */
-
-        }else if(this.countNumber < data.pageResult.totalCount){ //如果上次记录数量低于本次  进行提醒,准备待办
-            let _this = this
-            let h = this.$createElement
-            let num = data.pageResult.totalCount - this.countNumber
-                     this.infoMessage =  this.$notify({
-                                 title: '您有新的待办任务产生!',
-                                 message:  h('p', null, [
-                                   h('span', null, '任务内容: '+data.dataResult[0].subject),
-                                   h('br'),
-                                   h('span',null, '生成时间: '),
-                                   h('span', {style:'color: #FF8C00;font-size:12px;'},data.dataResult[0].createTime),
-                                   h('br'),
-                                   h('el-button', {
-                                            attrs: {
-                                              size: 'mini',
-                                              type: 'primary',
-                                              plain:true,
-                                            },
-                                            on: {
-                                              click:()=>{
-                                                _this.cancelInfo()
-                                                }
-                                            }
-                                          }, '进入办理'),
-                                    h('el-button', {
-                                             attrs: {
-                                               size: 'mini',
-                                               plain:true,
-                                             },
-                                             on: {
-                                               click:()=>{
-                                                _this.$notify.closeAll()
-                                                 }// 路由加载之后,调用关闭消息弹窗的方法
-                                             }
-                                           }, '忽略全部')
-                                 ]),
-                                 type: 'warning',
-                                 duration: 0,
-                               });
-
-        }
-        if(this.countNumber == 0){
-              this.countNumber = data.pageResult.totalCount
-            /*  setInterval(() => {
-                   if(this.isControl &&  response.message == "获取收到的内部消息列表成功!"){
-                     this.loadData()
-                     }
-                }, 60000)
- */
-            }else{
-              this.countNumber = data.pageResult.totalCount
+    import { getMsgList, queryReceivePageList } from '@/api/platform/message/innerMessage'
+    import InnerDetailDialog from '@/views/platform/message/inner/detail/dialog'
+    import Watermark from './watermark/watermark-cont.js'
+    export default {
+        components: {
+            InnerDetailDialog
+        },
+        data() {
+            return {
+                editId: '',
+                dialogFormVisible: false,
+                isControl: true,
+                messageList: [],
+                messageCount: 0,
+                infoMessage: '',
+                countNumber: 0
             }
-
-      }).catch(() => {
-		  this.isControl = false
-      })
-    },
-    cancelInfo(){
-        this.$router.push('/officeDesk/pendingItems')
-        this.$notify.closeAll()
-      },
-    handelInteriorClick(message) {
-      this.editId = message.id
-      this.dialogFormVisible = true
-    },
-    clickMore() {
-      // 更多消息
-      this.$router.push('/officeDesk/innerMessage/receiveMessage')
+        },
+        computed: {
+            tooltipContent() {
+                return this.messageCount === 0 ? this.$t('layout.header-aside.header-message.empty') : ''
+            }
+        },
+        mounted() {
+            //轮询弹窗任务提醒
+            // setTimeout(() => {
+            //     this.isControl=true
+            //     this.loadData()
+            // }, 1000)
+            // Watermark.set('线上试用版本','深圳市金源信通')
+            this.loadData()
+        },
+        beforeDestroy() {
+            Watermark.set('', '')
+        },
+        methods: {
+            // 加载数据
+            loadData() {
+                getMsgList({
+                    parameters: [
+                        // { key: 'Q^subject^SL', value: '提醒' },
+                        // { key: 'Q^messageType^SL', value: 'system' }
+                    ],
+                    requestPage: { limit: 5, pageNo: 1, totalCount: 0 },
+                    sorts: []
+                }).then((response) => {
+                    const data = response.data
+                    this.messageList = data.dataResult
+                    this.messageCount = data.pageResult ? data.pageResult.totalCount : 0
+                    if (this.countNumber == 0) {
+                        // if(response.data.pageResult.totalCount>0){
+                        //     this.$message.warning('您有'+response.data.pageResult.totalCount+'条未处理的 [ 待审批 / 被驳回任务消息 ],请及时处理!!!')
+                        // }
+                    } else if (this.countNumber < data.pageResult.totalCount) {
+                        //如果上次记录数量低于本次  进行提醒,准备待办
+                        let _this = this
+                        let h = this.$createElement
+                        let num = data.pageResult.totalCount - this.countNumber
+                        this.infoMessage = this.$notify({
+                            title: '您有新的待办任务产生!',
+                            message: h('p', null, [
+                                h('span', null, '任务内容: ' + data.dataResult[0].subject),
+                                h('br'),
+                                h('span', null, '生成时间: '),
+                                h('span', { style: 'color: #FF8C00;font-size:12px;' }, data.dataResult[0].createTime),
+                                h('br'),
+                                h('el-button', {
+                                    attrs: {
+                                        size: 'mini',
+                                        type: 'primary',
+                                        plain: true
+                                    },
+                                    on: {
+                                        click: () => {
+                                            _this.cancelInfo()
+                                        }
+                                    }
+                                }, '进入办理'),
+                                h('el-button', {
+                                    attrs: {
+                                        size: 'mini',
+                                        plain: true
+                                    },
+                                    on: {
+                                        click: () => {
+                                            _this.$notify.closeAll()
+                                        } // 路由加载之后,调用关闭消息弹窗的方法
+                                    }
+                                }, '忽略全部')
+                            ]),
+                            type: 'warning',
+                            duration: 0
+                        })
+                    }
+                    if (this.countNumber == 0) {
+                        this.countNumber = data.pageResult.totalCount
+                        // setInterval(() => {
+                        //     if(this.isControl &&  response.message == "获取收到的内部消息列表成功!"){
+                        //         this.loadData()
+                        //     }
+                        // }, 60000)
+                    } else {
+                        this.countNumber = data.pageResult.totalCount
+                    }
+                }).catch(() => {
+                    this.isControl = false
+                })
+            },
+            cancelInfo() {
+                this.$router.push('/officeDesk/pendingItems')
+                this.$notify.closeAll()
+            },
+            handelInteriorClick(message) {
+                this.editId = message.id
+                this.dialogFormVisible = true
+            },
+            clickMore() {
+                // 更多消息
+                this.$router.push('/message')
+            }
+        },
+        // 销毁事件
+        beforeDestroy() {
+            this.isControl = false
+        }
     }
-  },
-  /* 销毁事件*/
-  beforeDestroy() {
-   this.isControl = false
-  },
-
-}
 </script>
-<style lang="scss" >
-  .header-message-popper{
-    padding: 0 !important;
-    .message-more{
-      padding: 15px 0;
-      text-align: center;
-      border-top: 1px solid #EBEEF5;
+<style lang="scss">
+    .header-message-popper {
+        padding: 0 !important;
+        .message-more {
+            padding: 15px 0;
+            text-align: center;
+            border-top: 1px solid #ebeef5;
+        }
     }
-  }
 </style>

+ 0 - 1
src/plugins/error/index.js

@@ -16,7 +16,6 @@ export default {
                         }
                     })
                     if (process.env.NODE_ENV !== 'development') return
-                    if (logType === 'warning') return  
                     util.log.capsule('ibps', 'ErrorHandler', logType)
                     util.log.danger('>>>>>> 错误信息 >>>>>>')
                     console.log(info)

+ 9 - 0
src/router/routes.js

@@ -75,6 +75,15 @@ const frameIn = [
         name: 'redirect',
         hidden: true,
         component: _import('/system/function/redirect')
+      },
+      {
+        path: '/message',
+        name: 'message',
+        meta: {
+          title: '消息中心',
+          auth: true
+        },
+        component: _import('/platform/message/inner/receive')
       }
     ]
   }

+ 480 - 412
src/views/platform/bpmn/bpmInstHis/list.vue

@@ -1,427 +1,495 @@
 <template>
-  <div class="main-container">
-
-    <div slot="west">
-      <ibps-type-tree :width="width" :height="height" title="记录分类" :location="location" category-key="FLOW_TYPE"
-        @node-click="handleNodeClick" @expand-collapse="handleExpandCollapse" />
+    <div class="main-container">
+        <div slot="west">
+            <ibps-type-tree
+                :width="width"
+                :height="height"
+                title="记录分类"
+                :location="location"
+                category-key="FLOW_TYPE"
+                :hasPermission="true"
+                @node-click="handleNodeClick"
+                @expand-collapse="handleExpandCollapse"
+            />
+        </div>
+        <ibps-crud
+            v-if="!listType"
+            ref="crud"
+            :style="{ marginLeft: width + 'px' }"
+            :height="height"
+            :data="listData"
+            :toolbars="listConfig.toolbars"
+            :search-form="listConfig.searchForm"
+            :pk-key="pkKey"
+            :displayField="tableTitle"
+            :columns="listConfig.columns"
+            :row-handle="listConfig.rowHandle"
+            :pagination="pagination"
+            :loading="loading"
+            :index-row="false"
+            :selection-row="selection"
+            @action-event="handleAction"
+            @sort-change="handleSortChange"
+            @column-link-click="handleLinkClick"
+            @pagination-change="handlePaginationChange"
+        >
+            <template slot="selectCont" slot-scope="scope">
+                <el-popover
+                    :ref="'popover2-' + scope.row.id"
+                    placement="bottom"
+                    width="250"
+                    popper-class="popverClass"
+                    trigger="click"
+                    @show="getReportAndFile(scope.row)"
+                >
+                    <!-- 触发事件 -->
+                    <!-- @click="handleAction('detail',null,null,scope.row)"-->
+                    <div class="div_test el-icon-s-order" slot="reference">查阅记录</div>
+                    <!-- 弹框内容 -->
+                    <div class="div_content">
+                        <!-- 获取所有输出报告-->
+                        <div
+                            v-if="currReportCont.report.length > 0"
+                            v-for="(item, i) in currReportCont.report"
+                            class="content_butts"
+                        >
+                            <span style="cursor: pointer;" @click="clickCont(currReportCont, i)">
+                                <i class="el-icon-tickets" style="font-size: 18px;"/>
+                                {{
+                                    item.slice(-item.split('').reverse().join('').indexOf(' '), -item.split('').reverse().join('').indexOf('.') - 1)
+                                }}
+                            </span>
+                            <br/>
+                        </div>
+                        <div class="content_butts" v-if="currReportCont.file">
+                            <ibps-attachment
+                                v-model="fileId"
+                                placeholder="请选择"
+                                :download="true"
+                                :readonly="true"
+                                accept="*"
+                                :multiple="true"
+                                upload-type="attachment"
+                                store="id"
+                                media-type=""
+                                media=""
+                                style="width: 100%;"
+                            />
+                        </div>
+                    </div>
+                </el-popover>
+            </template>
+        </ibps-crud>
+        <typeList
+            v-else
+            :listType="listType"
+            :tableTitle="tableTitle"
+            :reportAll="reportAll"
+            :typeId="typeId"
+        />
+        <bpmn-formrender
+            :visible="dialogFormVisible"
+            :instance-id="instanceId"
+            @close="(visible) => (dialogFormVisible = visible)"
+        />
+        <el-dialog
+            :close-on-click-modal="false"
+            :close-on-press-escape="false"
+            :top="'3vh'"
+            :width="'90%'"
+            class="js-custom-dialog"
+            append-to-body
+            :fullscreen="false"
+            :visible.sync="visible"
+        >
+            <iframe
+                :src="srcUrl"
+                :height="'100%'"
+                :width="'100%'"
+                frameborder="0"
+                scrolling="no"
+            />
+        </el-dialog>
     </div>
-    <ibps-crud v-if="!listType" ref="crud" :style="{ marginLeft: width + 'px' }" :height="height" :data="listData"
-      :toolbars="listConfig.toolbars" :search-form="listConfig.searchForm" :pk-key="pkKey" :displayField="tableTitle"
-      :columns="listConfig.columns" :row-handle="listConfig.rowHandle" :pagination="pagination" :loading="loading"
-      :index-row="false" :selection-row="selection" @action-event="handleAction" @sort-change="handleSortChange"
-      @column-link-click="handleLinkClick" @pagination-change="handlePaginationChange">
-
-      <template slot="selectCont" slot-scope="scope">
-        <el-popover :ref="'popover2-' + scope.row.id" placement="bottom" width="250" popper-class="popverClass"
-          trigger="click" @show="getReportAndFile(scope.row)">
-          <!-- 触发事件 --> <!-- @click="handleAction('detail',null,null,scope.row)"-->
-          <div class="div_test el-icon-s-order" slot="reference">查阅记录</div>
-          <!-- 弹框内容 -->
-          <div class="div_content">
-            <!-- 获取所有输出报告-->
-            <div class="content_butts" v-if="currReportCont.report.length > 0"
-              v-for="(item, i) in currReportCont.report">
-              <span style="cursor: pointer;" @click="clickCont(currReportCont, i)">
-                <i class="el-icon-tickets" style="font-size: 18px;" />
-                {{ item.slice(-item.split("").reverse().join("").indexOf(' '),
-                    -item.split("").reverse().join("").indexOf('.') - 1)
-                }}
-              </span>
-              <br>
-            </div>
-
-            <div class="content_butts" v-if="currReportCont.file">
-              <ibps-attachment v-model="fileId" placeholder="请选择" :download="true" :readonly="true" accept="*"
-                :multiple="true" upload-type="attachment" store="id" media-type="" media="" style="width:100%;" />
-            </div>
-
-
-          </div>
-        </el-popover>
-      </template>
-
-    </ibps-crud>
-    <typeList v-else :listType="listType" :tableTitle="tableTitle" :reportAll="reportAll" :typeId="typeId" />
-
-    <bpmn-formrender :visible="dialogFormVisible" :instance-id="instanceId"
-      @close="visible => dialogFormVisible = visible" />
-
-    <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :top="'3vh'" :width="'90%'"
-      class="js-custom-dialog" append-to-body :fullscreen="false" :visible.sync="visible">
-
-      <iframe :src="srcUrl" :height="'100%'" :width="'100%'" frameborder="0" scrolling="no" />
-
-    </el-dialog>
-
-  </div>
-
 </template>
 
 <script>
-import { queryPageList } from '@/api/platform/bpmn/bpmInstHis'
-import ActionUtils from '@/utils/action'
-import IbpsTypeTree from '@/business/platform/cat/type/tree'
-import FixHeight from '@/mixins/height'
-import { searchOptions, resultTypeOptions, statusOptions } from './constants'
-import BpmnFormrender from '@/business/platform/bpmn/form/dialog'
-import curdPost from '@/business/platform/form/utils/custom/joinCURD.js' //增删改查规则
-import IbpsAttachment from '@/business/platform/file/attachment/selector'
-import typeList from './typeIndex.vue'
-import { listTypeData } from './corresponding/index.js'
-import GetReport from './corresponding/getReport.js'
-export default {
-  components: {
-    IbpsTypeTree,
-    BpmnFormrender,
-    typeList,
-    'ibps-attachment': IbpsAttachment
-  },
-  mixins: [FixHeight, GetReport],
-  props: {
-    location: {
-      type: String,
-      default: 'initial'
-    }
-  },
-  data() {
-    return {
-      width: 200,
-      selection: false,
-      dialogFormVisible: false, // 弹窗
-      instanceId: '', // 编辑dialog需要使用
-      pkKey: 'id', // 主键  如果主键不是pk需要传主键
-      tableTitle: '',
-      typeId: '',
-      listType: '',
-      srcUrl: '', //报表字段
-      fileId: '',//文件字段
-      isDisable: false, //判断多次点击
-      forClick: '',//判断是否重复点击
-      visible: false,
-      currReportCont: {},
-      title: '',
-      loading: true,
-      height: document.clientHeight,
-      reportAll: [],
-      listData: [],
-      pagination: {},
-      sorts: {},
-      listConfig: {
-        toolbars: [
-          { key: 'search' },
-          // { key: 'resetSearch' }
-        ],
-        searchForm: {
-          forms: [
-            { prop: 'Q^subject_^SL', label: '关键字:', width: 125 },
-            /*  { prop: 'Q^proc_def_name_^SL', label: '任务名称' }, */
-            // {
-            //   prop: ['Q^create_Time_^DL', 'Q^create_Time_^DG'],
-            //   label: '完成年度',
-            //   fieldType: 'daterange',
-            // },
-            /*  {
-                prop: 'Q^status_^S',
-                label: '任务状态',
-                fieldType: 'select',
-                options: searchOptions
-              } */
-          ]
+    import { queryPageList } from '@/api/platform/bpmn/bpmInstHis'
+    import ActionUtils from '@/utils/action'
+    import IbpsTypeTree from '@/business/platform/cat/type/tree'
+    import FixHeight from '@/mixins/height'
+    import { searchOptions, resultTypeOptions, statusOptions } from './constants'
+    import BpmnFormrender from '@/business/platform/bpmn/form/dialog'
+    import curdPost from '@/business/platform/form/utils/custom/joinCURD.js' //增删改查规则
+    import IbpsAttachment from '@/business/platform/file/attachment/selector'
+    import typeList from './typeIndex.vue'
+    import { listTypeData } from './corresponding/index.js'
+    import GetReport from './corresponding/getReport.js'
+    export default {
+        components: {
+            IbpsTypeTree,
+            BpmnFormrender,
+            typeList,
+            'ibps-attachment': IbpsAttachment
         },
-        // 表格字段配置
-        columns: [
-          /* { prop: 'subject', label: '任务标题', link: 'dialog', width: 250 }, */
-          { prop: 'tYear', label: '年份', width: 58 },
-          { prop: 'tDept', label: '部门', width: 80 },
-          { prop: 'procDefName', label: '表单名称' },
-          { prop: 'tUser', label: '编制人', width: 80 },
-          { prop: 'endTime', label: '完成时间', sortable: 'custom', dateFormat: 'yyyy-MM-dd', width: 150 },
-        ],
-        rowHandle: {
-          actions: [/* {
-            key: 'detail',label:"内容及附件"
-          } */],
-          effect: 'display',
-          width: '100'//固定按钮
-        }
-      }
-    }
-  },
-  created() {
-    this.loadData()
-    this.getConfig() //获取配置的报表
-    let roleArr = this.$store.getters.userInfo.role
-    // console.log(roleArr)
-    for (let i = 0; i < roleArr.length; i++) {
-      if (roleArr[i].name == "系统管理角色") {
-        this.listConfig.toolbars.push({ key: 'remove' })
-        this.selection = true
-        return;
-      }
-    }
-  },
-  methods: {
-    /*获取配置报表数据*/
-    getConfig() {
-      curdPost('select', this.packNameWhere('t_lcidglbdbb', { '1': '1' })).then(response => {
-        this.reportAll = response.variables.data
-      })
-    },
-    /* 封装表名与条件*/
-    packNameWhere(name, where) {
-      let cont = {}
-      cont['tableName'] = name
-      cont['paramWhere'] = where
-      return cont
-    },
-    // 加载数据
-    loadData() {
-      this.loading = true
-      queryPageList(this.getSearcFormData()).then(response => {
-        let data = response.data.dataResult
-        for (let i in data) {
-          let dept, user, tName, tYear
-          let arr = this.getParenthesesStr(data[i].subject)
-          if (arr.length == 4) { //如果是年度计划, 标题编辑中取年份, 去除默认给与的年份
-            data[i]['tYear'] = arr[0]
-            data[i]['tDept'] = arr[2]
-            data[i]['tUser'] = arr[3]
-          } else if (arr.length > 1) {
-            data[i]['tYear'] = arr[0]
-            data[i]['tDept'] = arr[1]
-            data[i]['tUser'] = arr[2]
-          }
-        }
-        // console.log('csnz\n',response.data,'\n')
-        ActionUtils.handleListData(this, response.data)
-        this.loading = false
-      }).catch(() => {
-        this.loading = false
-      })
-    },
-    getParenthesesStr(text) {
-      let result = ''
-      if (!text) return result
-      let regex = /\((.+?)\)/g;
-      let options = text.match(regex)
-      if (options) {
-        let option = options[0]
-        if (option) {
-          result = option.substring(1, option.length - 1)
-        }
-        if (options[1]) {
-          let yersOption = options[1]
-          if (yersOption) {
-            result = result + '/' + yersOption.substring(1, yersOption.length - 1)
-          }
-        }
-      }
-      return result.split('/')
-    },
-    /**
-     * 获取格式化参数
-     */
-    getSearcFormData() {
-      const params = this.$refs['crud'] ? this.$refs['crud'].getSearcFormData() : {}
-
-      if (this.$utils.isNotEmpty(this.typeId)) {
-        params['Q^TYPE_ID_^S'] = this.typeId
-      }
-
-      params['Q^status_^S'] = "end"
-      let cont = ActionUtils.formatParams(
-        params,
-        this.pagination,
-        this.sorts)
-
-      cont.parameters.push({
-        "parameters": [
-          {
-            "parameters": [
-              {
-                "key": "Q^proc_Def_Key_^NE",
-                "value": "Process_08hbmhs",
-                "param": "name"
-              }
-            ]
-          },
-          {
-            "parameters": [
-              {
-                "key": "Q^proc_Def_Key_^NE",
-                "value": "Process_0xlaidt",
-                "param": "name1"
-              }
-            ]
-          },
-          {
-            "parameters": [
-              {
-                "key": "Q^proc_Def_Key_^NE",
-                "value": "Process_0ocg0f1",
-                "param": "name2"
-              }
-            ]
-          }
-        ]
-      })
-      return cont
-
-    },
-    /**
-     * 处理分页事件
-     */
-    handlePaginationChange(page) {
-      ActionUtils.setPagination(this.pagination, page)
-      this.loadData()
-    },
-    /**
-     * 处理排序
-     */
-    handleSortChange(sort) {
-      ActionUtils.setSorts(this.sorts, sort)
-      this.loadData()
-    },
-    handleLinkClick(data, columns) {
-      this.handleEdit(data.id)
-    },
-    /**
-     * 查询
-     */
-    search() {
-      this.loadData()
-    },
-    /* 防止多次快速查询*/
-    numbersClick() {
-      this.isDisable = true
-      setTimeout(() => {
-        this.isDisable = false
-      }, 600)
-    },
-
-    /**
-     * 处理按钮事件
-     */
-    handleAction(command, position, selection, data) {
-      switch (command) {
-        case 'search':// 查询
-          ActionUtils.setFirstPagination(this.pagination)
-          this.search()
-          break
-        // case 'resetSearch':
-        //   this.typeId = ''
-        //   this.tableTitle = ''
-        //   this.search()
-        //   break
-        case 'remove':
-          let str = ""
-          selection.forEach((item, index) => {
-            if (index == 0) {
-              str += item
-            } else {
-              str += "," + item
+        mixins: [FixHeight, GetReport],
+        props: {
+            location: {
+                type: String,
+                default: 'initial'
+            }
+        },
+        data() {
+            return {
+                width: 200,
+                selection: false,
+                dialogFormVisible: false, // 弹窗
+                instanceId: '', // 编辑dialog需要使用
+                pkKey: 'id', // 主键  如果主键不是pk需要传主键
+                tableTitle: '',
+                typeId: '',
+                listType: '',
+                srcUrl: '', //报表字段
+                fileId: '', //文件字段
+                isDisable: false, //判断多次点击
+                forClick: '', //判断是否重复点击
+                visible: false,
+                currReportCont: {},
+                title: '',
+                loading: true,
+                height: document.clientHeight,
+                reportAll: [],
+                listData: [],
+                pagination: {},
+                sorts: {},
+                listConfig: {
+                    toolbars: [
+                        { key: 'search' }
+                    ],
+                    searchForm: {
+                        forms: [
+                            {
+                                prop: 'Q^subject_^SL',
+                                label: '关键字:',
+                                width: 125
+                            }
+                            // { 
+                            //     prop: 'Q^proc_def_name_^SL',
+                            //     label: '任务名称'
+                            // },
+                            // {
+                            //     prop: ['Q^create_Time_^DL', 'Q^create_Time_^DG'],
+                            //     label: '完成年度',
+                            //     fieldType: 'daterange',
+                            // },
+                            // {
+                            //     prop: 'Q^status_^S',
+                            //     label: '任务状态',
+                            //     fieldType: 'select',
+                            //     options: searchOptions
+                            // }
+                        ]
+                    },
+                    // 表格字段配置
+                    columns: [
+                        /* { prop: 'subject', label: '任务标题', link: 'dialog', width: 250 }, */
+                        { prop: 'tYear', label: '年份', width: 58 },
+                        { prop: 'tDept', label: '部门', width: 120 },
+                        { prop: 'procDefName', label: '表单名称' },
+                        {
+                            prop: 'subject',
+                            label: '事务说明',
+                            width: 200,
+                            formatter: this.getDesc
+                        },
+                        { prop: 'tUser', label: '编制人', width: 80 },
+                        {
+                            prop: 'endTime',
+                            label: '完成时间',
+                            sortable: 'custom',
+                            dateFormat: 'yyyy-MM-dd',
+                            width: 150
+                        }
+                    ],
+                    rowHandle: {
+                        actions: [
+                            // {
+                            //     key: 'detail',label:"内容及附件"
+                            // }
+                        ],
+                        effect: 'display',
+                        width: '100' //固定按钮
+                    }
+                }
             }
-          })
-          let data = {}
-          data['tableName'] = "ibps_bpm_inst_his"
-          data['paramWhere'] = "{id_:'" + str + "'}"
-          let this_ = this
-          curdPost('batchDelete', data).then(response => {
-            this_.$message({
-              message: '删除成功!',
-              type: 'warning'
-            })
-            this.search()
-          })
+        },
+        created() {
+            this.loadData()
+            this.getConfig() //获取配置的报表
+            let roleArr = this.$store.getters.userInfo.role
+            console.log(roleArr)
+            const hasRole = roleArr.some(item => item.name === '系统管理角色')
+            if (hasRole) {
+                this.listConfig.toolbars.push({ key: 'remove' })
+                this.selection = true
+            }
+        },
+        methods: {
+            // 截取事务说明字段内容
+            getDesc(row, column, cellValue, index) {
+                let hasDesc = cellValue.includes('#')
+                if (!hasDesc) {
+                    return ''
+                }
+                return cellValue.split('#')[1].includes('(') ? cellValue.split('#')[1].split('(')[0] : cellValue.split('#')[1]
+            },
+            // 获取配置报表数据
+            getConfig() {
+                const params = {
+                    tableName: 't_lcidglbdbb',
+                    paramWhere: {
+                        1: '1'
+                    }
+                }
+                curdPost('select', params).then((response) => {
+                    this.reportAll = response.variables.data
+                })
+            },
+            // 加载数据
+            loadData() {
+                this.loading = true
+                queryPageList(this.getSearcFormData()).then((response) => {
+                    let data = response.data && response.data.dataResult
+                    for (let i in data) {
+                        let dept, user, tName, tYear
+                        let arr = this.getParenthesesStr(data[i].subject)
+                        if (arr.length == 4) {
+                            //如果是年度计划, 标题编辑中取年份, 去除默认给与的年份
+                            data[i]['tYear'] = arr[0]
+                            data[i]['tDept'] = arr[2]
+                            data[i]['tUser'] = arr[3]
+                        } else if (arr.length > 1) {
+                            data[i]['tYear'] = arr[0]
+                            data[i]['tDept'] = arr[1]
+                            data[i]['tUser'] = arr[2]
+                        }
+                    }
+                    // console.log('csnz\n',response.data,'\n')
+                    ActionUtils.handleListData(this, response.data)
+                    this.loading = false
+                }).catch(() => {
+                    this.loading = false
+                })
+            },
+            getParenthesesStr(text) {
+                let result = ''
+                if (!text) return result
+                let regex = /\((.+?)\)/g
+                let options = text.match(regex)
+                if (options) {
+                    let option = options[0]
+                    if (option) {
+                        result = option.substring(1, option.length - 1)
+                    }
+                    if (options[1]) {
+                        let yersOption = options[1]
+                        if (yersOption) {
+                            result =
+                                result +
+                                '/' +
+                                yersOption.substring(1, yersOption.length - 1)
+                        }
+                    }
+                }
+                return result.split('/')
+            },
+            /**
+             * 获取格式化参数
+             */
+            getSearcFormData() {
+                const params = this.$refs['crud'] ? this.$refs['crud'].getSearcFormData() : {}
 
-          break
+                if (this.$utils.isNotEmpty(this.typeId)) {
+                    params['Q^TYPE_ID_^S'] = this.typeId
+                }
 
-        case 'detail':// 明细
-          ActionUtils.selectedRecord(selection).then((id) => {
-            this.handleEdit(id)
-            this.title = '信息'
-          }).catch(() => { })
-          break
-        default:
-          break
-      }
-    },
+                params['Q^status_^S'] = 'end'
+                let cont = ActionUtils.formatParams(params, this.pagination, this.sorts)
 
-    handleNodeClick(typeId, typeName) {
-      this.tableTitle = typeName.name
-      this.typeId = typeId
-      // console.log(typeId)
-      /* 如果是特殊处理添加列表中的数据*/
-      if (!listTypeData[typeId]) {
-        this.listType = ''
-        this.loadData()
-      } else {
-        this.listType = listTypeData[typeId]
-      }
-    },
-    handleExpandCollapse(isExpand) {
-      this.width = isExpand ? 230 : 30
-    },
-    /**
-     * 处理编辑
-     */
-    handleEdit(id = '') {
-      this.instanceId = id
-      this.dialogFormVisible = true
+                cont.parameters.push({
+                    parameters: [
+                        {
+                            parameters: [
+                                {
+                                    key: 'Q^proc_Def_Key_^NE',
+                                    value: 'Process_08hbmhs',
+                                    param: 'name'
+                                }
+                            ]
+                        },
+                        {
+                            parameters: [
+                                {
+                                    key: 'Q^proc_Def_Key_^NE',
+                                    value: 'Process_0xlaidt',
+                                    param: 'name1'
+                                }
+                            ]
+                        },
+                        {
+                            parameters: [
+                                {
+                                    key: 'Q^proc_Def_Key_^NE',
+                                    value: 'Process_0ocg0f1',
+                                    param: 'name2'
+                                }
+                            ]
+                        }
+                    ]
+                })
+                return cont
+            },
+            /**
+             * 处理分页事件
+             */
+            handlePaginationChange(page) {
+                ActionUtils.setPagination(this.pagination, page)
+                this.loadData()
+            },
+            /**
+             * 处理排序
+             */
+            handleSortChange(sort) {
+                ActionUtils.setSorts(this.sorts, sort)
+                this.loadData()
+            },
+            handleLinkClick(data, columns) {
+                this.handleEdit(data.id)
+            },
+            /**
+             * 查询
+             */
+            search() {
+                this.loadData()
+            },
+            /* 防止多次快速查询*/
+            numbersClick() {
+                this.isDisable = true
+                setTimeout(() => {
+                    this.isDisable = false
+                }, 600)
+            },
+            /**
+             * 处理按钮事件
+             */
+            handleAction(command, position, selection, data) {
+                switch (command) {
+                    case 'search': // 查询
+                        ActionUtils.setFirstPagination(this.pagination)
+                        this.search()
+                        break
+                    // case 'resetSearch':
+                    //     this.typeId = ''
+                    //     this.tableTitle = ''
+                    //     this.search()
+                    //     break
+                    case 'remove':
+                        let str = ''
+                        selection.forEach((item, index) => {
+                            if (index == 0) {
+                                str += item
+                            } else {
+                                str += ',' + item
+                            }
+                        })
+                        let data = {}
+                        data['tableName'] = 'ibps_bpm_inst_his'
+                        data['paramWhere'] = "{id_:'" + str + "'}"
+                        let this_ = this
+                        curdPost('batchDelete', data).then((response) => {
+                            this_.$message({
+                                message: '删除成功!',
+                                type: 'warning'
+                            })
+                            this.search()
+                        })
+                        break
+                    case 'detail': // 明细
+                        ActionUtils.selectedRecord(selection).then((id) => {
+                            this.handleEdit(id)
+                            this.title = '信息'
+                        }).catch(() => {})
+                        break
+                    default:
+                        break
+                }
+            },
+            handleNodeClick(typeId, typeName) {
+                this.tableTitle = typeName.name
+                this.typeId = typeId
+                // console.log(typeId)
+                // 如果是特殊处理添加列表中的数据
+                if (!listTypeData[typeId]) {
+                    this.listType = ''
+                    this.loadData()
+                } else {
+                    this.listType = listTypeData[typeId]
+                }
+            },
+            handleExpandCollapse(isExpand) {
+                this.width = isExpand ? 230 : 30
+            },
+            /**
+             * 处理编辑
+             */
+            handleEdit(id = '') {
+                this.instanceId = id
+                this.dialogFormVisible = true
+            }
+        }
     }
-  }
-}
 </script>
-<style lang="scss" >
-.js-custom-dialog {
-  .el-dialog__body {
-    height: calc(100vh) !important;
-    margin: -9px !important;
-    padding: 0px !important;
-    overflow: hidden;
-  }
-
-  .el-dialog__header {
-    padding: 0px;
-  }
-
-  .el-dialog__headerbtn i {
-    font-size: 28px;
-    font-weight: bold;
-    background-color: #FFFFFF;
-    border-radius: 8px;
-    margin-top: -8px;
-  }
-}
-</style>
-<style>
-.main-container .div_test {
-  cursor: pointer;
-}
-
-.main-container .el-popover.popverClass {
-  .div_content {
-    .content_checkbox {
-      .el-checkbox-group {
-        display: flex;
-        flex-direction: column;
-        z-index: 999;
-      }
-
-      z-index: 999;
+<style lang="scss">
+    .js-custom-dialog {
+        .el-dialog__body {
+            height: calc(100vh) !important;
+            margin: -9px !important;
+            padding: 0px !important;
+            overflow: hidden;
+        }
+        .el-dialog__header {
+            padding: 0px;
+        }
+        .el-dialog__headerbtn i {
+            font-size: 28px;
+            font-weight: bold;
+            background-color: #ffffff;
+            border-radius: 8px;
+            margin-top: -8px;
+        }
     }
-
-    .content_butts {
-      z-index: 999;
-      margin-top: 20px;
-      display: flex;
-      justify-content: flex-end;
-
-      .el-button {
-        padding: 7px 14px;
-      }
+    .main-container .div_test {
+        cursor: pointer;
+    }
+    .main-container .el-popover.popverClass {
+        .div_content {
+            .content_checkbox {
+                .el-checkbox-group {
+                    display: flex;
+                    flex-direction: column;
+                    z-index: 999;
+                }
+                z-index: 999;
+            }
+            .content_butts {
+                z-index: 999;
+                margin-top: 20px;
+                display: flex;
+                justify-content: flex-end;
+                .el-button {
+                    padding: 7px 14px;
+                }
+            }
+        }
     }
-  }
-
-}
 </style>

+ 276 - 254
src/views/platform/message/inner/receive.vue

@@ -1,263 +1,285 @@
 <template>
-  <div class="receive-container">
-    <ibps-crud
-      ref="crud"
-      :height="height"
-      :data="listData"
-      :toolbars="listConfig.toolbars"
-      :search-form="listConfig.searchForm"
-      :pk-key="pkKey"
-      :columns="listConfig.columns"
-      :row-handle="listConfig.rowHandle"
-      :pagination="pagination"
-      :loading="loading"
-      :index-row="false"
-      @action-event="handleAction"
-      @sort-change="handleSortChange"
-      @column-link-click="handleLinkClick"
-      @pagination-change="handlePaginationChange"
-    >
-      <template slot="handIcon" slot-scope="scope">
-        <el-tooltip v-if="!scope.row.receiverTime" class="item" effect="dark" content="未读" placement="bottom">
-          <i class="ibps-icon-envelope-o" />
-        </el-tooltip>
-        <el-tooltip v-else class="item" effect="dark" content="已读" placement="bottom">
-          <i class="ibps-icon-envelope-open-o" />
-        </el-tooltip>
-        <el-tooltip v-if="scope.row.fileMsg" class="item" effect="dark" content="含附件" placement="bottom">
-          <i class="ibps-icon-paperclip" />
-        </el-tooltip>
-      </template>
-    </ibps-crud>
-    <!-- 明细 -->
-    <detail
-      :id="editId"
-      :title="title"
-      :readonly="readonly"
-      :visible="dialogFormVisible"
-      @callback="search"
-      @close="visible => closeDetail(visible)"
-    />
-    <!-- 回复 -->
-    <reply
-      :id="editId"
-      :title="title"
-      :visible="repliFormVisible"
-      @callback="search"
-      @close="visible => repliFormVisible = visible"
-    />
-  </div>
+    <div class="receive-container">
+        <ibps-crud
+            ref="crud"
+            :height="height"
+            :data="listData"
+            :toolbars="listConfig.toolbars"
+            :search-form="listConfig.searchForm"
+            :pk-key="pkKey"
+            :columns="listConfig.columns"
+            :row-handle="listConfig.rowHandle"
+            :pagination="pagination"
+            :loading="loading"
+            :index-row="false"
+            displayField="消息中心"
+            @action-event="handleAction"
+            @sort-change="handleSortChange"
+            @column-link-click="handleLinkClick"
+            @pagination-change="handlePaginationChange"
+        >
+            <template slot="handIcon" slot-scope="scope">
+                <el-tooltip v-if="!scope.row.receiverTime" class="item" effect="dark" content="未读" placement="bottom">
+                    <i class="ibps-icon-envelope-o" />
+                </el-tooltip>
+                <el-tooltip v-else class="item" effect="dark" content="已读" placement="bottom">
+                    <i class="ibps-icon-envelope-open-o" />
+                </el-tooltip>
+                <el-tooltip v-if="scope.row.fileMsg" class="item" effect="dark" content="含附件" placement="bottom">
+                    <i class="ibps-icon-paperclip" />
+                </el-tooltip>
+            </template>
+        </ibps-crud>
+        <!-- 明细 -->
+        <detail
+            :id="editId"
+            :title="title"
+            :readonly="readonly"
+            :visible="dialogFormVisible"
+            @callback="search"
+            @close="visible => closeDetail(visible)"
+        />
+        <!-- 回复 -->
+        <reply
+            :id="editId"
+            :title="title"
+            :visible="repliFormVisible"
+            @callback="search"
+            @close="visible => (repliFormVisible = visible)"
+        />
+    </div>
 </template>
 
 <script>
-import { queryReceivePageList, remove, markRead } from '@/api/platform/message/innerMessage'
-import ActionUtils from '@/utils/action'
-import FixHeight from '@/mixins/height'
-import { typeOptions, renderHeader } from './constants'
-import Detail from './detail/dialog'
-import Reply from './reply'
+    import { queryReceivePageList, getMyMsgList, remove, markRead } from '@/api/platform/message/innerMessage'
+    import ActionUtils from '@/utils/action'
+    import FixHeight from '@/mixins/height'
+    import { typeOptions, renderHeader } from './constants'
+    import Detail from './detail/dialog'
+    import Reply from './reply'
 
-export default {
-  components: {
-    Detail,
-    Reply
-  },
-  mixins: [FixHeight],
-  data() {
-    return {
-      dialogFormVisible: false, // 弹窗
-      repliFormVisible: false, // 弹窗
-      editId: '', // 编辑dialog需要使用
-      pkKey: 'id', // 主键  如果主键不是pk需要传主键
-      title: '',
-      loading: true,
-      isEnvelope: true,
-      link: false,
-      readonly: false,
-      height: document.clientHeight,
-      listData: [],
-      pagination: {},
-      sorts: {},
-      listConfig: {
-        toolbars: [
-          {
-            key: 'search'
-          },
-          {
-            key: 'remove'
-          },
-          {
-            key: 'markRead',
-            icon: 'ibps-icon-check-circle',
-            label: '标记为已读'
-          }
-        ],
-        searchForm: {
-          forms: [
-            { prop: 'Q^subject^SL', label: '主题' },
-            { prop: 'Q^ownerName^SL', label: '发送人' },
-            {
-              prop: 'Q^messageType^SL',
-              label: '消息类型',
-              fieldType: 'select',
-              options: typeOptions
-            },
-            { prop: ['Q^beginreceiveTime^DL', 'Q^endreceiveTime^DG'], label: '发送时间', fieldType: 'daterange' }
-          ]
+    export default {
+        components: {
+            Detail,
+            Reply
         },
-        // 表格字段配置
-        columns: [
-          { prop: 'stateIcon', label: '', slotName: 'handIcon', width: '65', renderHeader: renderHeader },
-          { prop: 'subject', sortBy: 'SUBJECT_', label: '主题', link: 'dialog', sortable: 'custom' },
-          { prop: 'ownerName', label: '发送人' },
-          { prop: 'messageType', label: '消息类型', tags: typeOptions },
-          { prop: 'createTime', label: '发送时间', dateFormat: 'yyyy-MM-dd HH:mm:ss' }
-        ],
-        rowHandle: {
-          actions: [{
-            key: 'reply',
-            icon: 'ibps-icon-reply-all',
-            label: '回复',
-            hidden: function(row, index) {
-              return row.canreply === 0 || row.messageType === 'system' || row.messageType === 'bulletin'
+        mixins: [FixHeight],
+        data() {
+            return {
+                dialogFormVisible: false, // 弹窗
+                repliFormVisible: false, // 弹窗
+                editId: '', // 编辑dialog需要使用
+                pkKey: 'id', // 主键  如果主键不是pk需要传主键
+                title: '',
+                loading: true,
+                isEnvelope: true,
+                link: false,
+                readonly: false,
+                height: document.clientHeight,
+                listData: [],
+                pagination: {},
+                sorts: {},
+                listConfig: {
+                    toolbars: [
+                        {
+                            key: 'search'
+                        },
+                        {
+                            key: 'remove'
+                        },
+                        {
+                            key: 'markRead',
+                            icon: 'ibps-icon-check-circle',
+                            label: '标记为已读'
+                        }
+                    ],
+                    searchForm: {
+                        forms: [
+                            { prop: 'Q^subject^SL', label: '主题' },
+                            { prop: 'Q^ownerName^SL', label: '发送人' },
+                            {
+                                prop: 'Q^messageType^SL',
+                                label: '消息类型',
+                                fieldType: 'select',
+                                options: typeOptions
+                            },
+                            {
+                                prop: ['Q^beginreceiveTime^DL', 'Q^endreceiveTime^DG'],
+                                label: '发送时间',
+                                fieldType: 'daterange'
+                            }
+                        ]
+                    },
+                    // 表格字段配置
+                    columns: [
+                        {
+                            prop: 'stateIcon',
+                            label: '',
+                            slotName: 'handIcon',
+                            width: '65',
+                            renderHeader: renderHeader
+                        },
+                        {
+                            prop: 'subject',
+                            sortBy: 'SUBJECT_',
+                            label: '主题',
+                            link: 'dialog',
+                            sortable: 'custom'
+                        },
+                        { prop: 'ownerName', label: '发送人' },
+                        { prop: 'messageType', label: '消息类型', tags: typeOptions },
+                        { prop: 'createTime', label: '发送时间', dateFormat: 'yyyy-MM-dd HH:mm:ss' }
+                    ],
+                    rowHandle: {
+                        actions: [
+                            {
+                                key: 'reply',
+                                icon: 'ibps-icon-reply-all',
+                                label: '回复',
+                                hidden: function (row, index) {
+                                    return (row.canreply === 0 || row.messageType === 'system' || row.messageType === 'bulletin')
+                                }
+                            },
+                            {
+                                key: 'remove'
+                            },
+                            {
+                                key: 'detail'
+                            }
+                        ]
+                    }
+                }
+            }
+        },
+        created() {
+            this.loadData()
+        },
+        methods: {
+            // 加载数据
+            loadData() {
+                this.loading = true
+                // queryReceivePageList({
+                //     parameters:[
+                //         {key: "Q^subject^SL", value: "提醒"},
+                //         {key: "Q^messageType^SL", value: "system"}
+                //     ],
+                //     requestPage:{limit: 10,pageNo: 1,totalCount: 0},
+                //     sorts: []
+                // }).then(response => {
+                getMyMsgList(this.getSearcFormData()).then(response => {
+                    ActionUtils.handleListData(this, response.data)
+                    this.loading = false
+                }).catch(err => {
+                    this.loading = false
+                })
+            },
+            /**
+             * 获取格式化参数
+             */
+            getSearcFormData() {
+                return ActionUtils.formatParams(
+                    this.$refs['crud'] ? this.$refs['crud'].getSearcFormData() : {},
+                    this.pagination,
+                    this.sorts
+                )
+            },
+            /**
+             * 处理分页事件
+             */
+            handlePaginationChange(page) {
+                ActionUtils.setPagination(this.pagination, page)
+                this.loadData()
+            },
+            /**
+             * 处理排序
+             */
+            handleSortChange(sort) {
+                ActionUtils.setSorts(this.sorts, sort)
+                this.loadData()
+            },
+            /**
+             * 查询
+             */
+            search() {
+                this.loadData()
+            },
+            handleLinkClick(data, columns) {
+                this.handleEdit(data.id, true)
+                this.title = '信息明细'
+            },
+            /**
+             * 处理按钮事件
+             */
+            handleAction(command, position, selection, data) {
+                switch (command) {
+                    case 'search': // 查询
+                        ActionUtils.setFirstPagination(this.pagination)
+                        this.search()
+                        break
+                    case 'markRead': // 标记为已读
+                        ActionUtils.selectedMultiRecord(selection).then(id => {
+                            this.handleAlreadyRead(id)
+                            // this.isEnvelope = false
+                        }).catch(() => {})
+                        break
+                    case 'reply': // 回复
+                        ActionUtils.selectedRecord(selection).then(id => {
+                            this.handleReply(id)
+                            this.title = '信息回复'
+                        }).catch(() => {})
+                        break
+                    case 'detail': // 明细
+                        ActionUtils.selectedRecord(selection).then(id => {
+                            this.handleEdit(id, true)
+                            this.title = '信息明细'
+                        }).catch(() => {})
+                        break
+                    case 'remove': // 删除
+                        ActionUtils.removeRecord(selection).then(ids => {
+                            this.handleRemove(ids)
+                        }).catch(() => {})
+                        break
+                    default:
+                        break
+                }
+            },
+            /**
+             * 标记为已读
+             */
+            handleAlreadyRead(ids) {
+                markRead({ innerMessageIds: ids }).then(response => {
+                    ActionUtils.success('标记已读成功')
+                    this.search()
+                }).catch(() => {})
+            },
+            /**
+             * 处理回复
+             */
+            handleReply(id = '') {
+                this.editId = id
+                this.repliFormVisible = true
+            },
+            /**
+             * 处理明细
+             */
+            handleEdit(id = '', readonly) {
+                this.editId = id
+                this.readonly = readonly
+                this.dialogFormVisible = true
+            },
+            /**
+             * 处理删除
+             */
+            handleRemove(ids) {
+                remove({ innerMessageIds: ids }).then(response => {
+                    ActionUtils.removeSuccessMessage()
+                    this.search()
+                }).catch(() => {})
+            },
+            closeDetail(visible) {
+                this.dialogFormVisible = visible
+                this.search()
             }
-          }, {
-            key: 'remove'
-          }, {
-            key: 'detail'
-          }]
         }
-      }
-    }
-  },
-  created() {
-    this.loadData()
-  },
-  methods: {
-    // 加载数据
-    loadData() {
-      this.loading = true
-  /*  queryReceivePageList(
-         { parameters:[{key: "Q^subject^SL", value: "提醒"},
-                       {key: "Q^messageType^SL", value: "system"}],
-          requestPage:{limit:20,pageNo: 1,totalCount: 0},
-          sorts: [],
-          }
-      ).then(response => { */
-      queryReceivePageList(this.getSearcFormData()).then(response => {
-        ActionUtils.handleListData(this, response.data)
-        this.loading = false
-      }).catch((err) => {
-        this.loading = false
-      })
-    },
-    /**
-     * 获取格式化参数
-     */
-    getSearcFormData() {
-      return ActionUtils.formatParams(
-        this.$refs['crud'] ? this.$refs['crud'].getSearcFormData() : {},
-        this.pagination,
-        this.sorts)
-    },
-    /**
-     * 处理分页事件
-     */
-    handlePaginationChange(page) {
-      ActionUtils.setPagination(this.pagination, page)
-      this.loadData()
-    },
-    /**
-     * 处理排序
-     */
-    handleSortChange(sort) {
-      ActionUtils.setSorts(this.sorts, sort)
-      this.loadData()
-    },
-    /**
-     * 查询
-     */
-    search() {
-      this.loadData()
-    },
-    handleLinkClick(data, columns) {
-      this.handleEdit(data.id, true)
-      this.title = '信息明细'
-    },
-
-    /**
-     * 处理按钮事件
-     */
-    handleAction(command, position, selection, data) {
-      switch (command) {
-        case 'search':// 查询
-          ActionUtils.setFirstPagination(this.pagination)
-          this.search()
-          break
-        case 'markRead':// 标记为已读
-          ActionUtils.selectedMultiRecord(selection).then((id) => {
-            this.handleAlreadyRead(id)
-            // this.isEnvelope = false
-          }).catch(() => { })
-          break
-        case 'reply':// 回复
-          ActionUtils.selectedRecord(selection).then((id) => {
-            this.handleReply(id)
-            this.title = '信息回复'
-          }).catch(() => { })
-          break
-        case 'detail':// 明细
-          ActionUtils.selectedRecord(selection).then((id) => {
-            this.handleEdit(id, true)
-            this.title = '信息明细'
-          }).catch(() => { })
-          break
-        case 'remove':// 删除
-          ActionUtils.removeRecord(selection).then((ids) => {
-            this.handleRemove(ids)
-          }).catch(() => { })
-          break
-        default:
-          break
-      }
-    },
-    /**
-     * 标记为已读
-     */
-    handleAlreadyRead(ids) {
-      markRead({ innerMessageIds: ids }).then(response => {
-        ActionUtils.success('标记已读成功')
-        this.search()
-      }).catch(() => {})
-    },
-    /**
-     * 处理回复
-     */
-    handleReply(id = '') {
-      this.editId = id
-      this.repliFormVisible = true
-    },
-    /**
-     * 处理明细
-     */
-    handleEdit(id = '', readonly) {
-      this.editId = id
-      this.readonly = readonly
-      this.dialogFormVisible = true
-    },
-    /**
-     * 处理删除
-     */
-    handleRemove(ids) {
-      remove({ innerMessageIds: ids }).then(response => {
-        ActionUtils.removeSuccessMessage()
-        this.search()
-      }).catch(() => {})
-    },
-    closeDetail(visible) {
-      this.dialogFormVisible = visible
-      this.search()
     }
-  }
-}
-</script>
+</script>

Разница между файлами не показана из-за своего большого размера
+ 288 - 483
src/views/system/dashboard/components/new-home.vue


Некоторые файлы не были показаны из-за большого количества измененных файлов