From 2b5ef02510cffc0cdbe74ed53b53fd9826d0bacf Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期二, 30 一月 2024 17:12:04 +0800
Subject: [PATCH] 首页布局更改
---
Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue | 285 +++++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 236 insertions(+), 49 deletions(-)
diff --git a/Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue b/Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue
index a8c81f6..27e9fda 100644
--- a/Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue
+++ b/Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue
@@ -1,69 +1,89 @@
<template>
<div>
- <div v-if="this.crudArrayFlag" class="app" style="display: flex;flex-wrap: wrap; display: inline-block">
+ <div v-if="this.crudArrayFlag" class="app" style="display: flex;flex-wrap: wrap; display: inline-block;height: 80px">
<el-button-group>
<!--鏂板-->
- <el-button
- v-if="attrEditVisible == false && attrFlagChiledren==false && editOpenFlag && (!checkStatus || crudLCStatus=='Editing' )"
- icon="el-icon-plus" plain size="small" type="primary" @click="busineHandle">娣诲姞 {{ msg }}
+ <span v-if="permissionList.busineStatus">
+ <el-button
+ v-if="attrEditVisible == false && attrFlagChiledren==false && editOpenFlag && (!checkStatus || crudLCStatus=='Editing' )"
+ icon="el-icon-plus" plain size="small" type="primary" @click="busineHandle">娣诲姞 {{ msg }}
</el-button>
+ </span>
<!-- 鍏ㄥ睆缂栬緫-->
- <el-button
- v-if=" attrEditVisible == false && attrFlagChiledren==false && editOpenFlag&&(!checkStatus || crudLCStatus=='Editing')"
- icon="el-icon-full-screen" size="small" @click="fullscreenHandle">鍏ㄥ睆缂栬緫
+ <span v-if="permissionList.fullscreenStatus">
+ <el-button
+ v-if=" attrEditVisible == false && attrFlagChiledren==false && editOpenFlag&&(!checkStatus || crudLCStatus=='Editing')"
+ icon="el-icon-full-screen" size="small" @click="fullscreenHandle">鍏ㄥ睆缂栬緫
</el-button>
- <!-- 楠岃瘉瑙勫垯-->
+ </span>
+ <span v-if="permissionList.ruleStatus">
+ <!-- 楠岃瘉瑙勫垯-->
<el-button v-if="(!checkStatus || crudLCStatus=='Editing' )&& editOpenFlag" icon="el-icon-info" size="small"
@click="ruleAddHandler">楠岃瘉瑙勫垯
</el-button>
- <!-- 灞炴�у垎缁�-->
+ </span>
+ <span v-if="permissionList.attrStatus">
+ <!-- 灞炴�у垎缁�-->
<el-button v-if="(!checkStatus || crudLCStatus=='Editing') && editOpenFlag" icon="el-icon-menu" size="small"
@click="attrVisibleHandle">灞炴�у垎缁�
</el-button>
+ </span>
</el-button-group>
<el-button-group>
- <!-- 淇濆瓨-->
+ <span v-if="permissionList.saveStatus">
+ <!-- 淇濆瓨-->
<el-button v-if="(!checkStatus|| crudLCStatus=='Editing') && editOpenFlag" icon="el-icon-check" plain
size="small"
type="success" @click.prevent="addsHandler">淇濆瓨
</el-button>
+ </span>
<!-- 棰勮鎺掑簭-->
- <el-button icon="el-icon-arrow-down" size="small" @click="orderHandle">棰勮鎺掑簭</el-button>
- <!-- 鍒犻櫎-->
+ <el-button v-if="permissionList.orderStatus" icon="el-icon-arrow-down" size="small" @click="orderHandle">棰勮鎺掑簭
+ </el-button>
+ <span v-if="permissionList.removeStatus">
+ <!-- 鍒犻櫎-->
<el-button v-if="(!checkStatus || crudLCStatus=='Editing') && editOpenFlag" icon="el-icon-delete" size="small"
@click="CrudRemove">鍒犻櫎
</el-button>
+ </span>
<!-- 閲嶇疆-->
- <el-button icon="el-icon-refresh-right" size="small" @click="reset">閲嶇疆</el-button>
+ <el-button v-if="permissionList.resetStatus" icon="el-icon-refresh-right" size="small" @click="resetHandler">
+ 閲嶇疆
+ </el-button>
</el-button-group>
<el-button-group>
- <!--鏂板-->
- <!-- 鍒嗙被娉ㄥ叆-->
+ <span v-if="permissionList.injectStatus"><!-- 鍒嗙被娉ㄥ叆-->
<el-button v-if="(!checkStatus || crudLCStatus=='Editing') && editOpenFlag" icon="el-icon-magic-stick"
size="small" @click="injectBtn">鍒嗙被娉ㄥ叆
- </el-button>
- <!-- 缁勫悎瑙勫垯-->
+ </el-button></span>
+ <span v-if="permissionList.isShowStatus"> <!-- 缁勫悎瑙勫垯-->
<el-button v-if="(!checkStatus || crudLCStatus=='Editing') && editOpenFlag" icon="el-icon-film" size="small"
@click="isShowHandler">缁勫悎瑙勫垯
- </el-button>
- <!-- 鏋氫妇娉ㄥ叆-->
+ </el-button></span>
+ <span v-if="permissionList.enumStatus"> <!-- 鏋氫妇娉ㄥ叆-->
<el-button v-if="(!checkStatus || crudLCStatus=='Editing') && editOpenFlag" icon="el-icon-c-scale-to-original"
- size="small" @click="enmuVisHandle">鏋氫妇娉ㄥ叆
- </el-button>
- <!-- 绾ц仈灞炴��-->
+ size="small" @click="enumVisHandle">鏋氫妇娉ㄥ叆
+ </el-button></span>
+
+ <span v-if="permissionList.cascadStatus">
+ <!-- 绾ц仈灞炴��-->
<el-button v-if="(!checkStatus|| crudLCStatus=='Editing') && editOpenFlag" icon="el-icon-coin" size="small"
@click="CascadeHandle">绾ц仈灞炴��
</el-button>
+ </span>
</el-button-group>
<el-button-group>
<!-- 鍚屾鍒板叾浠栨ā鏉�-->
- <el-button icon="el-icon-share" size="small" @click="syncHandle">鍚屾鍒板叾浠栨ā鏉�</el-button>
+ <el-button v-if="permissionList.syncStatus" icon="el-icon-share" size="small" @click="syncHandle">鍚屾鍒板叾浠栨ā鏉�
+ </el-button>
</el-button-group>
<el-button-group>
<!-- 缂栫爜鐢宠棰勮-->
- <el-button icon="el-icon-view" size="small" style="" @click="applicationHandle">缂栫爜鐢宠棰勮</el-button>
+ <el-button v-if="permissionList.applicationStatus" icon="el-icon-view" size="small" style=""
+ @click="applicationHandle">缂栫爜鐢宠棰勮
+ </el-button>
</el-button-group>
<!-- 鏄惁寮�鍚紪杈� -->
@@ -256,8 +276,8 @@
</el-dialog>
<!-- 鍏ㄥ睆缂栬緫-->
<el-dialog :before-close="escEdit" :visible.sync="attrEditVisible" append-to-body fullscreen="true">
- <attrCrud :ProData="this.ProData" :attrFlagChiledren="this.attrFlag" :crudArrayFlag="this.crudArrayFlag"
- :editOpenFlag="editOpenFlag" :editStyleFlag="editStyleFlag"
+ <attrCrud :ProData="this.ProData" :attrFlagChiledren="this.attrFlag" :btnAuthList="btnAuthList"
+ :crudArrayFlag="this.crudArrayFlag" :editOpenFlag="editOpenFlag" :editStyleFlag="editStyleFlag"
@editCloseChildren="editClose"></attrCrud>
</el-dialog>
<!-- 缁勫悎瑙勫垯-->
@@ -292,21 +312,35 @@
<el-button size="small" type="primary" @click="addVisible=false">鍙栨秷</el-button>
</div>
</el-dialog>
-
<!-- 鍙傜収閰嶇疆-->
<refer-config-dialog
:display="referConfigVisble"
:referConfigOption="referConfigOption"
@setReferConfigValue="setReferConfigValue"
></refer-config-dialog>
+ <!--杩戜箟璇嶆煡璇㈣鍒� -->
+ <el-dialog :visible.sync="synonymVisible" append-to-body title="杩戜箟璇嶆煡璇㈣鍒�">
+ <avue-crud :data="synonymData" :option="synonymOption" v-loading="sysonymLoading" @selection-change="sysChange">
+ <template slot="lcStatus" slot-scope="{row}">
+ <el-tag v-if="row.lcStatus === 'Released'" type="success">鍚敤</el-tag>
+ <el-tag v-else type="danger">鍋滅敤</el-tag>
+ </template>
+ </avue-crud>
+ <div slot="footer" class="dialog-footer">
+ <el-button type="primary" @click="sysnonymSubmit">纭畾</el-button>
+ <el-button @click="sysnonymCancel">鍙栨秷</el-button>
+ </div>
+ </el-dialog>
</div>
+
<el-table v-if="this.crudArrayFlag"
ref="referAttrCrud"
v-loading="loading"
- border
:data="ProData"
- :height="this.editStyleFlag? 800 : 343"
+ :header-cell-style="{background:'#FAFAFA',color:'#505050'}"
+ :height="this.tableHeight"
+ border
style="width: 100%"
@select="selectHandle"
@cell-click="handleCellClicks"
@@ -314,13 +348,13 @@
@row-click="rowClick"
>
<el-table-column
- fixed
+ :fixed="!editStyleFlag ? 'left' : undefined"
type="selection" width="55">
</el-table-column>
<!--<el-table-column fixed label="搴忓彿" type="index" width="55"></el-table-column>-->
<el-table-column v-for="(item,index) in this.option.column" v-if="item.edit !='referName'"
:key="item.id"
- :fixed="item.fixed"
+ :fixed="!editStyleFlag ? item.fixed : undefined"
:formatter="formAttr"
:label="item.label"
:prop="item.prop"
@@ -338,13 +372,15 @@
@blur="saveRows(row)"
></el-input>
<el-input-number v-if="editingRows === row && editShows== item.prop && item.edit == 'number'"
+ v-show="!AddCellFlag"
v-model="row[item.prop]"
:style="{width:(item.width-10)+'px'}"
controls-position="right"
size="small" @blur="saveRows"></el-input-number>
- <el-select v-if="editingRows === row && editShows== item.prop && item.edit == 'select' " slot="prepend"
- v-model="row[item.prop]" allow-create default-first-option
- filterable
+ <el-select v-if="editingRows === row && editShows== item.prop && item.edit == 'select' " v-show="!AddCellFlag"
+ slot="prepend"
+ v-model="row[item.prop]" :clearable="true" allow-create
+ default-first-option filterable
@blur="selectChangeHandler(item.editConfig,index)">
<el-option
v-for="optionItem in item.data"
@@ -378,10 +414,11 @@
</template>
<script>
-import {AttrByBtm, gridCodeClassifyTemplateAttr, batchAddSave, copyto, listByFlag} from '@/api/template/templateAttr'
+import {AttrByBtm, gridCodeClassifyTemplateAttr, batchAddSave, copyto, listByFlag,codeSynonym} from '@/api/template/templateAttr'
import {getList} from "@/api/refer/table";
import func from "@/util/func";
import {getCurrentInstance} from "vue";
+import {mapGetters} from "vuex";
export default {
name: "attrCrud .vue",
@@ -428,6 +465,9 @@
type: Boolean,
default: false
},
+ btnAuthList: {
+ type: Array
+ }
},
watch: {
crudOid: {
@@ -492,6 +532,50 @@
},
data() {
return {
+ sysSelectData:[],
+ sysonymLoading:false,
+ synonymOption:{
+ addBtn:false,
+ editBtn:false,
+ delBtn:false,
+ refreshBtn:false,
+ columnBtn:false,
+ menu:false,
+ selection:true,
+ column:[
+ {
+ label:'缂栫爜',
+ prop:'id',
+ align:'center'
+ },
+ {
+ label:'鍚嶇О',
+ prop:'name',
+ align:'center'
+ },
+ {
+ label:'婧愬��',
+ prop:'sourceValue',
+ align:'center'
+ },
+ {
+ label:'鍚屼箟璇�',
+ prop:'synonymValue',
+ align:'center'
+ },
+ {
+ label:'鍚仠鐘舵��',
+ prop:'lcStatus',
+ align:'center',
+ slot: true
+ },
+ ]
+ },
+ synonymData:[],
+ //杩戜箟璇嶆煡璇㈣鍒�
+ synonymVisible:false,
+ //琛ㄦ牸楂樺害
+ dynamicHeight: '',
// 淇濆瓨鍗曞厓鏍肩姸鎬�
AddCellFlag: false,
//鍏ㄥ睆缂栬緫楂樺害鐘舵��
@@ -640,7 +724,7 @@
addBtn: false,
header: false,
align: 'center',
- columnBtn:false,
+ columnBtn: false,
menuAlign: 'center',
column: [{
label: '',
@@ -1082,6 +1166,10 @@
indexClassName: "搴忓彿",
indexLabelClassName: '搴忓彿',
index: true,
+ indexFixed: false,
+ selectionFixed: false,
+ columnBtn: false,
+ refreshBtn: false,
border: true,
addBtn: false,
menu: false,
@@ -1091,7 +1179,7 @@
{
label: "灞炴�ц嫳鏂囧悕绉�",
prop: "id",
- width: 100,
+ width: 130,
},
{
label: "灞炴�т腑鏂囧悕绉�",
@@ -1177,7 +1265,7 @@
List: [],
option: {
index: false,
- columnBtn:false,
+ columnBtn: false,
border: true,
editBtn: false,
selection: true,
@@ -1255,6 +1343,12 @@
width: 110,
cell: false,
edit: "switch"
+ },
+ {
+ label:'杩戜箟璇嶆煡璇㈣鍒�',
+ prop:'sysonymRuleOids',
+ cell: false,
+ edit: 'refer'
},
{
label: "鐩镐技鏌ラ噸灞炴��",
@@ -1528,6 +1622,25 @@
}
},
computed: {
+ ...mapGetters(["permission"]),
+ permissionList() {
+ return {
+ busineStatus: this.vaildData(this.btnAuthList.attr_add, false),
+ fullscreenStatus: this.vaildData(this.btnAuthList.attr_view_edit, false),
+ ruleStatus: this.vaildData(this.btnAuthList.attr_rule, false),
+ attrStatus: this.vaildData(this.btnAuthList.attr_group, false),
+ saveStatus: this.vaildData(this.btnAuthList.attr_save, false),
+ resetStatus: this.vaildData(this.btnAuthList.attr_reset, false),
+ injectStatus: this.vaildData(this.btnAuthList.attr_inject, false),
+ isShowStatus: this.vaildData(this.btnAuthList.attr_formrule, false),
+ enumStatus: this.vaildData(this.btnAuthList.attr_enum, false),
+ cascadStatus: this.vaildData(this.btnAuthList.attr_parentcode, false),
+ syncStatus: this.vaildData(this.btnAuthList.attr_sync, false),
+ applicationStatus: this.vaildData(this.btnAuthList.attr_application, false),
+ orderStatus: this.vaildData(this.btnAuthList.attr_sort, false),
+ removeStatus: this.vaildData(this.btnAuthList.attr_delete, false),
+ }
+ },
attrOids() {
let oids = [];
this.attrSelectList.forEach(ele => {
@@ -1542,6 +1655,13 @@
});
return oids.join(",");
},
+ tableHeight() {
+ if (this.editStyleFlag) {
+ return '800px'
+ } else {
+ return 'calc(100vh - 602px)'
+ }
+ }
},
mounted() {
},
@@ -1553,6 +1673,25 @@
})
},
methods: {
+ //杩戜箟璇嶆煡璇㈣鍒欏彇娑�
+ sysnonymCancel(){
+ this.synonymVisible = false;
+ },
+ //杩戜箟璇嶆煡璇㈣鍒欑‘瀹�
+ sysnonymSubmit(){
+ if(this.sysSelectData.length <= 0){
+ this.$message.warning('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹紒')
+ }else {
+ const newArray = this.sysSelectData.map(obj => obj.oid);
+ const newString = newArray.join(',');
+ this.$set(this.CurrentCell, 'sysonymRuleOids', newString)
+ this.AddCellFlag = true;
+ this.synonymVisible = false;
+ }
+ },
+ sysChange(row){
+ this.sysSelectData = row;
+ },
//鏂板鎼滅储
AddFindHandler() {
if (this.SelectValue == 'id') {
@@ -1665,7 +1804,10 @@
attrTableWidth: 120,
ts: ""
})
- this.ProData.push(JSON.parse(JSON.stringify(this.busineAddList)))
+ // 灏嗚嫳鏂囩紪鍙疯浆鎹负灏忓啓
+ let {id, ...res} = this.busineAddList;
+ this.busineAddList = {id: id.toLowerCase(), ...res};
+ this.ProData.push(JSON.parse(JSON.stringify(this.busineAddList)));
}
})
this.addVisible = false;
@@ -1799,8 +1941,8 @@
// 鏂板嚱鏁扮敤浜庢墽琛宐atchAddSave鏂规硶
const executeBatchAddSave = () => {
batchAddSave(JSON.parse(JSON.stringify(this.ProData))).then(res => {
- this.$message.success('淇濆瓨鎴愬姛')
this.editOpenFlag = false;
+ this.$message.success('淇濆瓨鎴愬姛')
// 璋冪敤鐖剁粍浠朵慨鏀规寜閽姸鎬�
this.$emit('editCloseChildren')
this.AddCellFlag = true;
@@ -1879,6 +2021,16 @@
if (this.CurrentCell.attributeGroup !== '') {
this.attrModel = this.CurrentCell.attributeGroup
}
+ },
+ sysonymRuleOids: () =>{
+ this.sysonymLoading = true
+ codeSynonym('1','-1','Released').then(res=>{
+ this.synonymData = res.data.data.records;
+ this.sysonymLoading = false;
+ }).catch(()=>{
+ this.$message.error('璇锋鏌ユ帶鍒跺彴閿欒淇℃伅锛�')
+ })
+ this.synonymVisible = true;
}
};
@@ -1912,7 +2064,7 @@
this.tableData.splice(row.$index, 1)
},
//鏋氫妇娉ㄥ叆鎸夐挳
- enmuVisHandle() {
+ enumVisHandle() {
if (this.attrSelectList.length > 1) {
this.$message.warning('鍙兘閫夋嫨涓�鏉℃ā鏉垮睘鎬�')
} else if (this.attrSelectList < 1) {
@@ -2011,16 +2163,24 @@
const regex = new RegExp(this.rulesData.ruleRowBds);
if (regex.test(this.RulesForm.TestContent)) {
this.$message.success('鏍¢獙鎴愬姛')
+ } else {
+ this.$message.error('鏍¢獙澶辫触')
}
},
//鐐瑰嚮鍒嗙被娉ㄥ叆鎸夐挳
injectBtn() {
if (this.attrSelectList.length > 1) {
this.$message.warning('鍙兘閫夋嫨涓�鏉℃ā鏉挎暟鎹�')
- } else if (this.attrSelectList.length < 1) {
+ return;
+ }
+ if (this.attrSelectList.length < 1) {
this.$message.warning('璇烽�夋嫨涓�鏉℃ā鏉挎暟鎹�')
- } else if (this.attrSelectList.length === 1) {
+ return;
+ ;
+ }
+ if (this.attrSelectList.length === 1) {
this.injectVisible = true;
+ return;
}
},
//鍒嗙被娉ㄥ叆淇濆瓨
@@ -2053,15 +2213,17 @@
} else {
this.injectOption.classifyNumber = 0;
}
+ // console.log(this.ProData)
this.injectVisible = false;
},
//鍒嗙被娉ㄥ叆娓呯┖
injectHandleReset() {
- this.$set(this.CurrentCell, 'classifyInvokeText', '')
- this.$set(this.CurrentCell, 'classifyInvokeAttr:', '')
- this.$set(this.CurrentCell, 'classitwInvokeAttrName', '')
- this.$set(this.CurrentCell, 'classifyInvokeEditFlag', 'false')
- this.$set(this.CurrentCell, 'classifyInvokeLevel', 'none')
+ this.CurrentCell.classifyInvokeText = null;
+ this.CurrentCell.classifyInvokeAttr = '';
+ this.CurrentCell.classifyInvokeAttrName = '';
+ this.CurrentCell.classifyInvokeEditFlag = '';
+ this.CurrentCell.classifyInvokeLevel = null;
+ // console.log(this.ProData)
this.injectVisible = false;
},
// 鍒嗙被娉ㄥ叆鍙栨秷
@@ -2082,7 +2244,7 @@
})
},
//琛ㄦ牸閲嶇疆
- reset() {
+ resetHandler() {
this.CrudRend()
},
//鍚屾鍒板叾浠栨ā鏉�
@@ -2172,6 +2334,31 @@
</script>
<style lang="scss" scoped>
+//鍥哄畾鍒楅珮搴�
+/deep/ .el-table__fixed {
+ height: calc(100vh - 618px) !important;
+}
+
+///deep/ .el-table__fixed[v-if='editStyleFlag'] {
+// height: calc(100vh - 152px)!important; // 缂栬緫鐘舵�佷笅鐨勯珮搴�
+//}
+// 婊氬姩鏉℃牱寮忎慨鏀�
+// 婊氬姩鏉$殑瀹藉害
+/deep/ .el-table__body-wrapper::-webkit-scrollbar {
+ height: 15px; // 绾靛悜婊氬姩鏉� 蹇呭啓
+ background: white;
+ border: white;
+ width: 10px;
+
+}
+
+// 婊氬姩鏉$殑婊戝潡
+/deep/ .el-table__body-wrapper::-webkit-scrollbar-thumb {
+ background-color: #ececec;
+ border-radius: 20px;
+ border: #ececec;
+}
+
.app {
/deep/ .el-button {
//margin: 0 10px 10px 0;
--
Gitblit v1.9.3