wangting
2023-06-07 a5cb45db6a24630df3b8bab8df51cc153dd4c751
表单组件绑定上树参照选中的数据
已修改3个文件
85 ■■■■■ 文件已修改
Source/UBCS-WEB/src/components/FormTemplate/FormTempalte.vue 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/refer/vciWebRefer.vue 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/refer/vciWebReferTree.vue 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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: {
    // 表单数据修改反馈到父组件
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() {
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){
      //不要用watch监听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>