Browse Source

箱管新加费用修改 删除 往来单位新加字段 海运进出口修改费用 客户订舱修改提交规则

Qukatie 7 months ago
parent
commit
eb973f8d26
28 changed files with 1405 additions and 91 deletions
  1. 1 1
      src/api/iosBasicData/bills.js
  2. 8 0
      src/api/iosBasicData/businessCenter/bookingCabin.js
  3. 7 0
      src/api/iosBasicData/feeModify.js
  4. 512 0
      src/components/feeModify/boxMain.vue
  5. 46 13
      src/components/feeModify/main.vue
  6. 10 4
      src/views/basicData/container/archives.vue
  7. 75 1
      src/views/boxManagement/agentBox/detailsPage.vue
  8. 75 1
      src/views/boxManagement/boxAdjustment/detailsPage.vue
  9. 139 1
      src/views/boxManagement/boxCost/detailsPage.vue
  10. 75 1
      src/views/boxManagement/boxExit/detailsPage.vue
  11. 76 3
      src/views/boxManagement/buyContainer/detailsPage.vue
  12. 75 1
      src/views/boxManagement/rentalBox/detailsPage.vue
  13. 1 1
      src/views/iosBasicData/OceanFreightImport/bills/assembly/feecenter.vue
  14. 51 16
      src/views/iosBasicData/SeafreightExportF/bills/assembly/EntrustmentLnformation.vue
  15. 2 2
      src/views/iosBasicData/SeafreightExportF/bills/assembly/feecenter.vue
  16. 16 15
      src/views/iosBasicData/SeafreightExportF/bills/assembly/formbottom.vue
  17. 61 2
      src/views/iosBasicData/bcorps/detailsPage.vue
  18. 2 2
      src/views/iosBasicData/businessCenter/customerBooking/components/DistributionBox/containers.vue
  19. 61 11
      src/views/iosBasicData/businessCenter/customerBooking/detailsPage.vue
  20. 2 1
      src/views/iosBasicData/businessCenter/customerBooking/index.vue
  21. 4 3
      src/views/iosBasicData/businessCenter/customerLetter/detailsPage.vue
  22. 2 0
      src/views/iosBasicData/costcenter/coc/detailsPage.vue
  23. 72 1
      src/views/iosBasicData/costcenter/soc/detailsPage.vue
  24. 14 3
      src/views/iosBasicData/costcenter/soc/index.vue
  25. 2 6
      src/views/iosBasicData/periodManagement/index.vue
  26. 8 0
      src/views/system/lock/indexF.vue
  27. 7 1
      src/views/system/user.vue
  28. 1 1
      src/views/wel/components/losHome.vue

+ 1 - 1
src/api/iosBasicData/bills.js

@@ -425,4 +425,4 @@ export const synchronizeData = (data) => {
     method: 'get',
     params: data
   })
-}
+}

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

@@ -134,4 +134,12 @@ export function submitConfirm(data) {
         method: 'post',
         data: data
     })
+}
+//获取当前登录人对应客户信息
+export const getBCorps = (data) => {
+    return request({
+        url: '/api/blade-los/bcorps/getBCorps',
+        method: 'get',
+        params: data
+    })
 }

+ 7 - 0
src/api/iosBasicData/feeModify.js

@@ -31,4 +31,11 @@ export const revokeapplyUpdate = (row) => {
     method: 'get',
     params: row
   })
+}
+export const applyUpdateCheck = (data) => {
+  return request({
+    url: '/api/blade-los/feecenterupdaterecord/applyUpdateCheck',
+    method: 'post',
+    data: data
+  })
 }

+ 512 - 0
src/components/feeModify/boxMain.vue

@@ -0,0 +1,512 @@
+<!-- eslint-disable vue/require-valid-default-prop -->
+<template>
+  <div>
+    <el-dialog :title="title" :visible.sync="dialogVisible" append-to-body width="80%" :before-close="handleClose"
+      :close-on-click-modal="false">
+      <div v-if="dialogVisible">
+        <el-divider>费用原来信息</el-divider>
+        <avue-form :option="oldOption" v-model="oldForm" ref="form"></avue-form>
+        <el-divider>费用修改信息</el-divider>
+        <avue-form :option="newOption" v-model="newForm" ref="form">
+          <template slot="corpTypeUpdate">
+            <dic-select v-model="newForm.corpTypeUpdate" key="id" label="cnName" res="records"
+              url="/blade-los/bcorpstypedefine/list?status=0&current=1&size=20" :filterable="true" :remote="true"
+              dataName="cnName" @selectChange="dicChange('corpTypeUpdate', $event)"></dic-select>
+          </template>
+          <template slot="shortNameUpdate">
+            <dic-select v-model="newForm.shortNameUpdate" placeholder="结算单位" :key="newForm.corpTypeUpdate"
+              label="shortName" res="records"
+              :url="'/blade-los/bcorps/selectList?status=0&current=1&size=5&corpTypeName=' + newForm.corpTypeUpdate"
+              :filterable="true" :remote="true" dataName="shortName"
+              @selectChange="dicChange('shortNameUpdate', $event)" :slotRight="true" rightLabel="code"
+              :disabled="newOption.disabled"></dic-select>
+          </template>
+          <!-- <template slot="billShortNameUpdate">
+            <dic-select v-model="newForm.billShortNameUpdate" placeholder="客户名称" label="shortName" res="records"
+              url="/blade-los/bcorps/selectList?status=0&current=1&size=5" :filterable="true" :remote="true"
+              dataName="shortName" @selectChange="dicChange('billShortNameUpdate', $event)" :slotRight="true"
+              rightLabel="code" :disabled="newOption.disabled"></dic-select>
+          </template> -->
+          <template slot="feeCnNameUpdate">
+            <dic-select v-model="newForm.feeCnNameUpdate" placeholder="费用名称" label="cnName" res="records"
+              url="/blade-los/bfees/list?status=0&current=1&size=20" :filterable="true" :remote="true" dataName="cnName"
+              @selectChange="dicChange('feeCnNameUpdate', $event)" :slotRight="true" rightLabel="code"
+              :disabled="newOption.disabled"></dic-select>
+          </template>
+          <template slot="unitNoUpdate">
+            <dic-select v-model="newForm.unitNoUpdate" :key="updateFormKey" placeholder="计量单位" label="code"
+              :filterable="true" :mockData="unitNoData" :disabled="newOption.disabled"
+              @selectChange="dicChange('unitNoUpdate', $event)"></dic-select>
+            <!-- <el-select v-model="newForm.unitNoUpdate" placeholder="请选择 计量单位" size="small"
+              @visible-change="visibleChange" @change="dicChange('unitNoUpdate', $event)">
+              <el-option v-for="item in unitNoData" :key="item.code" :label="item.code" :value="item.code">
+              </el-option>
+            </el-select> -->
+          </template>
+          <template slot="curCodeUpdate">
+            <dic-select v-model="newForm.curCodeUpdate" placeholder="币别" label="code"
+              :url="'/blade-los/bcurrency/obtainRate?deptId=' + deptId + '&date=' + form.etd + ' 00:00:00' + '&type=1'"
+              :filterable="true" @selectChange="dicChange('curCodeUpdate', $event, row)"
+              :disabled="newOption.disabled"></dic-select>
+          </template>
+          <template slot="priceUpdate">
+            <el-input-number v-model="newForm.priceUpdate" :controls="false" placeholder="请输入 单价" size="small"
+              style="width: 100%;" :precision="2" @change="countChange()"
+              :disabled="newOption.disabled"></el-input-number>
+          </template>
+          <template slot="quantityUpdate">
+            <el-input-number v-model="newForm.quantityUpdate" :controls="false" placeholder="请输入 数量" size="small"
+              style="width: 100%;" :precision="0" @change="countChange()"
+              :disabled="newOption.disabled"></el-input-number>
+          </template>
+        </avue-form>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible = false" size="mini">关 闭</el-button>
+        <el-button v-if="type" type="primary" @click="submit" size="mini">确定修改</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { applyUpdate, revokeapplyUpdate, getDetail, applyUpdateCheck } from '@/api/iosBasicData/feeModify.js'
+import dicSelect from "@/components/dicSelect/main";
+import { getBunitsPage } from "@/api/iosBasicData/bunits";
+import _ from "lodash";
+export default {
+  components: {
+    dicSelect
+  },
+  props: {
+    form: {
+      type: Object,
+      default: () => { },
+    },
+    url: {
+      type: String,
+    },
+    pageStatus: {
+      type: String,
+    },
+    pageLabel: {
+      type: String,
+    }
+  },
+  data() {
+    return {
+      deptId: JSON.parse(localStorage.getItem('sysitemData')).deptId,
+      oldForm: {},
+      newForm: {},
+      unitNoData: [],
+      dialogVisible: false,
+      oldOption: {
+        menuBtn: false,
+        span: 12,
+        disabled: true,
+        labelWidth: 100,
+        column: [
+          {
+            label: "类别",
+            prop: "corpType",
+          },
+          {
+            label: "结算单位",
+            prop: "shortName",
+          },
+          // {
+          //   label: "客户名称",
+          //   prop: "billShortName",
+          // },
+          {
+            label: "费用名称",
+            prop: "feeCnName",
+          },
+          {
+            label: "计量单位",
+            prop: "unitNo",
+          },
+          {
+            label: "币别",
+            prop: "curCode",
+          },
+          {
+            label: "汇率",
+            prop: "exrate",
+          },
+          {
+            label: "数量",
+            prop: "quantity",
+          },
+          {
+            label: "单价",
+            prop: "price",
+          },
+          {
+            label: "金额",
+            prop: "amount",
+          },
+          {
+            label: "备注",
+            prop: "remarks",
+            minRows: 2,
+          }
+        ]
+      },
+      newOption: {
+        menuBtn: false,
+        span: 12,
+        disabled: false,
+        labelWidth: 100,
+        column: [
+          {
+            label: "类别",
+            prop: "corpTypeUpdate",
+          },
+          {
+            label: "结算单位",
+            prop: "shortNameUpdate",
+          },
+          {
+            label: "费用名称",
+            prop: "feeCnNameUpdate",
+          },
+          {
+            label: "计量单位",
+            prop: "unitNoUpdate",
+          },
+          {
+            label: "币别",
+            prop: "curCodeUpdate",
+          },
+          {
+            label: "汇率",
+            prop: "exrateUpdate",
+            disabled: true,
+          },
+          {
+            label: "数量",
+            prop: "quantityUpdate",
+          },
+          {
+            label: "单价",
+            prop: "priceUpdate",
+          },
+          {
+            label: "金额",
+            prop: "amountUpdate",
+            disabled: true,
+          },
+          {
+            label: "备注",
+            prop: "remarksUpdate",
+            minRows: 2,
+          },
+          {
+            label: "修改原因",
+            prop: "updateReason",
+            minRows: 2,
+          }
+        ]
+      },
+      type: null,
+      title: null,
+      updateFormKey: new Date().getTime(),
+    }
+  },
+  created() {
+    // this.option = await this.getColumnData(this.getColumnName(309.6), this.optionBack);
+
+  },
+  methods: {
+    // 获取计算属性
+    // async getBunitsPagefun(type, feeRow) {
+    //   let srcBillId = null
+    //   if (this.form.billType == 'MH') {
+    //     srcBillId = this.form.masterId
+    //   } else {
+    //     srcBillId = this.form.id
+    //   }
+    //   const res = await getBunitsPage({ srcBillId })
+    //   this.unitNoData = []
+    //   let boxarr40 = ['40HC', '40GP']
+    //   let boxarr20 = ['20GP']
+    //   let teunum = 0
+    //   for (let item of res.data.data) {
+    //     // 按箱型
+    //     if (item.quantityRule != 1) {
+    //       // TEU
+    //       if (item.quantityRule == 4) {
+    //         for (let data of this.form.preContainersList) {
+    //           // 40*2 20*1
+    //           if (boxarr40.indexOf(data.cntrTypeCode) != -1) {
+    //             teunum += Number(data.quantity) * 2
+    //           } else if (boxarr20.indexOf(data.cntrTypeCode) != -1) {
+    //             teunum += Number(data.quantity)
+    //           }
+    //         }
+    //         this.unitNoData.push({ ...item, quantity: teunum })
+    //       } else {
+    //         this.unitNoData.push(item) // 不是TEU和不是箱的走这个
+    //       }
+    //     }
+    //   }
+    //   let arr = this.form.preContainersList.map(item => {
+    //     return {
+    //       quantityRule: 1, // 1 是按箱量
+    //       code: item.cntrTypeCode,
+    //       quantity: item.quantity,
+    //     }
+    //   })
+    //   this.unitNoData = [...arr, ...this.unitNoData]
+    //   // this.updateFormKey = new Date().getTime()
+    //   // // 选择费用时带出第一条
+    //   // if (type) {
+    //   //   let feeunitNodata = []
+    //   //   for (let item of this.unitNoData) {
+    //   //     if (item.quantityRule == feeRow.unitNo) {
+    //   //       feeunitNodata.push(item)
+    //   //     }
+    //   //   }
+    //   //   this.newForm.unitNoUpdate=feeunitNodata[0].code
+    //   // }
+    // },
+    openDialog(row, type) {
+      if (type == 'fix') {
+        this.oldForm = row
+        this.newForm = {
+          corpIdUpdate: row.corpId,
+          corpCnNameUpdate: row.corpCnName,
+          corpEnNameUpdate: row.corpEnName,
+          shortNameUpdate: row.shortName,
+          // billCorpIdUpdate: row.billCorpId,
+          // billCorpCnNameUpdate: row.billCorpCnName,
+          // billCorpEnNameUpdate: row.billCorpEnName,
+          // billShortNameUpdate: row.billShortName,
+          corpTypeUpdate: row.corpType,
+          feeIdUpdate: row.feeId,
+          feeCodeUpdate: row.feeCode,
+          feeEnNameUpdate: row.feeEnName,
+          feeCnNameUpdate: row.feeCnName,
+          unitNoUpdate: row.unitNo,
+          curCodeUpdate: row.curCode,
+          exrateUpdate: row.exrate,
+          quantityUpdate: row.quantity,
+          priceUpdate: row.price,
+          amountUpdate: row.amount,
+        }
+        this.checkRate(null, (this.form.etd ? this.form.etd + ' 00:00:00' : null), this.oldForm.dc, 1, this.form.branchId)
+        this.type = type
+        this.title = '费用申请修改'
+        let obj = {
+          ...this.oldForm,
+          ...this.newForm,
+          billDate: this.oldForm.billDate ? this.oldForm.billDate + ' 00:00:00' : null,
+          etd: this.oldForm.etd ? this.oldForm.etd + ' 00:00:00' : null,
+          eta: this.oldForm.eta ? this.oldForm.eta + ' 00:00:00' : null,
+          id: null,
+          pid: this.form.id,
+          itemId: this.oldForm.id,
+          branchId: this.form.branchId,
+          branchName: this.form.branchName,
+          url: this.url,
+          pageStatus: this.pageStatus,
+          pageLabel: this.pageLabel,
+        }
+        applyUpdateCheck(obj).then(res => {
+          this.dialogVisible = true
+        })
+
+      }
+      if (type == 'del') {
+        this.$confirm('是否申请费用删除?', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          this.oldForm = row
+          let obj = {
+            ...this.oldForm,
+            ...this.newForm,
+            billDate: this.oldForm.billDate ? this.oldForm.billDate + ' 00:00:00' : null,
+            etd: this.oldForm.etd ? this.oldForm.etd + ' 00:00:00' : null,
+            eta: this.oldForm.eta ? this.oldForm.eta + ' 00:00:00' : null,
+            type: 1,
+            id: null,
+            pid: this.form.id,
+            itemId: this.oldForm.id,
+            branchId: this.form.branchId,
+            branchName: this.form.branchName,
+            url: this.url,
+            pageStatus: this.pageStatus,
+            pageLabel: this.pageLabel,
+          }
+          applyUpdateCheck(obj).then(res => {
+            applyUpdate(obj).then(res => {
+              this.$message.success('操作成功');
+              this.$emit('updateDetail')
+            })
+          })
+
+        })
+      }
+      if (type == 'view') {
+        const obj = {
+          id: row.id,
+        }
+        getDetail(obj).then(res => {
+          this.oldForm = res.data.data
+          this.newForm = res.data.data
+          this.newOption.disabled = true
+          this.title = '查看费用'
+          this.dialogVisible = true
+        })
+      }
+      if (type == 'revoke') {
+        let obj = {
+          billId: this.form.id,
+          itemId: row.id
+        }
+        revokeapplyUpdate(obj).then(res => {
+          this.$message.success('操作成功');
+          this.$emit('updateDetail')
+        })
+      }
+    },
+    countChange() {
+      this.newForm.amountUpdate = _.round(_.multiply(this.newForm.priceUpdate ? this.newForm.priceUpdate : 0, this.newForm.quantityUpdate ? this.newForm.quantityUpdate : 0), 2)
+    },
+    dicChange(name, row) {
+      if (name == 'corpTypeUpdate') {
+        console.log(row)
+        if (row.cnName == '国内直接客户' || row.cnName == '国内同行及代理' || row.cnName == '国外直接客户') {
+          this.newForm.corpIdUpdate = this.form.corpId
+          this.newForm.shortNameUpdate = this.form.shortName
+          this.newForm.corpCnNameUpdate = this.form.corpCnName
+          this.newForm.corpEnNameUpdate = this.form.corpEnName
+        } else if (row.cnName == '国外同行及代理') {
+          this.newForm.corpIdUpdate = this.form.foreignAgencyId
+          this.newForm.shortNameUpdate = this.form.foreignAgencyCnName
+          this.newForm.corpCnNameUpdate = this.form.foreignAgencyCnName
+          this.newForm.corpEnNameUpdate = this.form.foreignAgencyEnName
+        } else if (row.cnName == '船公司') {
+          this.newForm.corpIdUpdate = this.form.carrierId
+          this.newForm.shortNameUpdate = this.form.carrierShortName
+          this.newForm.corpCnNameUpdate = this.form.carrierCnName
+          this.newForm.corpEnNameUpdate = this.form.carrierEnName
+        } else if (row.cnName == '场站') {
+          this.newForm.corpIdUpdate = this.form.cyId
+          this.newForm.shortNameUpdate = this.form.cyShortName
+          this.newForm.corpCnNameUpdate = this.form.cyCnName
+          this.newForm.corpEnNameUpdate = this.form.cyEnName
+        } else if (row.cnName == '船代') {
+          this.newForm.corpIdUpdate = this.form.shippingAgencyId
+          this.newForm.shortNameUpdate = this.form.shippingAgencyCname
+          this.newForm.corpCnNameUpdate = this.form.shippingAgencyCname
+          this.newForm.corpEnNameUpdate = this.form.shippingAgencyEname
+        } else {
+          this.newForm.corpIdUpdate = null
+          this.newForm.shortNameUpdate = null
+          this.newForm.corpCnNameUpdate = null
+          this.newForm.corpEnNameUpdate = null
+        }
+      }
+      if (name == 'shortNameUpdate') {
+        if (row) {
+          this.newForm.corpIdUpdate = row.id
+          this.newForm.corpCnNameUpdate = row.cnName
+          this.newForm.corpEnNameUpdate = row.enName
+        } else {
+          this.newForm.corpIdUpdate = null
+          this.newForm.corpCnNameUpdate = null
+          this.newForm.corpEnNameUpdate = null
+          this.newForm.shortNameUpdate = null
+        }
+      }
+      if (name == 'billShortNameUpdate') {
+        if (row) {
+          this.newForm.billCorpIdUpdate = row.id
+          this.newForm.billCorpCnNameUpdate = row.cnName
+          this.newForm.billCorpEnNameUpdate = row.enName
+        } else {
+          this.newForm.billCorpIdUpdate = null
+          this.newForm.billCorpCnNameUpdate = null
+          this.newForm.billCorpEnNameUpdate = null
+          this.newForm.billShortNameUpdate = null
+        }
+      }
+      if (name == 'feeCnNameUpdate') {
+        if (row) {
+          this.newForm.feeIdUpdate = row.id
+          this.newForm.feeCodeUpdate = row.code
+          this.newForm.feeEnNameUpdate = row.enName
+          this.newForm.curCodeUpdate = row.curNo
+          this.newForm.exrateUpdate = this.getExchangeRate(row.curNo, this.oldForm.dc, 1)
+          // this.getBunitsPagefun(true, row)
+        } else {
+          this.newForm.feeIdUpdate = null
+          this.newForm.feeCodeUpdate = null
+          this.newForm.feeEnNameUpdate = null
+          this.newForm.feeCnNameUpdate = null
+          this.newForm.exrateUpdate = null
+          this.newForm.exrateUpdate = null
+        }
+      }
+      if (name == 'curCodeUpdate') {
+        if (row) {
+          // console.log()
+          this.newForm.exrateUpdate = this.getExchangeRate(row.code, this.oldForm.dc, 1)
+        } else {
+          this.newForm.exrateUpdate = null
+        }
+
+      }
+      if (name == 'unitNoUpdate') {
+        // console.log(row)
+        // this.unitNoData.forEach(item => {
+        //   if (item.code == row) {
+        //     this.newForm.quantityUpdate = item.quantity
+        //     this.newForm.amountUpdate = _.round(_.multiply(this.newForm.priceUpdate ? this.newForm.priceUpdate : 0, this.newForm.quantityUpdate ? this.newForm.quantityUpdate : 0), 2)
+        //   }
+        // })
+        if (row) {
+          this.newForm.quantityUpdate = row.quantity
+          this.newForm.amountUpdate = _.round(_.multiply(this.newForm.priceUpdate ? this.newForm.priceUpdate : 0, this.newForm.quantityUpdate ? this.newForm.quantityUpdate : 0), 2)
+        }
+      }
+    },
+    visibleChange() {
+      // this.getBunitsPagefun()
+    },
+    submit() {
+      let obj = {
+        ...this.oldForm,
+        ...this.newForm,
+        billDate: this.oldForm.billDate ? this.oldForm.billDate + ' 00:00:00' : null,
+        etd: this.oldForm.etd ? this.oldForm.etd + ' 00:00:00' : null,
+        eta: this.oldForm.eta ? this.oldForm.eta + ' 00:00:00' : null,
+        type: 0,
+        id: null,
+        pid: this.form.id,
+        itemId: this.oldForm.id,
+        branchId: this.form.branchId,
+        branchName: this.form.branchName,
+        url: this.url,
+        pageStatus: this.pageStatus,
+        pageLabel: this.pageLabel,
+      }
+      applyUpdate(obj).then(res => {
+        this.$message.success('操作成功');
+        this.dialogVisible = false
+        this.$emit('updateDetail')
+      })
+    },
+  },
+}
+</script>
+
+<style scoped>
+::v-deep .el-dialog__body {
+  padding: 6px 20px !important;
+}
+</style>

+ 46 - 13
src/components/feeModify/main.vue

@@ -45,7 +45,7 @@
           </template>
           <template slot="curCodeUpdate">
             <dic-select v-model="newForm.curCodeUpdate" placeholder="币别" label="code"
-              :url="'/blade-los/bcurrency/obtainRate?deptId=' + deptId + '&date=' + form.etd + ' 00:00:00' + '&type=1'"
+              :url="'/blade-los/bcurrency/obtainRate?deptId=' + deptId + '&date=' + curCodeDate + '&type=1'"
               :filterable="true" @selectChange="dicChange('curCodeUpdate', $event, row)"
               :disabled="newOption.disabled"></dic-select>
           </template>
@@ -70,7 +70,7 @@
 </template>
 
 <script>
-import { applyUpdate, revokeapplyUpdate, getDetail } from '@/api/iosBasicData/feeModify.js'
+import { applyUpdate, revokeapplyUpdate, getDetail, applyUpdateCheck } from '@/api/iosBasicData/feeModify.js'
 import dicSelect from "@/components/dicSelect/main";
 import { getBunitsPage } from "@/api/iosBasicData/bunits";
 import _ from "lodash";
@@ -83,6 +83,18 @@ export default {
       type: Object,
       default: () => { },
     },
+    url: {
+      type: String,
+    },
+    pageStatus: {
+      type: String,
+    },
+    pageLabel: {
+      type: String,
+    },
+    curCodeDate: {
+      type: String,
+    },
   },
   data() {
     return {
@@ -286,10 +298,28 @@ export default {
           priceUpdate: row.price,
           amountUpdate: row.amount,
         }
-        this.checkRate(null, (this.form.etd ? this.form.etd + ' 00:00:00' : null), this.oldForm.dc, 1, this.form.branchId)
+        this.checkRate(null, this.curCodeDate, this.oldForm.dc, 1, this.form.branchId)
         this.type = type
         this.title = '费用申请修改'
-        this.dialogVisible = true
+        let obj = {
+          ...this.oldForm,
+          ...this.newForm,
+          billDate: this.oldForm.billDate ? this.oldForm.billDate + ' 00:00:00' : null,
+          etd: this.oldForm.etd ? this.oldForm.etd + ' 00:00:00' : null,
+          eta: this.oldForm.eta ? this.oldForm.eta + ' 00:00:00' : null,
+          id: null,
+          pid: this.form.id,
+          itemId: this.oldForm.id,
+          branchId: this.form.branchId,
+          branchName: this.form.branchName,
+          url: this.url,
+          pageStatus: this.pageStatus,
+          pageLabel: this.pageLabel,
+        }
+        applyUpdateCheck(obj).then(res => {
+          this.dialogVisible = true
+        })
+
       }
       if (type == 'del') {
         this.$confirm('是否申请费用删除?', '提示', {
@@ -310,14 +340,17 @@ export default {
             itemId: this.oldForm.id,
             branchId: this.form.branchId,
             branchName: this.form.branchName,
-            url: '/iosBasicData/SeafreightExportF/bills/index',
-            pageStatus: "this.$store.getters.approvalDetails",
-            pageLabel: "海运出口(F)",
+            url: this.url,
+            pageStatus: this.pageStatus,
+            pageLabel: this.pageLabel,
           }
-          applyUpdate(obj).then(res => {
-            this.$message.success('操作成功');
-            this.$emit('updateDetail')
+          applyUpdateCheck(obj).then(res => {
+            applyUpdate(obj).then(res => {
+              this.$message.success('操作成功');
+              this.$emit('updateDetail')
+            })
           })
+
         })
       }
       if (type == 'view') {
@@ -461,9 +494,9 @@ export default {
         itemId: this.oldForm.id,
         branchId: this.form.branchId,
         branchName: this.form.branchName,
-        url: '/iosBasicData/SeafreightExportF/bills/index',
-        pageStatus: "this.$store.getters.approvalDetails",
-        pageLabel: "海运出口(F)",
+        url: this.url,
+        pageStatus: this.pageStatus,
+        pageLabel: this.pageLabel,
       }
       applyUpdate(obj).then(res => {
         this.$message.success('操作成功');

+ 10 - 4
src/views/basicData/container/archives.vue

@@ -157,6 +157,7 @@ export default {
             label: '放箱号类型',
             prop: 'boxCategory',
             overHidden: true,
+            // search: true
           },
           {
             label: '箱动态',
@@ -305,11 +306,9 @@ export default {
           }
         ]
       },
-      excelBox: false,
       loading: false,
       search: {},
       form: {},
-      excelForm: {},
       dataList: [],
       page: {
         pageSize: 20,
@@ -333,7 +332,7 @@ export default {
         searchMenuPosition: "right",
         align: "center",
         searchSpan: 6,
-        searchMenuSpan: 24,
+        searchMenuSpan: 18,
         searchIcon: true,
         searchIndex: 3,
         menuWidth: 80,
@@ -442,10 +441,17 @@ export default {
           },
           {
             label: '放箱号类型',
-            prop: 'boxType',
+            prop: 'containerNumberType',
             width: 100,
             overHidden: true,
             disabled: true,
+            search: true,
+            type: 'select',
+            dicUrl: "/api/blade-system/dict-biz/dictionary?code=boxCategory",
+            props: {
+              label: "dictValue",
+              value: "dictValue"
+            },
           },
           {
             label: '放箱号OW',

+ 75 - 1
src/views/boxManagement/agentBox/detailsPage.vue

@@ -241,6 +241,12 @@
                   @click="allClick('费用批量删除')">批量删除</el-button>
                 <el-button type="primary" plain size="small" :disabled="selectionfeecList.length == 0"
                   @click="allClick('费用申请')">请核费用</el-button>
+                <el-button type="primary" plain size="small" :disabled="selectionfeecList.length != 1"
+                  @click="allClick('C申请修改')">申请修改</el-button>
+                <el-button type="success" plain size="small" :disabled="selectionfeecList.length != 1"
+                  @click="allClick('C申请删除')">申请删除</el-button>
+                <el-button type="danger" plain size="small" :disabled="selectionfeecList.length != 1"
+                  @click="allClick('C取消申请')">取消申请</el-button>
                 <!-- <el-button type="primary" plain size="small" @click="$refs.printC.openDialog()">打印账单</el-button> -->
               </template>
               <template slot="indexHeader" slot-scope="{row,index}">
@@ -381,6 +387,9 @@
         温馨提示 第一次导入时请先下载模板
       </p>
     </el-dialog>
+    <fee-modify ref="feeModify" :form="form" @updateDetail="updateDetail" url="/boxManagement/agentBox/index"
+      pageStatus="" pageLabel="代理箱"></fee-modify>
+    <fee-modify-view ref="feeModifyView" :form="form"></fee-modify-view>
   </div>
 </template>
 
@@ -407,6 +416,8 @@ import businessReports from "@/components/tradeAgency/businessReports.vue";
 import reports from "@/components/tradeAgency/reports.vue";
 import { bcurrencyGetExrate } from "@/api/iosBasicData/rateManagement";
 import { getToken } from "@/util/auth";
+import feeModify from "@/components/feeModify/boxMain.vue";
+import feeModifyView from "@/components/feeModify/view.vue";
 import _ from "lodash";
 import { Header } from "element-ui";
 export default {
@@ -1141,6 +1152,12 @@ export default {
             }, {
               label: '审核通过',
               value: '4',
+            }, {
+              label: '申请修改',
+              value: '5',
+            }, {
+              label: '申请删除',
+              value: '6',
             }],
           },
           {
@@ -1341,7 +1358,9 @@ export default {
     dicSelect,
     checkSchedule,
     businessReports,
-    reports
+    reports,
+    feeModify,
+    feeModifyView
   },
   props: {
     detailData: Object
@@ -2240,6 +2259,58 @@ export default {
           })
         });
       }
+      if (name == 'C申请修改') {
+        for (let row of this.selectionfeecList) {
+          if (!row.id) {
+            return this.$message.error("请保存费用明细");
+          }
+          if (row.auditStatus != 4) {
+            return this.$message.error("未审核通过的费用,不允许申请");
+          }
+          if (Number(row.appliedInvoiceAmount) > 0) {
+            return this.$message.error("请选择未申请发票的费用?");
+          }
+          if (Number(row.uninvoicedAmount) > 0) {
+            return this.$message.error("请选择未开票的费用?");
+          }
+          if (Number(row.stlTtlAmount) > 0) {
+            return this.$message.error("请选择未结算的费用?");
+          }
+          this.$refs.feeModify.openDialog(row, 'fix')
+        }
+      }
+      if (name == 'C申请删除') {
+        for (let row of this.selectionfeecList) {
+          if (!row.id) {
+            return this.$message.error("请保存费用明细");
+          }
+          if (row.auditStatus != 4) {
+            return this.$message.error("未审核通过的费用,不允许申请");
+          }
+          if (Number(row.appliedInvoiceAmount) > 0) {
+            return this.$message.error("请选择未申请发票的费用?");
+          }
+          if (Number(row.uninvoicedAmount) > 0) {
+            return this.$message.error("请选择未开票的费用?");
+          }
+          if (Number(row.stlTtlAmount) > 0) {
+            return this.$message.error("请选择未结算的费用?");
+          }
+          this.$refs.feeModify.openDialog(row, 'del')
+        }
+      }
+      if (name == 'C取消申请') {
+        for (let row of this.selectionfeecList) {
+          if (!row.id) {
+            return this.$message.error("请保存费用明细");
+          }
+          if (!(row.auditStatus == 5 || row.auditStatus == 6)) {
+            return this.$message.error("未申请修改或删除,不允许撤销申请");
+          }
+
+          this.$refs.feeModify.openDialog(row, 'revoke')
+        }
+      }
     },
     submit(type) {
       this.$refs["form"].validate((valid, done) => {
@@ -2282,6 +2353,9 @@ export default {
         }
       });
     },
+    updateDetail() {
+      this.getDetail(this.form.id)
+    },
     application() {
       this.$confirm("确定请核数据?", {
         confirmButtonText: "确定",

+ 75 - 1
src/views/boxManagement/boxAdjustment/detailsPage.vue

@@ -211,6 +211,12 @@
                   @click="allClick('费用批量删除')">批量删除</el-button>
                 <el-button type="primary" plain size="small" :disabled="selectionfeecList.length == 0"
                   @click="allClick('费用申请')">请核费用</el-button>
+                <el-button type="primary" plain size="small" :disabled="selectionfeecList.length != 1"
+                  @click="allClick('C申请修改')">申请修改</el-button>
+                <el-button type="success" plain size="small" :disabled="selectionfeecList.length != 1"
+                  @click="allClick('C申请删除')">申请删除</el-button>
+                <el-button type="danger" plain size="small" :disabled="selectionfeecList.length != 1"
+                  @click="allClick('C取消申请')">取消申请</el-button>
                 <!-- <el-button type="primary" plain size="small" @click="$refs.printC.openDialog()">打印账单</el-button> -->
               </template>
               <template slot="indexHeader" slot-scope="{row,index}">
@@ -324,6 +330,9 @@
         温馨提示 第一次导入时请先下载模板
       </p>
     </el-dialog>
+    <fee-modify ref="feeModify" :form="form" @updateDetail="updateDetail" url="/boxManagement/boxAdjustment/index"
+      pageStatus="" pageLabel="箱管调箱"></fee-modify>
+    <fee-modify-view ref="feeModifyView" :form="form"></fee-modify-view>
   </div>
 </template>
 
@@ -350,6 +359,8 @@ import dicSelect from "@/components/dicSelect/main";
 import checkSchedule from "@/components/checkH/checkSchedule.vue";
 import businessReports from "@/components/tradeAgency/businessReports.vue";
 import reports from "@/components/tradeAgency/reports.vue";
+import feeModify from "@/components/feeModify/boxMain.vue";
+import feeModifyView from "@/components/feeModify/view.vue";
 import { bcurrencyGetExrate } from "@/api/iosBasicData/rateManagement";
 import { getToken } from "@/util/auth";
 import _ from "lodash";
@@ -1013,6 +1024,12 @@ export default {
             }, {
               label: '审核通过',
               value: '4',
+            }, {
+              label: '申请修改',
+              value: '5',
+            }, {
+              label: '申请删除',
+              value: '6',
             }],
           },
           {
@@ -1213,7 +1230,9 @@ export default {
     dicSelect,
     checkSchedule,
     businessReports,
-    reports
+    reports,
+    feeModify,
+    feeModifyView
   },
   props: {
     detailData: Object
@@ -1939,6 +1958,58 @@ export default {
           })
         });
       }
+      if (name == 'C申请修改') {
+        for (let row of this.selectionfeecList) {
+          if (!row.id) {
+            return this.$message.error("请保存费用明细");
+          }
+          if (row.auditStatus != 4) {
+            return this.$message.error("未审核通过的费用,不允许申请");
+          }
+          if (Number(row.appliedInvoiceAmount) > 0) {
+            return this.$message.error("请选择未申请发票的费用?");
+          }
+          if (Number(row.uninvoicedAmount) > 0) {
+            return this.$message.error("请选择未开票的费用?");
+          }
+          if (Number(row.stlTtlAmount) > 0) {
+            return this.$message.error("请选择未结算的费用?");
+          }
+          this.$refs.feeModify.openDialog(row, 'fix')
+        }
+      }
+      if (name == 'C申请删除') {
+        for (let row of this.selectionfeecList) {
+          if (!row.id) {
+            return this.$message.error("请保存费用明细");
+          }
+          if (row.auditStatus != 4) {
+            return this.$message.error("未审核通过的费用,不允许申请");
+          }
+          if (Number(row.appliedInvoiceAmount) > 0) {
+            return this.$message.error("请选择未申请发票的费用?");
+          }
+          if (Number(row.uninvoicedAmount) > 0) {
+            return this.$message.error("请选择未开票的费用?");
+          }
+          if (Number(row.stlTtlAmount) > 0) {
+            return this.$message.error("请选择未结算的费用?");
+          }
+          this.$refs.feeModify.openDialog(row, 'del')
+        }
+      }
+      if (name == 'C取消申请') {
+        for (let row of this.selectionfeecList) {
+          if (!row.id) {
+            return this.$message.error("请保存费用明细");
+          }
+          if (!(row.auditStatus == 5 || row.auditStatus == 6)) {
+            return this.$message.error("未申请修改或删除,不允许撤销申请");
+          }
+
+          this.$refs.feeModify.openDialog(row, 'revoke')
+        }
+      }
     },
     submit(type) {
       this.$refs["form"].validate((valid, done) => {
@@ -2021,6 +2092,9 @@ export default {
         })
       });
     },
+    updateDetail() {
+      this.getDetail(this.form.id)
+    },
     application() {
       this.$confirm("确定请核数据?", {
         confirmButtonText: "确定",

+ 139 - 1
src/views/boxManagement/boxCost/detailsPage.vue

@@ -171,6 +171,12 @@
                 <el-button type="primary" plain size="small"
                   :disabled="(selectionfeedList.length == 0 && selectionfeecList.length == 0) || form.buxStaus == '已确认'"
                   @click="allClick('D费用申请')">请核费用</el-button>
+                <el-button type="primary" plain size="small" :disabled="selectionfeedList.length != 1"
+                  @click="allClick('D申请修改')">申请修改</el-button>
+                <el-button type="success" plain size="small" :disabled="selectionfeedList.length != 1"
+                  @click="allClick('D申请删除')">申请删除</el-button>
+                <el-button type="danger" plain size="small" :disabled="selectionfeedList.length != 1"
+                  @click="allClick('D取消申请')">取消申请</el-button>
                 <!-- <el-button type="primary" plain size="small" @click="$refs.printC.openDialog()">打印账单</el-button> -->
               </template>
               <template slot="indexHeader" slot-scope="{row,index}">
@@ -267,6 +273,12 @@
                 <!-- <el-button type="primary" plain size="small" :disabled="editDisabled || selectionfeecList.length == 0"
                   @click="allClick('C费用申请')">请核费用</el-button> -->
                 <!-- <el-button type="primary" plain size="small" @click="$refs.printC.openDialog()">打印账单</el-button> -->
+                <el-button type="primary" plain size="small" :disabled="selectionfeecList.length != 1"
+                  @click="allClick('C申请修改')">申请修改</el-button>
+                <el-button type="success" plain size="small" :disabled="selectionfeecList.length != 1"
+                  @click="allClick('C申请删除')">申请删除</el-button>
+                <el-button type="danger" plain size="small" :disabled="selectionfeecList.length != 1"
+                  @click="allClick('C取消申请')">取消申请</el-button>
               </template>
               <template slot="indexHeader" slot-scope="{row,index}">
                 <el-button type="primary" size="mini" icon="el-icon-plus" :disabled="form.buxStaus == '已确认'" circle
@@ -475,6 +487,9 @@
         温馨提示 第一次导入时请先下载模板
       </p>
     </el-dialog>
+    <fee-modify ref="feeModify" :form="form" @updateDetail="updateDetail" url="/boxManagement/boxCost/index"
+      pageStatus="" pageLabel="箱管费用"></fee-modify>
+    <fee-modify-view ref="feeModifyView" :form="form"></fee-modify-view>
   </div>
 </template>
 
@@ -498,6 +513,8 @@ import dicSelect from "@/components/dicSelect/main";
 import checkSchedule from "@/components/checkH/checkSchedule.vue";
 import businessReports from "@/components/tradeAgency/businessReports.vue";
 import reports from "@/components/tradeAgency/reports.vue";
+import feeModify from "@/components/feeModify/boxMain.vue";
+import feeModifyView from "@/components/feeModify/view.vue";
 import { dateFormat } from "@/util/date";
 import { bcurrencyGetExrate } from "@/api/iosBasicData/rateManagement";
 import { getToken } from "@/util/auth";
@@ -1155,6 +1172,12 @@ export default {
             }, {
               label: '审核通过',
               value: '4',
+            }, {
+              label: '申请修改',
+              value: '5',
+            }, {
+              label: '申请删除',
+              value: '6',
             }],
           },
           {
@@ -1429,6 +1452,12 @@ export default {
             }, {
               label: '审核通过',
               value: '4',
+            }, {
+              label: '申请修改',
+              value: '5',
+            }, {
+              label: '申请删除',
+              value: '6',
             }],
           },
           {
@@ -1630,7 +1659,9 @@ export default {
     dicSelect,
     checkSchedule,
     businessReports,
-    reports
+    reports,
+    feeModify,
+    feeModifyView
   },
   props: {
     detailData: Object
@@ -2502,6 +2533,58 @@ export default {
           })
         });
       }
+      if (name == 'D申请修改') {
+        for (let row of this.selectionfeedList) {
+          if (!row.id) {
+            return this.$message.error("请保存费用明细");
+          }
+          if (row.auditStatus != 4) {
+            return this.$message.error("未审核通过的费用,不允许申请");
+          }
+          if (Number(row.appliedInvoiceAmount) > 0) {
+            return this.$message.error("请选择未申请发票的费用?");
+          }
+          if (Number(row.uninvoicedAmount) > 0) {
+            return this.$message.error("请选择未开票的费用?");
+          }
+          if (Number(row.stlTtlAmount) > 0) {
+            return this.$message.error("请选择未结算的费用?");
+          }
+          this.$refs.feeModify.openDialog(row, 'fix')
+        }
+      }
+      if (name == 'D申请删除') {
+        for (let row of this.selectionfeedList) {
+          if (!row.id) {
+            return this.$message.error("请保存费用明细");
+          }
+          if (row.auditStatus != 4) {
+            return this.$message.error("未审核通过的费用,不允许申请");
+          }
+          if (Number(row.appliedInvoiceAmount) > 0) {
+            return this.$message.error("请选择未申请发票的费用?");
+          }
+          if (Number(row.uninvoicedAmount) > 0) {
+            return this.$message.error("请选择未开票的费用?");
+          }
+          if (Number(row.stlTtlAmount) > 0) {
+            return this.$message.error("请选择未结算的费用?");
+          }
+          this.$refs.feeModify.openDialog(row, 'del')
+        }
+      }
+      if (name == 'D取消申请') {
+        for (let row of this.selectionfeedList) {
+          if (!row.id) {
+            return this.$message.error("请保存费用明细");
+          }
+          if (!(row.auditStatus == 5 || row.auditStatus == 6)) {
+            return this.$message.error("未申请修改或删除,不允许撤销申请");
+          }
+
+          this.$refs.feeModify.openDialog(row, 'revoke')
+        }
+      }
       if (name == 'C费用申请') {
         for (let row of this.selectionfeecList) {
           if (row.stlPid && row.accStatus != 0) {
@@ -2539,6 +2622,58 @@ export default {
           })
         });
       }
+      if (name == 'C申请修改') {
+        for (let row of this.selectionfeecList) {
+          if (!row.id) {
+            return this.$message.error("请保存费用明细");
+          }
+          if (row.auditStatus != 4) {
+            return this.$message.error("未审核通过的费用,不允许申请");
+          }
+          if (Number(row.appliedInvoiceAmount) > 0) {
+            return this.$message.error("请选择未申请发票的费用?");
+          }
+          if (Number(row.uninvoicedAmount) > 0) {
+            return this.$message.error("请选择未开票的费用?");
+          }
+          if (Number(row.stlTtlAmount) > 0) {
+            return this.$message.error("请选择未结算的费用?");
+          }
+          this.$refs.feeModify.openDialog(row, 'fix')
+        }
+      }
+      if (name == 'C申请删除') {
+        for (let row of this.selectionfeecList) {
+          if (!row.id) {
+            return this.$message.error("请保存费用明细");
+          }
+          if (row.auditStatus != 4) {
+            return this.$message.error("未审核通过的费用,不允许申请");
+          }
+          if (Number(row.appliedInvoiceAmount) > 0) {
+            return this.$message.error("请选择未申请发票的费用?");
+          }
+          if (Number(row.uninvoicedAmount) > 0) {
+            return this.$message.error("请选择未开票的费用?");
+          }
+          if (Number(row.stlTtlAmount) > 0) {
+            return this.$message.error("请选择未结算的费用?");
+          }
+          this.$refs.feeModify.openDialog(row, 'del')
+        }
+      }
+      if (name == 'C取消申请') {
+        for (let row of this.selectionfeecList) {
+          if (!row.id) {
+            return this.$message.error("请保存费用明细");
+          }
+          if (!(row.auditStatus == 5 || row.auditStatus == 6)) {
+            return this.$message.error("未申请修改或删除,不允许撤销申请");
+          }
+
+          this.$refs.feeModify.openDialog(row, 'revoke')
+        }
+      }
     },
     submit(type) {
       this.$refs["form"].validate((valid, done) => {
@@ -2623,6 +2758,9 @@ export default {
         })
       });
     },
+    updateDetail() {
+      this.getDetail(this.form.id)
+    },
     application() {
       this.$confirm("确定请核数据?", {
         confirmButtonText: "确定",

+ 75 - 1
src/views/boxManagement/boxExit/detailsPage.vue

@@ -219,6 +219,12 @@
                   @click="allClick('费用批量删除')">批量删除</el-button>
                 <el-button type="primary" plain size="small" :disabled="selectionfeecList.length == 0"
                   @click="allClick('费用申请')">请核费用</el-button>
+                <el-button type="primary" plain size="small" :disabled="selectionfeecList.length != 1"
+                  @click="allClick('C申请修改')">申请修改</el-button>
+                <el-button type="success" plain size="small" :disabled="selectionfeecList.length != 1"
+                  @click="allClick('C申请删除')">申请删除</el-button>
+                <el-button type="danger" plain size="small" :disabled="selectionfeecList.length != 1"
+                  @click="allClick('C取消申请')">取消申请</el-button>
                 <!-- <el-button type="primary" plain size="small" @click="$refs.printC.openDialog()">打印账单</el-button> -->
               </template>
               <template slot="indexHeader" slot-scope="{row,index}">
@@ -333,6 +339,9 @@
         温馨提示 第一次导入时请先下载模板
       </p>
     </el-dialog>
+    <fee-modify ref="feeModify" :form="form" @updateDetail="updateDetail" url="/boxManagement/boxExit/index"
+      pageStatus="" pageLabel="出场申请"></fee-modify>
+    <fee-modify-view ref="feeModifyView" :form="form"></fee-modify-view>
   </div>
 </template>
 
@@ -359,6 +368,8 @@ import dicSelect from "@/components/dicSelect/main";
 import checkSchedule from "@/components/checkH/checkSchedule.vue";
 import businessReports from "@/components/tradeAgency/businessReports.vue";
 import reports from "@/components/tradeAgency/reports.vue";
+import feeModify from "@/components/feeModify/boxMain.vue";
+import feeModifyView from "@/components/feeModify/view.vue";
 import { bcurrencyGetExrate } from "@/api/iosBasicData/rateManagement";
 import { getToken } from "@/util/auth";
 import _ from "lodash";
@@ -1063,6 +1074,12 @@ export default {
             }, {
               label: '审核通过',
               value: '4',
+            }, {
+              label: '申请修改',
+              value: '5',
+            }, {
+              label: '申请删除',
+              value: '6',
             }],
           },
           {
@@ -1263,7 +1280,9 @@ export default {
     dicSelect,
     checkSchedule,
     businessReports,
-    reports
+    reports,
+    feeModify,
+    feeModifyView
   },
   props: {
     detailData: Object
@@ -1976,6 +1995,58 @@ export default {
           })
         });
       }
+      if (name == 'C申请修改') {
+        for (let row of this.selectionfeecList) {
+          if (!row.id) {
+            return this.$message.error("请保存费用明细");
+          }
+          if (row.auditStatus != 4) {
+            return this.$message.error("未审核通过的费用,不允许申请");
+          }
+          if (Number(row.appliedInvoiceAmount) > 0) {
+            return this.$message.error("请选择未申请发票的费用?");
+          }
+          if (Number(row.uninvoicedAmount) > 0) {
+            return this.$message.error("请选择未开票的费用?");
+          }
+          if (Number(row.stlTtlAmount) > 0) {
+            return this.$message.error("请选择未结算的费用?");
+          }
+          this.$refs.feeModify.openDialog(row, 'fix')
+        }
+      }
+      if (name == 'C申请删除') {
+        for (let row of this.selectionfeecList) {
+          if (!row.id) {
+            return this.$message.error("请保存费用明细");
+          }
+          if (row.auditStatus != 4) {
+            return this.$message.error("未审核通过的费用,不允许申请");
+          }
+          if (Number(row.appliedInvoiceAmount) > 0) {
+            return this.$message.error("请选择未申请发票的费用?");
+          }
+          if (Number(row.uninvoicedAmount) > 0) {
+            return this.$message.error("请选择未开票的费用?");
+          }
+          if (Number(row.stlTtlAmount) > 0) {
+            return this.$message.error("请选择未结算的费用?");
+          }
+          this.$refs.feeModify.openDialog(row, 'del')
+        }
+      }
+      if (name == 'C取消申请') {
+        for (let row of this.selectionfeecList) {
+          if (!row.id) {
+            return this.$message.error("请保存费用明细");
+          }
+          if (!(row.auditStatus == 5 || row.auditStatus == 6)) {
+            return this.$message.error("未申请修改或删除,不允许撤销申请");
+          }
+
+          this.$refs.feeModify.openDialog(row, 'revoke')
+        }
+      }
     },
     submit(type) {
       this.$refs["form"].validate((valid, done) => {
@@ -2058,6 +2129,9 @@ export default {
         })
       });
     },
+    updateDetail() {
+      this.getDetail(this.form.id)
+    },
     application() {
       this.$confirm("确定请核数据?", {
         confirmButtonText: "确定",

+ 76 - 3
src/views/boxManagement/buyContainer/detailsPage.vue

@@ -175,7 +175,12 @@
                   @click="allClick('费用批量删除')">批量删除</el-button>
                 <el-button type="primary" plain size="small" :disabled="selectionfeecList.length == 0"
                   @click="allClick('费用申请')">请核费用</el-button>
-                <!-- <el-button type="primary" plain size="small" @click="$refs.printC.openDialog()">打印账单</el-button> -->
+                <el-button type="primary" plain size="small" :disabled="selectionfeecList.length != 1"
+                  @click="allClick('C申请修改')">申请修改</el-button>
+                <el-button type="success" plain size="small" :disabled="selectionfeecList.length != 1"
+                  @click="allClick('C申请删除')">申请删除</el-button>
+                <el-button type="danger" plain size="small" :disabled="selectionfeecList.length != 1"
+                  @click="allClick('C取消申请')">取消申请</el-button>
               </template>
               <template slot="indexHeader" slot-scope="{row,index}">
                 <el-button type="primary" size="mini" icon="el-icon-plus" :disabled="false" circle
@@ -317,6 +322,9 @@
         温馨提示 第一次导入时请先下载模板
       </p>
     </el-dialog>
+    <fee-modify ref="feeModify" :form="form" @updateDetail="updateDetail" url="/boxManagement/buyContainer/index"
+      pageStatus="" pageLabel="买箱"></fee-modify>
+    <fee-modify-view ref="feeModifyView" :form="form"></fee-modify-view>
   </div>
 </template>
 
@@ -339,6 +347,8 @@ import dicSelect from "@/components/dicSelect/main";
 import checkSchedule from "@/components/checkH/checkSchedule.vue";
 import businessReports from "@/components/tradeAgency/businessReports.vue";
 import reports from "@/components/tradeAgency/reports.vue";
+import feeModify from "@/components/feeModify/boxMain.vue";
+import feeModifyView from "@/components/feeModify/view.vue";
 import { bcurrencyGetExrate } from "@/api/iosBasicData/rateManagement";
 import { getToken } from "@/util/auth";
 import _ from "lodash";
@@ -466,7 +476,7 @@ export default {
         labelWidth: 100,
         column: [
           {
-            label:this.$t("title"),
+            label: "出售方",
             prop: 'purchaseCompanyName',
             rules: [{
               required: true,
@@ -972,6 +982,12 @@ export default {
             }, {
               label: '审核通过',
               value: '4',
+            }, {
+              label: '申请修改',
+              value: '5',
+            }, {
+              label: '申请删除',
+              value: '6',
             }],
           },
           {
@@ -1172,7 +1188,9 @@ export default {
     dicSelect,
     checkSchedule,
     businessReports,
-    reports
+    reports,
+    feeModify,
+    feeModifyView
   },
   props: {
     detailData: Object
@@ -1899,6 +1917,58 @@ export default {
           })
         });
       }
+      if (name == 'C申请修改') {
+        for (let row of this.selectionfeecList) {
+          if (!row.id) {
+            return this.$message.error("请保存费用明细");
+          }
+          if (row.auditStatus != 4) {
+            return this.$message.error("未审核通过的费用,不允许申请");
+          }
+          if (Number(row.appliedInvoiceAmount) > 0) {
+            return this.$message.error("请选择未申请发票的费用?");
+          }
+          if (Number(row.uninvoicedAmount) > 0) {
+            return this.$message.error("请选择未开票的费用?");
+          }
+          if (Number(row.stlTtlAmount) > 0) {
+            return this.$message.error("请选择未结算的费用?");
+          }
+          this.$refs.feeModify.openDialog(row, 'fix')
+        }
+      }
+      if (name == 'C申请删除') {
+        for (let row of this.selectionfeecList) {
+          if (!row.id) {
+            return this.$message.error("请保存费用明细");
+          }
+          if (row.auditStatus != 4) {
+            return this.$message.error("未审核通过的费用,不允许申请");
+          }
+          if (Number(row.appliedInvoiceAmount) > 0) {
+            return this.$message.error("请选择未申请发票的费用?");
+          }
+          if (Number(row.uninvoicedAmount) > 0) {
+            return this.$message.error("请选择未开票的费用?");
+          }
+          if (Number(row.stlTtlAmount) > 0) {
+            return this.$message.error("请选择未结算的费用?");
+          }
+          this.$refs.feeModify.openDialog(row, 'del')
+        }
+      }
+      if (name == 'C取消申请') {
+        for (let row of this.selectionfeecList) {
+          if (!row.id) {
+            return this.$message.error("请保存费用明细");
+          }
+          if (!(row.auditStatus == 5 || row.auditStatus == 6)) {
+            return this.$message.error("未申请修改或删除,不允许撤销申请");
+          }
+
+          this.$refs.feeModify.openDialog(row, 'revoke')
+        }
+      }
     },
     submit(type) {
       this.$refs["form"].validate((valid, done) => {
@@ -1935,6 +2005,9 @@ export default {
         }
       });
     },
+    updateDetail() {
+      this.getDetail(this.form.id)
+    },
     application() {
       this.$confirm("确定请核数据?", {
         confirmButtonText: "确定",

+ 75 - 1
src/views/boxManagement/rentalBox/detailsPage.vue

@@ -219,6 +219,12 @@
                   @click="allClick('费用批量删除')">批量删除</el-button>
                 <el-button type="primary" plain size="small" :disabled="selectionfeecList.length == 0"
                   @click="allClick('费用申请')">请核费用</el-button>
+                <el-button type="primary" plain size="small" :disabled="selectionfeecList.length != 1"
+                  @click="allClick('C申请修改')">申请修改</el-button>
+                <el-button type="success" plain size="small" :disabled="selectionfeecList.length != 1"
+                  @click="allClick('C申请删除')">申请删除</el-button>
+                <el-button type="danger" plain size="small" :disabled="selectionfeecList.length != 1"
+                  @click="allClick('C取消申请')">取消申请</el-button>
                 <!-- <el-button type="primary" plain size="small" @click="$refs.printC.openDialog()">打印账单</el-button> -->
               </template>
               <template slot="indexHeader" slot-scope="{row,index}">
@@ -361,6 +367,9 @@
         温馨提示 第一次导入时请先下载模板
       </p>
     </el-dialog>
+    <fee-modify ref="feeModify" :form="form" @updateDetail="updateDetail" url="/boxManagement/rentalBox/index"
+      pageStatus="" pageLabel="租箱"></fee-modify>
+    <fee-modify-view ref="feeModifyView" :form="form"></fee-modify-view>
   </div>
 </template>
 
@@ -389,6 +398,8 @@ import dicSelect from "@/components/dicSelect/main";
 import checkSchedule from "@/components/checkH/checkSchedule.vue";
 import businessReports from "@/components/tradeAgency/businessReports.vue";
 import reports from "@/components/tradeAgency/reports.vue";
+import feeModify from "@/components/feeModify/boxMain.vue";
+import feeModifyView from "@/components/feeModify/view.vue";
 import { dateFormat } from "@/util/date";
 import { bcurrencyGetExrate } from "@/api/iosBasicData/rateManagement";
 import { getToken } from "@/util/auth";
@@ -1173,6 +1184,12 @@ export default {
             }, {
               label: '审核通过',
               value: '4',
+            }, {
+              label: '申请修改',
+              value: '5',
+            }, {
+              label: '申请删除',
+              value: '6',
             }],
           },
           {
@@ -1397,7 +1414,9 @@ export default {
     dicSelect,
     checkSchedule,
     businessReports,
-    reports
+    reports,
+    feeModify,
+    feeModifyView
   },
   props: {
     detailData: Object
@@ -2491,6 +2510,58 @@ export default {
           })
         });
       }
+      if (name == 'C申请修改') {
+        for (let row of this.selectionfeecList) {
+          if (!row.id) {
+            return this.$message.error("请保存费用明细");
+          }
+          if (row.auditStatus != 4) {
+            return this.$message.error("未审核通过的费用,不允许申请");
+          }
+          if (Number(row.appliedInvoiceAmount) > 0) {
+            return this.$message.error("请选择未申请发票的费用?");
+          }
+          if (Number(row.uninvoicedAmount) > 0) {
+            return this.$message.error("请选择未开票的费用?");
+          }
+          if (Number(row.stlTtlAmount) > 0) {
+            return this.$message.error("请选择未结算的费用?");
+          }
+          this.$refs.feeModify.openDialog(row, 'fix')
+        }
+      }
+      if (name == 'C申请删除') {
+        for (let row of this.selectionfeecList) {
+          if (!row.id) {
+            return this.$message.error("请保存费用明细");
+          }
+          if (row.auditStatus != 4) {
+            return this.$message.error("未审核通过的费用,不允许申请");
+          }
+          if (Number(row.appliedInvoiceAmount) > 0) {
+            return this.$message.error("请选择未申请发票的费用?");
+          }
+          if (Number(row.uninvoicedAmount) > 0) {
+            return this.$message.error("请选择未开票的费用?");
+          }
+          if (Number(row.stlTtlAmount) > 0) {
+            return this.$message.error("请选择未结算的费用?");
+          }
+          this.$refs.feeModify.openDialog(row, 'del')
+        }
+      }
+      if (name == 'C取消申请') {
+        for (let row of this.selectionfeecList) {
+          if (!row.id) {
+            return this.$message.error("请保存费用明细");
+          }
+          if (!(row.auditStatus == 5 || row.auditStatus == 6)) {
+            return this.$message.error("未申请修改或删除,不允许撤销申请");
+          }
+
+          this.$refs.feeModify.openDialog(row, 'revoke')
+        }
+      }
     },
     submit(type) {
       this.$refs["form"].validate((valid, done) => {
@@ -2533,6 +2604,9 @@ export default {
         }
       });
     },
+    updateDetail() {
+      this.getDetail(this.form.id)
+    },
     application() {
       this.$confirm("确定请核数据?", {
         confirmButtonText: "确定",

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

@@ -624,7 +624,7 @@
         <reportContainer ref="reportContainer"></reportContainer>
         <mail-component ref="mailComponentRef" />
         <extraction-cost ref="extractionCost" @getData="getData" />
-        <fee-modify ref="feeModify" :form="assemblyForm" @updateDetail="updateDetail"></fee-modify>
+        <fee-modify ref="feeModify" :form="assemblyForm" @updateDetail="updateDetail" :curCodeDate="assemblyForm.actualEta?assemblyForm.actualEta+' 00:00:00':null"  url="/iosBasicData/OceanFreightImport/bills/index" pageStatus="this.$store.getters.approvalDetails" pageLabel="海运进口(F)"></fee-modify>
         <fee-modify-view ref="feeModifyView" :form="assemblyForm"></fee-modify-view>
     </div>
 </template>

+ 51 - 16
src/views/iosBasicData/SeafreightExportF/bills/assembly/EntrustmentLnformation.vue

@@ -656,7 +656,7 @@
                             </el-col>
                         </el-row>
                         <el-row>
-                            <el-col>
+                            <el-col :span="12">
                                 <el-form-item label="所属公司" prop="branchName" label-width="80px">
                                     <span slot="label">
                                         <span style="color: #1e9fff">所属公司</span>
@@ -668,6 +668,17 @@
                                         :disabled="detailData.seeDisabled || !(roleName.includes('admin') || roleName.includes('总部')) || assemblyForm.feeCenterListD.filter(item => item.auditStatus > 0).length || assemblyForm.feeCenterListC.filter(item => item.auditStatus > 0).length"></dic-select>
                                 </el-form-item>
                             </el-col>
+                            <el-col :span="12">
+                                <el-form-item label="付款方式" prop="hpaymode" label-width="80px">
+                                    <span slot="label">
+                                        <span style="color: #1e9fff">付款方式</span>
+                                    </span>
+                                    <dic-select v-model="assemblyForm.hpaymode" placeholder="付款方式" key="dictKey"
+                                        label="dictValue" keyValue="dictKey"
+                                        url="/blade-system/dict-biz/dictionary?code=payment_method_los"
+                                        :filterable="true" :disabled="detailData.seeDisabled"></dic-select>
+                                </el-form-item>
+                            </el-col>
                         </el-row>
                         <el-row>
                             <el-col :span="12">
@@ -702,14 +713,18 @@
 
                         <el-row>
                             <el-col>
-                                <el-form-item label="付款方式" prop="hpaymode" label-width="80px">
+                                <el-form-item label="签单地点" prop="issueAt" label-width="80px">
                                     <span slot="label">
-                                        <span style="color: #1e9fff">付款方式</span>
+                                        <span style="color: #1e9fff">签单地点</span>
                                     </span>
-                                    <dic-select v-model="assemblyForm.hpaymode" placeholder="付款方式" key="dictKey"
-                                        label="dictValue" keyValue="dictKey"
-                                        url="/blade-system/dict-biz/dictionary?code=payment_method_los"
-                                        :filterable="true" :disabled="detailData.seeDisabled"></dic-select>
+                                    <search-query :datalist="issueAtData" :selectValue="assemblyForm.issueAt"
+                                        :filterable="true" :clearable="true" :remote="true"
+                                        :disabled="detailData.seeDisabled" :buttonIf="false"
+                                        :forParameter="{ key: 'id', label: 'enName', value: 'enName' }"
+                                        placeholder="请选择签单地点" @remoteMethod="remoteMethod($event, 'issueAt')"
+                                        @corpChange="corpChange($event, 'issueAt')"
+                                        @corpFocus="remoteMethod($event, 'issueAt')">
+                                    </search-query>
                                 </el-form-item>
                             </el-col>
                         </el-row>
@@ -983,8 +998,7 @@
                                 <span slot="label">
                                     <span style="color: #1e9fff">订舱代理</span>
                                 </span>
-                                <el-col :span="9">
-                                    <search-query :datalist="bookingAgentData"
+                                  <search-query :datalist="bookingAgentData"
                                         :selectValue="assemblyForm.bookingAgentCnName" :filterable="true"
                                         :clearable="true" :remote="true"
                                         :disabled="detailData.seeDisabled || (assemblyForm.billType == 'MH' && assemblyForm.masterBillNo > 0)"
@@ -994,13 +1008,6 @@
                                         @corpChange="corpChange($event, 'bookingAgent')"
                                         @corpFocus="remoteMethod($event, 'bookingAgent')">
                                     </search-query>
-                                </el-col>
-                                <el-col :span="14" :offset="1">
-                                    <el-input type="age" style="width: 100%;" v-model="assemblyForm.bookingAgentEnName"
-                                        size="small" autocomplete="off"
-                                        :disabled="detailData.seeDisabled || !assemblyForm.bookingAgentCnName || (assemblyForm.billType == 'MH' && assemblyForm.masterBillNo > 0)"
-                                        clearable placeholder="订舱代理"></el-input>
-                                </el-col>
                             </el-form-item>
                         </el-col>
                     </el-row>
@@ -1262,6 +1269,8 @@ export default {
     components: { TreeSelect, bcorps, SearchQuery, precontainers, bcorpstypedefine, dicSelect },
     data() {
         return {
+
+            issueAtData: [],
             sourceTypeData: [
                 {
                     label: '公司',
@@ -1690,6 +1699,7 @@ export default {
         remoteMethod(value, name) {
             let arr = ['hshipper', 'hconsignee', 'hnotify', 'hnotify2', 'bookingAgent', 'foreignAgency']
             let portArr = ['placeReceipt', 'pol', 'pod', 'destination', 'placeDelivery', 'pot']
+            let payplaceArr = ['issueAt']
             if (arr.indexOf(name) != -1) {
                 this[name + 'BcorpsListfun'](value)
             }
@@ -1762,6 +1772,9 @@ export default {
             else if (name == 'bookingAgent') {
                 this.bookingAgentBcorpsListfun(value)
             }
+            else if (payplaceArr.indexOf(name) != -1) {
+                this[name + 'BportsListfun'](value)
+            }
         },
         // 选择框的回调
         corpChange(value, name) {
@@ -1919,6 +1932,10 @@ export default {
                     this.$set(this.assemblyForm, 'carrierEnName', '')
                     this.$set(this.assemblyForm, 'carrierCode', '')
                     this.$set(this.assemblyForm, 'carrierArgreementNo', '')
+                        this.$set(this.assemblyForm, 'bookingAgentId', '')
+                        this.$set(this.assemblyForm, 'bookingAgentEnName', '')
+                        this.$set(this.assemblyForm, 'bookingAgentCnName', '')
+                        this.$set(this.assemblyForm, 'bookingRemarks', '')
                 }
                 for (let item of this[name + 'Data']) {
                     if (item.cnName == value) {
@@ -1929,6 +1946,10 @@ export default {
                         this.$set(this.assemblyForm, 'carrierEnName', item.enName)
                         this.$set(this.assemblyForm, 'carrierCode', item.code)
                         this.$set(this.assemblyForm, 'carrierArgreementNo', item.carrierArgreementNo)
+                        this.$set(this.assemblyForm, 'bookingAgentId', item.bookingAgentId)
+                        this.$set(this.assemblyForm, 'bookingAgentEnName', item.bookingAgentEnName)
+                        this.$set(this.assemblyForm, 'bookingAgentCnName', item.bookingAgentCnName)
+                        this.$set(this.assemblyForm, 'bookingRemarks', item.bookingRemarks)
 
                     }
                 }
@@ -2135,10 +2156,24 @@ export default {
                     }
                 }
             }
+            else if (name == 'issueAt') {
+                for (let item of this.issueAtData) {
+                    if (item.enName == value) {
+                        this.$set(this.assemblyForm, 'issueAt', item.enName)
+                        this.$set(this.assemblyForm, 'issueAtId', item.id)
+                    }
+                }
+            }
             else {
                 this.$set(this.assemblyForm, name, value ? value : '')
             }
         },
+        // 签单地点
+        issueAtBportsListfun(enName) {
+            bportsList(1, 10, { enName, status: 0 }).then(res => {
+                this.issueAtData = res.data.data.records
+            })
+        },
         // 通知人添加第二个通知人弹窗
         hnotifyClick() {
             if (this.detailData.seeDisabled) {

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

@@ -630,7 +630,7 @@
         <reportContainer ref="reportContainer"></reportContainer>
         <mail-component ref="mailComponentRef" />
         <extraction-cost ref="extractionCost" @getData="getData" />
-        <fee-modify ref="feeModify" :form="assemblyForm" @updateDetail="updateDetail"></fee-modify>
+        <fee-modify ref="feeModify" :form="assemblyForm" @updateDetail="updateDetail" :curCodeDate="assemblyForm.etd?assemblyForm.etd+' 00:00:00':null" url="/iosBasicData/SeafreightExportF/bills/index" pageStatus="this.$store.getters.approvalDetails" pageLabel="海运出口(F)"></fee-modify>
         <fee-modify-view ref="feeModifyView" :form="assemblyForm"></fee-modify-view>
     </div>
 </template>
@@ -651,7 +651,7 @@ import {
     finaccbillsRevokeBill,
     getFeeCenterCorpIds,
     pleaseVerifyCost,
-    revokeCheckPleaseVerifyCost
+    revokeCheckPleaseVerifyCost,
 } from "@/api/iosBasicData/feecenter";
 import { getWorkDicts } from "@/api/system/dictbiz";
 import {

+ 16 - 15
src/views/iosBasicData/SeafreightExportF/bills/assembly/formbottom.vue

@@ -66,7 +66,7 @@
                         </search-query>
                     </el-form-item>
                 </el-col>
-               
+
                 <el-col :span="6">
                     <el-form-item label="退舱日期" prop="bookingWithdrawTime">
                         <span slot="label">
@@ -142,7 +142,7 @@
                         </search-query>
                     </el-form-item>
                 </el-col>
-                <el-col span="6">
+                <!-- <el-col span="6">
                     <el-form-item label="签单地点" prop="issueAt">
                         <span slot="label">
                             <span style="color: #1e9fff">签单地点</span>
@@ -154,7 +154,7 @@
                             @corpFocus="remoteMethod($event, 'issueAt')">
                         </search-query>
                     </el-form-item>
-                </el-col>
+                </el-col> -->
                 <el-col :span="6">
                     <el-form-item label="业务类型" prop="businessTypes">
                         <span slot="label">
@@ -230,17 +230,18 @@
                         </search-query>
                     </el-form-item>
                 </el-col>
+                <el-col :span="6">
+                    <el-form-item label="" prop="billNo">
+                        <span slot="label">
+                            <span style="color: #1e9fff">单据编号</span>
+                        </span>
+                        <el-input v-model="assemblyForm.billNo" size="small" placeholder="请输入单据编号" style="width: 100%;"
+                            disabled></el-input>
+                    </el-form-item>
+                </el-col>
                 <el-col :span="24">
+
                     <el-col :span="6">
-                        <el-form-item label="" prop="billNo">
-                            <span slot="label">
-                                <span style="color: #1e9fff">单据编号</span>
-                            </span>
-                            <el-input v-model="assemblyForm.billNo" size="small" placeholder="请输入单据编号"
-                                style="width: 100%;" disabled></el-input>
-                        </el-form-item>
-                    </el-col>
-                    <el-col :span="4">
                         <el-form-item label="" prop="createUserName">
                             <span slot="label">
                                 <span style="color: #1e9fff">制单人</span>
@@ -249,7 +250,7 @@
                                 style="width: 100%;" disabled></el-input>
                         </el-form-item>
                     </el-col>
-                    <el-col :span="5">
+                    <el-col :span="6">
                         <el-form-item label="" prop="createTime">
                             <span slot="label">
                                 <span style="color: #1e9fff">制单日期</span>
@@ -258,7 +259,7 @@
                                 style="width: 100%;" disabled></el-input>
                         </el-form-item>
                     </el-col>
-                    <el-col :span="4">
+                    <el-col :span="6">
                         <el-form-item label="" prop="updateUserName">
                             <span slot="label">
                                 <span style="color: #1e9fff">修改人</span>
@@ -267,7 +268,7 @@
                                 style="width: 100%;" disabled></el-input>
                         </el-form-item>
                     </el-col>
-                    <el-col :span="5">
+                    <el-col :span="6">
                         <el-form-item label="" prop="updateTime">
                             <span slot="label">
                                 <span style="color: #1e9fff">修改日期</span>

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

@@ -116,6 +116,16 @@
                 dataType="string" @selectChange="dicChange('branchName', $event)"></dic-select>
             </el-form-item>
           </el-col>
+          <el-col :span="8">
+            <el-form-item label="订舱代理" prop="bookingAgentCnName">
+              <search-query :datalist="bookingAgentData" :selectValue="formData.bookingAgentCnName" :filterable="true"
+                :clearable="true" :remote="true" :buttonIf="false" placeholder="请选择订舱代理"
+                :forParameter="{ key: 'id', label: 'cnName', value: 'cnName' }"
+                @remoteMethod="bookingAgentBcorpsListfun($event)" @corpChange="bookingAgentChange($event)"
+                @corpFocus="bookingAgentBcorpsListfun($event)">
+              </search-query>
+            </el-form-item>
+          </el-col>
         </el-row>
       </el-form>
     </el-card>
@@ -492,6 +502,20 @@
                   </el-input>
                 </el-form-item>
               </el-col>
+              <el-col :span="8">
+                <el-form-item label="FTP用户名" prop="usernameFtp">
+                  <el-input v-model="formData.usernameFtp" size="small" placeholder="请输入FTP用户名" clearable
+                    :style="{ width: '100%' }">
+                  </el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="FTP密码" prop="passwordFtp">
+                  <el-input v-model="formData.passwordFtp" size="small" placeholder="请输入FTP密码" clearable
+                    :style="{ width: '100%' }">
+                  </el-input>
+                </el-form-item>
+              </el-col>
             </el-tab-pane>
             <el-tab-pane label="财务信息" name="cwxx">
               <!-- <el-row style="display: flex; flex-direction: row; align-items: center;">
@@ -726,7 +750,8 @@
                   <template slot-scope="scope">
                     <el-button type="text" size="small" @click="corpsAttnHandle(scope)">编辑</el-button>
                     <el-button type="text" size="small" @click="corpsAttnDelete(scope)">删除</el-button>
-                    <el-button v-if="scope.row.userId == 0" type="text" size="small" @click="createUser(scope)">创建用户</el-button>
+                    <el-button v-if="scope.row.userId == 0" type="text" size="small"
+                      @click="createUser(scope)">创建用户</el-button>
                   </template>
                 </el-table-column>
               </el-table>
@@ -1182,6 +1207,7 @@ export default {
         value: '月结',
         label: '月结'
       }],
+      bookingAgentData: [],
       psRateData: [], // ps 规则数据
       psRateInternalMax: 0.5, // PS RATE 内部报价最大值
       psRateExternalMax: 0.7, // PS RATE 外部报价最大值
@@ -1400,6 +1426,12 @@ export default {
         ],
         uscc: [
           { required: true, message: ' ', trigger: 'change' }
+        ],
+        accountNumber: [
+          { required: true, message: ' ', trigger: 'change' }
+        ],
+        branchName: [
+          { required: true, message: ' ', trigger: 'change' }
         ]
       },
       statusOptions: [{
@@ -1487,6 +1519,29 @@ export default {
   },
   mounted() { },
   methods: {
+    bookingAgentChange(value) {
+      if (!value) {
+        this.$set(this.formData, 'bookingAgentId', '')
+        this.$set(this.formData, 'bookingAgentCnName', '')
+        this.$set(this.formData, 'bookingAgentEnName', '')
+        this.$set(this.formData, 'bookingRemarks', '')
+      }
+      for (let item of this.bookingAgentData) {
+        if (item.cnName == value) {
+          this.$set(this.formData, 'bookingAgentId', item.id)
+          this.$set(this.formData, 'bookingAgentCnName', item.cnName)
+          this.$set(this.formData, 'bookingAgentEnName', item.enName)
+          this.$set(this.formData, 'bookingRemarks', item.remarks)
+        }
+      }
+    },
+    // 订舱代理
+    bookingAgentBcorpsListfun(cnName) {
+      let corpTypeName = '国内直接客户,国内同行及代理,国外直接客户,国外同行及代理'
+      getBcorpslistByType(1, 10, { cnName, status: 0, corpTypeName }).then(res => {
+        this.bookingAgentData = res.data.data.records
+      })
+    },
     dicChange(name, row) {
       if (name == 'addressCname') {
         if (row) {
@@ -2000,7 +2055,11 @@ export default {
         cancelButtonText: '取消',
         type: 'warning'
       }).then(() => {
-        createUser(scope.row).then(res => {
+        let obj = {
+          ...scope.row,
+          shortName: this.formData.shortName
+        }
+        createUser(obj).then(res => {
           this.$message({
             type: 'success',
             message: '操作成功!'

+ 2 - 2
src/views/iosBasicData/businessCenter/customerBooking/components/DistributionBox/containers.vue

@@ -12,12 +12,12 @@
                         <el-button type="success" size="small" plain :disabled="seeDisabled||pleasereviewType||showLock"
                             @click.stop="equalDistribution2()">配箱
                         </el-button>
-                        <el-button type="success" size="small" plain :disabled="seeDisabled||pleasereviewType||showLock"
+                        <!-- <el-button type="success" size="small" plain :disabled="seeDisabled||pleasereviewType||showLock"
                             @click.stop="equalDistribution(1)">按TEU配箱
                         </el-button>
                         <el-button type="success" size="small" plain :disabled="seeDisabled||pleasereviewType||showLock"
                             @click.stop="equalDistribution(2)">按箱量配箱
-                        </el-button>
+                        </el-button> -->
                         <el-button type="primary" size="small"
                             :disabled="detailData.seeDisabled || pleasereviewType || showLock" @click="rootEditfun">一键编辑
                         </el-button>

+ 61 - 11
src/views/iosBasicData/businessCenter/customerBooking/detailsPage.vue

@@ -17,21 +17,24 @@
         <!--        <el-button class="el-button&#45;&#45;small-yh" style="margin-left: 6px;" type="danger" size="small"
           @click="allClick('预定订舱')">预定订舱
         </el-button>-->
-        <el-button class="el-button--small-yh" style="margin-left: 6px;" type="primary" size="small" v-if="editButton"
+        <!-- <el-button class="el-button--small-yh" style="margin-left: 6px;" type="primary" size="small" v-if="editButton"
           :disabled="showLock || !(roleName.indexOf('admin') != -1 || roleName.indexOf('允许修改他人业务') != -1 || saberUserInfo.user_id == form.createUser)"
           @click="inEdit">编 辑
-        </el-button>
-        <el-button class="el-button--small-yh" v-else style="margin-left: 6px;" type="primary" size="small"
+        </el-button> -->
+        <el-button class="el-button--small-yh" style="margin-left: 6px;" type="primary" size="small"
           :disabled="isSaveBtn || editDisabled" @click="submit">保 存
         </el-button>
         <el-button v-if="form.id" class="el-button--small-yh" style="margin-left: 6px;" type="success" size="small"
-          :disabled="form.issueStatus == 2" @click="allClick('提交订舱')">提交订舱
+          :disabled="form.issueStatus == 1 || form.issueStatus == 2" @click="allClick('提交订舱')">提交订舱
         </el-button>
         <el-button v-if="form.issueStatus == 2" class="el-button--small-yh" style="margin-left: 6px;" type="danger"
           size="small" @click="allClick('撤销订舱')">撤销订舱
         </el-button>
-        <el-button v-if="form.issueStatus == 2" class="el-button--small-yh" style="margin-left: 6px;" type="success"
-          size="small" :disabled="editDisabled" @click="allClick('提单确认')">提单确认
+        <el-button v-if="form.issueStatus == 1 || form.issueStatus == 2" class="el-button--small-yh"
+          style="margin-left: 6px;" type="danger" size="small" @click="allClick('提单修改')">提单修改
+        </el-button>
+        <el-button v-if="form.issueStatus == 1 || form.issueStatus == 2" class="el-button--small-yh"
+          style="margin-left: 6px;" type="success" size="small" :disabled="flxDisabled" @click="allClick('提单确认')">提单确认
         </el-button>
         <!-- <el-button v-if="form.id" class="el-button--small-yh" style="margin-left: 6px;" type="success" size="small"
           :disabled="form.status != 0 || form.issueStatus == 1" @click="application">提单确认
@@ -40,7 +43,8 @@
           size="small" @click="revokeApplication">撤销单据请核
         </el-button> -->
         <el-dropdown style="line-height: 0" v-if="importTemplate == 1">
-          <el-button size="small" type="warning" style="margin-left: 8px" :disabled="editDisabled || showLock">
+          <el-button size="small" type="warning" style="margin-left: 8px"
+            :disabled="isSaveBtn || editDisabled || showLock">
             导入模板<i class="el-icon-arrow-down el-icon--right"></i>
           </el-button>
           <el-dropdown-menu slot="dropdown">
@@ -412,7 +416,7 @@
 </template>
 
 <script>
-import { submit, getDetail, submitConfirm, submitCustomerBooking, revokeCustomerBooking, submitBookingCabin, sendMessageBooking, copyAgent, pleaseCheck, repealCancel, submitItemList, itemRemove, submitFeeList, itemFeeRemove } from "@/api/iosBasicData/businessCenter/bookingCabin.js";
+import { submit, getDetail, submitConfirm, submitCustomerBooking, revokeCustomerBooking, submitBookingCabin, sendMessageBooking, copyAgent, pleaseCheck, repealCancel, submitItemList, itemRemove, submitFeeList, itemFeeRemove, getBCorps } from "@/api/iosBasicData/businessCenter/bookingCabin.js";
 import dicSelect from "@/components/dicSelect/main";
 import checkSchedule from "@/components/checkH/checkSchedule.vue";
 import businessReports from "@/components/boxManagement/businessReportsTS.vue";
@@ -531,6 +535,7 @@ export default {
       checkId: '', // 审核需要的id
       batchNo: '',
       checkScheduleDialog: false, // 审核弹窗
+      isSaveBtn: false,
       editButton: false,
       editDisabled: false,
       form: {
@@ -964,7 +969,8 @@ export default {
       },
       roleName: [],
       saberUserInfo: null,
-      deptId: JSON.parse(localStorage.getItem('sysitemData')).deptId
+      deptId: JSON.parse(localStorage.getItem('sysitemData')).deptId,
+      flxDisabled: true,
     }
   },
   components: {
@@ -1001,6 +1007,18 @@ export default {
       this.getCopydate(this.detailData.copyId)
     }
     if (this.detailData.type == 'new') {
+      if (this.roleName.includes('客户')) {
+        let obj = {
+          userId: JSON.parse(localStorage.getItem('sysitemData')).id
+        }
+        getBCorps(obj).then(res => {
+          this.form.corpId = res.data.data.id
+          this.form.corpCode = res.data.data.code
+          this.form.corpEnName = res.data.data.enName
+          this.form.corpCnName = res.data.data.cnName
+          this.form.shortName = res.data.data.shortName
+        })
+      }
       deptGetDetailPol(this.saberUserInfo.dept_pid.split(',')[0]).then(res => {
         // 装货港
         this.form.polCnName = res.data.data.polCnName ? res.data.data.polCnName.split(",")[0] : null
@@ -1414,8 +1432,8 @@ export default {
           }
         })
         this.form = res.data.data
-        if (res.data.data.confirmStatus == 1) {
-          // this.editButton = true
+        if (res.data.data.issueStatus == 1 || res.data.data.issueStatus == 2 || res.data.data.confirmStatus == 1) {
+          this.isSaveBtn = true
           this.editDisabled = true
           this.optionForm.disabled = true
         } else {
@@ -1722,7 +1740,39 @@ export default {
           })
         });
       }
+      if (name == '提单修改') {
+        this.flxDisabled = false
+        this.editDisabled = false
+        this.optionForm.disabled = false
+      }
       if (name == '提单确认') {
+        if(this.form.containersList.length==0){
+            return this.$message.error("配箱信息不能为空");
+        }
+        for (let item of this.form.containersList) {
+          let textList = []
+          if (!item.cntrTypeCode) {
+            textList.push('箱型')
+          }
+          if (!item.cntrNo) {
+            textList.push('箱号')
+          }
+          if (!item.sealNo) {
+            textList.push('封号')
+          }
+          if (!item.quantity||Number(item.quantity)==0) {
+            textList.push('件数')
+          }
+          if (!item.grossWeight||Number(item.grossWeight)==0) {
+            textList.push('毛重')
+          }
+          if (!item.measurement||Number(item.measurement)==0) {
+            textList.push('尺码/体积')
+          }
+          if (textList.length) {
+            return this.$message.error(`请完善配箱信息的${textList.join(',')}!`);
+          }
+        }
         this.$confirm("是否提单确认?", {
           confirmButtonText: "确定",
           cancelButtonText: "取消",

+ 2 - 1
src/views/iosBasicData/businessCenter/customerBooking/index.vue

@@ -21,6 +21,7 @@
                             <el-tab-pane label="受理" name="3"></el-tab-pane> -->
                             <el-tab-pane label="草稿" name="1"></el-tab-pane>
                             <el-tab-pane label="已提交" name="2"></el-tab-pane>
+                            <el-tab-pane label="已成交" name="5"></el-tab-pane>
                             <el-tab-pane label="全部" name="0"></el-tab-pane>
                         </el-tabs>
                     </div>
@@ -28,7 +29,7 @@
                 <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.confirmStatus ==1 || row.issueStatus == 2">删 除</el-button>
+                        :disabled="row.confirmStatus == 1 || row.issueStatus == 1|| row.issueStatus == 2">删 除</el-button>
                 </template>
                 <!-- <template slot="status" slot-scope="{ row }">
                     <span v-if="row.issueStatus == 0"

+ 4 - 3
src/views/iosBasicData/businessCenter/customerLetter/detailsPage.vue

@@ -61,7 +61,8 @@
               <el-row>
                 <el-col span="12">
                   <el-row>
-                    <el-form-item label="客户" prop="corpCnName">
+                    <el-form-item label="客户" prop="corpCnName"
+                      :rules="[{ required: true, message: ' ', trigger: 'blur' }]">
                       <dic-select v-model="form.corpCnName" placeholder="客户" key="id" label="cnName" res="records"
                         url="/blade-los/bcorps/selectList?status=0&current=1&size=20" :filterable="true" :remote="true"
                         dataName="cnName" @selectChange="dicChange('corpCnName', $event)" :disabled="editDisabled"
@@ -1185,7 +1186,7 @@ export default {
     rowDicChange(name, row, el, index) {
       if (name == 'cntrTypeCode') {
         if (row) {
-          if (this.form.preContainersList.filter(item => item.cntrTypeCode == row.cnName).length>1) {
+          if (this.form.preContainersList.filter(item => item.cntrTypeCode == row.cnName).length > 1) {
             el.cntrTypeCodeId = null
             el.cntrTypeCode = null
             el.teu = null
@@ -1690,7 +1691,7 @@ export default {
       this.$refs["form"].validate((valid) => {
         console.log(valid, this.form)
         if (valid) {
-               for (let row of this.form.preContainersList) {
+          for (let row of this.form.preContainersList) {
             if (!row.cntrTypeCode || !row.quantity) {
               this.$refs.crud.rowCell(row, row.$index)
               return this.$message.error("请完善明细信息");

+ 2 - 0
src/views/iosBasicData/costcenter/coc/detailsPage.vue

@@ -5,6 +5,8 @@
                 <el-button type="danger" style="border: none;background: none;color: red" icon="el-icon-arrow-left"
                     @click="goBack()">返回列表
                 </el-button>
+                 <el-button v-if="form.id && pageIds.length" type="text" @click="lastPage">上一票</el-button>
+                <el-button v-if="form.id && pageIds.length" type="text" @click="nextPage">下一票</el-button>
             </div>
             <div class="add-customer-btn">
                 <!-- <el-button size="small" style="margin-right: 8px" :disabled="!form.id"

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

@@ -5,6 +5,8 @@
                 <el-button type="danger" style="border: none;background: none;color: red" icon="el-icon-arrow-left"
                     @click="goBack()">返回列表
                 </el-button>
+                <el-button v-if="form.id && pageIds.length" type="text" @click="lastPage">上一票</el-button>
+                <el-button v-if="form.id && pageIds.length" type="text" @click="nextPage">下一票</el-button>
             </div>
             <div class="add-customer-btn">
                 <!-- <el-button size="small" style="margin-right: 8px" :disabled="!form.id"
@@ -1803,6 +1805,7 @@ export default {
             },
             roleName: [],
             saberUserInfo: null,
+            showLock: false,
         }
     },
     components: {
@@ -1812,7 +1815,11 @@ export default {
         reports
     },
     props: {
-        detailData: Object
+        detailData: Object,
+        pageIds: {
+            type: Array, // 指定 prop 的类型为 Array
+            default: () => [], // 提供一个默认值,这里使用函数形式返回一个空数组
+        }
     },
     async created() {
         this.saberUserInfo = JSON.parse(localStorage.getItem('saber-userInfo')).content
@@ -1866,6 +1873,69 @@ export default {
         }
     },
     methods: {
+        inLock() {
+            this.showLock = true;
+            const data = {
+                moduleName: "SOC",
+                tableName: "SOC",
+                billId: this.form.id,
+                no: localStorage.getItem("browserID"),
+                billNo: this.form.businessNo
+            };
+            this.inDetailsKey(this.$route.name, {
+                moduleName: "SOC",
+                tableName: "SOC_order",
+                billId: this.form.id,
+                billNo: this.form.businessNo
+            });
+            this.checkLock(data).then(res => {
+                if (res.data.code == 200) {
+                    this.onLock(data).then(res => {
+                        if (res.data.code == 200) {
+                            this.showLock = false
+                        }
+                    });
+                }
+            });
+        },
+        lastPage() {
+            if (this.pageIds.length) {
+                const index = this.pageIds.indexOf(this.form.id)
+                if (index == 0) {
+                    return this.$message.error('没有上一票了');
+                }
+                const lastIndex = index - 1
+                if (this.form.id) {
+                    this.unLock({
+                        moduleName: "SOC",
+                        tableName: "SOC_order",
+                        billId: this.form.id,
+                        billNo: this.form.businessNo
+                    });
+                }
+                this.pageLoading = true
+                this.billsDetailfun(this.pageIds[lastIndex])
+            }
+        },
+        nextPage() {
+            if (this.pageIds.length) {
+                const index = this.pageIds.indexOf(this.form.id)
+                if (this.pageIds[this.pageIds.length - 1] == this.form.id) {
+                    return this.$message.error('没有下一票了');
+                }
+                const nextIndex = index + 1
+                if (this.form.id) {
+                    this.unLock({
+                        moduleName: "SOC",
+                        tableName: "SOC_order",
+                        billId: this.form.id,
+                        billNo: this.form.businessNo
+                    });
+                }
+                this.pageLoading = true
+                this.billsDetailfun(this.pageIds[nextIndex])
+            }
+        },
         getDefault(data) {
             if (!this.form.belongingCompanyName) {
                 this.form.belongingCompanyId = data.id
@@ -2485,6 +2555,7 @@ export default {
                     })
                 }
                 this.form = res.data.data
+                this.inLock()
                 if (res.data.data.status != '录入') {
                     this.editButton = true
                     this.editDisabled = true

+ 14 - 3
src/views/iosBasicData/costcenter/soc/index.vue

@@ -38,12 +38,16 @@
                     <span style="color: #1e9fff;cursor: pointer;" @click="rowEdit(row)">{{ row.businessNo }}</span>
                 </template>
                 <template slot="status" slot-scope="{ row }">
-                    <span v-if="row.status == '录入'" style="color: #fff;border-radius: 30px;padding: 2px 15px;background-color: #409EFF;">{{ row.status }}</span>
-                    <span v-if="row.status != '录入'" style="color: #fff;border-radius: 30px;padding: 2px 15px;background-color: #67C23A;">{{ row.status }}</span>
+                    <span v-if="row.status == '录入'"
+                        style="color: #fff;border-radius: 30px;padding: 2px 15px;background-color: #409EFF;">{{
+                        row.status }}</span>
+                    <span v-if="row.status != '录入'"
+                        style="color: #fff;border-radius: 30px;padding: 2px 15px;background-color: #67C23A;">{{
+                        row.status }}</span>
                 </template>
             </avue-crud>
         </basic-container>
-        <detailsPage v-if="!isShow" :detailData="detailData" @goBack="goBack"></detailsPage>
+        <detailsPage v-if="!isShow" :detailData="detailData" :pageIds="pageIds" @goBack="goBack"></detailsPage>
     </div>
 </template>
 
@@ -342,6 +346,7 @@ export default {
                 ]
             },
             data: [],
+            pageIds: []
         };
     },
     components: {
@@ -432,6 +437,7 @@ export default {
             this.query.destinationCname = obj.podCname
         },
         addButton() {
+            this.pageIds = []
             this.isShow = false
             this.detailData = {
                 type: 'new'
@@ -444,6 +450,10 @@ export default {
             };
         },
         rowEdit(row) {
+            this.pageIds = []
+            this.data.forEach(item => {
+                this.pageIds.push(item.id)
+            })
             this.detailData = {
                 id: row.id
             };
@@ -508,6 +518,7 @@ export default {
         // 详情的返回列表
         goBack() {
             // 初始化数据
+            this.pageIds = []
             if (JSON.stringify(this.$route.query) != "{}") {
                 this.$router.$avueRouter.closeTag();
                 this.$router.push({

+ 2 - 6
src/views/iosBasicData/periodManagement/index.vue

@@ -27,7 +27,7 @@
                         </template>
                     </avue-crud>
                 </el-tab-pane>
-                <el-tab-pane label="月末结转" name="second">
+                <!-- <el-tab-pane label="月末结转" name="second">
                     <avue-crud :option="option2" :search.sync="search2" v-model="form2" :table-loading="loading"
                         :data="dataList2" ref="crud2" :key="key" @on-load="onLoad2" @search-change="searchChange2"
                         @refresh-change="refreshChange2"
@@ -37,12 +37,8 @@
                             <el-button size="small" :type="type" @click="editOpen(row)">模板修改</el-button>
                             <el-button size="small" :type="type" @click="generate(row)">生成凭证</el-button>
                         </template>
-                        <!-- <template slot-scope="{type,size,row,$index}" slot="menuLeft">
-                            <el-button icon="el-icon-plus" type="primary" size="small"
-                                @click="detailsOpen = true">新建申请</el-button>
-                        </template> -->
                     </avue-crud>
-                </el-tab-pane>
+                </el-tab-pane> -->
             </el-tabs>
         </basic-container>
         <detailsPage v-if="detailsOpen" @goBack="goBack" :onLoad="form" :detailData="detailData">

+ 8 - 0
src/views/system/lock/indexF.vue

@@ -55,6 +55,14 @@ export default {
         {
           dictValue: "海运进口",
           dictKey: "SI"
+        },
+        {
+          dictValue: "航线成本(SOC)",
+          dictKey: "SOC"
+        },
+        {
+          dictValue: "航线成本(COC)",
+          dictKey: "COC"
         }
       ]
     };

+ 7 - 1
src/views/system/user.vue

@@ -290,7 +290,7 @@
           calcHeight: 80,
           tip: false,
           searchShow: true,
-          searchMenuSpan: 6,
+          searchMenuSpan: 24,
           border: true,
           index: true,
           selection: true,
@@ -310,6 +310,12 @@
               slot: true,
               display: false
             },
+             {
+              label: "编码",
+              prop: "code",
+              search: true,
+              display: false
+            },
             {
               label: "用户姓名",
               prop: "realName",

+ 1 - 1
src/views/wel/components/losHome.vue

@@ -1,5 +1,5 @@
 <template>
-    <div class="container">
+    <div class="container" v-if="!roleName.includes('客户')">
         <losquick class="item1" :menuAll="menuAll"></losquick>
         <losaudit class="item2" :menuAll="menuAll"></losaudit>
         <losrealtime class="item3"></losrealtime>