From c659560c7ee8d8f8278b938421de13bf65d1e1b1 Mon Sep 17 00:00:00 2001 From: ludc <ludc@vci-tech.com> Date: 星期三, 15 一月 2025 14:28:25 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/businessType/index.vue | 680 +++++++++++++++++++++++++++++++++----------------------- 1 files changed, 403 insertions(+), 277 deletions(-) diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/businessType/index.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/businessType/index.vue index 70f5973..d6f2c2e 100644 --- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/businessType/index.vue +++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/businessType/index.vue @@ -3,16 +3,15 @@ <el-aside> <basic-container> <div ref="TreeBox" style="height: calc(100vh - 154px);!important;"> - <!-- 宸︿晶鏍� --> <div style="height: calc(100vh - 190px);"> <avue-tree ref="tree" v-loading="treeLoading" :data="treeData" :option="treeOption" @node-click="nodeClick"> - <span slot-scope="{ node, data }" class="el-tree-node__label"> - <span style="font-size: 15px"> - <i class="el-icon-s-promotion"></i> - {{ (node || {}).label }} - </span> - </span> + <span slot-scope="{ node, data }" class="el-tree-node__label"> + <span> + <icon-show :name="data.icon"></icon-show> + {{ (node || {}).label }} + </span> + </span> </avue-tree> </div> </div> @@ -21,23 +20,68 @@ <el-main> <basic-container> <div> - <el-button icon="el-icon-plus" plain size="small" type="primary" @click="addClickHandler">鍒涘缓</el-button> - <el-button icon="el-icon-edit" plain size="small" type="primary" @click="editClickHandler">淇敼</el-button> - <el-button icon="el-icon-delete" plain size="small" type="danger" @click="deleteClickHandler">鍒犻櫎</el-button> - <el-button icon="el-icon-download" plain size="small" type="primary" @click="exportClickHandler">瀵煎嚭</el-button> - <el-button icon="el-icon-upload2" plain size="small" type="primary" @click="upLoadClickHandler">瀵煎叆</el-button> - <el-button icon="el-icon-circle-plus-outline" plain size="small" type="primary" @click="createViewClickHandler">鍒涘缓瑙嗗浘</el-button> - <el-button icon="el-icon-circle-plus-outline" plain size="small" type="primary" @click="indexClickHandler">鍒涘缓绱㈠紩</el-button> - <el-button icon="el-icon-menu" plain size="small" type="primary" @click="checkClickHandler">涓�鑷存�ф鏌�</el-button> - <el-button icon="el-icon-delete" plain size="small" type="danger" @click="checkClickHandler">鍒犻櫎鏁版嵁</el-button> - <el-button icon="el-icon-delete" plain size="small" type="danger" @click="checkClickHandler">鍒犻櫎鍏ㄩ儴绫诲瀷</el-button> - <el-button icon="el-icon-view" plain size="small" type="primary" @click="checkViewClickHandler">鏌ョ湅浣跨敤鑼冨洿</el-button> + <el-button v-if="permissionList.addBtn" class="button-custom-icon" plain size="small" type="primary" + @click="addClickHandler"> + <icon-show :name="permissionList.addBtn.source"></icon-show> + 鍒涘缓 + </el-button> + <el-button v-if="permissionList.editBtn" class="button-custom-icon" plain size="small" type="primary" + @click="editClickHandler"> + <icon-show :name="permissionList.editBtn.source"></icon-show> + 淇敼 + </el-button> + <el-button v-if="permissionList.delBtn" class="button-custom-icon" plain size="small" type="danger" + @click="deleteClickHandler"> + <icon-show :name="permissionList.delBtn.source"></icon-show> + 鍒犻櫎 + </el-button> + <el-button v-if="permissionList.importBtn" class="button-custom-icon" plain size="small" type="primary" + @click="upLoadClickHandler"> + <icon-show :name="permissionList.importBtn.source"></icon-show> + 瀵煎叆 + </el-button> + <el-button v-if="permissionList.exportBtn" class="button-custom-icon" plain size="small" type="primary" + @click="exportClickHandler"> + <icon-show :name="permissionList.exportBtn.source"></icon-show> + 瀵煎嚭 + </el-button> + <el-button v-if="permissionList.createViewBtn" class="button-custom-icon" plain size="small" + type="primary" @click="createViewClickHandler"> + <icon-show :name="permissionList.createViewBtn.source"></icon-show> + 鍒涘缓瑙嗗浘 + </el-button> + <el-button v-if="permissionList.createIndexBtn" class="button-custom-icon" plain size="small" + type="primary" @click="indexClickHandler"> + <icon-show :name="permissionList.createIndexBtn.source"></icon-show> + 鍒涘缓绱㈠紩 + </el-button> + <el-button v-if="permissionList.consistencyCheckBtn" class="button-custom-icon" plain size="small" type="primary" + @click="checkClickHandler"> + <icon-show :name="permissionList.consistencyCheckBtn.source"></icon-show> + 涓�鑷存�ф鏌� + </el-button> + <el-button v-if="permissionList.deleteDataBtn" class="button-custom-icon" plain size="small" type="danger" + @click="checkClickHandler"> + <icon-show :name="permissionList.deleteDataBtn.source"></icon-show> + 鍒犻櫎鏁版嵁 + </el-button> + <el-button v-if="permissionList.deleteEveryTypeBtn" class="button-custom-icon" plain size="small" type="danger" + @click="checkClickHandler"> + <icon-show :name="permissionList.deleteEveryTypeBtn.source"></icon-show> + 鍒犻櫎鍏ㄩ儴绫诲瀷 + </el-button> + <el-button v-if="permissionList.viewTheScopeBtn" class="button-custom-icon" plain size="small" type="primary" + @click="checkViewClickHandler"> + <icon-show :name="permissionList.viewTheScopeBtn.source"></icon-show> + 鏌ョ湅浣跨敤鑼冨洿 + </el-button> </div> <div style="display: flex;justify-content:left;margin-top: 15px;"> <div class="descBox" style="width: 40%"> - <el-descriptions :column="1" border class="margin-top" size="medium" title="灞炴�т俊鎭�"> + <el-descriptions :column="2" border class="margin-top" size="medium" title="灞炴�т俊鎭�"> <el-descriptions-item :contentStyle="descriptionOption.contentStyle" - :labelStyle="descriptionOption.labelStyle"> + :labelStyle="descriptionOption.labelStyle" + :span="12"> <template slot="label"> 鍚嶇О </template> @@ -50,8 +94,18 @@ </template> <el-tag v-if="nodeRow.name">{{ nodeRow.name }}</el-tag> </el-descriptions-item> - <el-descriptions-item :contentStyle="descriptionOption.contentStyle" + <el-descriptions-item :contentStyle="descriptionOption.contentStyle+';min-width: 100px;'" :labelStyle="descriptionOption.labelStyle"> + <template slot="label"> + 鍥炬爣 + </template> + <span class="avue-icon"> + <icon-show :name="nodeRow.imageName"></icon-show> + </span> + </el-descriptions-item> + <el-descriptions-item :contentStyle="descriptionOption.contentStyle" + :labelStyle="descriptionOption.labelStyle" + :span="12"> <template slot="label"> 瀹炵幇绫� </template> @@ -61,7 +115,8 @@ </el-tooltip> </el-descriptions-item> <el-descriptions-item :contentStyle="descriptionOption.contentStyle" - :labelStyle="descriptionOption.labelStyle"> + :labelStyle="descriptionOption.labelStyle" + :span="12"> <template slot="label"> 鎻忚堪 </template> @@ -69,7 +124,7 @@ </el-descriptions-item> </el-descriptions> </div> - <div class="descBox" style="width: 25%;"> + <div class="descBox" style="width: 24%;"> <el-descriptions :column="1" border class="margin-top" size="medium" title="鐗堟湰瑙勫垯"> <el-descriptions-item :contentStyle="descriptionOption.contentStyle" :labelStyle="descriptionOption.labelStyle"> @@ -121,7 +176,7 @@ </el-descriptions> </div> - <div class="descBox" style="width: calc(35% - 40px);margin-right: 0"> + <div class="descBox" style="width: calc(36% - 40px);margin-right: 0"> <el-descriptions :column="1" border class="margin-top" size="medium" title="鐢熷懡鍛ㄦ湡"> <el-descriptions-item :contentStyle="descriptionOption.contentStyle" :labelStyle="descriptionOption.labelStyle"> @@ -129,6 +184,16 @@ 鐢熷懡鍛ㄦ湡 </template> <el-tag v-if="nodeRow.lifeCycleId">{{ nodeRow.lifeCycleId }}</el-tag> + </el-descriptions-item> + <el-descriptions-item :contentStyle="descriptionOption.contentStyle" + :labelStyle="descriptionOption.labelStyle"> + <template slot="label"> + 澶囬�夌敓鍛藉懆鏈� + </template> + <div v-if="nodeRow.lifeCycleIds"> + <el-tag v-for="item in nodeRow.lifeCycleIds.split(',')" style="margin-right: 5px;">{{ item }}</el-tag> + </div> + </el-descriptions-item> </el-descriptions> </div> @@ -158,36 +223,48 @@ <el-form-item label="绫诲瀷鍚嶇О锛�" prop="id"> <el-input v-model="form.id" :readOnly="title === 'edit'"></el-input> </el-form-item> - <el-form-item label="鏍囩锛�"> - <el-input v-model="form.name"></el-input> - </el-form-item> - <el-form-item label="缁ф壙鑷細"> - <avue-input-tree :disabled="title === 'add'" - v-model="form.fName" - placeholder="璇烽�夋嫨涓氬姟绫诲瀷" + <el-row :span="24"> + <el-col :span="12"> + <el-form-item label="鏍囩锛�" prop="name"> + <el-input v-model="form.name"></el-input> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="鍥炬爣锛�" prop="imageName"> + <input-icon v-model="form.imageName" placeholder="璇烽�夋嫨鍥炬爣"></input-icon> + </el-form-item> + </el-col> + </el-row> + <el-form-item label="缁ф壙鑷細" prop="fName"> + <avue-input-tree v-model="form.fName" + :dic="inheritTreeData" + :disabled="title === 'add'" :props="{label: 'id', value: 'id',children: 'children'}" - :dic="inheritTreeData"></avue-input-tree> + placeholder="璇烽�夋嫨涓氬姟绫诲瀷"></avue-input-tree> </el-form-item> - <el-form-item label="瀹炵幇绫伙細"> + <el-form-item label="瀹炵幇绫伙細" prop="implClass"> <el-input v-model="form.implClass"></el-input> </el-form-item> - <el-form-item label="鎻忚堪"> + <el-form-item label="鎻忚堪" prop="description"> <el-input v-model="form.description" :rows="2" type="textarea"></el-input> </el-form-item> </div> <div class="centerForm" style="width: 26%"> <el-form-item label="鐗堟湰瑙勫垯锛�" label-width="100px" prop="revLevel" style="margin-bottom: 10px;"> - <el-radio v-model="form.revLevel" label="0" @input="revLevelChange">涓嶅彲淇</el-radio><br> - <el-radio v-model="form.revLevel" label="1" @input="revLevelChange">閲囩敤涓�绾х増鏈鐞�</el-radio><br> + <el-radio v-model="form.revLevel" label="0" @input="revLevelChange">涓嶅彲淇</el-radio> + <br> + <el-radio v-model="form.revLevel" label="1" @input="revLevelChange">閲囩敤涓�绾х増鏈鐞�</el-radio> + <br> <el-radio v-model="form.revLevel" label="2" @input="revLevelChange">閲囩敤浜岀骇鐗堟湰绠$悊</el-radio> </el-form-item> - <el-form-item v-if="form.revLevel !== '0'" label="鐗堟湰鍙疯鍒欙細" label-width="100px" prop="revisionRuleId" style="margin-bottom: 5px;"> + <el-form-item v-if="form.revLevel !== '0'" label="鐗堟湰鍙疯鍒欙細" label-width="100px" prop="revisionRuleId" + style="margin-bottom: 5px;"> <avue-select v-model="form.revisionRuleId" + :dic="versionData" :disabled="form.inputRevisionFlag" - placeholder="璇烽�夋嫨鐗堟湰鍙疯鍒�" :filterable="true" :props="{label: 'id', value: 'id'}" - :dic="versionData"></avue-select> + placeholder="璇烽�夋嫨鐗堟湰鍙疯鍒�"></avue-select> <el-switch v-model="form.inputRevisionFlag" active-text="鎵嬪伐杈撳叆" @@ -195,7 +272,8 @@ @change="form.revisionRuleId = ''"> </el-switch> </el-form-item> - <el-form-item v-if="form.revLevel !== '0'" label="鍒嗛殧绗︼細" label-width="100px" prop="delimiter" style="margin-bottom: 5px;"> + <el-form-item v-if="form.revLevel !== '0'" label="鍒嗛殧绗︼細" label-width="100px" prop="delimiter" + style="margin-bottom: 5px;"> <el-radio v-model="form.delimiter" label=""> </el-radio> <el-radio v-model="form.delimiter" label=".">.</el-radio> <el-radio v-model="form.delimiter" label="-">-</el-radio> @@ -210,38 +288,39 @@ <div class="rightForm" style="width: 25%"> <el-form-item label="鐢熷懡鍛ㄦ湡锛�" label-width="138px" prop="lifeCycleId"> <avue-select v-model="form.lifeCycleId" - placeholder="璇烽�夋嫨鐢熷懡鍛ㄦ湡" + :dic="lifeData" :filterable="true" :props="{label: 'id', value: 'id'}" - :dic="lifeData"></avue-select> + placeholder="璇烽�夋嫨鐢熷懡鍛ㄦ湡"></avue-select> </el-form-item> - - <el-form-item label="澶囬�夌敓鍛藉懆鏈熷垪琛細" label-width="138px"> - <avue-select multiple + <el-form-item label="澶囬�夌敓鍛藉懆鏈熷垪琛細" label-width="138px" prop="subLifeCycleIdList"> + <avue-select v-model="form.subLifeCycleIdList" + :dic="subLifeData" :filterable="true" - v-model="form.subLifeCycleId" - placeholder="璇烽�夋嫨鐢熷懡鍛ㄦ湡" :props="{label: 'id', value: 'id'}" + multiple + placeholder="璇烽�夋嫨鐢熷懡鍛ㄦ湡" type="tree" - :dic="lifeData"></avue-select> + @change="subLifeChange"></avue-select> </el-form-item> </div> </div> </el-form> <div class="bottomForm"> - <h3 style="margin-bottom: 10px;">灞炴�ф睜鍒楄〃</h3> <avue-crud :data="dialogAttrData" :option="dialogAttrOption" + size="mini" @row-del="dialogBottomAttrDel"> <template slot="menuLeft"> - <el-button icon="el-icon-plus" size="small" type="primary" @click="addDialogClickHandler">鍒涘缓</el-button> + <h3 style="display: inline-block;margin-right: 20px;margin-bottom: 10px;">灞炴�ф睜鍒楄〃</h3> + <el-button icon="el-icon-plus" size="mini" type="primary" @click="addDialogClickHandler">鍒涘缓</el-button> </template> </avue-crud> </div> - <span slot="footer" class="dialog-footer avue-dialog__footer"> - <el-button type="primary" @click="addDialogSavaHandler">纭� 瀹�</el-button> - <el-button @click="addDialogClose">鍙� 娑�</el-button> + <span slot="footer" class="dialog-footer"> + <el-button size="small" type="primary" @click="addDialogSavaHandler">纭� 瀹�</el-button> + <el-button size="small" @click="addDialogClose">鍙� 娑�</el-button> </span> </el-dialog> @@ -271,8 +350,8 @@ > </avue-crud> <span slot="footer" class="dialog-footer"> - <el-button @click="dialogAttrClose">鍙� 娑�</el-button> - <el-button type="primary" @click="dialogAttrAddClickHandler">纭� 瀹�</el-button> + <el-button size="small" type="primary" @click="dialogAttrAddClickHandler">纭� 瀹�</el-button> + <el-button size="small" @click="dialogAttrClose">鍙� 娑�</el-button> </span> </el-dialog> @@ -315,8 +394,8 @@ :table-loading="conCheckLoading"> </avue-crud> <span slot="footer" class="dialog-footer"> - <el-button type="primary" @click="repairClickHandler">淇� 澶�</el-button> - <el-button @click="conCheckVisible = false">鍙� 娑�</el-button> + <el-button size="small" type="primary" @click="repairClickHandler">淇� 澶�</el-button> + <el-button size="small" @click="conCheckVisible = false">鍙� 娑�</el-button> </span> </el-dialog> @@ -380,8 +459,8 @@ </span> </el-dialog> <span slot="footer" class="dialog-footer"> - <el-button type="primary" @click="indexClickAddHandler">淇� 瀛�</el-button> - <el-button @click="indexDialogClose">鍙� 娑�</el-button> + <el-button size="small" type="primary" @click="indexClickAddHandler">淇� 瀛�</el-button> + <el-button size="small" @click="indexDialogClose">鍙� 娑�</el-button> </span> </el-dialog> @@ -409,6 +488,7 @@ import func from "@/util/func"; import {getUsedVersionRuleList, getVersionRuleAllList} from "@/api/modeling/version/api"; import {gridLifeCycle} from "@/api/modeling/lifeCycle/api"; +import {mapGetters} from "vuex"; export default { name: "index", @@ -496,10 +576,12 @@ index: false, selection: false, refreshBtn: false, + header: false, column: [ { label: '绫诲瀷鍚�', prop: 'id', + width: 250, }, { label: '鎿嶄綔', @@ -508,6 +590,7 @@ { label: '鐘舵��', prop: 'status', + width: 250, } ] }, @@ -524,7 +607,7 @@ searchMenuSpan: 8, refreshBtn: false, selection: false, - header:false, + header: false, column: [ { label: '鍚嶇О', @@ -554,6 +637,8 @@ versionAddFlag: false, inheritTreeData: [], lifeData: [],//鐢熷懡鍛ㄦ湡涓嬫媺鏁版嵁 + subLifeData: [],//澶囬�夌敓鍛藉懆鏈熶笅鎷夋暟鎹� + allLifeData: [], versionData: [],//鐗堟湰瑙勫垯鏁版嵁 dialogAttrSelectList: [], searchAttrParams: {}, @@ -575,23 +660,28 @@ height: 450, searchMenuSpan: 8, header: false, + selectable: function (row) { + return row.selectable; + }, column: [ { label: '灞炴�у悕', prop: 'id', sortable: true, search: true, + width: 260 }, { label: '灞炴�х被鍨�', prop: 'attributeDataType', sortable: true, - width:150, + width: 150, }, { label: '鍒濆鍊�', prop: 'defaultValue', sortable: true, + width: 200 }, { label: '璇存槑', @@ -608,6 +698,9 @@ {required: true, message: '璇疯緭绫诲瀷鍚嶇О', trigger: 'blur'}, {validator: this.validateEnglishOnly, trigger: 'blur'} ], + imageName: [ + {required: true, message: '璇烽�夋嫨鍥炬爣', trigger: 'submit'}, + ], revLevel: [ {required: true, message: '璇烽�夋嫨鐗堟湰瑙勫垯', trigger: 'blur'}, ], @@ -621,33 +714,37 @@ editBtn: false, refreshBtn: false, selection: false, - height: 210, + height: 220, addBtn: false, - menuWidth:100, + gridBtn: false, + columnBtn: false, + menuWidth: 100, // index:false, column: [ { label: '灞炴�у悕', prop: 'id', sortable: true, + width: 260, }, { prop: 'btmTypeId', label: '涓氬姟绫诲瀷', - sortable: true + sortable: true, + width: 200 }, { label: '灞炴�х被鍨�', prop: 'attributeDataType', sortable: true, - width:150, + width: 150, }, { label: '鍒濆鍊�', prop: 'defaultValue', sortable: true, - width:150, + width: 200, }, { label: '璇存槑', @@ -671,22 +768,26 @@ { prop: 'id', label: '灞炴�у悕', - sortable: true + sortable: true, + width: 260 }, { prop: 'btmTypeId', label: '涓氬姟绫诲瀷', - sortable: true + sortable: true, + width: 200 }, { prop: 'attributeDataType', label: '灞炴�х被鍨�', - sortable: true + sortable: true, + width: 150 }, { prop: 'defaultValue', label: '榛樿鍊�', - sortable: true + sortable: true, + width: 200 }, { prop: 'description', @@ -707,7 +808,8 @@ delimiter: '', // 鍒嗛殧绗� versionRule: '0', // 鐗堟鍙疯鍒� lifeCycleId: '', // 鐢熷懡鍛ㄦ湡 - subLifeCycleId: [], // 鐢熷懡鍛ㄦ湡澶囬�夊垪琛�, + subLifeCycleId: '', // 鐢熷懡鍛ㄦ湡澶囬�夊垪琛�, + subLifeCycleIdList: [], apNameArray: "", // 灞炴�ф睜鍒楄〃鈥欙紝鈥樺垎闅� }, nodeRow: {}, @@ -731,8 +833,8 @@ } ], descriptionOption: { - labelStyle: 'text-align:center;width:100px;', - contentStyle: 'max-width:200px;text-align:center;word-break;break-all;' + labelStyle: 'text-align:center;width:110px;', + contentStyle: 'min-width:200px;text-align:center;word-break:break-all;' }, icons: { id: 'el-icon-finished', @@ -747,7 +849,36 @@ this.getVersionList(); this.getLifeCycle(); }, - mounted() { + computed: { + ...mapGetters(["permission"]), + permissionList() { + return { + addBtn: this.vaildData(this.permission[this.$route.query.id].ADD, false), + delBtn: this.vaildData(this.permission[this.$route.query.id].DELETE, false), + editBtn: this.vaildData(this.permission[this.$route.query.id].EDIT, false), + exportBtn: this.vaildData(this.permission[this.$route.query.id].EXPORT, false), + importBtn: this.vaildData(this.permission[this.$route.query.id].IMPORT, false), + consistencyCheckBtn: this.vaildData(this.permission[this.$route.query.id].USE, false), + createIndexBtn: this.vaildData(this.permission[this.$route.query.id].DATARIGHT, false), + createViewBtn: this.vaildData(this.permission[this.$route.query.id].ATTRRIGHT, false), + deleteDataBtn: this.vaildData(this.permission[this.$route.query.id].FREEZE, false), + deleteEveryTypeBtn: this.vaildData(this.permission[this.$route.query.id].RESET, false), + viewTheScopeBtn: this.vaildData(this.permission[this.$route.query.id].VIRTUALVIEW, false), + }; + }, + }, + watch: { + 'form.lifeCycleId': { + handler(newval) { + if (this.form.lifeCycleId) { + this.subLifeData = this.allLifeData.filter(item => { + return item.id != this.form.lifeCycleId + }); + } else { + this.subLifeData = this.allLifeData + } + }, + } }, methods: { //鏍戣〃鏌ヨ @@ -757,6 +888,7 @@ const data = res.data.data.map(item => { this.processChildren(item); // 澶勭悊姣忎釜鑺傜偣 item.attributes.TreeName = item.attributes.id; + item.attributes.icon = item.attributes.imageName; return item.attributes; // 杩斿洖澶勭悊鍚庣殑 attributes }); this.treeData[0].children = data; @@ -770,6 +902,7 @@ if (item.children && item.children.length > 0) { item.attributes.children = item.children.map(child => { child.attributes.TreeName = child.attributes.id; + child.attributes.icon = child.attributes.imageName; this.processChildren(child); // 閫掑綊澶勭悊姣忎釜瀛愯妭鐐� return child.attributes; // 鍙繑鍥炲瓙鑺傜偣鐨� attributes }); @@ -782,15 +915,15 @@ this.nodeRow = row; }, //鑾峰彇鐗堟湰瑙勫垯鏁版嵁 - getVersionList(){ + getVersionList() { getVersionRuleAllList().then(res => { this.versionData = res.data.data; }); }, //鑾峰彇鐢熷懡鍛ㄦ湡鏁版嵁 - getLifeCycle(){ + getLifeCycle() { gridLifeCycle().then(res => { - this.lifeData = res.data.data; + this.allLifeData = res.data.data; }); }, // 鍒涘缓鎸夐挳 @@ -801,182 +934,20 @@ } this.title = 'add'; this.form.fName = this.nodeRow.id === 'topNode' ? "" : this.nodeRow.id; + this.lifeData = this.allLifeData; + this.subLifeData = this.allLifeData; this.form.inputRevisionFlag = JSON.parse(this.form.inputRevisionFlag); // 瀛楃涓瞗alse杞崲涓哄竷灏斿�� this.visible = true; }, - // 瀵硅瘽妗� 灞炴�ф睜鍒楄〃澧炲姞鎸夐挳 - addDialogClickHandler() { - this.dialogAttrLoading = true; - this.attrPollDialogVisible = true; - this.dialogAttrReload = Math.random(); // 寮哄埗鍒锋柊琛ㄦ牸 瑙e喅琛ㄦ牸閿欒 - this.getAttrDialogDta(); - }, - - // 鏌ヨ灞炴�ф睜鍒楄〃鏁版嵁 - getAttrDialogDta() { - gridAttribute(this.attrPage.currentPage, this.attrPage.pageSize, this.searchAttrParams).then(res => { - const data = res.data.data; - this.dialogAttrSaveData = data; - this.attrPage.total = res.data.total; - this.dialogAttrLoading = false; - }).catch(err => { - this.$message.error(err); - }); - }, - - // 鏂板灞炴�ф睜鍒楄〃鍏抽棴瀵硅瘽妗� - dialogAttrClose() { - this.attrPollDialogVisible = false; - this.searchAttrParams = {}; - }, - - // 娣诲姞灞炴�ф睜琛ㄦ牸閫夋嫨妗� - dialogAttrSelectChange(row) { - this.dialogAttrSelectList = row; - }, - - // 娣诲姞灞炴�ф睜 琛岀偣鍑� - dialogAttrRowClickHandler(row) { - - func.rowClickHandler( - row, - this.$refs.dialogAttrCrud, - this.attrLastIndex, - (newIndex) => { - this.attrLastIndex = newIndex; - }, - () => { - this.selectList = []; - } - ); - }, - - //娣诲姞灞炴�ф睜 鏉℃暟 - attrSizeChange(val) { - this.attrPage.pageSize = val; - this.getAttrDialogDta() - }, - - //娣诲姞灞炴�ф睜 椤电爜 - attrCurrentChange(val) { - this.attrPage.currentPage = val; - this.getAttrDialogDta(); - }, - - //娣诲姞灞炴�ф睜 鎼滅储 - attrHandleSearch(params, done) { - if (func.isEmptyObject(params)) { - this.searchAttrParams = {}; - } else { - this.searchAttrParams = { - "conditionMap[id]": "*" + params.id + "*" - }; - } - - this.getAttrDialogDta(); - done(); - }, - - //娣诲姞灞炴�ф睜 娓呯┖鎼滅储 - attrHandleReset() { - this.searchAttrParams = {}; - this.getAttrDialogDta(); - }, - - // 娣诲姞灞炴�ф睜 淇濆瓨 - dialogAttrAddClickHandler() { - let hasDuplicate = false; - - // 鍏堝垱寤轰竴涓复鏃舵暟缁勬潵瀛樺偍涓嶉噸澶嶇殑椤� - const newItems = []; - - this.dialogAttrSelectList.forEach(item => { - const exists = this.dialogAttrData.some(existingItem => existingItem.id === item.id); - - if (exists) { - hasDuplicate = true; - return; - } - - // 濡傛灉娌℃湁閲嶅椤癸紝鍒欏皢璇ラ」娣诲姞鍒颁复鏃舵暟缁勪腑 - newItems.push({ - id: item.id, - attributeDataType: item.attributeDataType, - defaultValue: item.defaultValue, - description: item.description - }); - }); - - if (hasDuplicate) { - this.$message.error('璇锋鏌ユ槸鍚︽湁娣诲姞閲嶅椤癸紒'); - } else { - // 濡傛灉娌℃湁閲嶅椤癸紝灏嗘柊椤规坊鍔犲埌 dialogAttrData - this.dialogAttrData.push(...newItems); - this.attrPollDialogVisible = false; - } - }, - - // 灞炴�ф睜鍒犻櫎 - dialogBottomAttrDel(form, index) { - this.dialogAttrData.splice(index, 1); - }, - - // 鍙兘杈撳叆鑻辨枃姝e垯鏍¢獙 - validateEnglishOnly(rule, value, callback) { - if (!value) { - return callback(new Error('璇疯緭鍏ョ被鍨嬪悕绉�')); - } - if (!/^[A-Za-z]+$/.test(value)) { - return callback(new Error('鍙兘杈撳叆鑻辨枃瀛楁瘝')); - } - callback(); // 楠岃瘉閫氳繃 - }, - - // 娓呯┖琛ㄥ崟 - resetForm() { - const form = { - id: '', // 绫诲瀷鍚嶇О - name: '', // 鏍囩 - fName: '', // 缁ф壙鑷� - implClass: '', // 瀹炵幇绫� - description: '', // 鎻忚堪 - revLevel: '2', // 鐗堟湰瑙勫垯 - revisionRuleId: '',// 鐗堟湰鍙疯鍒� - inputRevisionFlag: 'false', // 鎵嬪伐杈撳叆 - delimiter: '', // 鍒嗛殧绗� - versionRule: '0', // 鐗堟鍙疯鍒� - lifeCycleId: '', // 鐢熷懡鍛ㄦ湡 - subLifeCycleId: [], // 鐢熷懡鍛ㄦ湡澶囬�夊垪琛�, - lifeCycleIds:'', - apNameArray: "", // 灞炴�ф睜鍒楄〃鈥欙紝鈥樺垎闅� - }; - this.dialogAttrData = []; // 灏嗗睘鎬ф睜琛ㄦ牸缃┖ - this.form = {...form}; - this.$refs.form.clearValidate(); - }, - - // 鏂板缂栬緫瀵硅瘽妗嗗彇娑� - addDialogClose() { - this.resetForm(); - this.visible = false; - }, - - // 鐗堟湰瑙勫垯鍒囨崲 缃┖鍏朵粬鏉′欢 - revLevelChange() { - this.form.inputRevisionFlag = false; - this.form.delimiter = ""; - this.form.versionRule = "0"; - this.form.revisionRuleId = ""; - }, - // 鏂板缂栬緫淇濆瓨 addDialogSavaHandler() { - if (this.form.revLevel !== '0' &&!this.form.inputRevisionFlag && (!this.form.revisionRuleId || this.form.revisionRuleId === "")) { + if (this.form.revLevel !== '0' && !this.form.inputRevisionFlag && (!this.form.revisionRuleId || this.form.revisionRuleId === "")) { this.$message.error('璇锋鏌ョ増鏈彿瑙勫垯涓嶈兘涓虹┖'); return; } - this.form.lifeCycleIds=this.form.subLifeCycleId.join(','); + this.form.lifeCycleIds = this.form.subLifeCycleIdList.join(','); + this.form.subLifeCycleId = this.form.subLifeCycleIdList.join(','); this.form.apNameArray = this.dialogAttrData ? this.dialogAttrData.map(item => item.id).join(',') : ""; this.$refs.form.validate((valid) => { const saveFunction = this.title === 'add' ? addLifeCycle : updateLifeCycle; @@ -1022,39 +993,198 @@ if (this.nodeRow.id === 'topNode') { this.$message.error('璇烽�夋嫨瀛愯妭鐐硅繘琛屼慨鏀�') return; - }debugger; + } this.form = {...this.nodeRow}; this.form.inputRevisionFlag = JSON.parse(this.form.inputRevisionFlag); // 瀛楃涓瞗alse杞崲涓哄竷灏斿�� // this.form.fName = this.nodeRow.id === 'topNode' ? "" : this.nodeRow.id; - this.form.subLifeCycleId = (this.nodeRow.lifeCycleIds && this.nodeRow.lifeCycleIds.trim()) - ? this.nodeRow.lifeCycleIds.split(',').map(item => ({id: item.trim()})) - : []; + this.form.subLifeCycleIdList = this.nodeRow.lifeCycleIds ? this.nodeRow.lifeCycleIds.split(',') : []; this.dialogAttrData = this.nodeRow.attributes ? JSON.parse(this.nodeRow.attributes) : []; - function processChildren(item,fName) { + + function processChildren(item, fName) { if (item.children && item.children.length > 0) { item.children = item.children.map(child => { - processChildren(child,fName); // 閫掑綊澶勭悊姣忎釜瀛愯妭鐐� - if(fName==child.id){ - child.disabled=true; - }else { - child.disabled=false; + processChildren(child, fName); // 閫掑綊澶勭悊姣忎釜瀛愯妭鐐� + if (fName == child.id) { + child.disabled = true; + } else { + child.disabled = false; } return child; }); } }; - const inheritTreeData=this.inheritTreeData.map(item => { - processChildren(item,this.form.id); // 澶勭悊姣忎釜鑺傜偣 - if(this.form.id==item.id){ - item.disabled=true; - }else { - item.disabled=false; + const inheritTreeData = this.inheritTreeData.map(item => { + processChildren(item, this.form.id); // 澶勭悊姣忎釜鑺傜偣 + if (this.form.id == item.id) { + item.disabled = true; + } else { + item.disabled = false; } return item; }); - this.inheritTreeData=inheritTreeData + this.inheritTreeData = inheritTreeData this.title = 'edit'; this.visible = true; + }, + + subLifeChange(data) { + if (data.value.length == 0) { + this.lifeData = this.allLifeData + } else { + this.lifeData = this.allLifeData.filter(item => { + return !data.value.includes(item.id) + }); + } + }, + // 瀵硅瘽妗� 灞炴�ф睜鍒楄〃澧炲姞鎸夐挳 + addDialogClickHandler() { + this.dialogAttrLoading = true; + this.attrPollDialogVisible = true; + this.dialogAttrReload = Math.random(); // 寮哄埗鍒锋柊琛ㄦ牸 瑙e喅琛ㄦ牸閿欒 + this.getAttrDialogDta(); + }, + + // 鏌ヨ灞炴�ф睜鍒楄〃鏁版嵁 + getAttrDialogDta() { + gridAttribute(this.attrPage.currentPage, this.attrPage.pageSize, this.searchAttrParams).then(res => { + const data = res.data.data.map(item => { + item.selectable = !this.dialogAttrData.some(existingItem => existingItem.id === item.id); + return item; + }); + this.dialogAttrSaveData = data; + this.attrPage.total = res.data.total; + this.dialogAttrLoading = false; + }).catch(err => { + this.$message.error(err); + }); + }, + + // 鏂板灞炴�ф睜鍒楄〃鍏抽棴瀵硅瘽妗� + dialogAttrClose() { + this.attrPollDialogVisible = false; + this.searchAttrParams = {}; + }, + + // 娣诲姞灞炴�ф睜琛ㄦ牸閫夋嫨妗� + dialogAttrSelectChange(row) { + this.dialogAttrSelectList = row; + }, + + // 娣诲姞灞炴�ф睜 琛岀偣鍑� + dialogAttrRowClickHandler(row) { + if (!row.selectable) { + return; + } + func.rowClickHandler( + row, + this.$refs.dialogAttrCrud, + this.attrLastIndex, + (newIndex) => { + this.attrLastIndex = newIndex; + }, + () => { + this.dialogAttrSelectList = [row]; + } + ); + }, + + //娣诲姞灞炴�ф睜 鏉℃暟 + attrSizeChange(val) { + this.attrPage.pageSize = val; + this.getAttrDialogDta() + }, + + //娣诲姞灞炴�ф睜 椤电爜 + attrCurrentChange(val) { + this.attrPage.currentPage = val; + this.getAttrDialogDta(); + }, + + //娣诲姞灞炴�ф睜 鎼滅储 + attrHandleSearch(params, done) { + if (func.isEmptyObject(params)) { + this.searchAttrParams = {}; + } else { + this.searchAttrParams = { + "conditionMap[id]": "*" + params.id + "*" + }; + } + + this.getAttrDialogDta(); + done(); + }, + + //娣诲姞灞炴�ф睜 娓呯┖鎼滅储 + attrHandleReset() { + this.searchAttrParams = {}; + this.getAttrDialogDta(); + }, + + // 娣诲姞灞炴�ф睜 淇濆瓨 + dialogAttrAddClickHandler() { + this.dialogAttrSelectList.forEach(item => { + this.dialogAttrData.push({ + id: item.id, + attributeDataType: item.attributeDataType, + defaultValue: item.defaultValue, + description: item.description + }); + }); + this.attrPollDialogVisible = false; + }, + + // 灞炴�ф睜鍒犻櫎 + dialogBottomAttrDel(form, index) { + this.dialogAttrData.splice(index, 1); + }, + + // 鍙兘杈撳叆鑻辨枃姝e垯鏍¢獙 + validateEnglishOnly(rule, value, callback) { + if (!value) { + return callback(new Error('璇疯緭鍏ョ被鍨嬪悕绉�')); + } + if (!/^[A-Za-z]+$/.test(value)) { + return callback(new Error('鍙兘杈撳叆鑻辨枃瀛楁瘝')); + } + callback(); // 楠岃瘉閫氳繃 + }, + + // 娓呯┖琛ㄥ崟 + resetForm() { + const form = { + id: '', // 绫诲瀷鍚嶇О + name: '', // 鏍囩 + fName: '', // 缁ф壙鑷� + implClass: '', // 瀹炵幇绫� + description: '', // 鎻忚堪 + revLevel: '2', // 鐗堟湰瑙勫垯 + revisionRuleId: '',// 鐗堟湰鍙疯鍒� + inputRevisionFlag: 'false', // 鎵嬪伐杈撳叆 + delimiter: '', // 鍒嗛殧绗� + versionRule: '0', // 鐗堟鍙疯鍒� + lifeCycleId: '', // 鐢熷懡鍛ㄦ湡 + subLifeCycleId: '', // 鐢熷懡鍛ㄦ湡澶囬�夊垪琛�, + subLifeCycleIdList: [], + lifeCycleIds: '', + apNameArray: "", // 灞炴�ф睜鍒楄〃鈥欙紝鈥樺垎闅� + }; + this.dialogAttrData = []; // 灏嗗睘鎬ф睜琛ㄦ牸缃┖ + this.form = {...form}; + this.$refs.form.clearValidate(); + }, + + // 鏂板缂栬緫瀵硅瘽妗嗗彇娑� + addDialogClose() { + this.resetForm(); + this.visible = false; + }, + + // 鐗堟湰瑙勫垯鍒囨崲 缃┖鍏朵粬鏉′欢 + revLevelChange() { + this.form.inputRevisionFlag = false; + this.form.delimiter = ""; + this.form.versionRule = "0"; + this.form.revisionRuleId = ""; }, // 鍒犻櫎鎸夐挳 @@ -1177,18 +1307,14 @@ Object.entries(data).forEach(([id, methods]) => { let action; - switch (methods) { - case '_CREATE': - action = '鍒涘缓琛�'; - break; - case '_ADD': - action = '澧炲姞鍒�'; - break; - case '_DROP': - action = '绉婚櫎鍒�'; - break; - default: - action = '鏈煡'; + if (methods.includes('_CREATE')) { + action = methods.replace('_CREATE', '鍒涘缓琛�'); + } else if (methods.includes('_ADD')) { + action = methods.replace('_ADD', '澧炲姞鍒�'); + } else if (methods.includes('_DROP')) { + action = methods.replace('_DROP', '绉婚櫎鍒�'); + } else { + action = '鏈煡'; } outputData.push({ id: id, @@ -1362,12 +1488,12 @@ width: 100%; } - .el-tag{ - line-height:22px; + .el-tag { + line-height: 22px; height: 24px; } - .el-radio{ + .el-radio { margin-right: 20px; } } @@ -1384,7 +1510,7 @@ .dialogForm > div { border: 1px solid #EBEEF5; border-radius: 2px; - padding: 25px 20px 5px 10px; /* 涓� 鍙� 涓� 宸� */ + padding: 15px 20px 0 10px; /* 涓� 鍙� 涓� 宸� */ box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1); /* 娣诲姞闃村奖鏁堟灉 */ } -- Gitblit v1.9.3