From fe35627e29ba5604e8c7fb3af3c8e82becd7c144 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期三, 06 十二月 2023 10:48:00 +0800
Subject: [PATCH] 主数据表格loading加载优化
---
Source/UBCS-WEB/src/views/modeling/original.vue | 119 ++++++++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 96 insertions(+), 23 deletions(-)
diff --git a/Source/UBCS-WEB/src/views/modeling/original.vue b/Source/UBCS-WEB/src/views/modeling/original.vue
index eaf8f50..f95fbbf 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"
+ <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">
<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>
@@ -51,12 +54,12 @@
</template>
{{ itemForm.itemData.typeValue }}
</el-descriptions-item>
- <el-descriptions-item>
+<!-- <el-descriptions-item>
<template slot="label">
鏍囩
</template>
{{ itemForm.itemData.hashtag }}
- </el-descriptions-item>
+ </el-descriptions-item>-->
<el-descriptions-item>
<template slot="label">
榛樿鍊�
@@ -67,7 +70,7 @@
<template slot="label">
鍏佽涓虹┖
</template>
- {{ itemForm.itemData.nullable }}
+ {{ 'true' == itemForm.itemData.nullable ? '鏄�' : '鍚�'}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
@@ -119,14 +122,14 @@
<template slot="label">
鏋氫妇绫诲瀷
</template>
- {{ itemForm.itemData.dictCode }}
+ {{ itemForm.itemData.dictValue }}
</el-descriptions-item>
</el-descriptions>
</el-tab-pane>
</el-tabs>
</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 +141,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 +159,11 @@
attribute: {
nullable: true
},
+ editAttribute: {},
applyRangeData: [],
option: {
- height: "550px",
+ height: "auto",
+ calcHeight:20,
headerAlign: "center",
border: true,
index: true,
@@ -169,6 +176,7 @@
addBtn: false,
editBtn: false,
delBtn: false,
+ columnBtn:false,
column: [{
label: "閫夋嫨",
prop: "radio",
@@ -187,12 +195,12 @@
prop: "name",
align: "left",
display: false
- }, {
+ },/* {
label: "鏍囩",
prop: "hashtag",
// hide: true,
display: false
- }, {
+ },*/ {
label: "鏄惁浣跨敤鏋氫妇",
prop: "usingDict",
type: "switch",
@@ -245,9 +253,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 +279,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 +325,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 +366,10 @@
});
},
+ doSearch(){
+ var params = {"id_like":this.searchId};
+ this.onLoad(this.page,params);
+ }
},
components: { Versionpackage }
}
@@ -312,4 +379,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