caojunjie преди 2 години
родител
ревизия
b10bf15ca4

+ 3 - 0
src/components/bill/billDetails.vue

@@ -18,6 +18,9 @@
             :configuration="breakConfiguration"
         ></breakdown-select>
       </template>
+      <template slot="corpNameSearch">
+        <crop-select v-model="search.corpId" corpType="KH"/>
+      </template>
       <template slot-scope="scope" slot="costType">
         <span>{{ scope.row.itemName }}</span>
       </template>

+ 3 - 2
src/components/bill/config/details.json

@@ -45,9 +45,9 @@
       "label": "单据来源",
       "prop": "billType",
       "type": "select",
-      "search": true,
+      "search": false,
       "overHidden": true,
-      "width": 120,
+      "width": 100,
       "dicData": [
         {
           "label": "付费",
@@ -144,6 +144,7 @@
       "label": "客户",
       "prop": "corpName",
       "overHidden": true,
+      "search": true,
       "width": 120
     },
     {

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

@@ -1085,6 +1085,9 @@ const columnName = [{
     code: 244.2,
     name: '应付分析-平台明细'
   }, {
+    code: 244.3,
+    name: '应付分析-弹窗'
+  }, {
     code: 245,
     name: '箱管理-租入'
   }, {

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

@@ -925,6 +925,36 @@ export default [{
     component: () => import( /* webpackChunkName: "views" */ '@/views/financialManagement/receiptSettle/receiptSettle')
   }]
 },
+// 付款结算(Z)
+  {
+    path: '/financialManagement/paymentSettlement/paymentSettle',
+    component: Layout,
+    hidden: true,
+    children: [{
+      path: '/financialManagement/paymentSettlement/paymentSettle',
+      name: "付款结算(Z)",
+      meta: {
+        i18n: '/financialManagement/paymentSettlement/paymentSettle',
+        keepAlive: true,
+      },
+      component: () => import( /* webpackChunkName: "views" */ '@/views/financialManagement/paymentSettlement/paymentSettle')
+    }]
+  },
+//收款结算(Z)
+  {
+    path: '/financialManagement/collectionSettlement/receiptSettle',
+    component: Layout,
+    hidden: true,
+    children: [{
+      path: '/financialManagement/collectionSettlement/receiptSettle',
+      name: "收款结算(Z)",
+      meta: {
+        i18n: '/financialManagement/collectionSettlement/receiptSettle',
+        keepAlive: true,
+      },
+      component: () => import( /* webpackChunkName: "views" */ '@/views/financialManagement/collectionSettlement/receiptSettle')
+    }]
+  },
 //审批数据
 {
   path: '/approveData/index',

+ 13 - 6
src/views/exportTrade/customerInquiry/index.vue

@@ -184,31 +184,31 @@ export default {
           {
             label: "产品类别",
             prop: "priceCategory",
-            width: 138,
+            width: 140,
             overHidden: true
           },
           {
             label: "产品名称",
             prop: "cname",
-            width: 100,
+            width: 240,
             overHidden: true
           },
           {
             label: "产品描述",
             prop: "itemDescription",
-            width: 100,
+            width: 240,
             overHidden: true
           },
           {
             label: "配件描述",
             prop: "partsDescribe",
-            width: 100,
+            width: 240,
             overHidden: true
           },
           {
             label: "配件价格描述",
             prop: "partsPriceDescribe",
-            width: 100,
+            width: 240,
             overHidden: true
           },
           {
@@ -218,6 +218,12 @@ export default {
             overHidden: true
           },
           {
+            label: "单价",
+            prop: "price",
+            width: 100,
+            overHidden: true
+          },
+          {
             label: "金额",
             prop: "amount",
             width: 100,
@@ -495,6 +501,7 @@ export default {
   height: 94.2vh;
 }
 .itemTable ::v-deep .el-table {
-  width: 738px;
+  margin-left: 50px;
+  width: 100%;
 }
 </style>

+ 12 - 6
src/views/exportTrade/salesContract/index.vue

@@ -182,31 +182,31 @@ export default {
           {
             label: "产品类别",
             prop: "priceCategory",
-            width: 138,
+            width: 140,
             overHidden: true
           },
           {
             label: "产品名称",
             prop: "cname",
-            width: 100,
+            width: 240,
             overHidden: true
           },
           {
             label: "产品描述",
             prop: "itemDescription",
-            width: 100,
+            width: 240,
             overHidden: true
           },
           {
             label: "配件描述",
             prop: "partsDescribe",
-            width: 100,
+            width: 240,
             overHidden: true
           },
           {
             label: "配件价格描述",
             prop: "partsPriceDescribe",
-            width: 100,
+            width: 240,
             overHidden: true
           },
           {
@@ -214,6 +214,11 @@ export default {
             prop: "orderQuantity",
             width: 100,
             overHidden: true
+          },{
+            label: "单价",
+            prop: "price",
+            width: 100,
+            overHidden: true
           },
           {
             label: "金额",
@@ -532,6 +537,7 @@ export default {
   height: 94.2vh;
 }
 .itemTable ::v-deep .el-table {
-  width: 738px;
+  margin-left: 50px;
+  width: 100%;
 }
 </style>

+ 7 - 0
src/views/financialManagement/collectionSettlement/receiptSettleDetailsPage.vue

@@ -576,6 +576,13 @@
         this.billDetailDialog = false;
       },
       importProMent(list){
+        for (let item of list){
+          for (let li of this.dataList){
+            if (item.srcBillNo === li.srcBillNo){
+              return this.$message.error(`平台号${item.srcBillNo}已存在,请勿重复导入`)
+            }
+          }
+        }
         list.forEach((item,index) =>{
           item.accId = item.id;
           item.srcOrderno  = item.accSysNo

+ 26 - 26
src/views/financialManagement/paymentSettlement/configuration/detailsPage.json

@@ -51,6 +51,30 @@
       ]
     },
     {
+      "label": "客户",
+      "prop": "corpName",
+      "overHidden": true,
+      "width": 120
+    },
+    {
+      "label": "金额",
+      "prop": "amount",
+      "overHidden": true,
+      "width": 150
+    },
+    {
+      "label": "本次金额",
+      "prop": "thisAmount",
+      "overHidden": true,
+      "width": 150
+    },
+    {
+      "label": "费用名称",
+      "prop": "itemName",
+      "overHidden": true,
+      "width": 150
+    },
+    {
       "label": "车队",
       "prop": "fleetName",
       "overHidden": true,
@@ -103,7 +127,7 @@
     },
     {
       "label": "提单号",
-      "prop": "accSysNo",
+      "prop": "billNo",
       "overHidden": true,
       "width": 120
     },
@@ -114,36 +138,12 @@
       "width": 120
     },
     {
-      "label": "客户",
-      "prop": "corpName",
-      "overHidden": true,
-      "width": 120
-    },
-    {
       "label": "业务员",
-      "prop": "createUserName",
+      "prop": "chargeMember",
       "overHidden": true,
       "width": 120
     },
     {
-      "label": "费用名称",
-      "prop": "itemName",
-      "overHidden": true,
-      "width": 150
-    },
-    {
-      "label": "金额",
-      "prop": "amount",
-      "overHidden": true,
-      "width": 150
-    },
-    {
-      "label": "本次金额",
-      "prop": "thisAmount",
-      "overHidden": true,
-      "width": 150
-    },
-    {
       "label": "币别",
       "prop": "currency",
       "width": 120

+ 12 - 6
src/views/financialManagement/paymentSettlement/paymentSettleDetailsPage.vue

@@ -93,8 +93,8 @@
           </template>
         </avue-crud>
       </basic-container>
-      <el-dialog :title="title" append-to-body class="el-dialogDeep" :visible.sync="billDetailDialog" v-if="billDetailDialog" width="60%"
-        :close-on-click-modal="false" :destroy-on-close="true" :close-on-press-escape="false" top="10vh" v-dialog-drag>
+      <el-dialog :title="title" append-to-body class="el-dialogDeep" :visible.sync="billDetailDialog" v-if="billDetailDialog" width="70%"
+        :close-on-click-modal="false" :destroy-on-close="true" :close-on-press-escape="false" top="5vh" v-dialog-drag>
         <bill-detail :params="params" :billType="billType" :flag="1" @closeFun="closeBillDetail"
           @importProMent="importProMent">
         </bill-detail>
@@ -542,16 +542,22 @@ export default {
       this.billDetailDialog = false;
     },
     importProMent(list) {
-      list.forEach((item, index) => {
+      for (let item of list){
+        for (let li of this.dataList){
+          if (item.srcBillNo === li.srcBillNo){
+            return this.$message.error(`平台号${item.srcBillNo}已存在,请勿重复导入`)
+          }
+        }
+      }
+      for (let item of list){
         item.accId = item.id;
-        item.fleetName = item.fleetName?item.fleetName:item.corpName
+        item.fleetName = item.fleetName?item.fleetName:item.corpName;
         item.srcOrderno = item.accSysNo;
         item.billNo = item.srcBillNo;
         item.thisAmount = item.amount;
         delete item.id;
-
         this.$refs.crud.rowCellAdd(item);
-      })
+      }
       this.$set(this.form, 'srcOrderno', Array.from(new Set(this.dataList.map(item => { if (item.srcOrderno) { return item.srcOrderno } }))).join(','))
       this.billDetailDialog = false;
       this.calculation(this.dataList)

+ 7 - 0
src/views/financialManagement/zbillDetails/billDetails.vue

@@ -34,6 +34,9 @@
       <template slot-scope="{type,size,row,$index}" slot="menuLeft">
         <el-button class="el-icon-download" type="warning" size="small" @click="outExport">导出</el-button>
       </template>
+      <template slot="corpNameSearch">
+        <crop-select v-model="search.corpId" corpType="KH"/>
+      </template>
       <template slot-scope="scope" slot="menu">
         <el-button
             type="text"
@@ -53,6 +56,7 @@ import option from "./configuration/mainList.json";
 import {getBillList, removeDetail} from "@/api/financialManagement/zpaymentRequest";
 import _ from "lodash";
 import {getToken} from "@/util/auth";
+import {fleetList} from "@/api/basicData/customerInformation";
 
 export default {
   data() {
@@ -96,6 +100,9 @@ export default {
   async created() {
     this.option = await this.getColumnData(this.getColumnName(60.2), option);
     this.key++
+    fleetList().then(res => {
+      this.findObject(this.option.column, "fleetName").dicData = res.data.data
+    })
   },
   mounted() {
     // option.height = window.innerHeight - 200 ;

+ 12 - 2
src/views/financialManagement/zbillDetails/configuration/mainList.json

@@ -61,9 +61,18 @@
     },
     {
       "label": "车队",
-      "prop": "fleetName",
+      "width": 90,
+      "index": 8,
       "overHidden": true,
-      "width": 120
+      "prop": "fleetName",
+      "searchProp": "fleetId",
+      "type": "select",
+      "props": {
+        "label": "cname",
+        "value": "id"
+      },
+      "filterable": true,
+      "search": true
     },
     {
       "label": "车号",
@@ -137,6 +146,7 @@
       "label": "客户",
       "prop": "corpName",
       "overHidden": true,
+      "search": true,
       "width": 120
     },
     {

+ 1 - 1
src/views/statisticAnalysis/analysisOfCoping/detailPage.vue

@@ -71,7 +71,7 @@ export default {
           decimals: 2
         }],
         column: [{
-          label: "系统号",
+          label: "平台号",
           prop: "orderNo"
         }, {
           label: "合同号",

+ 220 - 0
src/views/statisticAnalysis/analysisOfCoping/detailPageOne.vue

@@ -0,0 +1,220 @@
+<template>
+  <div v-if="key>0">
+    <avue-crud ref="crud"
+               :key="key"
+               :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">
+      <template slot="menuLeft">
+        <el-button type="info" size="small" @click="outExport">导出
+        </el-button>
+      </template>
+      <template slot="corpNameSearch" slot-scope="scope">
+        <crop-select v-model="search.corpId" corpType="KH"/>
+      </template>
+    </avue-crud>
+  </div>
+</template>
+
+<script>
+import {getToken} from "@/util/auth";
+import {getListThree} from "@/api/statisticAnalysis/analysisOfCoping"
+import {getList} from "@/api/financialManagement/paymentRequest";
+
+export default {
+  name: "index",
+  data() {
+    return {
+      UConfiguration: {
+        multipleChoices: false,
+        multiple: false,
+        disabled: false,
+        searchShow: true,
+        collapseTags: false,
+        placeholder: '请点击右边按钮选择',
+        dicData: []
+      },
+      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: {},
+      key:0,
+      optionBack: {
+        searchShow: false,
+        searchShowBtn: false,
+        align: "center",
+        searchMenuPosition: "right",
+        searchSpan: 8,
+        searchMenuSpan: 8,
+        searchLabelWidth: 100,
+        border: true,
+        index: true,
+        addBtn: false,
+        viewBtn: false,
+        editBtn: false,
+        delBtn: false,
+        highlightCurrentRow: true,
+        menu: false,
+        height: "auto",
+        summaryText: "合计",
+        showSummary: true,
+        sumColumnList: [{
+          name: "amount",
+          type: "sum",
+          decimals: 2
+        }],
+        column: [{
+          label: "合同号",
+          prop: "srcOrderno",
+          overHidden: true
+        }, {
+          label: "往来单位",
+          prop: "corpName",
+          overHidden: true
+        }, {
+          label: "提单号",
+          prop: "billNo",
+          overHidden: true
+        }, {
+          label: "结算日期",
+          prop: "settlementDate",
+          searchProp: "bsDateList",
+          width: 100,
+          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: "amount"
+        }]
+      }
+    };
+  },
+  props:{
+    condition:Object
+  },
+  async created() {
+    this.search = this.condition
+    this.option = await this.getColumnData(this.getColumnName(244.3), this.optionBack);
+    this.key++
+  },
+  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();
+    },
+    //点击搜索按钮触发
+    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 = {}) {
+      let data = this.deepClone(Object.assign({}, params, this.search));
+      this.loading = true;
+      getList(
+          page.currentPage,
+          page.pageSize,
+          Object.assign(data,{billType:"付费",})
+      ).then(res => {
+        this.dataList = res.data.data.records ? res.data.data.records : [];
+        this.page.total = res.data.data.total;
+      }).finally(() => {
+        this.loading = false;
+      });
+    },
+
+    //列保存触发
+    async saveColumn() {
+      const inSave = await this.saveColumnData(this.getColumnName(244.3), this.option);
+      if (inSave) {
+        this.$message.success("保存成功");
+        //关闭窗口
+        this.$refs.crud.$refs.dialogColumn.columnBox = false;
+      }
+    },
+    async resetColumn() {
+      this.option = this.optionBack;
+      const inSave = await this.delColumnData(this.getColumnName(244.3), this.optionBack);
+      if (inSave) {
+        this.$message.success("重置成功");
+        this.$refs.crud.$refs.dialogColumn.columnBox = false;
+      }
+    },
+    outExport() {
+      let config = {params: {...this.search,billType:"付费"}}
+      if (config.params) {
+        for (const propName of Object.keys(config.params)) {
+          const value = config.params[propName];
+          if (value !== null && typeof (value) !== "undefined") {
+            if (value instanceof Array) {
+              for (const key of Object.keys(value)) {
+                let params = propName + '[' + key + ']';
+                config.params[params] = value[key]
+              }
+              delete config.params[propName]
+            }
+          }
+        }
+      }
+      const routeData = this.$router.resolve({
+        path: '/api/trade-finance/settlement/expenseExport',      //跳转目标窗口的地址
+        query: {
+          ...config.params    //括号内是要传递给新窗口的参数
+        }
+      })
+      window.open(routeData.href.slice(1, routeData.href.length) + '&' + `${this.website.tokenHeader}=${getToken()}`);
+    }
+  }
+};
+</script>
+
+<style scoped>
+.page-crad ::v-deep .basic-container__card {
+  height: 94.2vh;
+}
+::v-deep .el-dialog {
+  margin: 0 auto;
+}
+::v-deep .el-dialog__body {
+  padding: 20px 20px;
+}
+
+::v-deep .el-table__expanded-cell[class*="cell"] {
+  padding: 0px;
+}
+
+.itemTable ::v-deep .el-table {
+  width: 100%;
+}
+</style>

+ 24 - 3
src/views/statisticAnalysis/analysisOfCoping/index.vue

@@ -21,6 +21,10 @@
                 <span class="el-button--text" style="cursor: pointer"
                       @click="openTrack(row,'平台购买明细')">{{ row.platformBuy }}</span>
         </template>
+        <template slot="realPay" slot-scope="{row}">
+                <span class="el-button--text" style="cursor: pointer"
+                      @click="openTrack(row,'实付金额明细')">{{ row.realPay }}</span>
+        </template>
       </avue-crud>
     </basic-container>
     <el-dialog
@@ -33,6 +37,7 @@
       <span>
         <detail-page v-if="title === '应付金额明细'" :condition="condition"></detail-page>
         <detail-page-two v-if="title === '平台购买明细'" :condition="condition"></detail-page-two>
+        <detail-page-one v-if="title === '实付金额明细'" :condition="condition"></detail-page-one>
       </span>
       <span slot="footer" class="dialog-footer">
         <el-button @click="dialogVisible = false">取 消</el-button>
@@ -46,11 +51,13 @@ import {getToken} from "@/util/auth";
 import {getList} from "@/api/statisticAnalysis/analysisOfCoping"
 import detailPage from "./detailPage"
 import detailPageTwo from "./detailPageTwo"
+import detailPageOne from "./detailPageOne"
 export default {
   name: "index",
   components:{
     detailPage,
-    detailPageTwo
+    detailPageTwo,
+    detailPageOne
   },
   data() {
     return {
@@ -105,7 +112,15 @@ export default {
         }, {
           name: "platformBuy",
           type: "sum",
-          decimals: 0
+          decimals: 2
+        }, {
+          name: "realPay",
+          type: "sum",
+          decimals: 2
+        }, {
+          name: "notPay",
+          type: "sum",
+          decimals: 2
         }],
         column: [{
           label: "客户",
@@ -115,7 +130,13 @@ export default {
           label: "应付金额",
           prop: "freightPay"
         }, {
-          label: "平台购买数",
+          label: "实付金额",
+          prop: "realPay"
+        }, {
+          label: "未付金额",
+          prop: "notPay"
+        }, {
+          label: "平台购买金额",
           prop: "platformBuy"
         }, {
           label: "业务区间",

+ 4 - 2
src/views/wel/home/equipmentControl/components/sales-reached.vue

@@ -115,7 +115,8 @@ export default {
       dialogVisible: false,
       tradeType: null,
       entrustTimer: null,
-      tableData: []
+      tableData: [],
+      listData:[]
     };
   },
   created() {
@@ -137,7 +138,7 @@ export default {
   methods: {
     //点击获取图表数据
     handleMousedown(params) {
-      this.search.address = params.name
+      this.search.address = this.listData.address[params.dataIndex]
       this.dialogVisible = true
       this.onLoad(this.page, this.search)
     },
@@ -196,6 +197,7 @@ export default {
     getSysType() {
       this.loading = true
       distribution().then(res => {
+        this.listData = res.data.data
         this.rankingTwo('totalContainer',"箱分布",res.data.data)
       })
       this.loading = false