Procházet zdrojové kódy

优化COC 联调租箱的起租退租生成租金 修改禅道bug

Qukatie před 11 měsíci
rodič
revize
5040819c73

+ 32 - 0
src/api/boxManagement/buyContainer/index.js

@@ -124,4 +124,36 @@ export function repealCancel(data) {
     method: 'post',
     data: data
   })
+}
+// 起租,退租
+export function startingRent(data) {
+  return request({
+    url: '/api/blade-los/tradingBox/startingRent',
+    method: 'post',
+    data: data
+  })
+}
+// 撤销起租,退租
+export function revokeRentingOut(data) {
+  return request({
+    url: '/api/blade-los/tradingBox/revokeRentingOut',
+    method: 'post',
+    data: data
+  })
+}
+// 租金计算
+export function rentCalculation(data) {
+  return request({
+    url: '/api/blade-los/tradingBox/rentCalculation',
+    method: 'post',
+    data: data
+  })
+}
+// 撤销租金计算
+export function revokeRentCalculation(data) {
+  return request({
+    url: '/api/blade-los/tradingBox/revokeRentCalculation',
+    method: 'post',
+    data: data
+  })
 }

+ 30 - 25
src/components/dicSelect/main.vue

@@ -174,7 +174,7 @@ export default {
             },
             treeData: [],
             selectWidth: 0,
-            obtained:true,
+            obtained: true,
         }
     },
     props: {
@@ -272,11 +272,11 @@ export default {
             type: Boolean,
             default: false
         },
-        default:{
+        default: {
             type: Boolean,
             default: false
         },
-        defaultValue:{
+        defaultValue: {
             type: String,
             default: ''
         },
@@ -307,7 +307,7 @@ export default {
                 this.$refs.mySelect.$el.querySelector('.el-select-dropdown').style.width = `${this.selectWidth}px`;
             });
         }
-    }, 
+    },
     watch: {
         value: {
             handler(val, oldVal) {
@@ -409,32 +409,37 @@ export default {
             })
         },
         selectChange(row) {
+            console.log(row, 1111)
             if (this.dataType == 'string') {
                 let data = []
-                let ids=[]
+                let ids = []
                 this.options.forEach(e => {
-                    if (this.keyValue) {
-                        row.forEach(item => {
-                            if (item == e[this.keyValue]) {
-                                data.push(e[this.label])
-                                this.$emit('selectChange', data.join(','))
-                            }
-                        })
+                    if (row.length) {
+                        if (this.keyValue) {
+                            row.forEach(item => {
+                                if (item == e[this.keyValue]) {
+                                    data.push(e[this.label])
+                                    this.$emit('selectChange', data.join(','))
+                                }
+                            })
 
+                        }
+                        if (this.label) {
+                            row.forEach(item => {
+                                if (item == e[this.label]) {
+                                    ids.push(e.id)
+                                    data.push(e[this.label])
+                                    this.$emit('selectChange', {
+                                        ids: ids.join(','),
+                                        names: data.join(','),
+                                    })
+                                }
+                            })
+                        }
+                    } else {
+                        this.$emit('selectChange', null)
                     }
-                    if (this.label) {
-                        row.forEach(item => {
-                            if (item == e[this.label]) {
-                                ids.push(e.id)
-                                data.push(e[this.label])
-                                this.$emit('selectChange',{
-                                    ids:ids.join(','),
-                                    names:data.join(','),
-                                })
-                            }
-                        })
 
-                    }
                 })
             } else {
                 this.options.forEach(e => {
@@ -453,7 +458,7 @@ export default {
 
         },
         clear() {
-            if(this.url){
+            if (this.url) {
                 this.data = this.$options.data().data
                 this.getDicData()
             }

+ 40 - 39
src/views/boxManagement/agentBox/detailsPage.vue

@@ -41,19 +41,19 @@
               </tempalte>
               <tempalte slot="podCname">
                 <dic-select v-model="form.podCname" placeholder="目的港" key="id" label="cnName" res="records"
-                  url="/blade-los/blocations/list" :filterable="true" :remote="true" dataName="cnName"
+                  url="/blade-los/bports/list" :filterable="true" :remote="true" dataName="cnName"
                   @selectChange="dicChange('podCname', $event)"></dic-select>
               </tempalte>
-              <tempalte slot="stationCname">
-                <dic-select v-model="form.stationCname" placeholder="场站" key="id" label="cnName" res="records"
-                  url="/blade-los/blocations/list" :filterable="true" :remote="true" dataName="cnName"
-                  @selectChange="dicChange('stationCname', $event)"></dic-select>
-              </tempalte>
               <tempalte slot="addressCname">
                 <dic-select v-model="form.addressCname" placeholder="港口" key="id" label="cnName" res="records"
                   url="/blade-los/bports/list" :filterable="true" :remote="true" dataName="cnName"
                   @selectChange="dicChange('addressCname', $event)" :disabled="editDisabled"></dic-select>
               </tempalte>
+              <tempalte slot="stationCname">
+                <dic-select v-model="form.stationCname" placeholder="场站" :key="updateFormKey" label="cnName" res="records"
+                  :url="'/blade-los/bcorps/selectList?corpTypeName=场站&addressId='+(form.addressId?form.addressId:'')" :filterable="true" :remote="true" dataName="cnName"
+                  @selectChange="dicChange('stationCname', $event)" :disabled="editDisabled||!form.addressId"></dic-select>
+              </tempalte>
             </avue-form>
           </trade-card>
           <trade-card title="箱型箱量">
@@ -170,7 +170,7 @@
               </tempalte>
               <tempalte slot="stationCnameForm" slot-scope="{ row }">
                 <dic-select v-if="row.$cellEdit" v-model="row.stationCname" placeholder="场站" key="id" label="cnName"
-                  res="records" url="/blade-los/blocations/list" :filterable="true" :remote="true" dataName="cnName"
+                  res="records" url="/blade-los/bcorps/selectList?corpTypeName=场站" :filterable="true" :remote="true" dataName="cnName"
                   @selectChange="rowDicChange('stationCname', $event, row)"></dic-select>
                 <span v-else>{{ row.stationCname }}</span>
               </tempalte>
@@ -535,7 +535,7 @@ export default {
             }],
           },
           {
-            label: '用港',
+            label: '用港',
             prop: 'polCname',
             span: 24,
             rules: [{
@@ -648,8 +648,8 @@ export default {
             disabled: false,
           },
           {
-            label: '场站',
-            prop: 'stationCname',
+            label: '港口',
+            prop: 'addressCname',
             disabled: false,
             rules: [{
               required: true,
@@ -658,14 +658,9 @@ export default {
             }]
           },
           {
-            label: '港口',
-            prop: 'addressCname',
+            label: '场站',
+            prop: 'stationCname',
             disabled: false,
-            rules: [{
-              required: true,
-              message: " ",
-              trigger: "blur"
-            }]
           },
           {
             label: '目的港',
@@ -1252,6 +1247,7 @@ export default {
       },
       roleName: [],
       updateSearchKey: new Date().getTime(),
+      updateFormKey: new Date().getTime(),
     }
   },
   components: {
@@ -1360,23 +1356,20 @@ export default {
           this.form.addressId = row.id
           this.form.addressCode = row.code
           this.form.addressEname = row.enName
+          this.form.stationId = null
+          this.form.stationCode = null
+          this.form.stationCname = null
+          this.form.stationEname = null
+          this.updateFormKey=new Date().getTime()
         } else {
           this.form.addressId = null
           this.form.addressCode = null
           this.form.addressEname = null
           this.form.addressCname = null
-        }
-      }
-      if (name == 'podCname') {
-        if (row) {
-          this.form.podId = row.id
-          this.form.podCode = row.code
-          this.form.podEname = row.enName
-        } else {
-          this.form.podId = null
-          this.form.podCode = null
-          this.form.podEname = null
-          this.form.podCname = null
+          this.form.stationId = null
+          this.form.stationCode = null
+          this.form.stationCname = null
+          this.form.stationEname = null
         }
       }
       if (name == 'stationCname') {
@@ -1384,19 +1377,23 @@ export default {
           this.form.stationId = row.id
           this.form.stationCode = row.code
           this.form.stationEname = row.enName
-          this.form.addressId = row.addressId
-          this.form.addressCode = row.addressCode
-          this.form.addressEname = row.addressEname
-          this.form.addressCname = row.addressCname
         } else {
           this.form.stationId = null
           this.form.stationCode = null
           this.form.stationCname = null
           this.form.stationEname = null
-          this.form.addressId = null
-          this.form.addressCode = null
-          this.form.addressEname = null
-          this.form.addressCname = null
+        }
+      }
+      if (name == 'podCname') {
+        if (row) {
+          this.form.podId = row.id
+          this.form.podCode = row.code
+          this.form.podEname = row.enName
+        } else {
+          this.form.podId = null
+          this.form.podCode = null
+          this.form.podEname = null
+          this.form.podCname = null
         }
       }
       // if (name == 'podCname') {
@@ -1652,6 +1649,7 @@ export default {
       });
       detail({ id: id }).then(res => {
         this.form = res.data.data
+        this.updateFormKey=new Date().getTime()
         // if (res.data.data.status != '录入') {
         //   this.editButton = true
         //   this.editDisabled = true
@@ -1808,7 +1806,7 @@ export default {
           return this.$message.error("请添加数据");
         }
         for (let row of this.form.tradingBoxItemsList) {
-          if (!row.code || !row.boxType || !row.boxBelongsTo || !row.boxCategory || !row.boxStatus || !row.boxCondition || !row.amount || !row.currency || !row.exrate || !row.stationCname || !row.restrictedPortsName || !row.restrictingShippingCompaniesName || !row.status) {
+          if (!row.code || !row.boxType || !row.boxBelongsTo || !row.boxCategory || !row.boxStatus || !row.boxCondition || !row.amount || !row.currency || !row.exrate || !row.stationCname  || !row.status) {
             this.$refs.crud.rowCell(row, row.$index)
             return this.$message.error("请完善明细信息");
           }
@@ -1991,7 +1989,7 @@ export default {
             }
           }
           for (let row of this.form.tradingBoxItemsList) {
-            if (!row.code || !row.boxType || !row.boxBelongsTo || !row.boxCategory || !row.boxStatus || !row.boxCondition || !row.amount || !row.currency || !row.exrate || !row.stationCname || !row.restrictedPortsName || !row.restrictingShippingCompaniesName || !row.status) {
+            if (!row.code || !row.boxType || !row.boxBelongsTo || !row.boxCategory || !row.boxStatus || !row.boxCondition || !row.amount || !row.currency || !row.exrate || !row.stationCname || !row.status) {
               this.$refs.crud.rowCell(row, row.$index)
               return this.$message.error("请完善明细信息");
             }
@@ -2116,6 +2114,9 @@ export default {
 </script>
 
 <style lang="scss" scoped>
+::v-deep .el-form-item__error {
+  display: none !important;
+}
 ::v-deep .el-form-item {
   margin-bottom: 8px !important;
 }

+ 3 - 0
src/views/boxManagement/boxPoolDynamics/detailsPage.vue

@@ -364,6 +364,9 @@ export default {
 </script>
 
 <style lang="scss" scoped>
+::v-deep .el-form-item__error {
+  display: none !important;
+}
 ::v-deep .el-form-item {
   margin-bottom: 8px !important;
 }

+ 1 - 1
src/views/boxManagement/boxPoolDynamics/index.vue

@@ -690,7 +690,7 @@ export default {
                 this.page2.total = res.data.data.total;
                 this.$nextTick(() => {
                     this.$refs.crud2.doLayout();
-                    // this.$refs.crud2.dicInit();
+                    this.$refs.crud2.dicInit();
                 });
             }).finally(() => {
                 this.loading2 = false;

+ 33 - 32
src/views/boxManagement/buyContainer/detailsPage.vue

@@ -35,20 +35,20 @@
           <trade-card title="基础信息">
             <avue-form :option="optionForm" v-model="form" ref="form">
               <tempalte slot="purchaseCompanyName">
-                <dic-select v-model="form.purchaseCompanyName" placeholder="出售方" key="id" label="cnName" res="records"
+                <dic-select v-model="form.purchaseCompanyName" placeholder="出售方" label="cnName" res="records"
                   url="/blade-los/bcorps/selectList?corpTypeName=箱东" :filterable="true" :remote="true" dataName="cnName"
-                  @selectChange="dicChange('purchaseCompanyName', $event)"></dic-select>
-              </tempalte>
-              <tempalte slot="stationCname">
-                <dic-select v-model="form.stationCname" placeholder="场站" key="id" label="cnName" res="records"
-                  url="/blade-los/blocations/list" :filterable="true" :remote="true" dataName="cnName"
-                  @selectChange="dicChange('stationCname', $event)"></dic-select>
+                  @selectChange="dicChange('purchaseCompanyName', $event)" :disabled="editDisabled"></dic-select>
               </tempalte>
               <tempalte slot="addressCname">
-                <dic-select v-model="form.addressCname" placeholder="港口" key="id" label="cnName" res="records"
+                <dic-select v-model="form.addressCname" placeholder="港口" label="cnName" res="records"
                   url="/blade-los/bports/list" :filterable="true" :remote="true" dataName="cnName"
                   @selectChange="dicChange('addressCname', $event)" :disabled="editDisabled"></dic-select>
               </tempalte>
+              <tempalte slot="stationCname">
+                <dic-select v-model="form.stationCname" placeholder="场站" :key="updateFormKey" label="cnName" res="records"
+                  :url="'/blade-los/bcorps/selectList?corpTypeName=场站&addressId='+(form.addressId?form.addressId:'')" :filterable="true" :remote="true" dataName="cnName"
+                  @selectChange="dicChange('stationCname', $event)" :disabled="editDisabled||!form.addressId"></dic-select>
+              </tempalte>
             </avue-form>
           </trade-card>
           <trade-card title="基础明细">
@@ -70,7 +70,7 @@
                 <el-button type="info" size="small" @click="allClick('启用')"
                   :disabled="selectionList.length == 0">启用</el-button>
                 <!-- <el-button type="primary" size="small" @click="allClick('卖箱')">卖箱</el-button> -->
-                <el-button size="small" style="margin-right: 8px" :disabled="!form.id||true"
+                <el-button size="small" style="margin-right: 8px" :disabled="!form.id || true"
                   @click="$refs.print.openDialog()">打印账单
                 </el-button>
               </template>
@@ -103,7 +103,7 @@
               </tempalte>
               <tempalte slot="stationCnameForm" slot-scope="{ row }">
                 <dic-select v-if="row.$cellEdit" v-model="row.stationCname" placeholder="场站" key="id" label="cnName"
-                  res="records" url="/blade-los/blocations/list" :filterable="true" :remote="true" dataName="cnName"
+                  res="records" url="/blade-los/bcorps/selectList?corpTypeName=场站" :filterable="true" :remote="true" dataName="cnName"
                   @selectChange="rowDicChange('stationCname', $event, row)"></dic-select>
                 <span v-else>{{ row.stationCname }}</span>
               </tempalte>
@@ -171,8 +171,8 @@
                 <span v-else>{{ row.cntrNo }}</span>
               </template>
               <template slot="corpCnNameForm" slot-scope="{ row,index }">
-                <dic-select v-if="row.$cellEdit" :key="updateSearchKey" v-model="row.corpCnName"
-                  placeholder="付费对象" label="cnName" res="records"
+                <dic-select v-if="row.$cellEdit" :key="updateSearchKey" v-model="row.corpCnName" placeholder="付费对象"
+                  label="cnName" res="records"
                   :url="'/blade-los/bcorps/selectList?status=0&current=1&size=20&corpTypeName=' + row.billType"
                   :filterable="true" :remote="true" dataName="cnName"
                   @selectChange="rowDicChange('corpCnName', $event, row)"></dic-select>
@@ -345,7 +345,7 @@ export default {
             }],
           },
           {
-            label: '用港',
+            label: '用港',
             prop: 'polCname',
             span: 24,
             rules: [{
@@ -465,8 +465,8 @@ export default {
             }]
           },
           {
-            label: '场站',
-            prop: 'stationCname',
+            label: '港口',
+            prop: 'addressCname',
             disabled: false,
             rules: [{
               required: true,
@@ -475,14 +475,9 @@ export default {
             }]
           },
           {
-            label: '港口',
-            prop: 'addressCname',
+            label: '场站',
+            prop: 'stationCname',
             disabled: false,
-            rules: [{
-              required: true,
-              message: " ",
-              trigger: "blur"
-            }]
           },
           {
             label: '箱况',
@@ -1086,6 +1081,7 @@ export default {
       },
       roleName: [],
       updateSearchKey: new Date().getTime(),
+      updateFormKey: new Date().getTime(),
     }
   },
   components: {
@@ -1185,11 +1181,20 @@ export default {
           this.form.addressId = row.id
           this.form.addressCode = row.code
           this.form.addressEname = row.enName
+          this.form.stationId = null
+          this.form.stationCode = null
+          this.form.stationCname = null
+          this.form.stationEname = null
+          this.updateFormKey=new Date().getTime()
         } else {
           this.form.addressId = null
           this.form.addressCode = null
           this.form.addressEname = null
           this.form.addressCname = null
+          this.form.stationId = null
+          this.form.stationCode = null
+          this.form.stationCname = null
+          this.form.stationEname = null
         }
       }
       if (name == 'stationCname') {
@@ -1197,19 +1202,11 @@ export default {
           this.form.stationId = row.id
           this.form.stationCode = row.code
           this.form.stationEname = row.enName
-          this.form.addressId = row.addressId
-          this.form.addressCode = row.addressCode
-          this.form.addressEname = row.addressEname
-          this.form.addressCname = row.addressCname
         } else {
           this.form.stationId = null
           this.form.stationCode = null
           this.form.stationCname = null
           this.form.stationEname = null
-          this.form.addressId = null
-          this.form.addressCode = null
-          this.form.addressEname = null
-          this.form.addressCname = null
         }
       }
       // if (name == 'podCname') {
@@ -1423,6 +1420,7 @@ export default {
       });
       detail({ id: id }).then(res => {
         this.form = res.data.data
+        this.updateFormKey=new Date().getTime()
         // if (res.data.data.status != '录入') {
         //   this.editButton = true
         //   this.editDisabled = true
@@ -1510,7 +1508,7 @@ export default {
           return this.$message.error("请添加数据");
         }
         for (let row of this.form.tradingBoxItemsList) {
-          if (!row.code || !row.boxType || !row.boxBelongsTo || !row.boxCategory || !row.boxStatus || !row.boxCondition || !row.amount || !row.currency || !row.exrate || !row.stationCname || !row.restrictedPortsName || !row.restrictingShippingCompaniesName || !row.status) {
+          if (!row.code || !row.boxType || !row.boxBelongsTo || !row.boxCategory || !row.boxStatus || !row.boxCondition || !row.amount || !row.currency || !row.exrate || !row.stationCname || !row.status) {
             this.$refs.crud.rowCell(row, row.$index)
             return this.$message.error("请完善明细信息");
           }
@@ -1660,7 +1658,7 @@ export default {
         done();
         if (valid) {
           for (let row of this.form.tradingBoxItemsList) {
-            if (!row.code || !row.boxType || !row.boxBelongsTo || !row.boxCategory || !row.boxStatus || !row.boxCondition || !row.amount || !row.currency || !row.exrate || !row.stationCname || !row.restrictedPortsName || !row.restrictingShippingCompaniesName || !row.status) {
+            if (!row.code || !row.boxType || !row.boxBelongsTo || !row.boxCategory || !row.boxStatus || !row.boxCondition || !row.amount || !row.currency || !row.exrate || !row.stationCname || !row.status) {
               this.$refs.crud.rowCell(row, row.$index)
               return this.$message.error("请完善明细信息");
             }
@@ -1785,6 +1783,9 @@ export default {
 </script>
 
 <style lang="scss" scoped>
+::v-deep .el-form-item__error {
+  display: none !important;
+}
 ::v-deep .el-form-item {
   margin-bottom: 8px !important;
 }

+ 5 - 2
src/views/boxManagement/containerNumber/detailsPage.vue

@@ -49,12 +49,12 @@
           </tempalte>
           <tempalte slot="polStationCname">
             <dic-select v-model="form.polStationCname" placeholder="起运港提/送箱场站" key="id" label="cnName" res="records"
-              url="/blade-los/blocations/list" :filterable="true" :remote="true" dataName="cnName"
+              url="/blade-los/bcorps/selectList?corpTypeName=场站" :filterable="true" :remote="true" dataName="cnName"
               @selectChange="dicChange('polStationCname', $event)" :disabled="editDisabled"></dic-select>
           </tempalte>
           <tempalte slot="podStationCname">
             <dic-select v-model="form.podStationCname" placeholder="目的港提/还箱场站" key="id" label="cnName" res="records"
-              url="/blade-los/blocations/list" :filterable="true" :remote="true" dataName="cnName"
+              url="/blade-los/bcorps/selectList?corpTypeName=场站" :filterable="true" :remote="true" dataName="cnName"
               @selectChange="dicChange('podStationCname', $event)" :disabled="editDisabled"></dic-select>
           </tempalte>
           <tempalte slot="polCname">
@@ -1323,6 +1323,9 @@ export default {
 </script>
 
 <style lang="scss" scoped>
+::v-deep .el-form-item__error {
+  display: none !important;
+}
 ::v-deep .el-form-item {
   margin-bottom: 8px !important;
 }

+ 2 - 2
src/views/boxManagement/containerNumber/index.vue

@@ -164,7 +164,7 @@ export default {
                         type: "select",
                         filterable: true,
                         remote: true,
-                        dicUrl: "/api/blade-los/blocations/list?size=20&current=1&cnName={{key}}",
+                        dicUrl: "/api/blade-los/bcorps/selectList?corpTypeName=场站&size=20&current=1&cnName={{key}}",
                         props: {
                             label: "cnName",
                             value: "id",
@@ -190,7 +190,7 @@ export default {
                         type: "select",
                         filterable: true,
                         remote: true,
-                        dicUrl: "/api/blade-los/blocations/list?size=20&current=1&cnName={{key}}",
+                        dicUrl: "/api/blade-los/bcorps/selectList?corpTypeName=场站&size=20&current=1&cnName={{key}}",
                         props: {
                             label: "cnName",
                             value: "id",

+ 281 - 54
src/views/boxManagement/rentalBox/detailsPage.vue

@@ -41,19 +41,19 @@
               </tempalte>
               <tempalte slot="polStationCname">
                 <dic-select v-model="form.polStationCname" placeholder="退/还箱地" key="id" label="cnName" res="records"
-                  url="/blade-los/blocations/list" :filterable="true" :remote="true" dataName="cnName"
+                  url="/blade-los/bcorps/selectList?corpTypeName=场站" :filterable="true" :remote="true" dataName="cnName"
                   @selectChange="dicChange('polStationCname', $event)"></dic-select>
               </tempalte>
-              <tempalte slot="stationCname">
-                <dic-select v-model="form.stationCname" placeholder="场站" key="id" label="cnName" res="records"
-                  url="/blade-los/blocations/list" :filterable="true" :remote="true" dataName="cnName"
-                  @selectChange="dicChange('stationCname', $event)"></dic-select>
-              </tempalte>
               <tempalte slot="addressCname">
                 <dic-select v-model="form.addressCname" placeholder="港口" key="id" label="cnName" res="records"
                   url="/blade-los/bports/list" :filterable="true" :remote="true" dataName="cnName"
                   @selectChange="dicChange('addressCname', $event)" :disabled="editDisabled"></dic-select>
               </tempalte>
+              <tempalte slot="stationCname">
+                <dic-select v-model="form.stationCname" placeholder="场站" :key="updateFormKey" label="cnName" res="records"
+                  :url="'/blade-los/bcorps/selectList?corpTypeName=场站&addressId='+(form.addressId?form.addressId:'')" :filterable="true" :remote="true" dataName="cnName"
+                  @selectChange="dicChange('stationCname', $event)" :disabled="editDisabled||!form.addressId"></dic-select>
+              </tempalte>
             </avue-form>
           </trade-card>
           <trade-card title="箱型箱量">
@@ -127,14 +127,18 @@
                 <el-button type="danger" plain size="small" :disabled="editDisabled || selectionList.length == 0"
                   @click="allClick('批量删除')">批量删除</el-button>
                 <el-button type="primary" plain size="small" @click="allClick('起租')"
-                  :disabled="selectionList.length == 0">起租</el-button>
+                  :disabled="form.buxStaus != '录入' || form.tradingBoxItemsList.length == 0">起租</el-button>
                 <el-button type="success" plain size="small" @click="allClick('生成租金')"
-                  :disabled="selectionList.length == 0">生成租金</el-button>
+                  :disabled="form.buxStaus != '已启租'">生成租金</el-button>
+                <el-button type="danger" plain size="small" @click="allClick('撤销租金')"
+                  :disabled="form.buxStaus != '已启租'">撤销租金</el-button>
                 <el-button type="warning" plain size="small" @click="allClick('退租')"
-                  :disabled="selectionList.length == 0">退租</el-button>
+                  :disabled="form.buxStaus != '已启租'">退租</el-button>
+                <el-button type="danger" plain size="small" @click="allClick('撤销退租')"
+                  :disabled="form.buxStaus != '已退租'">撤销退租</el-button>
                 <el-button type="success" size="small">导入</el-button>
                 <el-button type="info" size="small" @click="allClick('启用')"
-                  :disabled="selectionList.length == 0">启用</el-button>
+                  :disabled="selectionList.length == 0 || form.buxStaus != '已启租'">启用</el-button>
                 <!-- <el-button type="primary" size="small" @click="allClick('卖箱')">卖箱</el-button> -->
                 <el-button size="small" style="margin-right: 8px" :disabled="!form.id || true"
                   @click="$refs.print.openDialog()">打印账单
@@ -169,7 +173,7 @@
               </tempalte>
               <tempalte slot="stationCnameForm" slot-scope="{ row }">
                 <dic-select v-if="row.$cellEdit" v-model="row.stationCname" placeholder="场站" key="id" label="cnName"
-                  res="records" url="/blade-los/blocations/list" :filterable="true" :remote="true" dataName="cnName"
+                  res="records" url="/blade-los/bcorps/selectList?corpTypeName=场站" :filterable="true" :remote="true" dataName="cnName"
                   @selectChange="rowDicChange('stationCname', $event, row)"></dic-select>
                 <span v-else>{{ row.stationCname }}</span>
               </tempalte>
@@ -354,7 +358,11 @@ import {
   submitFeeList,
   enable,
   submitBoxList,
-  boxRemove
+  boxRemove,
+  startingRent,
+  revokeRentingOut,
+  rentCalculation,
+  revokeRentCalculation
 } from "@/api/boxManagement/buyContainer/index.js";
 import dicSelect from "@/components/dicSelect/main";
 import checkSchedule from "@/components/checkH/checkSchedule.vue";
@@ -534,7 +542,7 @@ export default {
             }],
           },
           {
-            label: '用港',
+            label: '用港',
             prop: 'polCname',
             span: 24,
             rules: [{
@@ -668,16 +676,6 @@ export default {
             }]
           },
           {
-            label: '场站',
-            prop: 'stationCname',
-            disabled: false,
-            rules: [{
-              required: true,
-              message: " ",
-              trigger: "blur"
-            }]
-          },
-          {
             label: '港口',
             prop: 'addressCname',
             disabled: false,
@@ -688,6 +686,11 @@ export default {
             }]
           },
           {
+            label: '场站',
+            prop: 'stationCname',
+            disabled: false
+          },
+          {
             label: '备注',
             prop: 'remarks',
             type: 'textarea',
@@ -1225,6 +1228,30 @@ export default {
             overHidden: true,
           },
           {
+            label: "租金天数",
+            prop: "days",
+            width: "80",
+            overHidden: true,
+          },
+          {
+            label: "租金起始",
+            prop: "storageDate",
+            width: "100",
+            overHidden: true,
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd HH:mm:ss"
+          },
+          {
+            label: "租金截止",
+            prop: "outboundDate",
+            width: "100",
+            overHidden: true,
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd HH:mm:ss"
+          },
+          {
             label: "制单人",
             prop: "createUserName",
             width: "100",
@@ -1258,6 +1285,7 @@ export default {
       },
       roleName: [],
       updateSearchKey: new Date().getTime(),
+      updateFormKey: new Date().getTime(),
     }
   },
   components: {
@@ -1366,23 +1394,20 @@ export default {
           this.form.addressId = row.id
           this.form.addressCode = row.code
           this.form.addressEname = row.enName
+          this.form.stationId = null
+          this.form.stationCode = null
+          this.form.stationCname = null
+          this.form.stationEname = null
+          this.updateFormKey=new Date().getTime()
         } else {
           this.form.addressId = null
           this.form.addressCode = null
           this.form.addressEname = null
           this.form.addressCname = null
-        }
-      }
-      if (name == 'polStationCname') {
-        if (row) {
-          this.form.polStationId = row.id
-          this.form.polStationCode = row.code
-          this.form.polStationEname = row.enName
-        } else {
-          this.form.polStationId = null
-          this.form.polStationCode = null
-          this.form.polStationEname = null
-          this.form.polStationCname = null
+          this.form.stationId = null
+          this.form.stationCode = null
+          this.form.stationCname = null
+          this.form.stationEname = null
         }
       }
       if (name == 'stationCname') {
@@ -1390,19 +1415,23 @@ export default {
           this.form.stationId = row.id
           this.form.stationCode = row.code
           this.form.stationEname = row.enName
-          this.form.addressId = row.addressId
-          this.form.addressCode = row.addressCode
-          this.form.addressEname = row.addressEname
-          this.form.addressCname = row.addressCname
         } else {
           this.form.stationId = null
           this.form.stationCode = null
           this.form.stationCname = null
           this.form.stationEname = null
-          this.form.addressId = null
-          this.form.addressCode = null
-          this.form.addressEname = null
-          this.form.addressCname = null
+        }
+      }
+      if (name == 'polStationCname') {
+        if (row) {
+          this.form.polStationId = row.id
+          this.form.polStationCode = row.code
+          this.form.polStationEname = row.enName
+        } else {
+          this.form.polStationId = null
+          this.form.polStationCode = null
+          this.form.polStationEname = null
+          this.form.polStationCname = null
         }
       }
       // if (name == 'podCname') {
@@ -1530,6 +1559,7 @@ export default {
         }
       }
       if (name == 'restrictingShippingCompaniesName') {
+        console.log(row)
         if (row) {
           el.restrictingShippingCompaniesIds = row.ids
           el.restrictingShippingCompaniesName = row.names
@@ -1658,6 +1688,7 @@ export default {
       });
       detail({ id: id }).then(res => {
         this.form = res.data.data
+        this.updateFormKey=new Date().getTime()
         // if (res.data.data.status != '录入') {
         //   this.editButton = true
         //   this.editDisabled = true
@@ -1814,7 +1845,7 @@ export default {
           return this.$message.error("请添加数据");
         }
         for (let row of this.form.tradingBoxItemsList) {
-          if (!row.code || !row.boxType || !row.boxBelongsTo || !row.boxCategory || !row.boxStatus || !row.boxCondition || !row.amount || !row.currency || !row.exrate || !row.stationCname || !row.restrictedPortsName || !row.restrictingShippingCompaniesName || !row.status) {
+          if (!row.code || !row.boxType || !row.boxBelongsTo || !row.boxCategory || !row.boxStatus || !row.boxCondition || !row.amount || !row.currency || !row.exrate || !row.stationCname || !row.status) {
             this.$refs.crud.rowCell(row, row.$index)
             return this.$message.error("请完善明细信息");
           }
@@ -1882,30 +1913,223 @@ export default {
         })
       }
       if (name == '起租') {
-        this.$confirm('是否起租?', '提示', {
-          confirmButtonText: '确定',
-          cancelButtonText: '取消',
-          type: 'warning'
-        }).then(() => {
+        this.$DialogForm.show({
+          title: '起租',
+          width: '30%',
+          menuPosition: 'right',
+          option: {
+            submitText: '确定',
+            emptyText: '取消',
+            span: 24,
+            column: [{
+              label: "起租日期",
+              prop: "value",
+              type: "date",
+              format: "yyyy-MM-dd",
+              valueFormat: "yyyy-MM-dd HH:mm:ss",
+              rules: [{
+                required: true,
+                message: "请选择起租日期",
+                trigger: "blur",
 
+              }],
+            }]
+          },
+          beforeClose: (done) => {
+            done()
+          },
+          callback: (res) => {
+            res.done()
+            this.$confirm('是否起租?', '提示', {
+              confirmButtonText: '确定',
+              cancelButtonText: '取消',
+              type: 'warning'
+            }).then(() => {
+              let obj = {
+                ...this.form,
+                rentType: 1,
+                rentDate: res.data.value
+              }
+              const loading = this.$loading({
+                lock: true,
+                text: '加载中',
+                spinner: 'el-icon-loading',
+                background: 'rgba(255,255,255,0.7)'
+              });
+              startingRent(obj).then(res => {
+                this.$message.success("操作成功!");
+                this.getDetail(this.form.id)
+              }).finally(() => {
+                loading.close();
+              })
+              res.close()
+            })
+          }
         })
       }
       if (name == '生成租金') {
-        this.$confirm('是否生成租金?', '提示', {
+        let _this=this
+        this.$DialogForm.show({
+          title: '生成租金',
+          width: '30%',
+          menuPosition: 'right',
+          option: {
+            submitText: '确定',
+            emptyText: '取消',
+            span: 24,
+            column: [{
+              label: "日期",
+              prop: "value",
+              type: "date",
+              format: "yyyy-MM-dd",
+              valueFormat: "yyyy-MM-dd HH:mm:ss",
+              pickerOptions: {
+                disabledDate(time) {
+                  const date=new Date(_this.form.rentEndDate)
+                  date.setDate(date.getDate() + 1);
+                  return time.getTime() < date.getTime();
+                },
+              },
+              rules: [{
+                required: true,
+                message: "请选择日期",
+                trigger: "blur",
+
+              }],
+            }]
+          },
+          beforeClose: (done) => {
+            done()
+          },
+          callback: (res) => {
+            res.done()
+            this.$confirm('是否生成租金?', '提示', {
+              confirmButtonText: '确定',
+              cancelButtonText: '取消',
+              type: 'warning'
+            }).then(() => {
+              let obj = {
+                ...this.form,
+                rentDate: res.data.value
+              }
+              const loading = this.$loading({
+                lock: true,
+                text: '加载中',
+                spinner: 'el-icon-loading',
+                background: 'rgba(255,255,255,0.7)'
+              });
+              rentCalculation(obj).then(res => {
+                this.$message.success("操作成功!");
+                this.getDetail(this.form.id)
+              }).finally(() => {
+                loading.close();
+              })
+              res.close()
+            })
+          }
+        })
+      }
+      if (name == '撤销租金') {
+        this.$confirm('是否撤销租金?', '提示', {
           confirmButtonText: '确定',
           cancelButtonText: '取消',
           type: 'warning'
         }).then(() => {
-
+          const loading = this.$loading({
+            lock: true,
+            text: '加载中',
+            spinner: 'el-icon-loading',
+            background: 'rgba(255,255,255,0.7)'
+          });
+          revokeRentCalculation(this.form).then(res => {
+            this.$message.success("操作成功!");
+            this.getDetail(this.form.id)
+          }).finally(() => {
+            loading.close();
+          })
         })
       }
       if (name == '退租') {
-        this.$confirm('是否退租?', '提示', {
+        let _this=this
+        this.$DialogForm.show({
+          title: '退租',
+          width: '30%',
+          menuPosition: 'right',
+          option: {
+            submitText: '确定',
+            emptyText: '取消',
+            span: 24,
+            column: [{
+              label: "退租日期",
+              prop: "value",
+              type: "date",
+              format: "yyyy-MM-dd",
+              valueFormat: "yyyy-MM-dd HH:mm:ss",
+              pickerOptions: {
+                disabledDate(time) {
+                  const date=new Date(_this.form.rentEndDate)
+                  date.setDate(date.getDate() + 1);
+                  return time.getTime() < date.getTime();
+                },
+              },
+              rules: [{
+                required: true,
+                message: "请选择退租起租日期",
+                trigger: "blur",
+
+              }],
+            }]
+          },
+          beforeClose: (done) => {
+            done()
+          },
+          callback: (res) => {
+            res.done()
+            this.$confirm('是否退租?', '提示', {
+              confirmButtonText: '确定',
+              cancelButtonText: '取消',
+              type: 'warning'
+            }).then(() => {
+              let obj = {
+                ...this.form,
+                rentType: 2,
+                rentDate: res.data.value
+              }
+              const loading = this.$loading({
+                lock: true,
+                text: '加载中',
+                spinner: 'el-icon-loading',
+                background: 'rgba(255,255,255,0.7)'
+              });
+              startingRent(obj).then(res => {
+                this.$message.success("操作成功!");
+                this.getDetail(this.form.id)
+              }).finally(() => {
+                loading.close();
+              })
+              res.close()
+            })
+          }
+        })
+      }
+      if (name == '撤销退租') {
+        this.$confirm('是否撤销退租?', '提示', {
           confirmButtonText: '确定',
           cancelButtonText: '取消',
           type: 'warning'
         }).then(() => {
-
+          const loading = this.$loading({
+            lock: true,
+            text: '加载中',
+            spinner: 'el-icon-loading',
+            background: 'rgba(255,255,255,0.7)'
+          });
+          revokeRentingOut(this.form).then(res => {
+            this.$message.success("操作成功!");
+            this.getDetail(this.form.id)
+          }).finally(() => {
+            loading.close();
+          })
         })
       }
       if (name == '导入') {
@@ -1997,7 +2221,7 @@ export default {
             }
           }
           for (let row of this.form.tradingBoxItemsList) {
-            if (!row.code || !row.boxType || !row.boxBelongsTo || !row.boxCategory || !row.boxStatus || !row.boxCondition || !row.amount || !row.currency || !row.exrate || !row.stationCname || !row.restrictedPortsName || !row.restrictingShippingCompaniesName || !row.status) {
+            if (!row.code || !row.boxType || !row.boxBelongsTo || !row.boxCategory || !row.boxStatus || !row.boxCondition || !row.amount || !row.currency || !row.exrate || !row.stationCname || !row.status) {
               this.$refs.crud.rowCell(row, row.$index)
               return this.$message.error("请完善明细信息");
             }
@@ -2122,6 +2346,9 @@ export default {
 </script>
 
 <style lang="scss" scoped>
+::v-deep .el-form-item__error {
+  display: none !important;
+}
 ::v-deep .el-form-item {
   margin-bottom: 8px !important;
 }

+ 23 - 1
src/views/iosBasicData/bcorps/detailsPage.vue

@@ -342,6 +342,13 @@
                   </el-input>
                 </el-form-item>
               </el-col>
+              <el-col :span="8">
+                <el-form-item label="港口" prop="addressCname">
+                  <dic-select v-model="formData.addressCname" placeholder="港口" key="id" label="cnName" res="records"
+                  url="/blade-los/bports/list" :filterable="true" :remote="true" dataName="cnName"
+                  @selectChange="dicChange('addressCname', $event)" :disabled="editDisabled"></dic-select>
+                </el-form-item>
+              </el-col>
               <el-col :span="24">
                 <el-form-item label="详情信息" prop="details">
                   <el-input v-model="formData.details" size="small" type="textarea" placeholder="请输入详情信息"
@@ -1132,9 +1139,10 @@ import { blinesList } from "@/api/iosBasicData/blines";
 import blines from "@/views/iosBasicData/blines/index.vue";
 import { selectListLos } from "@/api/approval/processConfig";
 import losaudit from "@/views/wel/components/losAssembly/losaudit.vue";
+import dicSelect from "@/components/dicSelect/main";
 export default {
   components: {
-    SearchQuery, bcountrys, user, rateManagement, blines
+    SearchQuery, bcountrys, user, rateManagement, blines,dicSelect
   },
   props: {
     detailData: {
@@ -1454,6 +1462,20 @@ export default {
   },
   mounted() { },
   methods: {
+    dicChange(name,row){
+      if (name == 'addressCname') {
+        if (row) {
+          this.formData.addressId = row.id
+          this.formData.addressCode = row.code
+          this.formData.addressEname = row.enName
+        } else {
+          this.formData.addressId = null
+          this.formData.addressCode = null
+          this.formData.addressEname = null
+          this.formData.addressCname = null
+        }
+      }
+    },
     openPreview(row) {
       this.$ImagePreview([{ url: row.url }], 0, {
         closeOnClickModal: true,

+ 146 - 29
src/views/iosBasicData/costcenter/coc/detailsPage.vue

@@ -79,6 +79,17 @@
                             :disabled="editDisabled || form.costItemList.length || polFeeList.length || podFeeList.length">
                         </el-date-picker>
                     </tempalte>
+                    <tempalte slot="flightType">
+                        <dic-select v-model="form.flightType" placeholder="航班类型" key="id" label="dictValue"
+                            url="/blade-system/dict-biz/dictionary?code=flightType"
+                            :disabled="editDisabled"></dic-select>
+                    </tempalte>
+                    <tempalte slot="transitPortCname">
+                        <dic-select v-model="form.transitPortCname" placeholder="中转港" key="id" label="cnName"
+                            res="records" url="/blade-los/bports/list" :filterable="true" :remote="true"
+                            dataName="cnName" @selectChange="dicChange('transitPortCname', $event)"
+                            :disabled="editDisabled"></dic-select>
+                    </tempalte>
                 </avue-form>
             </trade-card>
             <trade-card title="基础明细">
@@ -119,7 +130,7 @@
                         <span v-else>{{ row.curCode }}</span>
                     </template>
                     <template slot="exrateForm" slot-scope="{ row }">
-                        <el-input-number v-if="row.$cellEdit" v-model="row.exrate"
+                        <el-input-number v-if="row.$cellEdit" v-model="row.exrate" @change="countChange(row)"
                             :controls="false" placeholder="请输入 汇率" size="small" style="width: 100%;"></el-input-number>
                         <span v-else>{{ row.exrate }}</span>
                     </template>
@@ -135,7 +146,7 @@
                     </template>
                 </avue-crud>
             </trade-card>
-            <trade-card title="起运港杂费">
+            <trade-card title="POL杂费">
                 <avue-crud :option="polOption" :data="polFeeList" id="out-table" ref="crud2"
                     :header-cell-class-name="headerClassName" :row-style="{ height: '20px' }"
                     :cell-style="{ padding: '0px' }" @selection-change="polChange" @select="selectHandle"
@@ -165,10 +176,17 @@
                             url="/blade-system/dict-biz/dictionary?code=feeeType" :filterable="true"></dic-select>
                         <span v-else>{{ row.type }}</span>
                     </template>
+                    <template slot="boxTypeForm" slot-scope="{ row }">
+                        <dic-select v-if="row.$cellEdit" v-model="row.boxType" key="id" placeholder="箱型" label="cnName"
+                            res="records" @selectChange="rowDicChange('feeBoxType', $event, row)"
+                            url="/blade-los/bcntrtypes/list?status=0&current=1&size=20" :filterable="true"
+                            :remote="true" dataName="cnName"></dic-select>
+                        <span v-else>{{ row.boxType }}</span>
+                    </template>
                     <template slot="feeNameForm" slot-scope="{ row }">
-                        <dic-select v-if="row.$cellEdit" v-model="row.feeName" key="id" placeholder="费用名称" label="cnName"
-                            res="records" url="/blade-los/bfees/list?status=0&current=1&size=20" :filterable="true"
-                            :remote="true" dataName="cnName"
+                        <dic-select v-if="row.$cellEdit" v-model="row.feeName" key="id" placeholder="费用名称"
+                            label="cnName" res="records" url="/blade-los/bfees/list?status=0&current=1&size=20"
+                            :filterable="true" :remote="true" dataName="cnName"
                             @selectChange="rowDicChange('feeName', $event, row)"></dic-select>
                         <span v-else>{{ row.feeName }}</span>
                     </template>
@@ -201,9 +219,8 @@
                         <span v-else>{{ row.measurementTicket }}</span>
                     </template>
                     <template slot="costPriceForm" slot-scope="{ row }">
-                        <el-input-number v-if="row.$cellEdit" v-model="row.costPrice"
-                            :controls="false" placeholder="请输入 成本价" size="small" style="width: 100%;"
-                            :precision="2"></el-input-number>
+                        <el-input-number v-if="row.$cellEdit" v-model="row.costPrice" :controls="false" @change="countChange()"
+                            placeholder="请输入 成本价" size="small" style="width: 100%;" :precision="2"></el-input-number>
                         <span v-else>{{ row.costPrice }}</span>
                     </template>
                     <template slot="menu" slot-scope="{ row, index }">
@@ -212,7 +229,7 @@
                     </template>
                 </avue-crud>
             </trade-card>
-            <trade-card title="起运港杂费">
+            <trade-card title="POD杂费">
                 <avue-crud :option="podOption" :data="podFeeList" id="out-table" ref="crud3"
                     :header-cell-class-name="headerClassName" :row-style="{ height: '20px' }"
                     :cell-style="{ padding: '0px' }" @selection-change="podChange" @select="selectHandle"
@@ -242,10 +259,17 @@
                             url="/blade-system/dict-biz/dictionary?code=feeeType" :filterable="true"></dic-select>
                         <span v-else>{{ row.type }}</span>
                     </template>
+                    <template slot="boxTypeForm" slot-scope="{ row }">
+                        <dic-select v-if="row.$cellEdit" v-model="row.boxType" key="id" placeholder="箱型" label="cnName"
+                            res="records" @selectChange="rowDicChange('feeBoxType', $event, row)"
+                            url="/blade-los/bcntrtypes/list?status=0&current=1&size=20" :filterable="true"
+                            :remote="true" dataName="cnName"></dic-select>
+                        <span v-else>{{ row.boxType }}</span>
+                    </template>
                     <template slot="feeNameForm" slot-scope="{ row }">
-                        <dic-select v-if="row.$cellEdit" v-model="row.feeName" key="id" placeholder="费用名称" label="cnName"
-                            res="records" url="/blade-los/bfees/list?status=0&current=1&size=20" :filterable="true"
-                            :remote="true" dataName="cnName"
+                        <dic-select v-if="row.$cellEdit" v-model="row.feeName" key="id" placeholder="费用名称"
+                            label="cnName" res="records" url="/blade-los/bfees/list?status=0&current=1&size=20"
+                            :filterable="true" :remote="true" dataName="cnName"
                             @selectChange="rowDicChange('feeName', $event, row)"></dic-select>
                         <span v-else>{{ row.feeName }}</span>
                     </template>
@@ -278,9 +302,8 @@
                         <span v-else>{{ row.measurementTicket }}</span>
                     </template>
                     <template slot="costPriceForm" slot-scope="{ row }">
-                        <el-input-number v-if="row.$cellEdit" v-model="row.costPrice"
-                            :controls="false" placeholder="请输入 成本价" size="small" style="width: 100%;"
-                            :precision="2"></el-input-number>
+                        <el-input-number v-if="row.$cellEdit" v-model="row.costPrice" :controls="false" @change="countChange()"
+                            placeholder="请输入 成本价" size="small" style="width: 100%;" :precision="2"></el-input-number>
                         <span v-else>{{ row.costPrice }}</span>
                     </template>
                     <template slot="menu" slot-scope="{ row, index }">
@@ -290,7 +313,7 @@
                 </avue-crud>
             </trade-card>
             <trade-card title="操作记录">
-                <avue-form :option="optionForm2" v-model="form" ref="form">
+                <avue-form :option="optionForm2" v-model="form" ref="form2">
                 </avue-form>
             </trade-card>
         </div>
@@ -462,16 +485,6 @@ export default {
                         disabled: false,
                     },
                     {
-                        label: '舱位数',
-                        prop: "shippingSpaceNumber",
-                        disabled: false,
-                        rules: [{
-                            required: false,
-                            message: " ",
-                            trigger: "blur"
-                        }]
-                    },
-                    {
                         label: '限重含皮(吨)',
                         prop: "weightLimit",
                         disabled: false,
@@ -492,6 +505,21 @@ export default {
                         disabled: false,
                     },
                     {
+                        label: '航班类型',
+                        prop: "flightType",
+                        disabled: false,
+                    },
+                    {
+                        label: '中转港',
+                        prop: "transitPortCname",
+                        disabled: false,
+                        rules: [{
+                            required: false,
+                            message: " ",
+                            trigger: "blur"
+                        }]
+                    },
+                    {
                         label: '运输条款',
                         prop: "transportationTerms",
                         disabled: false,
@@ -506,7 +534,7 @@ export default {
                         },
                     },
                     {
-                        label: "有效期",
+                        label: "有效期",
                         prop: "effectiveStartDate",
                         width: "120",
                         disabled: false,
@@ -670,6 +698,18 @@ export default {
                         ]
                     },
                     {
+                        label: "POL杂费收入",
+                        prop: "polIncome",
+                        width: "100",
+                        overHidden: true,
+                    },
+                    {
+                        label: "POD杂费收入",
+                        prop: "podIncome",
+                        width: "100",
+                        overHidden: true,
+                    },
+                    {
                         label: "成本价",
                         prop: "costPrice",
                         width: "80",
@@ -692,6 +732,27 @@ export default {
                         overHidden: true
                     },
                     {
+                        label: "海运费",
+                        prop: "oceanFreight",
+                        width: "80",
+                        overHidden: true,
+                        cell: true,
+                        slot: true,
+                        formslot: true,
+                    },
+                    {
+                        label: "POL杂费成本",
+                        prop: "polCost",
+                        width: "90",
+                        overHidden: true
+                    },
+                    {
+                        label: "POD杂费成本",
+                        prop: "podCost",
+                        width: "90",
+                        overHidden: true
+                    },
+                    {
                         label: "制单人",
                         prop: "createUserName",
                         width: "80",
@@ -762,6 +823,15 @@ export default {
                         ]
                     },
                     {
+                        label: "箱型",
+                        prop: "boxType",
+                        width: "100",
+                        overHidden: true,
+                        cell: true,
+                        slot: true,
+                        formslot: true,
+                    },
+                    {
                         label: "费用名称",
                         prop: "feeName",
                         width: "100",
@@ -934,6 +1004,15 @@ export default {
                         ]
                     },
                     {
+                        label: "箱型",
+                        prop: "boxType",
+                        width: "100",
+                        overHidden: true,
+                        cell: true,
+                        slot: true,
+                        formslot: true,
+                    },
+                    {
                         label: "费用名称",
                         prop: "feeName",
                         width: "100",
@@ -1093,9 +1172,41 @@ export default {
     methods: {
         countChange(row) {
             this.form.costItemList.forEach(item => {
-                // 合计利润=销售价-成本价
-                item.totalProfit = _.round(_.subtract(item.salesPrice ? item.salesPrice : 0, item.costPrice ? item.costPrice : 0), 2)
+                let polSUM = 0
+                let podSUM = 0
+                let polIncomeSUM = 0
+                let podIncomeSUM = 0
+                item.polCost = 0
+                item.podCost = 0
+                item.polIncome = 0
+                item.podIncome = 0
+                this.polFeeList.forEach(e => {
+                    if (item.boxType == e.boxType) {
+                        polSUM += _.multiply(Number(e.costPrice ? e.costPrice : 0), Number(e.exrate ? e.exrate : 0))
+                        polIncomeSUM += _.multiply(Number(e.salesPrice ? e.salesPrice : 0), Number(e.exrate ? e.exrate : 0))
+                        item.polCost = _.round(_.divide(polSUM, item.exrate ? item.exrate : 0), 2)
+                        item.polIncome = _.round(_.divide(polIncomeSUM, item.exrate ? item.exrate : 0), 2)
+                    }
+                })
+                this.podFeeList.forEach(e => {
+                    if (item.boxType == e.boxType) {
+                        podSUM += _.multiply(Number(e.costPrice ? e.costPrice : 0), Number(e.exrate ? e.exrate : 0))
+                        podIncomeSUM += _.multiply(Number(e.salesPrice ? e.salesPrice : 0), Number(e.exrate ? e.exrate : 0))
+                        item.podCost = _.round(_.divide(podSUM, item.exrate ? item.exrate : 0), 2)
+                        item.podIncome = _.round(_.divide(podIncomeSUM, item.exrate ? item.exrate : 0), 2)
+                    }
+                })
+                // 成本价=海运费+用箱成本+pol杂费+pod成本
+                item.costPrice = _.round(_.add(_.add(Number(item.oceanFreight ? item.oceanFreight : 0), 0), _.add(Number(item.polCost ? item.polCost : 0), Number(item.podCost ? item.podCost : 0))), 2)
+                // 一程利润=销售价+pol收入+pod收入-成本价
+                item.totalProfit = _.round(_.subtract(_.add(Number(item.salesPrice ? item.salesPrice : 0), _.add(Number(item.polIncome ? item.polIncome : 0), Number(item.podIncome ? item.podIncome : 0))), item.costPrice ? item.costPrice : 0), 2)
+                //全程利润=一程利润+二程利润
+                item.profit = _.round(_.add(Number(item.totalProfit ? item.totalProfit : 0), Number(item.totalProfitTwo ? item.totalProfitTwo : 0)), 2)
             })
+            // this.form.costItemList.forEach(item => {
+            //     // 合计利润=销售价-成本价
+            //     item.totalProfit = _.round(_.subtract(item.salesPrice ? item.salesPrice : 0, item.costPrice ? item.costPrice : 0), 2)
+            // })
 
         },
         dicChange(name, row) {
@@ -1169,6 +1280,7 @@ export default {
                         res.data.data.forEach(e => {
                             if (el.curCode == e.code) {
                                 this.$set(el, 'exrate', e.exrate)
+                                this.countChange(el)
                             }
                         })
                     })
@@ -1209,6 +1321,11 @@ export default {
                 }
 
             }
+            if (name == 'feeBoxType') {
+                if (row) {
+                    this.countChange()
+                }
+            }
         },
         rowEdit(row) {
         },

+ 9 - 24
src/views/iosBasicData/costcenter/soc/detailsPage.vue

@@ -638,7 +638,7 @@
                 </el-tab-pane>
             </el-tabs>
             <trade-card title="操作记录">
-                <avue-form :option="optionForm2" v-model="form" ref="form">
+                <avue-form :option="optionForm2" v-model="form" ref="form2">
                 </avue-form>
             </trade-card>
         </div>
@@ -1445,13 +1445,6 @@ export default {
                         cell: true,
                         slot: true,
                         formslot: true,
-                        rules: [
-                            {
-                                required: true,
-                                message: '请选择箱型',
-                                trigger: 'blur'
-                            }
-                        ]
                     },
                     {
                         label: "费用名称",
@@ -1633,13 +1626,6 @@ export default {
                         cell: true,
                         slot: true,
                         formslot: true,
-                        rules: [
-                            {
-                                required: true,
-                                message: '请选择箱型',
-                                trigger: 'blur'
-                            }
-                        ]
                     },
                     {
                         label: "费用名称",
@@ -2023,7 +2009,6 @@ export default {
                 }
             }
             if (name == 'flightType') {
-                console.log(row)
                 if (!row || row.dictValue == '直达') {
                     this.form.changeShipType = null
                     this.form.actualShippingCompanyIdTwo = null
@@ -2551,7 +2536,7 @@ export default {
                     return this.$message.error("请添加数据");
                 }
                 for (let row of this.polFeeList) {
-                    if (!row.type || !row.boxType || !row.feeName || !row.curCode || !row.curCode || !row.salesPrice || !row.costPrice) {
+                    if (!row.type || !row.feeName || !row.curCode || !row.curCode || !row.salesPrice || !row.costPrice) {
                         this.$refs.crud2.rowCell(row, row.$index)
                         return this.$message.error("请完善POL杂费明细");
                     }
@@ -2617,7 +2602,7 @@ export default {
                     return this.$message.error("请添加数据");
                 }
                 for (let row of this.podFeeList) {
-                    if (!row.type || !row.boxType || !row.feeName || !row.curCode || !row.curCode || !row.salesPrice || !row.costPrice) {
+                    if (!row.type || !row.feeName || !row.curCode || !row.curCode || !row.salesPrice || !row.costPrice) {
                         this.$refs.crud3.rowCell(row, row.$index)
                         return this.$message.error("请完善POL杂费明细");
                     }
@@ -2743,7 +2728,7 @@ export default {
                     return this.$message.error("请添加数据");
                 }
                 for (let row of this.polFeeList2) {
-                    if (!row.type || !row.boxType || !row.feeName || !row.curCode || !row.curCode || !row.salesPrice || !row.costPrice) {
+                    if (!row.type || !row.feeName || !row.curCode || !row.curCode || !row.salesPrice || !row.costPrice) {
                         this.$refs.crud2.rowCell(row, row.$index)
                         return this.$message.error("请完善POL杂费明细");
                     }
@@ -2809,7 +2794,7 @@ export default {
                     return this.$message.error("请添加数据");
                 }
                 for (let row of this.podFeeList2) {
-                    if (!row.type || !row.boxType || !row.feeName || !row.curCode || !row.curCode || !row.salesPrice || !row.costPrice) {
+                    if (!row.type || !row.feeName || !row.curCode || !row.curCode || !row.salesPrice || !row.costPrice) {
                         this.$refs.crud3.rowCell(row, row.$index)
                         return this.$message.error("请完善POL杂费明细");
                     }
@@ -3158,25 +3143,25 @@ export default {
                         }
                     }
                     for (let row of this.polFeeList) {
-                        if (!row.type || !row.boxType || !row.feeName || !row.curCode || !row.curCode || !row.salesPrice || !row.costPrice) {
+                        if (!row.type || !row.feeName || !row.curCode || !row.curCode || !row.salesPrice || !row.costPrice) {
                             this.$refs.crud2.rowCell(row, row.$index)
                             return this.$message.error("请完善POL杂费明细");
                         }
                     }
                     for (let row of this.polFeeList2) {
-                        if (!row.type || !row.boxType || !row.feeName || !row.curCode || !row.curCode || !row.salesPrice || !row.costPrice) {
+                        if (!row.type || !row.feeName || !row.curCode || !row.curCode || !row.salesPrice || !row.costPrice) {
                             this.$refs.crud2.rowCell(row, row.$index)
                             return this.$message.error("请完善POL杂费明细");
                         }
                     }
                     for (let row of this.podFeeList) {
-                        if (!row.type || !row.boxType || !row.feeName || !row.curCode || !row.curCode || !row.salesPrice || !row.costPrice) {
+                        if (!row.type || !row.feeName || !row.curCode || !row.curCode || !row.salesPrice || !row.costPrice) {
                             this.$refs.crud3.rowCell(row, row.$index)
                             return this.$message.error("请完善POD杂费明细");
                         }
                     }
                     for (let row of this.podFeeList2) {
-                        if (!row.type || !row.boxType || !row.feeName || !row.curCode || !row.curCode || !row.salesPrice || !row.costPrice) {
+                        if (!row.type || !row.feeName || !row.curCode || !row.curCode || !row.salesPrice || !row.costPrice) {
                             this.$refs.crud3.rowCell(row, row.$index)
                             return this.$message.error("请完善POD杂费明细");
                         }

+ 25 - 19
src/views/ow/owPut/detailsPage.vue

@@ -14,6 +14,7 @@
         <el-button class="el-button--small-yh" v-else style="margin-left: 6px;" type="primary" size="small"
           :disabled="isSaveBtn" @click="submit">保 存
         </el-button>
+        <el-button type="info" size="small" @click="allClick('启用')">启用</el-button>
         <!-- <el-button v-if="form.status == '审核提交'" class="el-button--small-yh" style="margin-left: 6px;" type="danger"
           size="small" @click="revokeApplication">撤销单据请核
         </el-button> -->
@@ -43,7 +44,7 @@
               </tempalte>
               <tempalte slot="polStationCname">
                 <dic-select v-model="form.polStationCname" placeholder="起运港提/送箱场站" key="id" label="cnName" res="records"
-                  url="/blade-los/blocations/list" :filterable="true" :remote="true" dataName="cnName"
+                  url="/blade-los/bcorps/selectList?corpTypeName=场站" :filterable="true" :remote="true" dataName="cnName"
                   @selectChange="dicChange('polStationCname', $event)" :disabled="editDisabled"></dic-select>
               </tempalte>
               <tempalte slot="polCyCname">
@@ -53,7 +54,7 @@
               </tempalte>
               <tempalte slot="podStationCname">
                 <dic-select v-model="form.podStationCname" placeholder="目的港还箱场站" key="id" label="cnName" res="records"
-                  url="/blade-los/blocations/list" :filterable="true" :remote="true" dataName="cnName"
+                  url="/blade-los/bcorps/selectList?corpTypeName=场站" :filterable="true" :remote="true" dataName="cnName"
                   @selectChange="dicChange('podStationCname', $event)" :disabled="editDisabled"></dic-select>
               </tempalte>
               <tempalte slot="polCname">
@@ -73,7 +74,8 @@
                   dataName="cnName"></dic-select>
               </template>
               <template slot="perDiemAfterFreeDays">
-                <el-link type="primary" :underline="false" @click.stop="openRtDialog">箱租金条款</el-link>
+                <el-button type="primary" size="small"  @click.stop="openRtDialog">箱租金条款</el-button>
+                <!-- <el-link type="primary" :underline="false" @click.stop="openRtDialog">箱租金条款</el-link> -->
               </template>
             </avue-form>
           </trade-card>
@@ -85,17 +87,18 @@
               @resetColumn="resetColumn('crud', 'option', 'optionBack', 471)"
               @saveColumn="saveColumn('crud', 'option', 'optionBack', 471)">
               <template slot="menuLeft">
-                <el-button type="info" plain size="small" :disabled="editDisabled || !form.id"
+                <el-button type="info" plain size="small"
+                  :disabled="editDisabled || !form.id || form.tradingBoxItemsList.length== 0"
                   @click="allClick('一键保存')">一键保存</el-button>
                 <el-button type="info" plain size="small"
                   :disabled="editDisabled || form.tradingBoxItemsList.length == 0"
                   @click="allClick('一键编辑')">一键编辑</el-button>
                 <el-button type="danger" plain size="small" :disabled="editDisabled || selectionList.length == 0"
                   @click="allClick('批量删除')">批量删除</el-button>
-                <el-button type="success" size="small">导入</el-button>
-                <el-button type="info" size="small" @click="allClick('启用')">启用</el-button>
+                <!-- <el-button type="success" size="small">导入</el-button> -->
+                <!-- <el-button type="info" size="small" @click="allClick('启用')">启用</el-button> -->
                 <!-- <el-button type="primary" size="small" @click="allClick('卖箱')">卖箱</el-button> -->
-                <el-button size="small" style="margin-right: 8px" :disabled="!form.id||true"
+                <el-button size="small" style="margin-right: 8px" :disabled="!form.id || true"
                   @click="$refs.print.openDialog()">打印账单
                 </el-button>
               </template>
@@ -123,7 +126,7 @@
               </tempalte>
               <tempalte slot="stationCnameForm" slot-scope="{ row }">
                 <dic-select v-if="row.$cellEdit" v-model="row.stationCname" placeholder="场站" key="id" label="cnName"
-                  res="records" url="/blade-los/blocations/list" :filterable="true" :remote="true" dataName="cnName"
+                  res="records" url="/blade-los/bcorps/selectList?corpTypeName=场站" :filterable="true" :remote="true" dataName="cnName"
                   @selectChange="rowDicChange('stationCname', $event, row)"></dic-select>
                 <span v-else>{{ row.stationCname }}</span>
               </tempalte>
@@ -208,7 +211,8 @@
               </template>
               <template slot="corpCnNameForm" slot-scope="{ row,index }">
                 <dic-select v-if="row.$cellEdit" :key="updateSearchKey" v-model="row.corpCnName" placeholder="付费对象"
-                  label="cnName" res="records" :url="'/blade-los/bcorps/selectList?status=0&current=1&size=20&corpTypeName=' + row.billType"
+                  label="cnName" res="records"
+                  :url="'/blade-los/bcorps/selectList?status=0&current=1&size=20&corpTypeName=' + row.billType"
                   :filterable="true" :remote="true" dataName="cnName"
                   @selectChange="rowDicChange('corpCnName', $event, row)"></dic-select>
                 <span v-else>{{ row.corpCnName }}</span>
@@ -289,7 +293,8 @@
               </template>
               <template slot="corpCnNameForm" slot-scope="{ row,index }">
                 <dic-select v-if="row.$cellEdit" :key="updateSearchKey" v-model="row.corpCnName" placeholder="付费对象"
-                  label="cnName" res="records" :url="'/blade-los/bcorps/selectList?status=0&current=1&size=20&corpTypeName=' + row.billType"
+                  label="cnName" res="records"
+                  :url="'/blade-los/bcorps/selectList?status=0&current=1&size=20&corpTypeName=' + row.billType"
                   :filterable="true" :remote="true" dataName="cnName"
                   @selectChange="rowDicChange('corpCnName', $event, row)"></dic-select>
                 <span v-else>{{ row.corpCnName }}</span>
@@ -461,12 +466,12 @@
           <span>{{ index + 1 }}</span>
         </template>
         <template slot="menu" slot-scope="{ row, index }">
-          <el-button size="small" icon="el-icon-edit" type="text" @click="rowEdit(row)">编辑</el-button>
+          <el-button size="small" icon="el-icon-edit" type="text" @click="rowEdit(row)">{{row.$cellEdit?'保存':'编辑'}}</el-button>
           <el-button size="small" icon="el-icon-delete" type="text" @click="rowDel(row)">删除</el-button>
         </template>
       </avue-crud>
       <span slot="footer" class="dialog-footer">
-        <el-button @click="rtDialog = false" size="mini">关 闭</el-button>
+        <el-button type="primary" @click="rtDialog = false" size="mini">保 存</el-button>
       </span>
     </el-dialog>
   </div>
@@ -543,7 +548,7 @@ export default {
             }],
           },
           {
-            label: '用港',
+            label: '用港',
             prop: 'polCname',
             span: 24,
             rules: [{
@@ -685,7 +690,7 @@ export default {
           {
             label: '箱量',
             prop: 'boxNumber',
-            disabled: false,
+            disabled: true,
             rules: [{
               required: true,
               message: "",
@@ -695,7 +700,7 @@ export default {
           {
             label: '剩余箱量',
             prop: 'remainingNum',
-            disabled: false,
+            disabled: true,
           },
           {
             label: '有效日期起',
@@ -2256,10 +2261,8 @@ export default {
         this.excelBox = true
       }
       if (name == '启用') {
-        for (let item of this.selectionList) {
-          if (item.whetherEnable == '是') {
-            return this.$message.error("请勿重复启用");
-          }
+        if (this.form.whetherEnable == '是') {
+          return this.$message.error("请勿重复启用");
         }
         this.activationForm = {
           containerNumber: this.form.containerNumber,
@@ -2557,6 +2560,9 @@ export default {
 </script>
 
 <style lang="scss" scoped>
+::v-deep .el-form-item__error {
+  display: none !important;
+}
 ::v-deep .el-form-item {
   margin-bottom: 8px !important;
 }

+ 4 - 4
src/views/ow/owPut/index.vue

@@ -18,7 +18,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.count > 0">删 除</el-button>
+            :disabled="row.count > 0||row.whetherEnable=='是'">删 除</el-button>
         </template>
         <template slot="sysNo" slot-scope="{ row }">
           <span style="color: #1e9fff;cursor: pointer;" @click="rowEdit(row)">{{ row.sysNo }}</span>
@@ -184,7 +184,7 @@ export default {
             type: "select",
             filterable: true,
             remote: true,
-            dicUrl: "/api/blade-los/blocations/list?size=20&current=1&cnName={{key}}",
+            dicUrl: "/api/blade-los/bcorps/selectList?corpTypeName=场站&size=20&current=1&cnName={{key}}",
             props: {
               label: "cnName",
               value: "id",
@@ -210,7 +210,7 @@ export default {
             type: "select",
             filterable: true,
             remote: true,
-            dicUrl: "/api/blade-los/blocations/list?size=20&current=1&cnName={{key}}",
+            dicUrl: "/api/blade-los/bcorps/selectList?corpTypeName=场站&size=20&current=1&cnName={{key}}",
             props: {
               label: "cnName",
               value: "id",
@@ -264,7 +264,7 @@ export default {
           //   type: "select",
           //   filterable: true,
           //   remote: true,
-          //   dicUrl: "/api/blade-los/blocations/list?size=20&current=1&cnName={{key}}",
+          //   dicUrl: "/api/blade-los/bcorps/selectList?corpTypeName=场站&size=20&current=1&cnName={{key}}",
           //   props: {
           //     label: "cnName",
           //     value: "id",

+ 24 - 18
src/views/ow/owTask/detailsPage.vue

@@ -14,6 +14,7 @@
         <el-button class="el-button--small-yh" v-else style="margin-left: 6px;" type="primary" size="small"
           :disabled="isSaveBtn" @click="submit">保 存
         </el-button>
+        <el-button type="info" size="small" @click="allClick('启用')">启用</el-button>
         <!-- <el-button v-if="form.status == '审核提交'" class="el-button--small-yh" style="margin-left: 6px;" type="danger"
           size="small" @click="revokeApplication">撤销单据请核
         </el-button> -->
@@ -43,7 +44,7 @@
               </tempalte>
               <tempalte slot="polStationCname">
                 <dic-select v-model="form.polStationCname" placeholder="起运港提/送箱场站" key="id" label="cnName" res="records"
-                  url="/blade-los/blocations/list" :filterable="true" :remote="true" dataName="cnName"
+                  url="/blade-los/bcorps/selectList?corpTypeName=场站" :filterable="true" :remote="true" dataName="cnName"
                   @selectChange="dicChange('polStationCname', $event)" :disabled="editDisabled"></dic-select>
               </tempalte>
               <tempalte slot="polCyCname">
@@ -53,7 +54,7 @@
               </tempalte>
               <tempalte slot="podStationCname">
                 <dic-select v-model="form.podStationCname" placeholder="目的港还箱场站" key="id" label="cnName" res="records"
-                  url="/blade-los/blocations/list" :filterable="true" :remote="true" dataName="cnName"
+                  url="/blade-los/bcorps/selectList?corpTypeName=场站" :filterable="true" :remote="true" dataName="cnName"
                   @selectChange="dicChange('podStationCname', $event)" :disabled="editDisabled"></dic-select>
               </tempalte>
               <tempalte slot="polCname">
@@ -73,7 +74,8 @@
                   dataName="cnName"></dic-select>
               </template>
               <template slot="perDiemAfterFreeDays">
-                <el-link type="primary" :underline="false" @click.stop="openRtDialog">箱租金条款</el-link>
+                <el-button type="primary" size="small" @click.stop="openRtDialog">箱租金条款</el-button>
+                <!-- <el-link type="primary" :underline="false" @click.stop="openRtDialog">箱租金条款</el-link> -->
               </template>
             </avue-form>
           </trade-card>
@@ -85,17 +87,17 @@
               @resetColumn="resetColumn('crud', 'option', 'optionBack', 462)"
               @saveColumn="saveColumn('crud', 'option', 'optionBack', 462)">
               <template slot="menuLeft">
-                <el-button type="info" plain size="small" :disabled="editDisabled || !form.id"
+                <el-button type="info" plain size="small"
+                  :disabled="editDisabled || !form.id || form.tradingBoxItemsList.length"
                   @click="allClick('一键保存')">一键保存</el-button>
                 <el-button type="info" plain size="small"
                   :disabled="editDisabled || form.tradingBoxItemsList.length == 0"
                   @click="allClick('一键编辑')">一键编辑</el-button>
                 <el-button type="danger" plain size="small" :disabled="editDisabled || selectionList.length == 0"
                   @click="allClick('批量删除')">批量删除</el-button>
-                <el-button type="success" size="small">导入</el-button>
-                <el-button type="info" size="small" @click="allClick('启用')">启用</el-button>
+                <!-- <el-button type="success" size="small">导入</el-button> -->
                 <!-- <el-button type="primary" size="small" @click="allClick('卖箱')">卖箱</el-button> -->
-                <el-button size="small" style="margin-right: 8px" :disabled="!form.id||true"
+                <el-button size="small" style="margin-right: 8px" :disabled="!form.id || true"
                   @click="$refs.print.openDialog()">打印账单
                 </el-button>
               </template>
@@ -123,7 +125,7 @@
               </tempalte>
               <tempalte slot="stationCnameForm" slot-scope="{ row }">
                 <dic-select v-if="row.$cellEdit" v-model="row.stationCname" placeholder="场站" key="id" label="cnName"
-                  res="records" url="/blade-los/blocations/list" :filterable="true" :remote="true" dataName="cnName"
+                  res="records" url="/blade-los/bcorps/selectList?corpTypeName=场站" :filterable="true" :remote="true" dataName="cnName"
                   @selectChange="rowDicChange('stationCname', $event, row)"></dic-select>
                 <span v-else>{{ row.stationCname }}</span>
               </tempalte>
@@ -208,7 +210,8 @@
               </template>
               <template slot="corpCnNameForm" slot-scope="{ row,index }">
                 <dic-select v-if="row.$cellEdit" :key="updateSearchKey" v-model="row.corpCnName" placeholder="付费对象"
-                  label="cnName" res="records" :url="'/blade-los/bcorps/selectList?status=0&current=1&size=20&corpTypeName=' + row.billType"
+                  label="cnName" res="records"
+                  :url="'/blade-los/bcorps/selectList?status=0&current=1&size=20&corpTypeName=' + row.billType"
                   :filterable="true" :remote="true" dataName="cnName"
                   @selectChange="rowDicChange('corpCnName', $event, row)"></dic-select>
                 <span v-else>{{ row.corpCnName }}</span>
@@ -289,7 +292,8 @@
               </template>
               <template slot="corpCnNameForm" slot-scope="{ row,index }">
                 <dic-select v-if="row.$cellEdit" :key="updateSearchKey" v-model="row.corpCnName" placeholder="付费对象"
-                  label="cnName" res="records" :url="'/blade-los/bcorps/selectList?status=0&current=1&size=20&corpTypeName=' + row.billType"
+                  label="cnName" res="records"
+                  :url="'/blade-los/bcorps/selectList?status=0&current=1&size=20&corpTypeName=' + row.billType"
                   :filterable="true" :remote="true" dataName="cnName"
                   @selectChange="rowDicChange('corpCnName', $event, row)"></dic-select>
                 <span v-else>{{ row.corpCnName }}</span>
@@ -461,7 +465,8 @@
           <span>{{ index + 1 }}</span>
         </template>
         <template slot="menu" slot-scope="{ row, index }">
-          <el-button size="small" icon="el-icon-edit" type="text" @click="rowEdit(row)">编辑</el-button>
+          <el-button size="small" icon="el-icon-edit" type="text"
+            @click="rowEdit(row)">{{ row.$cellEdit ? '保存' : '编辑' }}</el-button>
           <el-button size="small" icon="el-icon-delete" type="text" @click="rowDel(row)">删除</el-button>
         </template>
       </avue-crud>
@@ -543,7 +548,7 @@ export default {
             }],
           },
           {
-            label: '用港',
+            label: '用港',
             prop: 'polCname',
             span: 24,
             rules: [{
@@ -685,7 +690,7 @@ export default {
           {
             label: '箱量',
             prop: 'boxNumber',
-            disabled: false,
+            disabled: true,
             rules: [{
               required: true,
               message: "",
@@ -695,7 +700,7 @@ export default {
           {
             label: '剩余箱量',
             prop: 'remainingNum',
-            disabled: false,
+            disabled: true,
           },
           {
             label: '有效日期起',
@@ -2256,10 +2261,8 @@ export default {
         this.excelBox = true
       }
       if (name == '启用') {
-        for (let item of this.selectionList) {
-          if (item.whetherEnable == '是') {
-            return this.$message.error("请勿重复启用");
-          }
+        if (this.form.whetherEnable == '是') {
+          return this.$message.error("请勿重复启用");
         }
         this.activationForm = {
           containerNumber: this.form.containerNumber,
@@ -2557,6 +2560,9 @@ export default {
 </script>
 
 <style lang="scss" scoped>
+::v-deep .el-form-item__error {
+  display: none !important;
+}
 ::v-deep .el-form-item {
   margin-bottom: 8px !important;
 }

+ 8 - 24
src/views/ow/owTask/index.vue

@@ -18,7 +18,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.count > 0">删 除</el-button>
+            :disabled="row.count > 0||row.whetherEnable=='是'">删 除</el-button>
         </template>
         <template slot="sysNo" slot-scope="{ row }">
           <span style="color: #1e9fff;cursor: pointer;" @click="rowEdit(row)">{{ row.sysNo }}</span>
@@ -123,11 +123,9 @@ export default {
           },
           {
             label: '起运港',
-            prop: 'polId',
+            prop: 'polCname',
             width: 100,
             overHidden: true,
-            hide: true,
-            showColumn: false,
             search: true,
             searchOrder: 2,
             type: "select",
@@ -136,23 +134,15 @@ export default {
             dicUrl: "/api/blade-los/bports/list?size=10&current=1&cnName={{key}}",
             props: {
               label: "cnName",
-              value: "id",
+              value: "cnName",
               res: "data.records"
             }
           },
           {
-            label: '起运港',
-            prop: 'polCname',
-            width: 100,
-            overHidden: true,
-          },
-          {
             label: '目的港',
-            prop: 'podId',
+            prop: 'podCname',
             width: 100,
             overHidden: true,
-            hide: true,
-            showColumn: false,
             search: true,
             searchOrder: 3,
             type: "select",
@@ -161,17 +151,11 @@ export default {
             dicUrl: "/api/blade-los/bports/list?size=20&current=1&cnName={{key}}",
             props: {
               label: "cnName",
-              value: "id",
+              value: "cnName",
               res: "data.records"
             }
           },
           {
-            label: '目的港',
-            prop: 'podCname',
-            width: 100,
-            overHidden: true,
-          },
-          {
             label: '起运港提/送箱场站',
             prop: 'polStationId',
             width: 140,
@@ -184,7 +168,7 @@ export default {
             type: "select",
             filterable: true,
             remote: true,
-            dicUrl: "/api/blade-los/blocations/list?size=20&current=1&cnName={{key}}",
+            dicUrl: "/api/blade-los/bcorps/selectList?corpTypeName=场站&size=20&current=1&cnName={{key}}",
             props: {
               label: "cnName",
               value: "id",
@@ -210,7 +194,7 @@ export default {
             type: "select",
             filterable: true,
             remote: true,
-            dicUrl: "/api/blade-los/blocations/list?size=20&current=1&cnName={{key}}",
+            dicUrl: "/api/blade-los/bcorps/selectList?corpTypeName=场站&size=20&current=1&cnName={{key}}",
             props: {
               label: "cnName",
               value: "id",
@@ -264,7 +248,7 @@ export default {
           //   type: "select",
           //   filterable: true,
           //   remote: true,
-          //   dicUrl: "/api/blade-los/blocations/list?size=20&current=1&cnName={{key}}",
+          //   dicUrl: "/api/blade-los/bcorps/selectList?corpTypeName=场站&size=20&current=1&cnName={{key}}",
           //   props: {
           //     label: "cnName",
           //     value: "id",