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

1.放箱号新加批量修改pod
2.放箱号 明细不允许新增和编辑
3.箱档案 放箱号类型OW允许编辑
4.客户订舱 明细几个按钮都加上保存接口
5.客户托书 生成订单前走保存接口

Qukatie 4 недель назад
Родитель
Сommit
881a5dff91

+ 7 - 0
src/api/boxManagement/containerNumber/index.js

@@ -98,4 +98,11 @@ export const getContainerNumberOccupationRecord = (params) => {
     method: 'get',
     params:params
   })
+}
+export const batchUpdatePod = (params) => {
+  return request({
+    url: '/api/blade-los/putbox/batchUpdatePod' ,
+    method: 'get',
+    params:params
+  })
 }

+ 20 - 9
src/views/basicData/container/archives.vue

@@ -11,14 +11,9 @@
       :before-open="beforeOpen"
       @on-load="onLoad"
       @row-save="rowSave"
-      @row-update="
-        (row, index, done, loading) => {
-          rowSave(row, done, loading, index);
-        }
-      "
+      @row-update="rowUpdate"
       @search-change="searchChange"
       :upload-delete="uploadDelete"
-      :before-close="beforeClose"
       @row-del="rowDel"
       @refresh-change="refreshChange"
       @resetColumn="resetColumnTwo('crud', 'option', 'optionList', 234)"
@@ -49,6 +44,9 @@
       <template slot-scope="{ type, size, row, index, disabled }" slot="code">
         <span class="el-button--text" style="cursor: pointer" @click="track(row)">{{ row.code }}</span>
       </template>
+      <template slot-scope="{ type, size, row, index, disabled }" slot="menu">
+        <el-button size="small" :disabled="disabled" type="text" @click="$refs.crud.rowEdit(row, index)">编辑 </el-button>
+      </template>
     </avue-crud>
     <el-dialog
       title="箱轨迹"
@@ -367,6 +365,7 @@ export default {
         dialogDrag: true,
         addBtn: false,
         delBtn: false,
+        viewBtn: false,
         editBtn: false,
         saveBtn: false,
         cancelBtnText: "关闭",
@@ -379,7 +378,7 @@ export default {
         searchMenuSpan: 18,
         searchIcon: true,
         searchIndex: 3,
-        menuWidth: 80,
+        menuWidth: 60,
         highlightCurrentRow: true,
         dialogWidth: "70%",
         column: [
@@ -508,9 +507,15 @@ export default {
             label: "放箱号类型OW",
             prop: "containerNumberTypeOw",
             width: 110,
-            labelWidth:100,
+            labelWidth: 100,
+            type: "select",
+            dicUrl: "/api/blade-system/dict-biz/dictionary?code=boxCategory",
+            props: {
+              label: "dictValue",
+              value: "dictValue"
+            },
             overHidden: true,
-            disabled: true
+            disabled: false
           },
           {
             label: "箱东",
@@ -969,6 +974,12 @@ export default {
         this.onLoad(this.page, this.search);
       });
     },
+    rowUpdate(row, index, done, loading) {
+      done();
+      addUpdate(row).then(res => {
+        this.onLoad(this.page, this.search);
+      });
+    },
     searchChange(params, done) {
       done();
       this.onLoad(this.page, params);

+ 18 - 2
src/views/boxManagement/boxAdjustment/index.vue

@@ -40,6 +40,19 @@
         <template slot="contractNo" slot-scope="{ row }">
           <span style="color: #1e9fff;cursor: pointer;" @click="rowEdit(row)">{{ row.contractNo }}</span>
         </template>
+        <template slot="accountStatus" slot-scope="{ row }">
+          <div>
+            <span
+              v-if="row.accountStatus == item.dictKey"
+              v-for="(item, index) in accountStatusData"
+              :key="index"
+              :style="{ 'background-color': item.colour }"
+              style="color: #fff;border-radius: 30px;padding: 2px 15px;text-align: center;"
+            >
+              {{ item.dictValue }}
+            </span>
+          </div>
+        </template>
       </avue-crud>
     </basic-container>
     <detailsPage v-if="!isShow" :detailData="detailData" @goBack="goBack"></detailsPage>
@@ -56,6 +69,7 @@ export default {
   name: "箱管调箱",
   data() {
     return {
+      accountStatusData: [],
       isShow: true,
       form: {},
       query: {
@@ -277,8 +291,7 @@ export default {
           //   label: "财务状态",
           //   prop: "accountStatus",
           //   type: "select",
-          //   dicUrl:
-          //     "/api/blade-system/dict-biz/dictionary?code=account_status",
+          //   dicUrl: "/api/blade-system/dict-biz/dictionary?code=account_status",
           //   props: {
           //     label: "dictValue",
           //     value: "dictKey"
@@ -326,6 +339,9 @@ export default {
   },
   async created() {
     this.option = await this.getColumnData(this.getColumnName(478), this.optionBack);
+    getWorkDicts("account_status").then(res => {
+      this.accountStatusData = res.data.data;
+    });
   },
   activated() {
     setTimeout(() => {

+ 120 - 91
src/views/boxManagement/boxCost/index.vue

@@ -1,24 +1,35 @@
 <template>
   <div>
     <basic-container v-if="isShow">
-      <avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" :search.sync="query"
-        v-model="form" id="out-table" :header-cell-class-name="headerClassName" ref="crud" @row-del="rowDel"
-        @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
-        @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange"
+      <avue-crud
+        :option="option"
+        :table-loading="loading"
+        :data="data"
+        :page.sync="page"
+        :search.sync="query"
+        v-model="form"
+        id="out-table"
+        :header-cell-class-name="headerClassName"
+        ref="crud"
+        @row-del="rowDel"
+        @search-change="searchChange"
+        @search-reset="searchReset"
+        @selection-change="selectionChange"
+        @current-change="currentChange"
+        @size-change="sizeChange"
+        @refresh-change="refreshChange"
         @resetColumn="resetColumn('crud', 'option', 'optionBack', 476)"
-        @saveColumn="saveColumn('crud', 'option', 'optionBack', 476)" @on-load="onLoad">
+        @saveColumn="saveColumn('crud', 'option', 'optionBack', 476)"
+        @on-load="onLoad"
+      >
         <template slot="menuLeft">
-          <el-button type="primary" size="small" icon="el-icon-plus" @click="addButton">创建单据
-          </el-button>
-          <el-button type="success" size="small" :disabled="selectionList.length != 1" @click="copyButton">复制单据
-          </el-button>
-          <el-button type="warning" size="small" disabled @click="outExport">导 出
-          </el-button>
+          <el-button type="primary" size="small" icon="el-icon-plus" @click="addButton">创建单据 </el-button>
+          <el-button type="success" size="small" :disabled="selectionList.length != 1" @click="copyButton">复制单据 </el-button>
+          <el-button type="warning" size="small" disabled @click="outExport">导 出 </el-button>
         </template>
         <template slot="menu" slot-scope="{ row, index }">
           <el-button size="small" icon="el-icon-edit" type="text" @click="rowEdit(row)">编辑</el-button>
-          <el-button size="small" icon="el-icon-delete" type="text" @click="rowDel(row, index)"
-            :disabled="row.count > 0">删 除</el-button>
+          <el-button size="small" icon="el-icon-delete" type="text" @click="rowDel(row, index)" :disabled="row.count > 0">删 除</el-button>
         </template>
         <template slot="sysNo" slot-scope="{ row }">
           <span style="color: #1e9fff;cursor: pointer;" @click="rowEdit(row)">{{ row.sysNo }}</span>
@@ -29,6 +40,19 @@
         <template slot="contractNo" slot-scope="{ row }">
           <span style="color: #1e9fff;cursor: pointer;" @click="rowEdit(row)">{{ row.contractNo }}</span>
         </template>
+        <template slot="accountStatus" slot-scope="{ row }">
+          <div>
+            <span
+              v-if="row.accountStatus == item.dictKey"
+              v-for="(item, index) in accountStatusData"
+              :key="index"
+              :style="{ 'background-color': item.colour }"
+              style="color: #fff;border-radius: 30px;padding: 2px 15px;text-align: center;"
+            >
+              {{ item.dictValue }}
+            </span>
+          </div>
+        </template>
       </avue-crud>
     </basic-container>
     <detailsPage v-if="!isShow" :detailData="detailData" @goBack="goBack"></detailsPage>
@@ -45,10 +69,11 @@ export default {
   name: "箱管费用",
   data() {
     return {
+      accountStatusData: [],
       isShow: true,
       form: {},
       query: {
-        type: "XGFY",
+        type: "XGFY"
       },
       loading: false,
       page: {
@@ -59,7 +84,7 @@ export default {
       selectionList: [],
       option: {},
       optionBack: {
-        height: 'auto',
+        height: "auto",
         calcHeight: 30,
         menuWidth: 140,
         tip: false,
@@ -73,53 +98,53 @@ export default {
         delBtn: false,
         selection: true,
         searchIcon: true,
-        align: 'center',
+        align: "center",
         searchIndex: 3,
         summaryText: "合计",
         showSummary: true,
         sumColumnList: [
           {
-            name: 'totalAmount',
-            type: 'sum',
+            name: "totalAmount",
+            type: "sum",
             decimals: 2
           }
         ],
         column: [
           {
-            label: '结算单位',
-            prop: 'purchaseCompanyName',
+            label: "结算单位",
+            prop: "purchaseCompanyName",
             overHidden: true,
             search: true,
             searchOrder: 1,
-            type: 'select',
+            type: "select",
             filterable: true,
             remote: true,
             dicUrl: "/api/blade-los/bcorps/selectList?status=0&current=1&size=5&shortName={{key}}",
             props: {
-              label: 'shortName',
-              value: 'shortName',
-              desc: 'code',
-              res: 'data.records'
+              label: "shortName",
+              value: "shortName",
+              desc: "code",
+              res: "data.records"
             }
           },
           {
-            label: '系统号',
-            prop: 'sysNo',
-            overHidden: true,
+            label: "系统号",
+            prop: "sysNo",
+            overHidden: true
           },
           {
-            label: '合同号',
-            prop: 'contractNo',
+            label: "合同号",
+            prop: "contractNo",
             search: true,
             searchOrder: 2,
             overHidden: true
           },
           {
-            label: '业务日期',
-            prop: 'purchaseDate',
+            label: "业务日期",
+            prop: "purchaseDate",
             search: true,
             searchOrder: 3,
-            searchProp: 'purchaseDateList',
+            searchProp: "purchaseDateList",
             overHidden: true,
             type: "date",
             searchRange: true,
@@ -128,25 +153,25 @@ export default {
             valueFormat: "yyyy-MM-dd HH:mm:ss"
           },
           {
-            label: '箱量',
-            prop: 'boxNumber',
+            label: "箱量",
+            prop: "boxNumber",
             overHidden: true
           },
           {
-            label: '业务状态',
-            prop: 'buxStaus',
+            label: "业务状态",
+            prop: "buxStaus",
             overHidden: true,
             search: true,
             searchOrder: 4,
-            type: 'select',
+            type: "select",
             dicData: [
               {
-                label: '录入',
-                value: '录入',
+                label: "录入",
+                value: "录入"
               },
               {
-                label: '已确认',
-                value: '已确认',
+                label: "已确认",
+                value: "已确认"
               }
             ]
           },
@@ -154,8 +179,7 @@ export default {
           //   label: "财务状态",
           //   prop: "accountStatus",
           //   type: "select",
-          //   dicUrl:
-          //     "/api/blade-system/dict-biz/dictionary?code=account_status",
+          //   dicUrl: "/api/blade-system/dict-biz/dictionary?code=account_status",
           //   props: {
           //     label: "dictValue",
           //     value: "dictKey"
@@ -167,8 +191,9 @@ export default {
             label: "制单人",
             prop: "createUserName",
             overHidden: true,
-            width: 80,
-          }, {
+            width: 80
+          },
+          {
             label: "制单日期",
             prop: "createTime",
             type: "date",
@@ -176,12 +201,14 @@ export default {
             width: 100,
             format: "yyyy-MM-dd",
             valueFormat: "yyyy-MM-dd HH:mm:ss"
-          }, {
+          },
+          {
             label: "修改人",
             prop: "updateUserName",
             overHidden: true,
-            width: 80,
-          }, {
+            width: 80
+          },
+          {
             label: "修改日期",
             prop: "updateTime",
             type: "date",
@@ -192,7 +219,7 @@ export default {
           }
         ]
       },
-      data: [],
+      data: []
     };
   },
   components: {
@@ -200,13 +227,16 @@ export default {
   },
   async created() {
     this.option = await this.getColumnData(this.getColumnName(476), this.optionBack);
+    getWorkDicts("account_status").then(res => {
+      this.accountStatusData = res.data.data;
+    });
   },
   activated() {
     setTimeout(() => {
       if (this.$route.query.home) {
         this.addButton();
       }
-       if (this.$route.query.id) {
+      if (this.$route.query.id) {
         this.detailData = {
           id: this.$route.query.id
         };
@@ -222,10 +252,10 @@ export default {
   },
   methods: {
     addButton() {
-      this.isShow = false
+      this.isShow = false;
     },
     copyButton() {
-      this.isShow = false
+      this.isShow = false;
       this.detailData = {
         copyId: this.selectionList[0].id
       };
@@ -234,7 +264,7 @@ export default {
       this.detailData = {
         id: row.id
       };
-      this.isShow = false
+      this.isShow = false;
     },
     // 删除
     rowDel(row, index) {
@@ -249,9 +279,8 @@ export default {
         remove({ ids: row.id }).then(res => {
           this.onLoad(this.page, this.query);
           this.$message.success("成功删除");
-        })
-      })
-
+        });
+      });
     },
     searchReset() {
       this.query = this.$options.data().query;
@@ -276,21 +305,23 @@ export default {
       this.onLoad(this.page, this.query);
     },
     onLoad(page, params = {}) {
-      let obj = {}
+      let obj = {};
       obj = {
-        ...Object.assign(params, this.query),
-      }
+        ...Object.assign(params, this.query)
+      };
       this.loading = true;
-      getList(page.currentPage, page.pageSize, obj).then(res => {
-        this.data = res.data.data.records;
-        this.page.total = res.data.data.total;
-        this.$nextTick(() => {
-          this.$refs.crud.doLayout();
-          this.$refs.crud.dicInit();
+      getList(page.currentPage, page.pageSize, obj)
+        .then(res => {
+          this.data = res.data.data.records;
+          this.page.total = res.data.data.total;
+          this.$nextTick(() => {
+            this.$refs.crud.doLayout();
+            this.$refs.crud.dicInit();
+          });
+        })
+        .finally(() => {
+          this.loading = false;
         });
-      }).finally(() => {
-        this.loading = false;
-      })
     },
     // 详情的返回列表
     goBack() {
@@ -301,34 +332,34 @@ export default {
           path: "/boxManagement/boxCost/index"
         });
       }
-      this.detailData = {}
+      this.detailData = {};
       this.isShow = true;
       this.onLoad(this.page, this.query);
     },
     outExport() {
-      let config = { params: { ...this.query } }
+      let config = { params: { ...this.query } };
       if (config.params) {
         for (const propName of Object.keys(config.params)) {
           const value = config.params[propName];
-          if (value !== null && typeof (value) !== "undefined") {
+          if (value !== null && typeof value !== "undefined") {
             if (value instanceof Array) {
               for (const key of Object.keys(value)) {
-                let params = propName + '[' + key + ']';
-                config.params[params] = value[key]
+                let params = propName + "[" + key + "]";
+                config.params[params] = value[key];
               }
-              delete config.params[propName]
+              delete config.params[propName];
             }
           }
         }
       }
       const routeData = this.$router.resolve({
-        path: '/api/blade-los/routecost/exportRouteCost',      //跳转目标窗口的地址
+        path: "/api/blade-los/routecost/exportRouteCost", //跳转目标窗口的地址
         query: {
-          ...config.params,    //括号内是要传递给新窗口的参数
+          ...config.params, //括号内是要传递给新窗口的参数
           identification: this.url
         }
-      })
-      window.open(routeData.href.slice(1, routeData.href.length) + '&' + `${this.website.tokenHeader}=${getToken()}`);
+      });
+      window.open(routeData.href.slice(1, routeData.href.length) + "&" + `${this.website.tokenHeader}=${getToken()}`);
     },
     //自定义列保存
     async saveColumn(ref, option, optionBack, code) {
@@ -342,8 +373,8 @@ export default {
         this.$message.success("保存成功");
         //关闭窗口
         this.$refs[ref].$refs.dialogColumn.columnBox = false;
-        this.selectionList = []
-        this.searchReset()
+        this.selectionList = [];
+        this.searchReset();
       }
     },
     //自定义列重置
@@ -353,27 +384,25 @@ export default {
       if (inSave) {
         this.$message.success("重置成功");
         this.$refs[ref].$refs.dialogColumn.columnBox = false;
-        this.selectionList = []
-        this.searchReset()
+        this.selectionList = [];
+        this.searchReset();
       }
     },
     // 更改表格颜色
     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;
-    },
-
+    }
   }
-}
-
+};
 </script>
 
 <style lang="scss" scoped>
@@ -395,4 +424,4 @@ export default {
 ::v-deep .el-col-md-8 {
   width: 24.33333%;
 }
-</style>
+</style>

+ 176 - 0
src/views/boxManagement/containerNumber/components/batchPod.vue

@@ -0,0 +1,176 @@
+<template>
+  <div>
+    <el-dialog title="批量修改港口" :visible.sync="dialogVisible" append-to-body width="30%" :before-close="handleClose">
+      <avue-form :option="optionForm" v-model="form" ref="form">
+        <tempalte slot="podCname">
+          <dic-select
+            v-model="form.podCname"
+            placeholder="港口"
+            label="code"
+            url="/blade-los/bports/listAll?status=0"
+            :filterable="true"
+            :multiple="true"
+            dataType="string"
+            @selectChange="dicChange('podCname', $event)"
+            :disabled="editDisabled"
+            :slotRight="true"
+            rightLabel="code"
+            multipleStrings
+          ></dic-select>
+        </tempalte>
+      </avue-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible = false" size="mini">取 消</el-button>
+        <el-button type="primary" @click="submit" size="mini">修 改</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { batchUpdatePod } from "@/api/boxManagement/containerNumber/index.js";
+import dicSelect from "@/components/dicSelect/main";
+export default {
+  props: {},
+  components: {
+    dicSelect
+  },
+  data() {
+    return {
+      ids: null,
+      form: {},
+      dialogVisible: false,
+      loading: false,
+      optionForm: {
+        menuBtn: false,
+        span: 24,
+        disabled: false,
+        column: [
+          {
+            label: "目的港",
+            prop: "podCname",
+            disabled: false,
+            rules: [
+              {
+                required: true,
+                message: " ",
+                trigger: "blur"
+              }
+            ]
+          }
+        ]
+      }
+    };
+  },
+  created() {},
+  methods: {
+    openDialog(ids) {
+      this.ids = null;
+      this.form = {};
+      this.ids = ids;
+      this.dialogVisible = true;
+    },
+    dicChange(name, row) {
+      if (name == "podCname") {
+        if (row) {
+          const codes = [];
+          const enNames = [];
+          for (let item of row.multipleData) {
+            codes.push(item.code);
+            enNames.push(item.enName);
+          }
+          this.form.podId = row.ids;
+          this.form.podCname = row.names;
+          this.form.podCode = codes.join(",");
+          this.form.podEname = enNames.join(",");
+        } else {
+          this.form.podId = null;
+          this.form.podCode = null;
+          this.form.podEname = null;
+          this.form.podCname = null;
+        }
+      }
+    },
+    submit() {
+      this.$refs["form"].validate((valid, done) => {
+        done();
+        if (valid) {
+          let obj = {
+            ...this.form,
+            ids: this.ids
+          };
+          const loading = this.$loading({
+            lock: true,
+            text: "加载中",
+            spinner: "el-icon-loading",
+            background: "rgba(255,255,255,0.7)"
+          });
+          batchUpdatePod(obj)
+            .then(res => {
+              this.$message.success("操作成功!");
+              this.dialogVisible = false;
+              this.$emit("getUpdate");
+            })
+            .finally(() => {
+              loading.close();
+            });
+        } else {
+          return false;
+        }
+      });
+    },
+    //自定义列保存
+    async saveColumn(ref, option, optionBack, code) {
+      /**
+       * 已定义全局方法,直接使用,saveColumnData保存列数据方法,参数传值(表格名称,当前表格的option数据)
+       * 已定义全局方法,直接使用,getColumnName方法用来获取枚举值,参数根据自己定义的code值获取中文名
+       * 一定要执行异步操作,要等接口成功返回,才能执行下一行代码
+       */
+      const inSave = await this.saveColumnData(this.getColumnName(code), this[option]);
+      if (inSave) {
+        this.$message.success("保存成功");
+        //关闭窗口
+        this.$refs[ref].$refs.dialogColumn.columnBox = false;
+        this.searchReset();
+      }
+    },
+    //自定义列重置
+    async resetColumn(ref, option, optionBack, code) {
+      this[option] = this[optionBack];
+      const inSave = await this.delColumnData(this.getColumnName(code), this[optionBack]);
+      if (inSave) {
+        this.$message.success("重置成功");
+        this.$refs[ref].$refs.dialogColumn.columnBox = false;
+      }
+    },
+
+    // 更改表格颜色
+    headerClassName(tab) {
+      //颜色间隔
+      let back = "";
+      if (tab.columnIndex >= 0 && tab.column.level === 1) {
+        if (tab.columnIndex % 2 === 0) {
+          back = "back-one";
+        } else if (tab.columnIndex % 2 === 1) {
+          back = "back-two";
+        }
+      }
+      return back;
+    }
+  }
+};
+</script>
+
+<style scoped>
+::v-deep#out-table .back-one {
+  background: #ecf5ff !important;
+  text-align: center;
+  padding: 4px 0;
+}
+
+::v-deep#out-table .back-two {
+  background: #ecf5ff !important;
+  text-align: center;
+  padding: 4px 0;
+}
+</style>

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

@@ -284,11 +284,10 @@
           @saveColumn="saveColumn('crud', 'option', 'optionBack', 460)"
         >
           <template slot="menuLeft">
-            <el-button type="info" plain size="small" :disabled="editDisabled || searchStatus" @click="allClick('一键保存')">一键保存</el-button>
+            <!-- <el-button type="info" plain size="small" :disabled="editDisabled || searchStatus" @click="allClick('一键保存')">一键保存</el-button>
             <el-button type="info" plain size="small" :disabled="editDisabled || searchStatus" @click="allClick('一键编辑')">一键编辑</el-button>
             <el-button type="danger" plain size="small" :disabled="editDisabled || selectionList.length == 0||form.whetherManuallyCreate==1" @click="allClick('批量删除')"
-              >批量删除</el-button
-            >
+              >批量删除</el-button> -->
             <el-button type="success" size="small" :disabled="!form.id" @click="allClick('导出')">导出</el-button>
             <el-button type="info" size="small" @click="allClick('选定更改箱东')" :disabled="editDisabled || selectionList.length == 0"
               >选定更改箱东</el-button
@@ -303,9 +302,9 @@
           <template slot="indexHeader" slot-scope="{ row, index }">
             <el-button type="primary" size="mini" icon="el-icon-plus" :disabled="editDisabled || searchStatus||form.whetherManuallyCreate==1" 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> -->
           <template slot="boxCodeSearch">
             <el-input v-model="query.boxCode" size="small" placeholder="请输入箱号 多个箱号用空格区分" type="textarea" autosize></el-input>
           </template>
@@ -967,16 +966,17 @@ export default {
         delBtn: false,
         refreshBtn: false,
         selection: true,
+        index:true,
         align: "center",
         menu: false,
         column: [
-          {
-            label: "index",
-            prop: "index",
-            width: "55",
-            fixed: true,
-            headerslot: true
-          },
+          // {
+          //   label: "index",
+          //   prop: "index",
+          //   width: "55",
+          //   fixed: true,
+          //   headerslot: true
+          // },
           {
             label: "箱号",
             prop: "boxCode",

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

@@ -33,6 +33,7 @@
           <!-- <el-button type="warning" size="small" @click="outExport">导 出
                     </el-button> -->
           <el-button type="success" size="small" :disabled="selectionList.length != 1" @click="copyButton">复制单据 </el-button>
+          <el-button type="success" size="small" :disabled="selectionList.length == 0" @click="fixPod">批量修改POD </el-button>
         </template>
         <template slot="menu" slot-scope="{ row, index }">
           <el-button size="small" icon="el-icon-edit" type="text" @click="rowEdit(row)">编辑</el-button>
@@ -44,8 +45,8 @@
           <span style="color: #1e9fff;cursor: pointer;" @click="rowEdit(row)">{{ row.sysNo }}</span>
         </template>
         <template slot="boxEastName" slot-scope="{ row }">
-          <span v-if="row.boxClass=='OW(拿)'" style="color: #1e9fff;cursor: pointer;" @click="rowEdit(row)">WINFAST</span>
-          <span v-if="row.boxClass!='OW(拿)'" style="color: #1e9fff;cursor: pointer;" @click="rowEdit(row)">{{ row.boxEastName }}</span>
+          <span v-if="row.boxClass == 'OW(拿)'" style="color: #1e9fff;cursor: pointer;" @click="rowEdit(row)">WINFAST</span>
+          <span v-if="row.boxClass != 'OW(拿)'" style="color: #1e9fff;cursor: pointer;" @click="rowEdit(row)">{{ row.boxEastName }}</span>
         </template>
         <template slot="containerNumber" slot-scope="{ row }">
           <span style="color: #1e9fff;cursor: pointer;" @click="rowEdit(row)">{{ row.containerNumber }}</span>
@@ -53,6 +54,7 @@
       </avue-crud>
     </basic-container>
     <detailsPage v-if="!isShow" :detailData="detailData" @goBack="goBack"></detailsPage>
+    <batch-pod ref="batchPod" @getUpdate="refreshChange"></batch-pod>
   </div>
 </template>
 
@@ -61,9 +63,10 @@ import { getList, remove } from "@/api/boxManagement/containerNumber/index.js";
 import { getWorkDicts } from "@/api/system/dictbiz";
 import detailsPage from "./detailsPage";
 import { getToken } from "@/util/auth";
+import batchPod from "./components/batchPod.vue";
 import _ from "lodash";
 export default {
-  name:'放箱号',
+  name: "放箱号",
   data() {
     return {
       isShow: true,
@@ -485,7 +488,8 @@ export default {
     };
   },
   components: {
-    detailsPage
+    detailsPage,
+    batchPod
   },
   async created() {
     this.option = await this.getColumnData(this.getColumnName(459), this.optionBack);
@@ -516,6 +520,16 @@ export default {
         copyId: this.selectionList[0].id
       };
     },
+    fixPod() {
+      if (this.selectionList.length==0) {
+        return this.$message.error("请选择数据");
+      }
+      let ids = [];
+      for (let item of this.selectionList) {
+        ids.push(item.id);
+      }
+      this.$refs.batchPod.openDialog(ids.join(","));
+    },
     rowEdit(row) {
       this.detailData = {
         id: row.id

+ 1066 - 933
src/views/iosBasicData/businessCenter/customerBooking/components/DistributionBox/containers.vue

@@ -1,172 +1,232 @@
 <template>
-    <div>
-        <avue-crud :option="option" :table-loading="loading" :data="assemblyForm.containersList"
-            :permission="permissionList" :before-open="beforeOpen" v-model="form" id="out-table"
-            :header-cell-class-name="headerClassName" ref="crud" :row-style="{ height: '20px' }"
-            :cell-style="{ padding: '0px' }" @row-update="rowUpdate" @row-save="rowSave" @row-del="rowDel"
-            @selection-change="selectionChange" @refresh-change="refreshChange">
-            <template slot="menuLeft">
-                <div style="display: flex;align-items: center;justify-content: space-between">
-                    <div>
-                        <!--<el-button type="primary" size="small" @click="DistributionBox">配箱</el-button>-->
-                        <el-button type="success" size="small" plain :disabled="seeDisabled||pleasereviewType||showLock"
-                            @click.stop="equalDistribution2()">配箱
-                        </el-button>
-                        <!-- <el-button type="success" size="small" plain :disabled="seeDisabled||pleasereviewType||showLock"
+  <div>
+    <avue-crud
+      :option="option"
+      :table-loading="loading"
+      :data="assemblyForm.containersList"
+      :permission="permissionList"
+      :before-open="beforeOpen"
+      v-model="form"
+      id="out-table"
+      :header-cell-class-name="headerClassName"
+      ref="crud"
+      :row-style="{ height: '20px' }"
+      :cell-style="{ padding: '0px' }"
+      @row-update="rowUpdate"
+      @row-save="rowSave"
+      @row-del="rowDel"
+      @selection-change="selectionChange"
+      @refresh-change="refreshChange"
+    >
+      <template slot="menuLeft">
+        <div style="display: flex;align-items: center;justify-content: space-between">
+          <div>
+            <!--<el-button type="primary" size="small" @click="DistributionBox">配箱</el-button>-->
+            <el-button type="success" size="small" plain :disabled="seeDisabled || pleasereviewType || showLock" @click.stop="equalDistribution2()"
+              >配箱
+            </el-button>
+            <!-- <el-button type="success" size="small" plain :disabled="seeDisabled||pleasereviewType||showLock"
                             @click.stop="equalDistribution(1)">按TEU配箱
                         </el-button>
                         <el-button type="success" size="small" plain :disabled="seeDisabled||pleasereviewType||showLock"
                             @click.stop="equalDistribution(2)">按箱量配箱
                         </el-button> -->
-                        <el-button type="primary" size="small"
-                            :disabled="detailData.seeDisabled || pleasereviewType || showLock" @click="rootEditfun">一键编辑
-                        </el-button>
-                        <el-button type="primary" size="small"
-                            :disabled="detailData.seeDisabled || pleasereviewType || showLock"
-                            @click="containersSubmitListfun">一键保存
-                        </el-button>
-                        <el-button type="success" size="small"
-                            :disabled="detailData.seeDisabled || !assemblyForm.id || pleasereviewType || showLock"
-                            @click="oepnexcelBox">导入箱号铅封号
-                        </el-button>
-                        <!-- <el-button type="success" size="small" :loading="loadingButton"
+            <el-button type="primary" size="small" :disabled="detailData.seeDisabled || pleasereviewType || showLock" @click="rootEditfun"
+              >一键编辑
+            </el-button>
+            <el-button type="primary" size="small" :disabled="detailData.seeDisabled || pleasereviewType || showLock" @click="containersSubmitListfun"
+              >一键保存
+            </el-button>
+            <el-button
+              type="success"
+              size="small"
+              :disabled="detailData.seeDisabled || !assemblyForm.id || pleasereviewType || showLock"
+              @click="oepnexcelBox"
+              >导入箱号铅封号
+            </el-button>
+            <!-- <el-button type="success" size="small" :loading="loadingButton"
                                 :disabled="detailData.seeDisabled || !assemblyForm.id || pleasereviewType || showLock"
                                 @click="extractBoxInformation">提取箱信息
                             </el-button> -->
-                        <el-button type="warning" size="small"
-                            :disabled="detailData.seeDisabled || pleasereviewType || showLock"
-                            @click="cleanCntrNofun">清除箱号
-                        </el-button>
-                        <el-button type="danger" size="small"
-                            :disabled="detailData.seeDisabled || pleasereviewType || showLock" @click="revokefun">选定撤销
-                        </el-button>
-                        <el-button type="danger" size="small"
-                            :disabled="detailData.seeDisabled || pleasereviewType || showLock"
-                            @click="wholeRevokefun">全部撤销
-                        </el-button>
-                        <el-button type="danger" size="small"
-                            :disabled="detailData.seeDisabled || pleasereviewType || showLock"
-                            @click="handleDelete">删除配箱
-                        </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>
-            <template slot-scope="scope" slot="cntrNo">
-                <el-input v-if="scope.row.edit" v-model="scope.row.cntrNo" maxlength='11' size="small" clearable
-                    placeholder="请输入箱号" @input="cntrNoInput(scope.row, 'cntrNo')"
-                    @change="verifyChange(scope.row, 'cntrNo')"></el-input>
-                <span v-else>{{ scope.row.cntrNo }}</span>
-            </template>
-            <template slot-scope="scope" slot="sealNo">
-                <el-input v-if="scope.row.edit" v-model="scope.row.sealNo" maxlength='11' size="small" clearable
-                    placeholder="请输入封号" @input="cntrNoInput(scope.row, 'sealNo')"></el-input>
-                <span v-else>{{ scope.row.sealNo }}</span>
-            </template>
-            <template slot-scope="scope" slot="quantity">
-                <el-input v-if="scope.row.edit" v-model="scope.row.quantity" size="small" clearable
-                    placeholder="请输入件数"></el-input>
-                <span v-else>{{ Number(scope.row.quantity).toFixed(0) }}</span>
-            </template>
-            <template slot-scope="scope" slot="grossWeight">
-                <el-input v-if="scope.row.edit" v-model="scope.row.grossWeight" size="small" clearable
-                    placeholder="请输入毛重" @change="computeChange(scope.row)"></el-input>
-                <span v-else>{{ scope.row.grossWeight }}</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>
-            </template>
-            <template slot-scope="scope" slot="measurement">
-                <el-input v-if="scope.row.edit" v-model="scope.row.measurement" size="small" clearable
-                    placeholder="请输入尺码"></el-input>
-                <span v-else>{{ scope.row.measurement }}</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>
-            <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>
-            <template slot-scope="{row}" slot="tare">
-                <el-input v-if="row.edit" v-model="row.tare" size="small" clearable placeholder="请输入箱皮重"
-                    @change="computeChange(row)"></el-input>
-                <span v-else>{{ row.tare }}</span>
-            </template>
-            <!-- <template slot-scope="{row}" slot="vgmWeight">
+            <el-button type="warning" size="small" :disabled="detailData.seeDisabled || pleasereviewType || showLock" @click="cleanCntrNofun"
+              >清除箱号
+            </el-button>
+            <el-button type="danger" size="small" :disabled="detailData.seeDisabled || pleasereviewType || showLock" @click="revokefun"
+              >选定撤销
+            </el-button>
+            <el-button type="danger" size="small" :disabled="detailData.seeDisabled || pleasereviewType || showLock" @click="wholeRevokefun"
+              >全部撤销
+            </el-button>
+            <el-button type="danger" size="small" :disabled="detailData.seeDisabled || pleasereviewType || showLock" @click="handleDelete"
+              >删除配箱
+            </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>
+      <template slot-scope="scope" slot="cntrNo">
+        <el-input
+          v-if="scope.row.edit"
+          v-model="scope.row.cntrNo"
+          maxlength="11"
+          size="small"
+          clearable
+          placeholder="请输入箱号"
+          @input="cntrNoInput(scope.row, 'cntrNo')"
+          @change="verifyChange(scope.row, 'cntrNo')"
+        ></el-input>
+        <span v-else>{{ scope.row.cntrNo }}</span>
+      </template>
+      <template slot-scope="scope" slot="sealNo">
+        <el-input
+          v-if="scope.row.edit"
+          v-model="scope.row.sealNo"
+          maxlength="11"
+          size="small"
+          clearable
+          placeholder="请输入封号"
+          @input="cntrNoInput(scope.row, 'sealNo')"
+        ></el-input>
+        <span v-else>{{ scope.row.sealNo }}</span>
+      </template>
+      <template slot-scope="scope" slot="quantity">
+        <el-input v-if="scope.row.edit" v-model="scope.row.quantity" size="small" clearable placeholder="请输入件数"></el-input>
+        <span v-else>{{ Number(scope.row.quantity).toFixed(0) }}</span>
+      </template>
+      <template slot-scope="scope" slot="grossWeight">
+        <el-input
+          v-if="scope.row.edit"
+          v-model="scope.row.grossWeight"
+          size="small"
+          clearable
+          placeholder="请输入毛重"
+          @change="computeChange(scope.row)"
+        ></el-input>
+        <span v-else>{{ scope.row.grossWeight }}</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>
+      </template>
+      <template slot-scope="scope" slot="measurement">
+        <el-input v-if="scope.row.edit" v-model="scope.row.measurement" size="small" clearable placeholder="请输入尺码"></el-input>
+        <span v-else>{{ scope.row.measurement }}</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>
+      <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>
+      <template slot-scope="{ row }" slot="tare">
+        <el-input v-if="row.edit" v-model="row.tare" size="small" clearable placeholder="请输入箱皮重" @change="computeChange(row)"></el-input>
+        <span v-else>{{ row.tare }}</span>
+      </template>
+      <!-- <template slot-scope="{row}" slot="vgmWeight">
                     <el-input v-if="row.edit" v-model="row.vgmWeight" size="small" clearable
                         placeholder="请输入VGM总重(KGM)"></el-input>
                     <span v-else>{{ row.vgmWeight }}</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>
+      <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>
-            <avue-form :option="excelOption" v-model="excelForm" :table-loading="excelLoading"
-                :upload-before="uploadBefore" :upload-after="onSuccess">
-                <template slot="excelTemplate">
-                    <el-button type="primary" @click="handleGet">
-                        点击下载<i class="el-icon-download el-icon--right"></i>
-                    </el-button>
-                </template>
-            </avue-form>
-            <p style="text-align: center;color: #DC0505">
-                温馨提示 第一次导入时请先下载模板
-            </p>
-        </el-dialog>
+    <el-dialog title="导入箱号,铅封号" append-to-body :visible.sync="excelBox" width="555px" :close-on-click-modal="false" v-dialog-drag>
+      <avue-form :option="excelOption" v-model="excelForm" :table-loading="excelLoading" :upload-before="uploadBefore" :upload-after="onSuccess">
+        <template slot="excelTemplate">
+          <el-button type="primary" @click="handleGet"> 点击下载<i class="el-icon-download el-icon--right"></i> </el-button>
+        </template>
+      </avue-form>
+      <p style="text-align: center;color: #DC0505">
+        温馨提示 第一次导入时请先下载模板
+      </p>
+    </el-dialog>
 
-        <!--提取的数据展示框-->
-        <el-dialog append-to-body title="预览数据" class="el-dialogDeep" :visible.sync="extractDialogvisible" width="80%"
-            :close-on-click-modal="false" :destroy-on-close="true" :close-on-press-escape="false" v-dialog-drag>
-            <extract-box-information :luHaiTongData="luHaiTongData"></extract-box-information>
-            <span slot="footer" class="dialog-footer">
-                <el-button @click="extractDialogvisible = false">取 消</el-button>
-                <el-button type="primary" @click="extractDialogfun">导 入</el-button>
-            </span>
-        </el-dialog>
-        <business-reports :id="assemblyForm.id" :itemIds="itemIds" ref="print" businessValue="HYCK" classifyCode="业务"
-            groupCode="配箱预览" :treeType="false" :type="1"></business-reports>
-
-    </div>
+    <!--提取的数据展示框-->
+    <el-dialog
+      append-to-body
+      title="预览数据"
+      class="el-dialogDeep"
+      :visible.sync="extractDialogvisible"
+      width="80%"
+      :close-on-click-modal="false"
+      :destroy-on-close="true"
+      :close-on-press-escape="false"
+      v-dialog-drag
+    >
+      <extract-box-information :luHaiTongData="luHaiTongData"></extract-box-information>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="extractDialogvisible = false">取 消</el-button>
+        <el-button type="primary" @click="extractDialogfun">导 入</el-button>
+      </span>
+    </el-dialog>
+    <business-reports
+      :id="assemblyForm.id"
+      :itemIds="itemIds"
+      ref="print"
+      businessValue="HYCK"
+      classifyCode="业务"
+      groupCode="配箱预览"
+      :treeType="false"
+      :type="1"
+    ></business-reports>
+  </div>
 </template>
 
 <script>
 import {
-    containersDetail,
-    containersSubmit,
-    containersRemove,
-    containersCleanBoxNo,
-    containersRevoke,
-    containersEqualDistribution,
-    distributionBox,
-    containersSubmitList,
-    containersExportContainers, containersImportBoxNo, containersList, luHaiTongApiDetail
+  containersDetail,
+  containersSubmit,
+  containersRemove,
+  containersCleanBoxNo,
+  containersRevoke,
+  containersEqualDistribution,
+  distributionBox,
+  containersSubmitList,
+  containersExportContainers,
+  containersImportBoxNo,
+  containersList,
+  luHaiTongApiDetail
 } from "@/api/iosBasicData/containers";
+import { submit } from "@/api/iosBasicData/businessCenter/bookingCabin.js";
 import { getAccurate } from "@/api/boxManagement/buyContainer/index.js";
 import { mapGetters } from "vuex";
 import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
@@ -179,818 +239,891 @@ import { billsAdd } from "@/api/iosBasicData/bills";
 import dicSelect from "@/components/dicSelect/main";
 import businessReports from "@/components/tradeAgency/businessReportsJK.vue";
 export default {
-    components: { SearchQuery, bports, extractBoxInformation, dicSelect, businessReports },
-    props: {
-        assemblyForm: {},
-        detailData: {},
-        // 请核禁用
-        pleasereviewType: {
-            type: Boolean,
-            default: false,
-        },
-        showLock: {
-            type: Boolean,
-            default: false
-        }
+  components: { SearchQuery, bports, extractBoxInformation, dicSelect, businessReports },
+  props: {
+    assemblyForm: {},
+    detailData: {},
+    // 请核禁用
+    pleasereviewType: {
+      type: Boolean,
+      default: false
     },
-    data() {
-        return {
-            headers: { "Blade-Auth": "Bearer " + getToken() },
-            // 是否禁用
-            extendedDisabled: false,
-            // 装货港数据
-            polData: [],
-            // 附件配置
-            excelOption: {
-                submitBtn: false,
-                emptyBtn: false,
-                column: [
-                    {
-                        label: "模板下载",
-                        prop: "excelTemplate",
-                        formslot: true,
-                        span: 24
-                    },
-                    {
-                        label: "模板上传",
-                        prop: "excelFile",
-                        type: "upload",
-                        drag: true,
-                        loadText: "模板上传中,请稍等",
-                        span: 24,
-                        propsHttp: {
-                            res: "data"
-                        },
-                        tip: "请上传 .xls,.xlsx 标准格式文件",
-                        action: "/api/blade-los/containers/importBoxNo"
-                    }
-                ]
+    showLock: {
+      type: Boolean,
+      default: false
+    }
+  },
+  data() {
+    return {
+      headers: { "Blade-Auth": "Bearer " + getToken() },
+      // 是否禁用
+      extendedDisabled: false,
+      // 装货港数据
+      polData: [],
+      // 附件配置
+      excelOption: {
+        submitBtn: false,
+        emptyBtn: false,
+        column: [
+          {
+            label: "模板下载",
+            prop: "excelTemplate",
+            formslot: true,
+            span: 24
+          },
+          {
+            label: "模板上传",
+            prop: "excelFile",
+            type: "upload",
+            drag: true,
+            loadText: "模板上传中,请稍等",
+            span: 24,
+            propsHttp: {
+              res: "data"
             },
-            excelForm: {},
-            excelLoading: false,
-            excelBox: false,
-
-            form: {},
-            query: {},
-            loading: false,
-            loadingButton: false,
-            // page: {
-            //   pageSize: 10,
-            //   currentPage: 1,
-            //   total: 0
-            // },
-            selectionList: [],
-            option: {
-                stripe: true,
-                height: '250',
-                calcHeight: 30,
-                tip: false,
-                searchShow: true,
-                searchMenuSpan: 6,
-                border: true,
-                index: true,
-                viewBtn: true,
-                selection: true,
-                dialogClickModal: false,
-                refreshBtn: false,
-                columnBtn: false,
-                menu: false,
-                column: [
-                    {
-                        label: "箱型",
-                        prop: "cntrTypeCode",
-                        width: "100",
-                    },
-                    {
-                        label: "箱号",
-                        prop: "cntrNo",
-                        width: "140",
-                        overHidden: true,
-                    },
-                    {
-                        label: "封号",
-                        prop: "sealNo",
-                        width: "140",
-                        overHidden: true,
-                    },
+            tip: "请上传 .xls,.xlsx 标准格式文件",
+            action: "/api/blade-los/containers/importBoxNo"
+          }
+        ]
+      },
+      excelForm: {},
+      excelLoading: false,
+      excelBox: false,
 
-                    {
-                        label: "件数",
-                        prop: "quantity",
-                        width: "100",
-                    },
-                    {
-                        label: "毛重(KGM)",
-                        prop: "grossWeight",
-                        width: "120",
-                    },
-                    // {
-                    //     label: "净重(KGM)",
-                    //     prop: "netWeight",
-                    //     width: "120",
-                    // },
-                    {
-                        label: "尺码/体积(CBM)",
-                        prop: "measurement",
-                        width: "140",
-                    },
-                    {
-                        label: "箱皮重",
-                        prop: "tare",
-                        width: "140",
-                        overHidden: true,
-                    },
-                    {
-                        label: "VGM总重(KGM)",
-                        prop: "vgmWeight",
-                        width: "140",
-                        overHidden: true,
-                    },
-                    {
-                        label: "备注",
-                        prop: "remarks",
-                        type: 'textarea',
-                        width: 180,
-                        slot: true,
-                        minRows: 3,
-                        span: 24,
-                    },
-                    // {
-                    //     label: "POD堆场",
-                    //     prop: "podStationCname",
-                    //     width: "140",
-                    // },
-                    // {
-                    //     label: "MARKS",
-                    //     prop: "marks",
-                    // },
-                ]
-            },
-            data: [],
-            luHaiTongData: [], // 提取请求到解析的数据
-            extractDialogvisible: false, // 提取请求到的数据展示
+      form: {},
+      query: {},
+      loading: false,
+      loadingButton: false,
+      // page: {
+      //   pageSize: 10,
+      //   currentPage: 1,
+      //   total: 0
+      // },
+      selectionList: [],
+      option: {
+        stripe: true,
+        height: "250",
+        calcHeight: 30,
+        tip: false,
+        searchShow: true,
+        searchMenuSpan: 6,
+        border: true,
+        index: true,
+        viewBtn: true,
+        selection: true,
+        dialogClickModal: false,
+        refreshBtn: false,
+        columnBtn: false,
+        menu: false,
+        column: [
+          {
+            label: "箱型",
+            prop: "cntrTypeCode",
+            width: "100"
+          },
+          {
+            label: "箱号",
+            prop: "cntrNo",
+            width: "140",
+            overHidden: true
+          },
+          {
+            label: "封号",
+            prop: "sealNo",
+            width: "140",
+            overHidden: true
+          },
 
-        };
-    },
-    computed: {
-        ...mapGetters(["permission"]),
-        permissionList() {
-            return {
-                addBtn: this.vaildData(this.permission.containers_add, false),
-                viewBtn: this.vaildData(this.permission.containers_view, false),
-                delBtn: this.vaildData(this.permission.containers_delete, false),
-                editBtn: this.vaildData(this.permission.containers_edit, false)
-            };
-        },
-        ids() {
-            let ids = [];
-            this.selectionList.forEach(ele => {
-                ids.push(ele.id);
-            });
-            return ids.join(",");
+          {
+            label: "件数",
+            prop: "quantity",
+            width: "100"
+          },
+          {
+            label: "毛重(KGM)",
+            prop: "grossWeight",
+            width: "120"
+          },
+          // {
+          //     label: "净重(KGM)",
+          //     prop: "netWeight",
+          //     width: "120",
+          // },
+          {
+            label: "尺码/体积(CBM)",
+            prop: "measurement",
+            width: "140"
+          },
+          {
+            label: "箱皮重",
+            prop: "tare",
+            width: "140",
+            overHidden: true
+          },
+          {
+            label: "VGM总重(KGM)",
+            prop: "vgmWeight",
+            width: "140",
+            overHidden: true
+          },
+          {
+            label: "备注",
+            prop: "remarks",
+            type: "textarea",
+            width: 180,
+            slot: true,
+            minRows: 3,
+            span: 24
+          }
+          // {
+          //     label: "POD堆场",
+          //     prop: "podStationCname",
+          //     width: "140",
+          // },
+          // {
+          //     label: "MARKS",
+          //     prop: "marks",
+          // },
+        ]
+      },
+      data: [],
+      luHaiTongData: [], // 提取请求到解析的数据
+      extractDialogvisible: false // 提取请求到的数据展示
+    };
+  },
+  computed: {
+    ...mapGetters(["permission"]),
+    permissionList() {
+      return {
+        addBtn: this.vaildData(this.permission.containers_add, false),
+        viewBtn: this.vaildData(this.permission.containers_view, false),
+        delBtn: this.vaildData(this.permission.containers_delete, false),
+        editBtn: this.vaildData(this.permission.containers_edit, false)
+      };
+    },
+    ids() {
+      let ids = [];
+      this.selectionList.forEach(ele => {
+        ids.push(ele.id);
+      });
+      return ids.join(",");
+    }
+  },
+  created() {},
+  methods: {
+    computeChange(row) {
+      row.vgmWeight = Number(Number(row.grossWeight ? row.grossWeight : 0) + Number(row.tare ? row.tare : 0)).toFixed(3);
+    },
+    rowDicChange(name, row, el) {
+      if (name == "podStationCname") {
+        if (row) {
+          el.podStationId = row.id;
+          el.podStationCode = row.code;
+          el.podStationEname = row.enName;
+        } else {
+          el.podStationId = null;
+          el.podStationCode = null;
+          el.podStationEname = null;
+          el.podStationCname = null;
         }
+      }
     },
-    created() { },
-    methods: {
-        computeChange(row) {
-            row.vgmWeight = Number(Number(row.grossWeight ? row.grossWeight : 0) + Number(row.tare ? row.tare : 0)).toFixed(3)
-        },
-        rowDicChange(name, row, el) {
-            if (name == 'podStationCname') {
-                if (row) {
-                    el.podStationId = row.id
-                    el.podStationCode = row.code
-                    el.podStationEname = row.enName
-                } else {
-                    el.podStationId = null
-                    el.podStationCode = null
-                    el.podStationEname = null
-                    el.podStationCname = null
-                }
-            }
-        },
-        // 提取箱信息
-        extractBoxInformation() {
-            if (!this.assemblyForm.id) {
-                return this.$message.warning('请先保存数据')
-            }
-            if (!this.assemblyForm.mblno) {
-                return this.$message.warning('请先填写MB/L NO')
-            }
-            if (!this.assemblyForm.cyCode) {
-                return this.$message.warning('请先选择场站')
-            }
-            if (this.assemblyForm.containersList.length == 0) {
-                return this.$message.warning('请先进行配箱')
-            }
-            this.loadingButton = true
-            luHaiTongApiDetail({
-                billNo: this.assemblyForm.mblno,
-                station: this.assemblyForm.cyCode
-            }).then(res => {
-                this.loadingButton = false
-                this.luHaiTongData = decryptLhtData(JSON.parse(res.data.data).data)
-                console.log(this.luHaiTongData, 348)
-                if (this.luHaiTongData.containerCargoInfos.length == 0) {
-                    return this.$message.warning('提取到的数据为空')
-                }
-                this.extractDialogvisible = true
-            })
-        },
-        // 提取箱信息弹窗里的导入
-        extractDialogfun() {
-            // if (this.assemblyForm.containersList.length != this.luHaiTongData.containerCargoInfos.length) {
-            //     this.$confirm(`箱量不相等,委托数量为${this.assemblyForm.containersList.length},场站数量为${this.luHaiTongData.containerCargoInfos.length}?是否继续`, '提示', {
-            //         confirmButtonText: '确定',
-            //         cancelButtonText: '取消',
-            //         type: 'warning'
-            //     }).then(()=>{
-            //         this.extractionProcessing()
-            //     }).catch(()=>{
-            //         return
-            //     })
-            // }else {
-            //     this.extractionProcessing()
-            // }
-            this.extractionProcessing()
-        },
-        // 数据处理
-        extractionProcessing() {
-            let returnType = 0 // 判断是否需要合计
-            // 把请求到的箱号和封号赋值
-            this.luHaiTongData.containerCargoInfos.map((luHaiTongItem, luHaiTongIndex) => {
-                if (!this.assemblyForm.containersList[luHaiTongIndex].cyCntrCode) {
-                    return this.$message.warning('请先去基础资料集装箱里维护数据')
-                }
-                if ((luHaiTongItem.size + '' + luHaiTongItem.property) == this.assemblyForm.containersList[luHaiTongIndex].cyCntrCode) {
-                    this.assemblyForm.containersList[luHaiTongIndex].cntrNo = luHaiTongItem.containerNo
-                    this.assemblyForm.containersList[luHaiTongIndex].sealNo = luHaiTongItem.sealNo
-                    // 判断没有没有返厂时间,如果没有不合计前面的
-                    if (!luHaiTongItem.returnDate) {
-                        returnType++
-                    }
-                }
-            })
-            // 统计提取同一箱号的好件重尺合计赋值
-            let quantitySum = 0
-            let grossWeightSum = 0
-            let measurementSum = 0
-            this.assemblyForm.containersList.map((containersItem, containersIndex) => {
-                let numberSum = 0
-                let weightSum = 0
-                let volSum = 0
-                for (let loadingItem of this.luHaiTongData.loadingInfos) {
-                    if (loadingItem.containerNo == containersItem.cntrNo) {
-                        numberSum += loadingItem.number
-                        weightSum += loadingItem.weight
-                        volSum += loadingItem.vol
-                    }
-                }
-                containersItem.quantity = numberSum
-                containersItem.grossWeight = weightSum
-                containersItem.measurement = volSum
-                // 把件重尺进行合计判断主表件重尺是否相等
-                quantitySum += containersItem.quantity
-                grossWeightSum += containersItem.grossWeight
-                measurementSum += containersItem.measurement
-            })
-            console.log(quantitySum, grossWeightSum, measurementSum, 366)
-            // 判断合计的件重尺是否等于朱标的件重尺
-            if (this.assemblyForm.containersList.length == this.luHaiTongData.containerCargoInfos.length && this.assemblyForm.quantity == quantitySum && this.assemblyForm.grossWeight == grossWeightSum && this.assemblyForm.measurement == measurementSum) {
-                this.extractDialogvisible = false
-                this.$emit('billsAddfun') // 全都相等直接走大保存
-            } else {
-                this.$alert('<div>委托:箱数,件重尺 场站:箱数,件重尺不相等</div>' +
-                    '<table border="1" width="100%">\n' +
-                    '  <thead>\n' +
-                    '    <tr>\n' +
-                    '      <th></th>\n' +
-                    '      <th>箱数</th>\n' +
-                    '      <th>件数</th>\n' +
-                    '      <th>毛重</th>\n' +
-                    '      <th>尺码</th>\n' +
-                    '    </tr>\n' +
-                    '  </thead>\n' +
-                    '  <tbody>\n' +
-                    '    <tr>\n' +
-                    '      <td>委托</td>\n' +
-                    '      <td>' + this.assemblyForm.containersList.length + '</td>\n' +
-                    '      <td>' + this.assemblyForm.quantity + '</td>\n' +
-                    '      <td>' + this.assemblyForm.grossWeight + '</td>\n' +
-                    '      <td>' + this.assemblyForm.measurement + '</td>\n' +
-                    '    </tr>\n' +
-                    '    <tr>\n' +
-                    '      <td>场站</td>\n' +
-                    '      <td>' + this.luHaiTongData.containerCargoInfos.length + '</td>\n' +
-                    '      <td>' + quantitySum + '</td>\n' +
-                    '      <td>' + grossWeightSum + '</td>\n' +
-                    '      <td>' + measurementSum + '</td>\n' +
-                    '    </tr>\n' +
-                    '  </tbody>\n' +
-                    '</table>', '提示', {
-                    dangerouslyUseHTMLString: true,
-                    confirmButtonText: '确定',
-                    cancelButtonText: '关闭',
-                    // showCancelButton:true,
-                    type: 'warning'
-                }).then(() => {
-                    console.log('确认')
-                    // 箱数不等 不更新前面的
-                    if (this.assemblyForm.containersList.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) {
-                                if (item.cntrTypeCode == ite.cyCntrCode) {
-                                    pieceSum += ite.quantity
-                                    weightSum += ite.grossWeight
-                                    chiSum += ite.measurement
-                                }
-                            }
-                            item.number = pieceSum
-                            item.grossWeight = weightSum
-                            item.measurement = chiSum
-                        }
-                        this.assemblyForm.quantity = quantitySum
-                        this.assemblyForm.grossWeight = grossWeightSum
-                        this.assemblyForm.measurement = measurementSum
-                    }
-                    this.extractDialogvisible = false
-                    this.$emit('billsAddfun') // 全都相等直接走大保存
-                }).catch(() => {
-                    console.log('取消')
-                })
-            }
-        },
-        // 输入自动大写
-        cntrNoInput(row, name) {
-            this.$set(row, name, row[name].toLocaleUpperCase().replace(/[\W]/g, ''))
-        },
-        verifyChange(row, name) {
-            if (row[name]) {
-                getAccurate({ accurate: row[name] }).then(res => {
-                    if (res.data.data.records.length == 0) {
-                        const regex = /^([a-zA-Z]{4})([0-9]{7})$/;
-                        if (regex.test(row[name])) {
-                            if (this.calculateCheckDigit(row[name]) == row[name][10]) {
-                                // this.$message.success('集装箱校验正确!')
-                            } else {
-                                this.$confirm(`<strong><p style='color:#F56C6C'>箱号:${row[name]},格式不正确,是否强制加入系统?</p ></strong>`, '提示', {
-                                    confirmButtonText: '确定',
-                                    cancelButtonText: '取消',
-                                    dangerouslyUseHTMLString:true,
-                                    type: 'warning'
-                                }).then(() => {
-                                    // this.$message({
-                                    //   type: 'success',
-                                    //   message: '删除成功!'
-                                    // });
-                                }).catch(() => {
-                                    this.$set(row, [name], null)
-                                });
-                            }
-                        } else {
-                            this.$confirm(`<strong><p style='color:#F56C6C'>箱号:${row[name]},格式不正确,是否强制加入系统?</p ></strong>`, '提示', {
-                                confirmButtonText: '确定',
-                                cancelButtonText: '取消',
-                                dangerouslyUseHTMLString:true,
-                                type: 'warning'
-                            }).then(() => {
-                                // this.$message({
-                                //   type: 'success',
-                                //   message: '删除成功!'
-                                // });
-                            }).catch(() => {
-                                this.$set(row, [name], null)
-                            });
-                        }
-                    }
-                })
-            }
-        },
-        calculateCheckDigit(containerNo) {
-            let charCode = "0123456789A?BCDEFGHIJK?LMNOPQRSTU?VWXYZ";
-            let num = 0;
-            for (let i = 0; i < 10; i++) {
-                let idx = charCode.indexOf(containerNo[i]);
-                idx = idx * Math.pow(2, i);
-                num += idx;
-            }
-            return num = (num % 11) % 10;
-        },
-        oepnexcelBox() {
-            if (!this.assemblyForm.id) {
-                this.$message({
-                    message: '请先点击右上角保存按钮,保存数据之后才能添加!',
-                    type: 'warning'
-                });
-                return
-            }
-            this.findObject(this.excelOption.column, "excelFile").action = "/api/blade-los/containers/importBoxNo?billId=" + this.assemblyForm.id
-            this.excelBox = true
-        },
-        uploadBefore(file, done, loading) {
-            681169
-            done();
-            loading = true;
-        },
-        // 上传成功
-        onSuccess(res, done, loading, column) {
-            this.excelBox = false;
-            // this.$message.success("导入成功!");
-            this.containersListfun()
-            loading = false;
-            done();
-        },
-        // 箱列表
-        containersListfun() {
-            containersList(1, 100, { pid: this.assemblyForm.id }).then(res => {
-                this.assemblyForm.containersList = res.data.data.records
-            })
-        },
-        equalDistribution2() {
-            if (!this.assemblyForm.id) {
-                this.$message({
-                    message: '请先点击右上角保存按钮,保存数据之后才能添加!',
-                    type: 'warning'
-                });
-                return
-            }
-            this.$confirm("是否确认配箱?", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning"
-            }).then(() => {
-                distributionBox({ billId: this.assemblyForm.id }).then(res => {
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!"
-                    })
-                    this.$emit('billsDetailfun')
-                })
-            })
-
-        },
-        // 平均箱量
-        equalDistribution(type) {
-            if (!this.assemblyForm.id) {
-                this.$message({
-                    message: '请先点击右上角保存按钮,保存数据之后才能添加!',
-                    type: 'warning'
-                });
-                return
-            }
-            if (this.assemblyForm.waitingBoxList.length <= 0) {
-                this.$message({
-                    type: "warning",
-                    message: "请先添加集装箱数据!"
-                });
-                return
-            }
-            if (this.assemblyForm.preContainersList <= 0) {
-                this.$message({
-                    type: "warning",
-                    message: "请先添加箱型数据!"
-                });
-                return
-            }
-            this.$confirm("确定平均分配?", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning"
-            }).then(() => {
-                this.containersEqualDistributionfun(type)
-            })
-
-        },
-        // 平均分配接口
-        containersEqualDistributionfun(type) {
-            containersEqualDistribution({
-                pid: this.assemblyForm.id,
-                type: type,
-                waitingBox: this.assemblyForm.waitingBoxList[0]
-            }).then(res => {
-                if (res.data.data instanceof Array) {
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!"
-                    })
-                    this.$emit('billsDetailfun')
-                } else {
-                    // 没有除开
-                    this.$message({
-                        type: 'warning',
-                        dangerouslyUseHTMLString: true,
-                        message: '<span style="color:red">注意!!!件数不能平均分 ,请手工配箱,或者修改件数.</span>\n' +
-                            '<table border="1">\n' +
-                            '  <thead>\n' +
-                            '    <tr>\n' +
-                            '      <th></th>\n' +
-                            '      <th>件数</th>\n' +
-                            '      <th>毛重</th>\n' +
-                            '      <th>尺码</th>\n' +
-                            '    </tr>\n' +
-                            '  </thead>\n' +
-                            '  <tbody>\n' +
-                            '    <tr>\n' +
-                            '      <td>总数</td>\n' +
-                            '      <td>' + res.data.data.total.quantity + '</td>\n' +
-                            '      <td>' + res.data.data.total.grossWeight + '</td>\n' +
-                            '      <td>' + res.data.data.total.grossWeight + '</td>\n' +
-                            '    </tr>\n' +
-                            '    <tr>\n' +
-                            '      <td>入箱</td>\n' +
-                            '      <td>' + res.data.data.average.quantity + '</td>\n' +
-                            '      <td>' + res.data.data.average.grossWeight + '</td>\n' +
-                            '      <td>' + res.data.data.average.grossWeight + '</td>\n' +
-                            '    </tr>\n' +
-                            '    <tr>\n' +
-                            '      <td>差额</td>\n' +
-                            '      <td>' + res.data.data.subtract.quantity + '</td>\n' +
-                            '      <td>' + res.data.data.subtract.grossWeight + '</td>\n' +
-                            '      <td>' + res.data.data.subtract.grossWeight + '</td>\n' +
-                            '    </tr>\n' +
-                            '  </tbody>\n' +
-                            '</table>',
-                        duration: 5000
-                    });
-
-                }
-
-            })
-        },
-        // 下载模板
-        handleGet() {
-            window.open(
-                `/api/blade-los/containers/exportContainers?${this.website.tokenHeader
-                }=${getToken()}&pid=${this.assemblyForm.id}`
-            );
-        },
-        // 查询件数是否为零
-        numberfalsefun() {
-            if (!this.assemblyForm.containersList) {
-                return false
-            }
-            for (let item of this.assemblyForm.containersList) {
-                if (Number(item.quantity) >= 0) {
-                    return true
-                } else {
-                    return false
+    // 提取箱信息
+    extractBoxInformation() {
+      if (!this.assemblyForm.id) {
+        return this.$message.warning("请先保存数据");
+      }
+      if (!this.assemblyForm.mblno) {
+        return this.$message.warning("请先填写MB/L NO");
+      }
+      if (!this.assemblyForm.cyCode) {
+        return this.$message.warning("请先选择场站");
+      }
+      if (this.assemblyForm.containersList.length == 0) {
+        return this.$message.warning("请先进行配箱");
+      }
+      this.loadingButton = true;
+      luHaiTongApiDetail({
+        billNo: this.assemblyForm.mblno,
+        station: this.assemblyForm.cyCode
+      }).then(res => {
+        this.loadingButton = false;
+        this.luHaiTongData = decryptLhtData(JSON.parse(res.data.data).data);
+        console.log(this.luHaiTongData, 348);
+        if (this.luHaiTongData.containerCargoInfos.length == 0) {
+          return this.$message.warning("提取到的数据为空");
+        }
+        this.extractDialogvisible = true;
+      });
+    },
+    // 提取箱信息弹窗里的导入
+    extractDialogfun() {
+      // if (this.assemblyForm.containersList.length != this.luHaiTongData.containerCargoInfos.length) {
+      //     this.$confirm(`箱量不相等,委托数量为${this.assemblyForm.containersList.length},场站数量为${this.luHaiTongData.containerCargoInfos.length}?是否继续`, '提示', {
+      //         confirmButtonText: '确定',
+      //         cancelButtonText: '取消',
+      //         type: 'warning'
+      //     }).then(()=>{
+      //         this.extractionProcessing()
+      //     }).catch(()=>{
+      //         return
+      //     })
+      // }else {
+      //     this.extractionProcessing()
+      // }
+      this.extractionProcessing();
+    },
+    // 数据处理
+    extractionProcessing() {
+      let returnType = 0; // 判断是否需要合计
+      // 把请求到的箱号和封号赋值
+      this.luHaiTongData.containerCargoInfos.map((luHaiTongItem, luHaiTongIndex) => {
+        if (!this.assemblyForm.containersList[luHaiTongIndex].cyCntrCode) {
+          return this.$message.warning("请先去基础资料集装箱里维护数据");
+        }
+        if (luHaiTongItem.size + "" + luHaiTongItem.property == this.assemblyForm.containersList[luHaiTongIndex].cyCntrCode) {
+          this.assemblyForm.containersList[luHaiTongIndex].cntrNo = luHaiTongItem.containerNo;
+          this.assemblyForm.containersList[luHaiTongIndex].sealNo = luHaiTongItem.sealNo;
+          // 判断没有没有返厂时间,如果没有不合计前面的
+          if (!luHaiTongItem.returnDate) {
+            returnType++;
+          }
+        }
+      });
+      // 统计提取同一箱号的好件重尺合计赋值
+      let quantitySum = 0;
+      let grossWeightSum = 0;
+      let measurementSum = 0;
+      this.assemblyForm.containersList.map((containersItem, containersIndex) => {
+        let numberSum = 0;
+        let weightSum = 0;
+        let volSum = 0;
+        for (let loadingItem of this.luHaiTongData.loadingInfos) {
+          if (loadingItem.containerNo == containersItem.cntrNo) {
+            numberSum += loadingItem.number;
+            weightSum += loadingItem.weight;
+            volSum += loadingItem.vol;
+          }
+        }
+        containersItem.quantity = numberSum;
+        containersItem.grossWeight = weightSum;
+        containersItem.measurement = volSum;
+        // 把件重尺进行合计判断主表件重尺是否相等
+        quantitySum += containersItem.quantity;
+        grossWeightSum += containersItem.grossWeight;
+        measurementSum += containersItem.measurement;
+      });
+      console.log(quantitySum, grossWeightSum, measurementSum, 366);
+      // 判断合计的件重尺是否等于朱标的件重尺
+      if (
+        this.assemblyForm.containersList.length == this.luHaiTongData.containerCargoInfos.length &&
+        this.assemblyForm.quantity == quantitySum &&
+        this.assemblyForm.grossWeight == grossWeightSum &&
+        this.assemblyForm.measurement == measurementSum
+      ) {
+        this.extractDialogvisible = false;
+        this.$emit("billsAddfun"); // 全都相等直接走大保存
+      } else {
+        this.$alert(
+          "<div>委托:箱数,件重尺 场站:箱数,件重尺不相等</div>" +
+            '<table border="1" width="100%">\n' +
+            "  <thead>\n" +
+            "    <tr>\n" +
+            "      <th></th>\n" +
+            "      <th>箱数</th>\n" +
+            "      <th>件数</th>\n" +
+            "      <th>毛重</th>\n" +
+            "      <th>尺码</th>\n" +
+            "    </tr>\n" +
+            "  </thead>\n" +
+            "  <tbody>\n" +
+            "    <tr>\n" +
+            "      <td>委托</td>\n" +
+            "      <td>" +
+            this.assemblyForm.containersList.length +
+            "</td>\n" +
+            "      <td>" +
+            this.assemblyForm.quantity +
+            "</td>\n" +
+            "      <td>" +
+            this.assemblyForm.grossWeight +
+            "</td>\n" +
+            "      <td>" +
+            this.assemblyForm.measurement +
+            "</td>\n" +
+            "    </tr>\n" +
+            "    <tr>\n" +
+            "      <td>场站</td>\n" +
+            "      <td>" +
+            this.luHaiTongData.containerCargoInfos.length +
+            "</td>\n" +
+            "      <td>" +
+            quantitySum +
+            "</td>\n" +
+            "      <td>" +
+            grossWeightSum +
+            "</td>\n" +
+            "      <td>" +
+            measurementSum +
+            "</td>\n" +
+            "    </tr>\n" +
+            "  </tbody>\n" +
+            "</table>",
+          "提示",
+          {
+            dangerouslyUseHTMLString: true,
+            confirmButtonText: "确定",
+            cancelButtonText: "关闭",
+            // showCancelButton:true,
+            type: "warning"
+          }
+        )
+          .then(() => {
+            console.log("确认");
+            // 箱数不等 不更新前面的
+            if (this.assemblyForm.containersList.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) {
+                  if (item.cntrTypeCode == ite.cyCntrCode) {
+                    pieceSum += ite.quantity;
+                    weightSum += ite.grossWeight;
+                    chiSum += ite.measurement;
+                  }
                 }
+                item.number = pieceSum;
+                item.grossWeight = weightSum;
+                item.measurement = chiSum;
+              }
+              this.assemblyForm.quantity = quantitySum;
+              this.assemblyForm.grossWeight = grossWeightSum;
+              this.assemblyForm.measurement = measurementSum;
             }
-        },
-        // // 平均分配
-        // equalDistribution() {
-        //     if (this.assemblyForm.waitingBoxList.length <= 0) {
-        //         this.$message({
-        //             type: "warning",
-        //             message: "请先添加集装箱数据!"
-        //         });
-        //         return
-        //     }
-        //     this.$confirm("确定平均分配?", {
-        //         confirmButtonText: "确定",
-        //         cancelButtonText: "取消",
-        //         type: "warning"
-        //     }).then(() => {
-        //         this.$emit('equalDistribution')
-        //     })
-        // },
-        // 一键编辑
-        rootEditfun() {
-            for (let item of this.assemblyForm.containersList) {
-                this.$delete(item, 'edit')
-                this.$set(item, 'edit', true)
-            }
-        },
-        // 编辑
-        rowCellfun(row, index) {
-            this.$delete(row, 'edit')
-            this.$set(row, 'edit', true)
-        },
-        // 保存
-        rowSavefun(row) {
-            this.$delete(row, 'edit')
-            this.$set(row, 'edit', false)
-            this.$emit('rowSavefun', row)
-        },
-        // 清除箱号
-        cleanCntrNofun() {
-            this.$confirm("确定将数据清除全部箱号?", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning"
-            }).then(() => {
-                let arr = this.assemblyForm.containersList.map(item => {
-                    return item.id
-                })
-                // 清除箱号接口
-                containersCleanBoxNo(arr.join(',')).then(res => {
-                    this.$message({
-                        type: "success",
-                        message: "清除箱号成功!"
-                    });
-                    this.$emit('billsDetailfun')
-                })
-            })
-        },
-        // 全部撤销
-        wholeRevokefun() {
-            this.$confirm("确定将数据撤销全部?", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning"
-            }).then(() => {
-                let arr = this.assemblyForm.containersList.map(item => {
-                    return item.id
-                })
-                containersRevoke(arr.join(',')).then(res => {
-                    this.$message({
-                        type: "success",
-                        message: "全部撤销成功!"
-                    });
-                    this.$emit('billsDetailfun')
-                })
-            })
-        },
-        // 撤销
-        revokefun() {
-            if (this.selectionList.length > 0) {
-                containersRevoke(this.selectionList[0].id).then(res => {
-                    this.$message({
-                        type: "success",
-                        message: "撤销成功!"
-                    });
-                    this.$emit('billsDetailfun')
+            this.extractDialogvisible = false;
+            this.$emit("billsAddfun"); // 全都相等直接走大保存
+          })
+          .catch(() => {
+            console.log("取消");
+          });
+      }
+    },
+    // 输入自动大写
+    cntrNoInput(row, name) {
+      this.$set(row, name, row[name].toLocaleUpperCase().replace(/[\W]/g, ""));
+    },
+    verifyChange(row, name) {
+      if (row[name]) {
+        getAccurate({ accurate: row[name] }).then(res => {
+          if (res.data.data.records.length == 0) {
+            const regex = /^([a-zA-Z]{4})([0-9]{7})$/;
+            if (regex.test(row[name])) {
+              if (this.calculateCheckDigit(row[name]) == row[name][10]) {
+                // this.$message.success('集装箱校验正确!')
+              } else {
+                this.$confirm(`<strong><p style='color:#F56C6C'>箱号:${row[name]},格式不正确,是否强制加入系统?</p ></strong>`, "提示", {
+                  confirmButtonText: "确定",
+                  cancelButtonText: "取消",
+                  dangerouslyUseHTMLString: true,
+                  type: "warning"
                 })
+                  .then(() => {
+                    // this.$message({
+                    //   type: 'success',
+                    //   message: '删除成功!'
+                    // });
+                  })
+                  .catch(() => {
+                    this.$set(row, [name], null);
+                  });
+              }
             } else {
-                this.$message({
-                    type: "warning",
-                    message: "请选选择要撤销的数据!"
-                });
-            }
-        },
-        // 配箱批量保存
-        containersSubmitListfun() {
-            if (!this.assemblyForm.id) {
-                this.$message.warning('请先大保存')
-                return
-            }
-            this.$confirm("确定全部保存配箱?", {
+              this.$confirm(`<strong><p style='color:#F56C6C'>箱号:${row[name]},格式不正确,是否强制加入系统?</p ></strong>`, "提示", {
                 confirmButtonText: "确定",
                 cancelButtonText: "取消",
+                dangerouslyUseHTMLString: true,
                 type: "warning"
-            }).then(() => {
-                containersSubmitList(this.assemblyForm.containersList).then(res => {
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!"
-                    });
-                    this.$emit('billsDetailfun')
-                })
-            })
-        },
-
-        rowSave(row, done, loading) {
-            containersSubmit(row).then(() => {
-                // this.onLoad(this.page);
-                this.$message({
-                    type: "success",
-                    message: "操作成功!"
-                });
-                done();
-            }, error => {
-                loading();
-                window.console.log(error);
-            });
-        },
-        rowUpdate(row, index, done, loading) {
-            containersSubmit(row).then(() => {
-                // this.onLoad(this.page);
-                this.$message({
-                    type: "success",
-                    message: "操作成功!"
-                });
-                done();
-            }, error => {
-                loading();
-                console.log(error);
-            });
-        },
-        // 删除
-        rowDel(row) {
-            this.$confirm("确定将选择数据删除?", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning"
-            })
+              })
                 .then(() => {
-                    return containersRemove(row.id);
+                  // this.$message({
+                  //   type: 'success',
+                  //   message: '删除成功!'
+                  // });
                 })
-                .then(() => {
-                    // this.onLoad(this.page);
-                    this.$message({
-                        type: "success",
-                        message: "操作成功!"
-                    });
-                    this.$emit('billsDetailfun')
+                .catch(() => {
+                  this.$set(row, [name], null);
                 });
-        },
-        // 一键删除
-        handleDelete() {
-            for (let item of this.assemblyForm.containersList) {
-                if (item.quantity > 0) return this.$message.error('请先撤销,再删除配箱')
             }
-            this.$confirm("确定将全部数据删除?", {
-                confirmButtonText: "确定",
-                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: "操作成功!"
-                    });
-                    this.$emit('billsDetailfun')
-                    this.$refs.crud.toggleSelection();
-                });
-            })
-        },
-        beforeOpen(done, type) {
-            if (["edit", "view"].includes(type)) {
-                containersDetail(this.form.id).then(res => {
-                    this.form = res.data.data;
-                });
-            }
-            done();
-        },
-        // 当选择项发生变化时会触发该事件
-        selectionChange(list) {
-            let arr = []
-            if (list.length > 1) {
-                this.$refs.crud.toggleSelection() // 先清空所以选择的数据
-                arr = [list[list.length - 1]] // 获取最新点击的数组
-                this.$refs.crud.toggleSelection(arr, true) // 把刚点击的数组变成选择状态
-            } else {
-                arr = list
-            }
-            this.selectionList = arr
-            this.$emit('selectionChange', this.selectionList)
+          }
+        });
+      }
+    },
+    calculateCheckDigit(containerNo) {
+      let charCode = "0123456789A?BCDEFGHIJK?LMNOPQRSTU?VWXYZ";
+      let num = 0;
+      for (let i = 0; i < 10; i++) {
+        let idx = charCode.indexOf(containerNo[i]);
+        idx = idx * Math.pow(2, i);
+        num += idx;
+      }
+      return (num = (num % 11) % 10);
+    },
+    oepnexcelBox() {
+      if (!this.assemblyForm.id) {
+        this.$message({
+          message: "请先点击右上角保存按钮,保存数据之后才能添加!",
+          type: "warning"
+        });
+        return;
+      }
+      this.findObject(this.excelOption.column, "excelFile").action = "/api/blade-los/containers/importBoxNo?billId=" + this.assemblyForm.id;
+      this.excelBox = true;
+    },
+    uploadBefore(file, done, loading) {
+      681169;
+      done();
+      loading = true;
+    },
+    // 上传成功
+    onSuccess(res, done, loading, column) {
+      this.excelBox = false;
+      // this.$message.success("导入成功!");
+      this.containersListfun();
+      loading = false;
+      done();
+    },
+    // 箱列表
+    containersListfun() {
+      containersList(1, 100, { pid: this.assemblyForm.id }).then(res => {
+        this.assemblyForm.containersList = res.data.data.records;
+      });
+    },
+    equalDistribution2() {
+      if (!this.assemblyForm.id) {
+        this.$message({
+          message: "请先点击右上角保存按钮,保存数据之后才能添加!",
+          type: "warning"
+        });
+        return;
+      }
+      this.$confirm("是否确认配箱?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        this.assemblyForm.businessType = "KHTS";
+        this.assemblyForm.billNoFormat = "KHTS";
+        this.assemblyForm.businessTypeCode = "KHTS";
+        submit(this.assemblyForm).then(res => {
+          distributionBox({ billId: this.assemblyForm.id }).then(res => {
+            this.$message({
+              type: "success",
+              message: "操作成功!"
+            });
+            this.$emit("billsDetailfun");
+          });
+        });
+      });
+    },
+    // 平均箱量
+    equalDistribution(type) {
+      if (!this.assemblyForm.id) {
+        this.$message({
+          message: "请先点击右上角保存按钮,保存数据之后才能添加!",
+          type: "warning"
+        });
+        return;
+      }
+      if (this.assemblyForm.waitingBoxList.length <= 0) {
+        this.$message({
+          type: "warning",
+          message: "请先添加集装箱数据!"
+        });
+        return;
+      }
+      if (this.assemblyForm.preContainersList <= 0) {
+        this.$message({
+          type: "warning",
+          message: "请先添加箱型数据!"
+        });
+        return;
+      }
+      this.$confirm("确定平均分配?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        this.containersEqualDistributionfun(type);
+      });
+    },
+    // 平均分配接口
+    containersEqualDistributionfun(type) {
+      containersEqualDistribution({
+        pid: this.assemblyForm.id,
+        type: type,
+        waitingBox: this.assemblyForm.waitingBoxList[0]
+      }).then(res => {
+        if (res.data.data instanceof Array) {
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+          this.$emit("billsDetailfun");
+        } else {
+          // 没有除开
+          this.$message({
+            type: "warning",
+            dangerouslyUseHTMLString: true,
+            message:
+              '<span style="color:red">注意!!!件数不能平均分 ,请手工配箱,或者修改件数.</span>\n' +
+              '<table border="1">\n' +
+              "  <thead>\n" +
+              "    <tr>\n" +
+              "      <th></th>\n" +
+              "      <th>件数</th>\n" +
+              "      <th>毛重</th>\n" +
+              "      <th>尺码</th>\n" +
+              "    </tr>\n" +
+              "  </thead>\n" +
+              "  <tbody>\n" +
+              "    <tr>\n" +
+              "      <td>总数</td>\n" +
+              "      <td>" +
+              res.data.data.total.quantity +
+              "</td>\n" +
+              "      <td>" +
+              res.data.data.total.grossWeight +
+              "</td>\n" +
+              "      <td>" +
+              res.data.data.total.grossWeight +
+              "</td>\n" +
+              "    </tr>\n" +
+              "    <tr>\n" +
+              "      <td>入箱</td>\n" +
+              "      <td>" +
+              res.data.data.average.quantity +
+              "</td>\n" +
+              "      <td>" +
+              res.data.data.average.grossWeight +
+              "</td>\n" +
+              "      <td>" +
+              res.data.data.average.grossWeight +
+              "</td>\n" +
+              "    </tr>\n" +
+              "    <tr>\n" +
+              "      <td>差额</td>\n" +
+              "      <td>" +
+              res.data.data.subtract.quantity +
+              "</td>\n" +
+              "      <td>" +
+              res.data.data.subtract.grossWeight +
+              "</td>\n" +
+              "      <td>" +
+              res.data.data.subtract.grossWeight +
+              "</td>\n" +
+              "    </tr>\n" +
+              "  </tbody>\n" +
+              "</table>",
+            duration: 5000
+          });
+        }
+      });
+    },
+    // 下载模板
+    handleGet() {
+      window.open(`/api/blade-los/containers/exportContainers?${this.website.tokenHeader}=${getToken()}&pid=${this.assemblyForm.id}`);
+    },
+    // 查询件数是否为零
+    numberfalsefun() {
+      if (!this.assemblyForm.containersList) {
+        return false;
+      }
+      for (let item of this.assemblyForm.containersList) {
+        if (Number(item.quantity) >= 0) {
+          return true;
+        } else {
+          return false;
+        }
+      }
+    },
+    // // 平均分配
+    // equalDistribution() {
+    //     if (this.assemblyForm.waitingBoxList.length <= 0) {
+    //         this.$message({
+    //             type: "warning",
+    //             message: "请先添加集装箱数据!"
+    //         });
+    //         return
+    //     }
+    //     this.$confirm("确定平均分配?", {
+    //         confirmButtonText: "确定",
+    //         cancelButtonText: "取消",
+    //         type: "warning"
+    //     }).then(() => {
+    //         this.$emit('equalDistribution')
+    //     })
+    // },
+    // 一键编辑
+    rootEditfun() {
+      for (let item of this.assemblyForm.containersList) {
+        this.$delete(item, "edit");
+        this.$set(item, "edit", true);
+      }
+    },
+    // 编辑
+    rowCellfun(row, index) {
+      this.$delete(row, "edit");
+      this.$set(row, "edit", true);
+    },
+    // 保存
+    rowSavefun(row) {
+      this.$delete(row, "edit");
+      this.$set(row, "edit", false);
+      this.$emit("rowSavefun", row);
+    },
+    // 清除箱号
+    cleanCntrNofun() {
+      this.$confirm("确定将数据清除全部箱号?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        let arr = this.assemblyForm.containersList.map(item => {
+          return 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: "清除箱号成功!"
+            });
+            this.$emit("billsDetailfun");
+          });
+        });
+      });
+    },
+    // 全部撤销
+    wholeRevokefun() {
+      this.$confirm("确定将数据撤销全部?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        let arr = this.assemblyForm.containersList.map(item => {
+          return 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: "全部撤销成功!"
+            });
+            this.$emit("billsDetailfun");
+          });
+        });
+      });
+    },
+    // 撤销
+    revokefun() {
+      if (this.selectionList.length > 0) {
+        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: "撤销成功!"
+            });
+            this.$emit("billsDetailfun");
+          });
+        });
+      } else {
+        this.$message({
+          type: "warning",
+          message: "请选选择要撤销的数据!"
+        });
+      }
+    },
+    // 配箱批量保存
+    containersSubmitListfun() {
+      if (!this.assemblyForm.id) {
+        this.$message.warning("请先大保存");
+        return;
+      }
+      this.$confirm("确定全部保存配箱?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        containersSubmitList(this.assemblyForm.containersList).then(res => {
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+          this.assemblyForm.containersList = res.data.data;
+          // this.$emit('billsDetailfun')
+        });
+      });
+    },
+
+    rowSave(row, done, loading) {
+      containersSubmit(row).then(
+        () => {
+          // this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+          done();
         },
-        inPitch() {
-            this.$refs.crud.toggleRowSelection(this.assemblyForm.containersList[0], true);
+        error => {
+          loading();
+          window.console.log(error);
+        }
+      );
+    },
+    rowUpdate(row, index, done, loading) {
+      containersSubmit(row).then(
+        () => {
+          // this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+          done();
         },
-        selectionClear() {
-            this.selectionList = [];
+        error => {
+          loading();
+          console.log(error);
+        }
+      );
+    },
+    // 删除
+    rowDel(row) {
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      })
+        .then(() => {
+          return containersRemove(row.id);
+        })
+        .then(() => {
+          // this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+          this.$emit("billsDetailfun");
+        });
+    },
+    // 一键删除
+    handleDelete() {
+      for (let item of this.assemblyForm.containersList) {
+        if (item.quantity > 0) return this.$message.error("请先撤销,再删除配箱");
+      }
+      this.$confirm("确定将全部数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        let arrids = this.assemblyForm.containersList.map(item => {
+          return 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: "操作成功!"
+            });
+            this.$emit("billsDetailfun");
             this.$refs.crud.toggleSelection();
-        },
-        refreshChange() {
-            console.log('刷新')
-            // this.onLoad(this.page, this.query);
-        },
-        // onLoad(page, params = {}) {
-        //   this.loading = true;
-        //   containersList(page.currentPage, page.pageSize, {...Object.assign(params, this.query),pid:this.pid}).then(res => {
-        //     const data = res.data.data;
-        //     this.page.total = data.total;
-        //       this.data = data.records
-        //     this.loading = false;
-        //     this.selectionClear();
-        //   });
-        // }
-        // 更改表格颜色
-        headerClassName(tab) {
-            //颜色间隔
-            let back = ""
-            if (tab.columnIndex >= 0 && tab.column.level === 1) {
-                if (tab.columnIndex % 2 === 0) {
-                    back = "back-one"
-                } else if (tab.columnIndex % 2 === 1) {
-                    back = "back-two"
-                }
-            }
-            return back;
-        },
-
+          });
+        });
+      });
+    },
+    beforeOpen(done, type) {
+      if (["edit", "view"].includes(type)) {
+        containersDetail(this.form.id).then(res => {
+          this.form = res.data.data;
+        });
+      }
+      done();
+    },
+    // 当选择项发生变化时会触发该事件
+    selectionChange(list) {
+      let arr = [];
+      if (list.length > 1) {
+        this.$refs.crud.toggleSelection(); // 先清空所以选择的数据
+        arr = [list[list.length - 1]]; // 获取最新点击的数组
+        this.$refs.crud.toggleSelection(arr, true); // 把刚点击的数组变成选择状态
+      } else {
+        arr = list;
+      }
+      this.selectionList = arr;
+      this.$emit("selectionChange", this.selectionList);
+    },
+    inPitch() {
+      this.$refs.crud.toggleRowSelection(this.assemblyForm.containersList[0], true);
+    },
+    selectionClear() {
+      this.selectionList = [];
+      this.$refs.crud.toggleSelection();
+    },
+    refreshChange() {
+      console.log("刷新");
+      // this.onLoad(this.page, this.query);
+    },
+    // onLoad(page, params = {}) {
+    //   this.loading = true;
+    //   containersList(page.currentPage, page.pageSize, {...Object.assign(params, this.query),pid:this.pid}).then(res => {
+    //     const data = res.data.data;
+    //     this.page.total = data.total;
+    //       this.data = data.records
+    //     this.loading = false;
+    //     this.selectionClear();
+    //   });
+    // }
+    // 更改表格颜色
+    headerClassName(tab) {
+      //颜色间隔
+      let back = "";
+      if (tab.columnIndex >= 0 && tab.column.level === 1) {
+        if (tab.columnIndex % 2 === 0) {
+          back = "back-one";
+        } else if (tab.columnIndex % 2 === 1) {
+          back = "back-two";
+        }
+      }
+      return back;
     }
+  }
 };
 </script>
 
 <style scoped>
 ::v-deep#out-table .back-one {
-    background: #ecf5ff !important;
-    text-align: center;
-    padding: 4px 0;
+  background: #ecf5ff !important;
+  text-align: center;
+  padding: 4px 0;
 }
 
 ::v-deep#out-table .back-two {
-    background: #ecf5ff !important;
-    text-align: center;
-    padding: 4px 0;
+  background: #ecf5ff !important;
+  text-align: center;
+  padding: 4px 0;
 }
 </style>

+ 16 - 14
src/views/iosBasicData/businessCenter/customerLetter/detailsPage.vue

@@ -2236,21 +2236,23 @@ export default {
               this.form.businessType = "KHTS";
               this.form.billNoFormat = "KHTS";
               this.form.businessTypeCode = "KHTS";
-              verificationPrompt(this.form).then(res => {
-                const loading = this.$loading({
-                  lock: true,
-                  text: "加载中",
-                  spinner: "el-icon-loading",
-                  background: "rgba(255,255,255,0.7)"
-                });
-                submitBookingCabin(this.form)
-                  .then(res => {
-                    this.$message.success("操作成功");
-                    this.getDetails(this.form.id);
-                  })
-                  .finally(() => {
-                    loading.close();
+              submit(this.form).then(res => {
+                verificationPrompt(this.form).then(res => {
+                  const loading = this.$loading({
+                    lock: true,
+                    text: "加载中",
+                    spinner: "el-icon-loading",
+                    background: "rgba(255,255,255,0.7)"
                   });
+                  submitBookingCabin(this.form)
+                    .then(res => {
+                      this.$message.success("操作成功");
+                      this.getDetails(this.form.id);
+                    })
+                    .finally(() => {
+                      loading.close();
+                    });
+                });
               });
             });
           } else {