From 1da8ba361d446d08ef10186e349a6ac72de6db26 Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期五, 05 一月 2024 10:47:51 +0800 Subject: [PATCH] 元数据管理布局调整 --- Source/UBCS-WEB/src/views/modeling/original.vue | 216 ++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 146 insertions(+), 70 deletions(-) diff --git a/Source/UBCS-WEB/src/views/modeling/original.vue b/Source/UBCS-WEB/src/views/modeling/original.vue index eaf8f50..5b1b1f8 100644 --- a/Source/UBCS-WEB/src/views/modeling/original.vue +++ b/Source/UBCS-WEB/src/views/modeling/original.vue @@ -1,22 +1,25 @@ -<template> + <template> <el-container> <el-main> <basic-container> - <avue-crud v-model="form" ref="crud" :option="option" :data="data" @on-load="onLoad" :page.sync="page" - @refresh-change="refreshChange" @row-click="rowClick"> + <avue-crud v-model="form" ref="crud" :option="option" :data="data" @on-load="onLoad" :page.sync="page" :permission="permissionList" + @refresh-change="refreshChange" @row-click="rowClick" style="height: calc(100vh - 148px)"> <template slot="radio" slot-scope="{row}"> <el-radio v-model="selectRow" :label="row.$index"> </el-radio> </template> - <template slot="menu"> - <el-button icon="el-icon-edit" size="small" type="text" @click="updateSave">缂栬緫</el-button> - <el-button icon="el-icon-delete" size="small" type="text" @click="deleteSave">鍒犻櫎</el-button> + <template slot="menu" slot-scope="{row,index}"> + <el-button icon="el-icon-edit" size="small" type="text" @click="updateSave(row,index)" v-if="permissionList.editBtn">缂栬緫</el-button> + <el-button icon="el-icon-delete" size="small" type="text" @click="deleteSave(row,index)" v-if="permissionList.delBtn">鍒犻櫎</el-button> </template> - <template slot="menuLeft"> - <el-button size="small" type="primary" icon="el-icon-plus" @click="addSave">鏂� 澧� + <template slot="menuLeft"> + <el-button size="small" type="primary" icon="el-icon-plus" @click="addSave" v-if="permissionList.addBtn">鏂� 澧� </el-button> - <el-button size="small" plain type="primary" icon="el-icon-zoom-in" @click="applyRangeOpen">鏌ョ湅浣跨敤鑼冨洿 + <el-button size="small" plain type="primary" icon="el-icon-zoom-in" @click="applyRangeOpen" v-if="permissionList.apply">鏌ョ湅浣跨敤鑼冨洿 </el-button> + <el-input placeholder="鎸夊睘鎬х紪鍙锋煡璇�" v-model="searchId" clearable prefix-icon="el-icon-search" class="attrSearch" + size="small" @change="doSearch" type="text"></el-input> + <el-button size="small" plain type="primary" icon="el-icon-search" @click="doSearch"> 鎼滅储</el-button> </template> <template slot="typeValue" slot-scope="{row}"> <el-tag>{{ row.typeValue }}</el-tag> @@ -32,7 +35,8 @@ </el-main> <el-aside> <basic-container class="itemForm"> - <el-descriptions class="margin-top" :column="1" size="medium" border title="灞炴�ч」"> + <div style="height: 44vh"> + <el-descriptions class="margin-top" :column="1" size="medium" border title="灞炴�ч」" > <el-descriptions-item> <template slot="label"> 灞炴�х紪鍙� @@ -51,12 +55,12 @@ </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.hashtag }} + </el-descriptions-item>--> <el-descriptions-item> <template slot="label"> 榛樿鍊� @@ -67,7 +71,7 @@ <template slot="label"> 鍏佽涓虹┖ </template> - {{ itemForm.itemData.nullable }} + {{ 'true' == itemForm.itemData.nullable ? '鏄�' : '鍚�'}} </el-descriptions-item> <el-descriptions-item> <template slot="label"> @@ -82,51 +86,53 @@ {{ itemForm.itemData.description }} </el-descriptions-item> </el-descriptions> - <div style="height:15px"></div> - <el-descriptions class="margin-top" :column="1" size="medium" border title="灞炴�ч厤缃�"></el-descriptions> - <el-tabs v-model="itemForm.activeName" @tab-click="handleClick" stretch="true" style="height:235px"> - <el-tab-pane label="鍙傜収" name="referTab"> - <el-descriptions class="margin-top" :column="1" size="medium" border> - <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 class="margin-top" :column="1" :size="small" border> - <el-descriptions-item> - <template slot="label"> - 浣跨敤鏋氫妇 - </template> - {{ itemForm.itemData.usingDict ? '鏄�' : '鍚�' }} - </el-descriptions-item> - <el-descriptions-item> - <template slot="label"> - 鏋氫妇绫诲瀷 - </template> - {{ itemForm.itemData.dictCode }} - </el-descriptions-item> - </el-descriptions> - </el-tab-pane> - </el-tabs> + </div> + <div style="height: 40vh"> + <el-descriptions class="margin-top" :column="1" size="medium" border title="灞炴�ч厤缃�"></el-descriptions> + <el-tabs v-model="itemForm.activeName" @tab-click="handleClick" stretch="true" style="height:235px"> + <el-tab-pane label="鍙傜収" name="referTab"> + <el-descriptions class="margin-top" :column="1" size="medium" border> + <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 class="margin-top" :column="1" :size="small" border> + <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="attribute" @refreshTable="refreshChange"></originalAdd> + <originalAdd ref="originalAdd" @refreshTable="refreshChange" :attribute="editAttribute"></originalAdd> </el-container> </template> @@ -138,6 +144,8 @@ update, getPage, getApplyRange } from "@/api/omd/OmdAttribute"; import Versionpackage from "./Versionpackage.vue"; +import {getDictionary} from "@/api/omd/enum"; +import {mapGetters} from "vuex"; export default { name: "original", @@ -154,9 +162,11 @@ attribute: { nullable: true }, + editAttribute: {}, applyRangeData: [], option: { - height: "550px", + height:'auto', + calcHeight:20, headerAlign: "center", border: true, index: true, @@ -169,6 +179,7 @@ addBtn: false, editBtn: false, delBtn: false, + columnBtn:false, column: [{ label: "閫夋嫨", prop: "radio", @@ -187,12 +198,12 @@ prop: "name", align: "left", display: false - }, { + },/* { label: "鏍囩", prop: "hashtag", // hide: true, display: false - }, { + },*/ { label: "鏄惁浣跨敤鏋氫妇", prop: "usingDict", type: "switch", @@ -245,9 +256,23 @@ 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() { }, @@ -257,15 +282,35 @@ }, addSave() { this.$refs.originalAdd.showSubmitDialog = true; - this.$refs.originalAdd.attribute = {}; + const newAttr = {}; + newAttr.nullable = true; + this.$refs.originalAdd.attribute = newAttr; }, - updateSave() { + 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.$refs.originalAdd.attribute = this.attribute; + 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() { - remove(this.itemForm.itemData).then(res => { - this.$message.success("鍒犻櫎鎴愬姛"); + deleteSave(row,index) { + this.$confirm("鍒犻櫎鍏冩暟鎹皢鏃犳硶琚仮澶�, 鏄惁缁х画?", "鎻愮ず", { + iconClass: 'el-icon-question', + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + showClose: true, + type: "warning" + }).then(() => { + remove(row.oid).then(res => { + this.$message.success("鍒犻櫎鎴愬姛"); + this.refreshChange(); + }); }); }, onLoad(page, params = {}) { @@ -283,6 +328,27 @@ 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; @@ -303,6 +369,10 @@ }); }, + doSearch(){ + var params = {"id_like":this.searchId}; + this.onLoad(this.page,params); + } }, components: { Versionpackage } } @@ -312,4 +382,10 @@ .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