wsx 1 gadu atpakaļ
vecāks
revīzija
eb6e536252

+ 3 - 4
src/api/warehouseManagement/statisticalReports.js

@@ -51,8 +51,7 @@ export async function sendReceiveExcel(params) {
 
 // 收发汇总表
 export async function sendReceiveGatherExcel(params) {
-  const res = await request.post(`/main/wmsExport/sendReceiveGather`, params, {
-    responseType: 'blob'
-  });
-  return res.data;
+  const res = await request.get(`/wms/statistics/getReportForms`, { params });
+  console.log('res', res);
+  return res.data.data;
 }

+ 325 - 0
src/components/seekPage.vue

@@ -0,0 +1,325 @@
+<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>
+
+                      <div v-if="item.type == 'year-month'">
+                        <el-date-picker
+                          v-model="defaultWhere[item.value]"
+                          @blur="change"
+                          type="month"
+                          value-format="yyyy-MM"
+                          :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>

+ 4 - 0
src/main.js

@@ -24,6 +24,10 @@ import 'bpmn-js/dist/assets/bpmn-font/css/bpmn-embedded.css';
 import { create, all } from 'mathjs'; // 引入mathjs工具并初始化
 import authSelection from '@/components/AuthSelection';
 import Print from 'vue-printjs';
+
+
+import seekPage from '@/components/seekPage';
+Vue.component('seekPage', seekPage);
 Vue.use(Print);
 Vue.use(elTableInfiniteScroll);
 const config = {

+ 52 - 0
src/views/warehouseManagement/statisticalReports/transceiverSummary/components/searchTable.vue

@@ -0,0 +1,52 @@
+<!-- 搜索表单 -->
+<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: 'clientName',
+            type: 'input',
+            placeholder: ''
+          },
+          {
+            label: '件号',
+            value: 'code',
+            type: 'input',
+            placeholder: ''
+          },
+          {
+            label: '件名',
+            value: 'name',
+            type: 'input',
+            placeholder: ''
+          },
+          {
+            label: '选择月份',
+            value: 'startDate',
+            type: 'year-month',
+            placeholder: '',
+            width: 180
+          }
+        ];
+      }
+    },
+    methods: {
+      /* 搜索 */
+      search(e) {
+        this.$emit('search', {
+          ...e
+        });
+      }
+    }
+  };
+</script>

+ 369 - 126
src/views/warehouseManagement/statisticalReports/transceiverSummary/index.vue

@@ -3,45 +3,7 @@
     <el-card shadow="never">
       <!-- 数据表格 -->
       <div>
-        <el-form
-          label-width="60px"
-          label-position="left"
-          class="ele-form-search"
-          @keyup.enter.native="search"
-          @submit.native.prevent
-        >
-          <el-row :gutter="15">
-            <el-col :span="6">
-              <el-form-item label="关键词:" prop="keyWord">
-                <el-input
-                  clearable
-                  v-model="keyWord"
-                  placeholder="请输入关键词"
-                ></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="18">
-              <div class="ele-form-actions">
-                <el-button
-                  type="primary"
-                  icon="el-icon-search"
-                  class="ele-btn-icon"
-                  @click="search"
-                  size="small"
-                >
-                  查询
-                </el-button>
-                <el-button
-                  @click="reset"
-                  icon="el-icon-refresh-left"
-                  size="small"
-                  type="primary"
-                  >重置</el-button
-                >
-              </div>
-            </el-col>
-          </el-row>
-        </el-form>
+        <search-table @search="reload"></search-table>
       </div>
       <ele-pro-table
         ref="table"
@@ -52,19 +14,9 @@
         height="calc(100vh - 405px)"
         full-height="calc(100vh - 116px)"
         tool-class="ele-toolbar-form"
+        :needPage="false"
       >
-        <template v-slot:toolbar="{ row }">
-          <el-button
-            size="small"
-            type="primary"
-            icon="el-icon-plus"
-            class="ele-btn-icon"
-            @click="add(false)"
-          >
-            新增
-          </el-button>
-        </template>
-        <template v-slot:action="{ row }">
+        <!-- <template v-slot:action="{ row }">
           <el-link
             type="primary"
             :underline="false"
@@ -81,27 +33,40 @@
           >
             下载
           </el-link>
-        </template>
+        </template> -->
       </ele-pro-table>
     </el-card>
-    <add ref="addRef" @reload="search" />
   </div>
 </template>
 
 <script>
-  import add from './add.vue';
-  import ItemSearch from './components/item-search.vue';
-  import {
-    getStatementLogPage,
-    sendReceiveGatherExcel
-  } from '@/api/warehouseManagement/statisticalReports';
+  import searchTable from './components/searchTable.vue';
+  import { sendReceiveGatherExcel } from '@/api/warehouseManagement/statisticalReports';
 
   export default {
-    components: { ItemSearch, add },
-    data() {
-      return {
-        keyWord: '',
-        columns: [
+    components: { searchTable },
+    computed: {
+      columns() {
+        let year, month, days;
+
+        if (this.date) {
+          year = this.date.split('-')[0];
+          month = this.date.split('-')[1].replace(/^0+/, '');
+          days = new Date(year, month, 0).getDate();
+        } else {
+          year = new Date().getFullYear();
+          month = new Date().getMonth() + 1;
+          days = new Date(year, month, 0).getDate();
+        }
+
+        let dateColumns = Array.from({ length: days }, (_, i) => ({
+          prop: `dateList[${i}][dateTotalNum]`,
+          label: `${month}/${i + 1}`,
+          align: 'center',
+          showOverflowTooltip: true
+        }));
+
+        let arr = [
           {
             type: 'index',
             label: '序号',
@@ -109,99 +74,373 @@
             align: 'center'
           },
           {
-            prop: 'code',
-            label: '编码',
+            prop: 'clientName',
+            label: '客户',
             align: 'center',
+            width: 200,
             showOverflowTooltip: true
           },
           {
-            prop: 'name',
-            label: '名称',
+            prop: 'categoryCode',
+            label: '件号',
             align: 'center',
+            width: 180,
             showOverflowTooltip: true
           },
           {
-            prop: 'createUserName',
-            label: '创建人',
+            prop: 'categoryName',
+            label: '件名',
             align: 'center',
+            width: 180,
             showOverflowTooltip: true
           },
           {
-            prop: 'startTime',
-            label: '开始时间',
+            prop: 'startNum',
+            label: '期初\n素材',
             slot: 'startTime',
             align: 'center',
+            width: 80,
             showOverflowTooltip: true
           },
           {
-            prop: 'endTime',
-            label: '结束时间',
+            prop: 'endNum',
+            label: '结存\n合计',
             align: 'center',
+            width: 0,
             showOverflowTooltip: true
           },
           {
-            columnKey: 'action',
-            label: '操作',
-            fixed: 'right',
-            width: 250,
+            prop: 'totalNum',
+            label: '小计',
             align: 'center',
-            slot: 'action',
             showOverflowTooltip: true
+          },
+          {
+            prop: 'category',
+            label: '类别',
+            align: 'center',
+            showOverflowTooltip: true
+          },
+          {
+            prop: 'dateList',
+            label: '日期/数量',
+            align: 'center',
+            showOverflowTooltip: true,
+            // children: [
+            //   {
+            //     prop: 'dateList[0][dateTotalNum]',
+            //     label: month + '/1',
+            //     align: 'center',
+            //     showOverflowTooltip: true
+            //   },
+            //   {
+            //     prop: 'dateList[1][dateTotalNum]',
+            //     label: month + '/2',
+            //     align: 'center',
+            //     showOverflowTooltip: true
+            //   },
+            //   {
+            //     prop: 'dateList[2][dateTotalNum]',
+            //     label: month + '/3',
+            //     align: 'center',
+            //     showOverflowTooltip: true
+            //   },
+            //   {
+            //     prop: 'dateList[3][dateTotalNum]',
+            //     label: month + '/4',
+            //     align: 'center',
+            //     showOverflowTooltip: true
+            //   },
+            //   {
+            //     prop: 'dateList[4][dateTotalNum]',
+            //     label: month + '/5',
+            //     align: 'center',
+            //     showOverflowTooltip: true
+            //   },
+            //   {
+            //     prop: 'dateList[5][dateTotalNum]',
+            //     label: month + '/6',
+            //     align: 'center',
+            //     showOverflowTooltip: true
+            //   },
+            //   {
+            //     prop: 'dateList[6][dateTotalNum]',
+            //     label: month + '/7',
+            //     align: 'center',
+            //     showOverflowTooltip: true
+            //   },
+            //   {
+            //     prop: 'dateList[7][dateTotalNum]',
+            //     label: month + '/8',
+            //     align: 'center',
+            //     showOverflowTooltip: true
+            //   },
+            //   {
+            //     prop: 'dateList[8][dateTotalNum]',
+            //     label: month + '/9',
+            //     align: 'center',
+            //     showOverflowTooltip: true
+            //   },
+            //   {
+            //     prop: 'dateList[9][dateTotalNum]',
+            //     label: month + '/10',
+            //     align: 'center',
+            //     showOverflowTooltip: true
+            //   },
+            //   {
+            //     prop: 'dateList[10][dateTotalNum]',
+            //     label: month + '/11',
+            //     align: 'center',
+            //     showOverflowTooltip: true
+            //   },
+            //   {
+            //     prop: 'dateList[11][dateTotalNum]',
+            //     label: month + '/12',
+            //     align: 'center',
+            //     showOverflowTooltip: true
+            //   },
+            //   {
+            //     prop: 'dateList[12][dateTotalNum]',
+            //     label: month + '/13',
+            //     align: 'center',
+            //     showOverflowTooltip: true
+            //   },
+            //   {
+            //     prop: 'dateList[13][dateTotalNum]',
+            //     label: month + '/14',
+            //     align: 'center',
+            //     showOverflowTooltip: true
+            //   },
+            //   {
+            //     prop: 'dateList[14][dateTotalNum]',
+            //     label: month + '/15',
+            //     align: 'center',
+            //     showOverflowTooltip: true
+            //   },
+            //   {
+            //     prop: 'dateList[15][dateTotalNum]',
+            //     label: month + '/16',
+            //     align: 'center',
+            //     showOverflowTooltip: true
+            //   },
+            //   {
+            //     prop: 'dateList[16][dateTotalNum]',
+            //     label: month + '/17',
+            //     align: 'center',
+            //     showOverflowTooltip: true
+            //   },
+            //   {
+            //     prop: 'dateList[17][dateTotalNum]',
+            //     label: month + '/18',
+            //     align: 'center',
+            //     showOverflowTooltip: true
+            //   },
+            //   {
+            //     prop: 'dateList[18][dateTotalNum]',
+            //     label: month + '/19',
+            //     align: 'center',
+            //     showOverflowTooltip: true
+            //   },
+            //   {
+            //     prop: 'dateList[19][dateTotalNum]',
+            //     label: month + '/20',
+            //     align: 'center',
+            //     showOverflowTooltip: true
+            //   },
+            //   {
+            //     prop: 'dateList[20][dateTotalNum]',
+            //     label: month + '/21',
+            //     align: 'center',
+            //     showOverflowTooltip: true
+            //   },
+            //   {
+            //     prop: 'dateList[21][dateTotalNum]',
+            //     label: month + '/22',
+            //     align: 'center',
+            //     showOverflowTooltip: true
+            //   },
+            //   {
+            //     prop: 'dateList[22][dateTotalNum]',
+            //     label: month + '/23',
+            //     align: 'center',
+            //     showOverflowTooltip: true
+            //   },
+            //   {
+            //     prop: 'dateList[23][dateTotalNum]',
+            //     label: month + '/24',
+            //     align: 'center',
+            //     showOverflowTooltip: true
+            //   },
+            //   {
+            //     prop: 'dateList[24][dateTotalNum]',
+            //     label: month + '/25',
+            //     align: 'center',
+            //     showOverflowTooltip: true
+            //   },
+            //   {
+            //     prop: 'dateList[25][dateTotalNum]',
+            //     label: month + '/26',
+            //     align: 'center',
+            //     showOverflowTooltip: true
+            //   },
+            //   {
+            //     prop: 'dateList[26][dateTotalNum]',
+            //     label: month + '/27',
+            //     align: 'center',
+            //     showOverflowTooltip: true
+            //   },
+            //   {
+            //     prop: 'dateList[27][dateTotalNum]',
+            //     label: month + '/28',
+            //     align: 'center',
+            //     showOverflowTooltip: true
+            //   },
+            //   {
+            //     prop: 'dateList[28][dateTotalNum]',
+            //     label: month + '/29',
+            //     align: 'center',
+            //     showOverflowTooltip: true
+            //   },
+            //   {
+            //     prop: 'dateList[29][dateTotalNum]',
+            //     label: month + '/30',
+            //     align: 'center',
+            //     showOverflowTooltip: true
+            //   },
+            //   {
+            //     prop: 'dateList[30][dateTotalNum]',
+            //     label: month + '/31',
+            //     align: 'center',
+            //     showOverflowTooltip: true
+            //   }
+            // ]
+            children: dateColumns
           }
-        ]
+        ];
+
+        return arr;
+      }
+    },
+
+    data() {
+      return {
+        date: ''
+        // columns: [
+        //   {
+        //     type: 'index',
+        //     label: '序号',
+        //     width: 50,
+        //     align: 'center'
+        //   },
+        //   {
+        //     prop: 'code',
+        //     label: '客户',
+        //     align: 'center',
+        //     showOverflowTooltip: true
+        //   },
+        //   {
+        //     prop: 'name',
+        //     label: '件号',
+        //     align: 'center',
+        //     showOverflowTooltip: true
+        //   },
+        //   {
+        //     prop: 'createUserName',
+        //     label: '件名',
+        //     align: 'center',
+        //     showOverflowTooltip: true
+        //   },
+        //   {
+        //     prop: 'startTime',
+        //     label: '期初素材',
+        //     slot: 'startTime',
+        //     align: 'center',
+        //     showOverflowTooltip: true
+        //   },
+        //   {
+        //     prop: 'endTime',
+        //     label: '结存合计',
+        //     align: 'center',
+        //     showOverflowTooltip: true
+        //   },
+        //   {
+        //     prop: 'endTime',
+        //     label: '小计',
+        //     align: 'center',
+        //     showOverflowTooltip: true
+        //   },
+        //   {
+        //     prop: 'endTime',
+        //     label: '类别',
+        //     align: 'center',
+        //     showOverflowTooltip: true
+        //   },
+        //   {
+        //     prop: 'endTime',
+        //     label: '日期/数量',
+        //     align: 'center',
+        //     showOverflowTooltip: true,
+        //     children: [
+        //       {
+        //         prop: 'province',
+        //         label: '1',
+        //         align: 'center',
+        //         showOverflowTooltip: true
+        //       }
+        //     ]
+        //   }
+        // ]
       };
     },
     methods: {
-      downLoad(row) {
-        sendReceiveGatherExcel({
-          code: row.code,
-          name: row.name,
-          startTime: row.startTime,
-          endTime: row.endTime,
-          exportStatus: 1
-        }).then((data) => {
-          try {
-            let objectUrl1 = window.URL.createObjectURL(new Blob([data]));
-            let elink = document.createElement('a');
-            elink.setAttribute(
-              'download',
-              decodeURI(decodeURI('收发汇总表.xlsx'))
-            );
-            elink.style.display = 'none';
-            elink.href = objectUrl1;
-            document.body.appendChild(elink);
-            elink.click();
-            document.body.removeChild(elink);
-            window.URL.revokeObjectURL(elink.href);
-            this.search();
-          } catch (err) {
-            this.$message.error('导出失败,请联系管理员!');
-          }
-        });
-      },
-      add(isView, row) {
-        console.log('isView--', isView);
-        console.log('row-----', row);
-        this.$refs.addRef.open(isView, row);
-      },
+      //   downLoad(row) {
+      //     sendReceiveGatherExcel({
+      //       code: row.code,
+      //       name: row.name,
+      //       startTime: row.startTime,
+      //       endTime: row.endTime,
+      //       exportStatus: 1
+      //     }).then((data) => {
+      //       try {
+      //         let objectUrl1 = window.URL.createObjectURL(new Blob([data]));
+      //         let elink = document.createElement('a');
+      //         elink.setAttribute(
+      //           'download',
+      //           decodeURI(decodeURI('收发汇总表.xlsx'))
+      //         );
+      //         elink.style.display = 'none';
+      //         elink.href = objectUrl1;
+      //         document.body.appendChild(elink);
+      //         elink.click();
+      //         document.body.removeChild(elink);
+      //         window.URL.revokeObjectURL(elink.href);
+      //         this.search();
+      //       } catch (err) {
+      //         this.$message.error('导出失败,请联系管理员!');
+      //       }
+      //     });
+      //   },
+
+      //   add(isView, row) {
+      //     console.log('isView--', isView);
+      //     console.log('row-----', row);
+      //     this.$refs.addRef.open(isView, row);
+      //   },
       /* 表格数据源 */
       datasource({ page, limit, where, order }) {
-        const data = getStatementLogPage({
-          ...where,
-          ...order,
-          type: 2,
-          keyWord: this.keyWord,
-          pageNum: page,
-          size: limit
+        return sendReceiveGatherExcel({
+          ...where
+          //   ...order,
+          //   type: 2,
+          //   keyWord: this.keyWord,
+          //   pageNum: page,
+          //   size: limit
         });
-        return data;
       },
-      search() {
-        this.$refs.table.reload();
-      },
-      reset() {
-        this.keyWord = '';
-        this.search();
+      reload(where) {
+        this.date = where.startDate ?? '';
+        console.log(where);
+        this.$refs.table.reload({ page: 1, where: where });
       }
     }
   };
@@ -243,4 +482,8 @@
       justify-content: flex-end;
     }
   }
+
+  :deep(.ele-pro-table-header-ellipsis > .el-table th.el-table__cell > .cell) {
+    white-space: pre;
+  }
 </style>

+ 246 - 0
src/views/warehouseManagement/statisticalReports/transceiverSummary/index811.vue

@@ -0,0 +1,246 @@
+<template>
+  <div id="inventoryBalance">
+    <el-card shadow="never">
+      <!-- 数据表格 -->
+      <div>
+        <el-form
+          label-width="60px"
+          label-position="left"
+          class="ele-form-search"
+          @keyup.enter.native="search"
+          @submit.native.prevent
+        >
+          <el-row :gutter="15">
+            <el-col :span="6">
+              <el-form-item label="关键词:" prop="keyWord">
+                <el-input
+                  clearable
+                  v-model="keyWord"
+                  placeholder="请输入关键词"
+                ></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="18">
+              <div class="ele-form-actions">
+                <el-button
+                  type="primary"
+                  icon="el-icon-search"
+                  class="ele-btn-icon"
+                  @click="search"
+                  size="small"
+                >
+                  查询
+                </el-button>
+                <el-button
+                  @click="reset"
+                  icon="el-icon-refresh-left"
+                  size="small"
+                  type="primary"
+                  >重置</el-button
+                >
+              </div>
+            </el-col>
+          </el-row>
+        </el-form>
+      </div>
+      <ele-pro-table
+        ref="table"
+        class="table"
+        :columns="columns"
+        :pageSize="20"
+        :datasource="datasource"
+        height="calc(100vh - 405px)"
+        full-height="calc(100vh - 116px)"
+        tool-class="ele-toolbar-form"
+      >
+        <template v-slot:toolbar="{ row }">
+          <el-button
+            size="small"
+            type="primary"
+            icon="el-icon-plus"
+            class="ele-btn-icon"
+            @click="add(false)"
+          >
+            新增
+          </el-button>
+        </template>
+        <template v-slot:action="{ row }">
+          <el-link
+            type="primary"
+            :underline="false"
+            icon="el-icon-view"
+            @click="add(true, row)"
+          >
+            详情
+          </el-link>
+          <el-link
+            type="primary"
+            :underline="false"
+            icon="el-icon-download"
+            @click="downLoad(row)"
+          >
+            下载
+          </el-link>
+        </template>
+      </ele-pro-table>
+    </el-card>
+    <add ref="addRef" @reload="search" />
+  </div>
+</template>
+
+<script>
+  import add from './add.vue';
+  import ItemSearch from './components/item-search.vue';
+  import {
+    getStatementLogPage,
+    sendReceiveGatherExcel
+  } from '@/api/warehouseManagement/statisticalReports';
+
+  export default {
+    components: { ItemSearch, add },
+    data() {
+      return {
+        keyWord: '',
+        columns: [
+          {
+            type: 'index',
+            label: '序号',
+            width: 50,
+            align: 'center'
+          },
+          {
+            prop: 'code',
+            label: '编码',
+            align: 'center',
+            showOverflowTooltip: true
+          },
+          {
+            prop: 'name',
+            label: '名称',
+            align: 'center',
+            showOverflowTooltip: true
+          },
+          {
+            prop: 'createUserName',
+            label: '创建人',
+            align: 'center',
+            showOverflowTooltip: true
+          },
+          {
+            prop: 'startTime',
+            label: '开始时间',
+            slot: 'startTime',
+            align: 'center',
+            showOverflowTooltip: true
+          },
+          {
+            prop: 'endTime',
+            label: '结束时间',
+            align: 'center',
+            showOverflowTooltip: true
+          },
+          {
+            columnKey: 'action',
+            label: '操作',
+            fixed: 'right',
+            width: 250,
+            align: 'center',
+            slot: 'action',
+            showOverflowTooltip: true
+          }
+        ]
+      };
+    },
+    methods: {
+      downLoad(row) {
+        sendReceiveGatherExcel({
+          code: row.code,
+          name: row.name,
+          startTime: row.startTime,
+          endTime: row.endTime,
+          exportStatus: 1
+        }).then((data) => {
+          try {
+            let objectUrl1 = window.URL.createObjectURL(new Blob([data]));
+            let elink = document.createElement('a');
+            elink.setAttribute(
+              'download',
+              decodeURI(decodeURI('收发汇总表.xlsx'))
+            );
+            elink.style.display = 'none';
+            elink.href = objectUrl1;
+            document.body.appendChild(elink);
+            elink.click();
+            document.body.removeChild(elink);
+            window.URL.revokeObjectURL(elink.href);
+            this.search();
+          } catch (err) {
+            this.$message.error('导出失败,请联系管理员!');
+          }
+        });
+      },
+      add(isView, row) {
+        console.log('isView--', isView);
+        console.log('row-----', row);
+        this.$refs.addRef.open(isView, row);
+      },
+      /* 表格数据源 */
+      datasource({ page, limit, where, order }) {
+        const data = getStatementLogPage({
+          ...where,
+          ...order,
+          type: 2,
+          keyWord: this.keyWord,
+          pageNum: page,
+          size: limit
+        });
+        return data;
+      },
+      search() {
+        this.$refs.table.reload();
+      },
+      reset() {
+        this.keyWord = '';
+        this.search();
+      }
+    }
+  };
+</script>
+<style lang="scss" scoped>
+  #inventoryBalance {
+    height: calc(100vh - 96px);
+    width: 100%;
+    padding: 10px;
+    box-sizing: border-box;
+    // element-ui样式穿透
+    :deep(.el-card) {
+      height: 100%;
+      .el-card__body {
+        height: 100%;
+        box-sizing: border-box;
+        display: flex;
+        flex-direction: column;
+        .ele-pro-table {
+          flex: 1;
+          display: flex;
+          flex-direction: column;
+          .el-table {
+            flex: 1;
+            // display: flex;
+            // flex-direction: column;
+            // .el-table__body-wrapper {
+            //   flex: 1;
+            // }
+          }
+        }
+      }
+      .el-form-item {
+        margin-bottom: 5px !important;
+      }
+    }
+    .ele-form-actions {
+      display: flex;
+      justify-content: flex-end;
+    }
+  }
+</style>