Browse Source

货代 11.17

caojunjie 2 years ago
parent
commit
0433707a45

+ 5 - 1
src/enums/column-name.js

@@ -1395,7 +1395,11 @@ const columnName = [{
   },
   {
     code: 315,
-    name: '货运代理-账单管理-结算单'
+    name: '货运代理-账单管理-收款结算'
+  },
+  {
+    code: 316,
+    name: '货运代理-账单管理-付费申请'
   },
 ]
 export const getColumnName = (key) => {

+ 17 - 2
src/router/views/index.js

@@ -2823,14 +2823,29 @@ export default [{
       component: () => import( /* webpackChunkName: "views" */ '@/views/iosBasicData/finstlbills/index.vue')
     }]
   },
-  // 结算单(F)
+  // 付费申请(F)
+  {
+    path: '/iosBasicData/PaymentApplication/index',
+    component: Layout,
+    hidden: true,
+    children: [{
+      path: '/iosBasicData/PaymentApplication/index',
+      name: '付费申请(F)',
+      meta: {
+        i18n: '/iosBasicData/PaymentApplication/index',
+        keepAlive: true,
+      },
+      component: () => import( /* webpackChunkName: "views" */ '@/views/iosBasicData/PaymentApplication/index.vue')
+    }]
+  },
+  // 收款结算(F)
   {
     path: '/iosBasicData/CollectionSettlement/index',
     component: Layout,
     hidden: true,
     children: [{
       path: '/iosBasicData/CollectionSettlement/index',
-      name: '结算单(F)',
+      name: '收款结算(F)',
       meta: {
         i18n: '/iosBasicData/CollectionSettlement/index',
         keepAlive: true,

+ 159 - 182
src/views/iosBasicData/CollectionSettlement/assembly/finstlbillsitems.vue

@@ -28,6 +28,10 @@
                 label="行号" width="50px">
             </el-table-column>
             <el-table-column
+                prop="isCleared"
+                label="核销">
+            </el-table-column>
+            <el-table-column
                 prop="lineNo"
                 label="源业务编号" width="120px">
                 <template slot-scope="{ row }">
@@ -36,17 +40,38 @@
                 </template>
             </el-table-column>
             <el-table-column
-                prop="invoiceNo"
-                label="发票号">
+                prop="tableSelect"
+                label="选择" width="50px" v-if="brfalse">
+                <template slot-scope="scope">
+                    <el-checkbox v-model="scope.row.tableSelect"
+                                 :true-label="1" :false-label="0"
+                                 @change="toggleSelection([scope.row])">
+                    </el-checkbox>
+                </template>
             </el-table-column>
             <el-table-column
-                prop="corpCnName"
-                label="结算单位" width="130px">
-                <template slot-scope="{ row }">
-                    <avue-text-ellipsis :text="row.corpCnName" :height="50" :width="130">
-                        <small slot="more">...</small>
-                    </avue-text-ellipsis>
-                </template>
+                prop="accBillNo"
+                label="账单编号">
+            </el-table-column>
+            <el-table-column label="结算单位">
+                <el-table-column
+                    prop="corpCode"
+                    label="编号" width="130px">
+                    <template slot-scope="{ row }">
+                        <avue-text-ellipsis :text="row.corpArgreementNo" :height="50" :width="130">
+                            <small slot="more">...</small>
+                        </avue-text-ellipsis>
+                    </template>
+                </el-table-column>
+                <el-table-column
+                    prop="corpCnName"
+                    label="简称" width="130px">
+                    <template slot-scope="{ row }">
+                        <avue-text-ellipsis :text="row.corpCnName" :height="50" :width="130">
+                            <small slot="more">...</small>
+                        </avue-text-ellipsis>
+                    </template>
+                </el-table-column>
             </el-table-column>
             <el-table-column
                 prop="mblno"
@@ -57,40 +82,88 @@
                     </avue-text-ellipsis>
                 </template>
             </el-table-column>
-            <el-table-column label="本地结算金额">
-                <!--amount-->
-                <el-table-column
-                    prop="amountRMB"
-                    label="RMB">
-                </el-table-column>
-                <el-table-column
-                    prop="amountUSD"
-                    label="USD">
-                </el-table-column>
+            <el-table-column
+                prop="dc"
+                label="收/付" width="120px">
+                <template slot-scope="{ row }">
+                    <span>{{row.dc}}</span>
+                </template>
             </el-table-column>
             <el-table-column
                 prop="currentStlExrate"
                 label="汇率">
             </el-table-column>
             <el-table-column
-                prop="tableSelect"
-                label="选择" width="50px" v-if="brfalse">
-                <template slot-scope="scope">
-                    <el-checkbox v-model="scope.row.tableSelect"
-                                 :true-label="1" :false-label="0"
-                                 @change="toggleSelection([scope.row])">
-                    </el-checkbox>
-                </template>
-            </el-table-column>
-            <el-table-column
-                prop="isChecked"
-                label="对账">
+                label="本次结算币种"
+                prop="currentStlCurCode" width="130px">
                 <template slot-scope="{row}">
-                    <span v-if="row.isChecked == item.dictKey" v-for="item in ifInvoiceData" :key="item.dictKey">
-                        {{item.dictValue}}
-                    </span>
+                    <search-query :datalist="curCodeData"
+                                  :selectValue="row.currentStlCurCode"
+                                  :filterable="true"
+                                  :clearable="true"
+                                  :remote="true"
+                                  :buttonIf="false"
+                                  :forParameter="{key:'id',label:'code',value:'code'}"
+                                  @remoteMethod="getRateListfun"
+                                  @corpChange="corpChange($event,row)"
+                                  @corpFocus="getRateListfun">
+                    </search-query>
                 </template>
             </el-table-column>
+            <el-table-column label="本次结算金额(含税)">
+                <!--默认应结算 可以修改-->
+                <!--currentStlAmount-->
+                <el-table-column
+                    prop="currentStlAmountRMB"
+                    label="RMB" width="100px">
+                    <template slot-scope="scope">
+                        <el-input style="width: 100%;" v-model="scope.row.currentStlAmountRMB" v-if="brfalse"
+                                  size="mini" autocomplete="off"
+                                  clearable placeholder="请输入USD" >
+                        </el-input>
+                        <span v-else>{{scope.row.currentStlAmountRMB}}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column
+                    prop="currentStlAmountUSD"
+                    label="USD" width="100px">
+                    <template slot-scope="scope">
+                        <el-input style="width: 100%;" v-model="scope.row.currentStlAmountUSD" v-if="brfalse"
+                                  size="mini" autocomplete="off"
+                                  clearable placeholder="请输入USD" >
+                        </el-input>
+                        <span v-else>{{scope.row.currentStlAmountUSD}}</span>
+                    </template>
+                </el-table-column>
+            </el-table-column>
+
+            <el-table-column label="本次结算金额(净额)">
+                <!--默认应结算 可以修改-->
+                <!--currentStlAmountNet-->
+                <el-table-column
+                    prop="currentStlAmountNetRMB"
+                    label="RMB" width="100px">
+                    <template slot-scope="scope">
+                        <el-input style="width: 100%;" v-model="scope.row.currentStlAmountRMB" v-if="brfalse"
+                                  size="mini" autocomplete="off"
+                                  clearable placeholder="请输入USD" >
+                        </el-input>
+                        <span v-else>{{scope.row.currentStlAmountRMB}}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column
+                    prop="currentStlAmountNetUSD"
+                    label="USD" width="100px">
+                    <template slot-scope="scope">
+                        <el-input style="width: 100%;" v-model="scope.row.currentStlAmountUSD" v-if="brfalse"
+                                  size="mini" autocomplete="off"
+                                  clearable placeholder="请输入USD" >
+                        </el-input>
+                        <span v-else>{{scope.row.currentStlAmountUSD}}</span>
+                    </template>
+                </el-table-column>
+            </el-table-column>
+
             <el-table-column
                 prop="isSignfor"
                 label="签收">
@@ -101,72 +174,9 @@
                 </template>
             </el-table-column>
             <el-table-column
-                prop="isInvoice"
-                label="发票状态">
-                <template slot-scope="{row}">
-                    <span v-if="row.isInvoice == item.dictKey" v-for="item in invoicelosDara" :key="item.id">
-                        {{item.dictValue}}
-                    </span>
-                </template>
-            </el-table-column>
-            <el-table-column
-                prop="etd"
-                label="ETD" width="150px">
-                <template slot-scope="{ row }">
-                    <span>{{row.etd}}</span>
-                </template>
-            </el-table-column>
-            <el-table-column
-                prop="accBillNo"
-                label="账单编号">
-            </el-table-column>
-
-            <el-table-column
-                prop="signforName"
-                label="签收人">
-            </el-table-column>
-            <el-table-column
                 prop="signforDate"
                 label="签收日期">
             </el-table-column>
-
-            <el-table-column
-                prop="billDate"
-                label="销账日期" width="150px">
-                <template slot-scope="{ row }">
-                    <span>{{row.etd}}</span>
-                </template>
-            </el-table-column>
-
-            <el-table-column
-                prop="accBillNo"
-                label="操作">
-            </el-table-column>
-            <el-table-column
-                prop="bookingNo"
-                label="BOOKINGNO" width="150px">
-                <template slot-scope="{ row }">
-                    <span>{{row.bookingNo}}</span>
-                </template>
-            </el-table-column>
-            <el-table-column
-                prop="hblno"
-                label="HB/L NO" width="150px">
-                <template slot-scope="{ row }">
-                    <span class="textHide" >{{row.hblno}}</span>
-                </template>
-            </el-table-column>
-            <el-table-column
-                prop="vesselCnName"
-                label="船名">
-            </el-table-column>
-            <el-table-column
-                prop="voyageNo"
-                label="航次" width="100px">
-                <template slot-scope="{ row }">
-                    <span class="textHide" >{{row.voyageNo}}</span>
-                </template>
-            </el-table-column>
             <el-table-column label="发票">
                 <!--currentInvoiceAmount-->
                 <el-table-column
@@ -179,37 +189,53 @@
                 </el-table-column>
             </el-table-column>
             <el-table-column
-                prop="quantityCntrTypesDescr"
-                label="箱型">
+                prop="ETD"
+                label="ETD">
             </el-table-column>
             <el-table-column
-                prop="quantityCntrTypesDescr"
-                label="箱量">
+                prop="vesselCnName"
+                label="船名">
             </el-table-column>
             <el-table-column
-                prop="billNo"
-                label="编号" width="100px">
+                prop="voyageNo"
+                label="航次" width="100px">
                 <template slot-scope="{ row }">
-                    <span class="textHide" >{{row.billNo}}</span>
+                    <span class="textHide" >{{row.voyageNo}}</span>
                 </template>
             </el-table-column>
-            <!--currentStlDiscount-->
             <el-table-column
-                prop="dc"
-                label="收/付">
+                prop="podCnName"
+                label="目的港">
+            </el-table-column>
+            <el-table-column
+                prop="quantityCntrTypesDescr"
+                label="箱量">
             </el-table-column>
-            <el-table-column label="应结算金额">
-                <!--unsettledAmount-->
+            <!--amount 应结算金额 有税-->
+            <!--amountNet 应结算金额 没有税-->
+            <el-table-column label="应结算金额(含税)">
+                <!--amount-->
                 <el-table-column
-                    prop="unsettledAmountRMB"
+                    prop="amountRMB"
                     label="RMB">
                 </el-table-column>
                 <el-table-column
-                    prop="unsettledAmountUSD"
+                    prop="amountUSD"
                     label="USD">
                 </el-table-column>
             </el-table-column>
-            <el-table-column label="已结算金额">
+            <el-table-column label="应结算金额(净额)">
+                <!--amountNet-->
+                <el-table-column
+                    prop="amountNetRMB"
+                    label="RMB">
+                </el-table-column>
+                <el-table-column
+                    prop="amountNetUSD"
+                    label="USD">
+                </el-table-column>
+            </el-table-column>
+            <el-table-column label="已结算金额(含税)">
                 <!--stlTtlAmount-->
                 <el-table-column
                     prop="stlTtlAmountRMB"
@@ -220,80 +246,25 @@
                     label="USD">
                 </el-table-column>
             </el-table-column>
-            <el-table-column
-                prop="voyageNo"
-                label="结算单号">
-                <template slot-scope="{ row }">
-                    <span class="textHide" >{{row.voyageNo}}</span>
-                </template>
-            </el-table-column>
-            <!--paymode-->
-            <el-table-column
-                prop="paymodeH"
-                label="H付费方式">
-            </el-table-column>
-            <el-table-column
-                prop="paymodeM"
-                label="M付费方式">
+            <el-table-column label="已结算金额(净额)">
+                <!--自己起的 stlTtlAmountNet-->
+                <el-table-column
+                    prop="stlTtlAmountNetRMB"
+                    label="RMB">
+                </el-table-column>
+                <el-table-column
+                    prop="stlTtlAmountNetUSD"
+                    label="USD">
+                </el-table-column>
             </el-table-column>
-
+            <!-- stlTtlAmount 乘 taxRate + surchargeRate-->
             <el-table-column
                 prop="eta"
                 label="ETA">
                 <template slot-scope="{ row }">
-                    <span class="textHide" >{{row.voyageNo}}</span>
-                </template>
-            </el-table-column>
-            <el-table-column
-                prop="eta"
-                label="三检单号">
-                <template slot-scope="{ row }">
-                    <span class="textHide" >{{row.voyageNo}}</span>
-                </template>
-            </el-table-column>
-            <el-table-column
-                label="本次结算币种"
-                prop="currentStlCurCode" width="130px">
-                <template slot-scope="{row}">
-                    <search-query :datalist="curCodeData"
-                                  :selectValue="row.curCode"
-                                  :filterable="true"
-                                  :clearable="true"
-                                  :remote="true"
-                                  :buttonIf="false"
-                                  :forParameter="{key:'id',label:'code',value:'code'}"
-                                  @remoteMethod="getRateListfun"
-                                  @corpChange="corpChange($event,row)"
-                                  @corpFocus="getRateListfun">
-                    </search-query>
+                    <span class="textHide" >{{row.eta}}</span>
                 </template>
             </el-table-column>
-            <el-table-column label="本次结算金额">
-                <!--默认应结算 可以修改-->
-                <!--currentStlAmount-->
-                <el-table-column
-                    prop="currentStlAmountRMB"
-                    label="RMB" width="100px">
-                    <template slot-scope="scope">
-                        <el-input style="width: 100%;" v-model="scope.row.currentStlAmountRMB" v-if="brfalse"
-                                  size="mini" autocomplete="off"
-                                  clearable placeholder="请输入USD" >
-                        </el-input>
-                        <span v-else>{{scope.row.currentStlAmountRMB}}</span>
-                    </template>
-                </el-table-column>
-                <el-table-column
-                    prop="currentStlAmountUSD"
-                    label="USD" width="100px">
-                    <template slot-scope="scope">
-                        <el-input style="width: 100%;" v-model="scope.row.currentStlAmountUSD" v-if="brfalse"
-                                  size="mini" autocomplete="off"
-                                  clearable placeholder="请输入USD" >
-                        </el-input>
-                        <span v-else>{{scope.row.currentStlAmountUSD}}</span>
-                    </template>
-                </el-table-column>
-            </el-table-column>
             <el-table-column
                 prop="remarkss"
                 label="备注" width="150px">
@@ -380,11 +351,17 @@
 
             corpChange(value,row){
                 this.$set(row,'currentStlCurCode',value)
-                console.log(value,383)
+                row.currentStlAmountNet = Number(row.currentStlAmount) - (Number(row.currentStlAmount) * (Number(row.taxRate) + Number(row.surchargeRate)))
                 if (value == 'CNY') {
-                    this.$set(row,'currentStlAmountRMB',Number(row.amount) - Number(row.stlTtlAmount))
+                    delete row.currentStlAmountUSD
+                    delete row.currentStlAmountNetUSD
+                    this.$set(row,'currentStlAmountRMB',row.unsettledAmount) // 未结算金额
+                    this.$set(row,'currentStlAmountNetRMB',row.currentStlAmountNet)
                 }else {
-                    this.$set(row,'currentStlAmountUSD',Number(row.amount) - Number(row.stlTtlAmount))
+                    delete row.currentStlAmountRMB
+                    delete row.currentStlAmountNetRMB
+                    this.$set(row,'currentStlAmountUSD',row.unsettledAmount) // 未结算金额
+                    this.$set(row,'currentStlAmountNetUSD',row.currentStlAmountNet)
                 }
             },
             // 接口请求

+ 130 - 131
src/views/iosBasicData/CollectionSettlement/finstlbillsDetails.vue

@@ -7,19 +7,16 @@
                 </el-button>
             </div>
             <div class="add-customer-btn">
-                <el-button  size="small" type="success" style="margin-right: 8px"
-                            :loading="saveLoading" >提取利润及放单
-                </el-button>
-                <el-button  size="small" type="warning" plain  style="margin-right: 8px" :disabled="!form.id"
+                <el-button  size="small" type="warning" plain  style="margin-right: 8px" :disabled="!form.id" v-if="form.isCleared == 1"
                             :loading="saveLoading" @click="finstlbillsRevokeSettlementfun">撤销结算
                 </el-button>
-                <el-button  size="small" type="success" plain  style="margin-right: 8px" :disabled="!form.id"
+                <el-button  size="small" type="success" plain  style="margin-right: 8px" :disabled="!form.id" v-else
                             :loading="saveLoading" @click="finstlbillsConfirmSettlementfun">确认结算
                 </el-button>
-                <el-button  size="small" type="primary" style="margin-right: 8px" v-if="editSave"
+                <el-button  size="small" type="primary" style="margin-right: 8px" :disabled="form.isCleared == 1" v-if="editSave"
                             :loading="saveLoading" @click="editHandle">编 辑
                 </el-button>
-                <el-button  size="small" type="primary" style="margin-right: 8px" v-else
+                <el-button  size="small" type="primary" style="margin-right: 8px" :disabled="form.isCleared == 1" v-else
                             :loading="saveLoading" @click="editCustomer">保 存
                 </el-button>
             </div>
@@ -140,36 +137,6 @@
                         </el-row>
                         <expand :showBtn="true" :showSpan="true">
                             <el-row>
-                                <el-row>
-                                    <el-col :span="5">
-                                        <el-form-item label="收 / 付" prop="dc">
-                                            <search-query :datalist="dcData"
-                                                          :selectValue="form.dc"
-                                                          :clearable="true"
-                                                          :disabled="editSave"
-                                                          :buttonIf="false"
-                                                          @corpChange="corpChange($event,'dc')">
-                                            </search-query>
-                                        </el-form-item>
-                                    </el-col>
-                                    <el-col :span="10">
-                                        <el-form-item label="签收日期" prop="etd">
-                                            <el-date-picker
-                                                v-model="form.accountDate"
-                                                type="datetimerange"
-                                                range-separator="至"
-                                                start-placeholder="开始日期"
-                                                end-placeholder="结束日期"
-                                                style="width: 100%;"
-                                                size="small"
-                                                :disabled="editSave"
-                                                format="yyyy-MM-dd"
-                                                value-format="yyyy-MM-dd"
-                                                placeholder="选择签收日期">
-                                            </el-date-picker>
-                                        </el-form-item>
-                                    </el-col>
-                                </el-row>
                                 <el-col :span="5">
                                     <el-form-item label="JOB NO" prop="businessNo">
                                         <el-input style="width: 100%;" v-model="form.businessNo"
@@ -207,16 +174,16 @@
                                     </el-form-item>
                                 </el-col>
                                 <el-col :span="4">
-                                    <el-form-item label="CHK NO(无)" prop="hblno">
-                                        <el-input style="width: 100%;" v-model="form.hblno"
+                                    <el-form-item label="CHK NO" prop="checkNo">
+                                        <el-input style="width: 100%;" v-model="form.checkNo"
                                                   size="small" autocomplete="off"
                                                   :disabled="editSave"
                                                   clearable placeholder="请输入CHK NO" >
                                         </el-input>
                                     </el-form-item>
                                 </el-col>
-                                <el-col :span="10">
-                                    <el-form-item label="财务日期" prop="etd">
+                                <el-col :span="5">
+                                    <el-form-item label="财务日期" prop="accountDate">
                                         <el-date-picker
                                             v-model="form.accountDate"
                                             type="datetimerange"
@@ -233,6 +200,23 @@
                                     </el-form-item>
                                 </el-col>
                                 <el-col :span="5">
+                                    <el-form-item label="签收日期" prop="signforDateList">
+                                        <el-date-picker
+                                            v-model="form.signforDateList"
+                                            type="datetimerange"
+                                            range-separator="至"
+                                            start-placeholder="开始日期"
+                                            end-placeholder="结束日期"
+                                            style="width: 100%;"
+                                            size="small"
+                                            :disabled="editSave"
+                                            format="yyyy-MM-dd"
+                                            value-format="yyyy-MM-dd"
+                                            placeholder="选择签收日期">
+                                        </el-date-picker>
+                                    </el-form-item>
+                                </el-col>
+                                <el-col :span="5">
                                     <el-form-item label="船 名" prop="vesselCnName" >
                                         <el-input style="width: 100%;" v-model="form.vesselCnName"
                                                   size="small" autocomplete="off"
@@ -286,11 +270,11 @@
                             <div>
                                 <div style="color: #81B337">
                                     <span>税后应收RMB:</span>
-                                    <span class="weightnum">¥0元</span>
+                                    <span class="weightnum">¥{{form.amountDrNet || 0}}元</span>
                                 </div>
                                 <div style="color: #6BBCD1">
-                                    <span>税后应付Rmb:</span>
-                                    <span class="weightnum">¥0元</span>
+                                    <span>税后应付RMB:</span>
+                                    <span class="weightnum">¥{{form.amountCrNet || 0}}元</span>
                                 </div>
                             </div>
                         </div>
@@ -304,11 +288,11 @@
                             <div>
                                 <div style="color: #81B337">
                                     <span>税后应收USD:</span>
-                                    <span class="weightnum">$0元</span>
+                                    <span class="weightnum">${{form.amountDrUsdNet || 0}}元</span>
                                 </div>
                                 <div style="color: #6BBCD1">
                                     <span>税后应付USD:</span>
-                                    <span class="weightnum">$0元</span>
+                                    <span class="weightnum">${{form.amountCrUsdNet || 0}}元</span>
                                 </div>
                             </div>
                         </div>
@@ -322,11 +306,11 @@
                             <div>
                                 <div style="color: #81B337">
                                     <span>税后应收合计:</span>
-                                    <span class="weightnum">¥0元</span>
+                                    <span class="weightnum">¥{{form.amountDrLocNet || 0}}元</span>
                                 </div>
                                 <div style="color: #6BBCD1">
                                     <span>税后应付合计:</span>
-                                    <span class="weightnum">¥0元</span>
+                                    <span class="weightnum">¥{{form.amountCrLocNet || 0}}元</span>
                                 </div>
                             </div>
                         </div>
@@ -340,11 +324,11 @@
                             <div>
                                 <div style="color: #81B337">
                                     <span>应收RMB:</span>
-                                    <span class="weightnum">$0元</span>
+                                    <span class="weightnum">${{form.amountDr || 0}}元</span>
                                 </div>
                                 <div style="color: #6BBCD1">
                                     <span>应付RMB:</span>
-                                    <span class="weightnum">$0元</span>
+                                    <span class="weightnum">${{form.amountCr || 0}}元</span>
                                 </div>
                             </div>
                         </div>
@@ -358,11 +342,11 @@
                             <div>
                                 <div style="color: #81B337">
                                     <span>应收USD:</span>
-                                    <span class="weightnum">$0元</span>
+                                    <span class="weightnum">${{form.amountDrUsd || 0}}元</span>
                                 </div>
                                 <div style="color: #6BBCD1">
                                     <span>应付USD:</span>
-                                    <span class="weightnum">$0元</span>
+                                    <span class="weightnum">${{form.amountCrUsd || 0}}元</span>
                                 </div>
                             </div>
                         </div>
@@ -375,16 +359,34 @@
                             <!--</div>-->
                             <div>
                                 <div style="color: #81B337">
-                                    <span>销项税合计:</span>
-                                    <span class="weightnum">$0元</span>
+                                    <span>应付合计:</span>
+                                    <span class="weightnum">${{form.amountDrLoc || 0}}元</span>
                                 </div>
                                 <div style="color: #6BBCD1">
-                                    <span>进项税合计:</span>
-                                    <span class="weightnum">$0元</span>
+                                    <span>应收合计:</span>
+                                    <span class="weightnum">${{form.amountCrLoc || 0}}元</span>
                                 </div>
                             </div>
                         </div>
                     </el-col>
+                    <!--<el-col :span="3">-->
+                    <!--    <div class="bottomFlex" style="justify-content: space-around">-->
+                    <!--        &lt;!&ndash;<div style="text-align: center">&ndash;&gt;-->
+                    <!--        &lt;!&ndash;    <div class="weightfont">$</div>&ndash;&gt;-->
+                    <!--        &lt;!&ndash;    <div>税后USD</div>&ndash;&gt;-->
+                    <!--        &lt;!&ndash;</div>&ndash;&gt;-->
+                    <!--        <div>-->
+                    <!--            <div style="color: #81B337">-->
+                    <!--                <span>销项税合计:</span>-->
+                    <!--                <span class="weightnum">${{form.amountDrLoc || 0}}元</span>-->
+                    <!--            </div>-->
+                    <!--            <div style="color: #6BBCD1">-->
+                    <!--                <span>进项税合计:</span>-->
+                    <!--                <span class="weightnum">${{form.amountCrLoc || 0}}元</span>-->
+                    <!--            </div>-->
+                    <!--        </div>-->
+                    <!--    </div>-->
+                    <!--</el-col>-->
                 </el-row>
             </el-card>
 
@@ -421,7 +423,7 @@
         finstlbillsSubmit
     } from '@/api/iosBasicData/finstlbills'
     import expand from "@/components/basic-container/expand.vue";
-    import finstlbillsitems from "@/views/iosBasicData/finstlbills/assembly/finstlbillsitems.vue";
+    import finstlbillsitems from "@/views/iosBasicData/CollectionSettlement/assembly/finstlbillsitems.vue";
 
     export default {
         components: {SearchQuery,expand,finstlbillsitems},
@@ -444,16 +446,6 @@
                 corpData:[], // 结算单位 数据
                 curCodeData:[],// 币别
                 srcforParameter:{},
-                // 收 / 付
-                dcData:[
-                    {
-                        label:'Debit',
-                        value: 'D'
-                    },{
-                        label:'Credit',
-                        value: 'C'
-                    }
-                ],
                 // 业务类型
                 businessTypesData:[
                     {
@@ -472,17 +464,17 @@
             // form:{
             //     // 执行方法
             //     handler(oldValue,newValue) {
-            //         // 只要分单不能编辑
-            //         console.log(this.form,619)
-            //         if (!newValue || JSON.stringify(newValue) == '{}') {
-            //             return
-            //         }
             //         delete this.form.id
-            //         this.tableData = []
-            //         this.form.finStlBillsItemsList = []
-            //         console.log(newValue)
-            //
-            //
+            //         // this.tableData = []
+            //         // // 只要分单不能编辑
+            //         // console.log(this.form,619)
+            //         // if (!newValue || JSON.stringify(newValue) == '{}') {
+            //         //     return
+            //         // }
+            //         // delete this.form.id
+            //         // this.tableData = []
+            //         // this.form.finStlBillsItemsList = []
+            //         // console.log(newValue)
             //     },
             //     deep: true, // 深度监听
             //     immediate: true  // 第一次改变就执行
@@ -540,15 +532,16 @@
                         this.$message.warning('请选择本次结算币种');
                         return;
                     }
-                    if (!item.currentStlAmount) {
-                        this.$message.warning('请选择本次结算金额');
-                        return;
-                    }
+                    // if (!item.currentStlAmount) {
+                    //     this.$message.warning('请选择本次结算金额');
+                    //     return;
+                    // }
                 }
                 this.saveLoading = true // 加载动画
                 this.form.billNoFormat = 'HYDZ'
                 this.form.businessTypeCode = 'HYDZ'
                 this.form.businessType = 'STL' // 结算单
+                this.form.dc = 'D' // 收
 
                 this.form.finStlBillsItemsList = this.handleSelectionData.map((item,index)=>{
                     item.lineNo = index
@@ -556,6 +549,7 @@
                     item.accBillId = item.id
                     item.accBillNo = item.billNo
                     item.accDate = item.billDate
+                    item.dc = item.accountDc // 收付
                     if (item.currentStlCurCode == 'CNY') {
                         item.currentStlAmount = item.currentStlAmountRMB
                     }else {
@@ -565,6 +559,7 @@
                     delete item.id
                     delete item.billNo
                     delete item.billDate
+                    delete item.accountDc
                     return item
                 })
                 finstlbillsSubmit(this.form).then(res=>{
@@ -579,26 +574,62 @@
                 finstlbillsDetail(id).then(res=>{
                     this.form = res.data.data
                     this.tableData = this.form.finStlBillsItemsList.map(item=>{
+                        item.stlTtlAmountNet = Number(item.stlTtlAmount) - (Number(item.stlTtlAmount) * (Number(item.taxRate) + Number(item.surchargeRate)))
+                        item.currentStlAmountNet = Number(item.unsettledAmount) - (Number(item.unsettledAmount) * (Number(item.taxRate) + Number(item.surchargeRate)))
+                        if(item.curCode == 'CNY') {
+                            this.$set(item,'currentInvoiceAmountRMB',item.currentInvoiceAmount)
+                            this.$set(item,'amountRMB',item.amount)
+                            this.$set(item,'amountNetRMB',item.amountNet)
+                            this.$set(item,'stlTtlAmountRMB',item.stlTtlAmount)
+                            this.$set(item,'stlTtlAmountNetRMB',item.stlTtlAmountNet)
+
+                            this.$set(item,'currentStlAmountRMB',item.unsettledAmount) // 未结算金额
+                            this.$set(item,'currentStlAmountNetRMB',item.currentStlAmountNet)
+                        }else {
+                            this.$set(item,'currentInvoiceAmountUSD',item.currentInvoiceAmount)
+                            this.$set(item,'amountUSD',item.amount)
+                            this.$set(item,'amountNetUSD',item.amountNet)
+                            this.$set(item,'stlTtlAmountNetUSD',item.stlTtlAmountNet)
+                            this.$set(item,'stlTtlAmountUSD',item.stlTtlAmount)
 
+                            this.$set(item,'currentStlAmountUSD',item.unsettledAmount) // 未结算金额
+                            this.$set(item,'currentStlAmountNetUSD',item.currentStlAmountNet)
+                        }
                         return item
                     })
                     this.pageLoading = false
+                }).catch(err=>{
+                    this.pageLoading = false
                 })
             },
             // 重置条件
             ResetFilter(){
                 this.form = {}
+                this.tableData = []
             },
             // 检索接口
             finstlbillslistAccBillV1fun(){
+                // 对账单位
+                if (!this.form.corpId) {
+                    this.$message.warning('请选择对账单位');
+                    return
+                }
+                // 业务类型
+                if (!this.form.businessTypes) {
+                    this.$message.warning('请选择业务类型');
+                    return
+                }
                 delete this.form.id
                 // let obj = JSON.parse(JSON.stringify(this.form))
                 let obj = {}
+                obj.type = '2'
+                obj.dc = 'D' // 收
                 obj.corpCnName = this.form.corpId // 结算单位
                 obj.curCode = this.form.curCode // 币别
-                obj.dc = this.form.dc // 收付 D=收 C=付
+                // obj.dc = this.form.dc // 收付 D=收 C=付
                 obj.accBillNo = this.form.accountNo // 账单编号  ACCT NO
                 obj.billNo = this.form.businessNo // 单据编号  JOB NO
+                obj.checkBillNo = this.form.checkNo // CHK NO
                 obj.mblno = this.form.mblno // MB/L NO
                 obj.hblno = this.form.hblno // HB/L NO
                 obj.queryAmount = this.form.queryAmount // 查询金额
@@ -606,6 +637,7 @@
                 obj.vesselCnName = this.form.vesselCnName // 中文船名
                 obj.receivableAdvance = this.form.receivableAdvance // 预收帐款
                 obj.voyageNo = this.form.voyageNo // 航次
+                obj.signforDateList = this.form.signforDateList // 签收日期
                 // 审核期间
                 if (this.form.approvedDate) {
                     obj.approveTimeList = this.form.approvedDate
@@ -616,15 +648,18 @@
                 }
                 finstlbillslistAccBillV1(obj).then(res=>{
                     this.tableData = res.data.data.map(item=>{
+                        item.stlTtlAmountNet = Number(item.stlTtlAmount) - (Number(item.stlTtlAmount) * (Number(item.taxRate) + Number(item.surchargeRate)))
                         if(item.curCode == 'CNY') {
-                            this.$set(item,'amountRMB',item.amount)
                             this.$set(item,'currentInvoiceAmountRMB',item.currentInvoiceAmount)
-                            this.$set(item,'unsettledAmountRMB',item.unsettledAmount)
+                            this.$set(item,'amountRMB',item.amount)
+                            this.$set(item,'amountNetRMB',item.amountNet)
                             this.$set(item,'stlTtlAmountRMB',item.stlTtlAmount)
+                            this.$set(item,'stlTtlAmountNetRMB',item.stlTtlAmountNet)
                         }else {
-                            this.$set(item,'amountUSD',item.amount)
                             this.$set(item,'currentInvoiceAmountUSD',item.currentInvoiceAmount)
-                            this.$set(item,'unsettledAmountUSD',item.unsettledAmount)
+                            this.$set(item,'amountUSD',item.amount)
+                            this.$set(item,'amountNetUSD',item.amountNet)
+                            this.$set(item,'stlTtlAmountNetUSD',item.stlTtlAmountNet)
                             this.$set(item,'stlTtlAmountUSD',item.stlTtlAmount)
                         }
                         return item
@@ -638,9 +673,13 @@
                     cancelButtonText: "取消",
                     type: "warning"
                 }).then(()=>{
+                    this.pageLoading = true
                     finstlbillsConfirmSettlement(this.form).then(res=>{
+                        this.pageLoading = false
                         this.$message.success('操作成功');
                         this.finstlbillsDetailfun(res.data.data.id)
+                    }).catch(err=>{
+                        this.pageLoading = false
                     })
                 })
             },
@@ -651,10 +690,14 @@
                     cancelButtonText: "取消",
                     type: "warning"
                 }).then(()=>{
-                    finstlbillsRevokeSettlement().then(res=>{
+                    this.pageLoading = true
+                    finstlbillsRevokeSettlement(this.form).then(res=>{
+                        this.pageLoading = false
                         this.$message.success('操作成功');
                         this.finstlbillsDetailfun(res.data.data.id)
                     })
+                }).catch(err=>{
+                    this.pageLoading = false
                 })
             },
             // 确认选定行
@@ -670,50 +713,6 @@
                 this.$emit('goBack')
             },
             // 请求的接口
-            // 确认签收接口
-            finstlbillsConfirmSignForfun(){
-                this.form.billNoFormat = 'HYDZ'
-                this.form.businessTypeCode = 'HYDZ'
-                this.form.businessType = 'STL' // 结算单
-                // 保留id
-                this.form.finStlBillsItemsList = this.handleSelectionData.map((item,index)=>{
-                    item.lineNo = index
-                    item.pType = item.businessType
-                    item.accBillId = item.id
-                    item.accBillNo = item.billNo
-                    item.accDate = item.billDate
-                    delete item.businessType
-                    delete item.billNo
-                    delete item.billDate
-                    return item
-                })
-                finstlbillsConfirmSignFor(this.form).then(res=>{
-                    this.$message.success('操作成功');
-                    this.finstlbillsDetailfun(res.data.data.id)
-                })
-            },
-            // 撤销签收接口
-            finstlbillsRevokeSignForfun(){
-                this.form.billNoFormat = 'HYDZ'
-                this.form.businessTypeCode = 'HYDZ'
-                this.form.businessType = 'STL' // 结算单
-
-                this.form.finStlBillsItemsList = this.handleSelectionData.map((item,index)=>{
-                    item.lineNo = index
-                    item.pType = item.businessType
-                    item.accBillId = item.id
-                    item.accBillNo = item.billNo
-                    item.accDate = item.billDate
-                    delete item.businessType
-                    delete item.billNo
-                    delete item.billDate
-                    return item
-                })
-                finstlbillsRevokeSignFor(this.form).then(res=>{
-                    this.$message.success('操作成功');
-                    this.finstlbillsDetailfun(res.data.data.id)
-                })
-            },
 
             // 获取币别数据
             getRateListfun(cnName){

+ 20 - 3
src/views/iosBasicData/CollectionSettlement/index.vue

@@ -85,6 +85,7 @@
   import finstlbillsDetails from '@/views/iosBasicData/CollectionSettlement/finstlbillsDetails.vue'
   import {getWorkDicts} from "@/api/system/dictbiz";
   import finstlbillsitems from "@/views/iosBasicData/CollectionSettlement/assembly/finstlbillsitems.vue";
+  import {getRateList} from "@/api/iosBasicData/rateManagement";
 
   export default {
       components:{finstlbillsitems, finstlbillsDetails},
@@ -124,6 +125,7 @@
             {
               label: "单据编号",
               prop: "billNo",
+                search:true,
             },
             {
               label: "对账/结算日期",
@@ -131,8 +133,9 @@
               width:"150",
             },
             {
-              label: "客户中文名称",
+              label: "客户名称",
               prop: "corpCnName",
+                search:true,
               width:"120",
             },
             {
@@ -196,7 +199,7 @@
             {
               label: "费用收付",
               prop: "dc",
-                search:true,
+                // search:true,
                 type: 'select',
                 dicData:[
                     {
@@ -211,6 +214,13 @@
             {
               label: "币种",
               prop: "curCode",
+                search:true,
+                type: 'select',
+                dicData:[],
+                props: {
+                    label: "code",
+                    value: "id"
+                },
             },
             {
               label: "中文船名",
@@ -435,6 +445,7 @@
     async created() {
       this.option = await this.getColumnData(this.getColumnName(315), this.optionBack);
       this.dictionaryfun() // 获取字典数据
+        this.getRateListfun() // 币别数据
     },
     methods: {
           // 展开行
@@ -579,7 +590,7 @@
         finstlbillsList(
             page.currentPage,
             page.pageSize,
-            {...Object.assign(params, this.query),businessType:'STL'},
+            {...Object.assign(params, this.query),businessType:'STL',dc:'D'},
         ).then(res => {
           const data = res.data.data;
           this.page.total = data.total;
@@ -617,6 +628,12 @@
                 this.findObject(this.option.column, "isTax").dicData = res.data.data
             })
         },
+        // 获取币别数据
+        getRateListfun(cnName){
+            getRateList({current:1,size:20,cnName}).then(res=>{
+                this.findObject(this.option.column, "curCode").dicData = res.data.data.records
+            })
+        },
 
         //自定义列保存
         async saveColumnTwo(ref, option, optionBack, code) {

+ 396 - 0
src/views/iosBasicData/PaymentApplication/assembly/finstlbillsitems.vue

@@ -0,0 +1,396 @@
+<template>
+    <div>
+        <el-table
+            ref="tableRef"
+            :row-style="{height:'20px',padding:'0px',fontSize:'12px'}"
+            :cell-style="{padding:'0px',fontSize:'12px'}"
+            :header-cell-style="tableHeaderCellStyle"
+            :data="tableData"
+            border
+            style="width: 100%"
+            @selection-change="handleSelectionChange"
+            @mousedown="handleMouseDown"
+            @mousemove="handleMouseMove"
+            @mouseup="handleMouseUp" >
+            <el-table-column
+                v-if="brfalse"
+                type="selection"
+                width="55">
+                <template slot-scope="scope">
+                    <el-checkbox v-model="scope.row.tableSelect"
+                                 :true-label="1" :false-label="0"
+                                 @change="toggleSelection([scope.row])">
+                    </el-checkbox>
+                </template>
+            </el-table-column>
+            <el-table-column
+                prop="lineNo"
+                label="行号" width="50px">
+            </el-table-column>
+            <el-table-column
+                prop="isCleared"
+                label="核销">
+            </el-table-column>
+            <el-table-column
+                prop="lineNo"
+                label="源业务编号" width="120px">
+                <template slot-scope="{ row }">
+                    <span class="textHide" v-if="row.businessBillDivideNo">{{row.businessBillDivideNo}}</span>
+                    <span class="textHide" v-else>{{row.businessBillNo}}</span>
+                </template>
+            </el-table-column>
+            <el-table-column
+                prop="tableSelect"
+                label="选择" width="50px" v-if="brfalse">
+                <template slot-scope="scope">
+                    <el-checkbox v-model="scope.row.tableSelect"
+                                 :true-label="1" :false-label="0"
+                                 @change="toggleSelection([scope.row])">
+                    </el-checkbox>
+                </template>
+            </el-table-column>
+            <el-table-column
+                prop="accBillNo"
+                label="账单编号">
+            </el-table-column>
+            <el-table-column label="结算单位">
+                <el-table-column
+                    prop="corpCode"
+                    label="编号" width="130px">
+                    <template slot-scope="{ row }">
+                        <avue-text-ellipsis :text="row.corpCode" :height="50" :width="130">
+                            <small slot="more">...</small>
+                        </avue-text-ellipsis>
+                    </template>
+                </el-table-column>
+                <el-table-column
+                    prop="corpCnName"
+                    label="简称" width="130px">
+                    <template slot-scope="{ row }">
+                        <avue-text-ellipsis :text="row.corpCnName" :height="50" :width="130">
+                            <small slot="more">...</small>
+                        </avue-text-ellipsis>
+                    </template>
+                </el-table-column>
+            </el-table-column>
+            <el-table-column
+                prop="mblno"
+                label="MB/L NO" width="120px">
+                <template slot-scope="{ row }">
+                    <avue-text-ellipsis :text="row.mblno" :height="50" :width="120">
+                        <small slot="more">...</small>
+                    </avue-text-ellipsis>
+                </template>
+            </el-table-column>
+            <el-table-column
+                prop="dc"
+                label="收/付" width="120px">
+                <template slot-scope="{ row }">
+                    <span>{{row.dc}}</span>
+                </template>
+            </el-table-column>
+            <el-table-column
+                prop="currentStlExrate"
+                label="汇率">
+            </el-table-column>
+            <el-table-column
+                label="本次结算币种"
+                prop="currentStlCurCode" width="130px">
+                <template slot-scope="{row}">
+                    <search-query :datalist="curCodeData"
+                                  :selectValue="row.currentStlCurCode"
+                                  :filterable="true"
+                                  :clearable="true"
+                                  :remote="true"
+                                  :buttonIf="false"
+                                  :forParameter="{key:'id',label:'code',value:'code'}"
+                                  @remoteMethod="getRateListfun"
+                                  @corpChange="corpChange($event,row)"
+                                  @corpFocus="getRateListfun">
+                    </search-query>
+                </template>
+            </el-table-column>
+            <el-table-column label="本次结算金额(含税)">
+                <!--默认应结算 可以修改-->
+                <!--currentStlAmount-->
+                <el-table-column
+                    prop="currentStlAmountRMB"
+                    label="RMB" width="100px">
+                    <template slot-scope="scope">
+                        <el-input style="width: 100%;" v-model="scope.row.currentStlAmountRMB" v-if="brfalse"
+                                  size="mini" autocomplete="off"
+                                  clearable placeholder="请输入USD" >
+                        </el-input>
+                        <span v-else>{{scope.row.currentStlAmountRMB}}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column
+                    prop="currentStlAmountUSD"
+                    label="USD" width="100px">
+                    <template slot-scope="scope">
+                        <el-input style="width: 100%;" v-model="scope.row.currentStlAmountUSD" v-if="brfalse"
+                                  size="mini" autocomplete="off"
+                                  clearable placeholder="请输入USD" >
+                        </el-input>
+                        <span v-else>{{scope.row.currentStlAmountUSD}}</span>
+                    </template>
+                </el-table-column>
+            </el-table-column>
+
+            <el-table-column label="本次结算金额(净额)">
+                <!--默认应结算 可以修改-->
+                <!--currentStlAmountNet-->
+                <el-table-column
+                    prop="currentStlAmountNetRMB"
+                    label="RMB" width="100px">
+                    <template slot-scope="scope">
+                        <el-input style="width: 100%;" v-model="scope.row.currentStlAmountRMB" v-if="brfalse"
+                                  size="mini" autocomplete="off"
+                                  clearable placeholder="请输入USD" >
+                        </el-input>
+                        <span v-else>{{scope.row.currentStlAmountRMB}}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column
+                    prop="currentStlAmountNetUSD"
+                    label="USD" width="100px">
+                    <template slot-scope="scope">
+                        <el-input style="width: 100%;" v-model="scope.row.currentStlAmountUSD" v-if="brfalse"
+                                  size="mini" autocomplete="off"
+                                  clearable placeholder="请输入USD" >
+                        </el-input>
+                        <span v-else>{{scope.row.currentStlAmountUSD}}</span>
+                    </template>
+                </el-table-column>
+            </el-table-column>
+
+            <el-table-column
+                prop="isSignfor"
+                label="签收">
+                <template slot-scope="{ row }">
+                    <span v-if="row.isSignfor == item.dictKey" v-for="item in ifInvoiceData" :key="item.dictKey">
+                        {{item.dictValue}}
+                    </span>
+                </template>
+            </el-table-column>
+            <el-table-column
+                prop="signforDate"
+                label="签收日期">
+            </el-table-column>
+            <el-table-column label="发票">
+                <!--currentInvoiceAmount-->
+                <el-table-column
+                    prop="currentInvoiceAmountRMB"
+                    label="RMB">
+                </el-table-column>
+                <el-table-column
+                    prop="currentInvoiceAmountUSD"
+                    label="USD">
+                </el-table-column>
+            </el-table-column>
+            <el-table-column
+                prop="ETD"
+                label="ETD">
+            </el-table-column>
+            <el-table-column
+                prop="vesselCnName"
+                label="船名">
+            </el-table-column>
+            <el-table-column
+                prop="voyageNo"
+                label="航次" width="100px">
+                <template slot-scope="{ row }">
+                    <span class="textHide" >{{row.voyageNo}}</span>
+                </template>
+            </el-table-column>
+            <el-table-column
+                prop="podCnName"
+                label="目的港">
+            </el-table-column>
+            <el-table-column
+                prop="quantityCntrTypesDescr"
+                label="箱量">
+            </el-table-column>
+            <!--amount 应结算金额 有税-->
+            <!--amountNet 应结算金额 没有税-->
+            <el-table-column label="应结算金额(含税)">
+                <!--amount-->
+                <el-table-column
+                    prop="amountRMB"
+                    label="RMB">
+                </el-table-column>
+                <el-table-column
+                    prop="amountUSD"
+                    label="USD">
+                </el-table-column>
+            </el-table-column>
+            <el-table-column label="应结算金额(净额)">
+                <!--amountNet-->
+                <el-table-column
+                    prop="amountNetRMB"
+                    label="RMB">
+                </el-table-column>
+                <el-table-column
+                    prop="amountNetUSD"
+                    label="USD">
+                </el-table-column>
+            </el-table-column>
+            <el-table-column label="已结算金额(含税)">
+                <!--stlTtlAmount-->
+                <el-table-column
+                    prop="stlTtlAmountRMB"
+                    label="RMB">
+                </el-table-column>
+                <el-table-column
+                    prop="stlTtlAmountUSD"
+                    label="USD">
+                </el-table-column>
+            </el-table-column>
+            <el-table-column label="已结算金额(净额)">
+                <!--自己起的 stlTtlAmountNet-->
+                <el-table-column
+                    prop="stlTtlAmountNetRMB"
+                    label="RMB">
+                </el-table-column>
+                <el-table-column
+                    prop="stlTtlAmountNetUSD"
+                    label="USD">
+                </el-table-column>
+            </el-table-column>
+            <!-- stlTtlAmount 乘 taxRate + surchargeRate-->
+            <el-table-column
+                prop="eta"
+                label="ETA">
+                <template slot-scope="{ row }">
+                    <span class="textHide" >{{row.eta}}</span>
+                </template>
+            </el-table-column>
+            <el-table-column
+                prop="remarkss"
+                label="备注" width="150px">
+                <template slot-scope="scope">
+                    <el-input style="width: 100%;" v-model="scope.row.remarkss" v-if="brfalse"
+                              size="mini" autocomplete="off"
+                              clearable placeholder="请输入备注" >
+                    </el-input>
+                    <span v-else>{{scope.row.remarkss}}</span>
+                </template>
+            </el-table-column>
+
+
+        </el-table>
+    </div>
+</template>
+
+<script>
+    import {getWorkDicts} from "@/api/system/dictbiz";
+    import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
+    import {getRateList} from "@/api/iosBasicData/rateManagement";
+
+    export default {
+        components: {SearchQuery},
+        props:{
+            tableData:{
+                type:Array,
+                default:[],
+            },
+            brfalse:{
+                type:Boolean,
+                default:true,
+            }
+        },
+        data(){
+            return {
+                ifInvoiceData:[], // 是否数据
+                invoicelosDara:[],// 发票
+                curCodeData:[], // 币种
+            }
+        },
+        created() {
+            this.isSignforWorkDicts()
+            this.invoicelosWorkDictsfun()
+        },
+        methods:{
+            // 多选选择的数据
+            handleSelectionChange(arr){
+                // 全选
+                if (arr.length == this.tableData.length) {
+                    for (let item of arr) {
+                        this.$set(item,'tableSelect',1)
+                    }
+                }
+                // 清除全选
+                if (arr.length == 0) {
+                    for (let item of this.tableData) {
+                        this.$set(item,'tableSelect',0)
+                    }
+                }
+                this.$emit('handleSelectionChange',arr)
+            },
+            // 多选
+            toggleSelection(rows){
+                if (rows) {
+                    rows.forEach(row => {
+                        this.$refs.tableRef.toggleRowSelection(row);
+                    });
+                } else {
+                    this.$refs.tableRef.clearSelection();
+                }
+            },
+            handleMouseDown(event) {
+                console.log(event,351)
+                const table = this.$refs.tableRef
+                const cell = event.target.closest('td')
+            },
+            handleMouseMove(event) {
+
+            },
+            handleMouseUp(){
+
+            },
+
+            corpChange(value,row){
+                this.$set(row,'currentStlCurCode',value)
+                if (value == 'CNY') {
+                    this.$set(row,'currentStlAmountRMB',Number(row.amount) - Number(row.stlTtlAmount))
+                }else {
+                    this.$set(row,'currentStlAmountUSD',Number(row.amount) - Number(row.stlTtlAmount))
+                }
+            },
+            // 接口请求
+            // 是否接口
+            isSignforWorkDicts(){
+                getWorkDicts('ifInvoice').then(res=>{
+                    this.ifInvoiceData = res.data.data
+                })
+            },
+            // 发票
+            invoicelosWorkDictsfun(){
+                getWorkDicts('invoice_los').then(res=>{
+                    this.invoicelosDara = res.data.data
+                })
+            },
+            // 获取币别数据
+            getRateListfun(cnName){
+                getRateList({current:1,size:10,cnName}).then(res=>{
+                    this.curCodeData = res.data.data.records
+                })
+            },
+
+            // 表头样式
+            tableHeaderCellStyle({row,column,rowIndex, columnIndex}){
+                return "padding:4px 0px;fontSize:12px;color:#000;background:#ecf5ff"
+            },
+        }
+
+    }
+</script>
+
+<style scoped>
+.textHide {
+    width: 100%;
+    overflow: hidden;
+    white-space: nowrap;
+    text-overflow: ellipsis;
+}
+</style>

+ 797 - 0
src/views/iosBasicData/PaymentApplication/finstlbillsDetails.vue

@@ -0,0 +1,797 @@
+<template>
+    <div class="borderless" v-loading="pageLoading">
+        <div class="customer-head">
+            <div class="customer-back">
+                <el-button type="danger" style="border: none;background: none;color: red" icon="el-icon-arrow-left"
+                           @click="backToList">返回列表
+                </el-button>
+            </div>
+            <div class="add-customer-btn">
+                <el-button  size="small" type="warning" plain  style="margin-right: 8px" :disabled="!form.id" v-if="form.isCleared == 1"
+                            :loading="saveLoading" @click="finstlbillsRevokeSettlementfun">撤销结算
+                </el-button>
+                <el-button  size="small" type="success" plain  style="margin-right: 8px" :disabled="!form.id" v-else
+                            :loading="saveLoading" @click="finstlbillsConfirmSettlementfun">确认结算
+                </el-button>
+                <el-button  size="small" type="primary" style="margin-right: 8px" :disabled="form.isCleared == 1" v-if="editSave"
+                            :loading="saveLoading" @click="editHandle">编 辑
+                </el-button>
+                <el-button  size="small" type="primary" style="margin-right: 8px" :disabled="form.isCleared == 1" v-else
+                            :loading="saveLoading" @click="editCustomer">保 存
+                </el-button>
+            </div>
+        </div>
+
+        <div style="margin: 55px 5px 0px 5px;'">
+            <el-card class="box-card">
+                <el-form :model="form" ref="form" label-width="90px" class="demo-ruleForm">
+                    <el-row>
+                        <el-row>
+                            <el-col :span="5">
+                                <el-form-item label="结算单号" prop="checkNo">
+                                    <el-input style="width: 100%;" v-model="form.billNo"
+                                              size="small" autocomplete="off"
+                                              :disabled="true"
+                                              clearable placeholder="请输入结算单号" >
+                                    </el-input>
+                                </el-form-item>
+                            </el-col>
+                            <el-col :span="5">
+                                <el-form-item label="结算日期" prop="billDate">
+                                    <el-date-picker v-model="form.billDate" clearable
+                                                    style="width: 100%;"
+                                                    type="date" size="small"
+                                                    :disabled="editSave"
+                                                    value-format="yyyy-MM-dd HH:mm"
+                                                    placeholder="选择结算日期">
+                                    </el-date-picker>
+                                </el-form-item>
+                            </el-col>
+                            <el-col :span="5">
+                                <el-form-item label="限定金额" prop="billDate">
+                                    <el-input style="width: 100%;" v-model="form.limitedAmount"
+                                              size="small" autocomplete="off"
+                                              :disabled="editSave"
+                                              clearable placeholder="请输入限定金额" >
+                                    </el-input>
+                                </el-form-item>
+                            </el-col>
+                            <el-col :span="9">
+                                <el-form-item label="审核期间" prop="etd">
+                                    <el-date-picker
+                                        v-model="form.approvedDate"
+                                        type="datetimerange"
+                                        range-separator="至"
+                                        start-placeholder="开始日期"
+                                        end-placeholder="结束日期"
+                                        style="width: 100%;"
+                                        size="small"
+                                        :disabled="editSave"
+                                        format="yyyy-MM-dd"
+                                        value-format="yyyy-MM-dd"
+                                        placeholder="选择对账日期">
+                                    </el-date-picker>
+                                </el-form-item>
+                            </el-col>
+                            <el-col :span="10">
+                                <el-form-item label="结算单位" prop="corpCnName">
+                                    <el-col :span="11">
+                                        <search-query :datalist="corpData"
+                                                      :selectValue="form.corpCnName"
+                                                      :clearable="true"
+                                                      :disabled="editSave"
+                                                      :filterable="true"
+                                                      :remote="true"
+                                                      :buttonIf="false"
+                                                      :forParameter="{ key:'id', label:'cnName', value:'cnName'}"
+                                                      @corpChange="corpChange($event,'corpCnName')"
+                                                      @remoteMethod="corpBcorpsListfun"
+                                                      @corpFocus="corpBcorpsListfun" >
+                                        </search-query>
+                                    </el-col>
+                                    <el-col :span="12" :offset="1">
+                                        <el-input style="width: 100%;" v-model="form.corpEnName"
+                                                  size="small" autocomplete="off"
+                                                  :disabled="editSave"
+                                                  clearable placeholder="请输入" >
+                                        </el-input>
+                                    </el-col>
+                                </el-form-item>
+                            </el-col>
+                            <el-col :span="5">
+                                <el-form-item label="业务类型" prop="businessTypes" >
+                                    <search-query :datalist="businessTypesData"
+                                                  :selectValue="form.businessTypes"
+                                                  :clearable="true"
+                                                  :disabled="editSave"
+                                                  :buttonIf="false"
+                                                  @corpChange="corpChange($event,'businessTypes')">
+                                    </search-query>
+                                </el-form-item>
+                            </el-col>
+                            <el-col :span="5">
+                                <el-form-item label="查询金额" prop="queryAmount">
+                                    <el-input style="width: 100%;" v-model="form.queryAmount"
+                                              size="small" autocomplete="off"
+                                              :disabled="editSave"
+                                              clearable placeholder="请输入查询金额" >
+                                    </el-input>
+                                </el-form-item>
+                            </el-col>
+                            <el-col :span="4">
+                                <el-form-item label="币别" prop="curCode">
+                                    <search-query :datalist="curCodeData"
+                                                  :selectValue="form.curCode"
+                                                  :clearable="true"
+                                                  :disabled="editSave"
+                                                  :buttonIf="false"
+                                                  :filterable="true"
+                                                  :remote="true"
+                                                  :forParameter="{ key:'id', label:'code', value:'code'}"
+                                                  @corpChange="corpChange($event,'curCode')"
+                                                  @remoteMethod="getRateListfun"
+                                                  @corpFocus="getRateListfun" >
+                                    </search-query>
+                                </el-form-item>
+                            </el-col>
+                        </el-row>
+                        <expand :showBtn="true" :showSpan="true">
+                            <el-row>
+                                <el-col :span="5">
+                                    <el-form-item label="JOB NO" prop="businessNo">
+                                        <el-input style="width: 100%;" v-model="form.businessNo"
+                                                  size="small" autocomplete="off"
+                                                  :disabled="editSave"
+                                                  clearable placeholder="请输入JOB NO" >
+                                        </el-input>
+                                    </el-form-item>
+                                </el-col>
+                                <el-col :span="5">
+                                    <el-form-item label="ACCT NO" prop="accountNo">
+                                        <el-input style="width: 100%;" v-model="form.accountNo"
+                                                  size="small" autocomplete="off"
+                                                  :disabled="editSave"
+                                                  clearable placeholder="请输入ACCT NO" >
+                                        </el-input>
+                                    </el-form-item>
+                                </el-col>
+                                <el-col :span="5">
+                                    <el-form-item label="MBL NO" prop="mblno">
+                                        <el-input style="width: 100%;" v-model="form.mblno"
+                                                  size="small" autocomplete="off"
+                                                  :disabled="editSave"
+                                                  clearable placeholder="请输入MBL NO" >
+                                        </el-input>
+                                    </el-form-item>
+                                </el-col>
+                                <el-col :span="5">
+                                    <el-form-item label="HBL NO" prop="hblno">
+                                        <el-input style="width: 100%;" v-model="form.hblno"
+                                                  size="small" autocomplete="off"
+                                                  :disabled="editSave"
+                                                  clearable placeholder="请输入HBL NO" >
+                                        </el-input>
+                                    </el-form-item>
+                                </el-col>
+                                <el-col :span="4">
+                                    <el-form-item label="CHK NO" prop="checkNo">
+                                        <el-input style="width: 100%;" v-model="form.checkNo"
+                                                  size="small" autocomplete="off"
+                                                  :disabled="editSave"
+                                                  clearable placeholder="请输入CHK NO" >
+                                        </el-input>
+                                    </el-form-item>
+                                </el-col>
+                                <el-col :span="5">
+                                    <el-form-item label="财务日期" prop="accountDate">
+                                        <el-date-picker
+                                            v-model="form.accountDate"
+                                            type="datetimerange"
+                                            range-separator="至"
+                                            start-placeholder="开始日期"
+                                            end-placeholder="结束日期"
+                                            style="width: 100%;"
+                                            size="small"
+                                            :disabled="editSave"
+                                            format="yyyy-MM-dd"
+                                            value-format="yyyy-MM-dd"
+                                            placeholder="选择财务日期">
+                                        </el-date-picker>
+                                    </el-form-item>
+                                </el-col>
+                                <el-col :span="5">
+                                    <el-form-item label="签收日期" prop="signforDateList">
+                                        <el-date-picker
+                                            v-model="form.signforDateList"
+                                            type="datetimerange"
+                                            range-separator="至"
+                                            start-placeholder="开始日期"
+                                            end-placeholder="结束日期"
+                                            style="width: 100%;"
+                                            size="small"
+                                            :disabled="editSave"
+                                            format="yyyy-MM-dd"
+                                            value-format="yyyy-MM-dd"
+                                            placeholder="选择签收日期">
+                                        </el-date-picker>
+                                    </el-form-item>
+                                </el-col>
+                                <el-col :span="5">
+                                    <el-form-item label="船 名" prop="vesselCnName" >
+                                        <el-input style="width: 100%;" v-model="form.vesselCnName"
+                                                  size="small" autocomplete="off"
+                                                  :disabled="editSave"
+                                                  clearable placeholder="请选择船名" ></el-input>
+                                    </el-form-item>
+                                </el-col>
+                                <el-col :span="5">
+                                    <el-form-item label="航 次" prop="voyageNo" >
+                                        <el-input style="width: 100%;" v-model="form.voyageNo"
+                                                  size="small" autocomplete="off"
+                                                  :disabled="editSave"
+                                                  clearable placeholder="请选择航次" ></el-input>
+                                    </el-form-item>
+                                </el-col>
+                                <el-col :span="4">
+                                    <el-form-item label="预收帐款" prop="receivableAdvance" >
+                                        <el-input style="width: 100%;" v-model="form.receivableAdvance"
+                                                  size="small" autocomplete="off"
+                                                  :disabled="editSave"
+                                                  clearable placeholder="请输入预收帐款" ></el-input>
+                                    </el-form-item>
+                                </el-col>
+                            </el-row>
+                        </expand>
+
+                        <el-row>
+                            <el-col span="24">
+                                <div style="text-align: right">
+                                    <el-button  size="small" type="" style="margin-right: 8px"
+                                                :loading="saveLoading" @click="ResetFilter">重置条件
+                                    </el-button>
+                                    <el-button  size="small" type="primary"  style="margin-right: 8px"
+                                                :loading="saveLoading" @click="finstlbillslistAccBillV1fun" >检 索
+                                    </el-button>
+                                </div>
+                            </el-col>
+                        </el-row>
+                    </el-row>
+                </el-form>
+            </el-card>
+
+            <el-card style="margin-top: 10px">
+                <el-row>
+                    <el-col :span="3">
+                        <div class="bottomFlex" style="justify-content: space-around">
+                            <!--<div style="text-align: center">-->
+                            <!--    <div class="weightfont">¥</div>-->
+                            <!--    <div>RMB</div>-->
+                            <!--</div>-->
+                            <div>
+                                <div style="color: #81B337">
+                                    <span>税后应收RMB:</span>
+                                    <span class="weightnum">¥{{form.amountDrNet || 0}}元</span>
+                                </div>
+                                <div style="color: #6BBCD1">
+                                    <span>税后应付RMB:</span>
+                                    <span class="weightnum">¥{{form.amountCrNet || 0}}元</span>
+                                </div>
+                            </div>
+                        </div>
+                    </el-col>
+                    <el-col :span="3">
+                        <div class="bottomFlex" style="justify-content: space-around">
+                            <!--<div style="text-align: center">-->
+                            <!--    <div class="weightfont">$</div>-->
+                            <!--    <div>USD</div>-->
+                            <!--</div>-->
+                            <div>
+                                <div style="color: #81B337">
+                                    <span>税后应收USD:</span>
+                                    <span class="weightnum">${{form.amountDrUsdNet || 0}}元</span>
+                                </div>
+                                <div style="color: #6BBCD1">
+                                    <span>税后应付USD:</span>
+                                    <span class="weightnum">${{form.amountCrUsdNet || 0}}元</span>
+                                </div>
+                            </div>
+                        </div>
+                    </el-col>
+                    <el-col :span="3">
+                        <div class="bottomFlex" style="justify-content: space-around">
+                            <!--<div style="text-align: center">-->
+                            <!--    <div class="weightfont">¥</div>-->
+                            <!--    <div>税后RMB</div>-->
+                            <!--</div>-->
+                            <div>
+                                <div style="color: #81B337">
+                                    <span>税后应收合计:</span>
+                                    <span class="weightnum">¥{{form.amountDrLocNet || 0}}元</span>
+                                </div>
+                                <div style="color: #6BBCD1">
+                                    <span>税后应付合计:</span>
+                                    <span class="weightnum">¥{{form.amountCrLocNet || 0}}元</span>
+                                </div>
+                            </div>
+                        </div>
+                    </el-col>
+                    <el-col :span="3">
+                        <div class="bottomFlex" style="justify-content: space-around">
+                            <!--<div style="text-align: center">-->
+                            <!--    <div class="weightfont">$</div>-->
+                            <!--    <div>税后USD</div>-->
+                            <!--</div>-->
+                            <div>
+                                <div style="color: #81B337">
+                                    <span>应收RMB:</span>
+                                    <span class="weightnum">${{form.amountDr || 0}}元</span>
+                                </div>
+                                <div style="color: #6BBCD1">
+                                    <span>应付RMB:</span>
+                                    <span class="weightnum">${{form.amountCr || 0}}元</span>
+                                </div>
+                            </div>
+                        </div>
+                    </el-col>
+                    <el-col :span="3">
+                        <div class="bottomFlex" style="justify-content: space-around">
+                            <!--<div style="text-align: center">-->
+                            <!--    <div class="weightfont">$</div>-->
+                            <!--    <div>税后USD</div>-->
+                            <!--</div>-->
+                            <div>
+                                <div style="color: #81B337">
+                                    <span>应收USD:</span>
+                                    <span class="weightnum">${{form.amountDrUsd || 0}}元</span>
+                                </div>
+                                <div style="color: #6BBCD1">
+                                    <span>应付USD:</span>
+                                    <span class="weightnum">${{form.amountCrUsd || 0}}元</span>
+                                </div>
+                            </div>
+                        </div>
+                    </el-col>
+                    <el-col :span="3">
+                        <div class="bottomFlex" style="justify-content: space-around">
+                            <!--<div style="text-align: center">-->
+                            <!--    <div class="weightfont">$</div>-->
+                            <!--    <div>税后USD</div>-->
+                            <!--</div>-->
+                            <div>
+                                <div style="color: #81B337">
+                                    <span>应付合计:</span>
+                                    <span class="weightnum">${{form.amountDrLoc || 0}}元</span>
+                                </div>
+                                <div style="color: #6BBCD1">
+                                    <span>应收合计:</span>
+                                    <span class="weightnum">${{form.amountCrLoc || 0}}元</span>
+                                </div>
+                            </div>
+                        </div>
+                    </el-col>
+                    <el-col :span="3">
+                        <div class="bottomFlex" style="justify-content: space-around">
+                            <!--<div style="text-align: center">-->
+                            <!--    <div class="weightfont">$</div>-->
+                            <!--    <div>税后USD</div>-->
+                            <!--</div>-->
+                            <div>
+                                <div style="color: #81B337">
+                                    <span>销项税合计:</span>
+                                    <span class="weightnum">${{form.amountDrLoc || 0}}元</span>
+                                </div>
+                                <div style="color: #6BBCD1">
+                                    <span>进项税合计:</span>
+                                    <span class="weightnum">${{form.amountCrLoc || 0}}元</span>
+                                </div>
+                            </div>
+                        </div>
+                    </el-col>
+                </el-row>
+            </el-card>
+
+            <el-card style="margin-top: 10px">
+                <div style="margin-bottom: 10px">
+                    <el-button  size="small" type="info" style="margin-right: 8px" :disabled="editSave"
+                                :loading="saveLoading" @click="SelectedRows">确认选定行
+                    </el-button>
+                </div>
+
+                <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
+                    <el-tab-pane label="核销明细" name="first">
+                        <finstlbillsitems :tableData="tableData" @handleSelectionChange="handleSelectionChange"></finstlbillsitems>
+                    </el-tab-pane>
+                    <el-tab-pane label="凭证明细" name="second">凭证明细</el-tab-pane>
+                </el-tabs>
+            </el-card>
+        </div>
+
+    </div>
+</template>
+
+<script>
+    import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
+    import {getRateList} from "@/api/iosBasicData/rateManagement";
+    import {getBcorpslistByType} from "@/api/iosBasicData/bcorps";
+    import {
+        finstlbillsConfirmSettlement,
+        finstlbillsConfirmSignFor,
+        finstlbillsDetail,
+        finstlbillslistAccBillV1,
+        finstlbillsRevokeSettlement,
+        finstlbillsRevokeSignFor,
+        finstlbillsSubmit
+    } from '@/api/iosBasicData/finstlbills'
+    import expand from "@/components/basic-container/expand.vue";
+    import finstlbillsitems from "@/views/iosBasicData/PaymentApplication/assembly/finstlbillsitems.vue";
+
+    export default {
+        components: {SearchQuery,expand,finstlbillsitems},
+        props:{
+            // 编辑还是保存
+            editSave:{
+                type:Boolean,
+                default:true
+            }
+        },
+        data(){
+            return {
+                activeName:'first', // tabs 切换数据
+                tableData:[],
+                pageLoading:false, // 全屏加载动画
+                saveLoading:false, // 按钮动画
+                // 绑定的数据
+                form:{},
+                handleSelectionData:[], // 表格选择的数据
+                corpData:[], // 结算单位 数据
+                curCodeData:[],// 币别
+                srcforParameter:{},
+                // 业务类型
+                businessTypesData:[
+                    {
+                        label:'海运出口',
+                        value:'SE'
+                    },{
+                        label:'海运进口',
+                        value:'SI'
+                    }
+                ],
+            }
+        },
+        watch:{
+
+            // // 监听业务类型 如果不是分单 可以编辑分单号
+            // form:{
+            //     // 执行方法
+            //     handler(oldValue,newValue) {
+            //         // 只要分单不能编辑
+            //         console.log(this.form,619)
+            //         if (!newValue || JSON.stringify(newValue) == '{}') {
+            //             return
+            //         }
+            //         delete this.form.id
+            //         this.tableData = []
+            //         this.form.finStlBillsItemsList = []
+            //         console.log(newValue)
+            //
+            //
+            //     },
+            //     deep: true, // 深度监听
+            //     immediate: true  // 第一次改变就执行
+            // },
+        },
+        created() {
+        },
+        methods:{
+            // 下拉回调
+            corpChange(value,name){
+                // 结算单位
+                if (name == 'corpCnName') {
+                    if (!value) {
+                        this.$set(this.form,'corpId','')
+                        this.$set(this.form,'corpCnName','')
+                        this.$set(this.form,'corpEnName','')
+                        this.$set(this.form,'corpArgreementNo','')
+                    }
+                    for(let item of this.corpData) {
+                        if (item.cnName == value) {
+                            this.$set(this.form,'corpId',item.id)
+                            this.$set(this.form,'corpCnName',item.cnName)
+                            this.$set(this.form,'corpEnName',item.enName)
+                            this.$set(this.form,'corpArgreementNo',item.enName)
+                        }
+                    }
+                }
+                else {
+                    this.$set(this.form,name,value)
+                }
+            },
+            // 编辑
+            editHandle(){
+                this.editSave = false
+            },
+            // 保存
+            editCustomer(){
+                // 对账单位
+                if (!this.form.corpId) {
+                    this.$message.warning('请选择结算单位');
+                    return
+                }
+                // 业务类型
+                if (!this.form.businessTypes) {
+                    this.$message.warning('请选择业务类型');
+                    return
+                }
+                // 是否选择从表数据
+                if (this.handleSelectionData.length == 0) {
+                    this.$message.warning('请选择结算数据');
+                    return;
+                }
+                for (let item of this.handleSelectionData) {
+                    if (!item.currentStlCurCode) {
+                        this.$message.warning('请选择本次结算币种');
+                        return;
+                    }
+                    if (!item.currentStlAmount) {
+                        this.$message.warning('请选择本次结算金额');
+                        return;
+                    }
+                }
+                this.saveLoading = true // 加载动画
+                this.form.billNoFormat = 'HYDZ'
+                this.form.businessTypeCode = 'HYDZ'
+                this.form.businessType = 'STL' // 结算单
+                this.form.dc = 'C' // 付
+
+                this.form.finStlBillsItemsList = this.handleSelectionData.map((item,index)=>{
+                    item.lineNo = index
+                    item.pType = item.businessType
+                    item.accBillId = item.id
+                    item.accBillNo = item.billNo
+                    item.accDate = item.billDate
+                    item.dc = item.accountDc // 收付
+                    if (item.currentStlCurCode == 'CNY') {
+                        item.currentStlAmount = item.currentStlAmountRMB
+                    }else {
+                        item.currentStlAmount = item.currentStlAmountUSD
+                    }
+                    delete item.businessType
+                    delete item.id
+                    delete item.billNo
+                    delete item.billDate
+                    delete item.accountDc
+                    return item
+                })
+                finstlbillsSubmit(this.form).then(res=>{
+                    this.saveLoading = false
+                    this.$message.success('操作成功');
+                    this.finstlbillsDetailfun(res.data.data.id)
+                })
+            },
+            // 详情接口
+            finstlbillsDetailfun(id){
+                this.pageLoading = true
+                finstlbillsDetail(id).then(res=>{
+                    this.form = res.data.data
+                    this.tableData = this.form.finStlBillsItemsList.map(item=>{
+                        item.stlTtlAmountNet = Number(item.stlTtlAmount) - (Number(item.stlTtlAmount) * (Number(item.taxRate) + Number(item.surchargeRate)))
+                        item.currentStlAmountNet = Number(item.unsettledAmount) - (Number(item.unsettledAmount) * (Number(item.taxRate) + Number(item.surchargeRate)))
+                        if(item.curCode == 'CNY') {
+                            this.$set(item,'currentInvoiceAmountRMB',item.currentInvoiceAmount)
+                            this.$set(item,'amountRMB',item.amount)
+                            this.$set(item,'amountNetRMB',item.amountNet)
+                            this.$set(item,'stlTtlAmountRMB',item.stlTtlAmount)
+                            this.$set(item,'stlTtlAmountNetRMB',item.stlTtlAmountNet)
+
+                            this.$set(item,'currentStlAmountRMB',item.unsettledAmount) // 未结算金额
+                            this.$set(item,'currentStlAmountNetRMB',item.currentStlAmountNet)
+                        }else {
+                            this.$set(item,'currentInvoiceAmountUSD',item.currentInvoiceAmount)
+                            this.$set(item,'amountUSD',item.amount)
+                            this.$set(item,'amountNetUSD',item.amountNet)
+                            this.$set(item,'stlTtlAmountNetUSD',item.stlTtlAmountNet)
+                            this.$set(item,'stlTtlAmountUSD',item.stlTtlAmount)
+
+                            this.$set(item,'currentStlAmountUSD',item.unsettledAmount) // 未结算金额
+                            this.$set(item,'currentStlAmountNetUSD',item.currentStlAmountNet)
+                        }
+                        return item
+                    })
+                    this.pageLoading = false
+                }).catch(err=>{
+                    this.pageLoading = false
+                })
+            },
+            // 重置条件
+            ResetFilter(){
+                this.form = {}
+            },
+            // 检索接口
+            finstlbillslistAccBillV1fun(){
+                // 对账单位
+                if (!this.form.corpId) {
+                    this.$message.warning('请选择对账单位');
+                    return
+                }
+                // 业务类型
+                if (!this.form.businessTypes) {
+                    this.$message.warning('请选择业务类型');
+                    return
+                }
+                delete this.form.id
+                // let obj = JSON.parse(JSON.stringify(this.form))
+                let obj = {}
+                obj.type = '2'
+                obj.dc = 'C' // 付
+                obj.corpCnName = this.form.corpId // 结算单位
+                obj.curCode = this.form.curCode // 币别
+                // obj.dc = this.form.dc // 收付 D=收 C=付
+                obj.accBillNo = this.form.accountNo // 账单编号  ACCT NO
+                obj.billNo = this.form.businessNo // 单据编号  JOB NO
+                obj.checkBillNo = this.form.checkNo // CHK NO
+                obj.mblno = this.form.mblno // MB/L NO
+                obj.hblno = this.form.hblno // HB/L NO
+                obj.queryAmount = this.form.queryAmount // 查询金额
+                obj.businessType = this.form.businessTypes // 业务类型
+                obj.vesselCnName = this.form.vesselCnName // 中文船名
+                obj.receivableAdvance = this.form.receivableAdvance // 预收帐款
+                obj.voyageNo = this.form.voyageNo // 航次
+                obj.signforDateList = this.form.signforDateList // 签收日期
+                // 审核期间
+                if (this.form.approvedDate) {
+                    obj.approveTimeList = this.form.approvedDate
+                }
+                // 财务期间
+                if (this.form.accountDate) {
+                    obj.billDateList = this.form.accountDate
+                }
+                finstlbillslistAccBillV1(obj).then(res=>{
+                    this.tableData = res.data.data.map(item=>{
+                        item.stlTtlAmountNet = Number(item.stlTtlAmount) - (Number(item.stlTtlAmount) * (Number(item.taxRate) + Number(item.surchargeRate)))
+                        if(item.curCode == 'CNY') {
+                            this.$set(item,'currentInvoiceAmountRMB',item.currentInvoiceAmount)
+                            this.$set(item,'amountRMB',item.amount)
+                            this.$set(item,'amountNetRMB',item.amountNet)
+                            this.$set(item,'stlTtlAmountRMB',item.stlTtlAmount)
+                            this.$set(item,'stlTtlAmountNetRMB',item.stlTtlAmountNet)
+                            this.$set(item,'currentStlAmountRMB',item.unsettledAmount) // 未结算金额
+                            this.$set(item,'currentStlAmountNetRMB',item.currentStlAmountNet)
+                        }else {
+                            this.$set(item,'currentInvoiceAmountUSD',item.currentInvoiceAmount)
+                            this.$set(item,'amountUSD',item.amount)
+                            this.$set(item,'amountNetUSD',item.amountNet)
+                            this.$set(item,'stlTtlAmountNetUSD',item.stlTtlAmountNet)
+                            this.$set(item,'stlTtlAmountUSD',item.stlTtlAmount)
+                            this.$set(item,'currentStlAmountUSD',item.unsettledAmount) // 未结算金额
+                            this.$set(item,'currentStlAmountNetUSD',item.currentStlAmountNet)
+                        }
+                        return item
+                    })
+                })
+            },
+            // 结算确认
+            finstlbillsConfirmSettlementfun(){
+                this.$confirm("确定进行对账操作?", {
+                    confirmButtonText: "确定",
+                    cancelButtonText: "取消",
+                    type: "warning"
+                }).then(()=>{
+                    this.pageLoading = true
+                    finstlbillsConfirmSettlement(this.form).then(res=>{
+                        this.pageLoading = false
+                        this.$message.success('操作成功');
+                        this.finstlbillsDetailfun(res.data.data.id)
+                    }).catch(err=>{
+                        this.pageLoading = false
+                    })
+                })
+            },
+            // 结算撤销
+            finstlbillsRevokeSettlementfun(){
+                this.$confirm("确定进行撤销对账操作?", {
+                    confirmButtonText: "确定",
+                    cancelButtonText: "取消",
+                    type: "warning"
+                }).then(()=>{
+                    this.pageLoading = true
+                    finstlbillsRevokeSettlement(this.form).then(res=>{
+                        this.pageLoading = false
+                        this.$message.success('操作成功');
+                        this.finstlbillsDetailfun(res.data.data.id)
+                    })
+                }).catch(err=>{
+                    this.pageLoading = false
+                })
+            },
+            // 确认选定行
+            SelectedRows(){
+                this.editCustomer()
+            },
+            // 下面表格多选
+            handleSelectionChange(arr){
+                this.handleSelectionData = arr
+            },
+            //返回列表
+            backToList() {
+                this.$emit('goBack')
+            },
+            // 请求的接口
+            // 确认签收接口
+            finstlbillsConfirmSignForfun(){
+                this.form.billNoFormat = 'HYDZ'
+                this.form.businessTypeCode = 'HYDZ'
+                this.form.businessType = 'STL' // 结算单
+                // 保留id
+                this.form.finStlBillsItemsList = this.handleSelectionData.map((item,index)=>{
+                    item.lineNo = index
+                    item.pType = item.businessType
+                    item.accBillId = item.id
+                    item.accBillNo = item.billNo
+                    item.accDate = item.billDate
+                    delete item.businessType
+                    delete item.billNo
+                    delete item.billDate
+                    return item
+                })
+                finstlbillsConfirmSignFor(this.form).then(res=>{
+                    this.$message.success('操作成功');
+                    this.finstlbillsDetailfun(res.data.data.id)
+                })
+            },
+            // 撤销签收接口
+            finstlbillsRevokeSignForfun(){
+                this.form.billNoFormat = 'HYDZ'
+                this.form.businessTypeCode = 'HYDZ'
+                this.form.businessType = 'STL' // 结算单
+
+                this.form.finStlBillsItemsList = this.handleSelectionData.map((item,index)=>{
+                    item.lineNo = index
+                    item.pType = item.businessType
+                    item.accBillId = item.id
+                    item.accBillNo = item.billNo
+                    item.accDate = item.billDate
+                    delete item.businessType
+                    delete item.billNo
+                    delete item.billDate
+                    return item
+                })
+                finstlbillsRevokeSignFor(this.form).then(res=>{
+                    this.$message.success('操作成功');
+                    this.finstlbillsDetailfun(res.data.data.id)
+                })
+            },
+
+            // 获取币别数据
+            getRateListfun(cnName){
+                getRateList({current:1,size:10,cnName}).then(res=>{
+                    this.curCodeData = res.data.data.records
+                })
+            },
+            // 获取结算单位数据
+            corpBcorpsListfun(cnName){
+                getBcorpslistByType(1,10,{cnName}).then(res=>{
+                    this.corpData = res.data.data.records
+                })
+            },
+
+        }
+    }
+</script>
+
+<style scoped>
+::v-deep.el-form-item {
+    margin-bottom: 0;
+}
+.bottomFlex {
+    display: flex;
+    align-items: center;
+}
+.weightfont {
+    font-size: 20px;
+    font-weight: bold;
+}
+.weightnum {
+    font-size: 15px;
+    font-weight: 500;
+}
+</style>

+ 692 - 0
src/views/iosBasicData/PaymentApplication/index.vue

@@ -0,0 +1,692 @@
+<template>
+  <div>
+      <basic-container v-if="isShow">
+          <avue-crud :option="option"
+                     :table-loading="loading"
+                     :data="data"
+                     :page.sync="page"
+                     :permission="permissionList"
+                     id="out-table"
+                     :header-cell-class-name="headerClassName"
+                     :before-open="beforeOpen"
+                     v-model="form"
+                     ref="crud"
+                     @row-update="rowUpdate"
+                     @row-save="rowSave"
+                     @row-del="rowDel"
+                     @search-change="searchChange"
+                     @search-reset="searchReset"
+                     @selection-change="selectionChange"
+                     @current-change="currentChange"
+                     @size-change="sizeChange"
+                     @refresh-change="refreshChange"
+                     @resetColumn="resetColumnTwo('crud', 'option', 'optionBack', 316)"
+                     @saveColumn="saveColumnTwo('crud', 'option', 'optionBack', 316)"
+                     @on-load="onLoad" @expand-change="expandChange" >
+              <template slot="expand" slot-scope="{row}">
+                  <finstlbillsitems :tableData="row.finStlBillsItemsList || []" :brfalse="false" ></finstlbillsitems>
+              </template>
+              <template slot="menuLeft">
+                  <el-button type="success"
+                             size="small"
+                             icon="el-icon-plus"
+                             plain
+                             @click="newbillFun">新建账单
+                  </el-button>
+                  <el-button type="danger"
+                             size="small"
+                             icon="el-icon-delete"
+                             plain
+                             @click="handleDelete">删 除
+                  </el-button>
+              </template>
+              <template slot="menu" slot-scope="{row}">
+                  <el-button type="text"
+                             size="small"
+                             @click="editFun(row)">编辑
+                  </el-button>
+                  <el-button type="text"
+                             size="small"
+                             @click="rowDel(row)">删除
+                  </el-button>
+              </template>
+              <template slot-scope="scope" slot="billNo">
+                  <avue-text-ellipsis :text="scope.row.billNo" :height="30" use-tooltip placement="top">
+                      <small slot="more">...</small>
+                  </avue-text-ellipsis>
+              </template>
+              <template slot-scope="scope" slot="corpCnName">
+                  <avue-text-ellipsis :text="scope.row.corpCnName" :height="30" use-tooltip placement="top">
+                      <small slot="more">...</small>
+                  </avue-text-ellipsis>
+              </template>
+              <template slot-scope="scope" slot="corpEnName">
+                  <avue-text-ellipsis :text="scope.row.corpEnName" :height="30" use-tooltip placement="top">
+                      <small slot="more">...</small>
+                  </avue-text-ellipsis>
+              </template>
+              <template slot-scope="scope" slot="corpArgreementNo">
+                  <avue-text-ellipsis :text="scope.row.corpArgreementNo" :height="30" use-tooltip placement="top">
+                      <small slot="more">...</small>
+                  </avue-text-ellipsis>
+              </template>
+
+          </avue-crud>
+      </basic-container>
+
+      <finstlbillsDetails ref="finstlbillsDetails" v-if="!isShow" :editSave="editSave" @goBack="goBack"></finstlbillsDetails>
+
+  </div>
+</template>
+
+<script>
+  import {finstlbillsList, finstlbillsDetail, finstlbillsSubmit, finstlbillsRemove, finstlbillsitemsList} from "@/api/iosBasicData/finstlbills";
+  import {mapGetters} from "vuex";
+  import finstlbillsDetails from '@/views/iosBasicData/PaymentApplication/finstlbillsDetails.vue'
+  import {getWorkDicts} from "@/api/system/dictbiz";
+  import finstlbillsitems from "@/views/iosBasicData/PaymentApplication/assembly/finstlbillsitems.vue";
+  import {getRateList} from "@/api/iosBasicData/rateManagement";
+
+  export default {
+      components:{finstlbillsitems, finstlbillsDetails},
+    data() {
+      return {
+          // 详情页面和列表切换
+          isShow:true,
+        form: {},
+        query: {},
+        loading: true,
+        page: {
+          pageSize: 10,
+          currentPage: 1,
+          total: 0
+        },
+        selectionList: [],
+        option:{},
+        optionBack: {
+          height:'auto',
+          calcHeight: 30,
+          tip: false,
+          searchShow: true,
+          searchMenuSpan: 6,
+          border: true,
+          index: true,
+          viewBtn: true,
+          selection: true,
+          dialogClickModal: false,
+            menuWidth:100,
+            expand: true,
+            rowKey:'id',
+          column: [
+            {
+              label: "业务类型",
+              prop: "businessType",
+            },
+            {
+              label: "单据编号",
+              prop: "billNo",
+                search:true,
+            },
+            {
+              label: "对账/结算日期",
+              prop: "billDate",
+              width:"150",
+            },
+            {
+              label: "客户名称",
+              prop: "corpCnName",
+                search:true,
+              width:"120",
+            },
+            {
+              label: "客户英文名称",
+              prop: "corpEnName",
+              width:"120",
+            },
+            {
+              label: "客户是否已签约",
+              prop: "corpIsSigned",
+              width:"120",
+                dicData:[],
+                props: {
+                    label: "dictValue",
+                    value: "dictKey"
+                },
+            },
+            {
+              label: "客户约号",
+              prop: "corpArgreementNo",
+            },
+            {
+              label: "客户账期备注",
+              prop: "corpAccRemarks",
+              width:"120",
+            },
+            {
+              label: "业务类型",
+              prop: "businessTypes",
+              width:"120",
+            },
+            {
+              label: "业务单据编号",
+              prop: "businessNo",
+              width:"120",
+            },
+            {
+              label: "账单编号",
+              prop: "accountNo",
+              width:"100",
+            },
+            {
+              label: "对账单编号",
+              prop: "checkNo",
+              width:"100",
+            },
+            {
+              label: "业务所在部门",
+              prop: "deptName",
+              width:"120",
+            },
+            {
+              label: "业务操作",
+              prop: "operatorName",
+              width:"100",
+            },
+            {
+              label: "业务员",
+              prop: "salesName",
+            },
+            {
+              label: "费用收付",
+              prop: "dc",
+                // search:true,
+                type: 'select',
+                dicData:[
+                    {
+                        label:'Debit',
+                        value: 'D'
+                    },{
+                        label:'Credit',
+                        value: 'C'
+                    }
+                ]
+            },
+            {
+              label: "币种",
+              prop: "curCode",
+                search:true,
+                type: 'select',
+                dicData:[],
+                props: {
+                    label: "code",
+                    value: "id"
+                },
+            },
+            {
+              label: "中文船名",
+              prop: "vesselCnName",
+            },
+            {
+              label: "英文船名",
+              prop: "vesselEnName",
+            },
+            {
+              label: "航次",
+              prop: "voyageNo",
+            },
+            {
+              label: "MB/L NO",
+              prop: "mblno",
+            },
+            {
+              label: "HB/L NO",
+              prop: "hblno",
+            },
+            {
+              label: "财务开始日期",
+              prop: "accountDateFrom",
+                width: "140"
+            },
+            {
+              label: "财务结束日期",
+              prop: "accountDateTo",
+                width: "140"
+            },
+            {
+              label: "审核开始日期",
+              prop: "auditDateFrom",
+                width: "140"
+            },
+            {
+              label: "审核结束日期",
+              prop: "auditDateTo",
+                width: "140"
+            },
+            {
+              label: "发票号",
+              prop: "invoiceNo",
+            },
+            {
+              label: "检验检疫 NO",
+              prop: "iqNo",
+                width: "140"
+            },
+            {
+              label: "费用中文名称",
+              prop: "feeCode",
+                width: "140"
+            },
+            {
+              label: "费用中文名称",
+              prop: "feeCnName",
+                width: "140"
+            },
+            {
+              label: "费用英文名称",
+              prop: "feeEnName",
+                width: "140"
+            },
+            {
+              label: "是否审核",
+              prop: "isApproved",
+                dicData:[],
+                props: {
+                    label: "dictValue",
+                    value: "dictKey"
+                },
+            },
+            {
+              label: "是否签收",
+              prop: "isSignfor",
+              dicData:[],
+              props: {
+                label: "dictValue",
+                value: "dictKey"
+              },
+            },
+            {
+              label: "是否对账",
+              prop: "isChecked",
+                dicData:[],
+                props: {
+                    label: "dictValue",
+                    value: "dictKey"
+                },
+            },
+            {
+              label: "是否销账",
+              prop: "isCleared",
+                dicData:[],
+                props: {
+                    label: "dictValue",
+                    value: "dictKey"
+                },
+            },
+            {
+              label: "是否开发票",
+              prop: "isInvoice",
+                dicData:[],
+                props: {
+                    label: "dictValue",
+                    value: "dictKey"
+                },
+                width: "140"
+            },
+            {
+              label: "是否含税价计算",
+              prop: "isTax",
+                dicData:[],
+                props: {
+                    label: "dictValue",
+                    value: "dictKey"
+                },
+                width: "140"
+            },
+            {
+              label: "凭证类型",
+              prop: "voucherType",
+            },
+            {
+              label: "凭证号",
+              prop: "voucherNo",
+            },
+            {
+              label: "凭证日期",
+              prop: "voucherDate",
+            },
+            {
+              label: "本位币应收(CNY)",
+              prop: "amountDr",
+                width: "160"
+            },
+            {
+              label: "本位币应付(CNY)",
+              prop: "amountCr",
+                width: "160"
+            },
+            {
+              label: "综合 USD 应收(USD) - 非 USD 外币转换为 USD",
+              prop: "amountDrUsd",
+                width: "160"
+            },
+            {
+              label: "综合 USD 应付(USD) - 非 USD 外币转换为 USD",
+              prop: "amountCrUsd",
+                width: "160"
+            },
+            {
+              label: "合计本位币应收(CNY )",
+              prop: "amountDrLoc",
+                width: "160"
+            },
+            {
+              label: "合计本位币应付(CNY)",
+              prop: "amountCrLoc",
+                width: "160"
+            },
+            {
+              label: "本位币税后应收(CNY)",
+              prop: "amountDrNet",
+                width: "160"
+            },
+            {
+              label: "本位币税后应付(CNY)",
+              prop: "amountCrNet",
+                width: "160"
+            },
+            {
+              label: "综合 USD 税后应收(USD) - 非 USD 外币转换为 USD",
+              prop: "amountDrUsdNet",
+                width: "160"
+            },
+            {
+              label: "综合 USD 税后应付(USD) - 非 USD 外币转换为 USD",
+              prop: "amountCrUsdNet",
+                width: "160"
+            },
+            {
+              label: "合计本位币税后应收(CNY )",
+              prop: "amountDrLocNet",
+                width: "160"
+            },
+            {
+              label: "合计本位币税后应付(CNY)",
+              prop: "amountCrLocNet",
+                width: "160"
+            },
+            {
+              label: "备注",
+              prop: "remarks",
+            },
+          ]
+        },
+        data: [],
+        editSave:false, // 编辑保存打印状态
+      };
+    },
+    computed: {
+      ...mapGetters(["permission"]),
+      permissionList() {
+        return {
+          addBtn: this.vaildData(this.permission.finstlbills_add, false),
+          viewBtn: this.vaildData(this.permission.finstlbills_view, false),
+          delBtn: this.vaildData(this.permission.finstlbills_delete, false),
+          editBtn: this.vaildData(this.permission.finstlbills_edit, false)
+        };
+      },
+      ids() {
+        let ids = [];
+        this.selectionList.forEach(ele => {
+          ids.push(ele.id);
+        });
+        return ids.join(",");
+      }
+    },
+    async created() {
+      this.option = await this.getColumnData(this.getColumnName(316), this.optionBack);
+      this.dictionaryfun() // 获取字典数据
+        this.getRateListfun() // 币别数据
+    },
+    methods: {
+          // 展开行
+        expandChange(row,expendList){
+            finstlbillsitemsList(1,20,{pid:row.id}).then(res=>{
+                row.finStlBillsItemsList = res.data.data.records
+            })
+        },
+      // 新建账单
+      newbillFun(){
+          this.isShow = false
+          this.editSave = false
+          // this.$refs.finstlbillsDetails
+      },
+        // 编辑
+        editFun(row) {
+            this.isShow = false
+            this.editSave = true
+            this.$nextTick(()=>{
+                this.$refs.finstlbillsDetails.finstlbillsDetailfun(row.id)
+            })
+        },
+      // 详情的返回列表
+      goBack() {
+          // 初始化数据
+          // this.detailData = this.$options.data().detailData;
+          if (JSON.stringify(this.$route.query) != "{}") {
+              this.$router.$avueRouter.closeTag();
+              this.$router.push({
+                  path: "/iosBasicData/settlement/index"
+              });
+          }
+          this.isShow = true;
+          this.onLoad(this.page, this.search);
+      },
+      // 添加
+      rowSave(row, done, loading) {
+        finstlbillsSubmit(row).then(() => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+          done();
+        }, error => {
+          loading();
+          window.console.log(error);
+        });
+      },
+        // 保存
+      rowUpdate(row, index, done, loading) {
+        finstlbillsSubmit(row).then(() => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+          done();
+        }, error => {
+          loading();
+          console.log(error);
+        });
+      },
+        // 删除
+      rowDel(row) {
+        this.$confirm("确定将选择数据删除?", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        })
+          .then(() => {
+            return finstlbillsRemove(row.id);
+          })
+          .then(() => {
+            this.onLoad(this.page);
+            this.$message({
+              type: "success",
+              message: "操作成功!"
+            });
+          });
+      },
+        // 批量删除
+      handleDelete() {
+        if (this.selectionList.length === 0) {
+          this.$message.warning("请选择至少一条数据");
+          return;
+        }
+        this.$confirm("确定将选择数据删除?", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        })
+          .then(() => {
+            return finstlbillsRemove(this.ids);
+          })
+          .then(() => {
+            this.onLoad(this.page);
+            this.$message({
+              type: "success",
+              message: "操作成功!"
+            });
+            this.$refs.crud.toggleSelection();
+          });
+      },
+        // 详情
+      beforeOpen(done, type) {
+        if (["edit", "view"].includes(type)) {
+          finstlbillsDetail(this.form.id).then(res => {
+            this.form = res.data.data;
+          });
+        }
+        done();
+      },
+      searchReset() {
+        this.query = {};
+        this.onLoad(this.page);
+      },
+      searchChange(params, done) {
+        this.query = params;
+        this.page.currentPage = 1;
+        this.onLoad(this.page, params);
+        done();
+      },
+      selectionChange(list) {
+        this.selectionList = list;
+      },
+      selectionClear() {
+        this.selectionList = [];
+        this.$refs.crud.toggleSelection();
+      },
+      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;
+        finstlbillsList(
+            page.currentPage,
+            page.pageSize,
+            {...Object.assign(params, this.query),businessType:'STL',dc:'C'},
+        ).then(res => {
+          const data = res.data.data;
+          this.page.total = data.total;
+          this.data = data.records.map(item=>{
+              item.isApproved = item.isApproved + ''
+              item.isSignfor = item.isSignfor + ''
+              item.isChecked = item.isChecked + ''
+              item.isCleared = item.isCleared + ''
+              item.isInvoice = item.isInvoice + ''
+              item.isTax = item.isTax + ''
+              item.corpIsSigned = item.corpIsSigned + ''
+              return item
+          })
+          this.loading = false;
+          this.selectionClear();
+        });
+      },
+
+        // 获取字典数据
+        dictionaryfun(){
+          // 全部是否
+            getWorkDicts('ifInvoice').then(res=>{
+                this.findObject(this.option.column, "isApproved").dicData = res.data.data
+                this.findObject(this.option.column, "isSignfor").dicData = res.data.data
+                this.findObject(this.option.column, "isChecked").dicData = res.data.data
+                this.findObject(this.option.column, "isCleared").dicData = res.data.data
+            })
+            // 是否开发票
+            getWorkDicts('invoice_los').then(res=>{
+                this.findObject(this.option.column, "isInvoice").dicData = res.data.data
+            })
+            // 是否
+            getWorkDicts('ifInvoice').then(res=>{
+                this.findObject(this.option.column, "corpIsSigned").dicData = res.data.data
+                this.findObject(this.option.column, "isTax").dicData = res.data.data
+            })
+        },
+        // 获取币别数据
+        getRateListfun(cnName){
+            getRateList({current:1,size:20,cnName}).then(res=>{
+                this.findObject(this.option.column, "curCode").dicData = res.data.data.records
+            })
+        },
+
+        //自定义列保存
+        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;
+}
+</style>

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

@@ -1109,13 +1109,17 @@ import {dateFormat} from "@/util/date";
                 // 把拼接的数据拆开 开始 🐒🐒🐒🐒🐒🐒🐒🐒🐒🐒🐒🐒🐒🐒
                 this.searchSplit()
                 // 把拼接的数据拆开 结束 💩💩💩💩💩💩💩💩💩💩💩💩💩💩
+                this.pageLoading = true
                 billsSubmit(this.form).then(res=>{
+                    this.pageLoading = false
                     this.$message({
                         type: "success",
                         message: "操作成功!"
                     });
                     // this.detailData.seeDisabled = true
                     this.billsDetailfun(res.data.data.id)
+                }).catch(err=>{
+                    this.pageLoading = false
                 })
             },
             // 详情接口

+ 3 - 11
src/views/iosBasicData/finstlbills/assembly/finstlbillsitems.vue

@@ -29,10 +29,6 @@
                 label="行号" width="50px">
             </el-table-column>
             <el-table-column
-                prop="invoiceNo"
-                label="核销(无参数)">
-            </el-table-column>
-            <el-table-column
                 prop="lineNo"
                 label="源业务编号" width="120px">
                 <template slot-scope="{ row }">
@@ -42,10 +38,6 @@
             </el-table-column>
             <el-table-column
                 prop="invoiceNo"
-                label="账单编号(无参数)">
-            </el-table-column>
-            <el-table-column
-                prop="invoiceNo"
                 label="发票号">
             </el-table-column>
             <el-table-column
@@ -257,7 +249,7 @@
                 prop="currentStlCurCode" width="100">
                 <template slot-scope="{row}">
                     <search-query :datalist="curCodeData"
-                                  :selectValue="row.curCode"
+                                  :selectValue="row.currentStlCurCode"
                                   :filterable="true"
                                   :clearable="true"
                                   :remote="true"
@@ -390,8 +382,8 @@
                             this.$set(row,'currentStlAmountRMB',Number(row.amount) - Number(row.stlTtlAmount))
                         }else {
                             delete row.currentStlAmountRMB
-                            let num = (Number(row.amount) - Number(row.stlTtlAmount)) / Number(item.exrate)
-                            this.$set(row,'currentStlAmountUSD',num.toFixed(2))
+                            // let num = (Number(row.amount) - Number(row.stlTtlAmount)) / Number(item.exrate)
+                            this.$set(row,'currentStlAmountUSD',Number(row.amount) - Number(row.stlTtlAmount))
                         }
                     }
                 }

+ 60 - 38
src/views/iosBasicData/finstlbills/finstlbillsDetails.vue

@@ -417,72 +417,72 @@
                 <el-row>
                     <el-col :span="4">
                         <div class="bottomFlex" style="justify-content: space-around">
-                            <div style="text-align: center">
-                                <div class="weightfont">¥</div>
-                                <div>RMB</div>
-                            </div>
+                            <!--<div style="text-align: center">-->
+                            <!--    <div class="weightfont">¥</div>-->
+                            <!--    <div>RMB</div>-->
+                            <!--</div>-->
                             <div>
                                 <div style="color: #81B337">
-                                    <span>应收:</span>
-                                    <span class="weightnum">¥0元</span>
+                                    <span>应收RMB:</span>
+                                    <span class="weightnum">${{form.amountDr || 0}}元</span>
                                 </div>
                                 <div style="color: #6BBCD1">
-                                    <span>应付:</span>
-                                    <span class="weightnum">¥0元</span>
+                                    <span>应付RMB:</span>
+                                    <span class="weightnum">${{form.amountCr || 0}}元</span>
                                 </div>
                             </div>
                         </div>
                     </el-col>
                     <el-col :span="4">
                         <div class="bottomFlex" style="justify-content: space-around">
-                            <div style="text-align: center">
-                                <div class="weightfont">$</div>
-                                <div>USD</div>
-                            </div>
+                            <!--<div style="text-align: center">-->
+                            <!--    <div class="weightfont">$</div>-->
+                            <!--    <div>USD</div>-->
+                            <!--</div>-->
                             <div>
                                 <div style="color: #81B337">
-                                    <span>应收:</span>
-                                    <span class="weightnum">$0元</span>
+                                    <span>应收USD:</span>
+                                    <span class="weightnum">${{form.amountDrUsd || 0}}元</span>
                                 </div>
                                 <div style="color: #6BBCD1">
-                                    <span>应付:</span>
-                                    <span class="weightnum">$0元</span>
+                                    <span>应付USD:</span>
+                                    <span class="weightnum">${{form.amountCrUsd || 0}}元</span>
                                 </div>
                             </div>
                         </div>
                     </el-col>
                     <el-col :span="4">
                         <div class="bottomFlex" style="justify-content: space-around">
-                            <div style="text-align: center">
-                                <div class="weightfont">¥</div>
-                                <div>税后RMB</div>
-                            </div>
+                            <!--<div style="text-align: center">-->
+                            <!--    <div class="weightfont">¥</div>-->
+                            <!--    <div>税后RMB</div>-->
+                            <!--</div>-->
                             <div>
                                 <div style="color: #81B337">
-                                    <span>应收:</span>
-                                    <span class="weightnum">¥0元</span>
+                                    <span>税后应收RMB:</span>
+                                    <span class="weightnum">¥{{form.amountDrNet || 0}}元</span>
                                 </div>
                                 <div style="color: #6BBCD1">
-                                    <span>应付:</span>
-                                    <span class="weightnum">¥0元</span>
+                                    <span>税后应付RMB:</span>
+                                    <span class="weightnum">¥{{form.amountCrNet || 0}}元</span>
                                 </div>
                             </div>
                         </div>
                     </el-col>
                     <el-col :span="4">
                         <div class="bottomFlex" style="justify-content: space-around">
-                            <div style="text-align: center">
-                                <div class="weightfont">$</div>
-                                <div>税后USD</div>
-                            </div>
+                            <!--<div style="text-align: center">-->
+                            <!--    <div class="weightfont">$</div>-->
+                            <!--    <div>税后USD</div>-->
+                            <!--</div>-->
                             <div>
                                 <div style="color: #81B337">
-                                    <span>应收:</span>
-                                    <span class="weightnum">$0元</span>
+                                    <span>税后应收USD:</span>
+                                    <span class="weightnum">${{form.amountDrUsdNet || 0}}元</span>
                                 </div>
                                 <div style="color: #6BBCD1">
-                                    <span>应付:</span>
-                                    <span class="weightnum">$0元</span>
+                                    <span>税后应付USD:</span>
+                                    <span class="weightnum">${{form.amountCrUsdNet || 0}}元</span>
                                 </div>
                             </div>
                         </div>
@@ -613,7 +613,6 @@
             }
         },
         watch:{
-
             // // 监听业务类型 如果不是分单 可以编辑分单号
             // form:{
             //     // 执行方法
@@ -747,12 +746,13 @@
                         this.$message.warning('请选择本次结算币种');
                         return;
                     }
-                    if (!item.currentStlAmount) {
-                        this.$message.warning('请选择本次结算金额');
-                        return;
-                    }
+                    // if (!item.currentStlAmount) {
+                    //     this.$message.warning('请选择本次结算金额');
+                    //     return;
+                    // }
                 }
                 this.saveLoading = true // 加载动画
+                this.pageLoading = true
                 this.form.billNoFormat = 'HYDZ'
                 this.form.businessTypeCode = 'HYDZ'
                 this.form.businessType = 'CHK' // 对账单
@@ -763,6 +763,7 @@
                     item.accBillId = item.id
                     item.accBillNo = item.billNo
                     item.accDate = item.billDate
+                    item.dc = item.accountDc // 收付
                     if (item.currentStlCurCode == 'CNY') {
                         item.currentStlAmount = item.currentStlAmountRMB
                     }else {
@@ -772,12 +773,16 @@
                     delete item.id
                     delete item.billNo
                     delete item.billDate
+                    delete item.accountDc
                     return item
                 })
                 finstlbillsSubmit(this.form).then(res=>{
                     this.saveLoading = false
+                    this.pageLoading = false
                     this.$message.success('操作成功');
                     this.finstlbillsDetailfun(res.data.data.id)
+                }).catch(err=>{
+                    this.pageLoading = false
                 })
             },
             // 详情接口
@@ -826,6 +831,7 @@
                 delete this.form.id
                 // let obj = JSON.parse(JSON.stringify(this.form))
                 let obj = {}
+                obj.type = '1'
                 obj.auditStatus = this.form.isApproved // 审核状态 0 新建费用 1 已请核 2 审核中 3 驳回 4 通过
                 obj.corpCnName = this.form.corpId // 对账单位
                 obj.isSignfor = this.form.isSignfor // 是否已签收(0 否 1是)
@@ -896,9 +902,13 @@
                     cancelButtonText: "取消",
                     type: "warning"
                 }).then(()=>{
+                    this.pageLoading = true
                     finstlbillsConfirmReconciliation(this.form).then(res=>{
+                        this.pageLoading = false
                         this.$message.success('操作成功');
                         this.finstlbillsDetailfun(res.data.data.id)
+                    }).catch(err=>{
+                        this.pageLoading = false
                     })
                 })
             },
@@ -909,9 +919,13 @@
                     cancelButtonText: "取消",
                     type: "warning"
                 }).then(()=>{
-                    finstlbillsRevokeReconciliation().then(res=>{
+                    this.pageLoading = true
+                    finstlbillsRevokeReconciliation(this.form).then(res=>{
+                        this.pageLoading = false
                         this.$message.success('操作成功');
                         this.finstlbillsDetailfun(res.data.data.id)
+                    }).catch(err=>{
+                        this.pageLoading = false
                     })
                 })
             },
@@ -985,9 +999,13 @@
                     delete item.billDate
                     return item
                 })
+                this.pageLoading = true
                 finstlbillsConfirmSignFor(this.form).then(res=>{
+                    this.pageLoading = false
                     this.$message.success('操作成功');
                     this.finstlbillsDetailfun(res.data.data.id)
+                }).catch(err=>{
+                    this.pageLoading = false
                 })
             },
             // 撤销签收接口
@@ -1007,9 +1025,13 @@
                     delete item.billDate
                     return item
                 })
+                this.pageLoading = true
                 finstlbillsRevokeSignFor(this.form).then(res=>{
+                    this.pageLoading = false
                     this.$message.success('操作成功');
                     this.finstlbillsDetailfun(res.data.data.id)
+                }).catch(err=>{
+                    this.pageLoading = false
                 })
             },
             // 获取 全部是否 接口