From aef2a705884dbb25b24d23fc886c563327f4753e Mon Sep 17 00:00:00 2001 From: 石广澎 <shiguangpeng@163.com> Date: 星期一, 27 十一月 2023 17:34:07 +0800 Subject: [PATCH] feat: --- admin-web/src/components/mySearch/SearchItem.vue | 126 ++++++++++++++++++++++------------------- 1 files changed, 67 insertions(+), 59 deletions(-) diff --git a/admin-web/src/components/mySearch/SearchItem.vue b/admin-web/src/components/mySearch/SearchItem.vue index 4da675b..fa2580b 100644 --- a/admin-web/src/components/mySearch/SearchItem.vue +++ b/admin-web/src/components/mySearch/SearchItem.vue @@ -16,8 +16,9 @@ v-model="val" v-if="item.type === 'cascader'" :options="item.options" - :props="item.optionsConfig.props||{ checkStrictly: true,value: 'id' }" - :clearable="true" + :props="item.optionsConfig.props||{ checkStrictly: true,emitPath: false,value: 'id' }" + :show-all-levels="false" + filterable style="width: 150px" @change="(v) => this.$emit('change', v)" > @@ -27,7 +28,7 @@ v-if="item.type === 'select'" :placeholder="item.placeholder || ''" v-model="val" - show-search + filterable :multiple="item.multiple || false" :collapse-tags="item.collapseTags || false" :clearable="true" @@ -66,6 +67,7 @@ type="year" :clearable="true" style="width: 150px" + :value-format="item.format?item.format:'yyyy'" @change="(v) => panelChange(v, 'yyyy')" /> <!--鏈堥�夋嫨鍣�--> @@ -75,6 +77,7 @@ type="month" :clearable="true" style="width: 150px" + :value-format="item.format?item.format:'yyyyMM'" @change="(v) => panelChange(v, 'yyyy-MM')" /> <!--鏃ラ�夋嫨鍣�--> @@ -84,6 +87,7 @@ type="date" :clearable="true" style="width: 150px" + :value-format="item.format?item.format:'yyyyMMdd'" @change="(v) => panelChange(v, 'yyyy-MM-dd')" /> <!--鏃ユ湡甯︽椂闂撮�夋嫨鍣�--> @@ -132,54 +136,7 @@ item: Object, }, created() { - if (this.item.type === 'select' && this.item.optionsConfig) { - if (this.$axios === undefined) { - console.error('璇峰厛閰嶇疆this.$axios'); - return; - } - request({ - url: this.item.optionsConfig.url, - method: 'get', - }).then((res) => { - const data = res || []; - this.item.options = []; - data.forEach((v) => { - this.item.options.push({ - label: v[this.item.optionsConfig.label || 'label'], - value: v[this.item.optionsConfig.value || 'value'], - }); - }); - }); - } - if (this.item.type === 'cascader' && this.item.optionsConfig) { - if (this.$axios === undefined) { - console.error('璇峰厛閰嶇疆this.$axios'); - return; - } - request({ - url: this.item.optionsConfig.url, - method: 'get', - }).then((res) => { - const data = res || []; - this.item.options = []; - this.item.options = data; - }); - } - if (this.item.type === 'tree-select' && this.item.optionsConfig) { - if (this.$axios === undefined) { - console.error('璇峰厛閰嶇疆this.$axios'); - return; - } - if (this.item.asyncLoad) { - this.asyncLoad({value: 0}).then((res) => { - this.treeData = res; - }); - } else { - this.asyncLoad({}).then((res) => { - this.treeData = res; - }); - } - } + this.initData({}) }, watch: { value(v) { @@ -230,15 +187,66 @@ }; }, methods: { - panelChange(v, type) { - var info = null - if (v && this.item.type !== 'date-time-picker') { - info = formatDates(v, type) - } else { - info = v + clearData() { + this.item.options = [] + this.treeData = [] + }, + initData(params) { + this.val = this.item.defaultValue + if (this.item.type === 'select' && this.item.optionsConfig) { + if (this.$axios === undefined) { + console.error('璇峰厛閰嶇疆this.$axios'); + return; + } + request({ + url: this.item.optionsConfig.url, + method: 'get', + params + }).then((res) => { + const data = res || []; + this.item.options = []; + data.forEach((v) => { + this.item.options.push({ + label: v[this.item.optionsConfig.label || 'label'], + value: v[this.item.optionsConfig.value || 'value'], + }); + }); + }); } - this.val = info - this.$emit('change', info) + if (this.item.type === 'cascader' && this.item.optionsConfig) { + if (this.$axios === undefined) { + console.error('璇峰厛閰嶇疆this.$axios'); + return; + } + request({ + url: this.item.optionsConfig.url, + method: 'get', + params + }).then((res) => { + const data = res || []; + this.item.options = []; + this.item.options = data; + }); + } + if (this.item.type === 'tree-select' && this.item.optionsConfig) { + if (this.$axios === undefined) { + console.error('璇峰厛閰嶇疆this.$axios'); + return; + } + if (this.item.asyncLoad) { + params.value = 0 + this.asyncLoad(params).then((res) => { + this.treeData = res; + }); + } else { + this.asyncLoad(params).then((res) => { + this.treeData = res; + }); + } + } + }, + panelChange(v, type) { + this.$emit('change', v) }, filterOption(input, option) { return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0; -- Gitblit v1.9.1