From 5cef1663be64cb43c19137782da99c7ab862fcfe Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期四, 07 九月 2023 09:14:19 +0800
Subject: [PATCH] 主数据表格头动态显示
---
Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue | 80 +++++++++++++++++++++++++++------------
1 files changed, 55 insertions(+), 25 deletions(-)
diff --git a/Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue b/Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue
index 20bcad7..cec6ded 100644
--- a/Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue
+++ b/Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue
@@ -5,7 +5,7 @@
:visible.sync="visible"
top="0"
class="avue-dialog avue-dialog--top"
- :width="referConfig.options.width|| '80%'">
+ :width="options.width|| '80%'">
<avue-crud :option="option"
:table-loading="loading"
:data="data"
@@ -15,19 +15,23 @@
@search-change="searchChange"
@search-reset="searchReset"
@selection-change="selectionChange"
+ @row-click="rowClick"
@current-change="currentChange"
@size-change="sizeChange"
@refresh-change="refreshChange"
@on-load="onLoad">
+ <template slot="icon" slot-scope="scope">
+ <i :class="scope.row.icon" style="font-size:24px"></i>
+ </template>
</avue-crud>
<div class="avue-dialog__footer">
- <div class="avue-dialog__footer--left valueInfo">{{ valueInfo }}</div>
+ <div class="avue-dialog__footer--left valueInfo">{{ valueInfo }} </div>
<el-button @click="visible=false">鍙� 娑�</el-button>
<el-button @click="setValue" type="primary">纭� 瀹�</el-button>
</div>
</el-dialog>
- <avue-input v-model="text" :placeholder="title" @click="visible=true"></avue-input>
+ <avue-input v-model="text" :disabled="disabled" :placeholder="title" @click="!disabled && (visible=true)"></avue-input>
<!--<avue-input-table ref="referTable" :props="props" :column="column" :on-load="onLoad" v-model="value" :placeholder="title" ></avue-input-table>
-->
</div>
@@ -38,11 +42,11 @@
import {getList,getLazyList,getTableDefinedUrl} from "@/api/refer/table";
export default {
name: "vciWebReferTable",
- props:["referConfig","value","text","title"],
+ props:["referConfig","value","text","title","disabled"],
data() {
return {
visible: false,
- options: this.referConfig.options,
+ options: this.referConfig.options || {},
isMuti: ("true" == this.referConfig.options.isMuti || this.referConfig.options.isMuti == true || this.referConfig.options.muti == true) ? true : false,
props: {
value: this.referConfig.valueField || this.referConfig.options.valueField || 'oid',
@@ -56,16 +60,10 @@
page: {
pageSize: 10,
currentPage: 1,
- total: 0
+ total: this.referConfig.options.data?this.referConfig.options.data.length :0
},
data:this.referConfig.options.data || [],
selectionList: [],
- objTree: {//鐢ㄤ簬琛ㄦ牸鏍戯紝鐩墠杩樻病鍔犱笂浣跨敤
- keyId: 'oid',//鏍戝舰id瀛楁鍚嶇О
- keyPid: 'parentSaleProduct',//鏍戝舰鐖秈d瀛楁鍚嶇О
- title: 'id',//浠ユ爲褰㈠紡鏄剧ず鐨勫瓧娈�
- defaultShow: false//榛樿鎶樺彔
- },
option: {
addBtn: false,
height: this.referConfig.options.height ? this.referConfig.options.height : 475,
@@ -78,19 +76,27 @@
border: true,
index: true,
selection: true,
+ reserveSelection:true,
dialogClickModal: false,
highlightCurrentRow: true,
+ rowKey:'oid',
+ rowParentKey:'parentSaleProduct',
column: []
}
};
},
created() {
this.getParams();
- console.log('referConfig:')
- console.log(this.referConfig)
+ // console.log('referConfig:')
+ // console.log(this.referConfig)
},
mounted() {
+ if(this.referConfig.options.page){
+ this.page.pageSize=this.referConfig.options.page.limit || this.referConfig.options.page.pageSize;
+ this.page.currentPage=this.referConfig.options.page.page || this.referConfig.options.page.currentPage;
+ }
},
+
computed:{
valueInfo:function (){
return this.text ? ("宸茶缃殑鍊间负[" + this.text + "]"): '鏈缃��'
@@ -237,12 +243,18 @@
//璇存槑浼犻�掍簡鐨�
this.option.column= this.options.tableConfig.cols.map(item => {
if (item.field != 'LAY_TABLE_INDEX' && item.field != 'LAY_CHECKED') {
+ let formatter=item.template || item.templet;
+ if(typeof formatter == "string" && formatter !=''){
+ formatter=eval("(" + formatter + ")")
+ }
return {
...item,
label: item.title,
prop: item.field,
- formatter:item.template,
- search: true
+ formatter:formatter,
+ search: this.options.tableConfig.queryColumns.some(qItem=>{
+ return qItem.field==item.field
+ })
}
}
})
@@ -255,10 +267,10 @@
},
setValue(){
if(this.selectionList.length==0){
- this.$message.error( '娌℃湁閫夋嫨鏁版嵁');
+ this.$message.warning( '娌℃湁閫夋嫨鏁版嵁');
return false;
}else if(this.selectionList.length>1 && !this.isMuti){
- this.$message.error( '姣忔鍙兘閫夋嫨涓�鏉℃暟鎹�');
+ this.$message.warning( '姣忔鍙兘閫夋嫨涓�鏉℃暟鎹�');
return false;
}
@@ -288,7 +300,7 @@
this.value=value.join(',');
this.text=text.join(',')
- this.$emit("setValue", {field:this.referConfig.field,showField:this.referConfig.showField,value:this.value,text:this.text,rawData:this.selectionList});
+ this.$emit("setValue", {field:this.referConfig.field,showField:this.referConfig.showField,value:this.value,text:this.text,rawData:this.selectionList,fieldMap:this.referConfig.fieldMap});
this.visible=false;
},
searchReset() {
@@ -298,7 +310,7 @@
searchChange(params, done) {
this.query = params;
this.page.currentPage = 1;
- this.onLoad(this.page, params);
+ this.onLoad(this.page);
done();
},
currentChange(currentPage){
@@ -306,6 +318,11 @@
},
sizeChange(pageSize){
this.page.pageSize = pageSize;
+ },
+ rowClick (row) {
+ this.$refs.referCrud.toggleSelection();
+ this.$refs.referCrud.toggleRowSelection(row); //閫変腑褰撳墠琛�
+ this.selectionList=[row]
},
selectionChange(list) {
if (!this.isMuti && list.length > 1) {
@@ -321,15 +338,28 @@
refreshChange() {
this.onLoad(this.page, this.query);
},
- onLoad(page, params = this.params) {
+ onLoad(page, params={}) {
if(this.url){
this.loading = true;
- getList(Object.assign(params, this.query),page.currentPage, page.pageSize, this.url).then(res => {
- const data = res.data.data;
- this.page.total = data.total;
- this.data = data.records;
+ var query={}
+ if (this.query) {
+ for (var key in this.query) {
+ query['conditionMap["' + key + '"]'] = this.query[key];
+ }
+ }
+ getList(Object.assign(params,this.params,this.query, query),page.currentPage, page.pageSize, this.url).then(res => {
+ if(res.data.records){
+ this.data = res.data.records
+ this.page.total=res.data.total ;
+ }else{
+ this.data = res.data.data.records;
+ this.page.total=res.data.data.total;
+ }
this.loading = false;
this.selectionClear();
+ }).catch(error=>{
+ this.$message.error(error);
+ this.loading = false;
});
}
--
Gitblit v1.9.3