Browse Source

1.箱档案调整,非OW箱允许编辑,并完善编辑组件
2.退租 退租箱数不允许编辑
3.放箱号 修改已出场合计规则
4.箱管调箱 导入加限制
5.箱管调箱,驳回后业务状态异常
6.发票申请 销项发票 修改汇率字段
7.提交SI修改 新加提单合计 分箱合计校验
8.箱轨迹 新加删除和回复接口 和状态检索条件
9. 箱好坏 统一修改字段和默认值
10.海运出口 新加同步主单到分单 同步分单信息
11.海运出口 超过截单日期 不限制配箱信息编辑
12.配箱信息 保存 不需要验证件数

qukaidi 4 days ago
parent
commit
5d01aab26d

+ 9 - 0
src/api/boxManagement/boxTrack/index.js

@@ -97,3 +97,12 @@ export function repealCancel(data) {
     data: data
   })
 }
+
+//修改轨迹状态
+export const updateTrajectoryStatus = (params) => {
+  return request({
+    url: '/api/blade-los/archivestrajectory/updateTrajectoryStatus',
+    method: 'get',
+    params: params
+  })
+}

+ 220 - 28
src/views/basicData/container/archives.vue

@@ -31,7 +31,6 @@
         <dic-select
           v-model="form.boxMakingCompany"
           placeholder="造箱公司"
-          key="id"
           label="cnName"
           res="records"
           url="/blade-los/bcorps/selectList?corpTypeName=箱东"
@@ -41,6 +40,92 @@
           @selectChange="dicChange('boxMakingCompany', $event)"
         ></dic-select>
       </tempalte>
+      <tempalte slot-scope="{ type, disabled }" slot="addressCnameForm">
+        <dic-select
+          v-model="form.addressCname"
+          placeholder="港口"
+          label="cnName"
+          res="records"
+          url="/blade-los/bports/list"
+          :filterable="true"
+          :remote="true"
+          dataName="cnName"
+          :disabled="disabled"
+          @selectChange="dicChange('addressCname', $event)"
+        ></dic-select>
+      </tempalte>
+      <tempalte slot-scope="{ type, disabled }" slot="stationCnameForm">
+        <dic-select
+          v-model="form.stationCname"
+          placeholder="场站"
+          label="cnName"
+          res="records"
+          url="/blade-los/bcorps/selectList?corpTypeName=场站&status=0"
+          :filterable="true"
+          :remote="true"
+          dataName="cnName"
+          :disabled="disabled"
+          @selectChange="dicChange('stationCname', $event)"
+        ></dic-select>
+      </tempalte>
+      <tempalte slot-scope="{ type, disabled }" slot="restrictedPortsNameForm">
+        <dic-select
+          v-model="form.restrictedPortsName"
+          placeholder="港口"
+          label="cnName"
+          url="/blade-los/bports/listAll?status=0"
+          :filterable="true"
+          :multiple="true"
+          :collapseTags="true"
+          dataType="string"
+          dataName="cnName"
+          :disabled="disabled"
+          @selectChange="dicChange('restrictedPortsName', $event)"
+        ></dic-select>
+      </tempalte>
+      <tempalte slot-scope="{ type, disabled }" slot="restrictingShippingCompaniesNameForm">
+        <dic-select
+          v-model="form.restrictingShippingCompaniesName"
+          placeholder="港口"
+          label="cnName"
+          url="blade-los/bcorps/listAll?status=0&corpTypeName=船公司"
+          :filterable="true"
+          :multiple="true"
+          :collapseTags="true"
+          dataType="string"
+          dataName="cnName"
+          :disabled="disabled"
+          @selectChange="dicChange('restrictingShippingCompaniesName', $event)"
+        ></dic-select>
+      </tempalte>
+      <tempalte slot-scope="{ type, disabled }" slot="leasingCompanyForm">
+        <dic-select
+          v-model="form.leasingCompany"
+          placeholder="租赁公司"
+          label="shortName"
+          res="records"
+          url="/blade-los/bcorps/selectList?status=0&corpTypeName=箱东"
+          :filterable="true"
+          :remote="true"
+          dataName="shortName"
+          :disabled="disabled"
+          @selectChange="dicChange('leasingCompany', $event)"
+        ></dic-select>
+      </tempalte>
+      <tempalte slot-scope="{ type, disabled }" slot="boxMakingCompanyForm">
+        <dic-select
+          v-model="form.boxMakingCompany"
+          placeholder="造箱公司"
+          label="shortName"
+          res="records"
+          url="/blade-los/bcorps/selectList?status=0&corpTypeName=箱东"
+          :filterable="true"
+          :remote="true"
+          dataName="shortName"
+          :disabled="disabled"
+          @selectChange="dicChange('boxMakingCompany', $event)"
+        ></dic-select>
+      </tempalte>
       <template slot-scope="{ type, size, row, index, disabled }" slot="code">
         <span class="el-button--text" style="cursor: pointer" @click="track(row)">{{ row.code }}</span>
       </template>
@@ -496,6 +581,12 @@ export default {
             prop: "boxBelongsTo",
             width: 100,
             overHidden: true,
+            type: "select",
+            dicUrl: "/api/blade-system/dict-biz/dictionary?code=boxBelongsTo",
+            props: {
+              label: "dictValue",
+              value: "dictValue"
+            },
             disabled: true
           },
           {
@@ -629,6 +720,8 @@ export default {
           {
             label: "空重(kg)",
             prop: "emptyWeight",
+            type: "number",
+            controls: false,
             width: 100,
             overHidden: true,
             disabled: false
@@ -636,12 +729,16 @@ export default {
           {
             label: "毛重(kg)",
             prop: "gorssWeight",
+            type: "number",
+            controls: false,
             width: 100,
             overHidden: true,
             disabled: false
           },
           {
             label: "皮重(kg)",
+            type: "number",
+            controls: false,
             prop: "tare",
             width: 100,
             overHidden: true,
@@ -650,6 +747,8 @@ export default {
           {
             label: "装载重量(kg)",
             prop: "loadingWeight",
+            type: "number",
+            controls: false,
             width: 100,
             overHidden: true,
             disabled: false
@@ -657,6 +756,8 @@ export default {
           {
             label: "容积(m³)",
             prop: "volume",
+            type: "number",
+            controls: false,
             overHidden: true,
             disabled: false,
             width: 100
@@ -722,6 +823,9 @@ export default {
           {
             label: "箱龄(月)",
             prop: "boxAge",
+            type: "number",
+            controls: false,
+            precision:0,
             overHidden: true,
             disabled: false,
             width: 100
@@ -783,35 +887,123 @@ export default {
           this.form.boxMakingCompany = null;
         }
       }
+      if (name == "stationCname") {
+        if (row) {
+          this.form.stationId = row.id;
+          this.form.stationCode = row.code;
+          this.form.stationEname = row.enName;
+        } else {
+          this.form.stationId = null;
+          this.form.stationCode = null;
+          this.form.stationEname = null;
+          this.form.stationCname = null;
+        }
+      }
+      if (name == "addressCname") {
+        if (row) {
+          this.form.addressId = row.id;
+          this.form.addressCode = row.code;
+          this.form.addressEname = row.enName;
+        } else {
+          this.form.addressId = null;
+          this.form.addressCode = null;
+          this.form.addressEname = null;
+          this.form.addressCname = null;
+        }
+      }
+      if (name == "restrictedPortsName") {
+        if (row) {
+          this.form.restrictedPortsIds = row.ids;
+          this.form.restrictedPortsName = row.names;
+        } else {
+          this.form.restrictedPortsIds = null;
+          this.form.restrictedPortsName = null;
+        }
+      }
+      if (name == "restrictingShippingCompaniesName") {
+        if (row) {
+          this.form.restrictingShippingCompaniesIds = row.ids;
+          this.form.restrictingShippingCompaniesName = row.names;
+        } else {
+          this.form.restrictingShippingCompaniesIds = null;
+          this.form.restrictingShippingCompaniesName = null;
+        }
+      }
+      if (name == "leasingCompany") {
+        if (row) {
+          this.form.leasingCompanyId = row.id;
+        } else {
+          this.form.leasingCompanyId = null;
+          this.form.leasingCompany = null;
+        }
+      }
+      if (name == "boxMakingCompany") {
+        if (row) {
+          this.form.boxMakingCompanyId = row.id;
+        } else {
+          this.form.boxMakingCompanyId = null;
+          this.form.boxMakingCompany = null;
+        }
+      }
     },
     rowEdit(row, index) {
-      // this.option.column.forEach(item => {
-      //   if (
-      //     item.prop == "code" ||
-      //     item.prop == "contractNo" ||
-      //     item.prop == "addressCname" ||
-      //     item.prop == "stationCname" ||
-      //     item.prop == "containerNumber" ||
-      //     item.prop == "containerNumber" ||
-      //     item.prop == "typeName" ||
-      //     item.prop == "newDate" ||
-      //     item.prop == "status" ||
-      //     item.prop == "boxBelongsTo" ||
-      //     item.prop == "containerNumberOw" ||
-      //     item.prop == "containerNumberTypeOw"||
-      //     item.prop == "restrictedPortsName"||
-      //     item.prop == "restrictingShippingCompaniesName"||
-      //     item.prop == "activationDate"||
-      //     item.prop == "leasingCompany"||
-      //     item.prop == "boxSource"||
-      //     item.prop == "boxStatus"||
-      //     item.prop == "leaseMethod"||
-      //     item.prop == "leaseCommencementDate"||
-      //     item.prop == "purchaseDate"
-      //   ) {
-      //     item.disabled = false;
-      //   }
-      // });
+      if (row.containerNumberType == "OW(放)" || row.containerNumberType == "OW(拿)") {
+        this.option.column.forEach(item => {
+          if (
+            item.prop == "code" ||
+            item.prop == "contractNo" ||
+            item.prop == "addressCname" ||
+            item.prop == "stationCname" ||
+            item.prop == "containerNumber" ||
+            item.prop == "containerNumber" ||
+            item.prop == "typeName" ||
+            item.prop == "newDate" ||
+            item.prop == "status" ||
+            item.prop == "boxBelongsTo" ||
+            item.prop == "containerNumberOw" ||
+            item.prop == "containerNumberTypeOw" ||
+            item.prop == "restrictedPortsName" ||
+            item.prop == "restrictingShippingCompaniesName" ||
+            item.prop == "activationDate" ||
+            item.prop == "leasingCompany" ||
+            item.prop == "boxSource" ||
+            item.prop == "boxStatus" ||
+            item.prop == "leaseMethod" ||
+            item.prop == "leaseCommencementDate" ||
+            item.prop == "purchaseDate"
+          ) {
+            item.disabled = true;
+          }
+        });
+      } else {
+        this.option.column.forEach(item => {
+          if (
+            item.prop == "code" ||
+            item.prop == "contractNo" ||
+            item.prop == "addressCname" ||
+            item.prop == "stationCname" ||
+            item.prop == "containerNumber" ||
+            item.prop == "containerNumber" ||
+            item.prop == "typeName" ||
+            item.prop == "newDate" ||
+            item.prop == "status" ||
+            item.prop == "boxBelongsTo" ||
+            item.prop == "containerNumberOw" ||
+            item.prop == "containerNumberTypeOw" ||
+            item.prop == "restrictedPortsName" ||
+            item.prop == "restrictingShippingCompaniesName" ||
+            item.prop == "activationDate" ||
+            item.prop == "leasingCompany" ||
+            item.prop == "boxSource" ||
+            item.prop == "boxStatus" ||
+            item.prop == "leaseMethod" ||
+            item.prop == "leaseCommencementDate" ||
+            item.prop == "purchaseDate"
+          ) {
+            item.disabled = false;
+          }
+        });
+      }
       this.$refs.crud.rowEdit(row, index);
     },
     // 箱轨迹里合同号跳转

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

@@ -2220,7 +2220,7 @@ export default {
         pid: this.form.id,
         boxBelongsTo: "SOC",
         boxCategory: "代理箱",
-        boxStatus: "好",
+        boxStatus: "好",
         boxCondition: this.form.boxCondition,
         stationId: this.form.stationId,
         stationCode: this.form.stationCode,

+ 2 - 2
src/views/boxManagement/boxAdjustment/detailsPage.vue

@@ -273,7 +273,7 @@
                   @click="allClick('批量删除')"
                   >批量删除</el-button
                 >
-                <el-button type="success" size="small" :disabled="!form.id" @click="allClick('导入')">导入</el-button>
+                <el-button type="success" size="small" :disabled="!form.id||editDisabled|| form.buxStaus == '已确认'" @click="allClick('导入')">导入</el-button>
                 <el-button size="small" style="margin-right: 8px" :disabled="!form.id || true" @click="$refs.print.openDialog()">打印报表 </el-button>
               </template>
               <template slot="indexHeader" slot-scope="{ row, index }">
@@ -2070,7 +2070,7 @@ export default {
         pid: this.form.id,
         boxBelongsTo: "SOC",
         boxCategory: "自有箱",
-        boxStatus: "好",
+        boxStatus: "好",
         boxCondition: "新",
         $cellEdit: true
       });

+ 5 - 0
src/views/boxManagement/boxAdjustment/index.vue

@@ -188,6 +188,7 @@ export default {
             label: "实际起运港场站",
             prop: "polStationCname",
             overHidden: true,
+            searchLabelWidth: 100,
             search: true,
             searchOrder: 5,
             type: "select",
@@ -285,6 +286,10 @@ export default {
               {
                 label: "已通过",
                 value: "3"
+              },
+              {
+                label: "驳回",
+                value: "4"
               }
             ]
           },

+ 6 - 6
src/views/boxManagement/boxCost/detailsPage.vue

@@ -3099,7 +3099,7 @@ export default {
         pid: this.form.id,
         boxBelongsTo: "SOC",
         boxCategory: "自有箱",
-        boxStatus: "好",
+        boxStatus: "好",
         boxCondition: this.form.boxCondition,
         stationId: this.form.stationId,
         stationCode: this.form.stationCode,
@@ -3313,11 +3313,11 @@ export default {
           });
       }
       if (name == "一键编辑") {
-        // for (let row of this.form.tradingBoxItemsList) {
-        //   if (row.whetherEnable != '是') {
-        //     this.$set(row, "$cellEdit", true);
-        //   }
-        // }
+        for (let row of this.form.tradingBoxItemsList) {
+          if (row.whetherEnable != '是') {
+            this.$set(row, "$cellEdit", true);
+          }
+        }
         this.$refs.crud.dicInit();
       }
       if (name == "批量删除") {

+ 1 - 1
src/views/boxManagement/boxExit/detailsPage.vue

@@ -2039,7 +2039,7 @@ export default {
         pid: this.form.id,
         boxBelongsTo: "SOC",
         boxCategory: "自有箱",
-        boxStatus: "好",
+        boxStatus: "好",
         boxCondition: "新",
         $cellEdit: true
       });

+ 36 - 22
src/views/boxManagement/boxTrack/index.vue

@@ -20,7 +20,8 @@
       >
         <template slot-scope="{ type, size, row, $index }" slot="menu">
           <!--          <el-button icon="el-icon-view" :size="size" :type="type" @click="$refs.crud.rowUpdate(row,$index)">编辑</el-button>-->
-          <el-button icon="el-icon-delete" :size="size" v-if="row.status == 0" :type="type" @click="$refs.crud.rowDel(row, $index)">删除 </el-button>
+          <el-button  size="small" v-if="row.trajectoryStatus == 0" type="text" @click="rowDel(row,index,1)" style="color:#F56C6C;">删除 </el-button>
+          <el-button  size="small" v-if="row.trajectoryStatus == 1" type="text" @click="rowDel(row,index,0)" style="color:#67C23A;">恢复 </el-button>
         </template>
       </avue-crud>
     </basic-container>
@@ -29,7 +30,7 @@
 </template>
 
 <script>
-import { getList, remove, update } from "@/api/boxManagement/boxTrack/index.js";
+import { getList, remove, update,updateTrajectoryStatus } from "@/api/boxManagement/boxTrack/index.js";
 import detailsPage from "./detailsPage";
 
 export default {
@@ -42,6 +43,7 @@ export default {
       detailsOpen: false,
       loading: false,
       search: {
+        trajectoryStatus:'0'
       },
       form: {},
       dataList: [],
@@ -56,8 +58,8 @@ export default {
       option: {},
       optionList: {
         viewBtn: false,
-        editBtn: true,
-        delBtn: true,
+        editBtn: false,
+        delBtn: false,
         addBtn: false,
         index: true,
         span: 6,
@@ -65,10 +67,10 @@ export default {
         height: "auto",
         searchMenuPosition: "right",
         align: "center",
-        menuWidth: 140,
-        menu: false,
+        menuWidth: 60,
+        menu: true,
         searchShow: true,
-        searchMenuSpan: 12,
+        searchMenuSpan: 6,
         searchIcon: true,
         searchIndex: 3,
         highlightCurrentRow: true,
@@ -282,7 +284,26 @@ export default {
             prop: "podBoxUseDays",
             width: 100,
             overHidden: true
-          }
+          },
+          {
+            label: "状态",
+            prop: "trajectoryStatus",
+            width:60,
+            search: true,
+            searchValue:'0',
+            type: "select",
+            dicData: [
+              {
+                label: "删除",
+                value: "1"
+              },
+              {
+                label: "正常",
+                value: "0"
+              }
+            ],
+            overHidden: true
+          },
         ]
       }
     };
@@ -329,21 +350,14 @@ export default {
         });
       });
     },
-    rowDel(form, index) {
-      this.$confirm("此操作将永久删除该行, 是否继续?", "提示", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning"
+    rowDel(row, index,type) {
+      let obj={
+        id:row.id,
+        type:type
+      }
+      updateTrajectoryStatus(obj).then(res=>{
+        this.refreshChange()
       })
-        .then(() => {
-          remove(form.id).then(res => {
-            this.$message({
-              type: "success",
-              message: "删除成功!"
-            });
-          });
-        })
-        .catch(() => {});
     },
     searchChange(params, done) {
       done();

+ 1 - 1
src/views/boxManagement/buyContainer/detailsPage.vue

@@ -1987,7 +1987,7 @@ export default {
         pid: this.form.id,
         boxBelongsTo: "SOC",
         boxCategory: "自有箱",
-        boxStatus: "好",
+        boxStatus: "好",
         boxCondition: this.form.boxCondition,
         stationId: this.form.stationId,
         stationCode: this.form.stationCode,

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

@@ -302,7 +302,16 @@
                 </el-button> -->
             <el-tag type="danger" style="margin-right: 6px;">总箱量:{{ form.putBoxItemsList.length || 0 }}</el-tag>
             <el-tag type="success"
-              >已出场:{{ form.putBoxItemsList.filter(item => item.boxDynamics == "空箱出场" || item.boxDynamics == "已返场").length || 0 }}</el-tag
+              >已出场:{{
+                form.putBoxItemsList.filter(
+                  item =>
+                    item.boxDynamics == "空箱出场" ||
+                    item.boxDynamics == "已返场" ||
+                    item.boxDynamics == "退租出场" ||
+                    item.boxDynamics == "直接退租出场" ||
+                    item.boxDynamics == "场内退租出场"
+                ).length || 0
+              }}</el-tag
             >
           </template>
           <template slot="indexHeader" slot-scope="{ row, index }">
@@ -1557,6 +1566,9 @@ export default {
           this.$refs.crud.rowCell(row, row.$index);
           return this.$message.error("请完善箱明细信息");
         }
+        if (this.form.putBoxItemsList.filter(item => item.boxCode == row.boxCode).length > 1) {
+          return this.$message.error("单据明细存在重复箱号");
+        }
         const loading = this.$loading({
           lock: true,
           text: "加载中",
@@ -1779,7 +1791,7 @@ export default {
         boxEastName: this.form.boxEastName,
         boxBelongsTo: this.form.boxBelongsTo,
         boxClass: this.form.boxClass,
-        boxStatus: "好",
+        boxStatus: "好",
         boxCondition: this.form.boxCondition,
         activationDate: this.form.purchaseDate,
         $cellEdit: true
@@ -1807,7 +1819,7 @@ export default {
         this.form.putBoxItemsList = this.form.putBoxItemsList.filter(item => boxNums.includes(item.boxCode));
       }
       if (!this.query.boxCode) {
-        this.searchReset()
+        this.searchReset();
       }
     },
     searchReset() {

+ 1 - 1
src/views/boxManagement/containerNumber/index.vue

@@ -287,7 +287,7 @@ export default {
             overHidden: true,
             search: true,
             searchOrder: 5,
-            searchLabelWidth: 130,
+            searchLabelWidth: 100,
             type: "select",
             filterable: true,
             remote: true,

+ 1 - 1
src/views/boxManagement/moveOut/detailsPage.vue

@@ -813,7 +813,7 @@ export default {
           {
             label: "退租箱数",
             prop: "abc",
-            disabled: false
+            disabled: true
           },
           {
             label: "备注",

+ 1 - 1
src/views/boxManagement/rentalBox/detailsPage.vue

@@ -2331,7 +2331,7 @@ export default {
         pid: this.form.id,
         boxBelongsTo: "SOC",
         boxCategory: "自有箱",
-        boxStatus: "好",
+        boxStatus: "好",
         boxCondition: this.form.boxCondition,
         stationId: this.form.stationId,
         stationCode: this.form.stationCode,

+ 21 - 0
src/views/iosBasicData/OceanFreightImport/bills/billsDetails.vue

@@ -80,6 +80,10 @@
         <!-- <el-button v-if="form.id && form.changeOrdersStatus == '已换单'" size="small" type="danger"
                     @click.stop="allClick('撤销换单')">{{ $t("sea118n.unChangeDoc") }}
                 </el-button> -->
+                
+        <el-button size="small" type="warning" :disabled="!form.id || showLock" v-if="form.billType == 'MM'" @click.stop="allClick('同步主单到分单')"
+          >{{ $t("btn118n.setInfoMMToMH") }}
+        </el-button>
         <el-button size="small" type="warning" :disabled="!form.id || showLock" v-if="form.billType == 'MM'" @click.stop="allClick('同步分单信息')"
           >{{ $t("btn118n.getInfoMMToMH") }}
         </el-button>
@@ -523,6 +527,7 @@ import {
   revokeChangeOrders,
   returningSecurityMoney,
   revokeReturningSecurityMoney,
+  synchronizeDataMM,
   synchronizeData,
   revokeLockOrder
 } from "@/api/iosBasicData/bills";
@@ -1455,6 +1460,22 @@ export default {
           });
         });
       }
+      
+      if (name == "同步主单到分单") {
+        this.$confirm("是否同步主单到分单?", "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(() => {
+          synchronizeDataMM({ billId: this.form.id }).then(res => {
+            this.$message({
+              type: "success",
+              message: "操作成功!"
+            });
+            this.billsDetailfun(this.form.id);
+          });
+        });
+      }
       if (name == "同步分单信息") {
         this.$confirm("是否同步分单信息?", "提示", {
           confirmButtonText: "确定",

+ 9 - 9
src/views/iosBasicData/SeafreightExportF/bills/assembly/DistributionBox/containers.vue

@@ -1235,15 +1235,15 @@ export default {
         if (this.assemblyForm.containersList.filter(e => e.cntrTypeCode == item.cntrTypeCode).length > item.quantity) {
           return this.$message.error(`${item.cntrTypeCode}箱量不能超过${item.quantity}条`);
         }
-        let qtySUM = 0;
-        for (let row of this.assemblyForm.containersList) {
-          if (item.cntrTypeCode == row.cntrTypeCode) {
-            qtySUM += Number(row.quantity);
-          }
-          if (qtySUM > item.number) {
-            return this.$message.error(`箱型:${item.cntrTypeCode}的总数量不能超过${item.number}`);
-          }
-        }
+        // let qtySUM = 0;
+        // for (let row of this.assemblyForm.containersList) {
+        //   if (item.cntrTypeCode == row.cntrTypeCode) {
+        //     qtySUM += Number(row.quantity);
+        //   }
+        //   if (qtySUM > item.number) {
+        //     return this.$message.error(`箱型:${item.cntrTypeCode}的总数量不能超过${item.number}`);
+        //   }
+        // }
       }
       this.$confirm("确定全部保存配箱?", {
         confirmButtonText: "确定",

+ 38 - 6
src/views/iosBasicData/SeafreightExportF/bills/assembly/billLading.vue

@@ -394,12 +394,44 @@ export default {
         });
     },
     submit() {
-      let qtySUM=0
-      let gwtSUM=0
-      let mrtSUM=0
-      // for(let item of this.form.containersList){
-
-      // }
+      let qtySUM = 0;
+      let gwtSUM = 0;
+      let mrtSUM = 0;
+      for (let item of this.form.containersList) {
+        qtySUM += Number(item.quantity ? item.quantity : 0);
+        gwtSUM += Number(item.grossWeight ? item.grossWeight : 0);
+        mrtSUM += Number(item.measurement ? item.measurement : 0);
+      }
+      if (qtySUM != this.form.quantity || gwtSUM != this.form.grossWeight || mrtSUM != this.form.measurement) {
+        this.$alert(
+          `<table border="1" align="center" style="width:100%;color:#F56C6C">
+          <tr>
+            <th align="center">合计名称</th>
+            <th align="center">件数</th>
+            <th align="center">毛重</th>
+            <th align="center">尺码</th>
+           </tr>
+           <tr>
+            <td align="center">提单合计</td>
+            <td align="center">${Number(this.form.quantity)}</td>
+            <td align="center">${Number(this.form.grossWeight)}</td>
+            <td align="center">${Number(this.form.measurement)}</td>
+           </tr>
+           <tr>
+            <td align="center">分箱合计</td>
+            <td align="center">${qtySUM}</td>
+            <td align="center">${gwtSUM}</td>
+            <td align="center">${mrtSUM}</td>
+           </tr>
+        </table>
+        <span style="color:#F56C6C">校验不相等,请检查!</span>`,
+          "提示",
+          {
+            dangerouslyUseHTMLString: true
+          }
+        );
+        return;
+      }
       let text = [];
       if (this.form.quantity != this.oldForm.quantity) {
         text.push("件数");

+ 9 - 10
src/views/iosBasicData/SeafreightExportF/bills/billsDetails.vue

@@ -387,7 +387,6 @@
                     :assemblyForm="form"
                     :detailData="detailData"
                     :showLock="showLock"
-                    :disabled="overTime"
                     :pleasereviewType="pleasereviewType"
                     @billsAddfun="billsAddfun"
                     @billsDetailfun="billsDetailfun(form.id)"
@@ -2854,15 +2853,15 @@ export default {
             if (this.form.containersList.filter(e => e.cntrTypeCode == item.cntrTypeCode).length > item.quantity) {
               return this.$message.error(`${item.cntrTypeCode}箱量不能超过${item.quantity}条`);
             }
-            let qtySUM = 0;
-            for (let row of this.form.containersList) {
-              if (item.cntrTypeCode == row.cntrTypeCode) {
-                qtySUM += Number(row.quantity);
-              }
-              if (qtySUM > item.number) {
-                return this.$message.error(`箱型:${item.cntrTypeCode}的总数量不能超过${item.number}`);
-              }
-            }
+            // let qtySUM = 0;
+            // for (let row of this.form.containersList) {
+            //   if (item.cntrTypeCode == row.cntrTypeCode) {
+            //     qtySUM += Number(row.quantity);
+            //   }
+            //   if (qtySUM > item.number) {
+            //     return this.$message.error(`箱型:${item.cntrTypeCode}的总数量不能超过${item.number}`);
+            //   }
+            // }
           }
           this.billsSubmitfun(status);
         }

+ 3 - 3
src/views/iosBasicData/businessCenter/customerBooking/detailsPage.vue

@@ -550,15 +550,15 @@
                   </el-row>
                   <el-row>
                     <el-col span="12">
-                      <el-form-item label="我司截单" prop="cyTrailerTime">
+                      <el-form-item label="截单日期" prop="cyTrailerTime">
                         <span slot="label">
-                          <span style="font-size: 12px;color: #FF0000;"> 我司截单</span>
+                          <span style="font-size: 12px;color: #FF0000;"> 截单日期</span>
                         </span>
                         <el-date-picker
                           class="error-style"
                           v-model="form.cyTrailerTime"
                           type="date"
-                          placeholder="请选择 我司截单"
+                          placeholder="请选择 截单日期"
                           :disabled="true"
                           size="small"
                           format="yyyy-MM-dd HH:mm:ss"

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

@@ -760,7 +760,7 @@ export default {
         boxEastName: this.form.boxEastName,
         boxBelongsTo: this.form.boxBelongsTo,
         boxClass: this.form.boxClass,
-        boxStatus: "好",
+        boxStatus: "好",
         boxCondition: this.form.boxCondition,
         activationDate: this.form.purchaseDate,
         $cellEdit: true

+ 1 - 1
src/views/iosBasicData/financialManagement/fininvoicesApplyfor/detailsPage.vue

@@ -629,7 +629,7 @@ export default {
           },
           {
             label: "汇率",
-            prop: "exrate",
+            prop: "currentExrate",
             width: 80,
             overHidden: true
           },

+ 1 - 1
src/views/iosBasicData/financialManagement/fininvoicesOutput/detailsPage.vue

@@ -612,7 +612,7 @@ export default {
           },
           {
             label: "汇率",
-            prop: "exrate",
+            prop: "currentExrate",
             width: 80,
             overHidden: true
           },

+ 5 - 0
src/views/ow/owTask/detailsPage.vue

@@ -4174,6 +4174,11 @@ export default {
           this.$refs.crud.rowCell(row, row.$index);
           return this.$message.error("请完善箱明细信息");
         }
+        if (row.code) {
+          if (this.form.tradingBoxItemsList.filter(item => item.code == row.code).length > 1) {
+            return this.$message.error("单据明细存在重复箱号");
+          }
+        }
         const loading = this.$loading({
           lock: true,
           text: "加载中",