Sfoglia il codice sorgente

1.集装箱管理中,放箱号启用的时候,目的港口需要多选
2.箱池动态 修改列名称
3.集装箱管理中,费用请核之前,都可以编辑
4.自动校验箱号是否正确修改提示方式
5.集装箱管理 行号一栏固定 页内默认十行
6.公共组件 多选的时候通过tooltip显示出来
7.转单后,分公司,海运进口,允许录入费用,根据角色,显示应收应付
8.海运进出口 结算单位不同,不允许合并打印,应收应付
9.成本中心 SOC COC 明细 禁止使用后 商务中心 和 提取成本不可以使用
10.审批数据 查看海运进口点查看 404

Qukatie 6 mesi fa
parent
commit
bda74184bd

+ 28 - 12
src/api/iosBasicData/costcenter/coc.js

@@ -130,19 +130,35 @@ export const getBcorpsList = (current, size, params) => {
         }
         }
     })
     })
 }
 }
-  // 批量单据请核
-  export const checkBillsBatch = (data) => {
+// 批量单据请核
+export const checkBillsBatch = (data) => {
     return request({
     return request({
-      url: '/api/blade-los/routecost/batchSubmission',
-      method: 'get',
-      params: data
+        url: '/api/blade-los/routecost/batchSubmission',
+        method: 'get',
+        params: data
     })
     })
-  }
-    // 批量撤销单据请核
-  export const batchRevoke = (data) => {
+}
+// 批量撤销单据请核
+export const batchRevoke = (data) => {
     return request({
     return request({
-      url: '/api/blade-los/routecost/batchRevoke',
-      method: 'get',
-      params: data
+        url: '/api/blade-los/routecost/batchRevoke',
+        method: 'get',
+        params: data
+    })
+}
+// 批量禁用
+export const batchDisable = (params) => {
+    return request({
+        url: '/api//blade-los/routecostitem/batchDisable',
+        method: 'get',
+        params: params
+    })
+}
+// 批量撤销禁用
+export const batchRevokeDisable = (params) => {
+    return request({
+        url: '/api/blade-los/routecostitem/batchRevokeDisable',
+        method: 'get',
+        params: params
     })
     })
-  }
+}

+ 17 - 1
src/api/iosBasicData/costcenter/soc.js

@@ -145,4 +145,20 @@ export const topList = (data) => {
       method: 'get',
       method: 'get',
       params: data
       params: data
     })
     })
-  }
+  }
+  // 批量禁用
+export const batchDisable = (params) => {
+  return request({
+    url: '/api//blade-los/routecostitem/batchDisable',
+    method: 'get',
+    params: params
+  })
+}
+// 批量撤销禁用
+export const batchRevokeDisable = (params) => {
+  return request({
+    url: '/api/blade-los/routecostitem/batchRevokeDisable',
+    method: 'get',
+    params: params
+  })
+}

+ 3 - 1
src/components/dicSelect/main.vue

@@ -2,6 +2,7 @@
     <!-- 中文下拉 -->
     <!-- 中文下拉 -->
     <div>
     <div>
         <div style="display: flex;">
         <div style="display: flex;">
+            <el-tooltip effect="dark" :disabled="!collapseTags" :content="value" placement="top">
             <el-select ref="mySelect" style="width:100%" v-model="value" @input="inputChange"
             <el-select ref="mySelect" style="width:100%" v-model="value" @input="inputChange"
                 :placeholder="'请选择 ' + placeholder" @change="selectChange" @clear="clear" :clearable="clearable"
                 :placeholder="'请选择 ' + placeholder" @change="selectChange" @clear="clear" :clearable="clearable"
                 :multiple="multiple" :filterable="filterable" :remote="remote" :remote-method="remoteMethod"
                 :multiple="multiple" :filterable="filterable" :remote="remote" :remote-method="remoteMethod"
@@ -21,6 +22,7 @@
                         }}</span>
                         }}</span>
                 </el-option>
                 </el-option>
             </el-select>
             </el-select>
+            </el-tooltip>
             <el-button v-if="searchShow" icon="el-icon-search" size="small" :disabled="disabled" @click="open()" />
             <el-button v-if="searchShow" icon="el-icon-search" size="small" :disabled="disabled" @click="open()" />
         </div>
         </div>
         <el-dialog title="客户" :visible.sync="dialogVisible" width="70%" :before-close="false" @closed="closed"
         <el-dialog title="客户" :visible.sync="dialogVisible" width="70%" :before-close="false" @closed="closed"
@@ -334,7 +336,7 @@ export default {
         visibleChange(status) {
         visibleChange(status) {
             if (status) {
             if (status) {
                 if (this.options.length == 0) {
                 if (this.options.length == 0) {
-                    this.data={}
+                    this.data = {}
                     this.getDicData()
                     this.getDicData()
                 }
                 }
 
 

+ 2 - 0
src/components/extractionCost/main.vue

@@ -96,11 +96,13 @@ export default {
                 index: true,
                 index: true,
                 tip: false,
                 tip: false,
                 // selection: true,
                 // selection: true,
+                align:'center',
                 highlightCurrentRow: true,
                 highlightCurrentRow: true,
                 column: [
                 column: [
                     {
                     {
                         label: '系统号',
                         label: '系统号',
                         prop: 'businessNo',
                         prop: 'businessNo',
+                        width:140,
                         overHidden: true,
                         overHidden: true,
                     },
                     },
                     {
                     {

+ 17 - 13
src/components/tradeAgency/businessReportsJK.vue

@@ -3,10 +3,10 @@
     <el-dialog class="dialogClass" append-to-body title="预览报表" :visible.sync="previewDialog" width="60%"
     <el-dialog class="dialogClass" append-to-body title="预览报表" :visible.sync="previewDialog" width="60%"
       :close-on-click-modal="false" :destroy-on-close="true" :close-on-press-escape="false" v-dialog-drag>
       :close-on-click-modal="false" :destroy-on-close="true" :close-on-press-escape="false" v-dialog-drag>
       <el-row>
       <el-row>
-        <el-col :span="selecList.length?0:5">
+        <el-col :span="(selecList.length||!treeType) ? 0 : 5">
           <el-tree :data="typeList" :props="defaultProps" @node-click="handleNodeClick"></el-tree>
           <el-tree :data="typeList" :props="defaultProps" @node-click="handleNodeClick"></el-tree>
         </el-col>
         </el-col>
-        <el-col :span="selecList.length?24:19">
+        <el-col :span="(selecList.length||!treeType) ? 24 : 19">
           <avue-crud :option="selecList.length || type == 1 ? optionBack : optionPrinting" :table-loading="loading"
           <avue-crud :option="selecList.length || type == 1 ? optionBack : optionPrinting" :table-loading="loading"
             :data="data" :page.sync="page" :permission="permissionList" v-model="form" ref="crud" id="out-table"
             :data="data" :page.sync="page" :permission="permissionList" v-model="form" ref="crud" id="out-table"
             :header-cell-class-name="headerClassName" :search.sync="query" @search-change="searchChange"
             :header-cell-class-name="headerClassName" :search.sync="query" @search-change="searchChange"
@@ -80,6 +80,10 @@ export default {
       type: Number,
       type: Number,
       default: 0
       default: 0
     },
     },
+    treeType: {
+      type: Boolean,
+      default: true,
+    },
   },
   },
   data() {
   data() {
     return {
     return {
@@ -225,7 +229,7 @@ export default {
       },
       },
       data: [],
       data: [],
       url: null,
       url: null,
-      groupName:null
+      groupName: null
     };
     };
   },
   },
   async created() {
   async created() {
@@ -256,12 +260,12 @@ export default {
     }
     }
   },
   },
   methods: {
   methods: {
-    handleNodeClick(row){
+    handleNodeClick(row) {
       console.log(row)
       console.log(row)
-      this.groupName=row.cnName
+      this.groupName = row.cnName
     },
     },
     openDialog() {
     openDialog() {
-      this.groupName=null
+      this.groupName = null
       this.previewDialog = true
       this.previewDialog = true
       this.onLoad(this.page, this.query);
       this.onLoad(this.page, this.query);
     },
     },
@@ -628,13 +632,13 @@ export default {
         if (!this.groupName) return this.$message.error('请选择报表类型');
         if (!this.groupName) return this.$message.error('请选择报表类型');
         this.typeList.forEach(e => {
         this.typeList.forEach(e => {
           obj = {
           obj = {
-              billId: this.id,
-              reportCode: e.classifyCode,
-              groupCode: this.groupName,
-              type: this.businessValue,
-              corpIds: row.id,
-              curCode: row.curCode,
-            }
+            billId: this.id,
+            reportCode: e.classifyCode,
+            groupCode: this.groupName,
+            type: this.businessValue,
+            corpIds: row.id,
+            curCode: row.curCode,
+          }
         })
         })
         // obj = {
         // obj = {
         //   billId: this.id,
         //   billId: this.id,

+ 0 - 1
src/enums/column-name.js

@@ -2151,7 +2151,6 @@ const columnName = [{
   code: 499,
   code: 499,
   name: '永发-商务中心-预订舱箱明细'
   name: '永发-商务中心-预订舱箱明细'
 }
 }
-
 ]
 ]
 export const getColumnName = (key) => {
 export const getColumnName = (key) => {
   for (let index = 0; index < columnName.length; index++) {
   for (let index = 0; index < columnName.length; index++) {

+ 14 - 0
src/router/views/index.js

@@ -3151,6 +3151,20 @@ export default [{
     component: () => import( /* webpackChunkName: "views" */ '@/views/iosBasicData/SeafreightExportF/bills/approvalDetails.vue')
     component: () => import( /* webpackChunkName: "views" */ '@/views/iosBasicData/SeafreightExportF/bills/approvalDetails.vue')
   }]
   }]
 },
 },
+{
+  path: '/iosBasicData/OceanFreightImport/bills/approvalDetails',
+  component: Layout,
+  hidden: true,
+  children: [{
+    path: '/iosBasicData/OceanFreightImport/bills/approvalDetails',
+    name: '审批详情(F)',
+    meta: {
+      i18n: '/iosBasicData/OceanFreightImport/bills/approvalDetails',
+      keepAlive: true,
+    },
+    component: () => import( /* webpackChunkName: "views" */ '@/views/iosBasicData/OceanFreightImport/bills/approvalDetails.vue')
+  }]
+},
 // 对账中心(F)
 // 对账中心(F)
 {
 {
   path: '/iosBasicData/finstlbills/index',
   path: '/iosBasicData/finstlbills/index',

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

@@ -39,6 +39,10 @@
               <el-button type="danger" size="small" :disabled="detailData.seeDisabled || pleasereviewType || showLock"
               <el-button type="danger" size="small" :disabled="detailData.seeDisabled || pleasereviewType || showLock"
                 @click="handleDelete">删除配箱
                 @click="handleDelete">删除配箱
               </el-button>
               </el-button>
+              <el-button type="success" size="small" plain :disabled="detailData.seeDisabled"
+                @click.stop="$refs.print.openDialog()">
+                报 表
+              </el-button>
               <!-- <el-button type="success" size="small"
               <!-- <el-button type="success" size="small"
                 :disabled="detailData.seeDisabled || !assemblyForm.id || pleasereviewType || disabled"
                 :disabled="detailData.seeDisabled || !assemblyForm.id || pleasereviewType || disabled"
                 @click="excelBox = true">导入箱号,铅封号
                 @click="excelBox = true">导入箱号,铅封号
@@ -110,7 +114,8 @@
         </template>
         </template>
       </avue-crud>
       </avue-crud>
     </basic-container>
     </basic-container>
-
+    <business-reports :id="assemblyForm.id" :itemIds="itemIds" ref="print" businessValue="HYJK" classifyCode="业务"
+      groupCode="配箱预览" :treeType="false" :type="1"></business-reports>
     <el-dialog title="导入箱号,铅封号" append-to-body :visible.sync="excelBox" width="555px" :close-on-click-modal="false"
     <el-dialog title="导入箱号,铅封号" append-to-body :visible.sync="excelBox" width="555px" :close-on-click-modal="false"
       v-dialog-drag>
       v-dialog-drag>
       <avue-form :option="excelOption" v-model="excelForm" :table-loading="excelLoading" :upload-before="uploadBefore"
       <avue-form :option="excelOption" v-model="excelForm" :table-loading="excelLoading" :upload-before="uploadBefore"
@@ -142,11 +147,12 @@ import {
 import { mapGetters } from "vuex";
 import { mapGetters } from "vuex";
 import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
 import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
 import bports from "@/views/iosBasicData/bports/index.vue";
 import bports from "@/views/iosBasicData/bports/index.vue";
+import businessReports from "@/components/tradeAgency/businessReportsJK.vue";
 import { bportsList } from "@/api/iosBasicData/bports";
 import { bportsList } from "@/api/iosBasicData/bports";
 import { getToken } from "@/util/auth";
 import { getToken } from "@/util/auth";
 
 
 export default {
 export default {
-  components: { SearchQuery, bports },
+  components: { SearchQuery, bports,businessReports },
   props: {
   props: {
     assemblyForm: {},
     assemblyForm: {},
     detailData: {},
     detailData: {},

+ 10 - 7
src/views/iosBasicData/OceanFreightImport/bills/assembly/EntrustmentLnformation/precontainers.vue

@@ -8,13 +8,16 @@
             @saveColumn="saveColumnTwo('crud', 'option', 'optionBack', 309.15)">
             @saveColumn="saveColumnTwo('crud', 'option', 'optionBack', 309.15)">
             <template slot="menuLeft">
             <template slot="menuLeft">
                 <el-button type="primary" size="small" :disabled="seeDisabled" @click.stop="addfun">新 增</el-button>
                 <el-button type="primary" size="small" :disabled="seeDisabled" @click.stop="addfun">新 增</el-button>
-                <el-button type="danger" size="small" plain :disabled="seeDisabled||assemblyForm.preContainersList.length==0" @click.stop="handleDelete">一键删除
+                <el-button type="danger" size="small" plain
+                    :disabled="seeDisabled || assemblyForm.preContainersList.length == 0"
+                    @click.stop="handleDelete">一键删除
+                </el-button>
+                <el-button type="primary" size="small"
+                    :disabled="seeDisabled || assemblyForm.preContainersList.length == 0"
+                    @click="batchSavefun">一键保存</el-button>
+                <el-button type="info" plain size="small"
+                    :disabled="seeDisabled || assemblyForm.preContainersList.length == 0" @click="onclickEdit">一键编辑
                 </el-button>
                 </el-button>
-                <el-button type="primary" size="small" :disabled="seeDisabled||assemblyForm.preContainersList.length==0" @click="batchSavefun">一键保存</el-button>
-                <el-button type="info" plain size="small" :disabled="seeDisabled||assemblyForm.preContainersList.length==0" @click="onclickEdit">一键编辑 </el-button>
-                <!--<el-button type="success" size="small" plain :disabled="seeDisabled"-->
-                <!--           @click.stop="equalDistribution">均分箱量-->
-                <!--</el-button>-->
             </template>
             </template>
             <template slot-scope="scope" slot="menu">
             <template slot-scope="scope" slot="menu">
                 <el-button size="mini" type="text" @click.stop="editfun(scope.row, scope.index)"
                 <el-button size="mini" type="text" @click.stop="editfun(scope.row, scope.index)"
@@ -711,7 +714,7 @@ export default {
             let multiList = this.selectionList
             let multiList = this.selectionList
             let arr = this.assemblyForm.preContainersList
             let arr = this.assemblyForm.preContainersList
             // 获取有id 的数据
             // 获取有id 的数据
-            const itemsWithId = multiList.filter(item =>item.id!=null);
+            const itemsWithId = multiList.filter(item => item.id != null);
             let arrIds = itemsWithId.map(item => item.id) // 获取id 数据
             let arrIds = itemsWithId.map(item => item.id) // 获取id 数据
             // 把选中的删除掉
             // 把选中的删除掉
             multiList.forEach((item) => {
             multiList.forEach((item) => {

+ 10 - 0
src/views/iosBasicData/OceanFreightImport/bills/assembly/feecenter.vue

@@ -1744,6 +1744,16 @@ export default {
             let groupCode = ''
             let groupCode = ''
             let selectionArr = []
             let selectionArr = []
             this.idArr = []
             this.idArr = []
+            for (let item of this.selectionDList) {
+                if (item.corpId != this.selectionDList[0].corpId) {
+                    return this.$message.error('请选择相同的结算单位')
+                }
+            }
+            for (let item of this.selectionCList) {
+                if (item.corpId != this.selectionCList[0].corpId) {
+                    return this.$message.error('请选择相同的结算单位')
+                }
+            }
             if (dc == 'D') {
             if (dc == 'D') {
                 groupCode = '应收,应收-账单'
                 groupCode = '应收,应收-账单'
                 selectionArr = this.selectionDList
                 selectionArr = this.selectionDList

+ 2 - 3
src/views/iosBasicData/OceanFreightImport/bills/billsDetails.vue

@@ -442,7 +442,7 @@
                 </el-tab-pane>
                 </el-tab-pane>
 
 
                 <el-tab-pane label="费用信息" name="fy" class="scrollable-container"
                 <el-tab-pane label="费用信息" name="fy" class="scrollable-container"
-                    v-if="!(form.billType == 'MM' && isHq!=1) && (roleName.includes('admin') || roleName.includes('secondaryAdmin') || roleName.includes('应收修改') || roleName.includes('应付修改') || roleName.includes('应收查看') || roleName.includes('应付查看'))">
+                    v-if=" (roleName.includes('admin') || roleName.includes('secondaryAdmin') || roleName.includes('应收修改') || roleName.includes('应付修改') || roleName.includes('应收查看') || roleName.includes('应付查看'))">
                     <feecenter :assemblyForm="form" :copyFormData="copyFormData" :detailData="detailData"
                     <feecenter :assemblyForm="form" :copyFormData="copyFormData" :detailData="detailData"
                         :disabled="detailData.seeDisabled || showLock" :pleasereviewType="pleasereviewType"
                         :disabled="detailData.seeDisabled || showLock" :pleasereviewType="pleasereviewType"
                         :pid="form.id" @billsDetailfun="billsDetailfun(form.id)">
                         :pid="form.id" @billsDetailfun="billsDetailfun(form.id)">
@@ -2307,8 +2307,7 @@ export default {
                 this.pageLoading = true;
                 this.pageLoading = true;
                 billsCheckBills({
                 billsCheckBills({
                     id: this.form.id,
                     id: this.form.id,
-                    url:
-                        "/iosBasicData/OceanFreightImport/bills/approvalDetails",
+                    url:"/iosBasicData/OceanFreightImport/bills/approvalDetails",
                     pageStatus: "this.$store.getters.approvalDetails",
                     pageStatus: "this.$store.getters.approvalDetails",
                     pageLabel: "审批详情(F)"
                     pageLabel: "审批详情(F)"
                 })
                 })

+ 7 - 2
src/views/iosBasicData/SeafreightExportF/bills/assembly/DistributionBox/containers.vue

@@ -51,6 +51,9 @@
                                 :disabled="detailData.seeDisabled || pleasereviewType || showLock"
                                 :disabled="detailData.seeDisabled || pleasereviewType || showLock"
                                 @click="handleDelete">删除配箱
                                 @click="handleDelete">删除配箱
                             </el-button>
                             </el-button>
+                            <el-button type="success" size="small" plain @click.stop="$refs.print.openDialog()">
+                                报 表
+                            </el-button>
                             <!--<el-button type="warning" size="small"-->
                             <!--<el-button type="warning" size="small"-->
                             <!--           :disabled="numberfalsefun() || assemblyForm.id"-->
                             <!--           :disabled="numberfalsefun() || assemblyForm.id"-->
                             <!--           @click="equalDistribution">平均分配</el-button>-->
                             <!--           @click="equalDistribution">平均分配</el-button>-->
@@ -160,7 +163,8 @@
                 <el-button type="primary" @click="extractDialogfun">导 入</el-button>
                 <el-button type="primary" @click="extractDialogfun">导 入</el-button>
             </span>
             </span>
         </el-dialog>
         </el-dialog>
-
+        <business-reports :id="assemblyForm.id" :itemIds="itemIds" ref="print" businessValue="HYCK" classifyCode="业务"
+            groupCode="配箱预览" :treeType="false" :type="1"></business-reports>
 
 
     </div>
     </div>
 </template>
 </template>
@@ -186,8 +190,9 @@ import { decryptLhtData } from "@/util/lhtDataDesc";
 import extractBoxInformation from "@/views/iosBasicData/SeafreightExportF/bills/assembly/DistributionBox/extractBoxInformation.vue";
 import extractBoxInformation from "@/views/iosBasicData/SeafreightExportF/bills/assembly/DistributionBox/extractBoxInformation.vue";
 import { billsAdd } from "@/api/iosBasicData/bills";
 import { billsAdd } from "@/api/iosBasicData/bills";
 import dicSelect from "@/components/dicSelect/main";
 import dicSelect from "@/components/dicSelect/main";
+import businessReports from "@/components/tradeAgency/businessReportsJK.vue";
 export default {
 export default {
-    components: { SearchQuery, bports, extractBoxInformation, dicSelect },
+    components: { SearchQuery, bports, extractBoxInformation, dicSelect, businessReports },
     props: {
     props: {
         assemblyForm: {},
         assemblyForm: {},
         detailData: {},
         detailData: {},

+ 11 - 1
src/views/iosBasicData/SeafreightExportF/bills/assembly/feecenter.vue

@@ -1734,6 +1734,16 @@ export default {
             let groupCode = ''
             let groupCode = ''
             let selectionArr = []
             let selectionArr = []
             this.idArr = []
             this.idArr = []
+            for (let item of this.selectionDList) {
+                if (item.corpId != this.selectionDList[0].corpId) {
+                    return this.$message.error('请选择相同的结算单位')
+                }
+            }
+            for (let item of this.selectionCList) {
+                if (item.corpId != this.selectionCList[0].corpId) {
+                    return this.$message.error('请选择相同的结算单位')
+                }
+            }
             if (dc == 'D') {
             if (dc == 'D') {
                 groupCode = '应收,应收-账单'
                 groupCode = '应收,应收-账单'
                 selectionArr = this.selectionDList
                 selectionArr = this.selectionDList
@@ -1951,7 +1961,7 @@ export default {
         // 左侧选择
         // 左侧选择
         nodeClick(e) {
         nodeClick(e) {
             this.lefttemplate = e
             this.lefttemplate = e
-            getListTemplatelist({ current: 1, size: 100, pid:this.lefttemplate.id }).then(res => {
+            getListTemplatelist({ current: 1, size: 100, pid: this.lefttemplate.id }).then(res => {
                 this.templateRightData = res.data.data.records
                 this.templateRightData = res.data.data.records
             })
             })
         },
         },

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

@@ -54,7 +54,7 @@
                     </el-dropdown-menu>
                     </el-dropdown-menu>
                 </el-dropdown> -->
                 </el-dropdown> -->
                 <el-button
                 <el-button
-                    v-if="bigtabs != 'dz' && (roleName.includes('admin') || (roleName.includes('应付修改') && roleName.includes('应付查看')) || (roleName.includes('应收修改') && roleName.includes('应收查看')))"
+                    v-if="bigtabs != 'dz'&&!(form.billType == 'MM' && isHq != 1) && (roleName.includes('admin') || (roleName.includes('应付修改') && roleName.includes('应付查看')) || (roleName.includes('应收修改') && roleName.includes('应收查看')))"
                     size="small" style="margin-right: 8px" :loading="saveLoading" :disabled="!form.id"
                     size="small" style="margin-right: 8px" :loading="saveLoading" :disabled="!form.id"
                     @click="previewDialogfun">预 览
                     @click="previewDialogfun">预 览
                 </el-button>
                 </el-button>

+ 16 - 7
src/views/iosBasicData/businessCenter/mkt&slot/detailsPage.vue

@@ -69,7 +69,7 @@
           <template slot="menuLeft">
           <template slot="menuLeft">
             <el-button type="danger" plain size="small" :disabled="editDisabled || selectionList.length == 0"
             <el-button type="danger" plain size="small" :disabled="editDisabled || selectionList.length == 0"
               @click="allClick('批量删除')">批量删除</el-button>
               @click="allClick('批量删除')">批量删除</el-button>
-            <el-button type="success" size="small" :disabled="!form.id || form.mktSlotItemList.length"
+            <el-button type="success" size="small" :disabled="!form.id"
               @click="allClick('提取运价')">提取运价</el-button>
               @click="allClick('提取运价')">提取运价</el-button>
             <el-button type="primary" size="small" @click="allClick('生成报价')"
             <el-button type="primary" size="small" @click="allClick('生成报价')"
               :disabled="editDisabled || selectionList.length == 0">生成报价</el-button>
               :disabled="editDisabled || selectionList.length == 0">生成报价</el-button>
@@ -675,6 +675,10 @@ export default {
     },
     },
     allClick(name) {
     allClick(name) {
       if (name == '提取运价') {
       if (name == '提取运价') {
+        let ids = []
+        for (let item of this.form.mktSlotItemList) {
+          ids.push(item.srcId)
+        }
         let obj = {
         let obj = {
           podId: this.form.polId,
           podId: this.form.polId,
           destinationId: this.form.podId,
           destinationId: this.form.podId,
@@ -683,10 +687,13 @@ export default {
           airlineId: this.form.lineId
           airlineId: this.form.lineId
         }
         }
         MktSlotQuotation(obj).then(res => {
         MktSlotQuotation(obj).then(res => {
-          res.data.data.forEach(row => {
-            row.pid = this.form.id
+          res.data.data.forEach(item => {
+            if (ids.filter(row => row == item.srcId).length == 0)
+              this.form.mktSlotItemList.push({
+                ...item,
+                pid: this.form.id
+              })
           })
           })
-          this.form.mktSlotItemList = res.data.data
           this.submit()
           this.submit()
         })
         })
       }
       }
@@ -1066,10 +1073,12 @@ export default {
 ::v-deep .box-card .el-card__body {
 ::v-deep .box-card .el-card__body {
   padding: 4px !important;
   padding: 4px !important;
 }
 }
-::v-deep .xstable .el-table__body-wrapper{
-   overflow-y: auto;
-  height: 350px  !important;
+
+::v-deep .xstable .el-table__body-wrapper {
+  overflow-y: auto;
+  height: 350px !important;
 }
 }
+
 .disabledBox {
 .disabledBox {
   display: flex;
   display: flex;
   align-items: center;
   align-items: center;

+ 33 - 1
src/views/iosBasicData/costcenter/coc/detailsPage.vue

@@ -123,6 +123,12 @@
                         <el-button type="danger" plain size="small"
                         <el-button type="danger" plain size="small"
                             :disabled="editDisabled || selectionList.length == 0"
                             :disabled="editDisabled || selectionList.length == 0"
                             @click="allClick('批量删除')">批量删除</el-button>
                             @click="allClick('批量删除')">批量删除</el-button>
+                        <el-button type="success" plain size="small"
+                            :disabled="editDisabled || selectionList.length == 0"
+                            @click="allClick('批量禁用')">批量禁用</el-button>
+                        <el-button type="danger" plain size="small"
+                            :disabled="editDisabled || selectionList.length == 0"
+                            @click="allClick('批量撤销禁用')">批量撤销禁用</el-button>
                     </template>
                     </template>
                     <template slot="indexHeader" slot-scope="{row,index}">
                     <template slot="indexHeader" slot-scope="{row,index}">
                         <el-button type="primary" size="mini" icon="el-icon-plus" :disabled="editDisabled" circle
                         <el-button type="primary" size="mini" icon="el-icon-plus" :disabled="editDisabled" circle
@@ -385,7 +391,7 @@
 </template>
 </template>
 
 
 <script>
 <script>
-import { submit, submitItemList, submitFeeList, getDetail, removeItem, feeRemove, checkAgent, revokeCheckAgent, copyAgent } from "@/api/iosBasicData/costcenter/coc";
+import { submit, submitItemList, submitFeeList, getDetail, removeItem, feeRemove, checkAgent, revokeCheckAgent, copyAgent, batchDisable, batchRevokeDisable } from "@/api/iosBasicData/costcenter/coc";
 import { losbfeestemplateGetListTemplate } from "@/api/iosBasicData/bills";
 import { losbfeestemplateGetListTemplate } from "@/api/iosBasicData/bills";
 import { losbfeestemplateDetail } from "@/api/iosBasicData/losbfeestemplate";
 import { losbfeestemplateDetail } from "@/api/iosBasicData/losbfeestemplate";
 import dicSelect from "@/components/dicSelect/main";
 import dicSelect from "@/components/dicSelect/main";
@@ -1640,6 +1646,32 @@ export default {
                     }
                     }
                 })
                 })
             }
             }
+            if (name == '批量禁用') {
+                let ids = []
+                for (let item of this.selectionList) {
+                    if (item.disable == 1) {
+                        return this.$message.error("请选择未禁用的明细");
+                    }
+                    ids.push(item.id)
+                }
+                batchDisable({ ids: ids.join(',') }).then(res => {
+                    this.$message.success("操作成功");
+                    this.getDetails(this.form.id)
+                })
+            }
+            if (name == '批量撤销禁用') {
+                let ids = []
+                for (let item of this.selectionList) {
+                    if (item.disable != 1) {
+                        return this.$message.error("请选择已禁用的明细");
+                    }
+                    ids.push(item.id)
+                }
+                batchRevokeDisable({ ids: ids.join(',') }).then(res => {
+                    this.$message.success("操作成功");
+                    this.getDetails(this.form.id)
+                })
+            }
             if (name == 'POL一键保存') {
             if (name == 'POL一键保存') {
                 if (!this.polFeeList.length) {
                 if (!this.polFeeList.length) {
                     return this.$message.error("请添加数据");
                     return this.$message.error("请添加数据");

+ 33 - 1
src/views/iosBasicData/costcenter/soc/detailsPage.vue

@@ -177,6 +177,12 @@
                                 <el-button type="danger" plain size="small"
                                 <el-button type="danger" plain size="small"
                                     :disabled="editDisabled || selectionList.length == 0"
                                     :disabled="editDisabled || selectionList.length == 0"
                                     @click="allClick('批量删除')">批量删除</el-button>
                                     @click="allClick('批量删除')">批量删除</el-button>
+                                <el-button type="success" plain size="small"
+                                    :disabled="editDisabled || selectionList.length == 0"
+                                    @click="allClick('批量禁用')">批量禁用</el-button>
+                                <el-button type="danger" plain size="small"
+                                    :disabled="editDisabled || selectionList.length == 0"
+                                    @click="allClick('批量撤销禁用')">批量撤销禁用</el-button>
                             </template>
                             </template>
                             <template slot="indexHeader" slot-scope="{row,index}">
                             <template slot="indexHeader" slot-scope="{row,index}">
                                 <el-button type="primary" size="mini" icon="el-icon-plus" :disabled="editDisabled"
                                 <el-button type="primary" size="mini" icon="el-icon-plus" :disabled="editDisabled"
@@ -687,7 +693,7 @@
 </template>
 </template>
 
 
 <script>
 <script>
-import { submit, submitItemList, submitFeeList, getDetail, removeItem, feeRemove, checkAgent, revokeCheckAgent, copyAgent, topList, getBcorpsList } from "@/api/iosBasicData/costcenter/soc";
+import { submit, submitItemList, submitFeeList, getDetail, removeItem, feeRemove, checkAgent, revokeCheckAgent, copyAgent, topList, getBcorpsList, batchDisable, batchRevokeDisable } from "@/api/iosBasicData/costcenter/soc";
 import { getListTemplate, getListTemplatelist } from "@/api/iosBasicData/losbfeestemplate";
 import { getListTemplate, getListTemplatelist } from "@/api/iosBasicData/losbfeestemplate";
 import dicSelect from "@/components/dicSelect/main";
 import dicSelect from "@/components/dicSelect/main";
 import checkSchedule from "@/components/checkH/checkSchedule.vue";
 import checkSchedule from "@/components/checkH/checkSchedule.vue";
@@ -2626,6 +2632,32 @@ export default {
                     }
                     }
                 })
                 })
             }
             }
+            if (name == '批量禁用') {
+                let ids = []
+                for (let item of this.selectionList) {
+                    if (item.disable == 1) {
+                        return this.$message.error("请选择未禁用的明细");
+                    }
+                    ids.push(item.id)
+                }
+                batchDisable({ ids: ids.join(',') }).then(res => {
+                    this.$message.success("操作成功");
+                    this.getDetails(this.form.id)
+                })
+            }
+            if (name == '批量撤销禁用') {
+                let ids = []
+                for (let item of this.selectionList) {
+                    if (item.disable != 1) {
+                        return this.$message.error("请选择已禁用的明细");
+                    }
+                    ids.push(item.id)
+                }
+                batchRevokeDisable({ ids: ids.join(',') }).then(res => {
+                    this.$message.success("操作成功");
+                    this.getDetails(this.form.id)
+                })
+            }
             if (name == 'POL一键保存') {
             if (name == 'POL一键保存') {
                 if (!this.polFeeList.length) {
                 if (!this.polFeeList.length) {
                     return this.$message.error("请添加数据");
                     return this.$message.error("请添加数据");