detailsPage.vue 64 KB

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