Browse Source

合计 注释部分文本校验

Qukatie 5 months ago
parent
commit
16f0c9ac52

+ 63 - 63
src/views/iosBasicData/SeafreightExportF/bills/billsDetails.vue

@@ -1655,37 +1655,37 @@ export default {
         });
         return;
       }
-      // if (!verifyEnglish(this.form.detail.hshipperDetails)) {
-      //   msgsList.push("发货人");
-      // }
-      // if (!verifyEnglish(this.form.detail.hconsigneeDetails)) {
-      //   msgsList.push("收货人");
-      // }
-      // if (!verifyEnglish(this.form.detail.hnotifyDetails)) {
-      //   msgsList.push("通知人");
-      // }
-      // if (!verifyEnglish(this.form.detail.mshipperDetails)) {
-      //   msgsList.push("MBL 发货人");
-      // }
-      // if (!verifyEnglish(this.form.detail.mconsigneeDetails)) {
-      //   msgsList.push("MBL 收货人");
-      // }
-      // if (!verifyEnglish(this.form.detail.mnotifyDetails)) {
-      //   msgsList.push("MBL 通知人");
-      // }
-      // if (!verifyEnglish(this.form.marks)) {
-      //   msgsList.push("唛头");
-      // }
-      // if (!verifyEnglish(this.form.commodityDescr)) {
-      //   msgsList.push("货描");
-      // }
-      // if (!verifyEnglish(this.form.forwarding)) {
-      //   msgsList.push("FORWARDING");
-      // }
-      // if (msgsList.length > 0) {
-      //   this.$message.error(`请正确输入${msgsList.join(",")}的英文`);
-      //   return;
-      // }
+      if (!verifyEnglish(this.form.detail.hshipperDetails)) {
+        msgsList.push("发货人");
+      }
+      if (!verifyEnglish(this.form.detail.hconsigneeDetails)) {
+        msgsList.push("收货人");
+      }
+      if (!verifyEnglish(this.form.detail.hnotifyDetails)) {
+        msgsList.push("通知人");
+      }
+      if (!verifyEnglish(this.form.detail.mshipperDetails)) {
+        msgsList.push("MBL 发货人");
+      }
+      if (!verifyEnglish(this.form.detail.mconsigneeDetails)) {
+        msgsList.push("MBL 收货人");
+      }
+      if (!verifyEnglish(this.form.detail.mnotifyDetails)) {
+        msgsList.push("MBL 通知人");
+      }
+      if (!verifyEnglish(this.form.marks)) {
+        msgsList.push("唛头");
+      }
+      if (!verifyEnglish(this.form.commodityDescr)) {
+        msgsList.push("货描");
+      }
+      if (!verifyEnglish(this.form.forwarding)) {
+        msgsList.push("FORWARDING");
+      }
+      if (msgsList.length > 0) {
+        this.$message.error(`请正确输入${msgsList.join(",")}的英文`);
+        return;
+      }
       this.saveLoading = true;
       editypesSendingEdi(row)
         .then(res => {
@@ -2612,38 +2612,38 @@ export default {
               }
             }
             // console.log(this.form.detail);
-            // if (!verifyEnglish(this.form.detail.hshipperDetails)) {
-            //   msgsList.push("发货人");
-            // }
-            // if (!verifyEnglish(this.form.detail.hconsigneeDetails)) {
-            //   msgsList.push("收货人");
-            // }
-            // if (!verifyEnglish(this.form.detail.hnotifyDetails)) {
-            //   msgsList.push("通知人");
-            // }
-            // if (!verifyEnglish(this.form.detail.mshipperDetails)) {
-            //   msgsList.push("MBL 发货人");
-            // }
-            // if (!verifyEnglish(this.form.detail.mconsigneeDetails)) {
-            //   msgsList.push("MBL 收货人");
-            // }
-            // if (!verifyEnglish(this.form.detail.mnotifyDetails)) {
-            //   msgsList.push("MBL 通知人");
-            // }
-            // if (!verifyEnglish(this.form.marks)) {
-            //   msgsList.push("唛头");
-            // }
-            // if (!verifyEnglish(this.form.commodityDescr)) {
-            //   msgsList.push("货描");
-            // }
-            // if (!verifyEnglish(this.form.forwarding)) {
-            //   msgsList.push("FORWARDING");
-            // }
-            // if (msgsList.length > 0) {
-            //   // this.$message.error(`请正确输入${msgsList.join(",")}的英文`);
-            //   this.$message.error(`${msgsList.join(",")}存在非英文字符,如汉字等,请修正后再保存!`);
-            //   return;
-            // }
+            if (!verifyEnglish(this.form.detail.hshipperDetails)) {
+              msgsList.push("发货人");
+            }
+            if (!verifyEnglish(this.form.detail.hconsigneeDetails)) {
+              msgsList.push("收货人");
+            }
+            if (!verifyEnglish(this.form.detail.hnotifyDetails)) {
+              msgsList.push("通知人");
+            }
+            if (!verifyEnglish(this.form.detail.mshipperDetails)) {
+              msgsList.push("MBL 发货人");
+            }
+            if (!verifyEnglish(this.form.detail.mconsigneeDetails)) {
+              msgsList.push("MBL 收货人");
+            }
+            if (!verifyEnglish(this.form.detail.mnotifyDetails)) {
+              msgsList.push("MBL 通知人");
+            }
+            if (!verifyEnglish(this.form.marks)) {
+              msgsList.push("唛头");
+            }
+            if (!verifyEnglish(this.form.commodityDescr)) {
+              msgsList.push("货描");
+            }
+            if (!verifyEnglish(this.form.forwarding)) {
+              msgsList.push("FORWARDING");
+            }
+            if (msgsList.length > 0) {
+              // this.$message.error(`请正确输入${msgsList.join(",")}的英文`);
+              this.$message.error(`${msgsList.join(",")}存在非英文字符,如汉字等,请修正后再保存!`);
+              return;
+            }
           }
           this.form.detail.hshipperDetails = this.getTextTirim(this.form.detail.hshipperDetails);
           this.form.detail.hconsigneeDetails = this.getTextTirim(this.form.detail.hconsigneeDetails);

+ 672 - 603
src/views/iosBasicData/businessCenter/customerBooking/index.vue

@@ -1,55 +1,76 @@
 <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"
-                @resetColumn="resetColumn('crud', 'option', 'optionBack', 513)"
-                @saveColumn="saveColumn('crud', 'option', 'optionBack', 513)" @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" @click="outExport">导 出</el-button>
-                    <div style="margin-top: 10px">
-                        <el-tabs type="card" v-model="query.billStatus" @tab-click="handleClick">
-                            <!-- <el-tab-pane label="录入" name="1"></el-tab-pane>
+  <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"
+        @resetColumn="resetColumn('crud', 'option', 'optionBack', 513)"
+        @saveColumn="saveColumn('crud', 'option', 'optionBack', 513)"
+        @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" @click="outExport">导 出</el-button>
+          <div style="margin-top: 10px">
+            <el-tabs type="card" v-model="query.billStatus" @tab-click="handleClick">
+              <!-- <el-tab-pane label="录入" name="1"></el-tab-pane>
                             <el-tab-pane label="提交" name="2"></el-tab-pane>
                             <el-tab-pane label="受理" name="3"></el-tab-pane> -->
-                            <el-tab-pane label="草稿" name="1"></el-tab-pane>
-                            <el-tab-pane label="已提交" name="2"></el-tab-pane>
-                            <el-tab-pane label="已成交" name="5"></el-tab-pane>
-                            <el-tab-pane label="订舱驳回" name="7"></el-tab-pane>
-                            <el-tab-pane label="已退舱" name="8"></el-tab-pane>
-                            <el-tab-pane label="全部" name="0"></el-tab-pane>
-                        </el-tabs>
-                    </div>
-                </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.issueStatus == 0 || row.issueStatus == 6||row.billStatus==1)">删
-                        除</el-button>
-                </template>
-                <template slot="whetherModify" slot-scope="{ row }">
-                    <div>
-                        <span v-if="row.whetherModify == item.dictKey" v-for="(item, index) in khdcStatus" :key="index"
-                            :style="{ 'background-color': item.colour }"
-                            style="color: #fff;border-radius: 30px;padding: 2px 15px;text-align: center;">
-                            {{ item.dictValue }}
-                        </span>
-                    </div>
-                </template>
-                <template slot="billNo" slot-scope="{ row }">
-                    <span style="color: #1e9fff;cursor: pointer;" @click="rowEdit(row)">{{ row.billNo }}</span>
-                </template>
-            </avue-crud>
-        </basic-container>
-        <detailsPage v-if="!isShow" :detailData="detailData" :pageIds="pageIds" @goBack="goBack"></detailsPage>
-    </div>
+              <el-tab-pane label="草稿" name="1"></el-tab-pane>
+              <el-tab-pane label="已提交" name="2"></el-tab-pane>
+              <el-tab-pane label="已成交" name="5"></el-tab-pane>
+              <el-tab-pane label="订舱驳回" name="7"></el-tab-pane>
+              <el-tab-pane label="已退舱" name="8"></el-tab-pane>
+              <el-tab-pane label="全部" name="0"></el-tab-pane>
+            </el-tabs>
+          </div>
+        </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.issueStatus == 0 || row.issueStatus == 6 || row.billStatus == 1)"
+            >删 除</el-button
+          >
+        </template>
+        <template slot="whetherModify" slot-scope="{ row }">
+          <div>
+            <span
+              v-if="row.whetherModify == item.dictKey"
+              v-for="(item, index) in khdcStatus"
+              :key="index"
+              :style="{ 'background-color': item.colour }"
+              style="color: #fff;border-radius: 30px;padding: 2px 15px;text-align: center;"
+            >
+              {{ item.dictValue }}
+            </span>
+          </div>
+        </template>
+        <template slot="billNo" slot-scope="{ row }">
+          <span style="color: #1e9fff;cursor: pointer;" @click="rowEdit(row)">{{ row.billNo }}</span>
+        </template>
+      </avue-crud>
+    </basic-container>
+    <detailsPage v-if="!isShow" :detailData="detailData" :pageIds="pageIds" @goBack="goBack"></detailsPage>
+  </div>
 </template>
 
 <script>
@@ -60,584 +81,632 @@ import { getToken } from "@/util/auth";
 import { dateFormat } from "@/util/date";
 import _ from "lodash";
 export default {
-    data() {
-        return {
-            pageIds: [],
-            isShow: true,
-            form: {},
-            query: {
-                businessType: 'KHTS',
-                billStatus: '1'
+  data() {
+    return {
+      pageIds: [],
+      isShow: true,
+      form: {},
+      query: {
+        businessType: "KHTS",
+        billStatus: "1"
+      },
+      loading: false,
+      page: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0
+      },
+      selectionList: [],
+      khdcStatus: [],
+      option: {},
+      optionBack: {
+        height: "auto",
+        calcHeight: 30,
+        menuWidth: 140,
+        tip: false,
+        searchShow: true,
+        searchMenuSpan: 18,
+        border: true,
+        index: true,
+        addBtn: false,
+        viewBtn: false,
+        editBtn: false,
+        delBtn: false,
+        selection: true,
+        searchIcon: true,
+        align: "center",
+        searchIndex: 3,
+        summaryText: "合计",
+        showSummary: true,
+        sumColumnList: [
+          {
+            name: "teu",
+            type: "sum",
+            decimals: 0
+          },
+          {
+            name: "quantityV20",
+            type: "sum",
+            decimals: 0
+          },
+          {
+            name: "quantityV40",
+            type: "sum",
+            decimals: 0
+          },
+          {
+            name: "quantityV45",
+            type: "sum",
+            decimals: 0
+          },
+          {
+            name: "quantityV48",
+            type: "sum",
+            decimals: 0
+          },
+          {
+            name: "quantityV40hc",
+            type: "sum",
+            decimals: 0
+          },
+          {
+            name: "quantity",
+            type: "sum",
+            decimals: 0
+          },
+          {
+            name: "grossWeight",
+            type: "sum",
+            decimals: 3
+          },
+          {
+            name: "measurement",
+            type: "sum",
+            decimals: 3
+          }
+        ],
+        column: [
+          {
+            label: "所属公司",
+            prop: "branchName",
+            width: "100",
+            // search: true,
+            // type: "select",
+            // filterable: true,
+            // dicUrl: "/api/blade-system/dept/lazy-list",
+            // props: {
+            //     label: "deptName",
+            //     value: "deptName",
+            // },
+            overHidden: true
+          },
+          {
+            label: "所属公司",
+            prop: "branchId",
+            width: "100",
+            search: true,
+            type: "select",
+            filterable: true,
+            dicUrl: "/api/blade-system/dept/lazy-list",
+            props: {
+              label: "deptName",
+              value: "id"
             },
-            loading: false,
-            page: {
-                pageSize: 10,
-                currentPage: 1,
-                total: 0
+            hide: true,
+            //showColumn: false,
+            overHidden: true
+          },
+          {
+            label: "系统号",
+            prop: "billNo",
+            width: "120",
+            search: true,
+            overHidden: true
+          },
+          {
+            label: "B/L NO",
+            prop: "hblno",
+            width: "100",
+            search: true,
+            overHidden: true
+          },
+          {
+            label: "客户",
+            prop: "corpCnName",
+            width: "100",
+            search: true,
+            type: "select",
+            filterable: true,
+            remote: true,
+            dicUrl: "/api/blade-los/bcorps/selectList?status=0&current=1&size=20&cnName={{key}}",
+            props: {
+              label: "cnName",
+              value: "cnName",
+              res: "data.records"
             },
-            selectionList: [],
-            khdcStatus: [],
-            option: {},
-            optionBack: {
-                height: 'auto',
-                calcHeight: 30,
-                menuWidth: 140,
-                tip: false,
-                searchShow: true,
-                searchMenuSpan: 18,
-                border: true,
-                index: true,
-                addBtn: false,
-                viewBtn: false,
-                editBtn: false,
-                delBtn: false,
-                selection: true,
-                searchIcon: true,
-                align: 'center',
-                searchIndex: 3,
-                column: [
-                     {
-                        label: '所属公司',
-                        prop: "branchName",
-                        width: "100",
-                        // search: true,
-                        // type: "select",
-                        // filterable: true,
-                        // dicUrl: "/api/blade-system/dept/lazy-list",
-                        // props: {
-                        //     label: "deptName",
-                        //     value: "deptName",
-                        // },
-                        overHidden: true,
-                    },
-                    {
-                        label: '所属公司',
-                        prop: "branchId",
-                        width: "100",
-                        search: true,
-                        type: "select",
-                        filterable: true,
-                        dicUrl: "/api/blade-system/dept/lazy-list",
-                        props: {
-                            label: "deptName",
-                            value: "id",
-                        },
-                        hide: true,
-                        //showColumn: false,
-                        overHidden: true,
-                    },
-                    {
-                        label: '系统号',
-                        prop: "billNo",
-                        width: "120",
-                        search: true,
-                        overHidden: true,
-                    },
-                    {
-                        label: 'B/L NO',
-                        prop: "hblno",
-                        width: "100",
-                        search: true,
-                        overHidden: true,
-                    },
-                    {
-                        label: '客户',
-                        prop: "corpCnName",
-                        width: "100",
-                        search: true,
-                        type: 'select',
-                        filterable: true,
-                        remote: true,
-                        dicUrl: "/api/blade-los/bcorps/selectList?status=0&current=1&size=20&cnName={{key}}",
-                        props: {
-                            label: 'cnName',
-                            value: 'cnName',
-                            res: 'data.records'
-                        },
-                        overHidden: true,
-                    },
-                    {
-                        label: 'ETD',
-                        prop: "etd",
-                        width: "100",
-                        overHidden: true,
-                        type: "date",
-                        format: "yyyy-MM-dd",
-                        valueFormat: "yyyy-MM-dd 00:00:00",
-                    },
-                    {
-                        label: "起运港",
-                        prop: "polEnName",
-                        width: "80",
-                        overHidden: true,
-                        search: true,
-                        type: 'select',
-                        filterable: true,
-                        remote: true,
-                        dicUrl: "/api/blade-los/bports/list?current=1&size=5&cnName={{key}}",
-                        props: {
-                            label: 'enName',
-                            value: 'enName',
-                            desc: 'code',
-                            res: 'data.records'
-                        },
-                    },
-                    {
-                        label: "卸货港",
-                        prop: "podEnName",
-                        width: "80",
-                        overHidden: true,
-                        search: true,
-                        type: 'select',
-                        filterable: true,
-                        remote: true,
-                        dicUrl: "/api/blade-los/bports/list?current=1&size=5&cnName={{key}}",
-                        props: {
-                            label: 'enName',
-                            value: 'enName',
-                            desc: 'code',
-                            res: 'data.records'
-                        },
-                    },
-                    // {
-                    //     label: "订舱状态",
-                    //     prop: "issueStatus",
-                    //     width: "80",
-                    //     overHidden: true,
-                    //     // search: true,
-                    //     type: 'select',
-                    //     dicData: [{
-                    //         label: '草稿',
-                    //         value: '0',
-                    //     }, {
-                    //         label: '已成交',
-                    //         value: '1',
-                    //     }, {
-                    //         label: '已提交',
-                    //         value: '2',
-                    //     }, {
-                    //         label: '订舱驳回',
-                    //         value: '6',
-                    //     }],
-                    // },
-                    {
-                        label: "OP",
-                        prop: "operatorName",
-                        width: "80",
-                        overHidden: true,
-                        search: true,
-                        type: 'select',
-                        filterable: true,
-                        dicUrl: "/api/blade-user/userListAll?roleAlias=操作员",
-                        props: {
-                            label: 'realName',
-                            value: 'realName',
-                        },
-                    },
-                    {
-                        label: "客服",
-                        prop: "customerServiceName",
-                        width: "80",
-                        overHidden: true,
-                        search: true,
-                        type: 'select',
-                        filterable: true,
-                        dicUrl: "/api/blade-user/userListAll?roleAlias=客服",
-                        props: {
-                            label: 'realName',
-                            value: 'realName',
-                        },
-                    },
-                    {
-                        label: '订舱日期',
-                        prop: "bookingDate",
-                        width: "100",
-                        overHidden: true,
-                        search: true,
-                        type: "date",
-                        searchProp: "bookingDateList",
-                        unlinkPanels: true,
-                        searchRange: true,
-                        format: "yyyy-MM-dd",
-                        valueFormat: "yyyy-MM-dd HH:mm:ss",
-                        searchDefaultTime: ["00:00:00", "23:59:59"],
-                    },
-                    {
-                        label: '付费方式',
-                        prop: "mpaymode",
-                        width: "100",
-                        overHidden: true,
-                    },
-                    {
-                        label: "运输条款",
-                        prop: "serviceTerms",
-                        width: "80",
-                        overHidden: true,
-                    },
-                    {
-                        label: "箱型/箱量",
-                        prop: "quantityCntrDescr",
-                        width: "120",
-                        overHidden: true
-                    },
-                   {
-                        label: "TEU",
-                        prop: "teu",
-                        width: "100",
-                        overHidden: true
-                    },
-                    {
-                        label: "20GP",
-                        prop: "quantityV20",
-                        width: "100",
-                        overHidden: true
-                    },
-                    {
-                        label: "40GP",
-                        prop: "quantityV40",
-                        width: "100",
-                        overHidden: true
-                    },
-                    {
-                        label: "20HC",
-                        prop: "quantityV45",
-                        width: "100",
-                        overHidden: true
-                    },
-                    {
-                        label: "40FR",
-                        prop: "quantityV48",
-                        width: "100",
-                        overHidden: true
-                    },
-                    {
-                        label: "40HC",
-                        prop: "quantityV40hc",
-                        width: "100",
-                        overHidden: true
-                    }, 
-                    {
-                        label: '件数',
-                        prop: "quantity",
-                        width: "100",
-                        overHidden: true,
-                    },
-                    {
-                        label: '包装',
-                        prop: "packingUnit",
-                        width: "100",
-                        overHidden: true,
-                    },
+            overHidden: true
+          },
+          {
+            label: "ETD",
+            prop: "etd",
+            width: "100",
+            overHidden: true,
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd 00:00:00"
+          },
+          {
+            label: "起运港",
+            prop: "polEnName",
+            width: "80",
+            overHidden: true,
+            search: true,
+            type: "select",
+            filterable: true,
+            remote: true,
+            dicUrl: "/api/blade-los/bports/list?current=1&size=5&cnName={{key}}",
+            props: {
+              label: "enName",
+              value: "enName",
+              desc: "code",
+              res: "data.records"
+            }
+          },
+          {
+            label: "卸货港",
+            prop: "podEnName",
+            width: "80",
+            overHidden: true,
+            search: true,
+            type: "select",
+            filterable: true,
+            remote: true,
+            dicUrl: "/api/blade-los/bports/list?current=1&size=5&cnName={{key}}",
+            props: {
+              label: "enName",
+              value: "enName",
+              desc: "code",
+              res: "data.records"
+            }
+          },
+          // {
+          //     label: "订舱状态",
+          //     prop: "issueStatus",
+          //     width: "80",
+          //     overHidden: true,
+          //     // search: true,
+          //     type: 'select',
+          //     dicData: [{
+          //         label: '草稿',
+          //         value: '0',
+          //     }, {
+          //         label: '已成交',
+          //         value: '1',
+          //     }, {
+          //         label: '已提交',
+          //         value: '2',
+          //     }, {
+          //         label: '订舱驳回',
+          //         value: '6',
+          //     }],
+          // },
+          {
+            label: "OP",
+            prop: "operatorName",
+            width: "80",
+            overHidden: true,
+            search: true,
+            type: "select",
+            filterable: true,
+            dicUrl: "/api/blade-user/userListAll?roleAlias=操作员",
+            props: {
+              label: "realName",
+              value: "realName"
+            }
+          },
+          {
+            label: "客服",
+            prop: "customerServiceName",
+            width: "80",
+            overHidden: true,
+            search: true,
+            type: "select",
+            filterable: true,
+            dicUrl: "/api/blade-user/userListAll?roleAlias=客服",
+            props: {
+              label: "realName",
+              value: "realName"
+            }
+          },
+          {
+            label: "订舱日期",
+            prop: "bookingDate",
+            width: "100",
+            overHidden: true,
+            search: true,
+            type: "date",
+            searchProp: "bookingDateList",
+            unlinkPanels: true,
+            searchRange: true,
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd HH:mm:ss",
+            searchDefaultTime: ["00:00:00", "23:59:59"]
+          },
+          {
+            label: "付费方式",
+            prop: "mpaymode",
+            width: "100",
+            overHidden: true
+          },
+          {
+            label: "运输条款",
+            prop: "serviceTerms",
+            width: "80",
+            overHidden: true
+          },
+          {
+            label: "箱型/箱量",
+            prop: "quantityCntrDescr",
+            width: "120",
+            overHidden: true
+          },
+          {
+            label: "TEU",
+            prop: "teu",
+            width: "100",
+            overHidden: true
+          },
+          {
+            label: "20GP",
+            prop: "quantityV20",
+            width: "100",
+            overHidden: true
+          },
+          {
+            label: "40GP",
+            prop: "quantityV40",
+            width: "100",
+            overHidden: true
+          },
+          {
+            label: "20HC",
+            prop: "quantityV45",
+            width: "100",
+            overHidden: true
+          },
+          {
+            label: "40FR",
+            prop: "quantityV48",
+            width: "100",
+            overHidden: true
+          },
+          {
+            label: "40HC",
+            prop: "quantityV40hc",
+            width: "100",
+            overHidden: true
+          },
+          {
+            label: "件数",
+            prop: "quantity",
+            width: "100",
+            overHidden: true
+          },
+          {
+            label: "包装",
+            prop: "packingUnit",
+            width: "100",
+            overHidden: true
+          },
 
-                    {
-                        label: '毛重(KGS)',
-                        prop: "grossWeight",
+          {
+            label: "毛重(KGS)",
+            prop: "grossWeight",
 
-                        width: "100",
-                        overHidden: true,
-                    },
-                    {
-                        label: '尺码(CBM)',
-                        prop: "measurement",
-                        width: "100",
-                        overHidden: true,
-                    },
-                    {
-                        label: '发货人',
-                        prop: "hshipperDetails",
-                        width: "100",
-                        overHidden: true,
-                    },
-                    {
-                        label: '收货人',
-                        prop: "hconsigneeDetails",
-                        width: "100",
-                        overHidden: true,
-                    },
-                    {
-                        label: '通知人',
-                        prop: "hnotifyDetails",
-                        width: "100",
-                        overHidden: true,
-                    },
-                    {
-                        label: '唛头',
-                        prop: "marks",
-                        width: "100",
-                        overHidden: true,
-                    },
-                    {
-                        label: '货物',
-                        prop: "commodityDescr",
-                        width: "100",
-                        overHidden: true,
-                    },
-                    {
-                        label: '船名',
-                        prop: "vesselCnName",
-                        width: "100",
-                        overHidden: true,
-                    },
-                    {
-                        label: '航次',
-                        prop: "voyageNo",
-                        width: "100",
-                        overHidden: true,
-                    },
-                    {
-                        label: '业务状态',
-                        prop: "whetherModify",
-                        width: "100",
-                        overHidden: true,
-                    },
-                    {
-                        label: "制单人",
-                        prop: "createUserName",
-                        width: "100",
-                        overHidden: true,
-                    },
-                    {
-                        label: "制单日期",
-                        prop: "createTime",
-                        width: "120",
-                        overHidden: true,
-                    },
-                    {
-                        label: "修改人",
-                        prop: "updateUserName",
-                        width: "100",
-                        overHidden: true
-                    },
-                    {
-                        label: "修改日期",
-                        prop: "updateTime",
-                        width: "120",
-                        overHidden: true,
-                    },
-                    {
-                        label: "备注",
-                        prop: "cyRemarks",
-                        width: "100",
-                        overHidden: true
-                    },
-                ]
-            },
-            data: [],
-        };
+            width: "100",
+            overHidden: true
+          },
+          {
+            label: "尺码(CBM)",
+            prop: "measurement",
+            width: "100",
+            overHidden: true
+          },
+          {
+            label: "发货人",
+            prop: "hshipperDetails",
+            width: "100",
+            overHidden: true
+          },
+          {
+            label: "收货人",
+            prop: "hconsigneeDetails",
+            width: "100",
+            overHidden: true
+          },
+          {
+            label: "通知人",
+            prop: "hnotifyDetails",
+            width: "100",
+            overHidden: true
+          },
+          {
+            label: "唛头",
+            prop: "marks",
+            width: "100",
+            overHidden: true
+          },
+          {
+            label: "货物",
+            prop: "commodityDescr",
+            width: "100",
+            overHidden: true
+          },
+          {
+            label: "船名",
+            prop: "vesselCnName",
+            width: "100",
+            overHidden: true
+          },
+          {
+            label: "航次",
+            prop: "voyageNo",
+            width: "100",
+            overHidden: true
+          },
+          {
+            label: "业务状态",
+            prop: "whetherModify",
+            width: "100",
+            overHidden: true
+          },
+          {
+            label: "制单人",
+            prop: "createUserName",
+            width: "100",
+            overHidden: true
+          },
+          {
+            label: "制单日期",
+            prop: "createTime",
+            width: "120",
+            overHidden: true
+          },
+          {
+            label: "修改人",
+            prop: "updateUserName",
+            width: "100",
+            overHidden: true
+          },
+          {
+            label: "修改日期",
+            prop: "updateTime",
+            width: "120",
+            overHidden: true
+          },
+          {
+            label: "备注",
+            prop: "cyRemarks",
+            width: "100",
+            overHidden: true
+          }
+        ]
+      },
+      data: []
+    };
+  },
+  components: {
+    detailsPage
+  },
+  async created() {
+    this.option = await this.getColumnData(this.getColumnName(513), this.optionBack);
+    getWorkDicts("KHDC_Status").then(res => {
+      this.khdcStatus = res.data.data;
+    });
+  },
+  activated() {
+    setTimeout(() => {
+      if (this.$route.query.billId) {
+        this.isShow = false;
+      }
+      this.$refs.crud.doLayout();
+    }, 100);
+  },
+  methods: {
+    handleClick(tab, event) {
+      // if (this.query.billStatus == 4) {
+      //     this.query.billStatus = null;
+      // }
+      this.onLoad(this.page, this.query);
     },
-    components: {
-        detailsPage
+    addButton() {
+      this.pageIds = [];
+      this.isShow = false;
+      this.detailData = {
+        type: "new"
+      };
     },
-    async created() {
-        this.option = await this.getColumnData(this.getColumnName(513), this.optionBack);
-        getWorkDicts("KHDC_Status").then(res => {
-            this.khdcStatus = res.data.data;
+    copyButton() {
+      this.isShow = false;
+      this.detailData = {
+        copyId: this.selectionList[0].id
+      };
+    },
+    rowEdit(row) {
+      this.pageIds = [];
+      this.data.forEach(item => {
+        this.pageIds.push(item.id);
+      });
+      this.detailData = {
+        id: row.id
+      };
+      this.isShow = false;
+    },
+    // 删除
+    rowDel(row, index) {
+      if (row.item == 1) {
+        return this.$message.error("存在明细不允许删除");
+      }
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        remove({ ids: row.id }).then(res => {
+          this.onLoad(this.page, this.query);
+          this.$message.success("成功删除");
         });
+      });
     },
-    activated() {
-        setTimeout(() => {
-            if (this.$route.query.billId) {
-                this.isShow = false
-            }
+    searchReset() {
+      this.query = this.$options.data().query;
+      this.onLoad(this.page);
+    },
+    // 搜索按钮点击
+    searchChange(params, done) {
+      this.page.currentPage = 1;
+      this.onLoad(this.page, this.query);
+      done();
+    },
+    selectionChange(list) {
+      this.selectionList = list;
+    },
+    currentChange(currentPage) {
+      this.page.currentPage = currentPage;
+    },
+    sizeChange(pageSize) {
+      this.page.pageSize = pageSize;
+    },
+    refreshChange() {
+      this.onLoad(this.page, this.query);
+    },
+    onLoad(page, params = {}) {
+      let obj = {};
+      obj = {
+        ...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();
-        }, 100);
+            this.$refs.crud.dicInit();
+          });
+        })
+        .finally(() => {
+          this.loading = false;
+        });
     },
-    methods: {
-        handleClick(tab, event) {
-            // if (this.query.billStatus == 4) {
-            //     this.query.billStatus = null;
-            // }
-            this.onLoad(this.page, this.query);
-        },
-        addButton() {
-            this.pageIds = []
-            this.isShow = false
-            this.detailData = {
-                type: 'new'
-            }
-        },
-        copyButton() {
-            this.isShow = false
-            this.detailData = {
-                copyId: this.selectionList[0].id
-            };
-        },
-        rowEdit(row) {
-            this.pageIds = []
-            this.data.forEach(item => {
-                this.pageIds.push(item.id)
-            })
-            this.detailData = {
-                id: row.id
-            };
-            this.isShow = false
-        },
-        // 删除
-        rowDel(row, index) {
-            if (row.item == 1) {
-                return this.$message.error("存在明细不允许删除");
-            }
-            this.$confirm("确定将选择数据删除?", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning"
-            }).then(() => {
-                remove({ ids: row.id }).then(res => {
-                    this.onLoad(this.page, this.query);
-                    this.$message.success("成功删除");
-                })
-            })
-
-        },
-        searchReset() {
-            this.query = this.$options.data().query;
-            this.onLoad(this.page);
-        },
-        // 搜索按钮点击
-        searchChange(params, done) {
-            this.page.currentPage = 1;
-            this.onLoad(this.page, this.query);
-            done();
-        },
-        selectionChange(list) {
-            this.selectionList = list;
-        },
-        currentChange(currentPage) {
-            this.page.currentPage = currentPage;
-        },
-        sizeChange(pageSize) {
-            this.page.pageSize = pageSize;
-        },
-        refreshChange() {
-            this.onLoad(this.page, this.query);
-        },
-        onLoad(page, params = {}) {
-            let obj = {}
-            obj = {
-                ...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();
-                });
-            }).finally(() => {
-                this.loading = false;
-            })
-        },
-        // 详情的返回列表
-        goBack() {
-            this.pageIds = []
-            // 初始化数据
-            if (JSON.stringify(this.$route.query) != "{}") {
-                this.$router.$avueRouter.closeTag();
-                this.$router.push({
-                    path: "/iosBasicData/businessCenter/customerLetter/index"
-                });
-            }
-            this.detailData = {}
-            this.isShow = true;
-            this.onLoad(this.page, this.query);
-        },
-        outExport() {
-            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/routecost/exportRouteCost',      //跳转目标窗口的地址
-                query: {
-                    ...config.params,    //括号内是要传递给新窗口的参数
-                    identification: this.url
-                }
-            })
-            window.open(routeData.href.slice(1, routeData.href.length) + '&' + `${this.website.tokenHeader}=${getToken()}`);
-        },
-        //自定义列保存
-        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.selectionList = []
-                this.searchReset()
-                this.$nextTick(() => {
-                    this.$refs.crud.refreshTable();
-                    this.$refs.crud.dicInit();
-                });
-            }
-        },
-        //自定义列重置
-        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;
-                this.selectionList = []
-                this.searchReset()
-                this.$nextTick(() => {
-                    this.$refs.crud.refreshTable();
-                    this.$refs.crud.dicInit();
-                });
-            }
-        },
-        // 更改表格颜色
-        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"
-                }
+    // 详情的返回列表
+    goBack() {
+      this.pageIds = [];
+      // 初始化数据
+      if (JSON.stringify(this.$route.query) != "{}") {
+        this.$router.$avueRouter.closeTag();
+        this.$router.push({
+          path: "/iosBasicData/businessCenter/customerLetter/index"
+        });
+      }
+      this.detailData = {};
+      this.isShow = true;
+      this.onLoad(this.page, this.query);
+    },
+    outExport() {
+      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];
             }
-            return back;
-        },
-
+          }
+        }
+      }
+      const routeData = this.$router.resolve({
+        path: "/api/blade-los/routecost/exportRouteCost", //跳转目标窗口的地址
+        query: {
+          ...config.params, //括号内是要传递给新窗口的参数
+          identification: this.url
+        }
+      });
+      window.open(routeData.href.slice(1, routeData.href.length) + "&" + `${this.website.tokenHeader}=${getToken()}`);
+    },
+    //自定义列保存
+    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.selectionList = [];
+        this.searchReset();
+        this.$nextTick(() => {
+          this.$refs.crud.refreshTable();
+          this.$refs.crud.dicInit();
+        });
+      }
+    },
+    //自定义列重置
+    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;
+        this.selectionList = [];
+        this.searchReset();
+        this.$nextTick(() => {
+          this.$refs.crud.refreshTable();
+          this.$refs.crud.dicInit();
+        });
+      }
+    },
+    // 更改表格颜色
+    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 lang="scss" scoped>
 ::v-deep #out-table .back-one {
-    background: #ecf5ff !important;
-    text-align: center;
+  background: #ecf5ff !important;
+  text-align: center;
 }
 
 ::v-deep #out-table .back-two {
-    background: #ecf5ff !important;
-    text-align: center;
+  background: #ecf5ff !important;
+  text-align: center;
 }
 
 .pointerClick {
-    cursor: pointer;
-    color: #1e9fff;
+  cursor: pointer;
+  color: #1e9fff;
 }
 
 ::v-deep .el-col-md-8 {
-    width: 24.33333%;
+  width: 24.33333%;
 }
 </style>

+ 669 - 624
src/views/iosBasicData/businessCenter/customerLetter/index.vue

@@ -1,37 +1,55 @@
 <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"
-                @resetColumn="resetColumn('crud', 'option', 'optionBack', 501)"
-                @saveColumn="saveColumn('crud', 'option', 'optionBack', 501)" @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" @click="outExport">导 出</el-button>
-                    <div style="margin-top: 10px">
-                        <el-tabs type="card" v-model="query.billStatus" @tab-click="handleClick">
-                            <!-- <el-tab-pane label="录入" name="1"></el-tab-pane>
+  <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"
+        @resetColumn="resetColumn('crud', 'option', 'optionBack', 501)"
+        @saveColumn="saveColumn('crud', 'option', 'optionBack', 501)"
+        @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" @click="outExport">导 出</el-button>
+          <div style="margin-top: 10px">
+            <el-tabs type="card" v-model="query.billStatus" @tab-click="handleClick">
+              <!-- <el-tab-pane label="录入" name="1"></el-tab-pane>
                             <el-tab-pane label="提交" name="2"></el-tab-pane>
                             <el-tab-pane label="受理" name="3"></el-tab-pane> -->
-                            <el-tab-pane label="待确认" name="4"></el-tab-pane>
-                            <el-tab-pane label="已生成" name="5"></el-tab-pane>
-                            <el-tab-pane label="订舱驳回" name="7"></el-tab-pane>
-                            <el-tab-pane label="全部" name="0"></el-tab-pane>
-                        </el-tabs>
-                    </div>
-                </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.issueStatus == 0 || row.issueStatus == 6||row.billStatus==1)">删 除</el-button>
-                </template>
-                <!-- <template slot="status" slot-scope="{ row }">
+              <el-tab-pane label="待确认" name="4"></el-tab-pane>
+              <el-tab-pane label="已生成" name="5"></el-tab-pane>
+              <el-tab-pane label="订舱驳回" name="7"></el-tab-pane>
+              <el-tab-pane label="全部" name="0"></el-tab-pane>
+            </el-tabs>
+          </div>
+        </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.issueStatus == 0 || row.issueStatus == 6 || row.billStatus == 1)"
+            >删 除</el-button
+          >
+        </template>
+        <!-- <template slot="status" slot-scope="{ row }">
                     <span v-if="row.issueStatus == 0"
                         style="color: #fff;border-radius: 30px;padding: 2px 15px;background-color: #409EFF;">{{
                             row.status }}</span>
@@ -39,13 +57,13 @@
                         style="color: #fff;border-radius: 30px;padding: 2px 15px;background-color: #67C23A;">{{
                             row.status }}</span>
                 </template> -->
-                <template slot="billNo" slot-scope="{ row }">
-                    <span style="color: #1e9fff;cursor: pointer;" @click="rowEdit(row)">{{ row.billNo }}</span>
-                </template>
-            </avue-crud>
-        </basic-container>
-        <detailsPage v-if="!isShow" :detailData="detailData" @goBack="goBack"></detailsPage>
-    </div>
+        <template slot="billNo" slot-scope="{ row }">
+          <span style="color: #1e9fff;cursor: pointer;" @click="rowEdit(row)">{{ row.billNo }}</span>
+        </template>
+      </avue-crud>
+    </basic-container>
+    <detailsPage v-if="!isShow" :detailData="detailData" @goBack="goBack"></detailsPage>
+  </div>
 </template>
 
 <script>
@@ -56,614 +74,641 @@ import { getToken } from "@/util/auth";
 import { dateFormat } from "@/util/date";
 import _ from "lodash";
 export default {
-    data() {
-        return {
-            isShow: true,
-            form: {},
-            query: {
-                businessType: 'KHTS',
-                billStatus: '4'
+  data() {
+    return {
+      isShow: true,
+      form: {},
+      query: {
+        businessType: "KHTS",
+        billStatus: "4"
+      },
+      loading: false,
+      page: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0
+      },
+      selectionList: [],
+      option: {},
+      optionBack: {
+        height: "auto",
+        calcHeight: 30,
+        menuWidth: 140,
+        tip: false,
+        searchShow: true,
+        searchMenuSpan: 18,
+        border: true,
+        index: true,
+        addBtn: false,
+        viewBtn: false,
+        editBtn: false,
+        delBtn: false,
+        selection: true,
+        searchIcon: true,
+        align: "center",
+        searchIndex: 3,
+        summaryText: "合计",
+        showSummary: true,
+        sumColumnList: [
+          {
+            name: "teu",
+            type: "sum",
+            decimals: 0
+          },
+          {
+            name: "quantityV20",
+            type: "sum",
+            decimals: 0
+          },
+          {
+            name: "quantityV40",
+            type: "sum",
+            decimals: 0
+          },
+          {
+            name: "quantityV45",
+            type: "sum",
+            decimals: 0
+          },
+          {
+            name: "quantityV48",
+            type: "sum",
+            decimals: 0
+          },
+          {
+            name: "quantityV40hc",
+            type: "sum",
+            decimals: 0
+          },
+          {
+            name: "quantity",
+            type: "sum",
+            decimals: 0
+          },
+          {
+            name: "grossWeight",
+            type: "sum",
+            decimals: 3
+          },
+          {
+            name: "measurement",
+            type: "sum",
+            decimals: 3
+          }
+        ],
+        column: [
+          {
+            label: "所属公司",
+            prop: "branchName",
+            width: "100",
+            // search: true,
+            // type: "select",
+            // filterable: true,
+            // dicUrl: "/api/blade-system/dept/lazy-list",
+            // props: {
+            //     label: "deptName",
+            //     value: "deptName",
+            // },
+            overHidden: true
+          },
+          {
+            label: "所属公司",
+            prop: "branchId",
+            width: "100",
+            search: true,
+            type: "select",
+            filterable: true,
+            dicUrl: "/api/blade-system/dept/lazy-list",
+            props: {
+              label: "deptName",
+              value: "id"
             },
-            loading: false,
-            page: {
-                pageSize: 10,
-                currentPage: 1,
-                total: 0
+            hide: true,
+            // showColumn: false,
+            overHidden: true
+          },
+          {
+            label: "系统号",
+            prop: "billNo",
+            width: "120",
+            search: true,
+            overHidden: true
+          },
+          {
+            label: "B/L NO",
+            prop: "hblno",
+            width: "100",
+            search: true,
+            overHidden: true
+          },
+          {
+            label: "客户",
+            prop: "corpCnName",
+            width: "100",
+            search: true,
+            type: "select",
+            filterable: true,
+            remote: true,
+            dicUrl: "/api/blade-los/bcorps/selectList?status=0&current=1&size=20&cnName={{key}}",
+            props: {
+              label: "cnName",
+              value: "cnName",
+              res: "data.records"
             },
-            selectionList: [],
-            option: {},
-            optionBack: {
-                height: 'auto',
-                calcHeight: 30,
-                menuWidth: 140,
-                tip: false,
-                searchShow: true,
-                searchMenuSpan: 18,
-                border: true,
-                index: true,
-                addBtn: false,
-                viewBtn: false,
-                editBtn: false,
-                delBtn: false,
-                selection: true,
-                searchIcon: true,
-                align: 'center',
-                showSummary: true,
-                searchIndex: 3,
-                column: [
-                    {
-                        label: '所属公司',
-                        prop: "branchName",
-                        width: "100",
-                        // search: true,
-                        // type: "select",
-                        // filterable: true,
-                        // dicUrl: "/api/blade-system/dept/lazy-list",
-                        // props: {
-                        //     label: "deptName",
-                        //     value: "deptName",
-                        // },
-                        overHidden: true,
-                    },
-                    {
-                        label: '所属公司',
-                        prop: "branchId",
-                        width: "100",
-                        search: true,
-                        type: "select",
-                        filterable: true,
-                        dicUrl: "/api/blade-system/dept/lazy-list",
-                        props: {
-                            label: "deptName",
-                            value: "id",
-                        },
-                        hide: true,
-                        // showColumn: false,
-                        overHidden: true,
-                    },
-                    {
-                        label: '系统号',
-                        prop: "billNo",
-                        width: "120",
-                        search: true,
-                        overHidden: true,
-                    },
-                    {
-                        label: 'B/L NO',
-                        prop: "hblno",
-                        width: "100",
-                        search: true,
-                        overHidden: true,
-                    },
-                    {
-                        label: '客户',
-                        prop: "corpCnName",
-                        width: "100",
-                        search: true,
-                        type: 'select',
-                        filterable: true,
-                        remote: true,
-                        dicUrl: "/api/blade-los/bcorps/selectList?status=0&current=1&size=20&cnName={{key}}",
-                        props: {
-                            label: 'cnName',
-                            value: 'cnName',
-                            res: 'data.records'
-                        },
-                        overHidden: true,
-                    },
-                    {
-                        label: 'ETD',
-                        prop: "etd",
-                        width: "100",
-                        overHidden: true,
-                        type: "date",
-                        format: "yyyy-MM-dd",
-                        valueFormat: "yyyy-MM-dd 00:00:00",
-                    },
-                    {
-                        label: "起运港",
-                        prop: "polEnName",
-                        width: "80",
-                        overHidden: true,
-                        search: true,
-                        type: 'select',
-                        filterable: true,
-                        remote: true,
-                        dicUrl: "/api/blade-los/bports/list?current=1&size=5&cnName={{key}}",
-                        props: {
-                            label: 'enName',
-                            value: 'enName',
-                            desc: 'code',
-                            res: 'data.records'
-                        },
-                    },
-                    {
-                        label: "卸货港",
-                        prop: "podEnName",
-                        width: "80",
-                        overHidden: true,
-                        search: true,
-                        type: 'select',
-                        filterable: true,
-                        remote: true,
-                        dicUrl: "/api/blade-los/bports/list?current=1&size=5&cnName={{key}}",
-                        props: {
-                            label: 'enName',
-                            value: 'enName',
-                            desc: 'code',
-                            res: 'data.records'
-                        },
-                    },
-                    {
-                        label: "箱型箱量",
-                        prop: "quantityCntrDescr",
-                        width: "80",
-                        overHidden: true,
-                    },
-                      {
-                        label: "TEU",
-                        prop: "teu",
-                        width: "100",
-                        overHidden: true
-                    },
-                    {
-                        label: "20GP",
-                        prop: "quantityV20",
-                        width: "100",
-                        overHidden: true
-                    },
-                    {
-                        label: "40GP",
-                        prop: "quantityV40",
-                        width: "100",
-                        overHidden: true
-                    },
-                    {
-                        label: "20HC",
-                        prop: "quantityV45",
-                        width: "100",
-                        overHidden: true
-                    },
-                    {
-                        label: "40FR",
-                        prop: "quantityV48",
-                        width: "100",
-                        overHidden: true
-                    },
-                    {
-                        label: "40HC",
-                        prop: "quantityV40hc",
-                        width: "100",
-                        overHidden: true
-                    },
-                    // {
-                    //     label: "单据状态",
-                    //     prop: "issueStatus",
-                    //     width: "80",
-                    //     overHidden: true,
-                    //     // search: true,
-                    //     type: 'select',
-                    //     dicData: [{
-                    //         label: '录入',
-                    //         value: '0',
-                    //     }, {
-                    //         label: '已生成',
-                    //         value: '1',
-                    //     }, {
-                    //         label: '待确认',
-                    //         value: '2',
-                    //     }, {
-                    //         label: '订舱驳回',
-                    //         value: '6',
-                    //     }],
-                    // },
-                    {
-                        label: "审核状态",
-                        prop: "status",
-                        width: "80",
-                        overHidden: true,
-                        // search: true,
-                        type: 'select',
-                        dicData: [{
-                            label: '录入',
-                            value: 0,
-                        }, {
-                            label: '提交审核',
-                            value: 1,
-                        }, {
-                            label: '已审核',
-                            value: 3,
-                        }, {
-                            label: '驳回',
-                            value: 4,
-                        }],
-                    },
-                    {
-                        label: "OP",
-                        prop: "operatorName",
-                        width: "80",
-                        overHidden: true,
-                        search: true,
-                        type: 'select',
-                        filterable: true,
-                        dicUrl: "/api/blade-user/userListAll?roleAlias=操作员",
-                        props: {
-                            label: 'realName',
-                            value: 'realName',
-                        },
-                    },
-                    {
-                        label: "客服",
-                        prop: "customerServiceName",
-                        width: "80",
-                        overHidden: true,
-                        search: true,
-                        type: 'select',
-                        filterable: true,
-                        dicUrl: "/api/blade-user/userListAll?roleAlias=客服",
-                        props: {
-                            label: 'realName',
-                            value: 'realName',
-                        },
-                    },
-                    {
-                        label: '订舱日期',
-                        prop: "bookingDate",
-                        width: "100",
-                        overHidden: true,
-                        search: true,
-                        type: "date",
-                        searchProp: "bookingDateList",
-                        unlinkPanels: true,
-                        searchRange: true,
-                        format: "yyyy-MM-dd",
-                        valueFormat: "yyyy-MM-dd HH:mm:ss",
-                        searchDefaultTime: ["00:00:00", "23:59:59"],
-                    },
-                    {
-                        label: '付费方式',
-                        prop: "mpaymode",
-                        width: "100",
-                        overHidden: true,
-                    },
-                    {
-                        label: "运输条款",
-                        prop: "serviceTerms",
-                        width: "80",
-                        overHidden: true,
-                    },
-                    {
-                        label: '件数',
-                        prop: "quantity",
-                        width: "100",
-                        overHidden: true,
-                    },
-                    {
-                        label: '包装',
-                        prop: "packingUnit",
-                        width: "100",
-                        overHidden: true,
-                    },
+            overHidden: true
+          },
+          {
+            label: "ETD",
+            prop: "etd",
+            width: "100",
+            overHidden: true,
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd 00:00:00"
+          },
+          {
+            label: "起运港",
+            prop: "polEnName",
+            width: "80",
+            overHidden: true,
+            search: true,
+            type: "select",
+            filterable: true,
+            remote: true,
+            dicUrl: "/api/blade-los/bports/list?current=1&size=5&cnName={{key}}",
+            props: {
+              label: "enName",
+              value: "enName",
+              desc: "code",
+              res: "data.records"
+            }
+          },
+          {
+            label: "卸货港",
+            prop: "podEnName",
+            width: "80",
+            overHidden: true,
+            search: true,
+            type: "select",
+            filterable: true,
+            remote: true,
+            dicUrl: "/api/blade-los/bports/list?current=1&size=5&cnName={{key}}",
+            props: {
+              label: "enName",
+              value: "enName",
+              desc: "code",
+              res: "data.records"
+            }
+          },
+          {
+            label: "箱型箱量",
+            prop: "quantityCntrDescr",
+            width: "80",
+            overHidden: true
+          },
+          {
+            label: "TEU",
+            prop: "teu",
+            width: "100",
+            overHidden: true
+          },
+          {
+            label: "20GP",
+            prop: "quantityV20",
+            width: "100",
+            overHidden: true
+          },
+          {
+            label: "40GP",
+            prop: "quantityV40",
+            width: "100",
+            overHidden: true
+          },
+          {
+            label: "20HC",
+            prop: "quantityV45",
+            width: "100",
+            overHidden: true
+          },
+          {
+            label: "40FR",
+            prop: "quantityV48",
+            width: "100",
+            overHidden: true
+          },
+          {
+            label: "40HC",
+            prop: "quantityV40hc",
+            width: "100",
+            overHidden: true
+          },
+          // {
+          //     label: "单据状态",
+          //     prop: "issueStatus",
+          //     width: "80",
+          //     overHidden: true,
+          //     // search: true,
+          //     type: 'select',
+          //     dicData: [{
+          //         label: '录入',
+          //         value: '0',
+          //     }, {
+          //         label: '已生成',
+          //         value: '1',
+          //     }, {
+          //         label: '待确认',
+          //         value: '2',
+          //     }, {
+          //         label: '订舱驳回',
+          //         value: '6',
+          //     }],
+          // },
+          {
+            label: "审核状态",
+            prop: "status",
+            width: "80",
+            overHidden: true,
+            // search: true,
+            type: "select",
+            dicData: [
+              {
+                label: "录入",
+                value: 0
+              },
+              {
+                label: "提交审核",
+                value: 1
+              },
+              {
+                label: "已审核",
+                value: 3
+              },
+              {
+                label: "驳回",
+                value: 4
+              }
+            ]
+          },
+          {
+            label: "OP",
+            prop: "operatorName",
+            width: "80",
+            overHidden: true,
+            search: true,
+            type: "select",
+            filterable: true,
+            dicUrl: "/api/blade-user/userListAll?roleAlias=操作员",
+            props: {
+              label: "realName",
+              value: "realName"
+            }
+          },
+          {
+            label: "客服",
+            prop: "customerServiceName",
+            width: "80",
+            overHidden: true,
+            search: true,
+            type: "select",
+            filterable: true,
+            dicUrl: "/api/blade-user/userListAll?roleAlias=客服",
+            props: {
+              label: "realName",
+              value: "realName"
+            }
+          },
+          {
+            label: "订舱日期",
+            prop: "bookingDate",
+            width: "100",
+            overHidden: true,
+            search: true,
+            type: "date",
+            searchProp: "bookingDateList",
+            unlinkPanels: true,
+            searchRange: true,
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd HH:mm:ss",
+            searchDefaultTime: ["00:00:00", "23:59:59"]
+          },
+          {
+            label: "付费方式",
+            prop: "mpaymode",
+            width: "100",
+            overHidden: true
+          },
+          {
+            label: "运输条款",
+            prop: "serviceTerms",
+            width: "80",
+            overHidden: true
+          },
+          {
+            label: "件数",
+            prop: "quantity",
+            width: "100",
+            overHidden: true
+          },
+          {
+            label: "包装",
+            prop: "packingUnit",
+            width: "100",
+            overHidden: true
+          },
 
-                    {
-                        label: '毛重(KGS)',
-                        prop: "grossWeight",
+          {
+            label: "毛重(KGS)",
+            prop: "grossWeight",
 
-                        width: "100",
-                        overHidden: true,
-                    },
-                    {
-                        label: '尺码(CBM)',
-                        prop: "measurement",
-                        width: "100",
-                        overHidden: true,
-                    },
-                    {
-                        label: '发货人',
-                        prop: "hshipperDetails",
-                        width: "100",
-                        overHidden: true,
-                    },
-                    {
-                        label: '收货人',
-                        prop: "hconsigneeDetails",
-                        width: "100",
-                        overHidden: true,
-                    },
-                    {
-                        label: '通知人',
-                        prop: "hnotifyDetails",
-                        width: "100",
-                        overHidden: true,
-                    },
-                    {
-                        label: '唛头',
-                        prop: "marks",
-                        width: "100",
-                        overHidden: true,
-                    },
-                    {
-                        label: '货物',
-                        prop: "commodityDescr",
-                        width: "100",
-                        overHidden: true,
-                    },
-                    {
-                        label: '船名',
-                        prop: "vesselCnName",
-                        width: "100",
-                        overHidden: true,
-                    },
-                    {
-                        label: '航次',
-                        prop: "voyageNo",
-                        width: "100",
-                        overHidden: true,
-                    },
-                    {
-                        label: "制单人",
-                        prop: "createUserName",
-                        width: "100",
-                        overHidden: true,
-                    },
-                    {
-                        label: "制单日期",
-                        prop: "createTime",
-                        width: "120",
-                        overHidden: true,
-                    },
-                    {
-                        label: "修改人",
-                        prop: "updateUserName",
-                        width: "100",
-                        overHidden: true
-                    },
-                    {
-                        label: "修改日期",
-                        prop: "updateTime",
-                        width: "120",
-                        overHidden: true,
-                    },
-                    {
-                        label: "备注",
-                        prop: "cyRemarks",
-                        width: "100",
-                        overHidden: true
-                    },
-                ]
-            },
-            data: [],
-        };
+            width: "100",
+            overHidden: true
+          },
+          {
+            label: "尺码(CBM)",
+            prop: "measurement",
+            width: "100",
+            overHidden: true
+          },
+          {
+            label: "发货人",
+            prop: "hshipperDetails",
+            width: "100",
+            overHidden: true
+          },
+          {
+            label: "收货人",
+            prop: "hconsigneeDetails",
+            width: "100",
+            overHidden: true
+          },
+          {
+            label: "通知人",
+            prop: "hnotifyDetails",
+            width: "100",
+            overHidden: true
+          },
+          {
+            label: "唛头",
+            prop: "marks",
+            width: "100",
+            overHidden: true
+          },
+          {
+            label: "货物",
+            prop: "commodityDescr",
+            width: "100",
+            overHidden: true
+          },
+          {
+            label: "船名",
+            prop: "vesselCnName",
+            width: "100",
+            overHidden: true
+          },
+          {
+            label: "航次",
+            prop: "voyageNo",
+            width: "100",
+            overHidden: true
+          },
+          {
+            label: "制单人",
+            prop: "createUserName",
+            width: "100",
+            overHidden: true
+          },
+          {
+            label: "制单日期",
+            prop: "createTime",
+            width: "120",
+            overHidden: true
+          },
+          {
+            label: "修改人",
+            prop: "updateUserName",
+            width: "100",
+            overHidden: true
+          },
+          {
+            label: "修改日期",
+            prop: "updateTime",
+            width: "120",
+            overHidden: true
+          },
+          {
+            label: "备注",
+            prop: "cyRemarks",
+            width: "100",
+            overHidden: true
+          }
+        ]
+      },
+      data: []
+    };
+  },
+  components: {
+    detailsPage
+  },
+  async created() {
+    this.option = await this.getColumnData(this.getColumnName(501), this.optionBack);
+  },
+  activated() {
+    setTimeout(() => {
+      if (this.$route.query.billId) {
+        this.isShow = false;
+      }
+      this.$refs.crud.doLayout();
+    }, 100);
+  },
+  methods: {
+    handleClick(tab, event) {
+      // if (this.query.billStatus == 4) {
+      //     this.query.billStatus = null;
+      // }
+      this.onLoad(this.page, this.query);
     },
-    components: {
-        detailsPage
+    addButton() {
+      this.isShow = false;
+      this.detailData = {
+        type: "new"
+      };
     },
-    async created() {
-        this.option = await this.getColumnData(this.getColumnName(501), this.optionBack);
+    copyButton() {
+      this.isShow = false;
+      this.detailData = {
+        copyId: this.selectionList[0].id
+      };
     },
-    activated() {
-        setTimeout(() => {
-            if (this.$route.query.billId) {
-                this.isShow = false
-            }
+    rowEdit(row) {
+      this.detailData = {
+        id: row.id
+      };
+      this.isShow = false;
+    },
+    // 删除
+    rowDel(row, index) {
+      if (row.item == 1) {
+        return this.$message.error("存在明细不允许删除");
+      }
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        remove({ ids: row.id }).then(res => {
+          this.onLoad(this.page, this.query);
+          this.$message.success("成功删除");
+        });
+      });
+    },
+    searchReset() {
+      this.query = this.$options.data().query;
+      this.onLoad(this.page);
+    },
+    // 搜索按钮点击
+    searchChange(params, done) {
+      this.page.currentPage = 1;
+      this.onLoad(this.page, this.query);
+      done();
+    },
+    selectionChange(list) {
+      this.selectionList = list;
+    },
+    currentChange(currentPage) {
+      this.page.currentPage = currentPage;
+    },
+    sizeChange(pageSize) {
+      this.page.pageSize = pageSize;
+    },
+    refreshChange() {
+      this.onLoad(this.page, this.query);
+    },
+    onLoad(page, params = {}) {
+      let obj = {};
+      obj = {
+        ...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();
-        }, 100);
+            this.$refs.crud.dicInit();
+          });
+        })
+        .finally(() => {
+          this.loading = false;
+        });
     },
-    methods: {
-        handleClick(tab, event) {
-            // if (this.query.billStatus == 4) {
-            //     this.query.billStatus = null;
-            // }
-            this.onLoad(this.page, this.query);
-        },
-        addButton() {
-            this.isShow = false
-            this.detailData = {
-                type: 'new'
-            }
-        },
-        copyButton() {
-            this.isShow = false
-            this.detailData = {
-                copyId: this.selectionList[0].id
-            };
-        },
-        rowEdit(row) {
-            this.detailData = {
-                id: row.id
-            };
-            this.isShow = false
-        },
-        // 删除
-        rowDel(row, index) {
-            if (row.item == 1) {
-                return this.$message.error("存在明细不允许删除");
-            }
-            this.$confirm("确定将选择数据删除?", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "warning"
-            }).then(() => {
-                remove({ ids: row.id }).then(res => {
-                    this.onLoad(this.page, this.query);
-                    this.$message.success("成功删除");
-                })
-            })
-
-        },
-        searchReset() {
-            this.query = this.$options.data().query;
-            this.onLoad(this.page);
-        },
-        // 搜索按钮点击
-        searchChange(params, done) {
-            this.page.currentPage = 1;
-            this.onLoad(this.page, this.query);
-            done();
-        },
-        selectionChange(list) {
-            this.selectionList = list;
-        },
-        currentChange(currentPage) {
-            this.page.currentPage = currentPage;
-        },
-        sizeChange(pageSize) {
-            this.page.pageSize = pageSize;
-        },
-        refreshChange() {
-            this.onLoad(this.page, this.query);
-        },
-        onLoad(page, params = {}) {
-            let obj = {}
-            obj = {
-                ...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();
-                });
-            }).finally(() => {
-                this.loading = false;
-            })
-        },
-        // 详情的返回列表
-        goBack() {
-            // 初始化数据
-            if (JSON.stringify(this.$route.query) != "{}") {
-                this.$router.$avueRouter.closeTag();
-                this.$router.push({
-                    path: "/iosBasicData/businessCenter/customerLetter/index"
-                });
-            }
-            this.detailData = {}
-            this.isShow = true;
-            this.onLoad(this.page, this.query);
-        },
-        outExport() {
-            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/routecost/exportRouteCost',      //跳转目标窗口的地址
-                query: {
-                    ...config.params,    //括号内是要传递给新窗口的参数
-                    identification: this.url
-                }
-            })
-            window.open(routeData.href.slice(1, routeData.href.length) + '&' + `${this.website.tokenHeader}=${getToken()}`);
-        },
-        //自定义列保存
-        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.selectionList = []
-                this.searchReset()
-                this.$nextTick(() => {
-                    this.$refs.crud.refreshTable();
-                    this.$refs.crud.dicInit();
-                });
-            }
-        },
-        //自定义列重置
-        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;
-                this.selectionList = []
-                this.searchReset()
-                this.$nextTick(() => {
-                    this.$refs.crud.refreshTable();
-                    this.$refs.crud.dicInit();
-                });
-            }
-        },
-        // 更改表格颜色
-        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;
-        },
-        //
-        summaryMethod({ columns, data }) {
-            const sums = [];
-            if (columns.length > 0) {
-                columns.forEach((column, index) => {
-                    sums[0] = "合计";
-                    let prop = column.property
-                    if (['quantity', 'grossWeight', 'measurement', 'teu', 'teuTotal', 'quantityV20', 'quantityV40', 'quantityV40hc', 'quantityV45', 'quantityV48'].includes(prop)) {
-                        let values = this.data.filter(item => item.billType == 'MH').map(item => Number(item[prop] || 0));
-                        let all = values.length !== 0 ? sums[index] = values.reduce((a, b) => {
-                            return a + b;
-                        }) : 0
-                        if (prop == 'grossWeight' || prop == 'measurement') {
-                            sums[index] = all.toFixed(3)
-                        }
-                        if (prop == 'quantity' || prop == 'teu' || prop == 'quantityV20' || prop == 'quantityV40' || prop == 'quantityV40hc' || prop == 'quantityV45' || prop == 'quantityV48') {
-                            sums[index] = all
-                        }
-                    } else {
-                        sums[index]
-                    }
-                });
+    // 详情的返回列表
+    goBack() {
+      // 初始化数据
+      if (JSON.stringify(this.$route.query) != "{}") {
+        this.$router.$avueRouter.closeTag();
+        this.$router.push({
+          path: "/iosBasicData/businessCenter/customerLetter/index"
+        });
+      }
+      this.detailData = {};
+      this.isShow = true;
+      this.onLoad(this.page, this.query);
+    },
+    outExport() {
+      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];
             }
-            return sums;
-        },
-
-    }
-}
-
+          }
+        }
+      }
+      const routeData = this.$router.resolve({
+        path: "/api/blade-los/routecost/exportRouteCost", //跳转目标窗口的地址
+        query: {
+          ...config.params, //括号内是要传递给新窗口的参数
+          identification: this.url
+        }
+      });
+      window.open(routeData.href.slice(1, routeData.href.length) + "&" + `${this.website.tokenHeader}=${getToken()}`);
+    },
+    //自定义列保存
+    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.selectionList = [];
+        this.searchReset();
+        this.$nextTick(() => {
+          this.$refs.crud.refreshTable();
+          this.$refs.crud.dicInit();
+        });
+      }
+    },
+    //自定义列重置
+    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;
+        this.selectionList = [];
+        this.searchReset();
+        this.$nextTick(() => {
+          this.$refs.crud.refreshTable();
+          this.$refs.crud.dicInit();
+        });
+      }
+    },
+    // 更改表格颜色
+    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 lang="scss" scoped>
 ::v-deep #out-table .back-one {
-    background: #ecf5ff !important;
-    text-align: center;
+  background: #ecf5ff !important;
+  text-align: center;
 }
 
 ::v-deep #out-table .back-two {
-    background: #ecf5ff !important;
-    text-align: center;
+  background: #ecf5ff !important;
+  text-align: center;
 }
 
 .pointerClick {
-    cursor: pointer;
-    color: #1e9fff;
+  cursor: pointer;
+  color: #1e9fff;
 }
 
 ::v-deep .el-col-md-8 {
-    width: 24.33333%;
+  width: 24.33333%;
 }
 </style>