Browse Source

Merge branch 'dev' of http://git.echepei.com/tubao/Smart_platform_ui into dev

Qukatie 1 month ago
parent
commit
a68639656d

+ 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,

+ 85 - 2
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')">
@@ -416,11 +428,14 @@
                             <span slot="label">
                                 <span style="color: #1e9fff">ETD</span>
                             </span>
-                            <el-date-picker v-model="assemblyForm.etd" clearable style="width: 100%" type="date"
+                            <el-date-picker v-model="assemblyForm.etd" clearable style="width: 60%" type="date"
                                 size="small" :disabled="detailData.seeDisabled || generateBillsfalse"
                                 value-format="yyyy-MM-dd" :picker-options="etdPickerOptions" placeholder="请选择ETD日期"
                                 @change="handlePick">
                             </el-date-picker>
+                            <el-button style="margin-left: 6px" size="small" type="primary"
+                                       :disabled="!assemblyForm.id" @click="copyReceiptUrl(assemblyForm.id)">背箱小票链接
+                            </el-button>
                         </el-form-item>
                         <div>
                             <el-form-item label="船名" prop="vesselCnName" label-width="90px">
@@ -439,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')">
@@ -905,7 +922,7 @@ import { bportsList } from "@/api/iosBasicData/bports";
 import { bpackagesList } from "@/api/iosBasicData/bpackages";
 import { bcommodityList } from "@/api/iosBasicData/bcommodity";
 import { getBvesselsList } from "@/api/iosBasicData/bvessels";
-import { blinesList } from "@/api/iosBasicData/blines";
+import {blinesList, getReceiptUrl} from "@/api/iosBasicData/blines";
 import { bcorpstypedefineList } from "@/api/iosBasicData/bcorpstypedefine";
 import bcorpstypedefine from "@/views/iosBasicData/bcorps/bcorpstypedefine.vue";
 import { textareaWrap } from "@/util/messageReminder";
@@ -1044,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
@@ -1350,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}!`, '提示', {
@@ -1377,6 +1432,7 @@ export default {
                                         })
                                     }
                                 }
+                                */
                             }
                         }
 
@@ -1777,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
             })
         },
@@ -1896,6 +1968,17 @@ export default {
             })
         },
 
+        copyReceiptUrl(id){
+            getReceiptUrl(id).then(res => {
+                console.info('res---', res)
+                const input = document.createElement('textarea');
+                document.body.appendChild(input);
+                input.value = res.data.data;
+                input.select();
+                document.execCommand('copy');
+                document.body.removeChild(input);
+            })
+        },
     }
 
 }

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

@@ -32,10 +32,11 @@
                                 <span slot="label">
                                     <span style="color: #1e9fff">航次</span>
                                 </span>
-                                <el-input type="age" style="width: 70%;" v-model="assemblyForm.voyageNo" size="small"
+                                <el-input type="age" style="width: 60%;" v-model="assemblyForm.voyageNo" size="small"
                                     autocomplete="off" :disabled="detailData.seeDisabled" clearable
                                     placeholder="请输入航次"></el-input>
-                                <el-button size="small" type="primary"  @click="copyReceiptUrl(assemblyForm.id)">背箱小票链接
+                                <el-button style="margin-left: 6px" size="small" type="primary"
+                                           :disabled="!assemblyForm.id" @click="copyReceiptUrl(assemblyForm.id)">背箱小票链接
                                 </el-button>
                             </el-form-item>
                         </el-col>

+ 7 - 5
src/views/iosBasicData/SeafreightExportF/bills/billsDetails.vue

@@ -1743,9 +1743,7 @@ export default {
 
                 }
 
-                console.log(name + '.value', value, 'hpaymode', this.form.hpaymode)
-
-                if (value != this.form.hpaymode) {
+                if (this.form.hblNo && value != this.form.hpaymode) {
                     this.$alert('主单付费方式和分单的付费方式不一致 !', '提示', {
                         confirmButtonText: '确定',
                     });
@@ -1769,8 +1767,7 @@ export default {
                         this.$set(this.form, 'hpayplace', this.form.podEnName ? this.form.podEnName : '')
                     }
                 }
-                console.log(name + '.value', value, 'mpaymode', this.form.mpaymode)
-                if (value != this.form.mpaymode) {
+                if (this.form.hblNo && value != this.form.mpaymode) {
                     this.$alert('主单付费方式和分单的付费方式不一致 !', '提示', {
                         confirmButtonText: '确定',
                     });
@@ -1846,6 +1843,11 @@ export default {
                     // }).then(res => {
                     //     this.billsGetBillNofun()
                     // })
+                    if (this.form.hpaymode != this.form.mpaymode) {
+                        this.$alert('注意:主单付费方式和分单的付费方式不一致 !', '提示', {
+                            confirmButtonText: '确定',
+                        });
+                    }
                     this.billsGetBillNofun()
                 }
             }

+ 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">