Browse Source

1.首页新加到港提醒功能
2.基础资料新加客户唯一ID 客户来源和唯一ID必填
3.海运出口 新加船代 客户来源 多选项

Qukatie 1 month ago
parent
commit
86f7ab3300

+ 22 - 1
src/api/wel.js

@@ -180,7 +180,7 @@ export const documentQuantityStatistics = (query) => {
 // 新家的首页业务员和数量金额的表格
 export const xindocumentQuantityStatistics = (query) => {
   return request({
-  url: '/api/blade-sales-part/orderStatistics/salesman',
+    url: '/api/blade-sales-part/orderStatistics/salesman',
     method: 'get',
     params: query
   })
@@ -269,3 +269,24 @@ export const withdrawalReminder = (query) => {
   })
 }
 
+
+// 货代趋势图
+export const arrivalReminder = (query) => {
+  return request({
+    url: '/api/blade-los/indexStatistics/arrivalReminder',
+    method: 'get',
+    params: query
+  })
+}
+// 货代趋势图
+export const arrivalReminderList = (current, size, params) => {
+  return request({
+    url: '/api/blade-los/indexStatistics/arrivalReminderList',
+    method: 'get',
+    params: {
+      ...params,
+      current,
+      size,
+    }
+  })
+}

+ 51 - 20
src/views/iosBasicData/OceanFreightImport/bills/assembly/formbottom.vue

@@ -75,7 +75,8 @@
                             <span style="color: #1e9fff">装箱方式</span>
                         </span>
                         <search-query :datalist="loadTypeData" :selectValue="assemblyForm.loadType" :filterable="true"
-                            :clearable="true" :remote="true" :disabled="detailData.seeDisabled" :buttonIf="false" :forParameter="{ key: 'dictKey', label: 'dictValue', value: 'dictKey', }"
+                            :clearable="true" :remote="true" :disabled="detailData.seeDisabled" :buttonIf="false"
+                            :forParameter="{ key: 'dictKey', label: 'dictValue', value: 'dictKey', }"
                             placeholder="请选择装箱方式" @corpChange="corpChange($event, 'loadType')">
                         </search-query>
                     </el-form-item>
@@ -85,8 +86,9 @@
                         <span slot="label">
                             <span style="color: #1e9fff">业务类型</span>
                         </span>
-                        <search-query :datalist="businessTypesData" :selectValue="assemblyForm.businessTypes"  :forParameter="{ key: 'dictKey', label: 'dictValue', value: 'dictKey', }"
-                            :filterable="true" :clearable="true" :remote="true" :disabled="detailData.seeDisabled" :buttonIf="false"
+                        <search-query :datalist="businessTypesData" :selectValue="assemblyForm.businessTypes"
+                            :forParameter="{ key: 'dictKey', label: 'dictValue', value: 'dictKey', }" :filterable="true"
+                            :clearable="true" :remote="true" :disabled="detailData.seeDisabled" :buttonIf="false"
                             placeholder="请选择业务类型" @corpChange="corpChange($event, 'businessTypes')">
                         </search-query>
                     </el-form-item>
@@ -113,8 +115,9 @@
                             @remoteMethod="remoteMethod($event, 'issueType')" @corpChange="corpChange($event, 'issueType')"
                             @corpFocus="remoteMethod($event, 'issueType')">
                         </search-query> -->
-                        <el-select style="width: 100%" v-model="assemblyForm.issueType" size="small" placeholder="请选择签单方式"
-                            :filterable="true" :clearable="true" :disabled="detailData.seeDisabled">
+                        <el-select style="width: 100%" v-model="assemblyForm.issueType" size="small"
+                            placeholder="请选择签单方式" :filterable="true" :clearable="true"
+                            :disabled="detailData.seeDisabled">
                             <el-option v-for="item in issueTypeData" :key="item.dictKey" :label="item.dictValue"
                                 :value="item.dictKey">
                             </el-option>
@@ -139,10 +142,11 @@
                         <span slot="label">
                             <span style="color: #1e9fff">副本份数</span>
                         </span>
-                        <search-query :datalist="numberOfData" :selectValue="assemblyForm.numberOfCopy" :clearable="true"
-                            :disabled="detailData.seeDisabled" :buttonIf="false"
-                            :forParameter="{ key: 'dictKey', label: 'dictValue', value: 'dictValue' }" placeholder="请选择副本份数"
-                            @corpChange="corpChange($event, 'Copy')" @corpFocus="remoteMethod($event, 'numberOfCopy')">
+                        <search-query :datalist="numberOfData" :selectValue="assemblyForm.numberOfCopy"
+                            :clearable="true" :disabled="detailData.seeDisabled" :buttonIf="false"
+                            :forParameter="{ key: 'dictKey', label: 'dictValue', value: 'dictValue' }"
+                            placeholder="请选择副本份数" @corpChange="corpChange($event, 'Copy')"
+                            @corpFocus="remoteMethod($event, 'numberOfCopy')">
                         </search-query>
                     </el-form-item>
                 </el-col>
@@ -168,6 +172,7 @@
                         </el-date-picker>
                     </el-form-item>
                 </el-col>
+               
                 <!--<el-col :span="6">-->
                 <!--    <el-form-item label="服务方式" prop="serviceTerms" >-->
                 <!--        <span slot="label">-->
@@ -190,13 +195,25 @@
                 <!--</el-col>-->
             </el-row>
             <el-row>
+                 <el-col :span="6">
+                    <el-form-item label="船代" prop="shippingAgencyCname">
+                        <span slot="label">
+                            <span style="color: #1e9fff">船代</span>
+                        </span>
+                        <dic-select v-model="assemblyForm.shippingAgencyCname" placeholder="船代" key="id"
+                            label="shortName" res="records"
+                            url="/blade-los/bcorps/selectList?current=1&size=5&corpTypeName=船代" :filterable="true"
+                            :remote="true" dataName="shortName" @selectChange="dicChange('shippingAgencyCname', $event)"
+                            :slotRight="true" rightLabel="code" :disabled="detailData.seeDisabled"></dic-select>
+                    </el-form-item>
+                </el-col>
                 <el-col :span="6">
                     <el-form-item label="箱数或件数大写" prop="quantityPackingDescr" label-width="100px">
                         <span slot="label">
                             <span style="color: #1e9fff">箱数或件数大写</span>
                         </span>
-                        <el-input type="age" style="width: 100%;" v-model="assemblyForm.quantityPackingDescr" size="small"
-                            autocomplete="off" :disabled="true" clearable placeholder="箱数或件数大写"></el-input>
+                        <el-input type="age" style="width: 100%;" v-model="assemblyForm.quantityPackingDescr"
+                            size="small" autocomplete="off" :disabled="true" clearable placeholder="箱数或件数大写"></el-input>
                     </el-form-item>
                 </el-col>
                 <el-col :span="6">
@@ -213,15 +230,17 @@
         </el-form>
 
 
-        <el-dialog title="INTTRA EDI" :visible.sync="inttraVisible" width="50%" append-to-body :before-close="beforeClose">
+        <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.detail[`inttra${inttraTitle}CorpName`]" :filterable="true"
-                                    :clearable="true" :remote="true" :disabled="detailData.seeDisabled" :buttonIf="false"
+                                    :selectValue="assemblyForm.detail[`inttra${inttraTitle}CorpName`]"
+                                    :filterable="true" :clearable="true" :remote="true"
+                                    :disabled="detailData.seeDisabled" :buttonIf="false"
                                     :forParameter="{ key: 'id', label: 'cnName', value: 'cnName' }"
                                     :placeholder="`请选择${assemblyForm.serviceTerms} 客户名称`"
                                     @remoteMethod="remoteMethod($event, `inttra${inttraTitle}`)"
@@ -233,8 +252,8 @@
                         <el-col :span="12">
                             <el-form-item :label="`${assemblyForm.serviceTerms} 客户地址`">
                                 <el-input type="age" style="width: 100%;"
-                                    v-model="assemblyForm.detail[`inttra${inttraTitle}CorpAddr`]" size="small" autocomplete="off"
-                                    :disabled="detailData.seeDisabled" clearable
+                                    v-model="assemblyForm.detail[`inttra${inttraTitle}CorpAddr`]" size="small"
+                                    autocomplete="off" :disabled="detailData.seeDisabled" clearable
                                     :placeholder="`请输入${assemblyForm.serviceTerms} 客户地址`"></el-input>
                             </el-form-item>
                         </el-col>
@@ -249,8 +268,8 @@
                         <el-col :span="12">
                             <el-form-item :label="`${assemblyForm.serviceTerms} 客户联系人电话`">
                                 <el-input type="age" style="width: 100%;"
-                                    v-model="assemblyForm.detail[`inttra${inttraTitle}CorpTel`]" size="small" autocomplete="off"
-                                    :disabled="detailData.seeDisabled" clearable
+                                    v-model="assemblyForm.detail[`inttra${inttraTitle}CorpTel`]" size="small"
+                                    autocomplete="off" :disabled="detailData.seeDisabled" clearable
                                     :placeholder="`请输入${assemblyForm.serviceTerms} 客户联系人电话`"></el-input>
                             </el-form-item>
                         </el-col>
@@ -273,9 +292,9 @@ import { getWorkDicts } from "@/api/system/dictbiz";
 import { bportsList } from "@/api/iosBasicData/bports";
 import emailhash from '@/views/iosBasicData/OceanFreightImport/bills/assembly/Jsonfile/emailhash.json'
 import { getBcorpsattnList } from "@/api/iosBasicData/bcorpsattn";
-
+import dicSelect from "@/components/dicSelect/main";
 export default {
-    components: { SearchQuery },
+    components: { SearchQuery, dicSelect },
     props: {
         assemblyForm: {
             type: Object
@@ -336,6 +355,18 @@ export default {
         this.getWorkDictsfun()
     },
     methods: {
+        dicChange(name, row) {
+            if (name == 'shippingAgencyCname') {
+                if (row) {
+                    this.assemblyForm.shippingAgencyId = row.id
+                    this.assemblyForm.shippingAgencyEname = row.enName
+                } else {
+                    this.assemblyForm.shippingAgencyId = null
+                    this.assemblyForm.shippingAgencyEname = null
+                    this.assemblyForm.shippingAgencyCname = null
+                }
+            }
+        },
         // 远程搜索
         remoteMethod(value, name) {
             let inttraArr = ['inttraDoorTo', 'inttraToDoor']

+ 88 - 47
src/views/iosBasicData/SeafreightExportF/bills/assembly/formbottom.vue

@@ -15,7 +15,7 @@
             <!--                              :remote="true"-->
             <!--                              :disabled="detailData.seeDisabled || generateBillsfalse"-->
             <!--                              :buttonIf="false"-->
-            <!--                              :forParameter="{key:'id',label:'cnName',value:'cnName'}"-->
+            <!--                              :forParameter="{key:'id',label:'cnNafme',value:'cnName'}"-->
             <!--                              placeholder="请选择场站"-->
             <!--                              @remoteMethod="remoteMethod($event,'cy')"-->
             <!--                              @corpChange="corpChange($event,'cy')"-->
@@ -75,7 +75,8 @@
                             <span style="color: #1e9fff">装箱方式</span>
                         </span>
                         <search-query :datalist="loadTypeData" :selectValue="assemblyForm.loadType" :filterable="true"
-                            :clearable="true" :remote="true" :disabled="detailData.seeDisabled" :buttonIf="false" :forParameter="{ key: 'dictKey', label: 'dictValue', value: 'dictKey', }"
+                            :clearable="true" :remote="true" :disabled="detailData.seeDisabled" :buttonIf="false"
+                            :forParameter="{ key: 'dictKey', label: 'dictValue', value: 'dictKey', }"
                             placeholder="请选择装箱方式" @corpChange="corpChange($event, 'loadType')">
                         </search-query>
                     </el-form-item>
@@ -85,8 +86,9 @@
                         <span slot="label">
                             <span style="color: #1e9fff">业务类型</span>
                         </span>
-                        <search-query :datalist="businessTypesData" :selectValue="assemblyForm.businessTypes" :forParameter="{ key: 'dictKey', label: 'dictValue', value: 'dictKey', }"
-                            :filterable="true" :clearable="true" :remote="true" :disabled="detailData.seeDisabled" :buttonIf="false"
+                        <search-query :datalist="businessTypesData" :selectValue="assemblyForm.businessTypes"
+                            :forParameter="{ key: 'dictKey', label: 'dictValue', value: 'dictKey', }" :filterable="true"
+                            :clearable="true" :remote="true" :disabled="detailData.seeDisabled" :buttonIf="false"
                             placeholder="请选择业务类型" @corpChange="corpChange($event, 'businessTypes')">
                         </search-query>
                     </el-form-item>
@@ -135,10 +137,11 @@
                             @remoteMethod="remoteMethod($event, 'issueType')" @corpChange="corpChange($event, 'issueType')"
                             @corpFocus="remoteMethod($event, 'issueType')">
                         </search-query> -->
-                        <el-select style="width: 100%" v-model="assemblyForm.issueType" size="small" placeholder="请选择签单方式"
-                            :filterable="true" :clearable="true" :disabled="detailData.seeDisabled">
-                            <el-option v-for="item in issueTypeData" :key="item.dictKey"
-                                :label="item.dictValue" :value="item.dictKey">
+                        <el-select style="width: 100%" v-model="assemblyForm.issueType" size="small"
+                            placeholder="请选择签单方式" :filterable="true" :clearable="true"
+                            :disabled="detailData.seeDisabled">
+                            <el-option v-for="item in issueTypeData" :key="item.dictKey" :label="item.dictValue"
+                                :value="item.dictKey">
                             </el-option>
                         </el-select>
                     </el-form-item>
@@ -161,10 +164,11 @@
                         <span slot="label">
                             <span style="color: #1e9fff">副本份数</span>
                         </span>
-                        <search-query :datalist="numberOfData" :selectValue="assemblyForm.numberOfCopy" :clearable="true"
-                            :disabled="detailData.seeDisabled" :buttonIf="false"
-                            :forParameter="{ key: 'dictKey', label: 'dictValue', value: 'dictValue' }" placeholder="请选择副本份数"
-                            @corpChange="corpChange($event, 'Copy')" @corpFocus="remoteMethod($event, 'numberOfCopy')">
+                        <search-query :datalist="numberOfData" :selectValue="assemblyForm.numberOfCopy"
+                            :clearable="true" :disabled="detailData.seeDisabled" :buttonIf="false"
+                            :forParameter="{ key: 'dictKey', label: 'dictValue', value: 'dictValue' }"
+                            placeholder="请选择副本份数" @corpChange="corpChange($event, 'Copy')"
+                            @corpFocus="remoteMethod($event, 'numberOfCopy')">
                         </search-query>
                     </el-form-item>
                 </el-col>
@@ -176,7 +180,8 @@
                         <search-query :datalist="hpayplaceData" :selectValue="assemblyForm.hpayplace" :filterable="true"
                             :clearable="true" :remote="true" :disabled="detailData.seeDisabled" :buttonIf="false"
                             :forParameter="{ key: 'id', label: 'enName', value: 'enName' }" placeholder="请选择HB/L付款地点"
-                            @remoteMethod="remoteMethod($event, 'hpayplace')" @corpChange="corpChange($event, 'hpayplace')"
+                            @remoteMethod="remoteMethod($event, 'hpayplace')"
+                            @corpChange="corpChange($event, 'hpayplace')"
                             @corpFocus="remoteMethod($event, 'hpayplace')">
                         </search-query>
                         <!--<el-input type="age" style="width: 100%;" v-model="assemblyForm.hpayplace"-->
@@ -193,7 +198,8 @@
                         <search-query :datalist="mpayplaceData" :selectValue="assemblyForm.mpayplace" :filterable="true"
                             :clearable="true" :remote="true" :disabled="detailData.seeDisabled" :buttonIf="false"
                             :forParameter="{ key: 'id', label: 'enName', value: 'enName' }" placeholder="请选择MB/L付款地点"
-                            @remoteMethod="remoteMethod($event, 'mpayplace')" @corpChange="corpChange($event, 'mpayplace')"
+                            @remoteMethod="remoteMethod($event, 'mpayplace')"
+                            @corpChange="corpChange($event, 'mpayplace')"
                             @corpFocus="remoteMethod($event, 'mpayplace')">
                         </search-query>
                         <!--<el-input type="age" style="width: 100%;" v-model="assemblyForm.mPayplace"-->
@@ -217,7 +223,8 @@
                     </el-form-item>
                 </el-col>
                 <el-col :span="6">
-                    <el-button size="small" style="margin:3px 0 0 10px;" type="primary" @click="inttraAdd">发送 INTTRA EDI 时 DOOR TO 或
+                    <el-button size="small" style="margin:3px 0 0 10px;" type="primary" @click="inttraAdd">发送 INTTRA EDI
+                        时 DOOR TO 或
                         TO DOOR 联系人信息</el-button>
                 </el-col>
             </el-row>
@@ -239,8 +246,7 @@
                             <span style="color: #1e9fff">退舱日期</span>
                         </span>
                         <el-date-picker v-model="assemblyForm.bookingWithdrawTime" type="date" style="width: 100%;"
-                            value-format="yyyy-MM-dd HH:mm" size="small" disabled
-                            placeholder="请选择退舱日期">
+                            value-format="yyyy-MM-dd HH:mm" size="small" disabled placeholder="请选择退舱日期">
                         </el-date-picker>
                     </el-form-item>
                 </el-col>
@@ -261,20 +267,39 @@
                         <!--          clearable placeholder="请输入签单地点" ></el-input>-->
                     </el-form-item>
                 </el-col>
-            </el-row>
-            <el-row>
                 <el-col :span="6">
-                    <el-checkbox size="medium" :true-label="1" :false-label="0" :disabled="detailData.seeDisabled"
-                        v-model="assemblyForm.isLargeCargo">大件货</el-checkbox>
+                    <el-form-item label="客户来源" prop="corpSource">
+                        <template slot-scope="{}" slot="label">
+                            <span style="color: #409EFF;cursor: pointer" @click.stop="addDic('客户来源')">客户来源</span>
+                        </template>
+                        <el-select v-model="assemblyForm.corpSource" size="small" placeholder="请选择客户来源" clearable
+                            :style="{ width: '100%' }">
+                            <el-option v-for="(item, index) in corpSourceDict" :key="index" :label="item.dictValue"
+                                :value="item.dictKey" :disabled="item.disabled"></el-option>
+                        </el-select>
+                    </el-form-item>
                 </el-col>
-                <el-col :span="6">
+            </el-row>
+            <el-row>
+                <el-col :span="12">
+
                     <div>
                         <el-checkbox size="medium" :true-label="1" :false-label="0" :disabled="detailData.seeDisabled"
-                            v-model="assemblyForm.isNeedLand">陆运</el-checkbox>
+                            v-model="assemblyForm.isCutOffTheOrder">截单</el-checkbox>
+                        <el-checkbox size="medium" :true-label="1" :false-label="0" :disabled="detailData.seeDisabled"
+                            v-model="assemblyForm.isManifest">舱单</el-checkbox>
                         <el-checkbox size="medium" :true-label="1" :false-label="0" :disabled="detailData.seeDisabled"
-                            v-model="assemblyForm.isNeedDeclare">需报关</el-checkbox>
+                            v-model="assemblyForm.isNeedDeclare">报关</el-checkbox>
+                        <el-checkbox size="medium" :true-label="1" :false-label="0" :disabled="detailData.seeDisabled"
+                            v-model="assemblyForm.isVgm">VGM</el-checkbox>
+                        <el-checkbox size="medium" :true-label="1" :false-label="0" :disabled="detailData.seeDisabled"
+                            v-model="assemblyForm.isPutOrder">放单</el-checkbox>
+                        <el-checkbox size="medium" :true-label="1" :false-label="0" :disabled="detailData.seeDisabled"
+                            v-model="assemblyForm.isNeedLand">陆运</el-checkbox>
                         <el-checkbox size="medium" :true-label="1" :false-label="0" :disabled="detailData.seeDisabled"
                             v-model="assemblyForm.isNeedIq">需三检</el-checkbox>
+                        <el-checkbox size="medium" :true-label="1" :false-label="0" :disabled="detailData.seeDisabled"
+                            v-model="assemblyForm.isLargeCargo">大件货</el-checkbox>
                     </div>
                 </el-col>
                 <el-col :span="6">
@@ -282,8 +307,9 @@
                         <span slot="label">
                             <span style="color: #1e9fff">箱数或件数大写</span>
                         </span>
-                        <el-input type="age" style="width: 100%;" v-model="assemblyForm.quantityPackingDescr" size="small"
-                            autocomplete="off" :disabled="true" clearable placeholder="请输入箱数或件数大写"></el-input>
+                        <el-input type="age" style="width: 100%;" v-model="assemblyForm.quantityPackingDescr"
+                            size="small" autocomplete="off" :disabled="true" clearable
+                            placeholder="请输入箱数或件数大写"></el-input>
                     </el-form-item>
                 </el-col>
                 <el-col :span="6">
@@ -300,7 +326,8 @@
         </el-form>
 
 
-        <el-dialog title="INTTRA EDI" :visible.sync="inttraVisible" width="50%" append-to-body :before-close="beforeClose">
+        <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">-->
@@ -359,33 +386,36 @@
                     <el-row v-if="inttraDoorToVisible" :gutter="20">
                         <el-col :span="12">
                             <el-form-item :label="`DOOR TO 客户名称`" prop="hNotify2CnName">
-                                <el-input type="age" style="width: 100%;" v-model="assemblyForm.detail[`inttraDoorToCorpName`]"
-                                    size="small" autocomplete="off" :disabled="detailData.seeDisabled" clearable
+                                <el-input type="age" style="width: 100%;"
+                                    v-model="assemblyForm.detail[`inttraDoorToCorpName`]" size="small"
+                                    autocomplete="off" :disabled="detailData.seeDisabled" clearable
                                     :placeholder="`请输入 DOOR TO 客户名称`"
                                     @input="inttraTitleInput($event, 'CorpName')"></el-input>
                             </el-form-item>
                         </el-col>
                         <el-col :span="12">
                             <el-form-item :label="`DOOR TO 客户地址`">
-                                <el-input type="age" style="width: 100%;" v-model="assemblyForm.detail[`inttraDoorToCorpAddr`]"
-                                    size="small" autocomplete="off" :disabled="detailData.seeDisabled" clearable
+                                <el-input type="age" style="width: 100%;"
+                                    v-model="assemblyForm.detail[`inttraDoorToCorpAddr`]" size="small"
+                                    autocomplete="off" :disabled="detailData.seeDisabled" clearable
                                     :placeholder="`请输入${inttraText} 客户地址`"
                                     @input="inttraTitleInput($event, 'CorpAddr')"></el-input>
                             </el-form-item>
                         </el-col>
                         <el-col :span="12">
                             <el-form-item :label="`DOOR TO 联系人`">
-                                <el-input type="age" style="width: 100%;" v-model="assemblyForm.detail[`inttraDoorToCorpContacts`]"
-                                    size="small" autocomplete="off" :disabled="detailData.seeDisabled" clearable
+                                <el-input type="age" style="width: 100%;"
+                                    v-model="assemblyForm.detail[`inttraDoorToCorpContacts`]" size="small"
+                                    autocomplete="off" :disabled="detailData.seeDisabled" clearable
                                     :placeholder="`请输入 DOOR TO 联系人`"
                                     @input="inttraTitleInput($event, 'CorpContacts')"></el-input>
                             </el-form-item>
                         </el-col>
                         <el-col :span="12">
                             <el-form-item :label="`DOOR TO 联系电话`">
-                                <el-input type="age" style="width: 100%;" v-model="assemblyForm.detail[`inttraDoorToCorpTel`]"
-                                    size="small" autocomplete="off" :disabled="detailData.seeDisabled" clearable
-                                    :placeholder="`请输入 DOOR TO 联系人电话`"
+                                <el-input type="age" style="width: 100%;"
+                                    v-model="assemblyForm.detail[`inttraDoorToCorpTel`]" size="small" autocomplete="off"
+                                    :disabled="detailData.seeDisabled" clearable :placeholder="`请输入 DOOR TO 联系人电话`"
                                     @input="inttraTitleInput($event, 'CorpTel')"></el-input>
                             </el-form-item>
                         </el-col>
@@ -395,33 +425,36 @@
                     <el-row v-if="inttraToDoorVisible" :gutter="20">
                         <el-col :span="12">
                             <el-form-item :label="`TO DOOR 客户名称`" prop="hNotify2CnName">
-                                <el-input type="age" style="width: 100%;" v-model="assemblyForm.detail[`inttraToDoorCorpName`]"
-                                    size="small" autocomplete="off" :disabled="detailData.seeDisabled" clearable
+                                <el-input type="age" style="width: 100%;"
+                                    v-model="assemblyForm.detail[`inttraToDoorCorpName`]" size="small"
+                                    autocomplete="off" :disabled="detailData.seeDisabled" clearable
                                     :placeholder="`请输入 TO DOOR 客户名称`"
                                     @input="inttraTitleInput($event, 'CorpName')"></el-input>
                             </el-form-item>
                         </el-col>
                         <el-col :span="12">
                             <el-form-item :label="`TO DOOR 客户地址`">
-                                <el-input type="age" style="width: 100%;" v-model="assemblyForm.detail[`inttraToDoorCorpAddr`]"
-                                    size="small" autocomplete="off" :disabled="detailData.seeDisabled" clearable
+                                <el-input type="age" style="width: 100%;"
+                                    v-model="assemblyForm.detail[`inttraToDoorCorpAddr`]" size="small"
+                                    autocomplete="off" :disabled="detailData.seeDisabled" clearable
                                     :placeholder="`请输入 TO DOOR 客户地址`"
                                     @input="inttraTitleInput($event, 'CorpAddr')"></el-input>
                             </el-form-item>
                         </el-col>
                         <el-col :span="12">
                             <el-form-item :label="`TO DOOR 联系人`">
-                                <el-input type="age" style="width: 100%;" v-model="assemblyForm.detail[`inttraToDoorCorpContacts`]"
-                                    size="small" autocomplete="off" :disabled="detailData.seeDisabled" clearable
+                                <el-input type="age" style="width: 100%;"
+                                    v-model="assemblyForm.detail[`inttraToDoorCorpContacts`]" size="small"
+                                    autocomplete="off" :disabled="detailData.seeDisabled" clearable
                                     :placeholder="`请输入 TO DOOR 联系人`"
                                     @input="inttraTitleInput($event, 'CorpContacts')"></el-input>
                             </el-form-item>
                         </el-col>
                         <el-col :span="12">
                             <el-form-item :label="`TO DOOR 联系电话`">
-                                <el-input type="age" style="width: 100%;" v-model="assemblyForm.detail[`inttraToDoorCorpTel`]"
-                                    size="small" autocomplete="off" :disabled="detailData.seeDisabled" clearable
-                                    :placeholder="`请输入 TO DOOR 联系人电话`"
+                                <el-input type="age" style="width: 100%;"
+                                    v-model="assemblyForm.detail[`inttraToDoorCorpTel`]" size="small" autocomplete="off"
+                                    :disabled="detailData.seeDisabled" clearable :placeholder="`请输入 TO DOOR 联系人电话`"
                                     @input="inttraTitleInput($event, 'CorpTel')"></el-input>
                             </el-form-item>
                         </el-col>
@@ -468,6 +501,7 @@ export default {
     },
     data() {
         return {
+            corpSourceDict: [],
             emailhash: emailhash, // 邮箱跳转地址
             // 场站
             cyData: [],
@@ -527,7 +561,7 @@ export default {
                 this.cyBcorpslistByType(value)
             } else if (inttraArr.indexOf(name) != -1) {
                 this.inttraBcorpslistByType(value)
-            } 
+            }
             // else if (name == 'issueType') {
             //     // 签单方式
             //     this.getWorkDictsfun()
@@ -718,7 +752,7 @@ export default {
         },
         // 弹窗关闭
         beforeClose(done) {
-  done();
+            done();
         },
         // 邮箱跳转
         emailJump() {
@@ -771,6 +805,9 @@ export default {
             getWorkDicts('business_Type_detail').then(res => {
                 this.businessTypesData = res.data.data
             })
+            getWorkDicts('corp_Source').then((res) => {
+                this.corpSourceDict = res.data.data
+            });
         },
         // 获取份数数据
         numberoforiginalWorkDicts() {
@@ -815,4 +852,8 @@ export default {
 ::v-deep.el-form-item {
     margin-bottom: 10px;
 }
+
+::v-deep .el-checkbox {
+    margin-right: 10px;
+}
 </style>

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

@@ -132,6 +132,19 @@
                     </el-row>
                     <el-row>
                         <el-col :span="12">
+                            <el-form-item label="船代" prop="shippingAgencyCname">
+                                <span slot="label">
+                                    <span style="color: #1e9fff">船代</span>
+                                </span>
+                                <dic-select v-model="assemblyForm.shippingAgencyCname" placeholder="船代" key="id"
+                                    label="shortName" res="records"
+                                    url="/blade-los/bcorps/selectList?current=1&size=5&corpTypeName=船代"
+                                    :filterable="true" :remote="true" dataName="shortName"
+                                    @selectChange="dicChange('shippingAgencyCname', $event)" :slotRight="true"
+                                    rightLabel="code" :disabled="detailData.seeDisabled"></dic-select>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="12">
                             <el-form-item label="船司约号" prop="carrierArgreementNo">
                                 <span slot="label">
                                     <span style="color: #1e9fff">船司约号</span>
@@ -248,9 +261,10 @@ import { getBvesselsList } from "@/api/iosBasicData/bvessels";
 import { getBcorpsList, getBcorpslistByType } from "@/api/iosBasicData/bcorps";
 import { blinesList } from "@/api/iosBasicData/blines";
 import { NdayDate } from "@/util/date";
+import dicSelect from "@/components/dicSelect/main";
 import _ from "lodash";
 export default {
-    components: { SearchQuery },
+    components: { SearchQuery, dicSelect },
     props: {
         assemblyForm: {
             type: Object
@@ -291,6 +305,18 @@ export default {
 
     },
     methods: {
+        dicChange(name, row) {
+            if (name == 'shippingAgencyCname') {
+                if (row) {
+                    this.assemblyForm.shippingAgencyId = row.id
+                    this.assemblyForm.shippingAgencyEname = row.enName
+                } else {
+                    this.assemblyForm.shippingAgencyId = null
+                    this.assemblyForm.shippingAgencyEname = null
+                    this.assemblyForm.shippingAgencyCname = null
+                }
+            }
+        },
         // text文本框input
         textareaBlur(name) {
             console.log(name, 1160)
@@ -392,16 +418,16 @@ export default {
                         this.$set(this.assemblyForm.detail, name + 'CntyCode', item.cntyCode)
 
                         var details = typeof item.details == "string" ? item.details.trim() : ""
-                        if(!details && name == 'mconsignee'){
+                        if (!details && name == 'mconsignee') {
                             var s = typeof item.enName == "string" && item.enName.trim().toUpperCase() ? item.enName.trim() : ""
-                            if(s) details += `${s}\r\n`
-                            s = typeof item.enAddr == "string" && item.enAddr.trim()? item.enAddr.trim().toUpperCase() : ""
-                            if(s) details += `${s}\r\n`
-                            s = typeof item.tel == "string" && item.tel.trim() ? ('TEL:'+item.tel.trim().toUpperCase()) : ""
-                            s += typeof item.fax == "string" && item.fax.trim() ? ((s ? " / " : "")+'FAX:'+item.fax.trim().toUpperCase()) : ""
-                            if(s) details += `${s}\r\n`
+                            if (s) details += `${s}\r\n`
+                            s = typeof item.enAddr == "string" && item.enAddr.trim() ? item.enAddr.trim().toUpperCase() : ""
+                            if (s) details += `${s}\r\n`
+                            s = typeof item.tel == "string" && item.tel.trim() ? ('TEL:' + item.tel.trim().toUpperCase()) : ""
+                            s += typeof item.fax == "string" && item.fax.trim() ? ((s ? " / " : "") + 'FAX:' + item.fax.trim().toUpperCase()) : ""
+                            if (s) details += `${s}\r\n`
                             s = typeof item.email == "string" && item.email.trim() ? ('EMAIL:' + item.email.trim().toUpperCase()) : ""
-                            if(s) details += `${s}\r\n`
+                            if (s) details += `${s}\r\n`
                         }
                         this.$set(this.assemblyForm.detail, name + 'Details', details)
                     }

+ 31 - 23
src/views/iosBasicData/bcorps/detailsPage.vue

@@ -343,13 +343,13 @@
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="客户唯一ID" prop="corpOnlyId" v-if="tenantId == 607913" 
-                :rules="{required: true, message: '', trigger: 'blur'}">
+                <el-form-item label="客户唯一ID" prop="corpOnlyId" v-if="tenantId == 607913"
+                  :rules="{ required: true, message: '', trigger: 'blur' }">
                   <el-input v-model="formData.corpOnlyId" size="small" placeholder="请输入客户唯一ID" clearable
                     :style="{ width: '100%' }">
                   </el-input>
                 </el-form-item>
-                     <el-form-item label="客户唯一ID" prop="corpOnlyId" v-if="tenantId != 607913">
+                <el-form-item label="客户唯一ID" prop="corpOnlyId" v-if="tenantId != 607913">
                   <el-input v-model="formData.corpOnlyId" size="small" placeholder="请输入客户唯一ID" clearable
                     :style="{ width: '100%' }">
                   </el-input>
@@ -1441,21 +1441,28 @@ export default {
       }
     });
     this.getAllWorkDicts()
-    isProcurement({ "param": "corpSource.required" }).then(res => {
-      // res.data.data === '1'
-      if (res.data.data == 1) {
-        this.rules.corpSource = [{
-          required: true,
-          message: ' ',
-          trigger: 'change'
-        }]
-        this.rules.sourceType = [{
-          required: false,
-          message: ' ',
-          trigger: 'change'
-        }]
-      }
-    })
+    // isProcurement({ "param": "corpSource.required" }).then(res => {
+    //   // res.data.data === '1'
+    //   if (res.data.data == 1) {
+    //     this.rules.corpSource = [{
+    //       required: true,
+    //       message: ' ',
+    //       trigger: 'change'
+    //     }]
+    //     this.rules.sourceType = [{
+    //       required: false,
+    //       message: ' ',
+    //       trigger: 'change'
+    //     }]
+    //   }
+    // })
+    if (this.tenantId == 607913) {
+      this.rules.corpSource = [{
+        required: true,
+        message: ' ',
+        trigger: 'change'
+      }]
+    }
     // PS RATE 内部报价最大值
     isProcurement({ "param": "psRate.Internal.max" }).then(res => {
       console.log('psRateInternalMax', res.data.data)
@@ -1744,12 +1751,13 @@ export default {
             this.$message.warning('请填写来源明细')
             return;
           }
-              // 判断来源明细是否填写
-          if (!this.formData.corpSource) {
-            this.$message.warning('请填写客户来源')
-            return;
-          }
+          // 判断来源明细是否填写
+
           if (this.tenantId == 607913) {
+            if (!this.formData.corpSource) {
+              this.$message.warning('请填写客户来源')
+              return;
+            }
             if (!this.formData.corpOnlyId) {
               this.$message.warning('请填写客户唯一ID')
               return;

+ 8 - 1
src/views/iosBasicData/bcorps/index.vue

@@ -189,7 +189,7 @@ export default {
         searchIcon: true,
         searchIndex: 3,
         searchShow: true,
-        searchMenuSpan: 18,
+        searchMenuSpan: 12,
         border: true,
         index: true,
         viewBtn: true,
@@ -385,6 +385,13 @@ export default {
             },
           },
           {
+            label: "客户唯一ID",
+            prop: "corpOnlyId",
+            width: 140,
+            overHidden: true,
+            search: true,
+          },
+          {
             label: "分管员",
             prop: "adminProfilesName",
             width: "100",

+ 139 - 4
src/views/wel/components/losAssembly/losrealtime.vue

@@ -14,17 +14,32 @@
               本月
             </div>
           </div>
-          <el-date-picker v-model="realDate" type="daterange" size="mini" start-placeholder="开始日期" end-placeholder="结束日期"
-            value-format="yyyy-MM-dd" style="margin-right:10px;width:240px" :clearable="false">
+          <el-date-picker v-model="realDate" type="daterange" size="mini" start-placeholder="开始日期"
+            end-placeholder="结束日期" value-format="yyyy-MM-dd" style="margin-right:10px;width:240px" :clearable="false">
           </el-date-picker>
           <el-button type="primary" size="mini" icon="el-icon-search" style="margin-right:10px;" @click="search"
             circle></el-button>
-          <i class="el-icon-refresh-right" style="cursor: pointer;font-size:20px;line-height: 15px;" @click="refresh"></i>
+          <i class="el-icon-refresh-right" style="cursor: pointer;font-size:20px;line-height: 15px;"
+            @click="refresh"></i>
         </span>
       </div>
       <div style="display: flex;justify-content: center;">
         <div class="content" v-loading="loading">
           <div class="content-item">
+            <div class="card" @click.stop="dialogVisible = true">
+              <div class="card-title card-title3">
+                <span>
+                  港
+                </span>
+              </div>
+              <div class="card-content">
+                <span class="card-content-num">{{ DGTX.arrivalReminder }}</span>
+                <span class="card-content-text">到港提醒</span>
+              </div>
+            </div>
+          </div>
+          <div class="divider" />
+          <div class="content-item">
             <div class="card">
               <div class="card-title card-title1">
                 <span>
@@ -96,12 +111,28 @@
         </div>
       </div>
     </el-card>
+    <el-dialog title="到港提醒" :visible.sync="dialogVisible" width="50%" append-to-body>
+      <span v-if="dialogVisible">
+        <avue-crud :table-loading="loading" :option="option" :data="dataList" @on-load="onLoad" :page.sync="page"
+          @current-change="currentChange" @size-change="sizeChange">
+          <template slot="shortName" slot-scope="{ row }">
+            <span style="color: #1e9fff;cursor: pointer;" @click="rowEdit(row)">{{ row.shortName }}</span>
+          </template>
+          <template slot="mblno" slot-scope="{ row }">
+            <span style="color: #1e9fff;cursor: pointer;" @click="rowEdit(row)">{{ row.mblno }}</span>
+          </template>
+        </avue-crud>
+      </span>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible = false" size="mini">关 闭</el-button>
+      </span>
+    </el-dialog>
   </div>
 </template>
 
 <script>
 import { defaultDate2, defaultDate3 } from "@/util/date";
-import { businessSum, realTimeData, shipRealTimeData } from "@/api/wel";
+import { businessSum, arrivalReminder, arrivalReminderList, realTimeData, shipRealTimeData } from "@/api/wel";
 export default {
   name: "basicContainer",
   props: {
@@ -109,11 +140,55 @@ export default {
   },
   data() {
     return {
+      dialogVisible: false,
+      DGTX: 0,
       isActive: 1,
       loading: false,
       realDate: [],
       data: {},
       saberTenantId: '',
+      dataList: [],
+      option: {
+        header: false,
+        menu: false,
+        column: [
+          {
+            label: '客户名称',
+            prop: 'shortName',
+            overHidden: true,
+          },
+          {
+            label: '提单号',
+            prop: 'mblno',
+            overHidden: true,
+          },
+          {
+            label: 'ETD',
+            prop: 'etd',
+            overHidden: true,
+          },
+          {
+            label: 'ETA',
+            prop: 'eta',
+            overHidden: true,
+          },
+          {
+            label: '截港日期',
+            prop: 'cyReturnTime',
+            overHidden: true,
+          },
+          {
+            label: '截单日期',
+            prop: 'cyTrailerTime',
+            overHidden: true,
+          }
+        ]
+      },
+      page: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0
+      },
     };
   },
   created() {
@@ -122,8 +197,62 @@ export default {
   },
   mounted() {
     this.businessSumfun()
+    this.arrivalReminder()
   },
   methods: {
+    rowEdit(row) {
+      if (row.businessType == 'SE') {
+        if (this.$store.getters.seaFEStatus) {
+          this.$alert("海运出口页面已存在,请关闭海运出口再进行操作", "温馨提示", {
+            confirmButtonText: "确定",
+            type: 'warning',
+            callback: action => {
+            }
+          });
+        } else {
+          this.$router.push({
+            path: `/iosBasicData/SeafreightExportF/bills/index`,
+            query: {
+              id: row.id
+            }
+          })
+          this.dialogVisible=false
+        }
+      }
+      if (row.businessType == 'SI') {
+        if (this.$store.getters.OceanFIStatus) {
+          this.$alert("海运进口页面已存在,请关闭海运进口再进行操作", "温馨提示", {
+            confirmButtonText: "确定",
+            type: 'warning',
+            callback: action => {
+            }
+          });
+        } else {
+          this.$router.push({
+            path: `/iosBasicData/OceanFreightImport/bills/index`,
+            query: {
+              id: row.id
+            }
+          })
+          this.dialogVisible=false
+        }
+      }
+    },
+    onLoad(page, params = {}) {
+      this.loading = true;
+      arrivalReminderList(page.currentPage, page.pageSize).then(res => {
+        this.dataList = res.data.data.records;
+        this.page.total = res.data.data.total;
+      }).finally(() => {
+        this.loading = false;
+      })
+    },
+    currentChange(currentPage) {
+      this.page.currentPage = currentPage;
+    },
+    sizeChange(pageSize) {
+      this.page.pageSize = pageSize;
+    },
     // 获取数据
     businessSumfun() {
       businessSum({
@@ -133,11 +262,17 @@ export default {
         this.data = res.data.data
       })
     },
+    arrivalReminder() {
+      arrivalReminder().then(res => {
+        this.DGTX = res.data.data
+      })
+    },
     init() {
       if (this.realDate == null) {
         return this.$message.error("请选择日期");
       }
       this.businessSumfun()
+      this.arrivalReminder()
     },
     refresh() {
       this.init();