Browse Source

Merge branch 'purchaseDev' into 'dev'

Purchase dev

See merge request new-business/drp-web!87
黄梓星 2 years ago
parent
commit
2e1bed3bb7

+ 49 - 56
src/components/popover-select/index.vue

@@ -83,9 +83,7 @@ export default {
   data() {
     return {
       width: "50%",
-      page: { pageNum: 1, pageSize: 25, total: 0 },
-      layout: "total, prev, pager, next, sizes, jumper",
-      pageSizes: [25, 50, 100],
+      page: { pageNum: 1, pageSize: 10, total: 0 },
       visible: false,
       loading: false,
       model: {
@@ -119,11 +117,14 @@ export default {
     // open dialog
     async open() {
       this.visible = true;
-      await this.resetList();
+      await this.useReset();
+      console.log("open", this.selectData);
     },
     // hide dialog
     async hide() {
       this.visible = false;
+      // this.$emit("input", []);
+      console.log("hide", this.selectData);
     },
     // fetch list
     async fetchList(prop, page) {
@@ -145,7 +146,7 @@ export default {
       }
     },
     // reset list
-    async resetList() {
+    async useReset() {
       const { type, source, queryParams } = this.$props;
       this.model = {
         type,
@@ -156,48 +157,22 @@ export default {
       await this.fetchList(this.model, this.page);
     },
     // query list
-    async queryList() {
+    async useQuery() {
       await this.fetchList(this.model, this.page);
     },
-    // row click
-    rowClick(prop) {
-      const { multiple } = this.$props;
-      // 单选
-      if (!multiple) this.$refs.multipleTable.clearSelection();
-      [prop].forEach((row) => this.$refs.multipleTable.toggleRowSelection(row));
-    },
-    // row double click
-    async rowDblclick(prop) {
-      const { multiple } = this.$props;
-      if (!multiple) await this.confirm([prop]);
-    },
-    // selection change
-    selectionChange(prop) {
-      this.selectData = prop;
-    },
-    // page size change
-    async pageSizeChange(prop) {
-      this.page.pageSize = prop;
-      await this.queryList();
-    },
-    // page number change
-    async pageNumberChange(prop) {
-      this.page.pageNum = prop;
-      await this.queryList();
-    },
     // confirm
-    async confirm(prop) {
+    async useConfirm(prop) {
       const { multiple } = this.$props;
       await this.hide();
-      await this.update(multiple ? prop : prop[0]);
+      await this.useUpdate(multiple ? prop : prop[0]);
     },
     // delete tag
-    deleteTag(prop) {
+    useDelete(prop) {
       this.selectData.splice(prop, 1);
-      this.update(this.selectData);
+      this.useUpdate(this.selectData);
     },
     // update
-    update(prop) {
+    useUpdate(prop) {
       const { source, multiple, valueKey, dataMapping, type } = this.$props;
       // update v-model
       const vModel = multiple
@@ -212,6 +187,23 @@ export default {
       // emit change
       this.$emit("change", prop, type, source);
     },
+    // row click
+    rowClick(prop) {
+      const { multiple } = this.$props;
+      // 单选
+      if (!multiple) this.$refs.multipleTable.clearSelection();
+      [prop].forEach((row) => this.$refs.multipleTable.toggleRowSelection(row));
+    },
+    // row double click
+    // async rowDblclick(prop) {
+    //   const { multiple } = this.$props;
+    //   if (!multiple) await this.useConfirm([prop]);
+    // },
+    // selection change
+    selectionChange(prop) {
+      this.selectData = prop;
+      console.log("selectionChange", prop);
+    },
   },
   created() {},
   mounted() {},
@@ -219,7 +211,7 @@ export default {
 };
 </script>
 <template>
-  <div>
+  <div class="popover-select">
     <el-input
       v-model="innerValue"
       :size="size"
@@ -254,13 +246,13 @@ export default {
         <el-form-item prop="search">
           <el-input
             v-model="model.search"
-            @change="queryList"
-            @keydown.enter="queryList"
+            @change="useQuery"
+            @keydown.enter="useQuery"
           >
           </el-input>
         </el-form-item>
         <el-form-item>
-          <el-button icon="el-icon-refresh" @click="resetList"></el-button>
+          <el-button icon="el-icon-refresh" @click="useReset"></el-button>
         </el-form-item>
         <el-table
           ref="multipleTable"
@@ -270,10 +262,15 @@ export default {
           highlight-current-row
           style="width: 100%; margin-bottom: 20px"
           @row-click="rowClick"
-          @row-dblclick="rowDblclick"
+          @row-dblclick="useConfirm([$event])"
           @selection-change="selectionChange"
         >
-          <el-table-column width="55" type="selection" align="center">
+          <el-table-column
+            v-if="multiple"
+            width="55"
+            type="selection"
+            align="center"
+          >
           </el-table-column>
           <el-table-column
             v-for="(column, index) in TableColumnTemp"
@@ -296,22 +293,18 @@ export default {
             </template>
           </el-table-column>
         </el-table>
-        <el-pagination
-          :layout="layout"
+        <pagination
           :total="page.total"
-          :page-sizes="pageSizes"
-          :small="size === 'mini'"
-          :page-size="page.pageSize"
-          :current-page="page.pageNum"
-          background
-          @size-change="pageSizeChange"
-          @current-change="pageNumberChange"
-        >
-        </el-pagination>
+          :page.sync="page.pageNum"
+          :limit.sync="page.pageSize"
+          @pagination="useQuery"
+        />
       </el-form>
       <div style="margin-top: 20px; text-align: right">
         <el-button :size="size" @click="hide"> 取 消 </el-button>
-        <el-button :size="size" @click="confirm(selectData)"> 确 定 </el-button>
+        <el-button :size="size" @click="useConfirm(selectData)">
+          确 定
+        </el-button>
       </div>
     </el-dialog>
     <div
@@ -348,7 +341,7 @@ export default {
               alignItems: 'center',
               margin: selectData.length - 1 === index ? '0' : '0 0 5px 0',
             }"
-            @close="deleteTag(index)"
+            @close="useDelete(index)"
           >
             {{ tag.name }}
           </el-tag>

+ 1 - 10
src/components/popover-tree-select/api/index.js

@@ -1,18 +1,9 @@
 import request from "@/utils/request";
 
-export function list(url, params) {
-  return request({
-    url: `/pu/contract/${url}/list`,
-    method: "get",
-    params: params,
-  });
-}
-
-export function refer(data, params) {
+export function REFER(data) {
   return request({
     url: "/refer/query",
     method: "POST",
     data: data,
-    params: params,
   });
 }

+ 0 - 178
src/components/popover-tree-select/components/index.vue

@@ -1,178 +0,0 @@
-<script>
-import { REFER } from "../api/index";
-
-export default {
-  name: "TableDialog",
-  props: ["type", "title", "multiple", "queryParams"],
-  components: {},
-  data() {
-    const { type } = this.$props;
-    const TableColumns = require(`./${type}`).default.filter(
-      (element) => element.key
-    );
-    return {
-      // global
-      size: "mini",
-      width: "50%",
-      // dialog
-      visible: false,
-      loading: false,
-      // search
-      params: { search: "", isPage: true },
-      // table
-      data: [],
-      tableColumns: TableColumns,
-      radio: "",
-      multipleSelection: [],
-      defaultProps: {
-        label: "name",
-        children: "children",
-      },
-    };
-  },
-  computed: {},
-  watch: {},
-  methods: {
-    // set dialog visible
-    setVisible(prop) {
-      this.visible = prop;
-    },
-    // do something before dialog open
-    beforeOpen() {
-      this.radio = "";
-      this.multipleSelection = [];
-      this.fetchList(this.params);
-    },
-    // fetch table data
-    async fetchList(prop) {
-      try {
-        this.loading = true;
-        const { type, queryParams } = this.$props;
-        const { code,rows } = await REFER({
-          type: type,
-          ...prop,
-          ...queryParams,
-        });
-        if (code === 200) {
-          this.data = rows;
-          
-        } else {
-          this.$notify.warning({ title: msg });
-        }
-      } catch (err) {
-        //
-      } finally {
-        this.loading = false;
-      }
-    },
-    // setting up to fetch table data
-    queryList() {
-      this.fetchList(this.params);
-    },
-    // reset to fetch table data
-    resetList() {
-      this.params.search = "";
-      this.fetchList(this.params);
-    },
-    // click select row data
-    handleSelect(data) {
-      this.multipleSelection = [data];
-    },
-    // double click select row data and confirm
-    handleDoubleClickSelect(row) {
-      this.confirm([row]);
-    },
-    // multiple select row data
-    handleMultipleSelect(prop, data) {
-      if (prop) {
-        this.multipleSelection.push(data);
-      } else {
-        const { code } = data;
-        const index = this.multipleSelection.findIndex(
-          (item) => item.code === code
-        );
-        this.multipleSelection.splice(index, 1);
-      }
-    },
-    // confirm
-    confirm(prop) {
-      this.setVisible(false);
-      this.$emit("confirm", prop);
-    },
-  },
-  created() {},
-  mounted() {},
-  destroyed() {},
-};
-</script>
-<template>
-  <el-dialog
-    :title="`${title}(${multiple ? '多选' : '单选'})`"
-    :width="width"
-    :visible.sync="visible"
-    :close-on-click-modal="false"
-    append-to-body
-    destroy-on-close
-    @open="beforeOpen"
-  >
-    <el-form :size="size" :inline="true" :model="params" @submit.native.prevent>
-      <el-form-item prop="search">
-        <el-input
-          v-model="params.search"
-          @keydown.enter="queryList"
-          @change="queryList"
-        >
-        </el-input>
-      </el-form-item>
-      <el-form-item>
-        <el-button icon="el-icon-refresh" @click="resetList"></el-button>
-      </el-form-item>
-    </el-form>
-    <el-tree
-      v-if="multiple"
-      v-loading="loading"
-      :data="data"
-      :props="defaultProps"
-      accordion
-      node-key="id"
-    >
-      <div slot-scope="{ node, data }">
-        <el-checkbox
-          v-model="data.checked"
-          @click.native.stop
-          @change="handleMultipleSelect($event, data)"
-          style="margin: 0 5px 0 0"
-        >
-        </el-checkbox>
-        <span> {{ data.name }}</span>
-      </div>
-    </el-tree>
-    <el-radio-group v-else v-model="radio" style="width: 100%">
-      <el-tree
-        v-loading="loading"
-        :data="data"
-        :props="defaultProps"
-        accordion
-        node-key="id"
-      >
-        <div slot-scope="{ node, data }">
-          <el-radio
-            :label="data.code"
-            @click.native.stop="handleSelect(data)"
-            @dblclick.native.stop="handleDoubleClickSelect(data)"
-            style="margin: 0 5px 0 0"
-          >
-            {{ data.name }}
-          </el-radio>
-        </div>
-      </el-tree>
-    </el-radio-group>
-    <div style="margin-top: 20px; text-align: right">
-      <el-button :size="size" @click="visible = false">取 消</el-button>
-      <el-button :size="size" type="primary" @click="confirm(multipleSelection)"
-        >确 定</el-button
-      >
-    </div>
-  </el-dialog>
-</template>
-<style scoped></style>

+ 199 - 83
src/components/popover-tree-select/index.vue

@@ -1,4 +1,5 @@
 <script>
+import { REFER } from "./api/index";
 export default {
   name: "PopoverTreeSelect",
   props: {
@@ -20,16 +21,12 @@ export default {
     // 作为 value 唯一标识的键名,绑定值
     valueKey: {
       type: String,
-      default: "name",
-    },
-    // 作为 value 唯一标识的键名,显示值
-    showKey: {
-      type: String,
+      default: "code",
     },
     // 默认查询参数
     queryParams: {
-      type: Object,
-      default: () => ({}),
+      type: Function,
+      default: () => {},
     },
     // 组件大小
     size: {
@@ -66,99 +63,226 @@ export default {
     // 参照内外映射
     dataMapping: Object,
   },
-  components: {
-    TableDialog: () => import("./components/index.vue"),
-  },
+  components: {},
   data() {
     return {
-      // popover宽度
-      width: "",
-      // 选中data
+      width: "50%",
+      visible: false,
+      loading: false,
+      params: {
+        search: "",
+        isPage: true,
+      },
       data: [],
+      selectData: [],
+      defaultProps: {
+        label: "name",
+        children: "children",
+      },
     };
   },
   computed: {
-    showValue() {
-      const { showKey, valueKey } = this.$props;
-      return this.data.length === 1 ? this.data[0][showKey || valueKey] : "";
+    innerValue() {
+      const { value, multiple } = this.$props;
+      return multiple ? "" : value;
+    },
+    TableColumnTemp() {
+      const { type } = this.$props;
+      const documents = require(`./components/${type}`).default;
+      return documents.filter((document) => document.key);
     },
   },
   watch: {
     "$props.value": {
-      handler: function (newProp, oldProp) {
-        if (!newProp) {
-          this.data = [];
-        }
+      handler: function (newProp) {
+        if (!newProp) this.selectData = [];
       },
       immediate: true,
     },
   },
   methods: {
-    // 打开弹窗
-    handleAsyncOpenDialog() {
-      this.$nextTick(() => {
-        const { setVisible } = this.$refs.TableDialog;
-        setVisible(true);
-      });
-    },
-    // 新增操作
-    handleAdd(prop) {
-      this.data = prop;
-      this.handleUpdate(this.data);
-    },
-    // 删除操作
-    handleDelete(prop) {
-      this.data.splice(prop, 1);
-      this.handleUpdate(this.data);
-    },
-    // 更新操作
-    handleUpdate(prop) {
-      const { source, multiple, valueKey, dataMapping } = this.$props;
-      // 多选
-      if (multiple) {
-        const updateData = prop.map((item) => item[valueKey]);
-        this.$emit("input", updateData);
-      }
-      // 单选
-      if (!multiple) {
-        const updateData = prop[0][valueKey];
-        this.$emit("input", updateData);
-        // 更新映射数据
-        for (let key in dataMapping) {
-          source[key] = prop[0][dataMapping[key]];
+    // open dialog
+    async open() {
+      this.visible = true;
+      await this.useReset();
+    },
+    // hide dialog
+    async hide() {
+      this.visible = false;
+    },
+    // fetch list
+    async fetchList(prop) {
+      try {
+        this.loading = true;
+        const { code, rows, total } = await REFER(prop);
+        if (code === 200) {
+          this.data = rows;
         }
-        this.$emit("update:source", source);
+      } catch (err) {
+        // catch
+        console.error(err);
+      } finally {
+        // finally
+        this.loading = false;
+      }
+    },
+    // reset list
+    async useReset() {
+      const { type, source, queryParams } = this.$props;
+      this.model = {
+        type,
+        search: "",
+        ...this.model,
+        ...queryParams(source),
+      };
+      await this.fetchList(this.model);
+    },
+    // query list
+    async useQuery() {
+      await this.fetchList(this.model);
+    },
+    // confirm
+    async useConfirm(prop) {
+      const { multiple } = this.$props;
+      await this.hide();
+      await this.useUpdate(multiple ? prop : prop[0]);
+    },
+    // delete tag
+    useDelete(prop) {
+      this.selectData.splice(prop, 1);
+      this.useUpdate(this.selectData);
+    },
+    // update
+    useUpdate(prop) {
+      const { source, multiple, valueKey, dataMapping, type } = this.$props;
+      // update v-model
+      const vModel = multiple
+        ? prop.map((item) => item[valueKey])
+        : prop[valueKey];
+      this.$emit("input", vModel);
+      // update data mapping
+      for (let key in dataMapping) {
+        source[key] = prop[dataMapping[key]];
+      }
+      this.$emit("update:source", source);
+      // emit change
+      this.$emit("change", prop, type, source);
+    },
+    // click select row data
+    handleSelect(data) {
+      this.selectData = [data];
+    },
+    // double click select row data and confirm
+    handleDoubleClickSelect(row) {
+      this.useConfirm([row]);
+    },
+    // multiple select row data
+    handleMultipleSelect(prop, data) {
+      if (prop) {
+        this.selectData.push(data);
+      } else {
+        const { code } = data;
+        const index = this.selectData.findIndex((item) => item.code === code);
+        this.selectData.splice(index, 1);
       }
-      //
-      this.$emit("change", prop, source);
     },
   },
-  created() {
-    this.$nextTick(() => {
-      const { clientWidth } = this.$refs.PopoverTreeSelect;
-      this.width = clientWidth;
-    });
-  },
+  created() {},
   mounted() {},
   destroyed() {},
 };
 </script>
 <template>
-  <div ref="PopoverTreeSelect" style="position: relative">
+  <div class="popover-tree-select">
     <el-input
-      v-model="showValue"
+      v-model="innerValue"
       :size="size"
       :disabled="disabled"
+      :readonly="readonly"
       :clearable="clearable"
       :placeholder="placeholder"
-      readonly
-      style="width: 100%; cursor: pointer"
-      @click.native.stop="handleAsyncOpenDialog"
     >
-      <template #suffix>
-        <el-icon class="el-icon-more"></el-icon>
-      </template>
+      <el-button
+        :disabled="disabled"
+        slot="append"
+        icon="el-icon-search"
+        @click="open"
+      ></el-button>
     </el-input>
+
+    <el-dialog
+      :title="`${title}(${multiple ? '多选' : '单选'})`"
+      :width="width"
+      :visible.sync="visible"
+      :close-on-click-modal="false"
+      :close-on-press-escape="false"
+      append-to-body
+      @close="hide"
+    >
+      <el-form
+        v-loading="loading"
+        :size="size"
+        :inline="true"
+        :model="params"
+        @submit.native.prevent
+      >
+        <el-form-item prop="search">
+          <el-input
+            v-model="params.search"
+            @keydown.enter="useQuery"
+            @change="useQuery"
+          >
+          </el-input>
+        </el-form-item>
+        <el-form-item>
+          <el-button icon="el-icon-refresh" @click="useReset"></el-button>
+        </el-form-item>
+      </el-form>
+      <el-tree
+        v-if="multiple"
+        :data="data"
+        :props="defaultProps"
+        accordion
+        node-key="id"
+      >
+        <div slot-scope="{ node, data }">
+          <el-checkbox
+            v-model="data.checked"
+            @click.native.stop
+            @change="handleMultipleSelect($event, data)"
+            style="margin: 0 5px 0 0"
+          >
+          </el-checkbox>
+          <span> {{ data.name }}</span>
+        </div>
+      </el-tree>
+      <el-radio-group v-else v-model="radio" style="width: 100%">
+        <el-tree
+          v-loading="loading"
+          :data="data"
+          :props="defaultProps"
+          accordion
+          node-key="id"
+        >
+          <div slot-scope="{ node, data }">
+            <el-radio
+              :label="data.code"
+              @click.native.stop="handleSelect(data)"
+              @dblclick.native.stop="handleDoubleClickSelect(data)"
+              style="margin: 0 5px 0 0"
+            >
+              {{ data.name }}
+            </el-radio>
+          </div>
+        </el-tree>
+      </el-radio-group>
+      <div style="margin-top: 20px; text-align: right">
+        <el-button :size="size" @click="visible = false">取 消</el-button>
+        <el-button :size="size" type="primary" @click="useConfirm(selectData)"
+          >确 定</el-button
+        >
+      </div>
+    </el-dialog>
     <div
       style="
         position: absolute;
@@ -169,7 +293,7 @@ export default {
         overflow: hidden;
       "
     >
-      <div v-if="multiple && data.length">
+      <div v-if="multiple && selectData.length">
         <el-popover
           :offset="-10"
           :width="width"
@@ -180,10 +304,10 @@ export default {
           placement="bottom-start"
         >
           <el-tag slot="reference" :size="size" style="margin-right: 10px">
-            + {{ data.length }}
+            + {{ selectData.length }}
           </el-tag>
           <el-tag
-            v-for="(item, index) in data"
+            v-for="(tag, index) in selectData"
             :size="size"
             hit
             closable
@@ -191,23 +315,15 @@ export default {
               display: 'flex',
               justifyContent: 'space-between',
               alignItems: 'center',
-              margin: data.length - 1 === index ? '0' : '0 0 5px 0',
+              margin: selectData.length - 1 === index ? '0' : '0 0 5px 0',
             }"
-            @close="handleDelete(index)"
+            @close="useDelete(index)"
           >
-            {{ item.name }}
+            {{ tag.name }}
           </el-tag>
         </el-popover>
       </div>
     </div>
-    <table-dialog
-      ref="TableDialog"
-      :type="type"
-      :title="title"
-      :multiple="multiple"
-      :query-params="queryParams"
-      @confirm="handleAdd"
-    ></table-dialog>
   </div>
 </template>
 <style scoped></style>

+ 3 - 1
src/views/purchase/purchase-order/add/column.js

@@ -265,7 +265,9 @@ export const Columns = [
       supplierContactsName: 'name'
     },
      isShow:true,
-    queryParams: () => ({}),
+    queryParams: (params) => ({
+      supplierId:params.supplier
+    }),
     width: 200,
   },
   { key: "isUrgency", title: "紧急程度", inputType: "Checkbox",isShow:true, },

+ 4 - 6
src/views/purchase/purchase-order/add/index.vue

@@ -93,7 +93,6 @@ export default {
   },
   methods: {
     beforeOpen() {
-      // this.$refs['orderAddForm'].clearValidate();
       const { deptName, deptId, name, nickName, orgName, orgId } = this.$store.state.user;
       this.params.puOrg = orgId;
       this.params.puOrgName = orgName;
@@ -102,7 +101,6 @@ export default {
       this.params.puDept = deptId;
       this.params.puDeptName = deptName;
       this.params.billDate = new Date().Format('yyyy-MM-dd');
-      // this.params.status = '0';
     },
     setVisible(prop) {
       this.visible = prop;
@@ -216,10 +214,10 @@ export default {
       // this.$refs['orderAddForm'].validate(async (valid) => {
       //   if (valid) {
       try {
-        // const { code, msg } = await orderApi.create(this.params);
-        // if (code === 200) {
-        //   this.handleCancel();
-        // }
+        const { code, msg } = await orderApi.create(this.params);
+        if (code === 200) {
+          this.handleCancel();
+        }
       } catch (err) {
         //
       } finally {

+ 4 - 0
src/views/purchase/purchase-order/edit/index.vue

@@ -60,6 +60,10 @@ export default {
     setVisible(prop) {
       this.visible = prop;
 
+      if(!this.visible){
+        this.$refs['orderEditForm'].clearValidate();
+      }
+
     },
     // 同步子表物料
     handleSynchronousMaterial(key1, key2) {

+ 1 - 5
src/views/purchase/task/column.js

@@ -77,7 +77,6 @@ export const SearchColumns = [
     referName: "MATERIALCLASSIFY_PARAM",
     readonly: true,
     dataMapping: {},
-    queryParams: () => ({}),
   },
   {
     key: "materialCodes",
@@ -88,7 +87,6 @@ export const SearchColumns = [
     referName: "MATERIAL_PARAM",
     readonly: true,
     dataMapping: {},
-    queryParams: () => ({}),
   },
   { key: "materialDesc", title: "物料描述", inputType: "Input" },
   { key: "code", title: "单据号", inputType: "Input" },
@@ -101,7 +99,6 @@ export const SearchColumns = [
     referName: "ORG_PARAM",
     readonly: true,
     dataMapping: {},
-    queryParams: () => ({}),
   },
   {
     key: "status",
@@ -127,11 +124,10 @@ export const SearchColumns = [
     title: "采购员",
     inputType: "PopoverSelect",
     multiple: true,
-    valueKey: "id",
+    valueKey: "code",
     referName: "CONTACTS_PARAM",
     readonly: true,
     dataMapping: {},
-    queryParams: () => ({}),
   },
   {
     key: "documentsCodes",

+ 5 - 3
src/views/purchase/task/index.vue

@@ -37,14 +37,13 @@ export default {
       try {
         this.loading = true;
         const { pageNum, pageSize } = page;
-        const { code,rows, total } = await LIST(
+        const { code, rows, total } = await LIST(
           { ...prop },
           { pageNum, pageSize }
         );
         if (code === 200) {
           this.tableData = rows;
           this.page.total = total;
-          
         } else {
           this.$notify.warning({ title: msg });
         }
@@ -159,6 +158,7 @@ export default {
               :clearable="column.clearable"
               :placeholder="column.placeholder"
               style="width: 100%"
+              @change="useQuery(params, page)"
               @keyup.enter.native="useQuery(params, page)"
             ></el-input>
             <el-select
@@ -168,6 +168,7 @@ export default {
               :clearable="column.clearable"
               :placeholder="column.placeholder"
               style="width: 100%"
+              @change="useQuery(params, page)"
               @keyup.enter.native="useQuery(params, page)"
             >
               <el-option
@@ -190,6 +191,7 @@ export default {
               :end-placeholder="column.endPlaceholder"
               :start-placeholder="column.startPlaceholder"
               style="width: 100%"
+              @change="useQuery(params, page)"
               @keyup.enter.native="useQuery(params, page)"
             >
             </el-date-picker>
@@ -205,7 +207,7 @@ export default {
               :value-key="column.valueKey"
               :placeholder="column.placeholder"
               :data-mapping="column.dataMapping"
-              :query-params="column.queryParams"
+              @change="useQuery(params, page)"
               @keyup.enter.native="useQuery(params, page)"
             >
             </dr-popover-select>