Преглед на файлове

检测项目流程进入表单详情页时获取检测项目名称(首页+流程审批页)

cfort преди 3 години
родител
ревизия
3d18db8793
променени са 5 файла, в които са добавени 1313 реда и са изтрити 1379 реда
  1. 3 1
      src/store/getters.js
  2. 26 20
      src/store/modules/ibps/modules/param.js
  3. 357 354
      src/views/platform/bpmn/bpmTask/list.vue
  4. 367 508
      src/views/system/dashboard/components/new-home.vue
  5. 560 496
      src/views/system/dashboard/page.vue

+ 3 - 1
src/store/getters.js

@@ -32,5 +32,7 @@ export default {
   permissions: state => state.ibps.menu.permissions, //  拥有的权限
   jianCeDuiXiangId: state => state.ibps.jianCeDuiXiangId ? state.ibps.jianCeDuiXiangId : '',
   myform: state => state.ibps.myform ? state.ibps.myform : '',
-  jianCeCanShuId: state => state.ibps.jianCeCanShuId ? state.ibps.jianCeCanShuId : ''
+  jianCeCanShuId: state => state.ibps.jianCeCanShuId ? state.ibps.jianCeCanShuId : '',
+  // 罗湖项目新增,所有检测项目名称及流程key数组
+  testingList: state => state.ibps.param && state.ibps.param.testingList ? state.ibps.param.testingList : []
 }

+ 26 - 20
src/store/modules/ibps/modules/param.js

@@ -1,24 +1,30 @@
-
-
 export default {
-  namespaced: true,
-  state: {
-    // 所有菜单
-    jianCeDuiXiangId: '',
-    jianCeCanShuId:'',
-    myform: '',
-  },
-
-  mutations: {
-
-    jianCeDuiXiangIdSet(state, jianCeDuiXiang) {
-      state.jianCeDuiXiangId = jianCeDuiXiang.jianCeDuiXiangId || ''
+    namespaced: true,
+    state: {
+        // 所有菜单
+        jianCeDuiXiangId: '',
+        jianCeCanShuId: '',
+        myform: '',
+        // 罗湖项目新增,所有检测项目名称及流程key数组
+        testingList: []
     },
-    myformSet(state, myform) {
-      state.myform = myform.myform || ''
+    mutations: {
+        jianCeDuiXiangIdSet(state, jianCeDuiXiang) {
+            state.jianCeDuiXiangId = jianCeDuiXiang.jianCeDuiXiangId || ''
+        },
+        myformSet(state, myform) {
+            state.myform = myform.myform || ''
+        },
+        jianCeCanShuIdSet(state, jianCeCanShu) {
+            state.jianCeCanShuId = jianCeCanShu.jianCeCanShuId || ''
+        },
+        testingList(state, data) {
+            state.testingList = data.length ? data : []
+        }
     },
-    jianCeCanShuIdSet(state, jianCeCanShu) {
-      state.jianCeCanShuId = jianCeCanShu.jianCeCanShuId || ''
-    },
-  }
+    actions: {
+        setTestingList({ commit }, data){
+            commit('testingList', data)
+        }
+    }
 }

+ 357 - 354
src/views/platform/bpmn/bpmTask/list.vue

@@ -1,372 +1,375 @@
 <template>
-  <div class="main-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"
-      @column-link-click="handleLinkClick"
-      @action-event="handleAction"
-      @sort-change="handleSortChange"
-      @pagination-change="handlePaginationChange"
-    >
-      <template slot="headerIcon" slot-scope="scope">
-        <span>{{ scope.column.label }}</span>
-        <el-tooltip
-          class="item"
-          effect="light"
-          placement="bottom"
+    <div class="main-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"
+            @column-link-click="handleLinkClick"
+            @action-event="handleAction"
+            @sort-change="handleSortChange"
+            @pagination-change="handlePaginationChange"
         >
-          <div slot="content">
-            此列是查询“流程定义-增加用户设置”的所有用户信息;<br>
-            当为空的时候,可在‘候选范围’知道原因,如:<br>
-            设置用户类型为“某组织负责人”且不抽取,在‘用户管理’模块下未配置相关基础数据时,则在审批运行中此列会为空;<br>
-            此时,可在“候选范围”显示的“某组织负责人”信息快速定位原因!<br>
-          </div>
-          <ibps-icon name="help" style="color:#dd5b44;" />
-        </el-tooltip>
-      </template>
-    </ibps-crud>
-    <approve-dialog
-      :visible="dialogFormVisible"
-      :title="title"
-      :task-id="editId"
-      :action="action"
-      class="bpm-task-dialog"
-      @callback="search"
-      @close="visible => dialogFormVisible = visible"
-    />
-    <!-- 人员选择器 -->
-    <ibps-employee-selector-dialog
-      :visible="selectorVisible"
-      :value="[]"
-      multiple
-      @close="visible => selectorVisible = visible"
-      @action-event="handleSelectorActionEvent"
-    />
+            <template slot="headerIcon" slot-scope="scope">
+                <span>{{ scope.column.label }}</span>
+                <el-tooltip class="item" effect="light" placement="bottom">
+                    <div slot="content">
+                        此列是查询“流程定义-增加用户设置”的所有用户信息;<br />
+                        当为空的时候,可在‘候选范围’知道原因,如:<br />
+                        设置用户类型为“某组织负责人”且不抽取,在‘用户管理’模块下未配置相关基础数据时,则在审批运行中此列会为空;<br />
+                        此时,可在“候选范围”显示的“某组织负责人”信息快速定位原因!<br />
+                    </div>
+                    <ibps-icon name="help" style="color: #dd5b44" />
+                </el-tooltip>
+            </template>
+        </ibps-crud>
+        <approve-dialog
+            :visible="dialogFormVisible"
+            :title="title"
+            :task-id="editId"
+            :action="action"
+            class="bpm-task-dialog"
+            @callback="search"
+            @close="visible => (dialogFormVisible = visible)"
+        />
+        <!-- 人员选择器 -->
+        <ibps-employee-selector-dialog
+            :visible="selectorVisible"
+            :value="[]"
+            multiple
+            @close="visible => (selectorVisible = visible)"
+            @action-event="handleSelectorActionEvent"
+        />
 
-    <bpmn-formrender
-      :visible="bpmnFormrenderDialogVisible"
-      :task-id="editId"
-      :title="flowName"
-      :processName="processName"
-      @callback="search"
-      @close="visible => bpmnFormrenderDialogVisible = visible"
-    />
-  </div>
+        <bpmn-formrender
+            :visible="bpmnFormrenderDialogVisible"
+            :task-id="editId"
+            :title="flowName"
+            :processName="processName"
+            @callback="search"
+            @close="visible => (bpmnFormrenderDialogVisible = visible)"
+        />
+    </div>
 </template>
 
 <script>
-import { queryPageList, remove, batchSuspendProcess, batchRecoverProcess, assignee } from '@/api/platform/bpmn/bpmTask'
-import ActionUtils from '@/utils/action'
-import FixHeight from '@/mixins/height'
-import curdPost from '@/business/platform/form/utils/custom/joinCURD.js'
-//import getFormDataFlag from '@/api/platform/form/common.js'
-import request from '@/utils/request'
-import { FORM_URL } from '@/api/baseUrl'
-import { BUSINESS_BASE_URL } from '@/api/baseUrl'
+    import { queryPageList, remove, batchSuspendProcess, batchRecoverProcess, assignee } from '@/api/platform/bpmn/bpmTask'
+    import ActionUtils from '@/utils/action'
+    import FixHeight from '@/mixins/height'
+    import curdPost from '@/business/platform/form/utils/custom/joinCURD.js'
+    //import getFormDataFlag from '@/api/platform/form/common.js'
+    import request from '@/utils/request'
+    import { FORM_URL } from '@/api/baseUrl'
+    import { BUSINESS_BASE_URL } from '@/api/baseUrl'
 
-export default {
-  components: {
-    'ibps-employee-selector-dialog': () => import('@/business/platform/org/employee/dialog'),
-    'approve-dialog': () => import('@/business/platform/bpmn/form-ext/approve'),
-    'bpmn-formrender': () => import('@/business/platform/bpmn/form/dialog')
-  },
-  mixins: [FixHeight],
-  data() {
-    return {
-      dialogFormVisible: false, // 弹窗
-      bpmnFormrenderDialogVisible: false, // 表单
-      editId: '', // 编辑dialog需要使用
-      action: 'agree', // 打开弹窗的动作
-      pkKey: 'id', // 主键  如果主键不是pk需要传主键
-      flowName:'',
-      processName:'',
-      selectorVisible: false,
-      ids: '',
-      title: '',
-      loading: true,
-      height: document.clientHeight,
+    export default {
+        components: {
+            'ibps-employee-selector-dialog': () => import('@/business/platform/org/employee/dialog'),
+            'approve-dialog': () => import('@/business/platform/bpmn/form-ext/approve'),
+            'bpmn-formrender': () => import('@/business/platform/bpmn/form/dialog')
+        },
+        mixins: [FixHeight],
+        data() {
+            const { testingList } = this.$store.getters
+            return {
+                testingList,
+                dialogFormVisible: false, // 弹窗
+                bpmnFormrenderDialogVisible: false, // 表单
+                editId: '', // 编辑dialog需要使用
+                action: 'agree', // 打开弹窗的动作
+                pkKey: 'id', // 主键  如果主键不是pk需要传主键
+                flowName: '',
+                processName: '',
+                selectorVisible: false,
+                ids: '',
+                title: '',
+                loading: true,
+                height: document.clientHeight,
 
-      listData: [],
-      pagination: {},
-      sorts: {},
-      listConfig: {
-        toolbars: [
-          { key: 'search' },
-          { key: 'agree', label: '同意', icon: 'ibps-icon-check-square-o' },
-          { key: 'stop', label: '终止', icon: 'ibps-icon-stop' },
-          { key: 'suspend', label: '挂起', icon: 'ibps-icon-ioxhost' },
-          { key: 'recover', label: '恢复', icon: 'ibps-icon-ioxhost' },
-          { key: 'assignee', label: '指定执行人', icon: 'ibps-icon-cog' }
-        ],
-        searchForm: {
-          forms: [
-            { prop: 'Q^subject_^SL', label: '请求标题' },
-            { prop: 'Q^NAME_^SL', label: '当前节点' },
-            {
-              prop: ['Q^CREATE_TIME_^DL', 'Q^CREATE_TIME_^DG'],
-              label: '创建时间',
-              fieldType: 'daterange'
+                listData: [],
+                pagination: {},
+                sorts: {},
+                listConfig: {
+                    toolbars: [
+                        { key: 'search' },
+                        { key: 'agree', label: '同意', icon: 'ibps-icon-check-square-o' },
+                        { key: 'stop', label: '终止', icon: 'ibps-icon-stop' },
+                        { key: 'suspend', label: '挂起', icon: 'ibps-icon-ioxhost' },
+                        { key: 'recover', label: '恢复', icon: 'ibps-icon-ioxhost' },
+                        { key: 'assignee', label: '指定执行人', icon: 'ibps-icon-cog' }
+                    ],
+                    searchForm: {
+                        forms: [
+                            { prop: 'Q^subject_^SL', label: '请求标题' },
+                            { prop: 'Q^NAME_^SL', label: '当前节点' },
+                            { prop: ['Q^CREATE_TIME_^DL', 'Q^CREATE_TIME_^DG'], label: '创建时间', fieldType: 'daterange' }
+                        ]
+                    },
+                    // 表格字段配置
+                    columns: [
+                        { prop: 'subject', label: '请求标题', link: 'dialog' },
+                        { prop: 'name', label: '当前节点', width: 200 },
+                        { prop: 'ownerName', label: '候选人', width: 200, headerName: 'headerIcon' },
+                        { prop: 'partyTypeName', label: '候选人范围', width: 200 },
+                        { prop: 'createTime', label: '创建时间', sortable: 'custom', width: 150 }
+                    ],
+                    rowHandle: {
+                        actions: [
+                            {
+                                key: 'assignee',
+                                label: '指定执行人',
+                                icon: 'ibps-icon-cog'
+                            },
+                            {
+                                key: 'approve',
+                                label: '审批',
+                                icon: 'ibps-icon-edit'
+                            }
+                        ]
+                    }
+                }
             }
-          ]
         },
-        // 表格字段配置
-        columns: [
-          { prop: 'subject', label: '请求标题', link: 'dialog' },
-          { prop: 'name', label: '当前节点', width: 200 },
-          { prop: 'ownerName', label: '候选人', width: 200, headerName: 'headerIcon' },
-          { prop: 'partyTypeName', label: '候选人范围', width: 200 },
-          { prop: 'createTime', label: '创建时间', sortable: 'custom', width: 150 }
-        ],
-        rowHandle: {
-          actions: [{
-            key: 'assignee',
-            label: '指定执行人',
-            icon: 'ibps-icon-cog'
-          }, {
-            key: 'approve',
-            label: '审批',
-            icon: 'ibps-icon-edit'
-          }]
-        }
-      }
-    }
-  },
-  created() {
-    this.loadData()
-  },
-  methods: {
-    // 加载数据
-    loadData() {
-      this.loading = true
-      queryPageList(this.getSearcFormData()).then(response => {
-        ActionUtils.handleListData(this, response.data)
-        this.loading = false
-      }).catch(() => {
-        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()
-    },
-    /**
-     * 处理按钮事件
-     */
-    handleAction(command, position, selection, data) {
-      switch (command) {
-        case 'search':// 查询
-          ActionUtils.setFirstPagination(this.pagination)
-          this.search()
-          break
-        case 'stop':// 终止
-          ActionUtils.selectedMultiRecord(selection).then((ids) => {
-            this.handleBatchApprove(ids, 'stop')
-            this.title = '批量终止流程'
-          }).catch(() => { })
-          break
-        case 'agree':// 同意
-          ActionUtils.selectedMultiRecord(selection).then((ids) => {
-            this.handleBatchApprove(ids, 'agree')
-            this.title = '批量同意审批'
-          }).catch(() => { })
-          break
-        case 'suspend':// 挂起
-          ActionUtils.selectedMultiRecord(selection).then((ids) => {
-            this.handleSuspend(ids)
-          }).catch(() => { })
-          break
-        case 'recover':// 恢复
-          ActionUtils.selectedMultiRecord(selection).then((ids) => {
-            this.handleRecover(ids)
-          }).catch(() => { })
-          break
-        case 'assignee':// 指定执行人
-          ActionUtils.selectedMultiRecord(selection).then((ids) => {
-            this.handleAssignee(ids)
-          }).catch(() => { })
-          break
-        case 'approve':// 审批
-          ActionUtils.selectedMultiRecord(selection).then((ids) => {
-            this.handleApprove(ids)
-          }).catch(() => { })
-          break
-        default:
-          break
-      }
-    },
-    /**
-     * 处理审批
-     */
-    handleBatchApprove(id = '', action = 'agree') {
-      this.editId = id
-      this.action = action
-      this.dialogFormVisible = true
-    },
-    /**
-     * 处理删除
-     */
-    handleRemove(ids) {
-      remove({ levelIds: ids }).then(response => {
-        ActionUtils.removeSuccessMessage()
-        this.search()
-      }).catch(() => {})
-    },
-    /**
-     * 批量挂起任务
-     */
-    handleSuspend(ids) {
-      this.$confirm('确认批量挂起流程任务?', '信息').then(() => {
-        batchSuspendProcess({ taskIds: ids }).then(() => {
-          ActionUtils.successMessage('挂起流程任务成功')
-          this.search()
-        }).catch(error => {
-          console.error(error)
-        })
-      })
-    },
-    /**
-     * 批量挂起任务
-     */
-    handleRecover(ids) {
-      this.$confirm('确认批量恢复流程任务?', '信息').then(() => {
-        batchRecoverProcess({ taskIds: ids }).then(() => {
-          ActionUtils.successMessage('恢复流程任务成功')
-          this.search()
-        }).catch(error => {
-          console.error(error)
-        })
-      })
-    },
-    /**
-     * 指定执行人
-     */
-    handleAssignee(ids) {
-      this.ids = ids
-      this.selectorVisible = true
-    },
-    handleSelectorActionEvent(buttonKey, data) {
-      switch (buttonKey) {
-        case 'confirm':// 确定
-          this.handleConfirm(data)
-          break
-      }
-    },
-    handleConfirm(data) {
-      assignee({
-        taskId: this.ids,
-        userId: data.map((d) => { return d.id }).join(',')
-      }).then(response => {
-        this.selectorVisible = false
-        ActionUtils.success('指定执行人成功!')
-        this.search()
-      })
-    },
-    /**
-     * 审批
-     */
-    handleApprove(id) {
-        let this_ = this
-        // this_.editId = id
-        // this_.bpmnFormrenderDialogVisible = true
-        // return
+        created() {
+            this.loadData()
+        },
+        methods: {
+            // 加载数据
+            loadData() {
+                this.loading = true
+                queryPageList(this.getSearcFormData()).then(response => {
+                    ActionUtils.handleListData(this, response.data)
+                    this.loading = false
+                }).catch(() => {
+                    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()
+            },
+            /**
+             * 处理按钮事件
+             */
+            handleAction(command, position, selection, data) {
+                switch (command) {
+                    case 'search': // 查询
+                        ActionUtils.setFirstPagination(this.pagination)
+                        this.search()
+                        break
+                    case 'stop': // 终止
+                        ActionUtils.selectedMultiRecord(selection).then(ids => {
+                            this.handleBatchApprove(ids, 'stop')
+                            this.title = '批量终止流程'
+                        }).catch(() => {})
+                        break
+                    case 'agree': // 同意
+                        ActionUtils.selectedMultiRecord(selection).then(ids => {
+                            this.handleBatchApprove(ids, 'agree')
+                            this.title = '批量同意审批'
+                        }).catch(() => {})
+                        break
+                    case 'suspend': // 挂起
+                        ActionUtils.selectedMultiRecord(selection).then(ids => {
+                            this.handleSuspend(ids)
+                        }).catch(() => {})
+                        break
+                    case 'recover': // 恢复
+                        ActionUtils.selectedMultiRecord(selection).then(ids => {
+                            this.handleRecover(ids)
+                        }).catch(() => {})
+                        break
+                    case 'assignee': // 指定执行人
+                        ActionUtils.selectedMultiRecord(selection).then(ids => {
+                            this.handleAssignee(ids)
+                        }).catch(() => {})
+                        break
+                    case 'approve': // 审批
+                        ActionUtils.selectedMultiRecord(selection).then(ids => {
+                            this.handleApprove(ids)
+                        }).catch(() => {})
+                        break
+                    default:
+                        break
+                }
+            },
+            /**
+             * 处理审批
+             */
+            handleBatchApprove(id = '', action = 'agree') {
+                this.editId = id
+                this.action = action
+                this.dialogFormVisible = true
+            },
+            /**
+             * 处理删除
+             */
+            handleRemove(ids) {
+                remove({ levelIds: ids }).then(response => {
+                    ActionUtils.removeSuccessMessage()
+                    this.search()
+                }).catch(() => {})
+            },
+            /**
+             * 批量挂起任务
+             */
+            handleSuspend(ids) {
+                this.$confirm('确认批量挂起流程任务?', '信息').then(() => {
+                    batchSuspendProcess({ taskIds: ids }).then(() => {
+                        ActionUtils.successMessage('挂起流程任务成功')
+                        this.search()
+                    }).catch(error => {
+                        console.error(error)
+                    })
+                })
+            },
+            /**
+             * 批量挂起任务
+             */
+            handleRecover(ids) {
+                this.$confirm('确认批量恢复流程任务?', '信息').then(() => {
+                    batchRecoverProcess({ taskIds: ids }).then(() => {
+                        ActionUtils.successMessage('恢复流程任务成功')
+                        this.search()
+                    }).catch(error => {
+                        console.error(error)
+                    })
+                })
+            },
+            /**
+             * 指定执行人
+             */
+            handleAssignee(ids) {
+                this.ids = ids
+                this.selectorVisible = true
+            },
+            handleSelectorActionEvent(buttonKey, data) {
+                switch (buttonKey) {
+                    case 'confirm': // 确定
+                        this.handleConfirm(data)
+                        break
+                }
+            },
+            handleConfirm(data) {
+                assignee({
+                    taskId: this.ids,
+                    userId: data.map(d => { return d.id }).join(',')
+                }).then(response => {
+                    this.selectorVisible = false
+                    ActionUtils.success('指定执行人成功!')
+                    this.search()
+                })
+            },
+            /**
+             * 审批
+             */
+            handleApprove(id) {
+                let this_ = this
+                // this_.editId = id
+                // this_.bpmnFormrenderDialogVisible = true
+                // return
 
-        // getFormDataFlag(JSON.stringify({taskId:id})).then(response => {
-        //     console.log("111")
-        //     if( response.data.data=='Y'){
-        //         this_.editId = id
-        //         this_.bpmnFormrenderDialogVisible = true
-        //     }else{
-        //         ActionUtils.success('任务生成中、请稍后重试...!')
-        //         this_.search()
-        //     }
-        // })
+                // getFormDataFlag(JSON.stringify({taskId:id})).then(response => {
+                //     console.log("111")
+                //     if( response.data.data=='Y'){
+                //         this_.editId = id
+                //         this_.bpmnFormrenderDialogVisible = true
+                //     }else{
+                //         ActionUtils.success('任务生成中、请稍后重试...!')
+                //         this_.search()
+                //     }
+                // })
 
-        // 打开表单前获取flowName和processName,避免流程节点状态bug
-        let selected = this.listData.find(item => item.id === id)
-        this.flowName = selected.name
-        this.processName = selected.procDefName
+                // 打开表单前获取flowName和processName,避免流程节点状态bug
+                let selected = this.listData.find(item => item.id === id)
+                this.flowName = selected.name
+                this.processName = this.getProjectName(selected.procDefKey)
 
-        request({
-            url: BUSINESS_BASE_URL() + '/getFormData/flag',
-            method: 'post',
-            data: JSON.stringify({taskId:id})
-        }).then(response => {
-            if ( response.data!='N') {
-                this_.editId = id
-                this_.bpmnFormrenderDialogVisible = true
-            } else {
-                ActionUtils.success('任务生成中、请稍后重试...!')
-                this_.search()
-            }
-        })
+                request({
+                    url: BUSINESS_BASE_URL() + '/getFormData/flag',
+                    method: 'post',
+                    data: JSON.stringify({ taskId: id })
+                }).then(response => {
+                    if (response.data != 'N') {
+                        this_.editId = id
+                        this_.bpmnFormrenderDialogVisible = true
+                    } else {
+                        ActionUtils.success('任务生成中、请稍后重试...!')
+                        this_.search()
+                    }
+                })
 
-        // let sql = "select ID_,HOT_READ_ from ibps_bpm_tasks where TASK_ID_='"+id+"'"
-        // curdPost('sql',sql).then(response => {
-        //     if( response.variables.data.length>0){
-        //         if( response.variables.data[0].HOT_READ_=='1'){
-        //             this_.editId = id
-        //             this_.bpmnFormrenderDialogVisible = true
-        //         } else {
-        //             ActionUtils.success('任务生成中、请稍后重试...!')
-        //             this_.search()
-        //         }
-        //     } else {
-        //         ActionUtils.success('任务状态已过期、请刷新页面...!')
-        //         this_.search()
-        //     }
-        // })
-    },
-    handleLinkClick(data, columns) {
-      this.flowName = data.name
-      this.processName = data.procDefName
-      this.handleApprove(data[this.pkKey])
+                // let sql = "select ID_,HOT_READ_ from ibps_bpm_tasks where TASK_ID_='"+id+"'"
+                // curdPost('sql',sql).then(response => {
+                //     if( response.variables.data.length>0){
+                //         if( response.variables.data[0].HOT_READ_=='1'){
+                //             this_.editId = id
+                //             this_.bpmnFormrenderDialogVisible = true
+                //         } else {
+                //             ActionUtils.success('任务生成中、请稍后重试...!')
+                //             this_.search()
+                //         }
+                //     } else {
+                //         ActionUtils.success('任务状态已过期、请刷新页面...!')
+                //         this_.search()
+                //     }
+                // })
+            },
+            handleLinkClick(data, columns) {
+                this.flowName = data.name
+                this.processName = this.getProjectName(data.procDefKey)
+                this.handleApprove(data[this.pkKey])
+            },
+            // 获取检测流程对应的检测项目名称
+            getProjectName(v) {
+                let res = this.testingList.find(item => item.processKey === v)
+                return res ? res.name : ''
+            }
+        }
     }
-  }
-}
 </script>
 <style lang="scss">
-// .bpm-task-dialog{
-//   .el-dialog__body{
-//     height:  calc(27vh - 120px) !important;
-//   }
-// }
-// .bpm-employee-dialog{
-//   .el-dialog__body{
-//     height:  calc(67vh - 140px) !important;
-//   }
-// }
+    // .bpm-task-dialog {
+    //     .el-dialog__body {
+    //         height: calc(27vh - 120px) !important;
+    //     }
+    // }
+    // .bpm-employee-dialog {
+    //     .el-dialog__body {
+    //         height: calc(67vh - 140px) !important;
+    //     }
+    // }
 </style>

Файловите разлики са ограничени, защото са твърде много
+ 367 - 508
src/views/system/dashboard/components/new-home.vue


+ 560 - 496
src/views/system/dashboard/page.vue

@@ -1,544 +1,608 @@
 <template>
-  <ibps-container  ref="dashboardContainer"  v-loading="loading"
-    :element-loading-text="$t('common.loading')"
-    :scroll-delay="scrollDelay"   type="full"  class="ibps-desktop-page"  @scroll="({x, y}) => { scrollTop = y }">
-
-
-
-
-  <newHome @handleApprove="handleApprove"  @handleUnreadMessage="handleUnreadMessage">
-
-     <template slot="myslot">
-                    <el-upload
-                    style="display:inline-block;"
+    <ibps-container
+        ref="dashboardContainer"
+        v-loading="loading"
+        :element-loading-text="$t('common.loading')"
+        :scroll-delay="scrollDelay"
+        type="full"
+        class="ibps-desktop-page"
+        @scroll="({ x, y }) => { scrollTop = y }"
+    >
+        <newHome @handleApprove="handleApprove" @handleUnreadMessage="handleUnreadMessage">
+            <template slot="myslot">
+                <el-upload
+                    style="display: inline-block"
                     class="upload-demo"
                     :action="uloadPath"
-                    :headers = "headers"
+                    :headers="headers"
                     :before-upload="beforeUpload"
                     :show-file-list="false"
                     :on-error="fileErr"
-                    :on-success = 'handleSuccess'>
-                      <el-button size="small"  icon="el-icon-s-management" plain  type="primary">导入委托单</el-button>
-                    </el-upload>
+                    :on-success="handleSuccess"
+                >
+                    <el-button size="small" icon="el-icon-s-management" plain type="primary">导入委托单</el-button>
+                </el-upload>
 
-                    <el-upload
-                    style="display:inline-block;margin-left: 10px;"
+                <el-upload
+                    style="display: inline-block; margin-left: 10px"
                     class="upload-demo"
                     :action="reportPath"
                     v-if="showRepost"
-                    :headers = "headers"
+                    :headers="headers"
                     :before-upload="ReportBeforeUpload"
                     :show-file-list="false"
                     :on-error="fileErr"
-                    :on-success = 'handleSuccess'>
+                    :on-success="handleSuccess"
+                >
+                    <el-button size="small" plain icon="el-icon-s-order" type="primary">替换/新增报表</el-button>
+                </el-upload>
 
-                      <el-button
-                    size="small" plain
-                    icon="el-icon-s-order"
+                <el-button
                     type="primary"
-                    >替换/新增报表</el-button>
-
-                    </el-upload>
-
-                    <el-button
-                    type="primary" plain
+                    plain
                     size="small"
-                    style="display:inline-block;margin-left: 10px;"
+                    style="display: inline-block; margin-left: 10px"
                     icon="el-icon-download"
                     @click="downloadData()"
-                    >
-                    下载桌面应用</el-button>
-                </template>
-
-  </newHome>
-    <ibps-back-to-top  :visibility-height="150"  :scroll-top="scrollTop"    transition-name="fade"
-      @scrollToTop="scrollToTop"/>
-    <preview  :id="id"  :visible="dialogPreviewVisible"
-      title="全屏预览" screen   @close="visible => dialogPreviewVisible = visible"/>
-    <bpmn-formrender   :visible="bpmnFormrenderDialogVisible"
-      :def-id="defId"  :task-id="taskId"  :instance-id="instanceId"
-      @close="visible => bpmnFormrenderDialogVisible = visible"  @callback="handleFlowCallback"/>
-
-   <ibps-news-dialog  :id="newsEditId"  title="公告栏目明细"  :visible="ibpsNewsDialogVisible"
-      :readonly="true"  @close="visible => ibpsNewsDialogVisible = visible" />
-
-    <ibps-message-dialog   :id="messageEditId"  title="消息明细" :readonly="true"
-     :visible="ibpsMessageDialogVisible"  @close="visible => ibpsMessageDialogVisible = visible"/>
-  </ibps-container>
-
-  <!-- <template v-if="initLoading">
-    <template v-if="localSystem">
-      <ibps-grid-layout  v-if="layout && layout.length >0"  :layout.sync="layout"
-        :col-num="colNum"  :row-height="rowHeight"  :is-draggable="isDraggable"
-        :is-resizable="isResizable"  :is-mirrored="isMirrored"  :vertical-compact="verticalCompact"
-        :margin="margin"  :use-css-transforms="useCssTransforms">
-        <ibps-grid-item    v-for="(item,index) in layout"  :key="item.i"  :x="item.x"
-          :y="item.y"  :w="item.w"  :h="item.h"  :i="item.i">
-          <component  :is="'ibps-desktop-'+item.alias"
-            v-if="hasComponent(item.alias)"  :id="item.i" :ref="item.alias"
-            :alias="item.alias" :height="getHeight(item.h)"
-            @action-event="(command,data)=> handleActionEvent(command,data,index)"/>
-        </ibps-grid-item>
-      </ibps-grid-layout>
-      <el-alert  v-else-if="!loading"  :closable="false"    type="warning"  show-icon  style="height:50px">
-        <span slot="title">
-          未设置个人桌面布局,可以通过“<a href="javascript:void(0)" @click="goMyLayout">个人办公-》个人桌面布局</a>”进行设置
-        </span>
-      </el-alert>
+                >
+                    下载桌面应用</el-button
+                >
+            </template>
+        </newHome>
+        <ibps-back-to-top
+            :visibility-height="150"
+            :scroll-top="scrollTop"
+            transition-name="fade"
+            @scrollToTop="scrollToTop"
+        />
+        <preview
+            :id="id"
+            :visible="dialogPreviewVisible"
+            title="全屏预览"
+            screen
+            @close="visible => (dialogPreviewVisible = visible)"
+        />
+        <bpmn-formrender
+            :visible="bpmnFormrenderDialogVisible"
+            :def-id="defId"
+            :task-id="taskId"
+            :instance-id="instanceId"
+            @close="visible => (bpmnFormrenderDialogVisible = visible)"
+            @callback="handleFlowCallback"
+        />
+
+        <ibps-news-dialog
+            :id="newsEditId"
+            title="公告栏目明细"
+            :visible="ibpsNewsDialogVisible"
+            :readonly="true"
+            @close="visible => (ibpsNewsDialogVisible = visible)"
+        />
+
+        <ibps-message-dialog
+            :id="messageEditId"
+            title="消息明细"
+            :readonly="true"
+            :visible="ibpsMessageDialogVisible"
+            @close="visible => (ibpsMessageDialogVisible = visible)"
+        />
+    </ibps-container>
+
+    <!-- <template v-if="initLoading">
+        <template v-if="localSystem">
+            <ibps-grid-layout
+                v-if="layout && layout.length >0"
+                :layout.sync="layout"
+                :col-num="colNum"
+                :row-height="rowHeight"
+                :is-draggable="isDraggable"
+                :is-resizable="isResizable"
+                :is-mirrored="isMirrored"
+                :vertical-compact="verticalCompact"
+                :margin="margin"
+                :use-css-transforms="useCssTransforms"
+            >
+                <ibps-grid-item
+                    v-for="(item,index) in layout"
+                    :key="item.i"
+                    :x="item.x"
+                    :y="item.y"
+                    :w="item.w"
+                    :h="item.h"
+                    :i="item.i"
+                >
+                    <component
+                        :is="'ibps-desktop-'+item.alias"
+                        v-if="hasComponent(item.alias)"
+                        :id="item.i" :ref="item.alias"
+                        :alias="item.alias"
+                        :height="getHeight(item.h)"
+                        @action-event="(command,data)=> handleActionEvent(command,data,index)"
+                    />
+                </ibps-grid-item>
+            </ibps-grid-layout>
+            <el-alert
+                v-else-if="!loading"
+                :closable="false"
+                type="warning"
+                show-icon
+                style="height:50px"
+            >
+                <span slot="title">未设置个人桌面布局,可以通过“<a href="javascript:void(0)" @click="goMyLayout">个人办公-》个人桌面布局</a>”进行设置</span>
+            </el-alert>
+        </template>
+        <!==不是本地系统==>
+        <template v-else>
+            <!==iframe方式==>
+            <iframe
+                v-if="systemUrlType === 'iframe'"
+                ref="systemrender"
+                class="ibps-container-frame"
+                frameborder="0"
+            />
+            <!==vue组件方式==>
+            <component
+                v-else
+                ref="systemrender"
+                :is="systemUrlName"
+                :params="systemUrlParams"
+            />
+        </template>
     </template> -->
-    <!--不是本地系统-->
-    <!-- <template v-else> -->
-      <!--iframe方式-->
-      <!-- <iframe  v-if="systemUrlType === 'iframe'"  ref="systemrender"   class="ibps-container-frame"  frameborder="0"/> -->
-      <!--vue组件方式-->
-      <!-- <component  :is="systemUrlName"  v-else  ref="systemrender"    :params="systemUrlParams"/> -->
-    <!-- </template> -->
-  <!-- </template> -->
-
-
 </template>
 
 <script>
-
-import { getMyDesktop } from '@/api/platform/desktop/myLayout'
-import { initColumn, isInit, getComponents } from './components'
-import { BASE_API,BUSINESS_BASE_URL } from '@/api/baseUrl' //引用导出地址
-//  网格布局组件
-import { GridLayout, GridItem } from 'vue-grid-layout'
-import IbpsBackToTop from '@/components/ibps-back-to-top'
-import Preview from '@/views/platform/desktop/column/preview'
-import BpmnFormrender from '@/business/platform/bpmn/form/dialog'
-
-import IbpsNewsDialog from '@/views/platform/system/news/cms'
-import IbpsMessageDialog from '@/views/platform/message/inner/detail/dialog'
-import { StatisticsData } from '@/api/platform/system/jbdHome'
-import { StatisticsSign } from '@/api/platform/system/jbdHome'
-import { getToken } from '@/utils/auth'
-
-import newHome from './components/new-home';
-
-const _import = require('@/utils/util.import.' + process.env.NODE_ENV)
-
-export default {
-  components: {
-    'ibps-news-dialog': IbpsNewsDialog,
-    'ibps-message-dialog': IbpsMessageDialog,
-    IbpsBackToTop,
-    Preview,
-    newHome,
-    BpmnFormrender,
-    'ibps-grid-layout': GridLayout,
-    'ibps-grid-item': GridItem
-  },
-  data() {
-    return {
-      infoMessage:[],
-      uloadPath:BASE_API()+BUSINESS_BASE_URL()+"/ck/task/importExcel",
-      reportPath:BASE_API()+BUSINESS_BASE_URL()+"/sys/SysDataContext/replaceReportFile",
-      layout: null,
-      colNum: 24,
-      rowHeight: 30,
-      isDraggable: false,
-      isResizable: false,
-      isMirrored: false,
-      verticalCompact: true,
-      margin: [15, 15],
-      useCssTransforms: true,
-      taskId:'',
-      ibpsNewsDialogVisible: false,
-      newsEditId: '',
-      showRepost:true,
-
-      ibpsMessageDialogVisible: false,
-      messageEditId: '',
-
-      scrollDelay: 0,
-      scrollTop: 0,
-      initLoading: false,
-      loading: false,
-      id: '',
-      dialogPreviewVisible: false, // 预览
-      defaultData: [],
-
-      bpmnFormrenderDialogVisible: false, // 流程
-      defId: '',
-      taskId: '',
-      instanceId: '',
-      layoutIndex: '',
-      initInterval: null,
-
-      systemUrlType: 'iframe',
-      systemUrlName: '',
-      systemUrlParams: {},
-      alias: '',
-       headers: {
-              'X-Authorization-access_token':getToken()
+    import { getMyDesktop } from '@/api/platform/desktop/myLayout'
+    import { initColumn, isInit, getComponents } from './components'
+    import { BASE_API, BUSINESS_BASE_URL } from '@/api/baseUrl' //引用导出地址
+    //  网格布局组件
+    import { GridLayout, GridItem } from 'vue-grid-layout'
+    import IbpsBackToTop from '@/components/ibps-back-to-top'
+    import Preview from '@/views/platform/desktop/column/preview'
+    import BpmnFormrender from '@/business/platform/bpmn/form/dialog'
+
+    import IbpsNewsDialog from '@/views/platform/system/news/cms'
+    import IbpsMessageDialog from '@/views/platform/message/inner/detail/dialog'
+    import { StatisticsData } from '@/api/platform/system/jbdHome'
+    import { StatisticsSign } from '@/api/platform/system/jbdHome'
+    import { getToken } from '@/utils/auth'
+
+    import newHome from './components/new-home'
+
+    import curdPost from '@/business/platform/form/utils/custom/joinCURD.js'
+
+    const _import = require('@/utils/util.import.' + process.env.NODE_ENV)
+
+    export default {
+        components: {
+            'ibps-news-dialog': IbpsNewsDialog,
+            'ibps-message-dialog': IbpsMessageDialog,
+            IbpsBackToTop,
+            Preview,
+            newHome,
+            BpmnFormrender,
+            'ibps-grid-layout': GridLayout,
+            'ibps-grid-item': GridItem
+        },
+        data() {
+            return {
+                infoMessage: [],
+                uloadPath: BASE_API() + BUSINESS_BASE_URL() + '/ck/task/importExcel',
+                reportPath: BASE_API() + BUSINESS_BASE_URL() + '/sys/SysDataContext/replaceReportFile',
+                layout: null,
+                colNum: 24,
+                rowHeight: 30,
+                isDraggable: false,
+                isResizable: false,
+                isMirrored: false,
+                verticalCompact: true,
+                margin: [15, 15],
+                useCssTransforms: true,
+                taskId: '',
+                ibpsNewsDialogVisible: false,
+                newsEditId: '',
+                showRepost: true,
+
+                ibpsMessageDialogVisible: false,
+                messageEditId: '',
+
+                scrollDelay: 0,
+                scrollTop: 0,
+                initLoading: false,
+                loading: false,
+                id: '',
+                dialogPreviewVisible: false, // 预览
+                defaultData: [],
+
+                bpmnFormrenderDialogVisible: false, // 流程
+                defId: '',
+                taskId: '',
+                instanceId: '',
+                layoutIndex: '',
+                initInterval: null,
+
+                systemUrlType: 'iframe',
+                systemUrlName: '',
+                systemUrlParams: {},
+                alias: '',
+                headers: {
+                    'X-Authorization-access_token': getToken()
+                }
+            }
+        },
+        computed: {
+            system() {
+                return this.$store.getters.system ? this.$store.getters.system : null
             },
-    }
-  },
-  computed: {
-    system() {
-      return this.$store.getters.system ? this.$store.getters.system : null
-    },
-    systemAlias() {
-      return this.$store.getters.system ? this.$store.getters.system.alias : ''
-    },
-    localSystem() {
-      return this.system.isLocal
-    }
-  },
-  mounted() {
-    if('isNormal' == localStorage.getItem('statistic') ) this.showRepost = false
-    this.initLoading = false
-    this.initData()
-  },
-  created() {
-    StatisticsData().then(data=>{ //将参数替换成对应参数
-        if(data.state === 200 && data.variables.data.length>0){
-          let h = this.$createElement,
-           cont = data.variables.data,
-           _this = this;
-          for(let i = 0 ;i<cont.length;i++){
-                 window.setTimeout(() => {
-                        this.infoMessage[i] = this.$notify.info({
-                                  title: '定时任务:'+cont[i].ren_wu_biao_ti_,
-                                  message:  h('p', null, [
-                                    h('span', null, '任务时间: '+cont[i].ren_wu_shi_jian_),
+            systemAlias() {
+                return this.$store.getters.system ? this.$store.getters.system.alias : ''
+            },
+            localSystem() {
+                return this.system.isLocal
+            }
+        },
+        mounted() {
+            if ('isNormal' == localStorage.getItem('statistic')) this.showRepost = false
+            this.initLoading = false
+            this.initData()
+        },
+        created() {
+            this.getTestingData()
+            StatisticsData().then(data => {
+                //将参数替换成对应参数
+                if (data.state === 200 && data.variables.data.length > 0) {
+                    let h = this.$createElement,
+                        cont = data.variables.data
+                    for (let i = 0; i < cont.length; i++) {
+                        window.setTimeout(() => {
+                            this.infoMessage[i] = this.$notify.info({
+                                title: '定时任务:' + cont[i].ren_wu_biao_ti_,
+                                message: h('p', null, [
+                                    h('span', null, '任务时间: ' + cont[i].ren_wu_shi_jian_),
                                     h('br'),
-                                    h('span',null, '任务内容: '),
-                                    h('span', {style:'color: #FF8C00;font-size:12px;'},cont[i].ding_shi_ren_wu_n),
+                                    h('span', null, '任务内容: '),
+                                    h('span', { style: 'color: #FF8C00;font-size:12px;' }, cont[i].ding_shi_ren_wu_n),
                                     h('br'),
-                                   h('el-button', {
-                                            attrs: {
-                                              size: 'mini',
-                                              plain:true,
-                                            },
-                                            on: {
-                                              click:()=>{
-                                               this.infoMessage[i].close()
-                                                }// 路由加载之后,调用关闭消息弹窗的方法
-                                            }
-                                          }, '忽略关闭')
-
-                                  ]),
-                                  duration: 0
-                                });
+                                    h('el-button',{
+                                        attrs: {
+                                            size: 'mini',
+                                            plain: true
+                                        },
+                                        on: {
+                                            click: () => {
+                                                this.infoMessage[i].close()
+                                            } // 路由加载之后,调用关闭消息弹窗的方法
+                                        }
+                                    }, '忽略关闭')
+                                ]),
+                                duration: 0
+                            })
                         }, 0)
-               }
-          }
-        })
-  },
-  beforeDestroy() {
-   for(let i =0;i<this.infoMessage.length;i++){
-      this.infoMessage[i].close()
-    }
-  },
-  methods: {
-    cancelInfo(cronId,title,num,processData,taskId){
-      /* 调用流程*/
-      if(taskId){
-        this.$router.push({
-        			name:'pendingItems'
-        })
-      }else  if(processData){
-        this.defId = processData
-        this.bpmnFormrenderDialogVisible = true
-      }
-      this.infoMessage[num].close()
-      },
-  downloadData(){
-    window.location.href = BASE_API()+BUSINESS_BASE_URL()+"/sys/SysDataContext/downloadData";
-	  },
-    scrollToTop() {
-      this.$refs.dashboardContainer.scrollToTop()
-    },
-    initData() {
-      this.initInterval = setInterval(() => {
-        if (this.$utils.isNotEmpty(this.systemAlias)) {
-          this.initLoading = true
-          if (this.localSystem) {
-           // this.fetchData()
-          } else {
-            this.initSystemUrl(this.system.homePage)
-          }
-          clearInterval(this.initInterval)
-        }
-      }, 100)
-    },
-    // 抓取数据
-    // fetchData() {
-    //   initColumn(this.systemAlias)
-    //   this.loading = true
-    //    const interval = setInterval(() => {
-    //    if (isInit()) {
-    //   //     getMyDesktop({
-    //   //       systemAlias: this.systemAlias
-    //   //     }).then(response => {
-    //   //       try {
-    //   //         this.layout = this.$utils.parseData(response.data)
-    //   //         this.defaultData = this.$utils.parseData(response.data)
-    //   //       } catch (error) {
-    //   //         this.layout = []
-    //   //         this.defaultData = []
-    //   //       }
-    //   //       this.loading = false
-    //   //     }).catch(() => {
-    //   //       this.loading = false
-    //   //     })
-    //       clearInterval(interval)
-    //    }
-    //    }, 100)
-    // },
-    getHeight(h) {
-      return (h - 1) * (this.rowHeight + this.margin[1]) + this.margin[1]
-    },
-    hasComponent(alias) {
-      const name = 'ibps-desktop-' + alias
-      const components = getComponents()
-      if (components) {
-        return components.includes(name)
-      } else {
-        return false
-      }
-    },
-    resizedHandler(i, newH, newW, newHPx, newWPx) {
-      if (!this.layout) return
-      this.layout.layout.find((n) => {
-        if (i === n.i) {
-          n.widthPx = this.getWidth(n.w)
-          n.heightPx = this.getHeight(n.h)
-        }
-      })
-    },
-    goMyLayout() {
-      this.$router.push({
-        path: '/officeDesk/grzlsw/desktopMyLayout'
-      })
-    },
-    handleActionEvent(command, params, index) {
-      this.layoutIndex = index
-      this.alias = params.$alias
-      switch (command) {
-        case 'fullscreen':
-          this.handleFullscreen(params.id)
-          break
-        case 'collapse':
-        case 'expansion':
-          this.handleCollapseExpansion(index, command === 'collapse')
-          break
-        case 'flow':
-          this.handleFlow(params)
-          break
-        case 'approve':
-          this.handleApprove(params)
-          break
-        case 'unRead':
-          this.handleUnreadMessage(params)
-          break
-
-        default:
-          break
-      }
-    },
-    /**
-     * 全屏展示切换
-     */
-    handleFullscreen(id) {
-      this.dialogPreviewVisible = true
-      this.id = id
-    },
-    // 处理收缩/展开
-    handleCollapseExpansion(index, isCollapse) {
-      this.layout[index].h = isCollapse ? 2 : this.defaultData[index].h
-      this.layout.push({ i: '0' })
-      const deleteIndex = this.layout.findIndex(item => item.i === '0')
-      this.layout.splice(deleteIndex, 1)
-    },
+                    }
+                }
+            })
+        },
+        beforeDestroy() {
+            for (let i = 0; i < this.infoMessage.length; i++) {
+                this.infoMessage[i].close()
+            }
+        },
+        methods: {
+            cancelInfo(cronId, title, num, processData, taskId) {
+                /* 调用流程*/
+                if (taskId) {
+                    this.$router.push({
+                        name: 'pendingItems'
+                    })
+                } else if (processData) {
+                    this.defId = processData
+                    this.bpmnFormrenderDialogVisible = true
+                }
+                this.infoMessage[num].close()
+            },
+            downloadData() {
+                window.location.href = BASE_API() + BUSINESS_BASE_URL() + '/sys/SysDataContext/downloadData'
+            },
+            scrollToTop() {
+                this.$refs.dashboardContainer.scrollToTop()
+            },
+            initData() {
+                this.initInterval = setInterval(() => {
+                    if (this.$utils.isNotEmpty(this.systemAlias)) {
+                        this.initLoading = true
+                        if (this.localSystem) {
+                            // this.fetchData()
+                        } else {
+                            this.initSystemUrl(this.system.homePage)
+                        }
+                        clearInterval(this.initInterval)
+                    }
+                }, 100)
+            },
+            // 抓取数据
+            // fetchData() {
+            //   initColumn(this.systemAlias)
+            //   this.loading = true
+            //    const interval = setInterval(() => {
+            //    if (isInit()) {
+            //   //     getMyDesktop({
+            //   //       systemAlias: this.systemAlias
+            //   //     }).then(response => {
+            //   //       try {
+            //   //         this.layout = this.$utils.parseData(response.data)
+            //   //         this.defaultData = this.$utils.parseData(response.data)
+            //   //       } catch (error) {
+            //   //         this.layout = []
+            //   //         this.defaultData = []
+            //   //       }
+            //   //       this.loading = false
+            //   //     }).catch(() => {
+            //   //       this.loading = false
+            //   //     })
+            //       clearInterval(interval)
+            //    }
+            //    }, 100)
+            // },
+            getHeight(h) {
+                return (h - 1) * (this.rowHeight + this.margin[1]) + this.margin[1]
+            },
+            hasComponent(alias) {
+                const name = 'ibps-desktop-' + alias
+                const components = getComponents()
+                if (components) {
+                    return components.includes(name)
+                } else {
+                    return false
+                }
+            },
+            resizedHandler(i, newH, newW, newHPx, newWPx) {
+                if (!this.layout) return
+                this.layout.layout.find(n => {
+                    if (i === n.i) {
+                        n.widthPx = this.getWidth(n.w)
+                        n.heightPx = this.getHeight(n.h)
+                    }
+                })
+            },
+            goMyLayout() {
+                this.$router.push({ path: '/officeDesk/grzlsw/desktopMyLayout' })
+            },
+            handleActionEvent(command, params, index) {
+                this.layoutIndex = index
+                this.alias = params.$alias
+                switch (command) {
+                    case 'fullscreen':
+                        this.handleFullscreen(params.id)
+                        break
+                    case 'collapse':
+                    case 'expansion':
+                        this.handleCollapseExpansion(index, command === 'collapse')
+                        break
+                    case 'flow':
+                        this.handleFlow(params)
+                        break
+                    case 'approve':
+                        this.handleApprove(params)
+                        break
+                    case 'unRead':
+                        this.handleUnreadMessage(params)
+                        break
+
+                    default:
+                        break
+                }
+            },
+            /**
+             * 全屏展示切换
+             */
+            handleFullscreen(id) {
+                this.dialogPreviewVisible = true
+                this.id = id
+            },
+            // 处理收缩/展开
+            handleCollapseExpansion(index, isCollapse) {
+                this.layout[index].h = isCollapse ? 2 : this.defaultData[index].h
+                this.layout.push({ i: '0' })
+                const deleteIndex = this.layout.findIndex(item => item.i === '0')
+                this.layout.splice(deleteIndex, 1)
+            },
 
-    handleApprove(id) {
-      this.ibpsNewsDialogVisible = true
-      this.newsEditId = id
-    },
+            handleApprove(id) {
+                this.ibpsNewsDialogVisible = true
+                this.newsEditId = id
+            },
 
-    handleUnreadMessage(id) {
-      this.ibpsMessageDialogVisible = true
-      this.messageEditId = id
-    },
-    fileErr(err, file, fileList){
-        this.$message.error("文件上传失败,请检查格式!")
-      },
-    handleFlow(params) {
-      this.defId = params.defId || null
-      this.taskId = params.taskId || null
-      this.instanceId = params.instanceId || null
+            handleUnreadMessage(id) {
+                this.ibpsMessageDialogVisible = true
+                this.messageEditId = id
+            },
+            fileErr(err, file, fileList) {
+                this.$message.error('文件上传失败,请检查格式!')
+            },
+            handleFlow(params) {
+                this.defId = params.defId || null
+                this.taskId = params.taskId || null
+                this.instanceId = params.instanceId || null
 
-      this.instanceId = params.instanceId || null
-      this.instanceId = params.instanceId || null
+                this.instanceId = params.instanceId || null
+                this.instanceId = params.instanceId || null
 
-      this.bpmnFormrenderDialogVisible = true
-    },
-    handleFlowCallback() {
-      this.$refs[this.alias] ? this.$refs[this.alias][0].refreshData() : null
-    },
+                this.bpmnFormrenderDialogVisible = true
+            },
+            handleFlowCallback() {
+                this.$refs[this.alias] ? this.$refs[this.alias][0].refreshData() : null
+            },
 
-    //
-    initSystemUrl(url) {
-      if (url.startsWith('http')) {
-        this.systemUrlType = 'iframe'
-        this.$nextTick(() => {
-          this.$refs.systemrender.src = url
-          // 传递消息
-          // this.$refs.systemrender.contentWindow.postMessage({ data: this.attributes }, '*')
-        })
-      } else {
-        const component = url.split('?')[0]
-        this.systemUrlParams.attrs = this.urlParse(url)
-        this.systemUrlType = 'inner'
-        const systemUrlName = 'IbpsBpmnSystemUrl'
-        this.$options.components[systemUrlName] = _import(component)
-        this.systemUrlName = systemUrlName
-      }
-    },
-    urlParse(str) {
-      const obj = {}
-      if (str.indexOf('?') !== -1) {
-        const str1 = str.split('?')[1].split('&')
-        for (let i = 0; i < str1.length; i++) {
-          const params = str1[i].split('=')
-          obj[params[0]] = params[1]
-        }
-      }
-      return obj
-    },
-    /* 文件类型*/
-    beforeUpload(file) {
-                var testmsg=file.name.substring(file.name.lastIndexOf('.')+1)
+            //
+            initSystemUrl(url) {
+                if (url.startsWith('http')) {
+                    this.systemUrlType = 'iframe'
+                    this.$nextTick(() => {
+                        this.$refs.systemrender.src = url
+                        // 传递消息
+                        // this.$refs.systemrender.contentWindow.postMessage({ data: this.attributes }, '*')
+                    })
+                } else {
+                    const component = url.split('?')[0]
+                    this.systemUrlParams.attrs = this.urlParse(url)
+                    this.systemUrlType = 'inner'
+                    const systemUrlName = 'IbpsBpmnSystemUrl'
+                    this.$options.components[systemUrlName] = _import(component)
+                    this.systemUrlName = systemUrlName
+                }
+            },
+            urlParse(str) {
+                const obj = {}
+                if (str.indexOf('?') !== -1) {
+                    const str1 = str.split('?')[1].split('&')
+                    for (let i = 0; i < str1.length; i++) {
+                        const params = str1[i].split('=')
+                        obj[params[0]] = params[1]
+                    }
+                }
+                return obj
+            },
+            /* 文件类型*/
+            beforeUpload(file) {
+                var testmsg = file.name.substring(file.name.lastIndexOf('.') + 1)
                 const extension = testmsg === 'xls'
                 const extension2 = testmsg === 'xlsx'
-                if(!extension && !extension2) {
+                if (!extension && !extension2) {
                     this.$message({
                         message: '上传文件只能是excel格式!',
                         type: 'warning'
-                    });
-                    return false;
+                    })
+                    return false
                 }
-               return extension || extension2
-              },
-  /* 文件类型*/
-  ReportBeforeUpload(file) {
-              var testmsg=file.name.substring(file.name.lastIndexOf('.')+1)
-              const extension = testmsg === 'rpx'
-              if(!extension) {
-                  this.$message({
-                      message: '上传文件只能是rpx格式!',
-                      type: 'warning'
-                  });
-                  return false;
-              }
-             return extension
+                return extension || extension2
+            },
+            /* 文件类型*/
+            ReportBeforeUpload(file) {
+                var testmsg = file.name.substring(file.name.lastIndexOf('.') + 1)
+                const extension = testmsg === 'rpx'
+                if (!extension) {
+                    this.$message({
+                        message: '上传文件只能是rpx格式!',
+                        type: 'warning'
+                    })
+                    return false
+                }
+                return extension
             },
 
-       handleSuccess(res,file,fileList){
-             if(res.state===200){
-               this.$message({
-                 message: '上传数据成功!',
-                 type: 'success'
-               });
-             }else {
-               this.$message({
-                 message: res.message,
-                 type: 'error'
-
-               });
-             }
-           },
-  }
-}
+            handleSuccess(res, file, fileList) {
+                if (res.state === 200) {
+                    this.$message({
+                        message: '上传数据成功!',
+                        type: 'success'
+                    })
+                } else {
+                    this.$message({
+                        message: res.message,
+                        type: 'error'
+                    })
+                }
+            },
+            // 获取检测流程数据,存储到store中
+            getTestingData() {
+                let testingList = this.$store.getters.testingList
+                if (testingList.length) {
+                    return
+                } else {
+                    let sql = 'select xiang_mu_ming_ as name, liu_cheng_bian_ha as processKey from t_jcxmlcpzb'
+                    curdPost('sql', sql).then(res => {
+                        const { data } = res.variables
+                        this.$store.dispatch('ibps/param/setTestingList', data)
+                    }).catch(error => {
+                        this.$message.error('获取检测流程数据失败!')
+                        console.log(error)
+                    })
+                }
+            }
+        }
+    }
 </script>
 
 <style lang="scss" scoped>
-@import '~@/assets/styles/public.scss';
-.ibps-desktop-page {
-   .ibps-container-frame {
-        position: absolute;
-        top: 0px;
-        left: 0px;
-        height: 100%;
-        width: 100%;
-    }
+    @import '~@/assets/styles/public.scss';
+    .ibps-desktop-page {
+        .ibps-container-frame {
+            position: absolute;
+            top: 0px;
+            left: 0px;
+            height: 100%;
+            width: 100%;
+        }
 
-  .ibps-grid-item,
-  .el-card{
-    height: 100%;
-  }
-  .vue-grid-layout {
-    border-radius: 4px;
-    // margin: -10px;
-    .page_card {
-      height: 100%;
-      @extend %unable-select;
-    }
-    .vue-resizable-handle {
-      opacity: .3;
-      &:hover{
-        opacity: 1;
-      }
+        .ibps-grid-item, .el-card {
+            height: 100%;
+        }
+        .vue-grid-layout {
+            border-radius: 4px;
+            // margin: -10px;
+            .page_card {
+                height: 100%;
+                @extend %unable-select;
+            }
+            .vue-resizable-handle {
+                opacity: 0.3;
+                &:hover {
+                    opacity: 1;
+                }
+            }
+        }
     }
-  }
-}
 </style>
 
-<style lang="scss" >
-
-.ibps-desktop-dashboard{
-
-  .item {
-    position: relative;
-    margin: 12px;
-    padding: 12px;
-    height: 90px;
-    border-radius: 4px;
-    box-sizing: border-box;
-    overflow: hidden;
-    color: #fff;
-  }
-  .item-header {
-    position: relative;
-    & > p {
-      margin: 0px;
-      font-size: 14px;
-    }
-    & > span {
-      position: absolute;
-      right: 0px;
-      top: 0px;
-      padding: 2px 8px;
-      border-radius: 4px;
-      font-size: 12px;
-      background: rgba(255, 255, 255, 0.3);
-    }
-  }
-  .item-body {
-    & > h2 {
-      margin: 0;
-      font-size: 32px;
-      line-height: 60px;
+<style lang="scss">
+    .ibps-desktop-dashboard {
+        .item {
+            position: relative;
+            margin: 12px;
+            padding: 12px;
+            height: 90px;
+            border-radius: 4px;
+            box-sizing: border-box;
+            overflow: hidden;
+            color: #fff;
+        }
+        .item-header {
+            position: relative;
+            & > p {
+                margin: 0px;
+                font-size: 14px;
+            }
+            & > span {
+                position: absolute;
+                right: 0px;
+                top: 0px;
+                padding: 2px 8px;
+                border-radius: 4px;
+                font-size: 12px;
+                background: rgba(255, 255, 255, 0.3);
+            }
+        }
+        .item-body {
+            & > h2 {
+                margin: 0;
+                font-size: 32px;
+                line-height: 60px;
+            }
+        }
+        .item-tip {
+            display: flex;
+            align-items: center;
+            justify-content: center;
+            position: absolute;
+            width: 80px;
+            height: 80px;
+            bottom: -35px;
+            right: 50px;
+            border: 2px solid #fff;
+            border-radius: 100%;
+            font-size: 48px;
+            transform: rotate(-40deg);
+            opacity: 0.1;
+        }
     }
-  }
-  .item-tip {
-    display: flex;
-    align-items: center;
-    justify-content: center;
-    position: absolute;
-    width: 80px;
-    height: 80px;
-    bottom: -35px;
-    right: 50px;
-    border: 2px solid #fff;
-    border-radius: 100%;
-    font-size: 48px;
-    transform: rotate(-40deg);
-    opacity: 0.1;
-  }
-}
 </style>

Някои файлове не бяха показани, защото твърде много файлове са промени