EntrustmentLnformation.vue 117 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060
  1. <template>
  2. <div>
  3. <el-form :model="assemblyForm" ref="form" label-width="90px" class="demo-ruleForm" :disabled="disabled">
  4. <el-row :gutter="20">
  5. <el-col span="8">
  6. <el-row>
  7. <el-form-item label="发货人" prop="hshipperCnName">
  8. <span slot="label">
  9. <span style="color: #1e9fff">发货人</span>
  10. </span>
  11. <div>
  12. <el-col :span="16">
  13. <search-query :datalist="hshipperData"
  14. :selectValue="assemblyForm.detail.hshipperCnName" :filterable="true"
  15. :clearable="true" :remote="true" :addIf="true" :tableIf="false"
  16. :disabled="detailData.seeDisabled" :joinData="true"
  17. :forParameter="{ key: 'id', short: 'code', label: 'cnName', value: 'cnName' }"
  18. placeholder="请选择发货人" @addJump="addJump('hshipper')"
  19. @remoteMethod="remoteMethod($event, 'hshipper')"
  20. @corpChange="corpChange($event, 'hshipper')"
  21. @corpFocus="remoteMethod($event, 'hshipper')">
  22. </search-query>
  23. </el-col>
  24. <el-col :span="8">
  25. <el-input type="age" style="width: 100%;"
  26. v-model="assemblyForm.detail.hshipperCntyName" size="small" autocomplete="off"
  27. :disabled="detailData.seeDisabled" clearable placeholder="发货人国家代码"></el-input>
  28. </el-col>
  29. </div>
  30. </el-form-item>
  31. <div style="margin-top: 4px">
  32. <el-form-item label="" prop="hshipperDetails">
  33. <el-input type="textarea" style="width: 100%;"
  34. v-model="assemblyForm.detail.hshipperDetails" size="small" autocomplete="off"
  35. :disabled="detailData.seeDisabled" :rows="textareaNumber" clearable
  36. placeholder="请输入发货人提单描述" @change="textareaBlur('hshipperDetails')"></el-input>
  37. </el-form-item>
  38. </div>
  39. <el-form-item label="收货人" prop="hconsigneeCnName">
  40. <span slot="label">
  41. <span style="color: #1e9fff">收货人</span>
  42. </span>
  43. <div>
  44. <el-col :span="16">
  45. <search-query :datalist="hconsigneeData"
  46. :selectValue="assemblyForm.detail.hconsigneeCnName" :filterable="true"
  47. :clearable="true" :remote="true" :joinData="true"
  48. :disabled="detailData.seeDisabled" :addIf="true" :tableIf="false"
  49. placeholder="请选择收货人"
  50. :forParameter="{ key: 'id', short: 'code', label: 'cnName', value: 'cnName' }"
  51. @addJump="addJump('hconsignee')"
  52. @remoteMethod="remoteMethod($event, 'hconsignee')"
  53. @corpChange="corpChange($event, 'hconsignee')"
  54. @corpFocus="remoteMethod($event, 'hconsignee')">
  55. </search-query>
  56. </el-col>
  57. <el-col :span="8">
  58. <!-- <span style="padding-left: 10px"></span>-->
  59. <el-input type="age" style="width: 100%;"
  60. v-model="assemblyForm.detail.hconsigneeCntyName" size="small" autocomplete="off"
  61. :disabled="detailData.seeDisabled" clearable placeholder="收货人国家代码"></el-input>
  62. </el-col>
  63. <!-- <el-col :span="4">-->
  64. <!-- <span style="margin-left: 20px"></span>-->
  65. <!-- <span style="font-size: 12px;color: #1e9fff;cursor: pointer;"-->
  66. <!-- @click="notifybyfun">同通</span>-->
  67. <!-- </el-col>-->
  68. </div>
  69. </el-form-item>
  70. <div>
  71. <el-form-item label="同通" prop="hconsigneeDetails">
  72. <span slot="label">
  73. <span style="font-size: 12px;color: #1e9fff;cursor: pointer;"
  74. @click="notifybyfun">同通</span>
  75. </span>
  76. <el-input type="textarea" style="width: 100%;"
  77. v-model="assemblyForm.detail.hconsigneeDetails" size="small" autocomplete="off"
  78. :disabled="detailData.seeDisabled" :rows="textareaNumber" clearable
  79. placeholder="请输入收货人提单描述" @change="textareaBlur('hconsigneeDetails')"></el-input>
  80. </el-form-item>
  81. </div>
  82. <el-form-item label="通知人" prop="hnotifyCnName">
  83. <span slot="label">
  84. <span style="color: #1e9fff">通知人</span>
  85. </span>
  86. <div>
  87. <el-col :span="16">
  88. <search-query :datalist="hnotifyData"
  89. :selectValue="assemblyForm.detail.hnotifyCnName" :filterable="true"
  90. :clearable="true" :remote="true" :joinData="true"
  91. :disabled="detailData.seeDisabled" :addIf="true" :tableIf="false"
  92. placeholder="请选择通知人"
  93. :forParameter="{ key: 'id', short: 'code', label: 'cnName', value: 'cnName' }"
  94. @addJump="addJump('hconsignee')" @remoteMethod="remoteMethod($event, 'hnotify')"
  95. @corpChange="corpChange($event, 'hnotify')"
  96. @corpFocus="remoteMethod($event, 'hnotify')">
  97. </search-query>
  98. </el-col>
  99. <el-col :span="8">
  100. <!-- padding-left: 10px -->
  101. <div style="display: flex;align-items: center;justify-content: space-between;">
  102. <div style="flex: 4">
  103. <el-input type="age" style="width: 100%;"
  104. v-model="assemblyForm.detail.hnotifyCntyName" size="small"
  105. autocomplete="off" :disabled="detailData.seeDisabled" clearable
  106. placeholder="通知人国家代码"></el-input>
  107. </div>
  108. <!-- <div style="flex: 1;margin-left: 10px">-->
  109. <!-- <el-button type="primary" icon="el-icon-plus" size="mini"-->
  110. <!-- @click="hnotifyClick"></el-button>-->
  111. <!-- <div class="addbuttonClass" @click="hnotifyClick">+</div> -->
  112. <!-- </div>-->
  113. </div>
  114. </el-col>
  115. </div>
  116. </el-form-item>
  117. <div>
  118. <el-form-item label="" prop="hnotifyDetails">
  119. <span slot="label">
  120. <el-button type="primary" icon="el-icon-plus" size="mini"
  121. @click="hnotifyClick"></el-button>
  122. </span>
  123. <el-input type="textarea" style="width: 100%;"
  124. v-model="assemblyForm.detail.hnotifyDetails" size="small" autocomplete="off"
  125. :disabled="detailData.seeDisabled" :rows="textareaNumber" clearable
  126. placeholder="请输入通知人提单描述" @change="textareaBlur('hnotifyDetails')"></el-input>
  127. </el-form-item>
  128. </div>
  129. </el-row>
  130. <el-row>
  131. <!-- <el-form-item label="收货地" prop="placeReceiptName">
  132. <span slot="label">
  133. <el-popover placement="right" width="400" trigger="hover"
  134. @show="delShow(assemblyForm.placeReceiptId, 1)">
  135. <avue-crud :data="delData" :option="delOption" :table-loading="loading"></avue-crud>
  136. <span style="color:rgb(76, 158, 68);text-decoration: underline;"
  137. slot="reference">收货地</span>
  138. </el-popover>
  139. </span>
  140. <el-row>
  141. <el-col :span="10">
  142. <search-query :datalist="placeReceiptData"
  143. :selectValue="assemblyForm.placeReceiptName" :filterable="true"
  144. :clearable="true" :remote="true" :joinData="true"
  145. :disabled="detailData.seeDisabled" :buttonIf="false" placeholder="请选择收货地"
  146. :forParameter="{ key: 'id', short: 'enName', label: 'code', value: 'enName' }"
  147. @remoteMethod="remoteMethod($event, 'placeReceipt')"
  148. @corpChange="corpChange($event, 'placeReceipt')"
  149. @corpFocus="remoteMethod($event, 'placeReceipt')">
  150. </search-query>
  151. </el-col>
  152. <el-col :span="13">
  153. <span style="padding-left: 20px"></span>
  154. <el-input type="age" style="width: 100%;"
  155. v-model="assemblyForm.placeReceiptNamePrint" size="small" autocomplete="off"
  156. :disabled="detailData.seeDisabled" clearable placeholder="收货地"
  157. @change="textareaBlur('placeReceiptNamePrint')"
  158. ></el-input>
  159. </el-col>
  160. </el-row>
  161. </el-form-item> -->
  162. <el-form-item label="装货港" prop="polCnName">
  163. <span slot="label">
  164. <el-popover placement="right" width="400" trigger="hover"
  165. @show="delShow(assemblyForm.polId, 1)">
  166. <avue-crud :data="delData" :option="delOption" :table-loading="loading"></avue-crud>
  167. <span style="color:rgb(76, 158, 68);text-decoration: underline;"
  168. slot="reference">装货港</span>
  169. </el-popover>
  170. </span>
  171. <el-row>
  172. <el-col :span="10">
  173. <search-query :datalist="polData" :selectValue="assemblyForm.polEnName"
  174. :filterable="true" :clearable="true" :remote="true" :joinData="true"
  175. :disabled="detailData.seeDisabled || generateBillsfalse || (assemblyForm.billType == 'MH' && assemblyForm.masterBillNo > 0)"
  176. :buttonIf="false" placeholder="请选择装货港"
  177. :forParameter="{ key: 'id', short: 'enName', label: 'code', value: 'enName' }"
  178. @remoteMethod="remoteMethod($event, 'pol')"
  179. @corpChange="corpChange($event, 'pol')"
  180. @corpFocus="remoteMethod($event, 'pol')">
  181. </search-query>
  182. </el-col>
  183. <el-col :span="13">
  184. <span style="padding-left: 20px"></span>
  185. <el-input type="age" style="width: 100%;" v-model="assemblyForm.polNamePrint"
  186. size="small" autocomplete="off"
  187. :disabled="detailData.seeDisabled || generateBillsfalse || (assemblyForm.billType == 'MH' && assemblyForm.masterBillNo > 0)"
  188. clearable placeholder="装货港" @change="textareaBlur('polNamePrint')"></el-input>
  189. </el-col>
  190. </el-row>
  191. </el-form-item>
  192. <el-form-item label="卸货港" prop="podCnName">
  193. <span slot="label">
  194. <el-popover placement="right" width="400" trigger="hover"
  195. @show="delShow(assemblyForm.podId, 1)">
  196. <avue-crud :data="delData" :option="delOption" :table-loading="loading"></avue-crud>
  197. <!-- <el-button slot="reference">click 激活</el-button> -->
  198. <span style="color:rgb(76, 158, 68);text-decoration: underline;"
  199. slot="reference">卸货港</span>
  200. </el-popover>
  201. <!-- <span style="color: #1e9fff">卸货港</span> -->
  202. </span>
  203. <el-row>
  204. <el-col :span="10">
  205. <search-query :datalist="podData" :selectValue="assemblyForm.podEnName"
  206. :filterable="true" :clearable="true" :remote="true" :joinData="true"
  207. :disabled="detailData.seeDisabled || (assemblyForm.billType == 'MH' && assemblyForm.masterBillNo > 0)"
  208. :buttonIf="false" placeholder="请选择卸货港"
  209. :forParameter="{ key: 'id', short: 'enName', label: 'code', value: 'enName' }"
  210. @remoteMethod="remoteMethod($event, 'pod')"
  211. @corpChange="corpChange($event, 'pod')"
  212. @corpFocus="remoteMethod($event, 'pod')">
  213. </search-query>
  214. </el-col>
  215. <el-col :span="13">
  216. <span style="padding-left: 20px"></span>
  217. <el-input type="age" style="width: 100%;" v-model="assemblyForm.podNamePrint"
  218. size="small" autocomplete="off"
  219. :disabled="detailData.seeDisabled || (assemblyForm.billType == 'MH' && assemblyForm.masterBillNo > 0)"
  220. clearable placeholder="卸货港" @change="textareaBlur('podNamePrint')"></el-input>
  221. </el-col>
  222. </el-row>
  223. </el-form-item>
  224. <el-form-item label="目的地" prop="destinationName">
  225. <span slot="label">
  226. <el-popover placement="right" width="400" trigger="hover"
  227. @show="delShow(assemblyForm.destinationId, 1)">
  228. <avue-crud :data="delData" :option="delOption" :table-loading="loading"></avue-crud>
  229. <!-- <el-button slot="reference">click 激活</el-button> -->
  230. <span style="color:rgb(76, 158, 68);text-decoration: underline;"
  231. slot="reference">目的地</span>
  232. </el-popover>
  233. <!-- <span style="color: #1e9fff">目的地</span> -->
  234. </span>
  235. <el-row>
  236. <el-col :span="10">
  237. <search-query :datalist="destinationData"
  238. :selectValue="assemblyForm.destinationName" :filterable="true" :clearable="true"
  239. :remote="true" :joinData="true"
  240. :disabled="detailData.seeDisabled || generateBillsfalse || (assemblyForm.billType == 'MH' && assemblyForm.masterBillNo > 0)"
  241. :buttonIf="false" placeholder="请选择目的地"
  242. :forParameter="{ key: 'id', short: 'enName', label: 'code', value: 'enName' }"
  243. @remoteMethod="remoteMethod($event, 'destination')"
  244. @corpChange="corpChange($event, 'destination')"
  245. @corpFocus="remoteMethod($event, 'destination')">
  246. </search-query>
  247. </el-col>
  248. <el-col :span="13">
  249. <span style="padding-left: 20px"></span>
  250. <el-input type="age" style="width: 100%;"
  251. v-model="assemblyForm.destinationNamePrint" size="small" autocomplete="off"
  252. :disabled="detailData.seeDisabled || generateBillsfalse || (assemblyForm.billType == 'MH' && assemblyForm.masterBillNo > 0)"
  253. clearable placeholder="目的地"
  254. @change="textareaBlur('destinationNamePrint')"></el-input>
  255. </el-col>
  256. </el-row>
  257. </el-form-item>
  258. <el-form-item label="交货地" prop="placeDeliveryName">
  259. <span slot="label">
  260. <el-popover placement="right" width="400" trigger="hover"
  261. @show="delShow(assemblyForm.placeDeliveryId, 1)">
  262. <avue-crud :data="delData" :option="delOption" :table-loading="loading"></avue-crud>
  263. <!-- <el-button slot="reference">click 激活</el-button> -->
  264. <span style="color:rgb(76, 158, 68);text-decoration: underline;"
  265. slot="reference">交货地</span>
  266. </el-popover>
  267. <!-- <span style="color: #1e9fff">交货地</span> -->
  268. </span>
  269. <el-row>
  270. <el-col :span="10">
  271. <search-query :datalist="placeDeliveryData" :joinData="true"
  272. :selectValue="assemblyForm.placeDeliveryName" :filterable="true"
  273. :clearable="true" :remote="true" :disabled="detailData.seeDisabled"
  274. :buttonIf="false" placeholder="请选择交货地"
  275. :forParameter="{ key: 'id', short: 'enName', label: 'code', value: 'enName' }"
  276. @remoteMethod="remoteMethod($event, 'placeDelivery')"
  277. @corpChange="corpChange($event, 'placeDelivery')"
  278. @corpFocus="remoteMethod($event, 'placeDelivery')">
  279. </search-query>
  280. </el-col>
  281. <el-col :span="13">
  282. <span style="padding-left: 20px"></span>
  283. <el-input type="age" style="width: 100%;"
  284. v-model="assemblyForm.placeDeliveryNamePrint" size="small" autocomplete="off"
  285. :disabled="detailData.seeDisabled" clearable placeholder="交货地"
  286. @change="textareaBlur('placeDeliveryNamePrint')"></el-input>
  287. </el-col>
  288. </el-row>
  289. </el-form-item>
  290. <!-- <el-form-item label="中转港" prop="potEnName">
  291. <span slot="label">
  292. <el-popover placement="right" width="400" trigger="hover"
  293. @show="delShow(assemblyForm.potId, 1)">
  294. <avue-crud :data="delData" :option="delOption" :table-loading="loading"></avue-crud>
  295. <span style="color:rgb(76, 158, 68);text-decoration: underline;"
  296. slot="reference">中转港</span>
  297. </el-popover>
  298. </span>
  299. <el-row>
  300. <el-col :span="10">
  301. <search-query :datalist="potData" :selectValue="assemblyForm.potEnName"
  302. :filterable="true" :clearable="true" :remote="true" :joinData="true"
  303. :disabled="detailData.seeDisabled" :buttonIf="false" placeholder="请选择中转港"
  304. :forParameter="{ key: 'id', short: 'enName', label: 'code', value: 'enName' }"
  305. @remoteMethod="remoteMethod($event, 'pot')"
  306. @corpChange="corpChange($event, 'pot')"
  307. @corpFocus="remoteMethod($event, 'pot')">
  308. </search-query>
  309. </el-col>
  310. <el-col :span="13">
  311. <span style="padding-left: 20px"></span>
  312. <el-input type="age" style="width: 100%;" v-model="assemblyForm.potNamePrint"
  313. size="small" autocomplete="off" :disabled="detailData.seeDisabled" clearable
  314. placeholder="中转港" @change="textareaBlur('potNamePrint')"></el-input>
  315. </el-col>
  316. </el-row>
  317. </el-form-item> -->
  318. </el-row>
  319. </el-col>
  320. <el-col :span="16">
  321. <el-col :span="12">
  322. <el-row>
  323. <div>
  324. <span style="font-size: 14px;color: #1e9fff">唛头</span>
  325. </div>
  326. <div style="margin-top: 4px">
  327. <el-input type="textarea" style="width: 100%;" v-model="assemblyForm.marks" size="small"
  328. autocomplete="off" :disabled="detailData.seeDisabled" rows="5" clearable
  329. placeholder="请输入唛头" @input="handleInput($event, 'marks')"
  330. @change="textareaBlur('marks')"></el-input>
  331. </div>
  332. <div style="margin-top: 4px">
  333. <el-form-item label="HS CODE" prop="commodityCnName">
  334. <span slot="label">
  335. <span style="color: #1e9fff">HS CODE</span>
  336. </span>
  337. <el-col :span="12">
  338. <el-input type="age" style="width: 100%;" v-model="assemblyForm.hscode"
  339. size="small" autocomplete="off" :disabled="detailData.seeDisabled" clearable
  340. placeholder="HS CODE"></el-input>
  341. </el-col>
  342. <el-col :span="11">
  343. <span style="padding-left: 20px"></span>
  344. <el-input type="age" style="width: 100%;" v-model="assemblyForm.commodityCnName"
  345. size="small" autocomplete="off" :disabled="detailData.seeDisabled" clearable
  346. placeholder="英文名称"></el-input>
  347. </el-col>
  348. </el-form-item>
  349. </div>
  350. <div>
  351. <el-input type="age" style="width: 100%;" v-model="assemblyForm.commodityEnName"
  352. size="small" autocomplete="off" :disabled="detailData.seeDisabled" clearable
  353. placeholder="商品名称"></el-input>
  354. </div>
  355. <div style="margin-top: 4px">
  356. <el-form-item label="货描" prop="cargoType" label-width="40px">
  357. <span slot="label">
  358. <span style="color: #1e9fff">货描</span>
  359. </span>
  360. <!--<el-col :span="5">-->
  361. <!-- <el-checkbox size="medium" :true-label="1" :false-label="0" v-model="assemblyForm.isLargeCargo">大件货</el-checkbox>-->
  362. <!--</el-col>-->
  363. <el-col :span="18">
  364. <search-query :datalist="cargoTypeData" :selectValue="assemblyForm.cargoType"
  365. :filterable="true" :clearable="true" :remote="true"
  366. :disabled="detailData.seeDisabled" :buttonIf="false" placeholder="请选择货描"
  367. @remoteMethod="remoteMethod($event, 'cargoType')"
  368. @corpChange="corpChange($event, 'cargoType')"
  369. @corpFocus="remoteMethod($event, 'cargoType')">
  370. </search-query>
  371. </el-col>
  372. <el-col :span="5">
  373. <span style="margin-left: 10px"></span>
  374. <el-button size="small" @click="DangerousGoodsAdd">危品详细</el-button>
  375. </el-col>
  376. </el-form-item>
  377. </div>
  378. <div>
  379. <el-input type="textarea" style="width: 100%;" v-model="assemblyForm.commodityDescr"
  380. size="small" autocomplete="off" :disabled="detailData.seeDisabled" rows="5"
  381. clearable placeholder="请输入提单上货物描述"
  382. @change="textareaBlur('commodityDescr')"></el-input>
  383. </div>
  384. <div>
  385. <el-form-item label="国外代理" prop="foreignAgencyCnName" label-width="60px">
  386. <span slot="label">
  387. <span style="color: #1e9fff">国外代理</span>
  388. </span>
  389. <div>
  390. <el-col :span="16">
  391. <search-query :datalist="foreignAgencyData"
  392. :selectValue="assemblyForm.foreignAgencyCnName" :filterable="true"
  393. :clearable="true" :remote="true" :addIf="true" :tableIf="false"
  394. :disabled="detailData.seeDisabled" :joinData="true"
  395. :forParameter="{ key: 'id', short: 'code', label: 'cnName', value: 'cnName' }"
  396. placeholder="请选择国外代理" @addJump="addJump('foreignAgency')"
  397. @remoteMethod="remoteMethod($event, 'foreignAgency')"
  398. @corpChange="corpChange($event, 'foreignAgency')"
  399. @corpFocus="remoteMethod($event, 'foreignAgency')">
  400. </search-query>
  401. </el-col>
  402. <el-col :span="8">
  403. <el-input type="age" style="width: 100%;"
  404. v-model="assemblyForm.foreignCntyName" size="small" autocomplete="off"
  405. :disabled="detailData.seeDisabled" clearable
  406. placeholder="国外代理国家代码"></el-input>
  407. </el-col>
  408. </div>
  409. </el-form-item>
  410. <div style="margin-top: 4px">
  411. <el-input type="textarea" style="width: 100%;"
  412. v-model="assemblyForm.foreignAgencyDetails" size="small" autocomplete="off"
  413. :disabled="detailData.seeDisabled" :rows="textareaNumber" clearable
  414. placeholder="请输入国外代理提单描述"
  415. @change="textareaBlur('foreignAgencyDetails')"></el-input>
  416. </div>
  417. </div>
  418. <div style="margin-top: 4px">
  419. <el-form-item label="订舱备注" prop="cyRemarks" label-width="60px">
  420. <span slot="label">
  421. <span style="color: #1e9fff">订舱备注</span>
  422. </span>
  423. <el-input type="textarea" style="width: 100%;" v-model="assemblyForm.cyRemarks"
  424. size="small" autocomplete="off"
  425. :disabled="detailData.seeDisabled || generateBillsfalse" rows="4" clearable
  426. placeholder="请输入场站备注" @change="textareaBlur('cyRemarks')"></el-input>
  427. </el-form-item>
  428. </div>
  429. </el-row>
  430. </el-col>
  431. <el-col :span="12">
  432. <el-form-item label="ETD" prop="etd" label-width="90px"
  433. :rules="[{ required: true, message: '', trigger: 'blur' }]">
  434. <span slot="label">
  435. <span style="color: #1e9fff">ETD</span>
  436. </span>
  437. <el-date-picker v-model="assemblyForm.etd" clearable style="width: 100%" type="date"
  438. size="small"
  439. :disabled="detailData.seeDisabled || generateBillsfalse || (assemblyForm.billType == 'MH' && assemblyForm.masterBillNo > 0) || assemblyForm.feeCenterListD.filter(item => item.auditStatus > 0).length || assemblyForm.feeCenterListC.filter(item => item.auditStatus > 0).length"
  440. value-format="yyyy-MM-dd" :picker-options="etdPickerOptions" placeholder="请选择ETD日期"
  441. @change="handlePick">
  442. </el-date-picker>
  443. </el-form-item>
  444. <div>
  445. <el-form-item label="船名" prop="vesselCnName" label-width="90px">
  446. <span slot="label">
  447. <el-popover placement="right" width="400" trigger="hover"
  448. @show="delShow(assemblyForm.vesselId, 3)">
  449. <avue-crud :data="delData" :option="delOption"
  450. :table-loading="loading"></avue-crud>
  451. <!-- <el-button slot="reference">click 激活</el-button> -->
  452. <span style="color:rgb(76, 158, 68);text-decoration: underline;"
  453. slot="reference">船名</span>
  454. </el-popover>
  455. <!-- <span style="color: #1e9fff">船名</span> -->
  456. </span>
  457. <search-query :datalist="vesselData" :selectValue="assemblyForm.vesselEnName"
  458. :filterable="true" :clearable="true" :remote="true" :allowCreate="true"
  459. :disabled="detailData.seeDisabled || generateBillsfalse || (assemblyForm.billType == 'MH' && assemblyForm.masterBillNo > 0) || assemblyForm.feeCenterListD.filter(item => item.auditStatus > 0).length || assemblyForm.feeCenterListC.filter(item => item.auditStatus > 0).length"
  460. :buttonIf="false" placeholder="请选择船名"
  461. :forParameter="{ key: 'id', label: 'enName', value: 'enName' }"
  462. @remoteMethod="remoteMethod($event, 'vessel')"
  463. @corpChange="corpChange($event, 'vessel')"
  464. @corpFocus="remoteMethod($event, 'vessel')">
  465. </search-query>
  466. </el-form-item>
  467. <el-form-item label="航次" prop="voyageNo" label-width="90px">
  468. <span slot="label">
  469. <span style="color: #1e9fff">航次</span>
  470. </span>
  471. <el-input type="age" style="width: 100%;" v-model="assemblyForm.voyageNo" size="small"
  472. autocomplete="off"
  473. :disabled="detailData.seeDisabled || generateBillsfalse || (assemblyForm.billType == 'MH' && assemblyForm.masterBillNo > 0)|| assemblyForm.feeCenterListD.filter(item => item.auditStatus > 0).length || assemblyForm.feeCenterListC.filter(item => item.auditStatus > 0).length"
  474. clearable placeholder="请输入航次"></el-input>
  475. </el-form-item>
  476. </div>
  477. <!-- <el-form-item label="ETA" prop="eta" label-width="90px">
  478. <span slot="label">
  479. <span style="color: #1e9fff">ETA</span>
  480. </span>
  481. <el-date-picker style="width: 100%;" v-model="assemblyForm.eta" clearable type="date"
  482. size="small" :disabled="detailData.seeDisabled" value-format="yyyy-MM-dd"
  483. placeholder="选择日期">
  484. </el-date-picker>
  485. </el-form-item> -->
  486. <el-form-item label="船公司" prop="carrierCnName">
  487. <span slot="label">
  488. <span style="color: #4c9e44;cursor: pointer;text-decoration: underline"
  489. @click="emailJump('carrier')">船公司</span>
  490. </span>
  491. <search-query :datalist="carrierData" :selectValue="assemblyForm.carrierCnName"
  492. :filterable="true" :clearable="true" :remote="true" :joinData="true"
  493. :disabled="detailData.seeDisabled || generateBillsfalse || (assemblyForm.billType == 'MH' && assemblyForm.masterBillNo > 0)|| assemblyForm.feeCenterListD.filter(item => item.auditStatus > 0).length || assemblyForm.feeCenterListC.filter(item => item.auditStatus > 0).length"
  494. :buttonIf="false" placeholder="请选择船公司"
  495. :forParameter="{ key: 'id', short: 'shortName', label: 'cnName', value: 'cnName' }"
  496. @remoteMethod="remoteMethod($event, 'carrier')"
  497. @corpChange="corpChange($event, 'carrier')"
  498. @corpFocus="remoteMethod($event, 'carrier')">
  499. </search-query>
  500. </el-form-item>
  501. <!-- <div style="display: flex;">
  502. <el-form-item label="船司约号" prop="carrierArgreementNo">
  503. <span slot="label">
  504. <span style="color: #1e9fff">船司约号</span>
  505. </span>
  506. <el-input type="age" style="width: 100%;" v-model="assemblyForm.carrierArgreementNo"
  507. size="small" autocomplete="off" :disabled="detailData.seeDisabled" clearable
  508. placeholder="请输入船司约号"></el-input>
  509. </el-form-item>
  510. <el-form-item label="客户约号" prop="corpArgreementNo" label-width="60px">
  511. <span slot="label">
  512. <span style="color: #1e9fff">客户约号</span>
  513. </span>
  514. <el-input type="age" style="width: 100%;" v-model="assemblyForm.corpArgreementNo"
  515. size="small" autocomplete="off" :disabled="detailData.seeDisabled" clearable
  516. placeholder="请输入客户约号"></el-input>
  517. </el-form-item>
  518. </div> -->
  519. <!-- <el-form-item label="订舱代理" prop="bookingAgentCnName">
  520. <span slot="label">
  521. <span style="color: #1e9fff">订舱代理</span>
  522. </span>
  523. <el-col :span="9" style="margin-left: -10px">
  524. <search-query :datalist="bookingAgentData"
  525. :selectValue="assemblyForm.bookingAgentCnName" :filterable="true" :clearable="true"
  526. :remote="true" :disabled="detailData.seeDisabled" :buttonIf="false"
  527. placeholder="请选择订舱代理"
  528. :forParameter="{ key: 'id', label: 'cnName', value: 'cnName' }"
  529. @remoteMethod="remoteMethod($event, 'bookingAgent')"
  530. @corpChange="corpChange($event, 'bookingAgent')"
  531. @corpFocus="remoteMethod($event, 'bookingAgent')">
  532. </search-query>
  533. </el-col>
  534. <el-col :span="15">
  535. <el-input type="age" style="width: 100%;margin-left: 20px;"
  536. v-model="assemblyForm.bookingAgentEnName" size="small" autocomplete="off"
  537. :disabled="detailData.seeDisabled || !assemblyForm.bookingAgentCnName" clearable
  538. placeholder="订舱代理"></el-input>
  539. </el-col>
  540. </el-form-item> -->
  541. <div>
  542. <el-col :span="12">
  543. <el-form-item label="件数" prop="quantity" label-width="80px"
  544. :rules="[{ required: true, message: ' ', trigger: 'blur' }]">
  545. <span slot="label">
  546. <span style="color: #1e9fff">件数</span>
  547. </span>
  548. <el-input ref="quantityRef" style="width: 100%;" v-model="assemblyForm.quantity"
  549. size="small" autocomplete="off" min="1" :disabled="detailData.seeDisabled"
  550. @input="quantityInput" @focus="quantityFocus" clearable
  551. placeholder="请输入件数"></el-input>
  552. </el-form-item>
  553. </el-col>
  554. <el-col :span="12">
  555. <el-form-item label="包装" prop="packingUnit" label-width="50px"
  556. :rules="[{ required: true, message: ' ', trigger: 'blur' }]">
  557. <span slot="label">
  558. <el-popover placement="right" width="400" trigger="hover"
  559. @show="delShow(assemblyForm.packingUnitId, 2)">
  560. <avue-crud :data="delData" :option="delOption"
  561. :table-loading="loading"></avue-crud>
  562. <!-- <el-button slot="reference">click 激活</el-button> -->
  563. <span style="color:rgb(76, 158, 68);text-decoration: underline;"
  564. slot="reference">包装</span>
  565. </el-popover>
  566. <!-- <span style="color: #1e9fff">包装</span> -->
  567. </span>
  568. <search-query :datalist="packingUnitData" style="margin-right: -10px;"
  569. :selectValue="assemblyForm.packingUnit" :filterable="true" :clearable="true"
  570. :remote="true" :disabled="detailData.seeDisabled || generateBillsfalse"
  571. :buttonIf="false" placeholder="请选择包装"
  572. :forParameter="{ key: 'id', label: 'cnName', value: 'cnName' }"
  573. @remoteMethod="remoteMethod($event, 'packingUnit')"
  574. @corpChange="corpChange($event, 'packingUnit')"
  575. @corpFocus="remoteMethod($event, 'packingUnit')">
  576. </search-query>
  577. </el-form-item>
  578. </el-col>
  579. </div>
  580. <div>
  581. <el-col :span="12">
  582. <el-form-item label="毛重(KGS)" prop="grossWeight" label-width="80px"
  583. :rules="[{ required: true, message: ' ', trigger: 'blur' }]">
  584. <span slot="label">
  585. <span style="color: #1e9fff">毛重(KGS)</span>
  586. </span>
  587. <el-input ref="grossWeightRef" step="0.01" style="width: 100%;"
  588. v-model="assemblyForm.grossWeight" size="small" autocomplete="off"
  589. :disabled="detailData.seeDisabled" @input="floatingInput($event, 'grossWeight')"
  590. @focus="quantityFocus" clearable placeholder="请输入毛重"></el-input>
  591. </el-form-item>
  592. </el-col>
  593. <el-col :span="12">
  594. <el-form-item label="尺码(CBM)" prop="measurement" label-width="90px"
  595. :rules="[{ required: true, message: ' ', trigger: 'blur' }]">
  596. <span slot="label">
  597. <span style="color: #1e9fff">尺码(CBM)</span>
  598. </span>
  599. <el-input ref="measurementRef" step="0.01" style="width: 106%;"
  600. v-model="assemblyForm.measurement" size="small" autocomplete="off"
  601. :disabled="detailData.seeDisabled" @input="floatingInput($event, 'measurement')"
  602. @focus="quantityFocus" clearable placeholder="请输入尺码/体积"></el-input>
  603. </el-form-item>
  604. </el-col>
  605. </div>
  606. <div>
  607. <el-col>
  608. <el-form-item label="签单方式" prop="issueType" label-width="80px">
  609. <span slot="label">
  610. <span style="color: #1e9fff">签单方式</span>
  611. </span>
  612. <dic-select v-model="assemblyForm.issueType" placeholder="签单方式" key="dictKey"
  613. label="dictValue" keyValue="dictKey"
  614. url="/blade-system/dict-biz/dictionary?code=issue_type_F" :filterable="true"
  615. :disabled="detailData.seeDisabled"></dic-select>
  616. </el-form-item>
  617. </el-col>
  618. </div>
  619. <div>
  620. <el-col>
  621. <el-form-item label="签单日期" prop="issueDate" label-width="80px">
  622. <span slot="label">
  623. <span style="color: #1e9fff">签单日期</span>
  624. </span>
  625. <el-date-picker style="width: 100%;" v-model="assemblyForm.issueDate" clearable
  626. type="date" size="small" :disabled="detailData.seeDisabled"
  627. value-format="yyyy-MM-dd" placeholder="选择日期">
  628. </el-date-picker>
  629. </el-form-item>
  630. </el-col>
  631. </div>
  632. <div>
  633. <el-col>
  634. <el-form-item label="ATD" prop="actualEtd" label-width="80px">
  635. <span slot="label">
  636. <span style="color: #1e9fff">ATD</span>
  637. </span>
  638. <el-date-picker style="width: 100%;" v-model="assemblyForm.actualEtd" clearable
  639. type="date" size="small"
  640. :disabled="detailData.seeDisabled || (assemblyForm.billType == 'MH' && assemblyForm.masterBillNo > 0)"
  641. value-format="yyyy-MM-dd" placeholder="选择日期">
  642. </el-date-picker>
  643. </el-form-item>
  644. </el-col>
  645. </div>
  646. <div>
  647. <el-col>
  648. <el-form-item label="所属公司" prop="branchName" label-width="80px">
  649. <span slot="label">
  650. <span style="color: #1e9fff">所属公司</span>
  651. </span>
  652. <dic-select v-model="assemblyForm.branchName" placeholder="所属公司" key="id"
  653. label="deptName" url="/blade-system/dept/top-list" :filterable="true"
  654. :remote="true" dataName="deptName"
  655. @selectChange="dicChange('branchName', $event)"
  656. :disabled="detailData.seeDisabled || !(roleName.includes('admin') || roleName.includes('总部'))|| assemblyForm.feeCenterListD.filter(item => item.auditStatus > 0).length || assemblyForm.feeCenterListC.filter(item => item.auditStatus > 0).length"></dic-select>
  657. </el-form-item>
  658. </el-col>
  659. </div>
  660. <div>
  661. <el-col :span="13">
  662. <el-form-item label="OP" prop="operatorName" label-width="80px">
  663. <span slot="label">
  664. <span style="color: #1e9fff">OP</span>
  665. </span>
  666. <dic-select v-model="assemblyForm.operatorName" placeholder="OP" :key="assemblyForm.branchId"
  667. label="realName"
  668. :url="'/blade-user/userListAll?roleAlias=操作员&deptId=' + saberUserInfo.dept_pid.split(',')[0]"
  669. :filterable="true" dataName="realName"
  670. @selectChange="dicChange('operatorName', $event)"
  671. :disabled="detailData.seeDisabled || assemblyForm.feeCenterListD.filter(item => item.auditStatus > 0).length || assemblyForm.feeCenterListC.filter(item => item.auditStatus > 0).length"></dic-select>
  672. </el-form-item>
  673. </el-col>
  674. <el-col :span="11">
  675. <el-form-item label="客服" prop="accDeptName" label-width="40px">
  676. <span slot="label">
  677. <span style="color: #1e9fff">客服</span>
  678. </span>
  679. <dic-select v-model="assemblyForm.accDeptName" placeholder="客服" :key="assemblyForm.branchId"
  680. label="realName"
  681. :url="'/blade-user/userListAll?roleAlias=客服&deptId=' + saberUserInfo.dept_pid.split(',')[0]"
  682. :filterable="true" dataName="realName"
  683. @selectChange="dicChange('accDeptName', $event)"
  684. :disabled="detailData.seeDisabled || assemblyForm.feeCenterListD.filter(item => item.auditStatus > 0).length || assemblyForm.feeCenterListC.filter(item => item.auditStatus > 0).length"></dic-select>
  685. </el-form-item>
  686. </el-col>
  687. </div>
  688. <div>
  689. <el-col>
  690. <el-form-item label="付款方式" prop="hpaymode" label-width="80px">
  691. <span slot="label">
  692. <span style="color: #1e9fff">付款方式</span>
  693. </span>
  694. <dic-select v-model="assemblyForm.hpaymode" placeholder="付款方式" key="dictKey"
  695. label="dictValue" keyValue="dictKey"
  696. url="/blade-system/dict-biz/dictionary?code=payment_method_los"
  697. :filterable="true" :disabled="detailData.seeDisabled"></dic-select>
  698. </el-form-item>
  699. </el-col>
  700. </div>
  701. <div>
  702. <el-col>
  703. <el-form-item label="SI备注" prop="siRemarks" label-width="80px">
  704. <span slot="label">
  705. <span style="color: #1e9fff">SI备注</span>
  706. </span>
  707. <el-input type="textarea" style="width: 100%;" v-model="assemblyForm.siRemarks"
  708. size="small" autocomplete="off" :disabled="detailData.seeDisabled" rows="5"
  709. clearable placeholder="请输入SI备注" @change="textareaBlur('siRemarks')"></el-input>
  710. </el-form-item>
  711. </el-col>
  712. </div>
  713. </el-col>
  714. </el-col>
  715. </el-row>
  716. <el-row>
  717. <el-col :span="12">
  718. <el-col :span="12">
  719. <el-form-item label="POL场站" prop="cyCnName">
  720. <span slot="label">
  721. <span style="color: #4c9e44;cursor: pointer;text-decoration: underline"
  722. @click="emailJump('cy')">POL场站</span>
  723. </span>
  724. <!-- :disabled="detailData.seeDisabled || generateBillsfalse" :buttonIf="false"-->
  725. <search-query :datalist="cyData" :selectValue="assemblyForm.cyCnName" :filterable="true"
  726. :clearable="true" :remote="true" :disabled="detailData.seeDisabled"
  727. :forParameter="{ key: 'id', label: 'cnName', value: 'cnName' }" placeholder="请选择场站"
  728. @remoteMethod="remoteMethod($event, 'cy')" @corpChange="corpChange($event, 'cy')"
  729. @corpFocus="remoteMethod($event, 'cy')">
  730. </search-query>
  731. </el-form-item>
  732. </el-col>
  733. <el-col :span="12">
  734. <el-form-item label="联系人" prop="cyContacts">
  735. <span slot="label">
  736. <span style="color: #1e9fff">联系人</span>
  737. </span>
  738. <!--<el-input type="age" style="width: 100%;" v-model="assemblyForm.cyContacts"-->
  739. <!-- size="small" autocomplete="off"-->
  740. <!-- :disabled="detailData.seeDisabled || generateBillsfalse"-->
  741. <!-- clearable placeholder="请输入联系人" ></el-input>-->
  742. <search-query :datalist="cyContactsData" :selectValue="assemblyForm.cyContacts"
  743. :filterable="true" :clearable="true"
  744. :disabled="detailData.seeDisabled || generateBillsfalse || !assemblyForm.cyCnName"
  745. :buttonIf="false" :forParameter="{ key: 'id', label: 'cname', value: 'cname' }"
  746. placeholder="联系人" @corpChange="corpChange($event, 'cyContacts')"
  747. @corpFocus="remoteMethod($event, 'cyContacts')">
  748. </search-query>
  749. </el-form-item>
  750. </el-col>
  751. </el-col>
  752. <el-col :span="12">
  753. <el-form-item label="地址" prop="cyAddress">
  754. <span slot="label">
  755. <span style="color: #1e9fff">地址</span>
  756. </span>
  757. <el-input type="age" style="width: 100%;" v-model="assemblyForm.cyAddress" size="small"
  758. autocomplete="off"
  759. :disabled="detailData.seeDisabled || generateBillsfalse || !assemblyForm.cyCnName" clearable
  760. placeholder="地址"></el-input>
  761. </el-form-item>
  762. </el-col>
  763. </el-row>
  764. <el-row>
  765. <el-col :span="12">
  766. <el-col :span="12">
  767. <el-form-item label="POD场站" prop="podCyCnName">
  768. <span slot="label">
  769. <span style="color: #4c9e44;cursor: pointer;text-decoration: underline"
  770. @click="emailJump('cy')">POD场站</span>
  771. </span>
  772. <search-query :datalist="podCyData" :selectValue="assemblyForm.podCyCnName"
  773. :filterable="true" :clearable="true" :remote="true" :disabled="detailData.seeDisabled"
  774. :forParameter="{ key: 'id', label: 'cnName', value: 'cnName' }" placeholder="请选择场站"
  775. @remoteMethod="remoteMethod($event, 'podCyCnName')"
  776. @corpChange="corpChange($event, 'podCyCnName')"
  777. @corpFocus="remoteMethod($event, 'podCyCnName')">
  778. </search-query>
  779. </el-form-item>
  780. </el-col>
  781. <el-col :span="12">
  782. <el-form-item label="联系人" prop="podCyContacts">
  783. <span slot="label">
  784. <span style="color: #1e9fff">联系人</span>
  785. </span>
  786. <!--<el-input type="age" style="width: 100%;" v-model="assemblyForm.cyContacts"-->
  787. <!-- size="small" autocomplete="off"-->
  788. <!-- :disabled="detailData.seeDisabled || generateBillsfalse"-->
  789. <!-- clearable placeholder="请输入联系人" ></el-input>-->
  790. <search-query :datalist="podCyCnNameData" :selectValue="assemblyForm.podCyContacts"
  791. :filterable="true" :clearable="true"
  792. :disabled="detailData.seeDisabled || generateBillsfalse || !assemblyForm.podCyCnName"
  793. :buttonIf="false" :forParameter="{ key: 'id', label: 'cname', value: 'cname' }"
  794. placeholder="联系人" @corpChange="corpChange($event, 'cyContacts')"
  795. @corpFocus="remoteMethod($event, 'cyContacts')">
  796. </search-query>
  797. </el-form-item>
  798. </el-col>
  799. </el-col>
  800. <el-col :span="12">
  801. <el-form-item label="地址" prop="podCyAddress">
  802. <span slot="label">
  803. <span style="color: #1e9fff">地址</span>
  804. </span>
  805. <el-input type="age" style="width: 100%;" v-model="assemblyForm.podCyAddress" size="small"
  806. autocomplete="off"
  807. :disabled="detailData.seeDisabled || generateBillsfalse || !assemblyForm.podCyCnName"
  808. clearable placeholder="地址"></el-input>
  809. </el-form-item>
  810. </el-col>
  811. </el-row>
  812. <el-row>
  813. <el-col :span="24">
  814. <precontainers :assemblyForm="assemblyForm" :seeDisabled="detailData.seeDisabled"
  815. :pid="assemblyForm.id" @billsDetailfun="billsDetailfun">
  816. </precontainers>
  817. </el-col>
  818. </el-row>
  819. </el-form>
  820. <el-dialog title="第二通知人" :visible.sync="hnotify2Visible" width="50%" append-to-body
  821. :before-close="hnotify2HandleClose">
  822. <div>
  823. <el-form :model="assemblyForm" ref="form" label-width="60px">
  824. <el-row :gutter="20">
  825. <el-col :span="12">
  826. <el-form-item label="通知人" prop="hnotify2CnName">
  827. <search-query :datalist="hnotify2Data" :selectValue="assemblyForm.detail.hnotify2CnName"
  828. :joinData="true" :filterable="true" :clearable="true" :remote="true"
  829. :disabled="detailData.seeDisabled" :buttonIf="false"
  830. :forParameter="{ key: 'id', short: 'code', label: 'cnName', value: 'cnName' }"
  831. placeholder="请选择通知人" @remoteMethod="remoteMethod($event, 'hnotify2')"
  832. @corpChange="corpChange($event, 'hnotify2')"
  833. @corpFocus="remoteMethod($event, 'hnotify2')">
  834. </search-query>
  835. </el-form-item>
  836. </el-col>
  837. <el-col :span="12">
  838. <el-form-item label="国家" prop="hnotify2CntyName">
  839. <el-input type="age" style="width: 100%;" v-model="assemblyForm.detail.hnotify2CntyName"
  840. size="small" autocomplete="off" :disabled="detailData.seeDisabled" clearable
  841. placeholder="国家"></el-input>
  842. </el-form-item>
  843. </el-col>
  844. <el-col :span="24">
  845. <el-form-item label="提单描述" prop="hnotify2Details">
  846. <el-input type="textarea" style="width: 100%;"
  847. v-model="assemblyForm.detail.hnotify2Details" size="small" autocomplete="off"
  848. :disabled="detailData.seeDisabled" rows="4" clearable placeholder="请输入通知人提单描述"
  849. @change="textareaBlur('hnotify2Details')"></el-input>
  850. </el-form-item>
  851. </el-col>
  852. </el-row>
  853. </el-form>
  854. </div>
  855. <span slot="footer" class="dialog-footer">
  856. <el-button type="danger" @click="hnotify2Cancellation('清除')">清 除</el-button>
  857. <el-button type="primary" @click="hnotify2Visible = false">确 定</el-button>
  858. </span>
  859. </el-dialog>
  860. <el-dialog title="危险品" :visible.sync="dgVisible" width="50%" append-to-body :before-close="hnotify2HandleClose">
  861. <div>
  862. <el-form :model="assemblyForm" ref="form" label-width="120px">
  863. <el-row :gutter="20">
  864. <el-col :span="12">
  865. <el-form-item label="危险品类别" prop="dgImdgCode">
  866. <!-- <el-input type="age" style="width: 100%;" v-model="assemblyForm.dgImdgCode" size="small"
  867. autocomplete="off" :disabled="detailData.seeDisabled" clearable
  868. placeholder="请输入危险品类别"></el-input> -->
  869. <!-- -->
  870. <dic-select v-model="assemblyForm.dgImdgCode" placeholder="危险品类别" key="dictKey"
  871. label="dictKey" keyValue="dictKey"
  872. url="/blade-system/dict-biz/dictionary?code=dg_imdg_code" :filterable="true"
  873. :disabled="detailData.seeDisabled" :diySlot="true"></dic-select>
  874. </el-form-item>
  875. </el-col>
  876. <el-col :span="12">
  877. <el-form-item label="危险代码(IMO)" prop="dgUnCode">
  878. <el-input type="age" style="width: 100%;" v-model="assemblyForm.dgUnCode" size="small"
  879. autocomplete="off" :disabled="detailData.seeDisabled" clearable
  880. placeholder="请输入危险代码(IMO)"></el-input>
  881. </el-form-item>
  882. </el-col>
  883. <el-col :span="12">
  884. <el-form-item label="危险品包装等级" prop="dgPackingLevel">
  885. <search-query :datalist="dgPackingLevelData" :selectValue="assemblyForm.dgPackingLevel"
  886. :disabled="detailData.seeDisabled" :buttonIf="false"
  887. :forParameter="{ key: 'dictKey', label: 'dictValue', value: 'dictKey' }"
  888. placeholder="请输入危险品包装等级" @corpChange="corpChange($event, 'dgPackingLevel')"
  889. @corpFocus="dgPackingLevelWorkDicts">
  890. </search-query>
  891. </el-form-item>
  892. </el-col>
  893. <el-col :span="12">
  894. <el-form-item label="  " prop="dgFlashPoint">
  895. </el-form-item>
  896. </el-col>
  897. <el-col :span="12">
  898. <el-form-item label="易燃易爆品闪点" prop="dgFlashPoint">
  899. <el-input type="age" style="width: 100%;" v-model="assemblyForm.dgFlashPoint"
  900. size="small" autocomplete="off" :disabled="detailData.seeDisabled"
  901. @input="dgFlashPointInput" clearable placeholder="请输入易燃易爆品闪点"></el-input>
  902. </el-form-item>
  903. </el-col>
  904. <el-col :span="12">
  905. <el-form-item label="易燃易爆品闪点单位" prop="dgFlashPointUnit">
  906. <el-input type="age" style="width: 100%;" v-model="assemblyForm.dgFlashPointUnit"
  907. size="small" autocomplete="off" :disabled="detailData.seeDisabled" clearable
  908. placeholder="请输入易燃易爆品闪点单位"></el-input>
  909. </el-form-item>
  910. </el-col>
  911. <el-col :span="12">
  912. <el-form-item label="危险品联系人" prop="dgContacts">
  913. <el-input type="age" style="width: 100%;" v-model="assemblyForm.dgContacts" size="small"
  914. autocomplete="off" :disabled="detailData.seeDisabled" clearable
  915. placeholder="请输入危险品联系人"></el-input>
  916. </el-form-item>
  917. </el-col>
  918. <el-col :span="12">
  919. <el-form-item label="危险品联系人电话" prop="dgTel">
  920. <el-input type="age" style="width: 100%;" v-model="assemblyForm.dgTel" size="small"
  921. autocomplete="off" :disabled="detailData.seeDisabled" clearable
  922. placeholder="请输入危险品联系人电话"></el-input>
  923. </el-form-item>
  924. </el-col>
  925. <el-col :span="12">
  926. <el-form-item label="危险品净重" prop="dgTel">
  927. <el-input type="age" style="width: 100%;" v-model="assemblyForm.dgNetWeight"
  928. size="small" autocomplete="off" :disabled="detailData.seeDisabled" clearable
  929. placeholder="请输入危险品净重"></el-input>
  930. </el-form-item>
  931. </el-col>
  932. <el-col :span="12">
  933. <el-form-item label="危险品外包装" prop="dgTel">
  934. <el-input type="age" style="width: 100%;" v-model="assemblyForm.dgPackage" size="small"
  935. autocomplete="off" :disabled="detailData.seeDisabled" clearable
  936. placeholder="请输入危险品外包装"></el-input>
  937. </el-form-item>
  938. </el-col>
  939. <el-col :span="12">
  940. <el-form-item label="危险品邮箱" prop="dgTel">
  941. <el-input type="age" style="width: 100%;" v-model="assemblyForm.dgMailbox" size="small"
  942. autocomplete="off" :disabled="detailData.seeDisabled" clearable
  943. placeholder="请输入危险品邮箱"></el-input>
  944. </el-form-item>
  945. </el-col>
  946. <el-col :span="12">
  947. <el-form-item label="危险品备注" prop="dgTel">
  948. <el-input type="age" style="width: 100%;" v-model="assemblyForm.dgRemarks" size="small"
  949. autocomplete="off" :disabled="detailData.seeDisabled" clearable
  950. placeholder="请输入危险品备注"></el-input>
  951. </el-form-item>
  952. </el-col>
  953. <el-col :span="12">
  954. <el-form-item label="是否海洋污染物" prop="dgIsMarinePollutant">
  955. <el-checkbox size="medium" :true-label="1" :false-label="0"
  956. v-model="assemblyForm.dgIsMarinePollutant"></el-checkbox>
  957. </el-form-item>
  958. </el-col>
  959. </el-row>
  960. </el-form>
  961. </div>
  962. <span slot="footer" class="dialog-footer">
  963. <el-button type="danger" @click="dgCancellation('清除')">清 除</el-button>
  964. <el-button type="primary" @click="dgVisible = false">确 定</el-button>
  965. </span>
  966. </el-dialog>
  967. </div>
  968. </template>
  969. <script>
  970. import precontainers
  971. from "@/views/iosBasicData/SeafreightExportF/bills/assembly/EntrustmentLnformation/precontainers.vue";
  972. import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
  973. import { getBcorpslistByType, getBcorpsDetail } from "@/api/iosBasicData/bcorps";
  974. import { bportsList } from "@/api/iosBasicData/bports";
  975. import { bpackagesList } from "@/api/iosBasicData/bpackages";
  976. import { bcommodityList } from "@/api/iosBasicData/bcommodity";
  977. import { getBvesselsList } from "@/api/iosBasicData/bvessels";
  978. import { blinesList } from "@/api/iosBasicData/blines";
  979. import { bcorpstypedefineList } from "@/api/iosBasicData/bcorpstypedefine";
  980. import bcorpstypedefine from "@/views/iosBasicData/bcorps/bcorpstypedefine.vue";
  981. import { textareaWrap } from "@/util/messageReminder";
  982. import emailhash from '@/views/iosBasicData/SeafreightExportF/bills/assembly/Jsonfile/emailhash.json'
  983. import bcorps from "@/views/iosBasicData/bcorps/index.vue";
  984. import { NdayDate } from "@/util/date";
  985. import { regularFloating, regularInteger } from "@/util/regularJudgment";
  986. import { getBcorpsattnList } from "@/api/iosBasicData/bcorpsattn";
  987. import { getWorkDicts } from "@/api/system/dictbiz";
  988. import { bportsDetail } from "@/api/iosBasicData/bports";
  989. import { bpackagesDetail } from "@/api/iosBasicData/bpackages";
  990. import { getBvesselsDetail } from "@/api/iosBasicData/bvessels";
  991. import { blinesDetail } from "@/api/iosBasicData/blines";
  992. import { synchronizationExchangeRate } from "@/api/iosBasicData/rateManagement";
  993. import { isProcurement } from "@/api/basicData/configuration";
  994. import { getDeptLazyTree, getDeptTree, getLazyList } from "@/api/system/dept";
  995. import _ from "lodash";
  996. import dicSelect from "@/components/dicSelect/main";
  997. import TreeSelect from "@/components/iosbasic-data/TreeSelect.vue";
  998. export default {
  999. props: {
  1000. detailData: {
  1001. type: Object
  1002. },
  1003. assemblyForm: {
  1004. type: Object,
  1005. default: {}
  1006. },
  1007. saberUserInfo: {
  1008. type: Object,
  1009. default: {}
  1010. },
  1011. // 是否生成账单
  1012. generateBillsfalse: {
  1013. type: Boolean,
  1014. default: false
  1015. },
  1016. disabled: {
  1017. type: Boolean,
  1018. default: false
  1019. }
  1020. },
  1021. components: { TreeSelect, bcorps, SearchQuery, precontainers, bcorpstypedefine, dicSelect },
  1022. data() {
  1023. return {
  1024. roleName: localStorage.getItem("roleName"),
  1025. dicTree: [],
  1026. textareaNumber: 5,
  1027. loading: false,
  1028. delData: [],
  1029. delOption: {
  1030. border: true,
  1031. align: 'center',
  1032. menu: false,
  1033. header: false,
  1034. column: [
  1035. {
  1036. label: '名称',
  1037. prop: 'name'
  1038. }, {
  1039. label: '键值',
  1040. prop: 'value'
  1041. }
  1042. ]
  1043. },
  1044. hsLoading: false,
  1045. // 设置当前时间选择的范围
  1046. etdPickerOptions: {
  1047. disabledDate(time) {
  1048. // 获取当前日期后的90天
  1049. // return time.getTime() < Date.now() || time.getTime() > Date.parse(NdayDate(90))
  1050. // 获取前后的45天 Date.parse(NdayDate(45))
  1051. let timeDay = localStorage.getItem("timeFrame") ? localStorage.getItem("timeFrame") : 45
  1052. return time.getTime() < Date.parse(NdayDate(-(timeDay))) || time.getTime() > Date.parse(NdayDate(timeDay - 1))
  1053. }
  1054. },
  1055. emailhash: emailhash, // 邮箱跳转地址
  1056. foreignAgencyData: [],
  1057. // 场站
  1058. cyData: [],
  1059. podCyData: [],
  1060. cyContactsData: [], // 场站联系人
  1061. podCyCnNameData: [],
  1062. // 多选的数据
  1063. tabsMultipleChoice: [],
  1064. // 发货人数据
  1065. hshipperData: [],
  1066. // 收货人数据
  1067. hconsigneeData: [],
  1068. // 通知人
  1069. hnotifyData: [],
  1070. // 第二通知人
  1071. hnotify2Data: [],
  1072. // 通知人弹窗开启关闭
  1073. hnotify2Visible: false,
  1074. // 收货地
  1075. placeReceiptData: [],
  1076. // 装货港
  1077. polData: [],
  1078. // 卸货港
  1079. podData: [],
  1080. // 目的地
  1081. destinationData: [],
  1082. // 交货地
  1083. placeDeliveryData: [],
  1084. // 中转港
  1085. potData: [],
  1086. // 商品 HS-CODE
  1087. commodityData: [],
  1088. // 货物类别
  1089. cargoTypeData: [
  1090. {
  1091. label: '普货',
  1092. value: 'dry',
  1093. },
  1094. {
  1095. label: '危险品',
  1096. value: 'danger',
  1097. },
  1098. {
  1099. label: '冻柜',
  1100. value: 'reefer',
  1101. }
  1102. ],
  1103. // 危险品弹窗
  1104. dgVisible: false,
  1105. // 船公司数据
  1106. carrierData: [],
  1107. // 船名
  1108. vesselData: [],
  1109. // 包装
  1110. packingUnitData: [],
  1111. // 订舱代理数据
  1112. bookingAgentData: [],
  1113. // 航线
  1114. lineData: [],
  1115. // COLOADER
  1116. coloaderCnNameData: [],
  1117. // 危险品包装等级
  1118. dgPackingLevelData: [],
  1119. marksIndex: 1
  1120. }
  1121. },
  1122. created() {
  1123. isProcurement({ "param": "textarea.number" }).then(res => {
  1124. if (res.data.data) {
  1125. this.textareaNumber = res.data.data
  1126. }
  1127. })
  1128. // // 往来单位
  1129. // this.hshipperBcorpsListfun()
  1130. // this.hconsigneeBcorpsListfun()
  1131. // this.hnotifyBcorpsListfun()
  1132. // this.hnotify2BcorpsListfun()
  1133. // this.bookingAgentBcorpsListfun()
  1134. // // 港口接口
  1135. // this.placeReceiptBportsListfun()
  1136. // this.polBportsListfun()
  1137. // this.podBportsListfun()
  1138. // this.destinationBportsListfun()
  1139. // this.placeDeliveryBportsListfun()
  1140. // // 货物
  1141. // this.commodityBcommodityListfun()
  1142. // // 包装
  1143. // this.packingUnitBpackagesListfun()
  1144. // // 船公司
  1145. this.carrierBcorpslistByTypefun()
  1146. // // 船名
  1147. // this.vesselBvesselsListfun()
  1148. // // 航线
  1149. // this.lineBlinesListfun()
  1150. // 危险品包装等级
  1151. this.dgPackingLevelWorkDicts()
  1152. this.getHsCode()
  1153. // this.getDicTree()
  1154. },
  1155. methods: {
  1156. getDicTree() {
  1157. let obj = {
  1158. eptId: this.saberUserInfo.dept_pid.split(',')[0]
  1159. }
  1160. getDeptTree(obj).then(res => {
  1161. res.data.data.forEach(item => {
  1162. item.label = item.title
  1163. })
  1164. this.dicTree = res.data.data
  1165. })
  1166. },
  1167. treeChange(val) {
  1168. for (let item of this.dicTree) {
  1169. if (item.title == val) {
  1170. this.assemblyForm.accDeptName = item.title
  1171. this.assemblyForm.accDept = item.id
  1172. }
  1173. }
  1174. },
  1175. //DEL监听
  1176. delShow(val, type) {
  1177. if (val) {
  1178. this.loading = true
  1179. this.delData = []
  1180. if (type == 1) {
  1181. bportsDetail(val).then(res => {
  1182. this.delData = res.data.data.extendedDataArr
  1183. }).finally(() => {
  1184. this.loading = false;
  1185. });
  1186. }
  1187. if (type == 2) {
  1188. bpackagesDetail(val).then(res => {
  1189. this.delData = res.data.data.extendedDataArr
  1190. }).finally(() => {
  1191. this.loading = false;
  1192. });
  1193. }
  1194. if (type == 3) {
  1195. getBvesselsDetail(val).then(res => {
  1196. this.delData = res.data.data.extendedDataArr
  1197. }).finally(() => {
  1198. this.loading = false;
  1199. });
  1200. }
  1201. if (type == 4) {
  1202. blinesDetail(val).then(res => {
  1203. this.delData = res.data.data.extendedDataArr
  1204. }).finally(() => {
  1205. this.loading = false;
  1206. });
  1207. }
  1208. } else {
  1209. this.delData = []
  1210. }
  1211. },
  1212. //ETD监听
  1213. handlePick(val) {
  1214. if (this.assemblyForm.id) {
  1215. this.$confirm('是否同步汇率, 是否继续?', '提示', {
  1216. confirmButtonText: '是',
  1217. cancelButtonText: '否',
  1218. type: 'warning'
  1219. }).then(() => {
  1220. let obj = {}
  1221. obj = {
  1222. date: this.assemblyForm.etd,
  1223. type: 1,
  1224. billId: this.assemblyForm.id
  1225. }
  1226. console.log(obj)
  1227. synchronizationExchangeRate(obj).then(res => {
  1228. this.billsDetailfun()
  1229. })
  1230. }).catch(() => {
  1231. let obj = {}
  1232. obj = {
  1233. date: this.assemblyForm.etd,
  1234. type: 0,
  1235. billId: this.assemblyForm.id
  1236. }
  1237. synchronizationExchangeRate(obj).then(res => {
  1238. this.billsDetailfun()
  1239. })
  1240. });
  1241. }
  1242. },
  1243. // 易燃易爆品闪点类型为数字
  1244. dgFlashPointInput(val) {
  1245. this.$set(this.assemblyForm, 'dgFlashPoint', regularInteger(val))
  1246. },
  1247. // 件数聚焦
  1248. quantityFocus() {
  1249. if (this.assemblyForm.waitingBoxList) {
  1250. if (Number(this.assemblyForm.waitingBoxList[0].quantity) == 0) {
  1251. this.$alert('当前数据已经均分箱量,请撤销之后再修改', '提示', {
  1252. confirmButtonText: '确定',
  1253. });
  1254. this.$nextTick(() => {
  1255. this.$refs.quantityRef.blur()
  1256. this.$refs.grossWeightRef.blur()
  1257. this.$refs.measurementRef.blur()
  1258. })
  1259. return
  1260. }
  1261. }
  1262. },
  1263. // 件数监听
  1264. quantityInput(value) {
  1265. this.$set(this.assemblyForm, 'quantity', regularInteger(value))
  1266. },
  1267. // 正浮点数正则监听
  1268. floatingInput(value, name) {
  1269. this.$set(this.assemblyForm, name, regularFloating(value))
  1270. },
  1271. // 详情接口
  1272. billsDetailfun() {
  1273. this.$emit('billsDetailfun')
  1274. },
  1275. dicChange(name, row) {
  1276. if (name == 'operatorName') {
  1277. if (row) {
  1278. this.assemblyForm.operatorName = row.realName
  1279. this.assemblyForm.operatorId = row.id
  1280. } else {
  1281. this.assemblyForm.operatorName = null
  1282. this.assemblyForm.operatorId = null
  1283. }
  1284. }
  1285. if (name == 'accDeptName') {
  1286. if (row) {
  1287. this.assemblyForm.accDeptName = row.realName
  1288. this.assemblyForm.accDept = row.id
  1289. } else {
  1290. this.assemblyForm.accDeptName = null
  1291. this.assemblyForm.accDept = null
  1292. }
  1293. }
  1294. if (name == 'branchName') {
  1295. if (row) {
  1296. this.assemblyForm.branchId = row.id
  1297. this.saveLocalCurrency(row.id)
  1298. } else {
  1299. this.assemblyForm.branchId = null
  1300. this.assemblyForm.branchName = null
  1301. }
  1302. }
  1303. },
  1304. // 远程搜索
  1305. remoteMethod(value, name) {
  1306. let arr = ['hshipper', 'hconsignee', 'hnotify', 'hnotify2', 'bookingAgent', 'foreignAgency']
  1307. let portArr = ['placeReceipt', 'pol', 'pod', 'destination', 'placeDelivery', 'pot']
  1308. if (arr.indexOf(name) != -1) {
  1309. this[name + 'BcorpsListfun'](value)
  1310. }
  1311. // 港口
  1312. else if (portArr.indexOf(name) != -1) {
  1313. this[name + 'BportsListfun'](value)
  1314. }
  1315. // 场站
  1316. else if (name == 'cy') {
  1317. this.cyBcorpslistByType(value)
  1318. }
  1319. else if (name == 'podCyCnName') {
  1320. this.cyBcorpslistByType2(value)
  1321. }
  1322. // 场站联系人
  1323. else if (name == 'podCyCnName') {
  1324. this.cyBcorpsattnListfun()
  1325. }
  1326. // 货物
  1327. // else if (name == 'commodity') {
  1328. // this.commodityBcommodityListfun(value)
  1329. // }
  1330. // 包装
  1331. else if (name == 'packingUnit') {
  1332. this.packingUnitBpackagesListfun(value)
  1333. }
  1334. // 船名
  1335. else if (name == 'vessel') {
  1336. this.vesselBvesselsListfun(value)
  1337. }
  1338. // 船公司
  1339. else if (name == 'carrier') {
  1340. this.carrierBcorpslistByTypefun(value)
  1341. }
  1342. // 航线
  1343. else if (name == 'line') {
  1344. this.lineBlinesListfun(value)
  1345. }
  1346. // COLOADER
  1347. else if (name == 'coloaderCnName') {
  1348. this.bcorpstypedefineListfun(value)
  1349. }
  1350. },
  1351. // 选择框的回调
  1352. corpChange(value, name) {
  1353. console.log('corpChange', value, name)
  1354. let arr = ['hshipper', 'hconsignee', 'hnotify', 'hnotify2']
  1355. let portArr = ['placeReceipt', 'destination', 'placeDelivery']
  1356. let cnPorArr = ['pol', 'pod', 'pot']
  1357. if (arr.indexOf(name) != -1) {
  1358. if (!value) {
  1359. // this.$set(this.assemblyForm.detail, name + 'Id', '')
  1360. this.$set(this.assemblyForm.detail, name + 'Id', '')
  1361. this.$set(this.assemblyForm.detail, name + 'CnName', '')
  1362. this.$set(this.assemblyForm.detail, name + 'EnName', '')
  1363. this.$set(this.assemblyForm.detail, name + 'Code', '')
  1364. this.$set(this.assemblyForm.detail, name + 'Details', '')
  1365. this.$set(this.assemblyForm.detail, name + 'CntyName', '')
  1366. this.$set(this.assemblyForm.detail, name + 'CntyCode', '')
  1367. }
  1368. for (let item of this[name + 'Data']) {
  1369. if (item.cnName == value) {
  1370. console.log(item.cntyCode, 1231231)
  1371. this.$set(this.assemblyForm.detail, name + 'Id', item.id)
  1372. this.$set(this.assemblyForm.detail, name + 'CnName', item.cnName)
  1373. this.$set(this.assemblyForm.detail, name + 'EnName', item.enName)
  1374. this.$set(this.assemblyForm.detail, name + 'Code', item.code)
  1375. // this.$set(this.assemblyForm,name + 'Details',item.details)
  1376. if (!this.assemblyForm[name + 'Details']) {
  1377. this.$set(this.assemblyForm.detail, name + 'Details', item.details)
  1378. }
  1379. // 国家名称
  1380. this.$set(this.assemblyForm.detail, name + 'CntyName', item.cntyName)
  1381. // 国家代码
  1382. this.$set(this.assemblyForm.detail, name + 'CntyCode', item.cntyCode)
  1383. }
  1384. }
  1385. }
  1386. // 有中文名称的港口
  1387. else if (cnPorArr.indexOf(name) != -1) {
  1388. if (!value) {
  1389. this.$set(this.assemblyForm, name + 'Id', '')
  1390. this.$set(this.assemblyForm, name + 'CnName', '')
  1391. this.$set(this.assemblyForm, name + 'EnName', '')
  1392. this.$set(this.assemblyForm, name + 'Code', '')
  1393. this.$set(this.assemblyForm, name + 'NamePrint', '')
  1394. }
  1395. for (let item of this[name + 'Data']) {
  1396. if (item.enName == value) {
  1397. this.$set(this.assemblyForm, name + 'Id', item.id)
  1398. this.$set(this.assemblyForm, name + 'CnName', item.cnName)
  1399. this.$set(this.assemblyForm, name + 'EnName', item.enName)
  1400. this.$set(this.assemblyForm, name + 'Code', item.code)
  1401. this.$set(this.assemblyForm, name + 'NamePrint', item.enName)
  1402. // 签单地点 默认 装货港
  1403. if (name == 'pol') {
  1404. this.$set(this.assemblyForm, 'issueAt', this.assemblyForm.polEnName)
  1405. this.$set(this.assemblyForm, 'issueAtId', this.assemblyForm.polId)
  1406. }
  1407. // // 选择卸货港带出目的地
  1408. // if(name == 'pod') {
  1409. // this.$set(this.assemblyForm,'destinationId',item.id)
  1410. // this.$set(this.assemblyForm,'destinationName',item.enName)
  1411. // this.$set(this.assemblyForm,'destinationCode',item.code)
  1412. // this.$set(this.assemblyForm,'destinationNamePrint',item.enName)
  1413. // }
  1414. }
  1415. }
  1416. }
  1417. else if (name == 'foreignAgency') {
  1418. if (!value) {
  1419. // this.$set(this.assemblyForm.detail, name + 'Id', '')
  1420. this.$set(this.assemblyForm, name + 'Id', '')
  1421. this.$set(this.assemblyForm, name + 'CnName', '')
  1422. this.$set(this.assemblyForm, name + 'EnName', '')
  1423. this.$set(this.assemblyForm, name + 'Code', '')
  1424. this.$set(this.assemblyForm, name + 'Details', '')
  1425. this.$set(this.assemblyForm, name + 'CntyName', '')
  1426. this.$set(this.assemblyForm, name + 'CntyCode', '')
  1427. }
  1428. for (let item of this[name + 'Data']) {
  1429. if (item.cnName == value) {
  1430. console.log(item.cntyCode, 1231231)
  1431. this.$set(this.assemblyForm, name + 'Id', item.id)
  1432. this.$set(this.assemblyForm, name + 'CnName', item.cnName)
  1433. this.$set(this.assemblyForm, name + 'EnName', item.enName)
  1434. this.$set(this.assemblyForm, name + 'Code', item.code)
  1435. // this.$set(this.assemblyForm,name + 'Details',item.details)
  1436. if (!this.assemblyForm[name + 'Details']) {
  1437. this.$set(this.assemblyForm, name + 'Details', item.details)
  1438. }
  1439. // 国家名称
  1440. this.$set(this.assemblyForm, name + 'CntyName', item.cntyName)
  1441. // 国家代码
  1442. this.$set(this.assemblyForm, name + 'CntyCode', item.cntyCode)
  1443. }
  1444. }
  1445. }
  1446. // 没有中文名的港口
  1447. else if (portArr.indexOf(name) != -1) {
  1448. console.log(name)
  1449. if (!value) {
  1450. this.$set(this.assemblyForm, name + 'Id', '')
  1451. this.$set(this.assemblyForm, name + 'Name', '')
  1452. this.$set(this.assemblyForm, name + 'Code', '')
  1453. this.$set(this.assemblyForm, name + 'NamePrint', '')
  1454. }
  1455. for (let item of this[name + 'Data']) {
  1456. if (item.enName == value) {
  1457. this.$set(this.assemblyForm, name + 'Id', item.id)
  1458. this.$set(this.assemblyForm, name + 'Name', item.enName)
  1459. this.$set(this.assemblyForm, name + 'Code', item.code)
  1460. this.$set(this.assemblyForm, name + 'NamePrint', item.enName)
  1461. }
  1462. }
  1463. }
  1464. // else if (name == 'commodity') {
  1465. // if (!value) {
  1466. // this.$set(this.assemblyForm,'hscode','')
  1467. // this.$set(this.assemblyForm,'commodityShName','')
  1468. // this.$set(this.assemblyForm,'commodityCnName','')
  1469. // this.$set(this.assemblyForm,'commodityEnName','')
  1470. // }
  1471. // for(let item of this[name + 'Data']) {
  1472. // if (item.hsCode == value) {
  1473. // this.$set(this.assemblyForm,'hscode',item.hsCode)
  1474. // this.$set(this.assemblyForm,'commodityShName',item.cnName)
  1475. // this.$set(this.assemblyForm,'commodityCnName',item.cnName)
  1476. // this.$set(this.assemblyForm,'commodityEnName',item.enName)
  1477. // }
  1478. // }
  1479. // }
  1480. // 船名
  1481. else if (name == 'vessel') {
  1482. if (!value) {
  1483. this.$set(this.assemblyForm, 'vesselId', '')
  1484. this.$set(this.assemblyForm, 'vesselCnName', '')
  1485. this.$set(this.assemblyForm, 'vesselEnName', '')
  1486. }
  1487. if (this[name + 'Data'].length == 0) {
  1488. this.$set(this.assemblyForm, 'vesselId', null)
  1489. this.$set(this.assemblyForm, 'vesselCnName', value)
  1490. this.$set(this.assemblyForm, 'vesselEnName', value)
  1491. }
  1492. for (let item of this[name + 'Data']) {
  1493. if (item.enName == value) {
  1494. this.$set(this.assemblyForm, 'vesselId', item.id)
  1495. this.$set(this.assemblyForm, 'vesselCnName', item.cnName)
  1496. this.$set(this.assemblyForm, 'vesselEnName', item.enName)
  1497. }
  1498. }
  1499. }
  1500. // 船公司
  1501. else if (name == 'carrier') {
  1502. if (!value) {
  1503. this.$set(this.assemblyForm, 'carrierId', '')
  1504. this.$set(this.assemblyForm, 'carrierShortName', '')
  1505. this.$set(this.assemblyForm, 'carrierCnName', '')
  1506. this.$set(this.assemblyForm, 'carrierEnName', '')
  1507. this.$set(this.assemblyForm, 'carrierCode', '')
  1508. this.$set(this.assemblyForm, 'carrierArgreementNo', '')
  1509. }
  1510. for (let item of this[name + 'Data']) {
  1511. if (item.cnName == value) {
  1512. console.log(item)
  1513. this.$set(this.assemblyForm, 'carrierId', item.id)
  1514. this.$set(this.assemblyForm, 'carrierShortName', item.shortName ? item.shortName : item.cnName)
  1515. this.$set(this.assemblyForm, 'carrierCnName', item.cnName)
  1516. this.$set(this.assemblyForm, 'carrierEnName', item.enName)
  1517. this.$set(this.assemblyForm, 'carrierCode', item.code)
  1518. this.$set(this.assemblyForm, 'carrierArgreementNo', item.carrierArgreementNo)
  1519. }
  1520. }
  1521. }
  1522. // 包装
  1523. else if (name == 'packingUnit') {
  1524. if (!value) {
  1525. this.$set(this.assemblyForm, 'packingUnitId', '')
  1526. this.$set(this.assemblyForm, 'packingUnit', '')
  1527. }
  1528. for (let item of this[name + 'Data']) {
  1529. if (item.cnName == value) {
  1530. this.$set(this.assemblyForm, 'packingUnitId', item.id)
  1531. this.$set(this.assemblyForm, 'packingUnit', item.cnName)
  1532. }
  1533. }
  1534. }
  1535. // 订舱代理
  1536. else if (name == 'bookingAgent') {
  1537. if (!value) {
  1538. this.$set(this.assemblyForm, 'bookingAgentId', '')
  1539. this.$set(this.assemblyForm, 'bookingAgentCnName', '')
  1540. this.$set(this.assemblyForm, 'bookingAgentEnName', '')
  1541. this.$set(this.assemblyForm, 'bookingRemarks', '')
  1542. }
  1543. for (let item of this[name + 'Data']) {
  1544. if (item.cnName == value) {
  1545. this.$set(this.assemblyForm, 'bookingAgentId', item.id)
  1546. this.$set(this.assemblyForm, 'bookingAgentCnName', item.cnName)
  1547. this.$set(this.assemblyForm, 'bookingAgentEnName', item.enName)
  1548. this.$set(this.assemblyForm, 'bookingRemarks', item.remarks)
  1549. }
  1550. }
  1551. }
  1552. // 航线
  1553. else if (name == 'line') {
  1554. if (!value) {
  1555. this.$set(this.assemblyForm, 'lineId', '')
  1556. this.$set(this.assemblyForm, 'lineCnName', '')
  1557. this.$set(this.assemblyForm, 'lineEnName', '')
  1558. }
  1559. for (let item of this[name + 'Data']) {
  1560. if (item.cnName == value) {
  1561. this.$set(this.assemblyForm, 'lineId', item.id)
  1562. this.$set(this.assemblyForm, 'lineCnName', item.cnName)
  1563. this.$set(this.assemblyForm, 'lineEnName', item.enName)
  1564. }
  1565. }
  1566. }
  1567. // COLOADER
  1568. else if (name == 'coloaderCnName') {
  1569. if (!value) {
  1570. this.$set(this.assemblyForm, 'coloaderId', '')
  1571. this.$set(this.assemblyForm, 'coloaderCnName', '')
  1572. this.$set(this.assemblyForm, 'coloaderEnName', '')
  1573. }
  1574. for (let item of this.coloaderCnNameData) {
  1575. if (item.cnName == value) {
  1576. this.$set(this.assemblyForm, 'coloaderId', item.id)
  1577. this.$set(this.assemblyForm, 'coloaderCnName', item.cnName)
  1578. this.$set(this.assemblyForm, 'coloaderEnName', item.enName)
  1579. }
  1580. }
  1581. }
  1582. else if (name == 'cargoType') {
  1583. this.$set(this.assemblyForm, 'cargoType', value ? value : '')
  1584. if (value == 'danger') {
  1585. // 危险品
  1586. this.DangerousGoodsAdd()
  1587. }
  1588. }
  1589. else if (name == 'cy') {
  1590. if (!value) {
  1591. this.$set(this.assemblyForm, 'cyId', '')
  1592. this.$set(this.assemblyForm, 'cyCode', '')
  1593. this.$set(this.assemblyForm, 'cyShortName', '')
  1594. this.$set(this.assemblyForm, 'cyCnName', '')
  1595. this.$set(this.assemblyForm, 'cyEnName', '')
  1596. this.$set(this.assemblyForm, 'cyRemarks', '')
  1597. // 联系人
  1598. this.$set(this.assemblyForm, 'cyTel', '')
  1599. this.$set(this.assemblyForm, 'cyAddress', '')
  1600. this.$set(this.assemblyForm, 'cyContacts', '')
  1601. }
  1602. for (let item of this.cyData) {
  1603. if (item.cnName == value) {
  1604. console.log(item)
  1605. this.$set(this.assemblyForm, 'cyId', item.id)
  1606. this.$set(this.assemblyForm, 'cyCode', item.code)
  1607. this.$set(this.assemblyForm, 'cyShortName', item.shortName ? item.shortName : item.cnName)
  1608. this.$set(this.assemblyForm, 'cyCnName', item.cnName)
  1609. this.$set(this.assemblyForm, 'cyEnName', item.enName)
  1610. this.$set(this.assemblyForm, 'cyRemarks', item.details) // 客户里的详情信息
  1611. // 查询场站联系人
  1612. getBcorpsattnList(1, 20, { pid: this.assemblyForm.cyId }).then(res => {
  1613. if (res.data.data.records.length > 0) {
  1614. this.$set(this.assemblyForm, 'cyTel', res.data.data.records[0].tel)
  1615. this.$set(this.assemblyForm, 'cyAddress', res.data.data.records[0].addr)
  1616. this.$set(this.assemblyForm, 'cyContacts', res.data.data.records[0].cname)
  1617. }
  1618. })
  1619. }
  1620. }
  1621. }
  1622. else if (name == 'podCyCnName') {
  1623. if (!value) {
  1624. this.$set(this.assemblyForm, 'podCyId', '')
  1625. this.$set(this.assemblyForm, 'podCyCode', '')
  1626. this.$set(this.assemblyForm, 'podCyCnName', '')
  1627. this.$set(this.assemblyForm, 'podCyEnName', '')
  1628. // 联系人
  1629. this.$set(this.assemblyForm, 'podCyTel', '')
  1630. this.$set(this.assemblyForm, 'podCyAddress', '')
  1631. this.$set(this.assemblyForm, 'podCyContacts', '')
  1632. }
  1633. for (let item of this.podCyData) {
  1634. if (item.cnName == value) {
  1635. console.log(item)
  1636. this.$set(this.assemblyForm, 'podCyId', item.id)
  1637. this.$set(this.assemblyForm, 'podCyCode', item.code)
  1638. // this.$set(this.assemblyForm, 'cyShortName', item.shortName ? item.shortName : item.cnName)
  1639. this.$set(this.assemblyForm, 'podCyCnName', item.cnName)
  1640. this.$set(this.assemblyForm, 'podCyEnName', item.enName)
  1641. // this.$set(this.assemblyForm, 'cyRemarks', item.details) // 客户里的详情信息
  1642. // 查询场站联系人
  1643. getBcorpsattnList(1, 20, { pid: this.assemblyForm.cyId }).then(res => {
  1644. if (res.data.data.records.length > 0) {
  1645. this.$set(this.assemblyForm, 'podCyTel', res.data.data.records[0].tel)
  1646. this.$set(this.assemblyForm, 'podCyAddress', res.data.data.records[0].addr)
  1647. this.$set(this.assemblyForm, 'podCyContacts', res.data.data.records[0].cname)
  1648. }
  1649. })
  1650. }
  1651. }
  1652. }
  1653. // 场站联系人
  1654. else if (name == 'cyContacts') {
  1655. if (!value) {
  1656. this.$set(this.assemblyForm, 'cyTel', '')
  1657. this.$set(this.assemblyForm, 'cyAddress', '')
  1658. this.$set(this.assemblyForm, 'cyContacts', '')
  1659. }
  1660. for (let item of this.cyContactsData) {
  1661. if (item.cname == value) {
  1662. this.$set(this.assemblyForm, 'cyTel', item.tel)
  1663. this.$set(this.assemblyForm, 'cyAddress', item.addr)
  1664. this.$set(this.assemblyForm, 'cyContacts', item.cname)
  1665. }
  1666. }
  1667. }
  1668. else {
  1669. this.$set(this.assemblyForm, name, value ? value : '')
  1670. }
  1671. },
  1672. // 通知人添加第二个通知人弹窗
  1673. hnotifyClick() {
  1674. if (this.detailData.seeDisabled) {
  1675. return;
  1676. }
  1677. this.hnotify2Visible = true
  1678. },
  1679. // 第二通知人弹窗的清除
  1680. hnotify2Cancellation(name) {
  1681. let title = ''
  1682. if (name == '清除') {
  1683. title = '确认清除吗?'
  1684. }
  1685. this.$confirm(title)
  1686. .then(_ => {
  1687. this.$set(this.assemblyForm, 'hnotify2Id', '')
  1688. this.$set(this.assemblyForm, 'hnotify2CnName', '')
  1689. this.$set(this.assemblyForm, 'hnotify2EnName', '')
  1690. this.$set(this.assemblyForm, 'hnotify2Code', '')
  1691. this.$set(this.assemblyForm, 'hnotify2Details', '')
  1692. this.$set(this.assemblyForm, 'hnotify2CntyName', '')
  1693. this.$set(this.assemblyForm, 'hnotify2CntyCode', '')
  1694. this.hnotify2Visible = false
  1695. })
  1696. .catch(_ => { });
  1697. },
  1698. // 通知人
  1699. hnotify2HandleClose(done) {
  1700. done();
  1701. },
  1702. // 危险品弹窗开启
  1703. DangerousGoodsAdd() {
  1704. if (this.assemblyForm.cargoType == 'danger') {
  1705. this.dgVisible = true
  1706. } else {
  1707. this.$message({
  1708. message: '请选择货物为危险品',
  1709. type: 'warning'
  1710. });
  1711. }
  1712. },
  1713. // 危险品弹窗的清除
  1714. dgCancellation(name) {
  1715. let title = ''
  1716. if (name == '清除') {
  1717. title = '确认清除吗?'
  1718. }
  1719. this.$confirm(title)
  1720. .then(_ => {
  1721. this.$set(this.assemblyForm, 'dgImdgCode', '')
  1722. this.$set(this.assemblyForm, 'dgUnCode', '')
  1723. this.$set(this.assemblyForm, 'dgPackingLevel', '0')
  1724. this.$set(this.assemblyForm, 'dgFlashPoint', '')
  1725. this.$set(this.assemblyForm, 'dgFlashPointUnit', '')
  1726. this.$set(this.assemblyForm, 'dgContacts', '')
  1727. this.$set(this.assemblyForm, 'dgTel', '')
  1728. this.$set(this.assemblyForm, 'dgIsMarinePollutant', '')
  1729. this.dgVisible = false
  1730. })
  1731. .catch(_ => { });
  1732. },
  1733. handleInput(event, name) {
  1734. console.log(event, 1231)
  1735. // 2E80-2EFF CJK 部首补充 2F00-2FDF 康熙字典部首
  1736. // 3000-303F CJK 符号和标点 31C0-31EF CJK 笔画
  1737. // 3200-32FF 封闭式 CJK 文字和月份 3300-33FF CJK 兼容
  1738. // 3400-4DBF CJK 统一表意符号扩展 A 4DC0-4DFF 易经六十四卦符号
  1739. // 4E00-9FBF CJK 统一表意符号 F900-FAFF CJK 兼容象形文字
  1740. // FE30-FE4F CJK 兼容形式 FF00-FFEF 全角ASCII、全角标点
  1741. // 匹配中文字符
  1742. // let a = event.replace(/[\u2E80-\u2EFF\u2F00-\u2FDF\u3000-\u303F\u31C0-\u31EF\u3200-\u32FF\u3300-\u33FF\u3400-\u4DBF\u4DC0-\u4DFF\u4E00-\u9FBF\uF900-\uFAFF\uFE30-\uFE4F\uFF00-\uFFEF]+/g, '')
  1743. // this.assemblyForm[name] = a
  1744. },
  1745. // text文本框input
  1746. textareaBlur(name) {
  1747. console.log(name, 1160)
  1748. // if (this.assemblyForm[name].length > (35 * 5)) {
  1749. // this.$message({
  1750. // message: '输入的字体已经超出五行',
  1751. // type: 'warning'
  1752. // });
  1753. // }
  1754. let arr = ['hshipperDetails', 'hconsigneeDetails', 'hnotifyDetails', 'hnotify2Details', 'foreignAgencyDetails']
  1755. if (arr.indexOf(name) != -1) {
  1756. this.assemblyForm.detail[name] = _.toUpper(this.assemblyForm.detail[name])
  1757. }
  1758. let arr2 = ['marks', 'commodityDescr', 'bookingRemarks', 'siRemarks', 'forwarding', 'remarks', 'cyRemarks']
  1759. if (arr2.indexOf(name) != -1) {
  1760. this.assemblyForm[name] = _.toUpper(this.assemblyForm[name])
  1761. }
  1762. let arr3 = 'placeReceiptNamePrint,polNamePrint,podNamePrint,destinationNamePrint,placeDeliveryNamePrint,potNamePrint'.split(',')
  1763. if (arr3.indexOf(name) != -1) {
  1764. this.assemblyForm[name] = _.toUpper(this.assemblyForm[name])
  1765. }
  1766. // this.assemblyForm[name] = textareaWrap(this.assemblyForm[name])
  1767. },
  1768. // 同通知人
  1769. notifybyfun() {
  1770. if (this.detailData.seeDisabled) {
  1771. return;
  1772. }
  1773. this.$set(this.assemblyForm.detail, 'hnotifyId', this.assemblyForm.detail.hconsigneeId)
  1774. this.$set(this.assemblyForm.detail, 'hnotifyCnName', this.assemblyForm.detail.hconsigneeCnName)
  1775. this.$set(this.assemblyForm.detail, 'hnotifyEnName', this.assemblyForm.detail.hconsigneeEnName)
  1776. this.$set(this.assemblyForm.detail, 'hnotifyCode', this.assemblyForm.detail.hconsigneeCode)
  1777. this.$set(this.assemblyForm.detail, 'hnotifyDetails', this.assemblyForm.detail.hconsigneeDetails)
  1778. this.$set(this.assemblyForm.detail, 'hnotifyCntyName', this.assemblyForm.detail.hconsigneeCntyName)
  1779. this.$set(this.assemblyForm.detail, 'hnotifyCntyCode', this.assemblyForm.detail.hconsigneeCntyCode)
  1780. },
  1781. // 邮箱跳转
  1782. emailJump(name) {
  1783. let value = null
  1784. if (this.detailData.seeDisabled) {
  1785. return;
  1786. }
  1787. if (name == 'cy') {
  1788. if (!this.assemblyForm.cyId) {
  1789. this.$message({
  1790. message: '请先选择场站',
  1791. type: 'warning'
  1792. });
  1793. return
  1794. }
  1795. value = this.assemblyForm.cyId
  1796. }
  1797. if (name == 'carrier') {
  1798. if (!this.assemblyForm.carrierId) {
  1799. this.$message({
  1800. message: '请先选择船公司',
  1801. type: 'warning'
  1802. });
  1803. return
  1804. }
  1805. value = this.assemblyForm.carrierId
  1806. }
  1807. // 调详情获取邮箱
  1808. getBcorpsDetail(value).then(res => {
  1809. let email = res.data.data.email.split('@')[1] // 取@符号后面的数据
  1810. for (let i in this.emailhash) {
  1811. if (email == i) {
  1812. // 跳转打开一个新的页面
  1813. window.open(this.emailhash[i], "_blank")
  1814. }
  1815. }
  1816. })
  1817. },
  1818. // 添加跳转
  1819. addJump(name) {
  1820. let corpTypeName = '国内直接客户,国内同行及代理,国外直接客户,国外同行及代理'
  1821. if (this.$store.getters.CorrespondenceUnitslos) {
  1822. this.$alert("往来单位已存在,请保存关闭再进行操作", "温馨提示", {
  1823. confirmButtonText: "确定",
  1824. type: "warning",
  1825. callback: action => {
  1826. console.log(action);
  1827. }
  1828. });
  1829. return
  1830. }
  1831. this.$router.$avueRouter.closeTag("/iosBasicData/bcorps/index");
  1832. this.$router.push({
  1833. path: "/iosBasicData/bcorps/index",
  1834. query: {
  1835. corpType: corpTypeName
  1836. },
  1837. })
  1838. },
  1839. // 接口数据请求🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏
  1840. // 获取场站数据
  1841. cyBcorpslistByType(cnName) {
  1842. let corpTypeName = '场站'
  1843. getBcorpslistByType(1, 10, { cnName, status: 0, corpTypeName }).then(res => {
  1844. this.cyData = res.data.data.records
  1845. })
  1846. },
  1847. cyBcorpslistByType2(cnName) {
  1848. let corpTypeName = '场站'
  1849. getBcorpslistByType(1, 10, { cnName, status: 0, corpTypeName }).then(res => {
  1850. this.podCyData = res.data.data.records
  1851. })
  1852. },
  1853. // 获取场站下的联系人数据
  1854. cyBcorpsattnListfun() {
  1855. getBcorpsattnList(1, 20, { pid: this.assemblyForm.cyId }).then(res => {
  1856. this.cyContactsData = res.data.data.records
  1857. })
  1858. },
  1859. cyBcorpsattnListfun2() {
  1860. getBcorpsattnList(1, 20, { pid: this.assemblyForm.podCyId }).then(res => {
  1861. this.podCyCnNameData = res.data.data.records
  1862. })
  1863. },
  1864. foreignAgencyBcorpsListfun(cnName) {
  1865. let corpTypeName = '国外同行及代理'
  1866. getBcorpslistByType(1, 10, { cnName, status: 0, corpTypeName }).then(res => {
  1867. this.foreignAgencyData = res.data.data.records
  1868. })
  1869. },
  1870. // 获取发货人数据 (往来单位 前四个代理)
  1871. hshipperBcorpsListfun(cnName) {
  1872. let corpTypeName = '国内直接客户,国内同行及代理,国外直接客户,国外同行及代理'
  1873. getBcorpslistByType(1, 10, { cnName, status: 0, corpTypeName }).then(res => {
  1874. this.hshipperData = res.data.data.records
  1875. })
  1876. },
  1877. // 获取收货人数据 (往来单位 前四个代理)
  1878. hconsigneeBcorpsListfun(cnName) {
  1879. let corpTypeName = '国内直接客户,国内同行及代理,国外直接客户,国外同行及代理'
  1880. getBcorpslistByType(1, 10, { cnName, status: 0, corpTypeName }).then(res => {
  1881. this.hconsigneeData = res.data.data.records
  1882. })
  1883. },
  1884. // 获取通知人数据 (往来单位 前四个代理)
  1885. hnotifyBcorpsListfun(cnName) {
  1886. let corpTypeName = '国内直接客户,国内同行及代理,国外直接客户,国外同行及代理'
  1887. getBcorpslistByType(1, 10, { cnName, status: 0, corpTypeName }).then(res => {
  1888. this.hnotifyData = res.data.data.records
  1889. })
  1890. },
  1891. // 获取第二通知人数据 (往来单位 前四个代理)
  1892. hnotify2BcorpsListfun(cnName) {
  1893. let corpTypeName = '国内直接客户,国内同行及代理,国外直接客户,国外同行及代理'
  1894. getBcorpslistByType(1, 10, { cnName, status: 0, corpTypeName }).then(res => {
  1895. this.hnotify2Data = res.data.data.records
  1896. })
  1897. },
  1898. // 收货地数据 (港口表)
  1899. placeReceiptBportsListfun(enName) {
  1900. bportsList(1, 10, { enName, status: 0 }).then(res => {
  1901. this.placeReceiptData = res.data.data.records
  1902. })
  1903. },
  1904. // 装货港数据
  1905. polBportsListfun(enName) {
  1906. bportsList(1, 10, { enName, status: 0 }).then(res => {
  1907. this.polData = res.data.data.records
  1908. })
  1909. },
  1910. // 卸货港数据
  1911. podBportsListfun(enName) {
  1912. bportsList(1, 10, { enName, status: 0 }).then(res => {
  1913. this.podData = res.data.data.records
  1914. })
  1915. },
  1916. // 目的地
  1917. destinationBportsListfun(enName) {
  1918. bportsList(1, 10, { enName, status: 0 }).then(res => {
  1919. this.destinationData = res.data.data.records
  1920. })
  1921. },
  1922. // 交货地
  1923. placeDeliveryBportsListfun(enName) {
  1924. bportsList(1, 10, { enName, status: 0 }).then(res => {
  1925. this.placeDeliveryData = res.data.data.records
  1926. })
  1927. },
  1928. // 中转港
  1929. potBportsListfun(enName) {
  1930. bportsList(1, 10, { enName, status: 0 }).then(res => {
  1931. this.potData = res.data.data.records
  1932. })
  1933. },
  1934. // 获取类别 COLOADER 数据
  1935. bcorpstypedefineListfun(cnName) {
  1936. let corpTypeName = '国内直接客户,国内同行及代理,国外直接客户,国外同行及代理'
  1937. getBcorpslistByType(1, 10, { cnName, status: 0, corpTypeName }).then(res => {
  1938. this.coloaderCnNameData = res.data.data.records
  1939. })
  1940. },
  1941. // 包装数据
  1942. packingUnitBpackagesListfun(cnName) {
  1943. console.log(cnName)
  1944. bpackagesList(1, 10, { cnName, status: 0, whetherDg: 0 }).then(res => {
  1945. this.packingUnitData = res.data.data.records
  1946. })
  1947. },
  1948. // 商品 HS-CODE (货物列表)
  1949. commodityBcommodityListfun(cnName) {
  1950. bcommodityList(1, 10, { cnName, status: 0 }).then(res => {
  1951. this.commodityData = res.data.data.records
  1952. })
  1953. },
  1954. getHsCode() {
  1955. bcommodityList(1, 10, { status: 0 }).then(res => {
  1956. this.commodityData = res.data.data.records
  1957. })
  1958. },
  1959. searchHsQuery(query) {
  1960. this.hsLoading = true;
  1961. setTimeout(() => {
  1962. bcommodityList(1, 10, { hsCode: query, status: 0 }).then(res => {
  1963. console.log('模糊查询')
  1964. this.commodityData = res.data.data.records
  1965. })
  1966. this.hsLoading = false;
  1967. }, 200)
  1968. },
  1969. hsCodeChang(query) {
  1970. let obj = this.commodityData.find(e => e.hsCode == query)
  1971. if (obj) {
  1972. console.log(11111)
  1973. if (obj.hsCode == query) {
  1974. this.$set(this.assemblyForm, 'commodityCnName', obj.enName)
  1975. this.$set(this.assemblyForm, 'commodityEnName', obj.cnName)
  1976. }
  1977. } else {
  1978. console.log(2222)
  1979. this.$set(this.assemblyForm, 'commodityCnName', '')
  1980. this.$set(this.assemblyForm, 'commodityEnName', '')
  1981. }
  1982. },
  1983. // 获取船公司数据
  1984. carrierBcorpslistByTypefun(cnName) {
  1985. let corpTypeName = '船公司'
  1986. getBcorpslistByType(1, 10, { cnName, status: 0, corpTypeName }).then(res => {
  1987. this.carrierData = res.data.data.records
  1988. })
  1989. },
  1990. // 船名
  1991. vesselBvesselsListfun(cnName) {
  1992. getBvesselsList(1, 10, { cnName, status: 0 }).then(res => {
  1993. this.vesselData = res.data.data.records
  1994. })
  1995. },
  1996. // 订舱代理
  1997. bookingAgentBcorpsListfun(cnName) {
  1998. let corpTypeName = '国内直接客户,国内同行及代理,国外直接客户,国外同行及代理'
  1999. getBcorpslistByType(1, 10, { cnName, status: 0, corpTypeName }).then(res => {
  2000. this.bookingAgentData = res.data.data.records
  2001. })
  2002. },
  2003. // 航线数据
  2004. lineBlinesListfun(cnName) {
  2005. blinesList(1, 10, { cnName, status: 0 }).then(res => {
  2006. this.lineData = res.data.data.records
  2007. })
  2008. },
  2009. // 危险品包装等级
  2010. dgPackingLevelWorkDicts() {
  2011. getWorkDicts('dangerous_goods_grade').then(res => {
  2012. this.dgPackingLevelData = res.data.data
  2013. })
  2014. },
  2015. }
  2016. }
  2017. </script>
  2018. <style scoped>
  2019. ::v-deep.el-form-item {
  2020. margin-bottom: 2px;
  2021. }
  2022. .addbuttonClass {
  2023. width: 30px;
  2024. height: 30px;
  2025. line-height: 27px;
  2026. color: #fff;
  2027. font-weight: 500;
  2028. font-size: 26px;
  2029. box-sizing: border-box;
  2030. border-radius: 4px;
  2031. background-color: #5995fc;
  2032. text-align: center;
  2033. }
  2034. </style>