Explorar o código

Merge remote-tracking branch 'origin/dev' into dev

wfg hai 1 ano
pai
achega
0035d1ffcf
Modificáronse 23 ficheiros con 1728 adicións e 117 borrados
  1. 60 0
      src/api/iosBasicData/bcorps.js
  2. 20 0
      src/api/iosBasicData/paymentSummary.js
  3. 18 0
      src/api/saleDetail/index.js
  4. 8 0
      src/enums/column-name.js
  5. 30 0
      src/router/views/index.js
  6. 4 2
      src/views/approveDataH/index.vue
  7. 1 1
      src/views/iosBasicData/AirtransportExport/bills/assembly/mbinformation.vue
  8. 1 1
      src/views/iosBasicData/AirtransportImport/bills/assembly/mbinformation.vue
  9. 137 0
      src/views/iosBasicData/OceanFreightImport/bills/assembly/EntrustmentLnformation.vue
  10. 66 68
      src/views/iosBasicData/OceanFreightImport/bills/assembly/formbottom.vue
  11. 1 1
      src/views/iosBasicData/OceanFreightImport/bills/assembly/mbinformation.vue
  12. 13 11
      src/views/iosBasicData/SeafreightExportF/bills/assembly/EntrustmentLnformation.vue
  13. 13 2
      src/views/iosBasicData/SeafreightExportF/bills/assembly/formbottom.vue
  14. 1 1
      src/views/iosBasicData/SeafreightExportF/bills/assembly/mbinformation.vue
  15. 0 2
      src/views/iosBasicData/SeafreightExportF/bills/billsDetails.vue
  16. 43 9
      src/views/iosBasicData/bcorps/detailsPage.vue
  17. 7 0
      src/views/iosBasicData/bunits/index.vue
  18. 800 0
      src/views/iosBasicData/financeProfit/index.vue
  19. 39 13
      src/views/iosBasicData/losbfeestemplate/feesTemplateItems.vue
  20. 5 5
      src/views/iosBasicData/rateManagement/detailsPage.vue
  21. 1 1
      src/views/iosBasicData/rateManagement/js/optionList.js
  22. 5 0
      src/views/system/dept.vue
  23. 455 0
      src/views/tirePartsMall/financialManagement/saleDetail/index.vue

+ 60 - 0
src/api/iosBasicData/bcorps.js

@@ -94,3 +94,63 @@ export const corpsinvoiceheaderList = (current,size,params) => {
     }
   })
 }
+// 客户联系人小删除
+export const bcorpsattnRemove = (ids) => {
+  return request({
+    url: '/api/blade-los/bcorpsattn/remove',
+    method: 'post',
+    params: {
+      ids,
+    }
+  })
+}
+// 银行小删除
+export const bcorpsbankRemove = (ids) => {
+  return request({
+    url: '/api/blade-los/bcorpsbank/remove',
+    method: 'post',
+    params: {
+      ids,
+    }
+  })
+}
+// 附件小删除
+export const bcorpsfilesRemove = (ids) => {
+  return request({
+    url: '/api/blade-los/bcorpsfiles/remove',
+    method: 'post',
+    params: {
+      ids,
+    }
+  })
+}
+// 更名小删除
+export const bcorpsrenameRemove = (ids) => {
+  return request({
+    url: '/api/blade-los/bcorpsrename/remove',
+    method: 'post',
+    params: {
+      ids,
+    }
+  })
+}
+// 发票抬头小删除
+export const corpsinvoiceheaderRemove = (ids) => {
+  return request({
+    url: '/api/blade-los/corpsinvoiceheader/remove',
+    method: 'post',
+    params: {
+      ids,
+    }
+  })
+}
+// 不良记录小删除
+export const bcorpsbadrecordRemove = (ids) => {
+  return request({
+    url: '/api/blade-los/bcorpsbadrecord/remove',
+    method: 'post',
+    params: {
+      ids,
+    }
+  })
+}

+ 20 - 0
src/api/iosBasicData/paymentSummary.js

@@ -47,3 +47,23 @@ export const financeStatisticsAgingAnalysis = (current, size, params) => {
     }
   })
 }
+// 财务利润
+export const financeStatisticsFinanceProfit = (current, size, params) => {
+  return request({
+    url: '/api/blade-los/financeStatistics/financeProfit',
+    method: 'get',
+    params: {
+      ...params,
+      current,
+      size,
+    }
+  })
+}
+// 财务利润合计详情
+export const financeStatisticsFinanceProfitSum = (params) => {
+  return request({
+    url: '/api/blade-los/financeStatistics/financeProfitSum',
+    method: 'get',
+    params: params
+  })
+}

+ 18 - 0
src/api/saleDetail/index.js

@@ -0,0 +1,18 @@
+import request from '@/router/axios';
+
+// 统计销售明细
+export const statisticsSaleDetail = (params) => {
+  return request({
+    url: '/api/blade-sales-part/statistics/saleDetail',
+    method: 'get',
+    params: params
+  })
+}
+// 统计销售明细合计
+export const statisticsSaleDetailSum = (params) => {
+  return request({
+    url: '/api/blade-sales-part/statistics/saleDetailSum',
+    method: 'get',
+    params: params
+  })
+}

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

@@ -1571,6 +1571,14 @@ const columnName = [{
     code: 335,
     name: '货运代理-决策分析-账龄分析'
   },
+  {
+    code: 336,
+    name: '货运代理-决策分析-财务利润'
+  },
+  {
+    code: 337,
+    name: '轮胎商城-财务管理-统计销售'
+  },
 ]
 export const getColumnName = (key) => {
   for (let index = 0; index < columnName.length; index++) {

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

@@ -2708,6 +2708,21 @@ export default [{
     component: () => import( /* webpackChunkName: "views" */ '@/views/tirePartsMall/financialManagement/paymentSettlement/index')
   }]
 },
+  // 统计销售
+  {
+    path: '/tirePartsMall/financialManagement/saleDetail/index',
+    component: Layout,
+    hidden: true,
+    children: [{
+      path: '/tirePartsMall/financialManagement/saleDetail/index',
+      name: '统计销售(L)',
+      meta: {
+        i18n: '/tirePartsMall/financialManagement/saleDetail/index',
+        keepAlive: true,
+      },
+      component: () => import( /* webpackChunkName: "views" */ '@/views/tirePartsMall/financialManagement/saleDetail/index')
+    }]
+  },
 {
   path: '/tirePartsMall/statisticAnalysis/customerTransactions/index',
   component: Layout,
@@ -3168,6 +3183,21 @@ export default [{
       component: () => import( /* webpackChunkName: "views" */ '@/views/iosBasicData/agingAnalysis/index')
     }]
   },
+  // 财务利润(F)
+  {
+    path: '/iosBasicData/financeProfit/index',
+    component: Layout,
+    hidden: true,
+    children: [{
+      path: '/iosBasicData/financeProfit/index',
+      name: '财务利润(F)',
+      meta: {
+        i18n: '/iosBasicData/financeProfit/index',
+        keepAlive: true,
+      },
+      component: () => import( /* webpackChunkName: "views" */ '@/views/iosBasicData/financeProfit/index')
+    }]
+  },
   // 海运出口报关
   {
     path: '/iosBasicData/reportClose/SEreportClose/index',

+ 4 - 2
src/views/approveDataH/index.vue

@@ -56,11 +56,13 @@
                      :disabled="scope.row.auditStatus != 'S'"
                      @click.stop="printWindowfun(scope.row,'HYJK-DJ')">审批
           </el-button>
-          <el-button type="text" size="small" v-else-if="scope.row.checkType == 'KYCK-DJ'"
+          <el-button type="text" size="small"
+                     v-else-if="scope.row.checkType == 'KYCK-DJ'"
                      :disabled="scope.row.auditStatus != 'S'"
                      @click.stop="printWindowfun(scope.row,'KYCK-DJ')">审批
           </el-button>
-          <el-button type="text" size="small" v-else-if="scope.row.checkType == 'KYJK-DJ'"
+          <el-button type="text" size="small"
+                     v-else-if="scope.row.checkType == 'KYJK-DJ'"
                      :disabled="scope.row.auditStatus != 'S'"
                      @click.stop="printWindowfun(scope.row,'KYJK-DJ')">审批
           </el-button>

+ 1 - 1
src/views/iosBasicData/AirtransportExport/bills/assembly/mbinformation.vue

@@ -752,7 +752,7 @@
             // 获取航空公司数据
             carrierBcorpsListfun(cnName){
                 let corpTypeName = '航空公司'
-                getBcorpsList(1,10,{cnName,corpTypeName}).then(res=>{
+                getBcorpslistByType(1,10,{cnName,corpTypeName}).then(res=>{
                     this.carrierData = res.data.data.records
                 })
             },

+ 1 - 1
src/views/iosBasicData/AirtransportImport/bills/assembly/mbinformation.vue

@@ -752,7 +752,7 @@
             // 获取航空公司数据
             carrierBcorpsListfun(cnName){
                 let corpTypeName = '航空公司'
-                getBcorpsList(1,10,{cnName,corpTypeName}).then(res=>{
+                getBcorpslistByType(1,10,{cnName,corpTypeName}).then(res=>{
                     this.carrierData = res.data.data.records
                 })
             },

+ 137 - 0
src/views/iosBasicData/OceanFreightImport/bills/assembly/EntrustmentLnformation.vue

@@ -515,6 +515,73 @@
                 </el-col>
             </el-row>
 
+            <el-row>
+                <el-col :span="12">
+                    <el-col :span="12">
+                        <el-form-item label="场站" prop="cyCnName" >
+                            <span slot="label">
+                                <span style="color: #4c9e44;cursor: pointer;text-decoration: underline" @click="emailJump('cy')">场站</span>
+                            </span>
+                            <search-query :datalist="cyData"
+                                          :selectValue="assemblyForm.cyCnName"
+                                          :filterable="true"
+                                          :clearable="true"
+                                          :remote="true"
+                                          :disabled="detailData.seeDisabled || generateBillsfalse"
+                                          :buttonIf="false"
+                                          :forParameter="{key:'id',label:'cnName',value:'cnName'}"
+                                          placeholder="请选择场站"
+                                          @remoteMethod="remoteMethod($event,'cy')"
+                                          @corpChange="corpChange($event,'cy')"
+                                          @corpFocus="remoteMethod($event, 'cy')" >
+                            </search-query>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="联系人" prop="cyContacts" >
+                            <span slot="label">
+                                <span style="color: #1e9fff">联系人</span>
+                            </span>
+                            <!--<el-input type="age" style="width: 100%;" v-model="assemblyForm.cyContacts"-->
+                            <!--          size="small" autocomplete="off"-->
+                            <!--          :disabled="detailData.seeDisabled || generateBillsfalse"-->
+                            <!--          clearable placeholder="请输入联系人" ></el-input>-->
+                            <search-query :datalist="cyContactsData"
+                                          :selectValue="assemblyForm.cyContacts"
+                                          :filterable="true"
+                                          :clearable="true"
+                                          :allowCreate="true"
+                                          :disabled="detailData.seeDisabled || generateBillsfalse || !assemblyForm.cyCnName"
+                                          :buttonIf="false"
+                                          :forParameter="{key:'id',label:'cname',value:'cname'}"
+                                          placeholder="联系人"
+                                          @corpChange="corpChange($event,'cyContacts')"
+                                          @corpFocus="remoteMethod($event, 'cyContacts')" >
+                            </search-query>
+                        </el-form-item>
+                    </el-col>
+                </el-col>
+                <el-col :span="12">
+                    <el-form-item label="地址" prop="cyAddress" >
+                        <span slot="label">
+                             <span style="color: #1e9fff">地址</span>
+                        </span>
+                        <el-input type="age" style="width: 100%;" v-model="assemblyForm.cyAddress"
+                                  size="small" autocomplete="off"
+                                  :disabled="detailData.seeDisabled || generateBillsfalse || !assemblyForm.cyCnName"
+                                  clearable placeholder="地址" ></el-input>
+                    </el-form-item>
+                </el-col>
+            </el-row>
+            <el-form-item label="场站备注" prop="cyRemarks" >
+                <span slot="label">
+                     <span style="color: #1e9fff">场站备注</span>
+                </span>
+                <el-input type="textarea" style="width: 100%;" v-model="assemblyForm.cyRemarks"
+                          size="small" autocomplete="off"
+                          :disabled="detailData.seeDisabled || generateBillsfalse" rows="3"
+                          clearable placeholder="请输入场站备注" ></el-input>
+            </el-form-item>
         </el-form>
 
 
@@ -702,6 +769,7 @@ import emailhash from '@/views/iosBasicData/OceanFreightImport/bills/assembly/Js
 import bcorps from "@/views/iosBasicData/bcorps/index.vue";
 import {NdayDate} from "@/util/date";
 import {regularFloating, regularInteger} from "@/util/regularJudgment";
+import {getBcorpsattnList} from "@/api/iosBasicData/bcorpsattn";
 
     export default {
         props:{
@@ -730,6 +798,9 @@ import {regularFloating, regularInteger} from "@/util/regularJudgment";
                     }
                 },
                 emailhash:emailhash, // 邮箱跳转地址
+                // 场站
+                cyData:[],
+                cyContactsData:[], // 场站联系人
                 // 多选的数据
                 tabsMultipleChoice:[],
                 // 发货人数据
@@ -825,6 +896,14 @@ import {regularFloating, regularInteger} from "@/util/regularJudgment";
                 else if (portArr.indexOf(name) != -1) {
                     this[name + 'BportsListfun'](value)
                 }
+                // 场站
+                else if (name == 'cy') {
+                    this.cyBcorpslistByType(value)
+                }
+                // 场站联系人
+                else if (name == 'cyContacts') {
+                    this.cyBcorpsattnListfun()
+                }
                 // 包装
                 else if (name == 'packingUnit') {
                     this.packingUnitBpackagesListfun(value)
@@ -990,6 +1069,51 @@ import {regularFloating, regularInteger} from "@/util/regularJudgment";
                         this.DangerousGoodsAdd()
                     }
                 }
+                else if (name == 'cy') {
+                    if (!value) {
+                        this.$set(this.assemblyForm,'cyId','')
+                        this.$set(this.assemblyForm,'cyCode','')
+                        this.$set(this.assemblyForm,'cyCnName','')
+                        this.$set(this.assemblyForm,'cyEnName','')
+                        this.$set(this.assemblyForm,'cyRemarks','')
+                        // 联系人
+                        this.$set(this.assemblyForm,'cyTel','')
+                        this.$set(this.assemblyForm,'cyAddress','')
+                        this.$set(this.assemblyForm,'cyContacts','')
+                    }
+                    for(let item of this.cyData) {
+                        if (item.cnName == value) {
+                            this.$set(this.assemblyForm,'cyId',item.id)
+                            this.$set(this.assemblyForm,'cyCode',item.code)
+                            this.$set(this.assemblyForm,'cyCnName',item.cnName)
+                            this.$set(this.assemblyForm,'cyEnName',item.enName)
+                            this.$set(this.assemblyForm,'cyRemarks',item.details) // 客户里的详情信息
+                            // 查询场站联系人
+                            getBcorpsattnList(1,20,{pid:this.assemblyForm.cyId}).then(res=>{
+                                if (res.data.data.records.length > 0) {
+                                    this.$set(this.assemblyForm,'cyTel',res.data.data.records[0].tel)
+                                    this.$set(this.assemblyForm,'cyAddress',res.data.data.records[0].addr)
+                                    this.$set(this.assemblyForm,'cyContacts',res.data.data.records[0].cname)
+                                }
+                            })
+                        }
+                    }
+                }
+                // 场站联系人
+                else if (name == 'cyContacts') {
+                    if (!value) {
+                        this.$set(this.assemblyForm,'cyTel','')
+                        this.$set(this.assemblyForm,'cyAddress','')
+                        this.$set(this.assemblyForm,'cyContacts','')
+                    }
+                    for(let item of this.cyContactsData) {
+                        if (item.cname == value) {
+                            this.$set(this.assemblyForm,'cyTel',item.tel)
+                            this.$set(this.assemblyForm,'cyAddress',item.addr)
+                            this.$set(this.assemblyForm,'cyContacts',item.cname)
+                        }
+                    }
+                }
                 else {
                     this.$set(this.assemblyForm,name,value?value:'')
                 }
@@ -1147,6 +1271,19 @@ import {regularFloating, regularInteger} from "@/util/regularJudgment";
             },
 
             // 接口数据请求🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏
+            // 获取场站数据
+            cyBcorpslistByType(cnName){
+                let corpTypeName = '场站'
+                getBcorpslistByType(1,10,{cnName,status: 0,corpTypeName}).then(res=>{
+                    this.cyData = res.data.data.records
+                })
+            },
+            // 获取场站下的联系人数据
+            cyBcorpsattnListfun(){
+                getBcorpsattnList(1,20,{pid:this.assemblyForm.cyId}).then(res=>{
+                    this.cyContactsData = res.data.data.records
+                })
+            },
             // 获取发货人数据 (往来单位 前四个代理)
             hshipperBcorpsListfun(cnName){
                 let corpTypeName = '国内直接客户,国内同行及代理,国外直接客户,国外同行及代理'

+ 66 - 68
src/views/iosBasicData/OceanFreightImport/bills/assembly/formbottom.vue

@@ -1,72 +1,72 @@
 <template>
     <div>
         <el-form :model="assemblyForm" ref="form" label-width="90px">
-            <el-row>
-                <el-col :span="12">
-                    <el-col :span="12">
-                        <el-form-item label="场站" prop="cyCnName" >
-                            <span slot="label">
-                                <span style="color: #4c9e44;cursor: pointer;text-decoration: underline" @click="emailJump()">场站</span>
-                            </span>
-                            <search-query :datalist="cyData"
-                                          :selectValue="assemblyForm.cyCnName"
-                                          :filterable="true"
-                                          :clearable="true"
-                                          :remote="true"
-                                          :disabled="detailData.seeDisabled || generateBillsfalse"
-                                          :buttonIf="false"
-                                          :forParameter="{key:'id',label:'cnName',value:'cnName'}"
-                                          placeholder="请选择场站"
-                                          @remoteMethod="remoteMethod($event,'cy')"
-                                          @corpChange="corpChange($event,'cy')"
-                                          @corpFocus="remoteMethod($event, 'cy')" >
-                            </search-query>
-                        </el-form-item>
-                    </el-col>
-                    <el-col :span="12">
-                        <el-form-item label="联系人" prop="cyContacts" >
-                            <span slot="label">
-                                <span style="color: #1e9fff">联系人</span>
-                            </span>
-                            <!--<el-input type="age" style="width: 100%;" v-model="assemblyForm.cyContacts"-->
-                            <!--          size="small" autocomplete="off"-->
-                            <!--          :disabled="detailData.seeDisabled || generateBillsfalse"-->
-                            <!--          clearable placeholder="请输入联系人" ></el-input>-->
-                            <search-query :datalist="cyContactsData"
-                                          :selectValue="assemblyForm.cyContacts"
-                                          :filterable="true"
-                                          :clearable="true"
-                                          :disabled="detailData.seeDisabled || generateBillsfalse || !assemblyForm.cyCnName"
-                                          :buttonIf="false"
-                                          :forParameter="{key:'id',label:'cname',value:'cname'}"
-                                          placeholder="联系人"
-                                          @corpChange="corpChange($event,'cyContacts')"
-                                          @corpFocus="remoteMethod($event, 'cyContacts')" >
-                            </search-query>
-                        </el-form-item>
-                    </el-col>
-                </el-col>
-                <el-col :span="12">
-                    <el-form-item label="地址" prop="cyAddress" >
-                        <span slot="label">
-                             <span style="color: #1e9fff">地址</span>
-                        </span>
-                        <el-input type="age" style="width: 100%;" v-model="assemblyForm.cyAddress"
-                                  size="small" autocomplete="off"
-                                  :disabled="detailData.seeDisabled || generateBillsfalse || !assemblyForm.cyCnName"
-                                  clearable placeholder="地址" ></el-input>
-                    </el-form-item>
-                </el-col>
-            </el-row>
-            <el-form-item label="场站备注" prop="cyRemarks" >
-                <span slot="label">
-                     <span style="color: #1e9fff">场站备注</span>
-                </span>
-                <el-input type="textarea" style="width: 100%;" v-model="assemblyForm.cyRemarks"
-                          size="small" autocomplete="off"
-                          :disabled="detailData.seeDisabled || generateBillsfalse" rows="3"
-                          clearable placeholder="请输入场站备注" ></el-input>
-            </el-form-item>
+            <!--<el-row>-->
+            <!--    <el-col :span="12">-->
+            <!--        <el-col :span="12">-->
+            <!--            <el-form-item label="场站" prop="cyCnName" >-->
+            <!--                <span slot="label">-->
+            <!--                    <span style="color: #4c9e44;cursor: pointer;text-decoration: underline" @click="emailJump()">场站</span>-->
+            <!--                </span>-->
+            <!--                <search-query :datalist="cyData"-->
+            <!--                              :selectValue="assemblyForm.cyCnName"-->
+            <!--                              :filterable="true"-->
+            <!--                              :clearable="true"-->
+            <!--                              :remote="true"-->
+            <!--                              :disabled="detailData.seeDisabled || generateBillsfalse"-->
+            <!--                              :buttonIf="false"-->
+            <!--                              :forParameter="{key:'id',label:'cnName',value:'cnName'}"-->
+            <!--                              placeholder="请选择场站"-->
+            <!--                              @remoteMethod="remoteMethod($event,'cy')"-->
+            <!--                              @corpChange="corpChange($event,'cy')"-->
+            <!--                              @corpFocus="remoteMethod($event, 'cy')" >-->
+            <!--                </search-query>-->
+            <!--            </el-form-item>-->
+            <!--        </el-col>-->
+            <!--        <el-col :span="12">-->
+            <!--            <el-form-item label="联系人" prop="cyContacts" >-->
+            <!--                <span slot="label">-->
+            <!--                    <span style="color: #1e9fff">联系人</span>-->
+            <!--                </span>-->
+            <!--                &lt;!&ndash;<el-input type="age" style="width: 100%;" v-model="assemblyForm.cyContacts"&ndash;&gt;-->
+            <!--                &lt;!&ndash;          size="small" autocomplete="off"&ndash;&gt;-->
+            <!--                &lt;!&ndash;          :disabled="detailData.seeDisabled || generateBillsfalse"&ndash;&gt;-->
+            <!--                &lt;!&ndash;          clearable placeholder="请输入联系人" ></el-input>&ndash;&gt;-->
+            <!--                <search-query :datalist="cyContactsData"-->
+            <!--                              :selectValue="assemblyForm.cyContacts"-->
+            <!--                              :filterable="true"-->
+            <!--                              :clearable="true"-->
+            <!--                              :disabled="detailData.seeDisabled || generateBillsfalse || !assemblyForm.cyCnName"-->
+            <!--                              :buttonIf="false"-->
+            <!--                              :forParameter="{key:'id',label:'cname',value:'cname'}"-->
+            <!--                              placeholder="联系人"-->
+            <!--                              @corpChange="corpChange($event,'cyContacts')"-->
+            <!--                              @corpFocus="remoteMethod($event, 'cyContacts')" >-->
+            <!--                </search-query>-->
+            <!--            </el-form-item>-->
+            <!--        </el-col>-->
+            <!--    </el-col>-->
+            <!--    <el-col :span="12">-->
+            <!--        <el-form-item label="地址" prop="cyAddress" >-->
+            <!--            <span slot="label">-->
+            <!--                 <span style="color: #1e9fff">地址</span>-->
+            <!--            </span>-->
+            <!--            <el-input type="age" style="width: 100%;" v-model="assemblyForm.cyAddress"-->
+            <!--                      size="small" autocomplete="off"-->
+            <!--                      :disabled="detailData.seeDisabled || generateBillsfalse || !assemblyForm.cyCnName"-->
+            <!--                      clearable placeholder="地址" ></el-input>-->
+            <!--        </el-form-item>-->
+            <!--    </el-col>-->
+            <!--</el-row>-->
+            <!--<el-form-item label="场站备注" prop="cyRemarks" >-->
+            <!--    <span slot="label">-->
+            <!--         <span style="color: #1e9fff">场站备注</span>-->
+            <!--    </span>-->
+            <!--    <el-input type="textarea" style="width: 100%;" v-model="assemblyForm.cyRemarks"-->
+            <!--              size="small" autocomplete="off"-->
+            <!--              :disabled="detailData.seeDisabled || generateBillsfalse" rows="3"-->
+            <!--              clearable placeholder="请输入场站备注" ></el-input>-->
+            <!--</el-form-item>-->
 
             <el-row >
                 <el-col :span="6">
@@ -309,9 +309,7 @@
                                           clearable :placeholder="`请输入${assemblyForm.serviceTerms} 客户联系人电话`" ></el-input>
                             </el-form-item>
                         </el-col>
-
                     </el-row>
-
                 </el-form>
             </div>
             <span slot="footer" class="dialog-footer">

+ 1 - 1
src/views/iosBasicData/OceanFreightImport/bills/assembly/mbinformation.vue

@@ -440,7 +440,7 @@
             // 获取船公司数据
             carrierBcorpsListfun(cnName){
                 let corpTypeName = '船公司'
-                getBcorpsList(1,10,{cnName,corpTypeName}).then(res=>{
+                getBcorpslistByType(1,10,{cnName,corpTypeName}).then(res=>{
                     this.carrierData = res.data.data.records
                 })
             },

+ 13 - 11
src/views/iosBasicData/SeafreightExportF/bills/assembly/EntrustmentLnformation.vue

@@ -331,26 +331,27 @@
                                 <span slot="label">
                                     <span style="color: #1e9fff">HS CODE</span>
                                 </span>
-                                    <el-col :span="16">
+                                    <el-col :span="12">
                                         <search-query :datalist="commodityData"
-                                                      :selectValue="assemblyForm.commodityCnName"
+                                                      :selectValue="assemblyForm.hscode"
                                                       :filterable="true"
                                                       :clearable="true"
                                                       :remote="true"
                                                       :disabled="detailData.seeDisabled"
                                                       :buttonIf="false"
+                                                      :allowCreate="true"
                                                       placeholder="请选择HS CODE"
-                                                      :forParameter="{key:'id',label:'cnName',value:'cnName'}"
+                                                      :forParameter="{key:'id',label:'hsCode',value:'hsCode'}"
                                                       @remoteMethod="remoteMethod($event,'commodity')"
                                                       @corpChange="corpChange($event,'commodity')"
                                                       @corpFocus="remoteMethod($event,'commodity')">
                                         </search-query>
                                     </el-col>
-                                    <el-col :span="7">
+                                    <el-col :span="11">
                                         <span style="padding-left: 20px"></span>
-                                        <el-input type="age" style="width: 100%;" v-model="assemblyForm.hscode"
+                                        <el-input type="age" style="width: 100%;" v-model="assemblyForm.commodityCnName"
                                                   size="small" autocomplete="off"
-                                                  :disabled="detailData.seeDisabled || !assemblyForm.commodityCnName"
+                                                  :disabled="detailData.seeDisabled"
                                                   clearable placeholder="商品 HS-CODE" ></el-input>
                                     </el-col>
                                 </el-form-item>
@@ -1217,7 +1218,7 @@ import {getBcorpsattnList} from "@/api/iosBasicData/bcorpsattn";
                         this.$set(this.assemblyForm,'commodityEnName','')
                     }
                     for(let item of this[name + 'Data']) {
-                        if (item.cnName == value) {
+                        if (item.hsCode == value) {
                             this.$set(this.assemblyForm,'hscode',item.hsCode)
                             this.$set(this.assemblyForm,'commodityShName',item.cnName)
                             this.$set(this.assemblyForm,'commodityCnName',item.cnName)
@@ -1347,10 +1348,11 @@ import {getBcorpsattnList} from "@/api/iosBasicData/bcorpsattn";
                             this.$set(this.assemblyForm,'cyRemarks',item.details) // 客户里的详情信息
                             // 查询场站联系人
                             getBcorpsattnList(1,20,{pid:this.assemblyForm.cyId}).then(res=>{
-                                console.log(res,590)
-                                this.$set(this.assemblyForm,'cyTel',res.data.data.records[0].tel)
-                                this.$set(this.assemblyForm,'cyAddress',res.data.data.records[0].addr)
-                                this.$set(this.assemblyForm,'cyContacts',res.data.data.records[0].cname)
+                                if (res.data.data.records.length > 0) {
+                                    this.$set(this.assemblyForm,'cyTel',res.data.data.records[0].tel)
+                                    this.$set(this.assemblyForm,'cyAddress',res.data.data.records[0].addr)
+                                    this.$set(this.assemblyForm,'cyContacts',res.data.data.records[0].cname)
+                                }
                             })
                         }
                     }

+ 13 - 2
src/views/iosBasicData/SeafreightExportF/bills/assembly/formbottom.vue

@@ -656,18 +656,29 @@
                     });
                     return
                 }
+                console.log(this.assemblyForm.serviceTerms,659)
                 if (this.assemblyForm.serviceTerms == 'DOOR to DOOR' || this.assemblyForm.serviceTerms == 'DOOR to CY') {
                     this.inttraTitle = 'ToDoor'
                     this.inttraText = 'DOOR TO'
                     this.inttraBcorpslistByType()
                     this.inttraVisible = true
-                }
-                if (this.assemblyForm.serviceTerms == 'CY to DOOR') {
+                }else if (this.assemblyForm.serviceTerms == 'CY to DOOR') {
                     this.inttraTitle = 'DoorTo'
                     this.inttraText = 'TO DOOR'
                     this.inttraBcorpslistByType()
                     this.inttraVisible = true
+                }else {
+                    this.$confirm('请选择其他的服务方式',{
+                        confirmButtonText: "确定",
+                        cancelButtonText: "取消",
+                        type: "warning"
+                    }).then(()=>{
+                        console.log('123123')
+                    }).catch(()=>{
+                        console.log('11111111')
+                    })
                 }
+
             },
             // INTTRA EDI弹窗清除
             inttraCancellation(name){

+ 1 - 1
src/views/iosBasicData/SeafreightExportF/bills/assembly/mbinformation.vue

@@ -448,7 +448,7 @@
             // 获取船公司数据
             carrierBcorpsListfun(cnName){
                 let corpTypeName = '船公司'
-                getBcorpsList(1,10,{cnName,status: 0,corpTypeName}).then(res=>{
+                getBcorpslistByType(1,10,{cnName,status: 0,corpTypeName}).then(res=>{
                     this.carrierData = res.data.data.records
                 })
             },

+ 0 - 2
src/views/iosBasicData/SeafreightExportF/bills/billsDetails.vue

@@ -212,9 +212,7 @@
                                                           clearable :placeholder="item.text || ''" ></el-input>
                                             </el-form-item>
                                         </div>
-
                                     </el-col>
-
                                 </el-row>
                             </basic-container>
                         </el-form>

+ 43 - 9
src/views/iosBasicData/bcorps/detailsPage.vue

@@ -409,6 +409,12 @@
                       </el-form-item>
                   </el-col>
                   <el-col :span="8">
+                      <el-form-item label="INTRRA CODE" prop="inttraCode">
+                          <el-input v-model="formData.inttraCode" size="small" placeholder="请输入INTRRA CODE" clearable :style="{ width: '100%' }">
+                          </el-input>
+                      </el-form-item>
+                  </el-col>
+                  <el-col :span="8">
                       <el-form-item label="INTRRA ICUA 联系人" prop="inttraIcuaAttn" label-width="140px">
                           <el-input v-model="formData.inttraIcuaAttn" size="small" placeholder="请输入INTRRA ICUA 联系人" clearable :style="{ width: '100%' }">
                           </el-input>
@@ -1009,7 +1015,14 @@
 </template>
 <script>
 import { getToken } from "@/util/auth";
-import { addBcorps, updateBcorps, getBcorpsDetail } from "@/api/iosBasicData/bcorps";
+import {
+    addBcorps,
+    updateBcorps,
+    getBcorpsDetail,
+    bcorpsattnRemove,
+    bcorpsbankRemove,
+    bcorpsfilesRemove, bcorpsrenameRemove, corpsinvoiceheaderRemove, bcorpsbadrecordRemove
+} from "@/api/iosBasicData/bcorps";
 import { bcountrysList } from "@/api/iosBasicData/bcountrys";
 import { userList } from "@/api/system/user";
 import { getRateList } from "@/api/iosBasicData/rateManagement";
@@ -1176,11 +1189,11 @@ export default {
         //   message: ' ',
         //   trigger: 'change'
         // }],
-        // uscc: [{
-        //   required: true,
-        //   message: ' ',
-        //   trigger: 'change'
-        // }],
+        uscc: [{
+          required: true,
+          message: ' ',
+          trigger: 'change'
+        }],
         sourceType: [{
             required: true,
             message: ' ',
@@ -1549,19 +1562,21 @@ export default {
         // TODO 提交表单
         // 联系电话赋值
         if (this.formData.id != null) {
-          updateBcorps(this.formData).then(_ => {
+          updateBcorps(this.formData).then(res=> {
             this.$message({
               type: "success",
               message: "修改成功!"
             });
+            this.getBcorpsDetailfun(res.data.data.id)
           })
         } else {
           this.formData.attnTel = this.formData.tel
-          addBcorps(this.formData).then(() => {
+          addBcorps(this.formData).then((res) => {
             this.$message({
               type: "success",
               message: "添加成功!"
             });
+            this.getBcorpsDetailfun(res.data.data.id)
           });
         }
 
@@ -1678,6 +1693,7 @@ export default {
     },
     // 删除
     corpsAttnDelete(scope) {
+        console.log(scope.row.id,1697)
       this.$confirm('确认要删除吗?', '提示', {
         confirmButtonText: '确定',
         cancelButtonText: '取消',
@@ -1695,16 +1711,34 @@ export default {
         //   }
         // } else {
         if (this.activeName == 'khlxk') {
-          this.formData.corpsAttnList.splice(scope.$index, 1)
+            if (scope.row.id) {
+                bcorpsattnRemove(scope.row.id)
+            }
+            this.formData.corpsAttnList.splice(scope.$index, 1)
         } else if (this.activeName == 'yhxx') {
+            if (scope.row.id) {
+                bcorpsbankRemove(scope.row.id)
+            }
           this.formData.corpsBankList.splice(scope.$index, 1)
         } else if (this.activeName == 'fj') {
+            if (scope.row.id) {
+                bcorpsfilesRemove(scope.row.id)
+            }
           this.formData.corpsFilesList.splice(scope.$index, 1)
         } else if (this.activeName == 'fptt') {
+            if (scope.row.id) {
+                corpsinvoiceheaderRemove(scope.row.id)
+            }
           this.formData.corpsInvoiceHeaderList.splice(scope.$index, 1)
         } else if (this.activeName == 'gmjl') {
+            if (scope.row.id) {
+                bcorpsrenameRemove(scope.row.id)
+            }
           this.formData.corpsRenameList.splice(scope.$index, 1)
         } else if (this.activeName == 'bljl') {
+            if (scope.row.id) {
+                bcorpsbadrecordRemove(scope.row.id)
+            }
           this.formData.corpsBadrecordList.splice(scope.$index, 1)
         }
         // }

+ 7 - 0
src/views/iosBasicData/bunits/index.vue

@@ -262,6 +262,13 @@ export default {
       data: []
     };
   },
+  props:{
+      // 是否的弹窗状态打开
+      eldialog:{
+          type:Boolean,
+          default:false
+      }
+  },
   computed: {
     ...mapGetters(["permission"]),
     permissionList() {

+ 800 - 0
src/views/iosBasicData/financeProfit/index.vue

@@ -0,0 +1,800 @@
+<template>
+    <basic-container>
+        <avue-crud :option="option"
+                   :table-loading="loading"
+                   :data="data"
+                   :page.sync="page"
+                   :search.sync="query"
+                   v-model="form"
+                   ref="crud"
+                   id="out-table"
+                   :header-cell-class-name="headerClassName"
+                   @search-change="searchChange"
+                   @search-reset="searchReset"
+                   @current-change="currentChange"
+                   @size-change="sizeChange"
+                   @refresh-change="refreshChange"
+                   @resetColumn="resetColumnTwo('crud', 'option', 'optionBack', 336)"
+                   @saveColumn="saveColumnTwo('crud', 'option', 'optionBack', 336)"
+                   @on-load="onLoad" >
+            <template slot="header">
+                <el-table
+                    :data="commodityData"
+                    border
+                    size="small"
+                    @header-click="cellClick"
+                    style="width: 100%">
+                    <el-table-column
+                        v-for="(item,index) in commodityLabel" :key="index"
+                        :prop="item.prop"
+                        show-overflow-tooltip
+                        :label="item.label" />
+                </el-table>
+            </template>
+            <template slot-scope="{disabled,size}" slot="billTypeSearch">
+                <avue-input-tree :check-strictly="true"
+                                 :tags="true"
+                                 multiple v-model="query.billType"
+                                 placeholder="请选择业务类型"
+                                 :dic="billTypeData" :style="{ width: '100%' }">
+                </avue-input-tree>
+            </template>
+            <template slot="carrierCnNameSearch">
+                <search-query :datalist="carrierData"
+                              :selectValue="query.carrierId"
+                              :filterable="true"
+                              :remote="true"
+                              :clearable="true"
+                              :buttonIf="false"
+                              :forParameter="{key:'id',label:'cnName',value:'id'}"
+                              @remoteMethod="carrierBcorpsListfun"
+                              @corpFocus="carrierBcorpsListfun"
+                              @corpChange="corpChange($event,'carrierId')">
+                </search-query>
+            </template>
+            <template slot-scope="{disabled,size}" slot="clientSearch">
+                <search-query :datalist="clientData"
+                              :selectValue="query.client"
+                              :filterable="true"
+                              :remote="true"
+                              :clearable="true"
+                              :buttonIf="false"
+                              :forParameter="{key:'id',label:'cnName',value:'cnName'}"
+                              @remoteMethod="clientListfun"
+                              @corpFocus="clientListfun"
+                              @corpChange="corpChange($event,'client')">
+                </search-query>
+            </template>
+            <template slot-scope="{disabled,size}" slot="corpNameSearch">
+                <search-query :datalist="corpIdData"
+                              :selectValue="query.corpId"
+                              :filterable="true"
+                              :remote="true"
+                              :clearable="true"
+                              :buttonIf="false"
+                              :forParameter="{key:'id',label:'cnName',value:'id'}"
+                              @remoteMethod="getBcorpsListfun"
+                              @corpFocus="getBcorpsListfun"
+                              @corpChange="corpChange($event,'corpId')">
+                </search-query>
+            </template>
+            <template slot="vesselCnNameSearch">
+                <search-query :datalist="vesselData"
+                              :selectValue="query.vesselId"
+                              :filterable="true"
+                              :clearable="true"
+                              :remote="true"
+                              :buttonIf="false"
+                              placeholder="请选择船名"
+                              :forParameter="{key:'id',label:'cnName',value:'id'}"
+                              @remoteMethod="vesselBvesselsListfun"
+                              @corpFocus="vesselBvesselsListfun"
+                              @corpChange="corpChange($event,'vesselId')">
+                </search-query>
+            </template>
+            <template slot-scope="{disabled,size}" slot="srcTypeSearch">
+                <search-query :datalist="srcTypeData"
+                              :selectValue="query.srcType"
+                              :clearable="true"
+                              :buttonIf="false"
+                              :forParameter="{ key:'dictKey', label:'dictValue', value:'dictKey'}"
+                              @corpFocus="srcTypeWorkDictsfun"
+                              @corpChange="corpChange($event,'srcType')">
+                </search-query>
+            </template>
+            <template slot-scope="{disabled,size}" slot="salesmanSearch">
+                <search-query :datalist="srcIdData"
+                              :selectValue="query.srcId"
+                              :filterable="true"
+                              :remote="true"
+                              :clearable="true"
+                              :buttonIf="false"
+                              :forParameter="srcforParameter"
+                              @remoteMethod="srcCorpFocus"
+                              @corpFocus="srcCorpFocus"
+                              @corpChange="corpChange($event,'srcId')">
+                </search-query>
+            </template>
+            <template slot-scope="{disabled,size}" slot="accDeptNameSearch">
+                <tree-select v-model="query.accDeptName"
+                             filterable
+                             :data="accDeptData"
+                             :props="{label: 'title', children:'children'}"
+                             nodeKey="title"
+                             size="small"
+                             :multiple="false"
+                             @input="corpChange($event,'accDeptName')">
+                </tree-select>
+            </template>
+            <template slot="lineCnNameSearch">
+                <search-query :datalist="lineData"
+                              :selectValue="query.lineId"
+                              :filterable="true"
+                              :clearable="true"
+                              :remote="true"
+                              :buttonIf="false"
+                              :forParameter="{key:'id',label:'cnName',value:'id'}"
+                              placeholder="请选择航线"
+                              @remoteMethod="lineBlinesListfun"
+                              @corpFocus="lineBlinesListfun"
+                              @corpChange="corpChange($event,'lineId')">
+                </search-query>
+            </template>
+            <template slot="costMergeSearch">
+                <el-radio v-model="query.costMerge" :label="1" @input="radioSearchfun('costMerge')" >单票费用合并</el-radio>
+                <el-radio v-model="query.consistentCorpMerge" :label="1" @input="radioSearchfun('consistentCorpMerge')" >相同业务客户合并</el-radio>
+                <el-radio v-model="query.inconsistentCorpMerge" :label="1" @input="radioSearchfun('inconsistentCorpMerge')" >不同业务客户合并</el-radio>
+                <el-checkbox v-model="query.examine" :true-label="1" :false-label="0" >只显示整票审核业务</el-checkbox>
+                <el-checkbox v-model="query.mergeAmendFee" :true-label="1" :false-label="0" >合并amend费用</el-checkbox>
+                <el-checkbox v-model="query.examineDate" :true-label="1" :false-label="0" >按审核日期</el-checkbox>
+            </template>
+        </avue-crud>
+    </basic-container>
+</template>
+
+<script>
+    import {defaultDate3} from "@/util/date";
+    import {financeStatisticsFinanceProfit, financeStatisticsFinanceProfitSum} from "@/api/iosBasicData/paymentSummary";
+    import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
+    import {getBcorpsList, getBcorpslistByType} from "@/api/iosBasicData/bcorps";
+    import {getBvesselsList} from "@/api/iosBasicData/bvessels";
+    import {getWorkDicts} from "@/api/system/dictbiz";
+    import {getDeptLazyTree, getDeptTree} from "@/api/system/dept";
+    import {getList as userGetList} from '@/api/system/user'
+    import TreeSelect from "@/components/iosbasic-data/TreeSelect.vue";
+    import {blinesList} from "@/api/iosBasicData/blines";
+
+    export default {
+        components: {TreeSelect, SearchQuery},
+        data(){
+            return {
+                form: {},
+                loading: true,
+                page: {
+                    pageSize: 10,
+                    currentPage: 1,
+                    total: 0
+                },
+                query: {
+                    billType:'SE,SI',
+                    costMerge:1,
+                    statisticsDateStart:defaultDate3()[0],
+                    statisticsDateEnd:defaultDate3()[1],
+                },
+                option:{},
+                optionBack:{
+                    height:'auto',
+                    calcHeight: 30,
+                    tip: false,
+                    searchShow: true,
+                    searchMenuSpan: 4,
+                    border: true,
+                    index: false,
+                    selection: true,
+                    dialogClickModal: false,
+                    menu:false,
+                    addBtn:false,
+                    viewBtn:false,
+                    delBtn:false,
+                    editBtn:false,
+                    searchIcon:true,
+                    searchIndex:3,
+
+                    showSummary: true,
+                    summaryText: "合计",
+                    sumColumnList: [
+                        {
+                            name: 'amountDrUsd',
+                            type: 'sum',
+                            decimals: 2
+                        },{
+                            name: 'realAmountDrUsd',
+                            type: 'sum',
+                            decimals: 2
+                        },{
+                            name: 'amountDr',
+                            type: 'sum',
+                            decimals: 2
+                        },{
+                            name: 'realAmountDr',
+                            type: 'sum',
+                            decimals: 2
+                        },{
+                            name: 'amountDrLoc',
+                            type: 'sum',
+                            decimals: 2
+                        },{
+                            name: 'realAmountDrLoc',
+                            type: 'sum',
+                            decimals: 2
+                        },{
+                            name: 'amountCrUsd',
+                            type: 'sum',
+                            decimals: 2
+                        },{
+                            name: 'realAmountCrUsd',
+                            type: 'sum',
+                            decimals: 2
+                        },{
+                            name: 'amountCr',
+                            type: 'sum',
+                            decimals: 2
+                        },{
+                            name: 'realAmountCr',
+                            type: 'sum',
+                            decimals: 2
+                        },{
+                            name: 'amountCrLoc',
+                            type: 'sum',
+                            decimals: 2
+                        },{
+                            name: 'realAmountCrLoc',
+                            type: 'sum',
+                            decimals: 2
+                        },{
+                            name: 'amountProfitLoc',
+                            type: 'sum',
+                            decimals: 2
+                        },{
+                            name: 'realAmountProfitLoc',
+                            type: 'sum',
+                            decimals: 2
+                        }],
+                    column:[
+                        {
+                            label: "业务类型",
+                            prop: "billType",
+                            overHidden:true,
+                            search:true,
+                            searchslot:true,
+                            searchOrder:1,
+                            type: 'select',
+                            dicData:[],
+                            props: {
+                                label: "dictValue",
+                                value: "dictKey"
+                            },
+                        },
+                        {
+                            label: "业务编号",
+                            prop: "billNo",
+                            overHidden:true,
+                            search:true,
+                            searchOrder:11
+                        },
+                        {
+                            label: "H B/L",
+                            prop: "hblNo",
+                            overHidden:true,
+                        },
+                        {
+                            label: "M B/L",
+                            prop: "mblNo",
+                            overHidden:true,
+                        },
+                        {
+                            label: "往来单位",
+                            prop: "corpName",
+                            overHidden:true,
+                            search:true,
+                            searchslot:true,
+                            searchOrder:4
+                        },
+                        {
+                            label: "统计开始",
+                            prop: "statisticsDateStart",
+                            overHidden:true,
+                            search:true,
+                            hide: true,
+                            searchOrder:7,
+                            type: "date",
+                            format: "yyyy-MM-dd",
+                            valueFormat: "yyyy-MM-dd",
+                        },
+                        {
+                            label: "统计结束",
+                            prop: "statisticsDateEnd",
+                            overHidden:true,
+                            search:true,
+                            hide: true,
+                            searchOrder:8,
+                            type: "date",
+                            format: "yyyy-MM-dd",
+                            valueFormat: "yyyy-MM-dd",
+                        },
+                        {
+                            label: "业务员",
+                            prop: "salesman",
+                            overHidden:true,
+                            search:true,
+                            searchslot:true,
+                            searchOrder:10
+                        },
+                        {
+                            label: "起运港",
+                            prop: "pod",
+                            overHidden:true,
+                        },
+                        {
+                            label: "目的港",
+                            prop: "pol",
+                            overHidden:true,
+                        },
+                        {
+                            label: "船名",
+                            prop: "vesselCnName",
+                            overHidden:true,
+                            search:true,
+                            searchslot:true,
+                            searchOrder:5
+                        },
+                        {
+                            label: "航次",
+                            prop: "voyageNo",
+                            overHidden:true,
+                            search:true,
+                            searchslot:true,
+                            searchOrder:6
+                        },
+                        {
+                            label: "核算部门",
+                            prop: "accDeptName",
+                            overHidden:true,
+                            search:true,
+                            searchslot:true,
+                            searchOrder:12
+                        },
+                        {
+                            label: "航线",
+                            prop: "lineCnName",
+                            overHidden:true,
+                            search:true,
+                            searchslot:true,
+                            searchOrder:13
+                        },
+                        {
+                            label: "船公司",
+                            prop: "carrierCnName",
+                            overHidden:true,
+                            search:true,
+                            searchslot:true,
+                            searchOrder:2
+                        },
+                        {
+                            label: "操作员",
+                            prop: "operatorName",
+                            overHidden:true,
+                        },
+                        {
+                            label: "应收美元",
+                            prop: "amountDrUsd",
+                            overHidden:true,
+                        },
+                        {
+                            label: "实收美元",
+                            prop: "realAmountDrUsd",
+                            overHidden:true,
+                        },
+                        {
+                            label: "应收人民币",
+                            prop: "amountDr",
+                            overHidden:true,
+                        },
+                        {
+                            label: "实收美元",
+                            prop: "realAmountDr",
+                            overHidden:true,
+                        },
+                        {
+                            label: "合计应收",
+                            prop: "amountDrLoc",
+                            overHidden:true,
+                        },
+                        {
+                            label: "实际合计应收",
+                            prop: "realAmountDrLoc",
+                            overHidden:true,
+                        },
+                        {
+                            label: "应付美元",
+                            prop: "amountCrUsd",
+                            overHidden:true,
+                        },
+                        {
+                            label: "实付美元",
+                            prop: "realAmountCrUsd",
+                            overHidden:true,
+                        },
+                        {
+                            label: "应付人民币",
+                            prop: "amountCr",
+                            overHidden:true,
+                        },
+                        {
+                            label: "实付人民币",
+                            prop: "realAmountCr",
+                            overHidden:true,
+                        },
+                        {
+                            label: "合计应付",
+                            prop: "amountCrLoc",
+                            overHidden:true,
+                        },
+                        {
+                            label: "实际合计应付",
+                            prop: "realAmountCrLoc",
+                            overHidden:true,
+                        },
+                        {
+                            label: "单票利润",
+                            prop: "amountProfitLoc",
+                            overHidden:true,
+                        },
+                        {
+                            label: "实际单票利润",
+                            prop: "realAmountProfitLoc",
+                            overHidden:true,
+                        },
+                        {
+                            label: "委托人",
+                            prop: "client",
+                            overHidden:true,
+                            hide:true,
+                            search:true,
+                            searchslot:true,
+                            searchOrder:3
+                        },
+                        {
+                            label: "业务来源",
+                            prop: "srcType",
+                            overHidden:true,
+                            hide: true,
+                            search:true,
+                            searchslot:true,
+                            searchOrder:9
+                        },
+                        {
+                            label: "",
+                            prop: "costMerge",
+                            hide:true,
+                            search:true,
+                            searchslot:true,
+                            searchLabelWidth:'0',
+                            searchOrder:14,
+                            searchSpan:14,
+                        },
+                    ]
+                },
+                data:[],
+                // 业务类型数据
+                billTypeData:[],
+                // 船公司数据
+                carrierData:[],
+                // 委托人数据
+                clientData:[],
+                // 结算等单位
+                corpIdData:[],
+                // 船名
+                vesselData:[],
+                srcTypeData:[], // 业务来源
+                srcIdData:[], // 业务员
+                srcforParameter:{key:'id', label:'cnName', value:'id'},
+                accDeptData:[], // 部门数据
+                lineData:[], // 航线数据
+                commodityData:[], // 合计数据
+                // 合计的配置项
+                commodityLabel:[
+                    {
+                        id:1,
+                        label:'应付人民币',
+                        prop:'amountCr'
+                    },
+                    {
+                        id:2,
+                        label:'应付美元',
+                        prop:'amountCrUsd'
+                    },
+                    {
+                        id:3,
+                        label:'合计应付',
+                        prop:'amountCrLoc'
+                    },
+                    {
+                        id:4,
+                        label:'应收人民币',
+                        prop:'amountDr'
+                    },
+                    {
+                        id:5,
+                        label:'应收美元',
+                        prop:'amountDrUsd'
+                    },
+                    {
+                        id:6,
+                        label:'合计应收',
+                        prop:'amountDrLoc'
+                    },
+                    {
+                        id:7,
+                        label:'实付人民币',
+                        prop:'realAmountCr'
+                    },
+                    {
+                        id:8,
+                        label:'实付美元',
+                        prop:'realAmountCrUsd'
+                    },
+                    {
+                        id:9,
+                        label:'实付合计',
+                        prop:'realAmountCrLoc'
+                    },
+                    {
+                        id:7,
+                        label:'实付人民币',
+                        prop:'realAmountDr'
+                    },
+                    {
+                        id:8,
+                        label:'实付美元',
+                        prop:'realAmountDrUsd'
+                    },
+                    {
+                        id:9,
+                        label:'实付合计',
+                        prop:'realAmountCrLoc'
+                    },
+                    {
+                        id:9,
+                        label:'实际单票利润',
+                        prop:'realAmountProfitLoc'
+                    },
+                ],
+            }
+        },
+        async created() {
+            this.option = await this.getColumnData(this.getColumnName(336), this.optionBack);
+            this.getWorkDictsfun()
+            this.getLazylistfun() // 获取部门数据
+        },
+        methods:{
+            // 获取字典数据
+            getWorkDictsfun(){
+                // 获取业务类型
+                getWorkDicts('profit_business_type_los').then(res=>{
+                    this.findObject(this.option.column, "billType").dicData = res.data.data
+                    this.billTypeData = res.data.data.map(item=>{
+                        return {label:item.dictValue, value:item.dictKey}
+                    })
+                })
+            },
+            // 单选
+            radioSearchfun(name){
+                if (name == 'costMerge') {
+                    this.$set(this.query,'consistentCorpMerge',null)
+                    this.$set(this.query,'inconsistentCorpMerge',null)
+                }else if (name == 'consistentCorpMerge') {
+                    this.$set(this.query,'inconsistentCorpMerge',null)
+                    this.$set(this.query,'costMerge',null)
+                }else if (name == 'inconsistentCorpMerge') {
+                    this.$set(this.query,'costMerge',null)
+                    this.$set(this.query,'consistentCorpMerge',null)
+                }
+            },
+            // 业务员下拉
+            srcCorpFocus(value,name){
+                if (this.query.srcType == 'SALES') {
+                    // 业务员
+                    this.srcforParameter = { key:'id', label:'name', value:'id'}
+                    this.salesUserGetListfun(value)
+                }else if (this.form.srcType == 'AGENT') {
+                    // 代理
+                    this.srcforParameter = { key:'id', label:'cnName', value:'id'}
+                    this.agentBcorpsListfun(value)
+                }else if (this.form.srcType == 'OWN') {
+                    // 公司
+                    this.srcforParameter = { key:'id', label:'title', value:'id'}
+                    this.ownDeptLazyTreefun()
+                }else {}
+            },
+            // 下拉
+            corpChange(value,name){
+                if (name == 'srcType') {
+                    if (value == 'OWN') {
+                        // 公司
+                        this.srcforParameter = { key:'id', label:'title', value:'id'}
+                        this.ownDeptLazyTreefun()
+                    }else if (value == 'AGENT') {
+                        // 代理
+                        this.srcforParameter = { key:'id', label:'cnName', value:'id'}
+                        this.agentBcorpsListfun()
+                    }else if (value == 'SALES') {
+                        // 业务员
+                        this.srcforParameter = { key:'id', label:'name', value:'id'}
+                        this.salesUserGetListfun()
+                    }else {}
+                    this.$set(this.query,name,value)
+                }else if (name == 'accDeptName') {
+                    for(let item of this.accDeptData) {
+                        if (item.title == value){
+                            this.$set(this.query,'accDeptName',item.title)
+                            this.$set(this.query,'accDeptId',item.id)
+                        }
+                    }
+                }else {
+                    this.$set(this.query,name,value)
+                }
+            },
+            // 接口
+            // 船公司
+            carrierBcorpsListfun(cnName){
+                let corpTypeName = '船公司'
+                getBcorpslistByType(1,10,{cnName,corpTypeName,status: 0}).then(res=>{
+                    this.carrierData = res.data.data.records
+                })
+            },
+            // 委托人
+            clientListfun(cnName){
+                getBcorpsList(1,10,{cnName,status: 0}).then(res=>{
+                    this.clientData = res.data.data.records
+                })
+            },
+            // 结算单位
+            getBcorpsListfun(cnName){
+                getBcorpsList(1,10,{cnName,status: 0}).then(res=>{
+                    this.corpIdData = res.data.data.records
+                })
+            },
+            // 船名
+            vesselBvesselsListfun(cnName){
+                getBvesselsList(1,10,{cnName,status: 0}).then(res=>{
+                    this.vesselData = res.data.data.records
+                })
+            },
+            // 获取业务来源数据
+            srcTypeWorkDictsfun(){
+                getWorkDicts('src_type_los').then(res=>{
+                    this.srcTypeData = res.data.data
+                })
+            },
+            // 获取公司名称 用户管理左侧
+            ownDeptLazyTreefun(){
+                getDeptLazyTree(0).then(res=>{
+                    this.srcIdData = res.data.data
+                })
+            },
+            // 获取业务来源代理数据
+            agentBcorpsListfun(cnName){
+                let corpTypeName = '国内直接客户,国内同行及代理,国外直接客户,国外同行及代理'
+                getBcorpslistByType(1,10,{cnName,status: 0,corpTypeName}).then(res=>{
+                    this.srcIdData = res.data.data.records
+                })
+            },
+            // 获取业务来源业务员数据
+            salesUserGetListfun(account){
+                userGetList(1,10,{account}).then(res=>{
+                    this.srcIdData = res.data.data.records
+                })
+            },
+            // 获取核算部门数据
+            getLazylistfun(){
+                getDeptTree().then(res=>{
+                    this.accDeptData = res.data.data
+                })
+            },
+            // 航线数据
+            lineBlinesListfun(cnName){
+                blinesList(1,10,{cnName,status: 0}).then(res=>{
+                    this.lineData = res.data.data.records
+                })
+            },
+            // 清空搜索回调方法
+            searchReset() {
+                this.query = {};
+                this.onLoad(this.page);
+            },
+            // 搜索
+            searchChange(params, done) {
+                this.query = params;
+                this.page.currentPage = 1;
+                this.onLoad(this.page, params);
+                done();
+            },
+            currentChange(currentPage){
+                this.page.currentPage = currentPage;
+            },
+            sizeChange(pageSize){
+                this.page.pageSize = pageSize;
+            },
+            refreshChange() {
+                this.onLoad(this.page, this.query);
+            },
+            onLoad(page, params = {}) {
+                this.loading = true;
+                financeStatisticsFinanceProfit(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
+                    const data = res.data.data;
+                    this.page.total = data.total;
+                    this.data = data.records;
+                    this.loading = false;
+                    financeStatisticsFinanceProfitSum(Object.assign(params, this.query)).then(re=>{
+                        this.commodityData = [re.data.data]
+                    })
+                    this.selectionClear();
+                });
+            },
+            selectionClear() {
+                this.$refs.crud.toggleSelection();
+            },
+            //自定义列保存
+            async saveColumnTwo(ref, option, optionBack, code) {
+                /**
+                 * 已定义全局方法,直接使用,saveColumnData保存列数据方法,参数传值(表格名称,当前表格的option数据)
+                 * 已定义全局方法,直接使用,getColumnName方法用来获取枚举值,参数根据自己定义的code值获取中文名
+                 * 一定要执行异步操作,要等接口成功返回,才能执行下一行代码
+                 */
+                const inSave = await this.saveColumnData(this.getColumnName(code), this[option]);
+                if (inSave) {
+                    this.$message.success("保存成功");
+                    //关闭窗口
+                    this.$refs[ref].$refs.dialogColumn.columnBox = false;
+                }
+            },
+            //自定义列重置
+            async resetColumnTwo(ref, option, optionBack, code) {
+                this[option] = this[optionBack];
+                const inSave = await this.delColumnData(this.getColumnName(code), this[optionBack]);
+                if (inSave) {
+                    this.$message.success("重置成功");
+                    this.$refs[ref].$refs.dialogColumn.columnBox = false;
+                }
+            },
+            // 更改表格颜色
+            headerClassName(tab){
+                //颜色间隔
+                let back = ""
+                if (tab.columnIndex >= 0 && tab.column.level === 1) {
+                    if (tab.columnIndex % 2 === 0) {
+                        back = "back-one"
+                    } else if (tab.columnIndex % 2 === 1) {
+                        back = "back-two"
+                    }
+                }
+                return back;
+            },
+        }
+    }
+</script>
+
+<style scoped>
+::v-deep#out-table .back-one {
+    background: #ecf5ff !important;
+    text-align: center;
+}
+::v-deep#out-table .back-two {
+    background: #ecf5ff !important;
+    text-align: center;
+}
+/deep/ .el-col-md-8 {
+    width: 24.33333%;
+}
+</style>

+ 39 - 13
src/views/iosBasicData/losbfeestemplate/feesTemplateItems.vue

@@ -204,6 +204,7 @@
                                                   :datalist="curCodeData"
                                                   :selectValue="feestemplateForm[item.prop]"
                                                   title="币别"
+                                                  :buttonIf="false"
                                                   :filterable="true"
                                                   :clearable="true"
                                                   :remote="true"
@@ -213,7 +214,7 @@
                                     </search-query>
                                 </div>
                                 <div v-else-if="item.prop == 'unitNo'">
-                                    <search-query ref="SearchQuery"
+                                    <search-query ref="SearchUnitNo"
                                                   :datalist="unitNoData"
                                                   :selectValue="feestemplateForm[item.prop]"
                                                   title="计量单位"
@@ -221,8 +222,11 @@
                                                   :clearable="true"
                                                   :remote="true"
                                                   :forParameter="{key:'id',label:'code',value:'code',disabled:'status'}"
-                                                  @remoteMethod="getBunitsListfun" @corpChange="unitNoCorpChange" >
-                                        <bunits></bunits>
+                                                  @remoteMethod="getBunitsListfun" @corpChange="unitNoCorpChange"
+                                                  @eldialogConfirm="eldialogConfirm(item.prop)" >
+                                        <bunits ref="bunits"
+                                                :eldialog="true"
+                                                @selectionChange="eldialogMultipleChoice($event,item.prop)"></bunits>
                                     </search-query>
                                 </div>
 
@@ -594,6 +598,24 @@ export default {
                 }
             }
         },
+        // 查找弹窗里选择导出
+        eldialogConfirm(){
+            this.$set(this.feestemplateForm,'unitId',this.$refs.bunits[0].selectionList[0].id)
+            this.$set(this.feestemplateForm,'unitNo',this.$refs.bunits[0].selectionList[0].code)
+            this.$refs.SearchUnitNo[0].corpVisible = false
+        },
+        // 下拉多选弹窗数据多选回调
+        eldialogMultipleChoice(list,name){
+            let arr = []
+            if (list.length > 1) {
+                this.$refs.bunits[0].$refs.crud.toggleSelection() // 先清空所以选择的数据
+                arr = [list[list.length -1]] // 获取最新点击的数组
+                this.$refs.bunits[0].$refs.crud.toggleSelection(arr,true) // 把刚点击的数组变成选择状态
+            }else {
+                arr = list
+            }
+            this.$refs.bunits[0].selectionList = arr
+        },
         // 获取详情数据
         losbfeestemplateDetailfun(id){
             this.pageLoading = true
@@ -647,17 +669,21 @@ export default {
         },
         // 费用详细确认
         feestemplatecompanyConfirm(){
-            if (this.feestemplateIndex != null) {
-                this.form.feesTemplateItemsList.splice(this.feestemplateIndex,1,this.feestemplateForm)
-            }else {
-                if (!this.form.feesTemplateItemsList) {
-                    this.form.feesTemplateItemsList = []
+            this.$refs.feestemplateForm.validate((valid)=>{
+                if (valid) {
+                    if (this.feestemplateIndex != null) {
+                        this.form.feesTemplateItemsList.splice(this.feestemplateIndex,1,this.feestemplateForm)
+                    }else {
+                        if (!this.form.feesTemplateItemsList) {
+                            this.form.feesTemplateItemsList = []
+                        }
+                        this.form.feesTemplateItemsList.push(this.feestemplateForm)
+                    }
+                    this.feestemplateForm = {}
+                    this.feestemplateIndex = null
+                    this.feestemplateVisible = false
                 }
-                this.form.feesTemplateItemsList.push(this.feestemplateForm)
-            }
-            this.feestemplateForm = {}
-            this.feestemplateIndex = null
-            this.feestemplateVisible = false
+            })
         },
         // 费用详细关闭
         feestemplateClose(done){

+ 5 - 5
src/views/iosBasicData/rateManagement/detailsPage.vue

@@ -95,10 +95,10 @@
                            size="small"
                            @click="editFun(row)">编辑
                 </el-button>
-                <!--<el-button type="text"-->
-                <!--           size="small"-->
-                <!--           @click="rowDel(row)">删除-->
-                <!--</el-button>-->
+                <el-button type="text"
+                           size="small"
+                           @click="rowDel(row)">删除
+                </el-button>
             </template>
         </avue-crud>
       </basic-container>
@@ -395,7 +395,7 @@ export default {
         }).then(()=>{
             bcurexrateDetails(row.id).then(res=>{
                 this.$message.success('操作成功')
-                this.getDetail(this.form.id)
+                this.dataList.splice(row.$index, 1)
             })
         })
     },

+ 1 - 1
src/views/iosBasicData/rateManagement/js/optionList.js

@@ -39,7 +39,7 @@ export const optionList = {
   dialogFullscreen: true,
   addRowBtn:false,
   cellBtn:true,
-  rowKey:'index',
+  rowKey: "id",
   selection:true,
   column: [{
     label: "币种代码",

+ 5 - 0
src/views/system/dept.vue

@@ -217,6 +217,11 @@
                   overHidden:true,
               },
               {
+                  label: "公司地址",
+                  prop: "address",
+                  overHidden:true,
+              },
+              {
                   label: "fax",
                   prop: "fax",
                   overHidden:true,

+ 455 - 0
src/views/tirePartsMall/financialManagement/saleDetail/index.vue

@@ -0,0 +1,455 @@
+<template>
+    <basic-container>
+        <avue-crud
+            :key="key"
+            ref="crud"
+            :option="option"
+            :data="data"
+            :search.sync="query"
+            @on-load="onLoad"
+            @search-reset="query={}"
+            :page.sync="page"
+            :cell-style="cellStyle"
+            @search-change="searchChange"
+            @resetColumn="resetColumnTwo('crud', 'option', 'optionList', 337)"
+            @saveColumn="saveColumnTwo('crud', 'option', 'optionList', 337)" >
+            <template slot="menuLeft">
+                <el-button type="warning" icon="el-icon-download" size="small" @click="outExport">导出</el-button>
+            </template>
+            <template slot="header">
+                <el-table
+                    :data="commodityData"
+                    border
+                    size="small"
+                    @header-click="cellClick"
+                    style="width: 100%">
+                    <el-table-column
+                        v-for="(item,index) in commodityLabel" :key="index"
+                        :prop="item.prop"
+                        show-overflow-tooltip
+                        :label="item.label" />
+                </el-table>
+            </template>
+            <template slot="customerNameSearch">
+                <search-query :datalist="customerData"
+                              :selectValue="query.customerName"
+                              :filterable="true"
+                              :clearable="true"
+                              :remote="true"
+                              :buttonIf="false"
+                              :forParameter="{key:'id',label:'cname',value:'cname'}"
+                              placeholder="请选择客户名称"
+                              @remoteMethod="KHgetListfun"
+                              @corpFocus="KHgetListfun"
+                              @corpChange="corpChange($event,'customerName')">
+                </search-query>
+            </template>
+            <template slot="goodsNameSearch">
+                <search-query :datalist="goodsData"
+                              :selectValue="query.goodsName"
+                              :filterable="true"
+                              :clearable="true"
+                              :remote="true"
+                              :buttonIf="false"
+                              :forParameter="{key:'id',label:'cname',value:'cname'}"
+                              placeholder="请选择商品名称"
+                              @remoteMethod="SPgetListfun"
+                              @corpFocus="SPgetListfun"
+                              @corpChange="corpChange($event,'goodsName')">
+                </search-query>
+            </template>
+            <template slot="salerNameSearch">
+                <search-query :datalist="salerData"
+                              :selectValue="query.salerName"
+                              :filterable="true"
+                              :clearable="true"
+                              :remote="true"
+                              :buttonIf="false"
+                              :forParameter="{key:'id',label:'name',value:'name'}"
+                              placeholder="请选择业务员"
+                              @remoteMethod="YWYgetListfun"
+                              @corpFocus="YWYgetListfun"
+                              @corpChange="corpChange($event,'salerName')">
+                </search-query>
+            </template>
+            <template slot="actualPaymentStatusSearch">
+                <search-query :datalist="actualPaymentStatusData"
+                              :selectValue="query.actualPaymentStatus"
+                              :clearable="true"
+                              :buttonIf="false"
+                              :forParameter="{key:'dictKey',label:'dictValue',value:'dictKey'}"
+                              placeholder="请选择结算方式"
+                              @corpFocus="actualPaymentWorkDictsfun"
+                              @corpChange="corpChange($event,'actualPaymentStatus')">
+                </search-query>
+            </template>
+            <template slot="statusSearch">
+                <search-query :datalist="statusData"
+                              :selectValue="query.status"
+                              :buttonIf="false"
+                              :forParameter="{key:'dictKey',label:'dictValue',value:'dictKey'}"
+                              placeholder="请选择单据状态"
+                              @corpFocus="statusWorkDictsfun"
+                              @corpChange="corpChange($event,'status')">
+                </search-query>
+            </template>
+            <template slot="isContainSearch">
+                <el-checkbox v-model="query.isContain" :true-label="1" :false-label="0" ></el-checkbox>
+            </template>
+            <template slot="status" slot-scope="{ row }" >
+                <span>{{row.status}}</span>
+            </template>
+        </avue-crud>
+    </basic-container>
+</template>
+
+<script>
+
+import {statisticsSaleDetail, statisticsSaleDetailSum} from "@/api/saleDetail";
+import {defaultDate3} from "@/util/date";
+import {getList as KHgetList } from '@/api/tirePartsMall/basicData/customerInformation/index'
+import {getList as SPgetList} from '@/api/tirePartsMall/basicData/commodityInformation/index'
+import {getList as YWYgetList} from "@/api/system/user"
+import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
+import {getWorkDicts} from "@/api/system/dictbiz";
+import { getToken } from "@/util/auth";
+
+export default {
+    components: {SearchQuery},
+        data(){
+            return {
+                key: 0,
+                data: [],
+                total: [],
+                query: {
+                    businesDateStart:defaultDate3()[0],
+                    businesDateEnd:defaultDate3()[1],
+                    isContain:1,
+                },
+                page: {
+                    pageSize: 10,
+                    currentPage: 1,
+                    total: 0,
+                    pageSizes: [10, 50, 100, 200, 300]
+                },
+                option: {},
+                optionList: {
+                    align: 'center',
+                    stripe: true,
+                    index: true,
+                    menu: false,
+                    height: "auto",
+                    searchSpan: 6,
+                    // searchIcon: true,
+                    // searchIndex: 2,
+                    // highlightCurrentRow: true,
+                    searchMenuSpan:18,
+                    addBtn: false,
+                    showSummary: true,
+                    summaryText: "合计",
+                    sumColumnList: [
+                        {
+                            name: 'goodsNum',
+                            type: 'sum',
+                            decimals: 0
+                        },
+                        {
+                            name: 'price',
+                            type: 'sum',
+                            decimals: 2
+                        },
+                        {
+                            name: 'subTotalMoney',
+                            type: 'sum',
+                            decimals: 2
+                        },
+                        {
+                            name: 'costprie',
+                            type: 'sum',
+                            decimals: 2
+                        },
+                        {
+                            name: 'profit',
+                            type: 'sum',
+                            decimals: 2
+                        }
+                    ],
+                    column: [{
+                        label: '客户名称',
+                        prop: 'customerName',
+                        overHidden: true,
+                        search:true,
+                        searchslot:true,
+                        searchOrder:3
+                    },{
+                        label: '业务员',
+                        prop: 'salerName',
+                        overHidden: true,
+                        search:true,
+                        searchslot:true,
+                        searchOrder:4
+                    },{
+                        label: '仓库',
+                        prop: 'storageName',
+                        overHidden: true,
+                    },{
+                        label: '销售单号',
+                        prop: 'ordNo',
+                        overHidden: true,
+                        search: true,
+                        searchOrder:5
+                    },{
+                        label: '业务日期',
+                        prop: 'businesDate',
+                        overHidden: true,
+                    },{
+                        label: '结算状态',
+                        prop: 'actualPaymentStatus',
+                        overHidden: true,
+                        search:true,
+                        searchslot:true,
+                        searchOrder:7
+                    },{
+                        label: '品牌',
+                        prop: 'brandNames',
+                        overHidden: true,
+                    },{
+                        label: '商品名称',
+                        prop: 'goodsName',
+                        overHidden: true,
+                        search:true,
+                        searchslot:true,
+                        searchOrder:6
+                    },{
+                        label: '规格型号',
+                        prop: 'propertyName',
+                        overHidden: true,
+                    },{
+                        label: '花纹',
+                        prop: 'pattern',
+                        overHidden: true,
+                    },{
+                        label: '数量',
+                        prop: 'goodsNum',
+                        overHidden: true,
+                    },{
+                        label: '价格',
+                        prop: 'price',
+                        overHidden: true,
+                    },{
+                        label: '金额',
+                        prop: 'subTotalMoney',
+                        overHidden: true,
+                    },{
+                        label: '成本',
+                        prop: 'costprie',
+                        overHidden: true,
+                    },{
+                        label: '毛利',
+                        prop: 'profit',
+                        overHidden: true,
+                    },{
+                        label: '业务开始',
+                        prop: 'businesDateStart',
+                        overHidden: true,
+                        search:true,
+                        hide: true,
+                        searchOrder:1,
+                        type: "date",
+                        format: "yyyy-MM-dd",
+                        valueFormat: "yyyy-MM-dd",
+                    },{
+                        label: '业务结束',
+                        prop: 'businesDateEnd',
+                        overHidden: true,
+                        search:true,
+                        hide: true,
+                        searchOrder:2,
+                        type: "date",
+                        format: "yyyy-MM-dd",
+                        valueFormat: "yyyy-MM-dd",
+                    },{
+                        label: '单据状态',
+                        prop: 'status',
+                        overHidden: true,
+                        search:true,
+                        searchslot:true,
+                        searchOrder:8
+                    },{
+                        label: '包含未发货',
+                        prop: 'isContain',
+                        overHidden: true,
+                        hide:true,
+                        search:true,
+                        searchslot:true,
+                        searchOrder:9
+                    }]
+                },
+                customerData:[], // 客户数据
+                goodsData:[], // 商品名称
+                salerData:[], // 业务员
+                actualPaymentStatusData:[], // 结算状态
+                statusData:[], // 单据状态
+                commodityData:[], // 合计数据
+                // 合计的配置项
+                commodityLabel:[{
+                    id:1,
+                    label:'销售数量',
+                    prop:'goodsSum'
+                },{
+                    id:2,
+                    label:'销售金额',
+                    prop:'amount'
+                },{
+                    id:3,
+                    label:'销售成本',
+                    prop:'costprie'
+                },{
+                    id:4,
+                    label:'销售毛利',
+                    prop:'profit'
+                },{
+                    id:5,
+                    label:'已取消数量',
+                    prop:'goodsSumCancellation'
+                },{
+                    id:6,
+                    label:'已取消金额',
+                    prop:'amountCancellation'
+                },{
+                    id:7,
+                    label:'已取消成本',
+                    prop:'costprieCancellation'
+                },{
+                    id:8,
+                    label:'已取消毛利',
+                    prop:'profitCancellation'
+                }],
+            }
+        },
+        async created() {
+            this.option = await this.getColumnData(this.getColumnName(337), this.optionList);
+        },
+        methods:{
+            cellStyle({row,rowIndex}){
+                if (row.status == '已取消') {
+                    return 'color: red';
+                }
+                return
+            },
+            //导出
+            outExport() {
+                let config = { params: { ...this.query } }
+                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/blade-sales-part/statistics/saleDetailExport',   //跳转目标窗口的地址
+                    query: {
+                        ...config.params,    //括号内是要传递给新窗口的参数
+                    }
+                })
+                window.open(routeData.href.slice(1, routeData.href.length) + '&' + `${this.website.tokenHeader}=${getToken()}`);
+            },
+            // 获取客户数据
+            KHgetListfun(cname){
+                KHgetList({current: 1, size: 20, corpType: 'KH', cname:cname?cname:null}).then(res=>{
+                    this.customerData = res.data.data.records
+                })
+            },
+            // 获取业务员数据
+            YWYgetListfun(realName){
+                YWYgetList(1,10,{realName:realName?realName:null}).then(res=>{
+                    this.salerData = res.data.data.records
+                })
+            },
+            // 获取商品数据
+            SPgetListfun(cname){
+                SPgetList({current: 1, size: 20, cname:cname?cname:null}).then(res=>{
+                    this.goodsData = res.data.data.records
+                })
+            },
+            // 结算状态
+            actualPaymentWorkDictsfun(){
+                getWorkDicts('settlement_Status').then(res=>{
+                    this.actualPaymentStatusData = res.data.data
+                })
+            },
+            // 单据状态
+            statusWorkDictsfun(){
+                getWorkDicts('document_status').then(res=>{
+                    this.statusData = res.data.data
+                })
+            },
+            // 下拉回调
+            corpChange(value,name) {
+                this.$set(this.query,name,value)
+            },
+            //搜索
+            searchChange(params, done) {
+                this.query = params;
+                this.onLoad(this.page, params)
+                done();
+            },
+            // 获取列表数据
+            onLoad(page, params = {}) {
+                let queryParams = {
+                    size: page.pageSize,
+                    current: page.currentPage,
+                    ...Object.assign(params, this.query)
+                }
+                statisticsSaleDetail(queryParams).then(res => {
+                    this.data = res.data.data.records
+                    this.page.total = res.data.data.total
+                    // this.option.height = window.innerHeight - 230;
+                    // generalLedgerTotal(queryParams).then(res=>{
+                    //     this.total = res.data.data
+                    // })
+                    statisticsSaleDetailSum({...Object.assign(params, this.query)}).then(re=>{
+                        this.commodityData = [re.data.data]
+
+                    })
+                })
+            },
+            //自定义列保存
+            async saveColumnTwo(ref, option, optionBack, code) {
+                /**
+                 * 已定义全局方法,直接使用,saveColumnData保存列数据方法,参数传值(表格名称,当前表格的option数据)
+                 * 已定义全局方法,直接使用,getColumnName方法用来获取枚举值,参数根据自己定义的code值获取中文名
+                 * 一定要执行异步操作,要等接口成功返回,才能执行下一行代码
+                 */
+                const inSave = await this.saveColumnData(this.getColumnName(code), this[option]);
+                if (inSave) {
+                    this.$message.success("保存成功");
+                    //关闭窗口
+                    this.$refs[ref].$refs.dialogColumn.columnBox = false;
+                }
+            },
+            //自定义列重置
+            async resetColumnTwo(ref, option, optionBack, code) {
+                this[option] = this[optionBack];
+                const inSave = await this.delColumnData(this.getColumnName(code), this[optionBack]);
+                if (inSave) {
+                    this.$message.success("重置成功");
+                    this.$refs[ref].$refs.dialogColumn.columnBox = false;
+                }
+            },
+
+        }
+    }
+</script>
+
+<style scoped>
+
+</style>