Browse Source

批量隐藏 MBLNO,港口下拉增加EDI列

wfg 1 month ago
parent
commit
93d92e6267

+ 33 - 0
src/components/iosbasic-data/searchquery.vue

@@ -7,7 +7,9 @@
                     :filterable="filterable" :clearable="clearable" :remote="remote" :remote-method="remoteMethod"
                     :multiple="multiple" :collapse-tags="collapseTags" :disabled="disabled" :allow-create="allowCreate"
                     @change="corpChange" @focus="corpFocus" @clear="corpClear">
+
                     <el-option v-for="item in datalist" :key="item[forParameter.key]" :label="item[forParameter.label]"
+                        v-if="!multiColumns"
                         :value="item[forParameter.value]"
                         :disabled="item[forParameter.disabled] ? item[forParameter.disabled] == disabledStatus : false">
                         <span v-if="!joinData" style="float: left">{{ item[forParameter.label] }}</span>
@@ -18,6 +20,27 @@
                         <span v-if="desc" style="float: right; color: #8492a6; font-size: 13px">{{
                             item[forParameter.desc]}}</span>
                     </el-option>
+
+                    <el-option
+                        v-if="multiColumns"
+                        :key="''"
+                        :label="'header'"
+                        :disabled="true">
+                        <span v-for="(col, colIdx) in dropdownColumns"
+                              :key="col.key"
+                              :style="{'text-align': 'center', 'color': '#8492a6', 'font-size': '13px', 'font-weight': '700', 'width': col.width, display: 'inline-block', overflow: 'hidden', 'padding': '0 6px', 'border-bottom': '1px solid #DCDFE6', 'border-right': colIdx==dropdownColumns.length-1 ? null : '1px solid #DCDFE6'}">{{col.label}}</span>
+                    </el-option>
+
+                    <el-option v-for="item in datalist" :key="item[forParameter.key]" :label="item[forParameter.label]"
+                               v-if="multiColumns"
+                               :value="item[forParameter.value]"
+                               :disabled="item[forParameter.disabled] ? item[forParameter.disabled] == disabledStatus : false">
+                        <span v-for="(col, colIdx) in dropdownColumns"
+                              :key="col.key"
+                              :style="{'text-align': 'left', 'font-size': col.fontSize ? col.fontSize : '13px', 'width': col.width, display: 'inline-block', overflow: 'hidden', 'padding': '0 6px', 'border-right': colIdx==dropdownColumns.length-1 ? null : '1px solid #DCDFE6'}"
+                              v-text="item[col.field] ? item[col.field] : ' '">
+                            </span>
+                    </el-option>
                 </el-select>
             </div>
             <div v-if="buttonIf" style="display: flex;align-items: center">
@@ -77,6 +100,16 @@ export default {
                 desc: 'desc'
             }
         },
+        // 是否下拉多列
+        multiColumns:{
+            type: Boolean,
+            default: false,
+        },
+        // 下拉列设置
+        dropdownColumns:{
+            type: Array,
+            default:[]
+        },
         // 两个按钮是否显示
         buttonIf: {
             type: Boolean,

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

@@ -147,6 +147,8 @@
                                         :clearable="true" :remote="true" :joinData="true" :special="true"
                                         :disabled="detailData.seeDisabled" :buttonIf="false" placeholder="请选择收货地"
                                         :forParameter="{ key: 'id', short: 'code', label: 'enName', value: 'enName' }"
+                                        :multi-columns="true"
+                                        :dropdown-columns="portDorpdownColumns"
                                         @remoteMethod="remoteMethod($event, 'placeReceipt')"
                                         @corpChange="corpChange($event, 'placeReceipt')"
                                         @corpFocus="remoteMethod($event, 'placeReceipt')">
@@ -179,6 +181,8 @@
                                         :special="true" :disabled="detailData.seeDisabled || generateBillsfalse"
                                         :buttonIf="false" placeholder="请选择装货港"
                                         :forParameter="{ key: 'id', short: 'code', label: 'enName', value: 'enName' }"
+                                        :multi-columns="true"
+                                        :dropdown-columns="portDorpdownColumns"
                                         @remoteMethod="remoteMethod($event, 'pol')"
                                         @corpChange="corpChange($event, 'pol')"
                                         @corpFocus="remoteMethod($event, 'pol')">
@@ -211,6 +215,8 @@
                                         :joinData="true" :special="true" :disabled="detailData.seeDisabled"
                                         :buttonIf="false" placeholder="请选择卸货港"
                                         :forParameter="{ key: 'id', short: 'code', label: 'enName', value: 'enName' }"
+                                        :multi-columns="true"
+                                        :dropdown-columns="portDorpdownColumns"
                                         @remoteMethod="remoteMethod($event, 'pod')"
                                         @corpChange="corpChange($event, 'pod')"
                                         @corpFocus="remoteMethod($event, 'pod')">
@@ -243,6 +249,8 @@
                                         :disabled="detailData.seeDisabled || generateBillsfalse" :buttonIf="false"
                                         placeholder="请选择目的地"
                                         :forParameter="{ key: 'id', short: 'code', label: 'enName', value: 'enName' }"
+                                        :multi-columns="true"
+                                        :dropdown-columns="portDorpdownColumns"
                                         @remoteMethod="remoteMethod($event, 'destination')"
                                         @corpChange="corpChange($event, 'destination')"
                                         @corpFocus="remoteMethod($event, 'destination')">
@@ -275,6 +283,8 @@
                                         :clearable="true" :remote="true" :disabled="detailData.seeDisabled"
                                         :buttonIf="false" placeholder="请选择交货地"
                                         :forParameter="{ key: 'id', short: 'code', label: 'enName', value: 'enName' }"
+                                        :multi-columns="true"
+                                        :dropdown-columns="portDorpdownColumns"
                                         @remoteMethod="remoteMethod($event, 'placeDelivery')"
                                         @corpChange="corpChange($event, 'placeDelivery')"
                                         @corpFocus="remoteMethod($event, 'placeDelivery')">
@@ -307,6 +317,8 @@
                                         :special="true" :disabled="detailData.seeDisabled" :buttonIf="false"
                                         placeholder="请选择中转港"
                                         :forParameter="{ key: 'id', short: 'code', label: 'enName', value: 'enName' }"
+                                        :multi-columns="true"
+                                        :dropdown-columns="portDorpdownColumns"
                                         @remoteMethod="remoteMethod($event, 'pot')"
                                         @corpChange="corpChange($event, 'pot')"
                                         @corpFocus="remoteMethod($event, 'pot')">
@@ -442,6 +454,8 @@
                                     :filterable="true" :clearable="true" :remote="true" :allowCreate="true"
                                     :disabled="detailData.seeDisabled || generateBillsfalse" :buttonIf="false"
                                     placeholder="请选择船名" :forParameter="{ key: 'id', label: 'enName', value: 'enName' }"
+                                    :multi-columns="true"
+                                    :dropdown-columns="corpDorpdownColumns"
                                     @remoteMethod="remoteMethod($event, 'vessel')"
                                     @corpChange="corpChange($event, 'vessel')"
                                     @corpFocus="remoteMethod($event, 'vessel')">
@@ -1047,9 +1061,33 @@ export default {
 
             marksIndex: 1,
             business:null,
+
+            // KL,CUSTOMS,MOL
+            ediColumns:['INTTRA','MAEU','OOCL','APL','PIL','HJ','HMM','ESL','ZIM','PO','MSC','CSAV','QQCT','CTM','SML','VOLTA'],
+            // 港口下拉列
+            portDorpdownColumns:[],
+            // 客户下拉列
+            corpDorpdownColumns:[],
         }
     },
     created() {
+        let pdColumns = [
+            {key: 'code', field: 'code', label: '编码', width: '80px'},
+            {key: 'enName', field: 'enName', label: '名称', width: '200px'},
+        ]
+
+        let cpColumns = [
+            {key: 'enName', field: 'enName', label: '名称', width: '200px'},
+        ]
+
+        this.ediColumns.forEach(col=>{
+            pdColumns.push({key: col, field: col, label: col, fontSize: '10px', width: '45px'})
+            cpColumns.push({key: col, field: col, label: col, fontSize: '10px', width: '45px'})
+        })
+
+        this.portDorpdownColumns = pdColumns;
+        this.corpDorpdownColumns = cpColumns;
+
         isProcurement({ "param": "textarea.number" }).then(res => {
             if (res.data.data) {
                 this.textareaNumber = res.data.data
@@ -1353,7 +1391,21 @@ export default {
                         this.$set(this.assemblyForm, name + 'NamePrint', item.enName)
                         if (this.business == 1) {
                             if (name == 'placeDelivery') {
+                                let wt = Number(item.weightLimit), gw=Number(this.assemblyForm.grossWeight), sm = typeof item.specalMarks == 'string' ? item.specalMarks.trim() : '', msg='';
+                                wt = isNaN(wt) ? 0 : wt;
+                                gw = isNaN(gw) ? 0 : gw;
+
+                                msg += (wt>0 && gw>wt) ? `超出港口限重,限重:${wt},毛重:${gw}!` : ''
+                                msg += sm ? `<br/>港口特殊要求:${sm}!` : ''
+                                if(msg){
+                                    this.$confirm(msg, '提示', {
+                                        confirmButtonText: '确定',
+                                        showCancelButton: false,
+                                        type: 'warning'
+                                    })
+                                }
 
+                                /*
                                 if (Number(item.weightLimit) > 0 && !item.specalMarks) {
                                     if (Number(this.assemblyForm.grossWeight) > Number(item.weightLimit)) {
                                         this.$confirm(`超出港口限重,限重:${item.weightLimit},毛重:${this.assemblyForm.grossWeight}!`, '提示', {
@@ -1380,6 +1432,7 @@ export default {
                                         })
                                     }
                                 }
+                                */
                             }
                         }
 
@@ -1780,39 +1833,55 @@ export default {
                 this.hnotify2Data = res.data.data.records
             })
         },
+        // EDI 信息转成列
+        processEDIAsColumns(records){
+            if(Array.isArray(records)){
+                records.forEach(rec=>{
+                    if(Array.isArray(rec.extendedDataArr)) {
+                        rec.extendedDataArr.forEach(js=>rec[js.name]=js.value);
+                    }
+                })
+            }
+        },
         // 收货地数据 (港口表)
         placeReceiptBportsListfun(enName) {
             bportsList(1, 10, { enName, status: 0 }).then(res => {
+                this.processEDIAsColumns(res.data.data.records);
                 this.placeReceiptData = res.data.data.records
             })
         },
         // 装货港数据
         polBportsListfun(enName) {
             bportsList(1, 10, { enName, status: 0 }).then(res => {
+                this.processEDIAsColumns(res.data.data.records);
                 this.polData = res.data.data.records
             })
         },
         // 卸货港数据
         podBportsListfun(enName) {
             bportsList(1, 10, { enName, status: 0 }).then(res => {
+                this.processEDIAsColumns(res.data.data.records);
                 this.podData = res.data.data.records
             })
         },
         // 目的地
         destinationBportsListfun(enName) {
             bportsList(1, 10, { enName, status: 0 }).then(res => {
+                this.processEDIAsColumns(res.data.data.records);
                 this.destinationData = res.data.data.records
             })
         },
         // 交货地
         placeDeliveryBportsListfun(enName) {
             bportsList(1, 10, { enName, status: 0 }).then(res => {
+                this.processEDIAsColumns(res.data.data.records);
                 this.placeDeliveryData = res.data.data.records
             })
         },
         // 中转港
         potBportsListfun(enName) {
             bportsList(1, 10, { enName, status: 0 }).then(res => {
+                this.processEDIAsColumns(res.data.data.records);
                 this.potData = res.data.data.records
             })
         },

+ 22 - 22
src/views/iosBasicData/SeafreightExportF/bills/updateBatchField.vue

@@ -10,28 +10,16 @@
     >
         <el-form :model="formData" class="elegant-form" label-position="left" label-width="60px">
             <el-row :gutter="20" class="form-row">
-                <el-col :span="6">
-                    <el-form-item label="提单号" class="form-item">
-                        <el-input
-                            v-model="formData.mblno"
-                            placeholder="请输入"
-                            prefix-icon="el-icon-document"
-                            @input="mblNoInput"
-                        ></el-input>
-                    </el-form-item>
-                </el-col>
-
-                <el-col :span="6">
-                    <el-form-item label="ETD" class="form-item">
-                        <el-date-picker
-                            v-model="formData.etd"
-                            type="date"
-                            placeholder="选择日期"
-                            style="width:100%"
-                            prefix-icon="el-icon-date"
-                        ></el-date-picker>
-                    </el-form-item>
-                </el-col>
+<!--                <el-col :span="6">-->
+<!--                    <el-form-item label="提单号" class="form-item">-->
+<!--                        <el-input-->
+<!--                            v-model="formData.mblno"-->
+<!--                            placeholder="请输入"-->
+<!--                            prefix-icon="el-icon-document"-->
+<!--                            @input="mblNoInput"-->
+<!--                        ></el-input>-->
+<!--                    </el-form-item>-->
+<!--                </el-col>-->
 
                 <el-col :span="6">
                     <el-form-item label="船名" class="form-item">
@@ -56,6 +44,18 @@
                         ></el-input>
                     </el-form-item>
                 </el-col>
+
+                <el-col :span="6">
+                    <el-form-item label="ETD" class="form-item">
+                        <el-date-picker
+                            v-model="formData.etd"
+                            type="date"
+                            placeholder="选择日期"
+                            style="width:100%"
+                            prefix-icon="el-icon-date"
+                        ></el-date-picker>
+                    </el-form-item>
+                </el-col>
             </el-row>
             <!-- 第一行:客户信息(下拉框) -->
             <el-row :gutter="20" class="form-row">