From 3e17faf676860e7b65079bed632b552bc4be2fc1 Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期三, 24 一月 2024 15:29:14 +0800 Subject: [PATCH] 主题库定义表格调整 --- Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue | 319 ++++++++++++++++++++++++++++++++++------------------ 1 files changed, 207 insertions(+), 112 deletions(-) diff --git a/Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue b/Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue index a8c81f6..383068f 100644 --- a/Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue +++ b/Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue @@ -3,67 +3,87 @@ <div v-if="this.crudArrayFlag" class="app" style="display: flex;flex-wrap: wrap; display: inline-block"> <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> <!-- 鏄惁寮�鍚紪杈� --> @@ -257,7 +277,7 @@ <!-- 鍏ㄥ睆缂栬緫--> <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" + :editOpenFlag="editOpenFlag" :editStyleFlag="editStyleFlag" :btnAuthList="btnAuthList" @editCloseChildren="editClose"></attrCrud> </el-dialog> <!-- 缁勫悎瑙勫垯--> @@ -292,7 +312,6 @@ <el-button size="small" type="primary" @click="addVisible=false">鍙栨秷</el-button> </div> </el-dialog> - <!-- 鍙傜収閰嶇疆--> <refer-config-dialog :display="referConfigVisble" @@ -301,80 +320,83 @@ ></refer-config-dialog> </div> - <el-table v-if="this.crudArrayFlag" - ref="referAttrCrud" - v-loading="loading" - border - :data="ProData" - :height="this.editStyleFlag? 800 : 343" - style="width: 100%" - @select="selectHandle" - @cell-click="handleCellClicks" - @selection-change="selectionChange" - @row-click="rowClick" - > - <el-table-column - fixed - 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" - :formatter="formAttr" - :label="item.label" - :prop="item.prop" - :show-overflow-tooltip="true" - :sortable="item.sortable" - :width="item.width||(item.label.length >=4 ?'160':item.label.length==3 ?'130':'100')" - align="center" + + <el-table v-if="this.crudArrayFlag" + ref="referAttrCrud" + v-loading="loading" + :data="ProData" + :height="this.tableHeight" + :header-cell-style="{background:'#FAFAFA',color:'#505050'}" + border + style="width: 100%" + @select="selectHandle" + @cell-click="handleCellClicks" + @selection-change="selectionChange" + @row-click="rowClick" > - <template slot-scope="{ row }"> - <el-input - v-if="editingRows === row && editShows== item.prop && item.prop != 'codeDateFormat' && (item.edit == 'text' ||item.edit == 'refer' )" - v-show="!AddCellFlag" - :ref="'input' + row.oid" - v-model="row[item.prop]" - @blur="saveRows(row)" - ></el-input> - <el-input-number v-if="editingRows === row && editShows== item.prop && item.edit == 'number'" - 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 - @blur="selectChangeHandler(item.editConfig,index)"> - <el-option - v-for="optionItem in item.data" - :key="optionItem.dictValue" - :label="optionItem.dictValue" - :value="optionItem.dictValue"> - </el-option> - </el-select> - <el-switch - v-if="item.edit === 'switch'" v-model="row[item.prop]" :disabled="!editOpenFlag" active-value="true" - inactive-value="false"> - </el-switch> - <span v-else>{{ row[item.prop] }}</span> - </template> - </el-table-column> - <el-table-column - fixed="right" - label="鎿嶄綔" - width="70"> - <template slot-scope="scope"> - <el-button - size="small" - type="text" - @click.native.prevent="CrudRowDel(scope.$index)"> - 绉婚櫎 - </el-button> - </template> - </el-table-column> - </el-table> - </div> + <el-table-column + :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="!editStyleFlag ? item.fixed : undefined" + :formatter="formAttr" + :label="item.label" + :prop="item.prop" + :show-overflow-tooltip="true" + :sortable="item.sortable" + :width="item.width||(item.label.length >=4 ?'160':item.label.length==3 ?'130':'100')" + align="center" + > + <template slot-scope="{ row }"> + <el-input + v-if="editingRows === row && editShows== item.prop && item.prop != 'codeDateFormat' && (item.edit == 'text' ||item.edit == 'refer' )" + v-show="!AddCellFlag" + :ref="'input' + row.oid" + v-model="row[item.prop]" + @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" :clearable="true" + v-model="row[item.prop]" allow-create default-first-option + filterable v-show="!AddCellFlag" + @blur="selectChangeHandler(item.editConfig,index)"> + <el-option + v-for="optionItem in item.data" + :key="optionItem.dictValue" + :label="optionItem.dictValue" + :value="optionItem.dictValue"> + </el-option> + </el-select> + <el-switch + v-if="item.edit === 'switch'" v-model="row[item.prop]" :disabled="!editOpenFlag" active-value="true" + inactive-value="false"> + </el-switch> + <span v-else>{{ row[item.prop] }}</span> + </template> + </el-table-column> + <el-table-column + fixed="right" + label="鎿嶄綔" + width="70"> + <template slot-scope="scope"> + <el-button + size="small" + type="text" + @click.native.prevent="CrudRowDel(scope.$index)"> + 绉婚櫎 + </el-button> + </template> + </el-table-column> + </el-table> + </div> </template> <script> @@ -382,6 +404,7 @@ 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 +451,9 @@ type: Boolean, default: false }, + btnAuthList: { + type:Array + } }, watch: { crudOid: { @@ -492,6 +518,8 @@ }, data() { return { + //琛ㄦ牸楂樺害 + dynamicHeight: '', // 淇濆瓨鍗曞厓鏍肩姸鎬� AddCellFlag: false, //鍏ㄥ睆缂栬緫楂樺害鐘舵�� @@ -640,7 +668,7 @@ addBtn: false, header: false, align: 'center', - columnBtn:false, + columnBtn: false, menuAlign: 'center', column: [{ label: '', @@ -1082,6 +1110,10 @@ indexClassName: "搴忓彿", indexLabelClassName: '搴忓彿', index: true, + indexFixed:false, + selectionFixed:false, + columnBtn: false, + refreshBtn:false, border: true, addBtn: false, menu: false, @@ -1091,7 +1123,7 @@ { label: "灞炴�ц嫳鏂囧悕绉�", prop: "id", - width: 100, + width: 130, }, { label: "灞炴�т腑鏂囧悕绉�", @@ -1177,7 +1209,7 @@ List: [], option: { index: false, - columnBtn:false, + columnBtn: false, border: true, editBtn: false, selection: true, @@ -1528,6 +1560,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 +1593,13 @@ }); return oids.join(","); }, + tableHeight() { + if (this.editStyleFlag) { + return '800px' + } else { + return 'calc(100vh - 565px)' + } + } }, mounted() { }, @@ -1665,7 +1723,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 +1860,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; @@ -1912,7 +1973,7 @@ this.tableData.splice(row.$index, 1) }, //鏋氫妇娉ㄥ叆鎸夐挳 - enmuVisHandle() { + enumVisHandle() { if (this.attrSelectList.length > 1) { this.$message.warning('鍙兘閫夋嫨涓�鏉℃ā鏉垮睘鎬�') } else if (this.attrSelectList < 1) { @@ -2011,16 +2072,23 @@ 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 +2121,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 +2152,7 @@ }) }, //琛ㄦ牸閲嶇疆 - reset() { + resetHandler() { this.CrudRend() }, //鍚屾鍒板叾浠栨ā鏉� @@ -2172,6 +2242,31 @@ </script> <style lang="scss" scoped> +//鍥哄畾鍒楅珮搴� +/deep/ .el-table__fixed { + height: calc(100vh - 584px) !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