From 41021633bfee5b5c9c57cb888423f3392c530f98 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期一, 25 三月 2024 18:31:08 +0800 Subject: [PATCH] 业务类型bug修改,集成接口,远程部署等功能修改。 --- Source/UBCS-WEB/src/views/modeling/BusinessEdit.vue | 331 +++++++++++++++++++++++++++++++++++------------------- 1 files changed, 213 insertions(+), 118 deletions(-) diff --git a/Source/UBCS-WEB/src/views/modeling/BusinessEdit.vue b/Source/UBCS-WEB/src/views/modeling/BusinessEdit.vue index d60c8cb..4508f71 100644 --- a/Source/UBCS-WEB/src/views/modeling/BusinessEdit.vue +++ b/Source/UBCS-WEB/src/views/modeling/BusinessEdit.vue @@ -1,18 +1,19 @@ <template> <el-dialog - title="涓氬姟绫诲瀷" - :visible.sync="showSubmitDialog" v-loading="loading" + :visible.sync="showSubmitDialog" append-to-body - @close="closeSubmitDialog" - width="70%" - top="6vh" style="height: 115vh;" + title="涓氬姟绫诲瀷" + top="6vh" + width="70%" + @close="closeSubmitDialog" > - <el-form ref="form" :model="btmEditType" show-message="true" inline size="medium" label-suffix=":" class="btmTypeForm" - :rules="rules" @resetFields="resetForm" status-icon="true"> - <el-form-item label="鑻辨枃鍚嶇О" label-width="100px" prop="id"> - <el-input v-model="btmType.id" :prefix-icon="icons.key" :disabled="true"></el-input> + <el-form ref="form" :model="btmType" :rules="rules" class="btmTypeForm" inline label-suffix=":" + show-message="true" + size="medium" status-icon="true" @resetFields="resetForm"> + <el-form-item label="鑻辨枃鍚嶇О" label-width="100px" prop="id"> + <el-input v-model="btmType.id" :disabled="true" :prefix-icon="icons.key"></el-input> </el-form-item> <el-form-item label="涓枃鍚嶇О" label-width="100px"> <el-input v-model="btmType.name" :prefix-icon="icons.name"></el-input> @@ -20,33 +21,33 @@ <!-- <el-form-item label="鏁版嵁搴撹〃鍚�" label-width="100px"> <el-input v-model="btmType.tableName" :prefix-icon="icons.tableName"></el-input> </el-form-item> --> - <el-form-item label="鎵�灞為鍩�" label-width="100px" prop="domain" class="domainSelect"> - <el-select placeholder="璇烽�夋嫨棰嗗煙" v-model="btmType.bizDomain" :prefix-icon="icons.domain"> + <el-form-item class="domainSelect" label="鎵�灞為鍩�" label-width="100px" prop="domain"> + <el-select v-model="btmType.bizDomain" :prefix-icon="icons.domain" placeholder="璇烽�夋嫨棰嗗煙" @change="domainChange"> <el-option v-for="item in domainOption" - :label="item.label" :value="item.value" :key="item.value"> + :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> </el-form-item> <el-form-item label="鐗堟湰瑙勫垯" label-width="100px"> <el-input v-model="btmType.revisionRuleName" :prefix-icon="icons.revisionRule" - class="revisionRule" - @focus="openRevision" - clearable - @clear="clearRevision" :suffix-icon="icons.referType" - placeholder="璇烽�夋嫨锛岀暀绌哄垯涓嶈繘琛岀鐞�"> + class="revisionRule" + clearable + placeholder="璇烽�夋嫨锛岀暀绌哄垯涓嶈繘琛岀鐞�" + @clear="clearRevision" + @focus="openRevision"> </el-input> </el-form-item> <el-form-item label="鐢熷懡鍛ㄦ湡" label-width="100px"> <el-input v-model="btmType.lifeCycleName" :prefix-icon="icons.lifeCycle" - class="lifeCycle" - @focus="openLifeCycle" - clearable - @clear="clearLifeCycle" :suffix-icon="icons.referType" - placeholder="璇烽�夋嫨锛岀暀绌哄垯涓嶈繘琛岀鐞�"> + class="lifeCycle" + clearable + placeholder="璇烽�夋嫨锛岀暀绌哄垯涓嶈繘琛岀鐞�" + @clear="clearLifeCycle" + @focus="openLifeCycle"> </el-input> </el-form-item> <!-- <div>--> @@ -57,35 +58,40 @@ <!-- <el-input v-model="btmType.view" :prefix-icon="icons.view" :disabled="!btmType.viewFlag"></el-input>--> <!-- </el-form-item>--> <!-- </div>--> - <el-form-item label="鎻忚堪" label-width="100px" class="description"> - <el-input v-model="btmType.description" + <el-form-item class="description" label="鎻忚堪" label-width="100px"> + <el-input id="descId" + v-model="btmType.description" :prefix-icon="icons.desc" class="descClass" - id="descId" ></el-input> </el-form-item> </el-form> - <avue-crud :option="option" + <avue-crud ref="attrTable" :data="btmType.attributes" - :page.sync="page" - ref="attrTable"> - <template slot-scope="scope" slot="menuLeft"> - <el-button type="danger" - icon="el-icon-plus" + :option="option" + :page.sync="page"> + <template slot="menuLeft" slot-scope="scope"> + <el-button icon="el-icon-plus" size="small" + type="danger" @click="rowAdd()">灞炴�ч�夋嫨 </el-button> </template> <template slot="attrDataTypeText" slot-scope="{row}"> - <el-tag>{{ row.attrDataTypeText }}</el-tag> + <el-tag v-if="row.attrDataTypeText">{{ row.attrDataTypeText }}</el-tag> + </template> + <template slot="isDefaultAttr" slot-scope="{row}"> + <el-tag v-if="row.isDefaultAttr" type="success">鏄�</el-tag> + <el-tag v-else type="danger">鍚�</el-tag> </template> <template slot="menu" slot-scope="{row,index}"> - <el-button icon="el-icon-edit" size="small" type="text" v-if="!row.$cellEdit" @click="cellEditClick(row,index)">缂栬緫 + <el-button v-if="!row.$cellEdit" icon="el-icon-edit" size="small" type="text" @click="cellEditClick(row,index)"> + 缂栬緫 </el-button> - <el-button icon="el-icon-delete" size="small" type="text" v-if="!row.$cellEdit" + <el-button v-if="!row.$cellEdit" icon="el-icon-delete" size="small" type="text" @click="removeFormAttrTable(row,index)">绉婚櫎 </el-button> - <el-button icon="el-icon-check" size="small" type="text" v-if="row.$cellEdit" @click="cellEditSave(row,index)"> + <el-button v-if="row.$cellEdit" icon="el-icon-check" size="small" type="text" @click="cellEditSave(row,index)"> 淇濆瓨 </el-button> </template> @@ -96,23 +102,23 @@ </div> <!-- 灞炴�ф睜鐨勯�夋嫨 --> - <el-dialog title="灞炴�ф睜" - :visible="attrRef.visible" + <el-dialog :visible="attrRef.visible" append-to-body - @close="closeAttrDialog" + title="灞炴�ф睜" width="80%" + @close="closeAttrDialog" > - <avue-crud class="attrRef" - :option="attrRef.option" + <avue-crud ref="attrRef" + v-loading="attrRef.loading" :data="attrRef.data" + :option="attrRef.option" :page.sync="attrRef.page" - ref="attrRef" + class="attrRef" @on-load="attrRefOnLoad" @search-change="attrRefSearch" - @selection-change="selectionChange" - v-loading="attrRef.loading"> + @selection-change="selectionChange"> <template slot="typeValue" slot-scope="scope"> - <el-tag>{{ scope.row.typeValue }}</el-tag> + <el-tag v-if="scope.row.typeValue">{{ scope.row.typeValue }}</el-tag> </template> </avue-crud> <div slot="footer" class="dialog-footer"> @@ -121,18 +127,18 @@ </div> </el-dialog> <!-- 鐗堟湰瑙勫垯鐨勫弬鐓� --> - <el-dialog title="璇烽�夋嫨鐗堟湰瑙勫垯" - :visible.sync="revisionRef.visible" + <el-dialog :visible.sync="revisionRef.visible" append-to-body + title="璇烽�夋嫨鐗堟湰瑙勫垯" width="80%"> - <avue-crud class="revisionRef" - :option="revisionRef.option" - :data="revisionRef.data" - :page.sync="revisionRef.page" - ref="revisionRef" - @row-click="revisionClick" + <avue-crud ref="revisionRef" v-loading="revisionRef.loading" + :data="revisionRef.data" + :option="revisionRef.option" + :page.sync="revisionRef.page" + class="revisionRef" + @row-click="revisionClick" @search-change="searchRevisionRule" @search-reset="clearSearchRevisionRule"> <template slot="radio" @@ -149,18 +155,18 @@ </el-dialog> <!-- 鐢熷懡鍛ㄦ湡鐨勫弬鐓� --> - <el-dialog title="璇烽�夋嫨鐢熷懡鍛ㄦ湡" - :visible.sync="lifeCycleRef.visible" + <el-dialog :visible.sync="lifeCycleRef.visible" append-to-body + title="璇烽�夋嫨鐢熷懡鍛ㄦ湡" width="80%"> - <avue-crud class="lifeCycleRef" - :option="lifeCycleRef.option" - :data="lifeCycleRef.data" - :page.sync="lifeCycleRef.page" - ref="lifeCycleRef" - @row-click="lifeCycleClick" + <avue-crud ref="lifeCycleRef" v-loading="lifeCycleRef.loading" + :data="lifeCycleRef.data" + :option="lifeCycleRef.option" + :page.sync="lifeCycleRef.page" + class="lifeCycleRef" + @row-click="lifeCycleClick" @search-change="searchLifeCycle" @search-reset="clearSearchLifeCycle"> <template slot="radio" @@ -183,7 +189,7 @@ <script> -import {add, update} from '@/api/omd/btmType'; +import {add, defaultRequestHandler, update} from '@/api/omd/btmType'; import {queryPage} from '@/api/omd/OmdAttribute'; import {getPage} from '@/api/omd/revisionRule'; import {getList} from '@/api/modeling/cycle'; @@ -193,7 +199,7 @@ props: { btmType: { type: Object, - default:{} + default: {} }, domainOption: { type: Array @@ -202,19 +208,37 @@ type: Array }, type: { - type:String, + type: String, }, - btmEditType:{ - type:Object, - default: {} - } }, watch: { + btmType(newval) { + if (newval) { + //鎵�灞為鍩� + if (newval.domainText) { + this.getDefaultData('defaultAttr', 'domainData', 'domainFirstSelection', 'get'); + }else { + this.domainFirstValue = false; + } + //鐗堟湰瑙勫垯 + if (newval.revisionRuleName && newval.revisionRuleId) { + this.getDefaultData('reVersionRule', 'ruleData', 'ruleFirstSelection', 'get'); + }else { + this.ruleFirstValue = false; + } + //鐢熷懡鍛ㄦ湡 + if (newval.lifeCycleId && newval.lifeCycleName) { + this.getDefaultData('lifeCycle', 'lifeData', 'lifeCycleSelection', 'get'); + }else { + this.lifeCycleValue = false; + } + } + } }, data() { return { form: {}, - loading:false, + loading: false, showSubmitDialog: false, option: { height: "330px", @@ -229,7 +253,7 @@ delBtn: false, columnBtn: false, menuWidth: 150, - refreshBtn:false, + refreshBtn: false, addBtn: false, highlightCurrentRow: true, column: [ @@ -237,13 +261,13 @@ label: '鑻辨枃鍚嶇О', prop: 'id', align: 'center', - disabled:true + disabled: true }, { label: '涓枃鍚嶇О', prop: 'name', align: 'center', cell: true - },{ + }, { label: "绫诲瀷", prop: "attrDataTypeText", align: 'center', @@ -260,6 +284,13 @@ prop: "description", align: 'center', cell: true + }, + { + label: '榛樿瀛楁', + prop: 'isDefaultAttr', + align: 'center', + cell: true, + slot: true } ] }, @@ -289,7 +320,7 @@ prop: 'id', align: 'left', search: true, - disabled:true, + disabled: true, width: 230 }, { label: '涓枃鍚嶇О', @@ -362,7 +393,7 @@ { label: '鑻辨枃鍚嶇О', prop: 'id', - disabled:true, + disabled: true, search: true }, { @@ -427,7 +458,7 @@ { label: '鑻辨枃鍚嶇О', prop: 'id', - disabled:true, + disabled: true, search: true }, { @@ -476,12 +507,85 @@ {required: true, message: '璇烽�夋嫨鎵�灞為鍩�', trigger: 'blur'} ] }, + domainData: [], + ruleData: [], + lifeData: [], + domainFirstSelection: true, + domainFirstValue: true, + ruleFirstSelection: true, + ruleFirstValue: true, + lifeCycleSelection: true, + lifeCycleValue: true, } }, created() { - }, methods: { + //鎵�灞為鍩焎hange + domainChange(){ + if(!this.domainFirstValue){ + this.getDefaultData('defaultAttr', 'domainData', 'domainFirstSelection', 'detail'); + this.domainFirstValue = true; + } + }, + getDefaultData(requestType, dataName, selectionName, type) { + if (type === 'get') { + defaultRequestHandler(requestType).then(res => { + this[dataName] = res.data.data; + res.data.data.forEach(item => { + let data = { + id: item.id, + name: item.name, + attrDataType: item.attrDataType, + attrDataTypeText: item.attrDataTypeText, + defaultValue: item.defaultValue, + description: item.description, + attributeLength: item.attributeLength, + referBtmTypeId: item.referTypeCode, + referBtmTypeName: item.referToName, + enumId: item.dictCode, + isDefaultAttr: item.isDefaultAttr + } + if (!this.btmType.attributes) { + this.btmType.attributes = []; + } + // 鑾峰彇閲嶅鐨刬d + let isIds = this.btmType.attributes.filter(attr => attr.id === data.id); + if (isIds.length === 0) { + this.btmType.attributes.push(data); + } + }) + this.attrRefOnLoad() + }); + } else { + if (this[selectionName]) { + defaultRequestHandler(requestType).then(res => { + this[dataName] = res.data.data; + res.data.data.forEach(item => { + let data = { + id: item.id, + name: item.name, + attrDataType: item.attrDataType, + attrDataTypeText: item.attrDataTypeText, + defaultValue: item.defaultValue, + description: item.description, + attributeLength: item.attributeLength, + referBtmTypeId: item.referTypeCode, + referBtmTypeName: item.referToName, + enumId: item.dictCode, + isDefaultAttr: item.isDefaultAttr + } + if (!this.btmType.attributes) { + this.btmType.attributes = []; + } + this.btmType.attributes.push(data); + }) + this.attrRefOnLoad() + this[selectionName] = false; + }); + } + } + }, // 鍏抽棴缁勪欢寮圭獥 closeSubmitDialog() { this.showSubmitDialog = false; @@ -513,12 +617,7 @@ const data = res.data.data; this.attrRef.page.total = data.total; this.attrRef.data = data.records; - }); - setTimeout(() => { this.attrRef.loading = false; - }, 600) - this.$nextTick(() => { - this.$refs.attrRef.refreshTable(); }); }, // 灞炴�ф睜妫�绱� @@ -561,6 +660,8 @@ }); this.attrRef.queryNotIn += (item.id + ",") }); + this.$refs.attrRef.selectClear(); + this.attrRef.selectData = []; this.attrRef.data = []; this.closeAttrDialog(); }, @@ -572,26 +673,20 @@ // 娣诲姞涓氬姟绫诲瀷 submitBtmType() { // console.log(this.btmType); - if (!this.btmType.attributes){ + if (!this.btmType || !this.btmType.attributes) { this.$message.warning("杩樻病鏈変负涓氬姟绫诲瀷閫夋嫨灞炴��"); return; - }else{ - let nullFlag = false; - this.btmType.attributes.forEach(item => { - if (!item.name){ - this.$message.warning("绗�" + (item.$index+1) + "琛岀殑涓枃鍚嶇О涓嶈兘涓虹┖"); - nullFlag = true; - return; - } - }) - if (nullFlag){ - return; - } - } - add(this.btmType, true).then(res => { + const hasEmptyName = this.btmType.attributes.some(item => !item.name); + if (hasEmptyName) { + this.$message.warning('璇锋鏌ヨ〃鏍间腑鏄惁瀛樺湪涓枃鍚嶇О涓虹┖锛�') + return; + } + this.btmType.attributes = this.btmType.attributes.filter(item => !item.isDefaultAttr); + add(this.btmType,true).then(res => { + // console.log(res) // 娣诲姞瀹屾垚锛屽洖璋冪埗缁勪欢鐨勫埛鏂� - this.$message.success('淇濆瓨鎴愬姛'); + this.$message.success(res.data.msg); this.cancleSubmitBtmType(); this.$emit('refreshTable'); }) @@ -618,7 +713,7 @@ cell.$cellEdit = true; }, // 鍒楄〃缂栬緫淇濆瓨 - cellEditSave(row,index) { + cellEditSave(row, index) { this.btmType.attributes[index].name = row.name this.btmType.attributes[index].defaultValue = row.defaultValue; this.btmType.attributes[index].description = row.description; @@ -632,7 +727,7 @@ this.revisionRuleOnLoad(); }, // 鐗堟湰鍙傜収鍒楄〃鐨勯粯璁ゆ煡璇㈡柟娉� - revisionRuleOnLoad(){ + revisionRuleOnLoad() { this.revisionRef.loading = true; getPage().then(res => { this.revisionRef.data = res.data.data.records; @@ -650,14 +745,12 @@ this.lifeCycleOnLoad(); }, // 鐢熷懡鍛ㄦ湡鍒楄〃鐨勯粯璁ゆ煡璇㈡柟娉� - lifeCycleOnLoad(){ + lifeCycleOnLoad() { this.lifeCycleRef.loading = true; getList().then(res => { this.lifeCycleRef.data = res.data.data.records; - }); - setTimeout(() => { this.lifeCycleRef.loading = false; - }, 600) + }); this.$nextTick(() => { this.$refs.lifeCycleRef.refreshTable(); }); @@ -676,6 +769,10 @@ this.btmType.revisionRuleId = this.revisionRef.selectData.id; this.btmType.revisionRuleName = this.revisionRef.selectData.name; this.btmType.inputRevisionFlag = false; + if(!this.ruleFirstValue){ + this.getDefaultData('reVersionRule', 'ruleData', 'ruleFirstSelection', 'detail'); + this.ruleFirstValue = true; + } this.cancelRevision(); }, // 纭閫変腑鐢熷懡鍛ㄦ湡 @@ -683,6 +780,10 @@ this.btmType.lifeCycleFlag = true; this.btmType.lifeCycleId = this.lifeCycleRef.selectData.id; this.btmType.lifeCycleName = this.lifeCycleRef.selectData.name; + if(!this.lifeCycleValue){ + this.getDefaultData('lifeCycle', 'lifeData', 'lifeCycleSelection', 'detail'); + this.lifeCycleValue = true; + } this.cancelLifeCycle(); }, // 鍙栨秷閫変腑鐗堟湰瑙勫垯 @@ -736,16 +837,16 @@ * @param params 鎼滅储妗嗚緭鍏ュ�� {id: '',name: ''} 鐩存帴鑾峰彇灏辫 * @param done 鎵ц瀹屾垚鍚庣殑鍥炶皟 */ - searchRevisionRule(params,done){ + searchRevisionRule(params, done) { let condition = {}; - if (params.id){ + if (params.id) { condition['id_like'] = params.id; } - if (params.name){ + if (params.name) { condition['name_like'] = params.name; } this.revisionRef.loading = true; - getPage(this.revisionRef.page.currentPage,this.revisionRef.page.pageSize,condition).then(res => { + getPage(this.revisionRef.page.currentPage, this.revisionRef.page.pageSize, condition).then(res => { this.revisionRef.data = res.data.data.records; }); setTimeout(() => { @@ -761,32 +862,26 @@ * @param params 鎼滅储妗嗚緭鍏ュ�� * @param done 鎵ц瀹屾垚鍚庣殑鍥炶皟 */ - searchLifeCycle(params,done){ + searchLifeCycle(params, done) { let condition = {}; - if (params.id){ + if (params.id) { condition['id_like'] = params.id; } - if (params.name){ + if (params.name) { condition['name_like'] = params.name; } this.lifeCycleRef.loading = true; - getList(this.lifeCycleRef.page.currentPage,this.lifeCycleRef.page.pageSize,condition).then(res => { + getList(this.lifeCycleRef.page.currentPage, this.lifeCycleRef.page.pageSize, condition).then(res => { this.lifeCycleRef.data = res.data.data.records; - }); - setTimeout(() => { - done(); this.lifeCycleRef.loading = false; - }, 600); - this.$nextTick(() => { - this.$refs.lifeCycleRef.refreshTable(); }); }, // 鍙栨秷鐗堟湰瑙勫垯鎼滅储 - clearSearchRevisionRule(item){ + clearSearchRevisionRule(item) { this.revisionRuleOnLoad(); }, // 鍙栨秷鐢熷懡鍛ㄦ湡鎼滅储 - clearSearchLifeCycle(item){ + clearSearchLifeCycle(item) { this.lifeCycleOnLoad(); console.log(item); } -- Gitblit v1.9.3