Przeglądaj źródła

修改记录盒子

ZZJ 3 lat temu
rodzic
commit
ab82663a8f

+ 10 - 0
src/views/platform/bpmn/bpmInstHis/corresponding/getDataCont.js

@@ -46,9 +46,12 @@ export default {
       },
       /* 通用查询*/
       selectData(pack,key){
+        // console.log(pack)
          return new Promise((resolve, reject) => {
               curdPost('selects',pack).then(response => {
+                
                 let data = response.variables.data
+                // console.log('666',key,data)
                 for(let i in data){
                   data[i]['select'] = key
                 }
@@ -60,6 +63,7 @@ export default {
       },
 
      getConfigId(values,cont){
+      // console.log('55',values)
        if(!cont.dataResult || cont.dataResult.length<1){
          this.loading = false
          ActionUtils.handleListData(this, cont)
@@ -68,13 +72,17 @@ export default {
         //第一步 , 拿到所有需要查询的列,去空,并进行分别查询。
         let datas = []
        for(let i in values){
+        // console.log('values',values[i])
          if(Object.values(values[i])[0].length>0){ //第二步 判断对象是否都有值
+          
              let data =  this.selectData(this.packNameWhere(Object.keys(values[i])[0],Object.values(values[i])[0]),i) //将有值的进行查询结果
              datas.push(data)
           }
        }
+      //  console.log('555777',datas)
        Promise.all(datas).then(result => {
          //第三步, 将字段全部提取
+        //  console.log(result)
          let split = []
           for(let i in result){
             for(let j in result[i]){
@@ -83,8 +91,10 @@ export default {
           }
 
            let processors = []
+          //  console.log('75566233',split)
           for(let i in split){
             let processor =   new Promise((resolve, reject) => {
+              // console.log('lwz:' +split[i].select)
                    this.$options.methods[split[i].select](split[i],cont.dataResult,resolve) //动态调用方法,分辨如设备id字段
                 })
               processors.push(processor)

+ 5 - 1
src/views/platform/bpmn/bpmInstHis/corresponding/index.js

@@ -16,5 +16,9 @@ export const listTypeData = {
     '859878561996079104':'nengLiYanZheng',// 能力验证与实验室间比对
     '859879122875187200':'fengXianKongZhi', // 风险控制
     '859879582994530304':'neiShen',//内审
-    '859879751135789056':'guangShen' //管审
+    '859879751135789056':'guangShen', //管审
+    '1069221214599249920':'sheBeiWeiXiu',// 设备维修
+    '1069221265669095424':'sheBeiBaoFei', // 设备报废
+    '1022458306758705152':'sheBeiYanShou', // 设备验收
+
   }

+ 7 - 3
src/views/platform/bpmn/bpmInstHis/listType/heCha.vue

@@ -174,6 +174,7 @@ export default {
       queryPageList(this.getSearcFormData()).then(response => {
         let data = response.data.dataResult
 
+        console.log('csnz\n',data,'\n')
 
         for (let i in data) {
           let dept, user, tName, tYear
@@ -189,13 +190,15 @@ export default {
           }
           /* 增加表单归类判断 -- */
           let reData = this.dataConfig[data[i].formKey]
+          // console.log('555999',reData)
           if (reData) {
             reData[Object.keys(reData)[0]].push({ id_: data[i].bizKey })
           }
         }
         /* 新增*/
+        console.log(this.dataConfig)
         this.getConfigId(this.dataConfig, response.data)
-        // console.log(this.dataConfig)
+        console.log(this.dataConfig)
         /* -0---------------*/
       }).catch(() => {
         this.loading = false
@@ -222,11 +225,12 @@ export default {
     },
     /* 设备核查*/
     sbhcjl(cont, data) {
-      // console.log('设备核查',cont)
+      console.log('设备核查',cont,data)
       for (let i in data) {
         if (data[i].bizKey == cont.id_) {
           data[i]["facility"] = cont.yi_qi_ming_cheng_
           data[i]["number"] = cont.shi_bie_hao_
+          console.log(cont.shi_bie_hao_ + " : "+ cont.yi_qi_ming_cheng_)
         }
       }
       // resolve(true)
@@ -238,7 +242,7 @@ export default {
     //    }
     //  },
     sbhc(cont, data) {  //年度设备核查计划
-      // console.log('年度设备',cont)
+      console.log('年度设备核查计划',cont)
       for (let i in data) {
         if (data[i].bizKey == cont.id_) {
           data[i]["number"] = cont.yi_qi_bian_hao_

+ 25 - 12
src/views/platform/bpmn/bpmInstHis/listType/sheBei.vue

@@ -38,7 +38,8 @@
       </template>
 
       <template slot="facilitySlot"  slot-scope="scope">
-        <ibps-custom-dialog :value="scope.row.facility" template-key="sbxzq" :disabled="true" readonly-text="text" />
+        <!-- <ibps-custom-dialog :value="scope.row.facility" template-key="sbxzq" :disabled="true" readonly-text="text" /> -->
+        <span>{{ scope.row.facility }}</span>
       </template>
       <template slot="facilityNumber"  slot-scope="scope">
         <ibps-custom-dialog :value="scope.row.number" template-key="xsbxsbh" :disabled="true" readonly-text="text" />
@@ -111,13 +112,14 @@ export default {
       sheBei: [],
       responseData: "",
       dataConfig: {
-        sbdjym: { t_sbdj: [], }, //设备登记
-        sbyzjl: { t_sbys: [] }, //设备验收
-        sbhcjl: { t_sbhcjlb: [] },//设备核查
-        gdzcbfsqb: { t_gdzcbfsqb: [] }, //报废申请
-        sbwxjl: { t_sbwxjlb: [] }, //维修记录
-        sbwxsq: { t_yqsbjdxzwxsqd: [] }, //维修申请表
-        yqsbwhjl: { t_yqsbwhjlfb: [] }, //维护记录表
+        // sbdjym: { t_sbdj: [], }, //设备登记
+        // sbyzjl: { t_sbys: [] }, //设备验收
+        // sbhcjl: { t_sbhcjlb: [] },//设备核查
+        // gdzcbfsqb: { t_gdzcbfsqb: [] }, //报废申请
+        // sbwxjl: { t_sbwxjlb: [] }, //维修记录
+        // sbwxsq: { t_yqsbjdxzwxsqd: [] }, //维修申请表
+        // yqsbwhjl: { t_yqsbwhjlfb: [] }, //维护记录表
+        mjyqsbcgsqb:{ t_mjsbcgb:[]}, // 设备采购申请
       },
       listConfig: {
         toolbars: [
@@ -145,9 +147,9 @@ export default {
         columns: [
           /* { prop: 'subject', label: '任务标题', link: 'dialog', width: 250 }, */
           { prop: 'tYear', label: '年份', width: 58 },
-          { prop: 'tDept', label: '部门', width: 80 },
+          { prop: 'tDept', label: '部门', width: 250 },
           { prop: 'procDefName', label: '表单名称' },
-          { prop: 'number', label: '编号', width: 250, fieldType: 'slot', slotName: "facilityNumber" },
+          // { prop: 'number', label: '设备编号', width: 250, fieldType: 'slot', slotName: "facilityNumber" },
           { prop: 'facility', label: '设备名称', width: 180, fieldType: 'slot', slotName: "facilitySlot" },
           { prop: 'tUser', label: '编制人', width: 80 },
           { prop: 'endTime', label: '完成时间', sortable: 'custom', dateFormat: 'yyyy-MM-dd', width: 150 },
@@ -219,7 +221,18 @@ export default {
       }
       return result.split('/')
     },
-    /* 各个设备表*/
+
+    mjyqsbcgsqb(cont, data) {
+      // console.log('1',cont,data)
+      for (let i in data) {
+        if (data[i].bizKey == cont.id_) {
+          data[i]["facility"] = cont.she_bei_ming_chen
+          // data[i]["number"] = cont.she_bei_bian_hao_
+          // console.log(cont.she_bei_bian_hao_ + " : "+ cont.she_bei_ming_chen)
+        }
+      }
+    },
+    /* 各个设备表
     sbdjym(cont, data) {
       for (let i in data) {
         if (data[i].bizKey == cont.id_) data[i]["facility"] = cont.id_
@@ -261,7 +274,7 @@ export default {
         if (data[i].bizKey == cont.id_) data[i]["facility"] = cont.yi_qi_she_bei_min
         if (data[i].bizKey == cont.id_) data[i]["number"] = cont.yi_qi_she_bei_min
       }
-    },
+    },*/
     /**
      * 获取格式化参数
      */

+ 475 - 0
src/views/platform/bpmn/bpmInstHis/listType/sheBeiBaoFei.vue

@@ -0,0 +1,475 @@
+<template>250
+  <div>
+    <ibps-crud ref="crud" :style="{ marginLeft: width + 'px', minHeight: '550px' }" :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.split('/')[1].split('.')[0].split(' ')[1]}} -->
+                {{ 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>
+
+      <template slot="facilitySlot"  slot-scope="scope">
+         <!-- <ibps-custom-dialog :value="scope.row.facility" template-key="sbxzq" :disabled="true" readonly-text="text" /> -->
+        <span>{{ scope.row.facility }}</span>
+      </template> 
+      <template slot="facilityNumber"  slot-scope="scope">
+        <ibps-custom-dialog :value="scope.row.number" template-key="xsbxsbh" :disabled="true" readonly-text="text" />
+      </template>
+
+
+<!--
+      <template slot="facilitySlotName"  slot-scope="scope">
+        <ibps-custom-dialog :value="scope.row.facility" template-key="sbdhkbfzy" :disabled="true" readonly-text="text" />
+      </template>-->
+
+
+    </ibps-crud>
+
+    <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 IbpsCustomDialog from '@/business/platform/data/templaterender/custom-dialog'
+import getCont from '../corresponding/getDataCont.js'
+import GetReport from '../corresponding/getReport.js'
+export default {
+  components: {
+    IbpsTypeTree,
+    BpmnFormrender,
+    IbpsCustomDialog,
+    'ibps-attachment': IbpsAttachment
+  },
+  props: {
+    reportAll: Array,
+    tableTitle: String,
+    typeId: String
+  },
+  mixins: [FixHeight, getCont, GetReport],
+  data() {
+    return {
+      width: 200,
+      dialogFormVisible: false, // 弹窗
+      instanceId: '', // 编辑dialog需要使用
+      pkKey: 'id', // 主键  如果主键不是pk需要传主键
+      srcUrl: '', //报表字段
+      fileId: '',//文件字段
+      isDisable: false, //判断多次点击
+      forClick: '',//判断是否重复点击
+      visible: false,
+      currReportCont: {},
+      title: '',
+      loading: true,
+      height: document.clientHeight,
+      listData: [],
+      pagination: {},
+      sorts: {},
+      sheBei: [],
+      responseData: "",
+      dataConfig: {
+        // sbdjym: { t_sbdj: [], }, //设备登记
+        // sbyzjl: { t_sbys: [] }, //设备验收
+        // sbhcjl: { t_sbhcjlb: [] },//设备核查
+        mjsbtybfjlb: { t_mjwlbfzb: [] }, //报废申请
+        // sbwxjl: { t_sbwxjlb: [] }, //维修记录
+        // sbwxsq: { t_yqsbjdxzwxsqd: [] }, //维修申请表
+        // yqsbwhjl: { t_yqsbwhjlfb: [] }, //维护记录表
+      },
+      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
+              } */
+          ]
+        },
+        // 表格字段配置
+        columns: [
+          /* { prop: 'subject', label: '任务标题', link: 'dialog', width: 250 }, */
+          { prop: 'tYear', label: '年份', width: 58 },
+          { prop: 'tDept', label: '部门', width: 250 },
+          { prop: 'procDefName', label: '表单名称', width: 250 },
+          { prop: 'number', label: '设备编号', width: 250, fieldType: 'slot', slotName: "facilityNumber" },
+          { prop: 'facility', label: '设备名称', width: 180, fieldType: 'slot', slotName: "facilitySlot" },
+          { 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()
+  },
+  methods: {
+    // 加载数据
+    loadData() {
+      this.loading = true
+      queryPageList(this.getSearcFormData()).then(response => {
+        let data = response.data.dataResult
+
+        // console.log('csnz\n',data,'\n')
+        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]
+          }
+          /* 增加表单归类判断 -- */
+          let reData = this.dataConfig[data[i].formKey]
+          if (reData) {
+            reData[Object.keys(reData)[0]].push({ id_: data[i].bizKey })
+          }
+
+        }
+        /* 新增*/
+        // console.log(this.dataConfig)
+        this.getConfigId(this.dataConfig, response.data)
+        /* -0---------------*/
+      }).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('/')
+    },
+    
+    mjsbtybfjlb(cont, data) {
+      // console.log('666',cont,data)
+      for (let i in data) {
+        if (data[i].bizKey == cont.id_) {
+          data[i]["facility"] = cont.she_bei_id_
+          data[i]["number"] = cont.she_bei_bian_hao_
+          // console.log(cont.she_bei_bian_hao_ + " : "+ cont.she_bei_id_)
+        }
+      }
+    },
+    /* 各个设备表
+    sbdjym(cont, data) {
+      for (let i in data) {
+        if (data[i].bizKey == cont.id_) data[i]["facility"] = cont.id_
+        if (data[i].bizKey == cont.id_) data[i]["number"] = cont.id_
+      }
+    },
+    sbyzjl(cont, data) {
+      for (let i in data) {
+        if (data[i].bizKey == cont.id_) data[i]["facility"] = cont.yi_qi_ming_cheng_
+        if (data[i].bizKey == cont.id_) data[i]["number"] = cont.yi_qi_ming_cheng_
+      }
+    },
+    sbhcjl(cont, data) {
+      for (let i in data) {
+        if (data[i].bizKey == cont.id_) data[i]["facility"] = cont.yi_qi_ming_cheng_
+        if (data[i].bizKey == cont.id_) data[i]["number"] = cont.yi_qi_ming_cheng_
+      }
+    },
+    gdzcbfsqb(cont, data) {
+      for (let i in data) {
+        if (data[i].bizKey == cont.id_) data[i]["facility"] = cont.xuan_ze_she_bei_
+        if (data[i].bizKey == cont.id_) data[i]["number"] = cont.xuan_ze_she_bei_
+      }
+    },
+    sbwxjl(cont, data) {
+      for (let i in data) {
+        if (data[i].bizKey == cont.id_) data[i]["facility"] = cont.she_bei_ming_chen
+        if (data[i].bizKey == cont.id_) data[i]["number"] = cont.she_bei_ming_chen
+      }
+    },
+    sbwxsq(cont, data) {
+      for (let i in data) {
+        if (data[i].bizKey == cont.id_) data[i]["facility"] = cont.she_bei_ming_chen
+        if (data[i].bizKey == cont.id_) data[i]["number"] = cont.she_bei_ming_chen
+      }
+    },
+    yqsbwhjl(cont, data) {
+      for (let i in data) {
+        if (data[i].bizKey == cont.id_) data[i]["facility"] = cont.yi_qi_she_bei_min
+        if (data[i].bizKey == cont.id_) data[i]["number"] = cont.yi_qi_she_bei_min
+      }
+    },*/
+    /**
+     * 获取格式化参数
+     */
+    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
+            }
+          })
+          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
+      this.loadData()
+    },
+    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;
+    }
+
+    .content_butts {
+      z-index: 999;
+      margin-top: 20px;
+      display: flex;
+      justify-content: flex-end;
+
+      .el-button {
+        padding: 7px 14px;
+      }
+    }
+  }
+
+}
+</style>

+ 496 - 0
src/views/platform/bpmn/bpmInstHis/listType/sheBeiWeiXiu.vue

@@ -0,0 +1,496 @@
+<template>
+  <div>
+    <ibps-crud ref="crud" :style="{ marginLeft: width + 'px', minHeight: '550px' }" :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.split('/')[1].split('.')[0].split(' ')[1]}} -->
+                {{ 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>
+
+      <!---->
+      <template slot="facilitySlot"  slot-scope="scope">
+        <!-- <ibps-custom-dialog :value="scope.row.facility" template-key="mjsbdjmcdhk" :disabled="true" readonly-text="text" /> -->
+        <span>{{ scope.row.facility }}</span>
+      </template>
+        
+      <template slot="facilityNumber"  slot-scope="scope">
+        <span v-if="scope.row.number && scope.row.number.includes('-')">{{ scope.row.number }}</span>
+        <span v-else>
+          <ibps-custom-dialog :value="scope.row.number" template-key="mjsbdjmcdhk" :disabled="true" readonly-text="text" />
+        </span>
+      </template>
+
+
+
+      <!-- <template slot="facilitySlotName"  slot-scope="scope">
+        <ibps-custom-dialog :value="scope.row.facility" template-key="sbxzq" :disabled="true" readonly-text="text" />
+      </template> -->
+
+
+    </ibps-crud>
+
+    <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 IbpsCustomDialog from '@/business/platform/data/templaterender/custom-dialog'
+import getCont from '../corresponding/getDataCont.js'
+import GetReport from '../corresponding/getReport.js'
+export default {
+  components: {
+    IbpsTypeTree,
+    BpmnFormrender,
+    IbpsCustomDialog,
+    'ibps-attachment': IbpsAttachment
+  },
+  props: {
+    reportAll: Array,
+    tableTitle: String,
+    typeId: String
+  },
+  mixins: [FixHeight, getCont, GetReport],
+  data() {
+    return {
+      width: 200,
+      dialogFormVisible: false, // 弹窗
+      instanceId: '', // 编辑dialog需要使用
+      pkKey: 'id', // 主键  如果主键不是pk需要传主键
+      srcUrl: '', //报表字段
+      fileId: '',//文件字段
+      isDisable: false, //判断多次点击
+      forClick: '',//判断是否重复点击
+      visible: false,
+      currReportCont: {},
+      title: '',
+      loading: true,
+      height: document.clientHeight,
+      listData: [],
+      pagination: {},
+      sorts: {},
+      sheBei: [],
+      responseData: "",
+      dataConfig: {
+        // sbdjym: { t_sbdj: [] }, //设备登记
+        // sbyzjl: { t_sbys: [] }, //设备验收
+        // sbhcjl: { t_sbhcjlb: [] },//设备核查
+        // gdzcbfsqb: { t_gdzcbfsqb: [] }, //报废申请
+        mjsbwxqrbd: { t_mjsbwxqrb: [] }, //维修记录
+        mjyqsbwxsqbd: { t_mjyqsbwxsqb: [] }, //维修申请表
+        // yqsbwhjl: { t_yqsbwhjlfb: [] }, //维护记录表
+      },
+      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
+              } */
+          ]
+        },
+        // 表格字段配置
+        columns: [
+          /* { prop: 'subject', label: '任务标题', link: 'dialog', width: 250 }, */
+          { prop: 'tYear', label: '年份', width: 58 },
+          { prop: 'tDept', label: '部门', width: 250 },
+          { prop: 'procDefName', label: '表单名称', width: 250 },
+          { prop: 'number', label: '设备编号', width: 250, fieldType: 'slot', slotName: "facilityNumber" },
+          { prop: 'facility', label: '设备名称', width: 180, fieldType: 'slot', slotName: "facilitySlot" },
+          { 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()
+  },
+  methods: {
+    // 加载数据
+    loadData() {
+      this.loading = true
+      queryPageList(this.getSearcFormData()).then(response => {
+        let data = response.data.dataResult
+        // console.log('csnz',data,'\n')
+        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]
+          }
+          /* 增加表单归类判断 -- */
+          let reData = this.dataConfig[data[i].formKey]
+          if (reData) {
+            reData[Object.keys(reData)[0]].push({ id_: data[i].bizKey })
+          }
+
+        }
+        /* 新增*/
+        // console.log(this.dataConfig)
+        this.getConfigId(this.dataConfig, response.data)
+        // console.log(this.dataConfig)
+        /* -0---------------*/
+      }).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('/')
+    },
+    /* 各个设备表*/
+    mjsbwxqrbd(cont, data) {
+      // console.log('1',cont,data)
+      for (let i in data) {
+        if (data[i].bizKey == cont.id_) {
+          data[i]["facility"] = cont.she_bei_ming_chen
+          data[i]["number"] = cont.she_bei_bian_hao_
+          console.log(cont.she_bei_bian_hao_ + " : "+ cont.she_bei_ming_chen)
+        }
+      }
+    },
+    mjyqsbwxsqbd(cont, data) {
+      // console.log('2',cont,data)
+      for (let i in data) {
+        if (data[i].bizKey == cont.id_) {
+          data[i]["facility"] = cont.she_bei_ming_chen
+          data[i]["number"] = cont.she_bei_b_h_id_
+          console.log(cont.she_bei_b_h_id_ + " : "+ cont.she_bei_ming_chen)
+        }
+      }
+    },
+    // sbdjym(cont, data) {
+    //   console.log('1',cont)
+    //   for (let i in data) {
+    //     if (data[i].bizKey == cont.id_) data[i]["facility"] = cont.id_
+    //     if (data[i].bizKey == cont.id_) data[i]["number"] = cont.id_
+    //   }
+    // },
+    // sbyzjl(cont, data) {
+    //   console.log('2',cont)
+    //   for (let i in data) {
+    //     if (data[i].bizKey == cont.id_) data[i]["facility"] = cont.yi_qi_ming_cheng_
+    //     if (data[i].bizKey == cont.id_) data[i]["number"] = cont.yi_qi_ming_cheng_
+    //   }
+    // },
+    // sbhcjl(cont, data) {
+    //   console.log('3',cont)
+    //   for (let i in data) {
+    //     if (data[i].bizKey == cont.id_) data[i]["facility"] = cont.yi_qi_ming_cheng_
+    //     if (data[i].bizKey == cont.id_) data[i]["number"] = cont.yi_qi_ming_cheng_
+    //   }
+    // },
+    // gdzcbfsqb(cont, data) {
+    //   console.log('4',cont)
+    //   for (let i in data) {
+    //     if (data[i].bizKey == cont.id_) data[i]["facility"] = cont.xuan_ze_she_bei_
+    //     if (data[i].bizKey == cont.id_) data[i]["number"] = cont.xuan_ze_she_bei_
+    //   }
+    // },
+    // mjsbwxqrbd(cont, data) {
+    //   console.log('9995',cont)
+    //   for (let i in data) {
+    //     if (data[i].bizKey == cont.id_) data[i]["facility"] = cont.she_bei_ming_chen
+    //     if (data[i].bizKey == cont.id_) data[i]["number"] = cont.she_bei_ming_chen
+    //   }
+    // },
+    // sbwxsq(cont, data) {
+    //   console.log('6',cont)
+    //   for (let i in data) {
+    //     if (data[i].bizKey == cont.id_) data[i]["facility"] = cont.she_bei_ming_chen
+    //     if (data[i].bizKey == cont.id_) data[i]["number"] = cont.she_bei_ming_chen
+    //   }
+    // },
+    // yqsbwhjl(cont, data) {
+    //   console.log('7',cont)
+    //   for (let i in data) {
+    //     if (data[i].bizKey == cont.id_) data[i]["facility"] = cont.yi_qi_she_bei_min
+    //     if (data[i].bizKey == cont.id_) data[i]["number"] = cont.yi_qi_she_bei_min
+    //   }
+    // },
+    /**
+     * 获取格式化参数
+     */
+    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
+            }
+          })
+          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
+      this.loadData()
+    },
+    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;
+    }
+
+    .content_butts {
+      z-index: 999;
+      margin-top: 20px;
+      display: flex;
+      justify-content: flex-end;
+
+      .el-button {
+        padding: 7px 14px;
+      }
+    }
+  }
+
+}
+</style>

+ 475 - 0
src/views/platform/bpmn/bpmInstHis/listType/sheBeiYanShou.vue

@@ -0,0 +1,475 @@
+<template>
+  <div>
+    <ibps-crud ref="crud" :style="{ marginLeft: width + 'px', minHeight: '550px' }" :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.split('/')[1].split('.')[0].split(' ')[1]}} -->
+                {{ 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>
+
+      <template slot="facilitySlot"  slot-scope="scope">
+        <ibps-custom-dialog :value="scope.row.facility" template-key="sbcgdhk" :disabled="true" readonly-text="text" />
+        <!-- <span>{{scope.row.facility }}</span> -->
+      </template>
+      <template slot="facilityNumber"  slot-scope="scope">
+        <!-- <ibps-custom-dialog :value="scope.row.number" template-key="xsbxsbh" :disabled="true" readonly-text="text" /> -->
+        <span>{{ scope.row.number }}</span>
+      </template>
+
+
+
+      <template slot="facilitySlotName"  slot-scope="scope">
+        <ibps-custom-dialog :value="scope.row.facility" template-key="sbxzq" :disabled="true" readonly-text="text" />
+      </template>
+
+
+    </ibps-crud>
+
+    <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 IbpsCustomDialog from '@/business/platform/data/templaterender/custom-dialog'
+import getCont from '../corresponding/getDataCont.js'
+import GetReport from '../corresponding/getReport.js'
+export default {
+  components: {
+    IbpsTypeTree,
+    BpmnFormrender,
+    IbpsCustomDialog,
+    'ibps-attachment': IbpsAttachment
+  },
+  props: {
+    reportAll: Array,
+    tableTitle: String,
+    typeId: String
+  },
+  mixins: [FixHeight, getCont, GetReport],
+  filters:{
+    getSplit(value){
+      // let
+    }
+  },
+  data() {
+    return {
+      width: 200,
+      dialogFormVisible: false, // 弹窗
+      instanceId: '', // 编辑dialog需要使用
+      pkKey: 'id', // 主键  如果主键不是pk需要传主键
+      srcUrl: '', //报表字段
+      fileId: '',//文件字段
+      isDisable: false, //判断多次点击
+      forClick: '',//判断是否重复点击
+      visible: false,
+      currReportCont: {},
+      title: '',
+      loading: true,
+      height: document.clientHeight,
+      listData: [],
+      pagination: {},
+      sorts: {},
+      sheBei: [],
+      responseData: "",
+      dataConfig: {
+        // sbdjym: { t_sbdj: [], }, //设备登记
+        sbyzjl: { t_sbys: [] }, //设备验收
+        // sbhcjl: { t_sbhcjlb: [] },//设备核查
+        // gdzcbfsqb: { t_gdzcbfsqb: [] }, //报废申请
+        // sbwxjl: { t_sbwxjlb: [] }, //维修记录
+        // sbwxsq: { t_yqsbjdxzwxsqd: [] }, //维修申请表
+        // yqsbwhjl: { t_yqsbwhjlfb: [] }, //维护记录表
+      },
+      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
+              } */
+          ]
+        },
+        // 表格字段配置
+        columns: [
+          /* { prop: 'subject', label: '任务标题', link: 'dialog', width: 250 }, */
+          { prop: 'tYear', label: '年份', width: 58 },
+          { prop: 'tDept', label: '部门', width: 250 },
+          { prop: 'procDefName', label: '表单名称', width: 250 },
+          { prop: 'number', label: '设备编号', width: 250, fieldType: 'slot', slotName: "facilityNumber" },
+          { prop: 'facility', label: '设备名称', width: 180, fieldType: 'slot', slotName: "facilitySlot" },
+          { 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()
+  },
+  methods: {
+    // 加载数据
+    loadData() {
+      this.loading = true
+      queryPageList(this.getSearcFormData()).then(response => {
+        let data = response.data.dataResult
+        // console.log('csnz\n',data,'\n')
+        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]
+          }
+          /* 增加表单归类判断 -- */
+          let reData = this.dataConfig[data[i].formKey]
+          if (reData) {
+            reData[Object.keys(reData)[0]].push({ id_: data[i].bizKey })
+          }
+
+        }
+        /* 新增*/
+        this.getConfigId(this.dataConfig, response.data)
+        /* -0---------------*/
+      }).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('/')
+    },
+    /* 各个设备表
+    sbdjym(cont, data) {
+      for (let i in data) {
+        if (data[i].bizKey == cont.id_) data[i]["facility"] = cont.id_
+        if (data[i].bizKey == cont.id_) data[i]["number"] = cont.id_
+      }
+    },*/
+    sbyzjl(cont, data) {
+      console.log('666',cont,data)
+      for (let i in data) {
+        if (data[i].bizKey == cont.id_) {
+          data[i]["facility"] = cont.yi_qi_ming_cheng_
+          data[i]["number"] = cont.she_bei_bian_hao_
+          console.log(cont.she_bei_bian_hao_ + " : "+ cont.yi_qi_ming_cheng_)
+        }
+      }
+    },
+    /*
+    sbhcjl(cont, data) {
+      for (let i in data) {
+        if (data[i].bizKey == cont.id_) data[i]["facility"] = cont.yi_qi_ming_cheng_
+        if (data[i].bizKey == cont.id_) data[i]["number"] = cont.yi_qi_ming_cheng_
+      }
+    },
+    gdzcbfsqb(cont, data) {
+      for (let i in data) {
+        if (data[i].bizKey == cont.id_) data[i]["facility"] = cont.xuan_ze_she_bei_
+        if (data[i].bizKey == cont.id_) data[i]["number"] = cont.xuan_ze_she_bei_
+      }
+    },
+    sbwxjl(cont, data) {
+      for (let i in data) {
+        if (data[i].bizKey == cont.id_) data[i]["facility"] = cont.she_bei_ming_chen
+        if (data[i].bizKey == cont.id_) data[i]["number"] = cont.she_bei_ming_chen
+      }
+    },
+    sbwxsq(cont, data) {
+      for (let i in data) {
+        if (data[i].bizKey == cont.id_) data[i]["facility"] = cont.she_bei_ming_chen
+        if (data[i].bizKey == cont.id_) data[i]["number"] = cont.she_bei_ming_chen
+      }
+    },
+    yqsbwhjl(cont, data) {
+      for (let i in data) {
+        if (data[i].bizKey == cont.id_) data[i]["facility"] = cont.yi_qi_she_bei_min
+        if (data[i].bizKey == cont.id_) data[i]["number"] = cont.yi_qi_she_bei_min
+      }
+    },
+    */
+    /**
+     * 获取格式化参数
+     */
+    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
+            }
+          })
+          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
+      this.loadData()
+    },
+    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;
+    }
+
+    .content_butts {
+      z-index: 999;
+      margin-top: 20px;
+      display: flex;
+      justify-content: flex-end;
+
+      .el-button {
+        padding: 7px 14px;
+      }
+    }
+  }
+
+}
+</style>

+ 7 - 1
src/views/platform/bpmn/bpmInstHis/typeIndex.vue

@@ -29,6 +29,9 @@ import ceLiang from './listType/ceLiang.vue'
 import jiuZheng from './listType/jiuZheng.vue'
 import nengLiYanZheng from './listType/nengLiYanZheng.vue'
 import fengXianKongZhi from './listType/fengXianKongZhi.vue'
+import sheBeiWeiXiu from './listType/sheBeiWeiXiu.vue'
+import sheBeiBaoFei from './listType/sheBeiBaoFei.vue'
+import sheBeiYanShou from './listType/sheBeiYanShou.vue'
 export default {
   components: {
     guangShen,
@@ -48,7 +51,10 @@ export default {
     fangFa,
     touSu,
     jieGuo,
-    keHu
+    keHu,
+    sheBeiWeiXiu,
+    sheBeiBaoFei,
+    sheBeiYanShou
      },
   props:{
     listType:String,