From bf26550ac9ef8cab43d149f81d93a23345034112 Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期三, 16 八月 2023 17:37:39 +0800
Subject: [PATCH] 流程中业务数据编辑

---
 Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue   |    6 +++
 Source/UBCS-WEB/src/components/refer/vciWebRefer.vue        |    7 ++-
 Source/UBCS-WEB/src/components/refer/vciWebReferDefalut.vue |    8 +++-
 Source/UBCS-WEB/src/views/work/process/leave/handle.vue     |    1 
 Source/UBCS-WEB/src/components/work/BusinessWork.vue        |   55 +++++++++++++++++----------
 5 files changed, 50 insertions(+), 27 deletions(-)

diff --git a/Source/UBCS-WEB/src/components/refer/vciWebRefer.vue b/Source/UBCS-WEB/src/components/refer/vciWebRefer.vue
index 893ef94..a253841 100644
--- a/Source/UBCS-WEB/src/components/refer/vciWebRefer.vue
+++ b/Source/UBCS-WEB/src/components/refer/vciWebRefer.vue
@@ -19,7 +19,9 @@
     return {
       refertype: this.referConfig.options.type,
       emitData:{},
-      title:''
+      title:'',
+      display:this.display || true,
+      disabled:this.disabled || false
     };
   },
   created() {
@@ -30,7 +32,6 @@
     }
   },
   mounted() {
-    //console.log(this.referConfig.options);
     var title = this.referConfig.title || '';
     title = title.replace(":", "");
     title = title ? ('涓恒��' + title + '銆戦�夊彇鍊�') : ('涓恒��' + this.referConfig.showField + '銆戦�夊彇鍊�');
@@ -48,7 +49,7 @@
       immediate: true,
       handler(newV) {
         this.$emit("setReferValue", newV);
-      },
+      }
     }
   }
 }
diff --git a/Source/UBCS-WEB/src/components/refer/vciWebReferDefalut.vue b/Source/UBCS-WEB/src/components/refer/vciWebReferDefalut.vue
index d74fc46..a31af82 100644
--- a/Source/UBCS-WEB/src/components/refer/vciWebReferDefalut.vue
+++ b/Source/UBCS-WEB/src/components/refer/vciWebReferDefalut.vue
@@ -16,6 +16,7 @@
                  @search-change="searchChange"
                  @search-reset="searchReset"
                  @selection-change="selectionChange"
+                 @row-click="rowClick"
                  @current-change="currentChange"
                  @size-change="sizeChange"
                  @refresh-change="refreshChange"
@@ -83,8 +84,6 @@
   },
   created() {
     this.getParams();
-    // console.log('referConfig:')
-    // console.log(this.referConfig)
   },
   mounted() {
     if(this.referConfig.options.page){
@@ -254,6 +253,11 @@
     sizeChange(pageSize){
       this.page.pageSize = pageSize;
     },
+    rowClick (row) {
+      this.$refs.referDefalutCrud.toggleSelection();
+      this.$refs.referDefalutCrud.toggleRowSelection(row); //閫変腑褰撳墠琛�
+      this.selectionList=[row]
+    },
     selectionChange(list) {
       if (!this.isMuti && list.length > 1) {
         const nowVal = list.shift();
diff --git a/Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue b/Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue
index 49c1779..68050b1 100644
--- a/Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue
+++ b/Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue
@@ -15,6 +15,7 @@
                  @search-change="searchChange"
                  @search-reset="searchReset"
                  @selection-change="selectionChange"
+                 @row-click="rowClick"
                  @current-change="currentChange"
                  @size-change="sizeChange"
                  @refresh-change="refreshChange"
@@ -311,6 +312,11 @@
     sizeChange(pageSize){
       this.page.pageSize = pageSize;
     },
+    rowClick (row) {
+      this.$refs.referCrud.toggleSelection();
+      this.$refs.referCrud.toggleRowSelection(row); //閫変腑褰撳墠琛�
+      this.selectionList=[row]
+    },
     selectionChange(list) {
       if (!this.isMuti && list.length > 1) {
         const nowVal = list.shift();
diff --git a/Source/UBCS-WEB/src/components/work/BusinessWork.vue b/Source/UBCS-WEB/src/components/work/BusinessWork.vue
index 9e67e9b..a074199 100644
--- a/Source/UBCS-WEB/src/components/work/BusinessWork.vue
+++ b/Source/UBCS-WEB/src/components/work/BusinessWork.vue
@@ -22,26 +22,34 @@
       align="center"
     >
       <template slot-scope="{ row }">
-        <el-input v-if="editingRow === row && editShow== item.prop && item.edit == 'text'" v-model="row[item.prop]"
+        <el-input
+          v-if="editingRow === row && editShow== item.prop && item.edit == 'input'" v-model="row[item.prop]"
                   @blur="editingRows=null"></el-input>
-        <el-input-number size="small" controls-position="right" v-if="editingRow === row && editShow== item.prop && item.edit == 'number'" v-model="row[item.prop]"
+        <el-input-number size="small" controls-position="right"
+                         v-if="editingRow === row && editShow== item.prop && item.edit == 'number'" v-model="row[item.prop]"
                          @blur="editingRows=null" :style="{width:(item.width-10)+'px'}"></el-input-number>
-        <el-select v-model="row[item.prop]" filterable  allow-create  default-first-option slot="prepend" v-if="editingRow === row && editShow== item.prop && item.edit == 'select' " @blur="editingRows=null">
+        <el-select filterable  default-first-option slot="prepend" @change="changeSelect"
+                   v-if="editingRow === row && editShow== item.prop && item.edit == 'select' "  v-model="row[item.prop]" @blur="editingRows=null">
           <el-option
             v-for="optionItem in item.dicData"
-            :key="optionItem.dictValue"
-            :label="optionItem.dictValue"
-            :value="optionItem.dictValue">
+            :key="optionItem.key"
+            :label="optionItem.value"
+            :value="optionItem.key">
           </el-option>
         </el-select>
         <el-switch
-          v-if="item.edit === 'switch' || item.edit === 'truefalse'" v-model="row[item.prop]" active-value="true"
+          v-if="editingRow === row && editShow== item.prop && (item.edit === 'switch' || item.edit === 'truefalse')" v-model="row[item.prop]" active-value="true"
           inactive-value="false">
         </el-switch>
+        <el-date-picker
+          v-if="editingRow === row && editShow== item.prop && (item.edit == 'date' || item.edit == 'datetime') "  v-model="row[item.prop]" @blur="editingRows=null"
+          :type="item.edit" :format="item.dateFormate" :value-format="item.dateFormate"
+          placeholder="閫夋嫨鏃ユ湡">
+        </el-date-picker>
         <vciWebRefer v-if="editingRow === row && editShow== item.prop && item.edit == 'refer'"
           :referConfig="item.referConfig || {}"
           :value="row[item.referConfig.field] || row[item.prop]"
-          :text="row[item.referConfig.showField]"
+          :text="row[item.referConfig.showField]" :disabled="item.disabled" :display="item.display"
           @setReferValue="setReferValue"
         ></vciWebRefer>
         <span v-else  v-html="formatter(row,item)"></span>
@@ -143,7 +151,7 @@
           this.List = res.data.tableDefineVO.cols[0];
           this.tableHeadData=[];
           this.List.forEach((item) => {
-            let editAttr=this.stageAttrs.filter(stageitem => stageitem.attrId == item.field);
+            let editAttr=this.stageAttrs.filter(stageitem => stageitem.attrId == item.field || (item.fieldType=='combox' && stageitem.attrId+'Text' == item.field)|| (item.fieldType=='refer' && stageitem.attrId+'name' == item.field));
             let columnItem = {
               label: item.title,
               prop: item.field,
@@ -165,24 +173,26 @@
 
             }
             if(editAttr.length>0) {
-              editAttr=editAttr[0]
-              columnItem.edit= 'text';//this.columnType[editAttr.edit]
-              if (typeof editAttr.editConfig == "string") {
-                columnItem.editConfig = eval("(" + item.editConfig + ")");
-              } else {
-                columnItem.editConfig = item.editConfig
-              }
-              if (item.edit == 'select') {
+              columnItem.edit= this.columnType[item.fieldType]
+              if (columnItem.edit == 'select') {
                 //闇�瑕佽幏鍙栦笅鎷夋鏁版嵁
-                columnItem.dicData = columnItem.editConfig.comboxConfig.data || this.geDictData(columnItem.editConfig.comboxConfig.comboxKey)
+                columnItem.dicData = item.data || this.geDictData(item.comboxKey)
+                columnItem.formatter = function (row, column) {
+                  let d=column.dicData.find((value, keys, arr) => {
+                    return value.key == row[column.prop.replace('Text','')];
+                  })
+                  return row[column.prop] =(d && d.value) || row[column.prop]
+                }
               }
-              if (item.edit == 'refer') {
+              if (columnItem.edit == 'refer') {
                 columnItem.referConfig = {
                   title: item.title,
                   showField: item.showField || item.field,
-                  field: item.field,
-                  options:  columnItem.editConfig.referConfig
+                  field: item.sortField || item.field,
+                  options:  item.referConfig
                 }
+                columnItem.display=!item.hidden;
+                columnItem.disabled=item.readOnly
               }
             }
 
@@ -229,6 +239,9 @@
         this.editingRow[data.field] = data.value || "";
         this.editingRow[data.showField] = data.text || "";
       }
+    },
+    changeSelect(data){
+      this.editingRow[this.editShow.replace('Text','')] = data;
     }
   }
 }
diff --git a/Source/UBCS-WEB/src/views/work/process/leave/handle.vue b/Source/UBCS-WEB/src/views/work/process/leave/handle.vue
index 813cc12..83d8e01 100644
--- a/Source/UBCS-WEB/src/views/work/process/leave/handle.vue
+++ b/Source/UBCS-WEB/src/views/work/process/leave/handle.vue
@@ -132,7 +132,6 @@
       this.apiGetBtnTask(this.processInstanceId)
     },
     formatterPass(row, value, column) {
-      console.log('value',value)
       return value?'鍚屾剰':'椹冲洖'
     },
     async apiGetBtnTask(id) {

--
Gitblit v1.9.3