Browse Source

1.海运出口 新加提取运价功能 联调接口
2.商务中心 预订舱 新加字段 联调 列表 查看 保存接口
3.箱池动态,文件类型没有显示O
4.海运出口 界面调整
5.海运进口 提交审核后,不让撤销了

Qukatie 8 months ago
parent
commit
3a7fab7f00
40 changed files with 821 additions and 383 deletions
  1. 70 0
      src/api/iosBasicData/businessCenter/bookingCabin.js
  2. 1 1
      src/api/iosBasicData/businessCenter/mkt&slot.js
  3. 1 1
      src/components/dicSelect/main.vue
  4. 5 4
      src/views/approveDataH/index.vue
  5. 7 0
      src/views/basicData/container/archives.vue
  6. 10 0
      src/views/boxManagement/agentBox/detailsPage.vue
  7. 5 4
      src/views/boxManagement/boxPoolDynamics/index.vue
  8. 10 0
      src/views/boxManagement/buyContainer/detailsPage.vue
  9. 19 0
      src/views/boxManagement/rentalBox/detailsPage.vue
  10. 2 2
      src/views/iosBasicData/OceanFreightImport/bills/assembly/feecenter.vue
  11. 1 1
      src/views/iosBasicData/OceanFreightImport/bills/billsDetails.vue
  12. 46 0
      src/views/iosBasicData/SeafreightExportF/bills/assembly/EntrustmentLnformation.vue
  13. 1 1
      src/views/iosBasicData/SeafreightExportF/bills/assembly/EntrustmentLnformation/precontainers.vue
  14. 2 2
      src/views/iosBasicData/SeafreightExportF/bills/assembly/feecenter.vue
  15. 5 44
      src/views/iosBasicData/SeafreightExportF/bills/assembly/formbottom.vue
  16. 48 17
      src/views/iosBasicData/SeafreightExportF/bills/assembly/freightRate.vue
  17. 27 14
      src/views/iosBasicData/SeafreightExportF/bills/index.vue
  18. 6 0
      src/views/iosBasicData/UnpaidPaymentsDetails/index.vue
  19. 130 71
      src/views/iosBasicData/businessCenter/bookingCabin/detailsPage.vue
  20. 153 137
      src/views/iosBasicData/businessCenter/bookingCabin/index.vue
  21. 3 3
      src/views/iosBasicData/businessCenter/mkt&slot/index.vue
  22. 4 4
      src/views/iosBasicData/costcenter/airlineProfit/index.vue
  23. 15 10
      src/views/iosBasicData/costcenter/coc/detailsPage.vue
  24. 1 1
      src/views/iosBasicData/costcenter/coc/index.vue
  25. 16 8
      src/views/iosBasicData/costcenter/soc/detailsPage.vue
  26. 1 1
      src/views/iosBasicData/costcenter/soc/index.vue
  27. 6 0
      src/views/iosBasicData/decisionAnalysis/index.vue
  28. 3 2
      src/views/iosBasicData/feeApplication/detailsPage.vue
  29. 6 0
      src/views/iosBasicData/financeProfit/index.vue
  30. 22 2
      src/views/iosBasicData/loloTemplate/feesTemplateItems.vue
  31. 22 1
      src/views/iosBasicData/losbfeestemplate/feesTemplateItems.vue
  32. 6 0
      src/views/iosBasicData/paymentDetail/index.vue
  33. 6 0
      src/views/iosBasicData/paymentSummary/index.vue
  34. 20 0
      src/views/iosBasicData/podTemplate/feesTemplateItems.vue
  35. 27 6
      src/views/iosBasicData/polTemplate/feesTemplateItems.vue
  36. 43 33
      src/views/ow/owPut/detailsPage.vue
  37. 15 3
      src/views/ow/owPut/index.vue
  38. 12 2
      src/views/ow/owTask/detailsPage.vue
  39. 39 3
      src/views/ow/owTask/index.vue
  40. 5 5
      src/views/system/dept.vue

+ 70 - 0
src/api/iosBasicData/businessCenter/bookingCabin.js

@@ -0,0 +1,70 @@
+import request from '@/router/axios';
+//查询列表
+export const getList = (current, size, params) => {
+    return request({
+        url: '/api/blade-los/bookingCabin/list',
+        method: 'get',
+        params: {
+            ...params,
+            current,
+            size,
+        }
+    })
+}
+//查询明细
+export const getDetail = (params) => {
+    return request({
+        url: '/api/blade-los/bookingCabin/detail',
+        method: 'get',
+        params: params
+    })
+}
+//删除
+export const remove = (data) => {
+    return request({
+        url: '/api/blade-los/bookingCabin/remove',
+        method: 'post',
+        params: data
+    })
+}
+//删除明细
+export const itemRemove = (data) => {
+    return request({
+        url: '/api/blade-los/mktslotitem/remove',
+        method: 'post',
+        params: data
+
+    })
+}
+//保存
+export function submit(data) {
+    return request({
+        url: '/api/blade-los/bookingCabin/submit',
+        method: 'post',
+        data
+    })
+}
+// 请核
+export function pleaseCheck(data) {
+    return request({
+        url: '/api/blade-box-tube/tradingBox/checkTradingBox',
+        method: 'post',
+        data: data
+    })
+}
+// 撤销
+export function repealCancel(data) {
+    return request({
+        url: '/api/blade-box-tube/tradingBox/withdrawTradingBox',
+        method: 'post',
+        data: data
+    })
+}
+//单据复制
+export const copyAgent = (data) => {
+    return request({
+        url: '/api/blade-los/putbox/copyDocument',
+        method: 'get',
+        params: data
+    })
+}

+ 1 - 1
src/api/iosBasicData/businessCenter/mkt&slot.js

@@ -48,7 +48,7 @@ export const quotationRemove = (data) => {
 //保存
 export function submit(data) {
     return request({
-        url: '/api/blade-los/mktslot/submit',
+        url: '/api/blade-los/bookingCabin/submit',
         method: 'post',
         data
     })

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

@@ -2,7 +2,7 @@
     <!-- 中文下拉 -->
     <div>
         <div style="display: flex;">
-            <el-tooltip effect="dark" :disabled="!collapseTags" :content="value" placement="top">
+            <el-tooltip effect="dark" :disabled="!collapseTags" :content="collapseTags?value.join(';'):value" placement="top">
             <el-select ref="mySelect" style="width:100%" v-model="value" @input="inputChange"
                 :placeholder="'请选择 ' + placeholder" @change="selectChange" @clear="clear" :clearable="clearable"
                 :multiple="multiple" :filterable="filterable" :remote="remote" :remote-method="remoteMethod"

+ 5 - 4
src/views/approveDataH/index.vue

@@ -32,7 +32,7 @@
         <span v-else-if="scope.row.checkType == 'MYDL'">贸易代理单据审核</span>
         <span v-else-if="scope.row.checkType == 'YSQR-C'">贸易代理货款付费确认</span>
         <span v-else-if="scope.row.checkType == 'YSQR-D'">贸易代理货款收费确认</span>
-          <span v-else-if="scope.row.checkType == 'FYSQ'">费用申请</span>
+        <span v-else-if="scope.row.checkType == 'FYSQ'">费用申请</span>
       </template>
       <template slot-scope="scope" slot="billNo">
         <span style="color: #1e9fff;cursor: pointer;" @click="billNoDetails(scope.row)">{{ scope.row.billNo }}</span>
@@ -182,7 +182,7 @@ export default {
         placeholder: "请点击右边按钮选择",
         dicData: []
       },
-      saberUserInfo:null
+      saberUserInfo: null
     };
   },
   created() {
@@ -495,10 +495,11 @@ export default {
           );
         } else {
           this.$router.$avueRouter.closeTag(row.url);
+          console.log(row)
           this.$router.push({
             path: row.url,
             query: {
-              billId: row.billId
+              billId: row.checkType == 'FYSQ' ? row.srcBillId : row.billId
             }
           });
         }
@@ -613,7 +614,7 @@ export default {
       getList(page.currentPage, page.pageSize, params).then(res => {
         this.dataList = res.data.data.records;
         this.page.total = res.data.data.total;
-          this.$nextTick(() => {
+        this.$nextTick(() => {
           this.$refs.crud.dicInit();
         });
       }).finally(() => {

+ 7 - 0
src/views/basicData/container/archives.vue

@@ -601,6 +601,13 @@ export default {
             overHidden: true,
             disabled: false,
             width: 100,
+          },
+          {
+            label: '备注',
+            prop: 'remarks',
+            type: 'textarea',
+            minRows: 2,
+            span: 24
           }
         ]
       }

+ 10 - 0
src/views/boxManagement/agentBox/detailsPage.vue

@@ -959,6 +959,16 @@ export default {
             }]
           },
           {
+            label: '造箱日期',
+            prop: 'boxMakingDate',
+            overHidden: true,
+            cell: true,
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd HH:mm:ss",
+            width: 100,
+          },
+          {
             label: '箱东',
             prop: 'boxEastName',
             overHidden: true,

+ 5 - 4
src/views/boxManagement/boxPoolDynamics/index.vue

@@ -1,15 +1,15 @@
 <template>
     <div>
         <basic-container v-if="isShow">
-            <el-button type="warning" plain size="small"
+            <el-button v-if="roleName.includes('admin')||roleName.includes('箱管')" type="warning" plain size="small"
                 @click="allClick('POL空箱提箱进场(EXCEL)')">POL空箱提箱进场(EXCEL)</el-button>
 
-            <el-button type="success" plain size="small" @click="allClick('POL空箱出场(EXCEL)')">POL空箱出场(EXCEL)</el-button>
-            <el-button type="info" plain size="small" @click="allClick('POD空箱进场(EXCEL)')">POD空箱进场(EXCEL)</el-button>
+            <el-button v-if="roleName.includes('admin')||roleName.includes('箱管')" type="success" plain size="small" @click="allClick('POL空箱出场(EXCEL)')">POL空箱出场(EXCEL)</el-button>
+            <el-button v-if="roleName.includes('admin')||roleName.includes('箱管')" type="info" plain size="small" @click="allClick('POD空箱进场(EXCEL)')">POD空箱进场(EXCEL)</el-button>
             <!-- <el-button type="primary" plain size="small"
                                 @click="allClick('POL返场(EXCEL)')">POL返场(EXCEL)</el-button> -->
 
-            <el-button type="danger" plain size="small" @click="allClick('POL无货返空(EXCEL)')">POL无货返空(EXCEL)</el-button>
+            <el-button v-if="roleName.includes('admin')||roleName.includes('箱管')" type="danger" plain size="small" @click="allClick('POL无货返空(EXCEL)')">POL无货返空(EXCEL)</el-button>
 
             <el-tabs v-model="activeName" type="card" style="margin-top: 8px;">
                 <el-tab-pane label="按港口" name="1">
@@ -90,6 +90,7 @@ import _ from "lodash";
 export default {
     data() {
         return {
+            roleName: localStorage.getItem("roleName"),
             excelType: 1,
             excelBox: false,
             excelForm: {},

+ 10 - 0
src/views/boxManagement/buyContainer/detailsPage.vue

@@ -794,6 +794,16 @@ export default {
             }]
           },
           {
+            label: '造箱日期',
+            prop: 'boxMakingDate',
+            overHidden: true,
+            cell: true,
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd HH:mm:ss",
+            width: 100,
+          },
+          {
             label: '箱东',
             prop: 'boxEastName',
             overHidden: true,

+ 19 - 0
src/views/boxManagement/rentalBox/detailsPage.vue

@@ -981,6 +981,25 @@ export default {
               trigger: "blur"
             }]
           },
+           {
+            label: '造箱日期',
+            prop: 'boxMakingDate',
+            overHidden: true,
+            cell: true,
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd HH:mm:ss",
+            width: 100,
+          },
+          {
+            label: '账单日',
+            prop: 'rentEndDate',
+            overHidden: true,
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd HH:mm:ss",
+            width: 100,
+          },
           {
             label: '箱东',
             prop: 'boxEastName',

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

@@ -229,8 +229,8 @@
                         @click="allClick('付费申请', 'C')">付费申请</el-button>
                     <el-button type="primary" plain size="small" :disabled="disabled || selectionCList.length == 0"
                         @click="allClick('C费用申请')">请核费用</el-button>
-                    <el-button type="success" plain size="small" :disabled="disabled"
-                        @click="allClick('提取成本')">提取成本</el-button>
+                    <!-- <el-button type="success" plain size="small" :disabled="disabled"
+                        @click="allClick('提取成本')">提取成本</el-button> -->
                 </template>
                 <template slot="indexHeader" slot-scope="scope">
                     <el-button v-if="isFeeEditC" type="primary" size="small" icon="el-icon-plus" circle

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

@@ -78,7 +78,7 @@
                     form.id && form.returningSecurityMoneyStatus == '已退押'
                 " size="small" type="danger" @click.stop="allClick('撤销退押')">撤销退押
                 </el-button>
-                <el-button size="small" type="warning" :disabled="!form.id || detailData.seeDisabled || showLock"
+                <el-button size="small" type="warning" :disabled="!form.id || showLock"
                     v-if="form.status == 1 && form.billType != 'MH'" @click.stop="revokeDocumentApproval">撤销单据请核
                 </el-button>
                 <el-button size="small" type="success" :disabled="!form.id || detailData.seeDisabled || showLock" v-if="

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

@@ -1009,6 +1009,48 @@
                             </el-form-item>
                         </el-col>
                     </el-row>
+                    <el-row>
+                        <el-col :span="12">
+                            <el-form-item label="舱位类型" prop="cabinType">
+                                <span slot="label">
+                                    <span style="color: #1e9fff">舱位类型</span>
+                                </span>
+                                <el-row>
+                                    <el-col :span="12">
+                                        <dic-select v-model="assemblyForm.cabinType" placeholder="舱位类型" key="id"
+                                            label="dictValue" url="/blade-system/dict-biz/dictionary?code=cabinType"
+                                            :disabled="detailData.seeDisabled"
+                                            @selectChange="dicChange('cabinType', $event)"></dic-select>
+                                    </el-col>
+                                    <el-col :span="11" :offset="1">
+                                        <div>
+                                            <dic-select
+                                                v-show="assemblyForm.cabinType == '固定' || !assemblyForm.cabinType"
+                                                v-model="assemblyForm.cabinTypeData" key="id" label="dictValue"
+                                                placeholder="数据"
+                                                url="/blade-system/dict-biz/dictionary?code=cabinTypeData_1"
+                                                :disabled="detailData.seeDisabled || !assemblyForm.cabinType"></dic-select>
+                                            <dic-select v-show="assemblyForm.cabinType == '非固定'"
+                                                v-model="assemblyForm.cabinTypeData" key="id" label="dictValue"
+                                                placeholder="数据"
+                                                url="/blade-system/dict-biz/dictionary?code=cabinTypeData_2"
+                                                :disabled="detailData.seeDisabled"></dic-select>
+                                        </div>
+                                    </el-col>
+                                </el-row>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="12">
+                            <el-form-item label="舱位数" prop="shippingSpaceNumber">
+                                <span slot="label">
+                                    <span style="color: #1e9fff">舱位数</span>
+                                </span>
+                                <el-input v-model="assemblyForm.shippingSpaceNumber" size="small" :controls="false"
+                                    style="width: 100%;" placeholder="请输入舱位数"
+                                    :disabled="detailData.seeDisabled"></el-input>
+                            </el-form-item>
+                        </el-col>
+                    </el-row>
                 </el-col>
 
             </el-row>
@@ -1224,6 +1266,7 @@ export default {
     components: { TreeSelect, bcorps, SearchQuery, precontainers, bcorpstypedefine, dicSelect },
     data() {
         return {
+
             roleName: localStorage.getItem("roleName"),
             dicTree: [],
             textareaNumber: 5,
@@ -1492,6 +1535,9 @@ export default {
             this.$emit('billsDetailfun')
         },
         dicChange(name, row) {
+            if (name == 'cabinType') {
+                this.assemblyForm.cabinTypeData = null
+            }
             if (name == 'shippingAgencyCname') {
                 if (row) {
                     this.assemblyForm.shippingAgencyId = row.id

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

@@ -477,7 +477,7 @@ export default {
                 podId: this.assemblyForm.podId,
                 cabinType: this.assemblyForm.cabinType,
                 airlineId: this.assemblyForm.airlineId,
-                etd:this.assemblyForm.etd+' 00:00:00'
+                etd:this.assemblyForm.etd+' 00:00:00',
             }
             getItemListHY(obj).then(res => {
                 if (res.data.data) {

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

@@ -230,8 +230,8 @@
                         @click="allClick('付费申请', 'C')">付费申请</el-button>
                     <el-button type="primary" plain size="small" :disabled="disabled || selectionCList.length == 0"
                         @click="allClick('C费用申请')">请核费用</el-button>
-                    <el-button type="success" plain size="small" :disabled="disabled"
-                        @click="allClick('提取成本')">提取成本</el-button>
+                    <!-- <el-button type="success" plain size="small" :disabled="disabled"
+                        @click="allClick('提取成本')">提取成本</el-button> -->
                 </template>
                 <template slot="indexHeader" slot-scope="scope">
                     <el-button v-if="isFeeEditC" type="primary" size="small" icon="el-icon-plus" circle

+ 5 - 44
src/views/iosBasicData/SeafreightExportF/bills/assembly/formbottom.vue

@@ -13,7 +13,7 @@
                         </search-query>
                     </el-form-item>
                 </el-col> -->
-                
+
 
                 <el-col :span="6">
                     <el-form-item label="应结日期" prop="dueDate">
@@ -125,7 +125,7 @@
 
                     </el-form-item>
                 </el-col>
-               
+
                 <el-col :span="6">
                     <el-form-item label="装箱方式" prop="loadType">
                         <span slot="label">
@@ -217,43 +217,9 @@
                         </search-query>
                     </el-form-item>
                 </el-col>
-                
-                <el-col :span="6">
-                    <el-form-item label="舱位类型" prop="cabinType">
-                        <span slot="label">
-                            <span style="color: #1e9fff">舱位类型</span>
-                        </span>
-                        <el-row>
-                            <el-col :span="12">
-                                <dic-select v-model="assemblyForm.cabinType" placeholder="舱位类型" key="id"
-                                    label="dictValue" url="/blade-system/dict-biz/dictionary?code=cabinType"
-                                    :disabled="detailData.seeDisabled"
-                                    @selectChange="dicChange('cabinType', $event)"></dic-select>
-                            </el-col>
-                            <el-col :span="11" :offset="1">
-                                <div>
-                                    <dic-select v-show="assemblyForm.cabinType == '固定' || !assemblyForm.cabinType"
-                                        v-model="assemblyForm.cabinTypeData" key="id" label="dictValue" placeholder="数据"
-                                        url="/blade-system/dict-biz/dictionary?code=cabinTypeData_1"
-                                        :disabled="detailData.seeDisabled || !assemblyForm.cabinType"></dic-select>
-                                    <dic-select v-show="assemblyForm.cabinType == '非固定'"
-                                        v-model="assemblyForm.cabinTypeData" key="id" label="dictValue" placeholder="数据"
-                                        url="/blade-system/dict-biz/dictionary?code=cabinTypeData_2"
-                                        :disabled="detailData.seeDisabled"></dic-select>
-                                </div>
-                            </el-col>
-                        </el-row>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="6">
-                    <el-form-item label="舱位数" prop="shippingSpaceNumber">
-                        <span slot="label">
-                            <span style="color: #1e9fff">舱位数</span>
-                        </span>
-                        <el-input v-model="assemblyForm.shippingSpaceNumber" size="small" :controls="false"
-                            style="width: 100%;" placeholder="请输入舱位数" :disabled="detailData.seeDisabled"></el-input>
-                    </el-form-item>
-                </el-col>
+
+
+
                 <el-col :span="6">
                     <el-form-item label="限制重量(吨)" prop="weightLimit">
                         <span slot="label">
@@ -570,12 +536,7 @@ export default {
         this.ownDeptLazyTreefun()
     },
     methods: {
-        dicChange(name, row) {
-            if (name == 'cabinType') {
-                this.assemblyForm.cabinTypeData = null
-            }
 
-        },
         // 业务来源下拉
         sourceCorp(value, name) {
             if (name == 'srcCnName') {

+ 48 - 17
src/views/iosBasicData/SeafreightExportF/bills/assembly/freightRate.vue

@@ -2,23 +2,26 @@
     <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"
-                id="out-table" :header-cell-class-name="headerClassName" @on-load="onLoad">
+                @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">取 消</el-button>
-                <el-button type="primary" @click="submit">确 定</el-button>
+                <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 { MktSlotQuotation, quotationImportBatch } from "@/api/iosBasicData/bills";
 export default {
     props: {
     },
     data() {
         return {
+            quotationId: null,
+            ids: null,
             data: [],
             dialogVisible: false,
             loading: false,
@@ -31,66 +34,67 @@ export default {
                 viewBtn: false,
                 delBtn: false,
                 editBtn: false,
-                menu:false,
-                header:false,
+                menu: false,
+                header: false,
+                highlightCurrentRow: true,
                 column: [
                     {
                         label: "船公司",
-                        prop: "billNo",
+                        prop: "actualShippingCompanyCname",
                         width: "160",
                         overHidden: true,
                     },
                     {
                         label: "开船日期",
-                        prop: "billDate",
+                        prop: "etd",
                         width: "160",
                         overHidden: true,
                     },
                     {
                         label: "起运港",
-                        prop: "corpCnName",
+                        prop: "polEnName",
                         width: "160",
                         overHidden: true,
                     },
                     {
                         label: "目的港",
-                        prop: "corpEnName",
+                        prop: "podEnName",
                         width: "160",
                         overHidden: true,
                     },
                     {
                         label: "20GP",
-                        prop: "mblno",
+                        prop: "gp20",
                         width: "160",
                         overHidden: true,
                     },
                     {
                         label: "40GP",
-                        prop: "hblno",
+                        prop: "gp40",
                         width: "160",
                         overHidden: true,
                     },
                     {
                         label: "40HC",
-                        prop: "marks",
+                        prop: "hc40",
                         width: "160",
                         overHidden: true,
                     },
                     {
                         label: "20GP(COST)",
-                        prop: "quantity",
+                        prop: "gp20Cost",
                         width: "100",
                         overHidden: true,
                     },
                     {
                         label: "40GP(COST)",
-                        prop: "packingUnit",
+                        prop: "gp40Cost",
                         width: "100",
                         overHidden: true,
                     },
                     {
                         label: "40HC(COST)",
-                        prop: "grossWeight",
+                        prop: "hc40Cost",
                         width: "100",
                         overHidden: true,
                     }
@@ -102,8 +106,10 @@ export default {
         // this.option = await this.getColumnData(this.getColumnName(309.6), this.optionBack);
     },
     methods: {
-        openDialog(val) {
+        openDialog(val, ids) {
             this.dialogVisible = true
+            this.quotationId = null
+            this.ids = ids
             let obj = {
                 ...val
             }
@@ -114,6 +120,31 @@ export default {
                 this.loading = false
             })
         },
+        handleCurrentRowChange(val) {
+            this.quotationId = val.id
+        },
+        submit() {
+            if (!this.quotationId) {
+                return this.$message.error("请选择数据");
+            }
+            const obj = {
+                billsIds: this.ids,
+                quotationId: this.quotationId
+            }
+            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) {
             /**

+ 27 - 14
src/views/iosBasicData/SeafreightExportF/bills/index.vue

@@ -161,7 +161,7 @@
                 <template slot="eta" slot-scope="scope">
                     <span>{{
                         scope.row.eta ? scope.row.eta.slice(0, 10) : ""
-                    }}</span>
+                        }}</span>
                 </template>
                 <template slot="updateTime" slot-scope="scope">
                     <span>{{
@@ -330,7 +330,7 @@
             </span>
         </el-dialog>
         <extraction-cost ref="extractionCost" />
-        <freight-rate ref="freightRate"></freight-rate>
+        <freight-rate ref="freightRate" @refreshPage="refreshChange"></freight-rate>
     </div>
 </template>
 
@@ -572,7 +572,7 @@ export default {
                 calcHeight: 30,
                 tip: false,
                 searchShow: true,
-                searchMenuSpan: 18,
+                searchMenuSpan: 6,
                 searchLabelWidth: "100",
                 border: true,
                 index: true,
@@ -1637,7 +1637,7 @@ export default {
             );
         }
         if (this.saberUserInfo.role_name.indexOf('admin') != -1 || this.saberUserInfo.role_name.indexOf('总部') != -1) {
-            this.optionBack.searchMenuSpan = 12
+            this.optionBack.searchMenuSpan = 24
             this.optionBack.column.forEach(item => {
                 if (item.prop == 'branchId') {
                     item.search = true
@@ -1665,16 +1665,29 @@ export default {
     },
     methods: {
         freightRateSubmit() {
-            // for (let item of this.selectionList) {
-               
-            // }
-            let obj={
-                 polId:this.selectionList[0].polId,
-                 podId:this.selectionList[0].podId,
-                 actualShippingCompanyId:this.selectionList[0].carrierId,
-                 etd:this.selectionList[0].etd,
+            const ids = []
+            for (let item of this.selectionList) {
+                if (item.polId != this.selectionList[0].polId) {
+                    return this.$message.error("请选择相同的装货港");
+                }
+                if (item.podId != this.selectionList[0].podId) {
+                    return this.$message.error("请选择相同的卸货港");
+                }
+                if (item.carrierId != this.selectionList[0].carrierId) {
+                    return this.$message.error("请选择相同的船公司");
+                }
+                 if (item.etd != this.selectionList[0].etd) {
+                    return this.$message.error("请选择相同的ETD");
+                }
+                ids.push(item.id)
+            }
+            let obj = {
+                polId: this.selectionList[0].polId,
+                podId: this.selectionList[0].podId,
+                actualShippingCompanyId: this.selectionList[0].carrierId,
+                etd: this.selectionList[0].etd,
             }
-            this.$refs.freightRate.openDialog(obj)
+            this.$refs.freightRate.openDialog(obj, ids.join(','))
         },
         costSubmit() {
             let podId = []
@@ -2595,7 +2608,7 @@ export default {
             this.optionBack = this.$options.data().optionBack;
             localStorage.removeItem(this.getColumnName(code));
             if (this.saberUserInfo.role_name.indexOf('admin') != -1 || this.saberUserInfo.role_name.indexOf('总部') != -1) {
-                this.optionBack.searchMenuSpan = 12
+                this.optionBack.searchMenuSpan = 24
                 this.optionBack.column.forEach(item => {
                     if (item.prop == 'branchId') {
                         item.search = true

+ 6 - 0
src/views/iosBasicData/UnpaidPaymentsDetails/index.vue

@@ -124,6 +124,12 @@ export default {
                         },
                         search: false,
                     },
+                     {
+                        label: "所属公司",
+                        prop: "branchName",
+                        width: "120",
+                        overHidden: true,
+                    },
                     {
                         label: "业务类型",
                         prop: "businessType",

+ 130 - 71
src/views/iosBasicData/businessCenter/bookingCabin/detailsPage.vue

@@ -47,9 +47,16 @@
               @selectChange="dicChange('branchName', $event)" :default="true"
               :disabled="editDisabled || roleName.includes('secondaryAdmin')"></dic-select>
           </tempalte>
-          <dic-select v-model="form.operatorName" placeholder="OP" :key="form.branchId" label="realName"
-            :url="'/blade-user/userListAll?roleAlias=操作员&deptId=' + form.branchId" :filterable="true"
-            dataName="realName" @selectChange="dicChange('operatorName', $event)" :disabled="editDisabled"></dic-select>
+          <tempalte slot="operatorName">
+            <dic-select v-model="form.operatorName" placeholder="OP" :key="form.branchId" label="realName"
+              :url="'/blade-user/userListAll?roleAlias=操作员&deptId=' + form.branchId" :filterable="true"
+              @selectChange="dicChange('operatorName', $event)" :disabled="editDisabled"></dic-select>
+          </tempalte>
+          <tempalte slot="accDeptName">
+            <dic-select v-model="form.accDeptName" placeholder="客服" :key="form.branchId" label="realName"
+              :url="'/blade-user/userListAll?roleAlias=客服&deptId=' + form.branchId" :filterable="true"
+              @selectChange="dicChange('accDeptName', $event)" :disabled="editDisabled"></dic-select>
+          </tempalte>
           <tempalte slot="polCnName">
             <dic-select v-model="form.polCnName" placeholder="起运港" key="id" label="cnName" res="records"
               url="/blade-los/bports/list?current=1&size=5" :filterable="true" :remote="true" dataName="cnName"
@@ -73,10 +80,10 @@
               dataName="shortName" @selectChange="dicChange('carrierCnName', $event)" :disabled="editDisabled"
               :slotRight="true" rightLabel="code"></dic-select>
           </tempalte>
-          <tempalte slot="shippingCompanyCname">
-            <dic-select v-model="form.shippingCompanyCname" placeholder="承运人" key="id" label="shortName" res="records"
+          <tempalte slot="actualShippingCompanyCname">
+            <dic-select v-model="form.actualShippingCompanyCname" placeholder="承运人" key="id" label="shortName" res="records"
               url="/blade-los/bcorps/selectList?current=1&size=5&corpTypeName=船公司" :filterable="true" :remote="true"
-              dataName="shortName" @selectChange="dicChange('shippingCompanyCname', $event)" :slotRight="true"
+              dataName="shortName" @selectChange="dicChange('actualShippingCompanyCname', $event)" :slotRight="true"
               rightLabel="code" :disabled="editDisabled"></dic-select>
           </tempalte>
           <tempalte slot="hpaymode">
@@ -84,33 +91,37 @@
               url="/blade-system/dict-biz/dictionary?code=payment_method_los" :filterable="true"
               :disabled="editDisabled"></dic-select>
           </tempalte>
-          <tempalte slot="transportationTerms">
-            <dic-select v-model="form.transportationTerms" placeholder="运输条款" key="id" label="cnName" res="records"
+          <tempalte slot="serviceTerms">
+            <dic-select v-model="form.serviceTerms" placeholder="运输条款" key="id" label="cnName" res="records"
               url="/blade-los/bserviceterms/list?status=0&current=1&size=20" :filterable="true" :remote="true"
-              dataName="cnName" @selectChange="dicChange('transportationTerms', $event)"
-              :disabled="editDisabled"></dic-select>
+              dataName="cnName" @selectChange="dicChange('serviceTerms', $event)" :disabled="editDisabled"></dic-select>
           </tempalte>
           <tempalte slot="packingUnit">
             <dic-select v-model="form.packingUnit" placeholder="目的港" key="id" label="cnName" res="records"
-              url="/blade-los/bpackages/list?current=1&size=5&status=0&whetherDg=0" :filterable="true" :remote="true" dataName="cnName"
-              @selectChange="dicChange('packingUnit', $event)" :disabled="editDisabled" :slotRight="true"
-              rightLabel="code"></dic-select>
+              url="/blade-los/bpackages/list?current=1&size=5&status=0&whetherDg=0" :filterable="true" :remote="true"
+              dataName="cnName" @selectChange="dicChange('packingUnit', $event)" :disabled="editDisabled"
+              :slotRight="true" rightLabel="code"></dic-select>
+          </tempalte>
+          <tempalte slot="vesselCnName">
+            <dic-select v-model="form.vesselCnName" placeholder="船名" key="id" label="cnName" res="records"
+              url="/blade-los/bvessels/list" :filterable="true" :remote="true" dataName="cnName"
+              @selectChange="dicChange('vesselCnName', $event)" :disabled="editDisabled"></dic-select>
           </tempalte>
         </avue-form>
       </trade-card>
       <trade-card title="箱明细">
-        <avue-crud :option="option" :data="form.costItemList" id="out-table" ref="crud"
+        <avue-crud :option="option" :data="form.preContainersList" id="out-table" ref="crud"
           :header-cell-class-name="headerClassName" :row-style="{ height: '20px', padding: '0px' }"
           :cell-style="{ height: '20px', padding: '0px' }" @selection-change="selectionChange" @select="selectHandle"
           @row-update="rowUpdate" @resetColumn="resetColumn('crud', 'option', 'optionBack', 499)"
           @saveColumn="saveColumn('crud', 'option', 'optionBack', 499)">
           <template slot="menuLeft">
-            <el-button type="info" plain size="small" :disabled="editDisabled"
+            <!-- <el-button type="info" plain size="small" :disabled="editDisabled"
               @click="allClick('一键保存')">一键保存</el-button>
             <el-button type="info" plain size="small" :disabled="editDisabled"
               @click="allClick('一键编辑')">一键编辑</el-button>
             <el-button type="danger" plain size="small" :disabled="editDisabled || selectionList.length == 0"
-              @click="allClick('批量删除')">批量删除</el-button>
+              @click="allClick('批量删除')">批量删除</el-button> -->
           </template>
           <template slot="indexHeader" slot-scope="{row,index}">
             <el-button type="primary" size="mini" icon="el-icon-plus" :disabled="editDisabled" circle @click="addRow()">
@@ -136,7 +147,7 @@
 </template>
 
 <script>
-import { submit, submitItemList, submitFeeList, getDetail, removeItem, feeRemove, checkAgent, revokeCheckAgent, copyAgent } from "@/api/iosBasicData/costcenter/coc";
+import { submit, getDetail, submitItemList, copyAgent, itemRemove, pleaseCheck, repealCancel } from "@/api/iosBasicData/businessCenter/bookingCabin.js";
 import { losbfeestemplateGetListTemplate } from "@/api/iosBasicData/bills";
 import { losbfeestemplateDetail } from "@/api/iosBasicData/losbfeestemplate";
 import dicSelect from "@/components/dicSelect/main";
@@ -216,7 +227,7 @@ export default {
         branchName: JSON.parse(localStorage.getItem('sysitemData')).deptName,
         operatorName: JSON.parse(localStorage.getItem('saber-userInfo')).content.user_name, // OP 默认登录人
         operatorId: JSON.parse(localStorage.getItem('saber-userInfo')).content.user_id,
-        costItemList: [],
+        preContainersList: [],
       },
       polFeeList: [],
       podFeeList: [],
@@ -242,14 +253,14 @@ export default {
             prop: "operatorName",
             disabled: false,
           },
-               {
+          {
             label: '客服',
             prop: "accDeptName",
             disabled: false,
           },
           {
             label: '承运人',
-            prop: "shippingCompanyCname",
+            prop: "actualShippingCompanyCname",
             disabled: false,
             rules: [{
               required: true,
@@ -293,8 +304,8 @@ export default {
             }]
           },
           {
-            label: '订舱约号',
-            prop: "airlineCname",
+            label: 'booking NO',
+            prop: "bookingNo",
             disabled: false,
           },
           {
@@ -317,11 +328,17 @@ export default {
           },
           {
             label: "运输条款",
-            prop: "transportationTerms",
+            prop: "serviceTerms",
             width: "80",
             overHidden: true,
           },
           {
+            label: '总TEU',
+            prop: "teu",
+            disabled: false,
+          },
+
+          {
             label: '件数',
             prop: "quantity",
             disabled: false,
@@ -343,11 +360,55 @@ export default {
             disabled: false,
           },
           {
+            label: '订舱代理',
+            prop: "bookingAgentCnName",
+            disabled: false,
+            span: 4
+          },
+          {
+            label: '',
+            labelWidth: 0,
+            prop: "bookingAgentEnName",
+            disabled: false,
+            span: 2
+          },
+          {
+            label: 'MB/L NO',
+            prop: "mblno",
+            disabled: false,
+          },
+          {
+            label: '船名',
+            prop: "vesselCnName",
+            disabled: false,
+          },
+          {
+            label: '航次',
+            prop: "voyageNo",
+            disabled: false,
+          },
+          {
+            label: '截单日期',
+            prop: "cyTrailerTime",
+            disabled: false,
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd HH:mm:ss",
+          },
+          {
+            label: '截港日期',
+            prop: "cyReturnTime",
+            disabled: false,
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd HH:mm:ss",
+          },
+          {
             label: '订舱备注',
             prop: "remarks",
             type: 'textarea',
             disabled: false,
-            span: 12,
+            span: 24,
             minRows: 2,
           },
         ]
@@ -358,11 +419,11 @@ export default {
         disabled: false,
         labelWidth: 100,
         column: [
-          {
-            label: '系统号',
-            prop: "businessNo",
-            disabled: true,
-          },
+          // {
+          //   label: '系统号',
+          //   prop: "businessNo",
+          //   disabled: true,
+          // },
           {
             label: '制单人',
             prop: "createUserName",
@@ -421,7 +482,7 @@ export default {
               }
             ]
           },
-                {
+          {
             label: "箱量",
             prop: "quantity",
             overHidden: true,
@@ -460,7 +521,7 @@ export default {
     this.roleName = localStorage.getItem('roleName').split(',')
     this.option = await this.getColumnData(this.getColumnName(499), this.optionBack);
     this.saveLocalCurrency(JSON.parse(localStorage.getItem('sysitemData')).deptId)
-    if (this.detailData.id) {
+    if (this.detailData && this.detailData.id) {
       // this.editButton = true
       // this.editDisabled = true
       // this.optionForm.disabled = true
@@ -474,11 +535,10 @@ export default {
     }
   },
   methods: {
-    async dicChange(name, row) {
+   dicChange(name, row) {
       if (name == 'branchName') {
         if (row) {
           this.form.branchId = row.id
-          this.saveLocalCurrency(row.id)
         } else {
           this.form.branchId = null
           this.form.branchName = null
@@ -543,18 +603,28 @@ export default {
           this.form.carrierShortName = null
         }
       }
-      if (name == 'shippingCompanyCname') {
+      if (name == 'actualShippingCompanyCname') {
+        if (row) {
+          this.form.actualShippingCompanyId = row.id
+          this.form.actualShippingCompanyCode = row.code
+          this.form.actualShippingCompanyEname = row.enName
+          this.form.actualShippingCompanyAbbreviation = row.shortName
+        } else {
+          this.form.actualShippingCompanyId = null
+          this.form.actualShippingCompanyCode = null
+          this.form.actualShippingCompanyEname = null
+          this.form.actualShippingCompanyCname = null
+          this.form.actualShippingCompanyAbbreviation = null
+        }
+      }
+      if (name == 'vesselCnName') {
         if (row) {
-          this.form.shippingCompanyId = row.id
-          this.form.shippingCompanyCode = row.code
-          this.form.shippingCompanyEname = row.enName
-          this.form.shippingCompanyAbbreviation = row.shortName
+          this.form.vesselId = row.id
+          this.form.vesselEnName = row.enName
         } else {
-          this.form.shippingCompanyId = null
-          this.form.shippingCompanyCode = null
-          this.form.shippingCompanyEname = null
-          this.form.shippingCompanyCname = null
-          this.form.shippingCompanyAbbreviation = null
+          this.form.vesselId = null
+          this.form.vesselEnName = null
+          this.form.vesselCnName = null
         }
       }
     },
@@ -564,7 +634,7 @@ export default {
       if (!this.form.id) {
         return this.$message.error("请保存数据");
       }
-      this.form.costItemList.push({
+      this.form.preContainersList.push({
         pid: this.form.id,
         $cellEdit: true
       })
@@ -583,15 +653,12 @@ export default {
         background: 'rgba(255,255,255,0.7)'
       });
       getDetail({ id: id }).then(res => {
-        this.polFeeList = res.data.data.costFeeList.filter(item => item.busType == 'POL')
-        this.podFeeList = res.data.data.costFeeList.filter(item => item.busType == 'POD')
-        this.saveLocalCurrency(res.data.data.branchId)
         this.form = res.data.data
-        if (res.data.data.status != '录入') {
-          this.editButton = true
-          this.editDisabled = true
-          this.optionForm.disabled = true
-        }
+        // if (res.data.data.status != '录入') {
+        //   this.editButton = true
+        //   this.editDisabled = true
+        //   this.optionForm.disabled = true
+        // }
       }).finally(() => {
         loading.close()
       })
@@ -604,8 +671,6 @@ export default {
         background: 'rgba(255,255,255,0.7)'
       });
       copyAgent({ id: id }).then(res => {
-        this.polFeeList = res.data.data.costFeeList.filter(item => item.busType == 'POL')
-        this.podFeeList = res.data.data.costFeeList.filter(item => item.busType == 'POD')
         this.form = res.data.data
       }).finally(() => {
         loading.close()
@@ -620,10 +685,10 @@ export default {
     },
     allClick(name) {
       if (name == '一键保存') {
-        if (!this.form.costItemList.length) {
+        if (!this.form.preContainersList.length) {
           return this.$message.error("请添加数据");
         }
-        for (let row of this.form.costItemList) {
+        for (let row of this.form.preContainersList) {
           if (!row.cntrTypeCode || !row.quantity) {
             this.$refs.crud.rowCell(row, row.$index)
             return this.$message.error("请完善明细信息");
@@ -635,15 +700,15 @@ export default {
           spinner: 'el-icon-loading',
           background: 'rgba(255,255,255,0.7)'
         });
-        submitItemList(this.form.costItemList).then(res => {
+        submitItemList(this.form.preContainersList).then(res => {
           this.$message.success("保存成功");
-          this.form.costItemList = res.data.data
+          this.form.preContainersList = res.data.data
         }).finally(() => {
           loading.close();
         })
       }
       if (name == '一键编辑') {
-        for (let row of this.form.costItemList) {
+        for (let row of this.form.preContainersList) {
           this.$set(row, "$cellEdit", true);
         }
       }
@@ -656,7 +721,7 @@ export default {
           type: "warning"
         }).then(() => {
           multiList = this.selectionList
-          arr = this.form.costItemList
+          arr = this.form.preContainersList
           // 获取有id 的数据
           const itemsWithId = multiList.filter(item => item.id != null);
           let arrIds = itemsWithId.map(item => item.id) // 获取id 数据
@@ -675,7 +740,7 @@ export default {
               spinner: 'el-icon-loading',
               background: 'rgba(255,255,255,0.7)'
             });
-            removeItem({ ids: arrIds.join(',') }).then(res => {
+            itemRemove({ ids: arrIds.join(',') }).then(res => {
               this.$message.success("删除成功");
             }).finally(() => {
               loading.close();
@@ -684,18 +749,12 @@ export default {
         })
       }
     },
-    // 左侧选择
-    nodeClick(e) {
-      losbfeestemplateDetail(e.id).then(res => {
-        this.templateList = res.data.data.feesTemplateItemsList
-      })
-    },
     submit(type) {
       this.$refs["form"].validate((valid, done) => {
         done();
         if (valid) {
-          for (let row of this.form.costItemList) {
-           if (!row.cntrTypeCode || !row.quantity) {
+          for (let row of this.form.preContainersList) {
+            if (!row.cntrTypeCode || !row.quantity) {
               this.$refs.crud.rowCell(row, row.$index)
               return this.$message.error("请完善明细信息");
             }
@@ -753,7 +812,7 @@ export default {
           spinner: 'el-icon-loading',
           background: 'rgba(255,255,255,0.7)'
         });
-        checkAgent(obj).then(res => {
+        pleaseCheck(obj).then(res => {
           this.$message.success("请核成功");
           this.getDetails(res.data.data.id)
         }).finally(() => {
@@ -777,7 +836,7 @@ export default {
           spinner: 'el-icon-loading',
           background: 'rgba(255,255,255,0.7)'
         });
-        revokeCheckAgent(obj).then(res => {
+        repealCancel(obj).then(res => {
           this.$message.success("撤销请核成功");
           this.getDetails(res.data.data.id)
           this.editDisabled = false

+ 153 - 137
src/views/iosBasicData/businessCenter/bookingCabin/index.vue

@@ -10,24 +10,24 @@
                 <template slot="menuLeft">
                     <el-button type="primary" size="small" icon="el-icon-plus" @click="addButton">创建单据
                     </el-button>
-                    <el-button type="success" size="small" :disabled="selectionList.length != 1"
+                    <!-- <el-button type="success" size="small" :disabled="selectionList.length != 1"
                         @click="copyButton">复制单据
-                    </el-button>
+                    </el-button> -->
                     <el-button type="warning" size="small" @click="outExport">导 出</el-button>
                 </template>
                 <template slot="menu" slot-scope="{ row, index }">
                     <el-button size="small" icon="el-icon-edit" type="text" @click="rowEdit(row)">编辑</el-button>
                     <el-button size="small" icon="el-icon-delete" type="text" @click="rowDel(row, index)"
-                        :disabled="row.status != '录入'">删 除</el-button>
+                        :disabled="row.billStatus != '录入'">删 除</el-button>
                 </template>
                 <template slot="businessNo" slot-scope="{ row }">
                     <span style="color: #1e9fff;cursor: pointer;" @click="rowEdit(row)">{{ row.businessNo }}</span>
                 </template>
                 <template slot="status" slot-scope="{ row }">
-                    <span v-if="row.status == '录入'"
+                    <span v-if="row.billStatus == '录入'"
                         style="color: #fff;border-radius: 30px;padding: 2px 15px;background-color: #409EFF;">{{
                             row.status }}</span>
-                    <span v-if="row.status != '录入'"
+                    <span v-if="row.billStatus != '录入'"
                         style="color: #fff;border-radius: 30px;padding: 2px 15px;background-color: #67C23A;">{{
                             row.status }}</span>
                 </template>
@@ -38,7 +38,7 @@
 </template>
 
 <script>
-import { getList, remove, checkBillsBatch, batchRevoke } from "@/api/iosBasicData/costcenter/coc";
+import { getList, remove } from "@/api/iosBasicData/businessCenter/bookingCabin.js";
 import { getWorkDicts } from "@/api/system/dictbiz";
 import detailsPage from "./detailsPage";
 import { getToken } from "@/util/auth";
@@ -50,9 +50,6 @@ export default {
             isShow: true,
             form: {},
             query: {
-                businessType: 'COC',
-                sort: 0,
-                effectiveStartDate: dateFormat(new Date(), "yyyy-MM-dd") + " 00:00:00"
             },
             loading: false,
             page: {
@@ -79,63 +76,73 @@ export default {
                 searchIcon: true,
                 align: 'center',
                 searchIndex: 3,
-                summaryText: "合计",
-                showSummary: true,
-                sumColumnList: [
+                column: [
+                    // {
+                    //     label: "系统号",
+                    //     prop: "businessNo",
+                    //     width: "120",
+                    //     overHidden: true,
+                    // },
                     {
-                        name: 'profit20',
-                        type: 'sum',
-                        decimals: 2
+                        label: '所属公司',
+                        prop: "branchName",
+                        width: "120",
+                        overHidden: true,
                     },
                     {
-                        name: 'profit40',
-                        type: 'sum',
-                        decimals: 2
+                        label: 'OP',
+                        prop: "operatorName",
+                        width: "100",
+                        overHidden: true,
                     },
                     {
-                        name: 'profitHc',
-                        type: 'sum',
-                        decimals: 2
+                        label: '客服',
+                        prop: "accDeptName",
+                        width: "100",
+                        overHidden: true,
                     },
                     {
-                        name: 'otherProfit',
-                        type: 'sum',
-                        decimals: 2
-                    }
-                ],
-                column: [
-                    {
-                        label: "系统号",
-                        prop: "businessNo",
-                        width: "120",
+                        label: '承运人',
+                        prop: "actualShippingCompanyCname",
+                        width: "100",
                         overHidden: true,
                     },
                     {
-                        label: '所属公司',
-                        prop: "branchName",
-                        width: "120",
+                        label: "船公司",
+                        prop: "carrierCnName",
+                        width: "80",
                         overHidden: true,
+                        search: true,
+                        type: 'select',
+                        filterable: true,
+                        remote: true,
+                        dicUrl: "/api/blade-los/bcorps/list?current=1&size=5&corpTypeName=船公司&cnName={{key}}",
+                        props: {
+                            label: 'shortName',
+                            value: 'shortName',
+                            desc: 'code',
+                            res: 'data.records'
+                        },
                     },
                     {
-                        label: "起运港",
-                        prop: "podCname",
+                        label: "航线",
+                        prop: "lineCnName",
                         width: "80",
                         overHidden: true,
                         search: true,
                         type: 'select',
                         filterable: true,
                         remote: true,
-                        dicUrl: "/api/blade-los/bports/list?current=1&size=5&cnName={{key}}",
+                        dicUrl: "/api/blade-los/blines/list?cnName={{key}}",
                         props: {
                             label: 'cnName',
                             value: 'cnName',
-                            desc: 'code',
                             res: 'data.records'
                         },
                     },
                     {
-                        label: "目的港",
-                        prop: "destinationCname",
+                        label: "起运港",
+                        prop: "polCnName",
                         width: "80",
                         overHidden: true,
                         search: true,
@@ -151,50 +158,133 @@ export default {
                         },
                     },
                     {
-                        label: "船公司",
-                        prop: "shippingCompanyCname",
+                        label: "卸货港",
+                        prop: "podCnName",
                         width: "80",
                         overHidden: true,
                         search: true,
                         type: 'select',
                         filterable: true,
                         remote: true,
-                        dicUrl: "/api/blade-los/bcorps/list?current=1&size=5&corpTypeName=船公司&cnName={{key}}",
+                        dicUrl: "/api/blade-los/bports/list?current=1&size=5&cnName={{key}}",
                         props: {
-                            label: 'shortName',
-                            value: 'shortName',
+                            label: 'cnName',
+                            value: 'cnName',
                             desc: 'code',
                             res: 'data.records'
                         },
                     },
+
+                    {
+                        label: 'booking NO',
+                        prop: "bookingNo",
+                        width: "100",
+                        overHidden: true,
+                    },
+                    {
+                        label: 'ETD',
+                        prop: "etd",
+                        width: "100",
+                        overHidden: true,
+                        type: "date",
+                        format: "yyyy-MM-dd",
+                        valueFormat: "yyyy-MM-dd 00:00:00",
+                    },
+                    {
+                        label: '付费方式',
+                        prop: "hpaymode",
+                        width: "100",
+                        overHidden: true,
+                    },
+                    {
+                        label: '箱属',
+                        prop: "boxBelongsTo",
+                        width: "100",
+                        overHidden: true,
+                    },
                     {
                         label: "运输条款",
-                        prop: "transportationTerms",
+                        prop: "serviceTerms",
                         width: "80",
                         overHidden: true,
                     },
                     {
-                        label: "状态",
-                        prop: "status",
+                        label: '总TEU',
+                        prop: "teu",
                         width: "100",
-                        overHidden: true
+                        overHidden: true,
                     },
+
                     {
-                        label: "航线",
-                        prop: "airlineCname",
-                        width: "80",
+                        label: '件数',
+                        prop: "quantity",
+                        width: "100",
+                        overHidden: true,
+                    },
+                    {
+                        label: '包装',
+                        prop: "packingUnit",
+                        width: "100",
+                        overHidden: true,
+                    },
+
+                    {
+                        label: '毛重(KGS)',
+                        prop: "grossWeight",
+
+                        width: "100",
                         overHidden: true,
-                        search: true,
-                        searchOrder: 3,
-                        type: 'select',
-                        filterable: true,
-                        remote: true,
-                        dicUrl: "/api/blade-los/blines/list?cnName={{key}}",
-                        props: {
-                            label: 'cnName',
-                            value: 'cnName',
-                            res: 'data.records'
-                        },
+                    },
+                    {
+                        label: '尺码(CBM)',
+                        prop: "measurement",
+                        width: "100",
+                        overHidden: true,
+                    },
+                    {
+                        label: '订舱代理',
+                        prop: "bookingAgentCnName",
+                        width: "100",
+                        overHidden: true,
+                    },
+                    {
+                        label: 'MB/L NO',
+                        prop: "mblno",
+                        width: "100",
+                        overHidden: true,
+                    },
+                    {
+                        label: '船名',
+                        prop: "vesselCnName",
+                        width: "100",
+                        overHidden: true,
+                    },
+                    {
+                        label: '航次',
+                        prop: "voyageNo",
+                        width: "100",
+                        overHidden: true,
+                        type: "date",
+                        format: "yyyy-MM-dd",
+                        valueFormat: "yyyy-MM-dd HH:mm:ss",
+                    },
+                    {
+                        label: '截单日期',
+                        prop: "cyTrailerTime",
+                        width: "100",
+                        overHidden: true,
+                        type: "date",
+                        format: "yyyy-MM-dd",
+                        valueFormat: "yyyy-MM-dd HH:mm:ss",
+                    },
+                    {
+                        label: '截港日期',
+                        prop: "cyReturnTime",
+                        width: "100",
+                        overHidden: true,
+                           type: "date",
+                        format: "yyyy-MM-dd",
+                        valueFormat: "yyyy-MM-dd HH:mm:ss",
                     },
                     {
                         label: "制单人",
@@ -245,80 +335,6 @@ export default {
         }, 100);
     },
     methods: {
-        checkBills() {
-            for (let item of this.selectionList) {
-                if (item.status != '录入') {
-                    return this.$message.error("单据已提交审核,请勿重复操作");
-                }
-            }
-            let ids = []
-            for (let item of this.selectionList) {
-                ids.push(item.id)
-            }
-            let obj = {
-                ids: ids.join(","),
-                url: '/iosBasicData/costcenter/coc/index',
-                pageStatus: "",
-                pageLabel: "航线成本(COC)",
-            }
-            this.$confirm('是否批量单据请核?', '提示', {
-                confirmButtonText: '确定',
-                cancelButtonText: '取消',
-                type: 'warning'
-            }).then(() => {
-                const loading = this.$loading({
-                    lock: true,
-                    text: '加载中',
-                    spinner: 'el-icon-loading',
-                    background: 'rgba(255,255,255,0.7)'
-                });
-                checkBillsBatch(obj).then(res => {
-                    this.$message.success("操作成功!");
-                    this.onLoad(this.page, this.query);
-                }).finally(() => {
-                    loading.close();
-                })
-            })
-
-        },
-        batchRevoke() {
-            for (let item of this.selectionList) {
-                if (item.status == '录入') {
-                    return this.$message.error("单据未提交审核,请正确操作");
-                }
-            }
-            let ids = []
-            for (let item of this.selectionList) {
-                ids.push(item.id)
-            }
-            let obj = {
-                ids: ids.join(","),
-            }
-            this.$confirm('是否批量单据请核?', '提示', {
-                confirmButtonText: '确定',
-                cancelButtonText: '取消',
-                type: 'warning'
-            }).then(() => {
-                const loading = this.$loading({
-                    lock: true,
-                    text: '加载中',
-                    spinner: 'el-icon-loading',
-                    background: 'rgba(255,255,255,0.7)'
-                });
-                batchRevoke(obj).then(res => {
-                    this.$message.success("操作成功!");
-                    this.onLoad(this.page, this.query);
-                }).finally(() => {
-                    loading.close();
-                })
-            })
-
-        },
-        swap() {
-            let obj = this.deepClone(this.query)
-            this.query.podCname = obj.destinationCname
-            this.query.destinationCname = obj.podCname
-        },
         addButton() {
             this.isShow = false
         },

+ 3 - 3
src/views/iosBasicData/businessCenter/mkt&slot/index.vue

@@ -12,14 +12,14 @@
                     </el-button>
                     <!-- <el-button type="warning" size="small" @click="outExport">导 出
                     </el-button> -->
-                    <el-button type="success" size="small" :disabled="selectionList.length != 1"
+                    <!-- <el-button type="success" size="small" :disabled="selectionList.length != 1"
                         @click="copyButton">复制报价
-                    </el-button>
+                    </el-button> -->
                 </template>
                 <template slot="menu" slot-scope="{ row, index }">
                     <el-button size="small" icon="el-icon-edit" type="text" @click="rowEdit(row)">编辑</el-button>
                     <el-button size="small" icon="el-icon-delete" type="text" @click="rowDel(row, index)"
-                        :disabled="row.status != '录入'">删 除</el-button>
+                        :disabled="row.billStatus != '录入'">删 除</el-button>
                 </template>
                 <template slot="polCnName" slot-scope="{ row }">
                     <span style="color: #1e9fff;cursor: pointer;" @click="rowEdit(row)">{{ row.polCnName }}</span>

+ 4 - 4
src/views/iosBasicData/costcenter/airlineProfit/index.vue

@@ -19,7 +19,7 @@
                         <template slot="menuLeft">
                             <el-button type="warning" size="small" @click="outExport">导 出
                             </el-button>
-                            <el-button type="danger" size="small" @click="swap(1)">反 转
+                            <el-button type="danger" size="small" icon="el-icon-refresh" @click="swap(1)">
                             </el-button>
                         </template>
                     </avue-crud>
@@ -32,7 +32,7 @@
                         @resetColumn="resetColumn('crud2', 'option2', 'optionBack2', 468)"
                         @saveColumn="saveColumn('crud2', 'option2', 'optionBack2', 468)" @on-load="onLoad2">>
                         <template slot="menuLeft">
-                            <el-button type="danger" size="small" @click="swap(2)">反 转
+                            <el-button type="danger" size="small" icon="el-icon-refresh"  @click="swap(2)">
                             </el-button>
                         </template>
                     </avue-crud>
@@ -45,7 +45,7 @@
                         @resetColumn="resetColumn('crud3', 'option3', 'optionBack3', 469)"
                         @saveColumn="saveColumn('crud3', 'option3', 'optionBack3', 469)" @on-load="onLoad3">>
                         <template slot="menuLeft">
-                            <el-button type="danger" size="small" @click="swap(3)">反 转
+                            <el-button type="danger" size="small" icon="el-icon-refresh" @click="swap(3)">
                             </el-button>
                         </template>
                     </avue-crud>
@@ -53,7 +53,7 @@
                 <el-tab-pane label="调箱" name="fourth">
                     <avue-crud :data="data4" :option="option4">
                         <template slot="menuLeft">
-                            <el-button type="danger" size="small" @click="swap(4)">反 转
+                            <el-button type="danger" size="small" icon="el-icon-refresh" @click="swap(4)">
                             </el-button>
                         </template>
                     </avue-crud>

+ 15 - 10
src/views/iosBasicData/costcenter/coc/detailsPage.vue

@@ -110,10 +110,9 @@
             </trade-card>
             <trade-card title="基础明细">
                 <avue-crud :option="option" :data="form.costItemList" id="out-table" ref="crud"
-                    :header-cell-class-name="headerClassName" :row-style="{ height: '20px', padding: '0px' }"
-                    :cell-style="{ height: '20px', padding: '0px' }" @selection-change="selectionChange"
-                    @select="selectHandle" @row-update="rowUpdate"
-                    @resetColumn="resetColumn('crud', 'option', 'optionBack', 452)"
+                    :header-cell-class-name="headerClassName" ::cell-style="{ height: '20px', padding: '0px' }"
+                    :row-style="rowStyle" @selection-change="selectionChange" @select="selectHandle"
+                    @row-update="rowUpdate" @resetColumn="resetColumn('crud', 'option', 'optionBack', 452)"
                     @saveColumn="saveColumn('crud', 'option', 'optionBack', 452)">
                     <template slot="menuLeft">
                         <el-button type="info" plain size="small" :disabled="editDisabled"
@@ -123,12 +122,10 @@
                         <el-button type="danger" plain size="small"
                             :disabled="editDisabled || selectionList.length == 0"
                             @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>
+                        <el-button v-if="form.status != '录入'" type="success" plain size="small"
+                            :disabled="selectionList.length == 0" @click="allClick('批量禁用')">批量禁用</el-button>
+                        <el-button v-if="form.status != '录入'" type="danger" plain size="small"
+                            :disabled="selectionList.length == 0" @click="allClick('批量撤销禁用')">批量撤销禁用</el-button>
                     </template>
                     <template slot="indexHeader" slot-scope="{row,index}">
                         <el-button type="primary" size="mini" icon="el-icon-plus" :disabled="editDisabled" circle
@@ -2019,6 +2016,14 @@ export default {
         choceScheduleFun() {
             this.checkScheduleDialog = false
         },
+        rowStyle({ row, column, rowIndex, columnIndex }) {
+            if (row.disable == 1) {
+                return { height: '20px', padding: '0px', color: '#F56C6C' }
+            } else {
+                return { height: '20px', padding: '0px' }
+            }
+
+        },
         //自定义列保存
         async saveColumn(ref, option, optionBack, code) {
             const inSave = await this.saveColumnData(this.getColumnName(code), this[option]);

+ 1 - 1
src/views/iosBasicData/costcenter/coc/index.vue

@@ -22,7 +22,7 @@
                     </el-button>
                     <el-button type="warning" size="small" @click="outExport">导 出
                     </el-button>
-                    <el-button type="danger" size="small" @click="swap">反 转
+                    <el-button type="danger" size="small" icon="el-icon-refresh" @click="swap">
                     </el-button>
                     <el-button type="success" size="small" @click="checkBills" :disabled="!selectionList.length">提交
                     </el-button>

+ 16 - 8
src/views/iosBasicData/costcenter/soc/detailsPage.vue

@@ -164,10 +164,9 @@
                 <el-tab-pane label="一程" :name="1">
                     <trade-card title="箱利润">
                         <avue-crud :option="option" :data="form.costItemList" id="out-table" ref="crud"
-                            :header-cell-class-name="headerClassName" :row-style="{ height: '20px', padding: '0px' }"
-                            :cell-style="{ height: '20px', padding: '0px' }" @selection-change="selectionChange"
-                            @select="selectHandle" @row-update="rowUpdate"
-                            @resetColumn="resetColumn('crud', 'option', 'optionBack', 447)"
+                            :header-cell-class-name="headerClassName" :cell-style="{ height: '20px', padding: '0px' }"
+                            @selection-change="selectionChange" @select="selectHandle" @row-update="rowUpdate"
+                            :row-style="rowStyle" @resetColumn="resetColumn('crud', 'option', 'optionBack', 447)"
                             @saveColumn="saveColumn('crud', 'option', 'optionBack', 447)">
                             <template slot="menuLeft">
                                 <el-button type="info" plain size="small" :disabled="editDisabled"
@@ -177,11 +176,11 @@
                                 <el-button type="danger" plain size="small"
                                     :disabled="editDisabled || selectionList.length == 0"
                                     @click="allClick('批量删除')">批量删除</el-button>
-                                <el-button type="success" plain size="small"
-                                    :disabled="editDisabled || selectionList.length == 0"
+                                <el-button v-if="form.status!='录入'" type="success" plain size="small"
+                                    :disabled="selectionList.length == 0"
                                     @click="allClick('批量禁用')">批量禁用</el-button>
-                                <el-button type="danger" plain size="small"
-                                    :disabled="editDisabled || selectionList.length == 0"
+                                <el-button v-if="form.status!='录入'" type="danger" plain size="small"
+                                    :disabled="selectionList.length == 0"
                                     @click="allClick('批量撤销禁用')">批量撤销禁用</el-button>
                             </template>
                             <template slot="indexHeader" slot-scope="{row,index}">
@@ -704,6 +703,7 @@ import { getDicinit } from "@/api/dicSelect/index";
 import { dateFormat } from "@/util/date";
 import _ from "lodash";
 import { Header } from "element-ui";
+import { color } from "echarts";
 export default {
     name: "detailsPage",
     data() {
@@ -3372,6 +3372,14 @@ export default {
         choceScheduleFun() {
             this.checkScheduleDialog = false
         },
+        rowStyle({ row, column, rowIndex, columnIndex }) {
+            if (row.disable == 1) {
+                return { height: '20px', padding: '0px', color: '#F56C6C' }
+            } else {
+                return { height: '20px', padding: '0px' }
+            }
+
+        },
         //自定义列保存
         async saveColumn(ref, option, optionBack, code) {
             const inSave = await this.saveColumnData(this.getColumnName(code), this[option]);

+ 1 - 1
src/views/iosBasicData/costcenter/soc/index.vue

@@ -22,7 +22,7 @@
                     </el-button>
                     <el-button type="warning" size="small" @click="outExport">导 出
                     </el-button>
-                    <el-button type="danger" size="small" @click="swap">反 转
+                    <el-button type="danger" size="small" icon="el-icon-refresh" @click="swap">
                     </el-button>
                     <el-button type="success" size="small" @click="checkBills" :disabled="!selectionList.length">提交
                     </el-button>

+ 6 - 0
src/views/iosBasicData/decisionAnalysis/index.vue

@@ -100,6 +100,12 @@ export default {
                         },
                         search: false,
                     },
+                     {
+                        label: "所属公司",
+                        prop: "branchName",
+                        width: "120",
+                        overHidden: true,
+                    },
                     {
                         label: "业务来源",
                         prop: "srcType",

+ 3 - 2
src/views/iosBasicData/feeApplication/detailsPage.vue

@@ -601,11 +601,12 @@ export default {
     this.feedOption = await this.getColumnData(this.getColumnName(485), this.feedOptionBack);
     this.feecOption = await this.getColumnData(this.getColumnName(486), this.feecOptionBack);
     await this.saveLocalCurrency()
-          console.log(this.$route.query,this.detailData)
-    if (this.detailData&&this.detailData.id) {
+    console.log(this.$route.query, this.detailData)
+    if (this.detailData && this.detailData.id) {
       this.getDetail(this.detailData.id)
     }
     if (this.$route.query.billId) {
+      this.isSaveBtn=true
       this.getDetail(this.$route.query.billId)
     }
   },

+ 6 - 0
src/views/iosBasicData/financeProfit/index.vue

@@ -213,6 +213,12 @@ export default {
                         search: false,
                         searchOrder: 1,
                     },
+                     {
+                        label: "所属公司",
+                        prop: "branchName",
+                        width: "120",
+                        overHidden: true,
+                    },
                     {
                         label: "业务类型",
                         prop: "billType",

+ 22 - 2
src/views/iosBasicData/loloTemplate/feesTemplateItems.vue

@@ -136,7 +136,7 @@
                             url="/blade-system/dict-biz/dictionary?code=number_rule" :filterable="true"></dic-select>
                         <span v-else>{{ row.quantityRule }}</span>
                     </template>
-                       <template slot="unitNoForm" slot-scope="{row,index}">
+                    <template slot="unitNoForm" slot-scope="{row,index}">
                         <dic-select v-if="row.$cellEdit" v-model="row.unitNo" key="id" label="cnName"
                             url="/blade-los//bunits/listAll" :filterable="true" :disabled="row.quantityRule == '按箱型'"
                             @selectChange="rowDicChange('unitNo', $event, row)"></dic-select>
@@ -1013,6 +1013,27 @@ export default {
             this.$refs["form"].validate((valid, done) => {
                 done();
                 if (valid) {
+                    this.form.feesTemplateItemsList = [...this.feeDList, ...this.feeCList]
+                    let ids = []
+                    for (let item of this.form.feesTemplateItemsList) {
+                        if (item.quantityRule != '按箱型') {
+                            if (item.sonItemsList.length) {
+                                for (let row of item.sonItemsList) {
+                                    if (row.id) {
+                                        ids.push(row.id)
+                                    }
+                                }
+                            }
+                        }
+                    }
+                    if (ids.length) {
+                        this.form.feesTemplateItemsList.forEach(item => {
+                            if (item.quantityRule != '按箱型') {
+                                item.sonItemsList = []
+                            }
+                        })
+                        remove({ ids: ids.join(',') })
+                    }
                     this.losbfeestemplateSubmitfun()
                 } else {
                     return false;
@@ -1021,7 +1042,6 @@ export default {
         },
         // 保存接口
         losbfeestemplateSubmitfun() {
-            this.form.feesTemplateItemsList = [...this.feeDList, ...this.feeCList]
             this.saveLoading = true
             losbfeestemplateSubmit(this.form).then((res) => {
                 this.$message({

+ 22 - 1
src/views/iosBasicData/losbfeestemplate/feesTemplateItems.vue

@@ -102,7 +102,8 @@
                         <span v-else>{{ row.price }}</span>
                     </template>
                     <template slot="curCodeForm" slot-scope="{ row }">
-                        <dic-select v-if="row.$cellEdit" :disabled="row.quantityRule == '按箱型'"  v-model="row.curCode" placeholder="币别" label="dictValue"
+                        <dic-select v-if="row.$cellEdit" :disabled="row.quantityRule == '按箱型'" v-model="row.curCode"
+                            placeholder="币别" label="dictValue"
                             url="/blade-system/dict-biz/dictionary?code=currency"></dic-select>
                         <span v-else>{{ row.curCode }}</span>
                     </template>
@@ -1091,6 +1092,26 @@ export default {
             this.$refs["form"].validate((valid, done) => {
                 done();
                 if (valid) {
+                    let ids = []
+                    for (let item of this.form.feesTemplateItemsList) {
+                        if (item.quantityRule != '按箱型') {
+                            if (item.sonItemsList.length) {
+                                for (let row of item.sonItemsList) {
+                                    if (row.id) {
+                                        ids.push(row.id)
+                                    }
+                                }
+                            }
+                        }
+                    }
+                    if (ids.length) {
+                        this.form.feesTemplateItemsList.forEach(item=>{
+                            if(item.quantityRule != '按箱型'){
+                                item.sonItemsList=[]
+                            }
+                        })
+                        remove({ ids: ids.join(',') })
+                    }
                     this.losbfeestemplateSubmitfun()
                 } else {
                     return false;

+ 6 - 0
src/views/iosBasicData/paymentDetail/index.vue

@@ -140,6 +140,12 @@ export default {
                         },
                         search: false,
                     },
+                     {
+                        label: "所属公司",
+                        prop: "branchName",
+                        width: "120",
+                        overHidden: true,
+                    },
                     {
                         label: "业务类型",
                         prop: "businessType",

+ 6 - 0
src/views/iosBasicData/paymentSummary/index.vue

@@ -147,6 +147,12 @@ export default {
                         search: false,
                     },
                     {
+                        label: "所属公司",
+                        prop: "branchName",
+                        width: "120",
+                        overHidden: true,
+                    },
+                    {
                         label: "结算单位",
                         prop: "corpName",
                         overHidden: true,

+ 20 - 0
src/views/iosBasicData/podTemplate/feesTemplateItems.vue

@@ -920,6 +920,26 @@ export default {
             this.$refs["form"].validate((valid, done) => {
                 done();
                 if (valid) {
+                    let ids = []
+                    for (let item of this.form.feesTemplateItemsList) {
+                        if (item.quantityRule != '按箱型') {
+                            if (item.sonItemsList.length) {
+                                for (let row of item.sonItemsList) {
+                                    if (row.id) {
+                                        ids.push(row.id)
+                                    }
+                                }
+                            }
+                        }
+                    }
+                    if (ids.length) {
+                        this.form.feesTemplateItemsList.forEach(item => {
+                            if (item.quantityRule != '按箱型') {
+                                item.sonItemsList = []
+                            }
+                        })
+                        remove({ ids: ids.join(',') })
+                    }
                     this.losbfeestemplateSubmitfun()
                 } else {
                     return false;

+ 27 - 6
src/views/iosBasicData/polTemplate/feesTemplateItems.vue

@@ -53,8 +53,8 @@
                     </template>
                     <template slot="corpTypeForm" slot-scope="{row,index}">
                         <dic-select v-if="row.$cellEdit" v-model="row.corpType" label="cnName" res="records"
-                            url="/blade-los/bcorpstypedefine/list?status=0&current=1&size=20"
-                            :filterable="true" :remote="true" dataName="cnName"
+                            url="/blade-los/bcorpstypedefine/list?status=0&current=1&size=20" :filterable="true"
+                            :remote="true" dataName="cnName"
                             @selectChange="rowDicChange('corpType', $event, row)"></dic-select>
                         <span v-else>{{ row.corpType }}</span>
                     </template>
@@ -70,7 +70,7 @@
                             url="/blade-system/dict-biz/dictionary?code=number_rule" :filterable="true"></dic-select>
                         <span v-else>{{ row.quantityRule }}</span>
                     </template>
-                   <template slot="unitNoForm" slot-scope="{row,index}">
+                    <template slot="unitNoForm" slot-scope="{row,index}">
                         <dic-select v-if="row.$cellEdit" v-model="row.unitNo" key="id" label="cnName"
                             url="/blade-los/bunits/listAll" :filterable="true" :disabled="row.quantityRule == '按箱型'"
                             @selectChange="rowDicChange('unitNo', $event, row)"></dic-select>
@@ -92,7 +92,8 @@
                         <span v-else>{{ row.costPrice }}</span>
                     </template>
                     <template slot="curCodeForm" slot-scope="{ row }">
-                        <dic-select v-if="row.$cellEdit" :disabled="row.quantityRule == '按箱型'"  v-model="row.curCode" placeholder="币别" label="dictValue"
+                        <dic-select v-if="row.$cellEdit" :disabled="row.quantityRule == '按箱型'" v-model="row.curCode"
+                            placeholder="币别" label="dictValue"
                             url="/blade-system/dict-biz/dictionary?code=currency"></dic-select>
                         <span v-else>{{ row.curCode }}</span>
                     </template>
@@ -439,7 +440,7 @@ export default {
                             trigger: "blur"
                         }]
                     },
-                       {
+                    {
                         label: "数量",
                         prop: "quantity",
                         width: "80",
@@ -473,7 +474,7 @@ export default {
                             trigger: "blur"
                         }]
                     },
-                      {
+                    {
                         label: "成本价",
                         prop: "costPrice",
                         width: "120",
@@ -945,6 +946,26 @@ export default {
             this.$refs["form"].validate((valid, done) => {
                 done();
                 if (valid) {
+                    let ids = []
+                    for (let item of this.form.feesTemplateItemsList) {
+                        if (item.quantityRule != '按箱型') {
+                            if (item.sonItemsList.length) {
+                                for (let row of item.sonItemsList) {
+                                    if (row.id) {
+                                        ids.push(row.id)
+                                    }
+                                }
+                            }
+                        }
+                    }
+                    if (ids.length) {
+                        this.form.feesTemplateItemsList.forEach(item => {
+                            if (item.quantityRule != '按箱型') {
+                                item.sonItemsList = []
+                            }
+                        })
+                        remove({ ids: ids.join(',') })
+                    }
                     this.losbfeestemplateSubmitfun()
                 } else {
                     return false;

+ 43 - 33
src/views/ow/owPut/detailsPage.vue

@@ -810,39 +810,49 @@ export default {
           prop: 'podStationCname',
           disabled: false
         },
-        {
-          label: '箱型',
-          prop: 'boxTypeQuantityOne',
-          disabled: false,
-          rules: [{
-            required: true,
-            message: "",
-            trigger: "blur"
-          }]
-        },
-        {
-          label: '箱量',
-          prop: 'boxNumber',
-          disabled: false,
-          rules: [{
-            required: true,
-            message: "",
-            trigger: "blur"
-          }]
-        },
-        {
-          label: '剩余箱量',
-          prop: 'remainingBoxNumber',
-          disabled: true,
-        },
-        {
-          label: '启用日期',
-          prop: 'activationDate',
-          type: "date",
-          format: "yyyy-MM-dd",
-          valueFormat: "yyyy-MM-dd HH:mm:ss",
-          disabled: true,
-        },
+            {
+            label: '箱型',
+            prop: 'boxTypeQuantityOne',
+            disabled: false,
+            span: 5,
+            rules: [{
+              required: true,
+              message: "",
+              trigger: "blur"
+            }]
+          },
+          {
+            label: '箱量',
+            prop: 'boxNumber',
+            disabled: false,
+            span: 5,
+            rules: [{
+              required: true,
+              message: "",
+              trigger: "blur"
+            }]
+          },
+          {
+            label: '已提箱',
+            prop: 'suitcaseNum',
+            span: 5,
+            disabled: true,
+          },
+          {
+            label: '未提箱',
+            prop: 'notSuitcaseNum',
+            span: 5,
+            disabled: true,
+          },
+          {
+            label: '启用日期',
+            prop: 'activationDate',
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd HH:mm:ss",
+            span: 4,
+            disabled: true,
+          },
         {
           label: '有效日期起',
           prop: 'effectiveDate',

+ 15 - 3
src/views/ow/owPut/index.vue

@@ -244,10 +244,22 @@ export default {
             width: 80,
             overHidden: true,
           },
+          // {
+          //   label: '剩余箱量',
+          //   prop: 'remainingBoxNumber',
+          //   width: 100,
+          //   overHidden: true,
+          // },
           {
-            label: '剩余箱量',
-            prop: 'remainingBoxNumber',
-            width: 100,
+            label: '已提箱',
+            prop: 'suitcaseNum',
+            width: 80,
+            overHidden: true,
+          },
+          {
+            label: '未提箱',
+            prop: 'notSuitcaseNum',
+            width: 80,
             overHidden: true,
           },
           // {

+ 12 - 2
src/views/ow/owTask/detailsPage.vue

@@ -801,6 +801,7 @@ export default {
             label: '箱型',
             prop: 'boxTypeQuantityOne',
             disabled: false,
+            span: 5,
             rules: [{
               required: true,
               message: "",
@@ -811,6 +812,7 @@ export default {
             label: '箱量',
             prop: 'boxNumber',
             disabled: false,
+            span: 5,
             rules: [{
               required: true,
               message: "",
@@ -818,8 +820,15 @@ export default {
             }]
           },
           {
-            label: '剩余箱量',
-            prop: 'remainingBoxNumber',
+            label: '已提箱',
+            prop: 'suitcaseNum',
+            span: 5,
+            disabled: true,
+          },
+          {
+            label: '未提箱',
+            prop: 'notSuitcaseNum',
+            span: 5,
             disabled: true,
           },
           {
@@ -828,6 +837,7 @@ export default {
             type: "date",
             format: "yyyy-MM-dd",
             valueFormat: "yyyy-MM-dd HH:mm:ss",
+            span: 4,
             disabled: true,
           },
           {

+ 39 - 3
src/views/ow/owTask/index.vue

@@ -243,13 +243,49 @@ export default {
             width: 80,
             overHidden: true,
           },
+          // {
+          //   label: '剩余箱量',
+          //   prop: 'remainingBoxNumber',
+          //   width: 100,
+          //   overHidden: true,
+          // },
+          // {
+          //   label: '总箱数',
+          //   prop: 'totalNum',
+          //   width: 80,
+          //   overHidden: true,
+          // },
           {
-            label: '剩余箱量',
-            prop: 'remainingBoxNumber',
-            width: 100,
+            label: '已提箱',
+            prop: 'suitcaseNum',
+            width: 80,
+            overHidden: true,
+          },
+          {
+            label: '未提箱',
+            prop: 'notSuitcaseNum',
+            width: 80,
             overHidden: true,
           },
           // {
+          //   label: '盘场地存',
+          //   prop: 'storageNum',
+          //   width: 80,
+          //   overHidden: true,
+          // },
+          // {
+          //   label: '操作占用',
+          //   prop: 'occupyNum',
+          //   width: 80,
+          //   overHidden: true,
+          // },
+          // {
+          //   label: '可用箱',
+          //   prop: 'remainingNum',
+          //   width: 80,
+          //   overHidden: true,
+          // },
+          // {
           //   label: '场站',
           //   prop: 'stationId',
           //   width: 100,

+ 5 - 5
src/views/system/dept.vue

@@ -41,8 +41,8 @@
                         @corpFocus="polBportsListfun($event, 'polCnName')"
                     >
                     </search-query> -->
-                    <dic-select v-model="form.polCnName" placeholder="港口" key="id" label="cnName"
-                        url="/blade-los/bports/listAll?status=0" :filterable="true" dataName="cnName" :multiple="true"
+                    <dic-select v-model="form.polCnName" placeholder="港口" key="id" label="code"
+                        url="/blade-los/bports/listAll?status=0" :filterable="true"  :multiple="true"
                         :collapseTags="true" dataType="string" @selectChange="dicChange('polCnName', $event)"
                         :slotRight="true" rightLabel="code" :multipleStrings="true"></dic-select>
                 </template>
@@ -448,9 +448,9 @@ export default {
                     }
                     this.form.polId = row.ids
                     this.form.polCnName = row.names
-                    this.form.polEnName = enNames.join(',');
-                    this.form.polCode = codes.join(',');
-                    this.form.polNamePrint = enNames.join(',');
+                    this.form.polEnName = row.names;
+                    this.form.polCode = row.names;
+                    this.form.polNamePrint = row.names;
                 } else {
                     this.form.polId = null
                     this.form.polCnName = null