Browse Source

Merge remote-tracking branch 'origin/dev' into dev

wfg 2 months ago
parent
commit
0af5186e79
1 changed files with 289 additions and 11 deletions
  1. 289 11
      src/views/iosBasicData/SeafreightExportF/bills/assembly/edicode.vue

+ 289 - 11
src/views/iosBasicData/SeafreightExportF/bills/assembly/edicode.vue

@@ -3,7 +3,7 @@
         <el-form :model="assemblyForm" ref="form" label-width="90px" class="demo-ruleForm" :disabled="disabled">
             <el-row>
                 <el-button icon="el-icon-plus" size="small" type="primary" style="margin: 5px;"
-                    @click="inHmmEdi">现代EDI</el-button>
+                    @click="openHmmEdi">现代EDI</el-button>
             </el-row>
             <el-row>
                 <el-col :span="12">
@@ -58,8 +58,8 @@
                                     <span style="color: #1e9fff">自定义1</span>
                                 </span>
                                 <el-input type="age" style="width: 100%;" v-model="assemblyForm.hmmEdi.userDefine1"
-                                          size="small" autocomplete="off" :disabled="detailData.seeDisabled" clearable
-                                          placeholder=""></el-input>
+                                    size="small" autocomplete="off" :disabled="detailData.seeDisabled" clearable
+                                    placeholder=""></el-input>
                             </el-form-item>
                         </el-col>
                         <el-col :span="12">
@@ -68,8 +68,8 @@
                                     <span style="color: #1e9fff">自定义2</span>
                                 </span>
                                 <el-input type="age" style="width: 100%;" v-model="assemblyForm.hmmEdi.userDefine2"
-                                          size="small" autocomplete="off" :disabled="detailData.seeDisabled" clearable
-                                          placeholder=""></el-input>
+                                    size="small" autocomplete="off" :disabled="detailData.seeDisabled" clearable
+                                    placeholder=""></el-input>
                             </el-form-item>
                         </el-col>
                     </el-row>
@@ -136,8 +136,8 @@
                                     <span style="color: #1e9fff">自定义3</span>
                                 </span>
                                 <el-input type="age" style="width: 100%;" v-model="assemblyForm.hmmEdi.userDefine3"
-                                          size="small" autocomplete="off" :disabled="detailData.seeDisabled" clearable
-                                          placeholder=""></el-input>
+                                    size="small" autocomplete="off" :disabled="detailData.seeDisabled" clearable
+                                    placeholder=""></el-input>
                             </el-form-item>
                         </el-col>
                         <el-col :span="12">
@@ -146,8 +146,8 @@
                                     <span style="color: #1e9fff">自定义4</span>
                                 </span>
                                 <el-input type="age" style="width: 100%;" v-model="assemblyForm.hmmEdi.userDefine4"
-                                          size="small" autocomplete="off" :disabled="detailData.seeDisabled" clearable
-                                          placeholder=""></el-input>
+                                    size="small" autocomplete="off" :disabled="detailData.seeDisabled" clearable
+                                    placeholder=""></el-input>
                             </el-form-item>
                         </el-col>
                     </el-row>
@@ -164,6 +164,28 @@
                 </el-col>
             </el-row>
         </el-form>
+        <el-dialog title="HMM EDI信息" :visible.sync="dialogVisible" width="70%" :modal="false" :append-to-body="true">
+            <avue-form :option="hmmOption" v-model="assemblyForm.hmmEdi" @submit="submitHmm" @reset-change="dialogVisible = false">
+                <tempalte slot="applicant" slot-scope="{ row }">
+                    <el-input v-model="assemblyForm.hmmEdi.applicant" placeholder="请输入 补充申报人" @input="upperCas('applicant',assemblyForm.hmmEdi.applicant)"></el-input>
+                </tempalte>
+                <tempalte slot="shipperCode" slot-scope="{ row }">
+                    <el-input v-model="assemblyForm.hmmEdi.shipperCode" placeholder="请输入 发货人代码" @input="upperCas('shipperCode',assemblyForm.hmmEdi.shipperCode)"></el-input>
+                </tempalte>
+                <tempalte slot="actualShipperCode" slot-scope="{ row }">
+                    <el-input v-model="assemblyForm.hmmEdi.actualShipperCode" placeholder="请输入 实际发货人代码" @input="upperCas('actualShipperCode',assemblyForm.hmmEdi.actualShipperCode)"></el-input>
+                </tempalte>
+                <tempalte slot="consigneeCode" slot-scope="{ row }">
+                    <el-input v-model="assemblyForm.hmmEdi.consigneeCode" placeholder="请输入 收货人代码" @input="upperCas('consigneeCode',assemblyForm.hmmEdi.consigneeCode)"></el-input>
+                </tempalte>
+                <tempalte slot="notifierCode" slot-scope="{ row }">
+                    <el-input v-model="assemblyForm.hmmEdi.notifierCode" placeholder="请输入 通知人代码" @input="upperCas('notifierCode',assemblyForm.hmmEdi.notifierCode)"></el-input>
+                </tempalte>
+                <tempalte slot="actualConsigneeCode" slot-scope="{ row }">
+                    <el-input v-model="assemblyForm.hmmEdi.actualConsigneeCode" placeholder="请输入 实际收货人代码" @input="upperCas('actualConsigneeCode',assemblyForm.hmmEdi.actualConsigneeCode)"></el-input>
+                </tempalte>
+            </avue-form>
+        </el-dialog>
 
 
     </div>
@@ -188,8 +210,238 @@ export default {
         }
     },
     data() {
+        var validateVariable = (rule, value, callback)=>  {
+            if (value === '') {
+                callback();
+            }
+            const regex = /^[A-Z]{2}[A-Z0-9]{1,15}$/;
+            if (!regex.test(value)) {
+                callback(new Error('长度应为 3~17 个字符,不能出现特殊符号'));
+            }
+            callback();
+        };
         return {
             pilHblData: [],
+            reload: Math.random(),
+            dialogVisible: false,
+            hmmOption: {
+                submitText: '确定',
+                emptyText: '取消',
+                labelWidth: 130,
+                column: [
+                    {
+                        label: "欧线ENS申报标识",
+                        span: 8,
+                        prop: "emsDeclarationIdentification",
+                        type: 'select',
+                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=ENS_Identification",
+                        props: {
+                            label: "dictValue",
+                            value: "dictKey"
+                        },
+                        rules: [{
+                            required: true,
+                            message: "请输入欧线ENS申报标识",
+                            trigger: "blur",
+                        }],
+                    },
+                    {
+                        label: "舱单类型",
+                        span: 8,
+                        prop: "manifestType",
+                        type: 'select',
+                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=manifest_Type",
+                        props: {
+                            label: "dictValue",
+                            value: "dictKey"
+                        },
+                    },
+                    {
+                        label: "",
+                        span: 8,
+                        prop: "europeanLineSign",
+                        type: 'checkbox',
+                        dataType: 'string',
+                        dicData: [{
+                            label: '欧线标识',
+                            value: 1
+                        }]
+                    },
+                    {
+                        label: "补充申报人",
+                        span: 12,
+                        prop: "applicant",
+                        row: true,
+                        rules: [{ validator: validateVariable, trigger: 'blur' }]
+                    },
+                    {
+                        label: "发货人代码",
+                        span: 12,
+                        prop: "shipperCode",
+                        rules: [{ validator: validateVariable, trigger: 'blur' }]
+                    },
+                    {
+                        label: "实际发货人代码",
+                        span: 12,
+                        prop: "actualShipperCode",
+                        rules: [{ validator: validateVariable, trigger: 'blur' }]
+                    },
+                    {
+                        label: "发货人邮政信箱",
+                        span: 12,
+                        prop: "shipperEmail",
+                    },
+                    {
+                        label: "实际发货人名称",
+                        span: 12,
+                        prop: "actualShipperName",
+                    },
+                    {
+                        label: "发货人街道号码",
+                        span: 12,
+                        prop: "shipperStreetNo",
+                    },
+                    {
+                        label: "实际发货人地址",
+                        span: 12,
+                        prop: "actualShipperAddress",
+                    },
+                    {
+                        label: "发货人街道名称",
+                        span: 12,
+                        prop: "shipperStreetName",
+                    },
+                    {
+                        label: "实际发货人邮政信箱",
+                        span: 12,
+                        prop: "actualShipperEmail",
+                    },
+                    {
+                        label: "发货人邮政编码",
+                        span: 12,
+                        prop: "shipperPostalCode",
+                    },
+                    {
+                        label: "实际发货人街道号码",
+                        span: 12,
+                        prop: "actualShipperStreetNo",
+                    },
+                    {
+                        label: "收货人代码",
+                        span: 12,
+                        prop: "consigneeCode",
+                        rules: [{ validator: validateVariable, trigger: 'blur' }]
+                    },
+                    {
+                        label: "实际发货人街道名称",
+                        span: 12,
+                        prop: "actualShipperStreetName",
+                    },
+                    {
+                        label: "收货人邮政信箱",
+                        span: 12,
+                        prop: "consigneeEmail",
+                    },
+                    {
+                        label: "实际发货人邮政编码",
+                        span: 12,
+                        prop: "actualShipperPostalCode",
+                    },
+                    {
+                        label: "收货人街道号码",
+                        span: 12,
+                        prop: "consigneeStreetNo",
+                    },
+                    {
+                        label: "实际收货人代码",
+                        span: 12,
+                        prop: "actualConsigneeCode",
+                        rules: [{ validator: validateVariable, trigger: 'blur' }]
+                    },
+                    {
+                        label: "收货人街道名称",
+                        span: 12,
+                        prop: "consigneeStreetName",
+                    },
+                    {
+                        label: "实际收货人名称",
+                        span: 12,
+                        prop: "actualConsigneeName",
+                    },
+                    {
+                        label: "收货人邮政编码",
+                        span: 12,
+                        prop: "consigneePostalCode",
+                    },
+                    {
+                        label: "实际收货人地址",
+                        span: 12,
+                        prop: "actualConsigneeAddress",
+                    },
+                    {
+                        label: "通知人代码",
+                        span: 12,
+                        prop: "notifierCode",
+                        rules: [{ validator: validateVariable, trigger: 'blur' }]
+                    },
+                    {
+                        label: "实际收货人邮政信箱",
+                        span: 12,
+                        prop: "actualConsigneeEmail",
+                    },
+                    {
+                        label: "通知人邮政信箱",
+                        span: 12,
+                        prop: "notifierEmail",
+                    },
+                    {
+                        label: "实际收货人街道号码",
+                        span: 12,
+                        prop: "actualConsigneeStreetNo",
+                    },
+                    {
+                        label: "通知人街道号码",
+                        span: 12,
+                        prop: "notifierStreetNo",
+                    },
+                    {
+                        label: "实际收货人街道名称",
+                        span: 12,
+                        prop: "actualConsigneeStreetName",
+                    },
+                    {
+                        label: "通知人街道名称",
+                        span: 12,
+                        prop: "notifierStreetName",
+                    },
+                    {
+                        label: "实际收货人邮政编码",
+                        span: 12,
+                        prop: "actualConsigneePostalCode",
+                    },
+                    {
+                        label: "通知人电话",
+                        span: 12,
+                        prop: "notifierTel",
+                    },
+                    {
+                        label: "化工品标识",
+                        span: 12,
+                        prop: "chemicalIdentification",
+                        type: 'select',
+                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=chemical_Identification",
+                        props: {
+                            label: "dictValue",
+                            value: "dictKey"
+                        },
+                    },
+                    {
+                        label: "通知人邮政编码",
+                        span: 12,
+                        prop: "notifierPostalCode",
+                    }
+                ]
+            }
         }
     },
     created() {
@@ -200,12 +452,33 @@ export default {
             this.$set(this.assemblyForm, 'pilHbl', value)
         },
         pilHblfun() {
-            if(this.pilHblData.length==0) {
+            if (this.pilHblData.length == 0) {
                 getWorkDicts('pilhbl_los').then(res => {
                     this.pilHblData = res.data.data
                 })
             }
         },
+        validateVariable(input) {
+            if (typeof input !== 'string') {
+                return false;
+            }
+            const regex = /^[A-Z0-9]{3,17}$/;
+            return regex.test(input);
+        },
+        upperCas(name,str) {
+            this.assemblyForm.hmmEdi[name]=str.toUpperCase()
+        },
+        submitHmm(res,done){
+            done()
+            console.log(res, 'hmmEdi')
+            this.dialogVisible = false
+        },
+        openHmmEdi() {
+            if (!this.assemblyForm.id) {
+                return this.$message.error('请先保存数据');
+            }
+            this.dialogVisible = true
+        },
         inHmmEdi() {
             if (!this.assemblyForm.id) {
                 return this.$message.error('请先保存数据');
@@ -213,6 +486,7 @@ export default {
             this.$DialogForm.show({
                 title: 'HMM EDI信息',
                 width: '70%',
+                ref: 'ediRef',
                 data: this.assemblyForm.hmmEdi,
                 menuPosition: 'right',
                 option: {
@@ -262,7 +536,11 @@ export default {
                             label: "补充申报人",
                             span: 12,
                             prop: "applicant",
-                            row: true
+                            row: true,
+                            change: ({ value, column, item, dic }) => {
+                                let that = this
+                                that.$set(that.assemblyForm.hmmEdi, 'applicant', value.toUpperCase())
+                            }
                         },
                         {
                             label: "发货人代码",