From 9b4433fddf5b401edb0aace8a404ac733b122702 Mon Sep 17 00:00:00 2001
From: 田源 <tianyuan@vci-tech.com>
Date: 星期四, 03 四月 2025 14:35:02 +0800
Subject: [PATCH] 添加非密字段显示

---
 Source/UBCS-WEB/src/components/work/BusinessWork.vue |  102 +++++++++++++++++++++++++++++++++-----------------
 1 files changed, 67 insertions(+), 35 deletions(-)

diff --git a/Source/UBCS-WEB/src/components/work/BusinessWork.vue b/Source/UBCS-WEB/src/components/work/BusinessWork.vue
index e30e6dd..6a65f49 100644
--- a/Source/UBCS-WEB/src/components/work/BusinessWork.vue
+++ b/Source/UBCS-WEB/src/components/work/BusinessWork.vue
@@ -1,6 +1,6 @@
 <template>
 <div>
-  <el-button  @click="HandlerSave" v-if="hasEditor" size="small" type="primary" style="margin-bottom: 20px">淇濆瓨</el-button>
+  <el-button  @click="HandlerSave" v-if="hasEditor" size="small" type="primary" style="margin-bottom: 10px">淇濆瓨</el-button>
   <el-table
     v-loading="isLoading"
     :data="tableData"
@@ -17,31 +17,41 @@
       :prop="item.prop"
       :sortable="item.sortable"
       :formatter="item.formatter"
-      :width="item.label.length >=4 ?'150':item.label.length==3 ?'120':'90'"
+      :width="item.width"
       :show-overflow-tooltip="true"
       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>
-        <vciWebRefer v-if="editingRow === row && editShow== item.prop && item.edit == 'refer'"
+        <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
+          :key="item.prop" :data-key="item.prop"
+          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>
@@ -61,7 +71,7 @@
 export default {
   name: "BusinessWork",
   components: { vciWebRefer },
-  props:['ids','templateId',"taskId","modelKey","codeClassifyOid"],
+  props:['ids','templateId',"taskId","modelKey","codeClassifyOid",'stageAttrs'],
   data() {
     return {
       BuinessOids:[],
@@ -92,23 +102,39 @@
         this.BuinseseRend()
       },
       deep:true
+    },
+    stageAttrs(newval,oldval){
+      this.hasEditor=newval.length>0;
     }
   },
   created() {
+
   },
   mounted() {
   },
   methods:{
     HandlerSave(){
-      this.editingRow = null;
-      //淇濆瓨
-      batchUpdateCode(this.tableData).then(res => {
-        console.log(res)
-        if(res.data.data.success){
-          this.$message.success("淇濆瓨鎴愬姛");
-        }
-
-      })
+      if(!validatenull(this.editingRow)) {
+        this.editingRow = null;
+        //淇濆瓨
+        let datas = this.tableData.map(item => {
+          let newitem = {
+            codeClassifyOid: item.codeclsfid,
+            templateOid: this.templateId,
+            editInProcess: true,
+            data: item,
+            oid: item.oid,
+            ts: item.ts
+          }
+          return newitem;
+        })
+        batchUpdateCode(datas).then(res => {
+          if (res.data.success) {
+            this.$message.success("淇敼鎴愬姛");
+            this.BuinseseRend()
+          }
+        })
+      }
     },
     //琛ㄦ牸澶存覆鏌�
     CrudHeaderRend() {
@@ -124,18 +150,17 @@
           'modelKey': this.modelKey,
           'codeClassifyOid': this.codeClassifyOid
         }).then((res) => {
-          this.hasEditor=res.data.tableDefineVO.hasEditor;
           this.options = res.data.tableDefineVO.seniorQueryColumns;
           this.List = res.data.tableDefineVO.cols[0];
           this.tableHeadData=[];
           this.List.forEach((item) => {
+            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,
               type: this.columnType[item.type],
               sortable: item.sort,
-              width: item.minWidth,
-              edit:this.columnType[item.edit]
+              width: item.minWidth
             };
             if(item.field == 'id' && validatenull(item.templet)){
               //浼佷笟缂栫爜鐨勯粯璁ゆ坊鍔犺秴閾炬帴,鏆傛湭瀹炵幇
@@ -150,23 +175,27 @@
               }
 
             }
-            if(validatenull(item.edit)) {
-              if (typeof item.editConfig == "string") {
-                columnItem.editConfig = eval("(" + item.editConfig + ")");
-              } else {
-                columnItem.editConfig = item.editConfig
-              }
-              if (item.edit == 'select') {
+            if(editAttr.length>0) {
+              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
               }
             }
 
@@ -213,6 +242,9 @@
         this.editingRow[data.field] = data.value || "";
         this.editingRow[data.showField] = data.text || "";
       }
+    },
+    changeSelect(data){
+      this.editingRow[this.editShow.replace('Text','')] = data;
     }
   }
 }

--
Gitblit v1.9.3