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