فهرست منبع

1.海运进出口 费用修改 修改删除逻辑
2.财务管理 对账日期 付费日期 结算日期 去掉时分秒
3.新加 提单修改模块
4.ATD的限制规则挪到签单日期上
5.海运出口 选择放箱号时过滤大于0的占用允许保存

Qukatie 2 هفته پیش
والد
کامیت
0bad841f43

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

@@ -52,6 +52,8 @@
         <span v-else-if="scope.row.checkType == 'FY-SQSC'">费用申请删除</span>
         <span v-else-if="scope.row.checkType == 'YYFY'">营业费用</span>
         <span v-else-if="scope.row.checkType == 'CGDX'">箱管调箱</span>
+        <span v-else-if="scope.row.checkType == 'TDXG'">提单修改</span>
+        <span v-else>{{scope.row.checkType}}</span>
       </template>
       <template slot-scope="scope" slot="billNo">
         <span style="color: #1e9fff;cursor: pointer;" @click="billNoDetails(scope.row)">{{ scope.row.billNo }}</span>
@@ -184,6 +186,14 @@
           @click.stop="printWindowfun(scope.row, 'YYFY')"
           >审批
         </el-button>
+        <el-button
+          type="text"
+          size="small"
+          v-else-if="scope.row.checkType == 'TDXG'"
+          :disabled="scope.row.auditStatus != 'S'"
+          @click.stop="printWindowfun(scope.row, 'TDXG')"
+          >审批
+        </el-button>
         <el-button type="text" size="small" v-else :disabled="scope.row.auditStatus != 'S'" @click.stop="openCheck(scope.row)">审批 </el-button>
         <el-button type="text" size="small" @click.stop="openCheckSchedule(scope.row)">审批流程 </el-button>
       </template>
@@ -457,6 +467,13 @@ export default {
           classifyCode: "YYFY",
           groupCode: "YYFY"
         };
+      } else if (type == "TDXG") {
+        obj = {
+          billId: row.srcBillId,
+          businessType: "TDXG",
+          classifyCode: "业务",
+          groupCode: "提单修改"
+        };
       }
       getreportsList(1, 10, obj).then(res => {
         this.reportRadio(res.data.data.records[0], type);
@@ -632,7 +649,7 @@ export default {
     jumpPage(row) {
       console.log("row", row);
       if (row.url) {
-        if (this.verifyTags("海运出口(F)")) {
+        if (this.verifyTags(row.pageLabel)) {
           this.$router.push({
             path: row.url,
             query: {

+ 17 - 1
src/views/basicData/container/archives.vue

@@ -222,14 +222,30 @@ export default {
             label: "港口",
             prop: "portCname",
             overHidden: true,
+            // search: true,
+            // type: "select",
+            // filterable: true,
+            // remote: true,
+            // dicUrl: "/api/blade-los/bports/list?size=20&current=1&cnName={{key}}",
+            // props: {
+            //   label: "cnName",
+            //   value: "cnName",
+            //   res: "data.records"
+            // }
+          },
+          {
+            label: "港口",
+            prop: "portId",
+            overHidden: true,
             search: true,
             type: "select",
             filterable: true,
             remote: true,
+            hide:true,
             dicUrl: "/api/blade-los/bports/list?size=20&current=1&cnName={{key}}",
             props: {
               label: "cnName",
-              value: "cnName",
+              value: "id",
               res: "data.records"
             }
           },

+ 11 - 8
src/views/iosBasicData/OceanFreightImport/bills/assembly/feecenter.vue

@@ -3144,14 +3144,17 @@ export default {
         // 获取有id 的数据
         const itemsWithId = multiList.filter(item => item.hasOwnProperty("id"));
         let arrIds = itemsWithId.map(item => item.id); // 获取id 数据
-        // 把选中的删除掉
-        multiList.forEach(item => {
-          for (let index in arr) {
-            if (JSON.stringify(item) == JSON.stringify(arr[index])) {
-              arr.splice(Number(index), 1);
+
+        if (itemsWithId.length == 0) {
+          // 把选中的删除掉
+          multiList.forEach(item => {
+            for (let index in arr) {
+              if (JSON.stringify(item) == JSON.stringify(arr[index])) {
+                arr.splice(Number(index), 1);
+              }
             }
-          }
-        });
+          });
+        }
         // 有id 的处理
         if (itemsWithId.length != 0) {
           feecenterRemove(arrIds.join(",")).then(res => {
@@ -3711,7 +3714,7 @@ export default {
         }
       } else {
         for (let item of this.assemblyForm.feeCenterListC) {
-         if (item.accStatus != 1 && item.auditStatus == 0 && item.automaticGenerated != 1) {
+          if (item.accStatus != 1 && item.auditStatus == 0 && item.automaticGenerated != 1) {
             if (!item.id) {
               this.$delete(item, "edit");
               this.$set(item, "edit", true);

+ 2 - 2
src/views/iosBasicData/OceanFreightImport/bills/billsDetails.vue

@@ -58,8 +58,8 @@
           v-if="
             bigtabs != 'dz' &&
               (roleName.includes('admin') ||
-                (roleName.includes('应付修改') && roleName.includes('应付查看')) ||
-                (roleName.includes('应收修改') && roleName.includes('应收查看')))
+              (roleName.includes('应付查看') && roleName.includes('应收查看')) ||
+                (roleName.includes('应付修改') && roleName.includes('应收修改')))
           "
           size="small"
           style="margin-right: 8px"

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

@@ -198,7 +198,7 @@
                         placeholder="请输入VGM总重(KGM)"></el-input>
                     <span v-else>{{ row.vgmWeight }}</span>
                 </template> -->
-        <tempalte slot="podStationCname" slot-scope="{ row }">
+        <!-- <tempalte slot="podStationCname" slot-scope="{ row }">
           <dic-select
             v-model="row.podStationCname"
             placeholder="场站"
@@ -210,8 +210,8 @@
             dataName="cnName"
             @selectChange="rowDicChange('podStationCname', $event, row)"
           ></dic-select>
-        </tempalte>
-        <template slot-scope="{ row }" slot="polCyCname">
+        </tempalte> -->
+        <!-- <template slot-scope="{ row }" slot="polCyCname">
           <dic-select
             v-model="row.polCyCname"
             placeholder="场站"
@@ -223,8 +223,8 @@
             dataName="cnName"
             @selectChange="rowDicChange('polCyCname', $event, row)"
           ></dic-select>
-        </template>
-        <template slot-scope="{ row }" slot="podEmptyContainerReturnDate">
+        </template> -->
+        <!-- <template slot-scope="{ row }" slot="podEmptyContainerReturnDate">
           <el-date-picker
             v-model="row.podEmptyContainerReturnDate"
             type="date"
@@ -234,7 +234,7 @@
             size="small"
           >
           </el-date-picker>
-        </template>
+        </template> -->
       </avue-crud>
     </basic-container>
 

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

@@ -801,7 +801,7 @@
                   clearable
                   type="date"
                   size="small"
-                  :disabled="detailData.seeDisabled || (assemblyForm.billType == 'MH' && assemblyForm.masterBillNo > 0) || isATD"
+                  :disabled="detailData.seeDisabled || (assemblyForm.billType == 'MH' && assemblyForm.masterBillNo > 0)"
                   value-format="yyyy-MM-dd"
                   placeholder="选择日期"
                   @change="atdChange"
@@ -1012,7 +1012,7 @@
                     clearable
                     type="date"
                     size="small"
-                    :disabled="detailData.seeDisabled"
+                    :disabled="detailData.seeDisabled || isATD"
                     value-format="yyyy-MM-dd"
                     placeholder="选择日期"
                   >
@@ -2121,8 +2121,8 @@ export default {
       serviceTermsData: [],
 
       marksIndex: 1,
-      atdLockedDays: null,
-      atdLock: false
+      issueLockedDays: null,
+      issueLock: false
     };
   },
   created() {
@@ -2132,11 +2132,11 @@ export default {
       }
     });
     isProcurement({ param: "ATD_LOCKED_DAYS" }).then(res => {
-      this.atdLockedDays = res.data.data;
+      this.issueLockedDays = res.data.data;
       if (res.data.data) {
-        this.atdLock = true;
+        this.issueLock = true;
       } else {
-        this.atdLock = false;
+        this.issueLock = false;
       }
     });
     // // 往来单位
@@ -3467,11 +3467,11 @@ export default {
     //ATD +2是否 小于 当前日期
     isATD() {
       const feeList = [...this.assemblyForm.feeCenterListD, ...this.assemblyForm.feeCenterListC];
-      if (this.atdLock && feeList.length && feeList.filter(item => item.auditStatus > 3).length) {
-        const atd2day = new Date(this.assemblyForm.actualEtd);
-        atd2day.setDate(atd2day.getDate() + Number(this.atdLockedDays));
+      if (this.assemblyForm.issueDate&&this.issueLock && feeList.length && feeList.filter(item => item.auditStatus > 3).length) {
+        const issue2day = new Date(this.assemblyForm.issueDate);
+        issue2day.setDate(issue2day.getDate() + Number(this.issueLockedDays));
         const newDate = new Date(dateFormat(new Date(), "yyyy-MM-dd"));
-        return atd2day <= newDate;
+        return issue2day <= newDate;
       } else {
         return false;
       }

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

@@ -182,6 +182,16 @@
           @resetColumn="resetColumnTwo('crud2', 'containerOption', 'containerOptionBack', 488)"
           @saveColumn="saveColumnTwo('crud2', 'containerOption', 'containerOptionBack', 488)"
         >
+           <!-- <template slot="containerNumber" slot-scope="{ row }">
+            <el-input
+              v-if="!row.id || editStatus"
+              v-model="row.containerNumber"
+              placeholder="请输入放箱号"
+              size="small"
+              style="width: 100%;"
+            ></el-input>
+            <span v-else>{{ row.containerNumber }}</span>
+          </template> -->
           <template slot="occupyNum" slot-scope="{ row }">
             <el-input-number
               v-if="!row.id || editStatus"
@@ -568,7 +578,7 @@ export default {
           {
             label: "放箱号",
             prop: "containerNumber",
-            width: 100,
+            width: 150,
             overHidden: true
           },
           // {

+ 21 - 19
src/views/iosBasicData/SeafreightExportF/bills/assembly/feecenter.vue

@@ -2236,8 +2236,8 @@ export default {
       dc: null,
       expenseApplication: 0,
       userId: JSON.parse(localStorage.getItem("saber-userInfo")).content.user_id,
-      atdLockedDays: null,
-      atdLock: false
+      issueLockedDays: null,
+      issueLock: false
     };
   },
   computed: {
@@ -2267,15 +2267,15 @@ export default {
     },
     //ATD +2是否 大于 当前日期
     isATD() {
-      // const atd2day = new Date(this.assemblyForm.actualEtd);
-      // atd2day.setDate(atd2day.getDate() + 2);
+      // const issue2day = new Date(this.assemblyForm.actualEtd);
+      // issue2day.setDate(issue2day.getDate() + 2);
       // const newDate = new Date(dateFormat(new Date(), "yyyy-MM-dd"));
-      // return atd2day < newDate;
-      if (this.atdLock) {
-        const atd2day = new Date(this.assemblyForm.actualEtd);
-        atd2day.setDate(atd2day.getDate() + Number(this.atdLockedDays));
+      // return issue2day < newDate;
+      if (this.assemblyForm.issueDate && this.issueLock) {
+        const issue2day = new Date(this.assemblyForm.issueDate);
+        issue2day.setDate(issue2day.getDate() + Number(this.issueLockedDays));
         const newDate = new Date(dateFormat(new Date(), "yyyy-MM-dd"));
-        return atd2day <= newDate;
+        return issue2day <= newDate;
       } else {
         return false;
       }
@@ -2292,11 +2292,11 @@ export default {
       }
     });
     isProcurement({ param: "ATD_LOCKED_DAYS" }).then(res => {
-      this.atdLockedDays = res.data.data;
+      this.issueLockedDays = res.data.data;
       if (res.data.data) {
-        this.atdLock = true;
+        this.issueLock = true;
       } else {
-        this.atdLock = false;
+        this.issueLock = false;
       }
     });
     this.roleName = localStorage.getItem("roleName").split(","); // 获取角色数据
@@ -3180,14 +3180,16 @@ export default {
         // 获取有id 的数据
         const itemsWithId = multiList.filter(item => item.hasOwnProperty("id"));
         let arrIds = itemsWithId.map(item => item.id); // 获取id 数据
-        // 把选中的删除掉
-        multiList.forEach(item => {
-          for (let index in arr) {
-            if (JSON.stringify(item) == JSON.stringify(arr[index])) {
-              arr.splice(Number(index), 1);
+        if (itemsWithId.length == 0) {
+          // 把选中的删除掉
+          multiList.forEach(item => {
+            for (let index in arr) {
+              if (JSON.stringify(item) == JSON.stringify(arr[index])) {
+                arr.splice(Number(index), 1);
+              }
             }
-          }
-        });
+          });
+        }
         // 有id 的处理
         if (itemsWithId.length != 0) {
           feecenterRemove(arrIds.join(",")).then(res => {

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

@@ -54,8 +54,8 @@
             bigtabs != 'dz' &&
               !(form.billType == 'MM' && isHq != 1) &&
               (roleName.includes('admin') ||
-                (roleName.includes('应付修改') && roleName.includes('应付查看')) ||
-                (roleName.includes('应收修改') && roleName.includes('应收查看')))
+                (roleName.includes('应付查看') && roleName.includes('应收查看')) ||
+                (roleName.includes('应付修改') && roleName.includes('应收修改')))
           "
           size="small"
           style="margin-right: 8px"
@@ -3216,9 +3216,11 @@ export default {
           } else {
             this.detailData.seeDisabled = false;
           }
+          
         } else {
           this.detailData.seeDisabled = false;
         }
+        //  this.detailData.seeDisabled = false;
       }
       // this.columnforfun('teamName').disabled = true
 

+ 5 - 1
src/views/iosBasicData/billModify/components/DistributionBox.vue

@@ -3,7 +3,7 @@
         <containers ref="containers" :assemblyForm="assemblyForm" :pid="assemblyForm.id" :detailData="detailData"
             :pleasereviewType="pleasereviewType" @selectionChange="selectionChange" @rowSavefun="containersSubmitfun"
             @billsDetailfun="billsDetailfun" @billsAddfun="billsAddfun"
-            @equalDistribution="containersEqualDistributionfun" :showLock="showLock"></containers>
+            @equalDistribution="containersEqualDistributionfun" :showLock="showLock" @submit="submit"></containers>
     </div>
 </template>
 
@@ -41,6 +41,10 @@ export default {
         inPitch() {
             this.$refs.containers.inPitch();
         },
+        submit(){
+
+        this.$emit('submit')
+        },
         // 平均分配接口
         containersEqualDistributionfun() {
             containersEqualDistribution({

+ 173 - 127
src/views/iosBasicData/billModify/components/DistributionBox/containers.vue

@@ -3,7 +3,7 @@
     <avue-crud
       :option="option"
       :table-loading="loading"
-      :data="assemblyForm.containersList"
+      :data="assemblyForm.deadlineContainersList"
       :permission="permissionList"
       :before-open="beforeOpen"
       v-model="form"
@@ -24,124 +24,133 @@
             <el-button
               type="primary"
               size="small"
-              :disabled="detailData.seeDisabled || pleasereviewType || showLock || assemblyForm.containersList.length == 0"
+              :disabled="
+                detailData.seeDisabled ||assemblyForm.deadlineContainersList.length == 0
+              "
               @click="rootEditfun"
-              >一键编辑
+              plain
+              >编辑
             </el-button>
             <el-button
-              type="primary"
+              type="success"
               size="small"
-              :disabled="detailData.seeDisabled || pleasereviewType || showLock || assemblyForm.containersList.length == 0"
+              :disabled="
+                detailData.seeDisabled ||assemblyForm.deadlineContainersList.length == 0
+              "
               @click="containersSubmitListfun"
-              >一键保存
+              plain
+              >保存
             </el-button>
           </div>
         </div>
       </template>
-      <template slot-scope="scope" slot="menu">
-        <el-button v-if="scope.row.edit" :type="scope.type" :size="scope.size" icon="el-icon-edit" @click.stop="rowSavefun(scope.row, scope.index)"
-          >保存
-        </el-button>
-        <el-button
-          v-else
-          :type="scope.type"
-          :size="scope.size"
-          icon="el-icon-edit"
-          :disabled="detailData.seeDisabled || pleasereviewType || showLock"
-          @click.stop="rowCellfun(scope.row, scope.index)"
-          >编辑
-        </el-button>
-        <el-button
-          :type="scope.type"
-          :size="scope.size"
-          icon="el-icon-delete"
-          :disabled="detailData.seeDisabled || pleasereviewType || showLock"
-          @click.stop="rowDel(scope.row, scope.index)"
-          >删除
-        </el-button>
+      <template slot-scope="{ row, index }" slot="menu">
+        <el-popover placement="bottom-start" width="400" trigger="click">
+          <div>
+            <avue-form class="diy-form" :option="optionForm" v-model="row"></avue-form>
+          </div>
+          <el-button type="text" size="small" style="color: #F56C6C;" slot="reference">查看原值 </el-button>
+        </el-popover>
       </template>
-      <template slot-scope="scope" slot="deadlineCntrNo">
+      <template slot-scope="{ row, index }" slot="deadlineCntrNo">
         <el-input
-          v-if="scope.row.edit"
-          v-model="scope.row.deadlineCntrNo"
+          v-if="row.edit"
+          v-model="row.deadlineCntrNo"
           maxlength="11"
           size="small"
           clearable
           placeholder="请输入箱号"
-          @input="cntrNoInput(scope.row, 'deadlineCntrNo')"
-          @change="verifyChange(scope.row, 'deadlineCntrNo')"
+          @input="cntrNoInput(row, 'deadlineCntrNo')"
+          @change="verifyChange(row, 'deadlineCntrNo')"
+          :class="{ 'error-style': row.deadlineCntrNo != row.cntrNo }"
         ></el-input>
-        <span v-else>{{ scope.row.deadlineCntrNo }}</span>
+        <span v-else :class="{ 'error-style': row.deadlineCntrNo != row.cntrNo }">{{ row.deadlineCntrNo }}</span>
       </template>
-      <template slot-scope="scope" slot="deadlineSealNo">
+      <template slot-scope="{ row, index }" slot="deadlineSealNo">
         <el-input
-          v-if="scope.row.edit"
-          v-model="scope.row.deadlineSealNo"
+          v-if="row.edit"
+          v-model="row.deadlineSealNo"
           maxlength="11"
           size="small"
           clearable
           placeholder="请输入封号"
-          @input="cntrNoInput(scope.row, 'deadlineSealNo')"
+          @input="cntrNoInput(row, 'deadlineSealNo')"
+          :class="{ 'error-style': row.deadlineSealNo != row.sealNo }"
         ></el-input>
-        <span v-else>{{ scope.row.deadlineSealNo }}</span>
+        <span v-else :class="{ 'error-style': row.deadlineSealNo != row.sealNo }">{{ row.deadlineSealNo }}</span>
       </template>
-      <template slot-scope="scope" slot="deadlineQuantity">
-        <el-input v-if="scope.row.edit" v-model="scope.row.deadlineQuantity" size="small" clearable placeholder="请输入件数"></el-input>
-        <span v-else>{{ Number(scope.row.deadlineQuantity).toFixed(0) }}</span>
+      <template slot-scope="{ row, index }" slot="deadlineQuantity">
+        <el-input-number
+          v-if="row.edit"
+          v-model="row.deadlineQuantity"
+          size="small"
+          clearable
+          :controls="false"
+          placeholder="请输入件数"
+          style="width:100%"
+          :class="{ 'error-style': row.deadlineQuantity != row.quantity }"
+        ></el-input-number>
+        <span v-else :class="{ 'error-style': row.deadlineQuantity != row.quantity }">{{ Number(row.deadlineQuantity).toFixed(0) }}</span>
       </template>
-      <template slot-scope="scope" slot="deadlineGrossWeight">
-        <el-input
-          v-if="scope.row.edit"
-          v-model="scope.row.deadlineGrossWeight"
+      <template slot-scope="{ row, index }" slot="deadlineGrossWeight">
+        <el-input-number
+          v-if="row.edit"
+          v-model="row.deadlineGrossWeight"
           size="small"
           clearable
+          :controls="false"
           placeholder="请输入毛重"
-          @change="computeChange(scope.row)"
-        ></el-input>
-        <span v-else>{{ scope.row.deadlineGrossWeight }}</span>
-      </template>
-      <template slot-scope="scope" slot="netWeight">
-        <el-input v-if="scope.row.edit" v-model="scope.row.netWeight" size="small" clearable placeholder="请输入净重"></el-input>
-        <span v-else>{{ scope.row.netWeight }}</span>
+          @change="computeChange(row)"
+          style="width:100%"
+          :class="{ 'error-style': row.deadlineGrossWeight != row.grossWeight }"
+        ></el-input-number>
+        <span v-else :class="{ 'error-style': row.deadlineGrossWeight != row.grossWeight }">{{ row.deadlineGrossWeight }}</span>
       </template>
-      <template slot-scope="scope" slot="deadlineMeasurement">
-        <el-input v-if="scope.row.edit" v-model="scope.row.deadlineMeasurement" size="small" clearable placeholder="请输入尺码"></el-input>
-        <span v-else>{{ scope.row.deadlineMeasurement }}</span>
-      </template>
-      <template slot-scope="scope" slot="remarks">
-        <el-input v-if="scope.row.edit" v-model="scope.row.remarks" size="small" clearable placeholder="请输入备注"></el-input>
-        <span v-else>{{ scope.row.remarks }}</span>
+      <template slot-scope="{ row, index }" slot="netWeight">
+        <el-input-number
+          v-if="row.edit"
+          v-model="row.netWeight"
+          size="small"
+          clearable
+          :controls="false"
+          placeholder="请输入净重"
+          style="width:100%"
+          :class="{ 'error-style': row.deadlineGrossWeight != row.grossWeight }"
+        ></el-input-number>
+        <span v-else :class="{ 'error-style': row.deadlineGrossWeight != row.grossWeight }">{{ row.netWeight }}</span>
       </template>
-      <template slot-scope="scope" slot="marks">
-        <el-input v-if="scope.row.edit" v-model="scope.row.marks" size="small" clearable placeholder="请输入MARKS"></el-input>
-        <span v-else>{{ scope.row.marks }}</span>
+      <template slot-scope="{ row, index }" slot="deadlineMeasurement">
+        <el-input-number
+          v-if="row.edit"
+          v-model="row.deadlineMeasurement"
+          size="small"
+          clearable
+          :controls="false"
+          placeholder="请输入尺码"
+          style="width:100%"
+          :class="{ 'error-style': row.deadlineGrossWeight != row.grossWeight }"
+        ></el-input-number>
+        <span v-else :class="{ 'error-style': row.deadlineGrossWeight != row.grossWeight }">{{ row.deadlineMeasurement }}</span>
       </template>
-      <template slot-scope="{ row }" slot="deadlineTare">
-        <el-input v-if="row.edit" v-model="row.deadlineTare" size="small" clearable placeholder="请输入箱皮重" @change="computeChange(row)"></el-input>
-        <span v-else>{{ row.deadlineTare }}</span>
+      <template slot-scope="{ row, index }" slot="deadlineTare">
+        <el-input-number
+          v-if="row.edit"
+          v-model="row.deadlineTare"
+          size="small"
+          clearable
+          :controls="false"
+          placeholder="请输入箱皮重"
+          @change="computeChange(row)"
+          style="width:100%"
+          :class="{ 'error-style': row.deadlineTare != row.tare }"
+        ></el-input-number>
+        <span v-else :class="{ 'error-style': row.deadlineTare != row.tare }">{{ row.deadlineTare }}</span>
       </template>
       <!-- <template slot-scope="{row}" slot="deadlineVgmWeight">
                     <el-input v-if="row.edit" v-model="row.deadlineVgmWeight" size="small" clearable
                         placeholder="请输入VGM总重(KGM)"></el-input>
                     <span v-else>{{ row.deadlineVgmWeight }}</span>
                 </template> -->
-      <tempalte slot="podStationCname" slot-scope="{ row }">
-        <dic-select
-          v-if="row.edit"
-          v-model="row.podStationCname"
-          placeholder="目的港还箱场站"
-          label="cnName"
-          res="records"
-          url="/blade-los/bcorps/selectList?current=1&size=5&corpTypeName=POD堆场&status=0"
-          :filterable="true"
-          :remote="true"
-          dataName="cnName"
-          @selectChange="rowDicChange('podStationCname', $event, row)"
-          :slotRight="true"
-          rightLabel="code"
-        ></dic-select>
-        <span v-else>{{ row.podStationCname }}</span>
-      </tempalte>
     </avue-crud>
 
     <el-dialog title="导入箱号,铅封号" append-to-body :visible.sync="excelBox" width="555px" :close-on-click-modal="false" v-dialog-drag>
@@ -265,6 +274,38 @@ export default {
       excelLoading: false,
       excelBox: false,
 
+      optionForm: {
+        menuBtn: false,
+        span: 12,
+        disabled: false,
+        detail: true,
+        column: [
+          {
+            label: "箱号",
+            prop: "cntrNo"
+          },
+          {
+            label: "封号",
+            prop: "sealNo"
+          },
+          {
+            label: "件数",
+            prop: "quantity"
+          },
+          {
+            label: "毛重(KGM)",
+            prop: "grossWeight"
+          },
+          {
+            label: "体积(CBM)",
+            prop: "measurement"
+          },
+          {
+            label: "箱皮重",
+            prop: "tare"
+          }
+        ]
+      },
       form: {},
       query: {},
       loading: false,
@@ -289,14 +330,10 @@ export default {
         dialogClickModal: false,
         refreshBtn: false,
         columnBtn: false,
-        menu: false,
+        menu: true,
+        menuWidth: 70,
         column: [
           {
-            label: "箱型",
-            prop: "cntrTypeCode",
-            width: "100"
-          },
-          {
             label: "箱号",
             prop: "deadlineCntrNo",
             width: "140",
@@ -325,7 +362,7 @@ export default {
           //     width: "120",
           // },
           {
-            label: "尺码/体积(CBM)",
+            label: "体积(CBM)",
             prop: "deadlineMeasurement",
             width: "140"
           },
@@ -387,7 +424,9 @@ export default {
   created() {},
   methods: {
     computeChange(row) {
-      row.deadlineVgmWeight = Number(Number(row.deadlineGrossWeight ? row.deadlineGrossWeight : 0) + Number(row.deadlineTare ? row.deadlineTare : 0)).toFixed(3);
+      row.deadlineVgmWeight = Number(
+        Number(row.deadlineGrossWeight ? row.deadlineGrossWeight : 0) + Number(row.deadlineTare ? row.deadlineTare : 0)
+      ).toFixed(3);
     },
     rowDicChange(name, row, el) {
       if (name == "podStationCname") {
@@ -414,7 +453,7 @@ export default {
       if (!this.assemblyForm.cyCode) {
         return this.$message.warning("请先选择场站");
       }
-      if (this.assemblyForm.containersList.length == 0) {
+      if (this.assemblyForm.deadlineContainersList.length == 0) {
         return this.$message.warning("请先进行配箱");
       }
       this.loadingButton = true;
@@ -433,8 +472,8 @@ export default {
     },
     // 提取箱信息弹窗里的导入
     extractDialogfun() {
-      // if (this.assemblyForm.containersList.length != this.luHaiTongData.containerCargoInfos.length) {
-      //     this.$confirm(`箱量不相等,委托数量为${this.assemblyForm.containersList.length},场站数量为${this.luHaiTongData.containerCargoInfos.length}?是否继续`, '提示', {
+      // if (this.assemblyForm.deadlineContainersList.length != this.luHaiTongData.containerCargoInfos.length) {
+      //     this.$confirm(`箱量不相等,委托数量为${this.assemblyForm.deadlineContainersList.length},场站数量为${this.luHaiTongData.containerCargoInfos.length}?是否继续`, '提示', {
       //         confirmButtonText: '确定',
       //         cancelButtonText: '取消',
       //         type: 'warning'
@@ -453,12 +492,12 @@ export default {
       let returnType = 0; // 判断是否需要合计
       // 把请求到的箱号和封号赋值
       this.luHaiTongData.containerCargoInfos.map((luHaiTongItem, luHaiTongIndex) => {
-        if (!this.assemblyForm.containersList[luHaiTongIndex].cyCntrCode) {
+        if (!this.assemblyForm.deadlineContainersList[luHaiTongIndex].cyCntrCode) {
           return this.$message.warning("请先去基础资料集装箱里维护数据");
         }
-        if (luHaiTongItem.size + "" + luHaiTongItem.property == this.assemblyForm.containersList[luHaiTongIndex].cyCntrCode) {
-          this.assemblyForm.containersList[luHaiTongIndex].deadlineCntrNo = luHaiTongItem.containerNo;
-          this.assemblyForm.containersList[luHaiTongIndex].deadlineSealNo = luHaiTongItem.deadlineSealNo;
+        if (luHaiTongItem.size + "" + luHaiTongItem.property == this.assemblyForm.deadlineContainersList[luHaiTongIndex].cyCntrCode) {
+          this.assemblyForm.deadlineContainersList[luHaiTongIndex].deadlineCntrNo = luHaiTongItem.containerNo;
+          this.assemblyForm.deadlineContainersList[luHaiTongIndex].deadlineSealNo = luHaiTongItem.deadlineSealNo;
           // 判断没有没有返厂时间,如果没有不合计前面的
           if (!luHaiTongItem.returnDate) {
             returnType++;
@@ -469,7 +508,7 @@ export default {
       let quantitySum = 0;
       let grossWeightSum = 0;
       let measurementSum = 0;
-      this.assemblyForm.containersList.map((containersItem, containersIndex) => {
+      this.assemblyForm.deadlineContainersList.map((containersItem, containersIndex) => {
         let numberSum = 0;
         let weightSum = 0;
         let volSum = 0;
@@ -491,7 +530,7 @@ export default {
       console.log(quantitySum, grossWeightSum, measurementSum, 366);
       // 判断合计的件重尺是否等于朱标的件重尺
       if (
-        this.assemblyForm.containersList.length == this.luHaiTongData.containerCargoInfos.length &&
+        this.assemblyForm.deadlineContainersList.length == this.luHaiTongData.containerCargoInfos.length &&
         this.assemblyForm.deadlineQuantity == quantitySum &&
         this.assemblyForm.deadlineGrossWeight == grossWeightSum &&
         this.assemblyForm.deadlineMeasurement == measurementSum
@@ -515,7 +554,7 @@ export default {
             "    <tr>\n" +
             "      <td>委托</td>\n" +
             "      <td>" +
-            this.assemblyForm.containersList.length +
+            this.assemblyForm.deadlineContainersList.length +
             "</td>\n" +
             "      <td>" +
             this.assemblyForm.deadlineQuantity +
@@ -556,12 +595,12 @@ export default {
           .then(() => {
             console.log("确认");
             // 箱数不等 不更新前面的
-            if (this.assemblyForm.containersList.length == this.luHaiTongData.containerCargoInfos.length) {
+            if (this.assemblyForm.deadlineContainersList.length == this.luHaiTongData.containerCargoInfos.length) {
               for (let item of this.assemblyForm.preContainersList) {
                 let pieceSum = 0;
                 let weightSum = 0;
                 let chiSum = 0;
-                for (let ite of this.assemblyForm.containersList) {
+                for (let ite of this.assemblyForm.deadlineContainersList) {
                   if (item.cntrTypeCode == ite.cyCntrCode) {
                     pieceSum += ite.deadlineQuantity;
                     weightSum += ite.deadlineGrossWeight;
@@ -671,7 +710,7 @@ export default {
     // 箱列表
     containersListfun() {
       containersList(1, 100, { pid: this.assemblyForm.id }).then(res => {
-        this.assemblyForm.containersList = res.data.data.records;
+        this.assemblyForm.deadlineContainersList = res.data.data.records;
       });
     },
     equalDistribution2() {
@@ -811,10 +850,10 @@ export default {
     },
     // 查询件数是否为零
     numberfalsefun() {
-      if (!this.assemblyForm.containersList) {
+      if (!this.assemblyForm.deadlineContainersList) {
         return false;
       }
-      for (let item of this.assemblyForm.containersList) {
+      for (let item of this.assemblyForm.deadlineContainersList) {
         if (Number(item.deadlineQuantity) >= 0) {
           return true;
         } else {
@@ -841,7 +880,7 @@ export default {
     // },
     // 一键编辑
     rootEditfun() {
-      for (let item of this.assemblyForm.containersList) {
+      for (let item of this.assemblyForm.deadlineContainersList) {
         this.$delete(item, "edit");
         this.$set(item, "edit", true);
       }
@@ -864,7 +903,7 @@ export default {
         cancelButtonText: "取消",
         type: "warning"
       }).then(() => {
-        let arr = this.assemblyForm.containersList.map(item => {
+        let arr = this.assemblyForm.deadlineContainersList.map(item => {
           return item.id;
         });
         this.assemblyForm.businessType = "KHTS";
@@ -889,7 +928,7 @@ export default {
         cancelButtonText: "取消",
         type: "warning"
       }).then(() => {
-        let arr = this.assemblyForm.containersList.map(item => {
+        let arr = this.assemblyForm.deadlineContainersList.map(item => {
           return item.id;
         });
         this.assemblyForm.businessType = "KHTS";
@@ -930,15 +969,11 @@ export default {
     },
     // 配箱批量保存
     containersSubmitListfun() {
-      if (!this.assemblyForm.id) {
-        this.$message.warning("请先大保存");
-        return;
-      }
-      for (let item of this.assemblyForm.containersList) {
-        let textList = [];
-        if (!item.cntrTypeCode) {
-          textList.push("箱型");
+      for (let item of this.assemblyForm.deadlineContainersList) {
+        if(!item.edit){
+           return this.$message.error(`请点击一键编辑`);
         }
+        let textList = [];
         if (!item.deadlineCntrNo) {
           textList.push("箱号");
         }
@@ -963,14 +998,15 @@ export default {
         cancelButtonText: "取消",
         type: "warning"
       }).then(() => {
-        containersSubmitList(this.assemblyForm.containersList).then(res => {
-          this.$message({
-            type: "success",
-            message: "操作成功!"
-          });
-          this.assemblyForm.containersList = res.data.data;
-          // this.$emit('billsDetailfun')
-        });
+        // containersSubmitList(this.assemblyForm.deadlineContainersList).then(res => {
+        //   this.$message({
+        //     type: "success",
+        //     message: "操作成功!"
+        //   });
+        //   this.assemblyForm.deadlineContainersList = res.data.data;
+        //   // this.$emit('billsDetailfun')
+        // });
+        this.$emit('submit')
       });
     },
 
@@ -1027,7 +1063,7 @@ export default {
     },
     // 一键删除
     handleDelete() {
-      for (let item of this.assemblyForm.containersList) {
+      for (let item of this.assemblyForm.deadlineContainersList) {
         if (item.deadlineQuantity > 0) return this.$message.error("请先撤销,再删除配箱");
       }
       this.$confirm("确定将全部数据删除?", {
@@ -1035,7 +1071,7 @@ export default {
         cancelButtonText: "取消",
         type: "warning"
       }).then(() => {
-        let arrids = this.assemblyForm.containersList.map(item => {
+        let arrids = this.assemblyForm.deadlineContainersList.map(item => {
           return item.id;
         });
         this.assemblyForm.businessType = "KHTS";
@@ -1076,7 +1112,7 @@ export default {
       this.$emit("selectionChange", this.selectionList);
     },
     inPitch() {
-      this.$refs.crud.toggleRowSelection(this.assemblyForm.containersList[0], true);
+      this.$refs.crud.toggleRowSelection(this.assemblyForm.deadlineContainersList[0], true);
     },
     selectionClear() {
       this.selectionList = [];
@@ -1125,4 +1161,14 @@ export default {
   text-align: center;
   padding: 4px 0;
 }
+.diy-form ::v-deep .el-input.is-disabled .el-input__inner {
+  color: #000000 !important;
+  background-color: #ffffff !important;
+}
+.error-style ::v-deep .el-input__inner {
+  color: #ff0000 !important;
+}
+.error-style {
+  color: #ff0000 !important;
+}
 </style>

+ 305 - 86
src/views/iosBasicData/billModify/detailsPage.vue

@@ -18,29 +18,37 @@
           @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.status != 0 || form.issueStatus == 1" @click="application">提单确认
-        </el-button> -->
-        <!-- <el-button v-if="form.status == 1" class="el-button--small-yh" style="margin-left: 6px;" type="danger"
-          size="small" @click="revokeApplication">撤销单据请核
-        </el-button> -->
-        <!-- <el-dropdown style="line-height: 0">
-          <el-button class="el-button--small-yh" style="margin-left: 6px;" type="warning" :disabled="!form.id"
-            size="small">
+        <el-button
+          v-if="form.id && form.billStatus == 0"
+          class="el-button--small-yh"
+          style="margin-left: 6px;"
+          type="success"
+          size="small"
+          @click="application"
+          >提交
+        </el-button>
+        <el-button
+          v-if="form.billStatus == 1"
+          class="el-button--small-yh"
+          style="margin-left: 6px;"
+          type="danger"
+          size="small"
+          @click="revokeApplication"
+          >撤销提交
+        </el-button>
+        <el-dropdown style="line-height: 0">
+          <el-button class="el-button--small-yh" style="margin-left: 6px;" type="warning" :disabled="!form.id" size="small">
             审 批<i class="el-icon-arrow-down el-icon--right"></i>
           </el-button>
           <el-dropdown-menu slot="dropdown">
-            <el-dropdown-item @click.native="checkScheduleDialog = true, checkId = form.id">审核进度
-            </el-dropdown-item>
+            <el-dropdown-item @click.native="(checkScheduleDialog = true), (checkId = form.id)">审核进度 </el-dropdown-item>
           </el-dropdown-menu>
-        </el-dropdown> -->
+        </el-dropdown>
       </div>
     </div>
-    <div style="margin-top: 50px">
-      <trade-card title="单据信息">
-        <avue-form :option="optionForm" v-model="form" ref="form"> </avue-form>
-      </trade-card>
-      <trade-card title="提单信息">
+    <div style="margin-top: 60px">
+      <el-card>
+        <avue-form class="diy-form" :option="optionForm" v-model="form" ref="form"> </avue-form>
         <el-form :model="form" ref="form" label-width="90px" class="demo-ruleForm" :disabled="editDisabled">
           <el-row>
             <el-col span="12">
@@ -63,6 +71,16 @@
                               placeholder="请输入发货人提单描述"
                               @change="textareaBlur('deadlineShipperDetails', $event)"
                             ></el-input>
+                            <div style="color:#F56C6C">原发货人:</div>
+                            <el-input
+                              type="textarea"
+                              style="width: 100%;"
+                              v-model="form.shipperDetails"
+                              size="small"
+                              autocomplete="off"
+                              :disabled="true"
+                              :autosize="true"
+                            ></el-input>
                           </div>
                           <span style="font-size: 12px;color: #1e9fff; text-decoration: underline;cursor: pointer;" slot="reference">{{
                             $t("sea118n.shipper")
@@ -79,6 +97,7 @@
                         :rows="5"
                         clearable
                         placeholder="请输入发货人提单描述"
+                        :class="{ 'error-style': form.deadlineShipperDetails != form.shipperDetails }"
                         @change="textareaBlur('deadlineShipperDetails', $event)"
                       ></el-input>
                     </el-form-item>
@@ -95,11 +114,19 @@
                               size="small"
                               autocomplete="off"
                               :disabled="editDisabled"
-                              :rows="6"
                               clearable
                               placeholder="请输入收货人提单描述"
                               @change="textareaBlur('deadlineConsigneeDetails', $event)"
                             ></el-input>
+                            <div style="color:#F56C6C">原收货人:</div>
+                            <el-input
+                              type="textarea"
+                              style="width: 100%;"
+                              v-model="form.consigneeDetails"
+                              size="small"
+                              :disabled="true"
+                              :autosize="true"
+                            ></el-input>
                           </div>
                           <span style="font-size: 12px;color: #1e9fff;text-decoration: underline;cursor: pointer;" slot="reference">{{
                             $t("sea118n.cnee")
@@ -116,6 +143,7 @@
                         :rows="5"
                         clearable
                         placeholder="请输入收货人提单描述"
+                        :class="{ 'error-style': form.deadlineConsigneeDetails != form.consigneeDetails }"
                         @change="textareaBlur('deadlineConsigneeDetails', $event)"
                       ></el-input>
                     </el-form-item>
@@ -137,6 +165,15 @@
                               placeholder="请输入通知人提单描述"
                               @change="textareaBlur('deadlineNotifyDetails', $event)"
                             ></el-input>
+                            <div style="color:#F56C6C">原通知人:</div>
+                            <el-input
+                              type="textarea"
+                              style="width: 100%;"
+                              v-model="form.notifyDetails"
+                              size="small"
+                              :disabled="true"
+                              :autosize="true"
+                            ></el-input>
                           </div>
                           <span style="font-size: 12px;color: #1e9fff;text-decoration: underline;cursor: pointer;" slot="reference">{{
                             $t("sea118n.notify")
@@ -153,6 +190,7 @@
                         :rows="5"
                         clearable
                         placeholder="请输入通知人提单描述"
+                        :class="{ 'error-style': form.deadlineNotifyDetails != form.notifyDetails }"
                         @change="textareaBlur('deadlineNotifyDetails', $event)"
                       ></el-input>
                     </el-form-item>
@@ -161,53 +199,6 @@
                 <el-col span="12">
                   <el-row>
                     <el-form-item
-                      label="国外代理"
-                      prop="deadlineForeignAgencyDetails"
-                      :rules="[
-                        {
-                          required: true,
-                          message: ' ',
-                          trigger: 'blur'
-                        }
-                      ]"
-                    >
-                      <span slot="label">
-                        <el-popover placement="bottom-start" width="700" trigger="click">
-                          <div>
-                            <el-input
-                              type="textarea"
-                              style="width: 100%;"
-                              v-model="form.deadlineForeignAgencyDetails"
-                              size="small"
-                              autocomplete="off"
-                              :disabled="editDisabled"
-                              :rows="6"
-                              clearable
-                              placeholder="请输入国外代理"
-                              @change="textareaBlur2('deadlineForeignAgencyDetails', $event)"
-                            ></el-input>
-                          </div>
-                          <span style="font-size: 12px;color: #1e9fff;text-decoration: underline;cursor: pointer;" slot="reference">{{
-                            $t("sea118n.agent")
-                          }}</span>
-                        </el-popover>
-                      </span>
-                      <el-input
-                        type="textarea"
-                        style="width: 100%;"
-                        v-model="form.deadlineForeignAgencyDetails"
-                        size="small"
-                        autocomplete="off"
-                        :disabled="editDisabled"
-                        :rows="5"
-                        clearable
-                        placeholder="请输入国外代理"
-                        @change="textareaBlur2('deadlineForeignAgencyDetails', $event)"
-                      ></el-input>
-                    </el-form-item>
-                  </el-row>
-                  <el-row>
-                    <el-form-item
                       label="唛头"
                       prop="deadlineMarks"
                       :rules="[
@@ -233,6 +224,15 @@
                               placeholder="请输入唛头"
                               @change="textareaBlur2('deadlineMarks', $event)"
                             ></el-input>
+                            <div style="color:#F56C6C">原唛头:</div>
+                            <el-input
+                              type="textarea"
+                              style="width: 100%;"
+                              v-model="form.marks"
+                              size="small"
+                              :disabled="true"
+                              :autosize="true"
+                            ></el-input>
                           </div>
                           <span style="font-size: 12px;color: #1e9fff;text-decoration: underline;cursor: pointer;" slot="reference">{{
                             $t("sea118n.marks")
@@ -249,6 +249,7 @@
                         :rows="5"
                         clearable
                         placeholder="请输入唛头"
+                        :class="{ 'error-style': form.deadlineMarks != form.marks }"
                         @change="textareaBlur2('deadlineMarks', $event)"
                       ></el-input>
                     </el-form-item>
@@ -280,6 +281,15 @@
                               placeholder="请输入提单上货物描述"
                               @change="textareaBlur2('deadlineCommodityDescr', $event)"
                             ></el-input>
+                            <div style="color:#F56C6C">原货物:</div>
+                            <el-input
+                              type="textarea"
+                              style="width: 100%;"
+                              v-model="form.commodityDescr"
+                              size="small"
+                              :disabled="true"
+                              :autosize="true"
+                            ></el-input>
                           </div>
                           <span style="font-size: 12px;color: #1e9fff;text-decoration: underline;cursor: pointer;" slot="reference">{{
                             $t("sea118n.descOfGoods")
@@ -296,10 +306,60 @@
                         :rows="5"
                         clearable
                         placeholder="请输入提单上货物描述"
+                        :class="{ 'error-style': form.deadlineCommodityDescr != form.commodityDescr }"
                         @change="textareaBlur2('deadlineCommodityDescr', $event)"
                       ></el-input>
                     </el-form-item>
                   </el-row>
+                  <el-row>
+                    <el-row>
+                      <el-form-item label="国外代理" prop="deadlineForeignAgencyDetails">
+                        <span slot="label">
+                          <el-popover placement="bottom-start" width="700" trigger="click">
+                            <div>
+                              <el-input
+                                type="textarea"
+                                style="width: 100%;"
+                                v-model="form.deadlineForeignAgencyDetails"
+                                size="small"
+                                autocomplete="off"
+                                :disabled="editDisabled"
+                                :rows="6"
+                                clearable
+                                placeholder="请输入国外代理"
+                                @change="textareaBlur2('deadlineForeignAgencyDetails', $event)"
+                              ></el-input>
+                              <div style="color:#F56C6C">原国外代理:</div>
+                              <el-input
+                                type="textarea"
+                                style="width: 100%;"
+                                v-model="form.foreignAgencyDetails"
+                                size="small"
+                                :disabled="true"
+                                :autosize="true"
+                              ></el-input>
+                            </div>
+                            <span style="font-size: 12px;color: #1e9fff;text-decoration: underline;cursor: pointer;" slot="reference">{{
+                              $t("sea118n.agent")
+                            }}</span>
+                          </el-popover>
+                        </span>
+                        <el-input
+                          type="textarea"
+                          style="width: 100%;"
+                          v-model="form.deadlineForeignAgencyDetails"
+                          size="small"
+                          autocomplete="off"
+                          :disabled="editDisabled"
+                          :rows="5"
+                          clearable
+                          placeholder="请输入国外代理"
+                          :class="{ 'error-style': form.deadlineForeignAgencyDetails != form.foreignAgencyDetails }"
+                          @change="textareaBlur2('deadlineForeignAgencyDetails', $event)"
+                        ></el-input>
+                      </el-form-item>
+                    </el-row>
+                  </el-row>
                 </el-col>
               </el-row>
             </el-col>
@@ -307,6 +367,15 @@
               <el-row>
                 <el-col span="12">
                   <el-form-item label="船名" prop="deadlineVesselEnName">
+                    <span slot="label">
+                      <el-popover placement="bottom-start" width="300" trigger="click">
+                        <div>
+                          <div style="color:#F56C6C">原船名:</div>
+                          <el-input style="width: 100%;" v-model="form.vesselEnName" size="small" :disabled="true"></el-input>
+                        </div>
+                        <span style="font-size: 12px;color: #1e9fff;text-decoration: underline;cursor: pointer;" slot="reference">船名</span>
+                      </el-popover>
+                    </span>
                     <dic-select
                       v-model="form.deadlineVesselEnName"
                       placeholder="船名"
@@ -318,11 +387,21 @@
                       dataName="enName"
                       @selectChange="dicChange('deadlineVesselEnName', $event)"
                       :disabled="editDisabled"
+                      :class="{ 'error-style': form.deadlineVesselEnName != form.vesselEnName }"
                     ></dic-select>
                   </el-form-item>
                 </el-col>
                 <el-col span="12">
                   <el-form-item label="航次" prop="deadlineVoyageNo">
+                    <span slot="label">
+                      <el-popover placement="bottom-start" width="300" trigger="click">
+                        <div>
+                          <div style="color:#F56C6C">原航次:</div>
+                          <el-input style="width: 100%;" v-model="form.voyageNo" size="small" :disabled="true"></el-input>
+                        </div>
+                        <span style="font-size: 12px;color: #1e9fff;text-decoration: underline;cursor: pointer;" slot="reference">航次</span>
+                      </el-popover>
+                    </span>
                     <el-input
                       style="width: 100%;"
                       v-model="form.deadlineVoyageNo"
@@ -330,6 +409,7 @@
                       :disabled="editDisabled"
                       clearable
                       placeholder="航次"
+                      :class="{ 'error-style': form.deadlineVoyageNo != form.voyageNo }"
                     ></el-input>
                   </el-form-item>
                 </el-col>
@@ -347,6 +427,15 @@
                       }
                     ]"
                   >
+                    <span slot="label">
+                      <el-popover placement="bottom-start" width="300" trigger="click">
+                        <div>
+                          <div style="color:#F56C6C">原起运港:</div>
+                          <el-input style="width: 100%;" v-model="form.polCnName" size="small" :disabled="true"></el-input>
+                        </div>
+                        <span style="font-size: 12px;color: #1e9fff;text-decoration: underline;cursor: pointer;" slot="reference">起运港</span>
+                      </el-popover>
+                    </span>
                     <dic-select
                       ref="pol"
                       v-model="form.deadlinePolCnName"
@@ -362,6 +451,7 @@
                       :disabled="editDisabled"
                       :slotRight="true"
                       rightLabel="code"
+                      :class="{ 'error-style': form.deadlinePolCnName != form.polCnName }"
                     ></dic-select>
                     <el-input
                       style="width: 100%;"
@@ -371,6 +461,7 @@
                       clearable
                       placeholder="装货港"
                       @change="textareaBlur2('deadlinePolNamePrint', $event)"
+                      :class="{ 'error-style': form.deadlinePolNamePrint != form.polNamePrint }"
                     ></el-input>
                   </el-form-item>
                 </el-col>
@@ -386,6 +477,15 @@
                       }
                     ]"
                   >
+                    <span slot="label">
+                      <el-popover placement="bottom-start" width="300" trigger="click">
+                        <div>
+                          <div style="color:#F56C6C">原卸货港:</div>
+                          <el-input style="width: 100%;" v-model="form.podCnName" size="small" :disabled="true"></el-input>
+                        </div>
+                        <span style="font-size: 12px;color: #1e9fff;text-decoration: underline;cursor: pointer;" slot="reference">卸货港</span>
+                      </el-popover>
+                    </span>
                     <dic-select
                       ref="pod"
                       v-model="form.deadlinePodCnName"
@@ -401,6 +501,7 @@
                       :disabled="editDisabled"
                       :slotRight="true"
                       rightLabel="code"
+                      :class="{ 'error-style': form.deadlinePodCnName != form.podCnName }"
                     ></dic-select>
                     <el-input
                       style="width: 100%;"
@@ -409,6 +510,7 @@
                       :disabled="editDisabled"
                       clearable
                       placeholder="卸货港"
+                      :class="{ 'error-style': form.deadlinePodNamePrint != form.podNamePrint }"
                       @change="textareaBlur2('deadlinePodNamePrint', $event)"
                     ></el-input>
                   </el-form-item>
@@ -417,6 +519,15 @@
               <el-row>
                 <el-col span="12">
                   <el-form-item label="交货地" prop="deadlinePlaceDeliveryName">
+                    <span slot="label">
+                      <el-popover placement="bottom-start" width="300" trigger="click">
+                        <div>
+                          <div style="color:#F56C6C">原交货地:</div>
+                          <el-input style="width: 100%;" v-model="form.placeDeliveryName" size="small" :disabled="true"></el-input>
+                        </div>
+                        <span style="font-size: 12px;color: #1e9fff;text-decoration: underline;cursor: pointer;" slot="reference">交货地</span>
+                      </el-popover>
+                    </span>
                     <dic-select
                       ref="placeDelivery"
                       v-model="form.deadlinePlaceDeliveryName"
@@ -432,6 +543,7 @@
                       :disabled="editDisabled"
                       :slotRight="true"
                       rightLabel="code"
+                      :class="{ 'error-style': form.deadlinePlaceDeliveryName != form.placeDeliveryName }"
                     ></dic-select>
                     <el-input
                       style="width: 100%;"
@@ -441,11 +553,21 @@
                       clearable
                       placeholder="交货地"
                       @change="textareaBlur2('deadlinePlaceDeliveryNamePrint', $event)"
+                      :class="{ 'error-style': form.deadlinePlaceDeliveryNamePrint != form.placeDeliveryNamePrint }"
                     ></el-input>
                   </el-form-item>
                 </el-col>
                 <el-col span="12">
                   <el-form-item label="承运人" prop="deadlineCarrierCnName">
+                    <span slot="label">
+                      <el-popover placement="bottom-start" width="300" trigger="click">
+                        <div>
+                          <div style="color:#F56C6C">原承运人:</div>
+                          <el-input style="width: 100%;" v-model="form.carrierCnName" size="small" :disabled="true"></el-input>
+                        </div>
+                        <span style="font-size: 12px;color: #1e9fff;text-decoration: underline;cursor: pointer;" slot="reference">承运人</span>
+                      </el-popover>
+                    </span>
                     <dic-select
                       v-model="form.deadlineCarrierCnName"
                       placeholder="承运人"
@@ -459,6 +581,7 @@
                       :disabled="editDisabled"
                       :slotRight="true"
                       rightLabel="shortName"
+                      :class="{ 'error-style': form.deadlineCarrierCnName != form.carrierCnName }"
                     ></dic-select>
                   </el-form-item>
                 </el-col>
@@ -476,6 +599,15 @@
                       }
                     ]"
                   >
+                    <span slot="label">
+                      <el-popover placement="bottom-start" width="300" trigger="click">
+                        <div>
+                          <div style="color:#F56C6C">原件数:</div>
+                          <el-input style="width: 100%;" v-model="form.quantity" size="small" :disabled="true"></el-input>
+                        </div>
+                        <span style="font-size: 12px;color: #1e9fff;text-decoration: underline;cursor: pointer;" slot="reference">件数</span>
+                      </el-popover>
+                    </span>
                     <el-input
                       style="width: 100%;"
                       v-model="form.deadlineQuantity"
@@ -485,6 +617,7 @@
                       :disabled="editDisabled"
                       clearable
                       placeholder="请输入 件数"
+                      :class="{ 'error-style': form.deadlineQuantity != form.quantity }"
                     >
                     </el-input>
                   </el-form-item>
@@ -501,6 +634,15 @@
                       }
                     ]"
                   >
+                    <span slot="label">
+                      <el-popover placement="bottom-start" width="300" trigger="click">
+                        <div>
+                          <div style="color:#F56C6C">原包装:</div>
+                          <el-input style="width: 100%;" v-model="form.packingUnit" size="small" :disabled="true"></el-input>
+                        </div>
+                        <span style="font-size: 12px;color: #1e9fff;text-decoration: underline;cursor: pointer;" slot="reference">包装</span>
+                      </el-popover>
+                    </span>
                     <dic-select
                       v-model="form.deadlinePackingUnit"
                       placeholder="包装"
@@ -515,6 +657,7 @@
                       :disabled="editDisabled"
                       :slotRight="true"
                       rightLabel="code"
+                      :class="{ 'error-style': form.deadlinePackingUnit != form.packingUnit }"
                     ></dic-select>
                   </el-form-item>
                 </el-col>
@@ -532,6 +675,15 @@
                       }
                     ]"
                   >
+                    <span slot="label">
+                      <el-popover placement="bottom-start" width="300" trigger="click">
+                        <div>
+                          <div style="color:#F56C6C">原重量(KGS):</div>
+                          <el-input style="width: 100%;" v-model="form.grossWeight" size="small" :disabled="true"></el-input>
+                        </div>
+                        <span style="font-size: 12px;color: #1e9fff;text-decoration: underline;cursor: pointer;" slot="reference">重量(KGS)</span>
+                      </el-popover>
+                    </span>
                     <el-input
                       style="width: 100%;"
                       v-model="form.deadlineGrossWeight"
@@ -540,6 +692,7 @@
                       :disabled="editDisabled"
                       clearable
                       placeholder="请输入 总重量"
+                      :class="{ 'error-style': form.deadlineGrossWeight != form.grossWeight }"
                     >
                     </el-input>
                   </el-form-item>
@@ -556,6 +709,15 @@
                       }
                     ]"
                   >
+                    <span slot="label">
+                      <el-popover placement="bottom-start" width="300" trigger="click">
+                        <div>
+                          <div style="color:#F56C6C">原体积(CBM):</div>
+                          <el-input style="width: 100%;" v-model="form.measurement" size="small" :disabled="true"></el-input>
+                        </div>
+                        <span style="font-size: 12px;color: #1e9fff;text-decoration: underline;cursor: pointer;" slot="reference">体积(CBM)</span>
+                      </el-popover>
+                    </span>
                     <el-input
                       style="width: 100%;"
                       v-model="form.deadlineMeasurement"
@@ -564,6 +726,7 @@
                       :disabled="editDisabled"
                       clearable
                       placeholder="请输入 总体积(CBM)"
+                      :class="{ 'error-style': form.deadlineMeasurement != form.measurement }"
                     >
                     </el-input>
                   </el-form-item>
@@ -572,6 +735,15 @@
               <el-row>
                 <el-col span="12">
                   <el-form-item label="签单方式" prop="deadlineIssueType">
+                    <span slot="label">
+                      <el-popover placement="bottom-start" width="300" trigger="click">
+                        <div>
+                          <div style="color:#F56C6C">原签单方式:</div>
+                          <el-input style="width: 100%;" v-model="form.issueType" size="small" :disabled="true"></el-input>
+                        </div>
+                        <span style="font-size: 12px;color: #1e9fff;text-decoration: underline;cursor: pointer;" slot="reference">签单方式</span>
+                      </el-popover>
+                    </span>
                     <dic-select
                       v-model="form.deadlineIssueType"
                       placeholder="签单方式"
@@ -580,11 +752,21 @@
                       url="/blade-system/dict-biz/dictionary?code=issue_type_F"
                       :disabled="editDisabled"
                       :initData="true"
+                      :class="{ 'error-style': form.deadlineIssueType != form.issueType }"
                     ></dic-select>
                   </el-form-item>
                 </el-col>
                 <el-col :span="12">
                   <el-form-item label="签单日期" prop="deadlineIssueDate">
+                    <span slot="label">
+                      <el-popover placement="bottom-start" width="300" trigger="click">
+                        <div>
+                          <div style="color:#F56C6C">原签单日期:</div>
+                          <el-input style="width: 100%;" v-model="form.issueDate" size="small" :disabled="true"></el-input>
+                        </div>
+                        <span style="font-size: 12px;color: #1e9fff;text-decoration: underline;cursor: pointer;" slot="reference">签单日期</span>
+                      </el-popover>
+                    </span>
                     <el-date-picker
                       style="width: 100%;"
                       v-model="form.deadlineIssueDate"
@@ -593,8 +775,9 @@
                       size="small"
                       :disabled="editDisabled"
                       format="yyyy-MM-dd"
-                      value-format="yyyy-MM-dd"
+                      value-format="yyyy-MM-dd 00:00:00"
                       placeholder="选择日期"
+                      :class="{ 'error-style': form.deadlineIssueDate != form.issueDate }"
                     >
                     </el-date-picker>
                   </el-form-item>
@@ -603,6 +786,15 @@
               <el-row>
                 <el-col span="12">
                   <el-form-item label="签单地点" prop="deadlineIssueAt">
+                    <span slot="label">
+                      <el-popover placement="bottom-start" width="300" trigger="click">
+                        <div>
+                          <div style="color:#F56C6C">原签单地点:</div>
+                          <el-input style="width: 100%;" v-model="form.issueAt" size="small" :disabled="true"></el-input>
+                        </div>
+                        <span style="font-size: 12px;color: #1e9fff;text-decoration: underline;cursor: pointer;" slot="reference">签单地点</span>
+                      </el-popover>
+                    </span>
                     <dic-select
                       v-model="form.deadlineIssueAt"
                       placeholder="签单地点"
@@ -614,11 +806,21 @@
                       dataName="enName"
                       @selectChange="dicChange('deadlineIssueAt', $event)"
                       :disabled="editDisabled"
+                      :class="{ 'error-style': form.deadlineIssueAt != form.issueAt }"
                     ></dic-select>
                   </el-form-item>
                 </el-col>
                 <el-col span="12">
                   <el-form-item label="我司截单" prop="deadlineCyTrailerTime">
+                    <span slot="label">
+                      <el-popover placement="bottom-start" width="300" trigger="click">
+                        <div>
+                          <div style="color:#F56C6C">原我司截单:</div>
+                          <el-input style="width: 100%;" v-model="form.cyTrailerTime" size="small" :disabled="true"></el-input>
+                        </div>
+                        <span style="font-size: 12px;color: #1e9fff;text-decoration: underline;cursor: pointer;" slot="reference">我司截单</span>
+                      </el-popover>
+                    </span>
                     <el-date-picker
                       style="width: 100%;"
                       v-model="form.deadlineCyTrailerTime"
@@ -629,6 +831,7 @@
                       format="yyyy-MM-dd HH:mm:ss"
                       value-format="yyyy-MM-dd HH:mm:ss"
                       placeholder="选择日期"
+                      :class="{ 'error-style': form.deadlineCyTrailerTime != form.cyTrailerTime }"
                     >
                     </el-date-picker>
                   </el-form-item>
@@ -637,23 +840,24 @@
             </el-col>
           </el-row>
         </el-form>
-      </trade-card>
-      <trade-card title="配箱信息">
+      </el-card>
+      <el-card style="margin: 10px 0;">
         <DistributionBox
           :assemblyForm="form"
           :detailData="detailData"
           :pleasereviewType="editDisabled"
           @billsAddfun="billsAddfun"
           @billsDetailfun="getDetails(form.id, true)"
+          @submit="submit"
         >
         </DistributionBox>
-      </trade-card>
-      <trade-card title="操作记录">
+      </el-card>
+      <el-card title="操作记录">
         <avue-form :option="optionForm2" v-model="form" ref="form2"> </avue-form>
-      </trade-card>
+      </el-card>
     </div>
-    <business-reports :id="form.id" ref="print" businessValue="KHTS" :type="true" :upDateType="false"></business-reports>
-    <reports :id="form.id" :assemblyForm="form" businessValue="KHTS" ref="report" :upDateType="false"></reports>
+    <business-reports :id="form.id" ref="print" businessValue="TDXG" :type="true" :upDateType="false"></business-reports>
+    <reports :id="form.id" :assemblyForm="form" businessValue="TDXG" ref="report" :upDateType="false"></reports>
     <!--审核弹窗-->
     <el-dialog
       append-to-body
@@ -697,12 +901,12 @@ export default {
       editButton: false,
       editDisabled: false,
       form: {
-        containersList: []
+        deadlineContainersList: []
       },
       polFeeList: [],
       podFeeList: [],
       oldForm: {
-        containersList: []
+        deadlineContainersList: []
       },
       optionForm: {
         menuBtn: false,
@@ -880,6 +1084,9 @@ export default {
     if (this.detailData && this.detailData.id) {
       this.getDetails(this.detailData.id);
     }
+    if (this.detailData && this.detailData.billId) {
+      this.getDetails(this.detailData.billId);
+    }
   },
   methods: {
     synchronization() {
@@ -1087,7 +1294,6 @@ export default {
           this.form.deadlineIssueAt = null;
         }
       }
-
       if (name == "deadlineVesselEnName") {
         if (row) {
           this.form.deadlineVesselId = row.id;
@@ -1124,6 +1330,12 @@ export default {
       });
       getDetail({ id: id })
         .then(res => {
+          if (res.data.data.billStatus != 0) {
+            this.editDisabled = true;
+          }
+          if (res.data.data.billStatus == 0) {
+            this.editDisabled = false;
+          }
           this.oldForm = this.deepClone(res.data.data);
           this.form = res.data.data;
         })
@@ -1152,6 +1364,8 @@ export default {
           if (lineQuantityVerification(this.form.deadlineNotifyDetails, this.lineLength)) {
             return this.$message.error(`通知人详情超长,请手动断行,否则影响打印`);
           }
+          this.form.billNoFormat = "TDXG";
+          this.form.businessTypeCode = "TDXG";
           const loading = this.$loading({
             lock: true,
             text: "加载中",
@@ -1175,20 +1389,17 @@ export default {
       });
     },
     application() {
-      if (!this.form.preContainersList.length) {
-        return this.$message.error("集装箱明细不能为空");
-      }
-      this.$confirm("是否提单确认?", {
+      this.$confirm("是否提交?", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
         type: "warning"
       }).then(() => {
         let obj = {};
         obj = {
-          id: this.form.id,
-          url: "/iosBasicData/businessCenter/customerBooking/index",
+          ...this.form,
+          url: "/iosBasicData/billModify/index",
           pageStatus: "",
-          pageLabel: "客户订舱 "
+          pageLabel: "提单修改"
         };
         const loading = this.$loading({
           lock: true,
@@ -1270,7 +1481,7 @@ export default {
       return back;
     },
     goBack(type) {
-      if (contrastObj(this.form, this.oldForm) || contrastList(this.form.containersList, this.oldForm.containersList)) {
+      if (contrastObj(this.form, this.oldForm) || contrastList(this.form.deadlineContainersList, this.oldForm.deadlineContainersList)) {
         this.$confirm("是否需要保存?", "提示", {
           confirmButtonText: "确定",
           cancelButtonText: "取消",
@@ -1296,7 +1507,7 @@ export default {
 }
 
 ::v-deep .el-form-item {
-  margin-bottom: 8px !important;
+  margin-bottom: 2px !important;
 }
 
 ::v-deep .el-table .cell {
@@ -1310,7 +1521,9 @@ export default {
 ::v-deep .avue-crud .el-table .el-form-item__label {
   left: -1px;
 }
-
+.diy-form ::v-deep .avue-form .avue-form__group {
+  background-color: #d9ecff;
+}
 // ::v-deep#out-table .back-one {
 //     background: #ecf5ff !important;
 // }
@@ -1357,4 +1570,10 @@ export default {
   font-size: 16px;
   color: #54bcbd;
 }
+.error-style ::v-deep .el-input__inner {
+  color: #ff0000 !important;
+}
+.error-style ::v-deep .el-textarea__inner {
+  color: #ff0000 !important;
+}
 </style>

+ 23 - 26
src/views/iosBasicData/billModify/index.vue

@@ -30,7 +30,7 @@
             icon="el-icon-delete"
             type="text"
             @click="rowDel(row, index)"
-            :disabled="!(row.issueStatus == 0 || row.issueStatus == 6 || row.billStatus == 1)"
+            :disabled="row.billStatus != 0"
             >删 除</el-button
           >
         </template>
@@ -88,17 +88,17 @@ export default {
         showSummary: true,
         sumColumnList: [
           {
-            name: "quantity",
+            name: "deadlineQuantity",
             type: "sum",
             decimals: 0
           },
           {
-            name: "grossWeight",
+            name: "deadlineGrossWeight",
             type: "sum",
             decimals: 3
           },
           {
-            name: "measurement",
+            name: "deadlineMeasurement",
             type: "sum",
             decimals: 3
           }
@@ -143,7 +143,7 @@ export default {
           },
           {
             label: "起运港",
-            prop: "polEnName",
+            prop: "deadlinePolEnName",
             width: "80",
             overHidden: true,
             search: true,
@@ -160,7 +160,7 @@ export default {
           },
           {
             label: "卸货港",
-            prop: "podEnName",
+            prop: "deadlinePodEnName",
             width: "80",
             overHidden: true,
             search: true,
@@ -177,80 +177,74 @@ export default {
           },
           {
             label: "件数",
-            prop: "quantity",
+            prop: "deadlineQuantity",
             width: "100",
             overHidden: true
           },
           {
             label: "包装",
-            prop: "packingUnit",
+            prop: "deadlinePackingUnit",
             width: "100",
             overHidden: true
           },
 
           {
             label: "毛重(KGS)",
-            prop: "grossWeight",
+            prop: "deadlineGrossWeight",
             width: "100",
             overHidden: true
           },
           {
             label: "尺码(CBM)",
-            prop: "measurement",
+            prop: "deadlineMeasurement",
             width: "100",
             overHidden: true
           },
           {
             label: "发货人",
-            prop: "hshipperDetails",
+            prop: "deadlineShipperDetails",
             width: "100",
             overHidden: true
           },
           {
             label: "收货人",
-            prop: "hconsigneeDetails",
+            prop: "deadlineConsigneeDetails",
             width: "100",
             overHidden: true
           },
           {
             label: "通知人",
-            prop: "hnotifyDetails",
+            prop: "deadlineNotifyDetails",
             width: "100",
             overHidden: true
           },
           {
             label: "国外代理",
-            prop: "foreignAgencyDetails",
+            prop: "deadlineForeignAgencyDetails",
             width: "100",
             overHidden: true
           },
           {
             label: "唛头",
-            prop: "marks",
+            prop: "deadlineMarks",
             width: "100",
             overHidden: true
           },
           {
             label: "货物",
-            prop: "commodityDescr",
+            prop: "deadlineCommodityDescr",
             width: "100",
             overHidden: true
           },
           {
             label: "船名",
-            prop: "vesselCnName",
+            prop: "deadlineVesselCnName",
             width: "100",
             overHidden: true
           },
           {
             label: "航次",
-            prop: "voyageNo",
-            width: "100",
-            overHidden: true
-          },
-          {
-            label: "业务状态",
-            prop: "whetherModify",
+            prop: "deadlineVoyageNo",
             width: "100",
             overHidden: true
           },
@@ -280,7 +274,7 @@ export default {
           },
           {
             label: "备注",
-            prop: "cyRemarks",
+            prop: "remarks",
             width: "100",
             overHidden: true
           }
@@ -301,7 +295,10 @@ export default {
   activated() {
     setTimeout(() => {
       if (this.$route.query.billId) {
-        this.isShow = false;
+        this.isShow = false;     
+        this.detailData = {
+          billId: this.$route.query.billId
+        };
       }
       // this.$refs.crud.doLayout();
       if (this.$route.query.generateId) {

+ 4 - 1
src/views/iosBasicData/financialManagement/PaymentApplication/index.vue

@@ -188,7 +188,10 @@ export default {
             label: "申请日期",
             prop: "billDate",
             overHidden: true,
-            width: "120"
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd HH:mm:ss",
+            width: 100,
           },
           // {
           //   label: "银行账号",

+ 4 - 1
src/views/iosBasicData/financialManagement/computationCenter/index.vue

@@ -287,7 +287,10 @@ export default {
             label: "结算日期",
             prop: "billDate",
             overHidden: true,
-            width: "150"
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd HH:mm:ss",
+            width: 100,
           },
           {
             label: "结算日期起",

+ 4 - 1
src/views/iosBasicData/financialManagement/finstlbills/index.vue

@@ -146,7 +146,10 @@ export default {
             label: "对账日期",
             prop: "billDate",
             overHidden: true,
-            width: "150",
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd HH:mm:ss",
+            width: 100,
           },
           {
             label: "业务开始日期",