Browse Source

海运出口界面

wfg 1 month ago
parent
commit
c595c25300

+ 3 - 1
src/components/iosbasic-data/searchquery.vue

@@ -10,6 +10,7 @@
 
                     <el-option v-for="(item, index) in datalist" :key="item[forParameter.key]" :label="item[forParameter.label]"
                         v-if="!multiColumns"
+                        style="height: 24px; line-height: 24px;"
                         :value="item[forParameter.value]"
                         :disabled="item[forParameter.disabled] ? item[forParameter.disabled] == disabledStatus : false"
                         @click.native="setSelectedIndex(index)"
@@ -27,7 +28,7 @@
                         v-if="multiColumns"
                         :key="''"
                         :label="'header'"
-                        style="height: 30px; line-height: 30px;"
+                        style="height: 24px; line-height: 24px;"
                         :disabled="true">
                         <span v-for="(col, colIdx) in dropdownColumns"
                               :key="col.key"
@@ -36,6 +37,7 @@
 
                     <el-option v-for="(item, index) in datalist" :key="item[forParameter.key]" :label="item[forParameter.label]"
                                v-if="multiColumns"
+                               style="height: 24px; line-height: 24px;"
                                :value="item[forParameter.value]"
                                :disabled="item[forParameter.disabled] ? item[forParameter.disabled] == disabledStatus : false"
                                @click.native="setSelectedIndex(index)"

+ 3 - 3
src/views/approveDataH/index.vue

@@ -6,7 +6,7 @@
       :data="dataList"
       ref="crud"
       v-model="form"
-      :row-style="{ height: '30px', 'line-height': '30px' }"
+      :row-style="{ height: '26px', 'line-height': '26px' }"
       :page.sync="page"
       :search.sync="search"
       :table-loading="loading"
@@ -799,7 +799,7 @@ export default {
         });
     },
     cellStyle() {
-      return "padding:0;height:30px;";
+      return "padding:0;margin:0;height:26px;";
     },
     //自定义列保存
     async saveColumn(ref, option, optionBack, code) {
@@ -832,6 +832,6 @@ export default {
 
 <style scoped>
 ::v-deep(.el-table__row) {
-  height: 30px;
+  height: 26px;
 }
 </style>

+ 27 - 11
src/views/iosBasicData/SeafreightExportF/bills/assembly/EntrustmentLnformation.vue

@@ -45,12 +45,23 @@
             </el-form-item>
             <div style="margin-top: 4px">
               <el-form-item label="" prop="hshipperDetails">
+                <!--
+                  <span style="
+                    font-family: Courier;
+                    line-height: 10px;
+                    padding: 0;
+                    height: 10px;
+                    margin: 0;
+                  ">&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1
+                  </span>
+                -->
                 <el-input
                   type="textarea"
                   style="width: 100%;"
                   v-model="assemblyForm.detail.hshipperDetails"
                   size="small"
                   autocomplete="off"
+                  wrap="off"
                   :disabled="detailData.seeDisabled"
                   :rows="textareaNumber"
                   clearable
@@ -115,6 +126,7 @@
                   v-model="assemblyForm.detail.hconsigneeDetails"
                   size="small"
                   autocomplete="off"
+                  wrap="off"
                   :disabled="detailData.seeDisabled"
                   :rows="textareaNumber"
                   clearable
@@ -184,6 +196,7 @@
                   v-model="assemblyForm.detail.hnotifyDetails"
                   size="small"
                   autocomplete="off"
+                  wrap="off"
                   :disabled="detailData.seeDisabled"
                   :rows="textareaNumber"
                   clearable
@@ -518,6 +531,7 @@
                   autocomplete="off"
                   :disabled="detailData.seeDisabled"
                   rows="5"
+                  wrap="off"
                   clearable
                   placeholder="请输入唛头"
                   @input="handleInput($event, 'marks')"
@@ -644,6 +658,7 @@
                   v-model="assemblyForm.commodityDescr"
                   size="small"
                   autocomplete="off"
+                  wrap="off"
                   :disabled="detailData.seeDisabled"
                   rows="8"
                   clearable
@@ -1352,6 +1367,7 @@
                   v-model="assemblyForm.detail.hnotify2Details"
                   size="small"
                   autocomplete="off"
+                  wrap="off"
                   :disabled="detailData.seeDisabled"
                   rows="4"
                   clearable
@@ -2016,7 +2032,7 @@ export default {
       if (arr.indexOf(name) != -1) {
         if (!value) {
           // this.$set(this.assemblyForm.detail, name + 'Id', '')
-          this.$set(this.assemblyForm.detail, name + "Id", "");
+          this.$set(this.assemblyForm.detail, name + "Id", 0);
           this.$set(this.assemblyForm.detail, name + "CnName", "");
           this.$set(this.assemblyForm.detail, name + "EnName", "");
           this.$set(this.assemblyForm.detail, name + "Code", "");
@@ -2058,7 +2074,7 @@ export default {
       // 有中文名称的港口
       else if (cnPorArr.indexOf(name) != -1) {
         if (!value) {
-          this.$set(this.assemblyForm, name + "Id", "");
+          this.$set(this.assemblyForm, name + "Id", 0);
           this.$set(this.assemblyForm, name + "CnName", "");
           this.$set(this.assemblyForm, name + "EnName", "");
           this.$set(this.assemblyForm, name + "Code", "");
@@ -2095,7 +2111,7 @@ export default {
       // 没有中文名的港口
       else if (portArr.indexOf(name) != -1) {
         if (!value) {
-          this.$set(this.assemblyForm, name + "Id", "");
+          this.$set(this.assemblyForm, name + "Id", 0);
           this.$set(this.assemblyForm, name + "Name", "");
           this.$set(this.assemblyForm, name + "Code", "");
           this.$set(this.assemblyForm, name + "NamePrint", "");
@@ -2193,12 +2209,12 @@ export default {
       // 船名
       else if (name == "vessel") {
         if (!value) {
-          this.$set(this.assemblyForm, "vesselId", "");
+          this.$set(this.assemblyForm, "vesselId", 0);
           this.$set(this.assemblyForm, "vesselCnName", "");
           this.$set(this.assemblyForm, "vesselEnName", "");
         }
         if (this[name + "Data"].length == 0) {
-          this.$set(this.assemblyForm, "vesselId", null);
+          this.$set(this.assemblyForm, "vesselId", 0);
           this.$set(this.assemblyForm, "vesselCnName", value);
           this.$set(this.assemblyForm, "vesselEnName", value);
         }
@@ -2213,7 +2229,7 @@ export default {
       // 船公司
       else if (name == "carrier") {
         if (!value) {
-          this.$set(this.assemblyForm, "carrierId", "");
+          this.$set(this.assemblyForm, "carrierId", 0);
           this.$set(this.assemblyForm, "carrierShortName", "");
           this.$set(this.assemblyForm, "carrierCnName", "");
           this.$set(this.assemblyForm, "carrierEnName", "");
@@ -2236,7 +2252,7 @@ export default {
       // 包装
       else if (name == "packingUnit") {
         if (!value) {
-          this.$set(this.assemblyForm, "packingUnitId", "");
+          this.$set(this.assemblyForm, "packingUnitId", 0);
           this.$set(this.assemblyForm, "packingUnit", "");
         }
         for (let item of this[name + "Data"]) {
@@ -2249,7 +2265,7 @@ export default {
       // 订舱代理
       else if (name == "bookingAgent") {
         if (!value) {
-          this.$set(this.assemblyForm, "bookingAgentId", "");
+          this.$set(this.assemblyForm, "bookingAgentId", 0);
           this.$set(this.assemblyForm, "bookingAgentCnName", "");
           this.$set(this.assemblyForm, "bookingAgentEnName", "");
           this.$set(this.assemblyForm, "bookingRemarks", "");
@@ -2266,7 +2282,7 @@ export default {
       // 航线
       else if (name == "line") {
         if (!value) {
-          this.$set(this.assemblyForm, "lineId", "");
+          this.$set(this.assemblyForm, "lineId", 0);
           this.$set(this.assemblyForm, "lineCnName", "");
           this.$set(this.assemblyForm, "lineEnName", "");
         }
@@ -2281,7 +2297,7 @@ export default {
       // COLOADER
       else if (name == "coloaderCnName") {
         if (!value) {
-          this.$set(this.assemblyForm, "coloaderId", "");
+          this.$set(this.assemblyForm, "coloaderId", 0);
           this.$set(this.assemblyForm, "coloaderCnName", "");
           this.$set(this.assemblyForm, "coloaderEnName", "");
         }
@@ -2300,7 +2316,7 @@ export default {
         }
       } else if (name == "cy") {
         if (!value) {
-          this.$set(this.assemblyForm, "cyId", "");
+          this.$set(this.assemblyForm, "cyId", 0);
           this.$set(this.assemblyForm, "cyCode", "");
           this.$set(this.assemblyForm, "cyShortName", "");
           this.$set(this.assemblyForm, "cyCnName", "");

+ 5 - 5
src/views/iosBasicData/SeafreightExportF/bills/assembly/EntrustmentLnformation/precontainers.vue

@@ -156,7 +156,7 @@ export default {
                         label: "箱量",
                         prop: "quantity",
                         type: "number",
-                        width: 70,
+                        width: 100,
                         cell: true,
                         controls: false,
                         precision: 0,
@@ -186,7 +186,7 @@ export default {
                         label: "件数",
                         prop: "number",
                         type: "number",
-                        width: 70,
+                        width: 100,
                         // cell:true,
                         controls: false,
                         precision: 0,
@@ -569,9 +569,9 @@ export default {
             })
         },
         corpClear(value, row) {
-            this.$set(row, 'cntrTypeCode', null)
-            this.$set(row, 'cntrTypeCodeId', null)
-            this.$set(row, 'teu', null)
+            this.$set(row, 'cntrTypeCode', '')
+            this.$set(row, 'cntrTypeCodeId', 0)
+            this.$set(row, 'teu', 0)
         },
         // 选择框的回调
         corpChange(value, row) {

+ 1534 - 699
src/views/iosBasicData/SeafreightExportF/bills/assembly/edicode.vue

@@ -1,737 +1,1572 @@
 <template>
-    <div>
-        <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="openHmmEdi">现代EDI</el-button>
-            </el-row>
-            <el-row>
-                <el-col :span="12">
-                    <el-row>
-                        <el-col :span="12">
-                            <el-form-item label="ERNNO" prop="ediErnno">
-                                <span slot="label">
-                                    <span style="color: #1e9fff">ERNNO</span>
-                                </span>
-                                <el-input type="age" style="width: 100%;" v-model="assemblyForm.detail.ediErnno"
-                                    size="small" autocomplete="off" :disabled="detailData.seeDisabled" clearable
-                                    placeholder="请输入ERNNO"></el-input>
-                            </el-form-item>
-                        </el-col>
-                        <el-col :span="12">
-                            <el-form-item label="VAENO" prop="ediVaeno">
-                                <span slot="label">
-                                    <span style="color: #1e9fff">VAENO</span>
-                                </span>
-                                <el-input type="age" style="width: 100%;" v-model="assemblyForm.detail.ediVaeno"
-                                    size="small" autocomplete="off" :disabled="detailData.seeDisabled" clearable
-                                    placeholder="请输入VAENO"></el-input>
-                            </el-form-item>
-                        </el-col>
-                    </el-row>
-                    <el-row>
-                        <el-col :span="12">
-                            <el-form-item label="TACNO" prop="ediTacno">
-                                <span slot="label">
-                                    <span style="color: #1e9fff">TACNO</span>
-                                </span>
-                                <el-input type="age" style="width: 100%;" v-model="assemblyForm.detail.ediTacno"
-                                    size="small" autocomplete="off" :disabled="detailData.seeDisabled" clearable
-                                    placeholder="请输入TACNO"></el-input>
-                            </el-form-item>
-                        </el-col>
-                        <el-col :span="12">
-                            <el-form-item label="IEMAL" prop="ediIemail">
-                                <span slot="label">
-                                    <span style="color: #1e9fff">IEMAL</span>
-                                </span>
-                                <el-input type="age" style="width: 100%;" v-model="assemblyForm.detail.ediIemail"
-                                    size="small" autocomplete="off" :disabled="detailData.seeDisabled" clearable
-                                    placeholder="请输入IEMAL"></el-input>
-                            </el-form-item>
-                        </el-col>
-                    </el-row>
-                    <el-row>
-                        <el-col :span="12">
-                            <el-form-item label="自定义1" prop="userDefine1">
-                                <span slot="label">
-                                    <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>
-                            </el-form-item>
-                        </el-col>
-                        <el-col :span="12">
-                            <el-form-item label="自定义2" prop="userDefine2">
-                                <span slot="label">
-                                    <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>
-                            </el-form-item>
-                        </el-col>
-                    </el-row>
-                    <!-- 此处不再重复显示
+  <div>
+    <!--    :disabled="disabled"-->
+    <el-form :model="assemblyForm" ref="form" label-width="90px" class="demo-ruleForm">
+      <el-row>
+        <el-button icon="iconfont iconicon_dispose" size="small" type="primary" style="margin: 5px" @click="openHmmEdi">HMM 欧洲申报</el-button>
+        <el-button icon="iconfont iconicon_addressbook" size="small" type="primary" style="margin: 5px" @click="openCMAENSEdi"
+          >CMA ENS 申报</el-button
+        >
+        <el-button icon="iconfont iconicon_addressbook" size="small" type="primary" style="margin: 5px" @click="openHLAGICS2Edi"
+          >HLAG ICS2 申报</el-button
+        >
+        <!--        <span>disabled: {{disabled}}</span>-->
+      </el-row>
+      <el-row>
+        <el-col :span="12">
+          <el-row>
+            <el-col :span="12">
+              <el-form-item label="ERNNO" prop="ediErnno">
+                <span slot="label">
+                  <span style="color: #1e9fff">ERNNO</span>
+                </span>
+                <el-input
+                  type="age"
+                  style="width: 100%"
+                  v-model="assemblyForm.detail.ediErnno"
+                  size="small"
+                  autocomplete="off"
+                  :disabled="disabled"
+                  clearable
+                  placeholder="请输入ERNNO"
+                ></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="VAENO" prop="ediVaeno">
+                <span slot="label">
+                  <span style="color: #1e9fff">VAENO</span>
+                </span>
+                <el-input
+                  type="age"
+                  style="width: 100%"
+                  v-model="assemblyForm.detail.ediVaeno"
+                  size="small"
+                  autocomplete="off"
+                  :disabled="disabled"
+                  clearable
+                  placeholder="请输入VAENO"
+                ></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="12">
+              <el-form-item label="TACNO" prop="ediTacno">
+                <span slot="label">
+                  <span style="color: #1e9fff">TACNO</span>
+                </span>
+                <el-input
+                  type="age"
+                  style="width: 100%"
+                  v-model="assemblyForm.detail.ediTacno"
+                  size="small"
+                  autocomplete="off"
+                  :disabled="disabled"
+                  clearable
+                  placeholder="请输入TACNO"
+                ></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="IEMAL" prop="ediIemail">
+                <span slot="label">
+                  <span style="color: #1e9fff">IEMAL</span>
+                </span>
+                <el-input
+                  type="age"
+                  style="width: 100%"
+                  v-model="assemblyForm.detail.ediIemail"
+                  size="small"
+                  autocomplete="off"
+                  :disabled="disabled"
+                  clearable
+                  placeholder="请输入IEMAL"
+                ></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="12">
+              <el-form-item label="自定义1" prop="userDefine1">
+                <span slot="label">
+                  <span style="color: #1e9fff">自定义1</span>
+                </span>
+                <el-input
+                  type="age"
+                  style="width: 100%"
+                  v-model="assemblyForm.hmmEdi.userDefine1"
+                  size="small"
+                  autocomplete="off"
+                  :disabled="disabled"
+                  clearable
+                  placeholder=""
+                ></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="自定义2" prop="userDefine2">
+                <span slot="label">
+                  <span style="color: #1e9fff">自定义2</span>
+                </span>
+                <el-input
+                  type="age"
+                  style="width: 100%"
+                  v-model="assemblyForm.hmmEdi.userDefine2"
+                  size="small"
+                  autocomplete="off"
+                  :disabled="disabled"
+                  clearable
+                  placeholder=""
+                ></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <!-- 此处不再重复显示
                     <el-form-item label="订舱备注" prop="bookingRemarks">
                         <span slot="label">
                             <span style="color: #1e9fff">订舱备注</span>
                         </span>
                         <el-input type="textarea" style="width: 100%;" v-model="assemblyForm.bookingRemarks"
-                            size="small" autocomplete="off" :disabled="detailData.seeDisabled" rows="3" clearable
+                            size="small" autocomplete="off" :disabled="disabled" rows="3" clearable
                             placeholder="请输入订舱备注"></el-input>
                     </el-form-item>
                     -->
-                </el-col>
-                <el-col :span="12">
-                    <el-row>
-                        <!--<el-col :span="12">-->
-                        <!--    <el-form-item label="ACINO" prop="ediIegstin" >-->
-                        <!--        <el-input type="age" style="width: 100%;" v-model="assemblyForm.ediIegstin"-->
-                        <!--                  size="small" autocomplete="off"-->
-                        <!--                  :disabled="detailData.seeDisabled"-->
-                        <!--                  clearable placeholder="请输入ACINO" ></el-input>-->
-                        <!--    </el-form-item>-->
-                        <!--</el-col>-->
-                        <el-col :span="12">
-                            <el-form-item label="IEIEC" prop="ediIeiec">
-                                <span slot="label">
-                                    <span style="color: #1e9fff">IEIEC</span>
-                                </span>
-                                <el-input type="age" style="width: 100%;" v-model="assemblyForm.detail.ediIeiec"
-                                    size="small" autocomplete="off" :disabled="detailData.seeDisabled" clearable
-                                    placeholder="请输入IEIEC"></el-input>
-                            </el-form-item>
-                        </el-col>
-                        <el-col :span="12">
-                            <el-form-item label="IEGSTIN" prop="ediIegstin">
-                                <span slot="label">
-                                    <span style="color: #1e9fff">IEGSTIN</span>
-                                </span>
-                                <el-input type="age" style="width: 100%;" v-model="assemblyForm.detail.ediIegstin"
-                                    size="small" autocomplete="off" :disabled="detailData.seeDisabled" clearable
-                                    placeholder="请输入IEGSTIN"></el-input>
-                            </el-form-item>
-                        </el-col>
-                    </el-row>
-                    <el-row>
-                        <el-col :span="12">
-                            <el-form-item label="PIL HBL" prop="pilHbl">
-                                <span slot="label">
-                                    <span style="color: #1e9fff">PIL HBL</span>
-                                </span>
-                                <search-query :datalist="pilHblData" :selectValue="assemblyForm.pilHbl"
-                                    :clearable="true" :disabled="detailData.seeDisabled" :buttonIf="false"
-                                    :forParameter="{ key: 'dictKey', label: 'dictValue', value: 'dictKey', }"
-                                    placeholder="请选择PIL HBL" @corpChange="pilHblChange" @corpFocus="pilHblfun">
-                                </search-query>
-                            </el-form-item>
-                        </el-col>
-                    </el-row>
-                    <el-row>
-                        <el-col :span="12">
-                            <el-form-item label="自定义3" prop="userDefine3">
-                                <span slot="label">
-                                    <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>
-                            </el-form-item>
-                        </el-col>
-                        <el-col :span="12">
-                            <el-form-item label="自定义4" prop="userDefine4">
-                                <span slot="label">
-                                    <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>
-                            </el-form-item>
-                        </el-col>
-                    </el-row>
-                    <!-- 此处不再重复显示
+        </el-col>
+        <el-col :span="12">
+          <el-row>
+            <!--<el-col :span="12">-->
+            <!--    <el-form-item label="ACINO" prop="ediIegstin" >-->
+            <!--        <el-input type="age" style="width: 100%;" v-model="assemblyForm.ediIegstin"-->
+            <!--                  size="small" autocomplete="off"-->
+            <!--                  :disabled="disabled"-->
+            <!--                  clearable placeholder="请输入ACINO" ></el-input>-->
+            <!--    </el-form-item>-->
+            <!--</el-col>-->
+            <el-col :span="12">
+              <el-form-item label="IEIEC" prop="ediIeiec">
+                <span slot="label">
+                  <span style="color: #1e9fff">IEIEC</span>
+                </span>
+                <el-input
+                  type="age"
+                  style="width: 100%"
+                  v-model="assemblyForm.detail.ediIeiec"
+                  size="small"
+                  autocomplete="off"
+                  :disabled="disabled"
+                  clearable
+                  placeholder="请输入IEIEC"
+                ></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="IEGSTIN" prop="ediIegstin">
+                <span slot="label">
+                  <span style="color: #1e9fff">IEGSTIN</span>
+                </span>
+                <el-input
+                  type="age"
+                  style="width: 100%"
+                  v-model="assemblyForm.detail.ediIegstin"
+                  size="small"
+                  autocomplete="off"
+                  :disabled="disabled"
+                  clearable
+                  placeholder="请输入IEGSTIN"
+                ></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="12">
+              <el-form-item label="PIL HBL" prop="pilHbl">
+                <span slot="label">
+                  <span style="color: #1e9fff">PIL HBL</span>
+                </span>
+                <search-query
+                  :datalist="pilHblData"
+                  :selectValue="assemblyForm.pilHbl"
+                  :clearable="true"
+                  :disabled="disabled"
+                  :buttonIf="false"
+                  :forParameter="{ key: 'dictKey', label: 'dictValue', value: 'dictKey' }"
+                  placeholder="请选择PIL HBL"
+                  @corpChange="pilHblChange"
+                  @corpFocus="pilHblfun"
+                >
+                </search-query>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="12">
+              <el-form-item label="自定义3" prop="userDefine3">
+                <span slot="label">
+                  <span style="color: #1e9fff">自定义3</span>
+                </span>
+                <el-input
+                  type="age"
+                  style="width: 100%"
+                  v-model="assemblyForm.hmmEdi.userDefine3"
+                  size="small"
+                  autocomplete="off"
+                  :disabled="disabled"
+                  clearable
+                  placeholder=""
+                ></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="自定义4" prop="userDefine4">
+                <span slot="label">
+                  <span style="color: #1e9fff">自定义4</span>
+                </span>
+                <el-input
+                  type="age"
+                  style="width: 100%"
+                  v-model="assemblyForm.hmmEdi.userDefine4"
+                  size="small"
+                  autocomplete="off"
+                  :disabled="disabled"
+                  clearable
+                  placeholder=""
+                ></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <!-- 此处不再重复显示
                     <el-form-item label="SI备注" prop="siRemarks">
                         <span slot="label">
                             <span style="color: #1e9fff">SI备注</span>
                         </span>
                         <el-input type="textarea" style="width: 100%;" v-model="assemblyForm.siRemarks" size="small"
-                            autocomplete="off" :disabled="detailData.seeDisabled" rows="3" clearable
+                            autocomplete="off" :disabled="disabled" rows="3" clearable
                             placeholder="请输入SI备注"></el-input>
                     </el-form-item>
                     -->
-                </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>
+        </el-col>
+      </el-row>
+    </el-form>
+
+    <el-dialog
+      :title="'HMM 欧洲申报信息' + dialogTitle"
+      :visible.sync="dialogVisible"
+      width="70%"
+      :modal="false"
+      :append-to-body="true"
+      v-dialog-drag
+      @close="handleDialogClose"
+      :before-close="handleBeforeClose"
+    >
+      <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="请输入 补充申报人"
+            :disabled="disabled"
+            @input="upperCas('applicant', assemblyForm.hmmEdi.applicant)"
+          ></el-input>
+        </tempalte>
+        <tempalte slot="shipperCode" slot-scope="{ row }">
+          <el-input
+            v-model="assemblyForm.hmmEdi.shipperCode"
+            placeholder="请输入 发货人代码"
+            :disabled="disabled"
+            @input="upperCas('shipperCode', assemblyForm.hmmEdi.shipperCode)"
+          ></el-input>
+        </tempalte>
+        <tempalte slot="actualShipperCode" slot-scope="{ row }">
+          <el-input
+            v-model="assemblyForm.hmmEdi.actualShipperCode"
+            placeholder="请输入 实际发货人代码"
+            :disabled="disabled"
+            @input="upperCas('actualShipperCode', assemblyForm.hmmEdi.actualShipperCode)"
+          ></el-input>
+        </tempalte>
+        <tempalte slot="consigneeCode" slot-scope="{ row }">
+          <el-input
+            v-model="assemblyForm.hmmEdi.consigneeCode"
+            placeholder="请输入 收货人代码"
+            :disabled="disabled"
+            @input="upperCas('consigneeCode', assemblyForm.hmmEdi.consigneeCode)"
+          ></el-input>
+        </tempalte>
+        <tempalte slot="notifierCode" slot-scope="{ row }">
+          <el-input
+            v-model="assemblyForm.hmmEdi.notifierCode"
+            placeholder="请输入 通知人代码"
+            :disabled="disabled"
+            @input="upperCas('notifierCode', assemblyForm.hmmEdi.notifierCode)"
+          ></el-input>
+        </tempalte>
+        <tempalte slot="actualConsigneeCode" slot-scope="{ row }">
+          <el-input
+            v-model="assemblyForm.hmmEdi.actualConsigneeCode"
+            placeholder="请输入 实际收货人代码"
+            :disabled="disabled"
+            @input="upperCas('actualConsigneeCode', assemblyForm.hmmEdi.actualConsigneeCode)"
+          ></el-input>
+        </tempalte>
+      </avue-form>
+    </el-dialog>
+
+    <el-dialog
+      :title="'CMA ENS 申报信息' + dialogTitle"
+      :visible.sync="dialogVisibleCMA_ENS"
+      width="70%"
+      :modal="false"
+      :append-to-body="true"
+      v-dialog-drag
+      @close="handleDialogClose"
+      :before-close="handleBeforeClose"
+    >
+      <avue-form :option="cmaENSOption" v-model="assemblyForm.hmmEdi" @submit="submitHmm" @reset-change="dialogVisibleCMA_ENS = false">
+        <tempalte slot="hblPlaceReceiptName" slot-scope="{ row }">
+          <search-query
+            :datalist="hblPlaceReceiptData"
+            :selectValue="assemblyForm.hmmEdi.hblPlaceReceiptName"
+            :filterable="true"
+            :clearable="true"
+            :remote="true"
+            :joinData="true"
+            :special="true"
+            :disabled="disabled"
+            :buttonIf="false"
+            placeholder="请选择 HBL 收货地"
+            :forParameter="{ key: 'id', short: 'code', label: 'enName', value: 'enName' }"
+            :multi-columns="true"
+            :dropdown-columns="portDorpdownColumns"
+            @remoteMethod="remoteMethod($event, 'hblPlaceReceipt')"
+            @corpChange="corpChange($event, 'hblPlaceReceipt')"
+            @corpFocus="remoteMethod($event, 'hblPlaceReceipt')"
+          >
+          </search-query>
+        </tempalte>
+        <tempalte slot="hblPlaceDeliveryName" slot-scope="{ row }">
+          <search-query
+            :datalist="hblPlaceDeliveryData"
+            :selectValue="assemblyForm.hmmEdi.hblPlaceDeliveryName"
+            :filterable="true"
+            :clearable="true"
+            :remote="true"
+            :joinData="true"
+            :special="true"
+            :disabled="disabled"
+            :buttonIf="false"
+            placeholder="请选择 HBL 收货地"
+            :forParameter="{ key: 'id', short: 'code', label: 'enName', value: 'enName' }"
+            :multi-columns="true"
+            :dropdown-columns="portDorpdownColumns"
+            @remoteMethod="remoteMethod($event, 'hblPlaceDelivery')"
+            @corpChange="corpChange($event, 'hblPlaceDelivery')"
+            @corpFocus="remoteMethod($event, 'hblPlaceDelivery')"
+          >
+          </search-query>
+        </tempalte>
+      </avue-form>
+    </el-dialog>
+
+    <el-dialog
+      :title="'HLAG ICS2 申报信息' + dialogTitle"
+      :visible.sync="dialogVisibleHLAG_ICS2"
+      width="70%"
+      :modal="false"
+      :append-to-body="true"
+      v-dialog-drag
+      @close="handleDialogClose"
+      :before-close="handleBeforeClose"
+    >
+      <avue-form :option="hlagICS2Option" v-model="assemblyForm.hmmEdi" @submit="submitHmm" @reset-change="dialogVisibleHLAG_ICS2 = false">
+      </avue-form>
+    </el-dialog>
+  </div>
 </template>
 
 <script>
 import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
 import { getWorkDicts } from "@/api/system/dictbiz";
+import { bportsList } from "@/api/iosBasicData/bports";
 
 export default {
-    components: { SearchQuery },
-    props: {
-        assemblyForm: {
-            type: Object
-        },
-        detailData: {
-            type: Boolean,
-        },
-        disabled: {
-            type: Boolean,
-            default: false
+  components: { SearchQuery },
+  props: {
+    assemblyForm: {
+      type: Object,
+    },
+    detailData: {
+      type: Boolean,
+    },
+    disabled: {
+      type: Boolean,
+      default: false,
+    },
+  },
+  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,
+      dialogVisibleCMA_ENS: false,
+      dialogVisibleHLAG_ICS2: false,
+      dialogTitle: "",
+      hblPlaceReceiptData: [],
+      hblPlaceDeliveryData: [],
+      // 港口下拉列
+      portDorpdownColumns: [],
+      savedHmmEdi: undefined,
+      hmmOption: {
+        submitBtn: !this.disabled,
+        submitText: "确定",
+        emptyBtn: false,
+        emptyText: "取消",
+        labelWidth: 130,
+        column: [
+          {
+            label: "欧线ENS申报标识",
+            span: 8,
+            prop: "emsDeclarationIdentification",
+            type: "select",
+            disabled: this.disabled,
+            value: "B",
+            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",
+            disabled: this.disabled,
+            dicUrl: "/api/blade-system/dict-biz/dictionary?code=manifest_Type",
+            props: {
+              label: "dictValue",
+              value: "dictKey",
+            },
+          },
+          {
+            label: "",
+            span: 8,
+            prop: "europeanLineSign",
+            type: "checkbox",
+            disabled: this.disabled,
+            dataType: "string",
+            dicData: [
+              {
+                label: "欧线标识",
+                value: 1,
+              },
+            ],
+          },
+          {
+            label: "补充申报人",
+            span: 12,
+            prop: "applicant",
+            disabled: this.disabled,
+            row: true,
+            rules: [{ validator: validateVariable, trigger: "blur" }],
+          },
+          {
+            label: "发货人代码",
+            span: 12,
+            prop: "shipperCode",
+            disabled: this.disabled,
+            rules: [{ validator: validateVariable, trigger: "blur" }],
+          },
+          {
+            label: "实际发货人代码",
+            span: 12,
+            prop: "actualShipperCode",
+            disabled: this.disabled,
+            rules: [{ validator: validateVariable, trigger: "blur" }],
+          },
+          {
+            label: "发货人邮政信箱",
+            span: 12,
+            prop: "shipperEmail",
+            disabled: this.disabled,
+          },
+          {
+            label: "实际发货人名称",
+            span: 12,
+            prop: "actualShipperName",
+            disabled: this.disabled,
+          },
+          {
+            label: "发货人街道号码",
+            span: 12,
+            prop: "shipperStreetNo",
+            disabled: this.disabled,
+          },
+          {
+            label: "实际发货人地址",
+            span: 12,
+            prop: "actualShipperAddress",
+            disabled: this.disabled,
+          },
+          {
+            label: "发货人街道名称",
+            span: 12,
+            prop: "shipperStreetName",
+            disabled: this.disabled,
+          },
+          {
+            label: "实际发货人邮政信箱",
+            span: 12,
+            prop: "actualShipperEmail",
+            disabled: this.disabled,
+          },
+          {
+            label: "发货人邮政编码",
+            span: 12,
+            prop: "shipperPostalCode",
+            disabled: this.disabled,
+          },
+          {
+            label: "实际发货人街道号码",
+            span: 12,
+            prop: "actualShipperStreetNo",
+            disabled: this.disabled,
+          },
+          {
+            label: "收货人代码",
+            span: 12,
+            prop: "consigneeCode",
+            disabled: this.disabled,
+            rules: [{ validator: validateVariable, trigger: "blur" }],
+          },
+          {
+            label: "实际发货人街道名称",
+            span: 12,
+            prop: "actualShipperStreetName",
+            disabled: this.disabled,
+          },
+          {
+            label: "收货人邮政信箱",
+            span: 12,
+            prop: "consigneeEmail",
+            disabled: this.disabled,
+          },
+          {
+            label: "实际发货人邮政编码",
+            span: 12,
+            prop: "actualShipperPostalCode",
+            disabled: this.disabled,
+          },
+          {
+            label: "收货人街道号码",
+            span: 12,
+            prop: "consigneeStreetNo",
+            disabled: this.disabled,
+          },
+          {
+            label: "实际收货人代码",
+            span: 12,
+            prop: "actualConsigneeCode",
+            disabled: this.disabled,
+            rules: [{ validator: validateVariable, trigger: "blur" }],
+          },
+          {
+            label: "收货人街道名称",
+            span: 12,
+            prop: "consigneeStreetName",
+            disabled: this.disabled,
+          },
+          {
+            label: "实际收货人名称",
+            span: 12,
+            prop: "actualConsigneeName",
+            disabled: this.disabled,
+          },
+          {
+            label: "收货人邮政编码",
+            span: 12,
+            prop: "consigneePostalCode",
+            disabled: this.disabled,
+          },
+          {
+            label: "实际收货人地址",
+            span: 12,
+            prop: "actualConsigneeAddress",
+            disabled: this.disabled,
+          },
+          {
+            label: "通知人代码",
+            span: 12,
+            prop: "notifierCode",
+            disabled: this.disabled,
+            rules: [{ validator: validateVariable, trigger: "blur" }],
+          },
+          {
+            label: "实际收货人邮政信箱",
+            span: 12,
+            prop: "actualConsigneeEmail",
+            disabled: this.disabled,
+          },
+          {
+            label: "通知人邮政信箱",
+            span: 12,
+            prop: "notifierEmail",
+            disabled: this.disabled,
+          },
+          {
+            label: "实际收货人街道号码",
+            span: 12,
+            prop: "actualConsigneeStreetNo",
+            disabled: this.disabled,
+          },
+          {
+            label: "通知人街道号码",
+            span: 12,
+            prop: "notifierStreetNo",
+            disabled: this.disabled,
+          },
+          {
+            label: "实际收货人街道名称",
+            span: 12,
+            prop: "actualConsigneeStreetName",
+            disabled: this.disabled,
+          },
+          {
+            label: "通知人街道名称",
+            span: 12,
+            prop: "notifierStreetName",
+            disabled: this.disabled,
+          },
+          {
+            label: "实际收货人邮政编码",
+            span: 12,
+            prop: "actualConsigneePostalCode",
+            disabled: this.disabled,
+          },
+          {
+            label: "通知人电话",
+            span: 12,
+            prop: "notifierTel",
+            disabled: this.disabled,
+          },
+          {
+            label: "化工品标识",
+            span: 12,
+            prop: "chemicalIdentification",
+            type: "select",
+            disabled: this.disabled,
+            dicUrl: "/api/blade-system/dict-biz/dictionary?code=chemical_Identification",
+            props: {
+              label: "dictValue",
+              value: "dictKey",
+            },
+          },
+          {
+            label: "通知人邮政编码",
+            span: 12,
+            prop: "notifierPostalCode",
+            disabled: this.disabled,
+          },
+        ],
+      },
+      cmaENSOption: {
+        submitBtn: !this.disabled,
+        submitText: "确定",
+        emptyBtn: false,
+        emptyText: "取消",
+        labelWidth: 110,
+        column: [
+          {
+            label: "ENS申报方式",
+            span: 6,
+            prop: "ensFillingFlag",
+            type: "select",
+            value: "NONE",
+            disabled: this.disabled,
+            clearable: false,
+            dicUrl: "/api/blade-system/dict-biz/dictionary?code=ENS_FillingFlag",
+            props: {
+              label: "dictValue",
+              value: "dictKey",
+            },
+            rules: [
+              {
+                required: true,
+                message: "请输入欧线ENS申报标识",
+                trigger: "blur",
+              },
+            ],
+            row: true,
+          },
+          {
+            label: "补充申报人EORI",
+            span: 6,
+            prop: "applicant",
+            disabled: this.disabled,
+            rules: [{ validator: validateVariable, trigger: "blur" }],
+            ensFillingFlags: "A",
+          },
+          {
+            label: "分单号",
+            span: 6,
+            prop: "ensHblNo",
+            disabled: this.disabled,
+            ensFillingFlags: "A",
+          },
+          {
+            label: "UCR No.",
+            span: 6,
+            prop: "ucrNo",
+            disabled: this.disabled,
+            ensFillingFlags: "BCD",
+          },
+          {
+            label: "CUS CODE",
+            span: 6,
+            prop: "cusCode",
+            row: true,
+            disabled: this.disabled,
+            ensFillingFlags: "BCD",
+          },
+          {
+            label: "HBL收货地",
+            span: 6,
+            prop: "hblPlaceReceiptName",
+            disabled: this.disabled,
+            ensFillingFlags: "CD",
+          },
+          {
+            label: "HBL收货地名称",
+            span: 6,
+            prop: "hblPlaceReceiptNamePrint",
+            disabled: this.disabled,
+            ensFillingFlags: "CD",
+          },
+          {
+            label: "HBL交货地",
+            span: 6,
+            prop: "hblPlaceDeliveryName",
+            disabled: this.disabled,
+            ensFillingFlags: "CD",
+          },
+          {
+            label: "HBL交货地名称",
+            span: 6,
+            prop: "hblPlaceDeliveryNamePrint",
+            disabled: this.disabled,
+            ensFillingFlags: "CD",
+          },
+          {
+            label: "HBL发货人",
+            span: 12,
+            prop: "hblShipperDetails",
+            type: "textarea",
+            rows: 5,
+            disabled: this.disabled,
+            ensFillingFlags: "CD",
+          },
+          {
+            label: "卖方",
+            span: 12,
+            prop: "sellerDetails",
+            type: "textarea",
+            rows: 5,
+            disabled: this.disabled,
+            row: true,
+            ensFillingFlags: "BCD",
+          },
+          {
+            label: "HBL发货联系人",
+            span: 6,
+            prop: "actualShipperAttn",
+            disabled: this.disabled,
+            ensFillingFlags: "CD",
+          },
+          {
+            label: "电话",
+            span: 6,
+            prop: "actualShipperAttnTel",
+            disabled: this.disabled,
+            ensFillingFlags: "CD",
+          },
+          {
+            label: "卖方联系人",
+            span: 6,
+            prop: "sellerAttn",
+            disabled: this.disabled,
+            ensFillingFlags: "BCD",
+          },
+          {
+            label: "电话",
+            span: 6,
+            prop: "sellerAttnTel",
+            row: true,
+            disabled: this.disabled,
+            ensFillingFlags: "BCD",
+          },
+          {
+            label: "邮箱",
+            span: 12,
+            prop: "actualShipperAttnEmail",
+            disabled: this.disabled,
+            ensFillingFlags: "CD",
+          },
+          {
+            label: "邮箱",
+            span: 12,
+            prop: "sellerAttnEmail",
+            row: true,
+            disabled: this.disabled,
+            ensFillingFlags: "BCD",
+          },
+          {
+            label: "HBL收货人EORI",
+            span: 12,
+            prop: "hblConsigneeCode",
+            disabled: this.disabled,
+            ensFillingFlags: "CD",
+          },
+          {
+            label: "买方EORI",
+            span: 12,
+            prop: "buyerCode",
+            row: true,
+            disabled: this.disabled,
+            ensFillingFlags: "BCD",
+          },
+          {
+            label: "HBL收货人",
+            span: 12,
+            prop: "hblConsigneeDetails",
+            type: "textarea",
+            rows: 5,
+            disabled: this.disabled,
+            ensFillingFlags: "CD",
+          },
+          {
+            label: "买方",
+            span: 12,
+            prop: "buyerDetails",
+            type: "textarea",
+            rows: 5,
+            row: true,
+            disabled: this.disabled,
+            ensFillingFlags: "BCD",
+          },
+          {
+            label: "HBL收货联系人",
+            span: 6,
+            prop: "actualConsigneeAttn",
+            disabled: this.disabled,
+            ensFillingFlags: "CD",
+          },
+          {
+            label: "电话",
+            span: 6,
+            prop: "actualConsigneeAttnTel",
+            disabled: this.disabled,
+            ensFillingFlags: "CD",
+          },
+          {
+            label: "买方联系人",
+            span: 6,
+            prop: "buyerAttn",
+            disabled: this.disabled,
+            ensFillingFlags: "BCD",
+          },
+          {
+            label: "电话",
+            span: 6,
+            prop: "buyerAttnTel",
+            disabled: this.disabled,
+            row: true,
+            ensFillingFlags: "BCD",
+          },
+          {
+            label: "邮箱",
+            span: 12,
+            prop: "actualConsigneeAttnEmail",
+            disabled: this.disabled,
+            ensFillingFlags: "CD",
+          },
+          {
+            label: "邮箱",
+            span: 12,
+            prop: "buyerAttnEmail",
+            disabled: this.disabled,
+            row: true,
+            ensFillingFlags: "BCD",
+          },
+          {
+            label: "HBL通知人EORI",
+            span: 12,
+            prop: "hblNotifyCode",
+            disabled: this.disabled,
+            row: true,
+            ensFillingFlags: "CD",
+          },
+          {
+            label: "HBL通知人",
+            span: 12,
+            prop: "hblNotifyDetails",
+            type: "textarea",
+            disabled: this.disabled,
+            rows: 5,
+            ensFillingFlags: "CD",
+          },
+          {
+            label: "海关申报货物明细",
+            span: 12,
+            prop: "customsDeclarationGoodsDetails",
+            type: "textarea",
+            disabled: this.disabled,
+            rows: 5,
+            row: true,
+            ensFillingFlags: "BCD",
+          },
+          {
+            label: "HBL通知联系人",
+            span: 6,
+            prop: "actualNotifyAttn",
+            disabled: this.disabled,
+            ensFillingFlags: "CD",
+          },
+          {
+            label: "电话",
+            span: 6,
+            prop: "actualNotifyAttnTel",
+            disabled: this.disabled,
+            row: true,
+            ensFillingFlags: "CD",
+          },
+          {
+            label: "邮箱",
+            span: 12,
+            prop: "actualNotifyAttnEmail",
+            disabled: this.disabled,
+            row: true,
+            ensFillingFlags: "CD",
+          },
+        ],
+      },
+      hlagICS2Option: {
+        submitBtn: !this.disabled,
+        submitText: "确定",
+        emptyBtn: false,
+        emptyText: "取消",
+        labelWidth: 110,
+        column: [
+          {
+            label: "ICS2 申报方式",
+            span: 12,
+            prop: "ics2FillingFlag",
+            type: "select",
+            value: "NONE",
+            disabled: this.disabled,
+            clearable: false,
+            dicUrl: "/api/blade-system/dict-biz/dictionary?code=ENS_FillingFlag_HALG",
+            props: {
+              label: "dictValue",
+              value: "dictKey",
+            },
+            rules: [
+              {
+                required: true,
+                message: "请输入 ICS2 申报方式",
+                trigger: "blur",
+              },
+            ],
+            row: true,
+          },
+          {
+            label: "EORI NO.",
+            span: 6,
+            prop: "eoriNo",
+            disabled: this.disabled,
+            rules: [{ validator: validateVariable, trigger: "blur" }],
+          },
+          {
+            label: "SFC NO.",
+            span: 6,
+            prop: "sfcNo",
+            disabled: this.disabled,
+            row: true,
+          },
+          /*
+          {
+            label: "UCR No.",
+            span: 6,
+            disabled: this.disabled,
+            prop: "ucrNo",
+          },
+          {
+            label: "CUS CODE",
+            span: 6,
+            prop: "cusCode",
+            disabled: this.disabled,
+            row: true,
+          },
+          */
+          {
+            label: "卖方EORI",
+            span: 12,
+            prop: "sellerCode",
+            disabled: this.disabled,
+          },
+          {
+            label: "买方EORI",
+            span: 12,
+            prop: "buyerCode",
+            disabled: this.disabled,
+            row: true,
+          },
+          {
+            label: "卖方",
+            span: 12,
+            prop: "sellerDetails",
+            type: "textarea",
+            disabled: this.disabled,
+            rows: 5,
+          },
+          {
+            label: "买方",
+            span: 12,
+            prop: "buyerDetails",
+            type: "textarea",
+            rows: 5,
+            disabled: this.disabled,
+            row: true,
+          },
+
+          {
+            label: "买方联系人",
+            span: 6,
+            prop: "buyerAttn",
+            disabled: this.disabled,
+          },
+          {
+            label: "电话",
+            span: 6,
+            prop: "buyerAttnTel",
+            disabled: this.disabled,
+          },
+          {
+            label: "卖方联系人",
+            span: 6,
+            prop: "sellerAttn",
+            disabled: this.disabled,
+          },
+          {
+            label: "电话",
+            span: 6,
+            prop: "sellerAttnTel",
+            disabled: this.disabled,
+            row: true,
+          },
+          {
+            label: "邮箱",
+            span: 12,
+            prop: "buyerAttnEmail",
+            disabled: this.disabled,
+          },
+          {
+            label: "邮箱",
+            span: 12,
+            prop: "sellerAttnEmail",
+            disabled: this.disabled,
+          },
+        ],
+      },
+    };
+  },
+  created() {
+    let portColumns = [
+      { key: "code", field: "code", label: "编码", width: "60px" },
+      { key: "enName", field: "enName", label: "名称", width: "200px" },
+    ];
+
+    let columnNames = "APL,ESL,HMM,INTTRA,CMA,ONE,PIL,HJ=SML,VOLTA,ZIM,EP";
+    columnNames.split(",").forEach((col) => {
+      if (col.indexOf("=") > 0) {
+        let cols = col.split("=");
+        portColumns.push({ key: cols[0], field: cols[0], label: cols[1], fontSize: "10px", width: "45px" });
+      } else {
+        portColumns.push({ key: col, field: col, label: col, fontSize: "10px", width: "45px" });
+      }
+    });
+    this.portDorpdownColumns = portColumns;
+
+    this.pilHblfun();
+  },
+  watch: {
+    // "assemblyForm.hmmEdi.ensFillingFlag"() {
+    //   this.hmmEdiEnsFillingFlagChanged();
+    // },
+  },
+  mounted() {},
+  methods: {
+    pilHblChange(value) {
+      this.$set(this.assemblyForm, "pilHbl", value);
+    },
+    pilHblfun() {
+      if (this.pilHblData.length == 0) {
+        getWorkDicts("pilhbl_los").then((res) => {
+          this.pilHblData = res.data.data;
+        });
+      }
+    },
+    handleDialogClose(){
+      this.savedHmmEdi = undefined;
+    },
+    handleBeforeClose(done){
+      if(this.savedHmmEdi){
+        this.assemblyForm.hmmEdi = JSON.parse(JSON.stringify(this.savedHmmEdi));
+      }
+      done();
+    },
+    hmmEdiEnsFillingFlagChanged() {
+      if (this.assemblyForm && this.assemblyForm.hmmEdi && this.assemblyForm.hmmEdi.ensFillingFlag) {
+        console.log(this.assemblyForm, this.assemblyForm.hmmEdi, this.assemblyForm.hmmEdi.ensFillingFlag);
+        if (!this.assemblyForm.hmmEdi.ensFillingFlag) {
+          this.$set(this.assemblyForm.hmmEdi, "ensFillingFlag", "NONE");
         }
+        let that = this;
+        this.cmaENSOption.column.forEach((col) => {
+          if (col.ensFillingFlags) {
+            // that.$set(col, "disabled", col.ensFillingFlags.indexOf(that.assemblyForm.hmmEdi.ensFillingFlag) < 0);
+          }
+        });
+      }
+    },
+    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();
+      if (this.dialogVisible) this.dialogVisible = false;
+      if (this.dialogVisibleCMA_ENS) this.dialogVisibleCMA_ENS = false;
+      if (this.dialogVisibleHLAG_ICS2) this.dialogVisibleHLAG_ICS2 = false;
+    },
+    // 远程搜索
+    remoteMethod(value, name) {
+      let portArr = ["hblPlaceReceipt", "hblPlaceDelivery"];
+      // 港口
+      if (portArr.indexOf(name) != -1) {
+        this[name + "BportsListfun"](value);
+      }
+    },
+    // EDI 信息转成列
+    processEDIAsColumns(records) {
+      if (Array.isArray(records)) {
+        records.forEach((rec) => {
+          if (Array.isArray(rec.extendedDataArr)) {
+            rec.extendedDataArr.forEach((js) => (rec[js.name] = js.value));
+          }
+        });
+        records.sort((a, b) => {
+          if (a.enName > b.cnName) return 1;
+          if (a.enName < b.cnName) return -1;
+          return 0;
+        });
+      }
+    },
+    // 收货地数据 (港口表)
+    hblPlaceReceiptBportsListfun(enName) {
+      bportsList(1, 10, { enName, status: 0 }).then((res) => {
+        this.processEDIAsColumns(res.data.data.records);
+        this.hblPlaceReceiptData = res.data.data.records;
+      });
     },
-    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",
-                    }
-                ]
-            }
+    // 交货地
+    hblPlaceDeliveryBportsListfun(enName) {
+      bportsList(1, 10, { enName, status: 0 }).then((res) => {
+        this.processEDIAsColumns(res.data.data.records);
+        this.hblPlaceDeliveryData = res.data.data.records;
+      });
+    },
+    // 选择框的回调
+    corpChange(value, name) {
+      console.log("corpChange", name, value, this.assemblyForm.hmmEdi);
+      let portArr = ["hblPlaceReceipt", "hblPlaceDelivery"];
+      // 没有中文名的港口
+      if (portArr.indexOf(name) >= 0) {
+        if (!value) {
+          this.$set(this.assemblyForm.hmmEdi, name + "Id", 0);
+          this.$set(this.assemblyForm.hmmEdi, name + "Name", "");
+          this.$set(this.assemblyForm.hmmEdi, name + "Code", "");
+          this.$set(this.assemblyForm.hmmEdi, name + "NamePrint", "");
+        }
+        for (let item of this[name + "Data"]) {
+          if (item.enName === value) {
+            this.$set(this.assemblyForm.hmmEdi, name + "Id", item.id);
+            this.$set(this.assemblyForm.hmmEdi, name + "Name", item.enName);
+            this.$set(this.assemblyForm.hmmEdi, name + "Code", item.code);
+            this.$set(this.assemblyForm.hmmEdi, name + "NamePrint", item.enName);
+          }
         }
+      }
     },
-    created() {
-        this.pilHblfun();
+    buildDialogTitle() {
+      let title = "";
+      if (this.assemblyForm.mblno) {
+        title += " MB/L NO:" + this.assemblyForm.mblno;
+      }
+      if (this.assemblyForm.bookingNo) {
+        title += " Booking NO:" + this.assemblyForm.bookingNo;
+      }
+
+      if (title) {
+        title = " -" + title;
+      }
+      this.dialogTitle = title;
     },
-    methods: {
-        pilHblChange(value) {
-            this.$set(this.assemblyForm, 'pilHbl', value)
-        },
-        pilHblfun() {
-            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()
-            this.dialogVisible = false
-        },
-        openHmmEdi() {
-            if (!this.assemblyForm.id) {
-                return this.$message.error('请先保存数据');
-            }
-            if(!this.assemblyForm.hmmEdi.emsDeclarationIdentification){
-              this.assemblyForm.hmmEdi.emsDeclarationIdentification = 'B'
-            }
-            if(!this.assemblyForm.hmmEdi.europeanLineSign){
-              this.assemblyForm.hmmEdi.europeanLineSign = 1
-            }
-            if(!this.assemblyForm.hmmEdi.manifestType){
-              this.assemblyForm.hmmEdi.manifestType = 'S'
-            }
-            if(!this.assemblyForm.hmmEdi.chemicalIdentification){
-              this.assemblyForm.hmmEdi.chemicalIdentification = 'N'
-            }
+    openHmmEdi() {
+      if (!this.assemblyForm.id) {
+        return this.$message.error("请先保存数据");
+      }
 
-            this.dialogVisible = true
-        },
-        inHmmEdi() {
-            if (!this.assemblyForm.id) {
-                return this.$message.error('请先保存数据');
-            }
-            this.$DialogForm.show({
-                title: 'HMM EDI信息',
-                width: '70%',
-                ref: 'ediRef',
-                data: this.assemblyForm.hmmEdi,
-                menuPosition: 'right',
-                option: {
-                    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,
-                            change: ({ value, column, item, dic }) => {
-                                let that = this
-                                that.$set(that.assemblyForm.hmmEdi, 'applicant', value.toUpperCase())
-                            }
-                        },
-                        {
-                            label: "发货人代码",
-                            span: 12,
-                            prop: "shipperCode",
-                        },
-                        {
-                            label: "实际发货人代码",
-                            span: 12,
-                            prop: "actualShipperCode",
-                        },
-                        {
-                            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",
-                        },
-                        {
-                            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",
-                        },
-                        {
-                            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",
-                        },
-                        {
-                            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",
-                        }
-                    ]
+      /*
+      if (!this.assemblyForm.hmmEdi.emsDeclarationIdentification) {
+        this.assemblyForm.hmmEdi.emsDeclarationIdentification = "B";
+      }
+      let es = this.assemblyForm.hmmEdi.europeanLineSign == undefined ? 0 : this.assemblyForm.hmmEdi.europeanLineSign;
+      if (es == 1 || es == "1") {
+        this.assemblyForm.hmmEdi.europeanLineSign = 1;
+      }else{
+        this.assemblyForm.hmmEdi.europeanLineSign = 0;
+      }
+      if (!this.assemblyForm.hmmEdi.manifestType) {
+        this.assemblyForm.hmmEdi.manifestType = "S";
+      }
+      if (!this.assemblyForm.hmmEdi.chemicalIdentification) {
+        this.assemblyForm.hmmEdi.chemicalIdentification = "N";
+      }
+
+       */
+
+      this.buildDialogTitle();
+
+      this.$set(this.hmmOption, "submitBtn" , !this.disabled);
+      this.hmmOption.column.forEach((col) => {
+        this.$set(col, "disabled" , this.disabled);
+      })
+
+      this.savedHmmEdi = JSON.parse(JSON.stringify(this.assemblyForm.hmmEdi));
+
+      this.dialogVisible = true;
+    },
+    openCMAENSEdi() {
+      if (!this.assemblyForm.id) {
+        return this.$message.error("请先保存数据");
+      }
+
+      /*
+      if (!this.assemblyForm.hmmEdi.ensFillingFlag) {
+        this.assemblyForm.hmmEdi.ensFillingFlag = "NONE";
+      }
+
+       */
+
+      this.buildDialogTitle();
+
+      this.$set(this.cmaENSOption, "submitBtn" , !this.disabled);
+      this.cmaENSOption.column.forEach((col) => {
+        this.$set(col, "disabled" , this.disabled);
+      })
+
+      this.savedHmmEdi = JSON.parse(JSON.stringify(this.assemblyForm.hmmEdi));
+      this.dialogVisibleCMA_ENS = true;
+    },
+    openHLAGICS2Edi() {
+      if (!this.assemblyForm.id) {
+        return this.$message.error("请先保存数据");
+      }
+
+      /*
+      if (!this.assemblyForm.hmmEdi.ics2FillingFlag) {
+        this.assemblyForm.hmmEdi.ics2FillingFlag = "NONE";
+      }
+       */
+
+      this.buildDialogTitle();
+
+      this.$set(this.hlagICS2Option, "submitBtn" , !this.disabled);
+      this.hlagICS2Option.column.forEach((col) => {
+        this.$set(col, "disabled" , this.disabled);
+      })
+
+      this.savedHmmEdi = JSON.parse(JSON.stringify(this.assemblyForm.hmmEdi));
+      this.dialogVisibleHLAG_ICS2 = true;
+    },
+    inHmmEdi() {
+      if (!this.assemblyForm.id) {
+        return this.$message.error("请先保存数据");
+      }
+      this.$DialogForm.show({
+        title: "HMM EDI信息",
+        width: "70%",
+        ref: "ediRef",
+        data: this.assemblyForm.hmmEdi,
+        menuPosition: "right",
+        option: {
+          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",
                 },
-                beforeClose: (done) => {
-                    done()
+              ],
+            },
+            {
+              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,
                 },
-                callback: (res) => {
-                    res.done()
-                    this.assemblyForm.hmmEdi = res.data
-                    res.close()
-                }
-            })
-        }
-    }
-}
-
+              ],
+            },
+            {
+              label: "补充申报人",
+              span: 12,
+              prop: "applicant",
+              row: true,
+              change: ({ value, column, item, dic }) => {
+                let that = this;
+                that.$set(that.assemblyForm.hmmEdi, "applicant", value.toUpperCase());
+              },
+            },
+            {
+              label: "发货人代码",
+              span: 12,
+              prop: "shipperCode",
+            },
+            {
+              label: "实际发货人代码",
+              span: 12,
+              prop: "actualShipperCode",
+            },
+            {
+              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",
+            },
+            {
+              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",
+            },
+            {
+              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",
+            },
+            {
+              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",
+            },
+          ],
+        },
+        beforeClose: (done) => {
+          done();
+        },
+        callback: (res) => {
+          res.done();
+          this.assemblyForm.hmmEdi = res.data;
+          res.close();
+        },
+      });
+    },
+  },
+};
 </script>
 
 <style scoped>
 ::v-deep.el-form-item {
-    margin-bottom: 10px;
+  margin-bottom: 10px;
 }
 </style>

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

@@ -2876,7 +2876,7 @@ export default {
           this.$set(row, "shortName", "");
           this.$set(row, "corpCnName", "");
           this.$set(row, "corpEnName", "");
-          this.$set(row, "corpId", "");
+          this.$set(row, "corpId", 0);
         }
         for (let item of this.corpCnNameData) {
           if (item.shortName == value) {
@@ -2897,10 +2897,10 @@ export default {
         if (!value) {
           this.$set(row, "feeCnName", "");
           this.$set(row, "feeEnName", "");
-          this.$set(row, "feeId", "");
+          this.$set(row, "feeId", 0);
           this.$set(row, "feeCode", "");
           // 选择费用简称带出核算要素
-          this.$set(row, "elementsId", "");
+          this.$set(row, "elementsId", 0);
           this.$set(row, "elementsCnName", "");
           this.$set(row, "elementsCode", "");
           this.$set(row, "elementsEnName", "");
@@ -2917,13 +2917,13 @@ export default {
                 });
                 this.$set(row, "feeCnName", "");
                 this.$set(row, "feeEnName", "");
-                this.$set(row, "feeId", "");
+                this.$set(row, "feeId", 0);
                 this.$set(row, "feeCode", "");
                 if (this.business == 1) {
                   this.$set(row, "whetherForceCurNo", "");
                 }
                 // 核算要素
-                this.$set(row, "elementsId", "");
+                this.$set(row, "elementsId", 0);
                 this.$set(row, "elementsCnName", "");
                 this.$set(row, "elementsCode", "");
                 this.$set(row, "elementsEnName", "");
@@ -2939,13 +2939,13 @@ export default {
                 });
                 this.$set(row, "feeCnName", "");
                 this.$set(row, "feeEnName", "");
-                this.$set(row, "feeId", "");
+                this.$set(row, "feeId", 0);
                 this.$set(row, "feeCode", "");
                 if (this.business == 1) {
                   this.$set(row, "whetherForceCurNo", "");
                 }
                 // 核算要素
-                this.$set(row, "elementsId", "");
+                this.$set(row, "elementsId", 0);
                 this.$set(row, "elementsCnName", "");
                 this.$set(row, "elementsCode", "");
                 this.$set(row, "elementsEnName", "");
@@ -3054,7 +3054,7 @@ export default {
         }
       } else if (name == "elementsCnName") {
         if (!value) {
-          this.$set(row, "elementsId", "");
+          this.$set(row, "elementsId", 0);
           this.$set(row, "elementsCnName", "");
           this.$set(row, "elementsCode", "");
           this.$set(row, "elementsEnName", "");

+ 7 - 1
src/views/iosBasicData/SeafreightExportF/bills/assembly/formbottom.vue

@@ -602,7 +602,7 @@ export default {
             let numberOfArr = ['Obl', 'Copy']
             if (name == 'cy') {
                 if (!value) {
-                    this.$set(this.assemblyForm, 'cyId', '')
+                    this.$set(this.assemblyForm, 'cyId', 0)
                     this.$set(this.assemblyForm, 'cyCode', '')
                     this.$set(this.assemblyForm, 'cyCnName', '')
                     this.$set(this.assemblyForm, 'cyEnName', '')
@@ -669,12 +669,18 @@ export default {
             }
             // 签单地点
             else if (name == 'issueAt') {
+                let found = false
                 for (let item of this.issueAtData) {
                     if (item.enName == value) {
                         this.$set(this.assemblyForm, 'issueAt', item.enName)
                         this.$set(this.assemblyForm, 'issueAtId', item.id)
+                        found = true
                     }
                 }
+                if (found == false) {
+                  this.$set(this.assemblyForm, 'issueAt', '')
+                  this.$set(this.assemblyForm, 'issueAtId', 0)
+                }
             }
             else {
                 this.assemblyForm[name] = value ? value : ''

+ 35 - 0
src/views/iosBasicData/SeafreightExportF/bills/assembly/mbinformation.vue

@@ -187,6 +187,7 @@
                         <el-form-item label="" prop="mshipperDetails">
                             <el-input type="textarea" style="width: 100%;" v-model="assemblyForm.detail.mshipperDetails"
                                 size="small" autocomplete="off" :disabled="detailData.seeDisabled" rows="4" clearable
+                                wrap="off"
                                 placeholder="MB/L 发货人" @change="textareaBlur('mshipperDetails')"></el-input>
                         </el-form-item>
                     </div>
@@ -209,6 +210,7 @@
                             <el-input type="textarea" style="width: 100%;"
                                 v-model="assemblyForm.detail.mconsigneeDetails" size="small" autocomplete="off"
                                 :disabled="detailData.seeDisabled" rows="4" clearable placeholder="MB/L 收货人"
+                                      wrap="off"
                                 @change="textareaBlur('mconsigneeDetails')"></el-input>
                         </el-form-item>
                     </div>
@@ -229,6 +231,7 @@
                         <el-form-item label="" prop="mnotifyDetails">
                             <el-input type="textarea" style="width: 100%;" v-model="assemblyForm.detail.mnotifyDetails"
                                 size="small" autocomplete="off" :disabled="detailData.seeDisabled" rows="4" clearable
+                                      wrap="off"
                                 placeholder="MB/L 通知人" @change="textareaBlur('mnotifyDetails')"></el-input>
                         </el-form-item>
                     </div>
@@ -242,6 +245,7 @@
                             :filterable="true" :clearable="true" :remote="true" :disabled="detailData.seeDisabled"
                             :buttonIf="false" :forParameter="{ key: 'id', label: 'cnName', value: 'cnName' }"
                             placeholder="请选择第二通知人" @remoteMethod="remoteMethod($event, 'mnotify2')"
+                                      wrap="off"
                             @corpChange="corpChange($event, 'mnotify2')" @corpFocus="remoteMethod($event, 'mnotify2')">
                         </search-query>
                     </el-form-item>
@@ -388,14 +392,21 @@ export default {
         // 下拉的监听事件
         corpChange(value, name) {
             let arr = ['mshipper', 'mconsignee', 'mnotify', 'mnotify2']
+            let found = false
             if (name == 'vessel') {
                 for (let item of this[name + 'Data']) {
                     if (item.cnName == value) {
                         this.$set(this.assemblyForm, 'vesselId', item.id)
                         this.$set(this.assemblyForm, 'vesselCnName', item.cnName)
                         this.$set(this.assemblyForm, 'vesselEnName', item.enName)
+                      found=true
                     }
                 }
+                if(!found){
+                  this.$set(this.assemblyForm, 'vesselId', 0)
+                  this.$set(this.assemblyForm, 'vesselCnName', '')
+                  this.$set(this.assemblyForm, 'vesselEnName', '')
+                }
             }
             else if (name == 'carrier') {
                 for (let item of this[name + 'Data']) {
@@ -405,8 +416,16 @@ export default {
                         this.$set(this.assemblyForm, 'carrierCnName', item.cnName)
                         this.$set(this.assemblyForm, 'carrierEnName', item.enName)
                         this.$set(this.assemblyForm, 'carrierArgreementNo', item.agreementNo)
+                      found=true
                     }
                 }
+              if(!found){
+                this.$set(this.assemblyForm, 'carrierId', 0)
+                this.$set(this.assemblyForm, 'carrierShortName', '')
+                this.$set(this.assemblyForm, 'carrierCnName', '')
+                this.$set(this.assemblyForm, 'carrierEnName', '')
+                this.$set(this.assemblyForm, 'carrierArgreementNo', '')
+              }
             }
             // 订舱代理
             else if (name == 'bookingAgent') {
@@ -416,8 +435,14 @@ export default {
                         this.$set(this.assemblyForm, 'bookingAgentCnName', item.cnName)
                         this.$set(this.assemblyForm, 'bookingAgentEnName', item.enName)
                         this.$set(this.assemblyForm, 'bookingRemarks', item.remarks)
+                      found=true
                     }
                 }
+              if(!found){
+                this.$set(this.assemblyForm, 'bookingAgentId', 0)
+                this.$set(this.assemblyForm, 'bookingAgentCnName', '')
+                this.$set(this.assemblyForm, 'bookingAgentEnName', '')
+              }
             }
             // 航线
             else if (name == 'line') {
@@ -426,8 +451,14 @@ export default {
                         this.$set(this.assemblyForm, 'lineId', item.id)
                         this.$set(this.assemblyForm, 'lineCnName', item.cnName)
                         this.$set(this.assemblyForm, 'lineEnName', item.enName)
+                      found=true
                     }
                 }
+              if(!found){
+                this.$set(this.assemblyForm, 'lineId', 0)
+                this.$set(this.assemblyForm, 'lineCnName', '')
+                this.$set(this.assemblyForm, 'lineEnName', '')
+              }
             }
             // 四个主表
             else if (arr.indexOf(name) != -1) {
@@ -455,8 +486,12 @@ export default {
                             if (s) details += `${s}\r\n`
                         }
                         this.$set(this.assemblyForm.detail, name + 'Details', details.trim())
+                      found=true
                     }
                 }
+              if(!found){
+
+              }
             }
             else { }
         },

+ 164 - 84
src/views/iosBasicData/SeafreightExportF/bills/billsDetails.vue

@@ -349,7 +349,7 @@
                   <reports :id="form.id" :assemblyForm="form" :disabled="detailData.seeDisabled || showLock" businessValue="HYCK"></reports>
                 </el-tab-pane>
                 <el-tab-pane label="EDI 及其他" name="sixth">
-                  <edicode :assemblyForm="form" :detailData="detailData" :disabled="showLock"> </edicode>
+                  <edicode :assemblyForm="form" :detailData="detailData" :disabled="detailData.seeDisabled || showLock"> </edicode>
                 </el-tab-pane>
                 <el-tab-pane label="文件中心" name="seventh">
                   <filescenter
@@ -472,18 +472,25 @@
     >
       <span>该 EDI 已经发送过,本次发送将以更改的功能发送,您可以选择合适的功能!</span>
       <div class="avue-dialog__footer">
-        <el-button @click="sendEdiFilesFunction('update')" type="primary">以更改功能发送</el-button>
-        <el-button @click="sendEdiFilesFunction('add')" type="primary">以原始功能发送</el-button>
-        <el-button @click="ediFilesFunction = false">取消发送</el-button>
+        <el-button type="success" size="small" @click="sendEdiFilesFunction('update')">以更改功能发送</el-button>
+        <el-button type="warning" size="small" @click="sendEdiFilesFunction('add')">以原始功能发送</el-button>
+        <el-button type="primary" size="small" style="margin-left: 3em" @click="ediFilesFunction = false">取消发送</el-button>
       </div>
     </el-dialog>
 
-    <el-dialog title="请选择 EDI 文件功能" append-to-body v-dialogDrag :visible.sync="ediDontSend" class="avue-dialog avue-dialog--top" width="40%">
-      <span>请选择本次 EDI 生成后是否发送</span>
+    <el-dialog
+      title="请选择 EDI 发送方式"
+      append-to-body
+      v-dialogDrag
+      :visible.sync="ediSendingToRemote"
+      class="avue-dialog avue-dialog--top"
+      width="420px"
+    >
+      <span>本次 EDI 是否只生成,不实际发送?</span>
       <div class="avue-dialog__footer">
-        <el-button @click="sendEdiToRemote(true)">生成后发送</el-button>
-        <el-button @click="sendEdiToRemote(false)">只生成不发送</el-button>
-        <el-button @click="ediDontSend = false">取消发送</el-button>
+        <el-button type="success" size="small" @click="sendingToRemoteFunction(0)">只生成,不发送</el-button>
+        <el-button type="warning" size="small" @click="sendingToRemoteFunction(1)">生成并发送</el-button>
+        <el-button type="primary" size="small" style="margin-left: 3em" @click="ediSendingToRemote = false">取消</el-button>
       </div>
     </el-dialog>
 
@@ -628,9 +635,11 @@ export default {
       saveLoading: false,
       copyFormData: {}, // 详情的备份数据
       // EDI
+      ediSendingToRemote: false,
+      ediSendingToRemoteRow: {},
+
       ediFilesFunction: false,
       ediTypeRow: {},
-      ediDontSend: false, // EDI 只生成,不发送
       ediShowProgress: false, // EDI 发送进度条
       // SFT
       sftVerifyData: {},
@@ -1174,8 +1183,9 @@ export default {
     // console.log("created", "form", this.form)
   },
   methods: {
-    lastPage() {
-      this.editCustomer();
+    async lastPage() {
+      let ret = await this.editCustomer("goto");
+      if(!ret) return ;
 
       if (this.pageIds.length) {
         const index = this.pageIds.indexOf(this.form.id);
@@ -1195,8 +1205,10 @@ export default {
         this.billsDetailfun(this.pageIds[lastIndex]);
       }
     },
-    nextPage() {
-      this.editCustomer();
+    async nextPage() {
+      // if(!this.editCustomer("goto")) return ;
+      let ret = await this.editCustomer("goto");
+      if(!ret) return ;
 
       if (this.pageIds.length) {
         const index = this.pageIds.indexOf(this.form.id);
@@ -1289,28 +1301,20 @@ export default {
         changed: false,
         main: false,
         containersList: false,
+        c1: !this.form.id,
+        c2: contrastObj(this.form, this.oldForm),
+        c3: contrastObj(this.form.hmmEdi, this.oldForm.hmmEdi),
+        c4: contrastObj(this.form.preContainersList, this.oldForm.preContainersList),
+        c5: contrastList(this.form.containersList, this.oldForm.containersList),
+        c6: contrastList(this.form.feeCenterListC, this.oldForm.feeCenterListC),
+        c7: contrastList(this.form.feeCenterListD, this.oldForm.feeCenterListD),
+        c8: contrastList(this.form.filesList, this.oldForm.filesList),
+        c9: contrastList(this.form.waitingBoxList, this.oldForm.waitingBoxList),
+
+        c10: contrastObj(this.form.detail, this.oldForm.detail),
       };
       changed.changed =
-        !this.form.id ||
-        contrastObj(this.form, this.oldForm) ||
-        contrastObj(this.form.hmmEdi, this.oldForm.hmmEdi) ||
-        contrastObj(this.form.detail, this.oldForm.detail) ||
-        contrastList(this.form.preContainersList, this.oldForm.preContainersList) ||
-        contrastList(this.form.containersList, this.oldForm.containersList) ||
-        contrastList(this.form.feeCenterListC, this.oldForm.feeCenterListC) ||
-        contrastList(this.form.feeCenterListD, this.oldForm.feeCenterListD) ||
-        contrastList(this.form.filesList, this.oldForm.filesList) ||
-        contrastList(this.form.waitingBoxList, this.oldForm.waitingBoxList);
-
-      changed.c1 = !this.form.id;
-      changed.c2 = contrastObj(this.form, this.oldForm);
-      changed.c3 = contrastObj(this.form.hmmEdi, this.oldForm.hmmEdi);
-      changed.c4 = contrastObj(this.form.preContainersList, this.oldForm.preContainersList);
-      changed.c5 = contrastList(this.form.containersList, this.oldForm.containersList);
-      changed.c6 = contrastList(this.form.feeCenterListC, this.oldForm.feeCenterListC);
-      changed.c7 = contrastList(this.form.feeCenterListD, this.oldForm.feeCenterListD);
-      changed.c8 = contrastList(this.form.filesList, this.oldForm.filesList);
-      changed.c9 = contrastList(this.form.waitingBoxList, this.oldForm.waitingBoxList);
+        changed.c1 || changed.c2 || changed.c3 || changed.c4 || changed.c5 || changed.c6 || changed.c7 || changed.c8 || changed.c9 || changed.c10;
 
       if (changed.changed) {
         if (
@@ -1332,6 +1336,10 @@ export default {
         }
       }
 
+      console.log(changed);
+      console.log(this.form.hmmEdi);
+      console.log(this.oldForm.hmmEdi);
+
       return changed;
     },
     addEdit() {
@@ -1453,14 +1461,14 @@ export default {
           return;
         }
       }
-      this.form.detail.hshipperDetails = this.getTextTirim(this.form.detail.hshipperDetails);
-      this.form.detail.hconsigneeDetails = this.getTextTirim(this.form.detail.hconsigneeDetails);
-      this.form.detail.hnotifyDetails = this.getTextTirim(this.form.detail.hnotifyDetails);
-      this.form.detail.marks = this.getTextTirim(this.form.detail.marks);
-      this.form.detail.commodityDescr = this.getTextTirim(this.form.detail.commodityDescr);
-      this.form.detail.mmarks = this.getTextTirim(this.form.detail.mmarks);
-      this.form.detail.mcommodityDescr = this.getTextTirim(this.form.detail.mcommodityDescr);
-      this.form.forwarding = this.getTextTirim(this.form.forwarding);
+      this.form.detail.hshipperDetails = this.getTextTrim(this.form.detail.hshipperDetails);
+      this.form.detail.hconsigneeDetails = this.getTextTrim(this.form.detail.hconsigneeDetails);
+      this.form.detail.hnotifyDetails = this.getTextTrim(this.form.detail.hnotifyDetails);
+      this.form.detail.marks = this.getTextTrim(this.form.detail.marks);
+      this.form.detail.commodityDescr = this.getTextTrim(this.form.detail.commodityDescr);
+      this.form.detail.mmarks = this.getTextTrim(this.form.detail.mmarks);
+      this.form.detail.mcommodityDescr = this.getTextTrim(this.form.detail.mcommodityDescr);
+      this.form.forwarding = this.getTextTrim(this.form.forwarding);
       // 赋值 ETD 日期
       this.form.billDate = this.form.etd ? this.form.etd.slice(0, 10) + " 00:00:00" : null; // 单据日期
       // 调用保存接口
@@ -1683,7 +1691,31 @@ export default {
           });
       });
     },
-    sendEdiToRemote(send) {},
+
+    async editypesSendingEdifun(row) {
+      let ret = await this.editCustomer("goto");
+      if(!ret) return ;
+
+      let sendToRemote = 1;
+
+      let roleName = localStorage.getItem("roleName").split(",");
+      if (roleName.indexOf("admin") !== -1) {
+        // if (confirm("本次 EDI 是否只生成,不发送?")) {
+        //   sendToRemote = 0;
+        //}
+
+        this.ediSendingToRemoteRow = row;
+        this.ediSendingToRemote = true;
+      } else {
+        await this.doSendEdi(row, sendToRemote);
+      }
+    },
+
+    sendingToRemoteFunction(sendToRemote) {
+      this.ediSendingToRemote = false;
+      this.doSendEdi(this.ediSendingToRemoteRow, sendToRemote);
+    },
+
     // 发送edi
     sendEdiFilesFunction(func) {
       this.ediFilesFunction = false;
@@ -1716,7 +1748,7 @@ export default {
           this.ediShowProgress = false;
         });
     },
-    async editypesSendingEdifun(row) {
+    async doSendEdi(row, sendToRemote) {
       row.billId = this.form.id;
       let msgsList = [];
       if (checkFullWidthSymbols(this.form.detail.hshipperDetails).hasFullWidth) {
@@ -1902,12 +1934,12 @@ export default {
       this.$set(this.ediTypeRow, "progressText", `正在发送 ${row.cnName},MblNo:${this.form.mblno},Booking No:${this.form.bookingNo},请稍候...`);
       this.ediShowProgress = true;
 
-      row.sendToRemote = 1;
-      if (this.roleName.indexOf("admin") !== -1) {
-        if (confirm("本次 EDI 是否只生成,不发送?")) {
-          row.sendToRemote = 0;
-        }
-      }
+      row.sendToRemote = sendToRemote;
+      // if (this.roleName.indexOf("admin") !== -1) {
+      //   if (confirm("本次 EDI 是否只生成,不发送?")) {
+      //     row.sendToRemote = 0;
+      //   }
+      // }
 
       let bfEdi = await beforeSendingEdi(row);
       if (!bfEdi.data.success) {
@@ -2343,7 +2375,7 @@ export default {
           }
           // 清空 客户OP
           // this.form.corpAttnName = ''
-          this.form.corpAttnId = "";
+          this.form.corpAttnId = 0;
           this.$set(this.form, "corpAttnTel", "");
           this.$set(this.form, "corpAttnEmail", "");
           // 清空 业务来源和来源详情
@@ -2416,7 +2448,7 @@ export default {
           // this.columnforfun('srcCnName').disabled = true
           return;
         }
-        this.$set(this.form, "srcId", "");
+        this.$set(this.form, "srcId", 0);
         this.$set(this.form, "srcCnName", "");
         this.$set(this.form, "srcEnName", "");
         this.form[name] = value;
@@ -2508,7 +2540,7 @@ export default {
             // this.$set(this.form, 'mpayplace', 'DESTINATION')
             if (value == "CC") {
               this.$set(this.form, "hpayplace", "DESTINATION");
-            }else{
+            } else {
               this.$set(this.form, "hpayplace", this.form.podEnName ? this.form.podEnName : "");
             }
           } else {
@@ -2881,7 +2913,7 @@ export default {
       this.detailData.seeDisabled = false;
     },
     //去除文本框的空格
-    getTextTirim(data) {
+    getTextTrim(data) {
       if (data) {
         let obj = data.split("\n");
         let res = [];
@@ -2905,7 +2937,7 @@ export default {
           callback();
         }
 
-        if (status == "goBack") {
+        if (status === "goBack") {
           if (this.form.id) {
             this.unLock({
               moduleName: "SE",
@@ -2917,33 +2949,39 @@ export default {
           this.$emit("goBack");
         }
 
-        if (status == "toAddEdit") {
+        if (status === "toAddEdit") {
           this.$emit(status);
         }
 
-        if (status == "user-save") {
+        if (status === "user-save") {
           this.$message.success("未更改,无需保存!");
         }
 
-        return;
+        return true;
         // 未更改,无需保存
       }
 
-      await this.$refs.form.validate(async (valid) => {
+      let ret = false;
+      // await this.$refs.form.validate(async (valid) => {
         // 没有校验项
-        valid = true;
+        let valid = true;
         if (valid) {
           if (!changed.main && changed.containersList) {
             await containersSubmitList(this.form.containersList);
-            this.billsDetailfun(this.form.id);
-            return;
+            if (status !== "goto") {
+              await this.billsDetailfun(this.form.id);
+            }
+            ret = true;
+            console.log("set ret", ret)
+            return true;
           }
 
           if (this.business == 1) {
             for (let item of this.columnforfun("accDeptName").dicData) {
               if (this.form.accDeptName == item.title) {
                 if (item.hasChildren) {
-                  return this.$message.error("请选择末级部门");
+                  this.$message.error("请选择末级部门");
+                  return false;
                 }
               }
             }
@@ -2973,11 +3011,11 @@ export default {
           for (let item of this.form.preContainersList) {
             if (!item.cntrTypeCode) {
               this.$message.warning("请选择尺码箱型");
-              return;
+              return false;
             }
             if (!item.quantity) {
               this.$message.warning("请输入箱量");
-              return;
+              return false;
             }
           }
           for (let item of this.form.feeCenterListD) {
@@ -3030,7 +3068,7 @@ export default {
               cancelButtonText: "取消",
               type: "warning",
             });
-            return;
+            return false;
           }
           if (this.verifySymbolStatus == 1) {
             /*
@@ -3231,7 +3269,7 @@ export default {
                 message: `${msgsList.join("<br/><br/>")}`,
                 type: "error",
               });
-              return;
+              return false;
             }
 
             msgsList = [];
@@ -3271,17 +3309,17 @@ export default {
             if (msgsList.length > 0) {
               // this.$message.error(`请正确输入${msgsList.join(",")}的英文`);
               this.$message.error(`${msgsList.join(",")}存在非英文字符,如汉字等,请修正后再保存!`);
-              return;
+              return false;
             }
           }
-          this.form.detail.hshipperDetails = this.getTextTirim(this.form.detail.hshipperDetails);
-          this.form.detail.hconsigneeDetails = this.getTextTirim(this.form.detail.hconsigneeDetails);
-          this.form.detail.hnotifyDetails = this.getTextTirim(this.form.detail.hnotifyDetails);
-          this.form.detail.marks = this.getTextTirim(this.form.detail.marks);
-          this.form.detail.commodityDescr = this.getTextTirim(this.form.detail.commodityDescr);
-          this.form.detail.mmarks = this.getTextTirim(this.form.detail.mmarks);
-          this.form.detail.mcommodityDescr = this.getTextTirim(this.form.detail.mcommodityDescr);
-          this.form.forwarding = this.getTextTirim(this.form.forwarding);
+          this.form.detail.hshipperDetails = this.getTextTrim(this.form.detail.hshipperDetails);
+          this.form.detail.hconsigneeDetails = this.getTextTrim(this.form.detail.hconsigneeDetails);
+          this.form.detail.hnotifyDetails = this.getTextTrim(this.form.detail.hnotifyDetails);
+          this.form.detail.marks = this.getTextTrim(this.form.detail.marks);
+          this.form.detail.commodityDescr = this.getTextTrim(this.form.detail.commodityDescr);
+          this.form.detail.mmarks = this.getTextTrim(this.form.detail.mmarks);
+          this.form.detail.mcommodityDescr = this.getTextTrim(this.form.detail.mcommodityDescr);
+          this.form.forwarding = this.getTextTrim(this.form.forwarding);
           // 赋值 ETD 日期
           this.form.billDate = this.form.etd ? this.form.etd.slice(0, 10) + " 00:00:00" : null; // 单据日期
           // 调用保存接口
@@ -3310,7 +3348,7 @@ export default {
                   cancelButtonText: "取消",
                   type: "warning",
                 }).then(async () => {
-                  this.billsSubmitfun(status, undefined, callback);
+                  await this.billsSubmitfun(status, undefined, callback);
                 });
               }
               // 3 用户选择保存,收发通校验
@@ -3358,14 +3396,24 @@ export default {
                 });
                 */
               }
+              ret = true;
+              return true;
             });
           } else {
             await this.billsSubmitfun(status, undefined, callback);
+
+            ret = true;
+            console.log("set ret", ret)
+            return true;
           }
         } else {
           console.log("this.editCustomer not valid");
+          return false;
         }
-      });
+      // });
+
+      console.log("ret 1", ret)
+      return ret;
     },
     // 主表保存接口大保存
     async billsSubmitfun(status, bill, callback) {
@@ -3535,11 +3583,13 @@ export default {
           }
 
           if (res.data.code === 601) {
-            this.billsDetailfun(this.form.id, undefined, callback);
-            this.$message({
-              type: "error",
-              message: res.data.msg,
-            });
+            if (status !== "goto") {
+              await this.billsDetailfun(this.form.id, undefined, callback);
+              this.$message({
+                type: "error",
+                message: res.data.msg,
+              });
+            }
             return true;
           }
           if (typeof callback !== "function") {
@@ -3560,7 +3610,9 @@ export default {
             this.$emit("goBack");
           }
           // this.detailData.seeDisabled = true
-          this.billsDetailfun(res.data.data.id, status, callback);
+          if (status !== "goto") {
+            await this.billsDetailfun(res.data.data.id, status, callback);
+          }
         })
         .catch((err) => {
           this.pageLoading = false;
@@ -3780,6 +3832,32 @@ export default {
       // this.form = res.data.data;
       this.$set(this, "form", res.data.data);
 
+      if (this.form.hmmEdi) {
+        if (!this.form.hmmEdi.emsDeclarationIdentification) {
+          this.form.hmmEdi.emsDeclarationIdentification = "B";
+        }
+        let es = this.form.hmmEdi.europeanLineSign == undefined ? 0 : this.form.hmmEdi.europeanLineSign;
+        if (es == 1 || es == "1") {
+          this.form.hmmEdi.europeanLineSign = 1;
+        } else {
+          this.form.hmmEdi.europeanLineSign = 0;
+        }
+        if (!this.form.hmmEdi.manifestType) {
+          this.form.hmmEdi.manifestType = "S";
+        }
+        if (!this.form.hmmEdi.chemicalIdentification) {
+          this.form.hmmEdi.chemicalIdentification = "N";
+        }
+
+        if (!this.form.hmmEdi.ensFillingFlag) {
+          this.form.hmmEdi.ensFillingFlag = "NONE";
+        }
+
+        if (!this.form.hmmEdi.ics2FillingFlag) {
+          this.form.hmmEdi.ics2FillingFlag = "NONE";
+        }
+      }
+
       console.log(this.form);
 
       // 如果已经请核就禁用按钮
@@ -3926,6 +4004,8 @@ export default {
         });
       }
 
+      console.log("detailData.seeDisabled", this.detailData.seeDisabled, "showLock", this.showLock);
+
       if (typeof callback === "function") {
         console.log("do callback", callback);
         callback();

+ 54 - 12
src/views/iosBasicData/SeafreightExportF/bills/index.vue

@@ -25,6 +25,7 @@
         @on-load="onLoad"
         @expand-change="expandChange"
         :row-style="rowStyle"
+        :cell-style="cellStyle"
         @resetColumn="resetColumn('crud', 'option', 'optionBack', 309)"
         @saveColumn="saveColumn('crud', 'option', 'optionBack', 309)"
       >
@@ -377,6 +378,22 @@
     <copy-fee ref="copyFee"></copy-fee>
 
     <el-dialog
+      title="请选择 EDI 发送方式"
+      append-to-body
+      v-dialogDrag
+      :visible.sync="ediSendingToRemote"
+      class="avue-dialog avue-dialog--top"
+      width="420px"
+    >
+      <span>本次 EDI 是否只生成,不实际发送?</span>
+      <div class="avue-dialog__footer">
+        <el-button type="success" size="small" @click="sendingToRemoteFunction(0)">只生成,不发送</el-button>
+        <el-button type="warning" size="small" @click="sendingToRemoteFunction(1)">生成并发送</el-button>
+        <el-button type="primary" size="small" style="margin-left: 3em;" @click="ediSendingToRemote = false">取消</el-button>
+      </div>
+    </el-dialog>
+
+    <el-dialog
       title="请选择 EDI 文件功能"
       append-to-body
       v-dialogDrag
@@ -386,9 +403,9 @@
     >
       <span>该 EDI 已经发送过,本次发送将以更改的功能发送,您可以选择合适的功能!</span>
       <div class="avue-dialog__footer">
-        <el-button @click="sendEdiFilesFunction('add')">以更改功能发送</el-button>
-        <el-button @click="sendEdiFilesFunction('update')">以原始功能发送</el-button>
-        <el-button @click="ediFilesFunction = false">取消</el-button>
+        <el-button type="success" size="small" @click="sendEdiFilesFunction('add')">以更改功能发送</el-button>
+        <el-button type="warning" size="small" @click="sendEdiFilesFunction('update')">以原始功能发送</el-button>
+        <el-button type="primary" size="small" style="margin-left: 3em;" @click="ediFilesFunction = false">取消</el-button>
       </div>
     </el-dialog>
 
@@ -498,6 +515,8 @@ export default {
       createDeptData: [], // 部门数据
       auditStatusList: [],
       //EDI
+      ediSendingToRemote: false,
+      ediSendingToRemoteRow: {},
       ediFilesFunction: false,
       ediTypeRow: {},
       ediShowProgress: false, // EDI 发送进度条
@@ -559,14 +578,14 @@ export default {
       // 下拉的加载
       SplitLoading: false,
       page: {
-        pageSize: 10,
+        pageSize: 30,
         currentPage: 1,
         total: 0,
         // pageSizes: [10, 20, 50, 100, 200, 'ALL'],
       },
       // 弹窗分页
       mawbPage: {
-        pageSize: 10,
+        pageSize: 30,
         currentPage: 1,
         total: 0
       },
@@ -1997,6 +2016,7 @@ export default {
           // color: '#fff',
           // backgroundColor: "#fbd26a"
           height: "24px",
+          "line-height": "24px",
           color: "#e8ab11"
         };
       }
@@ -2005,6 +2025,7 @@ export default {
           // color: '#fff',
           // backgroundColor: "#fbd26a"
           height: "24px",
+          "line-height": "24px",
           color: "#03cbf9"
         };
       }
@@ -2013,6 +2034,7 @@ export default {
           // color: '#fff',
           // backgroundColor: "#ced094"
           height: "24px",
+          "line-height": "24px",
           color: "green"
         };
       }
@@ -2021,13 +2043,18 @@ export default {
           // color: '#fff',
           // backgroundColor: "#fbc4c4"
           height: "24px",
+          "line-height": "24px",
           color: "red"
         };
       }
       return {
-        height: "24px"
+        height: "24px",
+        "line-height": "24px",
       };
     },
+    cellStyle() {
+      return "padding:0;height:24px;";
+    },
     //导出
     outExport() {
       this.$confirm("是否导出当前所有数据?", "提示", {
@@ -2081,17 +2108,32 @@ export default {
           this.ediShowProgress = false;
         });
     },
+
     async editypesSendingEdifun(row) {
-      row.billId = this.ids;
-      row.sendToRemote = 1;
-      row.filesFunction = "";
+      let sendToRemote = 1
 
       let roleName = localStorage.getItem("roleName").split(",");
       if (roleName.indexOf("admin") !== -1) {
-        if (confirm("本次 EDI 是否只生成,不发送?")) {
-          row.sendToRemote = 0;
-        }
+        // if (confirm("本次 EDI 是否只生成,不发送?")) {
+        //   sendToRemote = 0;
+        //}
+
+        this.ediSendingToRemoteRow = row;
+        this.ediSendingToRemote=true
+      }else{
+        await this.doSendEdi(row, sendToRemote)
       }
+    },
+
+    sendingToRemoteFunction (sendToRemote){
+      this.ediSendingToRemote=false
+      this.doSendEdi(this.ediSendingToRemoteRow, sendToRemote)
+    },
+
+    async doSendEdi(row, sendToRemote) {
+      row.billId = this.ids;
+      row.sendToRemote = sendToRemote;
+      row.filesFunction = "";
 
       this.ediTypeRow = row;
       this.$set(this.ediTypeRow, "progressText", `正在发送 ${row.cnName},请稍候...`);

+ 7 - 7
src/views/iosBasicData/accounts/assembly/accountsDialog.vue

@@ -88,12 +88,12 @@
             </el-form-item>
           </el-col>
         </el-row>
-        <el-col :span="24">
-          <el-form-item label="辅助核算:">
-            <el-checkbox size="medium" :true-label="1" :false-label="0" v-model="form.isItem">项目</el-checkbox>
-            <el-checkbox size="medium" :true-label="1" :false-label="0" v-model="form.isCorp">客户</el-checkbox>
-            <el-checkbox size="medium" :true-label="1" :false-label="0" v-model="form.isDept">部门</el-checkbox>
-            <el-checkbox size="medium" :true-label="1" :false-label="0" v-model="form.isEmpl">职员</el-checkbox>
+        <el-col :span="24" >
+          <el-form-item label="辅助核算:" >
+            <el-checkbox size="medium" :true-label="1" :false-label="0" v-model="form.isItem" :disabled="!isDetail">项目</el-checkbox>
+            <el-checkbox size="medium" :true-label="1" :false-label="0" v-model="form.isCorp" :disabled="!isDetail">客户</el-checkbox>
+            <el-checkbox size="medium" :true-label="1" :false-label="0" v-model="form.isDept" :disabled="!isDetail">部门</el-checkbox>
+            <el-checkbox size="medium" :true-label="1" :false-label="0" v-model="form.isEmpl" :disabled="!isDetail">职员</el-checkbox>
             <!--<el-checkbox size="medium" :true-label="1" :false-label="0" v-model="form.isStock">库存</el-checkbox>-->
             <el-checkbox size="medium" :true-label="1" :false-label="0" v-model="form.isManual" style="margin-left: 50px"
               >允许手工凭证使用</el-checkbox
@@ -103,7 +103,7 @@
           </el-form-item>
         </el-col>
 
-        <el-row :gutter="20" v-if="form.isItem == 1">
+        <el-row :gutter="20" v-if="form.isItem == 1 && isDetail">
           <el-col :span="12">
             <el-form-item label="项目大类:" prop="itemClassifyId">
               <search-query