Просмотр исходного кода

1.超期费标准 加页面缓存和上下跑
2.海运出口 只有分单显示拆单功能
3.OW拿 新加字段并限制数量
4.OW拿 OW放 Pick up Per diem财务日期默认当前月
5.进出场记录 没有明细的情况下允许删除记录
6.海运出口 有放箱号的明细不允许清除箱号 清除件重尺 删除箱列表
7.海运进出口 客户订舱 箱管费用 所有的 申请删除改为弹窗并加上删除原因

qukaidi 1 день назад
Родитель
Сommit
b67b3fba36

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

@@ -11,6 +11,15 @@ export const getList = (current, size, params) => {
     }
   })
 }
+
+//明细删除  
+export const remove = (params) => {
+  return request({
+    url: '/api/blade-los/boxdynamicsrecord/remove',
+    method: 'post',
+    params: params
+  })
+}
 //主表保存
 export function submit(data) {
   return request({

+ 77 - 27
src/components/feeModify/boxMain.vue

@@ -371,35 +371,85 @@ export default {
         });
       }
       if (type == "del") {
-        this.$confirm("是否申请费用删除?", "提示", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(() => {
-          this.oldForm = row;
-          let obj = {
-            ...this.oldForm,
-            ...this.newForm,
-            billDate: this.oldForm.billDate ? this.oldForm.billDate + " 00:00:00" : null,
-            etd: this.oldForm.etd ? this.oldForm.etd + " 00:00:00" : null,
-            eta: this.oldForm.eta ? this.oldForm.eta + " 00:00:00" : null,
-            type: 1,
-            id: null,
-            pid: this.form.id,
-            itemId: this.oldForm.id,
-            branchId: this.form.branchId,
-            branchName: this.form.branchName,
-            url: this.url,
-            pageStatus: this.pageStatus,
-            pageLabel: this.pageLabel
-          };
-          applyUpdateCheck(obj).then(res => {
-            applyUpdate(obj).then(res => {
-              this.$message.success("操作成功");
-              this.$emit("updateDetail");
+        this.$DialogForm.show({
+          title: "申请删除",
+          width: "50%",
+          menuPosition: "right",
+          option: {
+            submitText: "确定",
+            emptyText: "取消",
+            labelWidth: "100",
+            span: 24,
+            column: [
+              {
+                label: "删除原因",
+                prop: "updateReason",
+                type: "textarea",
+                rows: 5
+              }
+            ]
+          },
+          beforeClose: done => {
+            done();
+          },
+          callback: res => {
+            res.done();
+            this.oldForm = row;
+            let obj = {
+              ...this.oldForm,
+              ...this.newForm,
+              billDate: this.oldForm.billDate ? this.oldForm.billDate + " 00:00:00" : null,
+              etd: this.oldForm.etd ? this.oldForm.etd + " 00:00:00" : null,
+              eta: this.oldForm.eta ? this.oldForm.eta + " 00:00:00" : null,
+              type: 1,
+              id: null,
+              pid: this.form.id,
+              itemId: this.oldForm.id,
+              branchId: this.form.branchId,
+              branchName: this.form.branchName,
+              url: this.url,
+              pageStatus: this.pageStatus,
+              pageLabel: this.pageLabel,
+              updateReason:res.data.updateReason
+            };
+            applyUpdateCheck(obj).then(res => {
+              applyUpdate(obj).then(res => {
+                this.$message.success("操作成功");
+                this.$emit("updateDetail");
+              });
             });
-          });
+            res.close();
+          }
         });
+        // this.$confirm("是否申请费用删除?", "提示", {
+        //   confirmButtonText: "确定",
+        //   cancelButtonText: "取消",
+        //   type: "warning"
+        // }).then(() => {
+        //   this.oldForm = row;
+        //   let obj = {
+        //     ...this.oldForm,
+        //     ...this.newForm,
+        //     billDate: this.oldForm.billDate ? this.oldForm.billDate + " 00:00:00" : null,
+        //     etd: this.oldForm.etd ? this.oldForm.etd + " 00:00:00" : null,
+        //     eta: this.oldForm.eta ? this.oldForm.eta + " 00:00:00" : null,
+        //     type: 1,
+        //     id: null,
+        //     pid: this.form.id,
+        //     itemId: this.oldForm.id,
+        //     branchId: this.form.branchId,
+        //     branchName: this.form.branchName,
+        //     url: this.url,
+        //     pageStatus: this.pageStatus,
+        //     pageLabel: this.pageLabel
+        //   };
+        //   applyUpdateCheck(obj).then(res => {
+        //     applyUpdate(obj).then(res => {
+        //       this.$message.success("操作成功");
+        //       this.$emit("updateDetail");
+        //     });
+        //   });
+        // });
       }
       if (type == "view") {
         const obj = {

+ 347 - 243
src/components/feeModify/main.vue

@@ -1,32 +1,58 @@
 <!-- eslint-disable vue/require-valid-default-prop -->
 <template>
   <div>
-    <el-dialog :title="title" :visible.sync="dialogVisible" append-to-body width="80%" :before-close="handleClose"
-      :close-on-click-modal="false">
+    <el-dialog :title="title" :visible.sync="dialogVisible" append-to-body width="80%" :before-close="handleClose" :close-on-click-modal="false">
       <div v-if="dialogVisible">
         <el-divider>费用原来信息</el-divider>
         <avue-form :option="oldOption" v-model="oldForm" ref="form"></avue-form>
         <el-divider>费用修改信息</el-divider>
         <avue-form :option="newOption" v-model="newForm" ref="form">
           <template slot="corpTypeUpdate">
-            <dic-select v-model="newForm.corpTypeUpdate" key="id" label="cnName" res="records"
-              url="/blade-los/bcorpstypedefine/list?status=0&current=1&size=20" :filterable="true" :remote="true"
-              dataName="cnName" @selectChange="dicChange('corpTypeUpdate', $event)" :disabled="newOption.disabled"></dic-select></dic-select>
+            <dic-select
+              v-model="newForm.corpTypeUpdate"
+              key="id"
+              label="cnName"
+              res="records"
+              url="/blade-los/bcorpstypedefine/list?status=0&current=1&size=20"
+              :filterable="true"
+              :remote="true"
+              dataName="cnName"
+              @selectChange="dicChange('corpTypeUpdate', $event)"
+              :disabled="newOption.disabled"
+            ></dic-select>
           </template>
           <template slot="shortNameUpdate">
-            <dic-select v-model="newForm.shortNameUpdate" placeholder="结算单位" :key="newForm.corpTypeUpdate"
-              label="shortName" res="records"
+            <dic-select
+              v-model="newForm.shortNameUpdate"
+              placeholder="结算单位"
+              :key="newForm.corpTypeUpdate"
+              label="shortName"
+              res="records"
               :url="'/blade-los/bcorps/selectList?status=0&current=1&size=5&corpTypeName=' + newForm.corpTypeUpdate"
-              :filterable="true" :remote="true" dataName="shortName"
-              @selectChange="dicChange('shortNameUpdate', $event)" :slotRight="true" rightLabel="code"
-              :disabled="newOption.disabled"></dic-select>
+              :filterable="true"
+              :remote="true"
+              dataName="shortName"
+              @selectChange="dicChange('shortNameUpdate', $event)"
+              :slotRight="true"
+              rightLabel="code"
+              :disabled="newOption.disabled"
+            ></dic-select>
           </template>
           <template slot="generationCorpCnNameUpdate">
-            <dic-select v-model="newForm.generationCorpCnNameUpdate" placeholder="代收客户" label="cnName" res="records"
+            <dic-select
+              v-model="newForm.generationCorpCnNameUpdate"
+              placeholder="代收客户"
+              label="cnName"
+              res="records"
               url="/blade-los/bcorps/listByType?status=0&current=1&size=5&corpTypeName=国内直接客户,国内同行及代理,国外直接客户,国外同行及代理"
-              :filterable="true" :remote="true" dataName="cnName"
-              @selectChange="dicChange('generationCorpCnNameUpdate', $event)" :slotRight="true" rightLabel="code"
-              :disabled="newOption.disabled"></dic-select>
+              :filterable="true"
+              :remote="true"
+              dataName="cnName"
+              @selectChange="dicChange('generationCorpCnNameUpdate', $event)"
+              :slotRight="true"
+              rightLabel="code"
+              :disabled="newOption.disabled"
+            ></dic-select>
           </template>
           <!-- <template slot="billShortNameUpdate">
             <dic-select v-model="newForm.billShortNameUpdate" placeholder="客户名称" label="shortName" res="records"
@@ -35,41 +61,82 @@
               rightLabel="code" :disabled="newOption.disabled"></dic-select>
           </template> -->
           <template slot="feeCnNameUpdate">
-            <dic-select v-model="newForm.feeCnNameUpdate" placeholder="费用名称" label="cnName" res="records"
-              url="/blade-los/bfees/list?status=0&current=1&size=20" :filterable="true" :remote="true" dataName="cnName"
-              @selectChange="dicChange('feeCnNameUpdate', $event)" :slotRight="true" rightLabel="code"
-              :disabled="newOption.disabled||newForm.automaticGenerated==1"></dic-select>
+            <dic-select
+              v-model="newForm.feeCnNameUpdate"
+              placeholder="费用名称"
+              label="cnName"
+              res="records"
+              url="/blade-los/bfees/list?status=0&current=1&size=20"
+              :filterable="true"
+              :remote="true"
+              dataName="cnName"
+              @selectChange="dicChange('feeCnNameUpdate', $event)"
+              :slotRight="true"
+              rightLabel="code"
+              :disabled="newOption.disabled || newForm.automaticGenerated == 1"
+            ></dic-select>
           </template>
           <template slot="unitNoUpdate">
             <!-- <dic-select v-model="newForm.unitNoUpdate" :key="updateFormKey" placeholder="计量单位" label="code"
               :filterable="true" :mockData="unitNoData" :disabled="newOption.disabled"
               @selectChange="dicChange('unitNoUpdate', $event)" @visibleChange="visibleChange"></dic-select> -->
-            <el-select v-model="newForm.unitNoUpdate" placeholder="请选择 计量单位" size="small"
-              @visible-change="visibleChange" @change="dicChange('unitNoUpdate', $event)" :disabled="newOption.disabled">
-              <el-option v-for="item in unitNoData" :key="item.code" :label="item.code" :value="item.code">
-              </el-option>
+            <el-select
+              v-model="newForm.unitNoUpdate"
+              placeholder="请选择 计量单位"
+              size="small"
+              @visible-change="visibleChange"
+              @change="dicChange('unitNoUpdate', $event)"
+              :disabled="newOption.disabled"
+            >
+              <el-option v-for="item in unitNoData" :key="item.code" :label="item.code" :value="item.code"> </el-option>
             </el-select>
           </template>
           <template slot="curCodeUpdate">
-            <dic-select v-model="newForm.curCodeUpdate" placeholder="币别" label="code"
+            <dic-select
+              v-model="newForm.curCodeUpdate"
+              placeholder="币别"
+              label="code"
               :url="'/blade-los/bcurrency/obtainRate?deptId=' + deptId + '&date=' + curCodeDate + '&type=1'"
-              :filterable="true" @selectChange="dicChange('curCodeUpdate', $event, row)"
-              :disabled="newOption.disabled"></dic-select>
+              :filterable="true"
+              @selectChange="dicChange('curCodeUpdate', $event, row)"
+              :disabled="newOption.disabled"
+            ></dic-select>
           </template>
           <template slot="priceUpdate">
-            <el-input-number v-model="newForm.priceUpdate" :controls="false" placeholder="请输入 单价" size="small"
-              style="width: 100%;" :precision="2" @change="countChange()"
-              :disabled="newOption.disabled"></el-input-number>
+            <el-input-number
+              v-model="newForm.priceUpdate"
+              :controls="false"
+              placeholder="请输入 单价"
+              size="small"
+              style="width: 100%;"
+              :precision="2"
+              @change="countChange()"
+              :disabled="newOption.disabled"
+            ></el-input-number>
           </template>
           <template slot="quantityUpdate">
-            <el-input-number v-model="newForm.quantityUpdate" :controls="false" placeholder="请输入 数量" size="small"
-              style="width: 100%;" :precision="0" @change="countChange()"
-              :disabled="newOption.disabled"></el-input-number>
+            <el-input-number
+              v-model="newForm.quantityUpdate"
+              :controls="false"
+              placeholder="请输入 数量"
+              size="small"
+              style="width: 100%;"
+              :precision="0"
+              @change="countChange()"
+              :disabled="newOption.disabled"
+            ></el-input-number>
           </template>
           <template slot="taxRateUpdate">
-            <el-input-number v-model="newForm.taxRateUpdate" :controls="false" placeholder="请输入 税率" size="small"
-              style="width: 100%;" :precision="0" @change="countChange()"
-              :disabled="newOption.disabled"></el-input-number>
+            <el-input-number
+              v-model="newForm.taxRateUpdate"
+              :controls="false"
+              placeholder="请输入 税率"
+              size="small"
+              style="width: 100%;"
+              :precision="0"
+              @change="countChange()"
+              :disabled="newOption.disabled"
+            ></el-input-number>
           </template>
         </avue-form>
       </div>
@@ -82,7 +149,7 @@
 </template>
 
 <script>
-import { applyUpdate, revokeapplyUpdate, getDetail, applyUpdateCheck } from '@/api/iosBasicData/feeModify.js'
+import { applyUpdate, revokeapplyUpdate, getDetail, applyUpdateCheck } from "@/api/iosBasicData/feeModify.js";
 import dicSelect from "@/components/dicSelect/main";
 import { getBunitsPage } from "@/api/iosBasicData/bunits";
 import _ from "lodash";
@@ -93,24 +160,24 @@ export default {
   props: {
     form: {
       type: Object,
-      default: () => { },
+      default: () => {}
     },
     url: {
-      type: String,
+      type: String
     },
     pageStatus: {
-      type: String,
+      type: String
     },
     pageLabel: {
-      type: String,
+      type: String
     },
     curCodeDate: {
-      type: String,
-    },
+      type: String
+    }
   },
   data() {
     return {
-      deptId: JSON.parse(localStorage.getItem('sysitemData')).deptId,
+      deptId: JSON.parse(localStorage.getItem("sysitemData")).deptId,
       oldForm: {},
       newForm: {},
       unitNoData: [],
@@ -123,15 +190,15 @@ export default {
         column: [
           {
             label: "类别",
-            prop: "corpType",
+            prop: "corpType"
           },
           {
             label: "结算单位",
-            prop: "shortName",
+            prop: "shortName"
           },
           {
             label: "代收客户",
-            prop: "generationCorpCnName",
+            prop: "generationCorpCnName"
           },
           // {
           //   label: "客户名称",
@@ -139,44 +206,44 @@ export default {
           // },
           {
             label: "费用名称",
-            prop: "feeCnName",
+            prop: "feeCnName"
           },
           {
             label: "计量单位",
-            prop: "unitNo",
+            prop: "unitNo"
           },
           {
             label: "币别",
-            prop: "curCode",
+            prop: "curCode"
           },
           {
             label: "汇率",
-            prop: "exrate",
+            prop: "exrate"
           },
           {
             label: "数量",
-            prop: "quantity",
+            prop: "quantity"
           },
           {
             label: "单价",
-            prop: "price",
+            prop: "price"
           },
           {
             label: "税率",
-            prop: "taxRate",
+            prop: "taxRate"
           },
           {
             label: "税额",
-            prop: "amountTax",
+            prop: "amountTax"
           },
           {
             label: "金额",
-            prop: "amount",
+            prop: "amount"
           },
           {
             label: "备注",
             prop: "remarks",
-            minRows: 2,
+            minRows: 2
           }
         ]
       },
@@ -188,116 +255,115 @@ export default {
         column: [
           {
             label: "类别",
-            prop: "corpTypeUpdate",
+            prop: "corpTypeUpdate"
           },
           {
             label: "结算单位",
-            prop: "shortNameUpdate",
+            prop: "shortNameUpdate"
           },
           {
             label: "代收客户",
-            prop: "generationCorpCnNameUpdate",
+            prop: "generationCorpCnNameUpdate"
           },
           {
             label: "费用名称",
-            prop: "feeCnNameUpdate",
+            prop: "feeCnNameUpdate"
           },
           {
             label: "计量单位",
-            prop: "unitNoUpdate",
+            prop: "unitNoUpdate"
           },
           {
             label: "币别",
-            prop: "curCodeUpdate",
+            prop: "curCodeUpdate"
           },
           {
             label: "汇率",
             prop: "exrateUpdate",
-            disabled: true,
+            disabled: true
           },
           {
             label: "数量",
-            prop: "quantityUpdate",
+            prop: "quantityUpdate"
           },
           {
             label: "单价",
-            prop: "priceUpdate",
+            prop: "priceUpdate"
           },
           {
             label: "税率",
-            prop: "taxRateUpdate",
+            prop: "taxRateUpdate"
           },
           {
             label: "税额",
-            prop: "amountTaxUpdate",
+            prop: "amountTaxUpdate"
           },
           {
             label: "金额",
             prop: "amountUpdate",
-            disabled: true,
+            disabled: true
           },
           {
             label: "备注",
             prop: "remarksUpdate",
-            minRows: 2,
+            minRows: 2
           },
           {
             label: "修改原因",
             prop: "updateReason",
-            minRows: 2,
+            minRows: 2
           }
         ]
       },
       type: null,
       title: null,
-      updateFormKey: new Date().getTime(),
-    }
+      updateFormKey: new Date().getTime()
+    };
   },
   created() {
     // this.option = await this.getColumnData(this.getColumnName(309.6), this.optionBack);
-
   },
   methods: {
     // 获取计算属性
     async getBunitsPagefun(type, feeRow) {
-      let srcBillId = null
-      if (this.form.billType == 'MH') {
-        srcBillId = this.form.masterId
+      let srcBillId = null;
+      if (this.form.billType == "MH") {
+        srcBillId = this.form.masterId;
       } else {
-        srcBillId = this.form.id
+        srcBillId = this.form.id;
       }
-      const res = await getBunitsPage({ srcBillId })
-      this.unitNoData = []
+      const res = await getBunitsPage({ srcBillId });
+      this.unitNoData = [];
       let boxarr40 = ["40HC", "40GP", "40FB", "40RF", "40RH"];
-      let boxarr20 = ["20GP","20HC"];
+      let boxarr20 = ["20GP", "20HC"];
       let teunum = 0;
       for (let item of res.data.data) {
         // 按箱型
-        if (item.quantityRule != '按箱量') {
+        if (item.quantityRule != "按箱量") {
           // TEU
-          if (item.quantityRule == '按TEU') {
+          if (item.quantityRule == "按TEU") {
             for (let data of this.form.preContainersList) {
               // 40*2 20*1
               if (boxarr40.indexOf(data.cntrTypeCode) != -1) {
-                teunum += Number(data.quantity) * 2
+                teunum += Number(data.quantity) * 2;
               } else if (boxarr20.indexOf(data.cntrTypeCode) != -1) {
-                teunum += Number(data.quantity)
+                teunum += Number(data.quantity);
               }
             }
-            this.unitNoData.push({ ...item, quantity: teunum })
+            this.unitNoData.push({ ...item, quantity: teunum });
           } else {
-            this.unitNoData.push(item) // 不是TEU和不是箱的走这个
+            this.unitNoData.push(item); // 不是TEU和不是箱的走这个
           }
         }
       }
       let arr = this.form.preContainersList.map(item => {
         return {
-          quantityRule:'按箱量', // 1 是按箱量
+          quantityRule: "按箱量", // 1 是按箱量
           code: item.cntrTypeCode,
-          quantity: item.quantity,
-        }
-      })
-      this.unitNoData = [...arr, ...this.unitNoData]
+          quantity: item.quantity
+        };
+      });
+      this.unitNoData = [...arr, ...this.unitNoData];
       // this.updateFormKey = new Date().getTime()
       // // 选择费用时带出第一条
       // if (type) {
@@ -311,8 +377,8 @@ export default {
       // }
     },
     openDialog(row, type) {
-      if (type == 'fix') {
-        this.oldForm = row
+      if (type == "fix") {
+        this.oldForm = row;
         this.newForm = {
           corpIdUpdate: row.corpId,
           corpCnNameUpdate: row.corpCnName,
@@ -338,17 +404,17 @@ export default {
           quantityUpdate: row.quantity,
           priceUpdate: row.price,
           amountUpdate: row.amount,
-          automaticGenerated:row.automaticGenerated
-        }
-        this.checkRate(null, this.curCodeDate, this.oldForm.dc, 1, this.form.branchId)
-        this.type = type
-        this.title = '费用申请修改'
+          automaticGenerated: row.automaticGenerated
+        };
+        this.checkRate(null, this.curCodeDate, this.oldForm.dc, 1, this.form.branchId);
+        this.type = type;
+        this.title = "费用申请修改";
         let obj = {
           ...this.oldForm,
           ...this.newForm,
-          billDate: this.oldForm.billDate ? this.oldForm.billDate + ' 00:00:00' : null,
-          etd: this.oldForm.etd ? this.oldForm.etd + ' 00:00:00' : null,
-          eta: this.oldForm.eta ? this.oldForm.eta + ' 00:00:00' : null,
+          billDate: this.oldForm.billDate ? this.oldForm.billDate + " 00:00:00" : null,
+          etd: this.oldForm.etd ? this.oldForm.etd + " 00:00:00" : null,
+          eta: this.oldForm.eta ? this.oldForm.eta + " 00:00:00" : null,
           id: null,
           pid: this.form.id,
           itemId: this.oldForm.id,
@@ -356,183 +422,221 @@ export default {
           branchName: this.form.branchName,
           url: this.url,
           pageStatus: this.pageStatus,
-          pageLabel: this.pageLabel,
-        }
+          pageLabel: this.pageLabel
+        };
         applyUpdateCheck(obj).then(res => {
-          this.dialogVisible = true
-        })
-
+          this.dialogVisible = true;
+        });
       }
-      if (type == 'del') {
-        this.$confirm('是否申请费用删除?', '提示', {
-          confirmButtonText: '确定',
-          cancelButtonText: '取消',
-          type: 'warning'
-        }).then(() => {
-          this.oldForm = row
-          let obj = {
-            ...this.oldForm,
-            ...this.newForm,
-            billDate: this.oldForm.billDate ? this.oldForm.billDate + ' 00:00:00' : null,
-            etd: this.oldForm.etd ? this.oldForm.etd + ' 00:00:00' : null,
-            eta: this.oldForm.eta ? this.oldForm.eta + ' 00:00:00' : null,
-            type: 1,
-            id: null,
-            pid: this.form.id,
-            itemId: this.oldForm.id,
-            branchId: this.form.branchId,
-            branchName: this.form.branchName,
-            url: this.url,
-            pageStatus: this.pageStatus,
-            pageLabel: this.pageLabel,
+      if (type == "del") {
+        this.$DialogForm.show({
+          title: "申请删除",
+          width: "50%",
+          menuPosition: "right",
+          option: {
+            submitText: "确定",
+            emptyText: "取消",
+            labelWidth: "100",
+            span: 24,
+            column: [
+              {
+                label: "删除原因",
+                prop: "updateReason",
+                type: "textarea",
+                rows: 5
+              }
+            ]
+          },
+          beforeClose: done => {
+            done();
+          },
+          callback: res => {
+            res.done();
+            this.oldForm = row;
+            let obj = {
+              ...this.oldForm,
+              ...this.newForm,
+              billDate: this.oldForm.billDate ? this.oldForm.billDate + " 00:00:00" : null,
+              etd: this.oldForm.etd ? this.oldForm.etd + " 00:00:00" : null,
+              eta: this.oldForm.eta ? this.oldForm.eta + " 00:00:00" : null,
+              type: 1,
+              id: null,
+              pid: this.form.id,
+              itemId: this.oldForm.id,
+              branchId: this.form.branchId,
+              branchName: this.form.branchName,
+              url: this.url,
+              pageStatus: this.pageStatus,
+              pageLabel: this.pageLabel,
+              updateReason:res.data.updateReason
+            };
+            applyUpdateCheck(obj).then(res => {
+              applyUpdate(obj).then(res => {
+                this.$message.success("操作成功");
+                this.$emit("updateDetail");
+              });
+            });
+            res.close();
           }
-          applyUpdateCheck(obj).then(res => {
-            applyUpdate(obj).then(res => {
-              this.$message.success('操作成功');
-              this.$emit('updateDetail')
-            })
-          })
+        });
+        // this.$confirm('是否申请费用删除?', '提示', {
+        //   confirmButtonText: '确定',
+        //   cancelButtonText: '取消',
+        //   type: 'warning'
+        // }).then(() => {
 
-        })
+        // })
       }
-      if (type == 'view') {
+      if (type == "view") {
         const obj = {
-          id: row.id,
-        }
+          id: row.id
+        };
         getDetail(obj).then(res => {
-          this.oldForm = res.data.data
-          this.newForm = res.data.data
-          this.newOption.disabled = true
-          this.title = '查看费用'
-          this.dialogVisible = true
-        })
+          this.oldForm = res.data.data;
+          this.newForm = res.data.data;
+          this.newOption.disabled = true;
+          this.title = "查看费用";
+          this.dialogVisible = true;
+        });
       }
-      if (type == 'revoke') {
+      if (type == "revoke") {
         let obj = {
           billId: this.form.id,
           itemId: row.id
-        }
+        };
         revokeapplyUpdate(obj).then(res => {
-          this.$message.success('操作成功');
-          this.$emit('updateDetail')
-        })
+          this.$message.success("操作成功");
+          this.$emit("updateDetail");
+        });
       }
     },
     countChange() {
       // this.newForm.amountUpdate = _.round(_.multiply(this.newForm.priceUpdate ? this.newForm.priceUpdate : 0, this.newForm.quantityUpdate ? this.newForm.quantityUpdate : 0), 2)
-      this.newForm.amountTaxUpdate=_.round(Number(this.newForm.priceUpdate ? this.newForm.priceUpdate : 0) * (Number(this.newForm.taxRateUpdate ? this.newForm.taxRateUpdate : 0) / 100) * Number(this.newForm.quantityUpdate ? this.newForm.quantityUpdate : 0), 2)
-      this.newForm.amountUpdate = _.round(Number(this.newForm.priceUpdate ? this.newForm.priceUpdate : 0) * (1 + Number(this.newForm.taxRateUpdate ? this.newForm.taxRateUpdate : 0) / 100) * Number(this.newForm.quantityUpdate ? this.newForm.quantityUpdate : 0), 2)
+      this.newForm.amountTaxUpdate = _.round(
+        Number(this.newForm.priceUpdate ? this.newForm.priceUpdate : 0) *
+          (Number(this.newForm.taxRateUpdate ? this.newForm.taxRateUpdate : 0) / 100) *
+          Number(this.newForm.quantityUpdate ? this.newForm.quantityUpdate : 0),
+        2
+      );
+      this.newForm.amountUpdate = _.round(
+        Number(this.newForm.priceUpdate ? this.newForm.priceUpdate : 0) *
+          (1 + Number(this.newForm.taxRateUpdate ? this.newForm.taxRateUpdate : 0) / 100) *
+          Number(this.newForm.quantityUpdate ? this.newForm.quantityUpdate : 0),
+        2
+      );
     },
     dicChange(name, row) {
-      if (name == 'corpTypeUpdate') {
-        console.log(row)
-        if (row.cnName == '国内直接客户' || row.cnName == '国内同行及代理' || row.cnName == '国外直接客户') {
-          this.newForm.corpIdUpdate = this.form.corpId
-          this.newForm.shortNameUpdate = this.form.shortName
-          this.newForm.corpCnNameUpdate = this.form.corpCnName
-          this.newForm.corpEnNameUpdate = this.form.corpEnName
-        } else if (row.cnName == '国外同行及代理') {
-          this.newForm.corpIdUpdate = this.form.foreignAgencyId
-          this.newForm.shortNameUpdate = this.form.foreignAgencyCnName
-          this.newForm.corpCnNameUpdate = this.form.foreignAgencyCnName
-          this.newForm.corpEnNameUpdate = this.form.foreignAgencyEnName
-        } else if (row.cnName == '船公司') {
-          this.newForm.corpIdUpdate = this.form.carrierId
-          this.newForm.shortNameUpdate = this.form.carrierShortName
-          this.newForm.corpCnNameUpdate = this.form.carrierCnName
-          this.newForm.corpEnNameUpdate = this.form.carrierEnName
-        } else if (row.cnName == '场站') {
-          this.newForm.corpIdUpdate = this.form.cyId
-          this.newForm.shortNameUpdate = this.form.cyShortName
-          this.newForm.corpCnNameUpdate = this.form.cyCnName
-          this.newForm.corpEnNameUpdate = this.form.cyEnName
-        } else if (row.cnName == '船代') {
-          this.newForm.corpIdUpdate = this.form.shippingAgencyId
-          this.newForm.shortNameUpdate = this.form.shippingAgencyCname
-          this.newForm.corpCnNameUpdate = this.form.shippingAgencyCname
-          this.newForm.corpEnNameUpdate = this.form.shippingAgencyEname
+      if (name == "corpTypeUpdate") {
+        console.log(row);
+        if (row.cnName == "国内直接客户" || row.cnName == "国内同行及代理" || row.cnName == "国外直接客户") {
+          this.newForm.corpIdUpdate = this.form.corpId;
+          this.newForm.shortNameUpdate = this.form.shortName;
+          this.newForm.corpCnNameUpdate = this.form.corpCnName;
+          this.newForm.corpEnNameUpdate = this.form.corpEnName;
+        } else if (row.cnName == "国外同行及代理") {
+          this.newForm.corpIdUpdate = this.form.foreignAgencyId;
+          this.newForm.shortNameUpdate = this.form.foreignAgencyCnName;
+          this.newForm.corpCnNameUpdate = this.form.foreignAgencyCnName;
+          this.newForm.corpEnNameUpdate = this.form.foreignAgencyEnName;
+        } else if (row.cnName == "船公司") {
+          this.newForm.corpIdUpdate = this.form.carrierId;
+          this.newForm.shortNameUpdate = this.form.carrierShortName;
+          this.newForm.corpCnNameUpdate = this.form.carrierCnName;
+          this.newForm.corpEnNameUpdate = this.form.carrierEnName;
+        } else if (row.cnName == "场站") {
+          this.newForm.corpIdUpdate = this.form.cyId;
+          this.newForm.shortNameUpdate = this.form.cyShortName;
+          this.newForm.corpCnNameUpdate = this.form.cyCnName;
+          this.newForm.corpEnNameUpdate = this.form.cyEnName;
+        } else if (row.cnName == "船代") {
+          this.newForm.corpIdUpdate = this.form.shippingAgencyId;
+          this.newForm.shortNameUpdate = this.form.shippingAgencyCname;
+          this.newForm.corpCnNameUpdate = this.form.shippingAgencyCname;
+          this.newForm.corpEnNameUpdate = this.form.shippingAgencyEname;
         } else {
-          this.newForm.corpIdUpdate = null
-          this.newForm.shortNameUpdate = null
-          this.newForm.corpCnNameUpdate = null
-          this.newForm.corpEnNameUpdate = null
+          this.newForm.corpIdUpdate = null;
+          this.newForm.shortNameUpdate = null;
+          this.newForm.corpCnNameUpdate = null;
+          this.newForm.corpEnNameUpdate = null;
         }
       }
-      if (name == 'shortNameUpdate') {
+      if (name == "shortNameUpdate") {
         if (row) {
-          this.newForm.corpIdUpdate = row.id
-          this.newForm.corpCnNameUpdate = row.cnName
-          this.newForm.corpEnNameUpdate = row.enName
-          this.newForm.generationCorpIdUpdate = row.bookingAgentId
-          this.newForm.generationCorpEnNameUpdate = row.bookingAgentEnName
-          this.newForm.generationCorpCnNameUpdate = row.bookingAgentCnName
+          this.newForm.corpIdUpdate = row.id;
+          this.newForm.corpCnNameUpdate = row.cnName;
+          this.newForm.corpEnNameUpdate = row.enName;
+          this.newForm.generationCorpIdUpdate = row.bookingAgentId;
+          this.newForm.generationCorpEnNameUpdate = row.bookingAgentEnName;
+          this.newForm.generationCorpCnNameUpdate = row.bookingAgentCnName;
         } else {
-          this.newForm.corpIdUpdate = null
-          this.newForm.corpCnNameUpdate = null
-          this.newForm.corpEnNameUpdate = null
-          this.newForm.shortNameUpdate = null
-          this.newForm.generationCorpIdUpdate = null
-          this.newForm.generationCorpEnNameUpdate = null
-          this.newForm.generationCorpCnNameUpdate = null
+          this.newForm.corpIdUpdate = null;
+          this.newForm.corpCnNameUpdate = null;
+          this.newForm.corpEnNameUpdate = null;
+          this.newForm.shortNameUpdate = null;
+          this.newForm.generationCorpIdUpdate = null;
+          this.newForm.generationCorpEnNameUpdate = null;
+          this.newForm.generationCorpCnNameUpdate = null;
         }
       }
-      if (name == 'generationCorpCnNameUpdate') {
+      if (name == "generationCorpCnNameUpdate") {
         if (row) {
-          this.newForm.generationCorpIdUpdate = row.id
-          this.newForm.generationCorpEnNameUpdate = row.enName
-          this.newForm.generationCorpCnNameUpdate = row.cnName
+          this.newForm.generationCorpIdUpdate = row.id;
+          this.newForm.generationCorpEnNameUpdate = row.enName;
+          this.newForm.generationCorpCnNameUpdate = row.cnName;
         } else {
-          this.newForm.generationCorpIdUpdate = null
-          this.newForm.generationCorpEnNameUpdate = null
-          this.newForm.generationCorpCnNameUpdate = null
+          this.newForm.generationCorpIdUpdate = null;
+          this.newForm.generationCorpEnNameUpdate = null;
+          this.newForm.generationCorpCnNameUpdate = null;
         }
       }
-      if (name == 'billShortNameUpdate') {
+      if (name == "billShortNameUpdate") {
         if (row) {
-          this.newForm.billCorpIdUpdate = row.id
-          this.newForm.billCorpCnNameUpdate = row.cnName
-          this.newForm.billCorpEnNameUpdate = row.enName
+          this.newForm.billCorpIdUpdate = row.id;
+          this.newForm.billCorpCnNameUpdate = row.cnName;
+          this.newForm.billCorpEnNameUpdate = row.enName;
         } else {
-          this.newForm.billCorpIdUpdate = null
-          this.newForm.billCorpCnNameUpdate = null
-          this.newForm.billCorpEnNameUpdate = null
-          this.newForm.billShortNameUpdate = null
+          this.newForm.billCorpIdUpdate = null;
+          this.newForm.billCorpCnNameUpdate = null;
+          this.newForm.billCorpEnNameUpdate = null;
+          this.newForm.billShortNameUpdate = null;
         }
       }
-      if (name == 'feeCnNameUpdate') {
+      if (name == "feeCnNameUpdate") {
         if (row) {
-          this.newForm.feeIdUpdate = row.id
-          this.newForm.feeCodeUpdate = row.code
-          this.newForm.feeEnNameUpdate = row.enName
-          this.newForm.curCodeUpdate = row.curNo
-          this.newForm.exrateUpdate = this.getExchangeRate(row.curNo, this.oldForm.dc, 1)
+          this.newForm.feeIdUpdate = row.id;
+          this.newForm.feeCodeUpdate = row.code;
+          this.newForm.feeEnNameUpdate = row.enName;
+          this.newForm.curCodeUpdate = row.curNo;
+          this.newForm.exrateUpdate = this.getExchangeRate(row.curNo, this.oldForm.dc, 1);
           // this.getBunitsPagefun(true, row)
         } else {
-          this.newForm.feeIdUpdate = null
-          this.newForm.feeCodeUpdate = null
-          this.newForm.feeEnNameUpdate = null
-          this.newForm.feeCnNameUpdate = null
-          this.newForm.exrateUpdate = null
-          this.newForm.exrateUpdate = null
+          this.newForm.feeIdUpdate = null;
+          this.newForm.feeCodeUpdate = null;
+          this.newForm.feeEnNameUpdate = null;
+          this.newForm.feeCnNameUpdate = null;
+          this.newForm.exrateUpdate = null;
+          this.newForm.exrateUpdate = null;
         }
       }
-      if (name == 'curCodeUpdate') {
+      if (name == "curCodeUpdate") {
         if (row) {
           // console.log()
-          this.newForm.exrateUpdate = this.getExchangeRate(row.code, this.oldForm.dc, 1)
+          this.newForm.exrateUpdate = this.getExchangeRate(row.code, this.oldForm.dc, 1);
         } else {
-          this.newForm.exrateUpdate = null
+          this.newForm.exrateUpdate = null;
         }
-
       }
-      if (name == 'unitNoUpdate') {
+      if (name == "unitNoUpdate") {
         // console.log(row)
         this.unitNoData.forEach(item => {
           if (item.code == row) {
-            this.newForm.quantityUpdate = item.quantity
-            this.newForm.amountUpdate = _.round(_.multiply(this.newForm.priceUpdate ? this.newForm.priceUpdate : 0, this.newForm.quantityUpdate ? this.newForm.quantityUpdate : 0), 2)
+            this.newForm.quantityUpdate = item.quantity;
+            this.newForm.amountUpdate = _.round(
+              _.multiply(this.newForm.priceUpdate ? this.newForm.priceUpdate : 0, this.newForm.quantityUpdate ? this.newForm.quantityUpdate : 0),
+              2
+            );
           }
-        })
+        });
         // if (row) {
         //   this.newForm.quantityUpdate = row.quantity
         //   this.newForm.amountUpdate = _.round(_.multiply(this.newForm.priceUpdate ? this.newForm.priceUpdate : 0, this.newForm.quantityUpdate ? this.newForm.quantityUpdate : 0), 2)
@@ -540,15 +644,15 @@ export default {
       }
     },
     visibleChange() {
-      this.getBunitsPagefun()
+      this.getBunitsPagefun();
     },
     submit() {
       let obj = {
         ...this.oldForm,
         ...this.newForm,
-        billDate: this.oldForm.billDate ? this.oldForm.billDate + ' 00:00:00' : null,
-        etd: this.oldForm.etd ? this.oldForm.etd + ' 00:00:00' : null,
-        eta: this.oldForm.eta ? this.oldForm.eta + ' 00:00:00' : null,
+        billDate: this.oldForm.billDate ? this.oldForm.billDate + " 00:00:00" : null,
+        etd: this.oldForm.etd ? this.oldForm.etd + " 00:00:00" : null,
+        eta: this.oldForm.eta ? this.oldForm.eta + " 00:00:00" : null,
         type: 0,
         id: null,
         pid: this.form.id,
@@ -557,16 +661,16 @@ export default {
         branchName: this.form.branchName,
         url: this.url,
         pageStatus: this.pageStatus,
-        pageLabel: this.pageLabel,
-      }
+        pageLabel: this.pageLabel
+      };
       applyUpdate(obj).then(res => {
-        this.$message.success('操作成功');
-        this.dialogVisible = false
-        this.$emit('updateDetail')
-      })
-    },
-  },
-}
+        this.$message.success("操作成功");
+        this.dialogVisible = false;
+        this.$emit("updateDetail");
+      });
+    }
+  }
+};
 </script>
 
 <style scoped>

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

@@ -4677,5 +4677,19 @@ export default [{
     },
     component: () => import( /* webpackChunkName: "views" */ '@/views/iosBasicData/billModify/index')
   }]
+},
+{
+  path: '/iosBasicData/overdueFee/index',
+  component: Layout,
+  hidden: true,
+  children: [{
+    path: '/iosBasicData/overdueFee/index',
+    name: '超期费标准(F)',
+    meta: {
+      i18n: '/iosBasicData/overdueFee/index',
+      keepAlive: true,
+    },
+    component: () => import( /* webpackChunkName: "views" */ '@/views/iosBasicData/overdueFee/index')
+  }]
 }
 ]

+ 3 - 2
src/views/boxManagement/boxTrack/index.vue

@@ -164,8 +164,8 @@ export default {
             type: "date",
             searchRange: true,
             searchDefaultTime: ["00:00:00", "23:59:59"],
-            format: "yyyy-MM-dd HH:mm:ss",
-            valueFormat: "yyyy-MM-dd HH:mm:ss",
+            format: "yyyy-MM-dd HH:mm",
+            valueFormat: "yyyy-MM-dd HH:mm",
             overHidden: true
           },
           {
@@ -203,6 +203,7 @@ export default {
           {
             label: "是否还箱",
             prop: "whetherStillBox",
+            hide:true,
             width: 80,
             search: true,
             type: "select",

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

@@ -1983,6 +1983,9 @@ export default {
         for(let item of this.selectionList){
           if(item.boxClass!='自有箱'){
              return this.$message.error("请选择自有箱的数据");
+          } 
+          if(item.status=='使用中'){
+             return this.$message.error("箱状态为使用中的数据,不允许删除");
           }
         }
         let multiList = [];

+ 18 - 4
src/views/boxManagement/enterRecord/index.vue

@@ -31,13 +31,14 @@
         </template>
         <template slot="menu" slot-scope="{ row, index }">
           <el-button size="small" type="text" @click="rowEdit(row)">{{ row.$cellEdit ? "保存" : "编辑" }}</el-button>
+          <el-button size="small" type="text" :disabled="row.count" @click="rowDel(row)">删除</el-button>
         </template>
         <template slot="fileType" slot-scope="{ row }">
           <span style="color: #1e9fff;cursor: pointer;" @click="inDetail(row)">{{ row.fileType }}</span>
         </template>
       </avue-crud>
     </basic-container>
-    <detailsPage v-if="!isShow" :detailData="detailData" :pageIds="pageIds"  @goBack="goBack"></detailsPage>
+    <detailsPage v-if="!isShow" :detailData="detailData" :pageIds="pageIds" @goBack="goBack"></detailsPage>
     <el-dialog title="导入数据" append-to-body :visible.sync="excelBox" width="555px" :close-on-click-modal="false" v-dialog-drag>
       <avue-form
         v-if="excelBox"
@@ -76,7 +77,7 @@
 </template>
 
 <script>
-import { getList, submit, emptyContainerEntryFtp } from "@/api/boxManagement/record/index.js";
+import { getList, submit, emptyContainerEntryFtp,remove } from "@/api/boxManagement/record/index.js";
 import detailsPage from "./detailsPage";
 import importModule from "./components/importModule.vue";
 import dicSelect from "@/components/dicSelect/main";
@@ -147,7 +148,7 @@ export default {
       optionBack: {
         height: "auto",
         calcHeight: 30,
-        menuWidth: 60,
+        menuWidth: 90,
         tip: false,
         searchShow: true,
         searchMenuSpan: 6,
@@ -292,7 +293,7 @@ export default {
           {
             label: "ID",
             prop: "id",
-            width:150,
+            width: 150,
             overHidden: true
           }
         ]
@@ -458,6 +459,19 @@ export default {
         this.$set(row, "$cellEdit", true);
       }
     },
+    // 删除
+    rowDel(row, index) {
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        remove({ ids: row.id }).then(res => {
+          this.onLoad(this.page, this.query);
+          this.$message.success("成功删除");
+        });
+      });
+    },
     searchReset() {
       this.query = this.$options.data().query;
       // this.onLoad(this.page);

+ 16 - 2
src/views/boxManagement/exitRecord/index.vue

@@ -31,6 +31,7 @@
         </template>
         <template slot="menu" slot-scope="{ row, index }">
           <el-button size="small" type="text" @click="rowEdit(row)">{{ row.$cellEdit ? "保存" : "编辑" }}</el-button>
+          <el-button size="small" type="text" :disabled="row.count" @click="rowDel(row)">删除</el-button>
         </template>
         <template slot="fileType" slot-scope="{ row }">
           <span style="color: #1e9fff;cursor: pointer;" @click="inDetail(row)">{{ row.fileType }}</span>
@@ -77,7 +78,7 @@
 </template>
 
 <script>
-import { getList, submit, emptyContainerEntryFtp } from "@/api/boxManagement/record/index.js";
+import { getList, submit, emptyContainerEntryFtp,remove } from "@/api/boxManagement/record/index.js";
 import detailsPage from "./detailsPage";
 import dicSelect from "@/components/dicSelect/main";
 import importModule from "./components/importModule.vue";
@@ -158,7 +159,7 @@ export default {
       optionBack: {
         height: "auto",
         calcHeight: 30,
-        menuWidth: 60,
+        menuWidth: 90,
         tip: false,
         searchShow: true,
         searchMenuSpan: 6,
@@ -467,6 +468,19 @@ export default {
         this.$set(row, "$cellEdit", true);
       }
     },
+    // 删除
+    rowDel(row, index) {
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        remove({ ids: row.id }).then(res => {
+          this.onLoad(this.page, this.query);
+          this.$message.success("成功删除");
+        });
+      });
+    },
     searchReset() {
       this.query = this.$options.data().query;
       // this.onLoad(this.page);

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

@@ -98,8 +98,8 @@
                 @click="handleDelete"
                 >{{ $t("btn118n.deleteCtnrList") }}
               </el-button>
-
               <el-button
+                v-if="assemblyForm.billType == 'MH'"
                 type="danger"
                 size="small"
                 plain
@@ -699,17 +699,17 @@ export default {
       console.log(val, 111);
       this.$emit("selectionChange", [val]);
     },
-    allClick(name){
-      if(name=='拆单'){
-        for(let item of this.selectionList){
-          if(!item.cntrNo){
-             return this.$message.error("箱号不能为空");
+    allClick(name) {
+      if (name == "拆单") {
+        for (let item of this.selectionList) {
+          if (!item.cntrNo) {
+            return this.$message.error("箱号不能为空");
           }
-          if(!item.containerNumber){
-             return this.$message.error("放箱号不能为空");
+          if (!item.containerNumber) {
+            return this.$message.error("放箱号不能为空");
           }
         }
-        this.$refs.splitOrder.openDialog(this.assemblyForm,this.ids)
+        this.$refs.splitOrder.openDialog(this.assemblyForm, this.ids);
       }
     },
     outExport() {
@@ -1259,17 +1259,20 @@ export default {
         cancelButtonText: "取消",
         type: "warning"
       }).then(() => {
-        let arr = this.assemblyForm.containersList.map(item => {
-          return item.id;
-        });
+        let arrids = [];
+        for (let item of this.assemblyForm.containersList.filter(item => !item.containerNumber)) {
+          arrids.push(item.id);
+        }
         // 清除箱号接口
-        containersCleanBoxNo(arr.join(",")).then(res => {
-          this.$message({
-            type: "success",
-            message: "清除箱号成功!"
+        if (arrids.length) {
+          containersCleanBoxNo(arrids.join(",")).then(res => {
+            this.$message({
+              type: "success",
+              message: "清除箱号成功!"
+            });
+            this.$emit("billsDetailfun");
           });
-          this.$emit("billsDetailfun");
-        });
+        }
       });
     },
     // 全部撤销
@@ -1279,28 +1282,40 @@ export default {
         cancelButtonText: "取消",
         type: "warning"
       }).then(() => {
-        let arr = this.assemblyForm.containersList.map(item => {
-          return item.id;
-        });
-        containersRevoke(arr.join(",")).then(res => {
-          this.$message({
-            type: "success",
-            message: "全部撤销成功!"
+        let arrids = [];
+        for (let item of this.assemblyForm.containersList.filter(item => !item.containerNumber)) {
+          arrids.push(item.id);
+        }
+        if (arrids.length) {
+          containersRevoke(arrids.join(",")).then(res => {
+            this.$message({
+              type: "success",
+              message: "全部撤销成功!"
+            });
+            this.$emit("billsDetailfun");
           });
-          this.$emit("billsDetailfun");
-        });
+        }
       });
     },
     // 撤销
     revokefun() {
       if (this.selectionList.length > 0) {
-        containersRevoke(this.selectionList[0].id).then(res => {
-          this.$message({
-            type: "success",
-            message: "撤销成功!"
+        let arrids = [];
+        for (let item of this.selectionList) {
+          if (item.containerNumber) {
+            return this.$message.error("放箱号有值,不允许清空");
+          }
+          arrids.push(item.id);
+        }
+        if (arrids.length) {
+          containersRevoke(arrids.join(",")).then(res => {
+            this.$message({
+              type: "success",
+              message: "撤销成功!"
+            });
+            this.$emit("billsDetailfun");
           });
-          this.$emit("billsDetailfun");
-        });
+        }
       } else {
         this.$message({
           type: "warning",
@@ -1423,22 +1438,25 @@ export default {
         cancelButtonText: "取消",
         type: "warning"
       }).then(() => {
-        let arrids = this.assemblyForm.containersList.map(item => {
-          return item.id;
-        });
-        containersRemove(arrids.join(",")).then(() => {
-          // this.onLoad(this.page);
-          this.$message({
-            type: "success",
-            message: "操作成功!"
+        let arrids = [];
+        for (let item of this.assemblyForm.containersList.filter(item => !item.containerNumber)) {
+          arrids.push(item.id);
+        }
+        if (arrids.length) {
+          containersRemove(arrids.join(",")).then(() => {
+            // this.onLoad(this.page);
+            this.$message({
+              type: "success",
+              message: "操作成功!"
+            });
+            this.$emit("billsDetailfun");
+            this.$refs.crud.toggleSelection();
           });
-          this.$emit("billsDetailfun");
-          this.$refs.crud.toggleSelection();
-        });
+        }
       });
     },
-    getUpdata(){
-      this.$emit("billsDetailfun")
+    getUpdata() {
+      this.$emit("billsDetailfun");
     },
     beforeOpen(done, type) {
       if (["edit", "view"].includes(type)) {

+ 6 - 2
src/views/iosBasicData/SeafreightExportF/bills/assembly/components/splitOrder.vue

@@ -13,7 +13,7 @@
         id="out-table"
         :search.sync="query"
         :header-cell-class-name="headerClassName"
-        @search-change="getList"
+        @search-change="searchChange"
         @current-row-change="handleCurrentRowChange"
       >
         <template slot="menuLeft" slot-scope="{ size }">
@@ -131,9 +131,13 @@ export default {
         hblno: null
       };
       this.ids = ids;
+      this.getList()
     },
-    getList(params,done) {
+    searchChange(params,done) {
       done();
+      this.getList()
+    },
+    getList() {
       let obj = {
         branchId: this.query.branchId,
         corpId: this.query.corpId,

+ 60 - 40
src/views/iosBasicData/businessCenter/customerBooking/components/DistributionBox/containers.vue

@@ -913,22 +913,25 @@ export default {
         cancelButtonText: "取消",
         type: "warning"
       }).then(() => {
-        let arr = this.assemblyForm.containersList.map(item => {
-          return item.id;
-        });
+        let arrids = [];
+        for (let item of this.assemblyForm.containersList.filter(item => !item.containerNumber)) {
+          arrids.push(item.id);
+        }
         this.assemblyForm.businessType = "KHTS";
         this.assemblyForm.billNoFormat = "KHTS";
         this.assemblyForm.businessTypeCode = "KHTS";
-        submit(this.assemblyForm).then(res => {
-          // 清除箱号接口
-          containersCleanBoxNo(arr.join(",")).then(res => {
-            this.$message({
-              type: "success",
-              message: "清除箱号成功!"
+        // 清除箱号接口
+        if (arrids.length) {
+          submit(this.assemblyForm).then(res => {
+            containersCleanBoxNo(arrids.join(",")).then(res => {
+              this.$message({
+                type: "success",
+                message: "清除箱号成功!"
+              });
+              this.$emit("billsDetailfun");
             });
-            this.$emit("billsDetailfun");
           });
-        });
+        }
       });
     },
     // 全部撤销
@@ -938,38 +941,52 @@ export default {
         cancelButtonText: "取消",
         type: "warning"
       }).then(() => {
-        let arr = this.assemblyForm.containersList.map(item => {
-          return item.id;
-        });
+        let arrids = [];
+        for (let item of this.assemblyForm.containersList.filter(item => !item.containerNumber)) {
+          arrids.push(item.id);
+        }
         this.assemblyForm.businessType = "KHTS";
         this.assemblyForm.billNoFormat = "KHTS";
         this.assemblyForm.businessTypeCode = "KHTS";
-        submit(this.assemblyForm).then(res => {
-          containersRevoke(arr.join(",")).then(res => {
-            this.$message({
-              type: "success",
-              message: "全部撤销成功!"
+
+        if (arrids.length) {
+          submit(this.assemblyForm).then(res => {
+            containersRevoke(arr.join(",")).then(res => {
+              this.$message({
+                type: "success",
+                message: "全部撤销成功!"
+              });
+              this.$emit("billsDetailfun");
             });
-            this.$emit("billsDetailfun");
           });
-        });
+        }
       });
     },
     // 撤销
     revokefun() {
       if (this.selectionList.length > 0) {
+        let arrids = [];
+        for (let item of this.selectionList) {
+          if (item.containerNumber) {
+            return this.$message.error("放箱号有值,不允许清空");
+          }
+          arrids.push(item.id);
+        }
         this.assemblyForm.businessType = "KHTS";
         this.assemblyForm.billNoFormat = "KHTS";
         this.assemblyForm.businessTypeCode = "KHTS";
-        submit(this.assemblyForm).then(res => {
-          containersRevoke(this.selectionList[0].id).then(res => {
-            this.$message({
-              type: "success",
-              message: "撤销成功!"
+
+        if (arrids.length) {
+          submit(this.assemblyForm).then(res => {
+            containersRevoke(this.selectionList[0].id).then(res => {
+              this.$message({
+                type: "success",
+                message: "撤销成功!"
+              });
+              this.$emit("billsDetailfun");
             });
-            this.$emit("billsDetailfun");
           });
-        });
+        }
       } else {
         this.$message({
           type: "warning",
@@ -1084,23 +1101,26 @@ export default {
         cancelButtonText: "取消",
         type: "warning"
       }).then(() => {
-        let arrids = this.assemblyForm.containersList.map(item => {
-          return item.id;
-        });
+        let arrids = [];
+        for (let item of this.assemblyForm.containersList.filter(item => !item.containerNumber)) {
+          arrids.push(item.id);
+        }
         this.assemblyForm.businessType = "KHTS";
         this.assemblyForm.billNoFormat = "KHTS";
         this.assemblyForm.businessTypeCode = "KHTS";
-        submit(this.assemblyForm).then(res => {
-          containersRemove(arrids.join(",")).then(() => {
-            // this.onLoad(this.page);
-            this.$message({
-              type: "success",
-              message: "操作成功!"
+        if (arrids.length) {
+          submit(this.assemblyForm).then(res => {
+            containersRemove(arrids.join(",")).then(() => {
+              // this.onLoad(this.page);
+              this.$message({
+                type: "success",
+                message: "操作成功!"
+              });
+              this.$emit("billsDetailfun");
+              this.$refs.crud.toggleSelection();
             });
-            this.$emit("billsDetailfun");
-            this.$refs.crud.toggleSelection();
           });
-        });
+        }
       });
     },
     beforeOpen(done, type) {

+ 259 - 187
src/views/iosBasicData/overdueFee/detailsPage.vue

@@ -2,17 +2,23 @@
   <div>
     <div class="customer-head">
       <div class="customer-back">
-        <el-button type="danger" style="border: none;background: none;color: red" icon="el-icon-arrow-left"
-          @click="goBack()">返回列表
-        </el-button>
+        <el-button type="danger" style="border: none;background: none;color: red" icon="el-icon-arrow-left" @click="goBack()">返回列表 </el-button>
+        <el-button v-if="form.id && pageIds.length" type="text" @click="lastPage">上一票</el-button>
+        <el-button v-if="form.id && pageIds.length" type="text" @click="nextPage">下一票</el-button>
       </div>
       <div class="add-customer-btn">
-        <el-button class="el-button--small-yh" style="margin-left: 6px;" type="primary" size="small" v-if="editButton"
+        <el-button
+          class="el-button--small-yh"
+          style="margin-left: 6px;"
+          type="primary"
+          size="small"
+          v-if="editButton"
           :disabled="!(roleName.indexOf('admin') != -1 || roleName.indexOf('允许修改他人业务') != -1 || saberUserInfo.user_id == form.createUser)"
-          @click="inEdit">编 辑
+          @click="inEdit"
+          >编 辑
         </el-button>
-        <el-button class="el-button--small-yh" v-else style="margin-left: 6px;" type="primary" size="small"
-          :disabled="isSaveBtn" @click="submit">保 存
+        <el-button class="el-button--small-yh" v-else style="margin-left: 6px;" type="primary" size="small" :disabled="isSaveBtn" @click="submit"
+          >保 存
         </el-button>
       </div>
     </div>
@@ -20,55 +26,80 @@
       <trade-card title="基础信息">
         <avue-form :option="optionForm" v-model="form" ref="form">
           <tempalte slot="branchName">
-            <dic-select v-model="form.branchName" placeholder="所属公司" key="id" label="deptName"
-              url="/blade-system/dept/top-list" :filterable="true" :remote="true" dataName="deptName"
+            <dic-select
+              v-model="form.branchName"
+              placeholder="所属公司"
+              key="id"
+              label="deptName"
+              url="/blade-system/dept/top-list"
+              :filterable="true"
+              :remote="true"
+              dataName="deptName"
               @selectChange="dicChange('branchName', $event)"
-              :disabled="editDisabled || !(roleName.includes('admin') || roleName.includes('总部'))"></dic-select>
+              :disabled="editDisabled || !(roleName.includes('admin') || roleName.includes('总部'))"
+            ></dic-select>
           </tempalte>
           <tempalte slot="portCname">
-            <dic-select v-model="form.portCname" placeholder="港口" label="code" url="/blade-los/bports/listAll?status=0"
-              :filterable="true" :multiple="true" :collapseTags="true" dataType="string"
-              @selectChange="dicChange('portCname', $event)" :disabled="editDisabled || form.whetherEnable == '是'"
-              :slotRight="true" rightLabel="code"></dic-select>
+            <dic-select
+              v-model="form.portCname"
+              placeholder="港口"
+              label="code"
+              url="/blade-los/bports/listAll?status=0"
+              :filterable="true"
+              :multiple="true"
+              :collapseTags="true"
+              dataType="string"
+              @selectChange="dicChange('portCname', $event)"
+              :disabled="editDisabled || form.whetherEnable == '是'"
+              :slotRight="true"
+              rightLabel="code"
+            ></dic-select>
           </tempalte>
         </avue-form>
       </trade-card>
       <trade-card title="基础明细">
-        <avue-crud :option="option" :data="form.storageFeesItemsList" id="out-table" ref="crud"
-          :header-cell-class-name="headerClassName" :row-style="{ height: '20px', padding: '0px' }"
-          :cell-style="{ height: '20px', padding: '0px' }" @selection-change="selectionChange" @select="selectHandle"
-          @row-update="rowUpdate" @resetColumn="resetColumn('crud', 'option', 'optionBack', 491)"
-          @saveColumn="saveColumn('crud', 'option', 'optionBack', 491)">
-          <template slot="indexHeader" slot-scope="{row,index}">
-            <el-button type="primary" size="mini" icon="el-icon-plus" :disabled="editDisabled" circle @click="addRow()">
-            </el-button>
+        <avue-crud
+          :option="option"
+          :data="form.storageFeesItemsList"
+          id="out-table"
+          ref="crud"
+          :header-cell-class-name="headerClassName"
+          :row-style="{ height: '20px', padding: '0px' }"
+          :cell-style="{ height: '20px', padding: '0px' }"
+          @selection-change="selectionChange"
+          @select="selectHandle"
+          @row-update="rowUpdate"
+          @resetColumn="resetColumn('crud', 'option', 'optionBack', 491)"
+          @saveColumn="saveColumn('crud', 'option', 'optionBack', 491)"
+        >
+          <template slot="indexHeader" slot-scope="{ row, index }">
+            <el-button type="primary" size="mini" icon="el-icon-plus" :disabled="editDisabled" circle @click="addRow()"> </el-button>
           </template>
-          <template slot="index" slot-scope="{row,index}">
+          <template slot="index" slot-scope="{ row, index }">
             <span>{{ index + 1 }}</span>
           </template>
           <template slot="menu" slot-scope="{ row, index }">
-            <el-button size="small" :icon="row.$cellEdit ? 'el-icon-plus' : 'el-icon-edit'" type="text"
-              :disabled="editDisabled" @click="rowCell(row, index)">{{ row.$cellEdit ? '保 存' : '编 辑' }}</el-button>
-            <el-button size="small" icon="el-icon-delete" type="text" :disabled="editDisabled"
-              @click="rowDel(row, index)">删 除</el-button>
+            <el-button
+              size="small"
+              :icon="row.$cellEdit ? 'el-icon-plus' : 'el-icon-edit'"
+              type="text"
+              :disabled="editDisabled"
+              @click="rowCell(row, index)"
+              >{{ row.$cellEdit ? "保 存" : "编 辑" }}</el-button
+            >
+            <el-button size="small" icon="el-icon-delete" type="text" :disabled="editDisabled" @click="rowDel(row, index)">删 除</el-button>
           </template>
         </avue-crud>
       </trade-card>
       <trade-card title="操作记录">
-        <avue-form :option="optionForm2" v-model="form" ref="form2">
-        </avue-form>
+        <avue-form :option="optionForm2" v-model="form" ref="form2"> </avue-form>
       </trade-card>
     </div>
   </div>
 </template>
 
 <script>
-import {
-  detail,
-  submit,
-  itemRemove,
-  copyAgent
-} from "@/api/iosBasicData/overdueFee.js";
+import { detail, submit, itemRemove, copyAgent } from "@/api/iosBasicData/overdueFee.js";
 import dicSelect from "@/components/dicSelect/main";
 export default {
   name: "detailsPage",
@@ -77,10 +108,10 @@ export default {
       editButton: false,
       editDisabled: false,
       form: {
-        branchId: JSON.parse(localStorage.getItem('sysitemData')).deptId,
-        branchName: JSON.parse(localStorage.getItem('sysitemData')).deptName,
+        branchId: JSON.parse(localStorage.getItem("sysitemData")).deptId,
+        branchName: JSON.parse(localStorage.getItem("sysitemData")).deptName,
         status: 0,
-        storageFeesItemsList: [],
+        storageFeesItemsList: []
       },
       oldForm: {},
       optionForm: {
@@ -90,55 +121,66 @@ export default {
         labelWidth: 100,
         column: [
           {
-            label: '所属公司',
-            prop: 'branchName',
+            label: "所属公司",
+            prop: "branchName",
             disabled: false,
             display: true,
-            rules: [{
-              required: true,
-              message: " ",
-              trigger: "blur"
-            }],
+            rules: [
+              {
+                required: true,
+                message: " ",
+                trigger: "blur"
+              }
+            ]
           },
           {
-            label: '超期费类型',
-            prop: 'type',
+            label: "超期费类型",
+            prop: "type",
             disabled: false,
-            type: 'select',
+            type: "select",
             search: true,
-            dicData: [{
-              label: '出口超期箱',
-              value: '出口超期箱'
-            }, {
-              label: '进口超期箱',
-              value: '进口超期箱',
-            }, {
-              label: '退关、无货返空箱',
-              value: '退关、无货返空箱',
-            }],
-            rules: [{
-              required: true,
-              message: " ",
-              trigger: "blur"
-            }],
+            dicData: [
+              {
+                label: "出口超期箱",
+                value: "出口超期箱"
+              },
+              {
+                label: "进口超期箱",
+                value: "进口超期箱"
+              },
+              {
+                label: "退关、无货返空箱",
+                value: "退关、无货返空箱"
+              }
+            ],
+            rules: [
+              {
+                required: true,
+                message: " ",
+                trigger: "blur"
+              }
+            ]
           },
           {
-            label: '港口',
-            prop: 'portCname',
+            label: "港口",
+            prop: "portCname",
             disabled: false,
-            rules: [{
-              required: true,
-              message: " ",
-              trigger: "blur"
-            }],
+            rules: [
+              {
+                required: true,
+                message: " ",
+                trigger: "blur"
+              }
+            ]
           },
           {
-            label: '备注',
-            prop: 'remarks',
-            type: 'textarea',
+            label: "备注",
+            prop: "remarks",
+            type: "textarea",
             minRows: 2,
             span: 6
-          }]
+          }
+        ]
       },
       optionForm2: {
         menuBtn: false,
@@ -147,24 +189,24 @@ export default {
         labelWidth: 100,
         column: [
           {
-            label: '制单人',
+            label: "制单人",
             prop: "createUserName",
-            disabled: true,
+            disabled: true
           },
           {
-            label: '制单日期',
+            label: "制单日期",
             prop: "createTime",
-            disabled: true,
+            disabled: true
           },
           {
-            label: '修改人',
+            label: "修改人",
             prop: "updateUserName",
-            disabled: true,
+            disabled: true
           },
           {
-            label: '修改日期',
+            label: "修改日期",
             prop: "updateTime",
-            disabled: true,
+            disabled: true
           }
         ]
       },
@@ -182,7 +224,7 @@ export default {
         delBtn: false,
         refreshBtn: false,
         selection: true,
-        align: 'center',
+        align: "center",
         menu: true,
         column: [
           {
@@ -190,85 +232,87 @@ export default {
             prop: "index",
             width: "55",
             fixed: true,
-            headerslot: true,
+            headerslot: true
           },
           {
-            label: '所属公司',
-            prop: 'branchName',
-            overHidden: true,
+            label: "所属公司",
+            prop: "branchName",
+            overHidden: true
           },
           {
-            label: '起始天数',
-            prop: 'startDay',
+            label: "起始天数",
+            prop: "startDay",
             cell: true,
-            type: 'number',
+            type: "number",
             controls: false,
             rules: [
               {
                 required: true,
-                message: '请输入起始天数',
-                trigger: 'blur'
+                message: "请输入起始天数",
+                trigger: "blur"
               }
             ]
           },
           {
-            label: '结束天数',
-            prop: 'endDay',
+            label: "结束天数",
+            prop: "endDay",
             cell: true,
-            type: 'number',
+            type: "number",
             controls: false,
             rules: [
               {
                 required: true,
-                message: '请输入结束天数',
-                trigger: 'blur'
+                message: "请输入结束天数",
+                trigger: "blur"
               }
             ]
           },
           {
-            label: '币别',
-            prop: 'curCode',
+            label: "币别",
+            prop: "curCode",
             cell: true,
-            type: 'select',
+            type: "select",
             dicUrl: "/api/blade-system/dict-biz/dictionary?code=currency",
             props: {
               label: "dictValue",
               value: "dictValue"
             },
-            rules: [{
-              required: true,
-              message: "请选择币别",
-              trigger: "blur"
-            }]
+            rules: [
+              {
+                required: true,
+                message: "请选择币别",
+                trigger: "blur"
+              }
+            ]
           },
           {
-            label: '20GP',
-            prop: 'price20gp',
+            label: "20GP",
+            prop: "price20gp",
             cell: true,
-            type: 'number',
+            type: "number",
             controls: false,
-            overHidden: true,
+            overHidden: true
           },
           {
-            label: '40GP',
-            prop: 'price40gp',
+            label: "40GP",
+            prop: "price40gp",
             cell: true,
-            type: 'number',
+            type: "number",
             controls: false,
-            overHidden: true,
+            overHidden: true
           },
           {
-            label: '40HC',
-            prop: 'price40hc',
+            label: "40HC",
+            prop: "price40hc",
             cell: true,
-            type: 'number',
+            type: "number",
             controls: false,
-            overHidden: true,
+            overHidden: true
           },
           {
             label: "制单人",
             prop: "createUserName",
-            overHidden: true,
+            overHidden: true
           },
           {
             label: "制单日期",
@@ -281,7 +325,7 @@ export default {
           {
             label: "修改人",
             prop: "updateUserName",
-            overHidden: true,
+            overHidden: true
           },
           {
             label: "修改日期",
@@ -292,39 +336,64 @@ export default {
             valueFormat: "yyyy-MM-dd HH:mm:ss"
           },
           {
-            label: '备注',
-            prop: 'remarks',
+            label: "备注",
+            prop: "remarks",
             cell: true,
             width: 150,
-            overHidden: true,
-          }]
+            overHidden: true
+          }
+        ]
       },
-      saberUserInfo: JSON.parse(localStorage.getItem('saber-userInfo')).content, // 当前登录人个人信息
-    }
+      saberUserInfo: JSON.parse(localStorage.getItem("saber-userInfo")).content // 当前登录人个人信息
+    };
   },
   components: {
     dicSelect
   },
   props: {
-    detailData: Object
+    detailData: Object,
+    pageIds: {
+      type: Array, // 指定 prop 的类型为 Array
+      default: () => [] // 提供一个默认值,这里使用函数形式返回一个空数组
+    }
   },
   async created() {
-    this.roleName = localStorage.getItem('roleName').split(',')
+    this.roleName = localStorage.getItem("roleName").split(",");
     this.option = await this.getColumnData(this.getColumnName(491), this.optionBack);
     if (this.detailData && this.detailData.id) {
-      this.editButton = true
-      this.editDisabled = true
-      this.optionForm.disabled = true
-      this.getDetail(this.detailData.id)
+      this.editButton = true;
+      this.editDisabled = true;
+      this.optionForm.disabled = true;
+      this.getDetail(this.detailData.id);
     }
     if (this.detailData && this.detailData.copyId) {
-      this.getCopydate(this.detailData.copyId)
+      this.getCopydate(this.detailData.copyId);
     }
   },
   methods: {
+    lastPage() {
+      if (this.pageIds.length) {
+        const index = this.pageIds.indexOf(this.form.id);
+        if (index == 0) {
+          return this.$message.error("没有上一票了");
+        }
+        const lastIndex = index - 1;
+        this.getDetail(this.pageIds[lastIndex]);
+      }
+    },
+    nextPage() {
+      if (this.pageIds.length) {
+        const index = this.pageIds.indexOf(this.form.id);
+        if (this.pageIds[this.pageIds.length - 1] == this.form.id) {
+          return this.$message.error("没有下一票了");
+        }
+        const nextIndex = index + 1;
+        this.getDetail(this.pageIds[nextIndex]);
+      }
+    },
     rowCell(row, index) {
       if (!row.startDay || !row.endDay || !row.curCode) {
-        this.$refs.crud.rowCell(row, index)
+        this.$refs.crud.rowCell(row, index);
         return this.$message.error("请完善明细信息");
       }
       if (row.$cellEdit == true) {
@@ -343,33 +412,32 @@ export default {
           itemRemove({ ids: row.id }).then(res => {
             this.form.storageFeesItemsList.splice(index, 1);
             this.$message.success("成功删除");
-          })
+          });
         } else {
           this.form.storageFeesItemsList.splice(index, 1);
         }
-
       });
     },
     dicChange(name, row) {
-      if (name == 'branchName') {
+      if (name == "branchName") {
         if (row) {
-          this.form.branchId = row.id
+          this.form.branchId = row.id;
         } else {
-          this.form.branchId = null
-          this.form.branchName = null
+          this.form.branchId = null;
+          this.form.branchName = null;
         }
       }
-      if (name == 'portCname') {
+      if (name == "portCname") {
         if (row) {
-          this.form.portId = row.ids
-          this.form.portCode = row.names
-          this.form.portEname = row.names
-          this.form.portCname = row.names
+          this.form.portId = row.ids;
+          this.form.portCode = row.names;
+          this.form.portEname = row.names;
+          this.form.portCname = row.names;
         } else {
-          this.form.portId = null
-          this.form.portCode = null
-          this.form.portEname = null
-          this.form.portCname = null
+          this.form.portId = null;
+          this.form.portCode = null;
+          this.form.portEname = null;
+          this.form.portCname = null;
         }
       }
     },
@@ -391,7 +459,7 @@ export default {
         price40gp: 0,
         price40hc: 0,
         $cellEdit: true
-      })
+      });
     },
     selectionChange(list) {
       this.selectionList = list;
@@ -399,33 +467,37 @@ export default {
     getDetail(id) {
       const loading = this.$loading({
         lock: true,
-        text: '加载中',
-        spinner: 'el-icon-loading',
-        background: 'rgba(255,255,255,0.7)'
+        text: "加载中",
+        spinner: "el-icon-loading",
+        background: "rgba(255,255,255,0.7)"
       });
-      detail({ id: id }).then(res => {
-        this.form = res.data.data
-      }).finally(() => {
-        loading.close()
-      })
+      detail({ id: id })
+        .then(res => {
+          this.form = res.data.data;
+        })
+        .finally(() => {
+          loading.close();
+        });
     },
     getCopydate(id) {
       const loading = this.$loading({
         lock: true,
-        text: '加载中',
-        spinner: 'el-icon-loading',
-        background: 'rgba(255,255,255,0.7)'
+        text: "加载中",
+        spinner: "el-icon-loading",
+        background: "rgba(255,255,255,0.7)"
       });
-      copyAgent({ id: id }).then(res => {
-        this.form = res.data.data
-      }).finally(() => {
-        loading.close()
-      })
+      copyAgent({ id: id })
+        .then(res => {
+          this.form = res.data.data;
+        })
+        .finally(() => {
+          loading.close();
+        });
     },
     inEdit() {
-      this.editButton = false
-      this.editDisabled = false
-      this.optionForm.disabled = false
+      this.editButton = false;
+      this.editDisabled = false;
+      this.optionForm.disabled = false;
     },
     submit(type) {
       this.$refs["form"].validate((valid, done) => {
@@ -433,22 +505,24 @@ export default {
         if (valid) {
           for (let row of this.form.storageFeesItemsList) {
             if (!row.startDay || !row.endDay || !row.curCode) {
-              this.$refs.crud.rowCell(row, row.$index)
+              this.$refs.crud.rowCell(row, row.$index);
               return this.$message.error("请完善基础明细信息");
             }
           }
           const loading = this.$loading({
             lock: true,
-            text: '加载中',
-            spinner: 'el-icon-loading',
-            background: 'rgba(255,255,255,0.7)'
+            text: "加载中",
+            spinner: "el-icon-loading",
+            background: "rgba(255,255,255,0.7)"
           });
-          submit(this.form).then(res => {
-            this.$message.success("保存成功");
-            this.getDetail(res.data.data.id)
-          }).finally(() => {
-            loading.close();
-          })
+          submit(this.form)
+            .then(res => {
+              this.$message.success("保存成功");
+              this.getDetail(res.data.data.id);
+            })
+            .finally(() => {
+              loading.close();
+            });
         } else {
           return false;
         }
@@ -475,21 +549,21 @@ export default {
     // 更改表格颜色
     headerClassName(tab) {
       //颜色间隔
-      let back = ""
+      let back = "";
       if (tab.columnIndex >= 0 && tab.column.level === 1) {
         if (tab.columnIndex % 2 === 0) {
-          back = "back-one"
+          back = "back-one";
         } else if (tab.columnIndex % 2 === 1) {
-          back = "back-two"
+          back = "back-two";
         }
       }
       return back;
     },
     goBack(type) {
       this.$emit("goBack");
-    },
+    }
   }
-}
+};
 </script>
 
 <style lang="scss" scoped>
@@ -507,7 +581,6 @@ export default {
   .el-form-item {
     margin-bottom: 0px !important;
   }
-
 }
 
 ::v-deep .avue-crud .el-table .el-form-item__label {
@@ -534,7 +607,6 @@ export default {
   padding: 4px 0;
 }
 
-
 ::v-deep .el-table--small td,
 .el-table--small th {
   padding: 2px !important;
@@ -555,11 +627,11 @@ export default {
 
 .meetSize {
   font-size: 16px;
-  color: #54BCBD;
+  color: #54bcbd;
 }
 
 .fontSize {
   font-size: 16px;
-  color: #81B337;
+  color: #81b337;
 }
 </style>

+ 8 - 1
src/views/iosBasicData/overdueFee/index.vue

@@ -23,7 +23,7 @@
         </template>
       </avue-crud>
     </basic-container>
-    <detailsPage v-if="!isShow" :detailData="detailData" @goBack="goBack"></detailsPage>
+    <detailsPage v-if="!isShow" :detailData="detailData" :pageIds="pageIds" @goBack="goBack"></detailsPage>
   </div>
 </template>
 
@@ -36,6 +36,7 @@ export default {
   data() {
     return {
       isShow: true,
+      pageIds: [],
       form: {},
       query: {},
       loading: false,
@@ -159,6 +160,7 @@ export default {
   },
   methods: {
     addButton() {
+      this.pageIds = [];
       this.isShow = false
     },
     copyButton() {
@@ -168,6 +170,10 @@ export default {
       };
     },
     rowEdit(row) {
+      this.pageIds = [];
+      this.data.forEach(item => {
+        this.pageIds.push(item.id);
+      });
       this.detailData = {
         id: row.id
       };
@@ -231,6 +237,7 @@ export default {
     },
     // 详情的返回列表
     goBack() {
+      this.pageIds = [];
       // 初始化数据
       if (JSON.stringify(this.$route.query) != "{}") {
         this.$router.$avueRouter.closeTag();

+ 63 - 15
src/views/ow/owPut/detailsPage.vue

@@ -1373,8 +1373,12 @@ export default {
       saberUserInfo: JSON.parse(localStorage.getItem("saber-userInfo")).content, // 当前登录人个人信息
       selecPickList: [],
       selecPerList: [],
-      pickSearch: {},
-      perSearch: {},
+      pickSearch: {
+        date: dateFormat(new Date(), "yyyy-MM")
+      },
+      perSearch: {
+        date: dateFormat(new Date(), "yyyy-MM")
+      },
       activeName: null,
       pickData: [],
       perData: [],
@@ -2342,6 +2346,9 @@ export default {
           {
             label: "On hire date",
             prop: "polStationEmptyContainerExitDate",
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd HH:mm:ss",
             overHidden: true
           },
           {
@@ -2437,21 +2444,33 @@ export default {
           {
             label: "On hire date",
             prop: "polPreAppearanceDate",
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd HH:mm:ss",
             overHidden: true
           },
           {
             label: "Off hire date",
             prop: "podEmptyContainerReturnDate",
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd HH:mm:ss",
             overHidden: true
           },
           {
             label: "Charge Start date",
             prop: "storageDate",
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd HH:mm:ss",
             overHidden: true
           },
           {
             label: "Charge end date",
             prop: "outboundDate",
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd HH:mm:ss",
             overHidden: true
           },
           {
@@ -3218,6 +3237,12 @@ export default {
       }
     });
     this.saveLocalCurrency(this.deptId);
+    this.perSearch = {
+      date: dateFormat(new Date(), "yyyy-MM")
+    };
+    this.pickSearch = {
+      date: dateFormat(new Date(), "yyyy-MM")
+    };
   },
   methods: {
     lastPage() {
@@ -5152,20 +5177,43 @@ export default {
           if (!this.form.actualBoxNumber) {
             this.form.actualBoxNumber = 0;
           }
-          const loading = this.$loading({
-            lock: true,
-            text: "加载中",
-            spinner: "el-icon-loading",
-            background: "rgba(255,255,255,0.7)"
-          });
-          submit(this.form)
-            .then(res => {
-              this.$message.success("保存成功");
-              this.getDetail(res.data.data.id);
-            })
-            .finally(() => {
-              loading.close();
+          if (this.form.rentTermList.filter(item => !item.rate).length) {
+            this.$confirm("租金条款存在费率为0或空的数据,是否继续保存?", "提示", {
+              confirmButtonText: "确定",
+              cancelButtonText: "取消",
+              type: "warning"
+            }).then(() => {
+              const loading = this.$loading({
+                lock: true,
+                text: "加载中",
+                spinner: "el-icon-loading",
+                background: "rgba(255,255,255,0.7)"
+              });
+              submit(this.form)
+                .then(res => {
+                  this.$message.success("保存成功");
+                  this.getDetail(res.data.data.id);
+                })
+                .finally(() => {
+                  loading.close();
+                });
+            });
+          } else {
+            const loading = this.$loading({
+              lock: true,
+              text: "加载中",
+              spinner: "el-icon-loading",
+              background: "rgba(255,255,255,0.7)"
             });
+            submit(this.form)
+              .then(res => {
+                this.$message.success("保存成功");
+                this.getDetail(res.data.data.id);
+              })
+              .finally(() => {
+                loading.close();
+              });
+          }
         } else {
           return false;
         }

+ 89 - 16
src/views/ow/owTask/detailsPage.vue

@@ -275,6 +275,18 @@
                   style="width: 100%;"
                 ></el-input-number>
               </template>
+              <template slot="cancelNumber">
+                <el-input-number
+                  v-model="form.cancelNumber"
+                  :disabled="fixData || (fixData && form.whetherEnable == '是')"
+                  :min="0"
+                  :max="form.boxNumber - form.suitcaseNum"
+                  :precision="0"
+                  :controls="false"
+                  placeholder="请输入 取消箱量"
+                  style="width: 100%;"
+                ></el-input-number>
+              </template>
             </avue-form>
           </trade-card>
           <trade-card title="箱明细">
@@ -1484,8 +1496,12 @@ export default {
       saberUserInfo: JSON.parse(localStorage.getItem("saber-userInfo")).content, // 当前登录人个人信息
       selecPickList: [],
       selecPerList: [],
-      pickSearch: {},
-      perSearch: {},
+      pickSearch: {
+        date: dateFormat(new Date(), "yyyy-MM")
+      },
+      perSearch: {
+        date: dateFormat(new Date(), "yyyy-MM")
+      },
       activeName: null,
       pickData: [],
       perData: [],
@@ -2115,6 +2131,11 @@ export default {
             disabled: true
           },
           {
+            label: "取消箱量",
+            prop: "cancelNumber",
+            disabled: true
+          },
+          {
             label: "备注",
             prop: "remarks",
             type: "textarea",
@@ -2127,7 +2148,15 @@ export default {
             prop: "workContent",
             type: "textarea",
             minRows: 2,
-            span: 12,
+            span: 6,
+            disabled: false
+          },
+          {
+            label: "箱管备注",
+            prop: "boxTubeRemarks",
+            type: "textarea",
+            minRows: 2,
+            span: 6,
             disabled: false
           }
         ]
@@ -2961,6 +2990,9 @@ export default {
           {
             label: "On hire date",
             prop: "polPreAppearanceDate",
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd HH:mm:ss",
             overHidden: true
           },
           {
@@ -3056,21 +3088,33 @@ export default {
           {
             label: "On hire date",
             prop: "polPreAppearanceDate",
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd HH:mm:ss",
             overHidden: true
           },
           {
             label: "Off hire date",
             prop: "podEmptyContainerReturnDate",
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd HH:mm:ss",
             overHidden: true
           },
           {
             label: "Charge Start date",
             prop: "storageDate",
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd HH:mm:ss",
             overHidden: true
           },
           {
             label: "Charge end date",
             prop: "outboundDate",
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd HH:mm:ss",
             overHidden: true
           },
           {
@@ -3537,6 +3581,12 @@ export default {
       }
     });
     this.saveLocalCurrency(this.deptId);
+    this.perSearch = {
+      date: dateFormat(new Date(), "yyyy-MM")
+    };
+    this.pickSearch = {
+      date: dateFormat(new Date(), "yyyy-MM")
+    };
   },
   computed: {
     //监听 收费是否允许他人编辑
@@ -5758,20 +5808,43 @@ export default {
           if (!this.form.actualBoxNumber) {
             this.form.actualBoxNumber = 0;
           }
-          const loading = this.$loading({
-            lock: true,
-            text: "加载中",
-            spinner: "el-icon-loading",
-            background: "rgba(255,255,255,0.7)"
-          });
-          submit(this.form)
-            .then(res => {
-              this.$message.success("保存成功");
-              this.getDetail(res.data.data.id);
-            })
-            .finally(() => {
-              loading.close();
+          if (this.form.rentTermList.filter(item => !item.rate).length) {
+            this.$confirm("租金条款存在费率为0或空的数据,是否继续保存?", "提示", {
+              confirmButtonText: "确定",
+              cancelButtonText: "取消",
+              type: "warning"
+            }).then(() => {
+              const loading = this.$loading({
+                lock: true,
+                text: "加载中",
+                spinner: "el-icon-loading",
+                background: "rgba(255,255,255,0.7)"
+              });
+              submit(this.form)
+                .then(res => {
+                  this.$message.success("保存成功");
+                  this.getDetail(res.data.data.id);
+                })
+                .finally(() => {
+                  loading.close();
+                });
+            });
+          } else {
+            const loading = this.$loading({
+              lock: true,
+              text: "加载中",
+              spinner: "el-icon-loading",
+              background: "rgba(255,255,255,0.7)"
             });
+            submit(this.form)
+              .then(res => {
+                this.$message.success("保存成功");
+                this.getDetail(res.data.data.id);
+              })
+              .finally(() => {
+                loading.close();
+              });
+          }
         } else {
           return false;
         }

+ 6 - 0
src/views/ow/owTask/index.vue

@@ -226,6 +226,12 @@ export default {
             overHidden: true
           },
           {
+            label: "取消箱量",
+            prop: "cancelNumber",
+            width: 70,
+            overHidden: true
+          },
+          {
             label: "提单号",
             prop: "mblno",
             width: 100,