Browse Source

加POD数记录
久置柜新加检索
客户订舱 统一保留三位小数
连续导入不刷新列表
配箱信息修改提示
预览报表修改打开方式
OW 修稿导出箱号

qukaidi 1 week ago
parent
commit
1f639a46d5

+ 3 - 3
src/api/boxManagement/buyContainer/index.js

@@ -351,11 +351,11 @@ export const fininvoicesGetAccBillIdList = (params) => {
   })
 }
 // 查看发票金额记录
-export const exportTemplateById = (params) => {
+export const exportTemplateById = (data) => {
   return request({
     url: '/api/blade-los/boxdynamicsrecord/exportTemplateById',
-    method: 'get',
-    params:params
+    method: 'post',
+    data:data
   })
 }
 // 批量修改放箱号

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

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

+ 20 - 2
src/views/boxManagement/LSCabinet/index.vue

@@ -63,7 +63,7 @@ export default {
         menu: false,
         tip: false,
         searchShow: true,
-        searchMenuSpan: 12,
+        searchMenuSpan: 6,
         border: true,
         index: true,
         addBtn: false,
@@ -108,9 +108,27 @@ export default {
             searchValue: null,
             overHidden: true
           },
+     
           {
             label: "箱动态",
             prop: "boxDynamics",
+            width: 80,
+            search: true,
+            type: "select",
+            dicData: [
+              {
+                label: "进场",
+                value: "进场"
+              },
+              {
+                label: "出场",
+                value: "出场"
+              },
+              {
+                label: "其他",
+                value: "其他"
+              }
+            ],
             overHidden: true
           },
           {
@@ -179,7 +197,7 @@ export default {
             precision: 0,
             searchValue: 14,
             overHidden: true
-          }
+          },
         ]
       },
       data: [],

+ 333 - 0
src/views/boxManagement/containerNumber/components/podBoxCount.vue

@@ -0,0 +1,333 @@
+<template>
+  <div>
+    <el-dialog title="POD数" :visible.sync="dialogVisible" append-to-body width="400px" :before-close="handleClose" v-dialog-drag>
+      <span>
+        <avue-crud v-if="dialogVisible" ref="crud" :table-loading="loading" :option="option" :data="data"> </avue-crud>
+      </span>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible = false" size="mini">关闭</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { podBoxCountStatistics } from "@/api/boxManagement/containerNumber/index.js";
+import dicSelect from "@/components/dicSelect/main";
+import { Header } from "element-ui";
+export default {
+  props: {},
+  components: {
+    dicSelect
+  },
+  data() {
+    return {
+      form: {},
+      data: [],
+      option: {
+        maxHeight: 500,
+        calcHeight: 30,
+        tip: false,
+        border: true,
+        addBtn: false,
+        viewBtn: false,
+        editBtn: false,
+        delBtn: false,
+        refreshBtn: false,
+        header: false,
+        index: true,
+        align: "center",
+        menu: false,
+        column: [
+          {
+            label: "POD",
+            prop: "port",
+            // width: 140,
+            overHidden: true
+          },
+          {
+            label: "点数",
+            prop: "count",
+            // width: 100,
+            overHidden: true
+          }
+          // {
+          //   label: "箱号",
+          //   prop: "boxCode",
+          //   width: 140,
+          //   overHidden: true
+          // },
+          // {
+          //   label: "箱型",
+          //   prop: "boxType",
+          //   width: 100,
+          //   overHidden: true
+          // },
+          // {
+          //   label: "箱属",
+          //   prop: "boxBelongsTo",
+          //   overHidden: true,
+          //   width: 100
+          // },
+          // {
+          //   label: "箱东",
+          //   prop: "boxEastName",
+          //   overHidden: true,
+          //   width: 100
+          // },
+          // {
+          //   label: "放箱号类型",
+          //   prop: "boxClass",
+          //   overHidden: true,
+          //   width: 100
+          // },
+          // {
+          //   label: "箱况",
+          //   prop: "boxCondition",
+          //   overHidden: true,
+          //   width: 100
+          // },
+          // {
+          //   label: "箱状态",
+          //   prop: "status",
+          //   width: 100,
+          //   overHidden: true
+          // },
+          // {
+          //   label: "箱好坏",
+          //   prop: "boxStatus",
+          //   width: 100,
+          //   overHidden: true
+          // },
+          // {
+          //   label: "箱动态",
+          //   prop: "boxDynamics",
+          //   width: 100,
+          //   overHidden: true
+          // },
+          // {
+          //   label: "箱污染",
+          //   prop: "boxPollution",
+          //   overHidden: true,
+          //   width: 100
+          // },
+          // {
+          //   label: "客户名称",
+          //   prop: "corpName",
+          //   overHidden: true,
+          //   width: 100
+          // },
+          // {
+          //   label: "提单号",
+          //   prop: "mblno",
+          //   overHidden: true,
+          //   width: 100
+          // },
+          // {
+          //   label: "分单号",
+          //   prop: "hblno",
+          //   overHidden: true,
+          //   width: 100
+          // },
+          // {
+          //   label: "船名",
+          //   prop: "shipCname",
+          //   overHidden: true
+          // },
+          // {
+          //   label: "航次",
+          //   prop: "voyage",
+          //   overHidden: true
+          // },
+          // {
+          //   label: "ETD",
+          //   prop: "etd",
+          //   overHidden: true,
+          //   type: "date",
+          //   format: "yyyy-MM-dd",
+          //   valueFormat: "yyyy-MM-dd HH:mm:ss",
+          //   width: 100
+          // },
+          // {
+          //   label: "POL堆场",
+          //   prop: "polCyCname",
+          //   overHidden: true
+          // },
+          // {
+          //   label: "POL免箱使天数",
+          //   prop: "polFreeBoxUseDays",
+          //   width: 110,
+          //   overHidden: true
+          // },
+          // {
+          //   label: "POL预出场日期",
+          //   prop: "polPreAppearanceDate",
+          //   overHidden: true,
+          //   type: "datetime",
+          //   format: "yyyy-MM-dd HH:mm:ss",
+          //   valueFormat: "yyyy-MM-dd HH:mm:ss",
+          //   width: 130
+          // },
+          // {
+          //   label: "POL场站空箱出场日期",
+          //   prop: "polStationEmptyContainerExitDate",
+          //   overHidden: true,
+          //   type: "datetime",
+          //   format: "yyyy-MM-dd HH:mm:ss",
+          //   valueFormat: "yyyy-MM-dd HH:mm:ss",
+          //   width: 140
+          // },
+          // {
+          //   label: "ETA",
+          //   prop: "eta",
+          //   overHidden: true,
+          //   type: "date",
+          //   format: "yyyy-MM-dd",
+          //   valueFormat: "yyyy-MM-dd HH:mm:ss",
+          //   width: 100
+          // },
+          // {
+          //   label: "POD空箱还箱日期",
+          //   prop: "podEmptyContainerReturnDate",
+          //   overHidden: true,
+          //   type: "datetime",
+          //   format: "yyyy-MM-dd HH:mm:ss",
+          //   valueFormat: "yyyy-MM-dd HH:mm:ss",
+          //   width: 130
+          // },
+          // {
+          //   label: "POL空箱提箱进场日期",
+          //   prop: "polPickUpDate",
+          //   overHidden: true,
+          //   type: "datetime",
+          //   format: "yyyy-MM-dd HH:mm:ss",
+          //   valueFormat: "yyyy-MM-dd HH:mm:ss",
+          //   width: 140
+          // },
+          // {
+          //   label: "POD场站",
+          //   prop: "podStationCname",
+          //   formslot: true,
+          //   overHidden: true
+          // },
+          // {
+          //   label: "POD免箱使天数",
+          //   prop: "podFreeBoxUseDays",
+          //   width: "110",
+          //   overHidden: true
+          // },
+          // {
+          //   label: "POD箱使天数",
+          //   prop: "podBoxUseDays",
+          //   width: "110",
+          //   overHidden: true
+          // },
+          // {
+          //   label: "目的港场站联系人",
+          //   prop: "podCyContact",
+          //   overHidden: true,
+          //   width: 120
+          // },
+          // {
+          //   label: "目的港场站地址",
+          //   prop: "podCyAddress",
+          //   overHidden: true,
+          //   width: 110
+          // },
+          // {
+          //   label: "目的港场站邮箱",
+          //   prop: "podCyEmail",
+          //   overHidden: true,
+          //   width: 110
+          // },
+          // {
+          //   label: "目的港场站电话",
+          //   prop: "podCyTel",
+          //   overHidden: true,
+          //   width: 110
+          // },
+          // {
+          //   label: "代理名称",
+          //   prop: "agentName",
+          //   overHidden: true,
+          //   width: 100
+          // },
+          // {
+          //   label: "制单人",
+          //   prop: "createUserName",
+          //   overHidden: true
+          // },
+          // {
+          //   label: "制单日期",
+          //   prop: "createTime",
+          //   type: "date",
+          //   overHidden: true,
+          //   width: 120,
+          //   format: "yyyy-MM-dd",
+          //   valueFormat: "yyyy-MM-dd HH:mm:ss"
+          // },
+          // {
+          //   label: "修改人",
+          //   prop: "updateUserName",
+          //   overHidden: true
+          // },
+          // {
+          //   label: "修改日期",
+          //   prop: "updateTime",
+          //   type: "date",
+          //   overHidden: true,
+          //   width: 120,
+          //   format: "yyyy-MM-dd",
+          //   valueFormat: "yyyy-MM-dd HH:mm:ss"
+          // },
+          // {
+          //   label: "备注",
+          //   prop: "remarks",
+          //   width: 150,
+          //   overHidden: true
+          // }
+        ]
+      },
+      dialogVisible: false,
+      loading: false
+    };
+  },
+  created() {},
+  methods: {
+    openDialog(val) {
+      this.form = {};
+      this.data = [];
+      this.form = val;
+      this.dialogVisible = true;
+      this.getList();
+    },
+    getList() {
+      let obj = {
+        id: this.form.id
+      };
+      this.loading = true;
+      podBoxCountStatistics(obj)
+        .then(res => {
+          this.data = res.data.data;
+        })
+        .finally(() => {
+          this.loading = false;
+        });
+    }
+  }
+};
+</script>
+
+<style scoped>
+::v-deep#out-table .back-one {
+  background: #ecf5ff !important;
+  text-align: center;
+  padding: 4px 0;
+}
+
+::v-deep#out-table .back-two {
+  background: #ecf5ff !important;
+  text-align: center;
+  padding: 4px 0;
+}
+</style>

+ 8 - 1
src/views/boxManagement/containerNumber/detailsPage.vue

@@ -292,6 +292,7 @@
             <el-button type="danger" plain size="small" :disabled="editDisabled || selectionList.length == 0||form.whetherManuallyCreate==1" @click="allClick('批量删除')"
               >批量删除</el-button>
             <el-button type="success" size="small" :disabled="!form.id" @click="allClick('导出')">导出</el-button>
+            <el-button size="small" :disabled="!form.id" @click="allClick('POD数')">POD数</el-button>
             <el-button
               v-if="form.boxClass != 'OW(拿)'"
               type="info"
@@ -546,6 +547,7 @@
       </span>
     </el-dialog>
     <change-cn ref="changeCn" @getUpdate="getDetail(form.id)"></change-cn>
+    <podBoxCount ref="podBoxCount"></podBoxCount>
   </div>
 </template>
 
@@ -574,6 +576,7 @@ import _ from "lodash";
 import { Header } from "element-ui";
 import { head } from "lodash";
 import changeCn from "./components/changeCn.vue";
+import podBoxCount from "./components/podBoxCount.vue";
 export default {
   data() {
     return {
@@ -1480,7 +1483,8 @@ export default {
     checkSchedule,
     businessReports,
     reports,
-    changeCn
+    changeCn,
+    podBoxCount
   },
   props: {
     detailData: Object,
@@ -2101,6 +2105,9 @@ export default {
         //   }
         // });
       }
+      if(name=='POD数'){
+        this.$refs.podBoxCount.openDialog(this.form)
+      }
     },
     submit(type) {
       this.$refs["form"].validate((valid, done) => {

+ 9 - 2
src/views/iosBasicData/OceanFreightImport/bills/assembly/DistributionBox/containers.vue

@@ -259,7 +259,7 @@ export default {
         align: "center",
         menu: false,
         header: false,
-        border:true,
+        border: true,
         column: [
           {
             label: "操作类型",
@@ -337,7 +337,7 @@ export default {
         selection: true,
         dialogClickModal: false,
         refreshBtn: false,
-        delBtn:false,
+        delBtn: false,
         columnBtn: false,
         menu: true,
         menuWidth: 70,
@@ -859,6 +859,13 @@ export default {
         this.$message.warning("请选择至少一条数据");
         return;
       }
+      for (let item of this.selectionList) {
+        if (!item.id) return this.$message.error("明细存在未保存数据,请点击行删除");
+        if (item.quantity > 0) return this.$message.error("请先撤销,再删除配箱");
+        if (item.containerNumber && this.assemblyForm.billType != "MM") {
+          return this.$message.error("放箱号有值,不允许清空");
+        }
+      }
       this.$confirm("确定将选择数据删除?", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",

+ 2 - 6
src/views/iosBasicData/OceanFreightImport/bills/assembly/EntrustmentLnformation.vue

@@ -863,9 +863,7 @@
                     :disabled="
                       detailData.seeDisabled ||
                         generateBillsfalse ||
-                        (assemblyForm.billType == 'MH' && assemblyForm.masterBillNo > 0) ||
-                        assemblyForm.feeCenterListD.filter(item => item.auditStatus > 0).length ||
-                        assemblyForm.feeCenterListC.filter(item => item.auditStatus > 0).length
+                        (assemblyForm.billType == 'MH' && assemblyForm.masterBillNo > 0)
                     "
                     :buttonIf="false"
                     placeholder="请选择船名"
@@ -893,9 +891,7 @@
                     :disabled="
                       detailData.seeDisabled ||
                         generateBillsfalse ||
-                        (assemblyForm.billType == 'MH' && assemblyForm.masterBillNo > 0) ||
-                        assemblyForm.feeCenterListD.filter(item => item.auditStatus > 0).length ||
-                        assemblyForm.feeCenterListC.filter(item => item.auditStatus > 0).length
+                        (assemblyForm.billType == 'MH' && assemblyForm.masterBillNo > 0)
                     "
                     clearable
                     placeholder="请输入航次"

+ 4 - 2
src/views/iosBasicData/OceanFreightImport/bills/assembly/components/costTemplate.vue

@@ -1,11 +1,11 @@
 <template>
   <div>
-    <el-dialog title="费用模板" :visible.sync="dialogVisible" append-to-body width="30%" :before-close="handleClose">
+    <el-dialog title="费用模板" :visible.sync="dialogVisible" append-to-body width="30%" :before-close="handleClose" :close-on-click-modal="false">
       <avue-form v-if="dialogVisible" :option="optionForm" v-model="form" ref="form">
         <tempalte slot="shippingCompanyCname">
           <dic-select
             v-model="form.shippingCompanyCname"
-            placeholder="港口"
+            placeholder="船公司"
             key="id"
             label="cnName"
             url="/blade-los/bcorps/listAll?status=0&corpTypeName=船公司"
@@ -16,6 +16,8 @@
             dataType="string"
             @selectChange="dicChange('shippingCompanyCname', $event)"
             :multipleStrings="true"
+            :allBtn="true"
+            :initData="true"
           ></dic-select>
         </tempalte>
         <tempalte slot="branchName">

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

@@ -1787,7 +1787,7 @@ export default {
           if (type == "导入") {
             this.templateDialog = false;
           }
-          this.onLoad(this.page, this.query);
+          // this.onLoad(this.page, this.query);
         })
         .finally(() => {
           loading.close();

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

@@ -77,11 +77,15 @@
               <el-button
                 type="warning"
                 size="small"
-                :disabled="detailData.seeDisabled || pleasereviewType || showLock || disabled"
+                :disabled="detailData.seeDisabled || pleasereviewType || showLock || disabled || selectionList.length == 0"
                 @click="cleanCntrNofun"
                 >{{ $t("btn118n.clearCtnrNo") }}
               </el-button>
-              <el-button type="danger" size="small" :disabled="detailData.seeDisabled || pleasereviewType || showLock || disabled" @click="revokefun"
+              <el-button
+                type="danger"
+                size="small"
+                :disabled="detailData.seeDisabled || pleasereviewType || showLock || disabled || selectionList.length == 0"
+                @click="revokefun"
                 >{{ $t("btn118n.clearancePieceWeightScale") }}
               </el-button>
               <el-button
@@ -1254,21 +1258,21 @@ export default {
     },
     // 清除箱号
     cleanCntrNofun() {
-      this.$confirm("确定将数据清除全部箱号?", {
+      let arrids = [];
+      if (this.selectionList.length == 0) {
+        return this.$message.error("请选择数据");
+      }
+      for (let item of this.selectionList) {
+        if (item.containerNumber && this.assemblyForm.billType != "MM") {
+          return this.$message.error("放箱号有值,不允许清空");
+        }
+        arrids.push(item.id);
+      }
+      this.$confirm("确定将数据清除箱号?", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
         type: "warning"
       }).then(() => {
-        let arrids = [];
-        if (this.assemblyForm.billType != "MM") {
-          for (let item of this.assemblyForm.containersList.filter(item => !item.containerNumber)) {
-            arrids.push(item.id);
-          }
-        } else {
-          for (let item of this.assemblyForm.containersList) {
-            arrids.push(item.id);
-          }
-        }
         // 清除箱号接口
         if (arrids.length) {
           containersCleanBoxNo(arrids.join(",")).then(res => {
@@ -1283,20 +1287,21 @@ export default {
     },
     // 全部撤销
     wholeRevokefun() {
+      if (this.assemblyForm.billType != "MM") {
+        for (let item of this.assemblyForm.containersList) {
+          if (item.containerNumber && this.assemblyForm.billType != "MM") {
+            return this.$message.error("放箱号有值,不允许清空");
+          }
+        }
+      }
       this.$confirm("是否清除所有数据的件重尺?", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
         type: "warning"
       }).then(() => {
         let arrids = [];
-        if (this.assemblyForm.billType != "MM") {
-          for (let item of this.assemblyForm.containersList.filter(item => !item.containerNumber)) {
-            arrids.push(item.id);
-          }
-        } else {
-          for (let item of this.assemblyForm.containersList) {
-            arrids.push(item.id);
-          }
+        for (let item of this.assemblyForm.containersList) {
+          arrids.push(item.id);
         }
         if (arrids.length) {
           containersRevoke(arrids.join(",")).then(res => {
@@ -1311,6 +1316,9 @@ export default {
     },
     // 撤销
     revokefun() {
+      if (this.selectionList.length == 0) {
+        return this.$message.error("请选择数据");
+      }
       if (this.selectionList.length > 0) {
         let arrids = [];
         for (let item of this.selectionList) {
@@ -1328,11 +1336,6 @@ export default {
             this.$emit("billsDetailfun");
           });
         }
-      } else {
-        this.$message({
-          type: "warning",
-          message: "请选选择要撤销的数据!"
-        });
       }
     },
     // 配箱批量保存
@@ -1447,6 +1450,9 @@ export default {
       for (let item of this.assemblyForm.containersList) {
         if (!item.id) return this.$message.error("明细存在未保存数据,请点击行删除");
         if (item.quantity > 0) return this.$message.error("请先撤销,再删除配箱");
+        if (item.containerNumber && this.assemblyForm.billType != "MM") {
+          return this.$message.error("放箱号有值,不允许清空");
+        }
       }
       this.$confirm("确定将全部数据删除?", {
         confirmButtonText: "确定",

+ 8 - 2
src/views/iosBasicData/SeafreightExportF/bills/assembly/DocumentCenter.vue

@@ -184,7 +184,7 @@
         @refresh-change="PreviewRefreshChange"
       >
         <template slot-scope="scope" slot="menu">
-          <el-link type="primary" :disabled="scope.row.status == 1" @click="handleReportPreview(scope.row.url, documentForm)">预览报表</el-link>
+          <el-link type="primary" :disabled="scope.row.status == 1" @click="rowPrint(scope.row, documentForm)">预览报表</el-link>
         </template>
       </avue-crud>
       <span slot="footer" class="dialog-footer">
@@ -481,7 +481,8 @@ export default {
       const data = await this.PreviewOnLoad(this.PreviewPage, {
         businessType: "HYCK",
         classifyCode: "单证",
-        groupCode: row.groupCode == "提单详情(H)" ? "提单详情" : row.groupCode
+        groupCode: row.groupCode == "提单详情(H)" ? "提单详情" : row.groupCode,
+        whetherUrl:1,
       });
       this.$nextTick(() => {
         if (data.length == 1) {
@@ -889,6 +890,11 @@ export default {
       this.$refs.mailComponentRef.formData.fileType = e.formatName;
       this.$refs.mailComponentRef.formData.fileContent = e.data;
     },
+    rowPrint(row,data){
+      reportsDetail(row.id).then(res=>{
+          this.handleReportPreview(res.data.data.url, data)
+      })
+    },
     // 预览报表
     handleReportPreview(url, data) {
       console.log(url, 1670);

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

@@ -761,8 +761,6 @@
                     detailData.seeDisabled ||
                       generateBillsfalse ||
                       (assemblyForm.billType == 'MH' && assemblyForm.masterBillNo > 0) ||
-                      assemblyForm.feeCenterListD.filter(item => item.auditStatus > 0).length ||
-                      assemblyForm.feeCenterListC.filter(item => item.auditStatus > 0).length ||
                       (overTime&&assemblyForm.billType != 'MM')
                   "
                   :buttonIf="false"
@@ -788,8 +786,6 @@
                     detailData.seeDisabled ||
                       generateBillsfalse ||
                       (assemblyForm.billType == 'MH' && assemblyForm.masterBillNo > 0) ||
-                      assemblyForm.feeCenterListD.filter(item => item.auditStatus > 0).length ||
-                      assemblyForm.feeCenterListC.filter(item => item.auditStatus > 0).length ||
                       (overTime&&assemblyForm.billType != 'MM')
                   "
                   clearable

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

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <el-dialog title="费用模板" :visible.sync="dialogVisible" append-to-body width="30%" :before-close="handleClose">
+    <el-dialog title="费用模板" :visible.sync="dialogVisible" append-to-body width="30%" :before-close="handleClose" :close-on-click-modal="false">
       <avue-form v-if="dialogVisible" :option="optionForm" v-model="form" ref="form">
         <tempalte slot="shippingCompanyCname">
           <dic-select

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

@@ -1915,7 +1915,7 @@ export default {
           if (type == "导入") {
             this.templateDialog = false;
           }
-          this.onLoad(this.page, this.query);
+          // this.onLoad(this.page, this.query);
         })
         .finally(() => {
           loading.close();

+ 6 - 6
src/views/iosBasicData/businessCenter/customerBooking/detailsPage.vue

@@ -2931,12 +2931,12 @@ export default {
               gwtSUM += Number(item.grossWeight ? item.grossWeight : 0);
               mrtSUM += Number(item.measurement ? item.measurement : 0);
             }
-            this.form.quantity = Number(this.form.quantity ? this.form.quantity : 0).toFixed(2);
-            this.form.grossWeight = Number(this.form.grossWeight ? this.form.grossWeight : 0).toFixed(2);
-            this.form.measurement = Number(this.form.measurement ? this.form.measurement : 0).toFixed(2);
-            qtySUM = Number(qtySUM ? qtySUM : 0).toFixed(2);
-            gwtSUM = Number(gwtSUM ? gwtSUM : 0).toFixed(2);
-            mrtSUM = Number(mrtSUM ? mrtSUM : 0).toFixed(2);
+            this.form.quantity = Number(this.form.quantity ? this.form.quantity : 0).toFixed(3);
+            this.form.grossWeight = Number(this.form.grossWeight ? this.form.grossWeight : 0).toFixed(3);
+            this.form.measurement = Number(this.form.measurement ? this.form.measurement : 0).toFixed(3);
+            qtySUM = Number(qtySUM ? qtySUM : 0).toFixed(3);
+            gwtSUM = Number(gwtSUM ? gwtSUM : 0).toFixed(3);
+            mrtSUM = Number(mrtSUM ? mrtSUM : 0).toFixed(3);
             if (qtySUM != this.form.quantity || gwtSUM != this.form.grossWeight || mrtSUM != this.form.measurement) {
               this.$alert(
                 `<table border="1" align="center" style="width:100%;color:#F56C6C">

+ 68 - 9
src/views/ow/owPut/detailsPage.vue

@@ -259,7 +259,6 @@
               id="out-table"
               ref="crud"
               :header-cell-class-name="headerClassName"
-              :row-style="{ height: '20px', padding: '0px' }"
               :cell-style="{ height: '20px', padding: '0px' }"
               :search.sync="boxQuery"
               @search-change="searchChangeBox"
@@ -267,6 +266,7 @@
               @selection-change="selectionChange"
               @select="selectHandle"
               @row-update="rowUpdate"
+              :row-style="rowStyle2"
               @resetColumn="resetColumn('crud', 'option', 'optionBack', 471)"
               @saveColumn="saveColumn('crud', 'option', 'optionBack', 471)"
             >
@@ -297,6 +297,9 @@
                   >客户还箱</el-button
                 >
                 <el-button type="success" size="small" :disabled="!form.id" @click="allClick('导出箱号')">导出箱号</el-button>
+                <el-button type="success" size="small" :disabled="!form.id" @click="allClick('导出选中箱号')">导出选中箱号</el-button>
+                <el-button size="small" :disabled="!form.id" @click="allClick('选中')"> 选中</el-button>
+                <el-button size="small" :disabled="!form.id" @click="allClick('清空选中')"> 清空选中</el-button>
                 <!-- <el-button type="info" size="small" @click="allClick('启用')">启用</el-button> -->
                 <!-- <el-button type="primary" size="small" @click="allClick('卖箱')">卖箱</el-button> -->
                 <!-- <el-button size="small" style="margin-right: 8px" :disabled="!form.id || true"
@@ -1335,10 +1338,12 @@ import feeModify from "@/components/feeModify/main.vue";
 import feeModifyView from "@/components/feeModify/view.vue";
 import _ from "lodash";
 import { Header } from "element-ui";
+import axios from "axios";
 export default {
   name: "detailsPage",
   data() {
     return {
+      pickIds: [],
       searchStatus: false,
       boxQuery: {},
       fininvoicesData: [],
@@ -4141,23 +4146,70 @@ export default {
             }
           }
         }
-
         let data = {
           id: this.form.id,
           ids: ids.join(",")
         };
-
         exportTemplateById(data).then(res => {
-          const routeData = this.$router.resolve({
-            path: "/api/blade-los/boxdynamicsrecord/exportTemplateById", //跳转目标窗口的地址
-            query: {
-              "Blade-Auth": getToken(),
-              ...data //括号内是要传递给新窗口的参数
+          axios({
+            url: "/api/blade-los/boxdynamicsrecord/exportTemplateById", // 比如: 'http://example.com/api/downloadExcel'
+            method: "post",
+            responseType: "blob", // 重要:设置为blob以接收二进制数据
+            data: {
+              ...data
             }
+          }).then(response => {
+            const url = window.URL.createObjectURL(new Blob([response.data]));
+            const link = document.createElement("a");
+            link.href = url;
+            link.setAttribute("download", "箱明细.xlsx"); // 设置下载的文件名
+            document.body.appendChild(link);
+            link.click();
+            this.$message.success("下载成功,请查看浏览器下载记录!");
           });
-          window.open(routeData.href.slice(1, routeData.href.length));
         });
       }
+      if (name == "导出选中箱号") {
+        if (this.pickIds.length == 0) {
+          return this.$message.error("请点击选中按钮!");
+        }
+        let data = {
+          id: this.form.id,
+          ids: this.pickIds.join(",")
+        };
+        exportTemplateById(data).then(res => {
+          axios({
+            url: "/api/blade-los/boxdynamicsrecord/exportTemplateById", // 比如: 'http://example.com/api/downloadExcel'
+            method: "post",
+            responseType: "blob", // 重要:设置为blob以接收二进制数据
+            data: {
+              ...data
+            }
+          })
+            .then(response => {
+              console.log(response);
+              const url = window.URL.createObjectURL(new Blob([response.data]));
+              const link = document.createElement("a");
+              link.href = url;
+              link.setAttribute("download", "箱明细.xlsx"); // 设置下载的文件名
+              document.body.appendChild(link);
+              link.click();
+              this.$message.success("下载成功,请查看浏览器下载记录!");
+            })
+            .catch(err => {
+              console.log(err);
+            });
+        });
+      }
+      if (name == "选中") {
+        for (let item of this.selectionList) {
+          this.pickIds.push(item.id);
+        }
+        this.pickIds = [...new Set(this.pickIds)];
+      }
+      if (name == "清空选中") {
+        this.pickIds = [];
+      }
       if (name == "启用") {
         if (!this.form.id) {
           return this.$message.error("请保存数据再启用");
@@ -5390,6 +5442,13 @@ export default {
         };
       }
     },
+    rowStyle2({ row, column, rowIndex }) {
+      if (this.pickIds.filter(item => item == row.id).length) {
+        return {
+          backgroundColor: "#E1F3D8"
+        };
+      }
+    },
     // 更改表格颜色
     headerClassName(tab) {
       //颜色间隔

+ 71 - 10
src/views/ow/owTask/detailsPage.vue

@@ -314,7 +314,6 @@
               id="out-table"
               ref="crud"
               :header-cell-class-name="headerClassName"
-              :row-style="{ height: '20px', padding: '0px' }"
               :cell-style="{ height: '20px', padding: '0px' }"
               :search.sync="boxQuery"
               @search-change="searchChangeBox"
@@ -322,6 +321,7 @@
               @selection-change="selectionChange"
               @select="selectHandle"
               @row-update="rowUpdate"
+              :row-style="rowStyle2"
               @resetColumn="resetColumn('crud', 'option', 'optionBack', 462)"
               @saveColumn="saveColumn('crud', 'option', 'optionBack', 462)"
             >
@@ -356,7 +356,10 @@
                   >客户还箱</el-button
                 >
                 <el-button type="success" size="small" :disabled="!form.id" @click="allClick('导出箱号')"> 导出箱号</el-button>
-                <!-- <el-button type="primary" size="small" @click="allClick('卖箱')">卖箱</el-button> -->
+                <el-button type="success" size="small" :disabled="!form.id" @click="allClick('导出选中箱号')">导出选中箱号</el-button>
+                <el-button size="small" :disabled="!form.id" @click="allClick('选中')"> 选中</el-button>
+                <el-button size="small" :disabled="!form.id" @click="allClick('清空选中')"> 清空选中</el-button>
+                <!--<el-button type="primary" size="small" @click="allClick('卖箱')">卖箱</el-button> -->
                 <!-- <el-button size="small" style="margin-right: 8px" :disabled="!form.id || true"
                   @click="$refs.print.openDialog()">打印报表
                 </el-button> -->
@@ -1449,10 +1452,12 @@ import feeModifyView from "@/components/feeModify/view.vue";
 import _ from "lodash";
 import { Header } from "element-ui";
 import changeCn from "./components/changeCn.vue";
+import axios from "axios";
 export default {
   name: "detailsPage",
   data() {
     return {
+      pickIds: [],
       searchStatus: false,
       boxQuery: {},
       fininvoicesData: [],
@@ -4640,16 +4645,65 @@ export default {
           ids: ids.join(",")
         };
         exportTemplateById(data).then(res => {
-          const routeData = this.$router.resolve({
-            path: "/api/blade-los/boxdynamicsrecord/exportTemplateById", //跳转目标窗口的地址
-            query: {
-              "Blade-Auth": getToken(),
-              ...data //括号内是要传递给新窗口的参数
+          axios({
+            url: "/api/blade-los/boxdynamicsrecord/exportTemplateById", // 比如: 'http://example.com/api/downloadExcel'
+            method: "post",
+            responseType: "blob", // 重要:设置为blob以接收二进制数据
+            data: {
+              ...data
             }
+          }).then(response => {
+            const url = window.URL.createObjectURL(new Blob([response.data]));
+            const link = document.createElement("a");
+            link.href = url;
+            link.setAttribute("download", "箱明细.xlsx"); // 设置下载的文件名
+            document.body.appendChild(link);
+            link.click();
+            this.$message.success("下载成功,请查看浏览器下载记录!");
           });
-          window.open(routeData.href.slice(1, routeData.href.length));
         });
       }
+      if (name == "导出选中箱号") {
+        if (this.pickIds.length == 0) {
+          return this.$message.error("请点击选中按钮!");
+        }
+        let data = {
+          id: this.form.id,
+          ids: this.pickIds.join(",")
+        };
+        exportTemplateById(data).then(res => {
+          axios({
+            url: "/api/blade-los/boxdynamicsrecord/exportTemplateById", // 比如: 'http://example.com/api/downloadExcel'
+            method: "post",
+            responseType: "blob", // 重要:设置为blob以接收二进制数据
+            data: {
+              ...data
+            }
+          })
+            .then(response => {
+              console.log(response);
+              const url = window.URL.createObjectURL(new Blob([response.data]));
+              const link = document.createElement("a");
+              link.href = url;
+              link.setAttribute("download", "箱明细.xlsx"); // 设置下载的文件名
+              document.body.appendChild(link);
+              link.click();
+              this.$message.success("下载成功,请查看浏览器下载记录!");
+            })
+            .catch(err => {
+              console.log(err);
+            });
+        });
+      }
+      if (name == "选中") {
+        for (let item of this.selectionList) {
+          this.pickIds.push(item.id);
+        }
+        this.pickIds = [...new Set(this.pickIds)];
+      }
+      if (name == "清空选中") {
+        this.pickIds = [];
+      }
       if (name == "导出") {
         let ids = [];
         if (this.boxQuery.code) {
@@ -5461,8 +5515,8 @@ export default {
         this.podDialog = true;
       }
       if (name == "批量修改放箱号") {
-        for(let item of this.selectionList){
-          if(item.status!='待使用'){
+        for (let item of this.selectionList) {
+          if (item.status != "待使用") {
             return this.$message.error("请选择箱状态为待使用的数据");
           }
         }
@@ -5979,6 +6033,13 @@ export default {
         };
       }
     },
+    rowStyle2({ row, column, rowIndex }) {
+      if (this.pickIds.filter(item => item == row.id).length) {
+        return {
+          backgroundColor: "#E1F3D8"
+        };
+      }
+    },
     //自定义列保存
     async saveColumn(ref, option, optionBack, code) {
       if (code == 462) {

+ 3 - 3
src/views/serviceConfiguration/modifyData/index.vue

@@ -10,7 +10,7 @@
                 <template slot="menuLeft">
                     <div style="margin-top: 10px">
                         <el-tabs type="card" v-model="query.approvalStatus" @tab-click="handleClick">
-                            <el-tab-pane label="处理中" name="0"></el-tab-pane>
+                            <el-tab-pane label="处理中" name="录入"></el-tab-pane>
                             <el-tab-pane label="已完成" name="审核通过"></el-tab-pane>
                         </el-tabs>
                     </div>
@@ -44,7 +44,7 @@ export default {
             isShow: true,
             form: {},
             query: {
-                approvalStatus: '0',
+                approvalStatus: '录入',
                 type: 2
             },
             loading: false,
@@ -194,7 +194,7 @@ export default {
             let obj = {}
             obj = {
                 ...Object.assign(params, this.query),
-                approvalStatus: this.query.approvalStatus == '审核通过' ? '审核通过' : null
+                approvalStatus: this.query.approvalStatus == '审核通过' ? '审核通过' : '录入'
             }
             this.loading = true;
             getList(page.currentPage, page.pageSize, obj).then(res => {