Browse Source

签单方式必填
SOC 新加未审核
控制箱利润金额的颜色
SOC 舱位类型取消联动
舱位数据 字典合二为一

Qukatie 3 months ago
parent
commit
35cea3e877

+ 8 - 0
src/api/iosBasicData/costcenter/soc.js

@@ -169,4 +169,12 @@ export const batchCopy = (params) => {
     method: 'get',
     params: params
   })
+}
+// 未审核
+export const batchUnreviewed = (params) => {
+  return request({
+    url: '/api/blade-los/routecost/batchUnreviewed',
+    method: 'get',
+    params: params
+  })
 }

+ 10 - 10
src/views/boxManagement/boxAdjustment/detailsPage.vue

@@ -892,20 +892,20 @@ export default {
         labelWidth: 120,
         column: [
           {
-            label: "船公司/车队",
-            prop: "purchaseCompanyName",
+            label: "放箱号",
+            prop: "containerNumber",
+            disabled: false,
             rules: [
               {
                 required: true,
                 message: " ",
                 trigger: "blur"
               }
-            ],
-            disabled: false
+            ]
           },
           {
-            label: "提单号/运单号",
-            prop: "contractNo",
+            label: "船公司/车队",
+            prop: "purchaseCompanyName",
             rules: [
               {
                 required: true,
@@ -916,16 +916,16 @@ export default {
             disabled: false
           },
           {
-            label: "放箱号",
-            prop: "containerNumber",
-            disabled: false,
+            label: "提单号/运单号",
+            prop: "contractNo",
             rules: [
               {
                 required: true,
                 message: " ",
                 trigger: "blur"
               }
-            ]
+            ],
+            disabled: false
           },
           {
             label: "调箱日期",

+ 1007 - 868
src/views/iosBasicData/OceanFreightImport/bills/assembly/formbottom.vue

@@ -1,8 +1,8 @@
 <template>
-    <div>
-        <el-form :model="assemblyForm" ref="form" label-width="90px" :disabled="disabled">
-            <el-row>
-                <!-- <el-col :span="6">
+  <div>
+    <el-form :model="assemblyForm" ref="form" label-width="90px" :disabled="disabled">
+      <el-row>
+        <!-- <el-col :span="6">
                     <el-form-item label="业务类型" prop="businessTypes">
                         <span slot="label">
                             <span style="color: #1e9fff">业务类型</span>
@@ -13,7 +13,7 @@
                         </search-query>
                     </el-form-item>
                 </el-col> -->
-                <!-- <el-col :span="6">
+        <!-- <el-col :span="6">
                     <el-form-item label="截单时间" prop="cyTrailerTime">
                         <span slot="label">
                             <span style="color: #1e9fff">截单时间</span>
@@ -24,7 +24,7 @@
                         </el-date-picker>
                     </el-form-item>
                 </el-col> -->
-                <!-- <el-col :span="6">
+        <!-- <el-col :span="6">
                     <el-form-item label="截港时间" prop="cyReturnTime">
                         <span slot="label">
                             <span style="color: #1e9fff">截港时间</span>
@@ -35,7 +35,7 @@
                         </el-date-picker>
                     </el-form-item>
                 </el-col> -->
-                <!-- <el-col :span="6">
+        <!-- <el-col :span="6">
                     <el-form-item label="应结日期" prop="dueDate">
                         <span slot="label">
                             <span style="color: #1e9fff">应结日期</span>
@@ -46,7 +46,7 @@
                         </el-date-picker>
                     </el-form-item>
                 </el-col> -->
-                <!-- <el-col :span="6">
+        <!-- <el-col :span="6">
                     <el-form-item label="订舱日期" prop="bookingDate">
                         <span slot="label">
                             <span style="color: #1e9fff">订舱日期</span>
@@ -57,61 +57,87 @@
                         </el-date-picker>
                     </el-form-item>
                 </el-col> -->
-                <el-col :span="6">
-                    <el-form-item label="正本份数" prop="numberOfObl">
-                        <span slot="label">
-                            <span style="color: #1e9fff">正本份数</span>
-                        </span>
-                        <search-query :datalist="numberOfData" :selectValue="assemblyForm.numberOfObl" :clearable="true"
-                            :disabled="detailData.seeDisabled" :buttonIf="false"
-                            :forParameter="{ key: 'dictKey', label: 'dictValue', value: 'dictValue', }"
-                            placeholder="请选择正本份数" @corpChange="corpChange($event, 'Obl')"
-                            @corpFocus="remoteMethod($event, 'numberOfObl')">
-                        </search-query>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="6">
-                    <el-form-item label="副本份数" prop="numberOfCopy">
-                        <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>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="6">
-                    <el-form-item label="服务方式" prop="serviceTerms">
-                        <span slot="label">
-                            <span style="color: #1e9fff">服务方式</span>
-                        </span>
-                        <search-query :datalist="serviceTermsData" :selectValue="assemblyForm.serviceTerms"
-                            :clearable="true" :disabled="detailData.seeDisabled" :buttonIf="false"
-                            :forParameter="{ key: 'id', label: 'code', value: 'code' }" placeholder="请选择服务方式"
-                            @remoteMethod="remoteMethod($event, 'serviceTerms')"
-                            @corpChange="corpChange($event, 'serviceTerms')"
-                            @corpFocus="remoteMethod($event, 'serviceTerms')">
-                        </search-query>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="6">
-                    <el-form-item label="航线" prop="lineCnName">
-                        <span slot="label">
-                            <span style="color: #1e9fff">航线</span>
-                        </span>
-                        <search-query :datalist="lineData" :selectValue="assemblyForm.lineCnName" :filterable="true"
-                            :clearable="true" :remote="true"
-                            :disabled="detailData.seeDisabled || (assemblyForm.billType == 'MH' && assemblyForm.masterBillNo > 0)"
-                            :buttonIf="false" :forParameter="{ key: 'id', label: 'cnName', value: 'cnName' }"
-                            placeholder="请选择航线" @remoteMethod="remoteMethod($event, 'line')"
-                            @corpChange="corpChange($event, 'line')" @corpFocus="remoteMethod($event, 'line')">
-                        </search-query>
-                    </el-form-item>
-                </el-col>
-                <!-- <el-col :span="6">
+        <el-col :span="6">
+          <el-form-item label="正本份数" prop="numberOfObl">
+            <span slot="label">
+              <span style="color: #1e9fff">正本份数</span>
+            </span>
+            <search-query
+              :datalist="numberOfData"
+              :selectValue="assemblyForm.numberOfObl"
+              :clearable="true"
+              :disabled="detailData.seeDisabled"
+              :buttonIf="false"
+              :forParameter="{ key: 'dictKey', label: 'dictValue', value: 'dictValue' }"
+              placeholder="请选择正本份数"
+              @corpChange="corpChange($event, 'Obl')"
+              @corpFocus="remoteMethod($event, 'numberOfObl')"
+            >
+            </search-query>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="副本份数" prop="numberOfCopy">
+            <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>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="服务方式" prop="serviceTerms">
+            <span slot="label">
+              <span style="color: #1e9fff">服务方式</span>
+            </span>
+            <search-query
+              :datalist="serviceTermsData"
+              :selectValue="assemblyForm.serviceTerms"
+              :clearable="true"
+              :disabled="detailData.seeDisabled"
+              :buttonIf="false"
+              :forParameter="{ key: 'id', label: 'code', value: 'code' }"
+              placeholder="请选择服务方式"
+              @remoteMethod="remoteMethod($event, 'serviceTerms')"
+              @corpChange="corpChange($event, 'serviceTerms')"
+              @corpFocus="remoteMethod($event, 'serviceTerms')"
+            >
+            </search-query>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="航线" prop="lineCnName">
+            <span slot="label">
+              <span style="color: #1e9fff">航线</span>
+            </span>
+            <search-query
+              :datalist="lineData"
+              :selectValue="assemblyForm.lineCnName"
+              :filterable="true"
+              :clearable="true"
+              :remote="true"
+              :disabled="detailData.seeDisabled || (assemblyForm.billType == 'MH' && assemblyForm.masterBillNo > 0)"
+              :buttonIf="false"
+              :forParameter="{ key: 'id', label: 'cnName', value: 'cnName' }"
+              placeholder="请选择航线"
+              @remoteMethod="remoteMethod($event, 'line')"
+              @corpChange="corpChange($event, 'line')"
+              @corpFocus="remoteMethod($event, 'line')"
+            >
+            </search-query>
+          </el-form-item>
+        </el-col>
+        <!-- <el-col :span="6">
                     <el-form-item label="业务来源" prop="srcType" :rules="[{ required: true, message: '', trigger: 'blur' }]">
                         <el-row :gutter="10">
                             <el-col :span="10">
@@ -134,7 +160,7 @@
                         </el-row>
                     </el-form-item>
                 </el-col> -->
-                <!-- <el-col :span="6">
+        <!-- <el-col :span="6">
                     <el-form-item label="AEA" prop="actualEta">
                         <span slot="label">
                             <span style="color: #1e9fff">AEA</span>
@@ -145,7 +171,7 @@
                         </el-date-picker>
                     </el-form-item>
                 </el-col> -->
-                <!-- <el-col :span="6">
+        <!-- <el-col :span="6">
                     <el-form-item label="ETA" prop="eta">
                         <span slot="label">
                             <span style="color: #1e9fff">ETA</span>
@@ -156,48 +182,76 @@
                         </el-date-picker>
                     </el-form-item>
                 </el-col> -->
-                <el-col :span="6">
-                    <el-form-item label="POL免箱使天数" prop="polFreeBoxUseDays" label-width="100px">
-                        <span slot="label">
-                            <span style="color: #1e9fff">POL免箱使天数</span>
-                        </span>
-                        <el-input v-model="assemblyForm.polFreeBoxUseDays" size="small" :controls="false"
-                            style="width: 100%;" placeholder="请输入POL免箱使天数" :disabled="detailData.seeDisabled"></el-input>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="6">
-                    <el-form-item label="POD免箱使天数" prop="podFreeBoxUseDays" label-width="100px">
-                        <span slot="label">
-                            <span style="color: #1e9fff">POD免箱使天数</span>
-                        </span>
-                        <el-input v-model="assemblyForm.podFreeBoxUseDays" size="small" :controls="false"
-                            style="width: 100%;" placeholder="请输入POD免箱使天数" :disabled="detailData.seeDisabled"></el-input>
-                    </el-form-item>
-                </el-col>
-                <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 || (assemblyForm.billType == 'MH' && assemblyForm.masterBillNo > 0)"></dic-select>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="6">
-                    <el-form-item label="退舱日期" prop="bookingWithdrawTime">
-                        <span slot="label">
-                            <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="请选择退舱日期">
-                        </el-date-picker>
-                    </el-form-item>
-                </el-col>
-                <!-- <el-col :span="6">
+        <el-col :span="6">
+          <el-form-item label="POL免箱使天数" prop="polFreeBoxUseDays" label-width="100px">
+            <span slot="label">
+              <span style="color: #1e9fff">POL免箱使天数</span>
+            </span>
+            <el-input
+              v-model="assemblyForm.polFreeBoxUseDays"
+              size="small"
+              :controls="false"
+              style="width: 100%;"
+              placeholder="请输入POL免箱使天数"
+              :disabled="detailData.seeDisabled"
+            ></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="POD免箱使天数" prop="podFreeBoxUseDays" label-width="100px">
+            <span slot="label">
+              <span style="color: #1e9fff">POD免箱使天数</span>
+            </span>
+            <el-input
+              v-model="assemblyForm.podFreeBoxUseDays"
+              size="small"
+              :controls="false"
+              style="width: 100%;"
+              placeholder="请输入POD免箱使天数"
+              :disabled="detailData.seeDisabled"
+            ></el-input>
+          </el-form-item>
+        </el-col>
+        <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 || (assemblyForm.billType == 'MH' && assemblyForm.masterBillNo > 0)"
+            ></dic-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="退舱日期" prop="bookingWithdrawTime">
+            <span slot="label">
+              <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="请选择退舱日期"
+            >
+            </el-date-picker>
+          </el-form-item>
+        </el-col>
+        <!-- <el-col :span="6">
                     <el-form-item label="订舱代理" prop="bookingAgentCnName">
                         <span slot="label">
                             <span style="color: #1e9fff">订舱代理</span>
@@ -220,7 +274,7 @@
                         </el-col>
                     </el-form-item>
                 </el-col> -->
-                <!-- <el-col :span="6">
+        <!-- <el-col :span="6">
                     <el-form-item label="装箱方式" prop="loadType">
                         <span slot="label">
                             <span style="color: #1e9fff">装箱方式</span>
@@ -233,85 +287,129 @@
                     </el-form-item>
                 </el-col> -->
 
-                <el-col span="6">
-                    <el-form-item label="签单地点" prop="issueAt">
-                        <span slot="label">
-                            <span style="color: #1e9fff">签单地点</span>
-                        </span>
-                        <search-query :datalist="issueAtData" :selectValue="assemblyForm.issueAt" :filterable="true"
-                            :clearable="true" :remote="true" :disabled="detailData.seeDisabled" :buttonIf="false"
-                            :forParameter="{ key: 'id', label: 'enName', value: 'enName' }" placeholder="请选择签单地点"
-                            @remoteMethod="remoteMethod($event, 'issueAt')" @corpChange="corpChange($event, 'issueAt')"
-                            @corpFocus="remoteMethod($event, 'issueAt')">
-                        </search-query>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="6">
-                    <el-form-item label="签单方式" prop="issueType">
-                        <span slot="label">
-                            <span style="color: #1e9fff">签单方式</span>
-                        </span>
-                        <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>
-                </el-col>
-                <el-col :span="6">
-                    <el-form-item label="签单日期" prop="issueDate" label-width="80px">
-                        <span slot="label">
-                            <span style="color: #1e9fff">签单日期</span>
-                        </span>
-                        <el-date-picker style="width: 100%;" v-model="assemblyForm.issueDate" clearable type="date"
-                            size="small" :disabled="detailData.seeDisabled" value-format="yyyy-MM-dd"
-                            placeholder="选择日期">
-                        </el-date-picker>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="6">
-                    <el-form-item label="业务类型" prop="businessTypes">
-                        <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"
-                            placeholder="请选择业务类型" @corpChange="corpChange($event, 'businessTypes')">
-                        </search-query>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="6">
-                    <el-form-item label="HB/L付款地点" prop="hpayplace">
-                        <span slot="label">
-                            <span style="color: #1e9fff">HB/L付款地点</span>
-                        </span>
-                        <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')"
-                            @corpFocus="remoteMethod($event, 'hpayplace')">
-                        </search-query>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="6">
-                    <el-form-item label="MB/L付款地点" prop="mPayplace">
-                        <span slot="label">
-                            <span style="color: #1e9fff">MB/L付款地点</span>
-                        </span>
-                        <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')"
-                            @corpFocus="remoteMethod($event, 'mpayplace')">
-                        </search-query>
-                    </el-form-item>
-                </el-col>
-                <!-- <el-col :span="6">
+        <el-col span="6">
+          <el-form-item label="签单地点" prop="issueAt">
+            <span slot="label">
+              <span style="color: #1e9fff">签单地点</span>
+            </span>
+            <search-query
+              :datalist="issueAtData"
+              :selectValue="assemblyForm.issueAt"
+              :filterable="true"
+              :clearable="true"
+              :remote="true"
+              :disabled="detailData.seeDisabled"
+              :buttonIf="false"
+              :forParameter="{ key: 'id', label: 'enName', value: 'enName' }"
+              placeholder="请选择签单地点"
+              @remoteMethod="remoteMethod($event, 'issueAt')"
+              @corpChange="corpChange($event, 'issueAt')"
+              @corpFocus="remoteMethod($event, 'issueAt')"
+            >
+            </search-query>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="签单方式" prop="issueType" :rules="[{ required: true, message: ' ', trigger: 'blur' }]">
+            <span slot="label">
+              <span style="color: #1e9fff">签单方式</span>
+            </span>
+            <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>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="签单日期" prop="issueDate" label-width="80px">
+            <span slot="label">
+              <span style="color: #1e9fff">签单日期</span>
+            </span>
+            <el-date-picker
+              style="width: 100%;"
+              v-model="assemblyForm.issueDate"
+              clearable
+              type="date"
+              size="small"
+              :disabled="detailData.seeDisabled"
+              value-format="yyyy-MM-dd"
+              placeholder="选择日期"
+            >
+            </el-date-picker>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="业务类型" prop="businessTypes">
+            <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"
+              placeholder="请选择业务类型"
+              @corpChange="corpChange($event, 'businessTypes')"
+            >
+            </search-query>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="HB/L付款地点" prop="hpayplace">
+            <span slot="label">
+              <span style="color: #1e9fff">HB/L付款地点</span>
+            </span>
+            <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')"
+              @corpFocus="remoteMethod($event, 'hpayplace')"
+            >
+            </search-query>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="MB/L付款地点" prop="mPayplace">
+            <span slot="label">
+              <span style="color: #1e9fff">MB/L付款地点</span>
+            </span>
+            <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')"
+              @corpFocus="remoteMethod($event, 'mpayplace')"
+            >
+            </search-query>
+          </el-form-item>
+        </el-col>
+        <!-- <el-col :span="6">
                     <el-form-item label="箱属" prop="boxBelongsTo">
                         <span slot="label">
                             <span style="color: #1e9fff">箱属</span>
@@ -321,7 +419,7 @@
                             :disabled="detailData.seeDisabled"></dic-select>
                     </el-form-item>
                 </el-col> -->
-                <!-- <el-col :span="6">
+        <!-- <el-col :span="6">
                     <el-form-item label="箱属" prop="boxBelongsTo">
                         <span slot="label">
                             <span style="color: #1e9fff">箱属</span>
@@ -331,7 +429,7 @@
                             :disabled="detailData.seeDisabled"></dic-select>
                     </el-form-item>
                 </el-col> -->
-                <!-- <el-col :span="6">
+        <!-- <el-col :span="6">
                     <el-form-item label="舱位类型" prop="cabinType">
                         <span slot="label">
                             <span style="color: #1e9fff">舱位类型</span>
@@ -356,7 +454,7 @@
                         </el-col>
                     </el-form-item>
                 </el-col> -->
-                <!-- <el-col :span="6">
+        <!-- <el-col :span="6">
                     <el-form-item label="舱位数" prop="shippingSpaceNumber">
                         <span slot="label">
                             <span style="color: #1e9fff">舱位数</span>
@@ -365,7 +463,7 @@
                             style="width: 100%;" placeholder="请输入舱位数"></el-input-number>
                     </el-form-item>
                 </el-col> -->
-                <!-- <el-col :span="6">
+        <!-- <el-col :span="6">
                     <el-form-item label="限制重量(吨)" prop="weightLimit">
                         <span slot="label">
                             <span style="color: #1e9fff">限制重量(吨)</span>
@@ -374,7 +472,7 @@
                             style="width: 100%;" placeholder="请输入限制重量(吨)"></el-input-number>
                     </el-form-item>
                 </el-col> -->
-                <!-- <el-col :span="6">
+        <!-- <el-col :span="6">
                     <el-form-item label="限制舱位(T)" prop="restrictedCabinSpace">
                         <span slot="label">
                             <span style="color: #1e9fff">限制舱位(T)</span>
@@ -383,64 +481,67 @@
                             style="width: 100%;"></el-input>
                     </el-form-item>
                 </el-col> -->
-                <el-col :span="6">
-                    <el-form-item label="单据类型" prop="billType">
-                        <span slot="label">
-                            <span style="color: #1e9fff">单据类型</span>
-                        </span>
-                        <search-query :datalist="billTypeData" :selectValue="assemblyForm.billType" :filterable="true"
-                            :clearable="true" :remote="true" :disabled="true" :buttonIf="false"
-                            placeholder="请选择单据类型" @corpChange="corpChange($event, 'billType')">
-                        </search-query>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="6">
-                    <el-form-item label="" prop="billNo">
-                        <span slot="label">
-                            <span style="color: #1e9fff">单据编号</span>
-                        </span>
-                        <el-input v-model="assemblyForm.billNo" size="small" placeholder="请输入单据编号" style="width: 100%;"
-                            disabled></el-input>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="4">
-                    <el-form-item label="" prop="createUserName">
-                        <span slot="label">
-                            <span style="color: #1e9fff">制单人</span>
-                        </span>
-                        <el-input v-model="assemblyForm.createUserName" size="small" placeholder="请输入单据编号"
-                            style="width: 100%;" disabled></el-input>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="5">
-                    <el-form-item label="" prop="createTime">
-                        <span slot="label">
-                            <span style="color: #1e9fff">制单日期</span>
-                        </span>
-                        <el-input v-model="assemblyForm.createTime" size="small" placeholder="请输入单据编号"
-                            style="width: 100%;" disabled></el-input>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="4">
-                    <el-form-item label="" prop="updateUserName">
-                        <span slot="label">
-                            <span style="color: #1e9fff">修改人</span>
-                        </span>
-                        <el-input v-model="assemblyForm.updateUserName" size="small" placeholder="请输入单据编号"
-                            style="width: 100%;" disabled></el-input>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="5">
-                    <el-form-item label="" prop="updateTime">
-                        <span slot="label">
-                            <span style="color: #1e9fff">修改日期</span>
-                        </span>
-                        <el-input v-model="assemblyForm.updateTime" size="small" placeholder="请输入单据编号"
-                            style="width: 100%;" disabled></el-input>
-                    </el-form-item>
-                </el-col>
-            </el-row>
-            <!-- <el-row>
+        <el-col :span="6">
+          <el-form-item label="单据类型" prop="billType">
+            <span slot="label">
+              <span style="color: #1e9fff">单据类型</span>
+            </span>
+            <search-query
+              :datalist="billTypeData"
+              :selectValue="assemblyForm.billType"
+              :filterable="true"
+              :clearable="true"
+              :remote="true"
+              :disabled="true"
+              :buttonIf="false"
+              placeholder="请选择单据类型"
+              @corpChange="corpChange($event, 'billType')"
+            >
+            </search-query>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="" prop="billNo">
+            <span slot="label">
+              <span style="color: #1e9fff">单据编号</span>
+            </span>
+            <el-input v-model="assemblyForm.billNo" size="small" placeholder="请输入单据编号" style="width: 100%;" disabled></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="4">
+          <el-form-item label="" prop="createUserName">
+            <span slot="label">
+              <span style="color: #1e9fff">制单人</span>
+            </span>
+            <el-input v-model="assemblyForm.createUserName" size="small" placeholder="请输入单据编号" style="width: 100%;" disabled></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="5">
+          <el-form-item label="" prop="createTime">
+            <span slot="label">
+              <span style="color: #1e9fff">制单日期</span>
+            </span>
+            <el-input v-model="assemblyForm.createTime" size="small" placeholder="请输入单据编号" style="width: 100%;" disabled></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="4">
+          <el-form-item label="" prop="updateUserName">
+            <span slot="label">
+              <span style="color: #1e9fff">修改人</span>
+            </span>
+            <el-input v-model="assemblyForm.updateUserName" size="small" placeholder="请输入单据编号" style="width: 100%;" disabled></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="5">
+          <el-form-item label="" prop="updateTime">
+            <span slot="label">
+              <span style="color: #1e9fff">修改日期</span>
+            </span>
+            <el-input v-model="assemblyForm.updateTime" size="small" placeholder="请输入单据编号" style="width: 100%;" disabled></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>
@@ -476,99 +577,144 @@
                     </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 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
-                                    :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
-                                    :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
-                                    :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 联系人电话`"
-                                    @input="inttraTitleInput($event, 'CorpTel')"></el-input>
-                            </el-form-item>
-                        </el-col>
-
-                    </el-row>
-
-                    <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
-                                    :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
-                                    :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
-                                    :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 联系人电话`"
-                                    @input="inttraTitleInput($event, 'CorpTel')"></el-input>
-                            </el-form-item>
-                        </el-col>
+    </el-form>
 
-                    </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>
+    <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 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
+                  :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
+                  :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
+                  :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 联系人电话`"
+                  @input="inttraTitleInput($event, 'CorpTel')"
+                ></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
 
-    </div>
+          <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
+                  :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
+                  :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
+                  :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 联系人电话`"
+                  @input="inttraTitleInput($event, 'CorpTel')"
+                ></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>
@@ -576,7 +722,7 @@ import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
 import { getBcorpslistByType, getBcorpsDetail } from "@/api/iosBasicData/bcorps";
 import { getWorkDicts } from "@/api/system/dictbiz";
 import { bportsList } from "@/api/iosBasicData/bports";
-import emailhash from '@/views/iosBasicData/SeafreightExportF/bills/assembly/Jsonfile/emailhash.json'
+import emailhash from "@/views/iosBasicData/SeafreightExportF/bills/assembly/Jsonfile/emailhash.json";
 import { getBcorpsattnList } from "@/api/iosBasicData/bcorpsattn";
 import { getBservicetermsList } from "@/api/iosBasicData/bserviceterms";
 import { blinesList } from "@/api/iosBasicData/blines";
@@ -584,550 +730,543 @@ import { getDeptLazyTree } from "@/api/system/dept";
 import { selectListLos } from "@/api/approval/processConfig";
 import dicSelect from "@/components/dicSelect/main";
 export default {
-    components: { SearchQuery, dicSelect },
-    props: {
-        assemblyForm: {
-            type: Object
-        },
-        detailData: {
-            type: Boolean,
-        },
-        // 是否生成账单
-        generateBillsfalse: {
-            type: Boolean,
-            default: false
-        },
-        disabled: {
-            type: Boolean,
-            default: false
-        }
+  components: { SearchQuery, dicSelect },
+  props: {
+    assemblyForm: {
+      type: Object
     },
-    data() {
-        return {
-
-            // 订舱代理数据
-            bookingAgentData: [],
-            // 业务来源
-            sourceTypeData: [
-                {
-                    label: '公司',
-                    value: 'OWN'
-                },
-                {
-                    label: '代理',
-                    value: 'AGENT'
-                },
-                {
-                    label: '业务员',
-                    value: 'SALES'
-                }
-            ],
-            // 业务来源下级配置
-            sourceforParameter: {},
-            // 业务来源下级
-            srcData: [],
-            emailhash: emailhash, // 邮箱跳转地址
-            lineData: [], // 航线
-            // 场站
-            cyData: [],
-            cyContactsData: [], // 场站联系人
-            // 服务方式
-            serviceTermsData: [],
-            // HB/L付款地点数据
-            hpayplaceData: [],
-            // MB/L付款地点
-            mpayplaceData: [],
-            // 签单地点
-            issueAtData: [],
-            // INTTRA EDI弹窗
-            inttraVisible: false,
-            inttraDoorToVisible: false,
-            inttraToDoorVisible: false,
-            inttraText: '', // 服务方式弹窗字段拼接
-            inttraTitle: '',
-            inttraData: [],
-            // 份数
-            numberOfData: [],
-            // 签单方式
-            issueTypeData: [],
-            // 装箱方式
-            loadTypeData: [],
-            // 业务类型
-            businessTypesData: [],
-            // 单据类型
-            billTypeData: [
-                {
-                    label: '直单',
-                    value: 'DD'
-                },
-                {
-                    label: '主单',
-                    value: 'MM'
-                },
-                {
-                    label: '分单',
-                    value: 'MH'
-                }
-            ],
-        }
+    detailData: {
+      type: Boolean
     },
-    created() {
-        // this.cyBcorpslistByType()
-        this.getWorkDictsfun()
-        // this.ownDeptLazyTreefun()
+    // 是否生成账单
+    generateBillsfalse: {
+      type: Boolean,
+      default: false
     },
-    methods: {
-        dicChange(name, row) {
-            if (name == 'cabinType') {
-                this.assemblyForm.cabinTypeData = null
-            }
-            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
-                }
-            }
-        },
-        // 业务来源下拉
-        sourceCorp(value, name) {
-            if (name == 'srcCnName') {
-                if (!value) {
-                    this.$set(this.assemblyForm, 'srcId', '')
-                    this.$set(this.assemblyForm, 'srcCnName', '')
-                    this.$set(this.assemblyForm, 'srcEnName', '')
-                }
-                for (let item of this.srcData) {
-                    if (item[this.sourceforParameter.value] == value) {
-                        if (this.assemblyForm.srcType == 'OWN') {
-                            // 国家
-                            this.$set(this.assemblyForm, 'srcId', item.id)
-                            this.$set(this.assemblyForm, 'srcCnName', item.title)
-                            this.$set(this.assemblyForm, 'srcEnName', item.title)
-                        } else if (this.assemblyForm.srcType == 'AGENT') {
-                            // 代理
-                            this.$set(this.assemblyForm, 'srcId', item.id)
-                            this.$set(this.assemblyForm, 'srcCnName', item.cnName)
-                            this.$set(this.assemblyForm, 'srcEnName', item.cnName)
-                        } else if (this.assemblyForm.srcType == 'SALES') {
-                            // 业务员
-                            this.$set(this.assemblyForm, 'srcId', item.id)
-                            this.$set(this.assemblyForm, 'srcCnName', item.name)
-                            this.$set(this.assemblyForm, 'srcEnName', item.name)
-                        }
-                    }
-                }
-            } else if (name == 'srcType') {
-                this.$set(this.assemblyForm, 'srcType', value)
-                this.$set(this.assemblyForm, 'srcId', '')
-                this.$set(this.assemblyForm, 'srcCnName', '')
-                this.$set(this.assemblyForm, 'srcEnName', '')
-                if (this.assemblyForm.srcType == 'OWN') {
-                    this.sourceforParameter = { key: 'id', label: 'title', value: 'title' }
-                    this.ownDeptLazyTreefun()
-                } else if (this.assemblyForm.srcType == 'AGENT') {
-                    this.sourceforParameter = { key: 'id', label: 'cnName', value: 'cnName' }
-                    this.agentBcorpsListfun()
-                } else if (this.assemblyForm.srcType == 'SALES') {
-                    this.sourceforParameter = { key: 'id', label: 'name', value: 'name' }
-                    this.salesUserGetListfun()
-                }
-            }
-        },
-        // 业务来源接口
-        sourceRemote(value, name) {
-            if (name == 'srcCnName') {
-                if (this.assemblyForm.srcType == 'OWN') {
-                    this.sourceforParameter = { key: 'id', label: 'title', value: 'title' }
-                    this.ownDeptLazyTreefun()
-                } else if (this.assemblyForm.srcType == 'AGENT') {
-                    this.sourceforParameter = { key: 'id', label: 'cnName', value: 'cnName' }
-                    this.agentBcorpsListfun(value)
-                } else if (this.assemblyForm.srcType == 'SALES') {
-                    this.sourceforParameter = { key: 'id', label: 'name', value: 'name' }
-                    this.salesUserGetListfun(value)
-                }
-            }
-        },
-        // 获取业务来源代理数据
-        agentBcorpsListfun(cnName) {
-            let corpTypeName = '国内直接客户,国内同行及代理,国外直接客户,国外同行及代理,代理客户'
-            getBcorpslistByType(1, 10, { cnName, corpTypeName }).then(res => {
-                this.srcData = res.data.data.records
-            })
-        },
-        // 订舱代理
-        bookingAgentBcorpsListfun(cnName) {
-            let corpTypeName = '国内直接客户,国内同行及代理,国外直接客户,国外同行及代理'
-            getBcorpslistByType(1, 10, { cnName, status: 0, corpTypeName }).then(res => {
-                this.bookingAgentData = res.data.data.records
-            })
-        },
-        // 获取业务来源业务员数据
-        salesUserGetListfun(account) {
-            selectListLos('业务员').then(res => {
-                this.srcData = res.data.data
-            })
-        },
-        // 获取公司名称 用户管理左侧
-        ownDeptLazyTreefun() {
-            getDeptLazyTree(0).then(res => {
-                this.srcData = res.data.data
-                // 来源 内容 默认登录人所属公司
-                for (let item of this.srcData) {
-                    if (item.id == JSON.parse(localStorage.getItem('saber-userInfo')).content.dept_id) {
-                        this.$set(this.assemblyForm, 'srcId', item.id)
-                        this.$set(this.assemblyForm, 'srcCnName', item.title)
-                        this.$set(this.assemblyForm, 'srcEnName', item.title)
-                    }
-                }
-
-            })
-        },
-        // 远程搜索
-        remoteMethod(value, name) {
-            let inttraArr = ['inttraDoorTo', 'inttraToDoor']
-            let numberOfArr = ['numberOfObl', 'numberOfCopy']
-            let payplaceArr = ['hpayplace', 'mpayplace', 'issueAt']
-            if (name == 'cy') {
-                this.cyBcorpslistByType(value)
-            } else if (inttraArr.indexOf(name) != -1) {
-                this.inttraBcorpslistByType(value)
-            }
-            else if (name == 'bookingAgent') {
-                this.bookingAgentBcorpsListfun(value)
-            }
-            // else if (name == 'issueType') {
-            //     // 签单方式
-            //     this.getWorkDictsfun()
-            // }
-            // 场站联系人
-            else if (name == 'cyContacts') {
-                this.cyBcorpsattnListfun()
-            }
-            // 份数
-            else if (numberOfArr.indexOf(name) != -1) {
-                this.numberoforiginalWorkDicts()
-            }
-            // 服务方式
-            else if (name == 'serviceTerms') {
-                this.serviceTermsWorkDicts()
-            }
-            // HB/L付款状态 MB/L 付款状态
-            else if (payplaceArr.indexOf(name) != -1) {
-                this[name + 'BportsListfun'](value)
-            }
-            else if (name == 'line') {
-                this.lineblinesListfun(value)
-            }
-        },
-        // 选择框的回调
-        corpChange(value, name) {
-            let inttraArr = ['inttraDoorTo', 'inttraToDoor']
-            let numberOfArr = ['Obl', 'Copy']
-            if (name == 'cy') {
-                if (!value) {
-                    this.$set(this.assemblyForm, 'cyId', '')
-                    this.$set(this.assemblyForm, 'cyCode', '')
-                    this.$set(this.assemblyForm, 'cyCnName', '')
-                    this.$set(this.assemblyForm, 'cyEnName', '')
-                    this.$set(this.assemblyForm, 'cyRemarks', '')
-                    // 联系人
-                    this.$set(this.assemblyForm, 'cyTel', '')
-                    this.$set(this.assemblyForm, 'cyAddress', '')
-                    this.$set(this.assemblyForm, 'cyContacts', '')
-                }
-                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, 'cyRemarks', item.details) // 客户里的详情信息
-                        // 查询场站联系人
-                        getBcorpsattnList(1, 20, { pid: this.assemblyForm.cyId }).then(res => {
-                            console.log(res, 590)
-                            this.$set(this.assemblyForm, 'cyTel', res.data.data.records[0].tel)
-                            this.$set(this.assemblyForm, 'cyAddress', res.data.data.records[0].addr)
-                            this.$set(this.assemblyForm, 'cyContacts', res.data.data.records[0].cname)
-                        })
-                    }
-                }
-            }
-            // 场站联系人
-            else if (name == 'cyContacts') {
-                if (!value) {
-                    this.$set(this.assemblyForm, 'cyTel', '')
-                    this.$set(this.assemblyForm, 'cyAddress', '')
-                    this.$set(this.assemblyForm, 'cyContacts', '')
-                }
-                for (let item of this.cyContactsData) {
-                    if (item.cname == value) {
-                        this.$set(this.assemblyForm, 'cyTel', item.tel)
-                        this.$set(this.assemblyForm, 'cyAddress', item.addr)
-                        this.$set(this.assemblyForm, 'cyContacts', item.cname)
-                    }
-                }
-            }
-            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 if (numberOfArr.indexOf(name) != -1) {
-                if (!value) {
-                    this.$set(this.assemblyForm, 'numberOf' + name, '')
-                    this.$set(this.assemblyForm, 'numberOf' + name + 'Digit', '')
-                }
-                for (let item of this.numberOfData) {
-                    if (item.dictValue == value) {
-                        this.$set(this.assemblyForm, 'numberOf' + name, item.dictValue)
-                        this.$set(this.assemblyForm, 'numberOf' + name + 'Digit', item.dictKey)
-                    }
-                }
-            }
-            // 签单地点
-            else if (name == 'issueAt') {
-                for (let item of this.issueAtData) {
-                    if (item.enName == value) {
-                        this.$set(this.assemblyForm, 'issueAt', item.enName)
-                        this.$set(this.assemblyForm, 'issueAtId', item.id)
-                    }
-                }
-            }
-            // 航线
-            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 (name == 'bookingAgent') {
-                if (!value) {
-                    this.$set(this.assemblyForm, 'bookingAgentId', '')
-                    this.$set(this.assemblyForm, 'bookingAgentCnName', '')
-                    this.$set(this.assemblyForm, 'bookingAgentEnName', '')
-                    this.$set(this.assemblyForm, 'bookingRemarks', '')
-                }
-                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 {
-                this.assemblyForm[name] = value ? value : ''
-            }
-        },
-        // 获取航线数据
-        lineblinesListfun(cnName) {
-            blinesList(1, 10, { cnName, status: 0 }).then(res => {
-                this.lineData = res.data.data.records
-            })
-        },
-        // INTTRA EDI弹窗 输入框监听
-        inttraTitleInput(value, name) {
-            // if (this.assemblyForm.serviceTerms == 'DOOR to DOOR') {
-            //     this.$set(this.assemblyForm,`inttraDoorTo${name}`,value)
-            //     this.$set(this.assemblyForm,`inttraToDoor${name}`,value)
-            // }else {
-            //     this.$set(this.assemblyForm,`inttra${this.inttraTitle}${name}`,value)
-            // }
+    disabled: {
+      type: Boolean,
+      default: false
+    }
+  },
+  data() {
+    return {
+      // 订舱代理数据
+      bookingAgentData: [],
+      // 业务来源
+      sourceTypeData: [
+        {
+          label: "公司",
+          value: "OWN"
         },
-        // 发送INTTRA EDI弹窗开启
-        inttraAdd() {
-            if (!this.assemblyForm.serviceTerms) {
-                this.$message({
-                    showClose: true,
-                    message: '请先选择服务方式',
-                    type: 'warning'
-                });
-                return
-            }
-            if (this.assemblyForm.serviceTerms == 'DOOR to CY') {
-                this.inttraTitle = 'DoorTo'
-                this.inttraText = 'DOOR TO'
-                // this.inttraBcorpslistByType()
-                this.inttraVisible = true
-                this.inttraDoorToVisible = true
-                this.inttraToDoorVisible = false
-                //
-            } else if (this.assemblyForm.serviceTerms == 'CY to DOOR') {
-                this.inttraTitle = 'ToDoor'
-                this.inttraText = 'TO DOOR'
-                // this.inttraBcorpslistByType()
-                this.inttraVisible = true
-                this.inttraDoorToVisible = false
-                this.inttraToDoorVisible = true
-            } else if (this.assemblyForm.serviceTerms == 'DOOR to DOOR') {
-                this.inttraTitle = 'ToDoor'
-                this.inttraText = 'DOOR TO DOOR'
-                // this.inttraBcorpslistByType()
-                this.inttraVisible = true
-                this.inttraDoorToVisible = true
-                this.inttraToDoorVisible = true
-            } else {
-                this.$confirm('请选择其他的服务方式', {
-                    confirmButtonText: "确定",
-                    cancelButtonText: "取消",
-                    type: "warning"
-                }).then(() => {
-                    console.log('123123')
-                }).catch(() => {
-                    console.log('11111111')
-                })
-            }
-            console.log(this.assemblyForm.serviceTerms, this.inttraDoorToVisible, this.inttraToDoorVisible)
-
+        {
+          label: "代理",
+          value: "AGENT"
         },
-        // INTTRA EDI弹窗清除
-        inttraCancellation(name) {
-            let title = ''
-            if (name == '清除') {
-                title = '确认清除吗?'
-            }
-            this.$confirm(title)
-                .then(_ => {
-                    if (this.assemblyForm.serviceTerms == 'DOOR to DOOR') {
-                        this.$set(this.assemblyForm, 'inttraDoorToCorpName', '')
-                        this.$set(this.assemblyForm, 'inttraDoorToCorpAddr', '')
-                        this.$set(this.assemblyForm, 'inttraDoorToCorpContacts', '')
-                        this.$set(this.assemblyForm, 'inttraDoorToCorpTel', '')
-                        this.$set(this.assemblyForm, 'inttraToDoorCorpName', '')
-                        this.$set(this.assemblyForm, 'inttraToDoorCorpAddr', '')
-                        this.$set(this.assemblyForm, 'inttraToDoorCorpContacts', '')
-                        this.$set(this.assemblyForm, 'inttraToDoorCorpTel', '')
-                    } else {
-                        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(_ => { });
+        {
+          label: "业务员",
+          value: "SALES"
+        }
+      ],
+      // 业务来源下级配置
+      sourceforParameter: {},
+      // 业务来源下级
+      srcData: [],
+      emailhash: emailhash, // 邮箱跳转地址
+      lineData: [], // 航线
+      // 场站
+      cyData: [],
+      cyContactsData: [], // 场站联系人
+      // 服务方式
+      serviceTermsData: [],
+      // HB/L付款地点数据
+      hpayplaceData: [],
+      // MB/L付款地点
+      mpayplaceData: [],
+      // 签单地点
+      issueAtData: [],
+      // INTTRA EDI弹窗
+      inttraVisible: false,
+      inttraDoorToVisible: false,
+      inttraToDoorVisible: false,
+      inttraText: "", // 服务方式弹窗字段拼接
+      inttraTitle: "",
+      inttraData: [],
+      // 份数
+      numberOfData: [],
+      // 签单方式
+      issueTypeData: [],
+      // 装箱方式
+      loadTypeData: [],
+      // 业务类型
+      businessTypesData: [],
+      // 单据类型
+      billTypeData: [
+        {
+          label: "直单",
+          value: "DD"
         },
-        // 弹窗关闭
-        beforeClose(done) {
-            done();
+        {
+          label: "主单",
+          value: "MM"
         },
-        // 邮箱跳转
-        emailJump() {
-            if (!this.assemblyForm.cyId) {
-                this.$message({
-                    message: '请先选择场站',
-                    type: 'warning'
-                });
-                return
+        {
+          label: "分单",
+          value: "MH"
+        }
+      ]
+    };
+  },
+  created() {
+    // this.cyBcorpslistByType()
+    this.getWorkDictsfun();
+    // this.ownDeptLazyTreefun()
+  },
+  methods: {
+    dicChange(name, row) {
+      if (name == "cabinType") {
+        this.assemblyForm.cabinTypeData = null;
+      }
+      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;
+        }
+      }
+    },
+    // 业务来源下拉
+    sourceCorp(value, name) {
+      if (name == "srcCnName") {
+        if (!value) {
+          this.$set(this.assemblyForm, "srcId", "");
+          this.$set(this.assemblyForm, "srcCnName", "");
+          this.$set(this.assemblyForm, "srcEnName", "");
+        }
+        for (let item of this.srcData) {
+          if (item[this.sourceforParameter.value] == value) {
+            if (this.assemblyForm.srcType == "OWN") {
+              // 国家
+              this.$set(this.assemblyForm, "srcId", item.id);
+              this.$set(this.assemblyForm, "srcCnName", item.title);
+              this.$set(this.assemblyForm, "srcEnName", item.title);
+            } else if (this.assemblyForm.srcType == "AGENT") {
+              // 代理
+              this.$set(this.assemblyForm, "srcId", item.id);
+              this.$set(this.assemblyForm, "srcCnName", item.cnName);
+              this.$set(this.assemblyForm, "srcEnName", item.cnName);
+            } else if (this.assemblyForm.srcType == "SALES") {
+              // 业务员
+              this.$set(this.assemblyForm, "srcId", item.id);
+              this.$set(this.assemblyForm, "srcCnName", item.name);
+              this.$set(this.assemblyForm, "srcEnName", item.name);
             }
-            // 调详情获取邮箱
-            getBcorpsDetail(this.assemblyForm.cyId).then(res => {
-                let email = res.data.data.email.split('@')[1] // 取@符号后面的数据
-                for (let i in this.emailhash) {
-                    if (email == i) {
-                        // 跳转打开一个新的页面
-                        window.open(this.emailhash[i], "_blank")
-                    }
-                }
-            })
-        },
-        // 接口数据请求🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏
-        // 获取场站数据
-        cyBcorpslistByType(cnName) {
-            let corpTypeName = '场站'
-            getBcorpslistByType(1, 10, { cnName, status: 0, corpTypeName }).then(res => {
-                this.cyData = res.data.data.records
-            })
-        },
-        // 获取场站下的联系人数据
-        cyBcorpsattnListfun() {
+          }
+        }
+      } else if (name == "srcType") {
+        this.$set(this.assemblyForm, "srcType", value);
+        this.$set(this.assemblyForm, "srcId", "");
+        this.$set(this.assemblyForm, "srcCnName", "");
+        this.$set(this.assemblyForm, "srcEnName", "");
+        if (this.assemblyForm.srcType == "OWN") {
+          this.sourceforParameter = { key: "id", label: "title", value: "title" };
+          this.ownDeptLazyTreefun();
+        } else if (this.assemblyForm.srcType == "AGENT") {
+          this.sourceforParameter = { key: "id", label: "cnName", value: "cnName" };
+          this.agentBcorpsListfun();
+        } else if (this.assemblyForm.srcType == "SALES") {
+          this.sourceforParameter = { key: "id", label: "name", value: "name" };
+          this.salesUserGetListfun();
+        }
+      }
+    },
+    // 业务来源接口
+    sourceRemote(value, name) {
+      if (name == "srcCnName") {
+        if (this.assemblyForm.srcType == "OWN") {
+          this.sourceforParameter = { key: "id", label: "title", value: "title" };
+          this.ownDeptLazyTreefun();
+        } else if (this.assemblyForm.srcType == "AGENT") {
+          this.sourceforParameter = { key: "id", label: "cnName", value: "cnName" };
+          this.agentBcorpsListfun(value);
+        } else if (this.assemblyForm.srcType == "SALES") {
+          this.sourceforParameter = { key: "id", label: "name", value: "name" };
+          this.salesUserGetListfun(value);
+        }
+      }
+    },
+    // 获取业务来源代理数据
+    agentBcorpsListfun(cnName) {
+      let corpTypeName = "国内直接客户,国内同行及代理,国外直接客户,国外同行及代理,代理客户";
+      getBcorpslistByType(1, 10, { cnName, corpTypeName }).then(res => {
+        this.srcData = res.data.data.records;
+      });
+    },
+    // 订舱代理
+    bookingAgentBcorpsListfun(cnName) {
+      let corpTypeName = "国内直接客户,国内同行及代理,国外直接客户,国外同行及代理";
+      getBcorpslistByType(1, 10, { cnName, status: 0, corpTypeName }).then(res => {
+        this.bookingAgentData = res.data.data.records;
+      });
+    },
+    // 获取业务来源业务员数据
+    salesUserGetListfun(account) {
+      selectListLos("业务员").then(res => {
+        this.srcData = res.data.data;
+      });
+    },
+    // 获取公司名称 用户管理左侧
+    ownDeptLazyTreefun() {
+      getDeptLazyTree(0).then(res => {
+        this.srcData = res.data.data;
+        // 来源 内容 默认登录人所属公司
+        for (let item of this.srcData) {
+          if (item.id == JSON.parse(localStorage.getItem("saber-userInfo")).content.dept_id) {
+            this.$set(this.assemblyForm, "srcId", item.id);
+            this.$set(this.assemblyForm, "srcCnName", item.title);
+            this.$set(this.assemblyForm, "srcEnName", item.title);
+          }
+        }
+      });
+    },
+    // 远程搜索
+    remoteMethod(value, name) {
+      let inttraArr = ["inttraDoorTo", "inttraToDoor"];
+      let numberOfArr = ["numberOfObl", "numberOfCopy"];
+      let payplaceArr = ["hpayplace", "mpayplace", "issueAt"];
+      if (name == "cy") {
+        this.cyBcorpslistByType(value);
+      } else if (inttraArr.indexOf(name) != -1) {
+        this.inttraBcorpslistByType(value);
+      } else if (name == "bookingAgent") {
+        this.bookingAgentBcorpsListfun(value);
+      }
+      // else if (name == 'issueType') {
+      //     // 签单方式
+      //     this.getWorkDictsfun()
+      // }
+      // 场站联系人
+      else if (name == "cyContacts") {
+        this.cyBcorpsattnListfun();
+      }
+      // 份数
+      else if (numberOfArr.indexOf(name) != -1) {
+        this.numberoforiginalWorkDicts();
+      }
+      // 服务方式
+      else if (name == "serviceTerms") {
+        this.serviceTermsWorkDicts();
+      }
+      // HB/L付款状态 MB/L 付款状态
+      else if (payplaceArr.indexOf(name) != -1) {
+        this[name + "BportsListfun"](value);
+      } else if (name == "line") {
+        this.lineblinesListfun(value);
+      }
+    },
+    // 选择框的回调
+    corpChange(value, name) {
+      let inttraArr = ["inttraDoorTo", "inttraToDoor"];
+      let numberOfArr = ["Obl", "Copy"];
+      if (name == "cy") {
+        if (!value) {
+          this.$set(this.assemblyForm, "cyId", "");
+          this.$set(this.assemblyForm, "cyCode", "");
+          this.$set(this.assemblyForm, "cyCnName", "");
+          this.$set(this.assemblyForm, "cyEnName", "");
+          this.$set(this.assemblyForm, "cyRemarks", "");
+          // 联系人
+          this.$set(this.assemblyForm, "cyTel", "");
+          this.$set(this.assemblyForm, "cyAddress", "");
+          this.$set(this.assemblyForm, "cyContacts", "");
+        }
+        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, "cyRemarks", item.details); // 客户里的详情信息
+            // 查询场站联系人
             getBcorpsattnList(1, 20, { pid: this.assemblyForm.cyId }).then(res => {
-                this.cyContactsData = res.data.data.records
-            })
-        },
-        // 获取客户数据
-        inttraBcorpslistByType(cnName) {
-            getBcorpslistByType(1, 10, { cnName, status: 0 }).then(res => {
-                this.inttraData = res.data.data.records
-            })
-        },
-        // 获取签单方式字典数据
-        getWorkDictsfun() {
-            getWorkDicts('issue_type_F').then(res => {
-                this.issueTypeData = res.data.data
-            })
-            getWorkDicts('packing_method').then(res => {
-                this.loadTypeData = res.data.data
-            })
-            getWorkDicts('business_Type_detail').then(res => {
-                this.businessTypesData = res.data.data
-            })
-        },
-        // 获取份数数据
-        numberoforiginalWorkDicts() {
-            getWorkDicts('number_of_original').then(res => {
-                this.numberOfData = res.data.data
-            })
-        },
-        // 获取服务方式数据
-        serviceTermsWorkDicts() {
-            // getWorkDicts('service_terms').then(res=>{
-            //     this.serviceTermsData = res.data.data
-            // })
-            getBservicetermsList(1, 20, { status: 0 }).then(res => {
-                this.serviceTermsData = res.data.data.records
-            })
-        },
-        // HB/L 付款地点
-        hpayplaceBportsListfun(enName) {
-            bportsList(1, 10, { enName, status: 0 }).then(res => {
-                this.hpayplaceData = res.data.data.records
-            })
-        },
-        // MB/L 付款地点
-        mpayplaceBportsListfun(enName) {
-            bportsList(1, 10, { enName, status: 0 }).then(res => {
-                this.mpayplaceData = res.data.data.records
-            })
-        },
-        // 签单地点
-        issueAtBportsListfun(enName) {
-            bportsList(1, 10, { enName, status: 0 }).then(res => {
-                this.issueAtData = res.data.data.records
-            })
-        },
-
-
+              console.log(res, 590);
+              this.$set(this.assemblyForm, "cyTel", res.data.data.records[0].tel);
+              this.$set(this.assemblyForm, "cyAddress", res.data.data.records[0].addr);
+              this.$set(this.assemblyForm, "cyContacts", res.data.data.records[0].cname);
+            });
+          }
+        }
+      }
+      // 场站联系人
+      else if (name == "cyContacts") {
+        if (!value) {
+          this.$set(this.assemblyForm, "cyTel", "");
+          this.$set(this.assemblyForm, "cyAddress", "");
+          this.$set(this.assemblyForm, "cyContacts", "");
+        }
+        for (let item of this.cyContactsData) {
+          if (item.cname == value) {
+            this.$set(this.assemblyForm, "cyTel", item.tel);
+            this.$set(this.assemblyForm, "cyAddress", item.addr);
+            this.$set(this.assemblyForm, "cyContacts", item.cname);
+          }
+        }
+      } 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 if (numberOfArr.indexOf(name) != -1) {
+        if (!value) {
+          this.$set(this.assemblyForm, "numberOf" + name, "");
+          this.$set(this.assemblyForm, "numberOf" + name + "Digit", "");
+        }
+        for (let item of this.numberOfData) {
+          if (item.dictValue == value) {
+            this.$set(this.assemblyForm, "numberOf" + name, item.dictValue);
+            this.$set(this.assemblyForm, "numberOf" + name + "Digit", item.dictKey);
+          }
+        }
+      }
+      // 签单地点
+      else if (name == "issueAt") {
+        for (let item of this.issueAtData) {
+          if (item.enName == value) {
+            this.$set(this.assemblyForm, "issueAt", item.enName);
+            this.$set(this.assemblyForm, "issueAtId", item.id);
+          }
+        }
+      }
+      // 航线
+      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 (name == "bookingAgent") {
+        if (!value) {
+          this.$set(this.assemblyForm, "bookingAgentId", "");
+          this.$set(this.assemblyForm, "bookingAgentCnName", "");
+          this.$set(this.assemblyForm, "bookingAgentEnName", "");
+          this.$set(this.assemblyForm, "bookingRemarks", "");
+        }
+        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 {
+        this.assemblyForm[name] = value ? value : "";
+      }
+    },
+    // 获取航线数据
+    lineblinesListfun(cnName) {
+      blinesList(1, 10, { cnName, status: 0 }).then(res => {
+        this.lineData = res.data.data.records;
+      });
+    },
+    // INTTRA EDI弹窗 输入框监听
+    inttraTitleInput(value, name) {
+      // if (this.assemblyForm.serviceTerms == 'DOOR to DOOR') {
+      //     this.$set(this.assemblyForm,`inttraDoorTo${name}`,value)
+      //     this.$set(this.assemblyForm,`inttraToDoor${name}`,value)
+      // }else {
+      //     this.$set(this.assemblyForm,`inttra${this.inttraTitle}${name}`,value)
+      // }
+    },
+    // 发送INTTRA EDI弹窗开启
+    inttraAdd() {
+      if (!this.assemblyForm.serviceTerms) {
+        this.$message({
+          showClose: true,
+          message: "请先选择服务方式",
+          type: "warning"
+        });
+        return;
+      }
+      if (this.assemblyForm.serviceTerms == "DOOR to CY") {
+        this.inttraTitle = "DoorTo";
+        this.inttraText = "DOOR TO";
+        // this.inttraBcorpslistByType()
+        this.inttraVisible = true;
+        this.inttraDoorToVisible = true;
+        this.inttraToDoorVisible = false;
+        //
+      } else if (this.assemblyForm.serviceTerms == "CY to DOOR") {
+        this.inttraTitle = "ToDoor";
+        this.inttraText = "TO DOOR";
+        // this.inttraBcorpslistByType()
+        this.inttraVisible = true;
+        this.inttraDoorToVisible = false;
+        this.inttraToDoorVisible = true;
+      } else if (this.assemblyForm.serviceTerms == "DOOR to DOOR") {
+        this.inttraTitle = "ToDoor";
+        this.inttraText = "DOOR TO DOOR";
+        // this.inttraBcorpslistByType()
+        this.inttraVisible = true;
+        this.inttraDoorToVisible = true;
+        this.inttraToDoorVisible = true;
+      } else {
+        this.$confirm("请选择其他的服务方式", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        })
+          .then(() => {
+            console.log("123123");
+          })
+          .catch(() => {
+            console.log("11111111");
+          });
+      }
+      console.log(this.assemblyForm.serviceTerms, this.inttraDoorToVisible, this.inttraToDoorVisible);
+    },
+    // INTTRA EDI弹窗清除
+    inttraCancellation(name) {
+      let title = "";
+      if (name == "清除") {
+        title = "确认清除吗?";
+      }
+      this.$confirm(title)
+        .then(_ => {
+          if (this.assemblyForm.serviceTerms == "DOOR to DOOR") {
+            this.$set(this.assemblyForm, "inttraDoorToCorpName", "");
+            this.$set(this.assemblyForm, "inttraDoorToCorpAddr", "");
+            this.$set(this.assemblyForm, "inttraDoorToCorpContacts", "");
+            this.$set(this.assemblyForm, "inttraDoorToCorpTel", "");
+            this.$set(this.assemblyForm, "inttraToDoorCorpName", "");
+            this.$set(this.assemblyForm, "inttraToDoorCorpAddr", "");
+            this.$set(this.assemblyForm, "inttraToDoorCorpContacts", "");
+            this.$set(this.assemblyForm, "inttraToDoorCorpTel", "");
+          } else {
+            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) {
+      done();
+    },
+    // 邮箱跳转
+    emailJump() {
+      if (!this.assemblyForm.cyId) {
+        this.$message({
+          message: "请先选择场站",
+          type: "warning"
+        });
+        return;
+      }
+      // 调详情获取邮箱
+      getBcorpsDetail(this.assemblyForm.cyId).then(res => {
+        let email = res.data.data.email.split("@")[1]; // 取@符号后面的数据
+        for (let i in this.emailhash) {
+          if (email == i) {
+            // 跳转打开一个新的页面
+            window.open(this.emailhash[i], "_blank");
+          }
+        }
+      });
+    },
+    // 接口数据请求🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏
+    // 获取场站数据
+    cyBcorpslistByType(cnName) {
+      let corpTypeName = "场站";
+      getBcorpslistByType(1, 10, { cnName, status: 0, corpTypeName }).then(res => {
+        this.cyData = res.data.data.records;
+      });
+    },
+    // 获取场站下的联系人数据
+    cyBcorpsattnListfun() {
+      getBcorpsattnList(1, 20, { pid: this.assemblyForm.cyId }).then(res => {
+        this.cyContactsData = res.data.data.records;
+      });
+    },
+    // 获取客户数据
+    inttraBcorpslistByType(cnName) {
+      getBcorpslistByType(1, 10, { cnName, status: 0 }).then(res => {
+        this.inttraData = res.data.data.records;
+      });
+    },
+    // 获取签单方式字典数据
+    getWorkDictsfun() {
+      getWorkDicts("issue_type_F").then(res => {
+        this.issueTypeData = res.data.data;
+      });
+      getWorkDicts("packing_method").then(res => {
+        this.loadTypeData = res.data.data;
+      });
+      getWorkDicts("business_Type_detail").then(res => {
+        this.businessTypesData = res.data.data;
+      });
+    },
+    // 获取份数数据
+    numberoforiginalWorkDicts() {
+      getWorkDicts("number_of_original").then(res => {
+        this.numberOfData = res.data.data;
+      });
+    },
+    // 获取服务方式数据
+    serviceTermsWorkDicts() {
+      // getWorkDicts('service_terms').then(res=>{
+      //     this.serviceTermsData = res.data.data
+      // })
+      getBservicetermsList(1, 20, { status: 0 }).then(res => {
+        this.serviceTermsData = res.data.data.records;
+      });
+    },
+    // HB/L 付款地点
+    hpayplaceBportsListfun(enName) {
+      bportsList(1, 10, { enName, status: 0 }).then(res => {
+        this.hpayplaceData = res.data.data.records;
+      });
+    },
+    // MB/L 付款地点
+    mpayplaceBportsListfun(enName) {
+      bportsList(1, 10, { enName, status: 0 }).then(res => {
+        this.mpayplaceData = res.data.data.records;
+      });
+    },
+    // 签单地点
+    issueAtBportsListfun(enName) {
+      bportsList(1, 10, { enName, status: 0 }).then(res => {
+        this.issueAtData = res.data.data.records;
+      });
     }
-}
+  }
+};
 </script>
 
 <style lang="scss" scoped>
 ::v-deep.el-form-item {
-    margin-bottom: 10px;
+  margin-bottom: 10px;
 }
 
 ::v-deep .el-input-number .el-input__inner {
-    text-align: left
+  text-align: left;
 }
 
-::v-deep .el-select>.el-input {
-    display: inline-block !important;
+::v-deep .el-select > .el-input {
+  display: inline-block !important;
 }
 </style>

+ 180 - 176
src/views/iosBasicData/OceanFreightImport/bills/billsDetails.vue

@@ -404,7 +404,8 @@
               roleName.includes('应付修改') ||
               roleName.includes('应收查看') ||
               roleName.includes('应付查看') ||
-              roleName.includes('国外费用')||roleName.includes('允许修改他人费用')
+              roleName.includes('国外费用') ||
+              roleName.includes('允许修改他人费用')
           "
         >
           <feecenter
@@ -2393,6 +2394,9 @@ export default {
           if (!this.form.srcType || !this.form.srcCnName) {
             msgs.push("业务来源");
           }
+          if (!this.form.issueType) {
+            msgs.push("签单方式");
+          }
           // if (!this.form.etd) {
           //     msgs.push('ETD')
           // }
@@ -2431,180 +2435,180 @@ export default {
             });
             return;
           }
-          
-            // let msgsList = [];
-            // if (checkFullWidthSymbols(this.form.detail.hshipperDetails).hasFullWidth) {
-            //   let msg = [];
-            //   for (let item of checkFullWidthSymbols(this.form.detail.hshipperDetails).positions) {
-            //     msg.push(`第${item.row}行的"${item.symbol}"`);
-            //   }
-            //   if (msg.length > 0) {
-            //     this.$message({
-            //       dangerouslyUseHTMLString: true,
-            //       message: `发货人:<br>${msg.join(";<br>")}<br>存在全角或汉字符号、汉字,请确认`,
-            //       type: "error"
-            //     });
-            //     return;
-            //   }
-            // }
 
-            // if (checkFullWidthSymbols(this.form.detail.hconsigneeDetails).hasFullWidth) {
-            //   let msg = [];
-            //   for (let item of checkFullWidthSymbols(this.form.detail.hconsigneeDetails).positions) {
-            //     msg.push(`第${item.row}行的"${item.symbol}"`);
-            //   }
-            //   if (msg.length > 0) {
-            //     this.$message({
-            //       dangerouslyUseHTMLString: true,
-            //       message: `收货人:<br>${msg.join(";<br>")}<br>存在全角或汉字符号、汉字,请确认`,
-            //       type: "error"
-            //     });
-            //     return;
-            //   }
-            // }
-            // if (checkFullWidthSymbols(this.form.detail.hnotifyDetails).hasFullWidth) {
-            //   let msg = [];
-            //   for (let item of checkFullWidthSymbols(this.form.detail.hnotifyDetails).positions) {
-            //     msg.push(`第${item.row}行的"${item.symbol}"`);
-            //   }
-            //   if (msg.length > 0) {
-            //     this.$message({
-            //       dangerouslyUseHTMLString: true,
-            //       message: `通知人:<br>${msg.join(";<br>")}<br>存在全角或汉字符号、汉字,请确认`,
-            //       type: "error"
-            //     });
-            //     return;
-            //   }
-            // }
-            // if (checkFullWidthSymbols(this.form.detail.mshipperDetails).hasFullWidth) {
-            //   let msg = [];
-            //   for (let item of checkFullWidthSymbols(this.form.detail.mshipperDetails).positions) {
-            //     msg.push(`第${item.row}行的"${item.symbol}"`);
-            //   }
-            //   if (msg.length > 0) {
-            //     this.$message({
-            //       dangerouslyUseHTMLString: true,
-            //       message: `MBL 发货人:<br>${msg.join(";<br>")}<br>存在全角或汉字符号、汉字,请确认`,
-            //       type: "error"
-            //     });
-            //     return;
-            //   }
-            // }
+          // let msgsList = [];
+          // if (checkFullWidthSymbols(this.form.detail.hshipperDetails).hasFullWidth) {
+          //   let msg = [];
+          //   for (let item of checkFullWidthSymbols(this.form.detail.hshipperDetails).positions) {
+          //     msg.push(`第${item.row}行的"${item.symbol}"`);
+          //   }
+          //   if (msg.length > 0) {
+          //     this.$message({
+          //       dangerouslyUseHTMLString: true,
+          //       message: `发货人:<br>${msg.join(";<br>")}<br>存在全角或汉字符号、汉字,请确认`,
+          //       type: "error"
+          //     });
+          //     return;
+          //   }
+          // }
 
-            // if (checkFullWidthSymbols(this.form.detail.mconsigneeDetails).hasFullWidth) {
-            //   let msg = [];
-            //   for (let item of checkFullWidthSymbols(this.form.detail.mconsigneeDetails).positions) {
-            //     msg.push(`第${item.row}行的"${item.symbol}"`);
-            //   }
-            //   if (msg.length > 0) {
-            //     this.$message({
-            //       dangerouslyUseHTMLString: true,
-            //       message: `MBL 收货人:<br>${msg.join(";<br>")}<br>存在全角或汉字符号、汉字,请确认`,
-            //       type: "error"
-            //     });
-            //     return;
-            //   }
-            // }
-            // if (checkFullWidthSymbols(this.form.detail.mnotifyDetails).hasFullWidth) {
-            //   let msg = [];
-            //   for (let item of checkFullWidthSymbols(this.form.detail.mnotifyDetails).positions) {
-            //     msg.push(`第${item.row}行的"${item.symbol}"`);
-            //   }
-            //   if (msg.length > 0) {
-            //     this.$message({
-            //       dangerouslyUseHTMLString: true,
-            //       message: `MBL 通知人:<br>${msg.join(";<br>")}<br>存在全角或汉字符号、汉字,请确认`,
-            //       type: "error"
-            //     });
-            //     return;
-            //   }
-            // }
+          // if (checkFullWidthSymbols(this.form.detail.hconsigneeDetails).hasFullWidth) {
+          //   let msg = [];
+          //   for (let item of checkFullWidthSymbols(this.form.detail.hconsigneeDetails).positions) {
+          //     msg.push(`第${item.row}行的"${item.symbol}"`);
+          //   }
+          //   if (msg.length > 0) {
+          //     this.$message({
+          //       dangerouslyUseHTMLString: true,
+          //       message: `收货人:<br>${msg.join(";<br>")}<br>存在全角或汉字符号、汉字,请确认`,
+          //       type: "error"
+          //     });
+          //     return;
+          //   }
+          // }
+          // if (checkFullWidthSymbols(this.form.detail.hnotifyDetails).hasFullWidth) {
+          //   let msg = [];
+          //   for (let item of checkFullWidthSymbols(this.form.detail.hnotifyDetails).positions) {
+          //     msg.push(`第${item.row}行的"${item.symbol}"`);
+          //   }
+          //   if (msg.length > 0) {
+          //     this.$message({
+          //       dangerouslyUseHTMLString: true,
+          //       message: `通知人:<br>${msg.join(";<br>")}<br>存在全角或汉字符号、汉字,请确认`,
+          //       type: "error"
+          //     });
+          //     return;
+          //   }
+          // }
+          // if (checkFullWidthSymbols(this.form.detail.mshipperDetails).hasFullWidth) {
+          //   let msg = [];
+          //   for (let item of checkFullWidthSymbols(this.form.detail.mshipperDetails).positions) {
+          //     msg.push(`第${item.row}行的"${item.symbol}"`);
+          //   }
+          //   if (msg.length > 0) {
+          //     this.$message({
+          //       dangerouslyUseHTMLString: true,
+          //       message: `MBL 发货人:<br>${msg.join(";<br>")}<br>存在全角或汉字符号、汉字,请确认`,
+          //       type: "error"
+          //     });
+          //     return;
+          //   }
+          // }
+
+          // if (checkFullWidthSymbols(this.form.detail.mconsigneeDetails).hasFullWidth) {
+          //   let msg = [];
+          //   for (let item of checkFullWidthSymbols(this.form.detail.mconsigneeDetails).positions) {
+          //     msg.push(`第${item.row}行的"${item.symbol}"`);
+          //   }
+          //   if (msg.length > 0) {
+          //     this.$message({
+          //       dangerouslyUseHTMLString: true,
+          //       message: `MBL 收货人:<br>${msg.join(";<br>")}<br>存在全角或汉字符号、汉字,请确认`,
+          //       type: "error"
+          //     });
+          //     return;
+          //   }
+          // }
+          // if (checkFullWidthSymbols(this.form.detail.mnotifyDetails).hasFullWidth) {
+          //   let msg = [];
+          //   for (let item of checkFullWidthSymbols(this.form.detail.mnotifyDetails).positions) {
+          //     msg.push(`第${item.row}行的"${item.symbol}"`);
+          //   }
+          //   if (msg.length > 0) {
+          //     this.$message({
+          //       dangerouslyUseHTMLString: true,
+          //       message: `MBL 通知人:<br>${msg.join(";<br>")}<br>存在全角或汉字符号、汉字,请确认`,
+          //       type: "error"
+          //     });
+          //     return;
+          //   }
+          // }
+
+          // if (checkFullWidthSymbols(this.form.marks).hasFullWidth) {
+          //   let msg = [];
+          //   for (let item of checkFullWidthSymbols(this.form.marks).positions) {
+          //     msg.push(`第${item.row}行的"${item.symbol}"`);
+          //   }
+          //   if (msg.length > 0) {
+          //     this.$message({
+          //       dangerouslyUseHTMLString: true,
+          //       message: `唛头:<br>${msg.join(";<br>")}<br>存在全角或汉字符号、汉字,请确认`,
+          //       type: "error"
+          //     });
+          //     return;
+          //   }
+          // }
+          // if (checkFullWidthSymbols(this.form.commodityDescr).hasFullWidth) {
+          //   let msg = [];
+          //   for (let item of checkFullWidthSymbols(this.form.commodityDescr).positions) {
+          //     msg.push(`第${item.row}行的"${item.symbol}"`);
+          //   }
+          //   if (msg.length > 0) {
+          //     this.$message({
+          //       dangerouslyUseHTMLString: true,
+          //       message: `货描:<br>${msg.join(";<br>")}<br>存在全角或汉字符号、汉字,请确认`,
+          //       type: "error"
+          //     });
+          //     return;
+          //   }
+          // }
+          // if (checkFullWidthSymbols(this.form.forwarding).hasFullWidth) {
+          //   let msg = [];
+          //   for (let item of checkFullWidthSymbols(this.form.forwarding).positions) {
+          //     msg.push(`第${item.row}行的"${item.symbol}"`);
+          //   }
+          //   if (msg.length > 0) {
+          //     this.$message({
+          //       dangerouslyUseHTMLString: true,
+          //       message: `FORWARDING:<br>${msg.join(";<br>")}<br>存在全角或汉字符号,,请修正后再保存!`,
+          //       type: "error"
+          //     });
+          //     return;
+          //   }
+          // }
+          if (lineQuantityVerification(this.form.detail.hshipperDetails, this.lineLength)) {
+            return this.$message.error(`发货人详情超长,请手动断行,否则影响打印`);
+          }
+          if (lineQuantityVerification(this.form.detail.hconsigneeDetails, this.lineLength)) {
+            return this.$message.error(`收货人详情超长,请手动断行,否则影响打印`);
+          }
+          if (lineQuantityVerification(this.form.detail.hnotifyDetails, this.lineLength)) {
+            return this.$message.error(`通知人详情超长,请手动断行,否则影响打印`);
+          }
+          // console.log(this.form.detail);
+          // if (!verifyEnglish(this.form.detail.hshipperDetails)) {
+          //   msgsList.push("发货人");
+          // }
+          // if (!verifyEnglish(this.form.detail.hconsigneeDetails)) {
+          //   msgsList.push("收货人");
+          // }
+          // if (!verifyEnglish(this.form.detail.hnotifyDetails)) {
+          //   msgsList.push("通知人");
+          // }
+          // if (!verifyEnglish(this.form.detail.mshipperDetails)) {
+          //   msgsList.push("MBL 发货人");
+          // }
+          // if (!verifyEnglish(this.form.detail.mconsigneeDetails)) {
+          //   msgsList.push("MBL 收货人");
+          // }
+          // if (!verifyEnglish(this.form.detail.mnotifyDetails)) {
+          //   msgsList.push("MBL 通知人");
+          // }
+          // if (!verifyEnglish(this.form.marks)) {
+          //   msgsList.push("唛头");
+          // }
+          // if (!verifyEnglish(this.form.commodityDescr)) {
+          //   msgsList.push("货描");
+          // }
+          // if (!verifyEnglish(this.form.forwarding)) {
+          //   msgsList.push("FORWARDING");
+          // }
+          // if (msgsList.length > 0) {
+          //   // this.$message.error(`请正确输入${msgsList.join(",")}的英文`);
+          //   this.$message.error(`${msgsList.join(",")}存在非英文字符,如汉字等,请修正后再保存!`);
+          //   return;
+          // }
 
-            // if (checkFullWidthSymbols(this.form.marks).hasFullWidth) {
-            //   let msg = [];
-            //   for (let item of checkFullWidthSymbols(this.form.marks).positions) {
-            //     msg.push(`第${item.row}行的"${item.symbol}"`);
-            //   }
-            //   if (msg.length > 0) {
-            //     this.$message({
-            //       dangerouslyUseHTMLString: true,
-            //       message: `唛头:<br>${msg.join(";<br>")}<br>存在全角或汉字符号、汉字,请确认`,
-            //       type: "error"
-            //     });
-            //     return;
-            //   }
-            // }
-            // if (checkFullWidthSymbols(this.form.commodityDescr).hasFullWidth) {
-            //   let msg = [];
-            //   for (let item of checkFullWidthSymbols(this.form.commodityDescr).positions) {
-            //     msg.push(`第${item.row}行的"${item.symbol}"`);
-            //   }
-            //   if (msg.length > 0) {
-            //     this.$message({
-            //       dangerouslyUseHTMLString: true,
-            //       message: `货描:<br>${msg.join(";<br>")}<br>存在全角或汉字符号、汉字,请确认`,
-            //       type: "error"
-            //     });
-            //     return;
-            //   }
-            // }
-            // if (checkFullWidthSymbols(this.form.forwarding).hasFullWidth) {
-            //   let msg = [];
-            //   for (let item of checkFullWidthSymbols(this.form.forwarding).positions) {
-            //     msg.push(`第${item.row}行的"${item.symbol}"`);
-            //   }
-            //   if (msg.length > 0) {
-            //     this.$message({
-            //       dangerouslyUseHTMLString: true,
-            //       message: `FORWARDING:<br>${msg.join(";<br>")}<br>存在全角或汉字符号,,请修正后再保存!`,
-            //       type: "error"
-            //     });
-            //     return;
-            //   }
-            // }
-            if (lineQuantityVerification(this.form.detail.hshipperDetails, this.lineLength)) {
-              return this.$message.error(`发货人详情超长,请手动断行,否则影响打印`);
-            }
-            if (lineQuantityVerification(this.form.detail.hconsigneeDetails, this.lineLength)) {
-              return this.$message.error(`收货人详情超长,请手动断行,否则影响打印`);
-            }
-            if (lineQuantityVerification(this.form.detail.hnotifyDetails, this.lineLength)) {
-              return this.$message.error(`通知人详情超长,请手动断行,否则影响打印`);
-            }
-            // console.log(this.form.detail);
-            // if (!verifyEnglish(this.form.detail.hshipperDetails)) {
-            //   msgsList.push("发货人");
-            // }
-            // if (!verifyEnglish(this.form.detail.hconsigneeDetails)) {
-            //   msgsList.push("收货人");
-            // }
-            // if (!verifyEnglish(this.form.detail.hnotifyDetails)) {
-            //   msgsList.push("通知人");
-            // }
-            // if (!verifyEnglish(this.form.detail.mshipperDetails)) {
-            //   msgsList.push("MBL 发货人");
-            // }
-            // if (!verifyEnglish(this.form.detail.mconsigneeDetails)) {
-            //   msgsList.push("MBL 收货人");
-            // }
-            // if (!verifyEnglish(this.form.detail.mnotifyDetails)) {
-            //   msgsList.push("MBL 通知人");
-            // }
-            // if (!verifyEnglish(this.form.marks)) {
-            //   msgsList.push("唛头");
-            // }
-            // if (!verifyEnglish(this.form.commodityDescr)) {
-            //   msgsList.push("货描");
-            // }
-            // if (!verifyEnglish(this.form.forwarding)) {
-            //   msgsList.push("FORWARDING");
-            // }
-            // if (msgsList.length > 0) {
-            //   // this.$message.error(`请正确输入${msgsList.join(",")}的英文`);
-            //   this.$message.error(`${msgsList.join(",")}存在非英文字符,如汉字等,请修正后再保存!`);
-            //   return;
-            // }
-          
           this.form.detail.hshipperDetails = this.getTextTirim(this.form.detail.hshipperDetails);
           this.form.detail.hconsigneeDetails = this.getTextTirim(this.form.detail.hconsigneeDetails);
           this.form.detail.hnotifyDetails = this.getTextTirim(this.form.detail.hnotifyDetails);
@@ -2814,14 +2818,14 @@ export default {
       if (
         !this.roleName.includes("admin") &&
         (this.roleName.includes("应收修改") || this.roleName.includes("应收查看")) &&
-        !(this.roleName.includes("应付修改") || this.roleName.includes("应付查看")|| !this.roleName.includes("允许修改他人费用"))
+        !(this.roleName.includes("应付修改") || this.roleName.includes("应付查看") || !this.roleName.includes("允许修改他人费用"))
       ) {
         res.data.data.feeCenterListC = [];
       }
       if (
         !this.roleName.includes("admin") &&
         (this.roleName.includes("应付修改") || this.roleName.includes("应付查看")) &&
-        !(this.roleName.includes("应收修改") || this.roleName.includes("应收查看")|| !this.roleName.includes("允许修改他人费用"))
+        !(this.roleName.includes("应收修改") || this.roleName.includes("应收查看") || !this.roleName.includes("允许修改他人费用"))
       ) {
         res.data.data.feeCenterListD = [];
       }
@@ -2895,14 +2899,14 @@ export default {
       if (
         !this.roleName.includes("admin") &&
         (this.roleName.includes("应收修改") || this.roleName.includes("应收查看")) &&
-        !(this.roleName.includes("应付修改") || this.roleName.includes("应付查看")|| !this.roleName.includes("允许修改他人费用"))
+        !(this.roleName.includes("应付修改") || this.roleName.includes("应付查看") || !this.roleName.includes("允许修改他人费用"))
       ) {
         res.data.data.feeCenterListC = [];
       }
       if (
         !this.roleName.includes("admin") &&
         (this.roleName.includes("应付修改") || this.roleName.includes("应付查看")) &&
-        !(this.roleName.includes("应收修改") || this.roleName.includes("应收查看")|| !this.roleName.includes("允许修改他人费用"))
+        !(this.roleName.includes("应收修改") || this.roleName.includes("应收查看") || !this.roleName.includes("允许修改他人费用"))
       ) {
         res.data.data.feeCenterListD = [];
       }

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

@@ -984,7 +984,7 @@
             </el-row>
             <el-row>
               <el-col :span="12">
-                <el-form-item label="签单方式" prop="issueType" label-width="80px">
+                <el-form-item label="签单方式" prop="issueType" label-width="80px" :rules="[{ required: true, message: ' ', trigger: 'blur' }]">
                   <span slot="label">
                     <span style="color: #1e9fff">{{ $t("sea118n.issueType") }}</span>
                   </span>

+ 3 - 0
src/views/iosBasicData/SeafreightExportF/bills/billsDetails.vue

@@ -2513,6 +2513,9 @@ export default {
               msgs.push("客服");
             }
           }
+          if (!this.form.issueType) {
+            msgs.push("签单方式");
+          }
           // if (!this.form.teamName) {
           //     msgs.push('所属团队')
           // }

+ 11 - 1
src/views/iosBasicData/businessCenter/customerBooking/detailsPage.vue

@@ -735,7 +735,17 @@
                           </el-form-item>
                         </el-col>
                         <el-col span="12">
-                          <el-form-item label="签单方式" prop="issueType">
+                          <el-form-item
+                            label="签单方式"
+                            prop="issueType"
+                            :rules="[
+                              {
+                                required: true,
+                                message: ' ',
+                                trigger: 'blur'
+                              }
+                            ]"
+                          >
                             <dic-select
                               v-model="form.issueType"
                               placeholder="签单方式"

+ 3 - 46
src/views/iosBasicData/costcenter/soc/detailsPage.vue

@@ -192,26 +192,14 @@
             ></dic-select>
           </tempalte>
           <tempalte slot="cabinTypeData">
-            <div>
-              <dic-select
-                v-show="form.cabinType == '固定' || !form.cabinType"
+            <dic-select
                 v-model="form.cabinTypeData"
                 key="id"
                 label="dictValue"
                 placeholder="数据"
                 url="/blade-system/dict-biz/dictionary?code=cabinTypeData_1"
-                :disabled="editDisabled || !form.cabinType"
-              ></dic-select>
-              <dic-select
-                v-show="form.cabinType == '非固定'"
-                v-model="form.cabinTypeData"
-                key="id"
-                label="dictValue"
-                placeholder="数据"
-                url="/blade-system/dict-biz/dictionary?code=cabinTypeData_2"
                 :disabled="editDisabled"
               ></dic-select>
-            </div>
           </tempalte>
           <tempalte slot="flightType">
             <dic-select
@@ -1291,7 +1279,7 @@ export default {
       form: {
         belongingCompanyId: JSON.parse(localStorage.getItem("sysitemData")).deptId,
         belongingCompanyName: JSON.parse(localStorage.getItem("sysitemData")).deptName,
-        cabinType: "非固定",
+        cabinType: "DF自营",
         flightType: "直达",
         transportationTerms: "CY-CY",
         businessType: "SOC",
@@ -2822,31 +2810,6 @@ export default {
           this.form.classes = null;
         }
       }
-      if (name == "cabinType") {
-        if (row) {
-          if (row.dictValue == "固定") {
-            this.optionForm.column.forEach(item => {
-              if (item.prop == "shippingSpaceNumber" || item.prop == "weightLimit") {
-                this.$set(item.rules[0], "required", true);
-              }
-            });
-          }
-          if (row.dictValue == "非固定") {
-            this.optionForm.column.forEach(item => {
-              if (item.prop == "shippingSpaceNumber" || item.prop == "weightLimit") {
-                this.$set(item.rules[0], "required", false);
-              }
-            });
-          }
-        } else {
-          this.optionForm.column.forEach(item => {
-            if (item.prop == "shippingSpaceNumber") {
-              this.$set(item.rules[0], "required", false);
-            }
-          });
-          this.form.cabinTypeData = null;
-        }
-      }
       if (name == "flightType") {
         if (!row || row.dictValue == "直达") {
           this.form.changeShipType = null;
@@ -3077,6 +3040,7 @@ export default {
         polIncomeTwo: 0,
         podCostTwo: 0,
         podIncomeTwo: 0,
+        additionalFee: 0,
         $cellEdit: true
       });
     },
@@ -3174,13 +3138,6 @@ export default {
               }
             });
           }
-          if (res.data.data.cabinType == "固定") {
-            this.optionForm.column.forEach(item => {
-              if (item.prop == "shippingSpaceNumber" || item.prop == "weightLimit") {
-                this.$set(item.rules[0], "required", true);
-              }
-            });
-          }
           this.form = res.data.data;
           // this.inLock();
           if (res.data.data.status != "录入") {

+ 51 - 3
src/views/iosBasicData/costcenter/soc/index.vue

@@ -34,6 +34,7 @@
           <el-button type="success" size="small" :disabled="selectionList.length != 1" @click="copyButton">复制单据 </el-button>
           <el-button type="warning" size="small" @click="outExport">导 出 </el-button>
           <el-button type="danger" size="small" icon="el-icon-refresh" @click="swap"> </el-button>
+          <el-button type="warning" size="small" @click="unreviewed" :disabled="!selectionList.length">未审核 </el-button>
           <el-button type="success" size="small" @click="checkBills" :disabled="!selectionList.length">提交 </el-button>
           <el-button type="danger" size="small" @click="batchRevoke" :disabled="!selectionList.length">撤销 </el-button>
           <el-button type="success" size="small" :disabled="selectionList.length == 0" @click="allClick('批量复制')">批量复制 </el-button>
@@ -49,9 +50,28 @@
           <span v-if="row.status == '录入'" style="color: #fff;border-radius: 30px;padding: 2px 15px;background-color: #409EFF;">{{
             row.status
           }}</span>
-          <span v-if="row.status != '录入'" style="color: #fff;border-radius: 30px;padding: 2px 15px;background-color: #67C23A;">{{
+          <span v-if="row.status == '未审核'" style="color: #fff;border-radius: 30px;padding: 2px 15px;background-color: #E6A23C;">{{
             row.status
           }}</span>
+          <span v-if="row.status == '审核通过'" style="color: #fff;border-radius: 30px;padding: 2px 15px;background-color: #67C23A;">{{
+            row.status
+          }}</span>
+        </template>
+        <template slot="profit20" slot-scope="{ row }">
+          <span v-if="row.profit20Status == 1" style="color: #F56C6C;">{{ row.profit20 }}</span>
+          <span v-if="row.profit20Status != 1">{{ row.profit20 }}</span>
+        </template>
+        <template slot="profit40" slot-scope="{ row }">
+          <span v-if="row.profit40Status == 1" style="color: #F56C6C;">{{ row.profit40 }}</span>
+          <span v-if="row.profit40Status != 1">{{ row.profit40 }}</span>
+        </template>
+        <template slot="profitHc" slot-scope="{ row }">
+          <span v-if="row.profitHcStatus == 1" style="color: #F56C6C;">{{ row.profitHc }}</span>
+          <span v-if="row.profitHcStatus != 1">{{ row.profitHc }}</span>
+        </template>
+        <template slot="otherProfit" slot-scope="{ row }">
+          <span v-if="row.otherProfitStatus == 1" style="color: #F56C6C;">{{ row.otherProfit }}</span>
+          <span v-if="row.otherProfitStatus != 1">{{ row.otherProfit }}</span>
         </template>
       </avue-crud>
     </basic-container>
@@ -78,7 +98,7 @@
 </template>
 
 <script>
-import { getList, remove, checkBillsBatch, batchRevoke, batchCopy } from "@/api/iosBasicData/costcenter/soc";
+import { getList, remove, checkBillsBatch, batchRevoke, batchCopy, batchUnreviewed } from "@/api/iosBasicData/costcenter/soc";
 import { getWorkDicts } from "@/api/system/dictbiz";
 import detailsPage from "./detailsPage";
 import { getToken } from "@/util/auth";
@@ -523,6 +543,34 @@ export default {
         });
       }
     },
+    unreviewed() {
+      for (let item of this.selectionList) {
+        if (item.status != "录入") {
+          return this.$message.error("请选择录入状态的单据");
+        }
+      }
+      let ids = [];
+      for (let item of this.selectionList) {
+        ids.push(item.id);
+      }
+      let obj = {
+        ids: ids.join(",")
+      };
+      const loading = this.$loading({
+        lock: true,
+        text: "加载中",
+        spinner: "el-icon-loading",
+        background: "rgba(255,255,255,0.7)"
+      });
+      batchUnreviewed(obj)
+        .then(res => {
+          this.$message.success("操作成功!");
+          this.onLoad(this.page, this.query);
+        })
+        .finally(() => {
+          loading.close();
+        });
+    },
     checkBills() {
       for (let item of this.selectionList) {
         if (item.status != "录入") {
@@ -573,7 +621,7 @@ export default {
       let obj = {
         ids: ids.join(",")
       };
-      this.$confirm("是否批量单据请核?", "提示", {
+      this.$confirm("是否批量撤销审核?", "提示", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
         type: "warning"

+ 9 - 2
src/views/ow/owPut/detailsPage.vue

@@ -1372,7 +1372,14 @@ export default {
           {
             label: "内部放箱号",
             prop: "internalContainerNumber",
-            disabled: true
+            disabled: false,
+            rules: [
+              {
+                required: true,
+                message: "",
+                trigger: "blur"
+              }
+            ]
           },
           {
             label: "箱况",
@@ -3751,7 +3758,7 @@ export default {
         this.fixData = false;
         this.editDisabled = false;
         this.optionForm.column.forEach(e => {
-          if (!(e.prop == "internalContainerNumber" || e.prop == "suitcaseNum" || e.prop == "notSuitcaseNum")) {
+          if (!(e.prop == "suitcaseNum" || e.prop == "notSuitcaseNum")) {
             e.disabled = false;
           }
         });

+ 132 - 115
src/views/ow/owReminder/index.vue

@@ -1,19 +1,30 @@
 <template>
   <div>
     <basic-container>
-      <avue-crud :option="option" :table-loading="loading" :data="data" :search.sync="query" v-model="form"
-        id="out-table" :header-cell-class-name="headerClassName" ref="crud" @search-change="searchChange"
-        @search-reset="searchReset" @selection-change="selectionChange" @refresh-change="refreshChange"
+      <avue-crud
+        :option="option"
+        :table-loading="loading"
+        :data="data"
+        :search.sync="query"
+        v-model="form"
+        id="out-table"
+        :header-cell-class-name="headerClassName"
+        ref="crud"
+        @search-change="searchChange"
+        @search-reset="searchReset"
+        @selection-change="selectionChange"
+        @refresh-change="refreshChange"
         @resetColumn="resetColumn('crud', 'option', 'optionBack', 529)"
-        @saveColumn="saveColumn('crud', 'option', 'optionBack', 529)" @on-load="onLoad">
+        @saveColumn="saveColumn('crud', 'option', 'optionBack', 529)"
+        @on-load="onLoad"
+      >
         <template slot="menuLeft">
           <el-tabs v-model="query.type" type="card" @tab-click="refreshChange">
             <el-tab-pane label="用箱提箱" name="2"></el-tab-pane>
             <el-tab-pane label="延期提醒" name="3"></el-tab-pane>
             <el-tab-pane label="还箱提醒" name="1"></el-tab-pane>
           </el-tabs>
-          <el-button type="warning" size="small" @click="outExport">导 出
-          </el-button>
+          <el-button type="warning" size="small" @click="outExport">导 出 </el-button>
         </template>
       </avue-crud>
     </basic-container>
@@ -30,15 +41,16 @@ export default {
   name: "OW提醒",
   data() {
     return {
+      roleName: localStorage.getItem("roleName"),
       form: {},
       query: {
-        type: '2',
+        type: "2"
       },
       loading: false,
       selectionList: [],
       option: {},
       optionBack: {
-        height: 'auto',
+        height: "auto",
         calcHeight: 30,
         menuWidth: 140,
         menu: false,
@@ -52,74 +64,75 @@ export default {
         viewBtn: false,
         editBtn: false,
         delBtn: false,
-        align: 'center',
+        align: "center",
         column: [
           {
-            label: 'provider',
-            prop: 'provider',
+            label: "provider",
+            prop: "provider",
             overHidden: true,
+            hide: false
           },
           {
-            label: '业务类型',
-            prop: 'busType',
+            label: "业务类型",
+            prop: "busType",
             overHidden: true,
             dicData: [
               {
-                label: '买箱',
-                value: 'BUY'
+                label: "买箱",
+                value: "BUY"
               },
               {
-                label: '卖箱',
-                value: 'SELL'
+                label: "卖箱",
+                value: "SELL"
               },
               {
-                label: '租入',
-                value: 'ZR'
+                label: "租入",
+                value: "ZR"
               },
               {
-                label: '租出',
-                value: 'ZC'
+                label: "租出",
+                value: "ZC"
               },
               {
-                label: '代理箱',
-                value: 'DL'
+                label: "代理箱",
+                value: "DL"
               },
               {
-                label: 'OW拿箱',
-                value: 'OW-N'
+                label: "OW拿箱",
+                value: "OW-N"
               },
               {
-                label: 'OW放箱',
-                value: 'OW-F'
+                label: "OW放箱",
+                value: "OW-F"
               },
               {
-                label: '箱管费用',
-                value: 'XGFY'
+                label: "箱管费用",
+                value: "XGFY"
               },
               {
-                label: '箱管调箱',
-                value: 'XGDX'
+                label: "箱管调箱",
+                value: "XGDX"
               },
               {
-                label: '出场申请',
-                value: 'CCSQ'
+                label: "出场申请",
+                value: "CCSQ"
               },
               {
-                label: '调箱成本',
-                value: 'DXCB'
-              },
+                label: "调箱成本",
+                value: "DXCB"
+              }
             ]
           },
           {
-            label: '放箱号',
-            prop: 'containerNumber',
-            overHidden: true,
+            label: "放箱号",
+            prop: "containerNumber",
+            overHidden: true
           },
-       
+
           {
-            label: '箱型',
-            prop: 'boxType',
-            overHidden: true,
+            label: "箱型",
+            prop: "boxType",
+            overHidden: true
             // // search: true,
             // type: "select",
             // filterable: true,
@@ -131,44 +144,43 @@ export default {
             //   desc: 'code',
             //   res: "data.records"
             // }
-
           },
           {
-            label: '箱量',
-            prop: 'boxNumber',
-            overHidden: true,
+            label: "箱量",
+            prop: "boxNumber",
+            overHidden: true
           },
           {
-            label: '已提箱',
-            prop: 'suitcaseNum',
-            overHidden: true,
+            label: "已提箱",
+            prop: "suitcaseNum",
+            overHidden: true
           },
           {
-            label: '未提箱',
-            prop: 'notSuitcaseNum',
-            overHidden: true,
+            label: "未提箱",
+            prop: "notSuitcaseNum",
+            overHidden: true
           },
           {
-            label: '起运港',
-            prop: 'polCname',
-            overHidden: true,
+            label: "起运港",
+            prop: "polCname",
+            overHidden: true
           },
           {
-            label: '起运港场站',
-            prop: 'polStationCname',
+            label: "起运港场站",
+            prop: "polStationCname",
             width: 100,
-            overHidden: true,
+            overHidden: true
           },
           {
-            label: '目的港',
-            prop: 'podCname',
-            overHidden: true,
+            label: "目的港",
+            prop: "podCname",
+            overHidden: true
           },
           {
-            label: '目的港场站',
-            prop: 'podStationCname',
+            label: "目的港场站",
+            prop: "podStationCname",
             width: 100,
-            overHidden: true,
+            overHidden: true
           },
           {
             label: "有效期起",
@@ -178,7 +190,7 @@ export default {
             // search: true,
             type: "date",
             format: "yyyy-MM-dd",
-            valueFormat: "yyyy-MM-dd 00:00:00",
+            valueFormat: "yyyy-MM-dd 00:00:00"
             // searchValue: dateFormat(new Date(), "yyyy-MM-dd") + " 00:00:00",
           },
           {
@@ -189,7 +201,7 @@ export default {
             // search: true,
             type: "date",
             format: "yyyy-MM-dd",
-            valueFormat: "yyyy-MM-dd 23:59:59",
+            valueFormat: "yyyy-MM-dd 23:59:59"
           },
           {
             label: "启用日期",
@@ -197,35 +209,35 @@ export default {
             width: "100",
             overHidden: true,
             type: "date",
-            format: "yyyy-MM-dd",
-          },   
+            format: "yyyy-MM-dd"
+          },
           {
-            label: '提单号',
-            prop: 'mblno',
-            overHidden: true,
+            label: "提单号",
+            prop: "mblno",
+            overHidden: true
           },
           {
-            label: '分单号',
-            prop: 'hblno',
-            overHidden: true,
+            label: "分单号",
+            prop: "hblno",
+            overHidden: true
           },
           {
-            label: 'ETD',
-            prop: 'etd',
+            label: "ETD",
+            prop: "etd",
             overHidden: true,
             type: "date",
-            format: "yyyy-MM-dd",
+            format: "yyyy-MM-dd"
           },
           {
-            label: 'ETA',
-            prop: 'eta',
+            label: "ETA",
+            prop: "eta",
             overHidden: true,
             type: "date",
-            format: "yyyy-MM-dd",
-          },
+            format: "yyyy-MM-dd"
+          }
         ]
       },
-      data: [],
+      data: []
     };
   },
   components: {
@@ -233,14 +245,20 @@ export default {
   },
   async created() {
     this.option = await this.getColumnData(this.getColumnName(529), this.optionBack);
+    if (this.roleName.includes("箱管")) {
+      this.option.column.forEach(item => {
+        if (item.prop == "provider") {
+          item.hide = true;
+        }
+      });
+    }
     this.$nextTick(() => {
       this.$refs.crud.doLayout();
       this.$refs.crud.dicInit();
     });
   },
   activated() {
-    setTimeout(() => {
-    }, 100);
+    setTimeout(() => {}, 100);
   },
   methods: {
     searchReset() {
@@ -259,46 +277,47 @@ export default {
       this.onLoad(this.query);
     },
     onLoad(page, params = {}) {
-      let obj = {}
+      let obj = {};
       obj = {
-        ...Object.assign(params, this.query),
-      }
+        ...Object.assign(params, this.query)
+      };
       this.loading = true;
-      getListReminder(obj).then(res => {
-        this.data = res.data.data;
-        // this.$nextTick(() => {
-        //   this.$refs.crud.doLayout();
-        //   this.$refs.crud.dicInit();
-        // });
-      }).finally(() => {
-        this.loading = false;
-      })
-
+      getListReminder(obj)
+        .then(res => {
+          this.data = res.data.data;
+          // this.$nextTick(() => {
+          //   this.$refs.crud.doLayout();
+          //   this.$refs.crud.dicInit();
+          // });
+        })
+        .finally(() => {
+          this.loading = false;
+        });
     },
     outExport() {
-      let config = { params: { ...this.query } }
+      let config = { params: { ...this.query } };
       if (config.params) {
         for (const propName of Object.keys(config.params)) {
           const value = config.params[propName];
-          if (value !== null && typeof (value) !== "undefined") {
+          if (value !== null && typeof value !== "undefined") {
             if (value instanceof Array) {
               for (const key of Object.keys(value)) {
-                let params = propName + '[' + key + ']';
-                config.params[params] = value[key]
+                let params = propName + "[" + key + "]";
+                config.params[params] = value[key];
               }
-              delete config.params[propName]
+              delete config.params[propName];
             }
           }
         }
       }
       const routeData = this.$router.resolve({
-        path: '/api/blade-los/boxReminderStatistics/boxUsageReminderExport',      //跳转目标窗口的地址
+        path: "/api/blade-los/boxReminderStatistics/boxUsageReminderExport", //跳转目标窗口的地址
         query: {
-          ...config.params,    //括号内是要传递给新窗口的参数
+          ...config.params, //括号内是要传递给新窗口的参数
           identification: this.url
         }
-      })
-      window.open(routeData.href.slice(1, routeData.href.length) + '&' + `${this.website.tokenHeader}=${getToken()}`);
+      });
+      window.open(routeData.href.slice(1, routeData.href.length) + "&" + `${this.website.tokenHeader}=${getToken()}`);
     },
     //自定义列保存
     async saveColumn(ref, option, optionBack, code) {
@@ -326,20 +345,18 @@ export default {
     // 更改表格颜色
     headerClassName(tab) {
       //颜色间隔
-      let back = ""
+      let back = "";
       if (tab.columnIndex >= 0 && tab.column.level === 1) {
         if (tab.columnIndex % 2 === 0) {
-          back = "back-one"
+          back = "back-one";
         } else if (tab.columnIndex % 2 === 1) {
-          back = "back-two"
+          back = "back-two";
         }
       }
       return back;
-    },
-
+    }
   }
-}
-
+};
 </script>
 
 <style lang="scss" scoped>
@@ -361,4 +378,4 @@ export default {
 ::v-deep .el-col-md-8 {
   width: 24.33333%;
 }
-</style>
+</style>