From 6f61bbb9b69fa9f54ae22e76f5332d6adc3dc4fe Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期三, 15 十一月 2023 16:06:20 +0800
Subject: [PATCH] 整合代码
---
Source/UBCS-WEB/src/components/work/BusinessWork.vue | 98 ++++++++++++++++++++++++++++++++++---------------
1 files changed, 68 insertions(+), 30 deletions(-)
diff --git a/Source/UBCS-WEB/src/components/work/BusinessWork.vue b/Source/UBCS-WEB/src/components/work/BusinessWork.vue
index b06ff4b..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>
@@ -53,7 +63,7 @@
<script>
import {businese} from '@/api/work/businese'
-import {FlowTable} from "@/api/GetItem";
+import {FlowTable, batchUpdateCode} from "@/api/GetItem";
import {validatenull} from "@/util/validate";
import {getDictionary} from "@/api/system/dict";
import vciWebRefer from "../refer/vciWebRefer.vue";
@@ -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,17 +102,39 @@
this.BuinseseRend()
},
deep:true
+ },
+ stageAttrs(newval,oldval){
+ this.hasEditor=newval.length>0;
}
},
created() {
+
},
mounted() {
},
methods:{
HandlerSave(){
- this.editingRow = null;
- //淇濆瓨
- this.$message.success(this.tableData[0].tuhao)
+ 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() {
@@ -118,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)){
//浼佷笟缂栫爜鐨勯粯璁ゆ坊鍔犺秴閾炬帴,鏆傛湭瀹炵幇
@@ -144,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
}
}
@@ -207,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