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

1.进出场记录 新加撤销 删除 查看记录模块
2.箱轨迹 新加查看记录
3.海运进出口 配箱信息 新加查看记录
4.海运出口 选择放箱号 新加提示
5.箱管调箱 放箱号信息 新加检索条件
6.海运出口 审核通过 允许查看放箱号

qukaidi 3 дней назад
Родитель
Сommit
40619c1ca7

+ 12 - 0
src/api/boxManagement/boxTrack/index.js

@@ -105,4 +105,16 @@ export const updateTrajectoryStatus = (params) => {
     method: 'get',
     params: params
   })
+}
+//操作记录
+export const getRecordlist = (current, size, params) => {
+  return request({
+    url: '/api/blade-los/globaloperationlog/list',
+    method: 'get',
+    params: {
+      ...params,
+      current,
+      size,
+    }
+  })
 }

+ 28 - 0
src/api/boxManagement/record/index.js

@@ -50,4 +50,32 @@ export const emptyContainerEntryFtp = (params) => {
     method: 'get',
     params: params
   })
+}
+//明细删除  
+export const itemRemove = (params) => {
+  return request({
+    url: '/api/blade-los/boxdynamicsrecorditems/remove',
+    method: 'post',
+    params: params
+  })
+}
+//撤销数据  
+export const revokeSynchronous = (params) => {
+  return request({
+    url: '/api/blade-los/boxdynamicsrecord/revokeSynchronous',
+    method: 'get',
+    params: params
+  })
+}
+//操作记录
+export const getRecordlist = (current, size, params) => {
+  return request({
+    url: '/api/blade-los/globaloperationlog/list',
+    method: 'get',
+    params: {
+      ...params,
+      current,
+      size,
+    }
+  })
 }

+ 13 - 0
src/api/iosBasicData/containers.js

@@ -155,3 +155,16 @@ export const verifyData = (params) => {
     params: params
   })
 }
+
+//操作记录
+export const getRecordlist = (current, size, params) => {
+  return request({
+    url: '/api/blade-los/globaloperationlog/list',
+    method: 'get',
+    params: {
+      ...params,
+      current,
+      size,
+    }
+  })
+}

+ 4 - 1
src/lang/en.js

@@ -331,6 +331,9 @@ export default {
     deleteCtnrList: 'deleteCtnrList',
     clearancePieceWeightScale:'clearancePieceWeightScale',
     clearanceAllPieceWeightScale:'clearanceAllPieceWeightScale',
-    billModify:'billModify'
+    billModify:'billModify',
+    today:'today',
+    tomorrow:'tomorrow',
+    week:'week',
   }
 }

+ 4 - 0
src/lang/zh.js

@@ -179,6 +179,7 @@ export default {
     statusCr:'应付费用审核状态',
     invoiceStatus:'发票状态',
     createTime:'创建时间',
+    updateTime:'修改时间',
     billStatus:'业务状态',
     bookStatus:'订舱状态',
     financeStatus:'财务状态',
@@ -332,5 +333,8 @@ export default {
     clearancePieceWeightScale:'清除件重尺',
     clearanceAllPieceWeightScale:'清除全部件重尺',
     billModify:'提单修改',
+    today:'今天',
+    tomorrow:'明天',
+    week:'一周后',
   }
 }

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

@@ -7,10 +7,12 @@
         :table-loading="loading"
         :data="data"
         ref="crud"
+        :search.sync="query"
         :page.sync="page"
         @current-row-change="handleCurrentRowChange"
-        id="out-table"
         :header-cell-class-name="headerClassName"
+        @search-change="searchChange"
+        @search-reset="searchReset"
         @current-change="currentChange"
         @size-change="sizeChange"
         @on-load="onLoad"
@@ -47,6 +49,9 @@ export default {
         menu: false,
         header: false,
         highlightCurrentRow: true,
+        searchShow: true,
+        searchIndex: 3,
+        searchMenuSpan: 6,
         headr: false,
         column: [
           {
@@ -65,6 +70,7 @@ export default {
             label: "放箱号",
             prop: "containerNumber",
             width: 100,
+            search: true,
             overHidden: true
           },
           {
@@ -131,12 +137,34 @@ export default {
             label: "起运港",
             prop: "polCname",
             width: 90,
+            search: true,
+            type: "select",
+            filterable: true,
+            remote: true,
+            dicUrl: "/api/blade-los/bports/list?status=0&size=5&current=1&cnName={{key}}",
+            props: {
+              label: "cnName",
+              value: "cnName",
+              desc: "code",
+              res: "data.records"
+            },
             overHidden: true
           },
           {
             label: "目的港",
             prop: "podCname",
             width: 90,
+            search: true,
+            type: "select",
+            filterable: true,
+            remote: true,
+            dicUrl: "/api/blade-los/bports/list?status=0&size=5&current=1&code={{key}}",
+            props: {
+              label: "code",
+              value: "code",
+              desc: "code",
+              res: "data.records"
+            },
             overHidden: true
           },
           {
@@ -273,6 +301,16 @@ export default {
     sizeChange(pageSize) {
       this.page.pageSize = pageSize;
     },
+    searchReset() {
+      this.query = this.$options.data().query;
+      this.onLoad(this.page);
+    },
+    // 搜索按钮点击
+    searchChange(params, done) {
+      this.page.currentPage = 1;
+      this.onLoad(this.page, this.query);
+      done();
+    },
     onLoad(page, params = {}) {
       let obj = {};
       obj = {
@@ -297,9 +335,9 @@ export default {
         });
     },
     openDialog(val) {
-      console.log(val);
       this.dialogVisible = true;
       this.quotationObj = null;
+      this.query = {};
       // this.query.containerNumber = val;
     },
     handleCurrentRowChange(val) {

+ 77 - 36
src/views/boxManagement/boxTrack/index.vue

@@ -20,8 +20,12 @@
       >
         <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  size="small" v-if="row.trajectoryStatus == 0" type="text" @click="rowDel(row,index,1)" style="color:#F56C6C;">删除 </el-button>
-          <el-button  size="small" v-if="row.trajectoryStatus == 1" type="text" @click="rowDel(row,index,0)" style="color:#67C23A;">恢复 </el-button>
+          <el-button size="small" v-if="row.trajectoryStatus == 0" type="text" @click="rowDel(row, index, 1)" style="color:#F56C6C;">删除 </el-button>
+          <el-button size="small" v-if="row.trajectoryStatus == 1" type="text" @click="rowDel(row, index, 0)" style="color:#67C23A;">恢复 </el-button>
+          <el-popover placement="left" width="400" trigger="click">
+            <avue-crud :option="recordOption" :data="recordData"></avue-crud>
+            <el-button slot="reference" size="small" type="text" @click="rowRecord(row)" style="margin-left: 6px;">记录</el-button>
+          </el-popover>
         </template>
       </avue-crud>
     </basic-container>
@@ -30,7 +34,7 @@
 </template>
 
 <script>
-import { getList, remove, update,updateTrajectoryStatus } from "@/api/boxManagement/boxTrack/index.js";
+import { getList, remove, update, updateTrajectoryStatus,getRecordlist } from "@/api/boxManagement/boxTrack/index.js";
 import detailsPage from "./detailsPage";
 
 export default {
@@ -43,7 +47,35 @@ export default {
       detailsOpen: false,
       loading: false,
       search: {
-        trajectoryStatus:'0'
+        trajectoryStatus: "0"
+      },
+      recordData: [],
+      recordOption: {
+        align: "center",
+        menu: false,
+        header: false,
+        column: [
+          {
+            label: "操作类型",
+            prop: "operatorType",
+            overHidden: true
+          },
+          {
+            label: "操作内容",
+            prop: "operatorContent",
+            overHidden: true
+          },
+          {
+            label: "操作人",
+            prop: "operatorName",
+            overHidden: true
+          },
+          {
+            label: "操作时间",
+            prop: "operatorDate",
+            overHidden: true
+          }
+        ]
       },
       form: {},
       dataList: [],
@@ -67,7 +99,7 @@ export default {
         height: "auto",
         searchMenuPosition: "right",
         align: "center",
-        menuWidth: 60,
+        menuWidth: 80,
         menu: true,
         searchShow: true,
         searchMenuSpan: 6,
@@ -79,21 +111,21 @@ export default {
           {
             label: "箱号",
             prop: "code",
-            width:100,
+            width: 100,
             overHidden: true,
             search: true
           },
           {
             label: "放箱号",
             prop: "containerNumber",
-            width:120,
+            width: 120,
             overHidden: true,
             search: true
           },
           {
             label: "箱型",
             prop: "boxType",
-            width:60,
+            width: 60,
             overHidden: true
           },
           {
@@ -112,7 +144,7 @@ export default {
           {
             label: "箱动态",
             prop: "boxDynamics",
-            width:80,
+            width: 80,
             search: true,
             type: "select",
             dicUrl: "/api/blade-system/dict-biz/dictionary?code=boxDynamics",
@@ -136,41 +168,41 @@ export default {
             overHidden: true
           },
           {
-            label: '箱好坏',
-            prop: 'boxStatus',
+            label: "箱好坏",
+            prop: "boxStatus",
             width: 80,
-            overHidden: true,
+            overHidden: true
           },
           {
             label: "港口",
             prop: "portCname",
-            width:140,
+            width: 140,
             overHidden: true
           },
           {
             label: "场站",
             prop: "stationCname",
-            width:80,
+            width: 80,
             overHidden: true
           },
           {
             label: "提单号",
             prop: "mblno",
-            width:100,
+            width: 100,
             search: true,
             overHidden: true
           },
           {
             label: "分单号",
             prop: "hblno",
-            width:100,
+            width: 100,
             search: true,
             overHidden: true
           },
           {
             label: "是否还箱",
             prop: "whetherStillBox",
-            width:80,
+            width: 80,
             search: true,
             type: "select",
             dicData: [
@@ -188,25 +220,25 @@ export default {
           {
             label: "船名",
             prop: "shipCname",
-            width:100,
+            width: 100,
             overHidden: true
           },
           {
             label: "航次",
             prop: "voyage",
-            width:80,
+            width: 80,
             overHidden: true
           },
           {
             label: "ETD",
             prop: "etd",
-            width:100,
+            width: 100,
             overHidden: true
           },
           {
             label: "POL堆场",
             prop: "polCyCname",
-            width:100,
+            width: 100,
             overHidden: true
           },
           {
@@ -219,7 +251,7 @@ export default {
             label: "POL提箱进场时间",
             prop: "polPreAppearanceDate",
             width: 140,
-            searchLabelWidth:110,
+            searchLabelWidth: 110,
             search: true,
             searchProp: "entryDateList",
             type: "date",
@@ -233,7 +265,7 @@ export default {
             label: "POL场站空箱出场日期",
             prop: "polStationEmptyContainerExitDate",
             width: 140,
-            searchLabelWidth:140,
+            searchLabelWidth: 140,
             search: true,
             searchProp: "appearDateList",
             type: "date",
@@ -258,7 +290,7 @@ export default {
           {
             label: "ETA",
             prop: "eta",
-            width:100,
+            width: 100,
             overHidden: true
           },
           {
@@ -270,7 +302,7 @@ export default {
           {
             label: "POD场站",
             prop: "podStationCname",
-            width:100,
+            width: 100,
             overHidden: true
           },
           {
@@ -288,9 +320,9 @@ export default {
           {
             label: "状态",
             prop: "trajectoryStatus",
-            width:60,
+            width: 60,
             search: true,
-            searchValue:'0',
+            searchValue: "0",
             type: "select",
             dicData: [
               {
@@ -303,7 +335,7 @@ export default {
               }
             ],
             overHidden: true
-          },
+          }
         ]
       }
     };
@@ -350,14 +382,23 @@ export default {
         });
       });
     },
-    rowDel(row, index,type) {
-      let obj={
-        id:row.id,
-        type:type
-      }
-      updateTrajectoryStatus(obj).then(res=>{
-        this.refreshChange()
-      })
+    rowRecord(row) {
+      this.recordData = [];
+      let obj = {
+        pid: row.id
+      };
+      getRecordlist(1, 50, obj).then(res => {
+        this.recordData = res.data.data.records;
+      });
+    },
+    rowDel(row, index, type) {
+      let obj = {
+        id: row.id,
+        type: type
+      };
+      updateTrajectoryStatus(obj).then(res => {
+        this.refreshChange();
+      });
     },
     searchChange(params, done) {
       done();

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

@@ -1408,7 +1408,7 @@ export default {
           {
             label: "分单号",
             prop: "hblno",
-            width: 100,
+            width: 250,
             overHidden: true
           },
           {

+ 82 - 4
src/views/boxManagement/enterRecord/detailsPage.vue

@@ -52,9 +52,19 @@
           @saveColumn="saveColumn('crud', 'option', 'optionBack', 517)"
         >
           <template slot="menu" slot-scope="{ row, index }">
-            <el-button size="small" type="text" @click="rowEdit(row)" :disabled="row.whetherSynchronous == 1">
+            <el-button size="small" type="text" @click="rowEdit(row)" v-if="row.whetherSynchronous == 0">
               {{ row.$cellEdit ? "保存" : "编辑" }}
             </el-button>
+            <el-button size="small" type="text" @click="rowRevoke(row, index)" v-if="row.whetherSynchronous == 1">
+              撤销
+            </el-button>
+            <el-button size="small" type="text" @click="rowDel(row, index)" v-if="row.srcStatus == 1">
+              删除
+            </el-button>
+            <el-popover placement="left" width="400" trigger="click">
+              <avue-crud :option="recordOption" :data="recordData"></avue-crud>
+              <el-button slot="reference" size="small" type="text" @click="rowRecord(row)" style="margin-left: 6px;">记录</el-button>
+            </el-popover>
           </template>
           <tempalte slot="portCname" slot-scope="{ row, index }">
             <dic-select
@@ -81,7 +91,7 @@
 </template>
 
 <script>
-import { detail, itemSubmit, synchronous } from "@/api/boxManagement/record/index.js";
+import { detail, itemSubmit, synchronous, itemRemove, revokeSynchronous, getRecordlist } from "@/api/boxManagement/record/index.js";
 import dicSelect from "@/components/dicSelect/main";
 import checkSchedule from "@/components/checkH/checkSchedule.vue";
 import businessReports from "@/components/tradeAgency/businessReports.vue";
@@ -99,6 +109,34 @@ export default {
       editButton: false,
       editDisabled: false,
       dataList: [],
+      recordData: [],
+      recordOption: {
+        align: "center",
+        menu: false,
+        header: false,
+        column: [
+          {
+            label: "操作类型",
+            prop: "operatorType",
+            overHidden: true
+          },
+          {
+            label: "操作内容",
+            prop: "operatorContent",
+            overHidden: true
+          },
+          {
+            label: "操作人",
+            prop: "operatorName",
+            overHidden: true
+          },
+          {
+            label: "操作时间",
+            prop: "operatorDate",
+            overHidden: true
+          }
+        ]
+      },
       optionForm: {
         menuBtn: false,
         span: 6,
@@ -143,7 +181,7 @@ export default {
         // height: 'auto',
         maxHeight: 700,
         calcHeight: 30,
-        menuWidth: 60,
+        menuWidth: 110,
         tip: false,
         border: true,
         addBtn: false,
@@ -351,11 +389,51 @@ export default {
         this.$set(row, "$cellEdit", true);
       }
     },
+    rowRecord(row) {
+      this.recordData = [];
+      let obj = {
+        pid: row.id
+      };
+      getRecordlist(1, 50, obj).then(res => {
+        this.recordData = res.data.data.records;
+      });
+    },
+    rowRevoke(row) {
+      this.$confirm("是否撤销数据?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        let obj = {
+          id: this.detailData.id,
+          ids: row.id
+        };
+        revokeSynchronous(obj).then(res => {
+          this.$message.success("操作成功");
+          this.getDetail(this.detailData.id);
+        });
+      });
+    },
+    rowDel(row, index) {
+      this.$confirm("是否删除数据?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        let obj = {
+          ids: row.id
+        };
+        itemRemove(obj).then(res => {
+          this.$message.success("操作成功");
+          this.getDetail(this.detailData.id);
+        });
+      });
+    },
     selectionChange(list) {
       this.selectionList = list;
     },
     getDetail(id) {
-      this.form.id=id
+      this.form.id = id;
       const loading = this.$loading({
         lock: true,
         text: "加载中",

+ 86 - 5
src/views/boxManagement/exitRecord/detailsPage.vue

@@ -52,10 +52,23 @@
           @saveColumn="saveColumn('crud', 'option', 'optionBack', 515)"
         >
           <template slot="menu" slot-scope="{ row, index }">
-            <el-button size="small" type="text" @click="rowEdit(row)" :disabled="row.whetherSynchronous == 1">
+            <el-button size="small" type="text" @click="rowEdit(row)" v-if="row.whetherSynchronous == 0">
               {{ row.$cellEdit ? "保存" : "编辑" }}
             </el-button>
+            <el-button size="small" type="text" @click="rowRevoke(row, index)" v-if="row.whetherSynchronous == 1">
+              撤销
+            </el-button>
+            <el-button size="small" type="text" @click="rowDel(row, index)" v-if="row.srcStatus == 1">
+              删除
+            </el-button>
+            <el-popover placement="left" width="400" trigger="click">
+              <avue-crud :option="recordOption" :data="recordData"></avue-crud>
+              <el-button slot="reference" size="small" type="text" @click="rowRecord(row)" style="margin-left: 6px;">记录</el-button>
+            </el-popover>
           </template>
+          <!-- <template slot="menuLeft">
+            <el-button type="danger" size="small" @click="allClick('撤销')">一键撤销 </el-button>
+          </template> -->
           <tempalte slot="portCname" slot-scope="{ row, index }">
             <dic-select
               v-if="row.$cellEdit"
@@ -81,7 +94,7 @@
 </template>
 
 <script>
-import { detail, itemSubmit, synchronous } from "@/api/boxManagement/record/index.js";
+import { detail, itemSubmit, synchronous, itemRemove, revokeSynchronous, getRecordlist } from "@/api/boxManagement/record/index.js";
 import dicSelect from "@/components/dicSelect/main";
 import checkSchedule from "@/components/checkH/checkSchedule.vue";
 import businessReports from "@/components/tradeAgency/businessReports.vue";
@@ -99,6 +112,34 @@ export default {
       editButton: false,
       editDisabled: false,
       dataList: [],
+      recordData: [],
+      recordOption: {
+        align: "center",
+        menu: false,
+        header: false,
+        column: [
+          {
+            label: "操作类型",
+            prop: "operatorType",
+            overHidden: true
+          },
+          {
+            label: "操作内容",
+            prop: "operatorContent",
+            overHidden: true
+          },
+          {
+            label: "操作人",
+            prop: "operatorName",
+            overHidden: true
+          },
+          {
+            label: "操作时间",
+            prop: "operatorDate",
+            overHidden: true
+          }
+        ]
+      },
       optionForm: {
         menuBtn: false,
         span: 6,
@@ -143,7 +184,7 @@ export default {
         // height: 'auto',
         maxHeight: 700,
         calcHeight: 30,
-        menuWidth: 60,
+        menuWidth: 110,
         tip: false,
         border: true,
         addBtn: false,
@@ -262,7 +303,7 @@ export default {
         ]
       },
       roleName: [],
-      form:{}
+      form: {}
     };
   },
   components: {
@@ -351,11 +392,51 @@ export default {
         this.$set(row, "$cellEdit", true);
       }
     },
+    rowRecord(row) {
+      this.recordData = [];
+      let obj = {
+        pid: row.id
+      };
+      getRecordlist(1, 50, obj).then(res => {
+        this.recordData = res.data.data.records;
+      });
+    },
+    rowRevoke(row) {
+      this.$confirm("是否撤销数据?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        let obj = {
+          id: this.detailData.id,
+          ids: row.id
+        };
+        revokeSynchronous(obj).then(res => {
+          this.$message.success("操作成功");
+          this.getDetail(this.detailData.id);
+        });
+      });
+    },
+    rowDel(row, index) {
+      this.$confirm("是否删除数据?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        let obj = {
+          ids: row.id,
+        };
+        itemRemove(obj).then(res => {
+          this.$message.success("操作成功");
+          this.getDetail(this.detailData.id);
+        });
+      });
+    },
     selectionChange(list) {
       this.selectionList = list;
     },
     getDetail(id) {
-      this.form.id=id
+      this.form.id = id;
       const loading = this.$loading({
         lock: true,
         text: "加载中",

+ 65 - 5
src/views/iosBasicData/SeafreightExportF/bills/assembly/DistributionBox/containers.vue

@@ -135,6 +135,10 @@
             @click.stop="rowDel(scope.row, scope.index)"
             >{{ $t("btn118n.deleted") }}
           </el-button>
+          <el-popover placement="left" width="400" trigger="click">
+            <avue-crud :option="recordOption" :data="recordData"></avue-crud>
+            <el-button slot="reference" size="small" type="text" @click="rowRecord(scope.row)" style="margin-left: 6px;">记录</el-button>
+          </el-popover>
         </template>
         <template slot="cntrTypeCode" slot-scope="{ row, index }">
           <dic-select
@@ -347,7 +351,8 @@ import {
   containersImportBoxNo,
   containersList,
   luHaiTongApiDetail,
-  removeById
+  removeById,
+  getRecordlist
 } from "@/api/iosBasicData/containers";
 import { getAccurate } from "@/api/boxManagement/buyContainer/index.js";
 import { mapGetters } from "vuex";
@@ -385,6 +390,34 @@ export default {
       headers: { "Blade-Auth": "Bearer " + getToken() },
       // 是否禁用
       extendedDisabled: false,
+      recordData: [],
+      recordOption: {
+        align: "center",
+        menu: false,
+        header: false,
+        column: [
+          {
+            label: "操作类型",
+            prop: "operatorType",
+            overHidden: true
+          },
+          {
+            label: "操作内容",
+            prop: "operatorContent",
+            overHidden: true
+          },
+          {
+            label: "操作人",
+            prop: "operatorName",
+            overHidden: true
+          },
+          {
+            label: "操作时间",
+            prop: "operatorDate",
+            overHidden: true
+          }
+        ]
+      },
       // 装货港数据
       polData: [],
       // 附件配置
@@ -442,7 +475,7 @@ export default {
         refreshBtn: false,
         columnBtn: false,
         menu: true,
-        menuWidth: 70,
+        menuWidth: 90,
         summaryText: "合计",
         showSummary: true,
         sumColumnList: [
@@ -583,6 +616,24 @@ export default {
             prop: "podCyTel",
             width: 120,
             overHidden: true
+          },
+          {
+            label: this.$t("sea118n.createTime"),
+            prop: "createTime",
+            width: 150,
+            type: "date",
+            format: "yyyy-MM-dd HH:mm:ss",
+            valueFormat: "yyyy-MM-dd HH:mm:ss",
+            overHidden: true
+          },
+          {
+            label: this.$t("sea118n.updateTime"),
+            prop: "updateTime",
+            width: 150,
+            type: "date",
+            format: "yyyy-MM-dd HH:mm:ss",
+            valueFormat: "yyyy-MM-dd HH:mm:ss",
+            overHidden: true
           }
           // {
           //     label: "MARKS",
@@ -855,7 +906,6 @@ export default {
               this.assemblyForm.quantity = quantitySum;
               this.assemblyForm.grossWeight = grossWeightSum;
               this.assemblyForm.measurement = measurementSum;
-            } else {
             }
             this.extractDialogvisible = false;
             this.$emit("billsAddfun"); // 全都相等直接走大保存
@@ -959,7 +1009,7 @@ export default {
       if (this.assemblyForm.preContainersList.length == 0) {
         return this.$message.error("箱型箱量没数据,不允许新建");
       }
-      if (this.assemblyForm.boxBelongsTo=='SOC'&&this.assemblyForm.billType=='MH'&&this.assemblyForm.billType=='MH'&&this.isOccupyNum) {
+      if (this.assemblyForm.boxBelongsTo == "SOC" && this.assemblyForm.billType == "MH" && this.assemblyForm.billType == "MH" && this.isOccupyNum) {
         if (this.assemblyForm.preContainersList.filter(item => item.containerNumberStatus == "录入").length) {
           return this.$message.error("请先占用放箱号");
         }
@@ -988,7 +1038,7 @@ export default {
         });
         return;
       }
-      if (this.assemblyForm.boxBelongsTo=='SOC'&&this.assemblyForm.billType=='MH'&&this.isOccupyNum) {
+      if (this.assemblyForm.boxBelongsTo == "SOC" && this.assemblyForm.billType == "MH" && this.isOccupyNum) {
         if (this.assemblyForm.preContainersList.filter(item => item.containerNumberStatus == "录入").length) {
           return this.$message.error("请先占用放箱号");
         }
@@ -1292,6 +1342,15 @@ export default {
         }
       );
     },
+    rowRecord(row) {
+      this.recordData = [];
+      let obj = {
+        pid: row.id
+      };
+      getRecordlist(1, 50, obj).then(res => {
+        this.recordData = res.data.data.records;
+      });
+    },
     // 删除
     rowDel(row, index) {
       if (row.id) {
@@ -1317,6 +1376,7 @@ export default {
     // 一键删除
     handleDelete() {
       for (let item of this.assemblyForm.containersList) {
+        if (!item.id) return this.$message.error("明细存在未保存数据,请点击行删除");
         if (item.quantity > 0) return this.$message.error("请先撤销,再删除配箱");
       }
       this.$confirm("确定将全部数据删除?", {

+ 45 - 11
src/views/iosBasicData/SeafreightExportF/bills/assembly/EntrustmentLnformation.vue

@@ -643,7 +643,7 @@
                       :filterable="true"
                       :clearable="true"
                       :remote="true"
-                      :disabled="detailData.seeDisabled||overTime"
+                      :disabled="detailData.seeDisabled || overTime"
                       :buttonIf="false"
                       placeholder="请选择交货地"
                       :forParameter="{ key: 'id', short: 'enName', label: 'code', value: 'enName' }"
@@ -908,7 +908,7 @@
                     size="small"
                     autocomplete="off"
                     min="1"
-                    :disabled="detailData.seeDisabled||overTime"
+                    :disabled="detailData.seeDisabled || overTime"
                     @input="quantityInput"
                     @focus="quantityFocus"
                     clearable
@@ -934,7 +934,7 @@
                     :filterable="true"
                     :clearable="true"
                     :remote="true"
-                    :disabled="detailData.seeDisabled||overTime"
+                    :disabled="detailData.seeDisabled || overTime"
                     :buttonIf="false"
                     placeholder="请选择包装"
                     :forParameter="{ key: 'id', label: 'cnName', value: 'cnName' }"
@@ -959,7 +959,7 @@
                     v-model="assemblyForm.grossWeight"
                     size="small"
                     autocomplete="off"
-                    :disabled="detailData.seeDisabled||overTime"
+                    :disabled="detailData.seeDisabled || overTime"
                     @input="floatingInput($event, 'grossWeight')"
                     @focus="quantityFocus"
                     clearable
@@ -980,7 +980,7 @@
                     v-model="assemblyForm.measurement"
                     size="small"
                     autocomplete="off"
-                    :disabled="detailData.seeDisabled||overTime"
+                    :disabled="detailData.seeDisabled || overTime"
                     @input="floatingInput($event, 'measurement')"
                     @focus="quantityFocus"
                     clearable
@@ -1228,7 +1228,7 @@
                 format="yyyy-MM-dd HH:mm:ss"
                 value-format="yyyy-MM-dd HH:mm:ss"
                 size="small"
-                :disabled="detailData.seeDisabled || (assemblyForm.billType == 'MH' && assemblyForm.masterBillNo > 0)||overTime"
+                :disabled="detailData.seeDisabled || (assemblyForm.billType == 'MH' && assemblyForm.masterBillNo > 0) || overTime"
                 placeholder="请选择船司截单"
                 @change="shippingDate"
               >
@@ -1247,7 +1247,7 @@
                 format="yyyy-MM-dd HH:mm:ss"
                 value-format="yyyy-MM-dd HH:mm:ss"
                 size="small"
-                :disabled="detailData.seeDisabled || (assemblyForm.billType == 'MH' && assemblyForm.masterBillNo > 0)||overTime"
+                :disabled="detailData.seeDisabled || (assemblyForm.billType == 'MH' && assemblyForm.masterBillNo > 0) || overTime"
                 placeholder="请选择我司截单"
               >
               </el-date-picker>
@@ -2058,9 +2058,32 @@ export default {
           // return time.getTime() < Date.now() || time.getTime() > Date.parse(NdayDate(90))
           // 获取前后的45天 Date.parse(NdayDate(45))
           let timeDay = localStorage.getItem("timeFrame") ? localStorage.getItem("timeFrame") : 45;
-          console.log(timeDay, time.getTime() < Date.parse(NdayDate(-timeDay)) || time.getTime() > Date.parse(NdayDate(timeDay - 1)));
           return time.getTime() < Date.parse(NdayDate(-timeDay)) || time.getTime() > Date.parse(NdayDate(timeDay - 1));
-        }
+        },
+        shortcuts: [
+          {
+            text: "today",
+            onClick(picker) {
+              picker.$emit("pick", new Date());
+            }
+          },
+          {
+            text: "tomorrow",
+            onClick(picker) {
+              const date = new Date();
+              date.setTime(date.getTime() + 3600 * 1000 * 24);
+              picker.$emit("pick", date);
+            }
+          },
+          {
+            text: "week",
+            onClick(picker) {
+              const date = new Date();
+              date.setTime(date.getTime() + 3600 * 1000 * 24 * 7);
+              picker.$emit("pick", date);
+            }
+          }
+        ]
       },
       emailhash: emailhash, // 邮箱跳转地址
       foreignAgencyData: [],
@@ -2346,8 +2369,19 @@ export default {
     },
     //ETD监听
     handlePick(val) {
-      this.$set(this.assemblyForm, "actualEtd", this.assemblyForm.actualEtd ? this.assemblyForm.actualEtd : this.assemblyForm.etd);
-      this.$set(this.assemblyForm, "billDate", this.assemblyForm.actualEtd ? this.assemblyForm.actualEtd : this.assemblyForm.etd);
+      if (!this.assemblyForm.actualEtd) {
+        this.$set(this.assemblyForm, "actualEtd", this.assemblyForm.etd);
+        this.$set(this.assemblyForm, "billDate", this.assemblyForm.etd);
+      }
+      if (this.assemblyForm.actualEtd) {
+        const d1 = new Date(this.assemblyForm.etd);
+        const d2 = new Date(this.assemblyForm.actualEtd);
+        if (d2 < d1) {
+          this.$set(this.assemblyForm, "actualEtd", this.assemblyForm.etd);
+          this.$set(this.assemblyForm, "billDate", this.assemblyForm.etd);
+        }
+      }
+
       if (this.assemblyForm.id) {
         this.$confirm("是否同步汇率, 是否继续?", "提示", {
           confirmButtonText: "是",

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

@@ -1,11 +1,10 @@
 <template>
   <div>
     <el-dialog title="配箱信息" :visible.sync="dialogVisible" append-to-body width="60%" :before-close="handleClose">
+      <el-tag size="danger">请手动维护配箱信息多余的箱型!</el-tag>
       <avue-crud v-if="dialogVisible" :option="option" :data="data" ref="crud" id="out-table" :header-cell-class-name="headerClassName">
         <template slot-scope="{ row, index }" slot="menu">
-          <el-button v-if="form.billType != 'MM'" type="text" size="small" @click.stop="rowDel(row, index)"
-            >{{ $t("btn118n.deleted") }}
-          </el-button>
+          <el-button v-if="form.billType != 'MM'" type="text" size="small" @click.stop="rowDel(row, index)">{{ $t("btn118n.deleted") }} </el-button>
         </template>
       </avue-crud>
     </el-dialog>
@@ -139,24 +138,24 @@ export default {
   methods: {
     openDialog(obj, row) {
       this.dialogVisible = true;
-      this.form=obj
-      this.data =this.deepClone(obj.containersList);
+      this.form = obj;
+      this.data = this.deepClone(obj.containersList);
     },
     rowDel(row, index) {
       this.$confirm("确定将选择数据删除?", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(() => {
-          removeById(row.id).then(() => {
-            this.data.splice(index, 1);
-            this.$message({
-              type: "success",
-              message: "操作成功!"
-            });
-            this.$emit("getUpdate");
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        removeById(row.id).then(() => {
+          this.data.splice(index, 1);
+          this.$message({
+            type: "success",
+            message: "操作成功!"
           });
+          this.$emit("getUpdate");
         });
+      });
     },
     //自定义列保存
     async saveColumn(ref, option, optionBack, code) {

+ 19 - 5
src/views/iosBasicData/SeafreightExportF/bills/assembly/EntrustmentLnformation/precontainers.vue

@@ -73,7 +73,6 @@
           size="mini"
           type="text"
           @click.stop="rowView(row)"
-          :disabled="seeDisabled"
         >
           查看放箱号
         </el-button>
@@ -170,7 +169,7 @@
               placeholder="请输入 箱量"
               size="small"
               :controls="false"
-              :disabled="boxForm.containerNumberStatus == '录入'"
+              :disabled="boxForm.containerNumberStatus == '录入'||seeDisabled"
             ></el-input-number>
           </template>
           <template slot="polStationCnName">
@@ -183,6 +182,7 @@
               :filterable="true"
               :remote="true"
               dataName="cnName"
+              :disabled="seeDisabled"
               @selectChange="dicChange('polStationCnName', $event)"
             ></dic-select>
           </template>
@@ -196,8 +196,15 @@
           @saveColumn="saveColumnTwo('crud2', 'containerOption', 'containerOptionBack', 488)"
         >
           <template slot="menuLeft" slot-scope="{ size }">
-            <el-button v-if="boxForm.containerNumberStatus == '录入'" type="success" :size="size" @click="getNoPick('录入')">获取放箱号</el-button>
-            <el-button v-if="boxForm.containerNumberStatus == '已选择'" type="success" :size="size" @click="getNoPick('已选择')"
+            <el-button v-if="boxForm.containerNumberStatus == '录入'" type="success" :size="size" @click="getNoPick('录入')" :disabled="seeDisabled"
+              >获取放箱号</el-button
+            >
+            <el-button
+              v-if="boxForm.containerNumberStatus == '已选择'"
+              type="success"
+              :size="size"
+              @click="getNoPick('已选择')"
+              :disabled="seeDisabled"
               >获取放箱号</el-button
             >
           </template>
@@ -220,6 +227,7 @@
               placeholder="请输入占用箱量"
               size="small"
               :controls="false"
+              :disabled="seeDisabled"
               style="width: 100%;"
             ></el-input-number>
             <span v-else>{{ row.occupyNum }}</span>
@@ -233,7 +241,7 @@
       </span>
       <span slot="footer" class="dialog-footer">
         <el-button @click="dialogVisible = false" size="mini">{{ editStatus ? "取 消" : "关 闭" }}</el-button>
-        <el-button v-if="editStatus" type="primary" @click="submit" size="mini">{{
+        <el-button v-if="editStatus" type="primary" @click="submit" size="mini" :disabled="seeDisabled">{{
           boxForm.containerNumberStatus == "录入" ? "确 定" : "修 改"
         }}</el-button>
       </span>
@@ -796,6 +804,12 @@ export default {
             };
             actualOccupyNumUpdate(obj).then(res => {
               this.$message.success("操作成功!");
+              // for(let item of  this.assemblyForm.containersList){
+              //   if(this.boxForm.cntrTypeCode==item.boxType){
+              //         //  return this.$message.error("操作成功!");
+              //         if(item.occupyNum>)
+              //   }
+              // }
               this.dialogVisible = false;
               if (this.oldBoxForm.quantity > this.boxForm.quantity) {
                 this.$refs.boxInfo.openDialog(this.assemblyForm);

+ 193 - 171
src/views/iosBasicData/bcorps/components/mergeCustomers.vue

@@ -1,188 +1,210 @@
 <template>
-    <div>
-        <el-dialog title="提取运价" :visible.sync="dialogVisible" append-to-body width="60%" :before-close="handleClose">
-            <avue-crud v-if="dialogVisible" :option="option" :table-loading="loading" :data="data" ref="crud"
-                @current-row-change="handleCurrentRowChange" id="out-table" :header-cell-class-name="headerClassName"
-                @on-load="onLoad">
-            </avue-crud>
-            <span slot="footer" class="dialog-footer">
-                <el-button @click="dialogVisible = false" size="mini">取 消</el-button>
-                <el-button type="primary" @click="submit" size="mini">导 入</el-button>
-            </span>
-        </el-dialog>
-    </div>
+  <div>
+    <el-dialog title="合并客户" :visible.sync="dialogVisible" append-to-body width="60%" :before-close="handleClose">
+      <avue-crud
+        v-if="dialogVisible"
+        :option="option"
+        :table-loading="loading"
+        :data="data"
+        :page.sync="page"
+        :search.sync="query"
+        ref="crud"
+        @current-row-change="handleCurrentRowChange"
+        id="out-table"
+        :header-cell-class-name="headerClassName"
+        @search-change="searchChange"
+        @search-reset="searchReset"
+        @current-change="currentChange"
+        @size-change="sizeChange"
+        @on-load="onLoad"
+      >
+      </avue-crud>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible = false" size="mini">取 消</el-button>
+        <el-button type="primary" @click="submit" size="mini">合 并</el-button>
+      </span>
+    </el-dialog>
+  </div>
 </template>
 
 <script>
-import { MktSlotQuotation } from "@/api/iosBasicData/bills";
+import { BcorpsList } from "@/api/iosBasicData/bcorps";
+import { status } from "nprogress";
 export default {
-    props: {
+  props: {},
+  data() {
+    return {
+      quotationObj: null,
+      ids: null,
+      data: [],
+      query: {},
+      dialogVisible: false,
+      loading: false,
+      page: {
+        pageSize: 20,
+        currentPage: 1,
+        total: 0,
+        pageSizes: [10, 20, 30, 40, 50, 100, 200, 300, 400, 500]
+      },
+      option: {
+        height: 500,
+        calcHeight: 30,
+        border: true,
+        index: true,
+        addBtn: false,
+        viewBtn: false,
+        delBtn: false,
+        editBtn: false,
+        menu: false,
+        header: false,
+        searchSpan: 8,
+        searchIndex: 2,
+        searchMenuSpan: 16,
+        highlightCurrentRow: true,
+        column: [
+          {
+            label: "客户编号",
+            prop: "code",
+            overHidden: true
+          },
+          {
+            label: "客户简称",
+            prop: "shortName",
+            overHidden: true
+          },
+          {
+            label: "客户名称",
+            prop: "cnName",
+            search: true,
+            overHidden: true
+          },
+          {
+            label: "英文名称",
+            prop: "enName",
+            overHidden: true
+          }
+        ]
+      }
+    };
+  },
+  async created() {
+    // this.option = await this.getColumnData(this.getColumnName(309.6), this.optionBack);
+  },
+  methods: {
+    openDialog(val) {
+      this.dialogVisible = true;
+      this.quotationObj = null;
+      this.page.pageSize = 1;
+      this.page.currentPage = 20;
+      this.page.total = 0;
+      this.query = {};
+      // this.ids = ids
+      // let obj = {
+      //     ...val
+      // }
+      // this.loading = true
+      // MktSlotQuotation(obj).then(res => {
+      //     this.data = res.data.data
+      // }).finally(() => {
+      //     this.loading = false
+      // })
     },
-    data() {
-        return {
-            quotationObj: null,
-            ids: null,
-            data: [],
-            dialogVisible: false,
-            loading: false,
-            option: {
-                height: 500,
-                calcHeight: 30,
-                border: true,
-                index: true,
-                addBtn: false,
-                viewBtn: false,
-                delBtn: false,
-                editBtn: false,
-                menu: false,
-                header: false,
-                highlightCurrentRow: true,
-                column: [
-                    {
-                        label: "船公司",
-                        prop: "actualShippingCompanyCname",
-                        width: "160",
-                        overHidden: true,
-                    },
-                    {
-                        label: "开船日期",
-                        prop: "etd",
-                        width: "160",
-                        overHidden: true,
-                    },
-                    {
-                        label: "起运港",
-                        prop: "polEnName",
-                        width: "160",
-                        overHidden: true,
-                    },
-                    {
-                        label: "目的港",
-                        prop: "podEnName",
-                        width: "160",
-                        overHidden: true,
-                    },
-                    {
-                        label: "20GP",
-                        prop: "gp20",
-                        width: "160",
-                        overHidden: true,
-                    },
-                    {
-                        label: "40GP",
-                        prop: "gp40",
-                        width: "160",
-                        overHidden: true,
-                    },
-                    {
-                        label: "40HC",
-                        prop: "hc40",
-                        width: "160",
-                        overHidden: true,
-                    }
-                ]
-            },
+    handleCurrentRowChange(val) {
+      this.quotationObj = val;
+    },
+    submit() {
+      if (!this.quotationObj) {
+        return this.$message.error("请选择数据");
+      }
+      this.$emit("importData", this.quotationObj);
+      this.dialogVisible = false;
+    },
+    searchReset() {
+      this.query = {};
+      this.onLoad(this.page);
+    },
+    searchChange(params, done) {
+      this.query = params;
+      this.page.currentPage = 1;
+      this.onLoad(this.page, this.query);
+      done();
+    },
+    currentChange(currentPage) {
+      this.page.currentPage = currentPage;
+    },
+    sizeChange(pageSize) {
+      this.page.pageSize = pageSize;
+    },
+    onLoad(page, params = {}) {
+        let obj={
+            ...Object.assign(params, this.query),
+            status:0
         }
+      this.loading = true;
+      BcorpsList(page.currentPage, page.pageSize,obj)
+        .then(res => {
+          this.page.total = res.data.data.total;
+          this.data = res.data.data.records;
+        })
+        .finally(() => {
+          this.loading = false;
+        });
     },
-    async created() {
-        // this.option = await this.getColumnData(this.getColumnName(309.6), this.optionBack);
+    //自定义列保存
+    async saveColumn(ref, option, optionBack, code) {
+      /**
+       * 已定义全局方法,直接使用,saveColumnData保存列数据方法,参数传值(表格名称,当前表格的option数据)
+       * 已定义全局方法,直接使用,getColumnName方法用来获取枚举值,参数根据自己定义的code值获取中文名
+       * 一定要执行异步操作,要等接口成功返回,才能执行下一行代码
+       */
+      const inSave = await this.saveColumnData(this.getColumnName(code), this[option]);
+      if (inSave) {
+        this.$message.success("保存成功");
+        //关闭窗口
+        this.$refs[ref].$refs.dialogColumn.columnBox = false;
+        this.searchReset();
+      }
+    },
+    //自定义列重置
+    async resetColumn(ref, option, optionBack, code) {
+      this[option] = this[optionBack];
+      const inSave = await this.delColumnData(this.getColumnName(code), this[optionBack]);
+      if (inSave) {
+        this.$message.success("重置成功");
+        this.$refs[ref].$refs.dialogColumn.columnBox = false;
+      }
     },
-    methods: {
-        openDialog(val, ids) {
-            this.dialogVisible = true
-            this.quotationObj = null
-            this.ids = ids
-            let obj = {
-                ...val
-            }
-            this.loading = true
-            MktSlotQuotation(obj).then(res => {
-                this.data = res.data.data
-            }).finally(() => {
-                this.loading = false
-            })
-        },
-        handleCurrentRowChange(val) {
-            this.quotationObj = val
-        },
-        submit() {
-            if (!this.quotationObj) {
-                return this.$message.error("请选择数据");
-            }
-            this.$emit('importData', this.quotationObj)
-            // this.$message.success("操作成功");
-            this.dialogVisible = false;
-            // const obj = {
-            //     billsIds: this.ids,
-            //     quotationObj: this.quotationObj
-            // }
-            // const loading = this.$loading({
-            //     lock: true,
-            //     text: '加载中',
-            //     spinner: 'el-icon-loading',
-            //     background: 'rgba(255,255,255,0.7)'
-            // });
-            // quotationImportBatch(obj).then(res => {
-            //     this.$message.success("操作成功");
-            //     this.dialogVisible = false;
-            //     this.$emit('refreshPage')
-            // }).finally(() => {
-            //     loading.close();
-            // })
-        },
-        //自定义列保存
-        async saveColumn(ref, option, optionBack, code) {
-            /**
-             * 已定义全局方法,直接使用,saveColumnData保存列数据方法,参数传值(表格名称,当前表格的option数据)
-             * 已定义全局方法,直接使用,getColumnName方法用来获取枚举值,参数根据自己定义的code值获取中文名
-             * 一定要执行异步操作,要等接口成功返回,才能执行下一行代码
-             */
-            const inSave = await this.saveColumnData(this.getColumnName(code), this[option]);
-            if (inSave) {
-                this.$message.success("保存成功");
-                //关闭窗口
-                this.$refs[ref].$refs.dialogColumn.columnBox = false;
-                this.searchReset()
-            }
-        },
-        //自定义列重置
-        async resetColumn(ref, option, optionBack, code) {
-            this[option] = this[optionBack];
-            const inSave = await this.delColumnData(this.getColumnName(code), this[optionBack]);
-            if (inSave) {
-                this.$message.success("重置成功");
-                this.$refs[ref].$refs.dialogColumn.columnBox = false;
-            }
-        },
-
-        // 更改表格颜色
-        headerClassName(tab) {
-            //颜色间隔
-            let back = ""
-            if (tab.columnIndex >= 0 && tab.column.level === 1) {
-                if (tab.columnIndex % 2 === 0) {
-                    back = "back-one"
-                } else if (tab.columnIndex % 2 === 1) {
-                    back = "back-two"
-                }
-            }
-            return back;
-        },
 
+    // 更改表格颜色
+    headerClassName(tab) {
+      //颜色间隔
+      let back = "";
+      if (tab.columnIndex >= 0 && tab.column.level === 1) {
+        if (tab.columnIndex % 2 === 0) {
+          back = "back-one";
+        } else if (tab.columnIndex % 2 === 1) {
+          back = "back-two";
+        }
+      }
+      return back;
     }
-}
+  }
+};
 </script>
 
-<style scoped>
-::v-deep#out-table .back-one {
-    background: #ecf5ff !important;
-    text-align: center;
-    padding: 4px 0;
+<style lang="scss" 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;
+::v-deep #out-table .back-two {
+  background: #ecf5ff !important;
+  text-align: center;
+  padding: 4px 0;
+}
+::v-deep .el-dialog .el-dialog__body {
+  padding: 0px 10px !important;
 }
 </style>

+ 5 - 2
src/views/iosBasicData/bcorps/detailsPage.vue

@@ -1348,6 +1348,7 @@
       </span>
     </el-dialog>
     <dictbiz-dialog ref="dictbiz" title="添加客户来源" code="corp_Source" parentId="1866359762266894337" @closed="getAllWorkDicts"> </dictbiz-dialog>
+    <merge-customers ref="merge"></merge-customers>
   </dev>
 </template>
 <script>
@@ -1384,6 +1385,7 @@ import blines from "@/views/iosBasicData/blines/index.vue";
 import { selectListLos, selectListLos2 } from "@/api/approval/processConfig";
 import losaudit from "@/views/wel/components/losAssembly/losaudit.vue";
 import dicSelect from "@/components/dicSelect/main";
+import mergeCustomers from "./components/mergeCustomers.vue"
 export default {
   components: {
     SearchQuery,
@@ -1391,7 +1393,8 @@ export default {
     user,
     rateManagement,
     blines,
-    dicSelect
+    dicSelect,
+    mergeCustomers
   },
   props: {
     detailData: {
@@ -1736,7 +1739,7 @@ export default {
   mounted() {},
   methods: {
     merge(){
-
+      this.$refs.merge.openDialog()
     },
     fix() {
       this.$DialogForm.show({

+ 2 - 2
src/views/iosBasicData/bcorps/index.vue

@@ -1120,11 +1120,11 @@ export default {
 </script>
 
 <style lang="scss" scoped>
-::v-deep#out-table .back-one {
+::v-deep #out-table .back-one {
   background: #ecf5ff !important;
 }
 
-::v-deep#out-table .back-two {
+::v-deep #out-table .back-two {
   background: #ecf5ff !important;
 }