formbottom.vue 54 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272
  1. <template>
  2. <div>
  3. <el-form :model="assemblyForm" ref="form" label-width="90px" :disabled="disabled">
  4. <el-row>
  5. <!-- <el-col :span="6">
  6. <el-form-item label="业务类型" prop="businessTypes">
  7. <span slot="label">
  8. <span style="color: #1e9fff">业务类型</span>
  9. </span>
  10. <search-query :datalist="businessTypesData" :selectValue="assemblyForm.businessTypes" :forParameter="{ key: 'dictKey', label: 'dictValue', value: 'dictKey', }"
  11. :filterable="true" :clearable="true" :remote="true" :disabled="detailData.seeDisabled" :buttonIf="false"
  12. placeholder="请选择业务类型" @corpChange="corpChange($event, 'businessTypes')">
  13. </search-query>
  14. </el-form-item>
  15. </el-col> -->
  16. <!-- <el-col :span="6">
  17. <el-form-item label="截单时间" prop="cyTrailerTime">
  18. <span slot="label">
  19. <span style="color: #1e9fff">截单时间</span>
  20. </span>
  21. <el-date-picker v-model="assemblyForm.cyTrailerTime" type="date" style="width: 100%;"
  22. value-format="yyyy-MM-dd HH:mm" size="small" :disabled="detailData.seeDisabled"
  23. placeholder="请选择截单时间">
  24. </el-date-picker>
  25. </el-form-item>
  26. </el-col> -->
  27. <!-- <el-col :span="6">
  28. <el-form-item label="截港时间" prop="cyReturnTime">
  29. <span slot="label">
  30. <span style="color: #1e9fff">截港时间</span>
  31. </span>
  32. <el-date-picker v-model="assemblyForm.cyReturnTime" type="date" style="width: 100%;"
  33. value-format="yyyy-MM-dd HH:mm" size="small" :disabled="detailData.seeDisabled"
  34. placeholder="请选择截港时间">
  35. </el-date-picker>
  36. </el-form-item>
  37. </el-col> -->
  38. <!-- <el-col :span="6">
  39. <el-form-item label="应结日期" prop="dueDate">
  40. <span slot="label">
  41. <span style="color: #1e9fff">应结日期</span>
  42. </span>
  43. <el-date-picker v-model="assemblyForm.dueDate" type="date" style="width: 100%;"
  44. value-format="yyyy-MM-dd HH:mm:ss" size="small" :disabled="detailData.seeDisabled"
  45. placeholder="请选择应结日期">
  46. </el-date-picker>
  47. </el-form-item>
  48. </el-col> -->
  49. <!-- <el-col :span="6">
  50. <el-form-item label="订舱日期" prop="bookingDate">
  51. <span slot="label">
  52. <span style="color: #1e9fff">订舱日期</span>
  53. </span>
  54. <el-date-picker v-model="assemblyForm.bookingDate" type="date" style="width: 100%;"
  55. value-format="yyyy-MM-dd HH:mm" size="small" :disabled="detailData.seeDisabled"
  56. placeholder="请选择截港时间">
  57. </el-date-picker>
  58. </el-form-item>
  59. </el-col> -->
  60. <el-col :span="6">
  61. <el-form-item label="正本份数" prop="numberOfObl">
  62. <span slot="label">
  63. <span style="color: #1e9fff">正本份数</span>
  64. </span>
  65. <search-query
  66. :datalist="numberOfData"
  67. :selectValue="assemblyForm.numberOfObl"
  68. :clearable="true"
  69. :disabled="detailData.seeDisabled"
  70. :buttonIf="false"
  71. :forParameter="{ key: 'dictKey', label: 'dictValue', value: 'dictValue' }"
  72. placeholder="请选择正本份数"
  73. @corpChange="corpChange($event, 'Obl')"
  74. @corpFocus="remoteMethod($event, 'numberOfObl')"
  75. >
  76. </search-query>
  77. </el-form-item>
  78. </el-col>
  79. <el-col :span="6">
  80. <el-form-item label="副本份数" prop="numberOfCopy">
  81. <span slot="label">
  82. <span style="color: #1e9fff">副本份数</span>
  83. </span>
  84. <search-query
  85. :datalist="numberOfData"
  86. :selectValue="assemblyForm.numberOfCopy"
  87. :clearable="true"
  88. :disabled="detailData.seeDisabled"
  89. :buttonIf="false"
  90. :forParameter="{ key: 'dictKey', label: 'dictValue', value: 'dictValue' }"
  91. placeholder="请选择副本份数"
  92. @corpChange="corpChange($event, 'Copy')"
  93. @corpFocus="remoteMethod($event, 'numberOfCopy')"
  94. >
  95. </search-query>
  96. </el-form-item>
  97. </el-col>
  98. <el-col :span="6">
  99. <el-form-item label="服务方式" prop="serviceTerms">
  100. <span slot="label">
  101. <span style="color: #1e9fff">服务方式</span>
  102. </span>
  103. <search-query
  104. :datalist="serviceTermsData"
  105. :selectValue="assemblyForm.serviceTerms"
  106. :clearable="true"
  107. :disabled="detailData.seeDisabled"
  108. :buttonIf="false"
  109. :forParameter="{ key: 'id', label: 'code', value: 'code' }"
  110. placeholder="请选择服务方式"
  111. @remoteMethod="remoteMethod($event, 'serviceTerms')"
  112. @corpChange="corpChange($event, 'serviceTerms')"
  113. @corpFocus="remoteMethod($event, 'serviceTerms')"
  114. >
  115. </search-query>
  116. </el-form-item>
  117. </el-col>
  118. <el-col :span="6">
  119. <el-form-item label="航线" prop="lineCnName">
  120. <span slot="label">
  121. <span style="color: #1e9fff">航线</span>
  122. </span>
  123. <search-query
  124. :datalist="lineData"
  125. :selectValue="assemblyForm.lineCnName"
  126. :filterable="true"
  127. :clearable="true"
  128. :remote="true"
  129. :disabled="detailData.seeDisabled || (assemblyForm.billType == 'MH' && assemblyForm.masterBillNo > 0)"
  130. :buttonIf="false"
  131. :forParameter="{ key: 'id', label: 'cnName', value: 'cnName' }"
  132. placeholder="请选择航线"
  133. @remoteMethod="remoteMethod($event, 'line')"
  134. @corpChange="corpChange($event, 'line')"
  135. @corpFocus="remoteMethod($event, 'line')"
  136. >
  137. </search-query>
  138. </el-form-item>
  139. </el-col>
  140. <!-- <el-col :span="6">
  141. <el-form-item label="业务来源" prop="srcType" :rules="[{ required: true, message: '', trigger: 'blur' }]">
  142. <el-row :gutter="10">
  143. <el-col :span="10">
  144. <search-query :datalist="sourceTypeData" :selectValue="assemblyForm.srcType"
  145. :filterable="true" :clearable="true" :remote="true" :buttonIf="false"
  146. :disabled="detailData.seeDisabled || assemblyForm.feeCenterListD.filter(item => item.auditStatus > 0).length || assemblyForm.feeCenterListC.filter(item => item.auditStatus > 0).length"
  147. placeholder="请选择业务来源" @corpChange="sourceCorp($event, 'srcType')">
  148. </search-query>
  149. </el-col>
  150. <el-col :span="13">
  151. <search-query :datalist="srcData" :selectValue="assemblyForm.srcCnName"
  152. :filterable="true" :clearable="true" :remote="true"
  153. :disabled="!assemblyForm.srcType || detailData.seeDisabled || assemblyForm.feeCenterListD.filter(item => item.auditStatus > 0).length || assemblyForm.feeCenterListC.filter(item => item.auditStatus > 0).length"
  154. :buttonIf="false" :forParameter="sourceforParameter" placeholder="请选择来源明细"
  155. @remoteMethod="sourceRemote($event, 'srcCnName')"
  156. @corpChange="sourceCorp($event, 'srcCnName')"
  157. @corpFocus="sourceRemote($event, 'srcCnName')">
  158. </search-query>
  159. </el-col>
  160. </el-row>
  161. </el-form-item>
  162. </el-col> -->
  163. <!-- <el-col :span="6">
  164. <el-form-item label="AEA" prop="actualEta">
  165. <span slot="label">
  166. <span style="color: #1e9fff">AEA</span>
  167. </span>
  168. <el-date-picker v-model="assemblyForm.actualEta" type="date" style="width: 100%;"
  169. value-format="yyyy-MM-dd HH:mm" size="small" :disabled="detailData.seeDisabled"
  170. placeholder="请选择时间">
  171. </el-date-picker>
  172. </el-form-item>
  173. </el-col> -->
  174. <!-- <el-col :span="6">
  175. <el-form-item label="ETA" prop="eta">
  176. <span slot="label">
  177. <span style="color: #1e9fff">ETA</span>
  178. </span>
  179. <el-date-picker v-model="assemblyForm.eta" type="date" style="width: 100%;"
  180. value-format="yyyy-MM-dd HH:mm" size="small" :disabled="detailData.seeDisabled"
  181. placeholder="请选择时间">
  182. </el-date-picker>
  183. </el-form-item>
  184. </el-col> -->
  185. <el-col :span="6">
  186. <el-form-item label="POL免箱使天数" prop="polFreeBoxUseDays" label-width="100px">
  187. <span slot="label">
  188. <span style="color: #1e9fff">POL免箱使天数</span>
  189. </span>
  190. <el-input
  191. v-model="assemblyForm.polFreeBoxUseDays"
  192. size="small"
  193. :controls="false"
  194. style="width: 100%;"
  195. placeholder="请输入POL免箱使天数"
  196. :disabled="detailData.seeDisabled"
  197. ></el-input>
  198. </el-form-item>
  199. </el-col>
  200. <el-col :span="6">
  201. <el-form-item label="POD免箱使天数" prop="podFreeBoxUseDays" label-width="100px">
  202. <span slot="label">
  203. <span style="color: #1e9fff">POD免箱使天数</span>
  204. </span>
  205. <el-input
  206. v-model="assemblyForm.podFreeBoxUseDays"
  207. size="small"
  208. :controls="false"
  209. style="width: 100%;"
  210. placeholder="请输入POD免箱使天数"
  211. :disabled="detailData.seeDisabled"
  212. ></el-input>
  213. </el-form-item>
  214. </el-col>
  215. <el-col :span="6">
  216. <el-form-item label="船代" prop="shippingAgencyCname">
  217. <span slot="label">
  218. <span style="color: #1e9fff">船代</span>
  219. </span>
  220. <dic-select
  221. v-model="assemblyForm.shippingAgencyCname"
  222. placeholder="船代"
  223. key="id"
  224. label="shortName"
  225. res="records"
  226. url="/blade-los/bcorps/selectList?current=1&size=5&corpTypeName=船代"
  227. :filterable="true"
  228. :remote="true"
  229. dataName="shortName"
  230. @selectChange="dicChange('shippingAgencyCname', $event)"
  231. :slotRight="true"
  232. rightLabel="code"
  233. :disabled="detailData.seeDisabled || (assemblyForm.billType == 'MH' && assemblyForm.masterBillNo > 0)"
  234. ></dic-select>
  235. </el-form-item>
  236. </el-col>
  237. <el-col :span="6">
  238. <el-form-item label="退舱日期" prop="bookingWithdrawTime">
  239. <span slot="label">
  240. <span style="color: #1e9fff">退舱日期</span>
  241. </span>
  242. <el-date-picker
  243. v-model="assemblyForm.bookingWithdrawTime"
  244. type="date"
  245. style="width: 100%;"
  246. value-format="yyyy-MM-dd HH:mm"
  247. size="small"
  248. disabled
  249. placeholder="请选择退舱日期"
  250. >
  251. </el-date-picker>
  252. </el-form-item>
  253. </el-col>
  254. <!-- <el-col :span="6">
  255. <el-form-item label="订舱代理" prop="bookingAgentCnName">
  256. <span slot="label">
  257. <span style="color: #1e9fff">订舱代理</span>
  258. </span>
  259. <el-col :span="9">
  260. <search-query :datalist="bookingAgentData" :selectValue="assemblyForm.bookingAgentCnName"
  261. :filterable="true" :clearable="true" :remote="true" :disabled="detailData.seeDisabled"
  262. :buttonIf="false" placeholder="请选择订舱代理"
  263. :forParameter="{ key: 'id', label: 'cnName', value: 'cnName' }"
  264. @remoteMethod="remoteMethod($event, 'bookingAgent')"
  265. @corpChange="corpChange($event, 'bookingAgent')"
  266. @corpFocus="remoteMethod($event, 'bookingAgent')">
  267. </search-query>
  268. </el-col>
  269. <el-col :span="14" :offset="1">
  270. <el-input type="age" style="width: 100%;" v-model="assemblyForm.bookingAgentEnName"
  271. size="small" autocomplete="off"
  272. :disabled="detailData.seeDisabled || !assemblyForm.bookingAgentCnName" clearable
  273. placeholder="订舱代理"></el-input>
  274. </el-col>
  275. </el-form-item>
  276. </el-col> -->
  277. <!-- <el-col :span="6">
  278. <el-form-item label="装箱方式" prop="loadType">
  279. <span slot="label">
  280. <span style="color: #1e9fff">装箱方式</span>
  281. </span>
  282. <search-query :datalist="loadTypeData" :selectValue="assemblyForm.loadType" :filterable="true"
  283. :clearable="true" :remote="true" :disabled="detailData.seeDisabled" :buttonIf="false"
  284. :forParameter="{ key: 'dictKey', label: 'dictValue', value: 'dictKey', }"
  285. placeholder="请选择装箱方式" @corpChange="corpChange($event, 'loadType')">
  286. </search-query>
  287. </el-form-item>
  288. </el-col> -->
  289. <el-col span="6">
  290. <el-form-item label="签单地点" prop="issueAt">
  291. <span slot="label">
  292. <span style="color: #1e9fff">签单地点</span>
  293. </span>
  294. <search-query
  295. :datalist="issueAtData"
  296. :selectValue="assemblyForm.issueAt"
  297. :filterable="true"
  298. :clearable="true"
  299. :remote="true"
  300. :disabled="detailData.seeDisabled"
  301. :buttonIf="false"
  302. :forParameter="{ key: 'id', label: 'enName', value: 'enName' }"
  303. placeholder="请选择签单地点"
  304. @remoteMethod="remoteMethod($event, 'issueAt')"
  305. @corpChange="corpChange($event, 'issueAt')"
  306. @corpFocus="remoteMethod($event, 'issueAt')"
  307. >
  308. </search-query>
  309. </el-form-item>
  310. </el-col>
  311. <el-col :span="6">
  312. <el-form-item label="签单方式" prop="issueType">
  313. <span slot="label">
  314. <span style="color: #1e9fff">签单方式</span>
  315. </span>
  316. <el-select
  317. style="width: 100%"
  318. v-model="assemblyForm.issueType"
  319. size="small"
  320. placeholder="请选择签单方式"
  321. :filterable="true"
  322. :clearable="true"
  323. :disabled="detailData.seeDisabled"
  324. >
  325. <el-option v-for="item in issueTypeData" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"> </el-option>
  326. </el-select>
  327. </el-form-item>
  328. </el-col>
  329. <el-col :span="6">
  330. <el-form-item label="签单日期" prop="issueDate" label-width="80px">
  331. <span slot="label">
  332. <span style="color: #1e9fff">签单日期</span>
  333. </span>
  334. <el-date-picker
  335. style="width: 100%;"
  336. v-model="assemblyForm.issueDate"
  337. clearable
  338. type="date"
  339. size="small"
  340. :disabled="detailData.seeDisabled"
  341. value-format="yyyy-MM-dd"
  342. placeholder="选择日期"
  343. >
  344. </el-date-picker>
  345. </el-form-item>
  346. </el-col>
  347. <el-col :span="6">
  348. <el-form-item label="业务类型" prop="businessTypes">
  349. <span slot="label">
  350. <span style="color: #1e9fff">业务类型</span>
  351. </span>
  352. <search-query
  353. :datalist="businessTypesData"
  354. :selectValue="assemblyForm.businessTypes"
  355. :forParameter="{ key: 'dictKey', label: 'dictValue', value: 'dictKey' }"
  356. :filterable="true"
  357. :clearable="true"
  358. :remote="true"
  359. :disabled="detailData.seeDisabled"
  360. :buttonIf="false"
  361. placeholder="请选择业务类型"
  362. @corpChange="corpChange($event, 'businessTypes')"
  363. >
  364. </search-query>
  365. </el-form-item>
  366. </el-col>
  367. <el-col :span="6">
  368. <el-form-item label="HB/L付款地点" prop="hpayplace">
  369. <span slot="label">
  370. <span style="color: #1e9fff">HB/L付款地点</span>
  371. </span>
  372. <search-query
  373. :datalist="hpayplaceData"
  374. :selectValue="assemblyForm.hpayplace"
  375. :filterable="true"
  376. :clearable="true"
  377. :remote="true"
  378. :disabled="detailData.seeDisabled"
  379. :buttonIf="false"
  380. :forParameter="{ key: 'id', label: 'enName', value: 'enName' }"
  381. placeholder="请选择HB/L付款地点"
  382. @remoteMethod="remoteMethod($event, 'hpayplace')"
  383. @corpChange="corpChange($event, 'hpayplace')"
  384. @corpFocus="remoteMethod($event, 'hpayplace')"
  385. >
  386. </search-query>
  387. </el-form-item>
  388. </el-col>
  389. <el-col :span="6">
  390. <el-form-item label="MB/L付款地点" prop="mPayplace">
  391. <span slot="label">
  392. <span style="color: #1e9fff">MB/L付款地点</span>
  393. </span>
  394. <search-query
  395. :datalist="mpayplaceData"
  396. :selectValue="assemblyForm.mpayplace"
  397. :filterable="true"
  398. :clearable="true"
  399. :remote="true"
  400. :disabled="detailData.seeDisabled"
  401. :buttonIf="false"
  402. :forParameter="{ key: 'id', label: 'enName', value: 'enName' }"
  403. placeholder="请选择MB/L付款地点"
  404. @remoteMethod="remoteMethod($event, 'mpayplace')"
  405. @corpChange="corpChange($event, 'mpayplace')"
  406. @corpFocus="remoteMethod($event, 'mpayplace')"
  407. >
  408. </search-query>
  409. </el-form-item>
  410. </el-col>
  411. <!-- <el-col :span="6">
  412. <el-form-item label="箱属" prop="boxBelongsTo">
  413. <span slot="label">
  414. <span style="color: #1e9fff">箱属</span>
  415. </span>
  416. <dic-select v-model="assemblyForm.boxBelongsTo" placeholder="箱属" key="dictKey" label="dictValue"
  417. url="/blade-system/dict-biz/dictionary?code=boxBelongsTo" :filterable="true"
  418. :disabled="detailData.seeDisabled"></dic-select>
  419. </el-form-item>
  420. </el-col> -->
  421. <!-- <el-col :span="6">
  422. <el-form-item label="箱属" prop="boxBelongsTo">
  423. <span slot="label">
  424. <span style="color: #1e9fff">箱属</span>
  425. </span>
  426. <dic-select v-model="assemblyForm.boxBelongsTo" placeholder="箱属" key="dictKey" label="dictValue"
  427. url="/blade-system/dict-biz/dictionary?code=boxBelongsTo" :filterable="true"
  428. :disabled="detailData.seeDisabled"></dic-select>
  429. </el-form-item>
  430. </el-col> -->
  431. <!-- <el-col :span="6">
  432. <el-form-item label="舱位类型" prop="cabinType">
  433. <span slot="label">
  434. <span style="color: #1e9fff">舱位类型</span>
  435. </span>
  436. <el-col :span="12">
  437. <dic-select v-model="assemblyForm.cabinType" placeholder="舱位类型" key="id" label="dictValue"
  438. url="/blade-system/dict-biz/dictionary?code=cabinType"
  439. :disabled="detailData.seeDisabled"
  440. @selectChange="dicChange('cabinType', $event)"></dic-select>
  441. </el-col>
  442. <el-col :span="11" :offset="1">
  443. <div>
  444. <dic-select v-show="assemblyForm.cabinType == '固定' || !assemblyForm.cabinType"
  445. v-model="assemblyForm.cabinTypeData" key="id" label="dictValue" placeholder="数据"
  446. url="/blade-system/dict-biz/dictionary?code=cabinTypeData_1"
  447. :disabled="detailData.seeDisabled || !assemblyForm.cabinType"></dic-select>
  448. <dic-select v-show="assemblyForm.cabinType == '非固定'"
  449. v-model="assemblyForm.cabinTypeData" key="id" label="dictValue" placeholder="数据"
  450. url="/blade-system/dict-biz/dictionary?code=cabinTypeData_2"
  451. :disabled="detailData.seeDisabled"></dic-select>
  452. </div>
  453. </el-col>
  454. </el-form-item>
  455. </el-col> -->
  456. <!-- <el-col :span="6">
  457. <el-form-item label="舱位数" prop="shippingSpaceNumber">
  458. <span slot="label">
  459. <span style="color: #1e9fff">舱位数</span>
  460. </span>
  461. <el-input-number v-model="assemblyForm.shippingSpaceNumber" size="small" :controls="false"
  462. style="width: 100%;" placeholder="请输入舱位数"></el-input-number>
  463. </el-form-item>
  464. </el-col> -->
  465. <!-- <el-col :span="6">
  466. <el-form-item label="限制重量(吨)" prop="weightLimit">
  467. <span slot="label">
  468. <span style="color: #1e9fff">限制重量(吨)</span>
  469. </span>
  470. <el-input-number v-model="assemblyForm.weightLimit" size="small" :controls="false"
  471. style="width: 100%;" placeholder="请输入限制重量(吨)"></el-input-number>
  472. </el-form-item>
  473. </el-col> -->
  474. <!-- <el-col :span="6">
  475. <el-form-item label="限制舱位(T)" prop="restrictedCabinSpace">
  476. <span slot="label">
  477. <span style="color: #1e9fff">限制舱位(T)</span>
  478. </span>
  479. <el-input v-model="assemblyForm.restrictedCabinSpace" size="small" placeholder="请输入限制舱位(T)"
  480. style="width: 100%;"></el-input>
  481. </el-form-item>
  482. </el-col> -->
  483. <el-col :span="6">
  484. <el-form-item label="单据类型" prop="billType">
  485. <span slot="label">
  486. <span style="color: #1e9fff">单据类型</span>
  487. </span>
  488. <search-query
  489. :datalist="billTypeData"
  490. :selectValue="assemblyForm.billType"
  491. :filterable="true"
  492. :clearable="true"
  493. :remote="true"
  494. :disabled="true"
  495. :buttonIf="false"
  496. placeholder="请选择单据类型"
  497. @corpChange="corpChange($event, 'billType')"
  498. >
  499. </search-query>
  500. </el-form-item>
  501. </el-col>
  502. <el-col :span="6">
  503. <el-form-item label="" prop="billNo">
  504. <span slot="label">
  505. <span style="color: #1e9fff">单据编号</span>
  506. </span>
  507. <el-input v-model="assemblyForm.billNo" size="small" placeholder="请输入单据编号" style="width: 100%;" disabled></el-input>
  508. </el-form-item>
  509. </el-col>
  510. <el-col :span="4">
  511. <el-form-item label="" prop="createUserName">
  512. <span slot="label">
  513. <span style="color: #1e9fff">制单人</span>
  514. </span>
  515. <el-input v-model="assemblyForm.createUserName" size="small" placeholder="请输入单据编号" style="width: 100%;" disabled></el-input>
  516. </el-form-item>
  517. </el-col>
  518. <el-col :span="5">
  519. <el-form-item label="" prop="createTime">
  520. <span slot="label">
  521. <span style="color: #1e9fff">制单日期</span>
  522. </span>
  523. <el-input v-model="assemblyForm.createTime" size="small" placeholder="请输入单据编号" style="width: 100%;" disabled></el-input>
  524. </el-form-item>
  525. </el-col>
  526. <el-col :span="4">
  527. <el-form-item label="" prop="updateUserName">
  528. <span slot="label">
  529. <span style="color: #1e9fff">修改人</span>
  530. </span>
  531. <el-input v-model="assemblyForm.updateUserName" size="small" placeholder="请输入单据编号" style="width: 100%;" disabled></el-input>
  532. </el-form-item>
  533. </el-col>
  534. <el-col :span="5">
  535. <el-form-item label="" prop="updateTime">
  536. <span slot="label">
  537. <span style="color: #1e9fff">修改日期</span>
  538. </span>
  539. <el-input v-model="assemblyForm.updateTime" size="small" placeholder="请输入单据编号" style="width: 100%;" disabled></el-input>
  540. </el-form-item>
  541. </el-col>
  542. </el-row>
  543. <!-- <el-row>
  544. <el-col :span="6">
  545. <el-checkbox size="medium" :true-label="1" :false-label="0" :disabled="detailData.seeDisabled"
  546. v-model="assemblyForm.isLargeCargo">大件货</el-checkbox>
  547. </el-col>
  548. <el-col :span="6">
  549. <div>
  550. <el-checkbox size="medium" :true-label="1" :false-label="0" :disabled="detailData.seeDisabled"
  551. v-model="assemblyForm.isNeedLand">陆运</el-checkbox>
  552. <el-checkbox size="medium" :true-label="1" :false-label="0" :disabled="detailData.seeDisabled"
  553. v-model="assemblyForm.isNeedDeclare">需报关</el-checkbox>
  554. <el-checkbox size="medium" :true-label="1" :false-label="0" :disabled="detailData.seeDisabled"
  555. v-model="assemblyForm.isNeedIq">需三检</el-checkbox>
  556. </div>
  557. </el-col>
  558. <el-col :span="6">
  559. <el-form-item label="箱数或件数大写" prop="quantityPackingDescr" label-width="100px">
  560. <span slot="label">
  561. <span style="color: #1e9fff">箱数或件数大写</span>
  562. </span>
  563. <el-input type="age" style="width: 100%;" v-model="assemblyForm.quantityPackingDescr"
  564. size="small" autocomplete="off" :disabled="true" clearable
  565. placeholder="请输入箱数或件数大写"></el-input>
  566. </el-form-item>
  567. </el-col>
  568. <el-col :span="6">
  569. <el-form-item label="创建日期" prop="cyTrailerTime">
  570. <span slot="label">
  571. <span style="color: #1e9fff">创建日期</span>
  572. </span>
  573. <el-date-picker v-model="assemblyForm.createTime" type="date" style="width: 100%;"
  574. value-format="yyyy-MM-dd" size="small" :disabled="true" placeholder="请选择创建日期">
  575. </el-date-picker>
  576. </el-form-item>
  577. </el-col>
  578. </el-row> -->
  579. </el-form>
  580. <el-dialog title="INTTRA EDI" :visible.sync="inttraVisible" width="50%" append-to-body :before-close="beforeClose">
  581. <div>
  582. <el-form :model="assemblyForm" ref="form" label-width="160px">
  583. <el-row v-if="inttraDoorToVisible" :gutter="20">
  584. <el-col :span="12">
  585. <el-form-item :label="`DOOR TO 客户名称`" prop="hNotify2CnName">
  586. <el-input
  587. type="age"
  588. style="width: 100%;"
  589. v-model="assemblyForm.detail[`inttraDoorToCorpName`]"
  590. size="small"
  591. autocomplete="off"
  592. :disabled="detailData.seeDisabled"
  593. clearable
  594. :placeholder="`请输入 DOOR TO 客户名称`"
  595. @input="inttraTitleInput($event, 'CorpName')"
  596. ></el-input>
  597. </el-form-item>
  598. </el-col>
  599. <el-col :span="12">
  600. <el-form-item :label="`DOOR TO 客户地址`">
  601. <el-input
  602. type="age"
  603. style="width: 100%;"
  604. v-model="assemblyForm.detail[`inttraDoorToCorpAddr`]"
  605. size="small"
  606. autocomplete="off"
  607. :disabled="detailData.seeDisabled"
  608. clearable
  609. :placeholder="`请输入${inttraText} 客户地址`"
  610. @input="inttraTitleInput($event, 'CorpAddr')"
  611. ></el-input>
  612. </el-form-item>
  613. </el-col>
  614. <el-col :span="12">
  615. <el-form-item :label="`DOOR TO 联系人`">
  616. <el-input
  617. type="age"
  618. style="width: 100%;"
  619. v-model="assemblyForm.detail[`inttraDoorToCorpContacts`]"
  620. size="small"
  621. autocomplete="off"
  622. :disabled="detailData.seeDisabled"
  623. clearable
  624. :placeholder="`请输入 DOOR TO 联系人`"
  625. @input="inttraTitleInput($event, 'CorpContacts')"
  626. ></el-input>
  627. </el-form-item>
  628. </el-col>
  629. <el-col :span="12">
  630. <el-form-item :label="`DOOR TO 联系电话`">
  631. <el-input
  632. type="age"
  633. style="width: 100%;"
  634. v-model="assemblyForm.detail[`inttraDoorToCorpTel`]"
  635. size="small"
  636. autocomplete="off"
  637. :disabled="detailData.seeDisabled"
  638. clearable
  639. :placeholder="`请输入 DOOR TO 联系人电话`"
  640. @input="inttraTitleInput($event, 'CorpTel')"
  641. ></el-input>
  642. </el-form-item>
  643. </el-col>
  644. </el-row>
  645. <el-row v-if="inttraToDoorVisible" :gutter="20">
  646. <el-col :span="12">
  647. <el-form-item :label="`TO DOOR 客户名称`" prop="hNotify2CnName">
  648. <el-input
  649. type="age"
  650. style="width: 100%;"
  651. v-model="assemblyForm.detail[`inttraToDoorCorpName`]"
  652. size="small"
  653. autocomplete="off"
  654. :disabled="detailData.seeDisabled"
  655. clearable
  656. :placeholder="`请输入 TO DOOR 客户名称`"
  657. @input="inttraTitleInput($event, 'CorpName')"
  658. ></el-input>
  659. </el-form-item>
  660. </el-col>
  661. <el-col :span="12">
  662. <el-form-item :label="`TO DOOR 客户地址`">
  663. <el-input
  664. type="age"
  665. style="width: 100%;"
  666. v-model="assemblyForm.detail[`inttraToDoorCorpAddr`]"
  667. size="small"
  668. autocomplete="off"
  669. :disabled="detailData.seeDisabled"
  670. clearable
  671. :placeholder="`请输入 TO DOOR 客户地址`"
  672. @input="inttraTitleInput($event, 'CorpAddr')"
  673. ></el-input>
  674. </el-form-item>
  675. </el-col>
  676. <el-col :span="12">
  677. <el-form-item :label="`TO DOOR 联系人`">
  678. <el-input
  679. type="age"
  680. style="width: 100%;"
  681. v-model="assemblyForm.detail[`inttraToDoorCorpContacts`]"
  682. size="small"
  683. autocomplete="off"
  684. :disabled="detailData.seeDisabled"
  685. clearable
  686. :placeholder="`请输入 TO DOOR 联系人`"
  687. @input="inttraTitleInput($event, 'CorpContacts')"
  688. ></el-input>
  689. </el-form-item>
  690. </el-col>
  691. <el-col :span="12">
  692. <el-form-item :label="`TO DOOR 联系电话`">
  693. <el-input
  694. type="age"
  695. style="width: 100%;"
  696. v-model="assemblyForm.detail[`inttraToDoorCorpTel`]"
  697. size="small"
  698. autocomplete="off"
  699. :disabled="detailData.seeDisabled"
  700. clearable
  701. :placeholder="`请输入 TO DOOR 联系人电话`"
  702. @input="inttraTitleInput($event, 'CorpTel')"
  703. ></el-input>
  704. </el-form-item>
  705. </el-col>
  706. </el-row>
  707. </el-form>
  708. </div>
  709. <span slot="footer" class="dialog-footer">
  710. <el-button type="danger" @click="inttraCancellation('清除')">清 除</el-button>
  711. <el-button type="primary" @click="inttraVisible = false">确 定</el-button>
  712. </span>
  713. </el-dialog>
  714. </div>
  715. </template>
  716. <script>
  717. import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
  718. import { getBcorpslistByType, getBcorpsDetail } from "@/api/iosBasicData/bcorps";
  719. import { getWorkDicts } from "@/api/system/dictbiz";
  720. import { bportsList } from "@/api/iosBasicData/bports";
  721. import emailhash from "@/views/iosBasicData/SeafreightExportF/bills/assembly/Jsonfile/emailhash.json";
  722. import { getBcorpsattnList } from "@/api/iosBasicData/bcorpsattn";
  723. import { getBservicetermsList } from "@/api/iosBasicData/bserviceterms";
  724. import { blinesList } from "@/api/iosBasicData/blines";
  725. import { getDeptLazyTree } from "@/api/system/dept";
  726. import { selectListLos } from "@/api/approval/processConfig";
  727. import dicSelect from "@/components/dicSelect/main";
  728. export default {
  729. components: { SearchQuery, dicSelect },
  730. props: {
  731. assemblyForm: {
  732. type: Object
  733. },
  734. detailData: {
  735. type: Boolean
  736. },
  737. // 是否生成账单
  738. generateBillsfalse: {
  739. type: Boolean,
  740. default: false
  741. },
  742. disabled: {
  743. type: Boolean,
  744. default: false
  745. }
  746. },
  747. data() {
  748. return {
  749. // 订舱代理数据
  750. bookingAgentData: [],
  751. // 业务来源
  752. sourceTypeData: [
  753. {
  754. label: "公司",
  755. value: "OWN"
  756. },
  757. {
  758. label: "代理",
  759. value: "AGENT"
  760. },
  761. {
  762. label: "业务员",
  763. value: "SALES"
  764. }
  765. ],
  766. // 业务来源下级配置
  767. sourceforParameter: {},
  768. // 业务来源下级
  769. srcData: [],
  770. emailhash: emailhash, // 邮箱跳转地址
  771. lineData: [], // 航线
  772. // 场站
  773. cyData: [],
  774. cyContactsData: [], // 场站联系人
  775. // 服务方式
  776. serviceTermsData: [],
  777. // HB/L付款地点数据
  778. hpayplaceData: [],
  779. // MB/L付款地点
  780. mpayplaceData: [],
  781. // 签单地点
  782. issueAtData: [],
  783. // INTTRA EDI弹窗
  784. inttraVisible: false,
  785. inttraDoorToVisible: false,
  786. inttraToDoorVisible: false,
  787. inttraText: "", // 服务方式弹窗字段拼接
  788. inttraTitle: "",
  789. inttraData: [],
  790. // 份数
  791. numberOfData: [],
  792. // 签单方式
  793. issueTypeData: [],
  794. // 装箱方式
  795. loadTypeData: [],
  796. // 业务类型
  797. businessTypesData: [],
  798. // 单据类型
  799. billTypeData: [
  800. {
  801. label: "直单",
  802. value: "DD"
  803. },
  804. {
  805. label: "主单",
  806. value: "MM"
  807. },
  808. {
  809. label: "分单",
  810. value: "MH"
  811. }
  812. ]
  813. };
  814. },
  815. created() {
  816. // this.cyBcorpslistByType()
  817. this.getWorkDictsfun();
  818. // this.ownDeptLazyTreefun()
  819. },
  820. methods: {
  821. dicChange(name, row) {
  822. if (name == "cabinType") {
  823. this.assemblyForm.cabinTypeData = null;
  824. }
  825. if (name == "shippingAgencyCname") {
  826. if (row) {
  827. this.assemblyForm.shippingAgencyId = row.id;
  828. this.assemblyForm.shippingAgencyEname = row.enName;
  829. } else {
  830. this.assemblyForm.shippingAgencyId = null;
  831. this.assemblyForm.shippingAgencyEname = null;
  832. this.assemblyForm.shippingAgencyCname = null;
  833. }
  834. }
  835. },
  836. // 业务来源下拉
  837. sourceCorp(value, name) {
  838. if (name == "srcCnName") {
  839. if (!value) {
  840. this.$set(this.assemblyForm, "srcId", "");
  841. this.$set(this.assemblyForm, "srcCnName", "");
  842. this.$set(this.assemblyForm, "srcEnName", "");
  843. }
  844. for (let item of this.srcData) {
  845. if (item[this.sourceforParameter.value] == value) {
  846. if (this.assemblyForm.srcType == "OWN") {
  847. // 国家
  848. this.$set(this.assemblyForm, "srcId", item.id);
  849. this.$set(this.assemblyForm, "srcCnName", item.title);
  850. this.$set(this.assemblyForm, "srcEnName", item.title);
  851. } else if (this.assemblyForm.srcType == "AGENT") {
  852. // 代理
  853. this.$set(this.assemblyForm, "srcId", item.id);
  854. this.$set(this.assemblyForm, "srcCnName", item.cnName);
  855. this.$set(this.assemblyForm, "srcEnName", item.cnName);
  856. } else if (this.assemblyForm.srcType == "SALES") {
  857. // 业务员
  858. this.$set(this.assemblyForm, "srcId", item.id);
  859. this.$set(this.assemblyForm, "srcCnName", item.name);
  860. this.$set(this.assemblyForm, "srcEnName", item.name);
  861. }
  862. }
  863. }
  864. } else if (name == "srcType") {
  865. this.$set(this.assemblyForm, "srcType", value);
  866. this.$set(this.assemblyForm, "srcId", "");
  867. this.$set(this.assemblyForm, "srcCnName", "");
  868. this.$set(this.assemblyForm, "srcEnName", "");
  869. if (this.assemblyForm.srcType == "OWN") {
  870. this.sourceforParameter = { key: "id", label: "title", value: "title" };
  871. this.ownDeptLazyTreefun();
  872. } else if (this.assemblyForm.srcType == "AGENT") {
  873. this.sourceforParameter = { key: "id", label: "cnName", value: "cnName" };
  874. this.agentBcorpsListfun();
  875. } else if (this.assemblyForm.srcType == "SALES") {
  876. this.sourceforParameter = { key: "id", label: "name", value: "name" };
  877. this.salesUserGetListfun();
  878. }
  879. }
  880. },
  881. // 业务来源接口
  882. sourceRemote(value, name) {
  883. if (name == "srcCnName") {
  884. if (this.assemblyForm.srcType == "OWN") {
  885. this.sourceforParameter = { key: "id", label: "title", value: "title" };
  886. this.ownDeptLazyTreefun();
  887. } else if (this.assemblyForm.srcType == "AGENT") {
  888. this.sourceforParameter = { key: "id", label: "cnName", value: "cnName" };
  889. this.agentBcorpsListfun(value);
  890. } else if (this.assemblyForm.srcType == "SALES") {
  891. this.sourceforParameter = { key: "id", label: "name", value: "name" };
  892. this.salesUserGetListfun(value);
  893. }
  894. }
  895. },
  896. // 获取业务来源代理数据
  897. agentBcorpsListfun(cnName) {
  898. let corpTypeName = "国内直接客户,国内同行及代理,国外直接客户,国外同行及代理,代理客户";
  899. getBcorpslistByType(1, 10, { cnName, corpTypeName }).then(res => {
  900. this.srcData = res.data.data.records;
  901. });
  902. },
  903. // 订舱代理
  904. bookingAgentBcorpsListfun(cnName) {
  905. let corpTypeName = "国内直接客户,国内同行及代理,国外直接客户,国外同行及代理";
  906. getBcorpslistByType(1, 10, { cnName, status: 0, corpTypeName }).then(res => {
  907. this.bookingAgentData = res.data.data.records;
  908. });
  909. },
  910. // 获取业务来源业务员数据
  911. salesUserGetListfun(account) {
  912. selectListLos("业务员").then(res => {
  913. this.srcData = res.data.data;
  914. });
  915. },
  916. // 获取公司名称 用户管理左侧
  917. ownDeptLazyTreefun() {
  918. getDeptLazyTree(0).then(res => {
  919. this.srcData = res.data.data;
  920. // 来源 内容 默认登录人所属公司
  921. for (let item of this.srcData) {
  922. if (item.id == JSON.parse(localStorage.getItem("saber-userInfo")).content.dept_id) {
  923. this.$set(this.assemblyForm, "srcId", item.id);
  924. this.$set(this.assemblyForm, "srcCnName", item.title);
  925. this.$set(this.assemblyForm, "srcEnName", item.title);
  926. }
  927. }
  928. });
  929. },
  930. // 远程搜索
  931. remoteMethod(value, name) {
  932. let inttraArr = ["inttraDoorTo", "inttraToDoor"];
  933. let numberOfArr = ["numberOfObl", "numberOfCopy"];
  934. let payplaceArr = ["hpayplace", "mpayplace", "issueAt"];
  935. if (name == "cy") {
  936. this.cyBcorpslistByType(value);
  937. } else if (inttraArr.indexOf(name) != -1) {
  938. this.inttraBcorpslistByType(value);
  939. } else if (name == "bookingAgent") {
  940. this.bookingAgentBcorpsListfun(value);
  941. }
  942. // else if (name == 'issueType') {
  943. // // 签单方式
  944. // this.getWorkDictsfun()
  945. // }
  946. // 场站联系人
  947. else if (name == "cyContacts") {
  948. this.cyBcorpsattnListfun();
  949. }
  950. // 份数
  951. else if (numberOfArr.indexOf(name) != -1) {
  952. this.numberoforiginalWorkDicts();
  953. }
  954. // 服务方式
  955. else if (name == "serviceTerms") {
  956. this.serviceTermsWorkDicts();
  957. }
  958. // HB/L付款状态 MB/L 付款状态
  959. else if (payplaceArr.indexOf(name) != -1) {
  960. this[name + "BportsListfun"](value);
  961. } else if (name == "line") {
  962. this.lineblinesListfun(value);
  963. }
  964. },
  965. // 选择框的回调
  966. corpChange(value, name) {
  967. let inttraArr = ["inttraDoorTo", "inttraToDoor"];
  968. let numberOfArr = ["Obl", "Copy"];
  969. if (name == "cy") {
  970. if (!value) {
  971. this.$set(this.assemblyForm, "cyId", "");
  972. this.$set(this.assemblyForm, "cyCode", "");
  973. this.$set(this.assemblyForm, "cyCnName", "");
  974. this.$set(this.assemblyForm, "cyEnName", "");
  975. this.$set(this.assemblyForm, "cyRemarks", "");
  976. // 联系人
  977. this.$set(this.assemblyForm, "cyTel", "");
  978. this.$set(this.assemblyForm, "cyAddress", "");
  979. this.$set(this.assemblyForm, "cyContacts", "");
  980. }
  981. for (let item of this.cyData) {
  982. if (item.cnName == value) {
  983. this.$set(this.assemblyForm, "cyId", item.id);
  984. this.$set(this.assemblyForm, "cyCode", item.code);
  985. this.$set(this.assemblyForm, "cyCnName", item.cnName);
  986. this.$set(this.assemblyForm, "cyEnName", item.enName);
  987. this.$set(this.assemblyForm, "cyRemarks", item.details); // 客户里的详情信息
  988. // 查询场站联系人
  989. getBcorpsattnList(1, 20, { pid: this.assemblyForm.cyId }).then(res => {
  990. console.log(res, 590);
  991. this.$set(this.assemblyForm, "cyTel", res.data.data.records[0].tel);
  992. this.$set(this.assemblyForm, "cyAddress", res.data.data.records[0].addr);
  993. this.$set(this.assemblyForm, "cyContacts", res.data.data.records[0].cname);
  994. });
  995. }
  996. }
  997. }
  998. // 场站联系人
  999. else if (name == "cyContacts") {
  1000. if (!value) {
  1001. this.$set(this.assemblyForm, "cyTel", "");
  1002. this.$set(this.assemblyForm, "cyAddress", "");
  1003. this.$set(this.assemblyForm, "cyContacts", "");
  1004. }
  1005. for (let item of this.cyContactsData) {
  1006. if (item.cname == value) {
  1007. this.$set(this.assemblyForm, "cyTel", item.tel);
  1008. this.$set(this.assemblyForm, "cyAddress", item.addr);
  1009. this.$set(this.assemblyForm, "cyContacts", item.cname);
  1010. }
  1011. }
  1012. } else if (inttraArr.indexOf(name) != -1) {
  1013. for (let item of this.inttraData) {
  1014. if (item.cnName == value) {
  1015. this.$set(this.assemblyForm, `inttra${this.inttraTitle}CorpName`, item.cnName);
  1016. this.$set(this.assemblyForm, `inttra${this.inttraTitle}CorpAddr`, item.cnAddr);
  1017. this.$set(this.assemblyForm, `inttra${this.inttraTitle}CorpContacts`, item.attnName);
  1018. this.$set(this.assemblyForm, `inttra${this.inttraTitle}CorpTel`, item.attnTel);
  1019. }
  1020. }
  1021. }
  1022. // 份数
  1023. else if (numberOfArr.indexOf(name) != -1) {
  1024. if (!value) {
  1025. this.$set(this.assemblyForm, "numberOf" + name, "");
  1026. this.$set(this.assemblyForm, "numberOf" + name + "Digit", "");
  1027. }
  1028. for (let item of this.numberOfData) {
  1029. if (item.dictValue == value) {
  1030. this.$set(this.assemblyForm, "numberOf" + name, item.dictValue);
  1031. this.$set(this.assemblyForm, "numberOf" + name + "Digit", item.dictKey);
  1032. }
  1033. }
  1034. }
  1035. // 签单地点
  1036. else if (name == "issueAt") {
  1037. for (let item of this.issueAtData) {
  1038. if (item.enName == value) {
  1039. this.$set(this.assemblyForm, "issueAt", item.enName);
  1040. this.$set(this.assemblyForm, "issueAtId", item.id);
  1041. }
  1042. }
  1043. }
  1044. // 航线
  1045. else if (name == "line") {
  1046. for (let item of this[name + "Data"]) {
  1047. if (item.cnName == value) {
  1048. this.$set(this.assemblyForm, "lineId", item.id);
  1049. this.$set(this.assemblyForm, "lineCnName", item.cnName);
  1050. this.$set(this.assemblyForm, "lineEnName", item.enName);
  1051. }
  1052. }
  1053. }
  1054. // 订舱代理
  1055. else if (name == "bookingAgent") {
  1056. if (!value) {
  1057. this.$set(this.assemblyForm, "bookingAgentId", "");
  1058. this.$set(this.assemblyForm, "bookingAgentCnName", "");
  1059. this.$set(this.assemblyForm, "bookingAgentEnName", "");
  1060. this.$set(this.assemblyForm, "bookingRemarks", "");
  1061. }
  1062. for (let item of this[name + "Data"]) {
  1063. if (item.cnName == value) {
  1064. this.$set(this.assemblyForm, "bookingAgentId", item.id);
  1065. this.$set(this.assemblyForm, "bookingAgentCnName", item.cnName);
  1066. this.$set(this.assemblyForm, "bookingAgentEnName", item.enName);
  1067. this.$set(this.assemblyForm, "bookingRemarks", item.remarks);
  1068. }
  1069. }
  1070. } else {
  1071. this.assemblyForm[name] = value ? value : "";
  1072. }
  1073. },
  1074. // 获取航线数据
  1075. lineblinesListfun(cnName) {
  1076. blinesList(1, 10, { cnName, status: 0 }).then(res => {
  1077. this.lineData = res.data.data.records;
  1078. });
  1079. },
  1080. // INTTRA EDI弹窗 输入框监听
  1081. inttraTitleInput(value, name) {
  1082. // if (this.assemblyForm.serviceTerms == 'DOOR to DOOR') {
  1083. // this.$set(this.assemblyForm,`inttraDoorTo${name}`,value)
  1084. // this.$set(this.assemblyForm,`inttraToDoor${name}`,value)
  1085. // }else {
  1086. // this.$set(this.assemblyForm,`inttra${this.inttraTitle}${name}`,value)
  1087. // }
  1088. },
  1089. // 发送INTTRA EDI弹窗开启
  1090. inttraAdd() {
  1091. if (!this.assemblyForm.serviceTerms) {
  1092. this.$message({
  1093. showClose: true,
  1094. message: "请先选择服务方式",
  1095. type: "warning"
  1096. });
  1097. return;
  1098. }
  1099. if (this.assemblyForm.serviceTerms == "DOOR to CY") {
  1100. this.inttraTitle = "DoorTo";
  1101. this.inttraText = "DOOR TO";
  1102. // this.inttraBcorpslistByType()
  1103. this.inttraVisible = true;
  1104. this.inttraDoorToVisible = true;
  1105. this.inttraToDoorVisible = false;
  1106. //
  1107. } else if (this.assemblyForm.serviceTerms == "CY to DOOR") {
  1108. this.inttraTitle = "ToDoor";
  1109. this.inttraText = "TO DOOR";
  1110. // this.inttraBcorpslistByType()
  1111. this.inttraVisible = true;
  1112. this.inttraDoorToVisible = false;
  1113. this.inttraToDoorVisible = true;
  1114. } else if (this.assemblyForm.serviceTerms == "DOOR to DOOR") {
  1115. this.inttraTitle = "ToDoor";
  1116. this.inttraText = "DOOR TO DOOR";
  1117. // this.inttraBcorpslistByType()
  1118. this.inttraVisible = true;
  1119. this.inttraDoorToVisible = true;
  1120. this.inttraToDoorVisible = true;
  1121. } else {
  1122. this.$confirm("请选择其他的服务方式", {
  1123. confirmButtonText: "确定",
  1124. cancelButtonText: "取消",
  1125. type: "warning"
  1126. })
  1127. .then(() => {
  1128. console.log("123123");
  1129. })
  1130. .catch(() => {
  1131. console.log("11111111");
  1132. });
  1133. }
  1134. console.log(this.assemblyForm.serviceTerms, this.inttraDoorToVisible, this.inttraToDoorVisible);
  1135. },
  1136. // INTTRA EDI弹窗清除
  1137. inttraCancellation(name) {
  1138. let title = "";
  1139. if (name == "清除") {
  1140. title = "确认清除吗?";
  1141. }
  1142. this.$confirm(title)
  1143. .then(_ => {
  1144. if (this.assemblyForm.serviceTerms == "DOOR to DOOR") {
  1145. this.$set(this.assemblyForm, "inttraDoorToCorpName", "");
  1146. this.$set(this.assemblyForm, "inttraDoorToCorpAddr", "");
  1147. this.$set(this.assemblyForm, "inttraDoorToCorpContacts", "");
  1148. this.$set(this.assemblyForm, "inttraDoorToCorpTel", "");
  1149. this.$set(this.assemblyForm, "inttraToDoorCorpName", "");
  1150. this.$set(this.assemblyForm, "inttraToDoorCorpAddr", "");
  1151. this.$set(this.assemblyForm, "inttraToDoorCorpContacts", "");
  1152. this.$set(this.assemblyForm, "inttraToDoorCorpTel", "");
  1153. } else {
  1154. this.$set(this.assemblyForm, `inttra${this.inttraTitle}CorpName`, "");
  1155. this.$set(this.assemblyForm, `inttra${this.inttraTitle}CorpAddr`, "");
  1156. this.$set(this.assemblyForm, `inttra${this.inttraTitle}CorpContacts`, "");
  1157. this.$set(this.assemblyForm, `inttra${this.inttraTitle}CorpTel`, "");
  1158. }
  1159. this.inttraVisible = false;
  1160. })
  1161. .catch(_ => {});
  1162. },
  1163. // 弹窗关闭
  1164. beforeClose(done) {
  1165. done();
  1166. },
  1167. // 邮箱跳转
  1168. emailJump() {
  1169. if (!this.assemblyForm.cyId) {
  1170. this.$message({
  1171. message: "请先选择场站",
  1172. type: "warning"
  1173. });
  1174. return;
  1175. }
  1176. // 调详情获取邮箱
  1177. getBcorpsDetail(this.assemblyForm.cyId).then(res => {
  1178. let email = res.data.data.email.split("@")[1]; // 取@符号后面的数据
  1179. for (let i in this.emailhash) {
  1180. if (email == i) {
  1181. // 跳转打开一个新的页面
  1182. window.open(this.emailhash[i], "_blank");
  1183. }
  1184. }
  1185. });
  1186. },
  1187. // 接口数据请求🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏
  1188. // 获取场站数据
  1189. cyBcorpslistByType(cnName) {
  1190. let corpTypeName = "场站";
  1191. getBcorpslistByType(1, 10, { cnName, status: 0, corpTypeName }).then(res => {
  1192. this.cyData = res.data.data.records;
  1193. });
  1194. },
  1195. // 获取场站下的联系人数据
  1196. cyBcorpsattnListfun() {
  1197. getBcorpsattnList(1, 20, { pid: this.assemblyForm.cyId }).then(res => {
  1198. this.cyContactsData = res.data.data.records;
  1199. });
  1200. },
  1201. // 获取客户数据
  1202. inttraBcorpslistByType(cnName) {
  1203. getBcorpslistByType(1, 10, { cnName, status: 0 }).then(res => {
  1204. this.inttraData = res.data.data.records;
  1205. });
  1206. },
  1207. // 获取签单方式字典数据
  1208. getWorkDictsfun() {
  1209. getWorkDicts("issue_type_F").then(res => {
  1210. this.issueTypeData = res.data.data;
  1211. });
  1212. getWorkDicts("packing_method").then(res => {
  1213. this.loadTypeData = res.data.data;
  1214. });
  1215. getWorkDicts("business_Type_detail").then(res => {
  1216. this.businessTypesData = res.data.data;
  1217. });
  1218. },
  1219. // 获取份数数据
  1220. numberoforiginalWorkDicts() {
  1221. getWorkDicts("number_of_original").then(res => {
  1222. this.numberOfData = res.data.data;
  1223. });
  1224. },
  1225. // 获取服务方式数据
  1226. serviceTermsWorkDicts() {
  1227. // getWorkDicts('service_terms').then(res=>{
  1228. // this.serviceTermsData = res.data.data
  1229. // })
  1230. getBservicetermsList(1, 20, { status: 0 }).then(res => {
  1231. this.serviceTermsData = res.data.data.records;
  1232. });
  1233. },
  1234. // HB/L 付款地点
  1235. hpayplaceBportsListfun(enName) {
  1236. bportsList(1, 10, { enName, status: 0 }).then(res => {
  1237. this.hpayplaceData = res.data.data.records;
  1238. });
  1239. },
  1240. // MB/L 付款地点
  1241. mpayplaceBportsListfun(enName) {
  1242. bportsList(1, 10, { enName, status: 0 }).then(res => {
  1243. this.mpayplaceData = res.data.data.records;
  1244. });
  1245. },
  1246. // 签单地点
  1247. issueAtBportsListfun(enName) {
  1248. bportsList(1, 10, { enName, status: 0 }).then(res => {
  1249. this.issueAtData = res.data.data.records;
  1250. });
  1251. }
  1252. }
  1253. };
  1254. </script>
  1255. <style lang="scss" scoped>
  1256. ::v-deep.el-form-item {
  1257. margin-bottom: 10px;
  1258. }
  1259. ::v-deep .el-input-number .el-input__inner {
  1260. text-align: left;
  1261. }
  1262. ::v-deep .el-select > .el-input {
  1263. display: inline-block !important;
  1264. }
  1265. </style>