Sfoglia il codice sorgente

1.海运进出口 总部中心显示两个新tabs
2.海运出口 总公司可以点提取成本 明细显示两个字段
3.商务中心 完善预订舱的字段和接口
4.商务中心 mkt&slot 修改布局
5.费用模板 POL POD LOLO模板 新建数据保存时报错
6.成本中心 两个禁用按钮 所有状态都允许点
7.商务中心 销售价提交审核以后不允许编辑
8.箱管和OW 费用请核提交以后 不允许编辑
9.海运进出口 修改预配箱信息后,如果预配箱箱型箱量与配箱不符,提示重新配箱
10.海运进出口 新加修改单据类型功能 并且不允许在详情页修改单据类型
11.海运进出口 新加同步分单信息并联调接口

Qukatie 7 mesi fa
parent
commit
ce82841a93
35 ha cambiato i file con 1161 aggiunte e 345 eliminazioni
  1. 14 0
      src/api/iosBasicData/bills.js
  2. 27 2
      src/api/iosBasicData/businessCenter/bookingCabin.js
  3. 1 1
      src/api/iosBasicData/businessCenter/mkt&slot.js
  4. 10 1
      src/components/extractionCost/main.vue
  5. 3 0
      src/enums/column-name.js
  6. 14 1
      src/router/views/index.js
  7. 10 10
      src/views/boxManagement/agentBox/detailsPage.vue
  8. 10 6
      src/views/boxManagement/boxAdjustment/detailsPage.vue
  9. 13 9
      src/views/boxManagement/boxCost/detailsPage.vue
  10. 10 6
      src/views/boxManagement/boxExit/detailsPage.vue
  11. 12 8
      src/views/boxManagement/buyContainer/detailsPage.vue
  12. 3 3
      src/views/boxManagement/containerNumber/detailsPage.vue
  13. 11 10
      src/views/boxManagement/rentalBox/detailsPage.vue
  14. 41 9
      src/views/iosBasicData/OceanFreightImport/bills/assembly/EntrustmentLnformation/precontainers.vue
  15. 1 1
      src/views/iosBasicData/OceanFreightImport/bills/assembly/formbottom.vue
  16. 22 3
      src/views/iosBasicData/OceanFreightImport/bills/billsDetails.vue
  17. 91 6
      src/views/iosBasicData/OceanFreightImport/bills/index.vue
  18. 69 36
      src/views/iosBasicData/SeafreightExportF/bills/assembly/EntrustmentLnformation/precontainers.vue
  19. 1 1
      src/views/iosBasicData/SeafreightExportF/bills/assembly/formbottom.vue
  20. 20 1
      src/views/iosBasicData/SeafreightExportF/bills/billsDetails.vue
  21. 93 8
      src/views/iosBasicData/SeafreightExportF/bills/index.vue
  22. 152 59
      src/views/iosBasicData/businessCenter/bookingCabin/detailsPage.vue
  23. 8 6
      src/views/iosBasicData/businessCenter/bookingCabin/index.vue
  24. 12 1
      src/views/iosBasicData/businessCenter/mkt&slot/detailsPage.vue
  25. 1 0
      src/views/iosBasicData/businessCenter/mkt&slot/index.vue
  26. 2 2
      src/views/iosBasicData/costcenter/coc/detailsPage.vue
  27. 2 4
      src/views/iosBasicData/costcenter/soc/detailsPage.vue
  28. 30 18
      src/views/iosBasicData/loloTemplate/feesTemplateItems.vue
  29. 29 18
      src/views/iosBasicData/losbfeestemplate/feesTemplateItems.vue
  30. 30 1
      src/views/iosBasicData/overdueFee/detailsPage.vue
  31. 279 0
      src/views/iosBasicData/podStation/index.vue
  32. 27 16
      src/views/iosBasicData/podTemplate/feesTemplateItems.vue
  33. 28 16
      src/views/iosBasicData/polTemplate/feesTemplateItems.vue
  34. 68 62
      src/views/ow/owPut/detailsPage.vue
  35. 17 20
      src/views/ow/owTask/detailsPage.vue

+ 14 - 0
src/api/iosBasicData/bills.js

@@ -395,4 +395,18 @@ export const quotationImportBatch = (data) => {
     method: 'get',
     params:data
   })
+}
+export const updateBillType = (data) => {
+  return request({
+    url: '/api/blade-los/bills/updateBillType',
+    method: 'get',
+    params: data
+  })
+}
+export const synchronizeData = (data) => {
+  return request({
+    url: '/api/blade-los/bills/synchronizeData',
+    method: 'get',
+    params: data
+  })
 }

+ 27 - 2
src/api/iosBasicData/businessCenter/bookingCabin.js

@@ -22,7 +22,7 @@ export const getDetail = (params) => {
 //删除
 export const remove = (data) => {
     return request({
-        url: '/api/blade-los/bookingCabin/remove',
+        url: '/api/blade-los/bills/remove',
         method: 'post',
         params: data
     })
@@ -30,12 +30,20 @@ export const remove = (data) => {
 //删除明细
 export const itemRemove = (data) => {
     return request({
-        url: '/api/blade-los/mktslotitem/remove',
+        url: '/api/blade-los/precontainers/remove',
         method: 'post',
         params: data
 
     })
 }
+// 批量保存
+export const submitItemList = (row) => {
+    return request({
+        url: '/api/blade-los/precontainers/submitList',
+        method: 'post',
+        data: row
+    })
+}
 //保存
 export function submit(data) {
     return request({
@@ -44,6 +52,22 @@ export function submit(data) {
         data
     })
 }
+//保存
+export function submitBookingCabin(data) {
+    return request({
+        url: '/api/blade-los/bookingCabin/submitBookingCabin',
+        method: 'post',
+        data
+    })
+}
+// 发送消息
+export function sendMessageBooking(data) {
+    return request({
+        url: '/api/blade-los/bookingCabin/sendMessageBooking',
+        method: 'post',
+        data: data
+    })
+}
 // 请核
 export function pleaseCheck(data) {
     return request({
@@ -52,6 +76,7 @@ export function pleaseCheck(data) {
         data: data
     })
 }
+
 // 撤销
 export function repealCancel(data) {
     return request({

+ 1 - 1
src/api/iosBasicData/businessCenter/mkt&slot.js

@@ -48,7 +48,7 @@ export const quotationRemove = (data) => {
 //保存
 export function submit(data) {
     return request({
-        url: '/api/blade-los/bookingCabin/submit',
+        url: '/api/blade-los/mktslot/submit',
         method: 'post',
         data
     })

+ 10 - 1
src/components/extractionCost/main.vue

@@ -78,11 +78,20 @@ export default {
                         overHidden: true,
                     },
                     {
+                        label: '销售价',
+                        prop: 'salesPrice',
+                        overHidden: true,
+                    },
+                    {
+                        label: '成本价',
+                        prop: 'costPrice',
+                        overHidden: true,
+                    },
+                    {
                         label: '金额',
                         prop: 'oceanFreight',
                         overHidden: true,
                     }
-
                 ]
             },
             option: {

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

@@ -2150,6 +2150,9 @@ const columnName = [{
 },{
   code: 499,
   name: '永发-商务中心-预订舱箱明细'
+},{
+  code: 500,
+  name: '永发-基础资料-POD场站(F)列表页'
 }
 ]
 export const getColumnName = (key) => {

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

@@ -2770,7 +2770,7 @@ export default [{
     },
     component: () => import( /* webpackChunkName: "views" */ '@/views/tirePartsMall/basicData/shareListing/index')
   }]
-},{
+}, {
   path: '/tirePartsMall/basicData/shareListingNext/index',
   component: Layout,
   hidden: true,
@@ -4246,5 +4246,18 @@ export default [{
     },
     component: () => import( /* webpackChunkName: "views" */ '@/views/iosBasicData/businessCenter/mkt&slot/index')
   }]
+}, {
+  path: '/iosBasicData/businessCenter/bookingCabin/index',
+  component: Layout,
+  hidden: true,
+  children: [{
+    path: '/iosBasicData/businessCenter/bookingCabin/index',
+    name: '预订舱',
+    meta: {
+      i18n: '/iosBasicData/businessCenter/bookingCabin/index',
+      keepAlive: true,
+    },
+    component: () => import( /* webpackChunkName: "views" */ '@/views/iosBasicData/businessCenter/bookingCabin/index')
+  }]
 }
 ]

+ 10 - 10
src/views/boxManagement/agentBox/detailsPage.vue

@@ -236,19 +236,16 @@
                   <i class="el-icon-coin"></i>
                   <span>应付费用</span>
                 </div>
-                <el-button type="info" plain size="small" :disabled="editDisabled"
-                  @click="allClick('费用一键保存')">一键保存</el-button>
-                <el-button type="info" plain size="small" :disabled="editDisabled"
-                  @click="allClick('费用一键编辑')">一键编辑</el-button>
-                <el-button type="danger" plain size="small" :disabled="editDisabled || selectionfeecList.length == 0"
+                <el-button type="info" plain size="small" @click="allClick('费用一键保存')">一键保存</el-button>
+                <el-button type="info" plain size="small" @click="allClick('费用一键编辑')">一键编辑</el-button>
+                <el-button type="danger" plain size="small" :disabled="selectionfeecList.length == 0"
                   @click="allClick('费用批量删除')">批量删除</el-button>
-                <el-button type="primary" plain size="small" :disabled="editDisabled || selectionfeecList.length == 0"
+                <el-button type="primary" plain size="small" :disabled="selectionfeecList.length == 0"
                   @click="allClick('费用申请')">请核费用</el-button>
                 <!-- <el-button type="primary" plain size="small" @click="$refs.printC.openDialog()">打印账单</el-button> -->
               </template>
               <template slot="indexHeader" slot-scope="{row,index}">
-                <el-button type="primary" size="mini" icon="el-icon-plus" :disabled="editDisabled" circle
-                  @click="feecAddRow()">
+                <el-button type="primary" size="mini" icon="el-icon-plus" circle @click="feecAddRow()">
                 </el-button>
               </template>
               <template slot="index" slot-scope="{row,index}">
@@ -320,8 +317,7 @@
                 <span v-else>{{ row.remarks }}</span>
               </template>
               <template slot="menu" slot-scope="{ row, index }">
-                <el-button size="small" icon="el-icon-delete" type="text" :disabled="editDisabled"
-                  @click="polRowDel(row, index)">删 除</el-button>
+                <el-button size="small" icon="el-icon-delete" type="text" @click="polRowDel(row, index)">删 除</el-button>
               </template>
             </avue-crud>
           </el-card>
@@ -1821,6 +1817,10 @@ export default {
             row.amountUSD = row.amount
             row.amountCNY = 0
           }
+          if (row.auditStatus > 0) {
+            this.editDisabled = true
+            this.optionForm.disabled = true
+          }
         })
         this.form = res.data.data
         this.updateFormKey = new Date().getTime()

+ 10 - 6
src/views/boxManagement/boxAdjustment/detailsPage.vue

@@ -202,20 +202,20 @@
                   <i class="el-icon-coin"></i>
                   <span>应付费用</span>
                 </div>
-                <el-button type="info" plain size="small" :disabled="editDisabled || form.buxStaus == '已确认'"
+                <el-button type="info" plain size="small" :disabled="form.buxStaus == '已确认'"
                   @click="allClick('费用一键保存')">一键保存</el-button>
-                <el-button type="info" plain size="small" :disabled="editDisabled || form.buxStaus == '已确认'"
+                <el-button type="info" plain size="small" :disabled="form.buxStaus == '已确认'"
                   @click="allClick('费用一键编辑')">一键编辑</el-button>
                 <el-button type="danger" plain size="small"
-                  :disabled="editDisabled || selectionfeecList.length == 0 || form.buxStaus == '已确认'"
+                  :disabled="selectionfeecList.length == 0 || form.buxStaus == '已确认'"
                   @click="allClick('费用批量删除')">批量删除</el-button>
-                <el-button type="primary" plain size="small" :disabled="editDisabled || selectionfeecList.length == 0"
+                <el-button type="primary" plain size="small" :disabled="selectionfeecList.length == 0"
                   @click="allClick('费用申请')">请核费用</el-button>
                 <!-- <el-button type="primary" plain size="small" @click="$refs.printC.openDialog()">打印账单</el-button> -->
               </template>
               <template slot="indexHeader" slot-scope="{row,index}">
                 <el-button type="primary" size="mini" icon="el-icon-plus"
-                  :disabled="editDisabled || form.buxStaus == '已确认'" circle @click="feecAddRow()">
+                  :disabled="form.buxStaus == '已确认'" circle @click="feecAddRow()">
                 </el-button>
               </template>
               <template slot="index" slot-scope="{row,index}">
@@ -288,7 +288,7 @@
                 <span v-else>{{ row.remarks }}</span>
               </template>
               <template slot="menu" slot-scope="{ row, index }">
-                <el-button size="small" icon="el-icon-delete" type="text" :disabled="editDisabled"
+                <el-button size="small" icon="el-icon-delete" type="text"
                   @click="polRowDel(row, index)">删 除</el-button>
               </template>
             </avue-crud>
@@ -1580,6 +1580,10 @@ export default {
             row.amountUSD = row.amount
             row.amountCNY = 0
           }
+          if (row.auditStatus > 0) {
+            this.editDisabled = true
+            this.optionForm.disabled = true
+          }
         })
         this.form = res.data.data
         this.updateFormKey = new Date().getTime()

+ 13 - 9
src/views/boxManagement/boxCost/detailsPage.vue

@@ -162,21 +162,21 @@
                   <i class="el-icon-coin"></i>
                   <span>应收费用</span>
                 </div>
-                <el-button type="info" plain size="small" :disabled="editDisabled || form.buxStaus == '已确认'"
+                <el-button type="info" plain size="small" :disabled="form.buxStaus == '已确认'"
                   @click="allClick('D费用一键保存')">一键保存</el-button>
-                <el-button type="info" plain size="small" :disabled="editDisabled || form.buxStaus == '已确认'"
+                <el-button type="info" plain size="small" :disabled="form.buxStaus == '已确认'"
                   @click="allClick('D费用一键编辑')">一键编辑</el-button>
                 <el-button type="danger" plain size="small"
-                  :disabled="editDisabled || selectionfeedList.length == 0 || form.buxStaus == '已确认'"
+                  :disabled="selectionfeedList.length == 0 || form.buxStaus == '已确认'"
                   @click="allClick('D费用批量删除')">批量删除</el-button>
                 <el-button type="primary" plain size="small"
-                  :disabled="editDisabled || (selectionfeedList.length == 0 && selectionfeecList.length == 0) || form.buxStaus == '已确认'"
+                  :disabled="(selectionfeedList.length == 0 && selectionfeecList.length == 0) || form.buxStaus == '已确认'"
                   @click="allClick('D费用申请')">请核费用</el-button>
                 <!-- <el-button type="primary" plain size="small" @click="$refs.printC.openDialog()">打印账单</el-button> -->
               </template>
               <template slot="indexHeader" slot-scope="{row,index}">
                 <el-button type="primary" size="mini" icon="el-icon-plus"
-                  :disabled="editDisabled || form.buxStaus == '已确认'" circle @click="feedAddRow()">
+                  :disabled="form.buxStaus == '已确认'" circle @click="feedAddRow()">
                 </el-button>
               </template>
               <template slot="index" slot-scope="{row,index}">
@@ -258,12 +258,12 @@
                   <i class="el-icon-coin"></i>
                   <span>应付费用</span>
                 </div>
-                <el-button type="info" plain size="small" :disabled="editDisabled || form.buxStaus == '已确认'"
+                <el-button type="info" plain size="small" :disabled="form.buxStaus == '已确认'"
                   @click="allClick('C费用一键保存')">一键保存</el-button>
-                <el-button type="info" plain size="small" :disabled="editDisabled || form.buxStaus == '已确认'"
+                <el-button type="info" plain size="small" :disabled="form.buxStaus == '已确认'"
                   @click="allClick('C费用一键编辑')">一键编辑</el-button>
                 <el-button type="danger" plain size="small"
-                  :disabled="editDisabled || selectionfeecList.length == 0 || form.buxStaus == '已确认'"
+                  :disabled="selectionfeecList.length == 0 || form.buxStaus == '已确认'"
                   @click="allClick('C费用批量删除')">批量删除</el-button>
                 <!-- <el-button type="primary" plain size="small" :disabled="editDisabled || selectionfeecList.length == 0"
                   @click="allClick('C费用申请')">请核费用</el-button> -->
@@ -271,7 +271,7 @@
               </template>
               <template slot="indexHeader" slot-scope="{row,index}">
                 <el-button type="primary" size="mini" icon="el-icon-plus"
-                  :disabled="editDisabled || form.buxStaus == '已确认'" circle @click="feecAddRow()">
+                  :disabled="form.buxStaus == '已确认'" circle @click="feecAddRow()">
                 </el-button>
               </template>
               <template slot="index" slot-scope="{row,index}">
@@ -2101,6 +2101,10 @@ export default {
             row.amountUSD = row.amount
             row.amountCNY = 0
           }
+          if (row.auditStatus > 0) {
+            this.editDisabled = true
+            this.optionForm.disabled = true
+          }
         })
         this.feeCenterListD = res.data.data.feeCenterList.filter(item => item.dc == "D")
         this.feeCenterListC = res.data.data.feeCenterList.filter(item => item.dc == "C")

+ 10 - 6
src/views/boxManagement/boxExit/detailsPage.vue

@@ -210,20 +210,20 @@
                   <i class="el-icon-coin"></i>
                   <span>应付费用</span>
                 </div>
-                <el-button type="info" plain size="small" :disabled="editDisabled || form.buxStaus == '已确认'"
+                <el-button type="info" plain size="small" :disabled=" form.buxStaus == '已确认'"
                   @click="allClick('费用一键保存')">一键保存</el-button>
-                <el-button type="info" plain size="small" :disabled="editDisabled || form.buxStaus == '已确认'"
+                <el-button type="info" plain size="small" :disabled=" form.buxStaus == '已确认'"
                   @click="allClick('费用一键编辑')">一键编辑</el-button>
                 <el-button type="danger" plain size="small"
-                  :disabled="editDisabled || selectionfeecList.length == 0 || form.buxStaus == '已确认'"
+                  :disabled="selectionfeecList.length == 0 || form.buxStaus == '已确认'"
                   @click="allClick('费用批量删除')">批量删除</el-button>
-                <el-button type="primary" plain size="small" :disabled="editDisabled || selectionfeecList.length == 0"
+                <el-button type="primary" plain size="small" :disabled=" selectionfeecList.length == 0"
                   @click="allClick('费用申请')">请核费用</el-button>
                 <!-- <el-button type="primary" plain size="small" @click="$refs.printC.openDialog()">打印账单</el-button> -->
               </template>
               <template slot="indexHeader" slot-scope="{row,index}">
                 <el-button type="primary" size="mini" icon="el-icon-plus"
-                  :disabled="editDisabled || form.buxStaus == '已确认'" circle @click="feecAddRow()">
+                  :disabled=" form.buxStaus == '已确认'" circle @click="feecAddRow()">
                 </el-button>
               </template>
               <template slot="index" slot-scope="{row,index}">
@@ -296,7 +296,7 @@
                 <span v-else>{{ row.remarks }}</span>
               </template>
               <template slot="menu" slot-scope="{ row, index }">
-                <el-button size="small" icon="el-icon-delete" type="text" :disabled="editDisabled"
+                <el-button size="small" icon="el-icon-delete" type="text" :disabled="false"
                   @click="polRowDel(row, index)">删 除</el-button>
               </template>
             </avue-crud>
@@ -1616,6 +1616,10 @@ export default {
             row.amountUSD = row.amount
             row.amountCNY = 0
           }
+                  if(row.auditStatus>0){
+            this.editDisabled=true
+            this.optionForm.disabled = true
+          }
         })
         this.form = res.data.data
         this.updateFormKey = new Date().getTime()

+ 12 - 8
src/views/boxManagement/buyContainer/detailsPage.vue

@@ -170,18 +170,18 @@
                   <i class="el-icon-coin"></i>
                   <span>应付费用</span>
                 </div>
-                <el-button type="info" plain size="small" :disabled="editDisabled"
+                <el-button type="info" plain size="small" :disabled="false"
                   @click="allClick('费用一键保存')">一键保存</el-button>
-                <el-button type="info" plain size="small" :disabled="editDisabled"
+                <el-button type="info" plain size="small" :disabled="false"
                   @click="allClick('费用一键编辑')">一键编辑</el-button>
-                <el-button type="danger" plain size="small" :disabled="editDisabled || selectionfeecList.length == 0"
+                <el-button type="danger" plain size="small" :disabled=" selectionfeecList.length == 0"
                   @click="allClick('费用批量删除')">批量删除</el-button>
-                <el-button type="primary" plain size="small" :disabled="editDisabled || selectionfeecList.length == 0"
+                <el-button type="primary" plain size="small" :disabled=" selectionfeecList.length == 0"
                   @click="allClick('费用申请')">请核费用</el-button>
                 <!-- <el-button type="primary" plain size="small" @click="$refs.printC.openDialog()">打印账单</el-button> -->
               </template>
               <template slot="indexHeader" slot-scope="{row,index}">
-                <el-button type="primary" size="mini" icon="el-icon-plus" :disabled="editDisabled" circle
+                <el-button type="primary" size="mini" icon="el-icon-plus" :disabled="false" circle
                   @click="feecAddRow()">
                 </el-button>
               </template>
@@ -255,7 +255,7 @@
                 <span v-else>{{ row.remarks }}</span>
               </template>
               <template slot="menu" slot-scope="{ row, index }">
-                <el-button size="small" icon="el-icon-delete" type="text" :disabled="editDisabled"
+                <el-button size="small" icon="el-icon-delete" type="text"
                   @click="polRowDel(row, index)">删 除</el-button>
               </template>
             </avue-crud>
@@ -1184,13 +1184,13 @@ export default {
     this.roleName = localStorage.getItem('roleName').split(',')
     this.option = await this.getColumnData(this.getColumnName(235.1), this.optionBack);
     this.feecOption = await this.getColumnData(this.getColumnName(235.2), this.feecOptionBack);
-    if (this.detailData.id) {
+    if (this.detailData&&this.detailData.id) {
       // this.editButton = true
       // this.editDisabled = true
       // this.optionForm.disabled = true
       this.getDetail(this.detailData.id)
     }
-    if (this.detailData.copyId) {
+    if (this.detailData&&this.detailData.copyId) {
       this.getCopydate(this.detailData.copyId)
     }
     this.saveLocalCurrency(this.deptId)
@@ -1588,6 +1588,10 @@ export default {
             row.amountUSD = row.amount
             row.amountCNY = 0
           }
+          if(row.auditStatus>0){
+            this.editDisabled=true
+            this.optionForm.disabled = true
+          }
         })
         this.form = res.data.data
         this.updateFormKey = new Date().getTime()

+ 3 - 3
src/views/boxManagement/containerNumber/detailsPage.vue

@@ -104,8 +104,8 @@
             <el-input-number v-model="form.occupyNum" :controls="false" placeholder="请输入 占用" style="width: 100%;"
               :disabled="editDisabled"></el-input-number>
           </tempalte>
-          <tempalte slot="totalNum">
-            <el-input-number v-model="form.totalNum" :controls="false" placeholder="请输入 场地盘存" style="width: 100%;"
+          <tempalte slot="storageNum">
+            <el-input-number v-model="form.storageNum" :controls="false" placeholder="请输入 场地盘存" style="width: 100%;"
               :disabled="editDisabled"></el-input-number>
           </tempalte>
         </avue-form>
@@ -360,7 +360,7 @@ export default {
           },
           {
             label: '场地盘存',
-            prop: 'totalNum',
+            prop: 'storageNum',
             disabled: false,
           },
           {

+ 11 - 10
src/views/boxManagement/rentalBox/detailsPage.vue

@@ -214,19 +214,16 @@
                   <i class="el-icon-coin"></i>
                   <span>应付费用</span>
                 </div>
-                <el-button type="info" plain size="small" :disabled="editDisabled"
-                  @click="allClick('费用一键保存')">一键保存</el-button>
-                <el-button type="info" plain size="small" :disabled="editDisabled"
-                  @click="allClick('费用一键编辑')">一键编辑</el-button>
-                <el-button type="danger" plain size="small" :disabled="editDisabled || selectionfeecList.length == 0"
+                <el-button type="info" plain size="small" @click="allClick('费用一键保存')">一键保存</el-button>
+                <el-button type="info" plain size="small" @click="allClick('费用一键编辑')">一键编辑</el-button>
+                <el-button type="danger" plain size="small" :disabled="selectionfeecList.length == 0"
                   @click="allClick('费用批量删除')">批量删除</el-button>
-                <el-button type="primary" plain size="small" :disabled="editDisabled || selectionfeecList.length == 0"
+                <el-button type="primary" plain size="small" :disabled="selectionfeecList.length == 0"
                   @click="allClick('费用申请')">请核费用</el-button>
                 <!-- <el-button type="primary" plain size="small" @click="$refs.printC.openDialog()">打印账单</el-button> -->
               </template>
               <template slot="indexHeader" slot-scope="{row,index}">
-                <el-button type="primary" size="mini" icon="el-icon-plus" :disabled="editDisabled" circle
-                  @click="feecAddRow()">
+                <el-button type="primary" size="mini" icon="el-icon-plus" circle @click="feecAddRow()">
                 </el-button>
               </template>
               <template slot="index" slot-scope="{row,index}">
@@ -300,7 +297,7 @@
                 <span v-else>{{ row.remarks }}</span>
               </template>
               <template slot="menu" slot-scope="{ row, index }">
-                <el-button size="small" icon="el-icon-delete" type="text" :disabled="editDisabled"
+                <el-button size="small" icon="el-icon-delete" type="text"
                   @click="polRowDel(row, index)">删 除</el-button>
               </template>
             </avue-crud>
@@ -981,7 +978,7 @@ export default {
               trigger: "blur"
             }]
           },
-           {
+          {
             label: '造箱日期',
             prop: 'boxMakingDate',
             overHidden: true,
@@ -1879,6 +1876,10 @@ export default {
             row.amountUSD = row.amount
             row.amountCNY = 0
           }
+          if (row.auditStatus > 0) {
+            this.editDisabled = true
+            this.optionForm.disabled = true
+          }
         })
         this.form = res.data.data
         this.updateFormKey = new Date().getTime()

+ 41 - 9
src/views/iosBasicData/OceanFreightImport/bills/assembly/EntrustmentLnformation/precontainers.vue

@@ -406,16 +406,42 @@ export default {
                 });
                 return
             }
+            // for (let item of this.assemblyForm.preContainersList) {
+            //     if (!item.cntrTypeCode) {
+            //         this.$message.warning('请选择尺码箱型')
+            //         return;
+            //     }
+            //     if (!item.quantity) {
+            //         this.$message.warning('请输入箱量')
+            //         return;
+            //     }
+            //     item.pid = this.assemblyForm.id
+            // }
+            // precontainersSubmitList(this.assemblyForm.preContainersList).then(res => {
+            //     this.$message({
+            //         type: "success",
+            //         message: "操作成功!"
+            //     });
+            //     this.$emit('billsDetailfun')
+            // })
             for (let item of this.assemblyForm.preContainersList) {
-                if (!item.cntrTypeCode) {
-                    this.$message.warning('请选择尺码箱型')
-                    return;
-                }
-                if (!item.quantity) {
-                    this.$message.warning('请输入箱量')
-                    return;
+                if (this.assemblyForm.containersList.filter(e => item.cntrTypeCode == e.cntrTypeCode).length != item.quantity) {
+                    this.$confirm("箱型箱量改变,请检查预录费用信息?", {
+                        confirmButtonText: "确定",
+                        cancelButtonText: "取消",
+                        showCancelButton: false,
+                        type: "error"
+                    }).then(() => {
+                        precontainersSubmitList(this.assemblyForm.preContainersList).then(res => {
+                            this.$message({
+                                type: "success",
+                                message: "操作成功!"
+                            });
+                            this.$emit('billsDetailfun')
+                        })
+                    })
+                    return
                 }
-                item.pid = this.assemblyForm.id
             }
             precontainersSubmitList(this.assemblyForm.preContainersList).then(res => {
                 this.$message({
@@ -517,6 +543,12 @@ export default {
         },
         // 选择框的回调
         corpChange(value, row) {
+            if (this.assemblyForm.preContainersList.filter(e => value == e.cntrTypeCode).length) {
+                this.$set(row, 'cntrTypeCode', null)
+                this.$set(row, 'cntrTypeCodeId', null)
+                this.$set(row, 'teu', null)
+                return this.$message.error('箱型不能重复')
+            }
             for (let item of this.cntrTypeCodeData) {
                 if (item.cnName == value) {
                     this.$set(row, 'cntrTypeCode', item.cnName)
@@ -680,7 +712,7 @@ export default {
         },
         // 新增
         addfun() {
-            this.$refs.crud.rowCellAdd({})
+            this.$refs.crud.rowCellAdd({ pid: this.assemblyForm.id })
             // this.$refs.crud.rowAdd()
         },
         // 编辑

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

@@ -389,7 +389,7 @@
                             <span style="color: #1e9fff">单据类型</span>
                         </span>
                         <search-query :datalist="billTypeData" :selectValue="assemblyForm.billType" :filterable="true"
-                            :clearable="true" :remote="true" :disabled="detailData.seeDisabled" :buttonIf="false"
+                            :clearable="true" :remote="true" :disabled="true" :buttonIf="false"
                             placeholder="请选择单据类型" @corpChange="corpChange($event, 'billType')">
                         </search-query>
                     </el-form-item>

+ 22 - 3
src/views/iosBasicData/OceanFreightImport/bills/billsDetails.vue

@@ -71,6 +71,9 @@
                 <el-button v-if="form.id && form.changeOrdersStatus == '已换单'" size="small" type="danger"
                     @click.stop="allClick('撤销换单')">撤销换单
                 </el-button>
+                <el-button size="small" type="warning" :disabled="!form.id || showLock" v-if="form.billType == 'MM'"
+                    @click.stop="allClick('同步分单信息')">同步分单信息
+                </el-button>
                 <el-button v-if="form.id && form.returningSecurityMoneyStatus == '可退押'" size="small" type="info"
                     @click.stop="allClick('退押')">退 押
                 </el-button>
@@ -442,7 +445,7 @@
                 </el-tab-pane>
 
                 <el-tab-pane label="费用信息" name="fy" class="scrollable-container"
-                    v-if=" (roleName.includes('admin') || roleName.includes('secondaryAdmin') || roleName.includes('应收修改') || roleName.includes('应付修改') || roleName.includes('应收查看') || roleName.includes('应付查看'))">
+                    v-if="(roleName.includes('admin') || roleName.includes('secondaryAdmin') || roleName.includes('应收修改') || roleName.includes('应付修改') || roleName.includes('应收查看') || roleName.includes('应付查看'))">
                     <feecenter :assemblyForm="form" :copyFormData="copyFormData" :detailData="detailData"
                         :disabled="detailData.seeDisabled || showLock" :pleasereviewType="pleasereviewType"
                         :pid="form.id" @billsDetailfun="billsDetailfun(form.id)">
@@ -520,7 +523,8 @@ import {
     changeOrders,
     revokeChangeOrders,
     returningSecurityMoney,
-    revokeReturningSecurityMoney
+    revokeReturningSecurityMoney,
+    synchronizeData
 } from "@/api/iosBasicData/bills";
 import { dateFormat } from "@/util/date";
 import checkSchedule from "@/components/checkH/checkSchedule.vue";
@@ -1294,6 +1298,21 @@ export default {
                     });
                 });
             }
+            if (name == '同步分单信息') {
+                this.$confirm('是否同步分单信息?', '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'warning'
+                }).then(() => {
+                    synchronizeData({ billId: this.form.id }).then(res => {
+                        this.$message({
+                            type: "success",
+                            message: "操作成功!"
+                        })
+                        this.billsDetailfun(this.form.id)
+                    })
+                })
+            }
         },
         // 获取EDI列表数据
         editypesListfun() {
@@ -2307,7 +2326,7 @@ export default {
                 this.pageLoading = true;
                 billsCheckBills({
                     id: this.form.id,
-                    url:"/iosBasicData/OceanFreightImport/bills/approvalDetails",
+                    url: "/iosBasicData/OceanFreightImport/bills/approvalDetails",
                     pageStatus: "this.$store.getters.approvalDetails",
                     pageLabel: "审批详情(F)"
                 })

+ 91 - 6
src/views/iosBasicData/OceanFreightImport/bills/index.vue

@@ -28,6 +28,8 @@
                     </el-button>
                     <el-button type="primary" size="small" plain @click="CopyDocumentsfun">复制单据
                     </el-button>
+                    <el-button type="primary" size="small" @click="allClick('修改单据类型')">修改单据类型
+                    </el-button>
                     <el-button type="success" size="small" plain @click="increaseMawb">分单->主单
                     </el-button>
                     <el-button type="warning" size="small" plain v-if="query.billStatus != 1" @click="Disembarkingfun">退
@@ -64,20 +66,26 @@
                         <el-tabs type="card" v-model="query.billStatus" @tab-click="handleClick">
 
                             <el-tab-pane label="全部" name="7"></el-tab-pane>
-                            <el-tab-pane label="接单" name="0">
+                            <el-tab-pane v-if="!(roleName.indexOf('总部中心') >= 0)" label="接单" name="0">
                                 <span slot="label">接单</span>
                             </el-tab-pane>
-                            <el-tab-pane label="到港" name="6">
+                            <el-tab-pane v-if="!(roleName.indexOf('总部中心') >= 0)" label="到港" name="6">
                                 <span slot="label">到港</span>
                             </el-tab-pane>
-                            <el-tab-pane label="返空" name="8"></el-tab-pane>
-                            <el-tab-pane label="换单" name="9"></el-tab-pane>
-                            <el-tab-pane label="通关" name="10"></el-tab-pane>
-                            <el-tab-pane label="退舱" name="1">
+                            <el-tab-pane v-if="!(roleName.indexOf('总部中心') >= 0)" label="返空" name="8"></el-tab-pane>
+                            <el-tab-pane v-if="!(roleName.indexOf('总部中心') >= 0)" label="换单" name="9"></el-tab-pane>
+                            <el-tab-pane v-if="!(roleName.indexOf('总部中心') >= 0)" label="通关" name="10"></el-tab-pane>
+                            <el-tab-pane v-if="!(roleName.indexOf('总部中心') >= 0)" label="退舱" name="1">
                                 <span slot="label" style="color: #d86363">
                                     退舱
                                 </span>
                             </el-tab-pane>
+                            <el-tab-pane v-if="roleName.indexOf('总部中心') >= 0" label="待处理" name="11">
+                                <span slot="label">待处理</span>
+                            </el-tab-pane>
+                            <el-tab-pane v-if="roleName.indexOf('总部中心') >= 0" label="待请核" name="12">
+                                <span slot="label">待请核</span>
+                            </el-tab-pane>
                             <el-tab-pane label="完成" name="3"></el-tab-pane>
                         </el-tabs>
                     </div>
@@ -216,6 +224,7 @@ import {
     billsSubmit,
     billsRemove,
     billsIncreaseReinsurancePolicy,
+    updateBillType,
     billsListAll,
     billsDisembarking,
     editypesSendingEdi,
@@ -256,6 +265,7 @@ export default {
     },
     data() {
         return {
+            roleName: [],
             dcDic: [
                 {
                     label: '收',
@@ -1988,6 +1998,81 @@ export default {
             this.isShow = false;
             this.$store.commit("IN_OCEANFI_DETAIL");
         },
+        allClick(name) {
+            if (name == '修改单据类型') {
+                if (this.selectionList.length !== 1) {
+                    this.$message.warning("请选择一条数据");
+                    return;
+                }
+                for (let item of this.selectionList) {
+                    if (item.status != 0) {
+                        return this.$message.error("请选择未审核的单据");
+                    }
+                }
+                this.$DialogForm.show({
+                    title: "修改单据类型",
+                    width: "300px",
+                    menuPosition: "right",
+                    option: {
+                        submitText: "确认",
+                        emptyText: "取消",
+                        span: 24,
+                        column: [
+                            {
+                                label: "单据类型",
+                                prop: "billType",
+                                type: 'select',
+                                dicData: [
+                                    {
+                                        label: "直单",
+                                        value: "DD"
+                                    },
+                                    {
+                                        label: "主单",
+                                        value: "MM"
+                                    },
+                                    {
+                                        label: "分单",
+                                        value: "MH"
+                                    }
+                                ],
+                                span: 24
+                            }
+                        ]
+                    },
+                    beforeClose: done => {
+                        done();
+                    },
+                    callback: res => {
+                        res.done();
+                        // this.detailData.seeDisabled = false;
+                        // this.detailData.id = this.selectionList[0].id;
+                        // this.isShow = false;
+                        let obj = {
+                            ids: this.selectionList[0].id,
+                            billType: res.data.billType
+                        }
+                        updateBillType(obj).then(res => {
+                            this.refreshChange()
+                            this.$message({
+                                type: "success",
+                                message: "操作成功!"
+                            });
+                        })
+                        // this.$nextTick(() => {
+                        //     this.$refs.billsDetails.pageLoading = true;
+                        //     this.$refs.billsDetails.billsCopyBillsfun(
+                        //         this.selectionList[0].id,
+                        //         res.data.checkbox
+                        //     );
+                        // });
+                        // this.$store.commit("IN_SEAFE_DETAIL");
+                        res.close();
+                    }
+                });
+            }
+
+        },
         // 复制单据
         CopyDocumentsfun() {
             if (this.selectionList.length !== 1) {

+ 69 - 36
src/views/iosBasicData/SeafreightExportF/bills/assembly/EntrustmentLnformation/precontainers.vue

@@ -20,16 +20,16 @@
                 </el-button>
             </template>
             <template slot-scope="{row,index}" slot="menu">
-                <el-button v-if="row.id && row.containerNumberStatus == '录入'&&assemblyForm.billType!='MM'" size="mini" type="text"
-                    @click.stop="pick(row)" :disabled="seeDisabled">
+                <el-button v-if="row.id && row.containerNumberStatus == '录入' && assemblyForm.billType != 'MM'"
+                    size="mini" type="text" @click.stop="pick(row)" :disabled="seeDisabled">
                     选择
                 </el-button>
-                <el-button v-if="row.id && row.containerNumberStatus == '已选择'&&assemblyForm.billType!='MM'" size="mini" type="text"
-                    @click.stop="rowRevoke(row)" :disabled="seeDisabled">
+                <el-button v-if="row.id && row.containerNumberStatus == '已选择' && assemblyForm.billType != 'MM'"
+                    size="mini" type="text" @click.stop="rowRevoke(row)" :disabled="seeDisabled">
                     撤销
                 </el-button>
-                <el-button v-if="row.id && row.containerNumberStatus == '已选择'&&assemblyForm.billType!='MM'" size="mini" type="text"
-                    @click.stop="rowView(row)" :disabled="seeDisabled">
+                <el-button v-if="row.id && row.containerNumberStatus == '已选择' && assemblyForm.billType != 'MM'"
+                    size="mini" type="text" @click.stop="rowView(row)" :disabled="seeDisabled">
                     查看放箱号
                 </el-button>
             </template>
@@ -477,7 +477,7 @@ export default {
                 podId: this.assemblyForm.podId,
                 cabinType: this.assemblyForm.cabinType,
                 airlineId: this.assemblyForm.airlineId,
-                etd:this.assemblyForm.etd+' 00:00:00',
+                etd: this.assemblyForm.etd + ' 00:00:00',
             }
             getItemListHY(obj).then(res => {
                 if (res.data.data) {
@@ -508,7 +508,7 @@ export default {
             this.containerNumberItemList = this.assemblyForm.containerNumberItemList.filter(item => row.cntrTypeCode == item.boxType && item.occupyNum > 0)
         },
         handleClose() {
-            this.dialogVisible=false
+            this.dialogVisible = false
             this.editStatus = false
         },
         onclickEdit() {
@@ -571,36 +571,63 @@ export default {
                 });
                 return
             }
-            let numberSum = 0
-            let grossWeightSum = 0
-            let measurementSum = 0
+            // let numberSum = 0
+            // let grossWeightSum = 0
+            // let measurementSum = 0
+            // for (let item of this.assemblyForm.preContainersList) {
+            //     numberSum += Number(item.number)
+            //     grossWeightSum += Number(item.grossWeight)
+            //     measurementSum += Number(item.measurement)
+            //     if (!item.cntrTypeCode) {
+            //         this.$message.warning('请选择尺码箱型')
+            //         return;
+            //     }
+            //     if (!item.quantity) {
+            //         this.$message.warning('请输入箱量')
+            //         return;
+            //     }
+            //     item.pid = this.assemblyForm.id
+            // }
+            // if (numberSum>0&&(numberSum != this.assemblyForm.quantity)) return this.$message.error('箱型所有的件数不等于总件数')
+            // this.$confirm("批量保存后,需要重新配箱,确认继续?", {
+            //     confirmButtonText: "确定",
+            //     cancelButtonText: "取消",
+            //     type: "warning"
+            // }).then(() => {
+            //     precontainersSubmitList(this.assemblyForm.preContainersList).then(res => {
+            //         this.$message({
+            //             type: "success",
+            //             message: "操作成功!"
+            //         });
+            //         this.$emit('billsDetailfun')
+            //     })
+            // })
+            // assemblyForm.containersList
             for (let item of this.assemblyForm.preContainersList) {
-                numberSum += Number(item.number)
-                grossWeightSum += Number(item.grossWeight)
-                measurementSum += Number(item.measurement)
-                if (!item.cntrTypeCode) {
-                    this.$message.warning('请选择尺码箱型')
-                    return;
-                }
-                if (!item.quantity) {
-                    this.$message.warning('请输入箱量')
-                    return;
+                if (this.assemblyForm.containersList.filter(e => item.cntrTypeCode == e.cntrTypeCode).length != item.quantity) {
+                    this.$confirm("箱型箱量改变,请检查预录费用信息?", {
+                        confirmButtonText: "确定",
+                        cancelButtonText: "取消",
+                        showCancelButton:false,
+                        type: "error"
+                    }).then(() => {
+                        precontainersSubmitList(this.assemblyForm.preContainersList).then(res => {
+                            this.$message({
+                                type: "success",
+                                message: "操作成功!"
+                            });
+                            this.$emit('billsDetailfun')
+                        })
+                    })
+                    return
                 }
-                item.pid = this.assemblyForm.id
             }
-            if (numberSum>0&&(numberSum != this.assemblyForm.quantity)) return this.$message.error('箱型所有的件数不等于总件数')
-            this.$confirm("批量保存后,需要重新配箱,确认继续?", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning"
-            }).then(() => {
-                precontainersSubmitList(this.assemblyForm.preContainersList).then(res => {
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!"
-                    });
-                    this.$emit('billsDetailfun')
-                })
+            precontainersSubmitList(this.assemblyForm.preContainersList).then(res => {
+                this.$message({
+                    type: "success",
+                    message: "操作成功!"
+                });
+                this.$emit('billsDetailfun')
             })
         },
         // 平均箱量
@@ -697,6 +724,12 @@ export default {
         },
         // 选择框的回调
         corpChange(value, row) {
+            if (this.assemblyForm.preContainersList.filter(e => value == e.cntrTypeCode).length) {
+                this.$set(row, 'cntrTypeCode', null)
+                this.$set(row, 'cntrTypeCodeId', null)
+                this.$set(row, 'teu', null)
+                return this.$message.error('箱型不能重复')
+            }
             for (let item of this.cntrTypeCodeData) {
                 if (item.cnName == value) {
                     this.$set(row, 'cntrTypeCode', item.cnName)
@@ -860,7 +893,7 @@ export default {
         },
         // 新增
         addfun() {
-            this.$refs.crud.rowCellAdd({})
+            this.$refs.crud.rowCellAdd({pid:this.assemblyForm.id})
             // this.$refs.crud.rowAdd()
         },
         // 编辑

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

@@ -247,7 +247,7 @@
                             <span style="color: #1e9fff">单据类型</span>
                         </span>
                         <search-query :datalist="billTypeData" :selectValue="assemblyForm.billType" :filterable="true"
-                            :clearable="true" :remote="true" :disabled="detailData.seeDisabled" :buttonIf="false"
+                            :clearable="true" :remote="true" :disabled="true" :buttonIf="false"
                             placeholder="请选择单据类型" @corpChange="corpChange($event, 'billType')">
                         </search-query>
                     </el-form-item>

+ 20 - 1
src/views/iosBasicData/SeafreightExportF/bills/billsDetails.vue

@@ -54,7 +54,7 @@
                     </el-dropdown-menu>
                 </el-dropdown> -->
                 <el-button
-                    v-if="bigtabs != 'dz'&&!(form.billType == 'MM' && isHq != 1) && (roleName.includes('admin') || (roleName.includes('应付修改') && roleName.includes('应付查看')) || (roleName.includes('应收修改') && roleName.includes('应收查看')))"
+                    v-if="bigtabs != 'dz' && !(form.billType == 'MM' && isHq != 1) && (roleName.includes('admin') || (roleName.includes('应付修改') && roleName.includes('应付查看')) || (roleName.includes('应收修改') && roleName.includes('应收查看')))"
                     size="small" style="margin-right: 8px" :loading="saveLoading" :disabled="!form.id"
                     @click="previewDialogfun">预 览
                 </el-button>
@@ -71,6 +71,9 @@
                 <el-button v-if="form.id && form.transferOrderStatus == '已转单'" size="small" type="danger"
                     @click.stop="allClick('撤销转单')">撤销转单
                 </el-button>
+                <el-button size="small" type="warning" :disabled="!form.id || showLock" v-if="form.billType == 'MM'"
+                    @click.stop="allClick('同步分单信息')">同步分单信息
+                </el-button>
                 <el-button size="small" type="warning" :disabled="!form.id || showLock"
                     v-if="form.status == 1 && form.billType != 'MH'" @click.stop="revokeDocumentApproval">撤销单据请核
                 </el-button>
@@ -400,6 +403,7 @@ import {
     logisticsRevokeSubmission,
     transferOrder,
     revokeTransferOrder,
+    synchronizeData
 } from '@/api/iosBasicData/bills'
 import { dateFormat } from "@/util/date";
 import checkSchedule from "@/components/checkH/checkSchedule.vue";
@@ -1098,6 +1102,21 @@ export default {
                     })
                 })
             }
+            if (name == '同步分单信息') {
+                this.$confirm('是否同步分单信息?', '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'warning'
+                }).then(() => {
+                    synchronizeData({ billId: this.form.id }).then(res => {
+                        this.$message({
+                            type: "success",
+                            message: "操作成功!"
+                        })
+                        this.billsDetailfun(this.form.id)
+                    })
+                })
+            }
         },
         dicChange(name, row) {
             if (name == 'shippingCompany') {

+ 93 - 8
src/views/iosBasicData/SeafreightExportF/bills/index.vue

@@ -23,6 +23,8 @@
                     </el-button>
                     <el-button type="primary" size="small" plain @click="CopyDocumentsfun">复制
                     </el-button>
+                    <el-button type="primary" size="small" @click="allClick('修改单据类型')">修改单据类型
+                    </el-button>
                     <el-button type="success" size="small" plain @click="increaseMawb">分单->主单
                     </el-button>
                     <el-button type="warning" size="small" plain v-if="query.billStatus != 1" @click="Disembarkingfun">退
@@ -44,7 +46,7 @@
                         type="warning" size="small" @click="templateImport('C')" :disabled="!selectionList.length">模板(付)
                     </el-button>
                     <el-button
-                        v-if="roleName.indexOf('admin') >= 0 || roleName.indexOf('应付修改') >= 0 || roleName.indexOf('应付查看') >= 0"
+                        v-if="isHq == 1 && (roleName.indexOf('admin') >= 0 || roleName.indexOf('应付修改') >= 0 || roleName.indexOf('应付查看') >= 0)"
                         type="primary" plain size="small" @click="costSubmit"
                         :disabled="!selectionList.length">提取成本</el-button>
                     <el-button type="success" plain size="small" @click="freightRateSubmit"
@@ -86,21 +88,27 @@
                         <el-tabs type="card" v-model="query.billStatus" @tab-click="handleClick">
 
                             <el-tab-pane label="全部" name="7"></el-tab-pane>
-                            <el-tab-pane label="接单" name="0">
+                            <el-tab-pane v-if="!(roleName.indexOf('总部中心') >= 0)" label="接单" name="0">
                                 <span slot="label">接单</span>
                             </el-tab-pane>
-                            <el-tab-pane label="出号" name="4">
+                            <el-tab-pane v-if="!(roleName.indexOf('总部中心') >= 0)" label="出号" name="4">
                                 <span slot="label">出号</span>
                             </el-tab-pane>
-                            <el-tab-pane label="开船" name="5">
+                            <el-tab-pane v-if="!(roleName.indexOf('总部中心') >= 0)" label="开船" name="5">
                                 <span slot="label">开船</span>
                             </el-tab-pane>
-                            <el-tab-pane label="到港" name="6">
+                            <el-tab-pane v-if="!(roleName.indexOf('总部中心') >= 0)" label="到港" name="6">
                                 <span slot="label">到港</span>
                             </el-tab-pane>
-                            <el-tab-pane label="退舱" name="1">
+                            <el-tab-pane v-if="!(roleName.indexOf('总部中心') >= 0)" label="退舱" name="1">
                                 <span slot="label" style="color: #d86363">退舱</span>
                             </el-tab-pane>
+                            <el-tab-pane v-if="roleName.indexOf('总部中心') >= 0" label="待处理" name="11">
+                                <span slot="label">待处理</span>
+                            </el-tab-pane>
+                            <el-tab-pane v-if="roleName.indexOf('总部中心') >= 0" label="待请核" name="12">
+                                <span slot="label">待请核</span>
+                            </el-tab-pane>
                             <el-tab-pane label="完成" name="3"></el-tab-pane>
                         </el-tabs>
                     </div>
@@ -161,7 +169,7 @@
                 <template slot="eta" slot-scope="scope">
                     <span>{{
                         scope.row.eta ? scope.row.eta.slice(0, 10) : ""
-                        }}</span>
+                    }}</span>
                 </template>
                 <template slot="updateTime" slot-scope="scope">
                     <span>{{
@@ -344,6 +352,7 @@ import {
     billsListAll,
     billsDisembarking,
     editypesSendingEdi,
+    updateBillType,
     billsRevokeDisembarking,
     templateImportBatch,
     checkBillsBatch,
@@ -383,6 +392,7 @@ export default {
     },
     data() {
         return {
+            isHq: JSON.parse(localStorage.getItem('user-Information')).isHq,
             radioRow: {},
             roleName: [], // 当前登录人的角色权限
             dcDic: [
@@ -1676,7 +1686,7 @@ export default {
                 if (item.carrierId != this.selectionList[0].carrierId) {
                     return this.$message.error("请选择相同的船公司");
                 }
-                 if (item.etd != this.selectionList[0].etd) {
+                if (item.etd != this.selectionList[0].etd) {
                     return this.$message.error("请选择相同的ETD");
                 }
                 ids.push(item.id)
@@ -2275,6 +2285,81 @@ export default {
             this.isShow = false;
             this.$store.commit("IN_SEAFE_DETAIL");
         },
+        allClick(name) {
+            if (name == '修改单据类型') {
+                if (this.selectionList.length !== 1) {
+                    this.$message.warning("请选择一条数据");
+                    return;
+                }
+                for (let item of this.selectionList) {
+                    if (item.status != 0) {
+                        return this.$message.error("请选择未审核的单据");
+                    }
+                }
+                this.$DialogForm.show({
+                    title: "修改单据类型",
+                    width: "300px",
+                    menuPosition: "right",
+                    option: {
+                        submitText: "确认",
+                        emptyText: "取消",
+                        span: 24,
+                        column: [
+                            {
+                                label: "单据类型",
+                                prop: "billType",
+                                type: 'select',
+                                dicData: [
+                                    {
+                                        label: "直单",
+                                        value: "DD"
+                                    },
+                                    {
+                                        label: "主单",
+                                        value: "MM"
+                                    },
+                                    {
+                                        label: "分单",
+                                        value: "MH"
+                                    }
+                                ],
+                                span: 24
+                            }
+                        ]
+                    },
+                    beforeClose: done => {
+                        done();
+                    },
+                    callback: res => {
+                        res.done();
+                        // this.detailData.seeDisabled = false;
+                        // this.detailData.id = this.selectionList[0].id;
+                        // this.isShow = false;
+                        let obj = {
+                            ids: this.selectionList[0].id,
+                            billType: res.data.billType
+                        }
+                        updateBillType(obj).then(res => {
+                            this.refreshChange()
+                            this.$message({
+                                type: "success",
+                                message: "操作成功!"
+                            });
+                        })
+                        // this.$nextTick(() => {
+                        //     this.$refs.billsDetails.pageLoading = true;
+                        //     this.$refs.billsDetails.billsCopyBillsfun(
+                        //         this.selectionList[0].id,
+                        //         res.data.checkbox
+                        //     );
+                        // });
+                        // this.$store.commit("IN_SEAFE_DETAIL");
+                        res.close();
+                    }
+                });
+            }
+
+        },
         // 复制单据
         CopyDocumentsfun() {
             if (this.selectionList.length !== 1) {

+ 152 - 59
src/views/iosBasicData/businessCenter/bookingCabin/detailsPage.vue

@@ -13,13 +13,20 @@
                 <el-button v-if="roleName.indexOf('admin') != -1" size="small" style="margin-right: 8px"
                     :disabled="!form.id" @click="$refs.report.openDialog()">报表设计
                 </el-button> -->
+        <el-button class="el-button--small-yh" style="margin-left: 6px;" type="danger" size="small"
+          @click="allClick('预定订舱')">预定订舱
+        </el-button>
         <el-button class="el-button--small-yh" style="margin-left: 6px;" type="primary" size="small" v-if="editButton"
           :disabled="showLock || !(roleName.indexOf('admin') != -1 || roleName.indexOf('允许修改他人业务') != -1 || saberUserInfo.user_id == form.createUser)"
           @click="inEdit">编 辑
         </el-button>
         <el-button class="el-button--small-yh" v-else style="margin-left: 6px;" type="primary" size="small"
-          :disabled="isSaveBtn" @click="submit">保 存
+          :disabled="isSaveBtn || form.issueStatus == 1" @click="submit">保 存
+        </el-button>
+        <el-button v-if="form.id" class="el-button--small-yh" style="margin-left: 6px;" type="success" size="small"
+          :disabled="form.issueStatus == 1" @click="allClick('提交')">提交
         </el-button>
+
         <!-- <el-button v-if="form.id" class="el-button--small-yh" style="margin-left: 6px;" type="success"
                     size="small" :disabled="form.status != '录入'" @click="application">单据请核
                 </el-button>
@@ -81,10 +88,10 @@
               :slotRight="true" rightLabel="code"></dic-select>
           </tempalte>
           <tempalte slot="actualShippingCompanyCname">
-            <dic-select v-model="form.actualShippingCompanyCname" placeholder="承运人" key="id" label="shortName" res="records"
-              url="/blade-los/bcorps/selectList?current=1&size=5&corpTypeName=船公司" :filterable="true" :remote="true"
-              dataName="shortName" @selectChange="dicChange('actualShippingCompanyCname', $event)" :slotRight="true"
-              rightLabel="code" :disabled="editDisabled"></dic-select>
+            <dic-select v-model="form.actualShippingCompanyCname" placeholder="承运人" key="id" label="shortName"
+              res="records" url="/blade-los/bcorps/selectList?current=1&size=5&corpTypeName=船公司" :filterable="true"
+              :remote="true" dataName="shortName" @selectChange="dicChange('actualShippingCompanyCname', $event)"
+              :slotRight="true" rightLabel="code" :disabled="editDisabled"></dic-select>
           </tempalte>
           <tempalte slot="hpaymode">
             <dic-select v-model="form.hpaymode" placeholder="付款方式" key="dictKey" label="dictValue" keyValue="dictKey"
@@ -97,15 +104,21 @@
               dataName="cnName" @selectChange="dicChange('serviceTerms', $event)" :disabled="editDisabled"></dic-select>
           </tempalte>
           <tempalte slot="packingUnit">
-            <dic-select v-model="form.packingUnit" placeholder="目的港" key="id" label="cnName" res="records"
+            <dic-select v-model="form.packingUnit" placeholder="包装" key="id" label="cnName" res="records"
               url="/blade-los/bpackages/list?current=1&size=5&status=0&whetherDg=0" :filterable="true" :remote="true"
               dataName="cnName" @selectChange="dicChange('packingUnit', $event)" :disabled="editDisabled"
               :slotRight="true" rightLabel="code"></dic-select>
           </tempalte>
-          <tempalte slot="vesselCnName">
+          <!-- <tempalte slot="vesselCnName">
             <dic-select v-model="form.vesselCnName" placeholder="船名" key="id" label="cnName" res="records"
               url="/blade-los/bvessels/list" :filterable="true" :remote="true" dataName="cnName"
               @selectChange="dicChange('vesselCnName', $event)" :disabled="editDisabled"></dic-select>
+          </tempalte> -->
+          <tempalte slot="bookingAgentCnName">
+            <dic-select v-model="form.bookingAgentCnName" placeholder="订舱代理" key="id" label="cnName" res="records"
+              url="/blade-los/bcorps/selectList?current=1&size=5&corpTypeName=国外同行及代理" :filterable="true" :remote="true"
+              dataName="cnName" @selectChange="dicChange('bookingAgentCnName', $event)" :slotRight="true"
+              rightLabel="code" :disabled="editDisabled"></dic-select>
           </tempalte>
         </avue-form>
       </trade-card>
@@ -116,12 +129,12 @@
           @row-update="rowUpdate" @resetColumn="resetColumn('crud', 'option', 'optionBack', 499)"
           @saveColumn="saveColumn('crud', 'option', 'optionBack', 499)">
           <template slot="menuLeft">
-            <!-- <el-button type="info" plain size="small" :disabled="editDisabled"
+            <el-button type="info" plain size="small" :disabled="editDisabled"
               @click="allClick('一键保存')">一键保存</el-button>
             <el-button type="info" plain size="small" :disabled="editDisabled"
               @click="allClick('一键编辑')">一键编辑</el-button>
             <el-button type="danger" plain size="small" :disabled="editDisabled || selectionList.length == 0"
-              @click="allClick('批量删除')">批量删除</el-button> -->
+              @click="allClick('批量删除')">批量删除</el-button>
           </template>
           <template slot="indexHeader" slot-scope="{row,index}">
             <el-button type="primary" size="mini" icon="el-icon-plus" :disabled="editDisabled" circle @click="addRow()">
@@ -130,6 +143,13 @@
           <template slot="index" slot-scope="{row,index}">
             <span>{{ index + 1 }}</span>
           </template>
+          <tempalte slot="cntrTypeCodeForm" slot-scope="{row,index}">
+            <dic-select v-if="row.$cellEdit" v-model="row.cntrTypeCode" placeholder="箱型" key="id" label="cnName"
+              res="records" url="/blade-los/bcntrtypes/list?current=1&size=5" :filterable="true" :remote="true"
+              dataName="cnName" @selectChange="rowDicChange('cntrTypeCode', $event, row)" :slotRight="true"
+              rightLabel="code"></dic-select>
+            <span v-else>{{ row.corpCnName }}</span>
+          </tempalte>
         </avue-crud>
       </trade-card>
       <trade-card title="操作记录">
@@ -147,7 +167,7 @@
 </template>
 
 <script>
-import { submit, getDetail, submitItemList, copyAgent, itemRemove, pleaseCheck, repealCancel } from "@/api/iosBasicData/businessCenter/bookingCabin.js";
+import { submit, getDetail, submitBookingCabin, sendMessageBooking, copyAgent, pleaseCheck, repealCancel, submitItemList, itemRemove } from "@/api/iosBasicData/businessCenter/bookingCabin.js";
 import { losbfeestemplateGetListTemplate } from "@/api/iosBasicData/bills";
 import { losbfeestemplateDetail } from "@/api/iosBasicData/losbfeestemplate";
 import dicSelect from "@/components/dicSelect/main";
@@ -227,6 +247,9 @@ export default {
         branchName: JSON.parse(localStorage.getItem('sysitemData')).deptName,
         operatorName: JSON.parse(localStorage.getItem('saber-userInfo')).content.user_name, // OP 默认登录人
         operatorId: JSON.parse(localStorage.getItem('saber-userInfo')).content.user_id,
+        businessType: 'YDC',
+        billNoFormat: 'YDC',
+        businessTypeCode: 'YDC',
         preContainersList: [],
       },
       polFeeList: [],
@@ -315,6 +338,11 @@ export default {
             type: "date",
             format: "yyyy-MM-dd",
             valueFormat: "yyyy-MM-dd 00:00:00",
+            rules: [{
+              required: true,
+              message: " ",
+              trigger: "blur"
+            }]
           },
           {
             label: '付费方式',
@@ -324,6 +352,12 @@ export default {
           {
             label: '箱属',
             prop: "boxBelongsTo",
+            type: 'select',
+            dicUrl: "/api/blade-system/dict-biz/dictionary?code=boxBelongsTo",
+            props: {
+              label: "dictValue",
+              value: "dictValue"
+            },
             disabled: false,
           },
           {
@@ -353,6 +387,11 @@ export default {
             label: '毛重(KGS)',
             prop: "grossWeight",
             disabled: false,
+            rules: [{
+              required: true,
+              message: " ",
+              trigger: "blur"
+            }]
           },
           {
             label: '尺码(CBM)',
@@ -373,24 +412,40 @@ export default {
             span: 2
           },
           {
+            label: '订舱备注',
+            prop: "remarks",
+            type: 'textarea',
+            disabled: false,
+            span: 24,
+            minRows: 2,
+          },
+        ]
+      },
+      optionForm2: {
+        menuBtn: false,
+        span: 6,
+        disabled: false,
+        labelWidth: 100,
+        column: [
+          {
             label: 'MB/L NO',
             prop: "mblno",
-            disabled: false,
+            disabled: true,
           },
           {
             label: '船名',
             prop: "vesselCnName",
-            disabled: false,
+            disabled: true,
           },
           {
             label: '航次',
             prop: "voyageNo",
-            disabled: false,
+            disabled: true,
           },
           {
             label: '截单日期',
             prop: "cyTrailerTime",
-            disabled: false,
+            disabled: true,
             type: "date",
             format: "yyyy-MM-dd",
             valueFormat: "yyyy-MM-dd HH:mm:ss",
@@ -398,27 +453,11 @@ export default {
           {
             label: '截港日期',
             prop: "cyReturnTime",
-            disabled: false,
+            disabled: true,
             type: "date",
             format: "yyyy-MM-dd",
             valueFormat: "yyyy-MM-dd HH:mm:ss",
           },
-          {
-            label: '订舱备注',
-            prop: "remarks",
-            type: 'textarea',
-            disabled: false,
-            span: 24,
-            minRows: 2,
-          },
-        ]
-      },
-      optionForm2: {
-        menuBtn: false,
-        span: 6,
-        disabled: false,
-        labelWidth: 100,
-        column: [
           // {
           //   label: '系统号',
           //   prop: "businessNo",
@@ -474,6 +513,8 @@ export default {
             prop: "cntrTypeCode",
             overHidden: true,
             cell: true,
+            slot: true,
+            formslot: true,
             rules: [
               {
                 required: true,
@@ -535,7 +576,20 @@ export default {
     }
   },
   methods: {
-   dicChange(name, row) {
+    rowDicChange(name, row, el, index) {
+      if (name == 'cntrTypeCode') {
+        if (row) {
+          el.cntrTypeCodeId = row.id
+          el.teu = row.teu
+        } else {
+          el.cntrTypeCodeId = null
+          el.cntrTypeCode = null
+          el.teu = null
+        }
+      }
+    }
+    ,
+    dicChange(name, row) {
       if (name == 'branchName') {
         if (row) {
           this.form.branchId = row.id
@@ -617,14 +671,26 @@ export default {
           this.form.actualShippingCompanyAbbreviation = null
         }
       }
-      if (name == 'vesselCnName') {
+      // if (name == 'vesselCnName') {
+      //   if (row) {
+      //     this.form.vesselId = row.id
+      //     this.form.vesselEnName = row.enName
+      //   } else {
+      //     this.form.vesselId = null
+      //     this.form.vesselEnName = null
+      //     this.form.vesselCnName = null
+      //   }
+      // }
+      if (name == 'bookingAgentCnName') {
         if (row) {
-          this.form.vesselId = row.id
-          this.form.vesselEnName = row.enName
+          this.form.bookingAgentId = row.id
+          this.form.bookingAgentEnName = row.enName
+          this.form.bookingRemarks = row.remarks
         } else {
-          this.form.vesselId = null
-          this.form.vesselEnName = null
-          this.form.vesselCnName = null
+          this.form.bookingAgentId = null
+          this.form.bookingAgentEnName = null
+          this.form.bookingAgentCnName = null
+          this.form.bookingRemarks = null
         }
       }
     },
@@ -654,11 +720,11 @@ export default {
       });
       getDetail({ id: id }).then(res => {
         this.form = res.data.data
-        // if (res.data.data.status != '录入') {
-        //   this.editButton = true
-        //   this.editDisabled = true
-        //   this.optionForm.disabled = true
-        // }
+        if (res.data.data.issueStatus == 1) {
+          // this.editButton = true
+          this.editDisabled = true
+          this.optionForm.disabled = true
+        }
       }).finally(() => {
         loading.close()
       })
@@ -684,6 +750,47 @@ export default {
       }
     },
     allClick(name) {
+      if (name == '预定订舱') {
+        this.$confirm("是否发送消息?", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(() => {
+          const loading = this.$loading({
+            lock: true,
+            text: '加载中',
+            spinner: 'el-icon-loading',
+            background: 'rgba(255,255,255,0.7)'
+          });
+          sendMessageBooking(this.form).then(res => {
+            this.$message.success("操作成功");
+            this.getDetails(this.form.id)
+          }).finally(() => {
+            loading.close();
+          })
+        });
+      }
+      if (name == '提交') {
+        this.$confirm("是否提交?", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(() => {
+          const loading = this.$loading({
+            lock: true,
+            text: '加载中',
+            spinner: 'el-icon-loading',
+            background: 'rgba(255,255,255,0.7)'
+          });
+          submitBookingCabin(this.form).then(res => {
+            this.$message.success("操作成功");
+            this.getDetails(this.form.id)
+          }).finally(() => {
+            loading.close();
+          })
+        });
+
+      }
       if (name == '一键保存') {
         if (!this.form.preContainersList.length) {
           return this.$message.error("请添加数据");
@@ -759,22 +866,8 @@ export default {
               return this.$message.error("请完善明细信息");
             }
           }
-          for (let row of this.polFeeList) {
-            if (!row.type || !row.feeName || !row.curCode || !row.curCode || row.salesPrice == null || row.costPrice == null) {
-              this.$refs.crud2.rowCell(row, row.$index)
-              return this.$message.error("请完善POL杂费明细");
-            }
-          }
-          for (let row of this.podFeeList) {
-            if (!row.type || !row.feeName || !row.curCode || !row.curCode || row.salesPrice == null || row.costPrice == null) {
-              this.$refs.crud3.rowCell(row, row.$index)
-              return this.$message.error("请完善POD杂费明细");
-            }
-          }
-          this.form.costFeeList = [...this.polFeeList, ...this.podFeeList]
-
-          this.form.billNoFormat = 'COC'
-          this.form.businessTypeCode = 'COC'
+          // this.form.billNoFormat = 'COC'
+          // this.form.businessTypeCode = 'COC'
           const loading = this.$loading({
             lock: true,
             text: '加载中',

+ 8 - 6
src/views/iosBasicData/businessCenter/bookingCabin/index.vue

@@ -18,16 +18,17 @@
                 <template slot="menu" slot-scope="{ row, index }">
                     <el-button size="small" icon="el-icon-edit" type="text" @click="rowEdit(row)">编辑</el-button>
                     <el-button size="small" icon="el-icon-delete" type="text" @click="rowDel(row, index)"
-                        :disabled="row.billStatus != '录入'">删 除</el-button>
+                        :disabled="row.issueStatus != 0">删 除</el-button>
                 </template>
-                <template slot="businessNo" slot-scope="{ row }">
-                    <span style="color: #1e9fff;cursor: pointer;" @click="rowEdit(row)">{{ row.businessNo }}</span>
+                <template slot="actualShippingCompanyCname" slot-scope="{ row }">
+                    <span style="color: #1e9fff;cursor: pointer;" @click="rowEdit(row)">{{
+                        row.actualShippingCompanyCname }}</span>
                 </template>
                 <template slot="status" slot-scope="{ row }">
-                    <span v-if="row.billStatus == '录入'"
+                    <span v-if="row.issueStatus == 0"
                         style="color: #fff;border-radius: 30px;padding: 2px 15px;background-color: #409EFF;">{{
                             row.status }}</span>
-                    <span v-if="row.billStatus != '录入'"
+                    <span v-if="row.issueStatus != 0"
                         style="color: #fff;border-radius: 30px;padding: 2px 15px;background-color: #67C23A;">{{
                             row.status }}</span>
                 </template>
@@ -282,7 +283,7 @@ export default {
                         prop: "cyReturnTime",
                         width: "100",
                         overHidden: true,
-                           type: "date",
+                        type: "date",
                         format: "yyyy-MM-dd",
                         valueFormat: "yyyy-MM-dd HH:mm:ss",
                     },
@@ -332,6 +333,7 @@ export default {
             if (this.$route.query.home) {
                 this.addButton();
             }
+            this.$refs.crud.doLayout();
         }, 100);
     },
     methods: {

+ 12 - 1
src/views/iosBasicData/businessCenter/mkt&slot/detailsPage.vue

@@ -72,6 +72,8 @@
           @resetColumn="resetColumn('crud', 'option', 'optionBack', 496)"
           @saveColumn="saveColumn('crud', 'option', 'optionBack', 496)" @row-click="handleRowClick">
           <template slot="menuLeft">
+            <el-button type="info" plain size="small" :disabled="editDisabled"
+              @click="allClick('成本一键编辑')">一键编辑</el-button>
             <el-button type="danger" plain size="small" :disabled="editDisabled || selectionList.length == 0"
               @click="allClick('批量删除')">批量删除</el-button>
             <el-button type="success" size="small" :disabled="!form.id" @click="allClick('提取运价')">提取运价</el-button>
@@ -274,6 +276,12 @@ export default {
         index: true,
         column: [
           {
+            label: '排序',
+            prop: 'sort',
+            overHidden: true,
+            width: 100
+          },
+          {
             label: '船公司',
             prop: 'shippingCompanyCname',
             overHidden: true,
@@ -601,7 +609,7 @@ export default {
     },
     handleRowClick(row) {
       row.mktSlotQuotationList.forEach(row => {
-        row.$cellEdit = true
+        row.$cellEdit = this.form.billStatus == '录入' ? true : false
       })
       this.mktSlotQuotationList = row.mktSlotQuotationList
       this.$refs.crud2.dicInit();
@@ -770,6 +778,9 @@ export default {
           loading.close();
         })
       }
+      // if(name=='成本一键编辑'){
+
+      // }
       if (name == '一键编辑') {
         this.$refs.crud2.dicInit();
         for (let row of this.mktSlotQuotationList) {

+ 1 - 0
src/views/iosBasicData/businessCenter/mkt&slot/index.vue

@@ -192,6 +192,7 @@ export default {
     },
     activated() {
         setTimeout(() => {
+                  this.$refs.crud.doLayout();
         }, 100);
     },
     methods: {

+ 2 - 2
src/views/iosBasicData/costcenter/coc/detailsPage.vue

@@ -122,9 +122,9 @@
                         <el-button type="danger" plain size="small"
                             :disabled="editDisabled || selectionList.length == 0"
                             @click="allClick('批量删除')">批量删除</el-button>
-                        <el-button v-if="form.status != '录入'" type="success" plain size="small"
+                        <el-button type="success" plain size="small"
                             :disabled="selectionList.length == 0" @click="allClick('批量禁用')">批量禁用</el-button>
-                        <el-button v-if="form.status != '录入'" type="danger" plain size="small"
+                        <el-button type="danger" plain size="small"
                             :disabled="selectionList.length == 0" @click="allClick('批量撤销禁用')">批量撤销禁用</el-button>
                     </template>
                     <template slot="indexHeader" slot-scope="{row,index}">

+ 2 - 4
src/views/iosBasicData/costcenter/soc/detailsPage.vue

@@ -176,11 +176,9 @@
                                 <el-button type="danger" plain size="small"
                                     :disabled="editDisabled || selectionList.length == 0"
                                     @click="allClick('批量删除')">批量删除</el-button>
-                                <el-button v-if="form.status!='录入'" type="success" plain size="small"
-                                    :disabled="selectionList.length == 0"
+                                <el-button type="success" plain size="small" :disabled="selectionList.length == 0"
                                     @click="allClick('批量禁用')">批量禁用</el-button>
-                                <el-button v-if="form.status!='录入'" type="danger" plain size="small"
-                                    :disabled="selectionList.length == 0"
+                                <el-button type="danger" plain size="small" :disabled="selectionList.length == 0"
                                     @click="allClick('批量撤销禁用')">批量撤销禁用</el-button>
                             </template>
                             <template slot="indexHeader" slot-scope="{row,index}">

+ 30 - 18
src/views/iosBasicData/loloTemplate/feesTemplateItems.vue

@@ -819,9 +819,19 @@ export default {
         copyItem(index, row) {
             let item = this.deepClone(row)
             item.id = null;
-            item.pid = null;
-            this.feestemplateForm = item
-            this.feestemplateVisible = true
+            item.sonItemsList.forEach(e => {
+                delete e.id
+                delete e.createUser
+                delete e.createUserName
+                delete e.createTime
+                delete e.updateUser
+                delete e.updateUserName
+                delete e.updateTime
+            })
+            this.form.feesTemplateItemsList.push({ ...item, $cellEdit: true })
+            // item.pid = null;
+            // this.feestemplateForm = item
+            // this.feestemplateVisible = true
             // this.form.feesTemplateItemsList.push(item)
         },
         getCopyTemplate(id) {
@@ -1014,25 +1024,27 @@ export default {
                 done();
                 if (valid) {
                     this.form.feesTemplateItemsList = [...this.feeDList, ...this.feeCList]
-                    let ids = []
-                    for (let item of this.form.feesTemplateItemsList) {
-                        if (item.quantityRule != '按箱型') {
-                            if (item.sonItemsList.length) {
-                                for (let row of item.sonItemsList) {
-                                    if (row.id) {
-                                        ids.push(row.id)
+                    if (this.form.feesTemplateItemsList && this.form.feesTemplateItemsList.length) {
+                        let ids = []
+                        for (let item of this.form.feesTemplateItemsList) {
+                            if (item.quantityRule != '按箱型') {
+                                if (item.sonItemsList.length) {
+                                    for (let row of item.sonItemsList) {
+                                        if (row.id) {
+                                            ids.push(row.id)
+                                        }
                                     }
                                 }
                             }
                         }
-                    }
-                    if (ids.length) {
-                        this.form.feesTemplateItemsList.forEach(item => {
-                            if (item.quantityRule != '按箱型') {
-                                item.sonItemsList = []
-                            }
-                        })
-                        remove({ ids: ids.join(',') })
+                        if (ids.length) {
+                            this.form.feesTemplateItemsList.forEach(item => {
+                                if (item.quantityRule != '按箱型') {
+                                    item.sonItemsList = []
+                                }
+                            })
+                            remove({ ids: ids.join(',') })
+                        }
                     }
                     this.losbfeestemplateSubmitfun()
                 } else {

+ 29 - 18
src/views/iosBasicData/losbfeestemplate/feesTemplateItems.vue

@@ -43,7 +43,6 @@
                 </avue-form>
             </basic-container>
         </div>
-
         <div class="customer-main margintop">
             <containerTitle title="费用详情"></containerTitle>
             <basic-container>
@@ -691,7 +690,8 @@ export default {
                 businessTypeId: this.detailData.businessTypeId,
                 businessTypeCnName: this.detailData.businessTypeCnName,
                 businessTypeEnName: this.detailData.businessTypeEnName,
-                businessTypeCode: this.detailData.businessTypeCode
+                businessTypeCode: this.detailData.businessTypeCode,
+                feesTemplateItemsList: []
             }
             if (this.detailData.businessTypeCnName == '成本中心模板(POL)' || this.detailData.businessTypeCnName == '账单模版(POL)') {
                 this.basicData.column.forEach(item => {
@@ -865,10 +865,19 @@ export default {
         copyItem(index, row) {
             let item = this.deepClone(row)
             item.id = null;
+            item.sonItemsList.forEach(e => {
+                delete e.id
+                delete e.createUser
+                delete e.createUserName
+                delete e.createTime
+                delete e.updateUser
+                delete e.updateUserName
+                delete e.updateTime
+            })
+            this.form.feesTemplateItemsList.push({ ...item, $cellEdit: true })
             // item.pid = null;
             // this.feestemplateForm = item
             // this.feestemplateVisible = true
-            this.form.feesTemplateItemsList.push(item)
         },
         getCopyTemplate(id) {
             this.pageLoading = true
@@ -1092,25 +1101,27 @@ export default {
             this.$refs["form"].validate((valid, done) => {
                 done();
                 if (valid) {
-                    let ids = []
-                    for (let item of this.form.feesTemplateItemsList) {
-                        if (item.quantityRule != '按箱型') {
-                            if (item.sonItemsList.length) {
-                                for (let row of item.sonItemsList) {
-                                    if (row.id) {
-                                        ids.push(row.id)
+                    if (this.form.feesTemplateItemsList && this.form.feesTemplateItemsList.length) {
+                        let ids = []
+                        for (let item of this.form.feesTemplateItemsList) {
+                            if (item.quantityRule != '按箱型') {
+                                if (item.sonItemsList.length) {
+                                    for (let row of item.sonItemsList) {
+                                        if (row.id) {
+                                            ids.push(row.id)
+                                        }
                                     }
                                 }
                             }
                         }
-                    }
-                    if (ids.length) {
-                        this.form.feesTemplateItemsList.forEach(item=>{
-                            if(item.quantityRule != '按箱型'){
-                                item.sonItemsList=[]
-                            }
-                        })
-                        remove({ ids: ids.join(',') })
+                        if (ids.length) {
+                            this.form.feesTemplateItemsList.forEach(item => {
+                                if (item.quantityRule != '按箱型') {
+                                    item.sonItemsList = []
+                                }
+                            })
+                            remove({ ids: ids.join(',') })
+                        }
                     }
                     this.losbfeestemplateSubmitfun()
                 } else {

+ 30 - 1
src/views/iosBasicData/overdueFee/detailsPage.vue

@@ -25,6 +25,12 @@
               @selectChange="dicChange('branchName', $event)"
               :disabled="editDisabled || !(roleName.includes('admin') || roleName.includes('总部'))"></dic-select>
           </tempalte>
+          <tempalte slot="portCname">
+            <dic-select v-model="form.portCname" placeholder="港口" label="code" url="/blade-los/bports/listAll?status=0"
+              :filterable="true" :multiple="true" :collapseTags="true" dataType="string"
+              @selectChange="dicChange('portCname', $event)" :disabled="editDisabled || form.whetherEnable == '是'"
+              :slotRight="true" rightLabel="code"></dic-select>
+          </tempalte>
         </avue-form>
       </trade-card>
       <trade-card title="基础明细">
@@ -114,11 +120,21 @@ export default {
             }],
           },
           {
+            label: '港口',
+            prop: 'portCname',
+            disabled: false,
+            rules: [{
+              required: true,
+              message: " ",
+              trigger: "blur"
+            }],
+          },
+          {
             label: '备注',
             prop: 'remarks',
             type: 'textarea',
             minRows: 2,
-            span: 12
+            span: 6
           }]
       },
       optionForm2: {
@@ -336,6 +352,19 @@ export default {
           this.form.branchName = null
         }
       }
+      if (name == 'portCname') {
+        if (row) {
+          this.form.portId = row.ids
+          this.form.portCode = row.names
+          this.form.portEname = row.names
+          this.form.portCname = row.names
+        } else {
+          this.form.portId = null
+          this.form.portCode = null
+          this.form.portEname = null
+          this.form.portCname = null
+        }
+      }
     },
     rowEdit(row) {
       if (row.$cellEdit == true) {

+ 279 - 0
src/views/iosBasicData/podStation/index.vue

@@ -0,0 +1,279 @@
+<template>
+  <div>
+    <basic-container>
+      <avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" :search.sync="query"
+        v-model="form" id="out-table" :header-cell-class-name="headerClassName" ref="crud" @row-del="rowDel"
+        @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
+        @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange"
+        @resetColumn="resetColumn('crud', 'option', 'optionBack', 500)"
+        @saveColumn="saveColumn('crud', 'option', 'optionBack', 500)" @on-load="onLoad">
+        <template slot="menuLeft">
+
+        </template>
+        <template slot="menu" slot-scope="{ row, index }">
+          <el-button size="small" icon="el-icon-edit" type="text" @click="rowEdit(row)">编辑</el-button>
+          <el-button size="small" icon="el-icon-delete" type="text" @click="rowDel(row, index)"
+            :disabled="row.count > 0">删 除</el-button>
+        </template>
+        <template slot="sysNo" slot-scope="{ row }">
+          <span style="color: #1e9fff;cursor: pointer;" @click="rowEdit(row)">{{ row.sysNo }}</span>
+        </template>
+      </avue-crud>
+    </basic-container>
+  </div>
+</template>
+
+<script>
+import { getList, remove } from "@/api/iosBasicData/overdueFee.js";
+export default {
+  data() {
+    return {
+      form: {},
+      query: {},
+      loading: false,
+      page: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0
+      },
+      selectionList: [],
+      option: {},
+      optionBack: {
+        height: 'auto',
+        calcHeight: 30,
+        menuWidth: 140,
+        tip: false,
+        searchShow: true,
+        searchMenuSpan: 18,
+        border: true,
+        index: true,
+        addBtn: false,
+        viewBtn: false,
+        editBtn: false,
+        delBtn: false,
+        selection: true,
+        searchIcon: true,
+        align: 'center',
+        searchIndex: 3,
+        column: [
+          {
+            label: '客户',
+            prop: 'branchName',
+            overHidden: true,
+          },
+          {
+            label: 'MB/L NO',
+            prop: 'type',
+            overHidden: true,
+          },
+          {
+            label: 'HB/L NO',
+            prop: 'type',
+            overHidden: true,
+          },
+          {
+            label: '船名',
+            prop: 'type',
+            overHidden: true,
+          },
+          {
+            label: '航次',
+            prop: 'type',
+            overHidden: true,
+          },
+          {
+            label: '起运港',
+            prop: 'type',
+            overHidden: true,
+          },
+          {
+            label: '起运港',
+            prop: 'type',
+            overHidden: true,
+          },
+          {
+            label: '卸货港',
+            prop: 'type',
+            overHidden: true,
+          },
+          {
+            label: '放箱号',
+            prop: 'type',
+            overHidden: true,
+          },
+          {
+            label: '箱属',
+            prop: 'type',
+            overHidden: true,
+          },
+          {
+            label: '箱号',
+            prop: 'type',
+            overHidden: true,
+          },
+          {
+            label: '箱型',
+            prop: 'type',
+            overHidden: true,
+          },
+          {
+            label: 'POD场站',
+            prop: 'type',
+            overHidden: true,
+          },
+          {
+            label: "制单人",
+            prop: "createUserName",
+            overHidden: true,
+          }, {
+            label: "制单日期",
+            prop: "createTime",
+            type: "date",
+            overHidden: true,
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd HH:mm:ss"
+          }, {
+            label: "修改人",
+            prop: "updateUserName",
+            overHidden: true,
+          }, {
+            label: "修改日期",
+            prop: "updateTime",
+            type: "date",
+            overHidden: true,
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd HH:mm:ss"
+          }
+        ]
+      },
+      data: [],
+    };
+  },
+  async created() {
+    this.option = await this.getColumnData(this.getColumnName(500), this.optionBack);
+  },
+  activated() {
+    setTimeout(() => {
+    }, 100);
+  },
+  methods: {
+    // 删除
+    rowDel(row, index) {
+      if (row.item == 1) {
+        return this.$message.error("存在明细不允许删除");
+      }
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        remove({ ids: row.id }).then(res => {
+          this.onLoad(this.page, this.query);
+          this.$message.success("成功删除");
+        })
+      })
+
+    },
+    searchReset() {
+      this.query = this.$options.data().query;
+      this.onLoad(this.page);
+    },
+    // 搜索按钮点击
+    searchChange(params, done) {
+      this.page.currentPage = 1;
+      this.onLoad(this.page, this.query);
+      done();
+    },
+    selectionChange(list) {
+      this.selectionList = list;
+    },
+    currentChange(currentPage) {
+      this.page.currentPage = currentPage;
+    },
+    sizeChange(pageSize) {
+      this.page.pageSize = pageSize;
+    },
+    refreshChange() {
+      this.onLoad(this.page, this.query);
+    },
+    onLoad(page, params = {}) {
+      let obj = {}
+      obj = {
+        ...Object.assign(params, this.query),
+      }
+      this.loading = true;
+      getList(page.currentPage, page.pageSize, obj).then(res => {
+        this.data = res.data.data.records;
+        this.page.total = res.data.data.total;
+        this.$nextTick(() => {
+          this.$refs.crud.doLayout();
+          this.$refs.crud.dicInit();
+        });
+      }).finally(() => {
+        this.loading = false;
+      })
+    },
+    //自定义列保存
+    async saveColumn(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;
+        this.selectionList = []
+        this.searchReset()
+      }
+    },
+    //自定义列重置
+    async resetColumn(ref, option, optionBack, code) {
+      this[option] = this[optionBack];
+      const inSave = await this.delColumnData(this.getColumnName(code), this[optionBack]);
+      if (inSave) {
+        this.$message.success("重置成功");
+        this.$refs[ref].$refs.dialogColumn.columnBox = false;
+      }
+    },
+    // 更改表格颜色
+    headerClassName(tab) {
+      //颜色间隔
+      let back = ""
+      if (tab.columnIndex >= 0 && tab.column.level === 1) {
+        if (tab.columnIndex % 2 === 0) {
+          back = "back-one"
+        } else if (tab.columnIndex % 2 === 1) {
+          back = "back-two"
+        }
+      }
+      return back;
+    },
+
+  }
+}
+
+</script>
+
+<style lang="scss" scoped>
+::v-deep #out-table .back-one {
+  background: #ecf5ff !important;
+  text-align: center;
+}
+
+::v-deep #out-table .back-two {
+  background: #ecf5ff !important;
+  text-align: center;
+}
+
+.pointerClick {
+  cursor: pointer;
+  color: #1e9fff;
+}
+
+::v-deep .el-col-md-8 {
+  width: 24.33333%;
+}
+</style>

+ 27 - 16
src/views/iosBasicData/podTemplate/feesTemplateItems.vue

@@ -731,7 +731,16 @@ export default {
             // item.pid = null;
             // this.feestemplateForm = item
             // this.feestemplateVisible = true
-            this.form.feesTemplateItemsList.push(item)
+            item.sonItemsList.forEach(e => {
+                delete e.id
+                delete e.createUser
+                delete e.createUserName
+                delete e.createTime
+                delete e.updateUser
+                delete e.updateUserName
+                delete e.updateTime
+            })
+            this.form.feesTemplateItemsList.push({ ...item, $cellEdit: true })
         },
         getCopyTemplate(id) {
             this.pageLoading = true
@@ -920,25 +929,27 @@ export default {
             this.$refs["form"].validate((valid, done) => {
                 done();
                 if (valid) {
-                    let ids = []
-                    for (let item of this.form.feesTemplateItemsList) {
-                        if (item.quantityRule != '按箱型') {
-                            if (item.sonItemsList.length) {
-                                for (let row of item.sonItemsList) {
-                                    if (row.id) {
-                                        ids.push(row.id)
+                    if (this.form.feesTemplateItemsList && this.form.feesTemplateItemsList.length) {
+                        let ids = []
+                        for (let item of this.form.feesTemplateItemsList) {
+                            if (item.quantityRule != '按箱型') {
+                                if (item.sonItemsList.length) {
+                                    for (let row of item.sonItemsList) {
+                                        if (row.id) {
+                                            ids.push(row.id)
+                                        }
                                     }
                                 }
                             }
                         }
-                    }
-                    if (ids.length) {
-                        this.form.feesTemplateItemsList.forEach(item => {
-                            if (item.quantityRule != '按箱型') {
-                                item.sonItemsList = []
-                            }
-                        })
-                        remove({ ids: ids.join(',') })
+                        if (ids.length) {
+                            this.form.feesTemplateItemsList.forEach(item => {
+                                if (item.quantityRule != '按箱型') {
+                                    item.sonItemsList = []
+                                }
+                            })
+                            remove({ ids: ids.join(',') })
+                        }
                     }
                     this.losbfeestemplateSubmitfun()
                 } else {

+ 28 - 16
src/views/iosBasicData/polTemplate/feesTemplateItems.vue

@@ -757,7 +757,16 @@ export default {
             // item.pid = null;
             // this.feestemplateForm = item
             // this.feestemplateVisible = true
-            this.form.feesTemplateItemsList.push(item)
+            item.sonItemsList.forEach(e => {
+                delete e.id
+                delete e.createUser
+                delete e.createUserName
+                delete e.createTime
+                delete e.updateUser
+                delete e.updateUserName
+                delete e.updateTime
+            })
+            this.form.feesTemplateItemsList.push({ ...item, $cellEdit: true })
         },
         getCopyTemplate(id) {
             this.pageLoading = true
@@ -946,26 +955,29 @@ export default {
             this.$refs["form"].validate((valid, done) => {
                 done();
                 if (valid) {
-                    let ids = []
-                    for (let item of this.form.feesTemplateItemsList) {
-                        if (item.quantityRule != '按箱型') {
-                            if (item.sonItemsList.length) {
-                                for (let row of item.sonItemsList) {
-                                    if (row.id) {
-                                        ids.push(row.id)
+                    if (this.form.feesTemplateItemsList && this.form.feesTemplateItemsList.length) {
+                        let ids = []
+                        for (let item of this.form.feesTemplateItemsList) {
+                            if (item.quantityRule != '按箱型') {
+                                if (item.sonItemsList.length) {
+                                    for (let row of item.sonItemsList) {
+                                        if (row.id) {
+                                            ids.push(row.id)
+                                        }
                                     }
                                 }
                             }
                         }
+                        if (ids.length) {
+                            this.form.feesTemplateItemsList.forEach(item => {
+                                if (item.quantityRule != '按箱型') {
+                                    item.sonItemsList = []
+                                }
+                            })
+                            remove({ ids: ids.join(',') })
+                        }
                     }
-                    if (ids.length) {
-                        this.form.feesTemplateItemsList.forEach(item => {
-                            if (item.quantityRule != '按箱型') {
-                                item.sonItemsList = []
-                            }
-                        })
-                        remove({ ids: ids.join(',') })
-                    }
+
                     this.losbfeestemplateSubmitfun()
                 } else {
                     return false;

+ 68 - 62
src/views/ow/owPut/detailsPage.vue

@@ -222,27 +222,23 @@
                   <i class="el-icon-coin"></i>
                   <span>应收费用</span>
                 </div>
-                <el-button type="info" plain size="small" :disabled="editDisabled"
-                  @click="allClick('D费用一键保存')">一键保存</el-button>
-                <el-button type="info" plain size="small" :disabled="editDisabled"
-                  @click="allClick('D费用一键编辑')">一键编辑</el-button>
-                <el-button type="danger" plain size="small" :disabled="editDisabled || selectionfeedList.length == 0"
+                <el-button type="info" plain size="small" @click="allClick('D费用一键保存')">一键保存</el-button>
+                <el-button type="info" plain size="small" @click="allClick('D费用一键编辑')">一键编辑</el-button>
+                <el-button type="danger" plain size="small" :disabled="selectionfeedList.length == 0"
                   @click="allClick('D费用批量删除')">批量删除</el-button>
                 <el-button type="success" plain size="small" @click="allClick('生成租金')"
-                  :disabled="editDisabled || form.tradingBoxItemsList.length == 0">生成租金</el-button>
+                  :disabled="form.tradingBoxItemsList.length == 0">生成租金</el-button>
                 <el-button type="danger" plain size="small" @click="allClick('撤销租金')"
-                  :disabled="editDisabled || form.tradingBoxItemsList.length == 0">撤销租金</el-button>
+                  :disabled="form.tradingBoxItemsList.length == 0">撤销租金</el-button>
                 <el-button type="primary" plain size="small"
-                  :disabled="editDisabled || (selectionfeedList.length == 0 && selectionfeecList.length == 0)"
+                  :disabled="(selectionfeedList.length == 0 && selectionfeecList.length == 0)"
                   @click="allClick('D费用申请')">请核费用</el-button>
                 <!-- <el-button type="primary" plain size="small" :disabled="editDisabled">计算超期箱使费</el-button> -->
-                <el-button type="warning" plain size="small" :disabled="editDisabled"
-                  @click="allClick('批量导入费用')">批量导入费用</el-button>
+                <el-button type="warning" plain size="small" @click="allClick('批量导入费用')">批量导入费用</el-button>
                 <!-- <el-button type="primary" plain size="small" @click="$refs.printC.openDialog()">打印账单</el-button> -->
               </template>
               <template slot="indexHeader" slot-scope="{row,index}">
-                <el-button type="primary" size="mini" icon="el-icon-plus" :disabled="editDisabled" circle
-                  @click="feedAddRow()">
+                <el-button type="primary" size="mini" icon="el-icon-plus" circle @click="feedAddRow()">
                 </el-button>
               </template>
               <template slot="index" slot-scope="{row,index}">
@@ -324,19 +320,16 @@
                   <i class="el-icon-coin"></i>
                   <span>应付费用</span>
                 </div>
-                <el-button type="info" plain size="small" :disabled="editDisabled"
-                  @click="allClick('C费用一键保存')">一键保存</el-button>
-                <el-button type="info" plain size="small" :disabled="editDisabled"
-                  @click="allClick('C费用一键编辑')">一键编辑</el-button>
-                <el-button type="danger" plain size="small" :disabled="editDisabled || selectionfeecList.length == 0"
+                <el-button type="info" plain size="small" @click="allClick('C费用一键保存')">一键保存</el-button>
+                <el-button type="info" plain size="small" @click="allClick('C费用一键编辑')">一键编辑</el-button>
+                <el-button type="danger" plain size="small" :disabled="selectionfeecList.length == 0"
                   @click="allClick('C费用批量删除')">批量删除</el-button>
                 <!-- <el-button type="primary" plain size="small" :disabled="editDisabled || selectionfeecList.length == 0"
                   @click="allClick('C费用申请')">请核费用</el-button> -->
                 <!-- <el-button type="primary" plain size="small" @click="$refs.printC.openDialog()">打印账单</el-button> -->
               </template>
               <template slot="indexHeader" slot-scope="{row,index}">
-                <el-button type="primary" size="mini" icon="el-icon-plus" :disabled="editDisabled" circle
-                  @click="feecAddRow()">
+                <el-button type="primary" size="mini" icon="el-icon-plus" circle @click="feecAddRow()">
                 </el-button>
               </template>
               <template slot="index" slot-scope="{row,index}">
@@ -810,49 +803,49 @@ export default {
           prop: 'podStationCname',
           disabled: false
         },
-            {
-            label: '箱型',
-            prop: 'boxTypeQuantityOne',
-            disabled: false,
-            span: 5,
-            rules: [{
-              required: true,
-              message: "",
-              trigger: "blur"
-            }]
-          },
-          {
-            label: '箱量',
-            prop: 'boxNumber',
-            disabled: false,
-            span: 5,
-            rules: [{
-              required: true,
-              message: "",
-              trigger: "blur"
-            }]
-          },
-          {
-            label: '已提箱',
-            prop: 'suitcaseNum',
-            span: 5,
-            disabled: true,
-          },
-          {
-            label: '未提箱',
-            prop: 'notSuitcaseNum',
-            span: 5,
-            disabled: true,
-          },
-          {
-            label: '启用日期',
-            prop: 'activationDate',
-            type: "date",
-            format: "yyyy-MM-dd",
-            valueFormat: "yyyy-MM-dd HH:mm:ss",
-            span: 4,
-            disabled: true,
-          },
+        {
+          label: '箱型',
+          prop: 'boxTypeQuantityOne',
+          disabled: false,
+          span: 5,
+          rules: [{
+            required: true,
+            message: "",
+            trigger: "blur"
+          }]
+        },
+        {
+          label: '箱量',
+          prop: 'boxNumber',
+          disabled: false,
+          span: 5,
+          rules: [{
+            required: true,
+            message: "",
+            trigger: "blur"
+          }]
+        },
+        {
+          label: '已提箱',
+          prop: 'suitcaseNum',
+          span: 5,
+          disabled: true,
+        },
+        {
+          label: '未提箱',
+          prop: 'notSuitcaseNum',
+          span: 5,
+          disabled: true,
+        },
+        {
+          label: '启用日期',
+          prop: 'activationDate',
+          type: "date",
+          format: "yyyy-MM-dd",
+          valueFormat: "yyyy-MM-dd HH:mm:ss",
+          span: 4,
+          disabled: true,
+        },
         {
           label: '有效日期起',
           prop: 'effectiveDate',
@@ -1047,6 +1040,15 @@ export default {
           }]
         },
         {
+          label: '账单日',
+          prop: 'rentEndDate',
+          width: 100,
+          type: "date",
+          format: "yyyy-MM-dd",
+          valueFormat: "yyyy-MM-dd HH:mm:ss",
+          overHidden: true,
+        },
+        {
           label: '箱型',
           prop: 'boxType',
           width: 100,
@@ -2571,6 +2573,10 @@ export default {
             row.amountUSD = row.amount
             row.amountCNY = 0
           }
+          if (row.auditStatus > 0) {
+            this.editDisabled = true
+            this.optionForm.disabled = true
+          }
         })
         this.feeCenterListD = res.data.data.feeCenterList.filter(item => item.dc == "D")
         this.feeCenterListC = res.data.data.feeCenterList.filter(item => item.dc == "C")

+ 17 - 20
src/views/ow/owTask/detailsPage.vue

@@ -225,27 +225,23 @@
                   <i class="el-icon-coin"></i>
                   <span>应收费用</span>
                 </div>
-                <el-button type="info" plain size="small" :disabled="editDisabled"
-                  @click="allClick('D费用一键保存')">一键保存</el-button>
-                <el-button type="info" plain size="small" :disabled="editDisabled"
-                  @click="allClick('D费用一键编辑')">一键编辑</el-button>
-                <el-button type="danger" plain size="small" :disabled="editDisabled || selectionfeedList.length == 0"
+                <el-button type="info" plain size="small" @click="allClick('D费用一键保存')">一键保存</el-button>
+                <el-button type="info" plain size="small" @click="allClick('D费用一键编辑')">一键编辑</el-button>
+                <el-button type="danger" plain size="small" :disabled="selectionfeedList.length == 0"
                   @click="allClick('D费用批量删除')">批量删除</el-button>
                 <el-button type="success" plain size="small" @click="allClick('生成租金')"
-                  :disabled="editDisabled || form.tradingBoxItemsList.length == 0">生成租金</el-button>
+                  :disabled="form.tradingBoxItemsList.length == 0">生成租金</el-button>
                 <el-button type="danger" plain size="small" @click="allClick('撤销租金')"
-                  :disabled="editDisabled || form.tradingBoxItemsList.length == 0">撤销租金</el-button>
+                  :disabled="form.tradingBoxItemsList.length == 0">撤销租金</el-button>
                 <!-- <el-button type="primary" plain size="small" :disabled="editDisabled">计算超期箱使费</el-button> -->
-                <el-button type="warning" plain size="small" :disabled="editDisabled"
-                  @click="allClick('批量导入费用')">批量导入费用</el-button>
+                <el-button type="warning" plain size="small" @click="allClick('批量导入费用')">批量导入费用</el-button>
                 <el-button type="primary" plain size="small"
-                  :disabled="editDisabled || (selectionfeedList.length == 0 && selectionfeecList.length == 0)"
+                  :disabled="(selectionfeedList.length == 0 && selectionfeecList.length == 0)"
                   @click="allClick('D费用申请')">请核费用</el-button>
                 <!-- <el-button type="primary" plain size="small" @click="$refs.printC.openDialog()">打印账单</el-button> -->
               </template>
               <template slot="indexHeader" slot-scope="{row,index}">
-                <el-button type="primary" size="mini" icon="el-icon-plus" :disabled="editDisabled" circle
-                  @click="feedAddRow()">
+                <el-button type="primary" size="mini" icon="el-icon-plus" circle @click="feedAddRow()">
                 </el-button>
               </template>
               <template slot="index" slot-scope="{row,index}">
@@ -327,19 +323,16 @@
                   <i class="el-icon-coin"></i>
                   <span>应付费用</span>
                 </div>
-                <el-button type="info" plain size="small" :disabled="editDisabled"
-                  @click="allClick('C费用一键保存')">一键保存</el-button>
-                <el-button type="info" plain size="small" :disabled="editDisabled"
-                  @click="allClick('C费用一键编辑')">一键编辑</el-button>
-                <el-button type="danger" plain size="small" :disabled="editDisabled || selectionfeecList.length == 0"
+                <el-button type="info" plain size="small" @click="allClick('C费用一键保存')">一键保存</el-button>
+                <el-button type="info" plain size="small" @click="allClick('C费用一键编辑')">一键编辑</el-button>
+                <el-button type="danger" plain size="small" :disabled="selectionfeecList.length == 0"
                   @click="allClick('C费用批量删除')">批量删除</el-button>
                 <!-- <el-button type="primary" plain size="small" :disabled="editDisabled || selectionfeecList.length == 0"
                   @click="allClick('C费用申请')">请核费用</el-button> -->
                 <!-- <el-button type="primary" plain size="small" @click="$refs.printC.openDialog()">打印账单</el-button> -->
               </template>
               <template slot="indexHeader" slot-scope="{row,index}">
-                <el-button type="primary" size="mini" icon="el-icon-plus" :disabled="editDisabled" circle
-                  @click="feecAddRow()">
+                <el-button type="primary" size="mini" icon="el-icon-plus" circle @click="feecAddRow()">
                 </el-button>
               </template>
               <template slot="index" slot-scope="{row,index}">
@@ -1036,7 +1029,7 @@ export default {
             }]
           },
           {
-            label: '租金截止日期',
+            label: '账单日',
             prop: 'rentEndDate',
             width: 100,
             type: "date",
@@ -2556,6 +2549,10 @@ export default {
             row.amountUSD = row.amount
             row.amountCNY = 0
           }
+          if (row.auditStatus > 0) {
+            this.editDisabled = true
+            this.optionForm.disabled = true
+          }
         })
         this.feeCenterListD = res.data.data.feeCenterList.filter(item => item.dc == "D")
         this.feeCenterListC = res.data.data.feeCenterList.filter(item => item.dc == "C")