Jelajahi Sumber

货代10.20

caojunjie 1 tahun lalu
induk
melakukan
fe40253f9b

+ 42 - 0
src/api/iosBasicData/feecenter.js

@@ -0,0 +1,42 @@
+import request from '@/router/axios';
+
+export const feecenterList = (current, size, params) => {
+  return request({
+    url: '/api/blade-los/feecenter/list',
+    method: 'get',
+    params: {
+      ...params,
+      current,
+      size,
+    }
+  })
+}
+
+export const feecenterDetail = (id) => {
+  return request({
+    url: '/api/blade-los/feecenter/detail',
+    method: 'get',
+    params: {
+      id
+    }
+  })
+}
+// 详情
+export const feecenterRemove = (ids) => {
+  return request({
+    url: '/api/blade-los/feecenter/remove',
+    method: 'post',
+    params: {
+      ids,
+    }
+  })
+}
+
+export const feecenterSubmit = (row) => {
+  return request({
+    url: '/api/blade-los/feecenter/submit',
+    method: 'post',
+    data: row
+  })
+}
+

+ 369 - 83
src/views/iosBasicData/SeafreightExportF/bills/assembly/EntrustmentLnformation.vue

@@ -56,7 +56,7 @@
                                     <el-input type="age" style="width: 100%;" v-model="assemblyForm.hConsigneeCntyName"
                                               size="small" autocomplete="off"
                                               :disabled="detailData.seeDisabled"
-                                              clearable placeholder="国家" ></el-input>
+                                              clearable placeholder="收货人提单描述" ></el-input>
                                 </el-col>
                             </div>
                         </el-form-item>
@@ -89,7 +89,7 @@
                                             <el-input type="age" style="width: 100%;" v-model="assemblyForm.hNotifyCntyName"
                                                       size="small" autocomplete="off"
                                                       :disabled="detailData.seeDisabled"
-                                                      clearable placeholder="国家" ></el-input>
+                                                      clearable placeholder="通知人提单描述" ></el-input>
                                         </div>
                                         <div style="flex: 1;margin-left: 10px">
                                             <div class="addbuttonClass" @click="hNotifyClick">+</div>
@@ -108,7 +108,6 @@
                         </div>
                     </el-row>
                 </el-col>
-
                 <el-col span="8">
                     <el-row>
                         <div>
@@ -121,44 +120,63 @@
                                       clearable placeholder="备注唛头" ></el-input>
                         </div>
                         <div style="margin-top: 10px">
-                            <el-form-item label="HS CODE" prop="mShipperCnName" >
+                            <el-form-item label="HS CODE" prop="commodityCnName" >
                                 <el-col :span="16">
-                                    <el-input type="age" style="width: 100%;" v-model="assemblyForm.mShipperCnName"
-                                              size="small" autocomplete="off"
-                                              :disabled="detailData.seeDisabled"
-                                              clearable placeholder="请选择HS CODE" ></el-input>
+                                    <search-query :datalist="commodityData"
+                                                  :selectValue="assemblyForm.commodityCnName"
+                                                  :filterable="true"
+                                                  :clearable="true"
+                                                  :remote="true"
+                                                  :disabled="detailData.seeDisabled"
+                                                  :buttonIf="false"
+                                                  :forParameter="{key:'id',label:'cnName',value:'cnName'}"
+                                                  @remoteMethod="remoteMethod($event,'commodity')"
+                                                  @corpChange="corpChange($event,'commodity')" >
+                                    </search-query>
                                 </el-col>
                                 <el-col :span="7">
                                     <span style="padding-left: 20px"></span>
-                                    <el-input type="age" style="width: 100%;" v-model="assemblyForm.mShipperCnName"
+                                    <el-input type="age" style="width: 100%;" v-model="assemblyForm.hscode"
                                               size="small" autocomplete="off"
                                               :disabled="detailData.seeDisabled"
-                                              clearable placeholder="通知人" ></el-input>
+                                              clearable placeholder="商品 HS-CODE" ></el-input>
                                 </el-col>
                             </el-form-item>
                         </div>
                         <div>
-                            <el-input type="age" style="width: 100%;" v-model="assemblyForm.mShipperCnName"
+                            <el-input type="age" style="width: 100%;" v-model="assemblyForm.commodityEnName"
                                       size="small" autocomplete="off"
                                       :disabled="detailData.seeDisabled"
-                                      clearable placeholder="请选择HS CODE" ></el-input>
+                                      clearable placeholder="商品简称" ></el-input>
                         </div>
                         <div style="margin-top: 10px">
-                            <el-form-item label="货物描述" prop="mShipperCnName" >
-                                <el-col :span="16">
-                                    <el-checkbox size="medium" v-model="checked">危险品</el-checkbox>
+                            <el-form-item label="货物描述" prop="cargoType" >
+                                <el-col :span="14">
+                                    <search-query :datalist="cargoTypeData"
+                                                  :selectValue="assemblyForm.cargoType"
+                                                  :filterable="true"
+                                                  :clearable="true"
+                                                  :remote="true"
+                                                  :disabled="detailData.seeDisabled"
+                                                  :buttonIf="false"
+                                                  @remoteMethod="remoteMethod($event,'cargoType')"
+                                                  @corpChange="corpChange($event,'cargoType')" >
+                                    </search-query>
+                                </el-col>
+                                <el-col :span="5">
+                                    <span style="margin-left: 10px"></span>
                                     <el-checkbox size="medium" :true-label="1" :false-label="0" v-model="assemblyForm.isLargeCargo">大件货</el-checkbox>
                                 </el-col>
-                                <el-col :span="8">
-                                    <el-button size="small">详细内容</el-button>
+                                <el-col :span="5">
+                                    <el-button size="small" @click="DangerousGoodsAdd">详细内容</el-button>
                                 </el-col>
                             </el-form-item>
                         </div>
                         <div>
-                            <el-input type="textarea" style="width: 100%;" v-model="assemblyForm.mShipperCnName"
+                            <el-input type="textarea" style="width: 100%;" v-model="assemblyForm.commodityDescr"
                                       size="small" autocomplete="off"
                                       :disabled="detailData.seeDisabled" rows="8"
-                                      clearable placeholder="备注唛头" ></el-input>
+                                      clearable placeholder="提单上货物描述" ></el-input>
                         </div>
                     </el-row>
                 </el-col>
@@ -169,45 +187,56 @@
                                   :disabled="detailData.seeDisabled"
                                   clearable placeholder="请选择客户约号" ></el-input>
                     </el-form-item>
+                    <el-form-item label="船公司" prop="carrierCnName" >
+                        <search-query :datalist="carrierData"
+                                      :selectValue="assemblyForm.carrierCnName"
+                                      :filterable="true"
+                                      :clearable="true"
+                                      :remote="true"
+                                      :disabled="detailData.seeDisabled"
+                                      :buttonIf="false"
+                                      :forParameter="{key:'id',label:'cnName',value:'cnName'}"
+                                      @remoteMethod="remoteMethod($event,'carrier')"
+                                      @corpChange="corpChange($event,'carrier')" >
+                        </search-query>
+                    </el-form-item>
                     <el-form-item label="船公司约号" prop="carrierArgreementNo" >
                         <el-input type="age" style="width: 100%;" v-model="assemblyForm.carrierArgreementNo"
                                   size="small" autocomplete="off"
                                   :disabled="detailData.seeDisabled"
                                   clearable placeholder="请选择船公司约号" ></el-input>
                     </el-form-item>
-                    <el-form-item label="船公司" prop="carrierCnName" >
-                        <el-input type="age" style="width: 100%;" v-model="assemblyForm.carrierCnName"
-                                  size="small" autocomplete="off"
-                                  :disabled="detailData.seeDisabled"
-                                  clearable placeholder="请选择船公司" ></el-input>
-                    </el-form-item>
                     <div>
-                        <el-col :span="12">
-                            <el-form-item label="船名" prop="carrierCnName" label-width="80px" >
-                                <el-input type="age" style="width: 100%;" v-model="assemblyForm.vesselCnName"
-                                          size="small" autocomplete="off"
+                        <el-form-item label="船名" prop="vesselCnName" label-width="80px" >
+                            <search-query :datalist="vesselData"
+                                          :selectValue="assemblyForm.vesselCnName"
+                                          :filterable="true"
+                                          :clearable="true"
+                                          :remote="true"
                                           :disabled="detailData.seeDisabled"
-                                          clearable placeholder="请选择船名" ></el-input>
-                            </el-form-item>
-                        </el-col>
-                        <el-col :span="12">
-                            <el-form-item label="航次" prop="carrierCnName" label-width="50px"  >
-                                <el-input type="age" style="width: 100%;" v-model="assemblyForm.voyageNo"
-                                          size="small" autocomplete="off"
-                                          :disabled="detailData.seeDisabled"
-                                          clearable placeholder="请选择航次" ></el-input>
-                            </el-form-item>
-                        </el-col>
+                                          :buttonIf="false"
+                                          :forParameter="{key:'id',label:'cnName',value:'cnName'}"
+                                          @remoteMethod="remoteMethod($event,'vessel')"
+                                          @corpChange="corpChange($event,'vessel')" >
+                            </search-query>
+                        </el-form-item>
+                        <el-form-item label="航次" prop="voyageNo" label-width="80px"  >
+                            <el-input type="age" style="width: 100%;" v-model="assemblyForm.voyageNo"
+                                      size="small" autocomplete="off"
+                                      :disabled="detailData.seeDisabled"
+                                      clearable placeholder="请选择航次" ></el-input>
+                        </el-form-item>
                     </div>
+
                     <el-form-item label="ETD" prop="etd">
-                        <el-date-picker v-model="assemblyForm.etd" clearable
+                        <el-date-picker v-model="assemblyForm.etd" clearable style="width: 100%"
                                         type="date" size="small" :disabled="detailData.seeDisabled"
                                         value-format="yyyy-MM-dd HH:mm:ss"
                                         placeholder="选择日期">
                         </el-date-picker>
                     </el-form-item>
                     <el-form-item label="订舱日期" prop="bookingDate">
-                        <el-date-picker v-model="assemblyForm.bookingDate" clearable
+                        <el-date-picker v-model="assemblyForm.bookingDate" clearable style="width: 100%"
                                         type="date" size="small" :disabled="detailData.seeDisabled"
                                         value-format="yyyy-MM-dd HH:mm:ss"
                                         placeholder="选择日期">
@@ -220,11 +249,11 @@
                         <el-checkbox size="medium" :true-label="1" :false-label="0" v-model="assemblyForm.isNeedIq">需三检</el-checkbox>
                     </div>
 
-                    <el-form-item label="箱数或件数大写" prop="carrierCnName" label-width="100px">
-                        <el-input type="age" style="width: 100%;" v-model="assemblyForm.vesselCnName"
+                    <el-form-item label="箱数或件数大写" prop="quantityPackingDescr" label-width="100px">
+                        <el-input type="age" style="width: 100%;" v-model="assemblyForm.quantityPackingDescr"
                                   size="small" autocomplete="off"
-                                  :disabled="detailData.seeDisabled"
-                                  clearable placeholder="请选择ETD" ></el-input>
+                                  :disabled="true"
+                                  clearable placeholder="商品包装件数英文" ></el-input>
                     </el-form-item>
                     <div>
                         <el-col :span="12">
@@ -265,7 +294,7 @@
                                 <el-input type="age" style="width: 100%;" v-model="assemblyForm.measurement"
                                           size="small" autocomplete="off"
                                           :disabled="detailData.seeDisabled"
-                                          clearable placeholder="请选择尺码" ></el-input>
+                                          clearable placeholder="请选择尺码/体积" ></el-input>
                             </el-form-item>
                         </el-col>
                     </div>
@@ -399,11 +428,11 @@
                     <precontainers :pid="assemblyForm.id"></precontainers>
                 </el-col>
             </el-row>
-            <el-form-item label="备注" prop="carrierCnName" >
-                <el-input type="textarea" style="width: 100%;" v-model="assemblyForm.mShipperCnName"
+            <el-form-item label="备注" prop="remarks" >
+                <el-input type="textarea" style="width: 100%;" v-model="assemblyForm.remarks"
                           size="small" autocomplete="off"
                           :disabled="detailData.seeDisabled" rows="3"
-                          clearable placeholder="备注内容把" ></el-input>
+                          clearable placeholder="备注" ></el-input>
             </el-form-item>
 
             <el-row :gutter="20">
@@ -414,44 +443,57 @@
                                   :disabled="detailData.seeDisabled"
                                   clearable placeholder="请输入外提单号" ></el-input>
                     </el-form-item>
-                    <el-form-item label="订舱代理" prop="carrierCnName" >
+                    <el-form-item label="订舱代理" prop="bookingAgentCnName" >
                         <el-col :span="8">
-                            <el-input type="age" style="width: 100%;" v-model="assemblyForm.voyageNo"
-                                      size="small" autocomplete="off"
-                                      :disabled="detailData.seeDisabled"
-                                      clearable placeholder="请输入订舱代理" ></el-input>
+                            <search-query :datalist="bookingAgentData"
+                                          :selectValue="assemblyForm.bookingAgentCnName"
+                                          :filterable="true"
+                                          :clearable="true"
+                                          :remote="true"
+                                          :disabled="detailData.seeDisabled"
+                                          :buttonIf="false"
+                                          :forParameter="{key:'id',label:'cnName',value:'cnName'}"
+                                          @remoteMethod="remoteMethod($event,'bookingAgent')"
+                                          @corpChange="corpChange($event,'bookingAgent')" >
+                            </search-query>
                         </el-col>
                         <el-col :span="16">
-                            <el-input type="age" style="width: 100%;" v-model="assemblyForm.voyageNo"
+                            <el-input type="age" style="width: 100%;" v-model="assemblyForm.bookingAgentEnName"
                                       size="small" autocomplete="off"
-                                      :disabled="detailData.voyageNo"
-                                      clearable placeholder="请输入订舱代理" ></el-input>
+                                      :disabled="detailData.seeDisabled"
+                                      clearable placeholder="订舱代理" ></el-input>
                         </el-col>
                     </el-form-item>
-                    <el-form-item label="订舱备注" prop="carrierCnName" >
-                        <el-input type="textarea" style="width: 100%;" v-model="assemblyForm.mShipperCnName"
+                    <el-form-item label="订舱备注" prop="bookingRemarks" >
+                        <el-input type="textarea" style="width: 100%;" v-model="assemblyForm.bookingRemarks"
                                   size="small" autocomplete="off"
                                   :disabled="detailData.seeDisabled" rows="3"
-                                  clearable placeholder="备注内容把" ></el-input>
+                                  clearable placeholder="订舱备注" ></el-input>
                     </el-form-item>
                 </el-col>
                 <el-col :span="12">
                     <el-row>
-                        <el-col :span="12"></el-col>
                         <el-col :span="12">
-                            <el-form-item label="航线" prop="carrierCnName" >
-                                <el-input type="age" style="width: 100%;" v-model="assemblyForm.voyageNo"
-                                          size="small" autocomplete="off"
-                                          :disabled="detailData.voyageNo"
-                                          clearable placeholder="请输入航线" ></el-input>
+                            <el-form-item label="航线" prop="lineCnName" >
+                                <search-query :datalist="lineData"
+                                              :selectValue="assemblyForm.lineCnName"
+                                              :filterable="true"
+                                              :clearable="true"
+                                              :remote="true"
+                                              :disabled="detailData.seeDisabled"
+                                              :buttonIf="false"
+                                              :forParameter="{key:'id',label:'cnName',value:'cnName'}"
+                                              @remoteMethod="remoteMethod($event,'line')"
+                                              @corpChange="corpChange($event,'line')" >
+                                </search-query>
                             </el-form-item>
                         </el-col>
                     </el-row>
-                    <el-form-item label="SI备注" prop="carrierCnName" >
-                        <el-input type="textarea" style="width: 100%;" v-model="assemblyForm.mShipperCnName"
+                    <el-form-item label="SI备注" prop="siRemarks" >
+                        <el-input type="textarea" style="width: 100%;" v-model="assemblyForm.siRemarks"
                                   size="small" autocomplete="off"
                                   :disabled="detailData.seeDisabled" rows="3"
-                                  clearable placeholder="备注内容把" ></el-input>
+                                  clearable placeholder="SI备注" ></el-input>
                     </el-form-item>
                 </el-col>
             </el-row>
@@ -504,12 +546,90 @@
                 </el-form>
             </div>
             <span slot="footer" class="dialog-footer">
-                <el-button @click="hNotify2Visible = false">取 消</el-button>
-                <el-button type="danger" @click="hNotify2Cancellation('删除')">删 除</el-button>
+                <el-button type="danger" @click="hNotify2Cancellation('清除')">清 除</el-button>
                 <el-button type="primary" @click="hNotify2Visible = false">确 定</el-button>
             </span>
         </el-dialog>
 
+        <el-dialog
+            title="危险品"
+            :visible.sync="dgVisible"
+            width="50%"
+            append-to-body
+            :before-close="hNotify2HandleClose">
+            <div>
+                <el-form :model="assemblyForm" ref="form" label-width="120px">
+                    <el-row :gutter="20">
+                        <el-col :span="12">
+                            <el-form-item label="危险品分类代码" prop="dgImdgCode" >
+                                <el-input type="age" style="width: 100%;" v-model="assemblyForm.dgImdgCode"
+                                          size="small" autocomplete="off"
+                                          :disabled="detailData.seeDisabled"
+                                          clearable placeholder="危险品分类代码" ></el-input>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="12">
+                            <el-form-item label="危险品国际代码" prop="dgUnCode" >
+                                <el-input type="age" style="width: 100%;" v-model="assemblyForm.dgUnCode"
+                                          size="small" autocomplete="off"
+                                          :disabled="detailData.seeDisabled"
+                                          clearable placeholder="危险品国际代码" ></el-input>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="12">
+                            <el-form-item label="危险品包装等级" prop="dgPackingLevel" >
+                                <el-input type="age" style="width: 100%;" v-model="assemblyForm.dgPackingLevel"
+                                          size="small" autocomplete="off"
+                                          :disabled="detailData.seeDisabled"
+                                          clearable placeholder="危险品包装等级" ></el-input>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="12">
+                            <el-form-item label="易燃易爆品闪点" prop="dgFlashPoint" >
+                                <el-input type="age" style="width: 100%;" v-model="assemblyForm.dgFlashPoint"
+                                          size="small" autocomplete="off"
+                                          :disabled="detailData.seeDisabled"
+                                          clearable placeholder="易燃易爆品闪点" ></el-input>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="12">
+                            <el-form-item label="易燃易爆品闪点单位" prop="dgFlashPointUnit" >
+                                <el-input type="age" style="width: 100%;" v-model="assemblyForm.dgFlashPointUnit"
+                                          size="small" autocomplete="off"
+                                          :disabled="detailData.seeDisabled"
+                                          clearable placeholder="易燃易爆品闪点单位" ></el-input>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="12">
+                            <el-form-item label="危险品联系人" prop="dgContacts" >
+                                <el-input type="age" style="width: 100%;" v-model="assemblyForm.dgContacts"
+                                          size="small" autocomplete="off"
+                                          :disabled="detailData.seeDisabled"
+                                          clearable placeholder="危险品联系人" ></el-input>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="12">
+                            <el-form-item label="危险品联系人电话" prop="dgTel" >
+                                <el-input type="age" style="width: 100%;" v-model="assemblyForm.dgTel"
+                                          size="small" autocomplete="off"
+                                          :disabled="detailData.seeDisabled"
+                                          clearable placeholder="危险品联系人电话" ></el-input>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="12">
+                            <el-form-item label="是否海洋污染物" prop="dgIsMarinePollutant" >
+                                <el-checkbox size="medium" :true-label="1" :false-label="0" v-model="assemblyForm.dgIsMarinePollutant"></el-checkbox>
+                            </el-form-item>
+                        </el-col>
+                    </el-row>
+
+                </el-form>
+            </div>
+            <span slot="footer" class="dialog-footer">
+                <el-button type="danger" @click="dgCancellation('清除')">清 除</el-button>
+                <el-button type="primary" @click="dgVisible = false">确 定</el-button>
+            </span>
+        </el-dialog>
     </div>
 </template>
 
@@ -520,6 +640,9 @@ import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
 import {getBcorpslistByType} from "@/api/iosBasicData/bcorps";
 import {bportsList} from "@/api/iosBasicData/bports";
 import {bpackagesList} from "@/api/iosBasicData/bpackages";
+import {bcommodityList} from "@/api/iosBasicData/bcommodity";
+import {getBvesselsList} from "@/api/iosBasicData/bvessels";
+import {blinesList} from "@/api/iosBasicData/blines";
 
     export default {
         props:{
@@ -555,9 +678,35 @@ import {bpackagesList} from "@/api/iosBasicData/bpackages";
                 destinationData:[],
                 // 交货地
                 placeDeliveryData:[],
+                // 商品 HS-CODE
+                commodityData:[],
+                // 货物类别
+                cargoTypeData:[
+                    {
+                        label:'普货',
+                        value:'dry',
+                    },
+                    {
+                        label:'危险品',
+                        value:'danger',
+                    },
+                    {
+                        label:'冻柜',
+                        value:'reefer',
+                    }
+                ],
+                // 危险品弹窗
+                dgVisible:false,
+                // 船公司数据
+                carrierData:[],
+                // 船名
+                vesselData:[],
                 // 包装
                 packingUnitData:[],
-
+                // 订舱代理数据
+                bookingAgentData:[],
+                // 航线
+                lineData:[],
             }
         },
         created() {
@@ -566,19 +715,28 @@ import {bpackagesList} from "@/api/iosBasicData/bpackages";
             this.hConsigneeBcorpsListfun()
             this.hNotifyBcorpsListfun()
             this.hNotify2BcorpsListfun()
+            this.bookingAgentBcorpsListfun()
             // 港口接口
             this.placeReceiptBportsListfun()
             this.polBportsListfun()
             this.podBportsListfun()
             this.destinationBportsListfun()
             this.placeDeliveryBportsListfun()
+            // 货物
+            this.commodityBcommodityListfun()
             // 包装
             this.packingUnitBpackagesListfun()
+            // 船公司
+            this.carrierBcorpslistByTypefun()
+            // 船名
+            this.vesselBvesselsListfun()
+            // 航线
+            this.lineBlinesListfun()
         },
         methods:{
             // 远程搜索
             remoteMethod(value,name){
-                let arr = ['hShipper','hConsignee','hNotify','hNotify2']
+                let arr = ['hShipper','hConsignee','hNotify','hNotify2','bookingAgent']
                 let portArr = ['placeReceipt','pol','pod','destination','placeDelivery']
                 if (arr.indexOf(name) != -1) {
                     this[name + 'BcorpsListfun'](value)
@@ -587,13 +745,27 @@ import {bpackagesList} from "@/api/iosBasicData/bpackages";
                 else if (portArr.indexOf(name) != -1) {
                     this[name + 'BportsListfun'](value)
                 }
+                // 货物
+                else if (name == 'commodity') {
+                    this.commodityBcommodityListfun(value)
+                }
                 // 包装
                 else if (name == 'packingUnit') {
                     this.packingUnitBpackagesListfun(value)
                 }
-                else {
-
+                // 船名
+                else if (name == 'vessel') {
+                    this.vesselBvesselsListfun(value)
+                }
+                // 船公司
+                else if (name == 'carrier') {
+                    this.carrierBcorpslistByTypefun(value)
+                }
+                // 航线
+                else if (name == 'line') {
+                    this.lineBlinesListfun(value)
                 }
+                else {}
             },
             // 选择框的回调
             corpChange(value,name) {
@@ -638,6 +810,37 @@ import {bpackagesList} from "@/api/iosBasicData/bpackages";
                         }
                     }
                 }
+                else if (name == 'commodity') {
+                    for(let item of this[name + 'Data']) {
+                        if (item.cnName == value) {
+                            this.$set(this.assemblyForm,'hscode',item.hsCode)
+                            this.$set(this.assemblyForm,'commodityShName',item.cnName)
+                            this.$set(this.assemblyForm,'commodityCnName',item.cnName)
+                            this.$set(this.assemblyForm,'commodityEnName',item.enName)
+                        }
+                    }
+                }
+                // 船名
+                else 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)
+                        }
+                    }
+                }
+                // 船公司
+                else if (name == 'carrier') {
+                    for(let item of this[name + 'Data']) {
+                        if (item.cnName == value) {
+                            this.$set(this.assemblyForm,'carrierId',item.id)
+                            this.$set(this.assemblyForm,'carrierCnName',item.cnName)
+                            this.$set(this.assemblyForm,'carrierEnName',item.enName)
+                            this.$set(this.assemblyForm,'carrierArgreementNo',item.agreementNo)
+                        }
+                    }
+                }
                 // 包装
                 else if (name == 'packingUnit') {
                     for(let item of this[name + 'Data']) {
@@ -647,20 +850,39 @@ import {bpackagesList} from "@/api/iosBasicData/bpackages";
                         }
                     }
                 }
+                // 订舱代理
+                else if (name == 'bookingAgent') {
+                    for(let item of this[name + 'Data']) {
+                        if (item.cnName == value) {
+                            this.$set(this.assemblyForm,'bookingAgentId',item.id)
+                            this.$set(this.assemblyForm,'bookingAgentCnName',item.cnName)
+                            this.$set(this.assemblyForm,'bookingAgentEnName',item.enName)
+                            this.$set(this.assemblyForm,'bookingRemarks',item.remarks)
+                        }
+                    }
+                }
+                // 航线
+                else if (name == 'line') {
+                    for(let item of this[name + 'Data']) {
+                        if (item.cnName == value) {
+                            this.$set(this.assemblyForm,'lineId',item.id)
+                            this.$set(this.assemblyForm,'lineCnName',item.cnName)
+                            this.$set(this.assemblyForm,'lineEnName',item.enName)
+                        }
+                    }
+                }
+
                 else {}
             },
             // 通知人添加第二个通知人弹窗
             hNotifyClick(){
                 this.hNotify2Visible = true
             },
-            // 第二通知人弹窗的取消
+            // 第二通知人弹窗的清除
             hNotify2Cancellation(name){
                 let title = ''
-                if (name == '删除') {
-                    title = '确认删除吗?'
-                }
-                if (name == '取消') {
-                    title = '确认取消吗?填写的内容不会保存'
+                if (name == '清除') {
+                    title = '确认清除吗?'
                 }
                 this.$confirm(title)
                     .then(_ => {
@@ -683,6 +905,39 @@ import {bpackagesList} from "@/api/iosBasicData/bpackages";
                     })
                     .catch(_ => {});
             },
+            // 危险品弹窗开启
+            DangerousGoodsAdd(){
+                if (this.assemblyForm.cargoType == 'danger'){
+                    this.dgVisible = true
+                }else {
+                    this.$message({
+                        message: '请选择货物为危险品',
+                        type: 'warning'
+                    });
+                }
+            },
+            // 危险品弹窗的清除
+            dgCancellation(name){
+                let title = ''
+                if (name == '清除') {
+                    title = '确认清除吗?'
+                }
+                this.$confirm(title)
+                    .then(_ => {
+                        this.$set(this.assemblyForm,'dgImdgCode','')
+                        this.$set(this.assemblyForm,'dgUnCode','')
+                        this.$set(this.assemblyForm,'dgPackingLevel','')
+                        this.$set(this.assemblyForm,'dgFlashPoint','')
+                        this.$set(this.assemblyForm,'dgFlashPointUnit','')
+                        this.$set(this.assemblyForm,'dgContacts','')
+                        this.$set(this.assemblyForm,'dgTel','')
+                        this.$set(this.assemblyForm,'dgIsMarinePollutant','')
+                        this.dgVisible = false
+                    })
+                    .catch(_ => {});
+            },
+
+
             // 接口数据请求🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏
             // 获取发货人数据 (往来单位 前四个代理)
             hShipperBcorpsListfun(cnName){
@@ -748,7 +1003,38 @@ import {bpackagesList} from "@/api/iosBasicData/bpackages";
                     this.packingUnitData = res.data.data.records
                 })
             },
-
+            // 商品 HS-CODE (货物列表)
+            commodityBcommodityListfun(cnName){
+                bcommodityList(1,10,{cnName}).then(res=>{
+                    this.commodityData = res.data.data.records
+                })
+            },
+            // 获取船公司数据
+            carrierBcorpslistByTypefun(cnName){
+                let corpType = '1712286570540703745'
+                getBcorpslistByType(1,10,{cnName,corpType}).then(res=>{
+                    this.carrierData = res.data.data.records
+                })
+            },
+            // 船名
+            vesselBvesselsListfun(cnName){
+                getBvesselsList(1,10,{cnName}).then(res=>{
+                    this.vesselData = res.data.data.records
+                })
+            },
+            // 订舱代理
+            bookingAgentBcorpsListfun(cnName){
+                let corpType = '1712285382575398914,1712285645314990082,1712285842321448962,1712286433378574338'
+                getBcorpslistByType(1,10,{cnName,corpType}).then(res=>{
+                    this.bookingAgentData = res.data.data.records
+                })
+            },
+            // 航线数据
+            lineBlinesListfun(cnName){
+                blinesList(1,10,{cnName}).then(res=>{
+                    this.lineData = res.data.data.records
+                })
+            },
 
         }
 

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

@@ -48,12 +48,20 @@
                 </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="ACINO" prop="ediIegstin" >
-                                <el-input type="age" style="width: 100%;" v-model="assemblyForm.ediIegstin"
+                            <el-form-item label="IEIEC" prop="ediIeiec" >
+                                <el-input type="age" style="width: 100%;" v-model="assemblyForm.ediIeiec"
                                           size="small" autocomplete="off"
                                           :disabled="detailData.seeDisabled"
-                                          clearable placeholder="请填写ACINO" ></el-input>
+                                          clearable placeholder="请填写IEIEC" ></el-input>
                             </el-form-item>
                         </el-col>
                         <el-col :span="12">
@@ -65,16 +73,6 @@
                             </el-form-item>
                         </el-col>
                     </el-row>
-                    <el-row>
-                        <el-col :span="12">
-                            <el-form-item label="IEIEC" prop="ediIeiec" >
-                                <el-input type="age" style="width: 100%;" v-model="assemblyForm.ediIeiec"
-                                          size="small" autocomplete="off"
-                                          :disabled="detailData.seeDisabled"
-                                          clearable placeholder="请填写IEIEC" ></el-input>
-                            </el-form-item>
-                        </el-col>
-                    </el-row>
                     <el-form-item label="SI备注" prop="siRemarks" >
                         <el-input type="textarea" style="width: 100%;" v-model="assemblyForm.siRemarks"
                                   size="small" autocomplete="off"

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

@@ -193,12 +193,23 @@
                     width="180">
                     <template slot-scope="scope">
                         <el-button type="text" size="small">查看</el-button>
-                        <el-button type="text" size="small" @click="editDfun(scope.row,scope.index)">编辑</el-button>
-                        <el-button type="text" size="small" @click="saveDfun(scope.row,scope.index)">保存</el-button>
-                        <el-button type="text" size="small" @click="deleteDfun(scope.row,scope.index)">删除</el-button>
+                        <el-button type="text" size="small" @click="editDfun(scope.row,scope.$index)">编辑</el-button>
+                        <el-button type="text" size="small" @click="saveDfun(scope.row,scope.$index)">保存</el-button>
+                        <el-button type="text" size="small" @click="deleteDfun(scope.row,scope.$index)">删除</el-button>
                     </template>
                 </el-table-column>
             </el-table>
+
+            <el-pagination
+                background
+                layout="prev, pager, next"
+                :page-size="pageD.size"
+                :current-page="pageD.current"
+                :total="pageD.total"
+                @size-change="DsizeChange"
+                @current-change="DcurrentChange" >
+            </el-pagination>
+
         </div>
     </div>
 </template>
@@ -209,10 +220,15 @@
     import {bfeesList} from "@/api/iosBasicData/bfees";
     import {getBunitsList} from "@/api/iosBasicData/bunits";
     import {getRateList} from "@/api/iosBasicData/rateManagement";
-    import {getBlocationsList} from "@/api/iosBasicData/blocations";
+    import {feecenterList, feecenterSubmit} from "@/api/iosBasicData/feecenter";
 
     export default {
         components: {SearchQuery},
+        props:{
+            pid:{
+
+            }
+        },
         data(){
             return {
                 value:'',
@@ -236,18 +252,32 @@
                 unitNoData:[],
                 // 币别数据
                 curCodeData:[],
+                // 应收的分页
+                pageD:{
+                    current:1,
+                    size:10,
+                    total:0
+                },
             }
         },
         created() {
+            this.feecenterListfun()
+
             this.getBcorpsListfun()
             this.bfeesListfun()
             this.getBunitsListfun()
             this.getRateListfun()
         },
         methods:{
-            getBlocationsList,
             // 应收新增
             addDfun(){
+                if (!this.pid) {
+                    this.$message({
+                        message: '请先保存数据之后才能添加',
+                        type: 'warning'
+                    });
+                    return
+                }
                 this.tableDataReceivable.push({
                     edit:true
                 })
@@ -258,37 +288,16 @@
             },
             // 应收保存
             saveDfun(row,index){
-
-                console.log(this.tableDataReceivable)
+                // 收付 D=收 C=付
+                row.dc = 'D'
+                row.pid = this.pid
+                row.sort = index
+                this.feecenterSubmitfun(row)
             },
             // 应收删除
             deleteDfun(row,index) {
 
             },
-            // 获取客户数据
-            getBcorpsListfun(cnName){
-                getBcorpsList(1,10,{cnName}).then(res=>{
-                    this.corpCnNameData = res.data.data.records
-                })
-            },
-            // 获取费用数据
-            bfeesListfun(cnName){
-                bfeesList(1,10,{cnName}).then(res=>{
-                    this.feeCnNameData = res.data.data.records
-                })
-            },
-            // 获取计算属性
-            getBunitsListfun(cnName){
-                getBunitsList(1,10,{cnName}).then(res=>{
-                    this.unitNoData = res.data.data.records
-                })
-            },
-            // 获取币别数据
-            getRateListfun(cnName){
-                getRateList({current:1,size:10,cnName}).then(res=>{
-                    this.curCodeData = res.data.data.records
-                })
-            },
             // 客户的回调
             corpChange(value,name,row) {
                 if (name == 'corpCnName') {
@@ -350,6 +359,59 @@
                 }
                 this.$set(row,'amount',Number(row.price?row.price:0) * Number(row.quantity))
             },
+            // 获取列表数据
+            feecenterListfun(){
+                feecenterList(this.pageD.current,this.pageD.size,{pid:this.pid}).then(res=>{
+                    this.tableDataReceivable = res.data.data.records.map(item=>{
+                        if (item.curCode == 'CNY') {
+                            this.$set(item,'rmbAmount',item.amount)
+                            this.$set(item,'usdAmount','')
+                        }else {
+                            this.$set(item,'usdAmount',item.amount)
+                            this.$set(item,'rmbAmount','')
+                        }
+                        return item
+                    })
+                })
+            },
+            // 保存接口
+            feecenterSubmitfun(row){
+                feecenterSubmit(row).then(res=>{
+                    console.log(res,359)
+                })
+            },
+            // 应收分页
+            DcurrentChange(e){
+                console.log(e,'current')
+            },
+            DsizeChange(e){
+                console.log(e,'size')
+            },
+            // 获取客户数据
+            getBcorpsListfun(cnName){
+                getBcorpsList(1,10,{cnName}).then(res=>{
+                    this.corpCnNameData = res.data.data.records
+                })
+            },
+            // 获取费用数据
+            bfeesListfun(cnName){
+                bfeesList(1,10,{cnName}).then(res=>{
+                    this.feeCnNameData = res.data.data.records
+                })
+            },
+            // 获取计算属性
+            getBunitsListfun(cnName){
+                getBunitsList(1,10,{cnName}).then(res=>{
+                    this.unitNoData = res.data.data.records
+                })
+            },
+            // 获取币别数据
+            getRateListfun(cnName){
+                getRateList({current:1,size:10,cnName}).then(res=>{
+                    this.curCodeData = res.data.data.records
+                })
+            },
+
 
         },
     }

+ 243 - 41
src/views/iosBasicData/SeafreightExportF/bills/assembly/formbottom.vue

@@ -4,33 +4,40 @@
             <el-row>
                 <el-col :span="12">
                     <el-col :span="12">
-                        <el-form-item label="场站" prop="carrierCnName" >
-                            <el-input type="age" style="width: 100%;" v-model="assemblyForm.voyageNo"
-                                      size="small" autocomplete="off"
-                                      :disabled="detailData.voyageNo"
-                                      clearable placeholder="请输入场站" ></el-input>
+                        <el-form-item label="场站" prop="cyCnName" >
+                            <search-query :datalist="cyData"
+                                          :selectValue="assemblyForm.cyCnName"
+                                          :filterable="true"
+                                          :clearable="true"
+                                          :remote="true"
+                                          :disabled="detailData.seeDisabled"
+                                          :buttonIf="false"
+                                          :forParameter="{key:'id',label:'cnName',value:'cnName'}"
+                                          @remoteMethod="remoteMethod($event,'cy')"
+                                          @corpChange="corpChange($event,'cy')" >
+                            </search-query>
                         </el-form-item>
                     </el-col>
                     <el-col :span="12">
-                        <el-form-item label="联系人" prop="carrierCnName" >
-                            <el-input type="age" style="width: 100%;" v-model="assemblyForm.voyageNo"
+                        <el-form-item label="联系人" prop="cyContacts" >
+                            <el-input type="age" style="width: 100%;" v-model="assemblyForm.cyContacts"
                                       size="small" autocomplete="off"
-                                      :disabled="detailData.voyageNo"
+                                      :disabled="detailData.seeDisabled"
                                       clearable placeholder="请输入联系人" ></el-input>
                         </el-form-item>
                     </el-col>
                 </el-col>
                 <el-col :span="12">
-                    <el-form-item label="地址" prop="carrierCnName" >
-                        <el-input type="age" style="width: 100%;" v-model="assemblyForm.voyageNo"
+                    <el-form-item label="地址" prop="cyAddress" >
+                        <el-input type="age" style="width: 100%;" v-model="assemblyForm.cyAddress"
                                   size="small" autocomplete="off"
-                                  :disabled="detailData.voyageNo"
+                                  :disabled="detailData.seeDisabled"
                                   clearable placeholder="请输入地址" ></el-input>
                     </el-form-item>
                 </el-col>
             </el-row>
-            <el-form-item label="场站备注" prop="carrierCnName" >
-                <el-input type="textarea" style="width: 100%;" v-model="assemblyForm.mShipperCnName"
+            <el-form-item label="场站备注" prop="cyRemarks" >
+                <el-input type="textarea" style="width: 100%;" v-model="assemblyForm.cyRemarks"
                           size="small" autocomplete="off"
                           :disabled="detailData.seeDisabled" rows="3"
                           clearable placeholder="备注内容把" ></el-input>
@@ -62,89 +69,160 @@
                     </el-form-item>
                 </el-col>
                 <el-col :span="6">
-                    <el-form-item label="正本份数" prop="cyReturnTime" >
-                        <el-input type="age" style="width: 100%;" v-model="assemblyForm.voyageNo"
+                    <el-form-item label="正本份数" prop="numberOfObl" >
+                        <el-input type="age" style="width: 100%;" v-model="assemblyForm.numberOfObl"
                                   size="small" autocomplete="off"
-                                  :disabled="detailData.voyageNo"
+                                  :disabled="detailData.seeDisabled"
                                   clearable placeholder="请输入正本份数" ></el-input>
                     </el-form-item>
                 </el-col>
                 <el-col :span="6">
-                    <el-form-item label="副本份数" prop="cyReturnTime" >
-                        <el-input type="age" style="width: 100%;" v-model="assemblyForm.voyageNo"
+                    <el-form-item label="副本份数" prop="numberOfCopy" >
+                        <el-input type="age" style="width: 100%;" v-model="assemblyForm.numberOfCopy"
                                   size="small" autocomplete="off"
-                                  :disabled="detailData.voyageNo"
+                                  :disabled="detailData.seeDisabled"
                                   clearable placeholder="请输入副本份数" ></el-input>
                     </el-form-item>
                 </el-col>
                 <el-col :span="6">
-                    <el-form-item label="HB/L付款地点" prop="cyReturnTime" >
-                        <el-input type="age" style="width: 100%;" v-model="assemblyForm.voyageNo"
+                    <el-form-item label="HB/L付款地点" prop="hPayplace" >
+                        <el-input type="age" style="width: 100%;" v-model="assemblyForm.hPayplace"
                                   size="small" autocomplete="off"
-                                  :disabled="detailData.voyageNo"
+                                  :disabled="detailData.seeDisabled"
                                   clearable placeholder="请输入HB/L付款地点" ></el-input>
                     </el-form-item>
                 </el-col>
                 <el-col :span="6">
-                    <el-form-item label="MB/L付款地点" prop="cyReturnTime" >
-                        <el-input type="age" style="width: 100%;" v-model="assemblyForm.voyageNo"
+                    <el-form-item label="MB/L付款地点" prop="mPayplace" >
+                        <el-input type="age" style="width: 100%;" v-model="assemblyForm.mPayplace"
                                   size="small" autocomplete="off"
-                                  :disabled="detailData.voyageNo"
+                                  :disabled="detailData.seeDisabled"
                                   clearable placeholder="请输入MB/L付款地点" ></el-input>
                     </el-form-item>
                 </el-col>
                 <el-col :span="6">
-                    <el-form-item label="服务方式" prop="cyReturnTime" >
-                        <el-input type="age" style="width: 100%;" v-model="assemblyForm.voyageNo"
-                                  size="small" autocomplete="off"
-                                  :disabled="detailData.voyageNo"
-                                  clearable placeholder="请输入服务方式" ></el-input>
+                    <el-form-item label="服务方式" prop="serviceTerms" >
+                        <search-query :datalist="serviceTermsData"
+                                      :selectValue="assemblyForm.serviceTerms"
+                                      :filterable="true"
+                                      :clearable="true"
+                                      :remote="true"
+                                      :disabled="detailData.seeDisabled"
+                                      :buttonIf="false"
+                                      @remoteMethod="remoteMethod($event,'serviceTerms')"
+                                      @corpChange="corpChange($event,'serviceTerms')" >
+                        </search-query>
                     </el-form-item>
                 </el-col>
             </el-row>
             <el-row :gutter="20">
                 <el-col span="6">
-                    发送
+                    <el-button size="small" style="width: 100%;" type="primary" @click="inttraAdd">发送INTTRA EDI</el-button>
                 </el-col>
                 <el-col span="6">
-                    <el-form-item label="签发日期" prop="cyReturnTime" >
+                    <el-form-item label="签单日期" prop="issueDate" >
                         <el-date-picker
-                            v-model="assemblyForm.cyReturnTime"
+                            v-model="assemblyForm.issueDate"
                             type="date"
                             style="width: 100%;"
                             value-format="yyyy-MM-dd hh:nn"
                             size="small"
-                            placeholder="选择签发日期">
+                            placeholder="签单日期">
                         </el-date-picker>
                     </el-form-item>
                 </el-col>
                 <el-col span="6">
-                    <el-form-item label="退仓日期" prop="cyReturnTime" >
+                    <el-form-item label="退舱日期" prop="bookingWithdrawTime" >
                         <el-date-picker
-                            v-model="assemblyForm.cyReturnTime"
+                            v-model="assemblyForm.bookingWithdrawTime"
                             type="date"
                             style="width: 100%;"
                             value-format="yyyy-MM-dd hh:nn"
                             size="small"
-                            placeholder="选择退仓日期">
+                            placeholder="退舱日期">
                         </el-date-picker>
                     </el-form-item>
                 </el-col>
                 <el-col span="6">
-                    <el-form-item label="签地点" prop="cyReturnTime" >
-                        <el-input type="age" style="width: 100%;" v-model="assemblyForm.voyageNo"
+                    <el-form-item label="签地点" prop="cyReturnTime" >
+                        <el-input type="age" style="width: 100%;" v-model="assemblyForm.issueAt"
                                   size="small" autocomplete="off"
-                                  :disabled="detailData.voyageNo"
-                                  clearable placeholder="请输入签地点" ></el-input>
+                                  :disabled="detailData.seeDisabled"
+                                  clearable placeholder="请输入签地点" ></el-input>
                     </el-form-item>
                 </el-col>
             </el-row>
         </el-form>
+
+
+        <el-dialog
+            title="INTTRA EDI"
+            :visible.sync="inttraVisible"
+            width="50%"
+            append-to-body
+            :before-close="beforeClose">
+            <div>
+                <el-form :model="assemblyForm" ref="form" label-width="160px">
+                    <el-row :gutter="20">
+                        <el-col :span="12">
+                            <el-form-item :label="`${assemblyForm.serviceTerms} 客户名称`" prop="hNotify2CnName" >
+                                <search-query :datalist="inttraData"
+                                              :selectValue="assemblyForm[`inttra${inttraTitle}CorpName`]"
+                                              :filterable="true"
+                                              :clearable="true"
+                                              :remote="true"
+                                              :disabled="detailData.seeDisabled"
+                                              :buttonIf="false"
+                                              :forParameter="{key:'id',label:'cnName',value:'cnName'}"
+                                              @remoteMethod="remoteMethod($event,`inttra${inttraTitle}`)"
+                                              @corpChange="corpChange($event,`inttra${inttraTitle}`)" >
+                                </search-query>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="12">
+                            <el-form-item :label="`${assemblyForm.serviceTerms} 客户地址`"  >
+                                <el-input type="age" style="width: 100%;" v-model="assemblyForm[`inttra${inttraTitle}CorpAddr`]"
+                                          size="small" autocomplete="off"
+                                          :disabled="detailData.seeDisabled"
+                                          clearable :placeholder="`${assemblyForm.serviceTerms} 客户地址`" ></el-input>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="12">
+                            <el-form-item :label="`${assemblyForm.serviceTerms} 客户联系人`" >
+                                <el-input type="age" style="width: 100%;" v-model="assemblyForm[`inttra${inttraTitle}CorpContacts`]"
+                                          size="small" autocomplete="off"
+                                          :disabled="detailData.seeDisabled"
+                                          clearable :placeholder="`${assemblyForm.serviceTerms} 客户联系人`" ></el-input>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="12">
+                            <el-form-item :label="`${assemblyForm.serviceTerms} 客户联系人电话`" >
+                                <el-input type="age" style="width: 100%;" v-model="assemblyForm[`inttra${inttraTitle}CorpTel`]"
+                                          size="small" autocomplete="off"
+                                          :disabled="detailData.seeDisabled"
+                                          clearable :placeholder="`${assemblyForm.serviceTerms} 客户联系人电话`" ></el-input>
+                            </el-form-item>
+                        </el-col>
+
+                    </el-row>
+
+                </el-form>
+            </div>
+            <span slot="footer" class="dialog-footer">
+                <el-button type="danger" @click="inttraCancellation('清除')">清 除</el-button>
+                <el-button type="primary" @click="inttraVisible = false">确 定</el-button>
+            </span>
+        </el-dialog>
+
     </div>
 </template>
 
 <script>
+    import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
+    import {getBcorpslistByType} from "@/api/iosBasicData/bcorps";
+
     export default {
+        components: {SearchQuery},
         props:{
             assemblyForm:{
                 type:Object
@@ -152,6 +230,130 @@
             detailData:{
                 type:Boolean,
             }
+        },
+        data(){
+            return {
+                // 场站
+                cyData:[],
+                // 服务方式
+                serviceTermsData:[
+                    {
+                        label:'DOOR TO',
+                        value:'DOOR TO'
+                    },
+                    {
+                        label:'TO DOOR',
+                        value:'TO DOOR'
+                    }
+                ],
+                // INTTRA EDI弹窗
+                inttraVisible:false,
+                inttraTitle:'',
+                inttraData:[],
+
+            }
+        },
+        created() {
+            this.cyBcorpslistByType()
+        },
+        methods:{
+            // 远程搜索
+            remoteMethod(value,name){
+                if (name == 'cy') {
+                    this.cyBcorpslistByType(value)
+                }else {}
+            },
+            // 选择框的回调
+            corpChange(value,name){
+                let inttraArr = ['inttraDoorTo','inttraToDoor']
+                if (name == 'cy') {
+                    for(let item of this.cyData) {
+                        if (item.cnName == value) {
+                            this.$set(this.assemblyForm,'cyId',item.id)
+                            this.$set(this.assemblyForm,'cyCode',item.code)
+                            this.$set(this.assemblyForm,'cyCnName',item.cnName)
+                            this.$set(this.assemblyForm,'cyEnName',item.enName)
+                            this.$set(this.assemblyForm,'cyAddress',item.address)
+                            this.$set(this.assemblyForm,'cyContacts',item.contacts)
+                            this.$set(this.assemblyForm,'cyTel',item.tel)
+                            this.$set(this.assemblyForm,'cyRemarks',item.remarks)
+                        }
+                    }
+                }
+                else if (inttraArr.indexOf(name) != -1) {
+                    for(let item of this.inttraData) {
+                        if (item.cnName == value) {
+                            this.$set(this.assemblyForm,`inttra${this.inttraTitle}CorpName`,item.cnName)
+                            this.$set(this.assemblyForm,`inttra${this.inttraTitle}CorpAddr`,item.cnAddr)
+                            this.$set(this.assemblyForm,`inttra${this.inttraTitle}CorpContacts`,item.attnName)
+                            this.$set(this.assemblyForm,`inttra${this.inttraTitle}CorpTel`,item.attnTel)
+                        }
+                    }
+                }
+                else {
+                    this.assemblyForm[name] = value
+                }
+            },
+            // 发送INTTRA EDI弹窗开启
+            inttraAdd(){
+                if (!this.assemblyForm.serviceTerms) {
+                    this.$message({
+                        showClose: true,
+                        message: '请先选择服务方式',
+                        type: 'warning'
+                    });
+                    return
+                }
+                if (this.assemblyForm.serviceTerms == 'DOOR TO') {
+                    this.inttraTitle = 'ToDoor'
+                }else if (this.assemblyForm.serviceTerms == 'TO DOOR') {
+                    this.inttraTitle = 'DoorTo'
+                }else {}
+                this.inttraBcorpslistByType()
+                this.inttraVisible = true
+            },
+            // INTTRA EDI弹窗清除
+            inttraCancellation(name){
+                let title = ''
+                if (name == '清除') {
+                    title = '确认清除吗?'
+                }
+                this.$confirm(title)
+                    .then(_ => {
+                        this.$set(this.assemblyForm,`inttra${this.inttraTitle}CorpName`,'')
+                        this.$set(this.assemblyForm,`inttra${this.inttraTitle}CorpAddr`,'')
+                        this.$set(this.assemblyForm,`inttra${this.inttraTitle}CorpContacts`,'')
+                        this.$set(this.assemblyForm,`inttra${this.inttraTitle}CorpTel`,'')
+                        this.inttraVisible = false
+                    })
+                    .catch(_ => {});
+            },
+            // 弹窗关闭
+            beforeClose(done){
+                this.$confirm('确认关闭?')
+                    .then(_ => {
+                        done();
+                    })
+                    .catch(_ => {});
+            },
+
+            // 接口数据请求🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏
+            // 获取场站数据
+            cyBcorpslistByType(cnName){
+                let corpType = '1712286771737272322'
+                getBcorpslistByType(1,10,{cnName,corpType}).then(res=>{
+                    this.cyData = res.data.data.records
+                })
+            },
+            // 获取客户数据
+            inttraBcorpslistByType(cnName){
+                getBcorpslistByType(1,10,{cnName}).then(res=>{
+                    this.inttraData = res.data.data.records
+                })
+            },
+
+
+
         }
     }
 </script>

+ 257 - 47
src/views/iosBasicData/SeafreightExportF/bills/assembly/mbinformation.vue

@@ -3,8 +3,8 @@
         <el-form :model="assemblyForm" ref="form" label-width="90px" class="demo-ruleForm">
             <el-row :gutter="20">
                 <el-col :span="12">
-                    <el-form-item label="提单号" prop="mShipperCnName" >
-                        <el-input type="age" style="width: 100%;" v-model="assemblyForm.mShipperCnName"
+                    <el-form-item label="提单号" prop="mblno" >
+                        <el-input type="age" style="width: 100%;" v-model="assemblyForm.mblno"
                                   size="small" autocomplete="off"
                                   :disabled="detailData.seeDisabled"
                                   clearable placeholder="请填写提单号" ></el-input>
@@ -12,7 +12,7 @@
                     <el-row>
                         <el-col :span="12">
                             <el-form-item label="船名" prop="vesselCnName" >
-                                <search-query :datalist="vesselCnNameData"
+                                <search-query :datalist="vesselData"
                                               :selectValue="assemblyForm.vesselCnName"
                                               :filterable="true"
                                               :clearable="true"
@@ -20,8 +20,8 @@
                                               :disabled="detailData.seeDisabled"
                                               :buttonIf="false"
                                               :forParameter="{key:'id',label:'cnName',value:'cnName'}"
-                                              @remoteMethod="remoteMethod($event,'vesselCnName')"
-                                              @corpChange="corpChange($event,'vesselCnName')" >
+                                              @remoteMethod="remoteMethod($event,'vessel')"
+                                              @corpChange="corpChange($event,'vessel')" >
                                 </search-query>
                             </el-form-item>
                         </el-col>
@@ -35,7 +35,7 @@
                         </el-col>
                     </el-row>
                     <el-form-item label="船公司" prop="carrierCnName" >
-                        <search-query :datalist="carrierCnNameData"
+                        <search-query :datalist="carrierData"
                                       :selectValue="assemblyForm.carrierCnName"
                                       :filterable="true"
                                       :clearable="true"
@@ -43,12 +43,12 @@
                                       :disabled="detailData.seeDisabled"
                                       :buttonIf="false"
                                       :forParameter="{key:'id',label:'cnName',value:'cnName'}"
-                                      @remoteMethod="remoteMethod($event,'carrierCnName')"
-                                      @corpChange="corpChange($event,'carrierCnName')" >
+                                      @remoteMethod="remoteMethod($event,'carrier')"
+                                      @corpChange="corpChange($event,'carrier')" >
                         </search-query>
                     </el-form-item>
                     <el-form-item label="订舱代理" prop="bookingAgentCnName" >
-                        <search-query :datalist="bookingAgentCnNameData"
+                        <search-query :datalist="bookingAgentData"
                                       :selectValue="assemblyForm.bookingAgentCnName"
                                       :filterable="true"
                                       :clearable="true"
@@ -56,8 +56,8 @@
                                       :disabled="detailData.seeDisabled"
                                       :buttonIf="false"
                                       :forParameter="{key:'id',label:'cnName',value:'cnName'}"
-                                      @remoteMethod="remoteMethod($event,'bookingAgentCnName')"
-                                      @corpChange="corpChange($event,'bookingAgentCnName')" >
+                                      @remoteMethod="remoteMethod($event,'bookingAgent')"
+                                      @corpChange="corpChange($event,'bookingAgent')" >
                         </search-query>
                     </el-form-item>
                     <el-form-item label="订舱备注" prop="bookingRemarks" >
@@ -68,8 +68,8 @@
                     </el-form-item>
                 </el-col>
                 <el-col :span="12">
-                    <el-form-item label="外提单号" prop="mShipperCnName" >
-                        <el-input type="age" style="width: 100%;" v-model="assemblyForm.mShipperCnName"
+                    <el-form-item label="外提单号" prop="refno" >
+                        <el-input type="age" style="width: 100%;" v-model="assemblyForm.refno"
                                   size="small" autocomplete="off"
                                   :disabled="detailData.seeDisabled"
                                   clearable placeholder="请填写外提单号" ></el-input>
@@ -109,7 +109,7 @@
                         </el-col>
                         <el-col :span="12">
                             <el-form-item label="航线" prop="lineCnName" >
-                                <search-query :datalist="lineCnNameData"
+                                <search-query :datalist="lineData"
                                               :selectValue="assemblyForm.lineCnName"
                                               :filterable="true"
                                               :clearable="true"
@@ -117,8 +117,8 @@
                                               :disabled="detailData.seeDisabled"
                                               :buttonIf="false"
                                               :forParameter="{key:'id',label:'cnName',value:'cnName'}"
-                                              @remoteMethod="remoteMethod($event,'lineCnName')"
-                                              @corpChange="corpChange($event,'lineCnName')" >
+                                              @remoteMethod="remoteMethod($event,'line')"
+                                              @corpChange="corpChange($event,'line')" >
                                 </search-query>
                             </el-form-item>
                         </el-col>
@@ -129,7 +129,7 @@
                                 <el-input type="age" style="width: 100%;" v-model="assemblyForm.carrierArgreementNo"
                                           size="small" autocomplete="off"
                                           :disabled="detailData.seeDisabled"
-                                          clearable placeholder="请填写船司约号" ></el-input>
+                                          clearable placeholder="船司约号" ></el-input>
                             </el-form-item>
                         </el-col>
                     </el-row>
@@ -137,11 +137,106 @@
                         <el-input type="textarea" style="width: 100%;" v-model="assemblyForm.siRemarks"
                                   size="small" autocomplete="off"
                                   :disabled="detailData.seeDisabled" rows="3"
-                                  clearable placeholder="备注内容把" ></el-input>
+                                  clearable placeholder="SI备注" ></el-input>
                     </el-form-item>
 
                 </el-col>
             </el-row>
+
+            <el-rwo>
+                <el-col :span="6">
+                    <el-form-item label="MB/L 发货人" prop="mShipperCnName" >
+                        <search-query :datalist="mShipperData"
+                                      :selectValue="assemblyForm.mShipperCnName"
+                                      :filterable="true"
+                                      :clearable="true"
+                                      :remote="true"
+                                      :disabled="detailData.seeDisabled"
+                                      :buttonIf="false"
+                                      :forParameter="{key:'id',label:'cnName',value:'cnName'}"
+                                      @remoteMethod="remoteMethod($event,'mShipper')"
+                                      @corpChange="corpChange($event,'mShipper')" >
+                        </search-query>
+                    </el-form-item>
+                    <div style="margin-top: 10px">
+                        <el-form-item label="" prop="mShipperDetails" >
+                            <el-input type="textarea" style="width: 100%;" v-model="assemblyForm.mShipperDetails"
+                                      size="small" autocomplete="off"
+                                      :disabled="detailData.seeDisabled" rows="4"
+                                      clearable placeholder="发货人提单描述" ></el-input>
+                        </el-form-item>
+                    </div>
+                </el-col>
+                <el-col :span="6">
+                    <el-form-item label="MB/L 收货人" prop="mConsigneeCnName" >
+                        <search-query :datalist="mConsigneeData"
+                                      :selectValue="assemblyForm.mConsigneeCnName"
+                                      :filterable="true"
+                                      :clearable="true"
+                                      :remote="true"
+                                      :disabled="detailData.seeDisabled"
+                                      :buttonIf="false"
+                                      :forParameter="{key:'id',label:'cnName',value:'cnName'}"
+                                      @remoteMethod="remoteMethod($event,'mConsignee')"
+                                      @corpChange="corpChange($event,'mConsignee')" >
+                        </search-query>
+                    </el-form-item>
+                    <div style="margin-top: 10px">
+                        <el-form-item label="" prop="mConsigneeCntyName" >
+                            <el-input type="textarea" style="width: 100%;" v-model="assemblyForm.mConsigneeCntyName"
+                                      size="small" autocomplete="off"
+                                      :disabled="detailData.seeDisabled" rows="4"
+                                      clearable placeholder="发货人提单描述" ></el-input>
+                        </el-form-item>
+                    </div>
+                </el-col>
+                <el-col :span="6">
+                    <el-form-item label="MB/L 通知人" prop="mNotifyCnName" >
+                        <search-query :datalist="mNotifyData"
+                                      :selectValue="assemblyForm.mNotifyCnName"
+                                      :filterable="true"
+                                      :clearable="true"
+                                      :remote="true"
+                                      :disabled="detailData.seeDisabled"
+                                      :buttonIf="false"
+                                      :forParameter="{key:'id',label:'cnName',value:'cnName'}"
+                                      @remoteMethod="remoteMethod($event,'mNotify')"
+                                      @corpChange="corpChange($event,'mNotify')" >
+                        </search-query>
+                    </el-form-item>
+                    <div style="margin-top: 10px">
+                        <el-form-item label="" prop="mNotifyCntyName" >
+                            <el-input type="textarea" style="width: 100%;" v-model="assemblyForm.mNotifyCntyName"
+                                      size="small" autocomplete="off"
+                                      :disabled="detailData.seeDisabled" rows="4"
+                                      clearable placeholder="通知人提单描述" ></el-input>
+                        </el-form-item>
+                    </div>
+                </el-col>
+                <el-col :span="6">
+                    <el-form-item label="第二通知人" prop="mNotify2CnName" >
+                        <search-query :datalist="mNotify2Data"
+                                      :selectValue="assemblyForm.mNotify2CnName"
+                                      :filterable="true"
+                                      :clearable="true"
+                                      :remote="true"
+                                      :disabled="detailData.seeDisabled"
+                                      :buttonIf="false"
+                                      :forParameter="{key:'id',label:'cnName',value:'cnName'}"
+                                      @remoteMethod="remoteMethod($event,'mNotify2')"
+                                      @corpChange="corpChange($event,'mNotify2')" >
+                        </search-query>
+                    </el-form-item>
+                    <div style="margin-top: 10px">
+                        <el-form-item label="" prop="mNotify2Details" >
+                            <el-input type="textarea" style="width: 100%;" v-model="assemblyForm.mNotify2Details"
+                                      size="small" autocomplete="off"
+                                      :disabled="detailData.seeDisabled" rows="4"
+                                      clearable placeholder="第二通知人提单描述" ></el-input>
+                        </el-form-item>
+                    </div>
+                </el-col>
+            </el-rwo>
         </el-form>
     </div>
 </template>
@@ -149,7 +244,7 @@
 <script>
     import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
     import {getBvesselsList} from "@/api/iosBasicData/bvessels";
-    import {getBcorpsList} from "@/api/iosBasicData/bcorps";
+    import {getBcorpsList, getBcorpslistByType} from "@/api/iosBasicData/bcorps";
     import {blinesList} from "@/api/iosBasicData/blines";
 
     export default {
@@ -164,62 +259,177 @@
         },
         data(){
             return {
-                vesselCnNameData:[], // 船名数据
-                carrierCnNameData:[], // 船公司
+                vesselData:[], // 船名数据
+                carrierData:[], // 船公司
                 lineCnNameData:[], // 航线
-                bookingAgentCnNameData:[], // 订舱代理
+                bookingAgentData:[], // 订舱代理
+
+                // MB/L 发货人
+                mShipperData:[],
+                // MB/L 收货人
+                mConsigneeData:[],
+                // MB/L 通知人
+                mNotifyData:[],
+                // MB/L 第二通知人
+                mNotify2Data:[],
             }
         },
         created() {
-            this.getBvesselsListfun()
-            this.carrierCnNameListfun()
-            this.blinesListfun()
-            this.bookingAgentCnNameListfun()
+            this.vesselBvesselsListfun()
+            this.carrierBcorpsListfun()
+            this.lineblinesListfun()
+            this.bookingAgentBcorpsListfun()
+            // MB/L 发货人
+            this.mShipperBcorpsListfun()
+            // MB/L 收货人
+            this.mConsigneeBcorpsListfun()
+            // MB/L 通知人
+            this.mNotifyBcorpsListfun()
+            // MB/L 第二通知人
+            this.mNotify2BcorpsListfun()
         },
         methods:{
             /* 远程模糊查询操作用户 */
             remoteMethod(value,name){
-                if (name == 'vesselCnName'){
-                    this.getBvesselsListfun(value)
-                }else if (name == 'vesselCnName'){
-                    this.carrierCnNameListfun(value)
-                }else if (name == 'lineCnName'){
-                    this.blinesListfun(value)
-                }else if (name == 'bookingAgentCnName'){
-                    this.bookingAgentCnNameListfun(value)
-                }else {
-
+                let arr = ['mShipper','mConsignee','mNotify','mNotify2']
+                if (name == 'vessel'){
+                    this.vesselBvesselsListfun(value)
+                }
+                else if (name == 'carrier'){
+                    this.carrierBcorpsListfun(value)
+                }
+                else if (name == 'line'){
+                    this.lineblinesListfun(value)
+                }
+                else if (name == 'bookingAgent'){
+                    this.bookingAgentBcorpsListfun(value)
                 }
+                else if (arr.indexOf(name) != -1) {
+                    this[name + 'BcorpsListfun'](value)
+                }
+                else {}
 
             },
             // 下拉的监听事件
             corpChange(value,name){
-
+                let arr = ['mShipper','mConsignee','mNotify','mNotify2']
+                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)
+                        }
+                    }
+                }
+                else if (name == 'carrier') {
+                    for(let item of this[name + 'Data']) {
+                        if (item.cnName == value) {
+                            this.$set(this.assemblyForm,'carrierId',item.id)
+                            this.$set(this.assemblyForm,'carrierCnName',item.cnName)
+                            this.$set(this.assemblyForm,'carrierEnName',item.enName)
+                            this.$set(this.assemblyForm,'carrierArgreementNo',item.agreementNo)
+                        }
+                    }
+                }
+                // 订舱代理
+                else if (name == 'bookingAgent') {
+                    for(let item of this[name + 'Data']) {
+                        if (item.cnName == value) {
+                            this.$set(this.assemblyForm,'bookingAgentId',item.id)
+                            this.$set(this.assemblyForm,'bookingAgentCnName',item.cnName)
+                            this.$set(this.assemblyForm,'bookingAgentEnName',item.enName)
+                            this.$set(this.assemblyForm,'bookingRemarks',item.remarks)
+                        }
+                    }
+                }
+                // 航线
+                else if (name == 'line') {
+                    for(let item of this[name + 'Data']) {
+                        if (item.cnName == value) {
+                            this.$set(this.assemblyForm,'lineId',item.id)
+                            this.$set(this.assemblyForm,'lineCnName',item.cnName)
+                            this.$set(this.assemblyForm,'lineEnName',item.enName)
+                        }
+                    }
+                }
+                // 四个主表
+                else if (arr.indexOf(name) != -1) {
+                    for(let item of this[name + 'Data']) {
+                        if (item.cnName == value) {
+                            this.$set(this.assemblyForm,name + 'Id',item.id)
+                            this.$set(this.assemblyForm,name + 'CnName',item.cnName)
+                            this.$set(this.assemblyForm,name + 'EnName',item.enName)
+                            this.$set(this.assemblyForm,name + 'Code',item.code)
+                            this.$set(this.assemblyForm,name + 'Details',item.details)
+                            // 国家名称
+                            this.$set(this.assemblyForm,name + 'CntyName',item.cntyName)
+                            // 国家代码
+                            this.$set(this.assemblyForm,name + 'CntyCode',item.cntyCode)
+                        }
+                    }
+                }
+                else {}
             },
+
+
+            // 接口数据请求🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏
             // 获取船名数据
-            getBvesselsListfun(cnName){
+            vesselBvesselsListfun(cnName){
                 getBvesselsList(1,10,{cnName}).then(res=>{
-                    this.vesselCnNameData = res.data.data.records
+                    this.vesselData = res.data.data.records
                 })
             },
             // 获取船公司数据
-            carrierCnNameListfun(cnName){
-                getBcorpsList(1,10,{cnName,corpType:1712286570540703745}).then(res=>{
-                    this.carrierCnNameData = res.data.data.records
+            carrierBcorpsListfun(cnName){
+                let corpType = '1712286570540703745'
+                getBcorpsList(1,10,{cnName,corpType}).then(res=>{
+                    this.carrierData = res.data.data.records
                 })
             },
+
             // 获取航线数据
-            blinesListfun(cnName){
+            lineblinesListfun(cnName){
                 blinesList(1,10,{cnName}).then(res=>{
-                    this.lineCnNameData = res.data.data.records
+                    this.lineData = res.data.data.records
                 })
             },
             // 获取订舱代理数据
-            bookingAgentCnNameListfun(cnName){
-                getBcorpsList(1,10,{cnName,corpType:1712285645314990082}).then(res=>{
-                    this.bookingAgentCnNameData = res.data.data.records
+            bookingAgentBcorpsListfun(cnName){
+                let corpType = '1712285382575398914,1712285645314990082,1712285842321448962,1712286433378574338'
+                getBcorpslistByType(1,10,{cnName,corpType}).then(res=>{
+                    this.bookingAgentData = res.data.data.records
+                })
+            },
+            // 获取MB/L 发货人数据 (往来单位 前四个代理)
+            mShipperBcorpsListfun(cnName){
+                let corpType = '1712285382575398914,1712285645314990082,1712285842321448962,1712286433378574338'
+                getBcorpslistByType(1,10,{cnName,corpType}).then(res=>{
+                    this.mShipperData = res.data.data.records
                 })
             },
+            // 获取收货人数据 (往来单位 前四个代理)
+            mConsigneeBcorpsListfun(cnName){
+                let corpType = '1712285382575398914,1712285645314990082,1712285842321448962,1712286433378574338'
+                getBcorpslistByType(1,10,{cnName,corpType}).then(res=>{
+                    this.mConsigneeData = res.data.data.records
+                })
+            },
+            // 获取通知人数据 (往来单位 前四个代理)
+            mNotifyBcorpsListfun(cnName){
+                let corpType = '1712285382575398914,1712285645314990082,1712285842321448962,1712286433378574338'
+                getBcorpslistByType(1,10,{cnName,corpType}).then(res=>{
+                    this.mNotifyData = res.data.data.records
+                })
+            },
+            // 获取第二通知人数据 (往来单位 前四个代理)
+            mNotify2BcorpsListfun(cnName){
+                let corpType = '1712285382575398914,1712285645314990082,1712285842321448962,1712286433378574338'
+                getBcorpslistByType(1,10,{cnName,corpType}).then(res=>{
+                    this.mNotify2Data = res.data.data.records
+                })
+            },
+
         }
     }
 </script>

+ 1 - 2
src/views/iosBasicData/SeafreightExportF/bills/billsDetails.vue

@@ -133,14 +133,13 @@
                     </el-tab-pane>
                     <el-tab-pane label="MB/L信息" name="second">
                         <mbinformation :assemblyForm="form" :detailData="detailData"></mbinformation>
-
                     </el-tab-pane>
                     <el-tab-pane label="配箱" name="third">
                         <DistributionBox :assemblyForm="form" :detailData="detailData" ></DistributionBox>
                     </el-tab-pane>
                     <el-tab-pane label="单证中心" name="fourth">单证中心</el-tab-pane>
                     <el-tab-pane label="费用" name="fifth">
-                        <feecenter></feecenter>
+                        <feecenter :pid="form.id"></feecenter>
                     </el-tab-pane>
                     <el-tab-pane label="EDI CODE" name="sixth">
                         <edicode :assemblyForm="form" :detailData="detailData"></edicode>