From a5cb45db6a24630df3b8bab8df51cc153dd4c751 Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期三, 07 六月 2023 18:07:14 +0800
Subject: [PATCH] 表单组件绑定上树参照选中的数据
---
Source/UBCS-WEB/src/components/FormTemplate/FormTempalte.vue | 19 ++++++++-
Source/UBCS-WEB/src/components/refer/vciWebRefer.vue | 46 ++++++++++++++---------
Source/UBCS-WEB/src/components/refer/vciWebReferTree.vue | 20 +++++++--
3 files changed, 59 insertions(+), 26 deletions(-)
diff --git a/Source/UBCS-WEB/src/components/FormTemplate/FormTempalte.vue b/Source/UBCS-WEB/src/components/FormTemplate/FormTempalte.vue
index 396fd4d..6afac39 100644
--- a/Source/UBCS-WEB/src/components/FormTemplate/FormTempalte.vue
+++ b/Source/UBCS-WEB/src/components/FormTemplate/FormTempalte.vue
@@ -27,6 +27,9 @@
<vciWebRefer
v-if="item.type == 'refer'"
:referConfig="item.referConfig || {}"
+ :value="form[item.referConfig.field] || item.value"
+ :text="form[item.referConfig.showField]"
+ @setReferValue="setReferValue"
></vciWebRefer>
</template>
</avue-form>
@@ -559,9 +562,7 @@
showField:formItem.showField || formItem.field,
field: formItem.field,
placeholder: formItem.inputTip,
- options:formItem.referConfig,
- value:'',
- text:''
+ options:formItem.referConfig
}:{},
change: () => {
this.changeFun(formItem.displayExtension, formItem.prop);
@@ -645,6 +646,11 @@
return val;
}
},
+ changeFun(displayExtension, prop) {
+ // executeCode({displayExtension, data: this.form}).then(res => {
+ // this.form[prop] = res.data.data
+ // })
+ },
// 鑾峰彇swich鍜屽凡鎷垮埌鐨勪笅鎷夋暟鎹�
getDataList(type, dicData) {
if (type === "truefalse") {
@@ -708,6 +714,13 @@
}
);
},
+ setReferValue(data){
+ if(data.field){
+ this.form[data.field]=data.value || '';
+ this.form[data.showField]=data.text || '';
+ this.$emit("getFormData", this.form);
+ }
+ }
},
watch: {
// 琛ㄥ崟鏁版嵁淇敼鍙嶉鍒扮埗缁勪欢
diff --git a/Source/UBCS-WEB/src/components/refer/vciWebRefer.vue b/Source/UBCS-WEB/src/components/refer/vciWebRefer.vue
index 8049591..27f49f0 100644
--- a/Source/UBCS-WEB/src/components/refer/vciWebRefer.vue
+++ b/Source/UBCS-WEB/src/components/refer/vciWebRefer.vue
@@ -1,7 +1,7 @@
<template>
- <vciWebReferTree v-if="refertype=='tree'" :value="value" :referConfig="referConfig"></vciWebReferTree>
- <vciWebReferTable v-else-if="refertype=='table'" :value="value" :referConfig="referConfig"></vciWebReferTable>
- <vciWebReferDefalut v-else :value="value" :referConfig="referConfig"></vciWebReferDefalut>
+ <vciWebReferTree v-if="refertype=='tree'" @setValue="setValue" :value="value" :text="text" :referConfig="referConfig"></vciWebReferTree>
+ <vciWebReferTable v-else-if="refertype=='table'" @setValue="setValue" :value="value" :text="text" :referConfig="referConfig"></vciWebReferTable>
+ <vciWebReferDefalut v-else @setValue="setValue" :value="value" :text="text" :referConfig="referConfig"></vciWebReferDefalut>
</template>
<script>
@@ -11,30 +11,40 @@
import {validatenull} from "@/util/validate";
export default {
name: "vciWebRefer",
- props:["referConfig"],
- components: { vciWebReferTree,vciWebReferTable,vciWebReferDefalut},
+ props: ["referConfig","value","text"],
+ components: {vciWebReferTree, vciWebReferTable, vciWebReferDefalut},
data() {
return {
refertype: this.referConfig.options.type,
isMuti: ("true" == this.referConfig.options.isMuti || this.referConfig.options.isMuti == true || this.referConfig.options.muti == true) ? true : false,
- value: this.referConfig.value
+ emitData:{}
};
},
created() {
- var title =this.referConfig.title || '';
- title = title.replace(":","");
- if(title){
- title = validatenull(this.referConfig.title)?('涓恒��' + title + '銆戦�夊彇鍊�'):this.referConfig.title;
- }else{
- title = validatenull(this.referConfig.title)?('涓恒��' + this.referConfig.showField + '銆戦�夊彇鍊�'):this.referConfig.title;
+ var title = this.referConfig.title || '';
+ title = title.replace(":", "");
+ if (title) {
+ title = validatenull(this.referConfig.title) ? ('涓恒��' + title + '銆戦�夊彇鍊�') : this.referConfig.title;
+ } else {
+ title = validatenull(this.referConfig.title) ? ('涓恒��' + this.referConfig.showField + '銆戦�夊彇鍊�') : this.referConfig.title;
}
- this.referConfig.title= title;
- this.referConfig.isMuti=this.isMuti
- if(this.refertype=='tree'){
- console.log('referConfig:')
- console.log(this.referConfig)
+ this.referConfig.title = title;
+ this.referConfig.isMuti = this.isMuti;
+ },
+ methods: {
+ setValue(value) {
+ this.emitData = value;
}
-
+ },
+ watch:{
+ // 淇敼鍙嶉鍒扮埗缁勪欢
+ emitData: {
+ deep: true,
+ immediate: true,
+ handler(newV) {
+ this.$emit("setReferValue", newV);
+ },
+ }
},
mounted() {
diff --git a/Source/UBCS-WEB/src/components/refer/vciWebReferTree.vue b/Source/UBCS-WEB/src/components/refer/vciWebReferTree.vue
index fb1830b..4180372 100644
--- a/Source/UBCS-WEB/src/components/refer/vciWebReferTree.vue
+++ b/Source/UBCS-WEB/src/components/refer/vciWebReferTree.vue
@@ -1,5 +1,5 @@
<template>
- <avue-input-tree :props="props" :lazy="lazy" :tree-load="treeLoad" :leaf-only="!referConfig.onlyLeaf" :multiple="isMuti" v-model="value" :placeholder="placeholder" :dic="treeData"></avue-input-tree>
+ <avue-input-tree ref="referTree" :props="props" :lazy="lazy" :tree-load="treeLoad" :node-click="nodeClick" :leaf-only="!referConfig.onlyLeaf" :multiple="isMuti" v-model="value" :placeholder="placeholder" :dic="treeData"></avue-input-tree>
</template>
<script>
@@ -7,7 +7,7 @@
export default {
name: "vciWebReferTree",
- props:["referConfig","value"],
+ props:["referConfig","value","text"],
data() {
return {
options: this.referConfig.options,
@@ -20,8 +20,9 @@
//value:"value",
//label:"title"
},
- treeUrl: this.referConfig.options.url || '',//'/api/ubcs-code/codeClassify/treeCodeClassify',
+ treeUrl: this.referConfig.options.url || '/api/ubcs-code/codeClassify/treeCodeClassify',
treeData: [],
+ currentNode:{},
params: {},
loadType: {'all': 'all', 'node': 'node'},
copyParam: ['btmType', 'lnType', 'toBtmType', 'textField', 'valueField', 'parentFieldName', 'parentValue', 'sort', 'order', 'isDirection', 'whereSql', 'isMuti', 'queryScheme', 'isQueryAllColumn', 'queryColumn', 'split', 'loadType', 'onlyLeaf', 'onlyLeafText', 'parentUsedField']
@@ -29,6 +30,8 @@
},
created() {
this.getParams();
+ console.log('referConfig:')
+ console.log(this.referConfig)
},
mounted() {
if(!this.lazy){
@@ -42,7 +45,6 @@
methods: {
getParams:function (){
var queryParams = {};
- debugger;
if(this.options.extraParams){
queryParams = this.options.extraParams;
}
@@ -140,8 +142,16 @@
}
}))
});
+ },
+ nodeClick(data){
+ //涓嶈鐢╳atch鐩戝惉value鍊硷紝浼氭壘涓嶅埌text
+ this.value=data[this.props.value];
+ this.text=data[this.props.label];
+ this.currentNode=data;
+ this.$emit("setValue", {field:this.referConfig.field,showField:this.referConfig.showField,value:this.value,text:this.text,rawData:this.currentNode});
}
-
+ },
+ watch:{
}
}
</script>
--
Gitblit v1.9.3