From 4a2835ddadb796c69f180097b95f971dbab4687d Mon Sep 17 00:00:00 2001 From: ludc Date: 星期三, 13 九月 2023 09:09:14 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/UBCS-WEB/src/views/code/code.vue | 352 ++++++++-------------------------------------------------- 1 files changed, 48 insertions(+), 304 deletions(-) diff --git a/Source/UBCS-WEB/src/views/code/code.vue b/Source/UBCS-WEB/src/views/code/code.vue index 697ae5e..dbc4044 100644 --- a/Source/UBCS-WEB/src/views/code/code.vue +++ b/Source/UBCS-WEB/src/views/code/code.vue @@ -47,7 +47,7 @@ </el-button> <el-button v-show="scope.row.lcStatus == 'Editing' ? true : false" - :disabled="releadDisabled" + :loading="releadDisabled" icon="el-icon-position" plain size="small" @@ -156,7 +156,7 @@ > </advanced-query> - <!-- 缂栫爜瑙勫垯鐩稿叧瀵硅瘽妗� --> + <!-- 浠ヤ笅鏄紪鐮佽鍒欑浉鍏冲璇濇 --> <el-dialog :visible.sync="codeRangeSettingBox" append-to-body @@ -177,148 +177,18 @@ </el-dialog> <!-- 缂栫爜瑙勫垯,鍏嬮殕瀵硅瘽妗� --> - <el-dialog + <clone-rule-dialog :visible.sync="cloneSettingBox" - append-to-body - class="avue-dialog avue-dialog--top" - style="height: 100vh" - title="鍏嬮殕缂栫爜瑙勫垯" - top="-3%" - width="800px" - > - <div> - <el-row> - <el-form ref="form" :inline="true" :model="form" label-width="80px"> - <el-form-item label="缂栧彿" required> - <el-input v-model="cloneCodeRuleForm.id"></el-input> - </el-form-item> - <el-form-item label="鍚嶇О" required> - <el-input v-model="cloneCodeRuleForm.name"></el-input> - </el-form-item> - <el-form-item class="clone-input-textarea" label="鎻忚堪"> - <el-input - v-model="cloneCodeRuleForm.description" - :autosize="{ minRows: 3, maxRows: 5 }" - type="textarea" - ></el-input> - </el-form-item> - </el-form> - </el-row> - <el-row> - <p - style=" - margin: 0 0px 16px 50%; - font-weight: 500; - font-size: 20px; - color: #000; - " - > - 鐮佹绠$悊 - </p> - <avue-crud - :data="cloneData" - :option="cloneOption" - :table-loading="cloneTableLoading" - class="clone-avue-crud" - @on-load="cloneDataOnLoad" - > - <template slot="menu" slot-scope="scope"> - <el-button - v-show="scope.row.orderNum > 1" - icon="el-icon-arrow-up" - plain - size="small" - type="text" - @click="upOrderNum(scope.row)" - >涓婄Щ - </el-button> - <el-button - icon="el-icon-arrow-down" - plain - size="small" - type="text" - @click="downOrderNum(scope.row)" - >涓嬬Щ - </el-button> - </template> - </avue-crud> - </el-row> - </div> - <div slot="footer" class="dialog-footer"> - <el-button type="primary" @click="saveCloneCodeRule">淇� 瀛�</el-button> - <el-button @click="cloneSettingBox = false">鍙� 娑�</el-button> - </div> - </el-dialog> + :ruleData="selectionList[0]" + @refreshRuleTable="onLoad"> + </clone-rule-dialog> <!-- 缂栫爜瑙勫垯,浠庡叾浠栬鍒欏厠闅嗗璇濇 --> - <el-dialog + <clone-other-basic-sec-dialog :visible.sync="cloneOtherCodeRuleSettingBox" - append-to-body - class="avue-dialog avue-dialog--top" - destroy-on-close - style="height: 100vh" - title="鍏嬮殕缂栫爜瑙勫垯鐨勫熀纭�淇℃伅" - top="-3%" - width="800px" - > - <div> - <el-row> - <p - style=" - margin-top: -20px; - margin-bottom: 4px; - font-weight: 570; - font-size: 19px; - color: #0e2d5f; - " - > - 缂栫爜瑙勫垯 - </p> - <avue-crud - ref="crudCloneCodeRuleOther" - :data="data" - :option="cloneCodeRuleOption" - :page.sync="page" - :table-loading="loading" - class="other-clone-coderule-crud" - @row-click="codeOtherCloneRuleRowClick" - @size-change="sizeChange" - @selection-change="selectionOtherCloneCodeRuleChange" - @on-load="onLoad" - > - </avue-crud> - </el-row> - <el-row style="margin-top: 10px; border-top: 1px solid #ebeef5"> - <p - style=" - margin-top: 10px; - margin-bottom: 4px; - font-weight: 570; - font-size: 19px; - color: #0e2d5f; - " - > - 鐮佹淇℃伅 - </p> - <avue-crud - ref="crudCloneCodeBasicOther" - :data="basicData" - :option="cloneBasicOption" - :table-loading="loadingBasic" - class="other-clone-codebasic-crud" - @row-click="codeOtherCloneBasicRowClick" - @selection-change="selectionOtherCloneCodeBasicChange" - > - </avue-crud> - </el-row> - </div> - <div slot="footer" class="dialog-footer" style="height: 50px"> - <el-button type="primary" @click="saveOtherCodeBasic">淇� 瀛�</el-button> - <el-button @click="cloneOtherCodeRuleSettingBox = false" - >鍙� 娑�</el-button - > - </div> - </el-dialog> + :quiltCloneCodeRule="selectionList[0]" + @refreshRuleTable="onLoad"> + </clone-other-basic-sec-dialog> <!-- 缂栫爜瑙勫垯,杞Щ鎵�鏈夎�呭璇濇 --> <el-dialog @@ -326,6 +196,7 @@ append-to-body title="杞Щ鎵�鏈夎��" width="30%" + class= "avue-dialog avue-dialog--top" > <el-select v-model="ruleOwner" class="selects" placeholder="璇烽�夋嫨"> <el-option @@ -468,7 +339,7 @@ append-to-body class="avue-dialog avue-dialog--top" destroy-on-close - style="height: 100vh" + style="height: 110vh" title="鐮佹鐮佸�肩鐞�" top="-3%" @close="clearFixedOrClassifyForm('close')" @@ -476,17 +347,17 @@ <!-- 鍒嗙被鐮佹鐮佸�肩鐞� --> <el-row v-show="!isShowFixedForm"> <el-col :span="11"> - <basic-container> + <basic-container style="overflow:hidden"> <div class="box classify_value_box" style="height: 60vh; margin-bottom: -40px" > <basic-container> - <div class="abox" style="height: 54vh"> + <div class="abox"> <avue-tree :data="classifyValueTreeData" :option="classisyValueTreeOption" - style="" + style="height: calc(60vh - 100px);" @node-click="classisyValueTreeOnodeClick" /> </div> @@ -1274,9 +1145,8 @@ <el-button :disabled="!showbtn" type="primary" - @click="saveOrEditBasicCode" - >淇� 瀛�</el-button - > + :loading="isLoadingSecCodeAddBtn" + @click="saveOrEditBasicCode">淇� 瀛�</el-button> <el-button @click="addBasicCodeSettingBox = false">鍙� 娑�</el-button> </div> @@ -1402,7 +1272,7 @@ </el-dialog> </basic-container> </template> - + <script> import { gridCodeRule, @@ -1412,7 +1282,6 @@ remove, listUseRange, updateStatus, - clone, clearAllCode, checkLikeCodeRule, } from "@/api/code/mdmrule"; @@ -1422,7 +1291,6 @@ upOrderNum, deleteData, editSave, - cloneCodeBasic, addSave, refDataGridClassifySec, } from "@/api/code/codebasic"; @@ -1443,9 +1311,6 @@ } from "@/api/code/codeClassifyValue"; import { getDictionary } from "@/api/omd/enum"; import optionBasic from "@/const/code/codebasic"; -import cloneOption from "@/const/code/cloneOption"; -import cloneBasicOption from "@/const/code/cloneBasicDialogOption"; -import cloneCodeRuleOption from "@/const/code/cloneCodeRuleDialogOption"; import optionRule from "@/const/code/mdmrule"; import attrOption from "@/const/code/selectAttrOptionDialog"; import treeOption from "@/const/code/classifyTreeOptionDialog"; @@ -1455,7 +1320,6 @@ import { mapGetters } from "vuex"; import { getByRoleUserList } from "@/api/system/user"; import func from "@/util/func"; -import logeVue from '../docking/loge.vue'; export default { data() { @@ -1474,21 +1338,13 @@ optionRule: optionRule, data: [], currentRuleLcStatus: "", - /*鍏嬮殕瀵硅瘽妗嗘帶鍒跺彉閲�*/ + + /*鍏嬮殕缂栫爜瑙勫垯瀵硅瘽妗嗘帶鍒跺彉閲�*/ cloneSettingBox: false, - cloneTableLoading: false, - cloneOption: cloneOption, - cloneData: [], - cloneCodeRuleForm: { - id: "", - name: "", - description: "", - }, + /*浠庡叾浠栬鍒欏厠闅嗙爜娈�*/ cloneOtherCodeRuleSettingBox: false, - cloneBasicOption: cloneBasicOption, - cloneCodeRuleOption: cloneCodeRuleOption, - selectionOtherCloneCodeBasicList: [], // 褰撳墠閫変腑鐨勫熀纭�鐮佹 + /** 杞Щ鎵�鏈夎�呭璇濇 */ escapeOwnerVisible: false, ruleAdminUserList: [], //瑙勫垯绠$悊鍛樺垪琛� @@ -1543,7 +1399,8 @@ loadingBasic: false, selectionBasicList: [], addBasicCodeSettingBox: false, - showbtn: false, //鍩虹鐮佹鏂板鏄惁鏄剧ず鍩虹鐮佹 + showbtn: false, //鍩虹鐮佹鏂板鎸夐挳鏄惁绂佺敤 + isLoadingSecCodeAddBtn: false, basicSecDialogTitle: "", //鍩虹鐮佹绗竴灞傚璇濇鏍囬 basicSecOnlyRead: false, //鏂板鍩虹鐮佹琛ㄥ崟鏄惁鍙 @@ -1748,6 +1605,7 @@ }); }, methods: { + /** 杞Щ瑙勫垯鎵�鏈夎�呭璇濇 */ escapeOwner() { if (this.selectionList.length === 0) { @@ -2018,6 +1876,8 @@ oid: this.codefixedsecOrCodeclassifysec.oid, }); this.clearFixedOrClassifyForm("codefixedsec"); + this.$refs.crudFixedValue.refreshTable(); + this.$refs.crudFixedValue.doLayout(); this.$message({ type: "success", message: "鎿嶄綔鎴愬姛!", @@ -2514,6 +2374,7 @@ updateStatus(oid, update) { updateStatus({ oid: oid, ts: new Date().getTime, update: update }).then( () => { + this.releadDisabled = false; this.onLoad(this.page); this.$message({ type: "success", @@ -2528,8 +2389,8 @@ /** 鍙戝竷缂栫爜瑙勫垯 */ async enableOrDeactivatse(oid, update) { if (update === "release") { - // 閬垮厤鐢ㄦ埛閲嶅鐐瑰嚮鎸夐挳 this.releadDisabled = true; + // 閬垮厤鐢ㄦ埛閲嶅鐐瑰嚮鎸夐挳 await checkLikeCodeRule(oid) .then((res) => { //console.log(res) @@ -2540,17 +2401,15 @@ distinguishCancelAndClose: true, confirmButtonText: "缁х画鍙戝竷", cancelButtonText: "鍙栨秷", - }) - .then(() => { + }).then(() => { this.updateStatus(oid, update); this.releadDisabled = false; - }) - .catch((action) => { - this.releadDisabled = false; + }).catch((action) => { this.$message({ type: "info", message: "鍙栨秷鍙戝竷!", }); + this.releadDisabled = false; }); } }) @@ -2561,53 +2420,15 @@ this.updateStatus(oid, update); } }, + /** 鎵撳紑缂栫爜瑙勫垯鍏嬮殕瀵硅瘽妗�*/ openCodeRuleDialog() { if (!this.tipsMessage(this.selectionList)) { return; } this.cloneSettingBox = true; - this.cloneCodeRuleForm.id = this.selectionList[0].id; - this.cloneCodeRuleForm.name = this.selectionList[0].name; - this.cloneCodeRuleForm.description = this.selectionList[0].description; - this.loadBasic({ oid: this.selectionList[0].oid }); }, - /** 鍏嬮殕缂栫爜瑙勫垯淇濆瓨鍔熻兘*/ - saveCloneCodeRule() { - let form = this.cloneCodeRuleForm; - if (form.id.trim() == "") { - this.$message.warning("缂栧彿涓嶈兘涓虹┖!"); - return; - } - if (form.name.trim() == "") { - this.$message.warning("鐮佸�间笉鑳戒负绌�!"); - return; - } - this.selectionList[0].oid = ""; - this.selectionList[0].id = form.id; - this.selectionList[0].name = form.name; - this.selectionList[0].description = form.description; - this.selectionList[0].createTime = new Date().getTime(); - this.selectionList[0].ts = new Date(this.selectionList[0].ts).getTime(); - this.selectionList[0].lcStatus = "Editing"; - let data = Object.assign({}, this.selectionList[0], { - elements: this.cloneData, - }); - clone(data).then( - () => { - this.cloneSettingBox = false; - this.onLoad(this.page); - this.$message({ - type: "success", - message: "鎿嶄綔鎴愬姛!", - }); - }, - (error) => { - window.console.log(error); - } - ); - //console.log(data); - }, + /** 鎵撳紑浠庡叾浠栫紪鐮佽鍒欎腑鍏嬮殕鐮佹瀵硅瘽妗�*/ openOtherCodeRuleDialog() { if (!this.tipsMessage(this.selectionList)) { @@ -2619,79 +2440,7 @@ } this.cloneOtherCodeRuleSettingBox = true; }, - //** 浠庡叾浠栫紪鐮佽鍒欎腑鍏嬮殕鐮佹瀵硅瘽妗�-鍗曞嚮缂栫爜瑙勫垯瀹炵幇琛岄�夋嫨*/ - codeOtherCloneRuleRowClick(row) { - this.$refs.crudCloneCodeRuleOther.toggleSelection(); - this.selectionOtherCloneCodeRuleList = row; - this.$refs.crudCloneCodeRuleOther.setCurrentRow(row); - this.$refs.crudCloneCodeRuleOther.toggleRowSelection(row); //閫変腑褰撳墠琛� - this.loadBasic(row); - }, - /** 浠庡叾浠栫紪鐮佽鍒欎腑鍏嬮殕鐮佹瀵硅瘽妗�-鍗曞嚮鍩虹鐮佹瀹炵幇琛岄�夋嫨*/ - codeOtherCloneBasicRowClick(row) { - this.$refs.crudCloneCodeBasicOther.toggleSelection(); - this.selectionOtherCloneCodeBasicList = row; - this.$refs.crudCloneCodeBasicOther.setCurrentRow(row); - this.$refs.crudCloneCodeBasicOther.toggleRowSelection(row); //閫変腑褰撳墠琛� - }, - /** 浠庡叾浠栬鍒欏厠闅嗙爜娈电晫闈腑缂栫爜瑙勫垯褰撳墠閫変腑琛屽彉鍖栫殑鏃跺�欒Е鍙�*/ - selectionOtherCloneCodeRuleChange(list) { - //console.log(list); - this.selectionOtherCloneCodeRuleList = list; - this.$refs.crudBasic.setCurrentRow( - this.selectionBasicList[list.length - 1] - ); - if (list == "") { - this.basicData = []; - } - if (this.selectionOtherCloneCodeRuleList.length > 0) { - this.loadBasic(this.selectionOtherCloneCodeRuleList[list.length - 1]); - } - }, - selectionOtherCloneCodeBasicChange(list) { - this.selectionOtherCloneCodeBasicList = list; - this.$refs.crudCloneCodeBasicOther.setCurrentRow( - this.selectionOtherCloneCodeBasicList[list.length - 1] - ); - }, - /** 浠庡叾浠栫紪鐮佽鍒欎腑鍏嬮殕鐮佹淇℃伅*/ - saveOtherCodeBasic() { - let oid = this.selectionList[0].oid; - let fromDialogPkCodebasic = this.selectionOtherCloneCodeBasicList; - if (fromDialogPkCodebasic.length <= 0) { - this.$message.warning("璇烽�夋嫨鐮佹鏁版嵁!"); - return; - } - let res = fromDialogPkCodebasic.filter((item) => { - return item.pkCodeRule == oid; - }); - if (res != "") { - this.$message.warning("闇�瑕佸厠闅嗙殑缂栫爜瑙勫垯涓庤鍏嬮殕鐨勭紪鐮佽鍒欑浉鍚�!"); - return; - } - let oidArr = []; - fromDialogPkCodebasic.forEach((ele) => { - oidArr.push(ele.oid); - }); - let data = { - pkCodeRule: oid, - oidArr: oidArr.join(","), - }; - //console.log(data); - cloneCodeBasic(data).then( - () => { - this.cloneOtherCodeRuleSettingBox = false; - this.onLoad(this.page); - this.$message({ - type: "success", - message: "鎿嶄綔鎴愬姛!", - }); - }, - (error) => { - window.console.log(error); - } - ); - }, + /** 娓呯┖鐮佸��*/ clearAllCodeSec() { if (this.selectionList.length == 0) { @@ -2793,10 +2542,12 @@ } done(); }, + // 缂栫爜瑙勫垯蹇�熸煡璇㈤噸缃� searchReset() { this.query = {}; this.onLoad(this.page); }, + // 缂栫爜瑙勫垯蹇�熸煡璇� searchChange(params, done) { this.page.currentPage = 1; // 澶氫釜conditionMap杩欐牱浼犲弬锛屽揩閫熸煡璇㈤粯璁ら噰鐢ㄦā绯婃煡璇� @@ -2808,7 +2559,7 @@ }); } this.query = requestData; - this.onLoad(this.page); + this.onLoad(this.page, this.query); done(); }, /** 缂栫爜瑙勫垯褰撳墠閫変腑琛屽彉鍖栫殑鏃跺�欒Е鍙�*/ @@ -2846,7 +2597,7 @@ }, onLoad(page, params = {}) { this.loading = true; - gridCodeRule(page.currentPage, page.pageSize, this.query).then((res) => { + gridCodeRule(page.currentPage, page.pageSize, params).then((res) => { //console.log(res.data); const data = res.data.data; this.page.total = data.total; @@ -2871,6 +2622,7 @@ /** 闃叉鎵撳紑杩囩紪杈戠獥鍙d箣鍚庤〃鍗曚腑瀛樺湪鍊硷紝鎵�浠ラ渶瑕佹竻绌�,骞跺垵濮嬪寲form琛ㄥ崟灞炴��*/ clearBasicAddForm() { this.form = this.$options.data().form; + //this.isLoadingSecCodeAddBtn = false; // this.changeSectypeFormItems(null); }, /** 鎵撳紑鏂板绐楀彛*/ @@ -2912,6 +2664,7 @@ }, /** 鏂板鍩虹鐮佹*/ async saveOrEditBasicCode() { + this.isLoadingSecCodeAddBtn = true; if ( this.selectionList[0].oid == null || this.selectionList[0].oid == "" @@ -2966,6 +2719,7 @@ // 鍏抽棴瀵硅瘽妗� this.addBasicCodeSettingBox = false; } + this.isLoadingSecCodeAddBtn = false; }, /** 鍥犱负elementui鐨勮〃鍗曟牎楠岃缃笉涓婃墍浠ラ噰鐢ㄥ垽鏂殑鏂瑰紡鏉ュ仛琛ㄥ崟妫�楠屾柟寮�*/ checkForm() { @@ -3200,14 +2954,10 @@ }, /** 鐐瑰嚮瑙﹀彂鍔犺浇鍩虹鐮佹淇℃伅*/ loadBasic(row) { - if (this.cloneSettingBox) { - this.cloneTableLoading = true; - } else { - this.loadingBasic = true; - } + this.loadingBasic = true; // console.log(row.oid); - //瀛樺偍褰撳墠鍏宠仈鐨勭紪鐮佽鍒欑浉鍏充俊鎭� if (row != "" || row != null) { + //瀛樺偍褰撳墠鍏宠仈鐨勭紪鐮佽鍒欑浉鍏充俊鎭� this.currentCodeRuleOid = row.oid; this.currentRuleLcStatus = row.lcStatus; this.sendGridCodeBasicSec({ pkCodeRule: row.oid }, false); @@ -3237,14 +2987,8 @@ gridCodeBasicSec(1, -1, isAdancedQuery ? condition : conditionMaps).then( (res) => { const data = res.data.data; - if (this.cloneSettingBox) { - this.cloneData = data.records; - this.cloneTableLoading = false; - } else { - this.basicData = data.records; - // console.log(this.basicData); - this.loadingBasic = false; - } + this.basicData = data.records; + this.loadingBasic = false; } ); }, @@ -3660,7 +3404,7 @@ }, }; </script> - + <style> [class^="icon-"] { font-size: 12px !important; @@ -3803,4 +3547,4 @@ /* .code-total > .basic-container__card { height: 100%; } */ -</style> \ No newline at end of file +</style> -- Gitblit v1.9.3