detailsPage.vue 63 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557
  1. <template>
  2. <div>
  3. <div class="customer-head">
  4. <div class="customer-back">
  5. <el-button type="danger" style="border: none;background: none;color: red" icon="el-icon-arrow-left"
  6. @click="goBack(0)">返回列表
  7. </el-button>
  8. </div>
  9. <div class="add-customer-btn">
  10. <el-button class="el-button--small-yh" style="margin-left: 6px;" type="primary" size="small"
  11. v-if="editButton" @click="inEdit">编 辑
  12. </el-button>
  13. <el-button class="el-button--small-yh" v-else style="margin-left: 6px;" type="primary" size="small"
  14. :disabled="isSaveBtn || form.status != 0" @click="submit">保 存
  15. </el-button>
  16. <el-button v-if="form.id" class="el-button--small-yh" style="margin-left: 6px;" type="success" size="small"
  17. :disabled="(form.status != 0 && form.status != 4)" @click="application">单据请核
  18. </el-button>
  19. <el-button v-if="form.status == 1" class="el-button--small-yh" style="margin-left: 6px;" type="danger"
  20. size="small" @click="revokeApplication">撤销单据请核
  21. </el-button>
  22. <el-dropdown style="line-height: 0">
  23. <el-button class="el-button--small-yh" style="margin-left: 6px;" type="warning" :disabled="!form.id"
  24. size="small">
  25. 审 批<i class="el-icon-arrow-down el-icon--right"></i>
  26. </el-button>
  27. <el-dropdown-menu slot="dropdown">
  28. <el-dropdown-item @click.native="checkScheduleDialog = true, checkId = form.id">审核进度
  29. </el-dropdown-item>
  30. </el-dropdown-menu>
  31. </el-dropdown>
  32. </div>
  33. </div>
  34. <div style="margin-top: 50px">
  35. <trade-card title="基础信息">
  36. <avue-form :option="optionForm" v-model="form" ref="form">
  37. <tempalte slot="corpCnName">
  38. <dic-select v-model="form.corpCnName" placeholder="客户" key="id" label="cnName" res="records"
  39. url="/blade-los/bcorps/listByType" :filterable="true" :remote="true" dataName="cnName"
  40. @selectChange="dicChange('corpCnName', $event)" :disabled="editDisabled"></dic-select>
  41. </tempalte>
  42. <tempalte slot="polCnName">
  43. <dic-select v-model="form.polCnName" placeholder="起运港" key="id" label="cnName" res="records"
  44. url="/blade-los/bports/list" :filterable="true" :remote="true" dataName="cnName"
  45. @selectChange="dicChange('polCnName', $event)" :disabled="editDisabled"></dic-select>
  46. </tempalte>
  47. <tempalte slot="podCnName">
  48. <dic-select v-model="form.podCnName" placeholder="目的港" key="id" label="cnName" res="records"
  49. url="/blade-los/bports/list" :filterable="true" :remote="true" dataName="cnName"
  50. @selectChange="dicChange('podCnName', $event)" :disabled="editDisabled"></dic-select>
  51. </tempalte>
  52. <tempalte slot="srcCnName">
  53. <dic-select v-model="form.srcCnName" placeholder="业务员" key="id" label="realName" res="records"
  54. url="/blade-user/page" :filterable="true" :remote="true" dataName="realName"
  55. @selectChange="dicChange('srcCnName', $event)" :disabled="editDisabled"></dic-select>
  56. </tempalte>
  57. <tempalte slot="hshipperCnName">
  58. <dic-select v-model="form.hshipperCnName" placeholder="发货人" key="id" label="cnName" res="records"
  59. url="/blade-los/bcorps/listByType" :filterable="true" :remote="true" dataName="cnName"
  60. @selectChange="dicChange('hshipperCnName', $event)" :disabled="editDisabled"></dic-select>
  61. </tempalte>
  62. <tempalte slot="hconsigneeCnName">
  63. <dic-select v-model="form.hconsigneeCnName" placeholder="收货人" key="id" label="cnName" res="records"
  64. url="/blade-los/bcorps/listByType" :filterable="true" :remote="true" dataName="cnName"
  65. @selectChange="dicChange('hconsigneeCnName', $event)" :disabled="editDisabled"></dic-select>
  66. </tempalte>
  67. <tempalte slot="carrierCnName">
  68. <dic-select v-model="form.carrierCnName" placeholder="船公司" key="id" label="cnName" res="records"
  69. url="/blade-los/bcorps/listByType?corpTypeName=船公司" :filterable="true" :remote="true"
  70. dataName="cnName" @selectChange="dicChange('carrierCnName', $event)"
  71. :disabled="editDisabled"></dic-select>
  72. </tempalte>
  73. <template slot="hscode">
  74. <div style="display:flex;">
  75. <dic-select v-model="form.hscode" placeholder="品名" key="id" res="records" label="hsCode"
  76. url="/blade-los/bcommodity/list" :filterable="true" :remote="true" dataName="hsCode"
  77. @selectChange="dicChange('hscode', $event)" :disabled="editDisabled"></dic-select>
  78. <el-input style="margin-left: 10px;" v-model="form.goodsName" placeholder="请输入品名"
  79. :disabled="editDisabled"></el-input>
  80. </div>
  81. </template>
  82. </avue-form>
  83. </trade-card>
  84. <trade-card title="箱信息">
  85. <avue-crud :option="option" :data="form.preContainersList" id="out-table" ref="crud"
  86. @selection-change="selectionChange" @resetColumn="resetColumn('crud', 'option', 'optionBack', 388)"
  87. @saveColumn="saveColumn('crud', 'option', 'optionBack', 388)">
  88. <template slot="menu" slot-scope="{ row, index }">
  89. <el-button size="small" type="text" :disabled="editDisabled || row.whetherDispatchVehicles == 1"
  90. @click="rowCell('编辑', row, index)">编
  91. 辑</el-button>
  92. <el-button size="small" type="text" :disabled="editDisabled || row.whetherDispatchVehicles == 1"
  93. @click="rowCell('派车', row, index)">派
  94. 车</el-button>
  95. <el-button size="small" type="text" :disabled="editDisabled || row.whetherDispatchVehicles == 1"
  96. @click="rowCell('自提', row, index)">自
  97. 提</el-button>
  98. </template>
  99. </avue-crud>
  100. </trade-card>
  101. <trade-card title="派车">
  102. <avue-crud :option="option2" :data="form.dispatchVehiclesList" id="out-table" ref="crud2"
  103. @selection-change="selectionChange" @resetColumn="resetColumn('crud2', 'option2', 'optionBack2', 389)"
  104. @saveColumn="saveColumn('crud2', 'option2', 'optionBack2', 389)">
  105. <tempalte slot="fleetName" slot-scope="{ row, index }">
  106. <dic-select v-if="row.$cellEdit" v-model="row.fleetName" placeholder="承运车队" key="id" label="cnName"
  107. res="records" url="/blade-los/bcorps/listByType?corpTypeName=车队" :filterable="true"
  108. :remote="true" dataName="cnName" @selectChange="rowDicChange('fleetName', $event, row)"
  109. :disabled="editDisabled"></dic-select>
  110. <span v-else>{{ row.fleetName }}</span>
  111. </tempalte>
  112. <tempalte slot="pickupAddressName" slot-scope="{ row, index }">
  113. <dic-select v-if="row.$cellEdit" v-model="row.pickupAddressName" placeholder="提箱地点" key="id"
  114. label="cnName" res="records" url="/blade-los/blocations/list" :filterable="true" :remote="true"
  115. dataName="cnName" @selectChange="rowDicChange('pickupAddressName', $event, row)"
  116. :disabled="editDisabled"></dic-select>
  117. <span v-else>{{ row.pickupAddressName }}</span>
  118. </tempalte>
  119. <tempalte slot="deliveryAddressName" slot-scope="{ row, index }">
  120. <dic-select v-if="row.$cellEdit" v-model="row.deliveryAddressName" placeholder="提箱地点" key="id"
  121. label="cnName" res="records" url="/blade-los/blocations/list" :filterable="true" :remote="true"
  122. dataName="cnName" @selectChange="rowDicChange('deliveryAddressName', $event, row)"
  123. :disabled="editDisabled"></dic-select>
  124. <span v-else>{{ row.deliveryAddressName }}</span>
  125. </tempalte>
  126. <template slot="returnCyName" slot-scope="{ row }">
  127. <dic-select v-if="row.$cellEdit" v-model="row.returnCyName" placeholder="返空场站" key="id"
  128. label="cnName" res="records" url="/blade-los/bcorps/listByType?corpTypeName=场站"
  129. :filterable="true" :remote="true" dataName="cnName"
  130. @selectChange="rowDicChange('returnCyName', $event, row)"></dic-select>
  131. <span v-else>{{ row.returnCyName }}</span>
  132. </template>
  133. <template slot="menu" slot-scope="{ row, index }">
  134. <el-button size="small" type="text"
  135. :disabled="editDisabled || row.whetherDispatchVehicles == 1 || row.whetherWarehouseEntry == 1"
  136. @click="rowCell('编辑', row, index)">编
  137. 辑</el-button>
  138. <el-button size="small" type="text" :disabled="editDisabled || row.whetherDispatchVehicles == 1"
  139. @click="rowCell('确认派车', row, index)">确
  140. 认</el-button>
  141. <el-button size="small" type="text" :disabled="editDisabled || row.whetherWarehouseEntry == 1"
  142. @click="rowCell('生成入库', row, index)">入
  143. 库</el-button>
  144. <!-- <el-button size="small" type="text"
  145. :disabled="editDisabled || row.whetherDispatchVehicles == 1 || row.whetherWarehouseEntry == 1"
  146. @click="rowCell('派车删除', row, index)">删 除</el-button> -->
  147. </template>
  148. </avue-crud>
  149. </trade-card>
  150. <trade-card title="入库">
  151. <avue-crud :option="option3" :data="form.inStorageList" id="out-table" ref="crud3"
  152. @selection-change="selectionChange" @resetColumn="resetColumn('crud3', 'option3', 'optionBack3', 390)"
  153. @saveColumn="saveColumn('crud3', 'option3', 'optionBack3', 390)">
  154. <template slot="warehouseName" slot-scope="{ row }">
  155. <dic-select v-if="row.$cellEdit" v-model="row.warehouseName" placeholder="入库" key="id" label="cname"
  156. url="/blade-los/storage/list" res="records" :filterable="true" :remote="true" dataName="cname"
  157. @selectChange="rowDicChange('warehouseName', $event, row)"></dic-select>
  158. <span v-else>{{ row.warehouseName }}</span>
  159. </template>
  160. <template slot="menu" slot-scope="{ row, index }">
  161. <el-button size="small" type="text" :disabled="editDisabled || row.confirmDispatchVehicles == 1"
  162. @click="rowCell('编辑', row, index)">编
  163. 辑</el-button>
  164. <el-button size="small" type="text" :disabled="editDisabled || row.confirmDispatchVehicles == 1"
  165. @click="rowCell('入库确认', row, index)">入库确认</el-button>
  166. <el-button size="small" type="text"
  167. :disabled="editDisabled || (row.whetherInOutStorage == 1 && row.surplusQuantity == 0)"
  168. @click="rowCell('生成出库', row, index)">出
  169. 库</el-button>
  170. <!-- <el-button size="small" type="text"
  171. :disabled="editDisabled || row.confirmDispatchVehicles == 1 || row.whetherInOutStorage == 1"
  172. @click="rowCell('入库删除', row, index)">删 除</el-button> -->
  173. </template>
  174. </avue-crud>
  175. </trade-card>
  176. <trade-card title="出库">
  177. <avue-crud :option="option4" :data="form.outStorageList" id="out-table" ref="crud4"
  178. @selection-change="selectionChange" @resetColumn="resetColumn('crud4', 'option4', 'optionBack4', 391)"
  179. @saveColumn="saveColumn('crud4', 'option4', 'optionBack4', 391)">
  180. <template slot="menu" slot-scope="{ row, index }">
  181. <el-button size="small" type="text" :disabled="editDisabled || row.confirmDispatchVehicles == 1"
  182. @click="rowCell('编辑', row, index)">编
  183. 辑</el-button>
  184. <el-button size="small" type="text" :disabled="editDisabled || row.confirmDispatchVehicles == 1"
  185. @click="rowCell('出库确认', row, index)">出库确认</el-button>
  186. <el-button size="small" type="text" :disabled="editDisabled" @click="rowCell('开票', row, index)">开
  187. 票</el-button>
  188. <el-button size="small" type="text" :disabled="editDisabled || row.confirmDispatchVehicles == 1"
  189. @click="rowCell('出库删除', row, index)">删 除</el-button>
  190. </template>
  191. </avue-crud>
  192. </trade-card>
  193. <trade-card title="费用明细">
  194. <fee-info :form="form" :disabled="editDisabled" @getDetails="getDetails"></fee-info>
  195. </trade-card>
  196. <containerTitle title="上传附件"></containerTitle>
  197. <c-upload :data="form.filesCenterList" :enumerationValue="76"
  198. deleteUrl="/blade-purchase-sales/orderfiles/update" display :disabled="editDisabled"></c-upload>
  199. </div>
  200. <!--审核弹窗-->
  201. <el-dialog append-to-body title="审批进度" class="el-dialogDeep" :visible.sync="checkScheduleDialog" width="40%"
  202. :close-on-click-modal="false" :destroy-on-close="true" :close-on-press-escape="false" v-dialog-drag>
  203. <check-schedule :checkId="checkId" :batchNo="batchNo" @choceScheduleFun="choceScheduleFun"></check-schedule>
  204. </el-dialog>
  205. </div>
  206. </template>
  207. <script>
  208. import { submit, getDetail, detailTradeByMblno, remove, checkAgent, revokeCheckAgent, copyAgent, generateDispatchVehicles, confirmDispatchVehicles, generateWarehouseEntry, confirmWarehouseEntry, generateOutbound, dispatchvehiclesRemove, inoutstorageRemove, calculationWarehouseUnitPrice } from "@/api/tradeAgency/oceanFreightImport";
  209. import feeInfo from "@/components/tradeAgency/fee-oceanFreight";
  210. import dicSelect from "@/components/dicSelect/main";
  211. import checkSchedule from "@/components/checkH/checkSchedule.vue";
  212. import _ from "lodash";
  213. export default {
  214. name: "detailsPage",
  215. data() {
  216. return {
  217. checkId: '', // 审核需要的id
  218. batchNo: '',
  219. checkScheduleDialog: false, // 审核弹窗
  220. editButton: false,
  221. editDisabled: false,
  222. form: {
  223. billNoFormat: 'HYJK',
  224. businessTypeCode: 'HYJK',
  225. businessType: 'SI',
  226. status: 0,
  227. seaType: 'I',
  228. feeCenterListC: [],
  229. feeCenterListD: [],
  230. filesCenterList: [],
  231. inStorageList: [],//入库
  232. outStorageList: [],//出库
  233. dispatchVehiclesList: [],//派车
  234. preContainersList: []//箱信息
  235. },
  236. optionForm: {
  237. menuBtn: false,
  238. span: 8,
  239. disabled: false,
  240. column: [
  241. {
  242. label: '客户',
  243. prop: "corpCnName",
  244. disabled: false,
  245. rules: [{
  246. required: true,
  247. message: " ",
  248. trigger: "blur"
  249. }]
  250. },
  251. {
  252. label: "委托编号",
  253. prop: "billNo",
  254. disabled: true,
  255. },
  256. {
  257. label: "提单号",
  258. prop: "mblno",
  259. disabled: false,
  260. rules: [{
  261. required: true,
  262. message: " ",
  263. trigger: "blur"
  264. }]
  265. },
  266. {
  267. label: '合同号',
  268. prop: "bookingNo",
  269. disabled: false,
  270. rules: [{
  271. required: true,
  272. message: " ",
  273. trigger: "blur"
  274. }]
  275. },
  276. {
  277. label: '原产地',
  278. prop: "mnotifyCntyCode",
  279. type: 'select',
  280. filterable: true,
  281. remote: true,
  282. dicUrl: "/api/blade-los/bcountrys/list",
  283. props: {
  284. label: 'cnName',
  285. value: 'cnName',
  286. res: 'data.records'
  287. },
  288. disabled: false,
  289. },
  290. {
  291. label: '运输方式',
  292. prop: "mnotifyCntyName",
  293. type: 'select',
  294. filterable: true,
  295. dicUrl: "/api/blade-system/dict-biz/dictionary?code=mode_transport",
  296. props: {
  297. label: 'dictValue',
  298. value: 'dictValue',
  299. },
  300. disabled: false,
  301. rules: [{
  302. required: true,
  303. message: " ",
  304. trigger: "blur"
  305. }]
  306. },
  307. {
  308. label: "发货人",
  309. prop: "hshipperCnName",
  310. disabled: false,
  311. },
  312. {
  313. label: "收货人",
  314. prop: "hconsigneeCnName",
  315. disabled: false,
  316. },
  317. {
  318. label: "船名",
  319. prop: "vesselCnName",
  320. disabled: false,
  321. },
  322. {
  323. label: "航次",
  324. prop: "voyageNo",
  325. overHidden: true,
  326. },
  327. {
  328. label: '起运港',
  329. prop: "polCnName",
  330. disabled: false,
  331. },
  332. {
  333. label: '目的港',
  334. prop: "podCnName",
  335. disabled: false,
  336. },
  337. {
  338. label: "开船日期",
  339. prop: "etd",
  340. type: "date",
  341. format: "yyyy-MM-dd",
  342. valueFormat: "yyyy-MM-dd",
  343. },
  344. {
  345. label: "预计到港",
  346. prop: "bookingDate",
  347. type: "date",
  348. format: "yyyy-MM-dd",
  349. valueFormat: "yyyy-MM-dd",
  350. },
  351. {
  352. label: "实际到港",
  353. prop: "eta",
  354. type: "date",
  355. format: "yyyy-MM-dd",
  356. valueFormat: "yyyy-MM-dd",
  357. },
  358. {
  359. label: "船公司",
  360. prop: "carrierCnName",
  361. disabled: false,
  362. },
  363. {
  364. label: '装箱方式',
  365. prop: "loadType",
  366. type: 'select',
  367. dicData: [{
  368. label: '整箱',
  369. value: 'FCL'
  370. }, {
  371. label: '拼箱',
  372. value: 'LCL'
  373. }],
  374. disabled: false,
  375. },
  376. {
  377. label: "HSCODE",
  378. prop: "hscode",
  379. disabled: false,
  380. },
  381. {
  382. label: "件数",
  383. prop: "quantity",
  384. disabled: false,
  385. },
  386. {
  387. label: "包装",
  388. prop: "packing",
  389. disabled: false,
  390. },
  391. {
  392. label: "尺码",
  393. prop: "measurement",
  394. disabled: false,
  395. },
  396. {
  397. label: "重量",
  398. prop: "grossWeight",
  399. disabled: false,
  400. },
  401. {
  402. label: "净重",
  403. prop: "netWeight",
  404. disabled: false,
  405. },
  406. {
  407. label: "是否退押",
  408. prop: "billingStatus",
  409. type: 'select',
  410. dicData: [{
  411. label: '是',
  412. value: 1
  413. }, {
  414. label: '否',
  415. value: 0
  416. }],
  417. disabled: false,
  418. },
  419. {
  420. label: "放单方式",
  421. prop: "mconsigneeCntyCode",
  422. type: 'select',
  423. filterable: true,
  424. dicUrl: "/api/blade-system/dict-biz/dictionary?code=release_method",
  425. props: {
  426. label: 'dictValue',
  427. value: 'dictValue',
  428. },
  429. disabled: false,
  430. },
  431. {
  432. label: "免箱期",
  433. prop: "iqNo",
  434. disabled: false,
  435. },
  436. {
  437. label: '报关单号',
  438. prop: "mnotify2CntyName",
  439. width: "100",
  440. overHidden: true
  441. },
  442. {
  443. label: "报关日期",
  444. prop: "issueDate",
  445. type: "date",
  446. format: "yyyy-MM-dd",
  447. valueFormat: "yyyy-MM-dd",
  448. },
  449. {
  450. label: "放行日期",
  451. prop: "cyReturnTime",
  452. type: "date",
  453. format: "yyyy-MM-dd",
  454. valueFormat: "yyyy-MM-dd",
  455. },
  456. {
  457. label: "提箱码头",
  458. prop: "charData",
  459. type: 'select',
  460. filterable: true,
  461. dicUrl: "/api/blade-system/dict-biz/dictionary?code=container_terminal",
  462. props: {
  463. label: 'dictValue',
  464. value: 'dictValue',
  465. },
  466. disabled: false,
  467. },
  468. {
  469. label: '业务员',
  470. prop: "srcCnName",
  471. disabled: false,
  472. },
  473. {
  474. label: '备注',
  475. prop: "remarks",
  476. type: 'textarea',
  477. disabled: false,
  478. span: 6,
  479. minRows: 2,
  480. },
  481. ]
  482. },
  483. option: {},
  484. optionBack: {
  485. height: 'auto',
  486. calcHeight: 30,
  487. menuWidth: 120,
  488. tip: false,
  489. border: true,
  490. index: true,
  491. addBtn: false,
  492. viewBtn: false,
  493. editBtn: false,
  494. delBtn: false,
  495. refreshBtn: false,
  496. selection: true,
  497. align: 'center',
  498. column: [
  499. {
  500. label: "箱型",
  501. prop: "cntrTypeCode",
  502. width: "120",
  503. overHidden: true,
  504. },
  505. {
  506. label: "箱号",
  507. prop: "boxNo",
  508. width: "120",
  509. overHidden: true
  510. },
  511. {
  512. label: "品名",
  513. prop: "goodsName",
  514. width: "120",
  515. overHidden: true
  516. },
  517. {
  518. label: "件数",
  519. prop: "quantity",
  520. width: "120",
  521. overHidden: true
  522. },
  523. {
  524. label: "重量",
  525. prop: "grossWeight",
  526. width: "120",
  527. overHidden: true
  528. },
  529. {
  530. label: "单价",
  531. prop: "price",
  532. width: "120",
  533. overHidden: true
  534. },
  535. {
  536. label: "查验类型",
  537. prop: "inspectionType",
  538. cell: true,
  539. type: 'select',
  540. filterable: true,
  541. dicUrl: "/api/blade-system/dict-biz/dictionary?code=inspection_type",
  542. props: {
  543. label: 'dictValue',
  544. value: 'dictValue',
  545. },
  546. width: "120",
  547. overHidden: true
  548. },
  549. {
  550. label: "查验时间",
  551. prop: "inspectionDate",
  552. width: "120",
  553. cell: true,
  554. type: "date",
  555. format: "yyyy-MM-dd",
  556. valueFormat: "yyyy-MM-dd 00:00:00",
  557. overHidden: true
  558. },
  559. {
  560. label: "是否机检",
  561. prop: "whetherMachineInspection",
  562. cell: true,
  563. type: 'select',
  564. dicData: [{
  565. label: '是',
  566. value: 1
  567. }, {
  568. label: '否',
  569. value: 0
  570. }],
  571. width: "120",
  572. overHidden: true
  573. },
  574. {
  575. label: "是否取样",
  576. prop: "whetherSampling",
  577. cell: true,
  578. type: 'select',
  579. dicData: [{
  580. label: '是',
  581. value: 1
  582. }, {
  583. label: '否',
  584. value: 0
  585. }],
  586. width: "120",
  587. overHidden: true
  588. },
  589. {
  590. label: "是否入库",
  591. prop: "whetherWarehousing",
  592. cell: true,
  593. type: 'select',
  594. dicData: [{
  595. label: '是',
  596. value: 1
  597. }, {
  598. label: '否',
  599. value: 0
  600. }],
  601. width: "120",
  602. overHidden: true
  603. },
  604. {
  605. label: "是否返场",
  606. prop: "whetherReturnSite",
  607. cell: true,
  608. type: 'select',
  609. dicData: [{
  610. label: '是',
  611. value: 1
  612. }, {
  613. label: '否',
  614. value: 0
  615. }],
  616. width: "120",
  617. overHidden: true
  618. },
  619. {
  620. label: "备注",
  621. prop: "remarks",
  622. width: "120",
  623. cell: true,
  624. overHidden: true
  625. }
  626. ]
  627. },
  628. option2: {},
  629. optionBack2: {
  630. height: 'auto',
  631. calcHeight: 30,
  632. menuWidth: 120,
  633. tip: false,
  634. border: true,
  635. index: true,
  636. addBtn: false,
  637. viewBtn: false,
  638. editBtn: false,
  639. delBtn: false,
  640. refreshBtn: false,
  641. selection: true,
  642. align: 'center',
  643. column: [
  644. {
  645. label: "承运车队",
  646. prop: "fleetName",
  647. width: "120",
  648. overHidden: true,
  649. },
  650. {
  651. label: "车号",
  652. prop: "licenseNumber",
  653. cell: true,
  654. width: "120",
  655. overHidden: true
  656. },
  657. {
  658. label: "姓名",
  659. prop: "fullName",
  660. cell: true,
  661. width: "120",
  662. overHidden: true
  663. },
  664. {
  665. label: "联系方式",
  666. prop: "contactInformation",
  667. cell: true,
  668. width: "120",
  669. overHidden: true
  670. },
  671. {
  672. label: "是否入库",
  673. prop: "whetherWarehousing",
  674. type: 'select',
  675. dicData: [{
  676. label: '是',
  677. value: 1
  678. }, {
  679. label: '否',
  680. value: 0
  681. }],
  682. width: "120",
  683. overHidden: true
  684. },
  685. {
  686. label: "提箱时间",
  687. prop: "pickupDate",
  688. cell: true,
  689. type: "date",
  690. format: "yyyy-MM-dd",
  691. valueFormat: "yyyy-MM-dd 00:00:00",
  692. width: "120",
  693. overHidden: true
  694. },
  695. {
  696. label: "提箱地点",
  697. prop: "pickupAddressName",
  698. width: "120",
  699. overHidden: true
  700. },
  701. {
  702. label: "送货时间",
  703. prop: "deliveryDate",
  704. width: "120",
  705. cell: true,
  706. type: "date",
  707. format: "yyyy-MM-dd",
  708. valueFormat: "yyyy-MM-dd 00:00:00",
  709. overHidden: true
  710. },
  711. {
  712. label: "送货地点",
  713. prop: "deliveryAddressName",
  714. width: "120",
  715. overHidden: true
  716. },
  717. {
  718. label: "是否打冷",
  719. prop: "whetherChill",
  720. cell: true,
  721. type: 'select',
  722. dicData: [{
  723. label: '是',
  724. value: 1
  725. }, {
  726. label: '否',
  727. value: 0
  728. }],
  729. width: "120",
  730. overHidden: true
  731. },
  732. {
  733. label: "运费价格",
  734. prop: "freightPrice",
  735. cell: true,
  736. type: 'number',
  737. controls: false,
  738. width: "120",
  739. overHidden: true
  740. },
  741. {
  742. label: "返空时间",
  743. prop: "returnDate",
  744. cell: true,
  745. type: "date",
  746. format: "yyyy-MM-dd",
  747. valueFormat: "yyyy-MM-dd 00:00:00",
  748. width: "120",
  749. overHidden: true
  750. },
  751. {
  752. label: "返空场站",
  753. prop: "returnCyName",
  754. width: "120",
  755. overHidden: true
  756. },
  757. {
  758. label: "箱号",
  759. prop: "boxNo",
  760. width: "120",
  761. overHidden: true
  762. },
  763. {
  764. label: "备注",
  765. prop: "remarks",
  766. width: "120",
  767. cell: true,
  768. overHidden: true
  769. }
  770. ]
  771. },
  772. option3: {},
  773. optionBack3: {
  774. height: 'auto',
  775. calcHeight: 30,
  776. menuWidth: 140,
  777. tip: false,
  778. border: true,
  779. index: true,
  780. addBtn: false,
  781. viewBtn: false,
  782. editBtn: false,
  783. delBtn: false,
  784. refreshBtn: false,
  785. selection: true,
  786. align: 'center',
  787. column: [
  788. {
  789. label: "仓库",
  790. prop: "warehouseName",
  791. width: "120",
  792. overHidden: true,
  793. },
  794. {
  795. label: "品名",
  796. prop: "goodsName",
  797. width: "120",
  798. overHidden: true
  799. },
  800. {
  801. label: "箱号",
  802. prop: "boxNo",
  803. width: "120",
  804. overHidden: true
  805. },
  806. {
  807. label: "入库单位",
  808. prop: "storageUnit",
  809. width: "120",
  810. cell: true,
  811. type: 'select',
  812. filterable: true,
  813. remote: true,
  814. dicUrl: "/api/blade-los/bunits/list",
  815. props: {
  816. label: 'cnName',
  817. value: 'cnName',
  818. res: 'data.records'
  819. },
  820. overHidden: true
  821. },
  822. {
  823. label: "入库时间",
  824. prop: "storageDate",
  825. width: "120",
  826. cell: true,
  827. type: "date",
  828. format: "yyyy-MM-dd",
  829. valueFormat: "yyyy-MM-dd 00:00:00",
  830. overHidden: true
  831. },
  832. {
  833. label: "单价",
  834. prop: "price",
  835. width: "120",
  836. overHidden: true
  837. },
  838. {
  839. label: "件数",
  840. prop: "quantity",
  841. width: "120",
  842. overHidden: true
  843. },
  844. {
  845. label: "毛重",
  846. prop: "grossWeight",
  847. width: "120",
  848. overHidden: true
  849. },
  850. {
  851. label: "是否保税",
  852. prop: "whetherBonded",
  853. cell: true,
  854. width: "120",
  855. type: 'select',
  856. dicData: [{
  857. label: '是',
  858. value: 1
  859. }, {
  860. label: '否',
  861. value: 0
  862. }],
  863. overHidden: true
  864. },
  865. {
  866. label: "是否分拣",
  867. prop: "whetherSorting",
  868. width: "120",
  869. cell: true,
  870. type: 'select',
  871. dicData: [{
  872. label: '是',
  873. value: 1
  874. }, {
  875. label: '否',
  876. value: 0
  877. }],
  878. overHidden: true
  879. },
  880. {
  881. label: "仓储单价",
  882. prop: "warehouseUnitPrice",
  883. cell: true,
  884. type: 'number',
  885. controls: false,
  886. width: "120",
  887. overHidden: true
  888. },
  889. {
  890. label: "车号",
  891. prop: "licenseNumber",
  892. width: "120",
  893. overHidden: true
  894. },
  895. {
  896. label: "姓名",
  897. prop: "fullName",
  898. width: "120",
  899. overHidden: true
  900. },
  901. {
  902. label: "联系方式",
  903. prop: "tel",
  904. width: "120",
  905. overHidden: true
  906. },
  907. {
  908. label: "备注",
  909. prop: "remarks",
  910. width: "120",
  911. cell: true,
  912. overHidden: true
  913. }
  914. ]
  915. },
  916. option4: {},
  917. optionBack4: {
  918. height: 'auto',
  919. calcHeight: 30,
  920. menuWidth: 180,
  921. tip: false,
  922. border: true,
  923. index: true,
  924. addBtn: false,
  925. viewBtn: false,
  926. editBtn: false,
  927. delBtn: false,
  928. refreshBtn: false,
  929. selection: true,
  930. align: 'center',
  931. column: [
  932. {
  933. label: "品名",
  934. prop: "goodsName",
  935. width: "120",
  936. overHidden: true
  937. },
  938. {
  939. label: "箱号",
  940. prop: "boxNo",
  941. width: "120",
  942. overHidden: true
  943. },
  944. {
  945. label: "出库件数",
  946. prop: "outQuantity",
  947. width: "120",
  948. cell: true,
  949. type: 'number',
  950. controls: false,
  951. overHidden: true
  952. },
  953. {
  954. label: "出库重量",
  955. prop: "outWeight",
  956. width: "120",
  957. cell: true,
  958. type: 'number',
  959. controls: false,
  960. overHidden: true
  961. },
  962. {
  963. label: "件数",
  964. prop: "quantity",
  965. width: "120",
  966. overHidden: true
  967. },
  968. {
  969. label: "毛重",
  970. prop: "grossWeight",
  971. width: "120",
  972. overHidden: true
  973. },
  974. {
  975. label: "存储天数",
  976. prop: "storageDays",
  977. width: "120",
  978. overHidden: true
  979. },
  980. {
  981. label: "仓储费",
  982. prop: "storageFeesAmount",
  983. width: "120",
  984. overHidden: true
  985. },
  986. {
  987. label: "剩余件数",
  988. prop: "surplusQuantity",
  989. width: "120",
  990. overHidden: true
  991. },
  992. {
  993. label: "剩余重量",
  994. prop: "surplusWeight",
  995. width: "120",
  996. overHidden: true
  997. },
  998. {
  999. label: "剩余货值",
  1000. prop: "surplusGoodsAmount",
  1001. width: "120",
  1002. overHidden: true
  1003. },
  1004. {
  1005. label: "备注",
  1006. prop: "remarks",
  1007. width: "120",
  1008. cell: true,
  1009. overHidden: true
  1010. }
  1011. ]
  1012. },
  1013. }
  1014. },
  1015. components: {
  1016. dicSelect,
  1017. feeInfo,
  1018. checkSchedule
  1019. },
  1020. props: {
  1021. detailData: Object
  1022. },
  1023. async created() {
  1024. this.option = await this.getColumnData(this.getColumnName(388), this.optionBack);
  1025. this.option2 = await this.getColumnData(this.getColumnName(389), this.optionBack2);
  1026. this.option3 = await this.getColumnData(this.getColumnName(390), this.optionBack3);
  1027. this.option4 = await this.getColumnData(this.getColumnName(391), this.optionBack4);
  1028. if (this.detailData.id) {
  1029. this.editButton = true
  1030. this.editDisabled = true
  1031. this.optionForm.disabled = true
  1032. this.getDetails(this.detailData.id)
  1033. }
  1034. if (this.$route.query.billNo) {
  1035. this.getDetaiByMblno(this.$route.query.billNo)
  1036. }
  1037. if (this.detailData.copyId) {
  1038. this.getCopydate(this.detailData.copyId)
  1039. }
  1040. },
  1041. methods: {
  1042. getDetaiByMblno(billNo) {
  1043. this.editButton = true
  1044. this.editDisabled = true
  1045. this.optionForm.disabled = true
  1046. const loading = this.$loading({
  1047. lock: true,
  1048. text: '加载中',
  1049. spinner: 'el-icon-loading',
  1050. background: 'rgba(255,255,255,0.7)'
  1051. });
  1052. detailTradeByMblno({ mblno: this.$route.query.billNo }).then(res => {
  1053. this.form = res.data.data
  1054. this.$refs.crud.dicInit();
  1055. this.$refs.crud3.dicInit();
  1056. }).finally(() => {
  1057. loading.close()
  1058. })
  1059. },
  1060. dicChange(name, row) {
  1061. if (name == 'corpCnName') {
  1062. if (row) {
  1063. this.form.corpId = row.id
  1064. } else {
  1065. this.form.corpId = null
  1066. }
  1067. }
  1068. if (name == 'polCnName') {
  1069. console.log(row)
  1070. if (row) {
  1071. this.form.polId = row.id
  1072. this.form.polCode = row.code
  1073. this.form.polEnName = row.enName
  1074. } else {
  1075. this.form.polId = null
  1076. this.form.polCode = null
  1077. this.form.polEnName = null
  1078. }
  1079. }
  1080. if (name == 'podCnName') {
  1081. if (row) {
  1082. this.form.polId = row.id
  1083. this.form.polCode = row.code
  1084. this.form.polEnName = row.enName
  1085. } else {
  1086. this.form.polId = null
  1087. this.form.polCode = null
  1088. this.form.polEnName = null
  1089. }
  1090. }
  1091. if (name == 'srcCnName') {
  1092. if (row) {
  1093. this.form.srcId = row.id
  1094. } else {
  1095. this.form.salesmansrcId = null
  1096. }
  1097. }
  1098. if (name == 'hshipperCname') {
  1099. if (row) {
  1100. this.form.hshipperId = row.id
  1101. } else {
  1102. this.form.hshipperId = null
  1103. }
  1104. }
  1105. if (name == 'hconsigneeCnName') {
  1106. if (row) {
  1107. this.form.hconsigneeId = row.id
  1108. } else {
  1109. this.form.hconsigneeId = null
  1110. }
  1111. }
  1112. if (name == 'carrierCnName') {
  1113. if (row) {
  1114. this.form.carrierId = row.id
  1115. } else {
  1116. this.form.carrierId = null
  1117. }
  1118. }
  1119. if (name == 'hscode') {
  1120. if (row) {
  1121. this.form.goodsName = row.cnName
  1122. } else {
  1123. this.form.goodsName = null
  1124. }
  1125. }
  1126. },
  1127. rowDicChange(name, row, el) {
  1128. if (name == 'fleetName') {
  1129. if (row) {
  1130. el.fullName = row.mgrName
  1131. el.contactInformation = row.tel
  1132. } else {
  1133. el.fullName = null
  1134. el.contactInformation = null
  1135. }
  1136. }
  1137. if (name == 'pickupAddressName') {
  1138. if (row) {
  1139. el.pickupAddressId = row.id
  1140. } else {
  1141. el.pickupAddressId = null
  1142. }
  1143. }
  1144. if (name == 'deliveryAddressName') {
  1145. if (row) {
  1146. el.deliveryAddressId = row.id
  1147. } else {
  1148. el.deliveryAddressId = null
  1149. }
  1150. }
  1151. if (name == 'warehouseName') {
  1152. if (row) {
  1153. el.warehouseId = row.id
  1154. } else {
  1155. el.warehouseId = null
  1156. }
  1157. }
  1158. },
  1159. rowCell(name, row, index) {
  1160. if (name == '编辑') {
  1161. console.log(2232323)
  1162. if (row.$cellEdit == true) {
  1163. this.$set(row, "$cellEdit", false);
  1164. } else {
  1165. this.$set(row, "$cellEdit", true);
  1166. }
  1167. }
  1168. if (name == '派车') {
  1169. if (row.whetherMachineInspection == 1) {
  1170. if (!row.inspectionType) {
  1171. return this.$message.error("查验类型不能为空");
  1172. }
  1173. if (!row.inspectionDate) {
  1174. return this.$message.error("查验时间不能为空");
  1175. }
  1176. }
  1177. let obj = {
  1178. ...row,
  1179. type: 1,
  1180. }
  1181. const loading = this.$loading({
  1182. lock: true,
  1183. text: '加载中',
  1184. spinner: 'el-icon-loading',
  1185. background: 'rgba(255,255,255,0.7)'
  1186. });
  1187. generateDispatchVehicles(obj).then(res => {
  1188. this.$message.success("派车成功");
  1189. this.getDetails(this.form.id)
  1190. }).finally(() => {
  1191. loading.close()
  1192. })
  1193. }
  1194. if (name == '自提') {
  1195. let obj = {
  1196. ...row,
  1197. type: 2,
  1198. }
  1199. const loading = this.$loading({
  1200. lock: true,
  1201. text: '加载中',
  1202. spinner: 'el-icon-loading',
  1203. background: 'rgba(255,255,255,0.7)'
  1204. });
  1205. generateDispatchVehicles(obj).then(res => {
  1206. this.$message.success("自提成功");
  1207. this.getDetails(this.form.id)
  1208. }).finally(() => {
  1209. loading.close()
  1210. })
  1211. }
  1212. // if (name == '派车删除') {
  1213. // const loading = this.$loading({
  1214. // lock: true,
  1215. // text: '加载中',
  1216. // spinner: 'el-icon-loading',
  1217. // background: 'rgba(255,255,255,0.7)'
  1218. // });
  1219. // dispatchvehiclesRemove({ ids: row.id }).then(res => {
  1220. // this.$message.success("删除成功");
  1221. // this.form.dispatchVehiclesList.splice(index, 1);
  1222. // }).finally(() => {
  1223. // loading.close()
  1224. // })
  1225. // }
  1226. if (name == '确认派车') {
  1227. if (!row.fleetName) {
  1228. return this.$message.error("承运车队不能为空");
  1229. }
  1230. if (!row.licenseNumber) {
  1231. return this.$message.error("车号不能为空");
  1232. }
  1233. if (!row.fullName) {
  1234. return this.$message.error("姓名不能为空");
  1235. }
  1236. if (!row.contactInformation) {
  1237. return this.$message.error("联系方式不能为空");
  1238. }
  1239. if (!row.deliveryDate) {
  1240. return this.$message.error("送货时间不能为空");
  1241. }
  1242. if (!row.deliveryAddressName) {
  1243. return this.$message.error("送货地点不能为空");
  1244. }
  1245. const loading = this.$loading({
  1246. lock: true,
  1247. text: '加载中',
  1248. spinner: 'el-icon-loading',
  1249. background: 'rgba(255,255,255,0.7)'
  1250. });
  1251. confirmDispatchVehicles(row).then(res => {
  1252. this.$message.success("派车成功");
  1253. this.getDetails(this.form.id)
  1254. }).finally(() => {
  1255. loading.close()
  1256. })
  1257. }
  1258. if (name == '生成入库') {
  1259. if (!row.fleetName) {
  1260. return this.$message.error("承运车队不能为空");
  1261. }
  1262. if (!row.licenseNumber) {
  1263. return this.$message.error("车号不能为空");
  1264. }
  1265. if (!row.fullName) {
  1266. return this.$message.error("姓名不能为空");
  1267. }
  1268. if (!row.contactInformation) {
  1269. return this.$message.error("联系方式不能为空");
  1270. }
  1271. if (!row.deliveryDate) {
  1272. return this.$message.error("送货时间不能为空");
  1273. }
  1274. if (!row.deliveryAddressName) {
  1275. return this.$message.error("送货地点不能为空");
  1276. }
  1277. const loading = this.$loading({
  1278. lock: true,
  1279. text: '加载中',
  1280. spinner: 'el-icon-loading',
  1281. background: 'rgba(255,255,255,0.7)'
  1282. });
  1283. generateWarehouseEntry(row).then(res => {
  1284. this.$message.success("生成入库成功");
  1285. this.getDetails(this.form.id)
  1286. }).finally(() => {
  1287. loading.close()
  1288. })
  1289. }
  1290. if (name == '入库确认') {
  1291. if (!this.form.eta) {
  1292. return this.$message.error("实际到港不能为空");
  1293. }
  1294. if (!row.warehouseName) {
  1295. return this.$message.error("仓库不能为空");
  1296. }
  1297. calculationWarehouseUnitPrice(row).then(res => {
  1298. this.$confirm(res.data.data, '提示', {
  1299. confirmButtonText: '确定',
  1300. cancelButtonText: '取消',
  1301. dangerouslyUseHTMLString: true,
  1302. }).then(() => {
  1303. const loading = this.$loading({
  1304. lock: true,
  1305. text: '加载中',
  1306. spinner: 'el-icon-loading',
  1307. background: 'rgba(255,255,255,0.7)'
  1308. });
  1309. confirmWarehouseEntry(row).then(res => {
  1310. this.$message.success("入库成功");
  1311. this.getDetails(this.form.id)
  1312. }).finally(() => {
  1313. loading.close()
  1314. })
  1315. })
  1316. })
  1317. }
  1318. if (name == '生成出库') {
  1319. if (!row.warehouseName) {
  1320. return this.$message.error("仓库不能为空");
  1321. }
  1322. if (!row.warehouseUnitPrice) {
  1323. return this.$message.error("仓储单价不能为空");
  1324. }
  1325. const loading = this.$loading({
  1326. lock: true,
  1327. text: '加载中',
  1328. spinner: 'el-icon-loading',
  1329. background: 'rgba(255,255,255,0.7)'
  1330. });
  1331. generateOutbound(row).then(res => {
  1332. this.$message.success("生成出库成功");
  1333. this.getDetails(this.form.id)
  1334. }).finally(() => {
  1335. loading.close()
  1336. })
  1337. }
  1338. if (name == '出库确认') {
  1339. if (!row.outQuantity) {
  1340. return this.$message.error("出库件数不能为空");
  1341. }
  1342. if (!row.outWeight) {
  1343. return this.$message.error("出库重量不能为空");
  1344. }
  1345. const loading = this.$loading({
  1346. lock: true,
  1347. text: '加载中',
  1348. spinner: 'el-icon-loading',
  1349. background: 'rgba(255,255,255,0.7)'
  1350. });
  1351. confirmWarehouseEntry(row).then(res => {
  1352. this.$message.success("出库成功");
  1353. this.getDetails(this.form.id)
  1354. }).finally(() => {
  1355. loading.close()
  1356. })
  1357. }
  1358. if (name == '开票') {
  1359. this.$message.error("待开发");
  1360. }
  1361. if (name == '出库删除') {
  1362. const loading = this.$loading({
  1363. lock: true,
  1364. text: '加载中',
  1365. spinner: 'el-icon-loading',
  1366. background: 'rgba(255,255,255,0.7)'
  1367. });
  1368. inoutstorageRemove({ ids: row.id }).then(res => {
  1369. this.$message.success("删除成功");
  1370. this.form.outStorageList.splice(index, 1);
  1371. }).finally(() => {
  1372. loading.close()
  1373. })
  1374. }
  1375. },
  1376. getDetails(id) {
  1377. const loading = this.$loading({
  1378. lock: true,
  1379. text: '加载中',
  1380. spinner: 'el-icon-loading',
  1381. background: 'rgba(255,255,255,0.7)'
  1382. });
  1383. getDetail({ id: id }).then(res => {
  1384. this.form = res.data.data
  1385. this.$refs.crud.dicInit();
  1386. this.$refs.crud3.dicInit();
  1387. }).finally(() => {
  1388. loading.close()
  1389. })
  1390. },
  1391. getCopydate(id) {
  1392. const loading = this.$loading({
  1393. lock: true,
  1394. text: '加载中',
  1395. spinner: 'el-icon-loading',
  1396. background: 'rgba(255,255,255,0.7)'
  1397. });
  1398. copyAgent({ id: id }).then(res => {
  1399. this.form = res.data.data
  1400. if (res.data.data.abroadConsignorId) {
  1401. this.$refs.abankCode.IdGetDicData({ id: res.data.data.abroadConsignorId })
  1402. }
  1403. if (res.data.data.domesticConsigneeId) {
  1404. this.$refs.dbankCode.IdGetDicData({ id: res.data.data.domesticConsigneeId })
  1405. }
  1406. }).finally(() => {
  1407. loading.close()
  1408. })
  1409. },
  1410. inEdit() {
  1411. this.editButton = false
  1412. if (this.form.status == 0 || this.form.status == 4) {
  1413. this.editDisabled = false
  1414. this.optionForm.disabled = false
  1415. }
  1416. },
  1417. allClick(name) {
  1418. },
  1419. submit() {
  1420. this.$refs["form"].validate((valid, done) => {
  1421. done();
  1422. if (valid) {
  1423. const loading = this.$loading({
  1424. lock: true,
  1425. text: '加载中',
  1426. spinner: 'el-icon-loading',
  1427. background: 'rgba(255,255,255,0.7)'
  1428. });
  1429. submit(this.form).then(res => {
  1430. this.$message.success("保存成功");
  1431. this.getDetails(res.data.data.id)
  1432. }).finally(() => {
  1433. loading.close();
  1434. })
  1435. } else {
  1436. return false;
  1437. }
  1438. });
  1439. },
  1440. application() {
  1441. if (this.form.feeCenterListD.length == 0 && this.form.feeCenterListC.length == 0) return this.$message.error("费用不能为空");
  1442. this.$confirm("确定请核数据?", {
  1443. confirmButtonText: "确定",
  1444. cancelButtonText: "取消",
  1445. type: "warning"
  1446. }).then(() => {
  1447. let obj = {}
  1448. obj = {
  1449. id: this.form.id,
  1450. url: '/tradeAgency/oceanFreightImport/index',
  1451. pageStatus: '',
  1452. pageLabel: '海运进口(T)',
  1453. }
  1454. const loading = this.$loading({
  1455. lock: true,
  1456. text: '加载中',
  1457. spinner: 'el-icon-loading',
  1458. background: 'rgba(255,255,255,0.7)'
  1459. });
  1460. checkAgent(obj).then(res => {
  1461. this.$message.success("请核成功");
  1462. this.editDisabled = true
  1463. this.optionForm.disabled = true
  1464. this.getDetails(res.data.data.id)
  1465. }).finally(() => {
  1466. loading.close();
  1467. })
  1468. });
  1469. },
  1470. revokeApplication() {
  1471. this.$confirm("确定撤销请核?", {
  1472. confirmButtonText: "确定",
  1473. cancelButtonText: "取消",
  1474. type: "warning"
  1475. }).then(() => {
  1476. let obj = {}
  1477. obj = {
  1478. id: this.form.id,
  1479. }
  1480. const loading = this.$loading({
  1481. lock: true,
  1482. text: '加载中',
  1483. spinner: 'el-icon-loading',
  1484. background: 'rgba(255,255,255,0.7)'
  1485. });
  1486. revokeCheckAgent(obj).then(res => {
  1487. this.$message.success("撤销请核成功");
  1488. this.getDetails(res.data.data.id)
  1489. this.editDisabled = false
  1490. this.optionForm.disabled = false
  1491. }).finally(() => {
  1492. loading.close();
  1493. })
  1494. });
  1495. },
  1496. //请核关闭
  1497. choceScheduleFun() {
  1498. this.checkScheduleDialog = false
  1499. },
  1500. //自定义列保存
  1501. async saveColumn(ref, option, optionBack, code) {
  1502. const inSave = await this.saveColumnData(this.getColumnName(code), this[option]);
  1503. if (inSave) {
  1504. this.$message.success("保存成功");
  1505. //关闭窗口
  1506. this.$refs[ref].$refs.dialogColumn.columnBox = false;
  1507. }
  1508. },
  1509. //自定义列重置
  1510. async resetColumn(ref, option, optionBack, code) {
  1511. this[option] = this[optionBack];
  1512. const inSave = await this.delColumnData(this.getColumnName(code), this[optionBack]);
  1513. if (inSave) {
  1514. this.$message.success("重置成功");
  1515. this.$refs[ref].$refs.dialogColumn.columnBox = false;
  1516. }
  1517. },
  1518. goBack(type) {
  1519. this.$emit("goBack", type);
  1520. this.$emit('updateKey')
  1521. },
  1522. }
  1523. }
  1524. </script>
  1525. <style lang="scss" scoped>
  1526. ::v-deep .el-form-item {
  1527. margin-bottom: 8px !important;
  1528. }
  1529. ::v-deep .el-table .cell {
  1530. padding: 0 2px !important;
  1531. .el-form-item {
  1532. margin-bottom: 0px !important;
  1533. }
  1534. }
  1535. ::v-deep .avue-crud .el-table .el-form-item__label {
  1536. left: -1px;
  1537. }
  1538. ::v-deep#out-table .back-one {
  1539. background: #ecf5ff !important;
  1540. }
  1541. ::v-deep#out-table .back-two {
  1542. background: #ecf5ff !important;
  1543. }
  1544. </style>