瀏覽代碼

货代amend 2024-1-16

caojunjie 1 年之前
父節點
當前提交
e6774b00a1

+ 16 - 1
src/api/iosBasicData/amends.js

@@ -39,4 +39,19 @@ export const amendsSubmit = (row) => {
     data: row
   })
 }
-
+// 单据请核
+export const amendsCheckAmends = (row) => {
+  return request({
+    url: '/api/blade-los/amends/checkAmends',
+    method: 'post',
+    data: row
+  })
+}
+// 撤销单据请核
+export const amendsRevokeCheckAmends = (row) => {
+  return request({
+    url: '/api/blade-los/amends/revokeCheckAmends',
+    method: 'post',
+    data: row
+  })
+}

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

@@ -1487,6 +1487,10 @@ const columnName = [{
     name: '货运代理-amends'
   },
   {
+    code: 322.1,
+    name: '货运代理-amends-详情编辑表格'
+  },
+  {
     code: 323,
     name: '货运代理-财务管理-科目管理'
   },

+ 3 - 0
src/page/index/tags.vue

@@ -412,6 +412,9 @@ export default {
         if(tag.label == "结算中心(F)"){
             this.$store.commit("JSZX_OUT_DETAIL")
         }
+        if(tag.label == "SEAMEND"){
+            this.$store.commit("SEA_OUT_DETAIL")
+        }
         this.$store.commit("DEL_TAG", tag);
         if (tag.value === this.tag.value) {
           tag = this.tagList[key === 0 ? key : key - 1]; //如果关闭本标签让前推一个

+ 1 - 1
src/router/views/index.js

@@ -2756,7 +2756,7 @@ export default [{
     hidden: true,
     children: [{
       path: '/iosBasicData/amends/index',
-      name: '海运出口AMENO',
+      name: 'SEAMEND',
       meta: {
         i18n: '/iosBasicData/amends/index',
         keepAlive: true,

+ 1 - 0
src/store/getters.js

@@ -70,5 +70,6 @@ const getters = {
   paidapplication: state => state.ifdetail.paidapplication, // 付费申请(F)
   ReconciliationCenterF: state => state.ifdetail.ReconciliationCenterF, // 对账中心(F)
   SettlementCenterF: state => state.ifdetail.SettlementCenterF, // 结算中心(F)
+  seamendF: state => state.ifdetail.seamendF, // SEAMEND
 }
 export default getters

+ 11 - 0
src/store/modules/ifdetail.js

@@ -47,6 +47,7 @@ const ifdetail = {
     paidapplication:false, // 付费申请(F)
     ReconciliationCenterF:false, // 对账中心(F)
     SettlementCenterF:false, // 结算中心(F)
+    seamendF:false, // 结算中心(F)
   },
   actions: {},
   mutations: {
@@ -395,6 +396,13 @@ const ifdetail = {
     JSZX_OUT_DETAIL(state) {
       state.SettlementCenterF = false;
     },
+    // SEAMEND
+    SEA_IN_DETAIL(state) {
+      state.seamendF = true;
+    },
+    SEA_OUT_DETAIL(state) {
+      state.seamendF = false;
+    },
     //关闭所有
     DEL_ALL_DETAIL(state) {
       for (let item in state) {
@@ -526,6 +534,9 @@ const ifdetail = {
       if (tag.label == '结算中心(F)') {
         state.SettlementCenterF = true
       }
+      if (tag.label == 'SEAMEND') {
+        state.seamendF = true
+      }
       if (tag.label == '往来单位(F)') {
         state.CorrespondenceUnitslos = true
       }

+ 1 - 0
src/views/approveDataH/index.vue

@@ -22,6 +22,7 @@
         <span v-else-if="scope.row.checkType == 'HYCK-FY'">海运出口费用</span>
         <span v-else-if="scope.row.checkType == 'HYJK-DJ'">海运进口</span>
         <span v-else-if="scope.row.checkType == 'HYJK-FY'">海运进口费用</span>
+        <span v-else-if="scope.row.checkType == 'sea-approve'">海运出口AMEND</span>
 
 
       </template>

+ 15 - 0
src/views/billM/billingCenter/index.vue

@@ -330,6 +330,21 @@
               }]
             },
             {
+                label: "已对账金额",
+                prop: "reconciliationAmount",
+                overHidden:true,
+            },
+              {
+                  label: "已申请结算金额",
+                  prop: "appliedAmountStl",
+                  overHidden:true,
+              },
+              {
+                  label: "已申请发票结算金额",
+                  prop: "appliedInvoiceAmountStl",
+                  overHidden:true,
+              },
+            {
               label: "CNY应收",
               prop: "amountDr",
               overHidden:true,

+ 106 - 60
src/views/exportTrade/EcommerceStocking/detailsPage.vue

@@ -673,13 +673,13 @@ export default {
                 valueFormat: "yyyy-MM-dd 00:00:00",
                 // row: true,
                 // offset: 2,
-                rules: [
-                    {
-                        required: true,
-                        message: "",
-                        trigger: "blur"
-                    }
-                ]
+                // rules: [
+                //     {
+                //         required: true,
+                //         message: "",
+                //         trigger: "blur"
+                //     }
+                // ]
             }, {
                 label: "订单日期",
                 prop: "businesDate",
@@ -689,47 +689,35 @@ export default {
                     message: "",
                     trigger: "blur"
                 }]
-            }, {
-                label: "运输方式",
-                prop: "transport",
-                span: 6,
-                type: "select",
-                dicUrl: "/api/blade-system/dict-biz/dictionary?code=mode_transport",
-                dicData:[],
-                props: {
-                    label: "dictValue",
-                    value: "dictValue"
-                },
-                rules: [
-                    {
-                        required: true,
-                        message: "",
-                        trigger: "blur"
-                    }
-                ],
-            },{
-                label: "运输方式描述",
-                prop: "transportDescription",
-                span: 6,
             },
+            // {
+            //     label: "日期条款",
+            //     prop: "dateClause",
+            //     span: 6,
+            //     rules: [
+            //         {
+            //             required: true,
+            //             message: "",
+            //             trigger: "blur"
+            //         }
+            //     ]
+            // },
+            // {
+            //     label: "日期说明",
+            //     prop: "dateDesc",
+            //     type: "textarea",
+            //     minRows: 1,
+            //     span: 12,
+            // },
             {
-                label: "日期条款",
-                prop: "dateClause",
+                label: "币别",
+                prop: "currency",
                 span: 6,
-                rules: [
-                    {
-                        required: true,
-                        message: "",
-                        trigger: "blur"
-                    }
-                ]
-            },
-            {
-                label: "日期说明",
-                prop: "dateDesc",
-                type: "textarea",
-                minRows: 1,
-                span: 12,
+                rules: [{
+                    required: true,
+                    message: "",
+                    trigger: "blur"
+                }]
             },
             {
                 label: "汇率",
@@ -741,13 +729,37 @@ export default {
                     trigger: "blur"
                 }]
             },
+            // {
+            //     label: "条款说明",
+            //     prop: "priceTermsDescription",
+            //     type: "textarea",
+            //     minRows: 1,
+            //     span: 12,
+            // },
             {
-                label: "条款说明",
-                prop: "priceTermsDescription",
-                type: "textarea",
-                minRows: 1,
-                span: 12,
+                label: "运输方式",
+                prop: "transport",
+                span: 6,
+                type: "select",
+                dicUrl: "/api/blade-system/dict-biz/dictionary?code=mode_transport",
+                dicData:[],
+                props: {
+                    label: "dictValue",
+                    value: "dictValue"
+                },
+                // rules: [
+                //     {
+                //         required: true,
+                //         message: "",
+                //         trigger: "blur"
+                //     }
+                // ],
             },{
+                label: "运输方式描述",
+                prop: "transportDescription",
+                span: 12,
+            },
+            {
                 label: "订单状态",
                 prop: "orderStatus",
                 span: 6,
@@ -757,36 +769,70 @@ export default {
                     label: "dictValue",
                     value: "dictValue"
                 }
+            },
+            {
+                label: "采购员",
+                prop: "buyerId",
+                span: 6,
+                overHidden: true,
+                filterable: true,
+                remote: true,
+                type: "select",
+                dicUrl: "/api/blade-user/page?size=20&current=1&realName={{key}}",
+                props: {
+                    label: "realName",
+                    value: "id",
+                    res: 'data.records'
+                },
+                rules: [
+                    {
+                        required: true,
+                        message: "",
+                        trigger: "blur"
+                    }
+                ]
             }, {
-                label: "币别",
-                prop: "currency",
+                label: "跟单员",
+                prop: "documenterId",
                 span: 6,
-                rules: [{
-                    required: true,
-                    message: "",
-                    trigger: "blur"
-                }]
+                overHidden: true,
+                filterable: true,
+                remote: true,
+                type: "select",
+                dicUrl: "/api/blade-user/page?size=20&current=1&realName={{key}}",
+                props: {
+                    label: "realName",
+                    value: "id",
+                    res: 'data.records'
+                },
+                rules: [
+                    {
+                        required: true,
+                        message: "",
+                        trigger: "blur"
+                    }
+                ]
             },
           {
             label: "备注",
             prop: "orderRemark",
             type: "textarea",
             minRows: 2,
-            span: 8
+            span: 12
           },
           {
             label: "采购备注",
             prop: "purchaseRemark",
             type: "textarea",
             minRows: 2,
-            span: 8
+            span: 12
           },
           {
             label: "船务备注",
             prop: "shippingRemark",
             type: "textarea",
             minRows: 2,
-            span: 8
+            span: 12
           }
         ]
       },

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

@@ -921,6 +921,7 @@
                     settlementApprove(this.form).then(res=>{
                         this.pageLoading = false
                         this.$message.success('操作成功');
+                        this.editSave = true
                         this.finstlbillsDetailfun(res.data.data.id)
                     }).catch(err=>{
                         this.pageLoading = false

+ 29 - 8
src/views/iosBasicData/SeafreightExportF/bills/assembly/feecenter.vue

@@ -72,17 +72,21 @@
                     </div>
                     <el-button type="danger" plain size="small"
                                :disabled="!selectionDList.length || detailData.seeDisabled || pleasereviewType"
-                               @click="batchDelete('D')">批量删除
+                               @click="batchDelete('D')">一键删除
                     </el-button>
                     <el-button type="success" plain size="small"
-                               :disabled="!selectionDList.length || detailData.seeDisabled || pleasereviewType" @click="GenerateBillsfun('D')">应收账单
+                               :disabled="!selectionDList.length || detailData.seeDisabled || pleasereviewType" @click="GenerateBillsfun('D')">生成账单
                     </el-button>
                     <el-button type="danger" plain size="small"
                                :disabled="!selectionDList.length || detailData.seeDisabled || pleasereviewType" @click="RevokingBillsfun('D')">撤销账单
                     </el-button>
                     <el-button type="primary" plain size="small" @click="printingCostsfun('D')">打印账单</el-button>
                     <el-button type="success" plain size="small" :disabled="!this.assemblyForm.id || detailData.seeDisabled || pleasereviewType" @click="templateClick('D')">应收模板</el-button>
-                    <el-button type="info" plain size="small" :disabled="detailData.seeDisabled || pleasereviewType" @click="feecenterSubmitListfun">保存账单</el-button>
+                    <el-button type="info" plain size="small" :disabled="detailData.seeDisabled || pleasereviewType" @click="feecenterSubmitListfun">一键保存</el-button>
+                    <el-button type="info" plain size="small"
+                               :disabled="detailData.seeDisabled || pleasereviewType"
+                               @click="feecenterEditfun('D')">一键编辑
+                    </el-button>
                     <el-button type="primary" plain size="small" :disabled="detailData.seeDisabled || pleasereviewType" @click="copyfun('D')">生成应付</el-button>
                 </template>
                 <template slot="indexHeader" slot-scope="scope">
@@ -227,11 +231,11 @@
                     </div>
                     <el-button type="danger" plain size="small"
                                :disabled="!selectionCList.length || detailData.seeDisabled || pleasereviewType"
-                               @click="batchDelete('C')">批量删除
+                               @click="batchDelete('C')">一键删除
                     </el-button>
                     <el-button type="primary" plain size="small"
                                :disabled="!selectionCList.length || detailData.seeDisabled || pleasereviewType"
-                               @click="GenerateBillsfun('C')" >应付账单
+                               @click="GenerateBillsfun('C')" >生成账单
                     </el-button>
                     <el-button type="danger" plain size="small"
                                :disabled="!selectionCList.length || detailData.seeDisabled || pleasereviewType"
@@ -244,7 +248,11 @@
                     </el-button>
                     <el-button type="info" plain size="small"
                                :disabled="detailData.seeDisabled || pleasereviewType"
-                               @click="feecenterSubmitListfun">保存账单
+                               @click="feecenterSubmitListfun">一键保存
+                    </el-button>
+                    <el-button type="info" plain size="small"
+                               :disabled="detailData.seeDisabled || pleasereviewType"
+                               @click="feecenterEditfun('C')">一键编辑
                     </el-button>
                     <el-button type="primary" plain size="small"
                                :disabled="detailData.seeDisabled || pleasereviewType"
@@ -1594,7 +1602,7 @@
                     this.selectionCList = list
                 }
             },
-            // 批量删除
+            // 一键删除
             batchDelete(dc){
                 if(dc == 'D') {
                     for(let item of this.selectionDList) {
@@ -2012,7 +2020,6 @@
                     polNamePrint:this.assemblyForm.polNamePrint,
                     podNamePrint:this.assemblyForm.podNamePrint,
                 }
-                console.log(obj,1132)
                 finaccbillsGenerateBill(obj).then(res=>{
                     this.$message({
                         type: "success",
@@ -2034,6 +2041,20 @@
                     this.$emit('billsDetailfun')
                 })
             },
+            // 一键编辑
+            feecenterEditfun(dc){
+                if (dc == 'D') {
+                    for(let item of this.assemblyForm.feeCenterListD) {
+                        this.$delete(item, 'edit')
+                        this.$set(item,'edit',true)
+                    }
+                }else {
+                    for(let item of this.assemblyForm.feeCenterListC) {
+                        this.$delete(item, 'edit')
+                        this.$set(item,'edit',true)
+                    }
+                }
+            },
             // 费用信息明细保存按钮
             feecenterSubmitListfun(){
                 if (!this.pid) {

+ 671 - 94
src/views/iosBasicData/amends/amendsDetails.vue

@@ -7,8 +7,17 @@
                 </el-button>
             </div>
             <div class="add-customer-btn">
-                <el-button  size="small" type="primary" style="margin-right: 8px"
-                            :loading="saveLoading" >保 存
+                <el-button size="small" type="success" style="margin-right: 8px" v-if="form.status == 0 || form.status == 4" :disabled="!form.id"
+                           :loading="saveLoading" @click="submitforApproval">提交请核
+                </el-button>
+                <el-button  size="small" type="warning" plain
+                            v-if="form.status == 1" :disabled="!form.id"
+                            :loading="saveLoading" @click="revokepleaseReview">撤销请核
+                </el-button>
+                <span v-if="form.status == 2" style="font-size: 14px;margin-right: 10px;" >审核中</span>
+                <span v-if="form.status == 3" style="font-size: 12px;margin-right: 10px;" >审核通过</span>
+                <el-button size="small" type="primary" style="margin-right: 8px" :disabled="buttonDisable"
+                           :loading="saveLoading" @click="amendsSubmitfun">保 存
                 </el-button>
             </div>
         </div>
@@ -18,41 +27,41 @@
                     <el-row>
                         <el-col :span="5">
                             <el-form-item label="原M B/L NO:" prop="mblno">
-                                <el-input style="width: 100%;" v-model="form.mblno"
+                                <el-input style="width: 100%;" v-model="form.mblno" :disabled="buttonDisable"
                                           size="small" autocomplete="off"
-                                          clearable placeholder="请输入原M B/L NO" >
+                                          clearable placeholder="请输入原M B/L NO">
                                 </el-input>
                             </el-form-item>
                         </el-col>
                         <el-col :span="5">
                             <el-form-item label="原H B/L NO:" prop="hblno">
-                                <el-input style="width: 100%;" v-model="form.hblno"
+                                <el-input style="width: 100%;" v-model="form.hblno" :disabled="buttonDisable"
                                           size="small" autocomplete="off"
-                                          clearable placeholder="请输入原H B/L NO" >
+                                          clearable placeholder="请输入原H B/L NO">
                                 </el-input>
                             </el-form-item>
                         </el-col>
                         <el-col :span="5">
                             <el-form-item label="原外提单号:" prop="refno">
-                                <el-input style="width: 100%;" v-model="form.refno"
+                                <el-input style="width: 100%;" v-model="form.refno" :disabled="buttonDisable"
                                           size="small" autocomplete="off"
-                                          clearable placeholder="请输入原外提单号" >
+                                          clearable placeholder="请输入原外提单号">
                                 </el-input>
                             </el-form-item>
                         </el-col>
                         <el-col :span="5">
                             <el-form-item label="BOOKINGNO:" prop="bookingNo">
-                                <el-input style="width: 100%;" v-model="form.bookingNo"
+                                <el-input style="width: 100%;" v-model="form.bookingNo" :disabled="buttonDisable"
                                           size="small" autocomplete="off"
-                                          clearable placeholder="请输入BOOKINGNO" >
+                                          clearable placeholder="请输入BOOKINGNO">
                                 </el-input>
                             </el-form-item>
                         </el-col>
                         <el-col :span="4">
                             <el-form-item label="AMEND原因:" prop="billNo">
-                                <el-input style="width: 100%;" v-model="form.billNo"
+                                <el-input style="width: 100%;" v-model="form.billNo" :disabled="buttonDisable"
                                           size="small" autocomplete="off"
-                                          clearable placeholder="请输入AMEND" >
+                                          clearable placeholder="请输入AMEND">
                                 </el-input>
                             </el-form-item>
                         </el-col>
@@ -62,7 +71,7 @@
                                     <el-input style="width: 100%;" v-model="form.corpCnName"
                                               size="small" autocomplete="off"
                                               :disabled="true"
-                                              clearable placeholder="客户名称" >
+                                              clearable placeholder="客户名称">
                                     </el-input>
                                 </el-form-item>
                             </el-col>
@@ -71,15 +80,15 @@
                                     <el-input style="width: 100%;" v-model="form.corpEnName"
                                               size="small" autocomplete="off"
                                               :disabled="true"
-                                              clearable placeholder="客户名称" >
+                                              clearable placeholder="客户名称">
                                     </el-input>
                                 </el-form-item>
                             </el-col>
                         </el-col>
                         <el-col :span="5">
                             <el-form-item label="业务类型:" prop="businessType">
-                                <search-query :datalist="businessTypeData"
-                                              :selectValue="form.businessType"
+                                <search-query :datalist="origSeaTypeData"
+                                              :selectValue="form.origSeaType"
                                               :filterable="true"
                                               :disabled="true"
                                               :clearable="true"
@@ -94,7 +103,7 @@
                                 <el-input style="width: 100%;" v-model="form.origBillNo"
                                           size="small" autocomplete="off"
                                           :disabled="true"
-                                          clearable placeholder="原业务编号" >
+                                          clearable placeholder="原业务编号">
                                 </el-input>
                             </el-form-item>
                         </el-col>
@@ -103,7 +112,8 @@
                                 <el-date-picker v-model="form.voucherDate" clearable
                                                 style="width: 100%;"
                                                 type="date" size="small"
-                                                value-format="yyyy-MM-dd HH:mm"
+                                                value-format="yyyy-MM-dd HH:mm:ss"
+                                                :disabled="buttonDisable"
                                                 placeholder="选择制单日期">
                                 </el-date-picker>
                             </el-form-item>
@@ -114,7 +124,7 @@
                                 <el-input style="width: 100%;" v-model="form.vesselCnName"
                                           size="small" autocomplete="off"
                                           :disabled="true"
-                                          clearable placeholder="船名" >
+                                          clearable placeholder="船名">
                                 </el-input>
                             </el-form-item>
                         </el-col>
@@ -123,7 +133,7 @@
                                 <el-input style="width: 100%;" v-model="form.voyageNo"
                                           size="small" autocomplete="off"
                                           :disabled="true"
-                                          clearable placeholder="航次" >
+                                          clearable placeholder="航次">
                                 </el-input>
                             </el-form-item>
                         </el-col>
@@ -132,7 +142,7 @@
                                 <el-input style="width: 100%;" v-model="form.etd"
                                           size="small" autocomplete="off"
                                           :disabled="true"
-                                          clearable placeholder="ETD" >
+                                          clearable placeholder="ETD">
                                 </el-input>
                             </el-form-item>
                         </el-col>
@@ -141,7 +151,7 @@
                                 <el-input style="width: 100%;" v-model="form.eta"
                                           size="small" autocomplete="off"
                                           :disabled="true"
-                                          clearable placeholder="ETA" >
+                                          clearable placeholder="ETA">
                                 </el-input>
                             </el-form-item>
                         </el-col>
@@ -150,7 +160,7 @@
                                 <el-input style="width: 100%;" v-model="form.billNo"
                                           size="small" autocomplete="off"
                                           :disabled="true"
-                                          clearable placeholder="业务编号" >
+                                          clearable placeholder="业务编号">
                                 </el-input>
                             </el-form-item>
                         </el-col>
@@ -159,7 +169,7 @@
                                 <el-input style="width: 100%;" v-model="form.quantity"
                                           size="small" autocomplete="off"
                                           :disabled="true"
-                                          clearable placeholder="件数" >
+                                          clearable placeholder="件数">
                                 </el-input>
                             </el-form-item>
                         </el-col>
@@ -168,7 +178,7 @@
                                 <el-input style="width: 100%;" v-model="form.grossWeight"
                                           size="small" autocomplete="off"
                                           :disabled="true"
-                                          clearable placeholder="毛重" >
+                                          clearable placeholder="毛重">
                                 </el-input>
                             </el-form-item>
                         </el-col>
@@ -177,7 +187,7 @@
                                 <el-input style="width: 100%;" v-model="form.measurement"
                                           size="small" autocomplete="off"
                                           :disabled="true"
-                                          clearable placeholder="尺码" >
+                                          clearable placeholder="尺码">
                                 </el-input>
                             </el-form-item>
                         </el-col>
@@ -186,7 +196,7 @@
                                 <el-input style="width: 100%;" v-model="form.quantityCntrDescr"
                                           size="small" autocomplete="off"
                                           :disabled="true"
-                                          clearable placeholder="箱型箱量" >
+                                          clearable placeholder="箱型箱量">
                                 </el-input>
                             </el-form-item>
                         </el-col>
@@ -196,22 +206,22 @@
                                           type="textarea"
                                           size="small" autocomplete="off"
                                           :disabled="true"
-                                          clearable placeholder="原业务备注" >
+                                          clearable placeholder="原业务备注">
                                 </el-input>
                             </el-form-item>
                         </el-col>
                         <el-col :span="10">
-                            <el-form-item label="备注:" prop="billNo">
-                                <el-input style="width: 100%;" v-model="form.billNo" type="textarea"
+                            <el-form-item label="备注:" prop="remarks">
+                                <el-input style="width: 100%;" v-model="form.remarks" type="textarea"
                                           size="small" autocomplete="off"
-                                          clearable placeholder="请输入备注" >
+                                          clearable placeholder="请输入备注">
                                 </el-input>
                             </el-form-item>
                         </el-col>
                         <el-col :span="4">
                             <el-form-item label="" prop="billNo" label-width="50px">
-                                <el-button  size="small" type="primary" style="margin-right: 8px"
-                                            :loading="saveLoading" @click="retrievalfun" >提取原业务信息
+                                <el-button size="small" type="primary" style="margin-right: 8px" :disabled="form.id"
+                                           :loading="saveLoading" @click="retrievalfun">提取原业务信息
                                 </el-button>
                             </el-form-item>
                         </el-col>
@@ -220,90 +230,657 @@
             </el-card>
 
             <el-card style="margin-top: 10px">
-                <div style="margin-bottom: 10px">
-                    <el-button  size="small" type="success" style="margin-right: 8px"
-                                :loading="saveLoading" @click="addTablefun" >新增费用
-                    </el-button>
-                    <el-button type="danger" plain size="small">批量删除</el-button>
-                    <!--<el-button type="success" plain size="small">应收账单-->
-                    <!--</el-button>-->
-                    <!--<el-button type="danger" plain size="small">撤销账单-->
-                    <!--</el-button>-->
-                    <el-button type="primary" plain size="small">打印账单</el-button>
-                    <!--<el-button type="success" plain size="small">应收模板</el-button>-->
-                    <!--<el-button type="info" plain size="small">保存账单</el-button>-->
-                </div>
-                <amends-costdetails :tableData="tableData"></amends-costdetails>
+                <amends-costdetails :disabled="buttonDisable"
+                                    :tableData="form.feeCenterList"
+                                    :form="form" :editType="editType"
+                                    @addfun="addTablefun"
+                                    @oneclickEditingfun="oneclickEditingfun"
+                                    @amendsDetailfun="amendsDetailfun(this.form.id)" >
+                </amends-costdetails>
             </el-card>
 
             <el-card style="margin-top: 10px">
-                <div style="font-size: 12px;margin-bottom: 5px">已生成账单费用:</div>
-                <billgenerated></billgenerated>
-                <billgenerated></billgenerated>
+                <!--<div style="font-size: 12px;margin-bottom: 5px">已生成账单费用:</div>-->
+                <div style="margin-bottom: 5px;">
+                    <div style="display: inline-block;margin-right: 20px" class="disabledBox fontSize">
+                        <i class="el-icon-coin"></i>
+                        <span>应收费用</span>
+                    </div>
+                    <el-button type="primary" plain size="small" :disabled="buttonDisable"
+                               @click="upwardAddfun('D')">添加编辑数据
+                    </el-button>
+                </div>
+                <billgenerated :tableData="this.form.feeCenterListD" :handleSelectionData="multipleChoiceDArr"
+                               @handleSelectionChange="handleSelectionChange($event,'D')"></billgenerated>
+                <div style="margin-bottom: 5px;">
+                    <div style="display: inline-block;margin-right: 20px" class="disabledBox meetSize">
+                        <i class="el-icon-coin"></i>
+                        <span>应付费用</span>
+                    </div>
+                    <el-button type="primary" plain size="small" :disabled="buttonDisable"
+                               @click="upwardAddfun('C')">添加编辑数据
+                    </el-button>
+                </div>
+                <billgenerated :tableData="this.form.feeCenterListC" :handleSelectionData="multipleChoiceCArr"
+                               @handleSelectionChange="handleSelectionChange($event,'C')"></billgenerated>
             </el-card>
-
         </div>
+
+        <!--模板弹窗-->
+        <el-dialog
+            title="选择数据"
+            class="el-dialogDeep"
+            :visible.sync="retrievePopupsType"
+            append-to-body
+            width="70%"
+            :close-on-click-modal="false">
+            <div>
+                <avue-crud
+                    :option="retrievePopupsOption"
+                    :data="retrievePopupsData"
+                    ref="retrievePopupsRef"
+                    id="out-table"
+                    :header-cell-class-name="headerClassName">
+                    <template slot="menu" slot-scope="{ row }">
+                        <el-button
+                            type="text"
+                            icon=""
+                            size="small"
+                            @click.stop="retrievePopupsSelect(row)"
+                        >选择
+                        </el-button>
+                    </template>
+                </avue-crud>
+            </div>
+        </el-dialog>
+
     </div>
 </template>
 
 <script>
-    import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
-    import amendsCostdetails from "@/views/iosBasicData/amends/assembly/amendsCostdetails.vue";
-    import billgenerated from "@/views/iosBasicData/amends/assembly/billgenerated.vue";
-    import {billsGetDetail} from "@/api/iosBasicData/bills";
+import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
+import amendsCostdetails from "@/views/iosBasicData/amends/assembly/amendsCostdetails.vue";
+import billgenerated from "@/views/iosBasicData/amends/assembly/billgenerated.vue";
+import {billsGetDetail} from "@/api/iosBasicData/bills";
+import {dateFormat} from "@/util/date";
+import {amendsSubmit, amendsDetail, amendsCheckAmends, amendsRevokeCheckAmends} from "@/api/iosBasicData/amends";
 
-    export default {
-        components: {SearchQuery,amendsCostdetails,billgenerated},
-        data(){
-            return {
-                tableData:[],
-                pageLoading:false,
-                saveLoading:false,
-                form:{},
-                businessTypeData:[
+export default {
+    components: {SearchQuery, amendsCostdetails, billgenerated},
+    data() {
+        return {
+            retrievePopupsType: false, // 检索完的弹窗
+            retrievePopupsData: [], // 检索完的弹窗数据
+            retrievePopupsOption: {
+                border: true,
+                calcHeight: 30,
+                tip: false,
+                height: 'auto',
+                index: true,
+                addBtn: false,
+                viewBtn: false,
+                delBtn: false,
+                editBtn: false,
+                refreshBtn: false,
+                columnBtn: false,
+                menuWidth: '60',
+                column: [
+                    {
+                        label: "单据类型",
+                        prop: "billType",
+                        type: 'select',
+                        dicData: [{
+                            label: '直单',
+                            value: 'DD'
+                        }, {
+                            label: '主单',
+                            value: 'MM'
+                        }, {
+                            label: '分单',
+                            value: 'MH'
+                        }],
+                        overHidden: true,
+                    },
+                    {
+                        label: "单据编号",
+                        prop: "billNo",
+                        width: "120",
+                        overHidden: true,
+                    },
+                    {
+                        label: "客户名",
+                        prop: "corpCnName",
+                        width: "140",
+                        overHidden: true,
+                    },
+                    {
+                        label: "MB/L NO",
+                        prop: "mblno",
+                        width: "80",
+                        overHidden: true,
+                    },
+                    {
+                        label: "HB/L NO",
+                        prop: "hblno",
+                        width: "80",
+                        overHidden: true,
+                    },
+                    {
+                        label: "BOOKING NO",
+                        prop: "bookingNo",
+                        width: "120",
+                        overHidden: true,
+                    },
                     {
-                        label:'海运出口AMEND',
-                        value:'SEA'
+                        label: "船名",
+                        prop: "vesselCnName",
+                        overHidden: true,
                     },
                     {
-                        label:'海运进口AMEND',
-                        value:'SIA'
+                        label: "航次",
+                        prop: "voyageNo",
+                        width: "80",
+                        overHidden: true,
+                    },
+                    {
+                        label: "开船日期",
+                        prop: "etd",
+                        type: "date",
+                        unlinkPanels: true,
+                        searchRange: true,
+                        overHidden: true,
+                        forma: "yyyy-MM-dd",
+                        valueFormat: "yyyy-MM-dd HH:mm:ss",
+                        searchDefaultTime: ["00:00:00", "23:59:59"],
+                    },
+                ]
+            },
+            pageLoading: false, // 全屏加载动画
+            saveLoading: false, // 按钮加载动画
+            // 选择的数据
+            form: {
+                voucherDate: dateFormat(new Date(), "yyyy-MM-dd") + ' 00:00:00', // 制单日期 默认 当天,
+                feeCenterListD: [],
+                feeCenterListC: [],
+                feeCenterList:[]
+            },
+            // 业务类型 数据
+            origSeaTypeData: [
+                {
+                    label: '海运出口',
+                    value: 'SE'
+                },
+                {
+                    label: '海运进口',
+                    value: 'SI'
+                }
+            ],
+            multipleChoiceDArr: [], // 应收多选
+            multipleChoiceCArr: [], // 应付多选
+            // 是否编辑状态
+            editType: false,
+            buttonDisable:false, // 按钮的是否禁用
+        }
+    },
+    watch:{
+        "form.status":{
+            // 执行方法
+            handler(oldValue,newValue) {
+                // 0 = 新建  1=审核提交  2=审核中  3= 审核通过  4=审核驳回
+                if (oldValue == 1 || oldValue == 2 || oldValue == 3) {
+                    this.buttonDisable = true
+                }else {
+                    this.buttonDisable = false
+                }
+            },
+            deep: false, // 深度监听
+            immediate: false  // 第一次改变就执行
+        },
+    },
+    methods: {
+        // 添加一条
+        addTablefun() {
+            this.form.feeCenterList.push({})
+            this.editType = true
+        },
+        // 一键编辑
+        oneclickEditingfun(){
+            this.editType = true
+        },
+        // 详情数据
+        amendsDetailfun(id) {
+            this.pageLoading = true
+            amendsDetail(id).then(res=>{
+                this.pageLoading = false
+                this.form = res.data.data
+                let arr = ['feeCenterList','feeCenterListC','feeCenterListD']
+                for(let data of arr) {
+                    for (let item of this.form[data]) {
+                        if (item.curCode == 'CNY') {
+                            this.$set(item, 'rmbAmount', item.amount)
+                            this.$set(item, 'usdAmount', '')
+                            this.$set(item, 'rmbAmountNet', item.amountNet)
+                            this.$set(item, 'usdAmountNet', '')
+                        } else {
+                            this.$set(item, 'usdAmount', item.amount)
+                            this.$set(item, 'rmbAmount', '')
+                            this.$set(item, 'usdAmountNet', item.amountNet)
+                            this.$set(item, 'rmbAmountNet', '')
+                        }
                     }
-                ],
+                }
+            })
+        },
+        // 向上添加数据
+        upwardAddfun(dc) {
+            if (dc == 'D') {
+                this.form.feeCenterList.unshift(...this.multipleChoiceDArr)
+            } else {
+                this.form.feeCenterList.unshift(...this.multipleChoiceCArr)
             }
         },
-        methods:{
-            addTablefun(){
-                this.tableData.push({
-                    edit:true
-                })
-            },
-            // 检索
-            retrievalfun(){
-                if (!this.form.mblno && !this.form.hblno && !this.form.refno && !this.form.bookingNo) {
-                    return this.$message.warning('请填写至少一项检索条件')
+        // 选择弹窗的数据
+        retrievePopupsSelect(row) {
+            this.retrievePopupsType = false
+            this.form = row
+            this.form.feeCenterList = []
+            this.form.origId = row.id
+            this.form.origBillNo = row.billNo
+            this.form.origBillDate = row.billDate?row.billDate.slice(0,10) + ' 00:00:00':null
+            this.form.origAccountDate = row.accountDate?row.accountDate.slice(0,10) + ' 00:00:00':null
+            this.form.origSeaType = row.seaType
+            this.form.origBillType = row.billType
+            this.form.origRemarks = row.remarks
+            this.form.bookingDate = row.bookingDate?row.bookingDate.slice(0,10) + ' 00:00:00':null
+            this.form.etd = row.etd?row.etd.slice(0,10) + ' 00:00:00':null
+            this.form.eta = row.eta?row.eta.slice(0,10) + ' 00:00:00':null
+            this.form.businessType = 'SEA'
+
+            delete this.form.id
+            delete this.form.status
+            delete this.form.id
+            delete this.form.createUser
+            delete this.form.createUserName
+            delete this.form.createDept
+            delete this.form.createDeptName
+            delete this.form.createTime
+            delete this.form.updateUser
+            delete this.form.updateUserName
+            delete this.form.updateTime
+            delete this.form.billNo
+            delete this.form.billDate
+            delete this.form.remarks
+            delete this.form.accountDate
+            this.form.feeCenterListC = row.feeCenterListC.map(item => {
+                item.accStatus = 0
+                delete item.id
+                delete item.pid
+                delete item.accAmount
+                delete item.accBillId
+                delete item.accBillNo
+                delete item.accById
+                delete item.accByName
+                delete item.accDateaccStatus
+                delete item.accountDate
+                delete item.accountDay
+                delete item.accountMonth
+                delete item.accountYear
+                delete item.appliedAmount
+                delete item.appliedAmountStl
+                delete item.appliedInvoiceAmount
+                delete item.appliedInvoiceAmountStl
+                delete item.applyId
+                delete item.applyName
+                delete item.applyTime
+                delete item.approveTime
+                delete item.approveTimeList
+                delete item.approverId
+                delete item.approverName
+                delete item.auditStatus
+                delete item.checkAmount
+                delete item.checkBillId
+                delete item.checkBillNo
+                delete item.checkById
+                delete item.checkByName
+                delete item.checkDate
+                delete item.checkStatus
+                delete item.createDept
+                delete item.createDeptName
+                delete item.createTime
+                delete item.createUser
+                delete item.createUserName
+                delete item.invoiceAmount
+                delete item.invoiceAmountLoc
+                delete item.invoiceBillId
+                delete item.invoiceBillNo
+                delete item.invoiceById
+                delete item.invoiceByName
+                delete item.invoiceCurCode
+                delete item.invoiceDate
+                delete item.invoiceExrate
+                delete item.invoiceNo
+                delete item.invoiceStatus
+                delete item.stlAmount
+                delete item.stlAmountLoc
+                delete item.stlBillId
+                delete item.stlBillNo
+                delete item.stlById
+                delete item.stlByName
+                delete item.stlCurCode
+                delete item.stlDate
+                delete item.stlExrate
+                delete item.stlExrateLoc
+                delete item.stlOrgAmount
+                delete item.stlStatus
+                delete item.stlTtlAmount
+                delete item.uninvoicedAmount
+                delete item.unsettledAmount
+                delete item.updateTime
+                delete item.updateUser
+                delete item.updateUserName
+                delete item.voucherBillId
+                delete item.voucherBillNo
+                delete item.voucherById
+                delete item.voucherByName
+                delete item.voucherDate
+                delete item.voucherNo
+                delete item.voucherStatus
+                return item
+            })
+            this.form.feeCenterListD = row.feeCenterListD.map(item => {
+                item.accStatus = 0
+                delete item.id
+                delete item.pid
+                delete item.accAmount
+                delete item.accBillId
+                delete item.accBillNo
+                delete item.accById
+                delete item.accByName
+                delete item.accDateaccStatus
+                delete item.accountDate
+                delete item.accountDay
+                delete item.accountMonth
+                delete item.accountYear
+                delete item.appliedAmount
+                delete item.appliedAmountStl
+                delete item.appliedInvoiceAmount
+                delete item.appliedInvoiceAmountStl
+                delete item.applyId
+                delete item.applyName
+                delete item.applyTime
+                delete item.approveTime
+                delete item.approveTimeList
+                delete item.approverId
+                delete item.approverName
+                delete item.auditStatus
+                delete item.checkAmount
+                delete item.checkBillId
+                delete item.checkBillNo
+                delete item.checkById
+                delete item.checkByName
+                delete item.checkDate
+                delete item.checkStatus
+                delete item.createDept
+                delete item.createDeptName
+                delete item.createTime
+                delete item.createUser
+                delete item.createUserName
+                delete item.invoiceAmount
+                delete item.invoiceAmountLoc
+                delete item.invoiceBillId
+                delete item.invoiceBillNo
+                delete item.invoiceById
+                delete item.invoiceByName
+                delete item.invoiceCurCode
+                delete item.invoiceDate
+                delete item.invoiceExrate
+                delete item.invoiceNo
+                delete item.invoiceStatus
+                delete item.stlAmount
+                delete item.stlAmountLoc
+                delete item.stlBillId
+                delete item.stlBillNo
+                delete item.stlById
+                delete item.stlByName
+                delete item.stlCurCode
+                delete item.stlDate
+                delete item.stlExrate
+                delete item.stlExrateLoc
+                delete item.stlOrgAmount
+                delete item.stlStatus
+                delete item.stlTtlAmount
+                delete item.uninvoicedAmount
+                delete item.unsettledAmount
+                delete item.updateTime
+                delete item.updateUser
+                delete item.updateUserName
+                delete item.voucherBillId
+                delete item.voucherBillNo
+                delete item.voucherById
+                delete item.voucherByName
+                delete item.voucherDate
+                delete item.voucherNo
+                delete item.voucherStatus
+                return item
+            })
+            // 应收
+            for (let item of this.form.feeCenterListD) {
+                if (item.curCode == 'CNY') {
+                    this.$set(item, 'rmbAmount', item.amount)
+                    this.$set(item, 'usdAmount', '')
+                    this.$set(item, 'rmbAmountNet', item.amountNet)
+                    this.$set(item, 'usdAmountNet', '')
+                } else {
+                    this.$set(item, 'usdAmount', item.amount)
+                    this.$set(item, 'rmbAmount', '')
+                    this.$set(item, 'usdAmountNet', item.amountNet)
+                    this.$set(item, 'rmbAmountNet', '')
+                }
+            }
+            // 应付
+            for (let item of this.form.feeCenterListC) {
+                if (item.curCode == 'CNY') {
+                    this.$set(item, 'rmbAmount', item.amount)
+                    this.$set(item, 'usdAmount', '')
+                    this.$set(item, 'rmbAmountNet', item.amountNet)
+                    this.$set(item, 'usdAmountNet', '')
+                } else {
+                    this.$set(item, 'usdAmount', item.amount)
+                    this.$set(item, 'rmbAmount', '')
+                    this.$set(item, 'usdAmountNet', item.amountNet)
+                    this.$set(item, 'rmbAmountNet', '')
+                }
+            }
+        },
+        // 保存
+        amendsSubmitfun(){
+            // 判断必填项
+            let sum = '请输入'
+            for (let item of this.form.feeCenterList) {
+                if (!item.dc) {
+                    sum += ` 应收序号${item.$index + 1}收/付`
+                }
+                if (!item.corpId) {
+                    sum += ` 应收序号${item.$index + 1}往来单位`
+                }
+                if (!item.feeId) {
+                    sum += ` 应收序号${item.$index + 1}费用简称`
+                }
+                if (!item.elementsId) {
+                    sum += ` 应收序号${item.$index + 1}核算要素`
                 }
-                billsGetDetail({
-                    mblno:this.form.mblno?this.form.mblno:null,
-                    hblno:this.form.hblno?this.form.hblno:null,
-                    refno:this.form.refno?this.form.refno:null,
-                    bookingNo:this.form.bookingNo?this.form.bookingNo:null
+                if (!item.curCode) {
+                    sum += ` 应收序号${item.$index + 1}币种`
+                }
+            }
+            if(sum != '请输入') {
+                this.$confirm(sum, {
+                    confirmButtonText: "确定",
+                    cancelButtonText: "取消",
+                    type: "warning"
+                })
+                return;
+            }
+            this.form.feeCenterList = this.form.feeCenterList.map((row,index)=>{
+                row.dc = row.dc
+                row.pid = this.form.id
+                row.sort = Number(index) + 1
+                row.businessType = this.form.businessType // 业务类型
+                row.billType = this.form.origBillType // 单据类型
+                row.billNo = this.form.origBillNo // 单据编号
+                row.billDate = this.form.origBillDate // 单据日期
+                row.billCorpId = this.form.corpId // 主表客户 id
+                row.billCorpCnName = this.form.corpCnName // 主表客户中文名称
+                row.billCorpEnName = this.form.corpEnName // 主表客户英文名称
+                row.lineId = this.form.lineId // 航线 id
+                row.lineCnName = this.form.lineCnName // 航线中文名称
+                row.lineEnName = this.form.lineEnName // 航线英文名称
+                row.vesselId = this.form.vesselId // 船名 id
+                row.vesselCnName = this.form.vesselCnName // 中文船名
+                row.vesselEnName = this.form.vesselEnName // 英文船名
+                row.voyageNo = this.form.voyageNo // 航次
+                row.mblno = this.form.mblno // MB/L NO
+                row.hblno = this.form.hblno // HB/L NO
+                row.etd = this.form.etd // 开船日期
+                row.eta = this.form.eta // 到港日期
+                row.polId = this.form.polId // 装货港 id
+                row.polCode = this.form.polCode // 装货港代码
+                row.polCnName = this.form.polCnName // 装货港中文名称
+                row.polEnName = this.form.polEnName // 装货港英文名称
+                row.podId = this.form.podId // 卸货港 id
+                row.podCode = this.form.podCode // 卸货港代码
+                row.podCnName = this.form.podCnName // 卸货港中文名称
+                row.podEnName = this.form.podEnName // 卸货港英文名称
+                row.corpArgreementNo = this.form.corpArgreementNo // 客户约号
+                return row
+            })
+            this.saveLoading = true
+            this.form.billNoFormat = 'SEA'
+            this.form.businessTypeCode = 'SEA'
+            amendsSubmit(this.form).then(res=>{
+                this.saveLoading = false
+                this.editType = false // 把费用编辑状态变成不可编辑
+                this.$message({
+                    type: "success",
+                    message: "操作成功!"
+                });
+                this.amendsDetailfun(res.data.data.id)
+            })
+        },
+        // 提交请核
+        submitforApproval(){
+            this.$confirm("您确定提交请核申请吗?", {
+                confirmButtonText: "确定",
+                cancelButtonText: "取消",
+                type: "warning"
+            }).then(()=>{
+                this.form.businessType = 'SEA'
+                amendsCheckAmends({
+                    ...this.form,
+                    url:'/iosBasicData/amends/index',
+                    pageStatus:'this.$store.getters.seamendF',
+                    pageLabel:'SEAMEND'
                 }).then(res=>{
-                    console.log(res,292)
-                    this.form = res.data.data
-                    this.form.origBillNo = res.data.data.billNo
+                    this.$message({
+                        type: "success",
+                        message: "操作成功!"
+                    });
+                    this.amendsDetailfun(this.form.id)
                 })
-            },
-            //返回列表
-            backToList() {
-                this.$emit('goBack')
-            },
-        }
+            })
+        },
+        // 撤销请核
+        revokepleaseReview(){
+            this.$confirm("您确定撤销请核申请吗?", {
+                confirmButtonText: "确定",
+                cancelButtonText: "取消",
+                type: "warning"
+            }).then(()=>{
+                this.form.businessType = 'SEA'
+                amendsRevokeCheckAmends(this.form).then(res=>{
+                    this.$message({
+                        type: "success",
+                        message: "操作成功!"
+                    });
+                    this.amendsDetailfun(this.form.id)
+                })
+            })
+        },
+        // 检索
+        retrievalfun() {
+            if (!this.form.mblno && !this.form.hblno && !this.form.refno && !this.form.bookingNo) {
+                return this.$message.warning('请填写至少一项检索条件')
+            }
+            billsGetDetail({
+                mblno: this.form.mblno ? this.form.mblno : null,
+                hblno: this.form.hblno ? this.form.hblno : null,
+                refno: this.form.refno ? this.form.refno : null,
+                bookingNo: this.form.bookingNo ? this.form.bookingNo : null,
+                businessType: 'SEA'
+            }).then(res => {
+                this.retrievePopupsType = true
+                this.retrievePopupsData = res.data.data
+            })
+        },
+        // 多选回调
+        handleSelectionChange(arr, dc) {
+            if (dc == 'D') {
+                this.multipleChoiceDArr = arr
+            } else {
+                this.multipleChoiceCArr = arr
+            }
+        },
+        //返回列表
+        backToList() {
+            this.$emit('goBack')
+        },
+        // 更改表格颜色
+        headerClassName(tab) {
+            //颜色间隔
+            let back = "back-one"
+            // 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>
+<style scoped lang="scss">
 ::v-deep.el-form-item {
     margin-bottom: 0;
 }
+
+.el-dialogDeep {
+    ::v-deep .el-dialog {
+        .el-dialog__body, .el-dialog__footer {
+            padding-top: 0 !important;
+        }
+    }
+}
+
+::v-deep#out-table .back-one {
+    background: #ecf5ff !important;
+    text-align: center;
+}
+
+.disabledBox {
+    display: flex;
+    align-items: center;
+}
+
+.fontSize {
+    font-size: 16px;
+    color: #81B337;
+}
+
+.meetSize {
+    font-size: 16px;
+    color: #54BCBD;
+}
 </style>

+ 794 - 230
src/views/iosBasicData/amends/assembly/amendsCostdetails.vue

@@ -1,126 +1,178 @@
 <template>
     <div>
-        <el-table
-            ref="tableRef"
-            :cell-style="{padding:'0px',fontSize:'12px'}"
-            :header-cell-style="tableHeaderCellStyle"
-            :data="tableData"
-            border
-            style="width: 100%"
-            @selection-change="handleSelectionChange"
-            @row-click="rowClick"
-            :row-style="rowStyle"
-            :row-class-name="rowClassName" >
-            <el-table-column label="结算单位">
-                <el-table-column
-                    prop="corpCode"
-                    label="编号">
-                </el-table-column>
-                <el-table-column
-                    prop="corpCnName"
-                    label="简称" width="150px">
-                    <template slot-scope="{ row }">
-                        <search-query v-if="row.edit"
-                                      :datalist="corpData"
-                                      :selectValue="row.corpId"
-                                      :filterable="true"
-                                      :clearable="true"
-                                      :remote="true"
-                                      :buttonIf="false"
-                                      :forParameter="{key:'id',label:'shortName',value:'id'}"
-                                      @remoteMethod="getBcorpsListfun($event,'corpCnName')"
-                                      @corpChange="corpChange($event,'corpCnName',row)"
-                                      @corpFocus="getBcorpsListfun($event,'corpCnName')" >
-                        </search-query>
-                        <span v-else >{{row.corpCnName}}</span>
-                    </template>
-                </el-table-column>
-            </el-table-column>
-            <el-table-column
-                prop="dc"
-                label="收/付">
-            </el-table-column>
-            <el-table-column label="费用">
-                <el-table-column
-                    prop="accountCode"
-                    label="编号">
-                </el-table-column>
-                <el-table-column
-                    prop="accountCode"
-                    label="简称">
-                </el-table-column>
-                <el-table-column
-                    prop="accountCode"
-                    label="预/到付">
-                </el-table-column>
-            </el-table-column>
-            <el-table-column
-                prop="accountCode"
-                label="计价单位">
-            </el-table-column>
-            <el-table-column
-                prop="accountCode"
-                label="单价">
-            </el-table-column>
-            <el-table-column
-                prop="accountCode"
-                label="数量">
-            </el-table-column>
-            <el-table-column
-                prop="accountCode"
-                label="币种">
-            </el-table-column>
-            <el-table-column
-                prop="accountCode"
-                label="增值税率">
-            </el-table-column>
-            <el-table-column
-                prop="accountCode"
-                label="附加费率">
-            </el-table-column>
-            <el-table-column label="价税合计金额">
-                <el-table-column
-                    prop="accountCode"
-                    label="本币">
-                </el-table-column>
-                <el-table-column
-                    prop="accountCode"
-                    label="外币">
-                </el-table-column>
-            </el-table-column>
-            <el-table-column label="净价金额合计">
-                <el-table-column
-                    prop="accountCode"
-                    label="RMB">
-                </el-table-column>
-                <el-table-column
-                    prop="accountCode"
-                    label="外币">
-                </el-table-column>
-            </el-table-column>
-            <el-table-column
-                prop="accountCode"
-                label="汇率">
-            </el-table-column>
-            <el-table-column
-                prop="accountCode"
-                label="预付地点">
-            </el-table-column>
-            <el-table-column
-                prop="accountCode"
-                label="应结算日期">
-            </el-table-column>
-            <el-table-column
-                prop="accountCode"
-                label="备注">
-            </el-table-column>
-        </el-table>
+        <avue-crud :option="option"
+                   :table-loading="loading"
+                   :data="tableData"
+                   v-model="form"
+                   id="out-table"
+                   :header-cell-class-name="headerClassName"
+                   ref="crud"
+                   :row-style="{height:'20px'}"
+                   :cell-style="{padding:'0px'}"
+                   @selection-change="handleSelectionChange"
+                   @resetColumn="resetColumnTwo('crud', 'option', 'optionBack', 322.1)"
+                   @saveColumn="saveColumnTwo('crud', 'option', 'optionBack', 322.1)" >
+            <template slot="menuLeft">
+                <el-button type="danger" plain size="small" :disabled="disabled"
+                           @click="batchDelete" >一键删除
+                </el-button>
+                <el-button type="info" plain size="small" :disabled="disabled"
+                           @click="feecenterSubmitListfun">一键保存
+                </el-button>
+                <el-button type="info" plain size="small" :disabled="disabled"
+                           @click="oneclickEditingfun">一键编辑
+                </el-button>
+                <el-button type="primary" plain size="small" @click="printingCostsfun()">打印账单</el-button>
+            </template>
+            <template slot="indexHeader" slot-scope="scope">
+                <el-button type="primary" size="small" icon="el-icon-plus" circle
+                           :disabled="disabled"
+                           @click="addfun"></el-button>
+            </template>
+            <template slot="index" slot-scope="scope">
+                <span>{{scope.index + 1}}</span>
+            </template>
+            <template slot="accStatus" slot-scope="{row,size}">
+                <span>{{row.accStatus?'是':'否'}}</span>
+            </template>
+            <template slot="dc" slot-scope="{row,size}">
+                <search-query v-if="editType"
+                              :datalist="dcData"
+                              :selectValue="row.dc"
+                              :filterable="true"
+                              :clearable="true"
+                              :remote="true"
+                              :buttonIf="false"
+                              @corpChange="corpChange($event,'dc',row)"
+                              placeholder="请选择收/付">
+                </search-query>
+                <span v-else >{{row.dc}}</span>
+            </template>
+            <template slot="corpCnName" slot-scope="{ row }">
+                <search-query v-if="editType"
+                              :datalist="corpCnNameData"
+                              :selectValue="row.corpCnName"
+                              :filterable="true"
+                              :clearable="true"
+                              :remote="true"
+                              :buttonIf="false"
+                              :forParameter="{key:'id',label:'cnName',value:'cnName'}"
+                              @remoteMethod="getBcorpsListfun($event,'corpCnName')"
+                              @corpChange="corpChange($event,'corpCnName',row)"
+                              @corpFocus="getBcorpsListfun($event,'corpCnName')" >
+                </search-query>
+                <span v-else >{{row.corpCnName}}</span>
+            </template>
+            <template slot="feeCnName" slot-scope="{ row }">
+                <search-query v-if="editType"
+                              :datalist="feeCnNameData"
+                              :selectValue="row.feeCnName"
+                              :filterable="true"
+                              :clearable="true"
+                              :remote="true"
+                              :buttonIf="false"
+                              :forParameter="{key:'id',label:'cnName',value:'cnName'}"
+                              @remoteMethod="bfeesListfun($event,'feeCnName')"
+                              @corpChange="corpChange($event,'feeCnName',row)"
+                              @corpFocus="bfeesListfun($event,'feeCnName')" >
+                </search-query>
+                <span v-else >{{row.feeCnName}}</span>
+            </template>
+            <template slot="elementsCnName" slot-scope="{ row }">
+                <search-query v-if="editType"
+                              :datalist="elementsData"
+                              :selectValue="row.elementsCnName"
+                              :filterable="true"
+                              :clearable="true"
+                              :remote="true"
+                              :buttonIf="false"
+                              :forParameter="{key:'id',label:'cnName',value:'cnName'}"
+                              @remoteMethod="getBaccelementsListfun($event,'elementsCnName')"
+                              @corpChange="corpChange($event,'elementsCnName',row,)"
+                              @corpFocus="getBaccelementsListfun($event,'elementsCnName')" >
+                </search-query>
+                <span v-else >{{row.elementsCnName}}</span>
+            </template>
+            <template slot="paymode" slot-scope="{ row }">
+                <search-query v-if="editType"
+                              :datalist="paymodeData"
+                              :selectValue="row.paymode"
+                              :clearable="true"
+                              :buttonIf="false"
+                              :forParameter="{key:'dictKey',label:'dictValue',value:'dictKey'}"
+                              @corpChange="corpChange($event,'paymode',row)"
+                              @corpFocus="paymodeWorkDictsfun" >
+                </search-query>
+                <span v-else>{{row.paymode}}</span>
+            </template>
+            <template slot="unitNo" slot-scope="{ row }">
+                <search-query v-if="editType"
+                              :datalist="unitNoData"
+                              :selectValue="row.unitNo"
+                              :filterable="true"
+                              :clearable="true"
+                              :remote="true"
+                              :buttonIf="false"
+                              :forParameter="{key:'id',label:'code',value:'code',disabled:'status'}"
+                              @corpFocus="getBunitsPagefun"
+                              @corpChange="corpChange($event,'unitNo',row)" >
+                </search-query>
+                <span v-else>{{row.unitNo}}</span>
+            </template>
+            <template slot="curCode" slot-scope="{ row }">
+                <search-query v-if="editType"
+                              :datalist="curCodeData"
+                              :selectValue="row.curCode"
+                              :filterable="true"
+                              :clearable="true"
+                              :remote="true"
+                              :buttonIf="false"
+                              :forParameter="{key:'id',label:'code',value:'code'}"
+                              @remoteMethod="bcurrencyGetExratefun(row.dc)"
+                              @corpChange="corpChange($event,'curCode',row)"
+                              @corpFocus="bcurrencyGetExratefun(row.dc)" >
+                </search-query>
+                <span v-else>{{row.curCode}}</span>
+            </template>
+            <template slot="isTax" slot-scope="{row}">
+                <span>{{row.isTax?'是':'否'}}</span>
+            </template>
+            <template slot="price" slot-scope="{ row }">
+                <el-input v-if="editType" type="number" v-model="row.price" size="small" :min="1"
+                          placeholder="请输入" @blur="priceinputfun($event,row)"></el-input>
+                <span v-else>{{row.price}}</span>
+            </template>
+            <template slot="quantity" slot-scope="{ row }">
+                <el-input v-if="editType" type="number" v-model="row.quantity" size="small" :min="1"
+                          placeholder="请输入" @blur="quantityinputfun(row)"></el-input>
+                <span v-else>{{row.quantity}}</span>
+            </template>
+            <template slot="remarks" slot-scope="{ row }">
+                <el-input v-if="editType" v-model="row.remarks" size="small"
+                          placeholder="请输入" ></el-input>
+                <span v-else>{{row.remarks}}</span>
+            </template>
+            <template slot-scope="scope" slot="menu">
+                <el-button type="text" size="small" :disabled="disabled" @click="deletefun(scope.row,scope.index,)">删除</el-button>
+            </template>
+        </avue-crud>
     </div>
 </template>
 
 <script>
     import {getBcorpsList} from "@/api/iosBasicData/bcorps";
+    import {bfeesList} from "@/api/iosBasicData/bfees";
+    import {getBaccelementsList} from "@/api/iosBasicData/baccelements";
+    import {bcurrencyGetExrate} from "@/api/iosBasicData/rateManagement";
+    import {getWorkDicts} from "@/api/system/dictbiz";
+    import {getBunitsPage} from "@/api/iosBasicData/bunits";
     import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
+    import {dateFormat} from "@/util/date";
+    import {
+        feecenterRemove,
+        feecenterSubmitList
+    } from "@/api/iosBasicData/feecenter";
+    import {amendsDetail} from "@/api/iosBasicData/amends";
 
     export default {
         components: {SearchQuery},
@@ -129,157 +181,669 @@
                 type:Array,
                 default:[]
             },
-            handleSelectionData:{
-                type:Array,
-                default:[]
+            editType:{
+                type:Boolean,
+                default:false,
+            },
+            form:{
+                type:Object,
+                default:{}
+            },
+            disabled:{
+                type:Boolean,
+                default:false
             }
         },
         data(){
             return {
-                corpData:[], // 结算单位数据
+                option:{},
+                optionBack:{
+                    stripe:true,
+                    maxHeight:'250',
+                    calcHeight: 30,
+                    tip: false,
+                    searchShow: true,
+                    searchMenuSpan: 6,
+                    border: true,
+                    selection: true,
+                    dialogClickModal: false,
+                    addBtn:false,
+                    viewBtn:false,
+                    delBtn:false,
+                    editBtn:false,
+                    menuWidth:'100',
+                    refreshBtn:false,
+                    column:[
+                        {
+                            label: "index",
+                            prop: "index",
+                            width: "55",
+                            headerslot:true,
+                        },
+                        {
+                            label: "账单",
+                            prop: "accStatus",
+                            width: "60",
+                        },
+                        {
+                            label: "收/付",
+                            prop: "dc",
+                            width: "100",
+                        },
+                        {
+                            label: "往来单位",
+                            prop: "corpCnName",
+                            width: "160",
+                            overHidden:true,
+                        },
+                        {
+                            label: "费用简称",
+                            prop: "feeCnName",
+                            width: "120",
+                            overHidden:true,
+                        },
+                        {
+                            label: "预付/到付",
+                            prop: "paymode",
+                            width: "120",
+                        },
+                        {
+                            label: "计量单位",
+                            prop: "unitNo",
+                            width: "120",
+                        },
+                        {
+                            label: "币种",
+                            prop: "curCode",
+                            width: "120",
+                        },
+                        {
+                            label: "汇率",
+                            prop: "exrate",
+                            width: "100",
+                        },
+                        {
+                            label: "单价",
+                            prop: "price",
+                            width: "120",
+                        },
+                        {
+                            label: "数量",
+                            prop: "quantity",
+                            width: "120",
+                        },
+                        {
+                            label: "CNY(含税)",
+                            prop: "rmbAmount",
+                            width: "100",
+                        },
+                        {
+                            label: "USD(含税)",
+                            prop: "usdAmount",
+                            width: "100",
+                        },
+                        {
+                            label: "CNY(净额)",
+                            prop: "rmbAmountNet",
+                            width: "100",
+                        },
+                        {
+                            label: "USD(净额)",
+                            prop: "usdAmountNet",
+                            width: "100",
+                        },
+                        {
+                            label: "核算要素",
+                            prop: "elementsCnName",
+                            width: "120",
+                            overHidden:true,
+                        },
+                        {
+                            label: "付费申请金额",
+                            prop: "appliedAmount",
+                            width: "120",
+                        },
+                        {
+                            label: "发票申请金额",
+                            prop: "appliedInvoiceAmount",
+                            width: "120",
+                        },
+                        {
+                            label: "已开票金额",
+                            prop: "uninvoicedAmount",
+                            width: "120",
+                        },
+                        {
+                            label: "已结算金额",
+                            prop: "stlTtlAmount",
+                            width: "120",
+                        },
+                        {
+                            label: "备注",
+                            prop: "remarks",
+                            width: "100",
+                        },
+                        {
+                            label: "单价是否含税",
+                            prop: "isTax",
+                            width: "120",
+                        },
+                    ]
+                },
+                loading:false,
+                form:{},
+                // 收/付
+                dcData:[
+                    {
+                        label:'收',
+                        value:'D'
+                    },
+                    {
+                        label:'付',
+                        value:'C'
+                    }
+                ],
+                corpCnNameData:[], // 往来单位数据
+                feeCnNameData:[], // 费用数据
+                elementsData:[], // 核算要素
+                paymodeData:[], // 预付到付数据
+                unitNoData:[],  // 计算单位数据
+                curCodeData:[],  // 币别数据
+                handleSelectionData:[], // 多选选择的数据
             }
         },
+        async created() {
+            this.option = await this.getColumnData(this.getColumnName(322.1), this.optionBack);
+        },
         methods:{
+            // 应收新增
+            addfun(){
+                this.$emit('addfun')
+            },
+            // 一键编辑
+            oneclickEditingfun(){
+                this.$emit('oneclickEditingfun')
+            },
+            // 一键删除
+            batchDelete(){
+                this.$confirm("确定将选择数据删除?", {
+                    confirmButtonText: "确定",
+                    cancelButtonText: "取消",
+                    type: "warning"
+                }).then(()=>{
+                    let multiList = this.handleSelectionData
+                    let arr = this.tableData
+                    // 获取有id 的数据
+                    const itemsWithId = multiList.filter(item => item.hasOwnProperty('id'));
+                    let arrIds = itemsWithId.map(item=>item.id) // 获取id 数据
+                    // 把选中的删除掉
+                    multiList.forEach((item)=>{
+                        for (let index in arr) {
+                            if (JSON.stringify(item) == JSON.stringify(arr[index])) {
+                                arr.splice(Number(index),1)
+                            }
+                        }
+                    })
+                    // 有id 的处理
+                    if(itemsWithId.length != 0) {
+                        feecenterRemove(arrIds.join(',')).then(res=>{
+                            this.$message.success('操作成功')
+                            // this.$emit('billsDetailfun')
+                        })
+                    }
+                })
+            },
+            // 小删除
+            deletefun(row,index) {
+                this.$confirm("确定将选择数据删除?", {
+                    confirmButtonText: "确定",
+                    cancelButtonText: "取消",
+                    type: "warning"
+                }).then(()=>{
+                    if (row.id) {
+                        // 删除接口
+                        feecenterRemove(row.id).then(res=>{
+                            this.$message({
+                                type: "success",
+                                message: "操作成功!"
+                            });
+                            this.$emit('amendsDetailfun')
+                        })
+                    }else {
+                        this.tableData.splice(index, 1)
+                    }
+                })
+            },
             // 下拉的回调
-            corpChange(value,name,row){
+            corpChange(value,name,row) {
                 if (name == 'corpCnName') {
-                    for (let item of this.corpData) {
-                        if (item.shortName == value){
-                            // corpCode
-                            // corpEnName
-                            this.$set(row,'corpCnName',item.shortName)
+                    if (!value) {
+                        this.$set(row,'corpCnName','')
+                        this.$set(row,'corpEnName','')
+                        this.$set(row,'corpId','')
+                    }
+                    for(let item of this.corpCnNameData) {
+                        if (item.cnName == value){
+                            this.$set(row,'corpCnName',item.cnName)
+                            this.$set(row,'corpEnName',item.enName)
+                            this.$set(row,'corpId',item.id)
                         }
                     }
-                }else {
+                }else if (name == 'feeCnName') {
+                    if (!value) {
+                        this.$set(row,'feeCnName','')
+                        this.$set(row,'feeEnName','')
+                        this.$set(row,'feeId','')
+                        this.$set(row,'feeCode','')
+                        // 选择费用简称带出核算要素
+                        this.$set(row,'elementsId','')
+                        this.$set(row,'elementsCnName','')
+                        this.$set(row,'elementsCode','')
+                        this.$set(row,'elementsEnName','')
+                    }
+                    for(let item of this.feeCnNameData) {
+                        if (item.cnName == value){
+                            this.$set(row,'feeCnName',item.cnName)
+                            this.$set(row,'feeEnName',item.enName)
+                            this.$set(row,'feeId',item.id)
+                            this.$set(row,'feeCode',item.code)
+                            // 选择费用简称带出核算要素
+                            this.$set(row,'elementsId',item.accElementId)
+                            this.$set(row,'elementsCnName',item.accElementName)
+                            this.$set(row,'elementsCode',item.elementsCode)
+                            this.$set(row,'elementsEnName',item.elementsEnName)
+                            // 拿取费用简称下的计量单位
+                            this.getBunitsPagefun(true,item,row)
+                            // 币别
+                            this.$set(row,'curCode',item.curNo)
+                            // 汇率
+                            bcurrencyGetExrate({
+                                date:this.form.etd?this.form.etd.slice(0,10) + ' 00:00:00':dateFormat(new Date(), "yyyy-MM-dd") + ' 00:00:00', // 开船日期
+                                dc:row.dc
+                            }).then(res=>{
+                                for (let item of res.data.data) {
+                                    if (item.code == row.curCode) {
+                                        this.$set(row,'exrate',item.exrate)
+                                    }
+                                }
+                            })
+                            // 计算金额
+                            this.$set(row,'amount',Number(row.price) * Number(row.quantity?row.quantity:0))
+                            if (row.curCode == 'CNY') {
+                                this.$set(row,'rmbAmount',row.amount)
+                                this.$set(row,'usdAmount','')
+                                this.$set(row,'rmbAmountNet',row.amount)
+                                this.$set(row,'usdAmountNet','')
+                            }else {
+                                this.$set(row,'usdAmount',row.amount)
+                                this.$set(row,'rmbAmount','')
+                                this.$set(row,'usdAmountNet',row.amount)
+                                this.$set(row,'rmbAmountNet','')
+                            }
+                        }
+                    }
+                }else if (name == 'unitNo') {
+                    // 计量单位
+                    this.$set(row,name,value)
+                    for (let item of this.unitNoData) {
+                        if (item.code == value) {
+                            // 按箱型
+                            if (item.quantityRule == 1) {
+                                // 选择的箱那边的数据
+                                if (item.boxquantity) {
+                                    this.$set(row,'quantity',item.boxquantity)
+                                }
+                            }
+                            // 按票
+                            if (item.quantityRule == 2) {
+                                this.$set(row,'quantity',1)
+                            }
+                            // 按重量
+                            if (item.quantityRule == 3) {
+                                this.$set(row,'quantity',this.form.grossWeight)
+                            }
+                            // 按TEU
+                            if (item.quantityRule == 4) {
+                                this.$set(row,'quantity',item.boxquantity)
+                            }
+                            // 按尺码
+                            if (item.quantityRule == 5) {
+                                this.$set(row,'quantity',this.form.measurement)
+                            }
+                            // 按件数
+                            if (item.quantityRule == 6) {
+                                this.$set(row,'quantity',this.form.quantity)
+                            }
+                        }
+                    }
+                    this.$set(row,'amount',Number(row.price?row.price:0) * Number(row.quantity?row.quantity:0))
+                    if (row.curCode == 'CNY') {
+                        this.$set(row,'rmbAmount',row.amount)
+                        this.$set(row,'usdAmount','')
+                        this.$set(row,'rmbAmountNet',row.amount)
+                        this.$set(row,'usdAmountNet','')
+                    }else {
+                        this.$set(row,'usdAmount',row.amount)
+                        this.$set(row,'rmbAmount','')
+                        this.$set(row,'usdAmountNet',row.amount)
+                        this.$set(row,'rmbAmountNet','')
+                    }
+                } else if (name == 'elementsCnName') {
+                    if (!value) {
+                        this.$set(row,'elementsId','')
+                        this.$set(row,'elementsCnName','')
+                        this.$set(row,'elementsCode','')
+                        this.$set(row,'elementsEnName','')
+                    }
+                    // 核算要素
+                    for (let item of this.elementsData) {
+                        if (item.cnName == value) {
+                            this.$set(row,'elementsId',item.id)
+                            this.$set(row,'elementsCnName',item.cnName)
+                            this.$set(row,'elementsCode',item.code)
+                            this.$set(row,'elementsEnName',item.enName)
+                        }
+                    }
+                }else if (name == 'curCode') {
+                    for(let item of this.curCodeData) {
+                        if (item.code == value){
+                            if (item.code == 'USD') {
+                                if (Number(item.exrate) <= 1) {
+                                    this.$message.warning('当前选择的币别汇率不能小于零')
+                                    return
+                                }
+                            }else {
+                                if (Number(item.exrate) == 0) {
+                                    this.$message.warning('当前选择的币别汇率不能为零')
+                                    return
+                                }
+                            }
+                            this.$set(row,'curCode',item.code)
+                            this.$set(row,'exrate',item.exrate)
+                            this.$set(row,'amount',Number(row.price) * Number(row.quantity?row.quantity:0))
+                            if (row.curCode == 'CNY') {
+                                this.$set(row,'rmbAmount',row.amount)
+                                this.$set(row,'usdAmount','')
+                                this.$set(row,'rmbAmountNet',row.amount)
+                                this.$set(row,'usdAmountNet','')
+                            }else {
+                                this.$set(row,'usdAmount',row.amount)
+                                this.$set(row,'rmbAmount','')
+                                this.$set(row,'usdAmountNet',row.amount)
+                                this.$set(row,'rmbAmountNet','')
+                            }
+                        }
+                    }
+                } else {
+                    this.$set(row,name,value)
+                }
 
+            },
+            // 费用信息明细保存按钮
+            feecenterSubmitListfun(){
+                // 判断必填项
+                let sum = '请输入'
+                for (let item of this.tableData) {
+                    if (!item.dc) {
+                        sum += ` 应收序号${item.$index + 1}收/付`
+                    }
+                    if (!item.corpId) {
+                        sum += ` 应收序号${item.$index + 1}往来单位`
+                    }
+                    if (!item.feeId) {
+                        sum += ` 应收序号${item.$index + 1}费用简称`
+                    }
+                    if (!item.elementsId) {
+                        sum += ` 应收序号${item.$index + 1}核算要素`
+                    }
+                    if (!item.curCode) {
+                        sum += ` 应收序号${item.$index + 1}币种`
+                    }
+                }
+                if(sum != '请输入') {
+                    this.$confirm(sum, {
+                        confirmButtonText: "确定",
+                        cancelButtonText: "取消",
+                        type: "warning"
+                    })
+                    return;
+                }
+                this.$confirm("确定保存全部的费用信息?", {
+                    confirmButtonText: "确定",
+                    cancelButtonText: "取消",
+                    type: "warning"
+                }).then(()=>{
+                    this.tableData.map((row,index)=>{
+                        row.dc = row.dc
+                        row.pid = this.form.id
+                        row.sort = Number(index) + 1
+                        row.businessType = this.form.businessType // 业务类型
+                        row.billType = this.form.billType // 单据类型
+                        row.billNo = this.form.billNo // 单据编号
+                        row.billDate = this.form.billDate // 单据日期
+                        row.billCorpId = this.form.corpId // 主表客户 id
+                        row.billCorpCnName = this.form.corpCnName // 主表客户中文名称
+                        row.billCorpEnName = this.form.corpEnName // 主表客户英文名称
+                        row.lineId = this.form.lineId // 航线 id
+                        row.lineCnName = this.form.lineCnName // 航线中文名称
+                        row.lineEnName = this.form.lineEnName // 航线英文名称
+                        row.vesselId = this.form.vesselId // 船名 id
+                        row.vesselCnName = this.form.vesselCnName // 中文船名
+                        row.vesselEnName = this.form.vesselEnName // 英文船名
+                        row.voyageNo = this.form.voyageNo // 航次
+                        row.mblno = this.form.mblno // MB/L NO
+                        row.hblno = this.form.hblno // HB/L NO
+                        row.etd = this.form.etd // 开船日期
+                        row.eta = this.form.eta // 到港日期
+                        row.polId = this.form.polId // 装货港 id
+                        row.polCode = this.form.polCode // 装货港代码
+                        row.polCnName = this.form.polCnName // 装货港中文名称
+                        row.polEnName = this.form.polEnName // 装货港英文名称
+                        row.podId = this.form.podId // 卸货港 id
+                        row.podCode = this.form.podCode // 卸货港代码
+                        row.podCnName = this.form.podCnName // 卸货港中文名称
+                        row.podEnName = this.form.podEnName // 卸货港英文名称
+                        row.corpArgreementNo = this.form.corpArgreementNo // 客户约号
+                    })
+                    feecenterSubmitList(this.tableData).then(res=>{
+                        this.$message({
+                            type: "success",
+                            message: "操作成功!"
+                        });
+                        this.$emit('amendsDetailfun')
+                    })
+                })
+
+            },
+            // 单价
+            priceinputfun(value,row){
+                if (Number(value) <= 0) {
+                    this.$message({
+                        type: "warning",
+                        message: "单价不能输入负数!"
+                    });
+                    return
+                }
+                this.$set(row,'amount',Number(row.price) * Number(row.quantity?row.quantity:0))
+                // 判断是否有币种
+                if (!row.curCode) {
+                    return;
+                }
+                if (row.curCode == 'CNY') {
+                    this.$set(row,'rmbAmount',row.amount)
+                    this.$set(row,'usdAmount','')
+                    this.$set(row,'rmbAmountNet',row.amount)
+                    this.$set(row,'usdAmountNet','')
+                }else {
+                    this.$set(row,'usdAmount',row.amount)
+                    this.$set(row,'rmbAmount','')
+                    this.$set(row,'usdAmountNet',row.amount)
+                    this.$set(row,'rmbAmountNet','')
+                }
+            },
+            // 数量
+            quantityinputfun(row) {
+                if (row.quantity <= 0) {
+                    this.$message({
+                        type: "warning",
+                        message: "数量不能输入负数!"
+                    });
+                    this.$set(row,'quantity',1)
+                    return
+                }
+                this.$set(row,'amount',Number(row.price?row.price:0) * Number(row.quantity))
+                // 判断是否有币种
+                if (!row.curCode) {
+                    return;
+                }
+                if (row.curCode == 'CNY') {
+                    this.$set(row,'rmbAmount',row.amount)
+                    this.$set(row,'usdAmount','')
+                }else {
+                    this.$set(row,'usdAmount',row.amount)
+                    this.$set(row,'rmbAmount','')
                 }
             },
             // 获取客户数据
             getBcorpsListfun(cnName){
                 getBcorpsList(1,10,{cnName}).then(res=>{
-                    this.corpData = res.data.data.records
+                    this.corpCnNameData = res.data.data.records
                 })
             },
-
-            // 表头样式
-            tableHeaderCellStyle({row,column,rowIndex, columnIndex}){
-                return "padding:4px 0px;fontSize:12px;color:#000;background:#ecf5ff"
+            // 获取费用数据
+            bfeesListfun(cnName){
+                bfeesList(1,10,{cnName}).then(res=>{
+                    this.feeCnNameData = res.data.data.records
+                })
             },
-            // 列表多选
-            // 多选选择的数据
-            handleSelectionChange(arr){
-                this.$emit('handleSelectionChange',arr)
+            // 获取费用信息 核算要素信息
+            getBaccelementsListfun(cnName){
+                getBaccelementsList(1,10,{cnName}).then(res=>{
+                    this.elementsData = res.data.data.records
+                })
             },
-            // 监听点击表格事件
-            rowClick(row, column, event) {
-                let refsElTable = this.$refs.tableRef; // 获取表格对象
-                if (this.CtrlDown) {
-                    refsElTable.toggleRowSelection(row); // ctrl多选 如果点击两次同样会取消选中
-                    return;
+            // 获取预付到付字典数据
+            paymodeWorkDictsfun(){
+                getWorkDicts('payment_method_los').then((res) => {
+                    this.paymodeData = res.data.data
+                })
+            },
+            // 获取币别数据
+            bcurrencyGetExratefun(dc){
+                bcurrencyGetExrate({
+                    date:this.form.etd?this.form.etd.slice(0,10) + ' 00:00:00':dateFormat(new Date(), "yyyy-MM-dd") + ' 00:00:00', // 开船日期
+                    dc:dc
+                }).then(res=>{
+                    this.curCodeData = res.data.data
+                })
+            },
+            // 获取计算属性
+            async getBunitsPagefun(type,feeRow,row){
+                let srcBillId = null
+                if (this.form.billType == 'MH') {
+                    srcBillId = this.form.masterId
+                }else {
+                    srcBillId = this.form.id
                 }
-                if ( this.shiftOrAltDown && this.handleSelectionData.length > 0) {
-                    // 通过rowIndex判断已选择的行中最上面和最下面的是哪行,再对比按住shift/alt点击的当前行得到新的最上面和最下面的行,把这两行中间的行进行循环选中。
-                    let topAndBottom = this.getTopAndBottom(  row, this.bottomSelectionRow, this.topSelectionRow );
-                    refsElTable.clearSelection(); //先清空 不然会导致在这两行中间之外的行状态不变
-                    for (let index = topAndBottom.top; index <= topAndBottom.bottom; index++) { //选中两行之间的所有行
-                        refsElTable.toggleRowSelection(this.tableData[index], true);
-                    }
-                } else {
-                    let findRow = this.handleSelectionData.find(c => c.rowIndex == row.rowIndex); //找出当前选中行
-                    //如果只有一行且点击的也是这一行则取消选择 否则清空再选中当前点击行
-                    if (findRow&& this.handleSelectionData.length === 1 ) {
-                        refsElTable.toggleRowSelection(row, false);
-                        return;
+                const res = await getBunitsPage({srcBillId})
+                this.unitNoData = []
+                let boxarr40 = ['40HC','40GP']
+                let boxarr20 = ['20GP']
+                let teunum = 0
+                for (let item of res.data.data) {
+                    // 按箱型
+                    if (item.quantityRule != 1) {
+                        // TEU
+                        if (item.quantityRule == 4) {
+                            for (let data of this.form.preContainersList) {
+                                if (boxarr40.indexOf(data.cntrTypeCode) != -1) {
+                                    teunum += Number(data.quantity) * 2
+                                }else if (boxarr20.indexOf(data.cntrTypeCode) != -1) {
+                                    teunum += Number(data.quantity)
+                                }
+                            }
+                            this.unitNoData.push({...item, boxquantity: teunum})
+                        }else {
+                            this.unitNoData.push(item) // 不是TEU和不是箱的走这个
+                        }
                     }
-                    // refsElTable.clearSelection(); // 清空之前选择的数据(如果放开,选择之前会变成单选)
-                    refsElTable.toggleRowSelection(row); // 调用选中行方法
                 }
-            },
-            // 行的 style 的回调方法
-            rowStyle({row,rowIndex}) {
-                // 直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象
-                // object: 要添加或者修改属性的目标对象;prop: 要定义或修改属性的名称;descript: 是一个对象,里面是我们上述的对象属性的特性;
-                Object.defineProperty(row, 'rowIndex', { //给每一行添加不可枚举属性rowIndex来标识当前行
-                    value: rowIndex, // 设置age的值,不设置的话默认为undefined
-                    writable: true, // 表示属性的值true可以修改,false不可以被修改
-                    enumerable: false, // 设置为false表示不能通过 for-in 循环返回
-                    // configurable: false, // configurable 设置为 false,意味着这个属性不能从对象上删除
+                let arr = this.form.preContainersList.map(item=>{
+                    return {
+                        quantityRule:1, // 1 是按箱量
+                        code:item.cntrTypeCode,
+                        boxquantity:item.quantity,
+                    }
                 })
+                this.unitNoData = [...arr,...this.unitNoData]
+                // 选择费用时带出第一条
+                if (type) {
+                    let feeunitNodata = []
+                    for (let item of this.unitNoData) {
+                        if (item.quantityRule == feeRow.unitNo) {
+                            feeunitNodata.push(item)
+                        }
+                    }
+                    this.corpChange(feeunitNodata[0].code,'unitNo',row)
+                }
             },
-            keyDown(event) {
-                let key = event.keyCode;
-                if (key == 17) this.CtrlDown = true;
-                if (key == 16 || key == 18) this.shiftOrAltDown = true;
-            },
-            keyUp(event) {
-                let key = event.keyCode;
-                if (key == 17) this.CtrlDown = false;
-                if (key == 16 || key == 18) this.shiftOrAltDown = false;
+
+            // 多选选择的数据
+            handleSelectionChange(arr){
+                // this.$emit('handleSelectionChange',arr)
+                this.handleSelectionData = arr
             },
-            // 文章说明 https://www.jianshu.com/p/48f2c522d2a2
-            getTopAndBottom(row, bottom, top){
-                let n = row.rowIndex,
-                    mx = bottom.rowIndex,
-                    mi = top.rowIndex;
-                if (n > mx) {
-                    return {
-                        top: mi,
-                        bottom: n
-                    };
-                } else if (n < mx && n > mi) {
-                    return {
-                        top: mi,
-                        bottom: n
-                    };
-                } else if (n < mi) {
-                    return {
-                        top: n,
-                        bottom: mx
-                    };
-                } else if (n == mi || n == mx) {
-                    return {
-                        top: mi,
-                        bottom: mx
-                    };
+            //自定义列保存
+            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;
                 }
             },
-            // 给选中行加上current-row这个class类,所以要使用row-class-name这个属性(其实给每一行添加rowIndex也可以用这个属性),
-            // 判断方式也是通过判断rowIndex对比
-            rowClassName({ row,  rowIndex }) {
-                let rowName = "",
-                    findRow = this.handleSelectionData.find(c => c.rowIndex === row.rowIndex);
-                if (findRow) {
-                    rowName = "current-row "; // elementUI 默认高亮行的class类 不用再样式了^-^,也可通过css覆盖改变背景颜色
+            //自定义列重置
+            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;
                 }
-                return rowName; //也可以再加上其他类名 如果有需求的话
             },
-        },
-        mounted() {
-            // 按住ctrl实现多选 设置监听keydown事件,以及keyup事件,
-            addEventListener("keydown", this.keyDown, false);
-            addEventListener("keyup", this.keyUp, false);
-        },
-        beforeDestroy() { //解绑
-            removeEventListener("keydown", this.keyDown);
-            removeEventListener("keyup", this.keyUp);
-        },
-        computed: { //实时得到最上行和最下行
-            bottomSelectionRow() {
-                if (this.handleSelectionData.length == 0) return null;
-                return this.handleSelectionData.reduce((start, end) => {
-                    return start.rowIndex > end.rowIndex ? start : end;
-                });
+            // 更改表格颜色
+            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;
             },
-            topSelectionRow() {
-                if (this.handleSelectionData.length == 0) return null;
-                return this.handleSelectionData.reduce((start, end) => {
-                    return start.rowIndex < end.rowIndex ? start : end;
-                });
-            }
+
         },
     }
 </script>
 
 <style scoped>
+::v-deep#out-table .back-one {
+    background: #ecf5ff !important;
+    text-align: center;
+    padding: 4px 0;
+}
 
+::v-deep#out-table .back-two {
+    background: #ecf5ff !important;
+    text-align: center;
+    padding: 4px 0;
+}
 </style>

+ 47 - 84
src/views/iosBasicData/amends/assembly/billgenerated.vue

@@ -11,99 +11,57 @@
             @row-click="rowClick"
             :row-style="rowStyle"
             :row-class-name="rowClassName" >
-            <el-table-column label="结算单位">
-                <el-table-column
-                    prop="accountCode"
-                    label="编号">
-                </el-table-column>
-                <el-table-column
-                    prop="accountCode"
-                    label="简称">
-                </el-table-column>
+            <el-table-column type="selection" width="55" />
+            <el-table-column prop="lineNo" label="行号" width="50px" ></el-table-column>
+            <el-table-column label="账单" prop="accStatus" width="60px" >
+                <template slot-scope="{ row }">
+                    <span>{{row.accStatus?'是':'否'}}</span>
+                </template>
             </el-table-column>
-            <el-table-column
-                prop="dc"
-                label="收/付">
-            </el-table-column>
-            <el-table-column label="费用">
-                <el-table-column
-                    prop="accountCode"
-                    label="编号">
-                </el-table-column>
-                <el-table-column
-                    prop="accountCode"
-                    label="简称">
-                </el-table-column>
-                <el-table-column
-                    prop="accountCode"
-                    label="预/到付">
-                </el-table-column>
-            </el-table-column>
-            <el-table-column
-                prop="accountCode"
-                label="计价单位">
-            </el-table-column>
-            <el-table-column
-                prop="accountCode"
-                label="单价">
-            </el-table-column>
-            <el-table-column
-                prop="accountCode"
-                label="数量">
-            </el-table-column>
-            <el-table-column
-                prop="accountCode"
-                label="币种">
-            </el-table-column>
-            <el-table-column label="价税合计金额">
-                <el-table-column
-                    prop="accountCode"
-                    label="本币">
-                </el-table-column>
-                <el-table-column
-                    prop="accountCode"
-                    label="外币">
-                </el-table-column>
-            </el-table-column>
-            <el-table-column label="净价金额合计">
-                <el-table-column
-                    prop="accountCode"
-                    label="RMB">
-                </el-table-column>
-                <el-table-column
-                    prop="accountCode"
-                    label="外币">
-                </el-table-column>
-            </el-table-column>
-            <el-table-column
-                prop="accountCode"
-                label="汇率">
-            </el-table-column>
-            <el-table-column
-                prop="accountCode"
-                label="备注">
-            </el-table-column>
-            <el-table-column
-                prop="accountCode"
-                label="MBLNO">
-            </el-table-column>
-            <el-table-column
-                prop="accountCode"
-                label="业务类型">
-            </el-table-column>
-            <el-table-column
-                prop="accountCode"
-                label="BILLNO">
+            <el-table-column label="往来单位" prop="corpCnName" width="160px" >
+                <template slot-scope="{ row }">
+                    <el-tooltip class="item" effect="dark" :content="row.corpCnName" placement="top">
+                        <span class="textHide">{{row.corpCnName}}</span>
+                    </el-tooltip>
+                </template>
             </el-table-column>
+            <el-table-column label="费用简称" prop="feeCnName" width="120px" />
+            <el-table-column label="预付/到付" prop="paymode" width="120px" />
+            <el-table-column label="计量单位" prop="unitNo" width="120px" />
+            <el-table-column label="币种" prop="curCode" width="120px" />
+            <el-table-column label="汇率" prop="exrate" width="100px" />
+            <el-table-column label="单价" prop="price" width="120px" />
+            <el-table-column label="数量" prop="quantity" width="120px" />
+            <el-table-column label="CNY(含税)" prop="rmbAmount" width="100px" />
+            <el-table-column label="USD(含税)" prop="usdAmount" width="100px" />
+            <el-table-column label="CNY(净额)" prop="rmbAmountNet" width="100px" />
+            <el-table-column label="USD(净额)" prop="rmbAmountNet" width="100px" />
+            <el-table-column label="核算要素" prop="elementsCnName" width="120px" />
+            <el-table-column label="付费申请金额" prop="appliedAmount" width="120px" />
+            <el-table-column label="发票申请金额" prop="appliedInvoiceAmount" width="120px" />
+            <el-table-column label="已开票金额" prop="uninvoicedAmount" width="120px" />
+            <el-table-column label="已结算金额" prop="stlTtlAmount" width="120px" />
+            <el-table-column label="备注" prop="remarks" width="100px" />
+            <el-table-column label="单价是否含税" prop="isTax" width="120px" />
         </el-table>
     </div>
 </template>
 
 <script>
     export default {
+        props:{
+            tableData:{
+                type:Array,
+                default:[]
+            },
+            handleSelectionData:{
+                type:Array,
+                default: []
+            }
+        },
         data(){
             return {
-                tableData:[]
+
             }
         },
         methods:{
@@ -227,5 +185,10 @@
 </script>
 
 <style scoped>
-
+.textHide {
+    width: 100%;
+    overflow: hidden;
+    white-space: nowrap;
+    text-overflow: ellipsis;
+}
 </style>

+ 89 - 204
src/views/iosBasicData/amends/index.vue

@@ -27,18 +27,33 @@
                   <el-button type="primary"
                              size="small"
                              icon="el-icon-plus"
-                             @click="addbtnfun()">新建
+                             @click="addbtnfun()">新建AMEND
                   </el-button>
                   <el-button type="danger"
                              size="small"
                              icon="el-icon-delete"
                              plain
-                             @click="handleDelete">删 除
+                             @click="handleDelete">批量删除
+                  </el-button>
+              </template>
+              <template slot="menu" slot-scope="{ row }">
+                  <el-button
+                      type="text"
+                      size="small"
+                      icon="el-icon-edit"
+                      @click.stop="rowEdit(row)">修改
+                  </el-button>
+                  <el-button
+                      type="text"
+                      size="small"
+                      :disabled="row.status == 1 || row.status == 2 || row.status == 3"
+                      @click.stop="rowDel(row)"
+                      icon="el-icon-delete" >删除
                   </el-button>
               </template>
           </avue-crud>
       </basic-container>
-      <amends-details v-if="!isShow" @goBack="goBack"></amends-details>
+      <amends-details ref="amendsDetails" v-if="!isShow" @goBack="goBack"></amends-details>
   </div>
 </template>
 
@@ -46,6 +61,8 @@
   import {amendsList, amendsDetail, amendsSubmit, amendsRemove} from "@/api/iosBasicData/amends";
   import amendsDetails from "@/views/iosBasicData/amends/amendsDetails.vue";
   import {mapGetters} from "vuex";
+  import {getWorkDicts} from "@/api/system/dictbiz";
+  import {getBcorpslistByType} from "@/api/iosBasicData/bcorps";
 
   export default {
     components:{amendsDetails},
@@ -73,20 +90,41 @@
           viewBtn: true,
           selection: true,
           dialogClickModal: false,
+            menuWidth:'140',
           column: [
               {
                   label: "客户名称",
                   prop: "corpCnName",
+                  search:true,
                   overHidden:true,
+                  type:'select',
+                  filterable:true,
+                  remote:true,
+                  dicUrl: "/api/blade-los/bcorps/listByType?cnName={{key}}",
+                  dicData:[],
+                  props: {
+                      label: 'cnName',
+                      value: 'cnName',
+                      res:'data.records'
+                  },
               },
               {
                   label: "原MB/L NO",
                   prop: "mblno",
+                  search:true,
                   overHidden:true,
               },
               {
                   label: "原HB/L NO",
                   prop: "hblno",
+                  search:true,
+                  overHidden:true,
+              },
+              {
+                  label: "BOOKING NO",
+                  prop: "bookingNo",
+                  searchLabelWidth:100,
+                  search:true,
                   overHidden:true,
               },
               {
@@ -100,8 +138,9 @@
                   overHidden:true,
               },
               {
-                  label: "原Reference NO",
+                  label: "原外提单号",
                   prop: "refno",
+                  search:true,
                   overHidden:true,
               },
               {
@@ -110,54 +149,13 @@
                   overHidden:true,
               },
             {
-              label: "单据编号",
-              prop: "billNo",
-              overHidden:true,
-            },
-            {
-              label: "单据日期",
-              prop: "billDate",
-              overHidden:true,
-            },
-            {
-              label: "财务日期",
-              prop: "accountDate",
-              overHidden:true,
-            },
-            {
-              label: "操作",
-              prop: "operatorName",
-              overHidden:true,
-            },
-            {
-              label: "责任方",
-              prop: "responsibleParty",
-            },
-            {
-              label: "单据编号",
+              label: "原单据编号",
               prop: "origBillNo",
+              search:true,
               overHidden:true,
             },
-            {
-              label: "单据日期",
-              prop: "origBillDate",
-              overHidden:true,
-            },
-            {
-              label: "财务日期",
-              prop: "origAccountDate",
-              overHidden:true,
-            },
-            {
-              label: "进出口",
-              prop: "origSeaType",
-              overHidden:true,
-              rules: [{
-                required: true,
-                message: "请输入进出口, E=出口 I=进口",
-                trigger: "blur"
-              }]
-            },
+
+
             {
               label: "单据类型",
               prop: "origBillType",
@@ -169,162 +167,19 @@
               }]
             },
             {
-              label: "原业务备注",
-              prop: "origRemarks",
-              overHidden:true,
-            },
-            {
-              label: "客户英文名称",
-              prop: "corpEnName",
-              overHidden:true,
-            },
-            {
-              label: "客户约号",
-              prop: "corpArgreementNo",
-              overHidden:true,
-            },
-            {
-              label: "航线中文名称",
-              prop: "lineCnName",
-              overHidden:true,
-            },
-            {
-              label: "航线英文名称",
-              prop: "lineEnName",
-              overHidden:true,
-            },
-            {
-              label: "船公司中文名称",
-              prop: "carrierCnName",
-              overHidden:true,
-            },
-            {
-              label: "船公司英文名称",
-              prop: "carrierEnName",
-              overHidden:true,
-            },
-            {
-              label: "船公司约号",
-              prop: "carrierArgreementNo",
-              overHidden:true,
-            },
-            {
-              label: "订舱号",
-              prop: "bookingNo",
-              overHidden:true,
-            },
-            {
-              label: "订舱日期",
-              prop: "bookingDate",
-              overHidden:true,
-            },
-            {
-              label: "英文船名",
-              prop: "vesselEnName",
-              overHidden:true,
-            },
-
-            {
-              label: "到港日期",
-              prop: "eta",
-              overHidden:true,
-            },
-            {
-              label: "装货港代码",
-              prop: "polCode",
-              overHidden:true,
-            },
-            {
-              label: "装货港英文名称",
-              prop: "polCnName",
-              overHidden:true,
-            },
-            {
-              label: "装货港英文名称",
-              prop: "polEnName",
-              overHidden:true,
-            },
-            {
-              label: "卸货港代码",
-              prop: "podCode",
-              overHidden:true,
-            },
-            {
-              label: "卸货港中文名称",
-              prop: "podCnName",
-              overHidden:true,
-            },
-            {
-              label: "卸货港英文名称",
-              prop: "podEnName",
-              overHidden:true,
-            },
-            {
-              label: "货物类别",
-              prop: "cargoType",
-              overHidden:true,
-              rules: [{
-                required: true,
-                message: "请输入货物类别 dry=普货 danger=危险品 reefer=冻柜",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "包装单位",
-              prop: "packingUnit",
-                overHidden:true,
-            },
-            {
-              label: "件数",
-              prop: "quantity",
-                overHidden:true,
-            },
-            {
-              label: "毛重 (KGM)",
-              prop: "grossWeight",
-                overHidden:true,
-            },
-            {
-              label: "净重 (KGM)",
-              prop: "netWeight",
+              label: "状态",
+              prop: "status",
+              search:true,
+              type: "select",
+              dicUrl: "/api/blade-system/dict-biz/dictionary?code=ameno_status",
+              dicData:[],
+              props: {
+                  label: "dictValue",
+                  value: "dictKey"
+              },
               overHidden:true,
             },
             {
-              label: "体积 (CBM)",
-              prop: "measurement",
-                overHidden:true,
-            },
-            {
-              label: "集装箱箱数英文, ",
-              prop: "quantityCntrDescr",
-                overHidden:true,
-            },
-            {
-              label: "商品包装件数英文, ",
-              prop: "quantityPackingDescr",
-                overHidden:true,
-            },
-            {
-              label: "集装箱箱型箱数英文",
-              prop: "quantityCntrTypesDescr",
-                overHidden:true,
-              rules: [{
-                required: true,
-                message: "请输入集装箱箱型箱数英文, 1*20GP,2*40HC",
-                trigger: "blur"
-              }]
-            },
-            {
-              label: "状态(业务参数配置)",
-              prop: "billStatus",
-                overHidden:true,
-            },
-            {
-              label: "财务状态(业务参数配置)",
-              prop: "accountStatus",
-                overHidden:true,
-            },
-            {
               label: "备注",
               prop: "remarks",
                 overHidden:true,
@@ -354,12 +209,34 @@
     },
     async created() {
       this.option = await this.getColumnData(this.getColumnName(322), this.optionBack);
+        if (this.$route.query.billId) {
+            // 从审批里查看跳进来的
+            this.rowEdit({id:this.$route.query.billId})
+        }
+        this.$store.commit('SEA_IN_DETAIL')
+        this.getWorkDictsfun()
     },
     methods: {
+        getWorkDictsfun(){
+            getBcorpslistByType(1,10).then(res=>{
+                this.findObject(this.option.column, "corpCnName").dicData = res.data.data.records
+            })
+            // 状态
+            getWorkDicts('ameno_status').then(res=>{
+                this.findObject(this.option.column, "status").dicData = res.data.data
+            })
+        },
       // 新建amend
       addbtnfun(){
           this.isShow = false
       },
+      // 编辑
+      rowEdit(row) {
+          this.isShow = false
+          this.$nextTick(()=>{
+              this.$refs.amendsDetails.amendsDetailfun(row.id)
+          })
+      },
       // 详情的返回列表
       goBack() {
           // 初始化数据
@@ -420,6 +297,11 @@
           this.$message.warning("请选择至少一条数据");
           return;
         }
+        for (let item of this.selectionList) {
+            if (item.status == 1 || item.status == 2 || item.status == 3) {
+                return this.$message.warning('请选择还未请核的数据')
+            }
+        }
         this.$confirm("确定将选择数据删除?", {
           confirmButtonText: "确定",
           cancelButtonText: "取消",
@@ -473,10 +355,13 @@
       },
       onLoad(page, params = {}) {
         this.loading = true;
-        amendsList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
+        amendsList(page.currentPage, page.pageSize, {...Object.assign(params, this.query),businessType: 'SEA'}).then(res => {
           const data = res.data.data;
           this.page.total = data.total;
-          this.data = data.records;
+          this.data = data.records.map(item=>{
+              item.status = item.status + ''
+              return item
+          })
           this.loading = false;
           this.selectionClear();
         });