From 75bde1baa815f9038fad98de6f5043cc7f417ddc Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期五, 22 九月 2023 09:06:33 +0800
Subject: [PATCH] 本地提交
---
Source/UBCS-WEB/src/components/refer/vciWebReferDefalut.vue | 146 ++++++++++++++++++++++++++++++++++++++----------
1 files changed, 114 insertions(+), 32 deletions(-)
diff --git a/Source/UBCS-WEB/src/components/refer/vciWebReferDefalut.vue b/Source/UBCS-WEB/src/components/refer/vciWebReferDefalut.vue
index eafcf03..fb07d01 100644
--- a/Source/UBCS-WEB/src/components/refer/vciWebReferDefalut.vue
+++ b/Source/UBCS-WEB/src/components/refer/vciWebReferDefalut.vue
@@ -5,8 +5,8 @@
:visible.sync="visible"
top="0"
class="avue-dialog avue-dialog--top"
- :width="referConfig.options.width|| '80%'">
-
+ :width="options.width|| '80%'"
+ :height="options.height|| 'auto'">
<avue-crud :option="option"
:table-loading="loading"
:data="data"
@@ -16,6 +16,7 @@
@search-change="searchChange"
@search-reset="searchReset"
@selection-change="selectionChange"
+ @row-click="rowClick"
@current-change="currentChange"
@size-change="sizeChange"
@refresh-change="refreshChange"
@@ -23,15 +24,12 @@
</avue-crud>
<div class="avue-dialog__footer">
<div class="avue-dialog__footer--left valueInfo">{{ valueInfo }}</div>
- {{ this.referConfig.options.width }}
<el-button @click="visible=false">鍙� 娑�</el-button>
<el-button @click="setValue" type="primary">纭� 瀹�</el-button>
</div>
</el-dialog>
<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>
</template>
@@ -44,13 +42,14 @@
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',
label: this.referConfig.textField || this.referConfig.options.textField || "name"
},
url: this.referConfig.options.url || '/api/ubcs-code/mdmEngineController/defaultReferDataGrid',
+ method: this.referConfig.options.method || 'GET',
tableDefinedUrl:'',//骞冲彴琛ㄦ牸鍦板潃
copyParam: ['referBo', 'textField', 'valueField', 'displayTable', 'whereSql', 'queryScheme'],
query: {},
@@ -74,6 +73,7 @@
border: true,
index: true,
selection: true,
+ reserveSelection:true,
dialogClickModal: false,
highlightCurrentRow: true,
column: []
@@ -82,13 +82,15 @@
},
created() {
this.getParams();
- 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;
+ mounted() {
+ if(this.referConfig.options.tableConfig.page){
+ this.page.pageSize=this.referConfig.options.tableConfig.page.limit || this.referConfig.options.tableConfig.page.pageSize;
+ this.page.currentPage=this.referConfig.options.tableConfig.page.page || this.referConfig.options.tableConfig.page.currentPage;
+ }else if(!validatenull(this.referConfig.options.limit)){
+ this.page.pageSize=this.referConfig.options.limit
+ }else if(!validatenull(this.referConfig.options.tableConfig.limit)){
+ this.page.pageSize=this.referConfig.options.tableConfig.limit
}
},
computed:{
@@ -120,9 +122,15 @@
queryParams['referBo'] = this.options['referBo'] || this.options['referType'];
}
queryParams['referType'] = queryParams['referBo']
- if (this.options.remoteSort && this.options.initSort) {
+ if (this.options.initSort) {
queryParams['order'] = this.options.initSort.type;//鏂规硶
queryParams['sort'] = this.options.initSort.field;//瀛楁
+ }
+ if(this.options.sortField){
+ queryParams['sort'] = this.options.sortField;//瀛楁
+ }
+ if(this.options.sortType){
+ queryParams['order'] = this.options.sortType;//鏂规硶
}
if (this.options.conditionParams) {
//璇存槑鏄墿灞曞睘鎬�
@@ -156,34 +164,65 @@
this.option.column = [{
prop: 'id',
label: '鑻辨枃鍚嶇О',
- sort: true,
+ sortable: true,
width: 150,
- search: true
+ search: true,
+ formatter:function (d){
+ return d.id || d.data.id
+ }
}, {
prop: 'name',
label: '涓枃鍚嶇О',
- sort: true,
+ sortable: true,
width: 150,
- search: true
+ search: true,
+ formatter:function (d){
+ return d.name || d.data.name
+ }
}, {
prop: 'description',
label: '鎻忚堪',
- width: 250
+ width: 250,
+ formatter:function (d){
+ return d.description || d.data.description
+ }
}, {
prop: 'secretGradeText',
label: '瀵嗙骇',
width: 60,
- hidden: (!this.controllerSecret)
+ hidden: (!this.controllerSecret),
+ hide: (!this.controllerSecret),
+ formatter:function (d){
+ return d.secretGradeText || d.data.secretGradeText
+ }
}];
} else {
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 + ")")
+ }else{
+ formatter=function (d){
+ if(d[item.field]!=undefined){
+ return d[item.field]
+ }else if(d.data[item.field] !=undefined){
+ return d.data[item.field]
+ }else {
+ return ''
+ }
+ }
+ }
return {
...item,
label: item.title,
prop: item.field,
- formatter:item.template,
- search: true
+ formatter:formatter,
+ sortable:item.sort,
+ hide:item.hidden,
+ search:this.options.tableConfig.queryColumns.some(qItem=>{
+ return qItem.field==item.field
+ })
}
}
})
@@ -216,25 +255,49 @@
this.selectionList.forEach((item,_index) =>{
if(isMutiValue){
var valueFieldArray = _that.props.value.split(",");
- valueFieldArray.forEach((_indexField,_itemField)=>{
- value.push( item[_itemField] + (_that.referConfig.valueSep?_that.referConfig.valueSep:' '));
+ valueFieldArray.forEach((_itemField,_indexField)=>{
+ let itemValue=item[_itemField];
+ if(itemValue==undefined || itemValue == null){
+ itemValue=item['data'][_itemField]
+ }
+ value.push( itemValue + (_that.referConfig.valueSep?_that.referConfig.valueSep:' '));
})
}else {
- value.push(item[_that.props.value]);
+ let itemValue=item[_that.props.value];
+ if(itemValue==undefined || itemValue == null){
+ itemValue=item['data'][_that.props.value]
+ }
+ value.push(itemValue);
}
if(isMutiRaw) {
var rawFieldArray = _that.props.label.split(",");
- rawFieldArray.forEach((_indexField,_itemField)=>{
- text.push(item[_itemField] + (_that.referConfig.textSep?_that.referConfig.textSep:' ')) ;
+ rawFieldArray.forEach((_itemField,_indexField)=>{
+ let itemText=item[_itemField];
+ if(itemText==undefined || itemText == null){
+ itemText=item['data'][_itemField]
+ }
+ text.push(itemText + (_that.referConfig.textSep?_that.referConfig.textSep:' ')) ;
})
}else{
- text.push(item[_that.props.label]);
+ let itemText=item[_that.props.label];
+ if(itemText==undefined || itemText == null){
+ itemText=item['data'][_that.props.label]
+ }
+ text.push(itemText);
}
})
+ let mapFields =this.referConfig.fieldMap || {};
+ try {
+ if(!validatenull(this.options.mapFields)){
+ mapFields =Object.assign(this.referConfig.fieldMap,JSON.parse(this.options.mapFields)) ;
+ }
+ }catch (e) {
+
+ }
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:mapFields});
this.visible=false;
},
searchReset() {
@@ -252,6 +315,11 @@
},
sizeChange(pageSize){
this.page.pageSize = pageSize;
+ },
+ rowClick (row) {
+ this.$refs.referDefalutCrud.toggleSelection();
+ this.$refs.referDefalutCrud.toggleRowSelection(row); //閫変腑褰撳墠琛�
+ this.selectionList=[row]
},
selectionChange(list) {
if (!this.isMuti && list.length > 1) {
@@ -276,12 +344,26 @@
query['conditionMap["' + key + '"]'] = this.query[key];
}
}
- getList(Object.assign(params,this.params, query,this.query),page.currentPage, page.pageSize, this.url).then(res => {
- const data = res.data;
- this.page.total = data.total;
- this.data = data.data;
+ getList(Object.assign(params,this.params,this.query, query),page.currentPage, page.pageSize, this.url, this.method).then(res => {
+ let data=[]
+ if(res.data.records){
+ data = res.data.records
+ this.page.total=res.data.total ;
+ }else{
+ data = res.data.data.records;
+ this.page.total=res.data.data.total;
+ }
+ this.data=data.map(item => {
+ item.data=item.data || {}
+ return {
+ ...item
+ }
+ })
this.loading = false;
this.selectionClear();
+ }).catch(error=>{
+ this.$message.error(error);
+ this.loading = false;
});
}
--
Gitblit v1.9.3