From 1172444b5f2527c3e6bddce63b734fba35e5e57c Mon Sep 17 00:00:00 2001
From: xiejun <xj@2023>
Date: 星期五, 10 十一月 2023 13:19:08 +0800
Subject: [PATCH] 自定义流水功能增加
---
Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue | 321 +++++++++++++++++++++++++++++++++-------------------
1 files changed, 202 insertions(+), 119 deletions(-)
diff --git a/Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue b/Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue
index fcec976..a4aab94 100644
--- a/Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue
+++ b/Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue
@@ -3,75 +3,99 @@
<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>
- <!-- 淇濆瓨-->
- <el-button v-if="(!checkStatus|| crudLCStatus=='Editing') && editOpenFlag" icon="el-icon-check" plain size="small"
+ <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>
<!-- 鏄惁寮�鍚紪杈� -->
<el-button-group>
- <el-button v-if="(!checkStatus|| crudLCStatus=='Editing') && !editOpenFlag && attrEditVisible == false && attrFlagChiledren==false" icon="el-icon-view" plain
- size="small"
- @click="editOpen">寮�鍚紪杈�
+ <el-button
+ v-if="(!checkStatus|| crudLCStatus=='Editing') && !editOpenFlag && attrEditVisible == false && attrFlagChiledren==false"
+ icon="el-icon-view" plain
+ size="small"
+ @click="editOpen">寮�鍚紪杈�
</el-button>
- <el-select v-if="(!checkStatus || crudLCStatus=='Editing') && editOpenFlag" v-model="selectvalue" placeholder="璇烽�夋嫨"
+ <el-select v-if="(!checkStatus || crudLCStatus=='Editing') && editOpenFlag" v-model="selectvalue"
+ placeholder="璇烽�夋嫨"
size="small">
<el-option
v-for="item in selectoptions"
@@ -288,7 +312,6 @@
<el-button size="small" type="primary" @click="addVisible=false">鍙栨秷</el-button>
</div>
</el-dialog>
-
<!-- 鍙傜収閰嶇疆-->
<refer-config-dialog
:display="referConfigVisble"
@@ -297,76 +320,81 @@
></refer-config-dialog>
</div>
- <el-table v-if="this.crudArrayFlag"
- ref="referAttrCrud"
- v-loading="loading"
- :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"
+ 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' )"
- :ref="'input' + row.oid"
- v-show="!AddCellFlag"
- 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-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>
</template>
<script>
@@ -374,6 +402,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",
@@ -455,16 +484,6 @@
}
}
},
- // editingRows:{
- // handler(newval,oldval){
- // if(newval){
- // const inputElement = document.querySelector(`#inputRef${newval.oid}`);
- // if (inputElement) {
- // inputElement.focus();
- // };
- // }
- // }
- // },
ProData: {
handler(newval, oldval) {
if (newval) {
@@ -494,8 +513,10 @@
},
data() {
return {
+ //琛ㄦ牸楂樺害
+ dynamicHeight: '',
// 淇濆瓨鍗曞厓鏍肩姸鎬�
- AddCellFlag:false,
+ AddCellFlag: false,
//鍏ㄥ睆缂栬緫楂樺害鐘舵��
editStyleFlag: false,
loading: false,
@@ -642,6 +663,7 @@
addBtn: false,
header: false,
align: 'center',
+ columnBtn: false,
menuAlign: 'center',
column: [{
label: '',
@@ -856,6 +878,7 @@
{
label: "鍙傜収閰嶇疆",
prop: "referConfig",
+ width: 105
},
{
label: "绾ц仈鏌ヨ灞炴��",
@@ -900,7 +923,7 @@
{
label: "鍙栧�艰寖鍥�",
prop: "valueArea",
- },
+ }
]
},
// 瀛樺偍琛ㄦ牸鏁版嵁
@@ -1082,6 +1105,8 @@
indexClassName: "搴忓彿",
indexLabelClassName: '搴忓彿',
index: true,
+ indexFixed:false,
+ selectionFixed:false,
border: true,
addBtn: false,
menu: false,
@@ -1091,12 +1116,12 @@
{
label: "灞炴�ц嫳鏂囧悕绉�",
prop: "id",
- width:100,
+ width: 130,
},
{
label: "灞炴�т腑鏂囧悕绉�",
prop: "name",
- width:100,
+ width: 100,
},
{
label: "闀垮害",
@@ -1177,6 +1202,7 @@
List: [],
option: {
index: false,
+ columnBtn: false,
border: true,
editBtn: false,
selection: true,
@@ -1527,6 +1553,25 @@
}
},
computed: {
+ ...mapGetters(["permission"]),
+ permissionList() {
+ return {
+ busineStatus: this.vaildData(this.permission.classifyTree.attr_add, false),
+ fullscreenStatus: this.vaildData(this.permission.classifyTree.attr_view_edit, false),
+ ruleStatus: this.vaildData(this.permission.classifyTree.attr_rule, false),
+ attrStatus: this.vaildData(this.permission.classifyTree.attr_group, false),
+ saveStatus: this.vaildData(this.permission.classifyTree.attr_save, false),
+ resetStatus: this.vaildData(this.permission.classifyTree.attr_reset, false),
+ injectStatus: this.vaildData(this.permission.classifyTree.attr_inject, false),
+ isShowStatus: this.vaildData(this.permission.classifyTree.attr_formrule, false),
+ enumStatus: this.vaildData(this.permission.classifyTree.attr_enum, false),
+ cascadStatus: this.vaildData(this.permission.classifyTree.attr_parentcode, false),
+ syncStatus: this.vaildData(this.permission.classifyTree.attr_sync, false),
+ applicationStatus: this.vaildData(this.permission.classifyTree.attr_application, false),
+ orderStatus: this.vaildData(this.permission.classifyTree.attr_sort, false),
+ removeStatus: this.vaildData(this.permission.classifyTree.attr_delete, false),
+ }
+ },
attrOids() {
let oids = [];
this.attrSelectList.forEach(ele => {
@@ -1541,6 +1586,13 @@
});
return oids.join(",");
},
+ tableHeight() {
+ if (this.editStyleFlag) {
+ return '800px'
+ } else {
+ return 'calc(100vh - 595px)'
+ }
+ }
},
mounted() {
},
@@ -1802,7 +1854,7 @@
this.editOpenFlag = false;
// 璋冪敤鐖剁粍浠朵慨鏀规寜閽姸鎬�
this.$emit('editCloseChildren')
- this.AddCellFlag=true;
+ this.AddCellFlag = true;
}).catch(() => {
this.$message.warning('淇濆瓨澶辫触锛岃鏌ョ湅鎺у埗鍙拌緭鍑猴紒')
});
@@ -1911,7 +1963,7 @@
this.tableData.splice(row.$index, 1)
},
//鏋氫妇娉ㄥ叆鎸夐挳
- enmuVisHandle() {
+ enumVisHandle() {
if (this.attrSelectList.length > 1) {
this.$message.warning('鍙兘閫夋嫨涓�鏉℃ā鏉垮睘鎬�')
} else if (this.attrSelectList < 1) {
@@ -2024,7 +2076,13 @@
},
//鍒嗙被娉ㄥ叆淇濆瓨
injectAddHandle() {
- const { classifyInvokeAttr, classifyInvokeAttrName, classifyInvokeLevel, classifyInvokeEditFlag, classifyNumber } = this.injectOption;
+ const {
+ classifyInvokeAttr,
+ classifyInvokeAttrName,
+ classifyInvokeLevel,
+ classifyInvokeEditFlag,
+ classifyNumber
+ } = this.injectOption;
const data = {
"娉ㄥ叆绫诲瀷": classifyInvokeAttr,
@@ -2075,7 +2133,7 @@
})
},
//琛ㄦ牸閲嶇疆
- reset() {
+ resetHandler() {
this.CrudRend()
},
//鍚屾鍒板叾浠栨ā鏉�
@@ -2112,7 +2170,7 @@
this.editStyleFlag = true;
this.attrEditVisible = true;
this.attrFlag = true;
- this.AddCellFlag=true;
+ this.AddCellFlag = true;
}
},
@@ -2126,7 +2184,7 @@
updataFormlaContent(val) {
if (this.CurrentCell) {
this.$set(this.CurrentCell, 'componentRule', val.replace(/"/g, ''))
- this.componentRuleText= this.CurrentCell.componentRule
+ this.componentRuleText = this.CurrentCell.componentRule
} else {
this.$set(this.attrRow, 'componentRule', val.replace(/"/g, ''))
}
@@ -2148,7 +2206,7 @@
//寮�鍚紪杈�
editOpen() {
this.editOpenFlag = true;
- this.AddCellFlag=false;
+ this.AddCellFlag = false;
},
//瀹氫箟涓�涓叧闂紪杈戠殑鏂规硶渚涘瓙缁勪欢浣跨敤
editClose() {
@@ -2165,6 +2223,31 @@
</script>
<style lang="scss" scoped>
+//鍥哄畾鍒楅珮搴�
+/deep/ .el-table__fixed {
+ height: calc(100vh - 612px) !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