From dedbadd96ab7e1533572b25511fd201678c64dad Mon Sep 17 00:00:00 2001 From: ludc Date: 星期四, 17 十月 2024 09:56:18 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/UBCS-WEB/src/views/modeling/original.vue | 800 ++++++++++++++++++++++++++------------------------------ 1 files changed, 373 insertions(+), 427 deletions(-) diff --git a/Source/UBCS-WEB/src/views/modeling/original.vue b/Source/UBCS-WEB/src/views/modeling/original.vue index f73bedd..b45a6ac 100644 --- a/Source/UBCS-WEB/src/views/modeling/original.vue +++ b/Source/UBCS-WEB/src/views/modeling/original.vue @@ -1,44 +1,157 @@ <template> - <basic-container> - <avue-crud v-model="form" :option="option" :data="data" ref="crud" - @on-load="onLoad" - @row-save="rowSave" - @row-update="rowUpdate" - :before-open="beforeOpen" - @row-del="rowDel" - :page.sync="page" - @refresh-change="refreshChange" - > - <template slot-scope="{row,index,type}" slot="selInputForm"> - <div style="margin-left: 75px"> - <el-input v-model="form.text" :size="size" - style="width: 210px" :readonly="true"></el-input> - <el-button type="primary" style="margin-left: 10px" @click="addHandle">閫夋嫨</el-button> - <el-button type="info">鍙栨秷</el-button> + <el-container> + <el-main> + <basic-container> + <avue-crud ref="crud" v-model="form" :data="data" :option="option" :page.sync="page" + :permission="permissionList" + style="height: calc(100vh - 148px)" + @on-load="onLoad" @refresh-change="refreshChange" @row-click="rowClick"> + <template slot="radio" slot-scope="{row}"> + <el-radio v-model="selectRow" :label="row.$index"> + </el-radio> + </template> + <template slot="menu" slot-scope="{row,index}"> + <el-button v-if="permissionList.editBtn" icon="el-icon-edit" size="small" type="text" + @click="updateSave(row,index)">缂栬緫 + </el-button> + <el-button v-if="permissionList.delBtn" icon="el-icon-delete" size="small" type="text" + @click="deleteSave(row,index)">鍒犻櫎 + </el-button> + </template> + <template slot="menuLeft"> + <div> + <el-button v-if="permissionList.addBtn" icon="el-icon-plus" size="small" type="primary" @click="addSave">鏂� 澧� + </el-button> + <el-button v-if="permissionList.apply" icon="el-icon-zoom-in" plain size="small" type="primary" + @click="applyRangeOpen">鏌ョ湅浣跨敤鑼冨洿 + </el-button> + <span style="width: 200px;display: inline-block"> + <el-select slot="prepend" v-model="oriValue" placeholder="璇烽�夋嫨" size="small"> + <el-option v-for="item in oriData" :key="item.prop" :label="item.label" :value="item.prop" + ></el-option> + </el-select> + </span> + <span> + <el-input v-model="searchId" class="attrSearch" clearable placeholder="璇疯緭鍏ュ唴瀹�" + prefix-icon="el-icon-search" + size="small" type="text" @change="doSearch"></el-input> + <el-button icon="el-icon-search" plain size="small" type="primary" @click="doSearch"> 鎼滅储</el-button> + </span> + </div> + </template> + <template slot="typeValue" slot-scope="{row}"> + <el-tag>{{ row.typeValue }}</el-tag> + </template> + </avue-crud> + <!-- <el-dialog :visible.sync="applyRange.display" append-to-body :title="applyRange.title" width="600px" + @close="applyRangeClose"> + <avue-crud v-model="applyRange.model" :option="applyRange.option" :data="applyRange.data" class="applyRangeTable" + ></avue-crud> + </el-dialog> --> + <Versionpackage ref="applyRange" :rangeData="applyRangeData"></Versionpackage> + </basic-container> + </el-main> + <el-aside> + <basic-container class="itemForm"> + <div style="height: 44vh"> + <el-descriptions :column="1" border class="margin-top" size="medium" title="灞炴�ч」"> + <el-descriptions-item> + <template slot="label"> + 灞炴�х紪鍙� + </template> + {{ itemForm.itemData.id }} + </el-descriptions-item> + <el-descriptions-item> + <template slot="label"> + 灞炴�у悕绉� + </template> + {{ itemForm.itemData.name }} + </el-descriptions-item> + <el-descriptions-item> + <template slot="label"> + 灞炴�х被鍨� + </template> + {{ itemForm.itemData.typeValue }} + </el-descriptions-item> + <!-- <el-descriptions-item> + <template slot="label"> + 鏍囩 + </template> + {{ itemForm.itemData.hashtag }} + </el-descriptions-item>--> + <el-descriptions-item> + <template slot="label"> + 榛樿鍊� + </template> + {{ itemForm.itemData.defaultValue }} + </el-descriptions-item> + <el-descriptions-item> + <template slot="label"> + 鍏佽涓虹┖ + </template> + {{ 'true' == itemForm.itemData.nullable ? '鏄�' : '鍚�' }} + </el-descriptions-item> + <el-descriptions-item> + <template slot="label"> + 闀垮害 + </template> + {{ itemForm.itemData.maxLength }} + </el-descriptions-item> + <el-descriptions-item> + <template slot="label"> + 鎻忚堪 + </template> + {{ itemForm.itemData.description }} + </el-descriptions-item> + </el-descriptions> </div> - </template> - </avue-crud> - <el-dialog :visible.sync="packageBox" - append-to-body - title="鏌ョ湅涓氬姟绫诲瀷" - width="1000px"> - <original-range @rowchange="rowchange"></original-range> - <span slot="footer" class="dialog-footer"> - <el-button @click="dialoghandelfalse">鍙� 娑�</el-button> - <el-button type="primary" @click="dialoghandeltrue">纭� 瀹�</el-button> - </span> - </el-dialog> - <el-dialog :visible.sync="packageLinkBox" - append-to-body - title="鏌ョ湅閾炬帴绫诲瀷" - width="1000px"> - <original-link @rowLinkchange="rowLinkchange"></original-link> - <span slot="footer" class="dialog-footer"> - <el-button @click="Linkdialoghandelfalse">鍙� 娑�</el-button> - <el-button type="primary" @click="Linkdialoghandeltrue">纭� 瀹�</el-button> - </span> - </el-dialog> - </basic-container> + <div style=" height: 40vh"> + <el-descriptions :column="1" border class="margin-top" size="medium" title="灞炴�ч厤缃�"></el-descriptions> + <el-tabs v-model="itemForm.activeName" stretch="true" style="height:235px" @tab-click="handleClick"> + <el-tab-pane label="鍙傜収" name="referTab"> + <el-descriptions :column="1" border class="margin-top" size="medium"> + <el-descriptions-item> + <template slot="label"> + 浣跨敤鍙傜収 + </template> + {{ itemForm.itemData.referTypeValue ? '鏄�' : '鍚�' }} + </el-descriptions-item> + <el-descriptions-item> + <template slot="label"> + 鍙傜収绫诲瀷 + </template> + {{ itemForm.itemData.referTypeValue }} + </el-descriptions-item> + <el-descriptions-item> + <template slot="label"> + 鍙傜収鍚嶇О + </template> + {{ itemForm.itemData.referToName }} + </el-descriptions-item> + </el-descriptions> + </el-tab-pane> + <el-tab-pane label="鏋氫妇" name="enumTab"> + <el-descriptions :column="1" :size="small" border class="margin-top"> + <el-descriptions-item> + <template slot="label"> + 浣跨敤鏋氫妇 + </template> + {{ itemForm.itemData.usingDict ? '鏄�' : '鍚�' }} + </el-descriptions-item> + <el-descriptions-item> + <template slot="label"> + 鏋氫妇绫诲瀷 + </template> + {{ itemForm.itemData.dictValue }} + </el-descriptions-item> + </el-descriptions> + </el-tab-pane> + </el-tabs> + </div> + </basic-container> + </el-aside> + <originalAdd ref="originalAdd" :attribute="editAttribute" @refreshTable="refreshChange"></originalAdd> + </el-container> </template> <script> @@ -46,422 +159,193 @@ getList, remove, add, - update, getPage + update, getPage, getApplyRange } from "@/api/omd/OmdAttribute"; - -import { - getDictionary -} from "@/api/omd/dict"; +import Versionpackage from "./Versionpackage.vue"; +import {getDictionary} from "@/api/omd/enum"; +import {mapGetters} from "vuex"; export default { - name: "original.vue", + name: "original", data() { return { - datas:[], - formAtrr:{}, - rouname: "", - // 涓氬姟绫诲瀷瀵硅瘽妗� - packageBox: false, - //閾炬帴绫诲瀷瀵硅瘽妗� - packageLinkBox: false, - //鍊煎煙涓嬫媺妗嗘暟鎹� - Typelist: [], - //鐗堟湰鏁版嵁 - banList: [], - // 灞炴�х被鍨嬩笅鎷夋鏁版嵁 - typeSelectList : [ + oriData: [ { - label: "鍝堝搱鍝�", - value:0 - },], - // 鏄惁涓虹┖ - nullable : [], - form: { - text: "" - }, - detailForm: { - text: "" - }, + label: "灞炴�х紪鍙�", + prop: "id", + align: "left", + display: false, + width: 200, + required: true + }, { + label: "灞炴�у悕绉�", + prop: "name", + align: "left", + display: false + } + ], + oriValue: "id", page: { pageSize: 10, currentPage: 1, total: 100 }, - data: [ - - ], + selectRow: "", + data: [], + form: {}, + attribute: { + nullable: true + }, + editAttribute: {}, + applyRangeData: [], option: { - selection: true, - headerAlign: 'center', + height: 'auto', + calcHeight: 20, + headerAlign: "center", border: true, index: true, - rowKey: 'id', + rowKey: "id", tabs: true, - column: [ - { - label: '灞炴�х紪鍙�', - prop: 'key', - align: 'left', - display: false + stripe: true, + indexFixed: false, + menuWidth: 150, + highlightCurrentRow: true, + addBtn: false, + editBtn: false, + delBtn: false, + columnBtn: false, + column: [{ + label: "閫夋嫨", + prop: "radio", + width: 60, + hide: false, + display: false + }, { + label: "灞炴�х紪鍙�", + prop: "id", + align: "left", + display: false, + width: 200, + required: true + }, { + label: "灞炴�у悕绉�", + prop: "name", + align: "left", + display: false + },/* { + label: "鏍囩", + prop: "hashtag", + // hide: true, + display: false + },*/ { + label: "鏄惁浣跨敤鏋氫妇", + prop: "usingDict", + type: "switch", + hide: true, + labelWidth: 132, + display: false, + dicData: [{ + label: "鏄�", + value: "true" }, { - label: '灞炴�у悕绉�', - prop: 'label', - align: 'left', - display: false - }, - { - label: '鏍囩', - prop: 'hashtag', - // hide: true, - display: false - }, - { - label: '鏄惁浣跨敤鏋氫妇', - prop: 'usingDict', - type: 'switch', - // hide: true, - labelWidth: 132, - display: false, - dicData: [{ - label: '鏄�', - value: 0 - }, { - label: '鍚�', - value: 1 - }] - }, - { - label: '灞炴�х被鍨�', - prop: 'typeValue', - display: false, - // hide: true - }, - { - label: '榛樿鍊�', - prop: 'defaultValue', - display: false - }, - { - label: '鍏佽涓虹┖', - prop: 'nullable', - type: 'switch', - display: false, - hide: true, - labelWidth: 132, - dicData: [{ - label: '鍚�', - value: 1 - }, { - label: '鏄�', - value: 0 - }] - }, - { - label: "闀垮害", - prop: "maxLength", - hide: true, - display: false - }, - { - label: '鎻忚堪', - prop: 'description', - type: "textarea", - display: false - }, - ], - group: [ - { - label: '灞炴�ч」', - prop: "index", - column: [ - { - label: '灞炴�х紪鐮�', - prop: 'key', - align: 'left', - }, - { - label: '灞炴�у悕绉�', - prop: 'label', - align: 'left', - }, - { - label: '鏍囩', - prop: 'hashtag', - hide: true - },{ - label: '灞炴�х被鍨嬪瓧鍏哥爜', - prop: 'typeCode', - display: false, - value: 'attributeType' - }, - { - label: '灞炴�х被鍨�', - prop: 'typeKey', - type: "select", - dicUrl: '/api/ubcs-omd/dict-biz/dictionary?code=attributeType', - dicType: 'String', - props: { - label: 'dictValue', - value: 'dictKey' - }, - rules: [ - { - required: true, - message: "璇烽�夋嫨灞炴�х被鍨�", - trigger: "click" - } - ] - }, - { - label: '榛樿鍊�', - prop: 'defaultValue', - }, - { - label: '鍏佽涓虹┖', - prop: 'nullable', - type: 'switch', - hide: true, - labelWidth: 132, - dicData: this.nullable - }, - { - label: "闀垮害", - prop: "maxLength", - hide: true - }, - { - label: '鎻忚堪', - prop: 'description', - type: "textarea" - }, - ] - }, - { - label: '鍊煎煙', - column: [ - { - placeholder: "璇烽�夋嫨鍊煎煙", - span: 12, - label: '鍊煎煙', - prop: 'range', - value: 0, - type: "select", - change: this.selectChange, - dicData: [ - { - label: "涓氬姟绫诲瀷", - value: 0 - }, - { - label: "閾炬帴绫诲瀷", - value: 1 - }, - ] - }, - { - prop: "selInput", - placeholder: false, - readonly: true, - display: true, - formslot: true, - }, - { - label: "閫夋嫨鐗堟湰", - prop: "banben", - type: 'select', - value: 0, - change: this.selchange, - display: true, - dicData: [ - { - label: '褰撳墠鐗堟湰娆�', - value: 0 - }, - { - label: '鏈�鏂扮増鏈', - value: 1 - } - ] - }, - { - //榛樿琛ㄦ牸鎻掓Ы - prop: "default", - span: 24, - display: false - } - ] - }, - { - label: '鏋氫妇', - column: [ - { - label: '鏄惁浣跨敤鏋氫妇', - prop: 'isnot', - type: 'switch', - hide: true, - labelWidth: 132, - span: 8, - dicData: [{ - label: '鍚�', - value: 1 - }, { - label: '鏄�', - value: 0 - }] - }, - { - prop: 'text', - type: 'input', - placeholder: '璇疯緭鍏ュ唴瀹�', - hide: true, - display: false - }, - { - prop: 'enumerationSelect', - type: 'select', - placeholder: '璇烽�夋嫨', - hide: true, - span: 12, - dicData: [ - { - label: 'a', - value: 0 - }, - { - label: 'b', - value: 1 - }, - { - label: 'c', - value: 2 - } - ] - }, - { - label: '鎻忚堪', - prop: 'endesc', - type: "textarea", - labelWidth: 132, - }, - ] - } + label: "鍚�", + value: "false" + }] + }, { + label: "灞炴�х被鍨�", + prop: "typeValue", + display: false, + // hide: true + }, { + label: "榛樿鍊�", + prop: "defaultValue", + display: false + }, { + label: "鍏佽涓虹┖", + prop: "nullable", + type: "switch", + display: false, + hide: true, + labelWidth: 132, + dicData: [{ + label: "鍚�", + value: "false" + }, { + label: "鏄�", + value: "true" + }] + }, { + label: "闀垮害", + prop: "maxLength", + hide: true, + display: false + }, { + label: "鎻忚堪", + prop: "description", + type: "textarea", + display: false + }, ] }, - } + itemForm: { + itemData: {}, + activeName: "referTab", + enumInitFlag: false, + referInitFlag: false, + form: {} + }, + searchId: '', + }; }, - - + computed: { + ...mapGetters(["permission"]), + permissionList() { + return { + addBtn: this.vaildData(this.permission.modeling_original.original_add, false), + apply: this.vaildData(this.permission.modeling_original.original_applyopen, false), + delBtn: this.vaildData(this.permission.modeling_original.original_delete, false), + editBtn: this.vaildData(this.permission.modeling_original.original_edit, false), + } + }, + }, created() { }, methods: { - rowLinkchange(row) { - this.form.text = row.name - }, - rowchange(row) { - this.form.text = row.name - }, - //鍊煎煙绫诲瀷閫夋嫨 - addHandle() { - this.packageBox = true - if (this.Typelist.value == 0) { - this.packageBox = true - this.packageLinkBox = false - } else if (this.Typelist.value == 1) { - this.packageBox = false - this.packageLinkBox = true - } - }, - // 鍊煎煙涓氬姟绫诲瀷瀵硅瘽妗嗗彇娑� - dialoghandelfalse() { - this.packageBox = false; - this.form.text = "" - }, - //鍊煎煙涓氬姟绫诲瀷瀵硅瘽妗嗙‘瀹� - dialoghandeltrue() { - this.packageBox = false - }, - // 鍊煎煙閾炬帴绫诲瀷瀵硅瘽妗嗗彇娑� - Linkdialoghandelfalse() { - this.packageLinkBox = false; - this.form.text = "" - }, - //鍊煎煙閾炬帴绫诲瀷瀵硅瘽妗嗙‘瀹� - Linkdialoghandeltrue() { - this.packageLinkBox = false - }, - selectChange(val) { - this.Typelist = val - - if (val.value == 0) { - this.option.group[1].column[2].display = false - } else if (val.value == 1) { - this.option.group[1].column[2].display = true - } else if (val.column.value == 0) { - this.option.group[1].column[2].display = false - } - }, - selchange(val) { - this.banList = val - }, refreshChange() { this.onLoad(this.pageParent, this.query); }, - beforeOpen(done, type) { - if (['view', 'edit'].includes(type)) { - // 鏌ョ湅鍜岀紪杈戦�昏緫 - console.log("缂栬緫") - } else { - //鏂板閫昏緫 - console.log(this.Typelist) - console.log(this.banList) - - console.log("鏂板") - console.log(this.typeSelectList) - } - done(); - + addSave() { + this.$refs.originalAdd.showSubmitDialog = true; + const newAttr = {}; + newAttr.nullable = true; + this.$refs.originalAdd.attribute = newAttr; }, - rowDel(row) { - this.$confirm("纭畾灏嗛�夋嫨鏁版嵁鍒犻櫎?", { + updateSave(row, index) { + this.selectRow = index; + var json = JSON.stringify(row); + this.editAttribute = JSON.parse(json); + this.editAttribute.nullable = row.nullable == 'true' ? true : false; + this.$refs.originalAdd.attribute = this.editAttribute; + this.$refs.originalAdd.showSubmitDialog = true; + this.checkUsingReferDict(row); + this.$refs.originalAdd.activeName = this.itemForm.activeName; + this.$refs.originalAdd.enumInitFlag = this.itemForm.enumInitFlag; + this.$refs.originalAdd.referInitFlag = this.itemForm.referInitFlag; + // this.refreshChange() + }, + deleteSave(row, index) { + this.$confirm("鍒犻櫎鍏冩暟鎹皢鏃犳硶琚仮澶�, 鏄惁缁х画?", "鎻愮ず", { + iconClass: 'el-icon-question', confirmButtonText: "纭畾", cancelButtonText: "鍙栨秷", + showClose: true, type: "warning" - }) - .then(() => { - return remove(row.id); - }) - .then(() => { - this.$message({ - type: "success", - message: "鎿嶄綔鎴愬姛!" - }); - this.onLoad(); + }).then(() => { + remove(row.oid).then(res => { + this.$message.success("鍒犻櫎鎴愬姛"); + this.refreshChange(); }); - }, - rowSave(row, done) { - add(row).then(() => { - this.$message({ - type: "success", - message: "鎿嶄綔鎴愬姛!" - }); - done(row) - this.onLoad() - }).catch((res) => { - this.$message({ - type: "success", - message: res - }); - }) - }, - rowUpdate(row, index, done) { - update(row).then(() => { - this.onLoad() - this.$message({ - type: "success", - message: "淇敼鎴愬姛!" - }); - done(row) - }) + }); }, onLoad(page, params = {}) { this.loading = true; @@ -470,13 +354,75 @@ this.page.total = data.total; this.data = data.records; this.loading = false; - this.data = res.data.data.records - }) + this.data = res.data.data.records; + this.itemData = this.data[0]; + }); }, + rowClick(row) { + this.itemForm.itemData = row; + this.selectRow = row.$index; + this.attribute = row; + this.checkUsingReferDict(row); + }, + checkUsingReferDict(row) { + if (row.referToId !== null && row.referToId !== "") { + this.itemForm.activeName = 'referTab'; + this.itemForm.referInitFlag = true; + this.itemForm.enumInitFlag = false; + } else if (row.usingDict === 'true') { + this.itemForm.activeName = 'enumTab'; + this.itemForm.referInitFlag = false; + this.itemForm.enumInitFlag = true; + getDictionary({code: row.dictCode}).then(res => { + this.editAttribute.dictValue = res.data.data[0].label; + this.itemForm.itemData.dictValue = this.editAttribute.dictValue; + this.$refs.originalAdd.dictEnums = res.data.data; + }) + } else { + this.itemForm.activeName = 'referTab'; + this.itemForm.referInitFlag = true; + this.itemForm.enumInitFlag = false; + } + }, + selectBtmType() { + this.referType.display = true; + this.referType.title = "璇烽�夋嫨" + this.referType.value; + }, + applyRangeOpen() { + if (!this.selectRow && this.selectRow != 0) { + this.$message({ + type: "warning", + message: "璇峰厛閫夋嫨灞炴��" + }); + } + var oid = this.data[this.selectRow].oid; + getApplyRange(oid).then(res => { + this.applyRangeData = res.data.data; + this.$refs.applyRange.rangeData = this.applyRangeData; + this.$refs.applyRange.showDialog = true; + + }); + }, + doSearch() { + + var params = {[this.oriValue + "_like"]: this.searchId}; + this.onLoad(this.page, params); + } }, + components: {Versionpackage} } </script> <style lang="scss"> +.applyRangeTable > .el-card:nth-of-type(2) > .el-card__body > .avue-crud__menu { + display: none !important; +} +.attrSearch { + width: 201px; +} + +.attrSearch > .el-input__inner { + width: 200px; +} </style> -- Gitblit v1.9.3