wangting
2023-05-31 8befde9f52a8bf1a7cd13666d4396587b0a0b1cc
修改树参照组件,懒加载和请求参数还没处理
已修改4个文件
已添加1个文件
165 ■■■■■ 文件已修改
Source/UBCS-WEB/src/api/refer/tree.js 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/FormTemplate/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/refer/vciWebRefer.vue 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/refer/vciWebReferTree.vue 55 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/api/refer/tree.js
@@ -0,0 +1,21 @@
import request from "@/router/axios";
export const getTree = (params,url) => {
  return request({
    url: url || '/api/ubcs-code/codeClassify/treeCodeClassify',
    method: 'get',
    params: {
      ...params
    }
  })
}
export const getLazyTree = (params,url) => {
  return request({
    url: url||'/api/ubcs-system/dept/lazy-tree',
    method: 'get',
    params: {
      ...params
    }
  })
}
Source/UBCS-WEB/src/components/FormTemplate/index.vue
@@ -40,7 +40,7 @@
        </span>
      </template>
      <template :slot="item.prop + ''" v-for="item in option.column">
        <vciWebRefer v-if="item.type=='refer'" :options="item.originalItem"></vciWebRefer>
        <vciWebRefer v-if="item.type=='refer'" :value="item.value" :options="item.referConfig"></vciWebRefer>
      </template>
    </avue-form>
    <FindLike ref="findLike"></FindLike>
@@ -652,7 +652,7 @@
          value: item.defaultValue,
          tip: item.tip,
          comboxKey: item.comboxKey,
          originalItem:item,
          referConfig:item.referConfig,
          change: () => {
            this.changeFun(item.displayExtension, item.prop);
          },
Source/UBCS-WEB/src/components/refer/vciWebRefer.vue
@@ -1,18 +1,20 @@
<template>
  <vciWebReferTree v-if="refertype=='tree'" :defaultValue="defaultValue" :options="referConfig"></vciWebReferTree>
  <vciWebReferTree v-if="refertype=='tree'" :value="value" :options="options"></vciWebReferTree>
  <vciWebReferTable v-else-if="refertype=='table'" :value="value" :options="options"></vciWebReferTable>
  <vciWebReferDefalut v-else :value="value" :options="options"></vciWebReferDefalut>
</template>
<script>
import vciWebReferTree from "./vciWebReferTree.vue";
import vciWebReferTable from "./vciWebReferTable.vue";
import vciWebReferDefalut from "./vciWebReferTable.vue";
export default {
  name: "vciWebRefer",
  props:["options"],
  components: { vciWebReferTree},
  props:["options","value"],
  components: { vciWebReferTree,vciWebReferTable,vciWebReferDefalut},
  data() {
    return {
      referConfig:this.options.referConfig,
      refertype:this.options.referConfig.type,
      defaultValue:this.options.defaultValue
      refertype:this.options.type
    };
  },
  created() {
Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,71 @@
<template>
  <avue-input-table :props="props"  :column="column" :on-load="onLoad" v-model="value"  :placeholder="placeholder" ></avue-input-table>
</template>
<script>
export default {
  name: "vciWebReferTable",
  props:["options","value"],
  data() {
    return {
      placeholder:'请选择数据',
      column:{
        children:{
          border: true,
          column: [{
            label: '姓名',
            width: 120,
            search:true,
            prop: 'name'
          }, {
            label: '性别',
            search:true,
            prop: 'sex'
          }],
        },
      },
      props: {
        label: 'name',
        value: 'oid'
      }
    };
  },
  methods: {
    onLoad({page, value, data}, callback) {
      //首次加载去查询对应的值
      if (value) {
        this.$message.success('首次查询' + value)
        callback({
          id: '0',
          name: '张三',
          sex: '男'
        })
        return
      }
      if (data) {
        this.$message.success('搜索查询参数' + JSON.stringify(data))
      }
      if (page) {
        this.$message.success('分页参数' + JSON.stringify(page))
      }
      //分页查询信息
      callback({
        total: 2,
        data: [{
          id: '0',
          name: '张三',
          sex: '男'
        }, {
          id: '1',
          name: '李四',
          sex: '女'
        }]
      })
    }
  }
}
</script>
<style scoped>
</style>
Source/UBCS-WEB/src/components/refer/vciWebReferTree.vue
@@ -1,29 +1,70 @@
<template>
  <avue-input-tree default-expand-all v-model="defaultValue" :placeholder="placeholder" :dic="dicData"></avue-input-tree>
  <avue-input-tree :props="props" :lazy="lazy" :multiple="isMuti" v-model="value" :placeholder="placeholder" :dic="treeData"></avue-input-tree>
</template>
<script>
import {getTree,getLazyTree} from "@/api/refer/tree";
import {getDeptLazyTree} from "@/api/system/dept";
export default {
  name: "vciWebReferTree",
  props:["options","defaultValue"],
  props:["options","value"],
  data() {
    return {
      lazy:this.options.loadType == 'node',
      isMuti:true,//options.muti,
      placeholder:'请选择内容',
      dicData:[{
        label:'选项1',
      props: {
        value:this.options.valueField,
        label:this.options.textField
        //value:"value",
        //label:"title"
      },
      treeData:[{
        title:'选项1',
        value:0,
        children:[{
          label:'选项3',
          title:'选项3',
          value:2
        },{
          label:'选项4',
          title:'选项4',
          value:3
        }]
      },{
        label:'选项2',
        title:'选项2',
        value:1
      }]
    };
  },
  created() {
  },
  mounted() {
    this.getTree();
  },
  methods: {
    getTree(){
      getTree({parentId:0},this.options.url).then(res => {
          this.treeData=res.data
          console.log(this.treeData)
        })
    },
    getLazyTree(){
      getLazyTree({parentId:0},this.options.url).then(res => {
        this.treeData=res.data.data
        console.log(this.treeData)
      })
    },
    treeLoad: function (tree,treeNode, resolve) {
      debugger;
      const parentId = (treeNode.level === 0) ? 0 : treeNode.data.id;
      /*getDeptLazyTree({parentId:parentId}).then(res => {
        resolve(res.data.data)
      });*/
    }
  }
}
</script>