Procházet zdrojové kódy

更新统一采购订单页面检索框风格

002390 před 1 rokem
rodič
revize
daf6952aa2

+ 4 - 1
src/components/popover-select-v2/index.vue

@@ -149,7 +149,7 @@ export default {
     },
     // select
     useSelect(prop) {
-      this.selectData = prop;
+      this.selectData = prop[0];
     },
     // confirm
     useConfirm(prop) {
@@ -159,8 +159,11 @@ export default {
       } = this;
       for (let key in dataMapping) {
         source[key] = prop[dataMapping[key]];
+        console.log(key,'key',dataMapping[key],'dataMapping[key]');
+        console.log(source,'source');
       }
       this.innerValue = prop[valueKey];
+      console.log(source,prop,this.innerValue,'------');
       this.$emit("update:source", source);
       this.$emit("change", prop, this.$props);
     },

+ 2 - 2
src/components/super-search/index.vue

@@ -9,7 +9,7 @@
     style="padding: 20px 20px 0"
   >
     <el-row :gutter="20">
-      <el-col :span="21">
+      <el-col :span="20">
         <el-row :gutter="20" style="display: flex; flex-wrap: wrap">
           <el-col
             v-for="({ item, attr }, index) in showColumns"
@@ -90,7 +90,7 @@
           </el-col>
         </el-row>
       </el-col>
-      <el-col :span="3" style="text-align: right">
+      <el-col :span="4" style="text-align: right">
         <el-button :size="$attrs.size" type="primary" @click="$emit('submit')">
           查 询
         </el-button>

+ 109 - 132
src/views/purchase/purchase-order/column.js

@@ -1,7 +1,3 @@
-// import {
-//   initColumns,
-//   initDicts,
-// } from "@/utils/init/index.js";
 
 export const TableColumns = [
   { 
@@ -913,202 +909,183 @@ export const TabColumns = [
   },
 ];
 
-// export const SearchColumns = TableColumns.filter((element) => element.search);
 export const SearchColumns = [
   {
-    key: "source",
-    title: "订单来源",  
-    inputType: "Select",
-    referName: "order_source", // 字典名
-    clearable:true,
+    item:{
+      key: "source",
+      title: "订单来源",  
+    },
     attr:{
-      is: "el-dict-tag",
+      clearable:true,
+      is: "el-select",
       dictName: "order_source",
     },
   },
   {
-    key: "code",
-    title: "订单编号",  
-    inputType: "Input",
-    clearable:true,
+    item:{
+      key: "code",
+      title: "订单编号",  
+    },
     attr: {
+      clearable:true,
       is: "el-input",
     },
   },
   {
-    key: "date",
-    title: "订单日期",  
-    type: "daterange",
-    inputType: "DatePicker",
-    unlinkPanels: true,
-    rangeSeparator: "至",
-    valueFormat: "yyyy-MM-dd",
-    endPlaceholder: "结束日期",
-    startPlaceholder: "开始日期",
-    clearable:true,
+    item:{
+      key: "date",
+      title: "订单日期",  
+     
+    },
     attr: {
-      is: "el-input",
+      clearable:true,
+      is: "el-date-picker",
+      type: "daterange",
+      unlinkPanels: true,
+      rangeSeparator: "至",
+      valueFormat: "yyyy-MM-dd",
+      endPlaceholder: "结束日期",
+      startPlaceholder: "开始日期",
+      value: [],
     },
   },
   {
-    key: "status",
-    title: "单据状态",
-    inputType: "Select",
-    referName: "documents_status", // 字典名
-    clearable:true,
+    item:{
+      key: "status",
+      title: "单据状态",
+    },
     attr:{
-      is: "el-dict-tag",
+      clearable:true,
+      is: "el-select",
       dictName: "documents_status",
     },
   },
   { 
-    key: "supplierName", 
-    title: "供应商", 
-    inputType: "PopoverSelect",
-    valueKey: "id",
-    referName: "SUPPLIER_PARAM",
-    dataMapping: {
-      // supplier: "id",
-      supplierName: "name",
+    item:{
+      key: "supplierName", 
+      title: "供应商", 
     },
-    queryParams: () => ({}),
-    clearable:true,
     attr: {
-      is: "el-input",
+      clearable:true,
+      is: "el-popover-select-v2",
+      valueKey: "name",
+      referName: "SUPPLIER_PARAM",
     },
   },
   {
-    key: "puOrgIds",
-    title: "采购组织",
-    inputType: "PopoverSelect",
-    multiple:true,
-    valueKey: "id",
-    referName: "ORG_PARAM",
-    dataMapping: {},
-    queryParams: () => ({}),
-    clearable:true,
+    item:{
+      key: "puOrgIds",
+      title: "采购组织",
+    },
     attr: {
-      is: "el-input",
+      clearable:true,
+      is: "el-popover-multiple-select-v2",
+      valueKey: "id",
+      referName: "ORG_PARAM",
     },
   },
   {
-    key: "materialCode",
-    title: "物料编码",
-    inputType: "PopoverSelect",
-    valueKey: "code",
-    referName: "MATERIAL_PARAM",
-    dataMapping: {},
-    queryParams: () => ({}),
-    clearable:true,
+    item:{
+      key: "materialCode",
+      title: "物料编码",
+    },
     attr: {
-      is: "el-input",
+      clearable:true,
+      is: "el-popover-select-v2",
+      valueKey: "code",
+      referName: "MATERIAL_PARAM",
     },
   },
   {
-    key: "materialName",
-    title: "物料名称",
-    inputType: "PopoverSelect",
-    valueKey: "name",
-    referName: "MATERIAL_PARAM",
-    dataMapping: {},
-    queryParams: () => ({}),
-    clearable:true,
+    item:{
+      key: "materialName",
+      title: "物料名称",
+    },
     attr: {
-      is: "el-input",
+      clearable:true,
+      is: "el-popover-select-v2",
+      valueKey: "name",
+      referName: "MATERIAL_PARAM",
     },
   },
   { 
-    key: "deliveryStatus",
-    title: "erp发送状态", 
-    inputType: "Select",
-    referName: "order_delivery_status", // 字典名
-    clearable:true,
+    item:{
+      key: "deliveryStatus",
+      title: "erp发送状态", 
+    },
     attr:{
-      is: "el-dict-tag",
+      clearable:true,
+      is: "el-select",
       dictName: "order_delivery_status",
     },
   },
   { 
-    key: "contractNo",
-    title: "合同号", 
-    inputType: "Input",
-    clearable:true,
+    item:{
+      key: "contractNo",
+      title: "合同号", 
+    },
     attr: {
+      clearable:true,
       is: "el-input",
     },
   },
   {
-    key: "projectNowName",
-    title: "在建工程项目",
-    inputType: "PopoverSelect",
-    require: true,
-    valueKey: "name",
-    referName: "PROJECT_PARAM",
-    dataMapping: {},
-    queryParams: () => ({}),
-    clearable:true,
+    item:{
+      key: "projectNowName",
+      title: "在建工程项目",
+    },
     attr: {
-      is: "el-input",
+      clearable:true,
+      is: "el-popover-select-v2",
+      valueKey: "name",
+      referName: "PROJECT_PARAM",
     },
   },
   {
-    key: "buyers",
-    title: "采购员",
-    inputType: "PopoverSelect",
-    multiple:true,
-    valueKey: "code",
-    referName: "CONTACTS_PARAM",
-    dataMapping: {},
-    queryParams: () => ({}),
-    clearable:true,
+    item:{
+      key: "buyers",
+      title: "采购员",
+    },
     attr: {
-      is: "el-input",
+      clearable:true,
+      is: "el-popover-multiple-select-v2",
+      referName: "CONTACTS_PARAM",
+      valueKey: "code",
     },
   },
   {
-    key: "billTypes",
-    title: "订单类型",
-    inputType: "Select",
-    referName: "sys_order_type", // 字典名
-    multiple:true,
-    tags:true,
-    clearable:true,
+    item:{
+      key: "billTypes",
+      title: "订单类型",
+    },
     attr:{
-      is: "el-dict-tag",
+      is: "el-select",
+      multiple:true,
+      tags:true,
+      clearable:true,
       dictName: "sys_order_type",
     },
   },
   { 
-    key: "demandCode",
-    title: "采购需求单号", 
-    inputType: "Input",
-    clearable:true,
+    item:{
+      key: "demandCode",
+      title: "采购需求单号", 
+    },
     attr: {
+      clearable:true,
       is: "el-input",
     },
   },
   { 
-    key: "isDrug",
-    title: "物料药品属性", 
-    inputType: "SelectCheck",
-    clearable:true,
+    item:{
+      key: "isDrug",
+      title: "物料药品属性", 
+    },
     attr: {
-      is: "el-input",
+      clearable:true,
+      is: "el-select",
+      dictName: "sys_yes_no",
     },
   },
 ];
 
-// const NewColumns = initColumns(TableColumns);
-// const NewSearchColumns = initColumns(SearchColumns);
-// const NewTabColumns = TabColumns.map((element) => ({
-//   ...element,
-//   tableColumns: initColumns(element.tableColumns),
-// }));
-// 
-// export const SelectColumns = NewColumns.filter(column => column.inputType === 'Select')
-
-// NewTabColumns.forEach(column => {
-//   SelectColumns.push(...column.tableColumns.filter(cColumn => cColumn.inputType === 'Select'))
-// });
-
-// SelectColumns.push(...NewSearchColumns.filter(column => column.inputType === 'Select'))

+ 17 - 110
src/views/purchase/purchase-order/index.vue

@@ -57,11 +57,11 @@ export default {
     };
   },
   computed: {
-    showSearchColumns() {
-      return this.isSimpleSearch
-        ? this.searchColumns.slice(0, 4)
-        : this.searchColumns;
-    },
+    // showSearchColumns() {
+    //   return this.isSimpleSearch
+    //     ? this.searchColumns.slice(0, 4)
+    //     : this.searchColumns;
+    // },
     // tableShowColumns:{
     //   get() {
     //     return this.tableColumns.filter(({ attr }) => attr.isHidden);
@@ -518,116 +518,21 @@ export default {
     <EditDrawer ref="editDrawerRef" @close="handleRefreshList"></EditDrawer>
     <PurchaseReturnDrawer ref="PurchaseReturnDrawerRef" @close="handleRefreshList"></PurchaseReturnDrawer>
 
-    <el-form 
-      size="mini" 
-      label-position="right" 
-      label-width="100px" 
-      :model="params" 
-      style="padding: 20px 0 0 0"
-    >
-      <el-row :gutter="24" >
-        <el-col :span="20">
-          <el-row :gutter="20" style="display:flex; flex-wrap: wrap;">
-            <el-col 
-              v-for="column in showSearchColumns" 
-              :key="column.title" 
-              :xl="6" :lg="6" :md="8" :sm="12" :xs="24"
-            >
-              <el-form-item :prop="column.key" :label="column.title">
-
-                <el-input v-if="column.inputType === 'Input'" 
-                  v-model="params[column.key]" 
-                  :placeholder="column.placeholder"
-                  @keyup.enter.native="fetchList(params, page)"
-                ></el-input>
-                <dr-popover-select v-if="column.inputType === 'PopoverSelect'"
-                  v-model="params[column.key]"
-                  :source.sync="params"
-                  :title="column.title"
-                  :type="column.referName"
-                  :multiple="column.multiple"
-                  :readonly="column.readonly"
-                  :value-key="column.valueKey"
-                  :placeholder="column.placeholder"
-                  :data-mapping="column.dataMapping"
-                  :query-params="column.queryParams"
-                  :clearable="column.clearable"
-                  @keyup.enter.native="fetchList(params, page)"
-                ></dr-popover-select>
-                <!-- @keyup.enter.native="useQuery(params, page)" -->
-
-                <el-select v-if="column.inputType === 'Select'" 
-                v-model="params[column.key]" 
-                :disabled="column.disabled"
-                :clearable="column.clearable" 
-                :placeholder="column.placeholder" 
-                :multiple="column.multiple"
-                :collapse-tags="column.tags"
-                style="width: 100%"
-                @keyup.enter.native="fetchList(params, page)"
-                >
-                <el-option 
-                  v-for="item in dict.type[column.referName]" 
-                  :key="item.value" 
-                  :label="item.label"
-                  :value="item.value"
-                  ></el-option>
-              </el-select>
-              <!-- 只有是否 -->
-              <el-select v-if="column.inputType === 'SelectCheck'" 
-                v-model="params[column.key]" 
-                :disabled="column.disabled"
-                :clearable="column.clearable" 
-                :placeholder="column.placeholder" 
-                style="width: 100%"
-                @keyup.enter.native="fetchList(params, page)"
-                >
-                <el-option key="N" label="否" value="N"></el-option>
-                <el-option key="Y" label="是" value="Y"></el-option>
-              </el-select>
-
-              <el-date-picker v-if="column.inputType === 'DatePicker'" 
-                v-model="params[column.key]"
-                size="mini"
-                type="daterange"
-                :value-format="column.valueFormat"
-                :unlink-panels="column.unlinkPanels"
-                :picker-options="column.pickerOptions"
-                :range-separator="column.rangeSeparator"
-                :end-placeholder="column.endPlaceholder"
-                :start-placeholder="column.startPlaceholder"
-                :clearable="column.clearable"
-                style="width: 100%"
-                @keyup.enter.native="fetchList(params, page)"
-              >
-              </el-date-picker>
-              </el-form-item>
-            </el-col>
-          </el-row>
-        </el-col>
-        <el-col :span="4" style="text-align: right; padding-right: 40px">
-          <el-button type="primary" size="mini" @click="handleQueryList"
-            v-hasPermi="['material:order:query']">搜索</el-button>
-          <el-button size="mini" @click="handleResetList">重置</el-button>
-        </el-col>
-      </el-row>
-    </el-form>
-
-    <el-divider>
-      <i :class="isSimpleSearch ? 'el-icon-arrow-down' : 'el-icon-arrow-up'" style="cursor: pointer"
-        @click="handleSearchChange"></i>
-    </el-divider>
-
+    <el-super-search
+      v-model="params"
+      :size="'mini'"
+      :dict="dict"
+      :columns="searchColumns"
+      @reset="handleResetList"
+      @submit="handleQueryList"
+    ></el-super-search>
+  
     <!-- 操作 -->
     <el-row :gutter="24" style="padding: 0 20px">
-      <!-- <el-col :span="6">123</el-col> -->
       <el-col :span="24" style="text-align: right;margin: 0 10px 0 0">
-
-        <!-- <el-button-group style="margin-left: 10px"> -->
         <el-button size="mini" type="primary" @click="handleOpenAddDrawer"
           v-hasPermi="['material:order:add']">新增</el-button>
-        <!-- </el-button-group> -->
-
+       
         <el-button-group style="margin-left: 10px">
           <el-button type="primary" size="mini" :disabled="checkedList.length != 1" @click="handleCopy">复制</el-button>
           <el-button type="primary" size="mini" @click="handleBatchSubmit">批量提交</el-button>
@@ -658,6 +563,7 @@ export default {
       :dict="dict"
       :columns="tableColumns"
       hideOperationColumns
+      stroage
       @row-dblclick="handleOpenSeeDrawer" 
       @row-click="handleDetailsData" 
       @select="handleSelect"
@@ -733,6 +639,7 @@ export default {
             size="mini"
             :dict="dict"
             hideOperationColumns
+            stroage
             :columns="column.tableColumns"
             @select="handleTabSelect"
           >