Sfoglia il codice sorgente

1.箱管调箱 搜索后导入放箱号不显示
2.箱池动态 新加明细导出并联调接口
3.放箱号 选定更换箱号 重画弹窗 新加字段
4.退租 修改字段
5.客户订舱 新加检索条件和字段
6.OW拿 OW放 新加合计
7.海运出口 主单撤销分单,点击保存报错

qukaidi 2 giorni fa
parent
commit
45ddf56df1

+ 2 - 7
src/views/boxManagement/boxAdjustment/components/containerNumber.vue

@@ -360,13 +360,8 @@ export default {
         boxNumber: this.quotationObj.remainingNum,
         containerNumber: this.quotationObj.containerNumber
       };
-      if (this.query.containerNumber == this.quotationObj.containerNumber) {
-        this.$emit("importData", obj, false);
-        this.dialogVisible = false;
-      } else {
-        this.$emit("importData", obj, true);
-        this.dialogVisible = false;
-      }
+      this.$emit("importData", obj);
+      this.dialogVisible = false;
     },
     //自定义列保存
     async saveColumn(ref, option, optionBack, code) {

+ 5 - 7
src/views/boxManagement/boxAdjustment/detailsPage.vue

@@ -552,7 +552,7 @@
                   :controls="false"
                   placeholder="请输入 汇率"
                   size="small"
-                  :disabled="row.curCode==getLocalCurrency()"
+                  :disabled="row.curCode == getLocalCurrency()"
                   style="width: 100%;"
                 ></el-input-number>
                 <span v-else>{{ row.exrate }}</span>
@@ -1771,9 +1771,7 @@ export default {
       });
     },
     importData(obj, val) {
-      if (val) {
-        this.form.containerNumber = obj.containerNumber;
-      }
+      this.form.containerNumber = obj.containerNumber;
       this.form.polId = obj.polId;
       this.form.polCode = obj.polCode;
       this.form.polEname = obj.polEname;
@@ -2238,7 +2236,7 @@ export default {
         // if (!row) {
         //   return this.$message.error("请输入放箱号");
         // }
-        this.$refs.container.openDialog(row,this.form);
+        this.$refs.container.openDialog(row, this.form);
       }
       if (name == "box一键保存") {
         if (!this.form.boxTypeList.length) {
@@ -2799,13 +2797,13 @@ export default {
     },
     rowStyle({ row, column, rowIndex }) {
       //已结算金额
-      if (Number(row.stlTtlAmount?row.stlTtlAmount:0) != 0) {
+      if (Number(row.stlTtlAmount ? row.stlTtlAmount : 0) != 0) {
         return {
           color: "#0000FF"
         };
       }
       //发票金额和付费申请金额
-      if (Number(row.appliedAmount?row.appliedAmount:0) != 0 || Number(row.appliedInvoiceAmount?row.appliedInvoiceAmount:0) != 0) {
+      if (Number(row.appliedAmount ? row.appliedAmount : 0) != 0 || Number(row.appliedInvoiceAmount ? row.appliedInvoiceAmount : 0) != 0) {
         return {
           color: "#FFC300"
         };

+ 52 - 0
src/views/boxManagement/boxPoolDynamics/index.vue

@@ -57,6 +57,7 @@
           >
             <template slot="menuLeft">
               <el-button type="warning" size="small" @click="outExport">导 出</el-button>
+              <el-button type="warning" size="small" @click="outExport3">导出明细</el-button>
             </template>
           </avue-crud>
         </el-tab-pane>
@@ -83,6 +84,7 @@
           >
             <template slot="menuLeft">
               <el-button type="warning" size="small" @click="outExport2">导 出</el-button>
+              <el-button type="warning" size="small" @click="outExport4">导出明细</el-button>
               <!-- <el-button type="primary" plain size="small"
                                 @click="allClick('空箱出场(EDI)')">空箱出场(EDI)</el-button> -->
               <!-- <el-button type="success" plain size="small"
@@ -720,6 +722,56 @@ export default {
       });
       window.open(routeData.href.slice(1, routeData.href.length) + "&" + `${this.website.tokenHeader}=${getToken()}`);
     },
+    outExport3() {
+      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 instanceof Array) {
+              for (const key of Object.keys(value)) {
+                let params = propName + "[" + key + "]";
+                config.params[params] = value[key];
+              }
+              delete config.params[propName];
+            }
+          }
+        }
+      }
+      const routeData = this.$router.resolve({
+        path: "/api/blade-los/boxPool/listPortExportItems", //跳转目标窗口的地址
+        query: {
+          ...config.params, //括号内是要传递给新窗口的参数
+          identification: this.url
+        }
+      });
+      window.open(routeData.href.slice(1, routeData.href.length) + "&" + `${this.website.tokenHeader}=${getToken()}`);
+    },
+    outExport4() {
+      let config = { params: { ...this.query2 } };
+      if (config.params) {
+        for (const propName of Object.keys(config.params)) {
+          const value = config.params[propName];
+          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];
+              }
+              delete config.params[propName];
+            }
+          }
+        }
+      }
+      const routeData = this.$router.resolve({
+        path: "/api/blade-los/boxPool/listContainerNumberExportItems", //跳转目标窗口的地址
+        query: {
+          ...config.params, //括号内是要传递给新窗口的参数
+          identification: this.url
+        }
+      });
+      window.open(routeData.href.slice(1, routeData.href.length) + "&" + `${this.website.tokenHeader}=${getToken()}`);
+    },
     refreshData() {
       this.refreshChange();
       this.refreshChange2();

+ 299 - 0
src/views/boxManagement/containerNumber/components/changeCn.vue

@@ -0,0 +1,299 @@
+<template>
+  <div>
+    <el-dialog title="更改放箱号" :visible.sync="dialogVisible" append-to-body width="30%" :before-close="handleClose">
+      <avue-form v-if="dialogVisible" :option="optionForm" v-model="form" ref="form">
+        <template slot="boxType">
+          <dic-select
+            v-model="form.boxType"
+            key="id"
+            label="cnName"
+            res="records"
+            url="/blade-los/bcntrtypes/list?current=1&size=100"
+            :filterable="true"
+            :remote="true"
+            dataName="cnName"
+          ></dic-select>
+        </template>
+        <tempalte slot="polCname">
+          <dic-select
+            v-model="form.polCname"
+            placeholder="港口"
+            key="id"
+            label="cnName"
+            res="records"
+            url="/blade-los/bports/list?status=0"
+            :filterable="true"
+            :remote="true"
+            dataName="cnName"
+            @selectChange="dicChange('polCname', $event)"
+            :slotRight="true"
+            rightLabel="code"
+          ></dic-select>
+        </tempalte>
+        <tempalte slot="polStationCname">
+          <dic-select
+            v-model="form.polStationCname"
+            placeholder="实际场站"
+            key="id"
+            label="cnName"
+            res="records"
+            url="/blade-los/bcorps/selectList?current=1&size=5&corpTypeName=场站&status=0"
+            :filterable="true"
+            :remote="true"
+            dataName="cnName"
+            @selectChange="dicChange('polStationCname', $event)"
+            :slotRight="true"
+            rightLabel="code"
+          ></dic-select>
+        </tempalte>
+        <tempalte slot="podCname">
+          <dic-select
+            v-model="form.podCname"
+            placeholder="港口"
+            key="id"
+            label="cnName"
+            res="records"
+            url="/blade-los/bports/list?status=0"
+            :filterable="true"
+            :remote="true"
+            dataName="cnName"
+            @selectChange="dicChange('podCname', $event)"
+            :slotRight="true"
+            rightLabel="code"
+          ></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 { batchContainerNumber } from "@/api/boxManagement/containerNumber/index.js";
+import dicSelect from "@/components/dicSelect/main";
+export default {
+  props: {},
+  components: {
+    dicSelect
+  },
+  data() {
+    return {
+      selectionList: [],
+      form: {},
+      dialogVisible: false,
+      loading: false,
+      optionForm: {
+        menuBtn: false,
+        span: 24,
+        disabled: false,
+        column: [
+          {
+            label: "放箱号",
+            prop: "containerNumber",
+            disabled: false,
+            rules: [
+              {
+                required: true,
+                message: " ",
+                trigger: "blur"
+              }
+            ]
+          },
+          {
+            label: "箱型",
+            prop: "boxType",
+            disabled: false,
+            rules: [
+              {
+                required: true,
+                message: " ",
+                trigger: "blur"
+              }
+            ]
+          },
+          {
+            label: "起运港",
+            prop: "polCname",
+            disabled: false,
+            rules: [
+              {
+                required: true,
+                message: " ",
+                trigger: "blur"
+              }
+            ]
+          },
+          {
+            label: "起运港场站",
+            prop: "polStationCname",
+            disabled: false,
+            rules: [
+              {
+                required: true,
+                message: " ",
+                trigger: "blur"
+              }
+            ]
+          },
+          {
+            label: "目的港",
+            prop: "podCname",
+            disabled: false
+          },
+          {
+            label: "放箱号类型",
+            prop: "boxClass",
+            type: "select",
+            dicUrl: "/api/blade-system/dict-biz/dictionary?code=boxCategory",
+            props: {
+              label: "dictValue",
+              value: "dictValue"
+            },
+            disabled: false,
+            rules: [
+              {
+                required: true,
+                message: " ",
+                trigger: "blur"
+              }
+            ]
+          }
+        ]
+      }
+    };
+  },
+  created() {},
+  methods: {
+    openDialog(id, list) {
+      this.form = {};
+      this.selectionList = [];
+      this.form.id = id;
+      this.selectionList = list;
+      this.dialogVisible = true;
+    },
+    dicChange(name, row) {
+      if (name == "polCname") {
+        if (row) {
+          this.form.polId = row.id;
+          this.form.polCode = row.code;
+          this.form.polEname = row.enName;
+        } else {
+          this.form.polId = null;
+          this.form.polCode = null;
+          this.form.polEname = null;
+          this.form.polCname = null;
+        }
+      }
+      if (name == "podCname") {
+       if (row) {
+          this.form.podId = row.id;
+          this.form.podCode = row.code;
+          this.form.podEname = row.enName;
+        } else {
+          this.form.podId = null;
+          this.form.podCode = null;
+          this.form.podEname = null;
+          this.form.podCname = null;
+        }
+      }
+
+      if (name == "polStationCname") {
+        if (row) {
+          this.form.polStationId = row.id;
+          this.form.polStationCode = row.code;
+          this.form.polStationEname = row.enName;
+        } else {
+          this.form.polStationId = null;
+          this.form.polStationCode = null;
+          this.form.polStationEname = null;
+          this.form.polStationCname = null;
+        }
+      }
+    },
+    submit() {
+      this.$refs["form"].validate((valid, done) => {
+        done();
+        if (valid) {
+          let obj = {
+            ...this.form,
+            containerNumber: this.form.containerNumber,
+            putBoxItemsList: this.selectionList
+          };
+          const loading = this.$loading({
+            lock: true,
+            text: "加载中",
+            spinner: "el-icon-loading",
+            background: "rgba(255,255,255,0.7)"
+          });
+          batchContainerNumber(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>

+ 84 - 67
src/views/boxManagement/containerNumber/detailsPage.vue

@@ -44,7 +44,7 @@
       <trade-card title="基础信息">
         <avue-form :option="optionForm" v-model="form" ref="form">
           <tempalte slot="boxEastName">
-            <el-input v-if="form.boxClass == 'OW(拿)' && form.id" v-model="WINFAST" placeholder="请输入内容" size="small" disabled></el-input>
+            <el-input v-if="form.boxClass == 'OW(拿)'" v-model="WINFAST" placeholder="请输入内容" size="small" disabled></el-input>
             <dic-select
               v-else
               v-model="form.boxEastName"
@@ -57,7 +57,7 @@
               :filterable="true"
               :remote="true"
               dataName="cnName"
-              :disabled="editDisabled || !(form.busType == '自有箱') || form.whetherManuallyCreate == 1"
+              :disabled="editDisabled || form.whetherManuallyCreate == 1"
             >
             </dic-select>
           </tempalte>
@@ -196,6 +196,7 @@
               label="dictValue"
               url="/blade-system/dict-biz/dictionary?code=boxCategory"
               :disabled="editDisabled || form.whetherManuallyCreate == 1"
+              @selectChange="dicChange('boxClass', $event)"
             ></dic-select>
           </tempalte>
           <tempalte slot="cabinTypeData">
@@ -292,14 +293,19 @@
               >批量删除</el-button> -->
             <el-button type="success" size="small" :disabled="!form.id" @click="allClick('导出')">导出</el-button>
             <el-button
-              v-if="form.boxClass != 'OW(拿)' && form.id"
+              v-if="form.boxClass != 'OW(拿)'"
               type="info"
               size="small"
               @click="allClick('选定更改箱东')"
               :disabled="editDisabled || selectionList.length == 0"
               >选定更改箱东</el-button
             >
-            <el-button type="success" size="small" @click="allClick('选定更改放箱号')" :disabled="editDisabled || selectionList.length == 0"
+            <el-button
+              v-if="form.boxClass != 'OW(拿)'"
+              type="success"
+              size="small"
+              @click="allClick('选定更改放箱号')"
+              :disabled="editDisabled || selectionList.length == 0"
               >选定更改放箱号</el-button
             >
             <!-- <el-button size="small" style="margin-right: 8px" :disabled="!form.id"
@@ -538,6 +544,7 @@
         <el-button type="primary" @click.stop="activationSubmit" size="mini">确 定</el-button>
       </span>
     </el-dialog>
+    <change-cn ref="changeCn" @getUpdate="getDetail(form.id)"></change-cn>
   </div>
 </template>
 
@@ -560,11 +567,13 @@ import dicSelect from "@/components/dicSelect/main";
 import checkSchedule from "@/components/checkH/checkSchedule.vue";
 import businessReports from "@/components/tradeAgency/businessReports.vue";
 import reports from "@/components/tradeAgency/reports.vue";
+import changeCN from "./components/changeCn.vue";
 import { bcurrencyGetExrate } from "@/api/iosBasicData/rateManagement";
 import { getToken } from "@/util/auth";
 import _ from "lodash";
 import { Header } from "element-ui";
 import { head } from "lodash";
+import changeCn from "./components/changeCn.vue";
 export default {
   data() {
     return {
@@ -600,7 +609,6 @@ export default {
       editButton: false,
       editDisabled: false,
       form: {
-        busType: "自有箱",
         boxClass: "自有箱",
         priorityLevel: "1",
         whetherManuallyCreate: 0,
@@ -1462,7 +1470,8 @@ export default {
     dicSelect,
     checkSchedule,
     businessReports,
-    reports
+    reports,
+    changeCn
   },
   props: {
     detailData: Object,
@@ -1626,6 +1635,12 @@ export default {
           this.form.boxEastName = null;
         }
       }
+      if (name == "boxClass") {
+        if (row.dictValue == "OW(拿)") {
+          this.form.boxEastId = null;
+          this.form.boxEastName = null;
+        }
+      }
       if (name == "boxEastName2") {
         if (row) {
           this.activationForm.boxEastId = row.id;
@@ -2006,77 +2021,79 @@ export default {
         this.activationDialog = true;
       }
       if (name == "选定更改放箱号") {
-        for (let item of this.selectionList) {
-          if (item.status != "待使用") {
-            return this.$message.error("请选择待使用箱状态的数据");
-          }
-        }
-        this.$DialogForm.show({
-          title: "更改放箱号",
-          width: "30%",
-          menuPosition: "right",
-          option: {
-            submitText: "确定",
-            emptyText: "取消",
-            span: 24,
-            column: [
-              {
-                label: "放箱号",
-                prop: "value",
-                rules: [
-                  {
-                    required: true,
-                    message: "请输入放箱号",
-                    trigger: "blur"
-                  }
-                ]
-              }
-            ]
-          },
-          beforeClose: done => {
-            done();
-          },
-          callback: res => {
-            res.done();
-            this.$confirm("是否更改放箱号?", "提示", {
-              confirmButtonText: "确定",
-              cancelButtonText: "取消",
-              type: "warning"
-            }).then(() => {
-              let obj = {
-                id: this.form.id,
-                containerNumber: res.data.value,
-                putBoxItemsList: this.selectionList
-              };
-              const loading = this.$loading({
-                lock: true,
-                text: "加载中",
-                spinner: "el-icon-loading",
-                background: "rgba(255,255,255,0.7)"
-              });
-              batchContainerNumber(obj)
-                .then(res => {
-                  this.$message.success("操作成功!");
-                  this.getDetail(this.form.id);
-                })
-                .finally(() => {
-                  loading.close();
-                });
-              res.close();
-            });
-          }
-        });
+        // for (let item of this.selectionList) {
+        //   if (item.status != "待使用") {
+        //     return this.$message.error("请选择待使用箱状态的数据");
+        //   }
+        // }
+        this.$refs.changeCn.openDialog(this.form.id,this.selectionList)
+        // this.$DialogForm.show({
+        //   title: "更改放箱号",
+        //   width: "30%",
+        //   menuPosition: "right",
+        //   option: {
+        //     submitText: "确定",
+        //     emptyText: "取消",
+        //     span: 24,
+        //     column: [
+        //       {
+        //         label: "放箱号",
+        //         prop: "value",
+        //         rules: [
+        //           {
+        //             required: true,
+        //             message: "请输入放箱号",
+        //             trigger: "blur"
+        //           }
+        //         ]
+        //       }
+        //     ]
+        //   },
+        //   beforeClose: done => {
+        //     done();
+        //   },
+        //   callback: res => {
+        //     res.done();
+        //     this.$confirm("是否更改放箱号?", "提示", {
+        //       confirmButtonText: "确定",
+        //       cancelButtonText: "取消",
+        //       type: "warning"
+        //     }).then(() => {
+        //       let obj = {
+        //         id: this.form.id,
+        //         containerNumber: res.data.value,
+        //         putBoxItemsList: this.selectionList
+        //       };
+        //       const loading = this.$loading({
+        //         lock: true,
+        //         text: "加载中",
+        //         spinner: "el-icon-loading",
+        //         background: "rgba(255,255,255,0.7)"
+        //       });
+        //       batchContainerNumber(obj)
+        //         .then(res => {
+        //           this.$message.success("操作成功!");
+        //           this.getDetail(this.form.id);
+        //         })
+        //         .finally(() => {
+        //           loading.close();
+        //         });
+        //       res.close();
+        //     });
+        //   }
+        // });
       }
     },
     submit(type) {
       this.$refs["form"].validate((valid, done) => {
         done();
         if (valid) {
-          if (!(this.form.boxClass == "OW(拿)" && this.form.id)) {
+          if (this.form.boxClass != "OW(拿)") {
             if (!this.form.boxEastName) {
               return this.$message.error("请选择箱东");
             }
           }
+          this.form.busType = this.form.boxClass;
           // for (let row of this.form.putBoxItemsList) {
           //   if (!row.boxCode || !row.boxType || !row.boxBelongsTo || !row.boxEastName || !row.boxClass || !row.boxStatus || !row.boxCondition) {
           //     this.$refs.crud.rowCell(row, row.$index);

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

@@ -818,7 +818,7 @@ export default {
           },
           {
             label: "退租箱数",
-            prop: "abc",
+            prop: "boxNumber",
             disabled: true
           },
           {

+ 1 - 1
src/views/iosBasicData/OceanFreightImport/bills/index.vue

@@ -221,7 +221,7 @@
             style="color: #1e9fff;cursor: pointer;width: 100%;overflow:hidden;white-space: nowrap;text-overflow: ellipsis;"
             @click.stop="rowCellfun(scope.row.id, scope.row)"
           >
-            {{ scope.row.shortName }}
+            {{ scope.row.corpCnName }}
           </span>
         </template>
         <template slot="billNo" slot-scope="scope">

+ 1 - 1
src/views/iosBasicData/SeafreightExportF/bills/assembly/EntrustmentLnformation/components/boxInfo.vue

@@ -1,7 +1,7 @@
 <template>
   <div>
     <el-dialog title="配箱信息" :visible.sync="dialogVisible" append-to-body width="60%" :before-close="handleClose">
-      <el-tag size="danger">请手动维护配箱信息多余的箱型!</el-tag>
+      <el-tag size="danger">请手动删除配箱信息多余的箱号!</el-tag>
       <avue-crud v-if="dialogVisible" :option="option" :data="data" ref="crud" id="out-table" :header-cell-class-name="headerClassName">
         <template slot-scope="{ row, index }" slot="menu">
           <el-button v-if="form.billType != 'MM'" type="text" size="small" @click.stop="rowDel(row, index)">{{ $t("btn118n.deleted") }} </el-button>

+ 264 - 247
src/views/iosBasicData/SeafreightExportF/bills/assembly/SplitList.vue

@@ -1,285 +1,302 @@
 <template>
-    <div>
-        <avue-crud :table-loading="loading" :option="option" :data="data" @selection-change="selectionChange" id="out-table"
-            ref="crud" :header-cell-class-name="headerClassName"
-            @resetColumn="resetColumnTwo('crud', 'option', 'optionBack', 309.6)"
-            @saveColumn="saveColumnTwo('crud', 'option', 'optionBack', 309.6)">
-            <template slot-scope="scope" slot="menuLeft">
-                <el-button v-if="!typeMenu && assemblyForm.billStatus != 3" type="danger" size="small" icon="el-icon-delete"
-                    plain :disabled="disabled" @click="batchWithdrawfun">{{ $t("btn118n.selectclearCtnrLlist") }}
-                </el-button>
-            </template>
-            <template slot-scope="scope" slot="menu" v-if="assemblyForm.billStatus != 3">
-                <el-button :type="scope.type" :size="scope.size" icon="el-icon-edit"
-                    :disabled="disabled || assemblyForm.status == 1" @click.stop="withdrawfun(scope.row, scope.index)">{{ $t("btn118n.selectclearCtnrLlist") }}
-                </el-button>
-            </template>
-            <template slot-scope="scope" slot="billNo">
-                <span class="textoverflow" :style="typeMenu ? 'color: #409EFF' : ''" @click.stop="corpfun(scope)">
-                    {{ scope.row.billNo }}
-                </span>
-            </template>
-            <template slot-scope="scope" slot="billDate">
-                <span>{{ scope.row.billDate ? scope.row.billDate.slice(0, 10) : '' }}</span>
-            </template>
-        </avue-crud>
-    </div>
+  <div>
+    <avue-crud
+      :table-loading="loading"
+      :option="option"
+      :data="data"
+      @selection-change="selectionChange"
+      id="out-table"
+      ref="crud"
+      :header-cell-class-name="headerClassName"
+      @resetColumn="resetColumnTwo('crud', 'option', 'optionBack', 309.6)"
+      @saveColumn="saveColumnTwo('crud', 'option', 'optionBack', 309.6)"
+    >
+      <template slot-scope="scope" slot="menuLeft">
+        <el-button
+          v-if="!typeMenu && assemblyForm.billStatus != 3"
+          type="danger"
+          size="small"
+          icon="el-icon-delete"
+          plain
+          :disabled="disabled"
+          @click="batchWithdrawfun"
+          >{{ $t("btn118n.selectclearCtnrLlist") }}
+        </el-button>
+      </template>
+      <template slot-scope="scope" slot="menu" v-if="assemblyForm.billStatus != 3">
+        <el-button
+          :type="scope.type"
+          :size="scope.size"
+          icon="el-icon-edit"
+          :disabled="disabled || assemblyForm.status == 1"
+          @click.stop="withdrawfun(scope.row, scope.index)"
+          >{{ $t("btn118n.selectclearCtnrLlist") }}
+        </el-button>
+      </template>
+      <template slot-scope="scope" slot="billNo">
+        <span class="textoverflow" :style="typeMenu ? 'color: #409EFF' : ''" @click.stop="corpfun(scope)">
+          {{ scope.row.billNo }}
+        </span>
+      </template>
+      <template slot-scope="scope" slot="billDate">
+        <span>{{ scope.row.billDate ? scope.row.billDate.slice(0, 10) : "" }}</span>
+      </template>
+    </avue-crud>
+  </div>
 </template>
 
 <script>
 import { billsRevokeReinsurancePolicy } from "@/api/iosBasicData/bills";
 export default {
-    props: {
-        data: {
-            type: Array,
-        },
-        assemblyForm: {
-            type: Object,
-        },
-        typeMenu: {
-            type: Boolean,
-            default: false,
-        },
-        detailData: {},
-        disabled: {
-            type: Boolean,
-            default: false,
-        },
+  props: {
+    data: {
+      type: Array
     },
-    data() {
-        return {
-            selectionList: [],
-            loading: false,
-            option: {},
-            optionBack: {
-                calcHeight: 30,
-                tip: false,
-                searchShow: true,
-                searchMenuSpan: 6,
-                border: true,
-                selection: true, // 多选
-                index: true,
-                stripe: true,
-                addBtn: false,
-                viewBtn: false,
-                delBtn: false,
-                editBtn: false,
-                menu: true, // 操作栏
-                menuWidth: 'auto',
-                column: [
-                    {
-                        label: this.$t("sea118n.billNo"),
-                        prop: "billNo",
-                        width: "160",
-                        overHidden: true,
-                    },
-                    {
-                        label: this.$t("sea118n.billDate"),
-                        prop: "billDate",
-                        width: "160",
-                        overHidden: true,
-                    },
-                    {
-                        label: this.$t("sea118n.corpName"),
-                        prop: "corpCnName",
-                        width: "160",
-                        overHidden: true,
-                    },
-/*                    {
+    assemblyForm: {
+      type: Object
+    },
+    typeMenu: {
+      type: Boolean,
+      default: false
+    },
+    detailData: {},
+    disabled: {
+      type: Boolean,
+      default: false
+    }
+  },
+  data() {
+    return {
+      selectionList: [],
+      loading: false,
+      option: {},
+      optionBack: {
+        calcHeight: 30,
+        tip: false,
+        searchShow: true,
+        searchMenuSpan: 6,
+        border: true,
+        selection: true, // 多选
+        index: true,
+        stripe: true,
+        addBtn: false,
+        viewBtn: false,
+        delBtn: false,
+        editBtn: false,
+        menu: true, // 操作栏
+        menuWidth: "auto",
+        column: [
+          {
+            label: this.$t("sea118n.billNo"),
+            prop: "billNo",
+            width: "160",
+            overHidden: true
+          },
+          {
+            label: this.$t("sea118n.billDate"),
+            prop: "billDate",
+            width: "160",
+            overHidden: true
+          },
+          {
+            label: this.$t("sea118n.corpName"),
+            prop: "corpCnName",
+            width: "160",
+            overHidden: true
+          },
+          /*                    {
                         label: "客户英文名",
                         prop: "corpEnName",
                         width: "160",
                         overHidden: true,
                     },*/
-                    {
-                        label: "MB/L NO",
-                        prop: "mblno",
-                        width: "160",
-                        overHidden: true,
-                    },
-                    {
-                        label: "HB/L NO",
-                        prop: "hblno",
-                        width: "160",
-                        overHidden: true,
-                    },
-                    {
-                        label:this.$t("sea118n.marks"),
-                        prop: "marks",
-                        width: "160",
-                        overHidden: true,
-                    },
-                    {
-                        label: this.$t("sea118n.QTY"),
-                        prop: "quantity",
-                        width: "100",
-                        overHidden: true,
-                    },
-                    {
-                        label: this.$t("sea118n.package"),
-                        prop: "packingUnit",
-                        width: "100",
-                        overHidden: true,
-                    },
-                    {
-                        label: this.$t("sea118n.GW"),
-                        prop: "grossWeight",
-                        width: "100",
-                        overHidden: true,
-                    },
-/*                    {
+          {
+            label: "MB/L NO",
+            prop: "mblno",
+            width: "160",
+            overHidden: true
+          },
+          {
+            label: "HB/L NO",
+            prop: "hblno",
+            width: "160",
+            overHidden: true
+          },
+          {
+            label: this.$t("sea118n.marks"),
+            prop: "marks",
+            width: "160",
+            overHidden: true
+          },
+          {
+            label: this.$t("sea118n.QTY"),
+            prop: "quantity",
+            width: "100",
+            overHidden: true
+          },
+          {
+            label: this.$t("sea118n.package"),
+            prop: "packingUnit",
+            width: "100",
+            overHidden: true
+          },
+          {
+            label: this.$t("sea118n.GW"),
+            prop: "grossWeight",
+            width: "100",
+            overHidden: true
+          },
+          /*                    {
                         label: "净重 (KGM)",
                         prop: "netWeight",
                         width: "100",
                         overHidden: true,
                     },*/
-                    {
-                        label: this.$t("sea118n.CBM"),
-                        prop: "measurement",
-                        width: "100",
-                        overHidden: true,
-                    },
-                ]
-            },
-        }
+          {
+            label: this.$t("sea118n.CBM"),
+            prop: "measurement",
+            width: "100",
+            overHidden: true
+          }
+        ]
+      }
+    };
+  },
+  async created() {
+    this.option = await this.getColumnData(this.getColumnName(309.6), this.optionBack);
+    if (this.typeMenu) {
+      this.option.menu = false;
+      this.option.selection = false;
+      // this.option.height = '200'
+      this.option.columnBtn = false;
+      this.option.refreshBtn = false;
+      this.$nextTick(() => {
+        // console.log(document.querySelector('.avue-crud__menu'),156)
+        document.querySelector(".avue-crud__menu").className = "avue-crud__menu_height";
+      });
+    } else {
+      this.option.menu = true;
+      this.option.selection = true;
+      // this.option.height = '450'
+      this.option.columnBtn = true;
+      this.option.refreshBtn = true;
+    }
+  },
+  // 解决AVue表格错位问题
+  activated() {
+    this.$nextTick(() => {
+      this.$refs.crud.doLayout();
+    });
+  },
+  methods: {
+    // 点击进详情
+    corpfun(scope) {
+      this.$emit("corpfun", scope.row.id);
     },
-    async created() {
-        this.option = await this.getColumnData(this.getColumnName(309.6), this.optionBack);
-        if (this.typeMenu) {
-            this.option.menu = false
-            this.option.selection = false
-            // this.option.height = '200'
-            this.option.columnBtn = false
-            this.option.refreshBtn = false
-            this.$nextTick(() => {
-                // console.log(document.querySelector('.avue-crud__menu'),156)
-                document.querySelector('.avue-crud__menu').className = 'avue-crud__menu_height'
-            })
-        } else {
-            this.option.menu = true
-            this.option.selection = true
-            // this.option.height = '450'
-            this.option.columnBtn = true
-            this.option.refreshBtn = true
-        }
-
-
+    // 批量撤回
+    batchWithdrawfun() {
+      if (this.selectionList.length === 0) {
+        this.$message.warning("请选择至少一条数据");
+        return;
+      }
+      this.$confirm("确定将选择数据撤回?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        let arr = this.selectionList.map(item => {
+          return item.id;
+        });
+        this.billsRevokeReinsurancePolicyfun(arr.join(","), this.assemblyForm.id);
+      });
     },
-    // 解决AVue表格错位问题
-    activated() {
-        this.$nextTick(() => {
-            this.$refs.crud.doLayout()
-        })
+    withdrawfun(row) {
+      this.$confirm("确定将选择数据撤回?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        this.billsRevokeReinsurancePolicyfun(row.id, this.assemblyForm.id);
+      });
+    },
+    // 选择赋值
+    selectionChange(list) {
+      this.selectionList = list;
+    },
+    // 撤回接口
+    billsRevokeReinsurancePolicyfun(ids, id) {
+      billsRevokeReinsurancePolicy(ids, id).then(res => {
+        this.$message({
+          type: "success",
+          message: "操作成功!"
+        });
+        this.$emit("billsListAllfun");
+        this.$emit("billsDetailfun");
+      });
     },
-    methods: {
-        // 点击进详情
-        corpfun(scope) {
-            this.$emit('corpfun', scope.row.id)
-        },
-        // 批量撤回
-        batchWithdrawfun() {
-            if (this.selectionList.length === 0) {
-                this.$message.warning("请选择至少一条数据");
-                return;
-            }
-            this.$confirm("确定将选择数据撤回?", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning"
-            }).then(() => {
-                let arr = this.selectionList.map(item => {
-                    return item.id
-                })
-                this.billsRevokeReinsurancePolicyfun(arr.join(','), this.assemblyForm.id)
-            })
-        },
-        withdrawfun(row) {
-            this.$confirm("确定将选择数据撤回?", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning"
-            }).then(() => {
-                this.billsRevokeReinsurancePolicyfun(row.id, this.assemblyForm.id)
-            })
-        },
-        // 选择赋值
-        selectionChange(list) {
-            this.selectionList = list
-        },
-        // 撤回接口
-        billsRevokeReinsurancePolicyfun(ids, id) {
-            billsRevokeReinsurancePolicy(ids, id).then(res => {
-                this.$message({
-                    type: "success",
-                    message: "操作成功!"
-                });
-                this.$emit('billsListAllfun')
-            })
-        },
-
-        //自定义列保存
-        async saveColumnTwo(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;
-            }
-        },
-        //自定义列重置
-        async resetColumnTwo(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;
-        },
+    //自定义列保存
+    async saveColumnTwo(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;
+      }
+    },
+    //自定义列重置
+    async resetColumnTwo(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;
+  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;
 }
 
 .textoverflow {
-    width: 100%;
-    overflow: hidden;
-    white-space: nowrap;
-    text-overflow: ellipsis;
+  width: 100%;
+  overflow: hidden;
+  white-space: nowrap;
+  text-overflow: ellipsis;
 }
 
 .avue-crud__menu_height {
-    display: none;
+  display: none;
 }
 </style>

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

@@ -461,6 +461,7 @@
             :data="billsListAllData"
             :disabled="detailData.seeDisabled || showLock"
             @billsListAllfun="billsListAllfun(form.id)"
+            @billsDetailfun="billsDetailfun(form.id)"
           ></Split-list>
         </el-tab-pane>
         <el-tab-pane label="海关信息">

+ 1 - 1
src/views/iosBasicData/SeafreightExportF/bills/index.vue

@@ -214,7 +214,7 @@
             style="color: #1e9fff;cursor: pointer;width: 100%;overflow:hidden;white-space: nowrap;text-overflow: ellipsis;"
             @click.stop="rowCellfun(scope.row.id, scope.row)"
           >
-            {{ scope.row.shortName }}
+            {{ scope.row.corpCnName }}
           </span>
         </template>
         <template slot="billNo" slot-scope="scope">

+ 10 - 3
src/views/iosBasicData/businessCenter/customerBooking/index.vue

@@ -125,7 +125,7 @@ export default {
         menuWidth: 140,
         tip: false,
         searchShow: true,
-        searchMenuSpan: 24,
+        searchMenuSpan: 18,
         border: true,
         index: true,
         addBtn: false,
@@ -282,6 +282,13 @@ export default {
             searchDefaultTime: ["00:00:00", "23:59:59"]
           },
           {
+            label:'箱号',
+            prop: "extendedData",
+            search: true,
+            width: 80,
+            overHidden: true,
+          },
+          {
             label: "起运港",
             prop: "polEnName",
             width: "80",
@@ -567,7 +574,7 @@ export default {
     this.option = await this.getColumnData(this.getColumnName(513), this.optionBack);
     this.saberUserInfo = JSON.parse(localStorage.getItem("saber-userInfo")).content;
     if (this.saberUserInfo.role_name.indexOf("admin") != -1 || this.saberUserInfo.role_name.indexOf("总部") != -1) {
-      this.option.searchMenuSpan = 18;
+      this.option.searchMenuSpan = 12;
       this.option.column.forEach(item => {
         if (item.prop == "branchId") {
           item.search = true;
@@ -753,7 +760,7 @@ export default {
       this[option] = this[optionBack];
       const inSave = await this.delColumnData(this.getColumnName(code), this[optionBack]);
       if (this.saberUserInfo.role_name.indexOf("admin") != -1 || this.saberUserInfo.role_name.indexOf("总部") != -1) {
-        this.option.searchMenuSpan = 18;
+        this.option.searchMenuSpan = 12;
         this.option.column.forEach(item => {
           if (item.prop == "branchId") {
             item.search = true;

+ 21 - 0
src/views/ow/owPut/detailsPage.vue

@@ -269,6 +269,27 @@
                 <!-- <el-button size="small" style="margin-right: 8px" :disabled="!form.id || true"
                   @click="$refs.print.openDialog()">打印报表
                 </el-button> -->
+                   <el-tag style="margin-right: 8px;">
+                  空箱进场:
+                  {{ form.tradingBoxItemsList.filter(item => item.status == "待使用").length || 0 }}
+                </el-tag>
+                <el-tag type="success" style="margin-right: 8px;">
+                  空箱出场:
+                  {{
+                    form.tradingBoxItemsList.filter(item => item.status == "使用中" || item.status == "已还箱" || item.status == "退租").length || 0
+                  }}
+                </el-tag>
+                <el-tag type="info" style="margin-right: 8px;">
+                  已还箱:
+                  {{ form.tradingBoxItemsList.filter(item => item.status == "已还箱").length || 0 }}
+                </el-tag>
+                <el-tag type="danger">
+                  盘存:
+                  {{
+                    form.tradingBoxItemsList.filter(item => item.status == "待使用").length -
+                      form.tradingBoxItemsList.filter(item => item.status == "使用中" || item.status == "已还箱" || item.status == "退租").length || 0
+                  }}
+                </el-tag>
               </template>
               <template slot="index" slot-scope="{ row, index }">
                 <span>{{ index + 1 }}</span>

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

@@ -323,6 +323,27 @@
                 <!-- <el-button size="small" style="margin-right: 8px" :disabled="!form.id || true"
                   @click="$refs.print.openDialog()">打印报表
                 </el-button> -->
+                <el-tag style="margin-right: 8px;">
+                  空箱进场:
+                  {{ form.tradingBoxItemsList.filter(item => item.status == "待使用").length || 0 }}
+                </el-tag>
+                <el-tag type="success" style="margin-right: 8px;">
+                  空箱出场:
+                  {{
+                    form.tradingBoxItemsList.filter(item => item.status == "使用中" || item.status == "已还箱" || item.status == "退租").length || 0
+                  }}
+                </el-tag>
+                <el-tag type="info" style="margin-right: 8px;">
+                  已还箱:
+                  {{ form.tradingBoxItemsList.filter(item => item.status == "已还箱").length || 0 }}
+                </el-tag>
+                <el-tag type="danger">
+                  盘存:
+                  {{
+                    form.tradingBoxItemsList.filter(item => item.status == "待使用").length -
+                      form.tradingBoxItemsList.filter(item => item.status == "使用中" || item.status == "已还箱" || item.status == "退租").length || 0
+                  }}
+                </el-tag>
               </template>
               <template slot="index" slot-scope="{ row, index }">
                 <span>{{ index + 1 }}</span>