From b8dc4ccc6ee580b084aa860e64af2d90d1cb5979 Mon Sep 17 00:00:00 2001
From: 石广澎 <shiguangpeng@163.com>
Date: 星期三, 29 十一月 2023 10:11:52 +0800
Subject: [PATCH] feat: 1、首页接口对接 2、部门物品分发

---
 admin-web/src/components/mySearch/SearchItem.vue |  140 +++++++++++++++++++++++++---------------------
 1 files changed, 77 insertions(+), 63 deletions(-)

diff --git a/admin-web/src/components/mySearch/SearchItem.vue b/admin-web/src/components/mySearch/SearchItem.vue
index 4da675b..0dbda42 100644
--- a/admin-web/src/components/mySearch/SearchItem.vue
+++ b/admin-web/src/components/mySearch/SearchItem.vue
@@ -4,7 +4,7 @@
     <el-input
       :type="item.inputType || 'text'"
       v-if="item.type === 'text'"
-      :placeholder="item.placeholder || ''"
+      :placeholder="item.placeholder || '璇疯緭鍏�'"
       @change="(e) => inputChange(e)"
       :clearable="true"
       v-model="val"
@@ -15,9 +15,12 @@
     <el-cascader
       v-model="val"
       v-if="item.type === 'cascader'"
+      :placeholder="item.placeholder || '璇烽�夋嫨'"
       :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
+      clearable
       style="width: 150px"
       @change="(v) => this.$emit('change', v)"
     >
@@ -25,9 +28,9 @@
     <!-- 涓嬫媺-->
     <el-select
       v-if="item.type === 'select'"
-      :placeholder="item.placeholder || ''"
+      :placeholder="item.placeholder || '璇烽�夋嫨'"
       v-model="val"
-      show-search
+      filterable
       :multiple="item.multiple || false"
       :collapse-tags="item.collapseTags || false"
       :clearable="true"
@@ -53,7 +56,7 @@
     <!--鏃堕棿-->
     <el-time-select
       v-if="item.type === 'time-picker'"
-      :placeholder="item.placeholder || ''"
+      :placeholder="item.placeholder || '璇烽�夋嫨'"
       v-model="val"
       :clearable="true"
       style="width: 150px"
@@ -65,7 +68,9 @@
       v-model="val"
       type="year"
       :clearable="true"
+      :placeholder="item.placeholder || '璇烽�夋嫨'"
       style="width: 150px"
+      :value-format="item.format?item.format:'yyyy'"
       @change="(v) => panelChange(v, 'yyyy')"
     />
     <!--鏈堥�夋嫨鍣�-->
@@ -74,7 +79,9 @@
       v-model="val"
       type="month"
       :clearable="true"
+      :placeholder="item.placeholder || '璇烽�夋嫨'"
       style="width: 150px"
+      :value-format="item.format?item.format:'yyyyMM'"
       @change="(v) => panelChange(v, 'yyyy-MM')"
     />
     <!--鏃ラ�夋嫨鍣�-->
@@ -83,7 +90,9 @@
       v-model="val"
       type="date"
       :clearable="true"
+      :placeholder="item.placeholder || '璇烽�夋嫨'"
       style="width: 150px"
+      :value-format="item.format?item.format:'yyyyMMdd'"
       @change="(v) => panelChange(v, 'yyyy-MM-dd')"
     />
     <!--鏃ユ湡甯︽椂闂撮�夋嫨鍣�-->
@@ -92,6 +101,7 @@
       v-model="val"
       type="datetime"
       :clearable="true"
+      :placeholder="item.placeholder || '璇烽�夋嫨'"
       style="width: 150px"
       format="yyyy-MM-dd HH:mm:ss"
       value-format="yyyy-MM-dd HH:mm:ss"
@@ -102,7 +112,7 @@
       v-if="item.type === 'datetimerange-picker'"
       v-model="val"
       style="width: 378px"
-      :placeholder="item.placeholder || ''"
+      :placeholder="item.placeholder || '璇烽�夋嫨'"
       type="datetimerange"
       :pickerOptions='pickerOptions'
       :disabled="item.disabled"
@@ -132,54 +142,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 +193,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