Explorar o código

1.箱轨迹 新加日期区间检索条件 列表完整显示时分秒
2.进出口记录 动态日期显示时分秒
3.客户托书 导入样本 生成订单后 不允许点
4.财务管理 列表页列设置无法调整列顺序
5.海运出口 报表 新加超过截单时间要弹窗
6.海运出口 ETD 替换弹窗组件 大保存去掉ETD检验
7.放箱号 新加上下票
8.船期管理 新加同步功能

Qukatie hai 2 meses
pai
achega
8f0cbaf704

+ 8 - 0
src/api/iosBasicData/sailingSchedule.js

@@ -34,4 +34,12 @@ export const remove = (data) => {
       method: 'post',
       params: data
   })
+}
+//船期管理同步按钮
+export const synchronizationEtdData = (data) => {
+    return request({
+        url: '/api/blade-los/bills/synchronizationEtdData',
+        method: 'get',
+        params: data
+    })
 }

+ 153 - 131
src/views/boxManagement/boxTrack/index.vue

@@ -1,15 +1,26 @@
 <template>
   <div>
     <basic-container v-show="!detailsOpen">
-      <avue-crud :option="option" :search.sync="search" v-model="form" :table-loading="loading" :data="dataList"
-        ref="crud" :key="key" @on-load="onLoad" @search-change="searchChange" @row-del="rowDel" @row-update="rowUpdate"
-        @refresh-change="refreshChange" @resetColumn="resetColumnTwo('crud', 'option', 'optionList', 241)"
-        @saveColumn="saveColumnTwo('crud', 'option', 'optionList', 241)" :page.sync="page">
-        <template slot-scope="{type,size,row,$index}" slot="menu">
+      <avue-crud
+        :option="option"
+        :search.sync="search"
+        v-model="form"
+        :table-loading="loading"
+        :data="dataList"
+        ref="crud"
+        :key="key"
+        @on-load="onLoad"
+        @search-change="searchChange"
+        @row-del="rowDel"
+        @row-update="rowUpdate"
+        @refresh-change="refreshChange"
+        @resetColumn="resetColumnTwo('crud', 'option', 'optionList', 241)"
+        @saveColumn="saveColumnTwo('crud', 'option', 'optionList', 241)"
+        :page.sync="page"
+      >
+        <template slot-scope="{ type, size, row, $index }" slot="menu">
           <!--          <el-button icon="el-icon-view" :size="size" :type="type" @click="$refs.crud.rowUpdate(row,$index)">编辑</el-button>-->
-          <el-button icon="el-icon-delete" :size="size" v-if="row.status == 0" :type="type"
-            @click="$refs.crud.rowDel(row, $index)">删除
-          </el-button>
+          <el-button icon="el-icon-delete" :size="size" v-if="row.status == 0" :type="type" @click="$refs.crud.rowDel(row, $index)">删除 </el-button>
         </template>
       </avue-crud>
     </basic-container>
@@ -19,7 +30,7 @@
 
 <script>
 import { getList, remove, update } from "@/api/boxManagement/boxTrack/index.js";
-import detailsPage from "./detailsPage"
+import detailsPage from "./detailsPage";
 
 export default {
   name: "箱轨迹",
@@ -54,40 +65,40 @@ export default {
         searchMenuPosition: "right",
         align: "center",
         menuWidth: 140,
-        menu:false,
+        menu: false,
         searchShow: true,
-        searchMenuSpan: 18,
+        searchMenuSpan: 12,
         searchIcon: true,
         searchIndex: 3,
         highlightCurrentRow: true,
         dialogWidth: "70%",
         column: [
           {
-            label: '箱号',
-            prop: 'code',
+            label: "箱号",
+            prop: "code",
             overHidden: true,
             search: true
           },
           {
-            label: '放箱号',
-            prop: 'containerNumber',
+            label: "放箱号",
+            prop: "containerNumber",
             overHidden: true,
             search: true
           },
           {
-            label: '箱型',
-            prop: 'boxType',
-            overHidden: true,
+            label: "箱型",
+            prop: "boxType",
+            overHidden: true
           },
           {
-            label: '箱东',
-            prop: 'boxEastName',
-            overHidden: true,
+            label: "箱东",
+            prop: "boxEastName",
+            overHidden: true
           },
           {
-            label: '放箱号类型',
-            prop: 'boxCategory',
-            width:100,
+            label: "放箱号类型",
+            prop: "boxCategory",
+            width: 100,
             search: true,
             type: "select",
             dicUrl: "/api/blade-system/dict-biz/dictionary?code=boxCategory",
@@ -95,197 +106,206 @@ export default {
               label: "dictValue",
               value: "dictValue"
             },
-            overHidden: true,
+            overHidden: true
           },
           {
-            label: '箱动态',
-            prop: 'boxDynamics',
-            overHidden: true,
+            label: "箱动态",
+            prop: "boxDynamics",
+            overHidden: true
           },
           {
-            label: '动态日期',
-            prop: 'newDate',
-            overHidden: true,
+            label: "动态日期",
+            prop: "newDate",
+            width: 130,
+            search: true,
+            searchProp: "newDateList",
+            type: "date",
+            searchRange: true,
+            searchDefaultTime: ["00:00:00", "23:59:59"],
+            format: "yyyy-MM-dd HH:mm:ss",
+            valueFormat: "yyyy-MM-dd HH:mm:ss",
+            overHidden: true
           },
           {
-            label: '港口',
-            prop: 'portCname',
-            overHidden: true,
+            label: "港口",
+            prop: "portCname",
+            overHidden: true
           },
           {
-            label: '场站',
-            prop: 'stationCname',
-            overHidden: true,
+            label: "场站",
+            prop: "stationCname",
+            overHidden: true
           },
           {
-            label: '客户名称',
-            prop: 'corpName',
-            overHidden: true,
+            label: "客户名称",
+            prop: "corpName",
+            overHidden: true
           },
           {
-            label: '提单号',
-            prop: 'mblno',
+            label: "提单号",
+            prop: "mblno",
             search: true,
-            overHidden: true,
+            overHidden: true
           },
           {
-            label: '分单号',
-            prop: 'hblno',
+            label: "分单号",
+            prop: "hblno",
             search: true,
-            overHidden: true,
+            overHidden: true
           },
           {
-            label: '船名',
-            prop: 'shipCname',
-            overHidden: true,
+            label: "船名",
+            prop: "shipCname",
+            overHidden: true
           },
           {
-            label: '航次',
-            prop: 'voyage',
-            overHidden: true,
+            label: "航次",
+            prop: "voyage",
+            overHidden: true
           },
           {
-            label: 'ETD',
-            prop: 'etd',
-            overHidden: true,
+            label: "ETD",
+            prop: "etd",
+            overHidden: true
           },
           {
-            label: 'POL堆场',
-            prop: 'polCyCname',
-            overHidden: true,
+            label: "POL堆场",
+            prop: "polCyCname",
+            overHidden: true
           },
           {
-            label: 'POL免箱使天数',
-            prop: 'polFreeBoxUseDays',
+            label: "POL免箱使天数",
+            prop: "polFreeBoxUseDays",
             width: 110,
-            overHidden: true,
+            overHidden: true
           },
           {
-            label: 'POL提前出场日期',
-            prop: 'polPreAppearanceDate',
+            label: "POL提前出场日期",
+            prop: "polPreAppearanceDate",
             width: 120,
-            overHidden: true,
+            overHidden: true
           },
           {
-            label: 'POL场站空箱出场日期',
-            prop: 'polStationEmptyContainerExitDate',
+            label: "POL场站空箱出场日期",
+            prop: "polStationEmptyContainerExitDate",
             width: 140,
-            overHidden: true,
+            overHidden: true
           },
           {
-            label: 'POL还箱日期',
-            prop: 'polReturnDate',
+            label: "POL还箱日期",
+            prop: "polReturnDate",
             width: 100,
-            overHidden: true,
+            overHidden: true
           },
           {
-            label: 'POL超期箱使天数',
-            prop: 'polOverdueBoxUseDays',
+            label: "POL超期箱使天数",
+            prop: "polOverdueBoxUseDays",
             width: 120,
-            overHidden: true,
+            overHidden: true
           },
           {
-            label: 'ETA',
-            prop: 'eta',
-            overHidden: true,
+            label: "ETA",
+            prop: "eta",
+            overHidden: true
           },
           {
-            label: 'POD空箱还箱日期',
-            prop: 'podEmptyContainerReturnDate',
+            label: "POD空箱还箱日期",
+            prop: "podEmptyContainerReturnDate",
             width: 120,
-            overHidden: true,
+            overHidden: true
           },
           {
-            label: 'POD场站',
-            prop: 'podStationCname',
-            overHidden: true,
+            label: "POD场站",
+            prop: "podStationCname",
+            overHidden: true
           },
           {
-            label: 'POD免箱使天数',
-            prop: 'podFreeBoxUseDays',
+            label: "POD免箱使天数",
+            prop: "podFreeBoxUseDays",
             width: 110,
-            overHidden: true,
+            overHidden: true
           },
           {
-            label: 'POD箱使天数',
-            prop: 'podBoxUseDays',
+            label: "POD箱使天数",
+            prop: "podBoxUseDays",
             width: 100,
-            overHidden: true,
+            overHidden: true
           }
         ]
       }
-    }
+    };
   },
   activated() {
     if (this.$route.query.check) {
-      this.detailsOpen = false
+      this.detailsOpen = false;
       this.detailData = {
         id: this.$route.query.check.billId,
-        check: this.$route.query.check,
+        check: this.$route.query.check
       };
       this.form = {
         id: this.$route.query.check.billId
-      }
-      this.detailsOpen = true
-      this.$router.$avueRouter.closeTag(window.location.hash.slice(1))
+      };
+      this.detailsOpen = true;
+      this.$router.$avueRouter.closeTag(window.location.hash.slice(1));
     }
   },
   async created() {
     this.option = await this.getColumnData(this.getColumnName(241), this.optionList);
-    this.key++
+    this.key++;
     let i = 0;
     this.option.column.forEach(item => {
-      if (item.search) i++
-    })
+      if (item.search) i++;
+    });
     if (i % 3 !== 0) {
-      const num = 3 - Number(i % 3)
+      const num = 3 - Number(i % 3);
       this.option.searchMenuSpan = num * 8;
       this.option.searchMenuPosition = "right";
     }
   },
   methods: {
     check(row) {
-      this.form = row
-      this.detailsOpen = true
+      this.form = row;
+      this.detailsOpen = true;
     },
     backToList(type) {
-      this.form = {}
-      this.detailsOpen = false
+      this.form = {};
+      this.detailsOpen = false;
       if (type === 0) {
-        this.detailData = {}
+        this.detailData = {};
       }
-      this.onLoad(this.page, this.search)
+      this.onLoad(this.page, this.search);
     },
     //刷新
     refreshChange() {
-      this.onLoad(this.page, this.search)
+      this.onLoad(this.page, this.search);
     },
     rowUpdate(form, index) {
       update(form).then(res => {
         this.$message({
-          type: 'success',
-          message: '修改成功!'
+          type: "success",
+          message: "修改成功!"
         });
-      })
+      });
     },
     rowDel(form, index) {
-      this.$confirm('此操作将永久删除该行, 是否继续?', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning'
-      }).then(() => {
-        remove(form.id).then(res => {
-          this.$message({
-            type: 'success',
-            message: '删除成功!'
+      this.$confirm("此操作将永久删除该行, 是否继续?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      })
+        .then(() => {
+          remove(form.id).then(res => {
+            this.$message({
+              type: "success",
+              message: "删除成功!"
+            });
           });
         })
-      }).catch(() => {
-      });
+        .catch(() => {});
     },
     searchChange(params, done) {
       done();
-      this.onLoad(this.page, params)
+      this.onLoad(this.page, params);
     },
     onLoad(page, params = {}) {
       params = {
@@ -293,16 +313,18 @@ export default {
         current: page.currentPage,
         size: page.pageSize,
         ...Object.assign(params, this.search)
-      }
-      this.loading = true
-      getList(params).then(res => {
-        console.log(res)
-        this.dataList = res.data.data.records
-        this.page.total = res.data.data.total
-        this.loading = false
-      }).finally(() => {
-        this.loading = false
-      })
+      };
+      this.loading = true;
+      getList(params)
+        .then(res => {
+          console.log(res);
+          this.dataList = res.data.data.records;
+          this.page.total = res.data.data.total;
+          this.loading = false;
+        })
+        .finally(() => {
+          this.loading = false;
+        });
     },
 
     //自定义列保存
@@ -329,7 +351,7 @@ export default {
       }
     }
   }
-}
+};
 </script>
 
 <style lang="scss" scoped>

+ 56 - 22
src/views/boxManagement/containerNumber/detailsPage.vue

@@ -3,6 +3,8 @@
     <div class="customer-head">
       <div class="customer-back">
         <el-button type="danger" style="border: none;background: none;color: red" icon="el-icon-arrow-left" @click="goBack()">返回列表 </el-button>
+        <el-button v-if="form.id && pageIds.length" type="text" @click="lastPage">上一票</el-button>
+        <el-button v-if="form.id && pageIds.length" type="text" @click="nextPage">下一票</el-button>
       </div>
       <div class="add-customer-btn">
         <el-button
@@ -242,7 +244,7 @@
               :controls="false"
               placeholder="请输入 可用"
               style="width: 100%;"
-              :disabled="editDisabled||form.whetherManuallyCreate==1"
+              :disabled="editDisabled || form.whetherManuallyCreate == 1"
             ></el-input-number>
           </tempalte>
           <tempalte slot="occupyNum">
@@ -251,7 +253,7 @@
               :controls="false"
               placeholder="请输入 占用"
               style="width: 100%;"
-              :disabled="editDisabled||form.whetherManuallyCreate==1"
+              :disabled="editDisabled || form.whetherManuallyCreate == 1"
             ></el-input-number>
           </tempalte>
           <tempalte slot="storageNum">
@@ -260,7 +262,7 @@
               :controls="false"
               placeholder="请输入 场地盘存"
               style="width: 100%;"
-              :disabled="editDisabled||form.whetherManuallyCreate==1"
+              :disabled="editDisabled || form.whetherManuallyCreate == 1"
             ></el-input-number>
           </tempalte>
         </avue-form>
@@ -300,7 +302,15 @@
                 </el-button> -->
           </template>
           <template slot="indexHeader" slot-scope="{ row, index }">
-            <el-button type="primary" size="mini" icon="el-icon-plus" :disabled="editDisabled || searchStatus||form.whetherManuallyCreate==1" circle @click="addRow()"> </el-button>
+            <el-button
+              type="primary"
+              size="mini"
+              icon="el-icon-plus"
+              :disabled="editDisabled || searchStatus || form.whetherManuallyCreate == 1"
+              circle
+              @click="addRow()"
+            >
+            </el-button>
           </template>
           <!-- <template slot="index" slot-scope="{ row, index }">
             <span>{{ index + 1 }}</span>
@@ -340,22 +350,22 @@
             </span>
           </tempalte>
           <tempalte v-else slot="boxEastNameForm" slot-scope="{ row }">
-             <dic-select
-                v-if="row.$cellEdit"
-                v-model="row.boxEastName"
-                placeholder="箱东"
-                key="id"
-                label="shortName"
-                res="records"
-                url="/blade-los/bcorps/selectList?status=0&corpTypeName=箱东"
-                :filterable="true"
-                :remote="true"
-                dataName="shortName"
-                :slotRight="true"
-                rightLabel="code"
-              >
-              </dic-select>
-              <span v-else>{{ row.boxEastName }}</span>
+            <dic-select
+              v-if="row.$cellEdit"
+              v-model="row.boxEastName"
+              placeholder="箱东"
+              key="id"
+              label="shortName"
+              res="records"
+              url="/blade-los/bcorps/selectList?status=0&corpTypeName=箱东"
+              :filterable="true"
+              :remote="true"
+              dataName="shortName"
+              :slotRight="true"
+              rightLabel="code"
+            >
+            </dic-select>
+            <span v-else>{{ row.boxEastName }}</span>
           </tempalte>
           <tempalte slot="corpNameForm" slot-scope="{ row }">
             <dic-select
@@ -966,7 +976,7 @@ export default {
         delBtn: false,
         refreshBtn: false,
         selection: true,
-        index:true,
+        index: true,
         align: "center",
         menu: false,
         column: [
@@ -1407,7 +1417,11 @@ export default {
     reports
   },
   props: {
-    detailData: Object
+    detailData: Object,
+    pageIds: {
+      type: Array, // 指定 prop 的类型为 Array
+      default: () => [] // 提供一个默认值,这里使用函数形式返回一个空数组
+    }
   },
   async created() {
     this.roleName = localStorage.getItem("roleName").split(",");
@@ -1433,6 +1447,26 @@ export default {
   },
 
   methods: {
+    lastPage() {
+      if (this.pageIds.length) {
+        const index = this.pageIds.indexOf(this.form.id);
+        if (index == 0) {
+          return this.$message.error("没有上一票了");
+        }
+        const lastIndex = index - 1;
+        this.getDetail(this.pageIds[lastIndex]);
+      }
+    },
+    nextPage() {
+      if (this.pageIds.length) {
+        const index = this.pageIds.indexOf(this.form.id);
+        if (this.pageIds[this.pageIds.length - 1] == this.form.id) {
+          return this.$message.error("没有下一票了");
+        }
+        const nextIndex = index + 1;
+        this.getDetail(this.pageIds[nextIndex]);
+      }
+    },
     rowJump(row) {
       if (this.verifyTags("海运出口(F)")) {
         this.$router.push({

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

@@ -53,7 +53,7 @@
         </template>
       </avue-crud>
     </basic-container>
-    <detailsPage v-if="!isShow" :detailData="detailData" @goBack="goBack"></detailsPage>
+    <detailsPage v-if="!isShow" :detailData="detailData" @goBack="goBack" :pageIds="pageIds"></detailsPage>
     <batch-pod ref="batchPod" @getUpdate="refreshChange"></batch-pod>
   </div>
 </template>
@@ -69,6 +69,7 @@ export default {
   name: "放箱号",
   data() {
     return {
+      pageIds: [],
       isShow: true,
       form: {},
       query: {
@@ -512,6 +513,7 @@ export default {
   },
   methods: {
     addButton() {
+      this.pageIds = []
       this.isShow = false;
     },
     copyButton() {
@@ -531,6 +533,10 @@ export default {
       this.$refs.batchPod.openDialog(ids.join(","));
     },
     rowEdit(row) {
+      this.pageIds = []
+      this.data.forEach(item => {
+        this.pageIds.push(item.id)
+      })
       this.detailData = {
         id: row.id
       };
@@ -603,6 +609,7 @@ export default {
     },
     // 详情的返回列表
     goBack() {
+      this.pageIds = []
       // 初始化数据
       if (JSON.stringify(this.$route.query) != "{}") {
         this.$router.$avueRouter.closeTag();

+ 236 - 228
src/views/boxManagement/enterRecord/components/importModule.vue

@@ -1,243 +1,251 @@
 <template>
-    <div>
-        <el-dialog title="导入数据" append-to-body :visible.sync="excelBox" width="60%" :close-on-click-modal="false"
-            v-dialog-drag>
-            <span>
-                <avue-crud v-if="excelBox" :data="data" :option="option" :table-loading="loading"
-                    :cell-style="cellStyle" @selection-change="selectionChange">
-                    <template v-if="!(type==5||type==6)"  slot="menuLeft" slot-scope="{size}">
-                        <el-button  type="primary" size="mini" icon="el-icon-download" @click="download()">
-                            下载模板
-                        </el-button>
-                        <el-upload  :action="action" :headers="headers" :on-progress="onProgress" :show-file-list=false
-                            accept=".xls,.xlsx" multiple :on-success="onSuccess" :on-error="onError"
-                            :on-change="onChange" style="float: right">
-                            <el-button type="success" size="mini" icon="el-icon-upload">上传数据</el-button>
-                        </el-upload>
-                    </template>
-                </avue-crud>
-            </span>
-            <span slot="footer" class="dialog-footer">
-                <el-button @click="excelBox = false" size="mini">取 消</el-button>
-                <el-button type="primary" @click="importData" size="mini">导 入</el-button>
-            </span>
-        </el-dialog>
-    </div>
+  <div>
+    <el-dialog title="导入数据" append-to-body :visible.sync="excelBox" width="60%" :close-on-click-modal="false" v-dialog-drag>
+      <span>
+        <avue-crud v-if="excelBox" :data="data" :option="option" :table-loading="loading" :cell-style="cellStyle" @selection-change="selectionChange">
+          <template v-if="!(type == 5 || type == 6)" slot="menuLeft" slot-scope="{ size }">
+            <el-button type="primary" size="mini" icon="el-icon-download" @click="download()">
+              下载模板
+            </el-button>
+            <el-upload
+              :action="action"
+              :headers="headers"
+              :on-progress="onProgress"
+              :show-file-list="false"
+              accept=".xls,.xlsx"
+              multiple
+              :on-success="onSuccess"
+              :on-error="onError"
+              :on-change="onChange"
+              style="float: right"
+            >
+              <el-button type="success" size="mini" icon="el-icon-upload">上传数据</el-button>
+            </el-upload>
+          </template>
+        </avue-crud>
+      </span>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="excelBox = false" size="mini">取 消</el-button>
+        <el-button type="primary" @click="importData" size="mini">导 入</el-button>
+      </span>
+    </el-dialog>
+  </div>
 </template>
 
 <script>
 import { getDicinit } from "@/api/dicSelect/index";
 import { getToken } from "@/util/auth";
 export default {
-    data() {
-        return {
-            loading: false,
-            headers: { "Blade-Auth": 'Bearer ' + getToken() },
-            action: null,
-            excelBox: false,
-            data: [],
-            selectionList: [],
-            option: {
-                height: 500,
-                border: true,
-                align: 'center',
-                menu: false,
-                addBtn: false,
-                refreshBtn: false,
-                columnBtn: false,
-                stripe: true,
-                tip: false,
-                selection: true,
-                column: [
-                    {
-                        label: '放箱号',
-                        prop: 'containerNumber',
-                        overHidden: true,
-                    },
-                    {
-                        label: '箱号',
-                        prop: 'boxCode',
-                        overHidden: true,
-                    },
-                    {
-                        label: '箱型',
-                        prop: 'boxType',
-                        overHidden: true,
-                    },
-                    {
-                        label: '港口',
-                        prop: 'portName',
-                        overHidden: true,
-                    },
-                    {
-                        label: '场站',
-                        prop: 'stationName',
-                        overHidden: true,
-                    },
-                    {
-                        label: '提单号',
-                        prop: 'mblno',
-                        overHidden: true,
-                    },
-                    {
-                        label: '箱动态',
-                        prop: 'boxStatus',
-                        overHidden: true,
-                    },
-                    {
-                        label: '动态日期',
-                        prop: 'boxStatusDate',
-                        overHidden: true,
-                        width: 100,
-                        type: "date",
-                        format: 'yyyy-MM-dd',
-                        valueFormat: 'yyyy-MM-dd'
-                    },
-                    // {
-                    //     label: '单据号',
-                    //     prop: 'billNo',
-                    //     overHidden: true,
-                    // },
-                    {
-                        label: '结果',
-                        prop: 'result',
-                        overHidden: true,
-                    },
-                    {
-                        label: '原因',
-                        prop: 'reason',
-                        overHidden: true,
-                    }
-                ]
-            },
-            url: null,
-            type: null
-        };
+  data() {
+    return {
+      loading: false,
+      headers: { "Blade-Auth": "Bearer " + getToken() },
+      action: null,
+      excelBox: false,
+      data: [],
+      selectionList: [],
+      option: {
+        height: 500,
+        border: true,
+        align: "center",
+        menu: false,
+        addBtn: false,
+        refreshBtn: false,
+        columnBtn: false,
+        stripe: true,
+        tip: false,
+        selection: true,
+        column: [
+          {
+            label: "放箱号",
+            prop: "containerNumber",
+            overHidden: true
+          },
+          {
+            label: "箱号",
+            prop: "boxCode",
+            overHidden: true
+          },
+          {
+            label: "箱型",
+            prop: "boxType",
+            overHidden: true
+          },
+          {
+            label: "港口",
+            prop: "portName",
+            overHidden: true
+          },
+          {
+            label: "场站",
+            prop: "stationName",
+            overHidden: true
+          },
+          {
+            label: "提单号",
+            prop: "mblno",
+            overHidden: true
+          },
+          {
+            label: "箱动态",
+            prop: "boxStatus",
+            overHidden: true
+          },
+          {
+            label: "动态日期",
+            prop: "boxStatusDate",
+            overHidden: true,
+            width: 130,
+            type: "date",
+            format: "yyyy-MM-dd HH:mm:ss",
+            valueFormat: "yyyy-MM-dd HH:mm:ss"
+          },
+          // {
+          //     label: '单据号',
+          //     prop: 'billNo',
+          //     overHidden: true,
+          // },
+          {
+            label: "结果",
+            prop: "result",
+            overHidden: true
+          },
+          {
+            label: "原因",
+            prop: "reason",
+            overHidden: true
+          }
+        ]
+      },
+      url: null,
+      type: null
+    };
+  },
+  created() {},
+  methods: {
+    //去重判断
+    mergeAndDeduplicate(arr1, arr2) {
+      // 合并两个数组
+      const combined = [...arr1, ...arr2];
+      // 使用Map来存储唯一对象(基于id和name)
+      const uniqueMap = new Map();
+      combined.forEach(item => {
+        // 创建一个唯一的键值对
+        const key = `${item.containerNumber}-${item.boxCode}`;
+        if (!uniqueMap.has(key)) {
+          // 添加到Map中,确保唯一性
+          uniqueMap.set(key, item);
+        }
+      });
+      // 从Map转换回数组
+      return Array.from(uniqueMap.values());
+    },
+    //文件上传时的钩子
+    onProgress(event, file, fileList) {
+      this.loading = true;
+    },
+    //文件上传成功时的钩子
+    onSuccess(res, file) {
+      this.data = this.mergeAndDeduplicate(this.data, res.data);
+      this.$message.success("上传成功");
+      this.loading = false;
     },
-    created() { },
-    methods: {
-        //去重判断
-        mergeAndDeduplicate(arr1, arr2) {
-            // 合并两个数组
-            const combined = [...arr1, ...arr2];
-            // 使用Map来存储唯一对象(基于id和name)
-            const uniqueMap = new Map();
-            combined.forEach(item => {
-                // 创建一个唯一的键值对
-                const key = `${item.containerNumber}-${item.boxCode}`;
-                if (!uniqueMap.has(key)) {
-                    // 添加到Map中,确保唯一性
-                    uniqueMap.set(key, item);
-                }
-            });
-            // 从Map转换回数组
-            return Array.from(uniqueMap.values());
-        },
-        //文件上传时的钩子
-        onProgress(event, file, fileList) {
-            this.loading = true
-        },
-        //文件上传成功时的钩子
-        onSuccess(res, file) {
-            this.data = this.mergeAndDeduplicate(this.data, res.data)
-            this.$message.success('上传成功');
-            this.loading = false
-        },
-        //文件上传失败时的钩子
-        onError(err, file, fileList) {
-            let errorMsg = err.toString();
-            errorMsg = errorMsg.replace('Error:', '')
-            errorMsg = JSON.parse(errorMsg)
-            this.$message.error(errorMsg.msg);
-            this.loading = false
-        },
-        //上传成功和上传失败时都会被调用
-        onChange(file, fileList) {
-            // if (file.status == "fail") {
-            //     this.$message.error("上传失败");
-            // }
-        },
-        // //上传文件之前的钩子
-        // beforeUpload(file) {
+    //文件上传失败时的钩子
+    onError(err, file, fileList) {
+      let errorMsg = err.toString();
+      errorMsg = errorMsg.replace("Error:", "");
+      errorMsg = JSON.parse(errorMsg);
+      this.$message.error(errorMsg.msg);
+      this.loading = false;
+    },
+    //上传成功和上传失败时都会被调用
+    onChange(file, fileList) {
+      // if (file.status == "fail") {
+      //     this.$message.error("上传失败");
+      // }
+    },
+    // //上传文件之前的钩子
+    // beforeUpload(file) {
 
-        // },
-        openDialog(type, list) {
-            this.data = []
-            this.selectionList = []
-            this.excelBox = true
-            if (type == 1) {
-                this.action = '/api/blade-los/boxPool/emptyContainerEntryAnalysis'
-                this.url = '/blade-los/boxPool/emptyContainerEntry'
-            }
-            if (type == 2) {
-                this.action = '/api/blade-los/boxPool/emptyContainerAppearanceAnalysis'
-                this.url = '/blade-los/boxPool/emptyContainerAppearance'
-            }
-            if (type == 3) {
-                this.action = '/api/blade-los/boxPool/giveAnEncoreAnalysis'
-                this.url = '/blade-los/boxPool/giveAnEncore'
-            }
-            if (type == 4) {
-                this.action = '/api/blade-los/boxPool/returnEmptyAnalysis'
-                this.url = '/blade-los/boxPool/returnEmpty'
-            }
-            if (type == 5) {
-                this.data=list
-              this.url = '/blade-los/boxPool/emptyContainerEntry'
-            }
-            if (type == 6) {
-                this.data=list
-                this.url = '/blade-los/boxPool/emptyContainerAppearance'
-            }
-            this.type = type
-        },
-        download() {
-            if (this.type == 1) {
-                window.open(`/api/blade-los/boxPool/emptyContainerEntry/template?${this.website.tokenHeader}=${getToken()}`);
-            }
-            if (this.type == 2) {
-                window.open(`/api/blade-los/boxPool/emptyContainerAppearance/template?${this.website.tokenHeader}=${getToken()}`);
-            }
-            if (this.type == 3 || this.type == 4) {
-                window.open(`/api/blade-los/boxPool/giveAnEncore/template?${this.website.tokenHeader}=${getToken()}`);
-            }
-        },
-        selectionChange(list) {
-            this.selectionList = list
-        },
-        importData() {
-            if (this.data.length == 0) {
-                return this.$message.error("请上传数据");
-            }
-            if (this.selectionList.length == 0) {
-                return this.$message.error("请选择数据");
-            }
-            this.loading = true
-            getDicinit('POST', this.url, this.selectionList).then(res => {
-                this.excelBox = false
-                this.$emit('refreshData')
-            }).finally(() => {
-                this.loading = false;
-            })
-        },
-        cellStyle({ row, column, rowIndex, columnIndex }) {
-            if (row.result == '失败') {
-                return {
-                    color: '#F56C6C',
-                }
-            } else {
-                return {
-                    color: '##67C23A',
-                }
-            }
-        }
+    // },
+    openDialog(type, list) {
+      this.data = [];
+      this.selectionList = [];
+      this.excelBox = true;
+      if (type == 1) {
+        this.action = "/api/blade-los/boxPool/emptyContainerEntryAnalysis";
+        this.url = "/blade-los/boxPool/emptyContainerEntry";
+      }
+      if (type == 2) {
+        this.action = "/api/blade-los/boxPool/emptyContainerAppearanceAnalysis";
+        this.url = "/blade-los/boxPool/emptyContainerAppearance";
+      }
+      if (type == 3) {
+        this.action = "/api/blade-los/boxPool/giveAnEncoreAnalysis";
+        this.url = "/blade-los/boxPool/giveAnEncore";
+      }
+      if (type == 4) {
+        this.action = "/api/blade-los/boxPool/returnEmptyAnalysis";
+        this.url = "/blade-los/boxPool/returnEmpty";
+      }
+      if (type == 5) {
+        this.data = list;
+        this.url = "/blade-los/boxPool/emptyContainerEntry";
+      }
+      if (type == 6) {
+        this.data = list;
+        this.url = "/blade-los/boxPool/emptyContainerAppearance";
+      }
+      this.type = type;
+    },
+    download() {
+      if (this.type == 1) {
+        window.open(`/api/blade-los/boxPool/emptyContainerEntry/template?${this.website.tokenHeader}=${getToken()}`);
+      }
+      if (this.type == 2) {
+        window.open(`/api/blade-los/boxPool/emptyContainerAppearance/template?${this.website.tokenHeader}=${getToken()}`);
+      }
+      if (this.type == 3 || this.type == 4) {
+        window.open(`/api/blade-los/boxPool/giveAnEncore/template?${this.website.tokenHeader}=${getToken()}`);
+      }
+    },
+    selectionChange(list) {
+      this.selectionList = list;
+    },
+    importData() {
+      if (this.data.length == 0) {
+        return this.$message.error("请上传数据");
+      }
+      if (this.selectionList.length == 0) {
+        return this.$message.error("请选择数据");
+      }
+      this.loading = true;
+      getDicinit("POST", this.url, this.selectionList)
+        .then(res => {
+          this.excelBox = false;
+          this.$emit("refreshData");
+        })
+        .finally(() => {
+          this.loading = false;
+        });
+    },
+    cellStyle({ row, column, rowIndex, columnIndex }) {
+      if (row.result == "失败") {
+        return {
+          color: "#F56C6C"
+        };
+      } else {
+        return {
+          color: "##67C23A"
+        };
+      }
     }
-}
-
+  }
+};
 </script>
 
 <style lang="scss" scoped>
 ::v-deep .el-dialog__body {
-    padding: 10px 8px !important;
+  padding: 10px 8px !important;
 }
-</style>
+</style>

+ 236 - 228
src/views/boxManagement/exitRecord/components/importModule.vue

@@ -1,243 +1,251 @@
 <template>
-    <div>
-        <el-dialog title="导入数据" append-to-body :visible.sync="excelBox" width="60%" :close-on-click-modal="false"
-            v-dialog-drag>
-            <span>
-                <avue-crud v-if="excelBox" :data="data" :option="option" :table-loading="loading"
-                    :cell-style="cellStyle" @selection-change="selectionChange">
-                    <template v-if="!(type==5||type==6)"  slot="menuLeft" slot-scope="{size}">
-                        <el-button  type="primary" size="mini" icon="el-icon-download" @click="download()">
-                            下载模板
-                        </el-button>
-                        <el-upload  :action="action" :headers="headers" :on-progress="onProgress" :show-file-list=false
-                            accept=".xls,.xlsx" multiple :on-success="onSuccess" :on-error="onError"
-                            :on-change="onChange" style="float: right">
-                            <el-button type="success" size="mini" icon="el-icon-upload">上传数据</el-button>
-                        </el-upload>
-                    </template>
-                </avue-crud>
-            </span>
-            <span slot="footer" class="dialog-footer">
-                <el-button @click="excelBox = false" size="mini">取 消</el-button>
-                <el-button type="primary" @click="importData" size="mini">导 入</el-button>
-            </span>
-        </el-dialog>
-    </div>
+  <div>
+    <el-dialog title="导入数据" append-to-body :visible.sync="excelBox" width="60%" :close-on-click-modal="false" v-dialog-drag>
+      <span>
+        <avue-crud v-if="excelBox" :data="data" :option="option" :table-loading="loading" :cell-style="cellStyle" @selection-change="selectionChange">
+          <template v-if="!(type == 5 || type == 6)" slot="menuLeft" slot-scope="{ size }">
+            <el-button type="primary" size="mini" icon="el-icon-download" @click="download()">
+              下载模板
+            </el-button>
+            <el-upload
+              :action="action"
+              :headers="headers"
+              :on-progress="onProgress"
+              :show-file-list="false"
+              accept=".xls,.xlsx"
+              multiple
+              :on-success="onSuccess"
+              :on-error="onError"
+              :on-change="onChange"
+              style="float: right"
+            >
+              <el-button type="success" size="mini" icon="el-icon-upload">上传数据</el-button>
+            </el-upload>
+          </template>
+        </avue-crud>
+      </span>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="excelBox = false" size="mini">取 消</el-button>
+        <el-button type="primary" @click="importData" size="mini">导 入</el-button>
+      </span>
+    </el-dialog>
+  </div>
 </template>
 
 <script>
 import { getDicinit } from "@/api/dicSelect/index";
 import { getToken } from "@/util/auth";
 export default {
-    data() {
-        return {
-            loading: false,
-            headers: { "Blade-Auth": 'Bearer ' + getToken() },
-            action: null,
-            excelBox: false,
-            data: [],
-            selectionList: [],
-            option: {
-                height: 500,
-                border: true,
-                align: 'center',
-                menu: false,
-                addBtn: false,
-                refreshBtn: false,
-                columnBtn: false,
-                stripe: true,
-                tip: false,
-                selection: true,
-                column: [
-                    {
-                        label: '放箱号',
-                        prop: 'containerNumber',
-                        overHidden: true,
-                    },
-                    {
-                        label: '箱号',
-                        prop: 'boxCode',
-                        overHidden: true,
-                    },
-                    {
-                        label: '箱型',
-                        prop: 'boxType',
-                        overHidden: true,
-                    },
-                    {
-                        label: '港口',
-                        prop: 'portName',
-                        overHidden: true,
-                    },
-                    {
-                        label: '场站',
-                        prop: 'stationName',
-                        overHidden: true,
-                    },
-                    {
-                        label: '提单号',
-                        prop: 'mblno',
-                        overHidden: true,
-                    },
-                    {
-                        label: '箱动态',
-                        prop: 'boxStatus',
-                        overHidden: true,
-                    },
-                    {
-                        label: '动态日期',
-                        prop: 'boxStatusDate',
-                        overHidden: true,
-                        width: 100,
-                        type: "date",
-                        format: 'yyyy-MM-dd',
-                        valueFormat: 'yyyy-MM-dd'
-                    },
-                    // {
-                    //     label: '单据号',
-                    //     prop: 'billNo',
-                    //     overHidden: true,
-                    // },
-                    {
-                        label: '结果',
-                        prop: 'result',
-                        overHidden: true,
-                    },
-                    {
-                        label: '原因',
-                        prop: 'reason',
-                        overHidden: true,
-                    }
-                ]
-            },
-            url: null,
-            type: null
-        };
+  data() {
+    return {
+      loading: false,
+      headers: { "Blade-Auth": "Bearer " + getToken() },
+      action: null,
+      excelBox: false,
+      data: [],
+      selectionList: [],
+      option: {
+        height: 500,
+        border: true,
+        align: "center",
+        menu: false,
+        addBtn: false,
+        refreshBtn: false,
+        columnBtn: false,
+        stripe: true,
+        tip: false,
+        selection: true,
+        column: [
+          {
+            label: "放箱号",
+            prop: "containerNumber",
+            overHidden: true
+          },
+          {
+            label: "箱号",
+            prop: "boxCode",
+            overHidden: true
+          },
+          {
+            label: "箱型",
+            prop: "boxType",
+            overHidden: true
+          },
+          {
+            label: "港口",
+            prop: "portName",
+            overHidden: true
+          },
+          {
+            label: "场站",
+            prop: "stationName",
+            overHidden: true
+          },
+          {
+            label: "提单号",
+            prop: "mblno",
+            overHidden: true
+          },
+          {
+            label: "箱动态",
+            prop: "boxStatus",
+            overHidden: true
+          },
+          {
+            label: "动态日期",
+            prop: "boxStatusDate",
+            overHidden: true,
+            width: 130,
+            type: "date",
+            format: "yyyy-MM-dd HH:mm:ss",
+            valueFormat: "yyyy-MM-dd HH:mm:ss"
+          },
+          // {
+          //     label: '单据号',
+          //     prop: 'billNo',
+          //     overHidden: true,
+          // },
+          {
+            label: "结果",
+            prop: "result",
+            overHidden: true
+          },
+          {
+            label: "原因",
+            prop: "reason",
+            overHidden: true
+          }
+        ]
+      },
+      url: null,
+      type: null
+    };
+  },
+  created() {},
+  methods: {
+    //去重判断
+    mergeAndDeduplicate(arr1, arr2) {
+      // 合并两个数组
+      const combined = [...arr1, ...arr2];
+      // 使用Map来存储唯一对象(基于id和name)
+      const uniqueMap = new Map();
+      combined.forEach(item => {
+        // 创建一个唯一的键值对
+        const key = `${item.containerNumber}-${item.boxCode}`;
+        if (!uniqueMap.has(key)) {
+          // 添加到Map中,确保唯一性
+          uniqueMap.set(key, item);
+        }
+      });
+      // 从Map转换回数组
+      return Array.from(uniqueMap.values());
+    },
+    //文件上传时的钩子
+    onProgress(event, file, fileList) {
+      this.loading = true;
+    },
+    //文件上传成功时的钩子
+    onSuccess(res, file) {
+      this.data = this.mergeAndDeduplicate(this.data, res.data);
+      this.$message.success("上传成功");
+      this.loading = false;
     },
-    created() { },
-    methods: {
-        //去重判断
-        mergeAndDeduplicate(arr1, arr2) {
-            // 合并两个数组
-            const combined = [...arr1, ...arr2];
-            // 使用Map来存储唯一对象(基于id和name)
-            const uniqueMap = new Map();
-            combined.forEach(item => {
-                // 创建一个唯一的键值对
-                const key = `${item.containerNumber}-${item.boxCode}`;
-                if (!uniqueMap.has(key)) {
-                    // 添加到Map中,确保唯一性
-                    uniqueMap.set(key, item);
-                }
-            });
-            // 从Map转换回数组
-            return Array.from(uniqueMap.values());
-        },
-        //文件上传时的钩子
-        onProgress(event, file, fileList) {
-            this.loading = true
-        },
-        //文件上传成功时的钩子
-        onSuccess(res, file) {
-            this.data = this.mergeAndDeduplicate(this.data, res.data)
-            this.$message.success('上传成功');
-            this.loading = false
-        },
-        //文件上传失败时的钩子
-        onError(err, file, fileList) {
-            let errorMsg = err.toString();
-            errorMsg = errorMsg.replace('Error:', '')
-            errorMsg = JSON.parse(errorMsg)
-            this.$message.error(errorMsg.msg);
-            this.loading = false
-        },
-        //上传成功和上传失败时都会被调用
-        onChange(file, fileList) {
-            // if (file.status == "fail") {
-            //     this.$message.error("上传失败");
-            // }
-        },
-        // //上传文件之前的钩子
-        // beforeUpload(file) {
+    //文件上传失败时的钩子
+    onError(err, file, fileList) {
+      let errorMsg = err.toString();
+      errorMsg = errorMsg.replace("Error:", "");
+      errorMsg = JSON.parse(errorMsg);
+      this.$message.error(errorMsg.msg);
+      this.loading = false;
+    },
+    //上传成功和上传失败时都会被调用
+    onChange(file, fileList) {
+      // if (file.status == "fail") {
+      //     this.$message.error("上传失败");
+      // }
+    },
+    // //上传文件之前的钩子
+    // beforeUpload(file) {
 
-        // },
-        openDialog(type, list) {
-            this.data = []
-            this.selectionList = []
-            this.excelBox = true
-            if (type == 1) {
-                this.action = '/api/blade-los/boxPool/emptyContainerEntryAnalysis'
-                this.url = '/blade-los/boxPool/emptyContainerEntry'
-            }
-            if (type == 2) {
-                this.action = '/api/blade-los/boxPool/emptyContainerAppearanceAnalysis'
-                this.url = '/blade-los/boxPool/emptyContainerAppearance'
-            }
-            if (type == 3) {
-                this.action = '/api/blade-los/boxPool/giveAnEncoreAnalysis'
-                this.url = '/blade-los/boxPool/giveAnEncore'
-            }
-            if (type == 4) {
-                this.action = '/api/blade-los/boxPool/returnEmptyAnalysis'
-                this.url = '/blade-los/boxPool/returnEmpty'
-            }
-            if (type == 5) {
-                this.data=list
-              this.url = '/blade-los/boxPool/emptyContainerEntry'
-            }
-            if (type == 6) {
-                this.data=list
-                this.url = '/blade-los/boxPool/emptyContainerAppearance'
-            }
-            this.type = type
-        },
-        download() {
-            if (this.type == 1) {
-                window.open(`/api/blade-los/boxPool/emptyContainerEntry/template?${this.website.tokenHeader}=${getToken()}`);
-            }
-            if (this.type == 2) {
-                window.open(`/api/blade-los/boxPool/emptyContainerAppearance/template?${this.website.tokenHeader}=${getToken()}`);
-            }
-            if (this.type == 3 || this.type == 4) {
-                window.open(`/api/blade-los/boxPool/giveAnEncore/template?${this.website.tokenHeader}=${getToken()}`);
-            }
-        },
-        selectionChange(list) {
-            this.selectionList = list
-        },
-        importData() {
-            if (this.data.length == 0) {
-                return this.$message.error("请上传数据");
-            }
-            if (this.selectionList.length == 0) {
-                return this.$message.error("请选择数据");
-            }
-            this.loading = true
-            getDicinit('POST', this.url, this.selectionList).then(res => {
-                this.excelBox = false
-                this.$emit('refreshData')
-            }).finally(() => {
-                this.loading = false;
-            })
-        },
-        cellStyle({ row, column, rowIndex, columnIndex }) {
-            if (row.result == '失败') {
-                return {
-                    color: '#F56C6C',
-                }
-            } else {
-                return {
-                    color: '##67C23A',
-                }
-            }
-        }
+    // },
+    openDialog(type, list) {
+      this.data = [];
+      this.selectionList = [];
+      this.excelBox = true;
+      if (type == 1) {
+        this.action = "/api/blade-los/boxPool/emptyContainerEntryAnalysis";
+        this.url = "/blade-los/boxPool/emptyContainerEntry";
+      }
+      if (type == 2) {
+        this.action = "/api/blade-los/boxPool/emptyContainerAppearanceAnalysis";
+        this.url = "/blade-los/boxPool/emptyContainerAppearance";
+      }
+      if (type == 3) {
+        this.action = "/api/blade-los/boxPool/giveAnEncoreAnalysis";
+        this.url = "/blade-los/boxPool/giveAnEncore";
+      }
+      if (type == 4) {
+        this.action = "/api/blade-los/boxPool/returnEmptyAnalysis";
+        this.url = "/blade-los/boxPool/returnEmpty";
+      }
+      if (type == 5) {
+        this.data = list;
+        this.url = "/blade-los/boxPool/emptyContainerEntry";
+      }
+      if (type == 6) {
+        this.data = list;
+        this.url = "/blade-los/boxPool/emptyContainerAppearance";
+      }
+      this.type = type;
+    },
+    download() {
+      if (this.type == 1) {
+        window.open(`/api/blade-los/boxPool/emptyContainerEntry/template?${this.website.tokenHeader}=${getToken()}`);
+      }
+      if (this.type == 2) {
+        window.open(`/api/blade-los/boxPool/emptyContainerAppearance/template?${this.website.tokenHeader}=${getToken()}`);
+      }
+      if (this.type == 3 || this.type == 4) {
+        window.open(`/api/blade-los/boxPool/giveAnEncore/template?${this.website.tokenHeader}=${getToken()}`);
+      }
+    },
+    selectionChange(list) {
+      this.selectionList = list;
+    },
+    importData() {
+      if (this.data.length == 0) {
+        return this.$message.error("请上传数据");
+      }
+      if (this.selectionList.length == 0) {
+        return this.$message.error("请选择数据");
+      }
+      this.loading = true;
+      getDicinit("POST", this.url, this.selectionList)
+        .then(res => {
+          this.excelBox = false;
+          this.$emit("refreshData");
+        })
+        .finally(() => {
+          this.loading = false;
+        });
+    },
+    cellStyle({ row, column, rowIndex, columnIndex }) {
+      if (row.result == "失败") {
+        return {
+          color: "#F56C6C"
+        };
+      } else {
+        return {
+          color: "##67C23A"
+        };
+      }
     }
-}
-
+  }
+};
 </script>
 
 <style lang="scss" scoped>
 ::v-deep .el-dialog__body {
-    padding: 10px 8px !important;
+  padding: 10px 8px !important;
 }
-</style>
+</style>

+ 20 - 6
src/views/iosBasicData/SeafreightExportF/bills/assembly/DocumentCenter.vue

@@ -416,7 +416,8 @@ export default {
       addShow: false,
       mttachedGoodsdesc: 15,
       mttachedMark: 15,
-      mttachedCntry: 3
+      mttachedCntry: 3,
+      amendmentFee: 0
     };
   },
   props: {
@@ -456,6 +457,11 @@ export default {
         this.mttachedCntry = res.data.data;
       }
     });
+    isProcurement({ param: "amendment.fee" }).then(res => {
+      if (res.data.data) {
+        this.amendmentFee = res.data.data;
+      }
+    });
     // this.reportsListfun()
   },
   methods: {
@@ -751,11 +757,19 @@ export default {
           });
         } else {
           this.$message.success("操作成功");
-          if (this.compareDates(this.assemblyForm.cyTrailerTime)) {
-            generateAmendmentFee({ id: this.assemblyForm.id }).then(res => {
-              this.$emit("billsDetailfun");
-            });
-          }
+          // if (this.compareDates(this.assemblyForm.cyTrailerTime)) {
+          //   if (this.amendmentFee > 0) {
+          //     this.$confirm(`此单据已超过接单时间,将会产生${this.amendmentFee}元的改单费,是否生成`, "提示", {
+          //       confirmButtonText: "确定",
+          //       cancelButtonText: "取消",
+          //       type: "warning"
+          //     }).then(() => {
+          //       generateAmendmentFee({ id: this.assemblyForm.id }).then(res => {
+          //         this.$emit("billsDetailfun");
+          //       });
+          //     });
+          //   }
+          // }
           this.reportslogListfun(this.documentPage, { ...this.query, reportsCode: res.data.data.reportsCode });
           // this.editData = {};
           this.documentForm = JSON.parse(res.data.data.printContent).data;

+ 80 - 73
src/views/iosBasicData/SeafreightExportF/bills/assembly/EntrustmentLnformation.vue

@@ -1920,6 +1920,7 @@
         <el-button type="primary" @click="dgVisible = false">确 定</el-button>
       </span>
     </el-dialog>
+    <fix-etd ref="fixEtd" @getUpdate="getUpdate"></fix-etd>
   </div>
 </template>
 
@@ -1956,6 +1957,7 @@ import TreeSelect from "@/components/iosbasic-data/TreeSelect.vue";
 import { verifyData, updateVerifyData } from "@/api/iosBasicData/bills";
 import { submit } from "@/api/iosBasicData/sailingSchedule.js";
 import { dateFormat } from "@/util/date";
+import fixEtd from "./components/fixEtd.vue";
 export default {
   props: {
     detailData: {
@@ -1979,7 +1981,7 @@ export default {
       default: false
     }
   },
-  components: { TreeSelect, bcorps, SearchQuery, precontainers, bcorpstypedefine, dicSelect },
+  components: { TreeSelect, bcorps, SearchQuery, precontainers, bcorpstypedefine, dicSelect, fixEtd },
   data() {
     return {
       issueAtData: [],
@@ -2340,42 +2342,43 @@ export default {
                   });
                 } else {
                   if (dateFormat(new Date(res.data.data.etd), "yyyy-MM-dd") != this.assemblyForm.etd) {
-                    this.$confirm(
-                      `船期表中 ${res.data.data.vesselCnName} ${res.data.data.voyageNo} ETD为:${dateFormat(
-                        new Date(res.data.data.etd),
-                        "yyyy-MM-dd"
-                      )}<br/>当前单据 ${this.assemblyForm.vesselCnName} ${this.assemblyForm.voyageNo} ETD为:${this.assemblyForm.etd}`,
-                      "提示",
-                      {
-                        confirmButtonText: "当前单据ETD覆盖船期",
-                        cancelButtonText: "用船期覆盖当前单据ETD",
-                        dangerouslyUseHTMLString: true
-                      }
-                    )
-                      .then(() => {
-                        let updateObj = {
-                          ...obj,
-                          id: res.data.data.id
-                        };
+                    // this.$confirm(
+                    //   `船期表中 ${res.data.data.vesselCnName} ${res.data.data.voyageNo} ETD为:${dateFormat(
+                    //     new Date(res.data.data.etd),
+                    //     "yyyy-MM-dd"
+                    //   )}<br/>当前单据 ${this.assemblyForm.vesselCnName} ${this.assemblyForm.voyageNo} ETD为:${this.assemblyForm.etd}`,
+                    //   "提示",
+                    //   {
+                    //     confirmButtonText: "当前单据ETD覆盖船期",
+                    //     cancelButtonText: "用船期覆盖当前单据ETD",
+                    //     dangerouslyUseHTMLString: true
+                    //   }
+                    // )
+                    //   .then(() => {
+                    //     let updateObj = {
+                    //       ...obj,
+                    //       id: res.data.data.id
+                    //     };
 
-                        const loading = this.$loading({
-                          lock: true,
-                          text: "加载中",
-                          spinner: "el-icon-loading",
-                          background: "rgba(255,255,255,0.7)"
-                        });
-                        updateVerifyData(updateObj)
-                          .then(res => {
-                            this.etdSubmit(0);
-                          })
-                          .finally(() => {
-                            loading.close();
-                          });
-                      })
-                      .catch(() => {
-                        this.assemblyForm.etd = dateFormat(new Date(res.data.data.etd), "yyyy-MM-dd");
-                        this.etdSubmit(1);
-                      });
+                    //     const loading = this.$loading({
+                    //       lock: true,
+                    //       text: "加载中",
+                    //       spinner: "el-icon-loading",
+                    //       background: "rgba(255,255,255,0.7)"
+                    //     });
+                    //     updateVerifyData(updateObj)
+                    //       .then(res => {
+                    //         this.etdSubmit(0);
+                    //       })
+                    //       .finally(() => {
+                    //         loading.close();
+                    //       });
+                    //   })
+                    //   .catch(() => {
+                    //     this.assemblyForm.etd = dateFormat(new Date(res.data.data.etd), "yyyy-MM-dd");
+                    //     this.etdSubmit(1);
+                    //   });
+                    this.$refs.fixEtd.openDialog(this.assemblyForm, res.data.data, 1);
                   } else {
                     this.etdSubmit(1);
                   }
@@ -2417,42 +2420,38 @@ export default {
                   });
                 } else {
                   if (dateFormat(new Date(res.data.data.etd), "yyyy-MM-dd") != this.assemblyForm.etd) {
-                    this.$confirm(
-                      `船期表中 ${res.data.data.vesselCnName} ${res.data.data.voyageNo} ETD为:${dateFormat(
-                        new Date(res.data.data.etd),
-                        "yyyy-MM-dd"
-                      )}<br/>当前单据 ${this.assemblyForm.vesselCnName} ${this.assemblyForm.voyageNo} ETD为:${this.assemblyForm.etd}`,
-                      "提示",
-                      {
-                        confirmButtonText: "当前单据ETD覆盖船期",
-                        cancelButtonText: "用船期覆盖当前单据ETD",
-                        dangerouslyUseHTMLString: true
-                      }
-                    )
-                      .then(() => {
-                        let updateObj = {
-                          ...obj,
-                          id: res.data.data.id
-                        };
-
-                        const loading = this.$loading({
-                          lock: true,
-                          text: "加载中",
-                          spinner: "el-icon-loading",
-                          background: "rgba(255,255,255,0.7)"
-                        });
-                        updateVerifyData(updateObj)
-                          .then(res => {
-                            this.etdSubmit(0);
-                          })
-                          .finally(() => {
-                            loading.close();
-                          });
-                      })
-                      .catch(() => {
-                        this.assemblyForm.etd = dateFormat(new Date(res.data.data.etd), "yyyy-MM-dd");
-                        this.etdSubmit(0);
-                      });
+                    // this.$confirm(
+                    //   `船期表中 ${res.data.data.vesselCnName} ${res.data.data.voyageNo} ETD为:${dateFormat(
+                    //     new Date(res.data.data.etd),
+                    //     "yyyy-MM-dd"
+                    //   )}<br/>当前单据 ${this.assemblyForm.vesselCnName} ${this.assemblyForm.voyageNo} ETD为:${this.assemblyForm.etd}`,
+                    //   "提示",
+                    //   {
+                    //     confirmButtonText: "当前单据ETD覆盖船期",
+                    //     cancelButtonText: "用船期覆盖当前单据ETD",
+                    //     dangerouslyUseHTMLString: true
+                    //   }
+                    // )
+                    //   .then(() => {
+                    //     const loading = this.$loading({
+                    //       lock: true,
+                    //       text: "加载中",
+                    //       spinner: "el-icon-loading",
+                    //       background: "rgba(255,255,255,0.7)"
+                    //     });
+                    //     updateVerifyData(updateObj)
+                    //       .then(res => {
+                    //         this.etdSubmit(0);
+                    //       })
+                    //       .finally(() => {
+                    //         loading.close();
+                    //       });
+                    //   })
+                    //   .catch(() => {
+                    //     this.assemblyForm.etd = dateFormat(new Date(res.data.data.etd), "yyyy-MM-dd");
+                    //     this.etdSubmit(0);
+                    //   });
+                    this.$refs.fixEtd.openDialog(this.assemblyForm, res.data.data, 0);
                   } else {
                     this.etdSubmit(0);
                   }
@@ -2466,6 +2465,15 @@ export default {
           });
       }
     },
+    getUpdate(obj, type, etdType) {
+      if (etdType == 1||etdType == 3) {
+       this.etdSubmit(type);
+      }
+      if (etdType == 2) {
+        this.assemblyForm.etd = dateFormat(new Date(obj.etd), "yyyy-MM-dd");
+       this.etdSubmit(type);
+      }
+    },
     etdSubmit(type) {
       let obj = {};
       obj = {
@@ -2473,7 +2481,6 @@ export default {
         type: type,
         billId: this.assemblyForm.id
       };
-      console.log(obj);
       synchronizationExchangeRate(obj).then(res => {
         this.billsDetailfun();
       });

+ 93 - 0
src/views/iosBasicData/SeafreightExportF/bills/assembly/components/fixEtd.vue

@@ -0,0 +1,93 @@
+<template>
+  <div>
+    <el-dialog
+      title="提示"
+      :visible.sync="dialogVisible"
+      append-to-body
+      width="450px"
+      top="40vh"
+      :before-close="handleClose"
+      :close-on-click-modal="false"
+    >
+      <span>
+        <div>船期表中 {{ this.resForm.vesselCnName }} {{ this.resForm.voyageNo }} ETD为:{{ this.resForm.etd }}</div>
+        <div>当前单据 {{ this.form.vesselCnName }} {{ this.form.voyageNo }} ETD为:{{ this.form.etd }}</div>
+      </span>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="submit(3)" size="mini">保留</el-button>
+        <el-button type="success" @click="submit(2)" size="mini">用船期覆盖当前单据ETD</el-button>
+        <el-button type="primary" @click="submit(1)" size="mini">当前单据ETD覆盖船期</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { updateVerifyData } from "@/api/iosBasicData/bills";
+import { dateFormat } from "@/util/date";
+export default {
+  props: {},
+  data() {
+    return {
+      dialogVisible: false,
+      form: {},
+      resForm: {},
+      type: null
+    };
+  },
+  created() {},
+  methods: {
+    openDialog(form, obj, type) {
+      this.form = {};
+      this.resForm = {};
+      this.type = null;
+      obj.etd = dateFormat(new Date(obj.etd), "yyyy-MM-dd");
+      this.form = form;
+      this.resForm = obj;
+      this.type = type;
+      this.dialogVisible = true;
+    },
+    submit(type) {
+      if (type == 1) {
+        let obj = {
+          branchId: this.form.branchId,
+          branchName: this.form.branchName,
+          vesselId: this.form.vesselId,
+          voyageNo: this.form.voyageNo,
+          polId: this.form.polId,
+          etd: this.form.etd + " 00:00:00",
+          id: this.resForm.id
+        };
+        const loading = this.$loading({
+          lock: true,
+          text: "加载中",
+          spinner: "el-icon-loading",
+          background: "rgba(255,255,255,0.7)"
+        });
+        updateVerifyData(obj)
+          .then(res => {
+            this.$emit("getUpdate", this.resForm, this.type, type);
+            this.dialogVisible = false;
+          })
+          .finally(() => {
+            loading.close();
+          });
+      }
+      if (type == 2) {
+        this.$emit("getUpdate", this.resForm, this.type, type);
+        this.dialogVisible = false;
+      }
+      if (type == 3) {
+        this.$emit("getUpdate", this.resForm, this.type, type);
+        this.dialogVisible = false;
+      }
+    }
+  }
+};
+</script>
+
+<style scoped>
+::v-deep .el-dialog .el-dialog__body {
+  padding: 10px 20px;
+}
+</style>

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

@@ -2834,78 +2834,7 @@ export default {
           //   .catch(() => {
 
           //   });
-          if (this.form.vesselId && this.form.voyageNo && this.form.polId) {
-            let obj = {
-              branchId: this.form.branchId,
-              branchName: this.form.branchName,
-              vesselId: this.form.vesselId,
-              voyageNo: this.form.voyageNo,
-              polId: this.form.polId,
-              etd: this.form.etd + " 00:00:00"
-            };
-            verifyData(obj).then(res => {
-              if (!res.data.data) {
-                let saveObj = {
-                  branchId: this.form.branchId,
-                  branchName: this.form.branchName,
-                  vesselId: this.form.vesselId,
-                  vesselCnName: this.form.vesselCnName,
-                  vesselEnName: this.form.vesselEnName,
-                  voyageNo: this.form.voyageNo,
-                  etd: this.form.etd + " 00:00:00",
-                  polId: this.form.polId,
-                  polCode: this.form.polCode,
-                  polEnName: this.form.polEnName,
-                  polCnName: this.form.polCnName
-                };
-                submit(saveObj).then(res => {
-                  this.billsSubmitfun(status);
-                });
-              } else {
-                if (dateFormat(new Date(res.data.data.etd), "yyyy-MM-dd") != this.form.etd) {
-                  this.$confirm(
-                    `船期表中 ${res.data.data.vesselCnName} ${res.data.data.voyageNo} ETD为:${dateFormat(
-                      new Date(res.data.data.etd),
-                      "yyyy-MM-dd"
-                    )}<br/>当前单据 ${this.form.vesselCnName} ${this.form.voyageNo} ETD为:${this.form.etd}`,
-                    "提示",
-                    {
-                      confirmButtonText: "当前单据ETD覆盖船期",
-                      cancelButtonText: "用船期覆盖当前单据ETD",
-                      dangerouslyUseHTMLString: true
-                    }
-                  )
-                    .then(() => {
-                      const loading = this.$loading({
-                        lock: true,
-                        text: "加载中",
-                        spinner: "el-icon-loading",
-                        background: "rgba(255,255,255,0.7)"
-                      });
-                      let updateObj = {
-                        ...obj,
-                        id: res.data.data.id
-                      };
-                      updateVerifyData(updateObj)
-                        .then(res => {
-                          this.etdSubmit(0);
-                        })
-                        .finally(() => {
-                          loading.close();
-                        });
-                    })
-                    .catch(() => {
-                      this.form.etd = dateFormat(new Date(res.data.data.etd), "yyyy-MM-dd");
-                      this.billsSubmitfun(status);
-                    });
-                } else {
-                  this.billsSubmitfun(status);
-                }
-              }
-            });
-          } else {
-            this.billsSubmitfun(status);
-          }
+          this.billsSubmitfun(status);
         }
       });
     },

+ 1 - 1
src/views/iosBasicData/businessCenter/customerLetter/detailsPage.vue

@@ -65,7 +65,7 @@
           >订舱驳回
         </el-button>
         <el-dropdown style="line-height: 0" v-if="importTemplate == 1">
-          <el-button size="small" type="warning" style="margin-left: 8px" :disabled="form.status > 0 || showLock">
+          <el-button size="small" type="warning" style="margin-left: 8px" :disabled="form.status > 0||form.issueStatus == 1 || showLock">
             导入样本<i class="el-icon-arrow-down el-icon--right"></i>
           </el-button>
           <el-dropdown-menu slot="dropdown">

+ 0 - 4
src/views/iosBasicData/financialManagement/PaymentApplication/index.vue

@@ -138,7 +138,6 @@ export default {
             width: "120",
             overHidden: true,
             hide: true,
-            showColumn: false,
             type: "select",
             filterable: true,
             dicUrl: "/api/blade-system/dept/lazy-list",
@@ -155,7 +154,6 @@ export default {
             width: "120",
             overHidden: true,
             hide: true,
-            showColumn: false
           },
           {
             label: "付费对象",
@@ -542,7 +540,6 @@ export default {
         }
         if (item.prop == "branchName") {
           item.hide = false;
-          item.showColumn = true;
         }
       });
     }
@@ -863,7 +860,6 @@ export default {
           }
           if (item.prop == "branchName") {
             item.hide = false;
-            item.showColumn = true;
           }
         });
       }

+ 0 - 4
src/views/iosBasicData/financialManagement/computationCenter/index.vue

@@ -170,7 +170,6 @@ export default {
             width: "120",
             overHidden: true,
             hide: true,
-            showColumn: false,
             type: "select",
             filterable: true,
             dicUrl: "/api/blade-system/dept/lazy-list",
@@ -187,7 +186,6 @@ export default {
             width: "120",
             overHidden: true,
             hide: true,
-            showColumn: false
           },
           {
             label: "往来单位",
@@ -522,7 +520,6 @@ export default {
         }
         if (item.prop == "branchName") {
           item.hide = false;
-          item.showColumn = true;
         }
       });
     }
@@ -1060,7 +1057,6 @@ export default {
           }
           if (item.prop == "branchName") {
             item.hide = false;
-            item.showColumn = true;
           }
         });
       }

+ 0 - 4
src/views/iosBasicData/financialManagement/fininvoicesApplyfor/index.vue

@@ -132,7 +132,6 @@ export default {
             width: "120",
             overHidden: true,
             hide: true,
-            showColumn: false,
             type: "select",
             filterable: true,
             dicUrl: "/api/blade-system/dept/lazy-list",
@@ -149,7 +148,6 @@ export default {
             width: "120",
             overHidden: true,
             hide: true,
-            showColumn: false
           },
           {
             label: "客户名称",
@@ -718,7 +716,6 @@ export default {
         }
         if (item.prop == "branchName") {
           item.hide = false;
-          item.showColumn = true;
         }
       });
     }
@@ -977,7 +974,6 @@ export default {
           }
           if (item.prop == "branchName") {
             item.hide = false;
-            item.showColumn = true;
           }
         });
       }

+ 0 - 8
src/views/iosBasicData/financialManagement/fininvoicesOutput/index.vue

@@ -207,7 +207,6 @@ export default {
             width: "120",
             overHidden: true,
             hide: true,
-            showColumn: false,
             type: "select",
             filterable: true,
             dicUrl: "/api/blade-system/dept/lazy-list",
@@ -224,7 +223,6 @@ export default {
             width: "120",
             overHidden: true,
             hide: true,
-            showColumn: false
           },
           {
             label: "客户名称",
@@ -414,7 +412,6 @@ export default {
             width: "120",
             overHidden: true,
             hide: true,
-            showColumn: false,
             type: "select",
             filterable: true,
             dicUrl: "/api/blade-system/dept/lazy-list",
@@ -431,7 +428,6 @@ export default {
             width: "120",
             overHidden: true,
             hide: true,
-            showColumn: false
           },
           {
             label: "客户名称",
@@ -1028,7 +1024,6 @@ export default {
         }
         if (item.prop == "branchName") {
           item.hide = false;
-          item.showColumn = true;
         }
       });
       this.applyOption.searchMenuSpan = 12;
@@ -1038,7 +1033,6 @@ export default {
         }
         if (item.prop == "branchName") {
           item.hide = false;
-          item.showColumn = true;
         }
       });
     }
@@ -1472,7 +1466,6 @@ export default {
           }
           if (item.prop == "branchName") {
             item.hide = false;
-            item.showColumn = true;
           }
         });
         this.applyOption.searchMenuSpan = 12;
@@ -1482,7 +1475,6 @@ export default {
           }
           if (item.prop == "branchName") {
             item.hide = false;
-            item.showColumn = true;
           }
         });
       }

+ 0 - 4
src/views/iosBasicData/financialManagement/finstlbills/index.vue

@@ -97,7 +97,6 @@ export default {
             width: "120",
             overHidden: true,
             hide: true,
-            showColumn: false,
             type: "select",
             filterable: true,
             dicUrl: "/api/blade-system/dept/lazy-list",
@@ -114,7 +113,6 @@ export default {
             width: "120",
             overHidden: true,
             hide: true,
-            showColumn: false,
           },
           {
             label: "客户名称",
@@ -615,7 +613,6 @@ export default {
         }
         if (item.prop == 'branchName') {
           item.hide = false
-          item.showColumn = true
         }
       })
     }
@@ -913,7 +910,6 @@ export default {
           }
           if (item.prop == 'branchName') {
             item.hide = false
-            item.showColumn = true
           }
         })
       }

+ 18 - 3
src/views/iosBasicData/sailingSchedule/index.vue

@@ -34,6 +34,7 @@
         </el-button> -->
         <el-button type="text" size="small" @click.stop="rowEdit(row, index)">编辑 </el-button>
         <el-button type="text" size="small" @click.stop="rowDel(row, index)">删除 </el-button>
+        <el-button type="text" size="small" @click.stop="rowSync(row, index)">同步 </el-button>
       </template>
       <template slot="branchNameForm" slot-scope="{ type, disabled }">
         <dic-select
@@ -99,7 +100,7 @@
 </template>
 
 <script>
-import { getList, getDetail, submit, remove } from "@/api/iosBasicData/sailingSchedule.js";
+import { getList, getDetail, submit, remove, synchronizationEtdData } from "@/api/iosBasicData/sailingSchedule.js";
 import dicSelect from "@/components/dicSelect/main";
 import { getToken } from "@/util/auth";
 
@@ -165,14 +166,14 @@ export default {
         searchMenuSpan: 24,
         border: true,
         index: true,
-        addBtn:false,
+        addBtn: false,
         viewBtn: false,
         delBtn: false,
         editBtn: false,
         selection: true,
         dialogDrag: true,
         dialogClickModal: false,
-        menuWidth: 100,
+        menuWidth: 120,
         column: [
           {
             label: "所属公司",
@@ -433,6 +434,20 @@ export default {
       };
       this.$refs.crud.rowAdd();
     },
+    rowSync(row, index) {
+      this.$confirm("此操作将同步海运出口的ETD, 是否继续?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        synchronizationEtdData({ id: row.id }).then(res => {
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+        });
+      });
+    },
     // 编辑
     rowEdit(row, index) {
       getDetail({ id: row.id }).then(res => {