From 52ffefd06e59cbd56c1a919972866592379cfed2 Mon Sep 17 00:00:00 2001 From: xiejun <xj@2023> Date: 星期四, 21 九月 2023 11:27:11 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue | 254 ++++++++++++++++++++++++++++---------------------- 1 files changed, 141 insertions(+), 113 deletions(-) diff --git a/Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue b/Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue index 0607560..8b5bc4c 100644 --- a/Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue +++ b/Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue @@ -23,7 +23,8 @@ </el-button-group> <el-button-group> <!-- 淇濆瓨--> - <el-button v-if="(!checkStatus|| crudLCStatus=='Editing') && editOpenFlag" icon="el-icon-check" plain size="small" + <el-button v-if="(!checkStatus|| crudLCStatus=='Editing') && editOpenFlag" icon="el-icon-check" plain + size="small" type="success" @click.prevent="addsHandler">淇濆瓨 </el-button> <!-- 棰勮鎺掑簭--> @@ -67,23 +68,26 @@ </el-button-group> <!-- 鏄惁寮�鍚紪杈� --> <el-button-group> - <el-button v-if="(!checkStatus|| crudLCStatus=='Editing') && !editOpenFlag && attrEditVisible == false && attrFlagChiledren==false" icon="el-icon-view" plain - size="small" - @click="editOpen">寮�鍚紪杈� + <el-button + v-if="(!checkStatus|| crudLCStatus=='Editing') && !editOpenFlag && attrEditVisible == false && attrFlagChiledren==false" + icon="el-icon-view" plain + size="small" + @click="editOpen">寮�鍚紪杈� </el-button> + <el-select v-if="(!checkStatus || crudLCStatus=='Editing') && editOpenFlag" v-model="selectvalue" + placeholder="璇烽�夋嫨" + size="small"> + <el-option + v-for="item in selectoptions" + :key="item.value" + :label="item.label" + :value="item.value"> + </el-option> + </el-select> + <el-switch v-if="(!checkStatus || crudLCStatus=='Editing') && editOpenFlag" v-model="switchvalue" + active-value="true" style="margin:6px 0 0 10px" @change="batchSetFlag"> + </el-switch> </el-button-group> - <el-select v-if="(!checkStatus || crudLCStatus=='Editing') && editOpenFlag" v-model="selectvalue" placeholder="璇烽�夋嫨" - size="small"> - <el-option - v-for="item in selectoptions" - :key="item.value" - :label="item.label" - :value="item.value"> - </el-option> - </el-select> - <el-switch v-if="(!checkStatus || crudLCStatus=='Editing') && editOpenFlag" v-model="switchvalue" - active-value="true" style="margin:6px 0 0 10px" @change="batchSetFlag"> - </el-switch> </div> <!-- 寮圭獥--> <div> @@ -325,15 +329,20 @@ align="center" > <template slot-scope="{ row }"> - <el-input v-if="editingRows === row && editShows== item.prop && item.prop != 'codeDateFormat' && (item.edit == 'text' ||item.edit == 'refer' )" - ref="inputRef" - v-model="row[item.prop]" - autofocus @blur="saveRows"></el-input> - <el-input-number v-if="editingRows === row && editShows== item.prop && item.edit == 'number'" v-model="row[item.prop]" + <el-input + v-if="editingRows === row && editShows== item.prop && item.prop != 'codeDateFormat' && (item.edit == 'text' ||item.edit == 'refer' )" + v-show="!AddCellFlag" + :ref="'input' + row.oid" + v-model="row[item.prop]" + @blur="saveRows(row)" + ></el-input> + <el-input-number v-if="editingRows === row && editShows== item.prop && item.edit == 'number'" + v-model="row[item.prop]" :style="{width:(item.width-10)+'px'}" controls-position="right" size="small" @blur="saveRows"></el-input-number> - <el-select v-if="editingRows === row && editShows== item.prop && item.edit == 'select' " slot="prepend" v-model="row[item.prop]" allow-create default-first-option + <el-select v-if="editingRows === row && editShows== item.prop && item.edit == 'select' " slot="prepend" + v-model="row[item.prop]" allow-create default-first-option filterable @blur="selectChangeHandler(item.editConfig,index)"> <el-option @@ -371,6 +380,7 @@ import {AttrByBtm, gridCodeClassifyTemplateAttr, batchAddSave, copyto, listByFlag} from '@/api/template/templateAttr' import {getList} from "@/api/refer/table"; import func from "@/util/func"; +import {getCurrentInstance} from "vue"; export default { name: "attrCrud .vue", @@ -427,8 +437,8 @@ } }, crudArrayFlag: { - handler(newval, olaval) { - console.log('crudArrayFlag', newval) + handler(newval, oldval) { + // console.log('crudArrayFlag', newval) } }, crudArray: { @@ -472,7 +482,7 @@ }, editOpenFlag: { handler(newval, oldval) { - console.log('editOpenFlag', newval) + // console.log('editOpenFlag', newval) }, deep: true, immediate: true @@ -481,6 +491,8 @@ }, data() { return { + // 淇濆瓨鍗曞厓鏍肩姸鎬� + AddCellFlag: false, //鍏ㄥ睆缂栬緫楂樺害鐘舵�� editStyleFlag: false, loading: false, @@ -1075,11 +1087,13 @@ column: [ { label: "灞炴�ц嫳鏂囧悕绉�", - prop: "id" + prop: "id", + width: 100, }, { label: "灞炴�т腑鏂囧悕绉�", - prop: "name" + prop: "name", + width: 100, }, { label: "闀垮害", @@ -1120,7 +1134,7 @@ prop: "precisionLength" }, { - label: "灏忕簿鍒诲害", + label: "灏忔暟鍒诲害", prop: "scaleLength" }, { @@ -1562,9 +1576,6 @@ //鍙緭鍙�変笅鎷� selectChangeHandler(editConfig, index) { let that = this; - /*if(that.option.column[index].data && that.option.column[index].data.length>=0){ - return; - }*/ listByFlag(editConfig.extraParams).then(res => { that.option.column[index].data = res.data.data; }) @@ -1583,7 +1594,7 @@ item.attributeGroup = this.attrModel }) if (this.CurrentCell) { - this.$set(this.CurrentCell, 'attributeGroup', this.attrModel) + this.$set(this.CurrentCell, 'attributeGroup', this.attrModel); } else { this.$set(this.attrSelectList[0], 'attributeGroup', this.attrModel) } @@ -1740,11 +1751,9 @@ addsHandler(event) { this.$refs.referAttrCrud.sort("orderNum"); var ischeck = true; - console.log(this.ProData) this.ProData.forEach((item, index) => { if ((item.requireFlag && item.requireFlag.toString() == 'true') && (item.readOnlyFlag && item.readOnlyFlag.toString() == 'true')) { this.$message.warning(item.name + "(" + item.id + ")蹇呰緭鐨勫睘鎬т笉鑳芥槸鍙"); - console.log(item) ischeck = false; return; } @@ -1752,29 +1761,23 @@ if (item.componentRule) { //缁勫悎瑙勫垯 num++ - console.log('componentRule', num) } if (item.enumString || item.enumId) { //鏋氫妇 num++ - console.log('enumString', num) } if (item.referConfig || item.referBtmId) { //鍙傜収 num++ - console.log('referConfig', num) } if (item.codeDateFormat) { //鏃堕棿鏍煎紡 num++ - console.log('codeDateFormat', num) } //濡傛灉绌哄悗鍙拌繑鍥瀗one if (item.classifyInvokeLevel && item.classifyInvokeLevel != 'none') { //鍒嗙被娉ㄥ叆 num++ - console.log('classifyInvokeLevel', num) - console.log(item.classifyInvokeLevel) } if (num > 1 && ischeck) { this.$message({ @@ -1796,6 +1799,7 @@ this.editOpenFlag = false; // 璋冪敤鐖剁粍浠朵慨鏀规寜閽姸鎬� this.$emit('editCloseChildren') + this.AddCellFlag = true; }).catch(() => { this.$message.warning('淇濆瓨澶辫触锛岃鏌ョ湅鎺у埗鍙拌緭鍑猴紒') }); @@ -1810,63 +1814,82 @@ this.editShows = column.property; this.rowOid = row.oid; this.CurrentCell = row; - if (column.property == 'referConfig') { - this.referConfigVisble = true; - this.referConfigOption = { - referConfig: this.CurrentCell.referConfig || '', + this.$nextTick(() => { + const inputs = this.$refs['input' + row.oid]; + const input = inputs && inputs.length > 0 ? inputs[0].$el : null; + if (input) { + input.focus(); } - if (this.CurrentCell.referConfig == '') { + }); + const columnActions = { + referConfig: () => { + this.referConfigVisble = true; this.referConfigOption = { - referConfig: '', + referConfig: this.CurrentCell.referConfig || '', + } + if (this.CurrentCell.referConfig == '') { + this.referConfigOption = { + referConfig: '', + } + } + }, + classifyInvokeText: () => { + this.injectVisible = true; + if (this.CurrentCell.classifyInvokeAttr != '') { + this.injectOption = { + classifyInvokeAttr: this.CurrentCell.classifyInvokeAttr, + classifyInvokeAttrName: this.CurrentCell.classifyInvokeAttrName, + classifyInvokeEditFlag: this.CurrentCell.classifyInvokeEditFlag, + classifyInvokeLevel: this.CurrentCell.classifyInvokeLevel == 'min' ? 'min' : 'max', + classifyNumber: this.CurrentCell.classifyInvokeLevel == 'min' ? '' : this.CurrentCell.classifyInvokeLevel + }; + } + }, + componentRule: () => { + this.isShowformulaEdit = true; + }, + enumString: () => { + this.enumVisible = true; + this.tableData = []; + if (this.CurrentCell.enumString != "") { + this.tableData = JSON.parse(this.CurrentCell.enumString) + return; + } + }, + parentCode: () => { + gridCodeClassifyTemplateAttr({ + 'conditionMap[classifyTemplateOid]': this.Formlist[0].oid, + 'conditionMap[oid_notequal]': this.CurrentCell.oid, + limit: -1 + }).then(res => { + this.CascadeData = res.data.data; + }) + this.CascadeVisible = true; + }, + verifyRule: () => { + this.RulesForm.expressionTextt = this.CurrentCell.verifyRule; + this.rulesVisible = true; + }, + attributeGroup: () => { + this.attrVisible = true; + if (this.CurrentCell.attributeGroup !== '') { + this.attrModel = this.CurrentCell.attributeGroup } } - // this.$refs.referConfigFormDialog.onloadAttrData(); - } else if (column.property == 'classifyInvokeText') { - this.injectVisible = true; - if (this.CurrentCell.classifyInvokeAttr != '') { - this.injectOption = { - classifyInvokeAttr: this.CurrentCell.classifyInvokeAttr, - classifyInvokeAttrName: this.CurrentCell.classifyInvokeAttrName, - classifyInvokeEditFlag: this.CurrentCell.classifyInvokeEditFlag, - classifyInvokeLevel: this.CurrentCell.classifyInvokeLevel == 'min' ? 'min' : 'max', - classifyNumber: this.CurrentCell.classifyInvokeLevel == 'min' ? '' : this.CurrentCell.classifyInvokeLevel - }; - } else { - // this.injectHandleReset(); - } - } else if (column.property == 'componentRule') { - if (this.CurrentCell) { - this.CurrentCell.componentRule = this.componentRuleText; - } - this.isShowformulaEdit = true; - } else if (column.property == 'enumString') { - this.enumVisible = true; - if (this.attrSelectList[0].enumString != "") { - this.tableData = JSON.parse(this.attrSelectList[0].enumString) - return - } - } else if (column.property == 'parentCode') { - gridCodeClassifyTemplateAttr({ - 'conditionMap[classifyTemplateOid]': this.Formlist[0].oid, - 'conditionMap[oid_notequal]': this.CurrentCell.oid, - limit: -1 - }).then(res => { - this.CascadeData = res.data.data; - }) - this.CascadeVisible = true; - } else if (column.property == 'verifyRule') { - this.RulesForm.expressionTextt = this.CurrentCell.verifyRule; - this.rulesVisible = true; - } else if (column.property == 'attributeGroup') { - this.attrVisible = true; - if (this.CurrentCell.attributeGroup !== '') { - this.attrModel = this.CurrentCell.attributeGroup - } + }; + + if (column.property in columnActions) { + columnActions[column.property](); } } }, saveRows() { this.editingRows = null; + this.editShows = null; + // const inputElement = document.querySelector(`#inputRef${this.CurrentCell.oid}`); + // if (inputElement) { + // inputElement.blur(); + // } }, // 鏋氫妇娉ㄥ叆娣诲姞涓�琛岀┖鏁版嵁 addRow() { @@ -1970,6 +1993,7 @@ rulesHandle() { if (this.CurrentCell) { this.$set(this.CurrentCell, 'verifyRule', this.RulesForm.expressionText) + this.AddCellFlag = !this.AddCellFlag; } else { this.attrSelectList.forEach((item) => { this.$set(item, 'verifyRule', this.RulesForm.expressionText) @@ -1997,42 +2021,43 @@ }, //鍒嗙被娉ㄥ叆淇濆瓨 injectAddHandle() { - // 瀹氫箟灞曠ず绫诲瀷 - let data = { - "娉ㄥ叆绫诲瀷": this.injectOption.classifyInvokeAttr, - "娉ㄥ叆绫诲瀷鍚嶇О": this.injectOption.classifyInvokeAttrName, - "灞傜骇璁剧疆": this.injectOption.classifyInvokeLevel == 'max' ? this.injectOption.classifyNumber : 'min', - "鏄惁鍙慨鏀�": this.injectOption.classifyInvokeEditFlag - } - //鍕鹃�夋搷浣� + const { + classifyInvokeAttr, + classifyInvokeAttrName, + classifyInvokeLevel, + classifyInvokeEditFlag, + classifyNumber + } = this.injectOption; + + const data = { + "娉ㄥ叆绫诲瀷": classifyInvokeAttr, + "娉ㄥ叆绫诲瀷鍚嶇О": classifyInvokeAttrName, + "灞傜骇璁剧疆": classifyInvokeLevel === 'max' ? classifyNumber : 'min', + "鏄惁鍙慨鏀�": classifyInvokeEditFlag + }; for (const key in this.injectOption) { this.attrSelectList[0][key] = this.injectOption[key]; - //濡傛灉鏄寚瀹氬眰璧嬪�间负鏁板瓧 - if (this.injectOption.classifyInvokeLevel !== 'min') { - this.attrSelectList[0].classifyInvokeLevel = this.injectOption.classifyNumber + if (classifyInvokeLevel !== 'min') { + this.attrSelectList[0].classifyInvokeLevel = classifyNumber; } else { - this.attrSelectList[0].classifyInvokeLevel = 'min' + this.attrSelectList[0].classifyInvokeLevel = 'min'; } - this.$set(this.attrSelectList[0], 'classifyInvokeText', data) + this.$set(this.attrSelectList[0], 'classifyInvokeText', data); } - // this.injectHandleReset() - - if (this.injectOption.classifyInvokeLevel !== 'min') { - this.injectOption.classifyInvokeLevel = this.injectOption.classifyNumber; + if (classifyInvokeLevel !== 'min') { + this.injectOption.classifyInvokeLevel = classifyNumber; } else { this.injectOption.classifyNumber = 0; } this.injectVisible = false; - }, //鍒嗙被娉ㄥ叆娓呯┖ injectHandleReset() { - // this.injectOption.classifyInvokeAttrName = "鍒嗙被鍚嶇О"; - // this.injectOption.classifyInvokeAttr = "name"; - // this.injectOption.classifyInvokeLevel = "min"; - // this.injectOption.classifyInvokeEditFlag = "true"; - // this.injectOption.classifyNumber = "0"; this.$set(this.CurrentCell, 'classifyInvokeText', '') + this.$set(this.CurrentCell, 'classifyInvokeAttr:', '') + this.$set(this.CurrentCell, 'classitwInvokeAttrName', '') + this.$set(this.CurrentCell, 'classifyInvokeEditFlag', 'false') + this.$set(this.CurrentCell, 'classifyInvokeLevel', 'none') this.injectVisible = false; }, // 鍒嗙被娉ㄥ叆鍙栨秷 @@ -2090,6 +2115,7 @@ this.editStyleFlag = true; this.attrEditVisible = true; this.attrFlag = true; + this.AddCellFlag = true; } }, @@ -2103,6 +2129,7 @@ updataFormlaContent(val) { if (this.CurrentCell) { this.$set(this.CurrentCell, 'componentRule', val.replace(/"/g, '')) + this.componentRuleText = this.CurrentCell.componentRule } else { this.$set(this.attrRow, 'componentRule', val.replace(/"/g, '')) } @@ -2117,13 +2144,14 @@ this.$set(this.attrRow, 'referConfig', JSON.stringify(content)) } }, - // 鎺掑簭 + // 鎺掑簭 this.AddCellFlag=false; sortChange(val) { - console.log(val) + // console.log(val) }, //寮�鍚紪杈� editOpen() { this.editOpenFlag = true; + this.AddCellFlag = false; }, //瀹氫箟涓�涓叧闂紪杈戠殑鏂规硶渚涘瓙缁勪欢浣跨敤 editClose() { -- Gitblit v1.9.3