From 8befde9f52a8bf1a7cd13666d4396587b0a0b1cc Mon Sep 17 00:00:00 2001 From: wangting <675591594@qq.com> Date: 星期三, 31 五月 2023 17:37:42 +0800 Subject: [PATCH] 修改树参照组件,懒加载和请求参数还没处理 --- Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue | 71 +++++++++++++++++++++++ Source/UBCS-WEB/src/api/refer/tree.js | 21 +++++++ Source/UBCS-WEB/src/components/refer/vciWebRefer.vue | 14 ++-- Source/UBCS-WEB/src/components/FormTemplate/index.vue | 4 Source/UBCS-WEB/src/components/refer/vciWebReferTree.vue | 55 ++++++++++++++++-- 5 files changed, 150 insertions(+), 15 deletions(-) diff --git a/Source/UBCS-WEB/src/api/refer/tree.js b/Source/UBCS-WEB/src/api/refer/tree.js index e69de29..2890a9f 100644 --- a/Source/UBCS-WEB/src/api/refer/tree.js +++ b/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 + } + }) +} diff --git a/Source/UBCS-WEB/src/components/FormTemplate/index.vue b/Source/UBCS-WEB/src/components/FormTemplate/index.vue index 38a9f73..0bb85c0 100644 --- a/Source/UBCS-WEB/src/components/FormTemplate/index.vue +++ b/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); }, diff --git a/Source/UBCS-WEB/src/components/refer/vciWebRefer.vue b/Source/UBCS-WEB/src/components/refer/vciWebRefer.vue index 93bfa72..9d6f311 100644 --- a/Source/UBCS-WEB/src/components/refer/vciWebRefer.vue +++ b/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() { diff --git a/Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue b/Source/UBCS-WEB/src/components/refer/vciWebReferTable.vue new file mode 100644 index 0000000..1f1b519 --- /dev/null +++ b/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> diff --git a/Source/UBCS-WEB/src/components/refer/vciWebReferTree.vue b/Source/UBCS-WEB/src/components/refer/vciWebReferTree.vue index ed3dba2..1a93438 100644 --- a/Source/UBCS-WEB/src/components/refer/vciWebReferTree.vue +++ b/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> -- Gitblit v1.9.3