caojunjie 2 gadi atpakaļ
vecāks
revīzija
a516e4ebe9

+ 9 - 0
src/api/accountBalance/index.js

@@ -0,0 +1,9 @@
+import request from "@/router/axios";
+//查询列表
+export const getList = (params) => {
+    return request({
+        url: '/api/trade-finance/acc/selBillBalance',
+        method: 'get',
+        params: params
+    })
+}

+ 7 - 0
src/api/wel.js

@@ -41,6 +41,13 @@ export const distribution = (query) => {
     params: query
   })
 }
+export const boxDataAnalysisDetails = (query) => {
+  return request({
+    url: '/api/blade-box-tube/boxDataAnalysis/details',
+    method: 'get',
+    params: query
+  })
+}
 export const realTimeData = (query) => {
   return request({
     url: '/api/blade-purchase-sales/exportOrder/realTimeData',

+ 6 - 6
src/components/boxCost/index.vue

@@ -236,9 +236,9 @@ export default {
       for (let item of this.$refs.crud.DIC.currency) {
         if (item.dictValue == value) {
           this.form.exchangeRate = item.remark
-        }
-        if (this.form.price && this.form.quantity) {
-          this.form.amount = this.form.price * this.form.quantity * item.remark
+          if (this.form.price && this.form.quantity) {
+            this.form.amount = this.form.price * this.form.quantity * item.remark
+          }
         }
       }
     }
@@ -354,9 +354,9 @@ export default {
           for (let item of this.$refs.crud.DIC.currency) {
             if (item.dictValue == value) {
               this.form.exchangeRate = item.remark
-            }
-            if (this.form.price && this.form.quantity) {
-              this.form.amount = this.form.price * this.form.quantity * item.remark
+              if (this.form.price && this.form.quantity) {
+                this.form.amount = this.form.price * this.form.quantity * item.remark
+              }
             }
           }
         }

+ 1 - 0
src/components/boxInformation/index.vue

@@ -118,6 +118,7 @@ export default {
         span: 8,
         border: true,
         selection: true,
+        reserveSelection: true,
         searchMenuPosition: "right",
         align: "center",
         menu:false,

+ 6 - 0
src/enums/column-name.js

@@ -1003,6 +1003,12 @@ const columnName = [{
 },{
   code: 238,
   name: '箱管理-箱导入'
+},{
+  code: 239,
+  name: '统计分析-应收账款余额'
+},{
+  code: 240,
+  name: '统计分析-付收账款余额'
 }
 ]
 export const getColumnName = (key) => {

+ 2 - 1
src/views/basicData/container/archives.vue

@@ -145,7 +145,7 @@ export default {
           search: true,
           filterable: true,
           type: 'select',
-          dataType: 'number',
+          dataType: 'string',
           props: {
             label: 'name',
             value: 'id'
@@ -484,6 +484,7 @@ export default {
         ...params,
         current: page.currentPage,
         size: page.pageSize,
+        ...Object.assign(params, this.search)
       }
       this.loading = true
       getList(params).then(res => {

+ 13 - 2
src/views/boxManagement/buyContainer/detailsPage.vue

@@ -23,7 +23,7 @@
         </el-dropdown>
         <el-button class="el-button--small-yh" type="primary" size="small" :disabled="form.status>0"
                    @click="editCustomer">
-          {{ form.id ? "保存数据" : "确认新增" }}
+          保存数据
         </el-button>
       </div>
     </div>
@@ -42,6 +42,7 @@
           v-model="formTwo"
           ref="crud"
           :key="key"
+          :before-open="beforeOpen"
           :upload-delete="uploadDelete"
           @row-save="rowSave"
           @row-update="rowUpdate"
@@ -417,7 +418,7 @@ export default {
             trigger: "blur"
           }]
         }, {
-          label: '起租日期',
+          label: '箱来源日期',
           prop: 'leaseCommencementDate',
           width: 100,
           overHidden: true,
@@ -585,6 +586,8 @@ export default {
           loading.close();
           this.$message.success('撤回成功')
           this.refresh(this.form.id)
+        }).catch(()=>{
+          loading.close();
         })
       })
     },
@@ -787,6 +790,14 @@ export default {
         }
       });
     },
+    //打开表单前
+    beforeOpen(done,type){
+      if (type === "add"){
+        this.formTwo.boxSource = this.$refs.crud.DIC.boxSource.length === 0?"":this.$refs.crud.DIC.boxSource[0].dictKey
+        this.formTwo.status = this.$refs.crud.DIC.status.length === 0?"":this.$refs.crud.DIC.status[0].dictKey
+      }
+      done();
+    },
     //删除图片
     uploadDelete(file, column) {
       return new Promise((resolve, reject) => {

+ 6 - 3
src/views/boxManagement/buyContainer/index.vue

@@ -24,11 +24,13 @@
         </template>
         <template slot-scope="{type,size,row,$index}" slot="menu">
           <el-button icon="el-icon-view" :size="size" :type="type" @click="check(row)">查看</el-button>
-          <el-button icon="el-icon-delete" :size="size" :type="type" @click="$refs.crud.rowDel(row,$index)">删除
+          <el-button icon="el-icon-delete" :size="size" v-if="row.status == 0" :type="type" @click="$refs.crud.rowDel(row,$index)">删除
           </el-button>
         </template>
         <template slot-scope="{type,size,row,$index}" slot="menuLeft">
-          <el-button icon="el-icon-plus" type="primary" :size="size" @click="detailsOpen = true">新增</el-button>
+          <el-button icon="el-icon-plus" type="primary" :size="size" @click="detailsOpen = true">创建单据</el-button>
+          <el-button class="el-icon-document-copy" type="success" size="small">复制单据</el-button>
+          <el-button class="el-icon-download" type="warning" size="small">导出</el-button>
         </template>
       </avue-crud>
     </basic-container>
@@ -195,7 +197,8 @@ export default {
         ...params,
         current: page.currentPage,
         size: page.pageSize,
-        type: "BUY"
+        type: "BUY",
+        ...Object.assign(params, this.search)
       }
       this.loading = true
       getList(params).then(res => {

+ 4 - 3
src/views/boxManagement/exportShipment/detailsPage.vue

@@ -23,8 +23,7 @@
           </el-dropdown-menu>
         </el-dropdown>
         <el-button class="el-button--small-yh" type="primary" size="small" :disabled="form.status>0"
-                   @click="editCustomer">
-          {{ form.id ? "保存数据" : "确认新增" }}
+                   @click="editCustomer">保存数据
         </el-button>
       </div>
     </div>
@@ -143,6 +142,7 @@
         :append-to-body="true"
         :destroy-on-close="true"
         :close-on-click-modal="false"
+        top="1vh"
         width="70%">
       <span>
         <box-information v-model="importList"></box-information>
@@ -571,12 +571,14 @@ export default {
           label: '租金收入',
           prop: 'amount',
           type: 'number',
+          value:0,
           controls: false,
           overHidden: true,
         }, {
           label: '超期单价/天',
           prop: 'price',
           type: 'number',
+          value:0,
           controls: false,
           overHidden: true,
         }, {
@@ -1015,7 +1017,6 @@ export default {
         return loading();
       }
       done(form)
-      done(form)
       this.getWorkDicts("currency").then(res => {
         for (let item of res.data.data){
           if (item.dictValue == form.currency){

+ 6 - 3
src/views/boxManagement/exportShipment/index.vue

@@ -35,11 +35,13 @@
         </template>
         <template slot-scope="{type,size,row,$index}" slot="menu">
           <el-button icon="el-icon-view" :size="size" :type="type" @click="check(row)">查看</el-button>
-          <el-button icon="el-icon-delete" :size="size" :type="type" @click="$refs.crud.rowDel(row,$index)">删除
+          <el-button icon="el-icon-delete" :size="size" v-if="row.status == 0" :type="type" @click="$refs.crud.rowDel(row,$index)">删除
           </el-button>
         </template>
         <template slot-scope="{type,size,row,$index}" slot="menuLeft">
-          <el-button icon="el-icon-plus" type="primary" :size="size" @click="detailsOpen = true">新增</el-button>
+          <el-button icon="el-icon-plus" type="primary" :size="size" @click="detailsOpen = true">创建单据</el-button>
+          <el-button class="el-icon-document-copy" type="success" size="small">复制单据</el-button>
+          <el-button class="el-icon-download" type="warning" size="small">导出</el-button>
         </template>
       </avue-crud>
     </basic-container>
@@ -268,7 +270,8 @@ export default {
         ...params,
         current: page.currentPage,
         size: page.pageSize,
-        billType: "CKZY"
+        billType: "CKZY",
+        ...Object.assign(params, this.search)
       }
       this.loading = true
       getList(params).then(res => {

+ 4 - 2
src/views/boxManagement/importReturnTrip/detailsPage.vue

@@ -23,8 +23,7 @@
           </el-dropdown-menu>
         </el-dropdown>
         <el-button class="el-button--small-yh" type="primary" size="small" :disabled="form.status>0"
-                   @click="editCustomer">
-          {{ form.id ? "保存数据" : "确认新增" }}
+                   @click="editCustomer">保存数据
         </el-button>
       </div>
     </div>
@@ -143,6 +142,7 @@
         :append-to-body="true"
         :destroy-on-close="true"
         :close-on-click-modal="false"
+        top="1vh"
         width="70%">
       <span>
         <box-information v-model="importList"></box-information>
@@ -571,12 +571,14 @@ export default {
           label: '租金收入',
           prop: 'amount',
           type: 'number',
+          value:0,
           controls: false,
           overHidden: true,
         }, {
           label: '超期单价/天',
           prop: 'price',
           type: 'number',
+          value:0,
           controls: false,
           overHidden: true,
         }, {

+ 6 - 3
src/views/boxManagement/importReturnTrip/index.vue

@@ -35,11 +35,13 @@
         </template>
         <template slot-scope="{type,size,row,$index}" slot="menu">
           <el-button icon="el-icon-view" :size="size" :type="type" @click="check(row)">查看</el-button>
-          <el-button icon="el-icon-delete" :size="size" :type="type" @click="$refs.crud.rowDel(row,$index)">删除
+          <el-button icon="el-icon-delete" :size="size" v-if="row.status == 0" :type="type" @click="$refs.crud.rowDel(row,$index)">删除
           </el-button>
         </template>
         <template slot-scope="{type,size,row,$index}" slot="menuLeft">
-          <el-button icon="el-icon-plus" type="primary" :size="size" @click="detailsOpen = true">新增</el-button>
+          <el-button icon="el-icon-plus" type="primary" :size="size" @click="detailsOpen = true">创建单据</el-button>
+          <el-button class="el-icon-document-copy" type="success" size="small">复制单据</el-button>
+          <el-button class="el-icon-download" type="warning" size="small">导出</el-button>
         </template>
       </avue-crud>
     </basic-container>
@@ -268,7 +270,8 @@ export default {
         ...params,
         current: page.currentPage,
         size: page.pageSize,
-        billType: "JKFC"
+        billType: "JKFC",
+        ...Object.assign(params, this.search)
       }
       this.loading = true
       getList(params).then(res => {

+ 18 - 4
src/views/boxManagement/sellingContainers/detailsPage.vue

@@ -22,8 +22,7 @@
           </el-dropdown-menu>
         </el-dropdown>
         <el-button class="el-button--small-yh" type="primary" size="small" :disabled="form.status>0"
-                   @click="editCustomer">
-          {{ form.id ? "保存数据" : "确认新增" }}
+                   @click="editCustomer">保存数据
         </el-button>
       </div>
     </div>
@@ -42,6 +41,7 @@
           v-model="formTwo"
           ref="crud"
           :key="key"
+          :before-open="beforeOpen"
           :upload-delete="uploadDelete"
           @row-save="rowSave"
           @row-update="rowUpdate"
@@ -151,7 +151,7 @@ export default {
             trigger: "blur"
           }]
         }, {
-          label: '卖公司',
+          label: '卖公司',
           prop: 'purchaseCompanyId',
           rules: [{
             required: true,
@@ -159,7 +159,7 @@ export default {
             trigger: "blur"
           }]
         }, {
-          label: '卖日期',
+          label: '卖日期',
           prop: 'purchaseDate',
           type: "date",
           format: "yyyy-MM-dd",
@@ -493,6 +493,12 @@ export default {
               tare: item.tare,
               loadingWeight: item.loadingWeight,
               volume: item.volume,
+              address:item.address,
+              addressId:item.addressId,
+              newDate:item.newDate,
+              boxMakingDate:item.boxMakingDate,
+              leaseCommencementDate:item.leaseCommencementDate,
+              boxAge:item.boxAge
             }
           }
         }
@@ -718,6 +724,14 @@ export default {
         }
       });
     },
+    //打开表单前
+    beforeOpen(done,type){
+      if (type === "add"){
+        this.formTwo.boxSource = this.$refs.crud.DIC.boxSource.length === 0?"":this.$refs.crud.DIC.boxSource[0].dictKey
+        this.formTwo.status = this.$refs.crud.DIC.status.length === 0?"":this.$refs.crud.DIC.status.length>1?this.$refs.crud.DIC.status[2].dictKey:this.$refs.crud.DIC.status[0].dictKey
+      }
+      done();
+    },
     rowSave(form,done,loading) {
       let result = this.dataList.some((item) => {
         if (item.code == form.code) {

+ 8 - 5
src/views/boxManagement/sellingContainers/index.vue

@@ -24,11 +24,13 @@
         </template>
         <template slot-scope="{type,size,row,$index}" slot="menu">
           <el-button icon="el-icon-view" :size="size" :type="type" @click="check(row)">查看</el-button>
-          <el-button icon="el-icon-delete" :size="size" :type="type" @click="$refs.crud.rowDel(row,$index)">删除
+          <el-button icon="el-icon-delete" :size="size" v-if="row.status == 0" :type="type" @click="$refs.crud.rowDel(row,$index)">删除
           </el-button>
         </template>
         <template slot-scope="{type,size,row,$index}" slot="menuLeft">
-          <el-button icon="el-icon-plus" type="primary" :size="size" @click="detailsOpen = true">新增</el-button>
+          <el-button icon="el-icon-plus" type="primary" :size="size" @click="detailsOpen = true">创建单据</el-button>
+          <el-button class="el-icon-document-copy" type="success" size="small">复制单据</el-button>
+          <el-button class="el-icon-download" type="warning" size="small">导出</el-button>
         </template>
       </avue-crud>
     </basic-container>
@@ -89,12 +91,12 @@ export default {
           width: 170,
           search: true,
         }, {
-          label: '卖公司',
+          label: '卖公司',
           prop: 'purchaseCompanyId',
           width: 300,
           search: true,
         }, {
-          label: '卖日期',
+          label: '卖日期',
           prop: 'purchaseDate',
           width: 100,
           search: true,
@@ -195,7 +197,8 @@ export default {
         ...params,
         current: page.currentPage,
         size: page.pageSize,
-        type: "SELL"
+        type: "SELL",
+        ...Object.assign(params, this.search)
       }
       this.loading = true
       getList(params).then(res => {

+ 16 - 0
src/views/purchase/rubberStock/config/mainList.json

@@ -202,6 +202,22 @@
       "overHidden": true,
       "index": 22,
       "width": 150
+    },
+    {
+      "label": "匹配状态",
+      "prop": "rubberDistinguish",
+      "overHidden": true,
+      "showColumn": true,
+      "hide": false,
+      "search": true,
+      "type":"select",
+      "dicData": [],
+      "props": {
+        "label": "dictValue",
+        "value": "dictKey"
+      },
+      "index": 23,
+      "width": 150
     }
   ]
 }

+ 12 - 1
src/views/purchase/rubberStock/index.vue

@@ -83,7 +83,9 @@ export default {
     return {
       loading: false,
       form: {},
-      search: {},
+      search: {
+        rubberDistinguish:"1"
+      },
       show: true,
       detailData: {},
       option: {},
@@ -106,6 +108,10 @@ export default {
   },
   async created() {
     this.option = await this.getColumnData(this.getColumnName(187), option);
+    this.getWorkDicts("rubber_distinguish").then(res => {
+      this.findObject(this.option.column, "rubberDistinguish").dicData =
+          res.data.data;
+    })
     getGoods(1, 10).then(res => {
       if (res.data.data.total > 0) {
         this.goodsoptions = res.data.data.records;
@@ -149,6 +155,8 @@ export default {
       done()
     },
     searchReset() {
+      this.search.rubberDistinguish = "1"
+      this.onLoad(this.page, this.search);
     },
     selectionChange() {
     },
@@ -184,6 +192,9 @@ export default {
           plannedDeliveryDateEndX: this.search.plannedDeliveryDateX[1]
         };
       }
+      if (this.search.rubberDistinguish){
+        params.rubberDistinguish = this.search.rubberDistinguish
+      }
       let data = this.deepClone(Object.assign(params));
       delete data.requiredArrivalDateC;
       delete data.plannedDeliveryDateX;

+ 16 - 1
src/views/purchase/stockBill/config/mainList.json

@@ -61,7 +61,22 @@
       "decimals": 6
     }
   ],
-  "column": [
+  "column": [{
+    "label": "合同类型",
+    "prop": "orderType",
+    "search": true,
+    "searchOrder": 1,
+    "index": 1,
+    "overHidden": true,
+    "type":"select",
+    "props": {
+      "label": "dictValue",
+      "value": "dictValue"
+    },
+    "dicData": [],
+    "value":"棉花",
+    "width":150
+  },
     {
       "label": "合同号",
       "prop": "contractNumber",

+ 4 - 0
src/views/purchase/stockBill/index.vue

@@ -66,6 +66,10 @@
     },
     async created() {
       this.option = await this.getColumnData(this.getColumnName(65), option);
+      this.getWorkDicts("contractType").then(res => {
+        this.findObject(this.option.column, "orderType").dicData =
+            res.data.data;
+      })
     },
     mounted() {
     },

+ 165 - 0
src/views/statisticAnalysis/accountBalanceC/index.vue

@@ -0,0 +1,165 @@
+<template>
+  <div>
+    <basic-container>
+      <avue-crud
+          :option="option"
+          :search.sync="search"
+          v-model="form"
+          :table-loading="loading"
+          :data="dataList"
+          ref="crud"
+          :key="key"
+          @on-load="onLoad"
+          @search-change="searchChange"
+          @refresh-change="refreshChange"
+          @resetColumn="resetColumnTwo('crud','option','optionList',239)"
+          @saveColumn="saveColumnTwo('crud','option','optionList',239)"
+          :page.sync="page">
+        <template slot="corpNameSearch">
+          <crop-select v-model="search.corpId" corpType="GYS"/>
+        </template>
+      </avue-crud>
+    </basic-container>
+  </div>
+</template>
+
+<script>
+
+import {getList} from "@/api/accountBalance/index.js";
+
+export default {
+  name: "index",
+  data() {
+    return {
+      loading: false,
+      search: {},
+      form: {},
+      detailData: {},
+      dataList: [],
+      page: {
+        pageSize: 20,
+        currentPage: 1,
+        total: 0,
+        pageSizes: [10, 20, 30, 40, 50, 100, 200, 300, 400, 500]
+      },
+      key: 0,
+      option: {},
+      optionList: {
+        viewBtn: false,
+        editBtn: false,
+        delBtn: false,
+        addBtn: false,
+        index: true,
+        span: 8,
+        border: true,
+        height:"auto",
+        searchMenuPosition: "right",
+        align: "center",
+        menuWidth: 140,
+        searchSpan: 8,
+        searchIcon: true,
+        searchIndex: 2,
+        highlightCurrentRow: true,
+        dialogWidth: "70%",
+        menu:false,
+        column: [{
+          label: '工厂',
+          prop: 'corpName',
+          search: true,
+          overHidden: true,
+        },{
+          label: '本期应付',
+          prop: 'amount',
+          overHidden: true,
+        },{
+          label: '本期已付',
+          prop: 'settlementAmount',
+          overHidden: true,
+        },{
+          label: '余额(总)',
+          prop: 'balance',
+          overHidden: true,
+        },{
+          label: '日期',
+          prop: 'createDateList',
+          search: true,
+          showColumn:false,
+          hide:true,
+          type: "date",
+          searchRange: true,
+          searchDefaultTime: ["00:00:00", "23:59:59"],
+          format: "yyyy-MM-dd",
+          valueFormat: "yyyy-MM-dd HH:mm:ss"
+        }]
+      }
+    }
+  },
+  async created() {
+    this.option = await this.getColumnData(this.getColumnName(240), this.optionList);
+    this.key++
+    let i = 0;
+    this.option.column.forEach(item => {
+      if (item.search) i++
+    })
+    if (i % 3 !== 0) {
+      const num = 3 - Number(i % 3)
+      this.option.searchMenuSpan = num * 8;
+      this.option.searchMenuPosition = "right";
+    }
+  },
+  methods: {
+    //刷新
+    refreshChange() {
+      this.onLoad(this.page, this.search)
+    },
+    searchChange(params, done) {
+      done();
+      this.onLoad(this.page, params)
+    },
+    onLoad(page, params = {}) {
+      params = {
+        ...params,
+        current: page.currentPage,
+        size: page.pageSize,
+        billType:"申请"
+      }
+      this.loading = true
+      getList(params).then(res => {
+        this.dataList = res.data.data.records
+        this.page.total = res.data.data.total
+        this.loading = false
+      }).finally(() => {
+        this.loading = false
+      })
+    },
+
+//自定义列保存
+    async saveColumnTwo(ref, option, optionBack, code) {
+      /**
+       * 已定义全局方法,直接使用,saveColumnData保存列数据方法,参数传值(表格名称,当前表格的option数据)
+       * 已定义全局方法,直接使用,getColumnName方法用来获取枚举值,参数根据自己定义的code值获取中文名
+       * 一定要执行异步操作,要等接口成功返回,才能执行下一行代码
+       */
+      const inSave = await this.saveColumnData(this.getColumnName(code), this[option]);
+      if (inSave) {
+        this.$message.success("保存成功");
+        //关闭窗口
+        this.$refs[ref].$refs.dialogColumn.columnBox = false;
+      }
+    },
+//自定义列重置
+    async resetColumnTwo(ref, option, optionBack, code) {
+      this[option] = this[optionBack];
+      const inSave = await this.delColumnData(this.getColumnName(code), this[optionBack]);
+      if (inSave) {
+        this.$message.success("重置成功");
+        this.$refs[ref].$refs.dialogColumn.columnBox = false;
+      }
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 165 - 0
src/views/statisticAnalysis/accountBalanceD/index.vue

@@ -0,0 +1,165 @@
+<template>
+  <div>
+    <basic-container>
+      <avue-crud
+          :option="option"
+          :search.sync="search"
+          v-model="form"
+          :table-loading="loading"
+          :data="dataList"
+          ref="crud"
+          :key="key"
+          @on-load="onLoad"
+          @search-change="searchChange"
+          @refresh-change="refreshChange"
+          @resetColumn="resetColumnTwo('crud','option','optionList',239)"
+          @saveColumn="saveColumnTwo('crud','option','optionList',239)"
+          :page.sync="page">
+        <template slot="corpNameSearch">
+          <crop-select v-model="search.corpId" corpType="KH"/>
+        </template>
+      </avue-crud>
+    </basic-container>
+  </div>
+</template>
+
+<script>
+
+import {getList} from "@/api/accountBalance/index.js";
+
+export default {
+  name: "index",
+  data() {
+    return {
+      loading: false,
+      search: {},
+      form: {},
+      detailData: {},
+      dataList: [],
+      page: {
+        pageSize: 20,
+        currentPage: 1,
+        total: 0,
+        pageSizes: [10, 20, 30, 40, 50, 100, 200, 300, 400, 500]
+      },
+      key: 0,
+      option: {},
+      optionList: {
+        viewBtn: false,
+        editBtn: false,
+        delBtn: false,
+        addBtn: false,
+        index: true,
+        span: 8,
+        border: true,
+        height:"auto",
+        searchMenuPosition: "right",
+        align: "center",
+        menuWidth: 140,
+        searchSpan: 8,
+        searchIcon: true,
+        searchIndex: 2,
+        highlightCurrentRow: true,
+        dialogWidth: "70%",
+        menu:false,
+        column: [{
+          label: '客户',
+          prop: 'corpName',
+          search: true,
+          overHidden: true,
+        },{
+          label: '本期应收',
+          prop: 'amount',
+          overHidden: true,
+        },{
+          label: '本期已收',
+          prop: 'settlementAmount',
+          overHidden: true,
+        },{
+          label: '余额(总)',
+          prop: 'balance',
+          overHidden: true,
+        },{
+          label: '日期',
+          prop: 'createDateList',
+          search: true,
+          showColumn:false,
+          hide:true,
+          type: "date",
+          searchRange: true,
+          searchDefaultTime: ["00:00:00", "23:59:59"],
+          format: "yyyy-MM-dd",
+          valueFormat: "yyyy-MM-dd HH:mm:ss"
+        }]
+      }
+    }
+  },
+  async created() {
+    this.option = await this.getColumnData(this.getColumnName(239), this.optionList);
+    this.key++
+    let i = 0;
+    this.option.column.forEach(item => {
+      if (item.search) i++
+    })
+    if (i % 3 !== 0) {
+      const num = 3 - Number(i % 3)
+      this.option.searchMenuSpan = num * 8;
+      this.option.searchMenuPosition = "right";
+    }
+  },
+  methods: {
+    //刷新
+    refreshChange() {
+      this.onLoad(this.page, this.search)
+    },
+    searchChange(params, done) {
+      done();
+      this.onLoad(this.page, params)
+    },
+    onLoad(page, params = {}) {
+      params = {
+        ...params,
+        current: page.currentPage,
+        size: page.pageSize,
+        billType:"收费"
+      }
+      this.loading = true
+      getList(params).then(res => {
+        this.dataList = res.data.data.records
+        this.page.total = res.data.data.total
+        this.loading = false
+      }).finally(() => {
+        this.loading = false
+      })
+    },
+
+//自定义列保存
+    async saveColumnTwo(ref, option, optionBack, code) {
+      /**
+       * 已定义全局方法,直接使用,saveColumnData保存列数据方法,参数传值(表格名称,当前表格的option数据)
+       * 已定义全局方法,直接使用,getColumnName方法用来获取枚举值,参数根据自己定义的code值获取中文名
+       * 一定要执行异步操作,要等接口成功返回,才能执行下一行代码
+       */
+      const inSave = await this.saveColumnData(this.getColumnName(code), this[option]);
+      if (inSave) {
+        this.$message.success("保存成功");
+        //关闭窗口
+        this.$refs[ref].$refs.dialogColumn.columnBox = false;
+      }
+    },
+//自定义列重置
+    async resetColumnTwo(ref, option, optionBack, code) {
+      this[option] = this[optionBack];
+      const inSave = await this.delColumnData(this.getColumnName(code), this[optionBack]);
+      if (inSave) {
+        this.$message.success("重置成功");
+        this.$refs[ref].$refs.dialogColumn.columnBox = false;
+      }
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 1 - 1
src/views/statisticAnalysis/salesmanCommission/index.vue

@@ -106,7 +106,7 @@ export default {
             prop: "careteTime",
             search: true,
             type: 'date',
-            format: "yyyy-MM-dd",
+            format: "yyyy-MM",
             valueFormat: "yyyy-MM-dd",
             unlinkPanels: true,
             searchRange: true,

+ 16 - 4
src/views/wel/home/equipmentControl/components/quick-launch.vue

@@ -11,19 +11,19 @@
           <i class="el-icon-tickets" style="color:#FFFFFF;background-color: #409EFF;border-radius: 5px;font-size: 22px;padding: 8px;"></i>
           <span>箱档案</span>
         </div>
-        <div class="content-icon" @click="inPage('064132')">
+        <div class="content-icon" @click="inPage('064132_MX')">
           <i class="el-icon-sold-out" style="color:#FFFFFF;background-color: #18e6e8;border-radius: 5px;font-size: 22px;padding: 8px;"></i>
           <span>买箱</span>
         </div>
-        <div class="content-icon" @click="inPage('064132')">
+        <div class="content-icon" @click="inPage('064132_SELL')">
           <i class="el-icon-sell" style="color:#FFFFFF;background-color: #ff1111;border-radius: 5px;font-size: 22px;padding: 8px;"></i>
           <span>卖箱</span>
         </div>
-        <div class="content-icon" @click="inPage('064132')">
+        <div class="content-icon" @click="inPage('064132_CK')">
           <i class="el-icon-top" style="color:#FFFFFF;background-color: #ecbf1a;border-radius: 5px;font-size: 22px;padding: 8px;"></i>
           <span>出口装运</span>
         </div>
-        <div class="content-icon" @click="inPage('064132')">
+        <div class="content-icon" @click="inPage('064132_JK')">
           <i class="el-icon-bottom" style="color:#FFFFFF;background-color: #1eff11;border-radius: 5px;font-size: 22px;padding: 8px;"></i>
           <span>进口返程</span>
         </div>
@@ -60,6 +60,18 @@ export default {
         case "064132_DA":
           this.$router.push("/basicData/container/archives");
           break;
+        case "064132_MX":
+          this.$router.push("/boxManagement/buyContainer/index");
+          break;
+        case "064132_SELL":
+          this.$router.push("/boxManagement/sellingContainers/index");
+          break;
+        case "064132_CK":
+          this.$router.push("/boxManagement/exportShipment/index");
+          break;
+        case "064132_JK":
+          this.$router.push("/boxManagement/importReturnTrip/index");
+          break;
       }
     }
   }

+ 104 - 3
src/views/wel/home/equipmentControl/components/sales-reached.vue

@@ -18,17 +18,101 @@
         </div>
       </div>
     </el-card>
+    <el-dialog
+        title="箱分布明细"
+        :visible.sync="dialogVisible"
+        width="80%"
+        top="1vh"
+        append-to-body="true">
+      <span>
+        <avue-crud :page.sync="page" :search.sync="search" :loading="loadingTwo" :data="dataList" :option="option"
+                   @on-load="onLoad">
+</avue-crud>
+      </span>
+      <span slot="footer" class="dialog-footer">
+    <el-button @click="dialogVisible = false">取 消</el-button>
+    <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
+  </span>
+    </el-dialog>
   </div>
 </template>
 
 <script>
-import {distribution} from "@/api/wel";
+import {distribution, boxDataAnalysisDetails} from "@/api/wel";
 
 export default {
   name: "basicContainer",
   data() {
     return {
+      page: {
+        pageSize: 20,
+        currentPage: 1,
+        total: 0,
+        pageSizes: [10, 20, 30, 40, 50, 100, 200, 300, 400, 500]
+      },
+      search: {},
+      option: {
+        viewBtn: false,
+        editBtn: false,
+        delBtn: false,
+        addBtn: false,
+        refreshBtn: false,
+        columnBtn: false,
+        index: true,
+        menu: false,
+        span: 8,
+        border: true,
+        height: "auto",
+        searchMenuPosition: "right",
+        align: "center",
+        menuWidth: 140,
+        searchSpan: 8,
+        searchIcon: true,
+        searchIndex: 2,
+        highlightCurrentRow: true,
+        dialogWidth: "70%",
+        column: [{
+          label: '箱号',
+          prop: 'code',
+          overHidden: true,
+        }, {
+          label: '箱类型',
+          prop: 'name',
+          overHidden: true,
+          filterable: true,
+          type: 'select',
+          dataType: 'string',
+          props: {
+            label: 'name',
+            value: 'id'
+          },
+          dicUrl: '/api/blade-client/container/listMessage'
+        }
+          , {
+            label: '最新地点',
+            prop: 'address',
+            overHidden: true,
+          }, {
+            label: '最新日期',
+            prop: 'newDate',
+            searchProp: 'newDateList',
+            overHidden: true,
+            type: "date",
+            searchRange: true,
+            searchDefaultTime: ["00:00:00", "23:59:59"],
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd HH:mm:ss"
+          }
+          , {
+            label: '箱动态',
+            prop: 'boxAccessStatus',
+            overHidden: true,
+          }]
+      },
+      dataList: [],
       loading: false,
+      loadingTwo: false,
+      dialogVisible: false,
       tradeType: null,
       entrustTimer: null,
       tableData: []
@@ -53,7 +137,25 @@ export default {
   methods: {
     //点击获取图表数据
     handleMousedown(params) {
-      this.$emit('handleMousedown', params.data)
+      this.search.address = params.name
+      this.dialogVisible = true
+      this.onLoad(this.page, this.search)
+    },
+    onLoad(page, params = {}) {
+      params = {
+        ...params,
+        current: page.currentPage,
+        size: page.pageSize,
+        ...Object.assign(params, this.search)
+      }
+      this.loadingTwo = true
+      boxDataAnalysisDetails(params).then(res => {
+        this.dataList = res.data.data.records
+        this.page.total = res.data.data.total
+        this.loadingTwo = false
+      }).finally(() => {
+        this.loadingTwo = false
+      })
     },
     //箱分布图表
     rankingTwo(id, name, data) {
@@ -83,7 +185,6 @@ export default {
     getSysType() {
       this.loading = true
       distribution().then(res => {
-        console.log(res.data.data)
         this.rankingTwo('totalContainer',"箱分布",res.data.data)
       })
       this.loading = false