فهرست منبع

Merge branch 'master' of http://110.41.163.243:9980/kd-aiot/kd-aiot-frontend-wt

yusheng 10 ماه پیش
والد
کامیت
386052e274

+ 312 - 0
src/BIZComponents/seekPage.vue

@@ -0,0 +1,312 @@
+<template>
+  <div class="index_box">
+    <el-form label-width="90px" :inline="true">
+      <el-form-item v-for="(item, i) in seekList" :key="i">
+        <el-form-item
+          :label="item.label"
+          :label-width="item.labelWidth + 'px'"
+          v-if="i <= formLength - 1"
+        >
+          <!-- input 输入 -->
+          <div>
+            <div v-if="item.type == 'input'">
+              <el-input
+                clearable
+                v-model="defaultWhere[item.value]"
+                :placeholder="item.placeholder || '请输入内容'"
+                :style="{ width: item.width ? item.width + 'px' : '220px' }"
+              />
+            </div>
+            <div v-if="item.type == 'select'">
+              <el-select
+                clearable
+                v-model="defaultWhere[item.value]"
+                :placeholder="item.placeholder || '请输入内容'"
+                :multiple="item.multiple ? item.multiple : false"
+                :filterable="item.filterable ? item.filterable : true"
+                :style="{ width: item.width ? item.width + 'px' : '220px' }"
+              >
+                <el-option
+                  v-for="(op, i) in item.planList"
+                  :label="op.label"
+                  :value="op.value"
+                  :key="i"
+                ></el-option>
+              </el-select>
+            </div>
+            <div v-if="item.type == 'date'">
+              <el-date-picker
+                v-model="defaultWhere[item.value]"
+                @visible-change="change"
+                :type="item.dateType || 'daterange'"
+                range-separator="至"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期"
+                value-format="yyyy-MM-dd"
+                :style="{ width: item.width ? item.width + 'px' : '220px' }"
+              >
+              </el-date-picker>
+            </div>
+            <div v-if="item.type == 'DictSelection'">
+              <DictSelection
+                v-model="defaultWhere[item.value]"
+                :placeholder="item.placeholder || '请选择内容'"
+                :multiple="item.multiple ? item.multiple : false"
+                :style="{ width: item.width ? item.width + 'px' : '220px' }"
+                :dictName="item.dictName"
+              />
+            </div>
+          </div>
+        </el-form-item>
+      </el-form-item>
+
+      <el-form-item>
+        <el-dropdown
+          ref="dropdownref"
+          trigger="click"
+          :hide-on-click="false"
+          v-model="dropdownVisible"
+        >
+          <div v-if="seekList.length > formLength">
+            <span class="el-dropdown-link">
+              更多选项<i class="el-icon-arrow-down el-icon--right"></i>
+            </span>
+            <el-dropdown-menu slot="dropdown">
+              <div class="padding">
+                <el-form label-position="left">
+                  <el-form-item
+                    v-for="(item, i) in deboListRow"
+                    :key="i"
+                    :inline="true"
+                    label-position="left"
+                  >
+                    <el-form-item
+                      :label-width="
+                        item.labelWidth ? item.labelWidth : '90' + 'px'
+                      "
+                      :inline="true"
+                      :label="item.label"
+                    >
+                      <div v-if="item.type == 'input'">
+                        <el-input
+                          clearable
+                          v-model="defaultWhere[item.value]"
+                          :placeholder="item.placeholder || '请输入内容'"
+                          :style="{
+                            width: item.width ? item.width + 'px' : '220px'
+                          }"
+                        />
+                      </div>
+                      <div v-if="item.type == 'select'">
+                        <el-select
+                          clearable
+                          v-model="defaultWhere[item.value]"
+                          :multiple="item.multiple ? item.multiple : false"
+                          :filterable="item.filterable ? item.filterable : true"
+                          :placeholder="item.placeholder || '请输入内容'"
+                          :style="{
+                            width: item.width ? item.width + 'px' : '220px'
+                          }"
+                          @visible-change="change"
+                          @change="handerChange"
+                        >
+                          <el-option
+                            v-for="(op, i) in item.planList"
+                            :label="op.label"
+                            :value="op.value"
+                            :key="i"
+                          ></el-option>
+                        </el-select>
+                      </div>
+
+                      <div v-if="item.type == 'date'">
+                        <el-date-picker
+                          v-model="defaultWhere[item.value]"
+                          @blur="change"
+                          :type="item.dateType || 'daterange'"
+                          range-separator="至"
+                          start-placeholder="开始日期"
+                          end-placeholder="结束日期"
+                          value-format="yyyy-MM-dd"
+                          :style="{
+                            width: item.width ? item.width + 'px' : '220px'
+                          }"
+                        >
+                        </el-date-picker>
+                      </div>
+                      <div v-if="item.type == 'DictSelection'">
+                        <DictSelection
+                          v-model="defaultWhere[item.value]"
+                          :placeholder="item.placeholder || '请选择内容'"
+                          :multiple="item.multiple ? item.multiple : false"
+                          :style="{
+                            width: item.width ? item.width + 'px' : '220px'
+                          }"
+                          :dictName="item.dictName"
+                        />
+                      </div>
+                      <div v-if="item.type == 'picker'">
+                        <el-date-picker
+                          v-model="defaultWhere[item.value]"
+                          @blur="change"
+                          value-format="yyyy-MM-dd"
+                          :style="{
+                            width: item.width ? item.width + 'px' : '220px'
+                          }"
+                        >
+                        </el-date-picker>
+                      </div>
+                    </el-form-item>
+                  </el-form-item>
+                </el-form>
+              </div>
+            </el-dropdown-menu>
+          </div>
+        </el-dropdown>
+      </el-form-item>
+
+      <el-form-item>
+        <el-button
+          type="primary"
+          icon="el-icon-search"
+          class="ele-btn-icon"
+          @click="search"
+        >
+          查询
+        </el-button>
+        <el-button @click="reset" icon="el-icon-refresh-left" type="primary"
+          >重置</el-button
+        >
+      </el-form-item>
+    </el-form>
+  </div>
+</template>
+
+<script>
+  export default {
+    props: {
+      seekList: {
+        type: Array,
+        default: () => []
+      },
+      formLength: {
+        type: [Number],
+        default: 3
+      },
+      keyValue: ''
+    },
+    mounted() {
+      let whereObj = sessionStorage[this.keyValue];
+      if (whereObj) {
+        this.defaultWhere = JSON.parse(whereObj);
+        this.search();
+      }
+    },
+    components: {},
+    watch: {
+      seekList: {
+        handler(val) {
+          this.$nextTick(() => {
+            if (Array.isArray(val) && val.length <= this.formLength) {
+              this.seekListRow = val;
+            } else if (Array.isArray(val) && val.length >= this.formLength) {
+              this.seekListRow = val.slice(0, this.formLength);
+              this.deboListRow = val.slice(this.formLength);
+            }
+          });
+        },
+        deep: true,
+        immediate: true
+      },
+      defaultWhere: {
+        handler(val) {
+          if (this.keyValue) {
+            sessionStorage[this.keyValue] = JSON.stringify(val);
+            if (Object.keys(val).length === 0) {
+              sessionStorage.removeItem(this.keyValue);
+            }
+          }
+        },
+        deep: true
+        // immediate: true
+      }
+    },
+
+    data() {
+      return {
+        defaultWhere: {},
+        dropdownVisible: true,
+        deboListRow: [],
+        seekListRow: []
+      };
+    },
+
+    computed: {
+      info() {
+        return this.$store.state.user.info;
+      }
+    },
+
+    created() {},
+    methods: {
+      change(visible) {
+        this.dropdownVisible = visible;
+        this.$refs.dropdownref.show();
+      },
+      handerChange() {
+        this.$refs.dropdownref.show();
+      },
+      // changeDate(val, prop) {
+      //   console.log(val);
+      //   console.log(prop);
+
+      //   if (!val) {
+      //     this.defaultWhere[prop] = ['', ''];
+      //     console.log(this.defaultWhere);
+      //   }
+      // },
+
+      search() {
+        let valueAr = this.seekList.filter((item) => item.valueAr);
+        console.log(valueAr);
+
+        valueAr.forEach((item) => {
+          let data = this.defaultWhere[item.value];
+          if (data) {
+            this.defaultWhere[item.valueAr[0]] = data[0];
+            this.defaultWhere[item.valueAr[1]] = data[1];
+          }
+          if (!data) {
+            this.defaultWhere[item.valueAr[0]] = '';
+            this.defaultWhere[item.valueAr[1]] = '';
+          }
+          delete this.defaultWhere[item.value];
+        });
+
+        console.log(this.defaultWhere);
+
+        this.$emit('search', this.defaultWhere);
+      },
+      // 重置
+      reset() {
+        this.defaultWhere = {};
+        this.search();
+      }
+
+      //  折叠悬浮中样式调整
+    }
+  };
+</script>
+
+<style scoped lang="scss">
+  .index_box {
+    display: flex;
+  }
+
+  .padding {
+    padding: 20px;
+  }
+  :deep(.el-form-item) {
+    margin-bottom: 5px !important;
+  }
+</style>

+ 20 - 6
src/enum/dict.js

@@ -85,11 +85,10 @@ export default {
   协同办公分类: 'collaborative_type',
   市场活动类型: 'activity_type',
   客户联系人状态: 'contact_link_status',
-  产地:'purchase_origin',
+  产地: 'purchase_origin',
   管理类别: 'manage_type',
   商品价格类型: 'goods_price_type',
-  文档类型: 'doc_type',
-
+  文档类型: 'doc_type'
 };
 
 export const numberList = [
@@ -140,11 +139,10 @@ export const proStatusEnum = [
   { value: 4, label: '已终止' }
 ];
 // 计价方式
-export const pricingWayList= [
+export const pricingWayList = [
   { id: 1, name: '按数量计费' },
   { id: 2, name: '按重量计费' }
-
-]
+];
 //来源类型
 export const relationTypeOption = {
   1: '发货确认单',
@@ -180,3 +178,19 @@ export const levelList = [
 ];
 //变更类型
 export const relationTypeList = [{ value: 100, label: '采购订单' }];
+
+//销售订单整体进度
+export const saleOrderProgressStatusEnum = [
+  { value: 0, label: '未开始' },
+  { value: 100, label: '待排程' },
+  { value: 200, label: '已排程' },
+  { value: 300, label: '待派单' },
+  { value: 400, label: '已派单' },
+  { value: 500, label: '生产执行中' },
+  { value: 501, label: '部分入库' },
+  { value: 600, label: '已入库' },
+  { value: 700, label: '待发货' },
+  { value: 701, label: '部分发货' },
+  { value: 800, label: '全部发货' },
+  { value: 1000, label: '完成' }
+];

+ 2 - 0
src/main.js

@@ -37,6 +37,8 @@ import '@/assets/font_icon/iconfont.css';
 import fileMain from '@/components/addDoc/index.vue';
 
 import './directives';
+import seekPage from '@/BIZComponents/seekPage';
+Vue.component('seekPage', seekPage);
 
 import Tooltip from './utils/tooltip'; // 引入封装的工具
 Vue.prototype.$tooltip = Tooltip;

+ 72 - 1
src/views/boss/orderTracking/columns.js

@@ -1,3 +1,4 @@
+import { saleOrderProgressStatusEnum } from '@/enum/dict';
 export const getColumns = (vm) => {
   console.log(vm);
 
@@ -60,6 +61,13 @@ export const getColumns = (vm) => {
       align: 'center',
       showOverflowTooltip: true
     },
+    {
+      prop: 'createTime',
+      label: '销售订单\n创建时间',
+      width: 170,
+      align: 'center',
+      showOverflowTooltip: true
+    },
     {
       prop: 'productionPlanNo',
       label: '生产计划编号',
@@ -163,7 +171,11 @@ export const getColumns = (vm) => {
       align: 'center',
       showOverflowTooltip: true,
       formatter: (row) => {
-        return vm.orderObj[row.orderStatus] || '';
+        return (
+          saleOrderProgressStatusEnum.find(
+            (val) => val.value == row.orderStatus
+          )?.label ?? ''
+        );
       }
     },
     {
@@ -281,10 +293,12 @@ export const getColumns = (vm) => {
       align: 'center'
     },
     {
+      slot: 'date01',
       prop: 'date01',
       label: '1日',
       width: 120,
       align: 'center',
+      className: 'date-box1',
       showOverflowTooltip: true,
       formatter: (row, column, cellValue, index) => {
         return getDeliveryCount(row, column.property);
@@ -296,6 +310,7 @@ export const getColumns = (vm) => {
       width: 120,
       align: 'center',
       showOverflowTooltip: true,
+      className: 'date-box0',
       formatter: (row, column, cellValue, index) => {
         return getDeliveryCount(row, column.property);
       }
@@ -306,6 +321,7 @@ export const getColumns = (vm) => {
       width: 120,
       align: 'center',
       showOverflowTooltip: true,
+      className: 'date-box1',
       formatter: (row, column, cellValue, index) => {
         return getDeliveryCount(row, column.property);
       }
@@ -315,6 +331,7 @@ export const getColumns = (vm) => {
       label: '4日',
       width: 120,
       align: 'center',
+      className: 'date-box0',
       showOverflowTooltip: true,
       formatter: (row, column, cellValue, index) => {
         return getDeliveryCount(row, column.property);
@@ -325,6 +342,8 @@ export const getColumns = (vm) => {
       label: '5日',
       width: 120,
       align: 'center',
+      className: 'date-box1',
+
       showOverflowTooltip: true,
       formatter: (row, column, cellValue, index) => {
         return getDeliveryCount(row, column.property);
@@ -335,6 +354,8 @@ export const getColumns = (vm) => {
       label: '6日',
       width: 120,
       align: 'center',
+      className: 'date-box0',
+
       showOverflowTooltip: true,
       formatter: (row, column, cellValue, index) => {
         return getDeliveryCount(row, column.property);
@@ -345,6 +366,8 @@ export const getColumns = (vm) => {
       label: '7日',
       width: 120,
       align: 'center',
+      className: 'date-box1',
+
       showOverflowTooltip: true,
       formatter: (row, column, cellValue, index) => {
         return getDeliveryCount(row, column.property);
@@ -355,6 +378,8 @@ export const getColumns = (vm) => {
       label: '8日',
       width: 120,
       align: 'center',
+      className: 'date-box0',
+
       showOverflowTooltip: true,
       formatter: (row, column, cellValue, index) => {
         return getDeliveryCount(row, column.property);
@@ -365,6 +390,8 @@ export const getColumns = (vm) => {
       label: '9日',
       width: 120,
       align: 'center',
+      className: 'date-box1',
+
       showOverflowTooltip: true,
       formatter: (row, column, cellValue, index) => {
         return getDeliveryCount(row, column.property);
@@ -375,6 +402,8 @@ export const getColumns = (vm) => {
       label: '10日',
       width: 120,
       align: 'center',
+      className: 'date-box0',
+
       showOverflowTooltip: true,
       formatter: (row, column, cellValue, index) => {
         return getDeliveryCount(row, column.property);
@@ -385,6 +414,8 @@ export const getColumns = (vm) => {
       label: '11日',
       width: 120,
       align: 'center',
+      className: 'date-box1',
+
       showOverflowTooltip: true,
       formatter: (row, column, cellValue, index) => {
         return getDeliveryCount(row, column.property);
@@ -395,6 +426,8 @@ export const getColumns = (vm) => {
       label: '12日',
       width: 120,
       align: 'center',
+      className: 'date-box0',
+
       showOverflowTooltip: true,
       formatter: (row, column, cellValue, index) => {
         return getDeliveryCount(row, column.property);
@@ -405,6 +438,8 @@ export const getColumns = (vm) => {
       label: '13日',
       width: 120,
       align: 'center',
+      className: 'date-box1',
+
       showOverflowTooltip: true,
       formatter: (row, column, cellValue, index) => {
         return getDeliveryCount(row, column.property);
@@ -415,6 +450,8 @@ export const getColumns = (vm) => {
       label: '14日',
       width: 120,
       align: 'center',
+      className: 'date-box0',
+
       showOverflowTooltip: true,
       formatter: (row, column, cellValue, index) => {
         return getDeliveryCount(row, column.property);
@@ -425,6 +462,8 @@ export const getColumns = (vm) => {
       label: '15日',
       width: 120,
       align: 'center',
+      className: 'date-box1',
+
       showOverflowTooltip: true,
       formatter: (row, column, cellValue, index) => {
         return getDeliveryCount(row, column.property);
@@ -435,6 +474,8 @@ export const getColumns = (vm) => {
       label: '16日',
       width: 120,
       align: 'center',
+      className: 'date-box0',
+
       showOverflowTooltip: true,
       formatter: (row, column, cellValue, index) => {
         return getDeliveryCount(row, column.property);
@@ -445,6 +486,8 @@ export const getColumns = (vm) => {
       label: '17日',
       width: 120,
       align: 'center',
+      className: 'date-box1',
+
       showOverflowTooltip: true,
       formatter: (row, column, cellValue, index) => {
         return getDeliveryCount(row, column.property);
@@ -455,6 +498,8 @@ export const getColumns = (vm) => {
       label: '18日',
       width: 120,
       align: 'center',
+      className: 'date-box0',
+
       showOverflowTooltip: true,
       formatter: (row, column, cellValue, index) => {
         return getDeliveryCount(row, column.property);
@@ -465,6 +510,8 @@ export const getColumns = (vm) => {
       label: '19日',
       width: 120,
       align: 'center',
+      className: 'date-box1',
+
       showOverflowTooltip: true,
       formatter: (row, column, cellValue, index) => {
         return getDeliveryCount(row, column.property);
@@ -475,6 +522,8 @@ export const getColumns = (vm) => {
       label: '20日',
       width: 120,
       align: 'center',
+      className: 'date-box0',
+
       showOverflowTooltip: true,
       formatter: (row, column, cellValue, index) => {
         return getDeliveryCount(row, column.property);
@@ -485,6 +534,8 @@ export const getColumns = (vm) => {
       label: '21日',
       width: 120,
       align: 'center',
+      className: 'date-box1',
+
       showOverflowTooltip: true,
       formatter: (row, column, cellValue, index) => {
         return getDeliveryCount(row, column.property);
@@ -496,6 +547,8 @@ export const getColumns = (vm) => {
       label: '22日',
       width: 120,
       align: 'center',
+      className: 'date-box0',
+
       showOverflowTooltip: true,
       formatter: (row, column, cellValue, index) => {
         return getDeliveryCount(row, column.property);
@@ -506,6 +559,8 @@ export const getColumns = (vm) => {
       label: '23日',
       width: 120,
       align: 'center',
+      className: 'date-box1',
+
       showOverflowTooltip: true,
       formatter: (row, column, cellValue, index) => {
         return getDeliveryCount(row, column.property);
@@ -516,6 +571,8 @@ export const getColumns = (vm) => {
       label: '24日',
       width: 120,
       align: 'center',
+      className: 'date-box0',
+
       showOverflowTooltip: true,
       formatter: (row, column, cellValue, index) => {
         return getDeliveryCount(row, column.property);
@@ -526,6 +583,8 @@ export const getColumns = (vm) => {
       label: '25日',
       width: 120,
       align: 'center',
+      className: 'date-box1',
+
       showOverflowTooltip: true,
       formatter: (row, column, cellValue, index) => {
         return getDeliveryCount(row, column.property);
@@ -536,6 +595,8 @@ export const getColumns = (vm) => {
       label: '26日',
       width: 120,
       align: 'center',
+      className: 'date-box0',
+
       showOverflowTooltip: true,
       formatter: (row, column, cellValue, index) => {
         return getDeliveryCount(row, column.property);
@@ -546,6 +607,8 @@ export const getColumns = (vm) => {
       label: '27日',
       width: 120,
       align: 'center',
+      className: 'date-box1',
+
       showOverflowTooltip: true,
       formatter: (row, column, cellValue, index) => {
         return getDeliveryCount(row, column.property);
@@ -556,6 +619,8 @@ export const getColumns = (vm) => {
       label: '28日',
       width: 120,
       align: 'center',
+      className: 'date-box0',
+
       showOverflowTooltip: true,
       formatter: (row, column, cellValue, index) => {
         return getDeliveryCount(row, column.property);
@@ -566,6 +631,8 @@ export const getColumns = (vm) => {
       label: '29日',
       width: 120,
       align: 'center',
+      className: 'date-box1',
+
       showOverflowTooltip: true,
       formatter: (row, column, cellValue, index) => {
         return getDeliveryCount(row, column.property);
@@ -576,6 +643,8 @@ export const getColumns = (vm) => {
       label: '30日',
       width: 120,
       align: 'center',
+      className: 'date-box0',
+
       showOverflowTooltip: true,
       formatter: (row, column, cellValue, index) => {
         return getDeliveryCount(row, column.property);
@@ -586,6 +655,8 @@ export const getColumns = (vm) => {
       label: '31日',
       width: 120,
       align: 'center',
+      className: 'date-box1',
+
       showOverflowTooltip: true,
       formatter: (row, column, cellValue, index) => {
         return getDeliveryCount(row, column.property);

+ 62 - 8
src/views/boss/orderTracking/components/produceRouting.vue

@@ -21,7 +21,7 @@
         ></el-step>
       </el-steps>
 
-      <div class="ele-table-container" style="height: 100%">
+      <div class="ele-table-container" style="height: calc(100% - 110px)">
         <ele-pro-table
           :loading="loading"
           ref="table"
@@ -29,7 +29,7 @@
           :datasource="datasource"
           :pageSizes="[10, 20, 50, 100]"
           :pageSize="20"
-          height="calc(100% - 120px )"
+          height="calc(100% - 30px )"
           :needPage="false"
         >
         </ele-pro-table>
@@ -72,6 +72,8 @@
           label: item.name,
           align: 'center',
           showOverflowTooltip: true,
+          className: 'date-box' + (index % 2),
+
           formatter(row) {
             let info = row[index + item.code];
             if (!info) {
@@ -79,14 +81,55 @@
             }
 
             return h('div', { class: 'box', style: 'text-align: left;' }, [
-              h('div', {}, '投料时间:' + (info?.feedTime ?? '')),
-              h('div', {}, '投料数量:' + (info?.feedQuantity ?? '')),
+              h(
+                'div',
+                {
+                  class: 'box-item',
+                  style:
+                    'white-space: nowrap;text-overflow: ellipsis;overflow: hidden;'
+                },
+
+                '投料时间:' + (info?.feedTime ?? '')
+              ),
+              h(
+                'div',
+                {
+                  class: 'box-item',
+                  style:
+                    'white-space: nowrap;text-overflow: ellipsis;overflow: hidden;'
+                },
+                '投料数量:' + (info?.feedQuantity ?? '')
+              ),
 
-              h('div', {}, '报工时间:' + (info?.reportTime ?? '')),
+              h(
+                'div',
+                {
+                  class: 'box-item',
+                  style:
+                    'white-space: nowrap;text-overflow: ellipsis;overflow: hidden;'
+                },
+                '报工时间:' + (info?.reportTime ?? '')
+              ),
 
-              h('div', {}, '报工数量:' + (info?.reportQuantity ?? '')),
+              h(
+                'div',
+                {
+                  class: 'box-item',
+                  style:
+                    'white-space: nowrap;text-overflow: ellipsis;overflow: hidden;'
+                },
+                '报工数量:' + (info?.reportQuantity ?? '')
+              ),
 
-              h('div', {}, '工时:' + (info?.workHour ?? ''))
+              h(
+                'div',
+                {
+                  class: 'box-item',
+                  style:
+                    'white-space: nowrap;text-overflow: ellipsis;overflow: hidden;'
+                },
+                '工时:' + (info?.workHour ?? '')
+              )
             ]);
           }
         }));
@@ -170,7 +213,12 @@
 
   .box {
     display: flex;
-    text-align: left !important;
+
+    .box-item {
+      white-space: nowrap;
+      text-overflow: ellipsis;
+      overflow: hidden;
+    }
   }
 
   .ele-table-container {
@@ -208,4 +256,10 @@
     border-color: #ffa929;
     color: #ffffff; /* 图标文字颜色 */
   }
+
+  .box-item {
+    white-space: nowrap;
+    text-overflow: ellipsis;
+    overflow: hidden;
+  }
 </style>

+ 63 - 0
src/views/boss/orderTracking/components/searchTable.vue

@@ -0,0 +1,63 @@
+<!-- 搜索表单 -->
+<template>
+  <seekPage :seekList="seekList" :formLength="3" @search="search"></seekPage>
+</template>
+<script>
+  import { reviewStatusSelect, saleOrderProgressStatusEnum } from '@/enum/dict';
+  export default {
+    data() {
+      return {};
+    },
+    computed: {
+      // 表格列配置
+      seekList() {
+        return [
+          {
+            label: '销售订单号:',
+            value: 'orderNo',
+            type: 'input',
+            placeholder: ''
+          },
+          {
+            label: '项目名称:',
+            value: 'projectName',
+            type: 'input',
+            placeholder: ''
+          },
+          {
+            label: '客户名称:',
+            value: 'customerName',
+            type: 'input',
+            placeholder: ''
+          },
+          {
+            label: '创建时间:',
+            value: 'createTime',
+            type: 'date',
+            dateType: 'daterange',
+            placeholder: '',
+            width: 380,
+            valueAr: ['startDate', 'endDate']
+          },
+          {
+            label: '订单状态',
+            value: 'progress',
+            type: 'select',
+            planList: saleOrderProgressStatusEnum,
+            width: 380,
+            placeholder: ''
+          },
+        
+        ];
+      }
+    },
+    methods: {
+      /* 搜索 */
+      search(e) {
+        this.$emit('search', {
+          ...e
+        });
+      }
+    }
+  };
+</script>

+ 22 - 79
src/views/boss/orderTracking/index.vue

@@ -2,60 +2,7 @@
   <div class="ele-body">
     <el-card shadow="never">
       <div class="filter-container">
-        <el-form
-          label-width="100px"
-          class="ele-form-search"
-          @keyup.enter.native="reload"
-          @submit.native.prevent
-        >
-          <el-row :gutter="15">
-            <el-col v-bind="styleResponsive ? { lg: 5, md: 12 } : { span: 5 }">
-              <el-form-item label="销售订单号:" prop="orderNo">
-                <el-input v-model="params.orderNo" clearable></el-input>
-              </el-form-item>
-            </el-col>
-
-            <el-col v-bind="styleResponsive ? { lg: 5, md: 12 } : { span: 5 }">
-              <el-form-item label="项目名称:" prop="projectName">
-                <el-input v-model="params.projectName" clearable></el-input>
-              </el-form-item>
-            </el-col>
-
-            <el-col v-bind="styleResponsive ? { lg: 5, md: 12 } : { span: 5 }">
-              <el-form-item label="客户名称:" prop="customerName">
-                <el-input v-model="params.customerName" clearable></el-input>
-              </el-form-item>
-            </el-col>
-
-            <el-col v-bind="styleResponsive ? { lg: 5, md: 12 } : { span: 5 }">
-              <el-form-item label="创建时间:" prop="createTime">
-                <el-date-picker
-                  v-model="timeSearch"
-                  style="width: 100%"
-                  value-format="yyyy-MM-dd"
-                  type="daterange"
-                  range-separator="-"
-                  start-placeholder="开始日期"
-                  end-placeholder="结束日期"
-                  :default-time="['00:00:00', '23:59:59']"
-                />
-              </el-form-item>
-            </el-col>
-            <el-col v-bind="styleResponsive ? { lg: 4, md: 24 } : { span: 4 }">
-              <div class="ele-form-actions">
-                <el-button
-                  type="primary"
-                  icon="el-icon-search"
-                  class="ele-btn-icon"
-                  @click="reload('search')"
-                >
-                  查询
-                </el-button>
-                <el-button @click="reload('reset')">重置</el-button>
-              </div>
-            </el-col>
-          </el-row>
-        </el-form>
+        <search-table @search="reload"></search-table>
       </div>
     </el-card>
 
@@ -124,6 +71,13 @@
             <span> 数量:{{ row.deliveryQuantity }} </span>
           </div>
         </template>
+
+        <!-- <template v-slot:date01="{ row }">
+          
+          <div class="date-box">
+            <span> {{ 123 }} </span>
+          </div>
+        </template> -->
       </ele-pro-table>
     </div>
 
@@ -133,6 +87,7 @@
 <script>
   import tabMixins from '@/mixins/tableColumnsMixin';
   import produceRouting from './components/produceRouting.vue';
+  import searchTable from './components/searchTable.vue';
   import {
     getList,
     getListPage,
@@ -141,11 +96,11 @@
   } from '@/api/boss/index.js';
   import { mapGetters } from 'vuex';
   import { getColumns } from './columns.js';
-  import { getRecords } from '@/utils/util';
   import { getByCode } from '@/api/system/dictionary-data';
   export default {
     mixins: [tabMixins],
     components: {
+      searchTable,
       produceRouting
     },
     data() {
@@ -192,21 +147,8 @@
     },
 
     methods: {
-      reload(type) {
-        if (this.timeSearch) {
-          this.params.startDate = this.timeSearch[0];
-          this.params.endDate = this.timeSearch[1];
-        }
-        if (type == 'reset') {
-          this.params = {
-            startDate: '',
-            endDate: '',
-            customerId: '',
-            projectId: '',
-            orderNo: ''
-          };
-        }
-        this.$refs.table.reload({ page: 1, where: this.params });
+      reload(where) {
+        this.$refs.table.reload({ page: 1, where: where });
       },
       datasource({ page, where, limit, ...row }) {
         return getListPage({
@@ -365,14 +307,15 @@
     white-space: pre;
   }
 
-  :deep(
-      .el-date-editor
-        el-input
-        el-input--medium
-        el-input--prefix
-        el-input--suffix
-        el-date-editor--date
-    ) {
-    width: 100%;
+  :deep(.ele-pro-table-header-ellipsis > .el-table th.el-table__cell) {
+    background-color: #e3e3e3;
+  }
+
+  :deep(.date-box1) {
+    background-color: #f0f9eb;
+  }
+
+  :deep(.date-box0) {
+    background-color: rgba(215, 234, 255);
   }
 </style>