浏览代码

Merge branch 'dev' of git.echepei.com:caojunjie/Smart_platform_ui into dev

caojunjie 3 年之前
父节点
当前提交
6d0d3b8d63
共有 27 个文件被更改,包括 2407 次插入38 次删除
  1. 73 0
      src/api/dealer/purchaseContract.js
  2. 27 0
      src/api/statisticAnalysis/collectLedger.js
  3. 27 0
      src/api/statisticAnalysis/paymentLedger.js
  4. 26 0
      src/api/statisticAnalysis/profitLedger.js
  5. 28 14
      src/components/fee-info/main.vue
  6. 36 0
      src/enums/column-name.js
  7. 60 0
      src/router/views/index.js
  8. 8 2
      src/views/basicData/customerInformation/configuration/mainList.json
  9. 5 0
      src/views/basicData/customerInformation/detailsPageEdit.vue
  10. 33 6
      src/views/basicData/customerInformation/index.vue
  11. 5 0
      src/views/basicData/productInformation/detailsPageEdit.vue
  12. 5 0
      src/views/businessManagement/deliveryNotice/configuration/customerContact.json
  13. 9 2
      src/views/businessManagement/salesOrder/configuration/customerContact.json
  14. 12 2
      src/views/dealer/purchase/index.vue
  15. 14 2
      src/views/dealer/purchaseContract/detail.vue
  16. 1 1
      src/views/dealer/purchaseContract/index.vue
  17. 1 1
      src/views/dealer/sales/index.vue
  18. 2 4
      src/views/dealer/stock/config/mainList.json
  19. 189 4
      src/views/dealer/stock/detailsPage.vue
  20. 14 0
      src/views/dealer/stock/index.vue
  21. 180 0
      src/views/statisticAnalysis/collectLedger/detail.vue
  22. 425 0
      src/views/statisticAnalysis/collectLedger/index.vue
  23. 180 0
      src/views/statisticAnalysis/paymentLedger/detail.vue
  24. 421 0
      src/views/statisticAnalysis/paymentLedger/index.vue
  25. 202 0
      src/views/statisticAnalysis/profitLedger/detail.vue
  26. 414 0
      src/views/statisticAnalysis/profitLedger/index.vue
  27. 10 0
      src/views/system/tenant.vue

+ 73 - 0
src/api/dealer/purchaseContract.js

@@ -0,0 +1,73 @@
+import request from '@/router/axios';
+
+//采购资料列表查询
+export function getPurchaseList(params) {
+  return request({
+    url: '/api/trade-purchase/purchaseContract/list',
+    method: 'get',
+    params
+  })
+}
+//采购资料列表删除
+export function deleteDetails(data) {
+  return request({
+    url: '/api/trade-purchase/purchaseContract/remove',
+    method: 'post',
+    params: {
+      ids:data
+    }
+  })
+}
+//采购资料列表查看明细
+export function dataDetail(data) {
+  return request({
+    url: '/api/trade-purchase/purchaseContract/'+data,
+    method: 'get'
+  })
+}
+//采购资料列表修改和新增
+export function typeSave(data) {
+  return request({
+    url: '/api/trade-purchase/purchaseContract/submit',
+    method: 'post',
+    data
+  })
+}
+//商品从表列表删除
+export function removeGoods(data) {
+  return request({
+    url: '/api/trade-purchase/purchaseContract/removeByItem',
+    method: 'post',
+    data: {
+      id:data
+    }
+  })
+}
+//采购确认或取消订单
+export function dealerSubmit(params) {
+  return request({
+    url: '/api/trade-purchase/purchaseContract/dealerSubmit',
+    method: 'get',
+    params
+  })
+}
+// 获取历史日期和历史价格
+export function historyPrice(params) {
+  return request({
+    url: '/api/blade-purchase-sales/dealerOrder/historyPrice',
+    method: 'get',
+    params
+  })
+}
+// 商品明细分页查询
+export function itemDetail(current, size, params) {
+  return request({
+    url: '/api/trade-purchase/purchase-order/orderItems/list',
+    method: 'get',
+    params: {
+      ...params,
+      current,
+      size
+    }
+  })
+}

+ 27 - 0
src/api/statisticAnalysis/collectLedger.js

@@ -0,0 +1,27 @@
+import request from '@/router/axios';
+
+// 列表查询
+export const getList = (current, size, params) => {
+  return request({
+    url: '/api/trade-finance/receivable/list',
+    method: 'get',
+    params: {
+      ...params,
+      current,
+      size
+    }
+  })
+}
+
+// 详情
+export function detail(id, dc, tradeType) {
+  return request({
+    url: '/api/trade-finance/receivable/detail',
+    method: 'get',
+    params: {
+      corpId: id,
+      dc,
+      tradeType
+    }
+  })
+}

+ 27 - 0
src/api/statisticAnalysis/paymentLedger.js

@@ -0,0 +1,27 @@
+import request from '@/router/axios';
+
+// 列表查询
+export const getList = (current, size, params) => {
+  return request({
+    url: '/api/trade-finance/receivable/list',
+    method: 'get',
+    params: {
+      ...params,
+      current,
+      size
+    }
+  })
+}
+
+// 详情
+export function detail(id, dc, tradeType) {
+  return request({
+    url: '/api/trade-finance/receivable/detail',
+    method: 'get',
+    params: {
+      corpId: id,
+      dc,
+      tradeType
+    }
+  })
+}

+ 26 - 0
src/api/statisticAnalysis/profitLedger.js

@@ -0,0 +1,26 @@
+import request from '@/router/axios';
+
+// 列表查询
+export const getList = (current, size, params) => {
+  return request({
+    url: '/api/trade-finance/profit/list',
+    method: 'get',
+    params: {
+      ...params,
+      current,
+      size
+    }
+  })
+}
+
+// 详情
+export function detail(id, tradeType) {
+  return request({
+    url: '/api/trade-finance/profit/detail',
+    method: 'get',
+    params: {
+      corpId: id,
+      tradeType
+    }
+  })
+}

+ 28 - 14
src/components/fee-info/main.vue

@@ -14,9 +14,19 @@
       >
         <template slot="menuLeft">
           <el-tabs v-model="activeName" @tab-click="tabHandle">
-            <el-tab-pane label="应收" name="first" :key="'first'" v-if="tabShow == 1 || tabShow == 2">
+            <el-tab-pane
+              label="应收"
+              name="first"
+              :key="'first'"
+              v-if="tabShow == 1 || tabShow == 2"
+            >
             </el-tab-pane>
-            <el-tab-pane label="应付" name="second" :key="'second'" v-if="tabShow == 1 || tabShow == 3">
+            <el-tab-pane
+              label="应付"
+              name="second"
+              :key="'second'"
+              v-if="tabShow == 1 || tabShow == 3"
+            >
             </el-tab-pane>
           </el-tabs>
           <el-button
@@ -281,7 +291,8 @@ import {
 import { contrastList } from "@/util/contrastData";
 import { allCropList } from "@/api/basicData/customerInformation";
 import { getCustomerCode, getCustomerName } from "@/enums/management-type";
-
+import { getParities } from "@/api/basicData/customerInquiry";
+import { dateFormat } from "@/util/date";
 export default {
   name: "feeInfo",
   data() {
@@ -392,8 +403,8 @@ export default {
     // 1.显示全部 2.收费 3.付费
     tabShow: {
       type: Number,
-      default: 1,
-    },
+      default: 1
+    }
   },
   filters: {
     isPercentage(val) {
@@ -411,7 +422,8 @@ export default {
   },
   async created() {
     // 判断tabShow的activeName默认的显示
-    this.activeName = this.tabShow == 1? 'first': this.tabShow == 2? 'first': 'second';
+    this.activeName =
+      this.tabShow == 1 ? "first" : this.tabShow == 2 ? "first" : "second";
     this.feeOption = await this.getColumnData(
       this.getColumnName(33),
       feeOption
@@ -444,8 +456,8 @@ export default {
     ApplyPayment
   },
   watch: {
-    disabled:function(){
-       this.$refs.feeCrud.refreshTable()
+    disabled: function() {
+      this.$refs.feeCrud.refreshTable();
     },
     orderFeesList(newVla, oldVal) {
       if (newVla !== oldVal) {
@@ -531,10 +543,12 @@ export default {
     },
     //带出汇率
     currencyChange(row) {
-      this.currencyList.forEach(item => {
-        if (item.dictValue === row.currency) {
-          this.$set(row, "exchangeRate", item.remark);
-        }
+      getParities({
+        currency: row.currency,
+        businesDate: dateFormat(new Date(), "yyyy-MM-dd") + " 00:00:00"
+      }).then(res => {
+        const data = res.data.data;
+        row.exchangeRate = data.receivableParities;
       });
     },
     rowDel(row, index) {
@@ -629,8 +643,8 @@ export default {
         this.$refs.feeCrud.rowCellAdd(params);
       }
     },
-    addRow(){
-     this.rowAdd()
+    addRow() {
+      this.rowAdd();
     },
     onLoad(page) {
       this.loading = true;

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

@@ -501,6 +501,42 @@ const columnName = [{
     code: 130,
     name: '统计分析销售人员提成'
   },
+  {
+    code: 131,
+    name: '贸易客户列表'
+  },
+  {
+    code: 132,
+    name: '贸易客户明细'
+  },
+  {
+    code: 133,
+    name: '贸易供应商列表'
+  },
+  {
+    code: 134,
+    name: '贸易供应商明细'
+  },
+  {
+    code: 135,
+    name: '贸易所属公司列表'
+  },
+  {
+    code: 136,
+    name: '贸易所属公司明细'
+  },
+  {
+    code: 137,
+    name: '统计分析应收总账'
+  },
+  {
+    code: 138,
+    name: '统计分析应付总账'
+  },
+  {
+    code: 139,
+    name: '统计分析利润总账'
+  },
 ]
 export const getColumnName = (key) => {
   for (let index = 0; index < columnName.length; index++) {

+ 60 - 0
src/router/views/index.js

@@ -1379,4 +1379,64 @@ export default [{
       component: () => import( /* webpackChunkName: "views" */ '@/views/statisticAnalysis/salesReconciliation/index')
     }]
   },
+  //应收总账
+  {
+    path: '/statisticAnalysis/collectLedger/index',
+    component: Layout,
+    hidden: true,
+    children: [{
+      path: '/statisticAnalysis/collectLedger/index',
+      name: '应收总账',
+      meta: {
+        i18n: '/statisticAnalysis/collectLedger/index',
+        keepAlive: true,
+      },
+      component: () => import( /* webpackChunkName: "views" */ '@/views/statisticAnalysis/collectLedger/index')
+    }]
+  },
+  //应付总账
+  {
+    path: '/statisticAnalysis/paymentLedger/index',
+    component: Layout,
+    hidden: true,
+    children: [{
+      path: '/statisticAnalysis/paymentLedger/index',
+      name: '应付总账',
+      meta: {
+        i18n: '/statisticAnalysis/paymentLedger/index',
+        keepAlive: true,
+      },
+      component: () => import( /* webpackChunkName: "views" */ '@/views/statisticAnalysis/paymentLedger/index')
+    }]
+  },
+  //利润总账
+  {
+    path: '/statisticAnalysis/profitLedger/index',
+    component: Layout,
+    hidden: true,
+    children: [{
+      path: '/statisticAnalysis/profitLedger/index',
+      name: '利润总账',
+      meta: {
+        i18n: '/statisticAnalysis/profitLedger/index',
+        keepAlive: true,
+      },
+      component: () => import( /* webpackChunkName: "views" */ '@/views/statisticAnalysis/profitLedger/index')
+    }]
+  },
+  //采购合同(D)
+  {
+    path: '/dealer/purchaseContract/index',
+    component: Layout,
+    hidden: true,
+    children: [{
+      path: '/dealer/purchaseContract/index',
+      name: '采购合同(D)',
+      meta: {
+        i18n: '/dealer/purchaseContract/index',
+        keepAlive: true,
+      },
+      component: () => import( /* webpackChunkName: "views" */ '@/views/dealer/purchaseContract/index')
+    }]
+  },
 ]

+ 8 - 2
src/views/basicData/customerInformation/configuration/mainList.json

@@ -96,12 +96,18 @@
       "index": 8,
       "width": 130,
     "overHidden": true
+  },{
+    "label": "类别",
+    "prop": "corpsTypeName",
+    "index": 9,
+    "width": 130,
+    "overHidden": true
   }, {
       "label": "客户等级 ",
       "prop": "creditLevel",
       "search": true,
       "hide": true,
-      "index": 9,
+      "index": 10,
       "width": 100,
     "overHidden": true,
       "rules": [{
@@ -114,7 +120,7 @@
       "label": "分管员",
       "prop": "adminProfiles",
       "search": true,
-      "index": 10,
+      "index": 11,
       "width": 130,
       "type": "select",
       "dicData": [],

+ 5 - 0
src/views/basicData/customerInformation/detailsPageEdit.vue

@@ -814,6 +814,11 @@ export default {
             prop: "creditRating",
             span: 8,
           },
+          {
+            label: "代理商编码",
+            prop: "agentCode",
+            span: 8,
+          },
           // {
           //   label: "总返利",
           //   prop: "profitReturn",

+ 33 - 6
src/views/basicData/customerInformation/index.vue

@@ -34,6 +34,8 @@
               @current-change="currentChange"
               @size-change="sizeChange"
               @refresh-change="refreshChange"
+              @saveColumn="saveColumn"
+              @resetColumn="resetColumn"
               @on-load="onLoad"
               @tree-load="treeLoad"
               @search-criteria-switch="searchCriteriaSwitch"
@@ -186,7 +188,7 @@ export default {
         pageSize: 20,
         currentPage: 1,
         total: 0,
-        pageSizes: [10,20,30,40,50, 100, 200, 300, 400, 500]
+        pageSizes: [10, 20, 30, 40, 50, 100, 200, 300, 400, 500]
       },
       excelBox: false,
       excelLoading: false,
@@ -276,9 +278,9 @@ export default {
       })
         .then(() => {
           return deleteDetails({
-            id:row.id,
-            corpsTypeId:row.corpsTypeId,
-            corpType:'KH'
+            id: row.id,
+            corpsTypeId: row.corpsTypeId,
+            corpType: "KH"
           });
         })
         .then(() => {
@@ -335,7 +337,7 @@ export default {
       this.show = false;
       this.detailData = {
         treeDeptId: this.treeDeptId
-      }
+      };
     },
     editOpen(row, status) {
       this.detailData = {
@@ -381,7 +383,7 @@ export default {
         size: page.pageSize,
         current: page.currentPage,
         corpsTypeId: this.treeDeptId,
-        corpType: customerParameter.code,
+        corpType: customerParameter.code
       });
       customerList(queryParams).then(res => {
         this.dataList = res.data.data.records;
@@ -415,6 +417,31 @@ export default {
     onClose(val) {
       this.switchDialog = val;
     },
+    async saveColumn() {
+      const inSave = await this.saveColumnData(
+        this.getColumnName(108),
+        this.option
+      );
+      if (inSave) {
+        this.$nextTick(() => {
+          this.$refs.crud.doLayout();
+        });
+        this.$message.success("保存成功");
+        //关闭窗口
+        this.$refs.crud.$refs.dialogColumn.columnBox = false;
+      }
+    },
+    async resetColumn() {
+      this.option = option;
+      const inSave = await this.delColumnData(this.getColumnName(108), option);
+      if (inSave) {
+        this.$nextTick(() => {
+          this.$refs.crud.doLayout();
+        });
+        this.$message.success("重置成功");
+        this.$refs.crud.$refs.dialogColumn.columnBox = false;
+      }
+    },
     goBack() {
       this.detailData = this.$options.data().detailData;
       this.show = true;

+ 5 - 0
src/views/basicData/productInformation/detailsPageEdit.vue

@@ -381,6 +381,11 @@ export default {
             span: 8
           },
           {
+            label: "平台商品编码",
+            prop: "terraceCode",
+            span: 8
+          },
+          {
             label: "备注",
             prop: "remarks",
             type: "textarea",

+ 5 - 0
src/views/businessManagement/deliveryNotice/configuration/customerContact.json

@@ -51,6 +51,11 @@
       "name": "actualQuantity",
       "type": "sum",
       "decimals": 0
+    },
+    {
+      "name": "arrivalQuantity",
+      "type": "sum",
+      "decimals": 0
     }
   ],
   "column":[

+ 9 - 2
src/views/businessManagement/salesOrder/configuration/customerContact.json

@@ -293,7 +293,7 @@
     {
       "label": "重量",
       "prop": "cartonWeight",
-      "index": 15,
+      "index": 16,
       "width":100,
       "cell": false,
       "overHidden": true,
@@ -308,7 +308,7 @@
     {
       "label": "体积",
       "prop": "cntrVolumn",
-      "index": 15,
+      "index": 17,
       "width":100,
       "cell": false,
       "overHidden": true,
@@ -319,6 +319,13 @@
           "trigger": "blur"
         }
       ]
+    },
+    {
+      "label": "备注",
+      "prop": "remarks",
+      "index": 18,
+      "width": 100,
+      "overHidden": true
     }
   ]
 }

+ 12 - 2
src/views/dealer/purchase/index.vue

@@ -208,6 +208,16 @@ export default {
       this.option.searchMenuPosition = "right";
     }
   },
+  activated() {
+    if (this.$route.query.params) {
+      this.show = true;
+      this.detailData = {
+        id: this.$route.query.params,
+        query: true,
+      };
+      this.show = false;
+    }
+  },
   filters: {
     decimalFormat(num) {
       return num ? Number(num).toFixed(2) : "0.00";
@@ -327,10 +337,10 @@ export default {
       }
     },
     goBack() {
-      if (this.$route.query.id) {
+      if (this.$route.query.params) {
         this.$router.$avueRouter.closeTag(this.$route.fullPath);
         this.$router.push({
-          path: "/dealer/sales/index"
+          path: "/dealer/purchase/index"
         });
       }
       this.detailData = this.$options.data().detailData;

+ 14 - 2
src/views/dealer/purchaseContract/detail.vue

@@ -488,7 +488,7 @@ import {getDeptLazyTree,
   getGoods,} from "@/api/basicData/customerInquiry";
 import {selectGoodsNum} from "@/api/basicData/inventoryAccount"; // 库存查询
 import {getUserInfo} from "@/api/system/user"; //登录用户信息
-import {dataDetail, removeGoods, typeSave, dealerSubmit, historyPrice, itemDetail} from "@/api/dealer/purchase";
+import {dataDetail, removeGoods, typeSave, dealerSubmit, historyPrice, itemDetail} from "@/api/dealer/purchaseContract";
 import {
   isDiscount,
   isPercentage,
@@ -587,6 +587,18 @@ export default {
             ],
           },
           {
+            label: "平台代码",
+            prop: "purchaseRemark",
+            span: 8,
+            rules: [
+              {
+                required: true,
+                message: " ",
+                trigger: "blur"
+              }
+            ],
+          },
+          {
             label: "电话",
             prop: "corpTel",
             span: 8
@@ -882,7 +894,7 @@ export default {
           })
           this.$set(this.form, 'debitAmount', amount.toFixed(2));
           this.$set(this.form, 'amount', amount.toFixed(2));
-          this.form.billType = 'CG';
+          this.form.billType = 'CGHT';
           this.$set(this.form, 'itemsVOList', this.dataList);
           this.$set(this.form, 'orderFilesList', this.uploadData);
           this.btnLoading = true;

+ 1 - 1
src/views/dealer/purchaseContract/index.vue

@@ -94,7 +94,7 @@
 import option from './config/mainList.json';
 import detailPage from "./detail";
 import { gainUser } from "@/api/basicData/customerInquiry";
-import {getPurchaseList, deleteDetails, dataDetail} from "@/api/dealer/purchase";
+import {getPurchaseList, deleteDetails, dataDetail} from "@/api/dealer/purchaseContract";
 
 export default {
   name: "index",

+ 1 - 1
src/views/dealer/sales/index.vue

@@ -377,7 +377,7 @@ export default {
       }
     },
     goBack() {
-      if (this.$route.query.id) {
+      if (this.$route.query.id || this.$route.query.params) {
         this.$router.$avueRouter.closeTag(this.$route.fullPath);
         this.$router.push({
           path: "/dealer/sales/index"

+ 2 - 4
src/views/dealer/stock/config/mainList.json

@@ -22,8 +22,7 @@
   "searchSpan": 8,
   "showSummary": true,
   "summaryText": "合计",
-  "sumColumnList": [
-    {
+  "sumColumnList": [{
       "name": "balanceQuantity",
       "type": "sum",
       "decimals": 0
@@ -34,8 +33,7 @@
       "decimals": 0
     }
   ],
-  "column": [
-    {
+  "column": [{
       "label": "品号",
       "prop": "code",
       "search": true,

+ 189 - 4
src/views/dealer/stock/detailsPage.vue

@@ -12,9 +12,39 @@
       </div>
     </div>
     <div class="customer-main">
+      <container-title title="基础资料"></container-title>
+      <basic-container>
+        <avue-form :option="option" v-model="form"> </avue-form>
+      </basic-container>
       <container-title title="库存账明细"></container-title>
       <basic-container>
-        <avue-crud :option="option" :data="data"></avue-crud>
+        <avue-crud
+          ref="crud"
+          :option="optionList"
+          :data="dataList"
+          v-model="form"
+          :page.sync="page"
+          :search.sync="search"
+          @search-change="searchChange"
+          @current-change="currentChange"
+          @size-change="sizeChange"
+          @refresh-change="refreshChange"
+        >
+          <template slot="dateSearch">
+            <el-date-picker
+              v-model="search.date"
+              type="daterange"
+              align="right"
+              unlink-panels
+              range-separator="至"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期"
+              :picker-options="pickerOptions"
+            >
+            </el-date-picker>
+            <!-- <crop-select v-model="search.date" ></crop-select> -->
+          </template>
+        </avue-crud>
       </basic-container>
     </div>
   </div>
@@ -25,9 +55,77 @@ export default {
   name: "detailsPage",
   data() {
     return {
+      form: {},
+      search: {},
       option: {
+        menuBtn: false,
+        labelWidth: 80,
+        column: [
+          {
+            label: "商品编码",
+            prop: "a",
+            span: 6
+          },
+          {
+            label: "图号",
+            prop: "b",
+            span: 6
+          },
+          {
+            label: "仓库名称",
+            prop: "c",
+            span: 6
+          },
+          {
+            label: "商品名称",
+            prop: "d",
+            span: 6
+          },
+          {
+            label: "公司",
+            prop: "e",
+            span: 6
+          },
+          {
+            label: "商品车型",
+            prop: "f",
+            span: 6
+          },
+          {
+            label: "产地",
+            prop: "g",
+            span: 6
+          },
+          {
+            label: "本仓库存",
+            prop: "h",
+            span: 6
+          },
+          {
+            label: "商品类别",
+            prop: "i",
+            span: 6
+          },
+          {
+            label: "品牌",
+            prop: "j",
+            span: 6
+          },
+          {
+            label: "商品车型",
+            prop: "k",
+            span: 6
+          },
+          {
+            label: "库存数量",
+            prop: "l",
+            span: 6
+          }
+        ]
+      },
+      optionList: {
         searchShow: true,
-        searchMenuSpan: 18,
+        searchMenuSpan: 6,
         border: true,
         index: true,
         addBtn: false,
@@ -36,12 +134,26 @@ export default {
         menu: false,
         column: [
           {
+            label: "仓库名称",
+            prop: "a1",
+            search: true,
+            hide: true,
+            showColumn: false
+          },
+          {
             label: "日期",
-            prop: "a",
+            prop: "date",
             search: true,
             overHidden: true
           },
           {
+            label: "排序规则",
+            prop: "a2",
+            search: true,
+            hide: true,
+            showColumn: false
+          },
+          {
             label: "摘要",
             prop: "b",
             overHidden: true
@@ -134,7 +246,66 @@ export default {
           }
         ]
       },
-      data: []
+      dataList: [],
+      page: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0,
+        pageSizes: [10, 20, 30, 40, 50, 100, 200, 300, 400, 500]
+      },
+      pickerOptions: {
+        shortcuts: [
+          {
+            text: "今天",
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              picker.$emit("pick", [start, end]);
+            }
+          },
+          {
+            text: "昨天",
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(start.getTime() - 3600 * 1000 * 24);
+              end.setTime(end.getTime() - 3600 * 1000 * 24);
+              picker.$emit("pick", [start, end]);
+            }
+          },
+          {
+            text: "本月",
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(new Date(start.getFullYear(), start.getMonth(), 1));
+              end.setTime(new Date(end.getFullYear(), end.getMonth()+1, 0));
+              picker.$emit("pick", [start, end]);
+            }
+          },
+          {
+            text: "上月",
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(
+                new Date(start.getFullYear(), start.getMonth() - 1, 1)
+              );
+              end.setTime(new Date(end.getFullYear(), end.getMonth(), 0));
+              picker.$emit("pick", [start, end]);
+            }
+          },
+          {
+            text: "一年内",
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 365);
+              picker.$emit("pick", [start, end]);
+            }
+          }
+        ]
+      }
     };
   },
   props: {
@@ -144,6 +315,20 @@ export default {
   },
   async created() {},
   methods: {
+    //点击搜索按钮触发
+    searchChange(params, done) {
+      this.page.currentPage = 1;
+      this.onLoad(this.page, params);
+      done();
+    },
+    currentChange(val) {
+      this.page.currentPage = val;
+    },
+    sizeChange(val) {
+      this.page.currentPage = 1;
+      this.page.pageSize = val;
+    },
+    refreshChange() {},
     backToList() {
       this.$emit("goBack");
     }

+ 14 - 0
src/views/dealer/stock/index.vue

@@ -13,6 +13,20 @@
         @row-update="rowUpdate"
         :cell-style="cellStyle"
       >
+        <template slot-scope="{ row }" slot="code">
+          <span
+            style="color: #409EFF;cursor: pointer"
+            @click.stop="editOpen(row, 1)"
+            >{{ row.code }}
+          </span>
+        </template>
+        <template slot-scope="{ row }" slot="cname">
+          <span
+            style="color: #409EFF;cursor: pointer"
+            @click.stop="editOpen(row, 1)"
+            >{{ row.cname }}
+          </span>
+        </template>
         <template slot-scope="scope" slot="lockingQuantity">
           <span
             v-if="Number(scope.row.lockingQuantity) > 0"

+ 180 - 0
src/views/statisticAnalysis/collectLedger/detail.vue

@@ -0,0 +1,180 @@
+<template>
+  <div>
+    <div class="customer-head">
+      <div class="customer-back">
+        <el-button type="danger" style="border: none;background: none;color: red" icon="el-icon-arrow-left"
+                   @click="backToList">返回列表
+        </el-button>
+      </div>
+    </div>
+    <basic-container class="page-crad" style="margin-top: 30px">
+      <avue-crud
+        ref="crud"
+        :option="option"
+        :data="dataList"
+        :table-loading="loading"
+        :cell-style="cellStyle"
+        :key="crudIndex"
+      >
+        <template slot="menuLeft">
+          <el-button type="info" size="small" @click="outExport" icon="el-icon-download">导出</el-button>
+        </template>
+        <template slot="accSysNo" slot-scope="scope">
+          <span style="color: #409EFF;cursor: pointer" @click.stop="jumpPage(scope.row,scope.index)">{{ scope.row.accSysNo }}</span>
+        </template>
+      </avue-crud>
+    </basic-container>
+  </div>
+</template>
+
+<script>
+import {detail} from "@/api/statisticAnalysis/collectLedger";
+import { getToken } from "@/util/auth";
+
+export default {
+  name: "detail",
+  props: {
+    detailData: {
+      type: Object
+    },
+    tradeType: {
+      type: [Number, String]
+    }
+  },
+  data() {
+    return {
+      crudIndex: 0,
+      dataList: [],
+      loading: false,
+      option: {
+        searchShow: true,
+        align: "center",
+        searchSpan: 8,
+        border: true,
+        index: true,
+        addBtn: false,
+        viewBtn: false,
+        editBtn: false,
+        delBtn: false,
+        cellBtn: false,
+        cancelBtn: false,
+        refreshBtn: false,
+        showSummary: true,
+        summaryText: '合计',
+        sumColumnList: [
+          {
+            name: 'amount',
+            type: 'sum'
+          },
+          {
+            name: 'settlementAmount',
+            type: 'sum'
+          },
+          {
+            name: 'outstandingAmount',
+            type: 'sum'
+          },
+        ],
+        searchIcon: true,
+        searchIndex: 2,
+        menu: false,
+        column: [
+          {
+            label: "结算单位",
+            prop: "corpName",
+            overHidden: true,
+          },
+          {
+            label: "订单号",
+            prop: "accSysNo",
+            overHidden: true,
+          },
+          {
+            label: "业务类型",
+            prop: "billType",
+            overHidden: true,
+          },
+          {
+            label: "业务时间",
+            prop: "createTime",
+            overHidden: true,
+          },
+          {
+            label: "应收金额",
+            prop: "amount",
+            overHidden: true,
+          },
+          {
+            label: "实收金额",
+            prop: "settlementAmount",
+            overHidden: true,
+          },
+          {
+            label: "未收金额",
+            prop: "outstandingAmount",
+            overHidden: true,
+          },
+        ],
+      },
+    }
+  },
+  created() {
+    if (this.detailData.id) {
+      this.queryData(this.detailData.id);
+    }
+  },
+  methods: {
+    cellStyle() {
+      return "padding:0;height:40px;";
+    },
+    queryData(id) {
+      this.loading = true;
+      detail(id, 'd', this.tradeType).then(res => {
+        this.dataList = res.data.data.records;
+      }).finally(() => {
+        this.loading = false;
+        this.option.height = window.innerHeight - 180;
+        this.crudIndex++;
+      })
+    },
+    backToList() {
+      this.$emit("goBack");
+    },
+    //导出
+    outExport() {
+      this.$confirm('是否导出应收总账详情信息?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        window.open(
+          `/api/trade-finance/receivable/exportItem?${
+            this.website.tokenHeader
+          }=${getToken()}&dc=d&$tradeType=${this.tradeType}corpId=${this.detailData.id}`
+        );
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '已取消' //
+        });
+      })
+    },
+    // 跳转页面
+    jumpPage(row, index) {
+      if (this.tradeType == '' || this.tradeType == 'JXS') {
+        this.$router.$avueRouter.closeTag("/dealer/sales/index");
+        this.$router.push({
+          path: "/dealer/sales/index",
+          query: {
+            params: row.srcParentId
+          },
+        });
+      }
+    },
+  },
+}
+</script>
+
+<style scoped>
+
+</style>

+ 425 - 0
src/views/statisticAnalysis/collectLedger/index.vue

@@ -0,0 +1,425 @@
+<template>
+  <div>
+    <basic-container class="page-crad" v-show="show">
+      <avue-crud
+        ref="crud"
+        :option="option"
+        :data="dataList"
+        :page.sync="page"
+        :search.sync="search"
+        :cell-style="cellStyle"
+        @search-change="searchChange"
+        @current-change="currentChange"
+        @size-change="sizeChange"
+        @refresh-change="refreshChange"
+        @on-load="onLoad"
+        :table-loading="loading"
+        @saveColumn="saveColumn"
+        @resetColumn="resetColumn"
+        @search-criteria-switch="searchCriteriaSwitch"
+        @search-reset="searchReset"
+      >
+        <template slot="menuLeft">
+          <el-button
+            type="info"
+            icon="el-icon-printer"
+            size="small"
+            :loading="exportLoading"
+            @click.stop="statement"
+            v-if="false"
+          >报表打印</el-button>
+          <el-button type="info" size="small" @click="outExport" icon="el-icon-download">导出</el-button>
+        </template>
+        <template slot="corpNameSearch">
+          <crop-select
+            v-model="search.corpId"
+            corpType="KG"
+          ></crop-select>
+        </template>
+        <template slot="sizeSearch">
+          <el-select
+            v-model="search.size"
+            placeholder="请选择"
+          >
+            <el-option label="是" :value="1"></el-option>
+            <el-option label="否" :value="0"></el-option>
+          </el-select>
+        </template>
+        <template slot="corpName" slot-scope="scope">
+          <span style="color: #409EFF;cursor: pointer" @click.stop="beforeOpenPage(scope.row,scope.index)">{{ scope.row.corpName }}</span>
+        </template>
+      </avue-crud>
+    </basic-container>
+    <report-dialog
+      :switchDialog="switchDialog"
+      :searchValue="statementData"
+      :reportName="'经销商-可用库存表'"
+      @onClose="onClose()"
+    />
+    <detail
+      v-if="!show"
+      :detail-data="detailData"
+      :trade-type="tradeType"
+      @goBack="goBack"
+    ></detail>
+  </div>
+</template>
+
+<script>
+import { getToken } from "@/util/auth";
+import { getList } from "@/api/statisticAnalysis/collectLedger";
+import { micrometerFormat } from "@/util/validate";
+import _ from "lodash";
+import reportDialog from "@/components/report-dialog/main";
+import { gainUser } from "@/api/basicData/customerInquiry";
+import detail from "./detail";
+
+export default {
+  name: "index",
+  components: {
+    reportDialog,
+    detail
+  },
+  data() {
+    return {
+      exportLoading:false,
+      switchDialog:false,
+      statementData: {},
+      form: {},
+      search: {},
+      dataList: [],
+      loading: false,
+      detailData: {},
+      page: {
+        pageSize: 20,
+        currentPage: 1,
+        total: 0,
+        pageSizes: [10, 20, 30, 40, 50, 100, 200, 300, 400, 500]
+      },
+      option: {},
+      defaultOption: {
+        searchShow: true,
+        align: "center",
+        searchSpan: 8,
+        border: true,
+        index: true,
+        addBtn: false,
+        viewBtn: false,
+        editBtn: false,
+        delBtn: false,
+        showSummary: true,
+        summaryText: '合计',
+        sumColumnList: [
+          {
+            name: 'amount',
+            type: 'sum'
+          },
+          {
+            name: 'settlementAmount',
+            type: 'sum'
+          },
+          {
+            name: 'outstandingAmount',
+            type: 'sum'
+          },
+        ],
+        searchIcon: true,
+        searchIndex: 2,
+        menu: false,
+        column: [
+          {
+            label: "结算单位",
+            prop: "corpName",
+            search: true,
+            overHidden: true,
+          },
+          {
+            label: "业务区间",
+            prop: "accDate",
+            search: true,
+            type: 'date',
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd",
+            unlinkPanels: true,
+            searchRange: true,
+            overHidden: true,
+          },
+          // {
+          //   label: "是否显示金额为0",
+          //   prop: "size",
+          //   search: true,
+          //   overHidden: true,
+          //   hide: true,
+          //   showColumn: false
+          // },
+          {
+            label: "应收金额",
+            prop: "amount",
+            search: false,
+            overHidden: true,
+          },
+          {
+            label: "实收金额",
+            prop: "settlementAmount",
+            search: false,
+            overHidden: true,
+          },
+          {
+            label: "未收金额",
+            prop: "outstandingAmount",
+            search: false,
+            overHidden: true,
+          },
+          {
+            label: "开票金额",
+            prop: "invoiceAmount",
+            search: false,
+            overHidden: true,
+          },
+        ],
+      },
+      // 仓库配置
+      configurationWarehouse: {
+        multipleChoices: false,
+        multiple: false,
+        collapseTags: false,
+        placeholder: "请点击右边按钮选择",
+        dicData: [],
+      },
+      brandOption: [],
+      userList: [],
+      tradeType: '',
+      sysitemType: null,
+      show: true,
+    };
+  },
+  filters: {
+    decimalFormat(num) {
+      return num ? Number(num).toFixed(2) : "0.00";
+    }
+  },
+  async created() {
+    this.option = await this.getColumnData(this.getColumnName(137), this.defaultOption);
+    this.getWorkDicts('brand').then(res => {
+      this.brandOption = res.data.data;
+    })
+    gainUser().then(res => {
+      this.userList = res.data.data;
+    });
+    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: {
+    cellStyle() {
+      return "padding:0;height:40px;";
+    },
+    searchCriteriaSwitch(type) {
+      if (type) {
+        this.option.height = this.option.height - 46;
+      } else {
+        this.option.height = this.option.height + 46;
+      }
+      this.$refs.crud.getTableHeight();
+    },
+    searchReset() {
+    },
+    //点击搜索按钮触发
+    searchChange(params, done) {
+      this.page.currentPage = 1;
+      this.onLoad(this.page, params);
+      done();
+    },
+    refreshChange() {
+      this.onLoad(this.page, this.search);
+    },
+    currentChange(val) {
+      this.page.currentPage = val;
+    },
+    sizeChange(val) {
+      this.page.currentPage = 1;
+      this.page.pageSize = val;
+    },
+    onLoad(page, params) {
+      this.sysitemType = localStorage.getItem('sysitemType');
+      if (this.sysitemType == 999) {
+        this.tradeType = ''
+      } else if (this.sysitemType == 1) {
+        this.tradeType = 'XX'
+      } else if (this.sysitemType == 2) {
+        this.tradeType = 'GN'
+      } else if (this.sysitemType == 3) {
+        this.tradeType = 'JK'
+      } else if (this.sysitemType == 4) {
+        this.tradeType = 'CK'
+      } else if (this.sysitemType == 5) {
+        this.tradeType = 'SW'
+      } else if (this.sysitemType == 6) {
+        this.tradeType = 'JXS'
+      } else if (this.sysitemType == 7) {
+        this.tradeType = 'LY'
+      }
+      this.loading = true;
+      this.dataList.forEach(item => {
+        this.$refs.crud.toggleRowExpansion(item, false);
+      });
+      let queryParams = Object.assign({tradeType: this.tradeType,dc: 'd',}, params);
+      if (queryParams.accDate && queryParams.accDate.length > 0) {
+        queryParams = {
+          ...queryParams,
+          accDateStart: queryParams.accDate[0] + ' 00:00:00',
+          accDateEnd: queryParams.accDate[1] + ' 23:59:59',
+        }
+        delete queryParams.accDate;
+      }
+      getList(
+        page.currentPage,
+        page.pageSize,
+        queryParams
+      )
+        .then(res => {
+          if (res.data.data.records) {
+            res.data.data.records.forEach(e => {
+              e.itemLoading = true;
+            });
+          }
+          this.dataList = res.data.data.records ? res.data.data.records : [];
+          this.page.total = res.data.data.total;
+          if (this.page.total) {
+            this.option.height = window.innerHeight - 230;
+          }
+        })
+        .finally(() => {
+          this.loading = false;
+        });
+    },
+    editOpen(row) {
+      if (row.billType == "BJ") {
+        this.$router.push({
+          path: "/exportTrade/customerInquiry/index",
+          query: {
+            id: row.id
+          }
+        });
+      } else {
+        this.$router.push({
+          path: "/exportTrade/salesContract/index",
+          query: {
+            id: row.id
+          }
+        });
+      }
+    },
+    statement() {
+      this.statementData = {...this.search};
+      if (this.statementData.accDate && this.statementData.accDate.length > 0) {
+        this.statementData.accDateStart = this.statementData.accDate[0]+ " " + "00:00:00"
+        this.statementData.accDateEnd = this.statementData.accDate[1]+ " " + "23:59:59"
+        delete this.statementData.accDate
+      }
+      this.switchDialog = !this.switchDialog;
+    },
+    onClose(val) {
+      this.switchDialog = val;
+    },
+    //列保存触发
+    async saveColumn() {
+      const inSave = await this.saveColumnData(
+        this.getColumnName(137),
+        this.option
+      );
+      if (inSave) {
+        this.$nextTick(() => {
+          this.$refs.crud.doLayout();
+        });
+        this.$message.success("保存成功");
+        //关闭窗口
+        this.$refs.crud.$refs.dialogColumn.columnBox = false;
+      }
+    },
+    async resetColumn() {
+      this.option = this.defaultOption;
+      const inSave = await this.delColumnData(this.getColumnName(137), this.defaultOption);
+      if (inSave) {
+        this.$nextTick(() => {
+          this.$refs.crud.doLayout()
+        })
+        this.$message.success("重置成功");
+        //关闭窗口
+        this.$refs.crud.$refs.dialogColumn.columnBox = false;
+      }
+    },
+    // 跳转到详情
+    beforeOpenPage(row, index) {
+      this.detailData = {
+        id: row.corpId
+      };
+      this.show = false;
+    },
+    goBack() {
+      this.detailData=this.$options.data().detailData
+      if (JSON.stringify(this.$route.query) != "{}") {
+        this.$router.$avueRouter.closeTag();
+        this.$router.push({
+          path: "/statisticAnalysis/collectLedger/index"
+        });
+      }
+      this.dataList.forEach(item => {
+        this.$refs.crud.toggleRowExpansion(item, false)
+      })
+      this.show = true;
+      this.onLoad(this.page, this.search);
+    },
+    outExport() {
+      if (!this.search.corpId) this.$set(this.search, 'corpId', '');
+      if (this.search.accDate && this.search.accDate.length > 0) {
+        this.search = {
+          ...this.search,
+          accDateStart: this.search.accDate[0] + ' 00:00:00',
+          accDateEnd: this.search.accDate[1] + ' 23:59:59',
+        }
+      } else {
+        this.search = {
+          ...this.search,
+          accDateStart: '',
+          accDateEnd: '',
+        }
+      }
+      this.$confirm('是否导出应收总账信息?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        window.open(
+          `/api/trade-finance/receivable/export?${
+            this.website.tokenHeader
+          }=${getToken()}&dc=d&tradeType=${this.tradeType}&corpId=${this.search.corpId}&accDateStart=${this.search.accDateStart}&accDateEnd=${this.search.accDateEnd}`
+        );
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '已取消' //
+        });
+      })
+    },
+  }
+};
+</script>
+
+<style scoped>
+.page-crad ::v-deep .basic-container__card {
+  height: 94.2vh;
+}
+::v-deep .el-table__expanded-cell[class*="cell"] {
+  padding: 0px;
+}
+.itemTable ::v-deep .el-table {
+  width: 100%;
+}
+</style>

+ 180 - 0
src/views/statisticAnalysis/paymentLedger/detail.vue

@@ -0,0 +1,180 @@
+<template>
+  <div>
+    <div class="customer-head">
+      <div class="customer-back">
+        <el-button type="danger" style="border: none;background: none;color: red" icon="el-icon-arrow-left"
+                   @click="backToList">返回列表
+        </el-button>
+      </div>
+    </div>
+    <basic-container class="page-crad" style="margin-top: 30px">
+      <avue-crud
+        ref="crud"
+        :option="option"
+        :data="dataList"
+        :table-loading="loading"
+        :cell-style="cellStyle"
+        :key="crudIndex"
+      >
+        <template slot="menuLeft">
+          <el-button type="info" size="small" @click="outExport" icon="el-icon-download">导出</el-button>
+        </template>
+        <template slot="accSysNo" slot-scope="scope">
+          <span style="color: #409EFF;cursor: pointer" @click.stop="jumpPage(scope.row,scope.index)">{{ scope.row.accSysNo }}</span>
+        </template>
+      </avue-crud>
+    </basic-container>
+  </div>
+</template>
+
+<script>
+import {detail} from "@/api/statisticAnalysis/paymentLedger";
+import { getToken } from "@/util/auth";
+
+export default {
+  name: "detail",
+  props: {
+    detailData: {
+      type: Object
+    },
+    tradeType: {
+      type: [Number, String]
+    }
+  },
+  data() {
+    return {
+      crudIndex: 0,
+      dataList: [],
+      loading: false,
+      option: {
+        searchShow: true,
+        align: "center",
+        searchSpan: 8,
+        border: true,
+        index: true,
+        addBtn: false,
+        viewBtn: false,
+        editBtn: false,
+        delBtn: false,
+        cellBtn: false,
+        cancelBtn: false,
+        refreshBtn: false,
+        showSummary: true,
+        summaryText: '合计',
+        sumColumnList: [
+          {
+            name: 'amount',
+            type: 'sum'
+          },
+          {
+            name: 'settlementAmount',
+            type: 'sum'
+          },
+          {
+            name: 'outstandingAmount',
+            type: 'sum'
+          },
+        ],
+        searchIcon: true,
+        searchIndex: 2,
+        menu: false,
+        column: [
+          {
+            label: "结算单位",
+            prop: "corpName",
+            overHidden: true,
+          },
+          {
+            label: "订单号",
+            prop: "accSysNo",
+            overHidden: true,
+          },
+          {
+            label: "业务类型",
+            prop: "billType",
+            overHidden: true,
+          },
+          {
+            label: "业务时间",
+            prop: "createTime",
+            overHidden: true,
+          },
+          {
+            label: "应付金额",
+            prop: "amount",
+            overHidden: true,
+          },
+          {
+            label: "实付金额",
+            prop: "settlementAmount",
+            overHidden: true,
+          },
+          {
+            label: "未付金额",
+            prop: "outstandingAmount",
+            overHidden: true,
+          },
+        ],
+      },
+    }
+  },
+  created() {
+    if (this.detailData.id) {
+      this.queryData(this.detailData.id);
+    }
+  },
+  methods: {
+    cellStyle() {
+      return "padding:0;height:40px;";
+    },
+    queryData(id) {
+      this.loading = true;
+      detail(id, 'c', this.tradeType).then(res => {
+        this.dataList = res.data.data.records;
+      }).finally(() => {
+        this.loading = false;
+        this.option.height = window.innerHeight - 180;
+        this.crudIndex++;
+      })
+    },
+    backToList() {
+      this.$emit("goBack");
+    },
+    //导出
+    outExport() {
+      this.$confirm('是否导出应付总账详情信息?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        window.open(
+          `/api/trade-finance/dealWith/exportItem?${
+            this.website.tokenHeader
+          }=${getToken()}&dc=c&$tradeType=${this.tradeType}&corpId=${this.detailData.id}`
+        );
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '已取消' //
+        });
+      })
+    },
+    // 跳转页面
+    jumpPage(row, index) {
+      if (this.tradeType == '' || this.tradeType == 'JXS') {
+        this.$router.$avueRouter.closeTag("/dealer/purchase/index");
+        this.$router.push({
+          path: "/dealer/purchase/index",
+          query: {
+            params: row.srcParentId
+          },
+        });
+      }
+    },
+  },
+}
+</script>
+
+<style scoped>
+
+</style>

+ 421 - 0
src/views/statisticAnalysis/paymentLedger/index.vue

@@ -0,0 +1,421 @@
+<template>
+  <div>
+    <basic-container class="page-crad" v-show="show">
+      <avue-crud
+        ref="crud"
+        :option="option"
+        :data="dataList"
+        :page.sync="page"
+        :search.sync="search"
+        :cell-style="cellStyle"
+        @search-change="searchChange"
+        @current-change="currentChange"
+        @size-change="sizeChange"
+        @refresh-change="refreshChange"
+        @on-load="onLoad"
+        :table-loading="loading"
+        @saveColumn="saveColumn"
+        @resetColumn="resetColumn"
+        @search-criteria-switch="searchCriteriaSwitch"
+        @search-reset="searchReset"
+      >
+        <template slot="menuLeft">
+          <el-button
+            type="info"
+            icon="el-icon-printer"
+            size="small"
+            :loading="exportLoading"
+            @click.stop="statement"
+            v-if="false"
+          >报表打印
+          </el-button>
+          <el-button type="info" size="small" @click="outExport" icon="el-icon-download">导出</el-button>
+        </template>
+        <template slot="corpNameSearch">
+          <crop-select
+            v-model="search.corpId"
+            corpType="KG"
+          ></crop-select>
+        </template>
+        <template slot="sizeSearch">
+          <el-select
+            v-model="search.size"
+            placeholder="请选择"
+          >
+            <el-option label="是" :value="1"></el-option>
+            <el-option label="否" :value="0"></el-option>
+          </el-select>
+        </template>
+        <template slot="corpName" slot-scope="scope">
+          <span style="color: #409EFF;cursor: pointer" @click.stop="beforeOpenPage(scope.row,scope.index)">{{ scope.row.corpName }}</span>
+        </template>
+      </avue-crud>
+    </basic-container>
+    <report-dialog
+      :switchDialog="switchDialog"
+      :searchValue="statementData"
+      :reportName="'经销商-可用库存表'"
+      @onClose="onClose()"
+    />
+    <detail
+      v-if="!show"
+      :detail-data="detailData"
+      :trade-type="tradeType"
+      @goBack="goBack"
+    ></detail>
+  </div>
+</template>
+
+<script>
+import { getToken } from "@/util/auth";
+import { getList } from "@/api/statisticAnalysis/paymentLedger";
+import { micrometerFormat } from "@/util/validate";
+import _ from "lodash";
+import reportDialog from "@/components/report-dialog/main";
+import { gainUser } from "@/api/basicData/customerInquiry";
+import detail from "./detail";
+
+export default {
+  name: "index",
+  components: {
+    reportDialog,
+    detail
+  },
+  data() {
+    return {
+      exportLoading:false,
+      switchDialog:false,
+      statementData: {},
+      form: {},
+      search: {},
+      dataList: [],
+      loading: false,
+      detailData: {},
+      page: {
+        pageSize: 20,
+        currentPage: 1,
+        total: 0,
+        pageSizes: [10, 20, 30, 40, 50, 100, 200, 300, 400, 500]
+      },
+      option: {},
+      defaultOption: {
+        searchShow: true,
+        align: "center",
+        searchSpan: 8,
+        border: true,
+        index: true,
+        addBtn: false,
+        viewBtn: false,
+        editBtn: false,
+        delBtn: false,
+        showSummary: true,
+        summaryText: '合计',
+        sumColumnList: [
+          {
+            name: 'amount',
+            type: 'sum'
+          },
+          {
+            name: 'settlementAmount',
+            type: 'sum'
+          },
+          {
+            name: 'outstandingAmount',
+            type: 'sum'
+          },
+        ],
+        searchIcon: true,
+        searchIndex: 2,
+        menu: false,
+        column: [
+          {
+            label: "结算单位",
+            prop: "corpName",
+            search: true,
+            overHidden: true,
+          },
+          {
+            label: "业务区间",
+            prop: "accDate",
+            search: true,
+            type: 'date',
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd",
+            unlinkPanels: true,
+            searchRange: true,
+            overHidden: true,
+          },
+          // {
+          //   label: "是否显示金额为0",
+          //   prop: "size",
+          //   search: true,
+          //   overHidden: true,
+          //   hide: true,
+          //   showColumn: false
+          // },
+          {
+            label: "应付金额",
+            prop: "amount",
+            search: false,
+            overHidden: true,
+          },
+          {
+            label: "实付金额",
+            prop: "settlementAmount",
+            search: false,
+            overHidden: true,
+          },
+          {
+            label: "未付金额",
+            prop: "outstandingAmount",
+            search: false,
+            overHidden: true,
+          },
+        ],
+      },
+      // 仓库配置
+      configurationWarehouse: {
+        multipleChoices: false,
+        multiple: false,
+        collapseTags: false,
+        placeholder: "请点击右边按钮选择",
+        dicData: [],
+      },
+      brandOption: [],
+      userList: [],
+      tradeType: '',
+      sysitemType: null,
+      show: true,
+    };
+  },
+  filters: {
+    decimalFormat(num) {
+      return num ? Number(num).toFixed(2) : "0.00";
+    }
+  },
+  async created() {
+    this.option = await this.getColumnData(this.getColumnName(138), this.defaultOption);
+    this.getWorkDicts('brand').then(res => {
+      this.brandOption = res.data.data;
+    })
+    gainUser().then(res => {
+      this.userList = res.data.data;
+    });
+
+    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: {
+    cellStyle() {
+      return "padding:0;height:40px;";
+    },
+    searchReset() {
+    },
+    searchCriteriaSwitch(type) {
+      if (type) {
+        this.option.height = this.option.height - 46;
+      } else {
+        this.option.height = this.option.height + 46;
+      }
+      this.$refs.crud.getTableHeight();
+    },
+    //点击搜索按钮触发
+    searchChange(params, done) {
+      this.page.currentPage = 1;
+      this.onLoad(this.page, params);
+      done();
+    },
+    refreshChange() {
+      this.onLoad(this.page, this.search);
+    },
+    currentChange(val) {
+      this.page.currentPage = val;
+    },
+    sizeChange(val) {
+      this.page.currentPage = 1;
+      this.page.pageSize = val;
+    },
+    onLoad(page, params) {
+      this.sysitemType = localStorage.getItem('sysitemType');
+      if (this.sysitemType == 999) {
+        this.tradeType = ''
+      } else if (this.sysitemType == 1) {
+        this.tradeType = 'XX'
+      } else if (this.sysitemType == 2) {
+        this.tradeType = 'GN'
+      } else if (this.sysitemType == 3) {
+        this.tradeType = 'JK'
+      } else if (this.sysitemType == 4) {
+        this.tradeType = 'CK'
+      } else if (this.sysitemType == 5) {
+        this.tradeType = 'SW'
+      } else if (this.sysitemType == 6) {
+        this.tradeType = 'JXS'
+      } else if (this.sysitemType == 7) {
+        this.tradeType = 'LY'
+      }
+      this.loading = true;
+      this.dataList.forEach(item => {
+        this.$refs.crud.toggleRowExpansion(item, false);
+      });
+      let queryParams = Object.assign({tradeType: this.tradeType,dc: 'c',}, params);
+      if (queryParams.accDate && queryParams.accDate.length > 0) {
+        queryParams = {
+          ...queryParams,
+          accDateStart: queryParams.accDate[0] + ' 00:00:00',
+          accDateEnd: queryParams.accDate[1] + ' 23:59:59',
+        }
+        delete queryParams.accDate;
+      }
+      getList(
+        page.currentPage,
+        page.pageSize,
+        queryParams
+      )
+        .then(res => {
+          if (res.data.data.records) {
+            res.data.data.records.forEach(e => {
+              e.itemLoading = true;
+            });
+          }
+          this.dataList = res.data.data.records ? res.data.data.records : [];
+          this.page.total = res.data.data.total;
+          if (this.page.total) {
+            this.option.height = window.innerHeight - 230;
+          }
+        })
+        .finally(() => {
+          this.loading = false;
+        });
+    },
+    editOpen(row) {
+      if (row.billType == "BJ") {
+        this.$router.push({
+          path: "/exportTrade/customerInquiry/index",
+          query: {
+            id: row.id
+          }
+        });
+      } else {
+        this.$router.push({
+          path: "/exportTrade/salesContract/index",
+          query: {
+            id: row.id
+          }
+        });
+      }
+    },
+    statement() {
+      this.statementData = {...this.search};
+      if (this.statementData.accDate && this.statementData.accDate.length > 0) {
+        this.statementData.accDateStart = this.statementData.accDate[0]+ " " + "00:00:00"
+        this.statementData.accDateEnd = this.statementData.accDate[1]+ " " + "23:59:59"
+        delete this.statementData.accDate
+      }
+      this.switchDialog = !this.switchDialog;
+    },
+    onClose(val) {
+      this.switchDialog = val;
+    },
+    //列保存触发
+    async saveColumn() {
+      const inSave = await this.saveColumnData(
+        this.getColumnName(138),
+        this.option
+      );
+      if (inSave) {
+        this.$nextTick(() => {
+          this.$refs.crud.doLayout();
+        });
+        this.$message.success("保存成功");
+        //关闭窗口
+        this.$refs.crud.$refs.dialogColumn.columnBox = false;
+      }
+    },
+    async resetColumn() {
+      this.option = this.defaultOption;
+      const inSave = await this.delColumnData(this.getColumnName(138), this.defaultOption);
+      if (inSave) {
+        this.$nextTick(() => {
+          this.$refs.crud.doLayout()
+        })
+        this.$message.success("重置成功");
+        //关闭窗口
+        this.$refs.crud.$refs.dialogColumn.columnBox = false;
+      }
+    },
+    // 跳转到详情
+    beforeOpenPage(row, index) {
+      this.detailData = {
+        id: row.corpId
+      };
+      this.show = false;
+    },
+    goBack() {
+      this.detailData=this.$options.data().detailData
+      if (JSON.stringify(this.$route.query) != "{}") {
+        this.$router.$avueRouter.closeTag();
+        this.$router.push({
+          path: "/statisticAnalysis/collectLedger/index"
+        });
+      }
+      this.dataList.forEach(item => {
+        this.$refs.crud.toggleRowExpansion(item, false)
+      })
+      this.show = true;
+      this.onLoad(this.page, this.search);
+    },
+    outExport() {
+      if (!this.search.corpId) this.$set(this.search, 'corpId', '');
+      if (this.search.accDate && this.search.accDate.length > 0) {
+        this.search = {
+          ...this.search,
+          accDateStart: this.search.accDate[0] + ' 00:00:00',
+          accDateEnd: this.search.accDate[1] + ' 23:59:59',
+        }
+      } else {
+        this.search = {
+          ...this.search,
+          accDateStart: '',
+          accDateEnd: '',
+        }
+      }
+      this.$confirm('是否导出应付总账信息?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        window.open(
+          `/api/trade-finance/dealWith/export?${
+            this.website.tokenHeader
+          }=${getToken()}&dc=c&tradeType=${this.tradeType}&corpId=${this.search.corpId}&accDateStart=${this.search.accDateStart}&accDateEnd=${this.search.accDateEnd}`
+        );
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '已取消' //
+        });
+      })
+    },
+  }
+};
+</script>
+
+<style scoped>
+.page-crad ::v-deep .basic-container__card {
+  height: 94.2vh;
+}
+::v-deep .el-table__expanded-cell[class*="cell"] {
+  padding: 0px;
+}
+.itemTable ::v-deep .el-table {
+  width: 100%;
+}
+</style>

+ 202 - 0
src/views/statisticAnalysis/profitLedger/detail.vue

@@ -0,0 +1,202 @@
+<template>
+  <div>
+    <div class="customer-head">
+      <div class="customer-back">
+        <el-button type="danger" style="border: none;background: none;color: red" icon="el-icon-arrow-left"
+                   @click="backToList">返回列表
+        </el-button>
+      </div>
+    </div>
+    <basic-container class="page-crad" style="margin-top: 30px">
+      <avue-crud
+        ref="crud"
+        :option="option"
+        :data="dataList"
+        :table-loading="loading"
+        :cell-style="cellStyle"
+        :key="crudIndex"
+      >
+        <template slot="menuLeft">
+          <el-button type="info" size="small" @click="outExport" icon="el-icon-download">导出</el-button>
+        </template>
+        <template slot="accSysNo" slot-scope="scope">
+          <span style="color: #409EFF;cursor: pointer" @click.stop="jumpPage(scope.row,scope.index)">{{ scope.row.accSysNo }}</span>
+        </template>
+      </avue-crud>
+    </basic-container>
+  </div>
+</template>
+
+<script>
+import {detail} from "@/api/statisticAnalysis/profitLedger";
+import { getToken } from "@/util/auth";
+
+export default {
+  name: "detail",
+  props: {
+    detailData: {
+      type: Object
+    },
+    tradeType: {
+      type: [Number, String]
+    }
+  },
+  data() {
+    return {
+      crudIndex: 0,
+      dataList: [],
+      loading: false,
+      option: {
+        searchShow: true,
+        align: "center",
+        searchSpan: 8,
+        border: true,
+        index: true,
+        addBtn: false,
+        viewBtn: false,
+        editBtn: false,
+        delBtn: false,
+        cellBtn: false,
+        cancelBtn: false,
+        refreshBtn: false,
+        showSummary: true,
+        summaryText: '合计',
+        sumColumnList: [
+          {
+            name: 'amount',
+            type: 'sum'
+          },
+          {
+            name: 'settlementAmount',
+            type: 'sum'
+          },
+          {
+            name: 'outstandingAmount',
+            type: 'sum'
+          },
+        ],
+        searchIcon: true,
+        searchIndex: 2,
+        menu: false,
+        column: [
+          {
+            label: "单据来源",
+            prop: "billType",
+            overHidden: true,
+          },
+          {
+            label: "结算单位",
+            prop: "corpName",
+            overHidden: true,
+          },
+          {
+            label: "订单号",
+            prop: "accSysNo",
+            overHidden: true,
+          },
+          {
+            label: "费用名称",
+            prop: "itemName",
+            overHidden: true,
+          },
+          {
+            label: "单价",
+            prop: "price",
+            overHidden: true,
+          },
+          {
+            label: "账单金额",
+            prop: "amount",
+            overHidden: true,
+          },
+          {
+            label: "结算金额",
+            prop: "settlementAmount",
+            overHidden: true,
+          },
+          {
+            label: "币别",
+            prop: "currency",
+            overHidden: true,
+          },
+          {
+            label: "汇率",
+            prop: "exchangeRate",
+            overHidden: true,
+          },
+        ],
+      },
+    }
+  },
+  created() {
+    if (this.detailData.id) {
+      this.queryData(this.detailData.id);
+    }
+  },
+  methods: {
+    cellStyle() {
+      return "padding:0;height:40px;";
+    },
+    queryData(id) {
+      this.loading = true;
+      detail(id, this.tradeType).then(res => {
+        this.dataList = res.data.data.records;
+      }).finally(() => {
+        this.loading = false;
+        this.option.height = window.innerHeight - 180;
+        this.crudIndex++;
+      })
+    },
+    backToList() {
+      this.$emit("goBack");
+    },
+    //导出
+    outExport() {
+      this.$confirm('是否导出应付总账详情信息?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        window.open(
+          `/api/trade-finance/profit/exportItem?${
+            this.website.tokenHeader
+          }=${getToken()}&$tradeType=${this.tradeType}&corpId=${this.detailData.id}`
+        );
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '已取消' //
+        });
+      })
+    },
+    // 跳转页面
+    jumpPage(row, index) {
+      if (row.billType == '申请') {
+        if (this.tradeType == '' || this.tradeType == 'JXS') {
+          this.$router.$avueRouter.closeTag("/dealer/purchase/index");
+          this.$router.push({
+            path: "/dealer/purchase/index",
+            query: {
+              params: row.srcParentId
+            },
+          });
+        }
+      } else if (row.billType == '收费') {
+        if (this.tradeType == '' || this.tradeType == 'JXS') {
+          this.$router.$avueRouter.closeTag("/dealer/sales/index");
+          this.$router.push({
+            path: "/dealer/sales/index",
+            query: {
+              params: row.srcParentId
+            },
+          });
+        }
+      }
+    },
+  },
+}
+</script>
+
+<style scoped>
+
+</style>

+ 414 - 0
src/views/statisticAnalysis/profitLedger/index.vue

@@ -0,0 +1,414 @@
+<template>
+  <div>
+    <basic-container class="page-crad" v-show="show">
+      <avue-crud
+        ref="crud"
+        :option="option"
+        :data="dataList"
+        :page.sync="page"
+        :search.sync="search"
+        :cell-style="cellStyle"
+        @search-change="searchChange"
+        @current-change="currentChange"
+        @size-change="sizeChange"
+        @refresh-change="refreshChange"
+        @on-load="onLoad"
+        :table-loading="loading"
+        @saveColumn="saveColumn"
+        @resetColumn="resetColumn"
+        @search-criteria-switch="searchCriteriaSwitch"
+        @search-reset="searchReset"
+      >
+        <template slot="menuLeft">
+          <el-button
+            type="info"
+            icon="el-icon-printer"
+            size="small"
+            :loading="exportLoading"
+            @click.stop="statement"
+            v-if="false"
+          >报表打印
+          </el-button>
+          <el-button type="info" size="small" @click="outExport" icon="el-icon-download">导出</el-button>
+        </template>
+        <template slot="corpNameSearch">
+          <crop-select
+            v-model="search.corpId"
+            corpType="KG"
+          ></crop-select>
+        </template>
+        <template slot="sizeSearch">
+          <el-select
+            v-model="search.size"
+            placeholder="请选择"
+          >
+            <el-option label="是" :value="1"></el-option>
+            <el-option label="否" :value="0"></el-option>
+          </el-select>
+        </template>
+        <template slot="corpName" slot-scope="scope">
+          <span style="color: #409EFF;cursor: pointer" @click.stop="beforeOpenPage(scope.row,scope.index)">{{ scope.row.corpName }}</span>
+        </template>
+      </avue-crud>
+    </basic-container>
+    <report-dialog
+      :switchDialog="switchDialog"
+      :searchValue="statementData"
+      :reportName="'经销商-可用库存表'"
+      @onClose="onClose()"
+    />
+    <detail
+      v-if="!show"
+      :detail-data="detailData"
+      :trade-type="tradeType"
+      @goBack="goBack"
+    ></detail>
+  </div>
+</template>
+
+<script>
+import { getToken } from "@/util/auth";
+import { getList } from "@/api/statisticAnalysis/profitLedger";
+import { micrometerFormat } from "@/util/validate";
+import _ from "lodash";
+import reportDialog from "@/components/report-dialog/main";
+import { gainUser } from "@/api/basicData/customerInquiry";
+import detail from "./detail";
+
+export default {
+  name: "index",
+  components: {
+    reportDialog,
+    detail
+  },
+  data() {
+    return {
+      exportLoading:false,
+      switchDialog:false,
+      statementData: {},
+      form: {},
+      search: {},
+      dataList: [],
+      loading: false,
+      detailData: {},
+      page: {
+        pageSize: 20,
+        currentPage: 1,
+        total: 0,
+        pageSizes: [10, 20, 30, 40, 50, 100, 200, 300, 400, 500]
+      },
+      option: {},
+      defaultOption: {
+        searchShow: true,
+        align: "center",
+        searchSpan: 8,
+        searchMenuSpan: 8,
+        border: true,
+        index: true,
+        addBtn: false,
+        viewBtn: false,
+        editBtn: false,
+        delBtn: false,
+        showSummary: true,
+        summaryText: '合计',
+        sumColumnList: [
+          {
+            name: 'amount',
+            type: 'sum'
+          },
+          {
+            name: 'handleAmount',
+            type: 'sum'
+          },
+          {
+            name: 'profitAmount',
+            type: 'sum'
+          },
+        ],
+        searchIcon: true,
+        searchIndex: 2,
+        menu: false,
+        column: [
+          {
+            label: "结算单位",
+            prop: "corpName",
+            search: true,
+            overHidden: true,
+          },
+          {
+            label: "业务区间",
+            prop: "accDate",
+            search: true,
+            type: 'date',
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd",
+            unlinkPanels: true,
+            searchRange: true,
+            overHidden: true,
+          },
+          {
+            label: "应收金额",
+            prop: "amount",
+            search: false,
+            overHidden: true,
+          },
+          {
+            label: "应付金额",
+            prop: "handleAmount",
+            search: false,
+            overHidden: true,
+          },
+          {
+            label: "利润金额",
+            prop: "profitAmount",
+            search: false,
+            overHidden: true,
+          },
+        ],
+      },
+      // 仓库配置
+      configurationWarehouse: {
+        multipleChoices: false,
+        multiple: false,
+        collapseTags: false,
+        placeholder: "请点击右边按钮选择",
+        dicData: [],
+      },
+      brandOption: [],
+      userList: [],
+      tradeType: '',
+      sysitemType: null,
+      show: true,
+    };
+  },
+  filters: {
+    decimalFormat(num) {
+      return num ? Number(num).toFixed(2) : "0.00";
+    }
+  },
+  async created() {
+    this.option = await this.getColumnData(this.getColumnName(139), this.defaultOption);
+    this.getWorkDicts('brand').then(res => {
+      this.brandOption = res.data.data;
+    })
+    gainUser().then(res => {
+      this.userList = res.data.data;
+    });
+
+    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: {
+    cellStyle() {
+      return "padding:0;height:40px;";
+    },
+    searchReset() {
+    },
+    searchCriteriaSwitch(type) {
+      if (type) {
+        this.option.height = this.option.height - 46;
+      } else {
+        this.option.height = this.option.height + 46;
+      }
+      this.$refs.crud.getTableHeight();
+    },
+    //点击搜索按钮触发
+    searchChange(params, done) {
+      this.page.currentPage = 1;
+      this.onLoad(this.page, params);
+      done();
+    },
+    refreshChange() {
+      this.onLoad(this.page, this.search);
+    },
+    currentChange(val) {
+      this.page.currentPage = val;
+    },
+    sizeChange(val) {
+      this.page.currentPage = 1;
+      this.page.pageSize = val;
+    },
+    onLoad(page, params) {
+      this.sysitemType = localStorage.getItem('sysitemType');
+      if (this.sysitemType == 999) {
+        this.tradeType = ''
+      } else if (this.sysitemType == 1) {
+        this.tradeType = 'XX'
+      } else if (this.sysitemType == 2) {
+        this.tradeType = 'GN'
+      } else if (this.sysitemType == 3) {
+        this.tradeType = 'JK'
+      } else if (this.sysitemType == 4) {
+        this.tradeType = 'CK'
+      } else if (this.sysitemType == 5) {
+        this.tradeType = 'SW'
+      } else if (this.sysitemType == 6) {
+        this.tradeType = 'JXS'
+      } else if (this.sysitemType == 7) {
+        this.tradeType = 'LY'
+      }
+      this.loading = true;
+      this.dataList.forEach(item => {
+        this.$refs.crud.toggleRowExpansion(item, false);
+      });
+      let queryParams = Object.assign({tradeType: this.tradeType}, params);
+      if (queryParams.accDate && queryParams.accDate.length > 0) {
+        queryParams = {
+          ...queryParams,
+          accDateStart: queryParams.accDate[0] + ' 00:00:00',
+          accDateEnd: queryParams.accDate[1] + ' 23:59:59',
+        }
+        delete queryParams.accDate;
+      }
+      getList(
+        page.currentPage,
+        page.pageSize,
+        queryParams
+      )
+        .then(res => {
+          if (res.data.data.records) {
+            res.data.data.records.forEach(e => {
+              e.itemLoading = true;
+            });
+          }
+          this.dataList = res.data.data.records ? res.data.data.records : [];
+          this.page.total = res.data.data.total;
+          if (this.page.total) {
+            this.option.height = window.innerHeight - 230;
+          }
+        })
+        .finally(() => {
+          this.loading = false;
+        });
+    },
+    editOpen(row) {
+      if (row.billType == "BJ") {
+        this.$router.push({
+          path: "/exportTrade/customerInquiry/index",
+          query: {
+            id: row.id
+          }
+        });
+      } else {
+        this.$router.push({
+          path: "/exportTrade/salesContract/index",
+          query: {
+            id: row.id
+          }
+        });
+      }
+    },
+    statement() {
+      this.statementData = {...this.search};
+      if (this.statementData.accDate && this.statementData.accDate.length > 0) {
+        this.statementData.accDateStart = this.statementData.accDate[0]+ " " + "00:00:00"
+        this.statementData.accDateEnd = this.statementData.accDate[1]+ " " + "23:59:59"
+        delete this.statementData.accDate
+      }
+      this.switchDialog = !this.switchDialog;
+    },
+    onClose(val) {
+      this.switchDialog = val;
+    },
+    //列保存触发
+    async saveColumn() {
+      const inSave = await this.saveColumnData(
+        this.getColumnName(139),
+        this.option
+      );
+      if (inSave) {
+        this.$nextTick(() => {
+          this.$refs.crud.doLayout();
+        });
+        this.$message.success("保存成功");
+        //关闭窗口
+        this.$refs.crud.$refs.dialogColumn.columnBox = false;
+      }
+    },
+    async resetColumn() {
+      this.option = this.defaultOption;
+      const inSave = await this.delColumnData(this.getColumnName(139), this.defaultOption);
+      if (inSave) {
+        this.$nextTick(() => {
+          this.$refs.crud.doLayout()
+        })
+        this.$message.success("重置成功");
+        //关闭窗口
+        this.$refs.crud.$refs.dialogColumn.columnBox = false;
+      }
+    },
+    // 跳转到详情
+    beforeOpenPage(row, index) {
+      this.detailData = {
+        id: row.corpId
+      };
+      this.show = false;
+    },
+    goBack() {
+      this.detailData=this.$options.data().detailData
+      if (JSON.stringify(this.$route.query) != "{}") {
+        this.$router.$avueRouter.closeTag();
+        this.$router.push({
+          path: "/statisticAnalysis/collectLedger/index"
+        });
+      }
+      this.dataList.forEach(item => {
+        this.$refs.crud.toggleRowExpansion(item, false)
+      })
+      this.show = true;
+      this.onLoad(this.page, this.search);
+    },
+    outExport() {
+      if (!this.search.corpId) this.$set(this.search, 'corpId', '');
+      if (this.search.accDate && this.search.accDate.length > 0) {
+        this.search = {
+          ...this.search,
+          accDateStart: this.search.accDate[0] + ' 00:00:00',
+          accDateEnd: this.search.accDate[1] + ' 23:59:59',
+        }
+      } else {
+        this.search = {
+          ...this.search,
+          accDateStart: '',
+          accDateEnd: '',
+        }
+      }
+      this.$confirm('是否导出应付总账信息?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        window.open(
+          `/api/trade-finance/profit/export?${
+            this.website.tokenHeader
+          }=${getToken()}&tradeType=${this.tradeType}&corpId=${this.search.corpId}&accDateStart=${this.search.accDateStart}&accDateEnd=${this.search.accDateEnd}`
+        );
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '已取消' //
+        });
+      })
+    },
+  }
+};
+</script>
+
+<style scoped>
+.page-crad ::v-deep .basic-container__card {
+  height: 94.2vh;
+}
+::v-deep .el-table__expanded-cell[class*="cell"] {
+  padding: 0px;
+}
+.itemTable ::v-deep .el-table {
+  width: 100%;
+}
+</style>

+ 10 - 0
src/views/system/tenant.vue

@@ -183,6 +183,16 @@ export default {
             }]
           },
           {
+            label: "平台客户编码",
+            prop: "corpCode",
+            span: 12,
+          },
+          {
+            label: "对应平台(租户id)",
+            prop: "terrace",
+            span: 12,
+          },
+          {
             label: "系统背景",
             prop: "backgroundUrl",
             type: 'upload',