finstlbillsDetails.vue 51 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971
  1. <template>
  2. <div class="borderless" v-loading="pageLoading">
  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="backToList">返回列表
  7. </el-button>
  8. </div>
  9. <div class="add-customer-btn">
  10. <el-button size="small" type="success" style="margin-right: 8px"
  11. :loading="saveLoading" @click="editHandle">提取利润及放单
  12. </el-button>
  13. <el-button size="small" type="warning" plain style="margin-right: 8px"
  14. :loading="saveLoading" @click="editHandle">撤销确认
  15. </el-button>
  16. <el-button size="small" type="primary" style="margin-right: 8px" v-if="editSave"
  17. :loading="saveLoading" @click="editHandle">编 辑
  18. </el-button>
  19. <el-button size="small" type="primary" style="margin-right: 8px" v-else
  20. :loading="saveLoading" @click="editCustomer">保 存
  21. </el-button>
  22. </div>
  23. </div>
  24. <div style="margin: 55px 5px 0px 5px;'">
  25. <el-card class="box-card">
  26. <el-form :model="form" ref="form" label-width="90px" class="demo-ruleForm">
  27. <el-row>
  28. <el-row>
  29. <el-col :span="5">
  30. <el-form-item label="对账单号" prop="checkNo">
  31. <el-input style="width: 100%;" v-model="form.billNo"
  32. size="small" autocomplete="off"
  33. :disabled="true"
  34. clearable placeholder="请输入对账单号" >
  35. </el-input>
  36. </el-form-item>
  37. </el-col>
  38. <el-col :span="5">
  39. <el-form-item label="对账日期" prop="billDate">
  40. <el-date-picker v-model="form.billDate" clearable
  41. style="width: 100%;"
  42. type="date" size="small"
  43. :disabled="editSave"
  44. value-format="yyyy-MM-dd HH:mm"
  45. placeholder="选择对账日期">
  46. </el-date-picker>
  47. </el-form-item>
  48. </el-col>
  49. <el-col :span="5">
  50. <el-form-item label="限定金额" prop="billDate">
  51. <el-input style="width: 100%;" v-model="form.limitedAmount"
  52. size="small" autocomplete="off"
  53. :disabled="editSave"
  54. clearable placeholder="请输入对账单号" >
  55. </el-input>
  56. </el-form-item>
  57. </el-col>
  58. <el-col :span="5">
  59. <el-form-item label="备注" prop="remarks" >
  60. <el-input style="width: 100%;" v-model="form.remarks"
  61. size="small" autocomplete="off"
  62. :disabled="editSave"
  63. clearable placeholder="请输入备注" >
  64. </el-input>
  65. </el-form-item>
  66. </el-col>
  67. <el-col :span="4">
  68. <el-form-item label="审核" prop="isApproved" label-width="50px">
  69. <search-query :datalist="allyesnoData"
  70. :selectValue="form.isApproved"
  71. :clearable="true"
  72. :disabled="editSave"
  73. :buttonIf="false"
  74. :forParameter="{ key:'dictKey', label:'dictValue', value:'dictKey'}"
  75. @corpChange="corpChange($event,'isApproved')"
  76. @corpFocus="allyesnoWorkDictsfun" >
  77. </search-query>
  78. </el-form-item>
  79. </el-col>
  80. <el-col :span="10">
  81. <el-form-item label="对账单位" prop="corpCnName">
  82. <el-col :span="10">
  83. <search-query :datalist="corpData"
  84. :selectValue="form.corpCnName"
  85. :clearable="true"
  86. :disabled="editSave"
  87. :filterable="true"
  88. :remote="true"
  89. :buttonIf="false"
  90. :forParameter="{ key:'id', label:'cnName', value:'cnName'}"
  91. @corpChange="corpChange($event,'corpCnName')"
  92. @remoteMethod="corpBcorpsListfun"
  93. @corpFocus="corpBcorpsListfun" >
  94. </search-query>
  95. </el-col>
  96. <el-col :span="10">
  97. <span style="padding-left: 20px"></span>
  98. <el-input style="width: 100%;" v-model="form.corpEnName"
  99. size="small" autocomplete="off"
  100. :disabled="editSave"
  101. clearable placeholder="请输入" >
  102. </el-input>
  103. </el-col>
  104. <el-col :span="4">
  105. <el-checkbox style="width: 100%;text-align: right" size="medium"
  106. :true-label="1" :false-label="0"
  107. :disabled="editSave"
  108. v-model="form.corpIsSigned">已签约
  109. </el-checkbox>
  110. </el-col>
  111. </el-form-item>
  112. </el-col>
  113. <el-col :span="5">
  114. <el-form-item label="协议签订人" prop="corpAccRemarks">
  115. <el-input style="width: 100%;" v-model="form.corpAccRemarks"
  116. size="small" autocomplete="off"
  117. :disabled="editSave"
  118. clearable placeholder="请输入协议签订人" >
  119. </el-input>
  120. </el-form-item>
  121. </el-col>
  122. <el-col :span="5">
  123. <el-form-item label="账期备注" prop="corpAccRemarks">
  124. <el-input style="width: 100%;" v-model="form.corpAccRemarks"
  125. size="small" autocomplete="off"
  126. :disabled="editSave"
  127. clearable placeholder="请输入账期备注" >
  128. </el-input>
  129. </el-form-item>
  130. </el-col>
  131. <el-col :span="4">
  132. <el-form-item label="签收" prop="isSignfor" label-width="50px">
  133. <search-query :datalist="allyesnoData"
  134. :selectValue="form.isSignfor"
  135. :clearable="true"
  136. :disabled="editSave"
  137. :buttonIf="false"
  138. :forParameter="{ key:'dictKey', label:'dictValue', value:'dictKey'}"
  139. @corpChange="corpChange($event,'isSignfor')"
  140. @corpFocus="allyesnoWorkDictsfun" >
  141. </search-query>
  142. </el-form-item>
  143. </el-col>
  144. </el-row>
  145. <expand :showBtn="true" :showSpan="true">
  146. <el-row>
  147. <el-col :span="5">
  148. <el-form-item label="收 / 付" prop="dc">
  149. <search-query :datalist="dcData"
  150. :selectValue="form.dc"
  151. :clearable="true"
  152. :disabled="editSave"
  153. :buttonIf="false"
  154. @corpChange="corpChange($event,'dc')">
  155. </search-query>
  156. </el-form-item>
  157. </el-col>
  158. <el-col :span="5">
  159. <el-form-item label="币别" prop="curCode">
  160. <search-query :datalist="curCodeData"
  161. :selectValue="form.curCode"
  162. :clearable="true"
  163. :disabled="editSave"
  164. :buttonIf="false"
  165. :filterable="true"
  166. :remote="true"
  167. :forParameter="{ key:'id', label:'code', value:'code'}"
  168. @corpChange="corpChange($event,'curCode')"
  169. @remoteMethod="getRateListfun"
  170. @corpFocus="getRateListfun" >
  171. </search-query>
  172. </el-form-item>
  173. </el-col>
  174. <el-col :span="10">
  175. <el-form-item label="业务来源" prop="srcType">
  176. <el-col :span="10">
  177. <search-query :datalist="srcTypeData"
  178. :selectValue="form.srcType"
  179. :clearable="true"
  180. :disabled="editSave"
  181. :buttonIf="false"
  182. @corpChange="corpChange($event,'srcType')">
  183. </search-query>
  184. </el-col>
  185. <el-col :span="13" :offset="1">
  186. <search-query :datalist="srcData"
  187. :selectValue="form.srcCnName"
  188. :clearable="true"
  189. :disabled="editSave"
  190. :buttonIf="false"
  191. :filterable="true"
  192. :remote="true"
  193. :forParameter="srcforParameter"
  194. @corpChange="corpChange($event,'srcCnName')"
  195. @remoteMethod="salesuserGetListfun">
  196. </search-query>
  197. </el-col>
  198. </el-form-item>
  199. </el-col>
  200. <el-col :span="4">
  201. <el-form-item label="销账" prop="isCleared" label-width="50px">
  202. <search-query :datalist="allyesnoData"
  203. :selectValue="form.isCleared"
  204. :clearable="true"
  205. :disabled="editSave"
  206. :buttonIf="false"
  207. :forParameter="{ key:'dictKey', label:'dictValue', value:'dictKey'}"
  208. @corpChange="corpChange($event,'isCleared')"
  209. @corpFocus="allyesnoWorkDictsfun" >
  210. </search-query>
  211. </el-form-item>
  212. </el-col>
  213. <el-col :span="5">
  214. <el-form-item label="JOB NO" prop="businessNo">
  215. <el-input style="width: 100%;" v-model="form.businessNo"
  216. size="small" autocomplete="off"
  217. :disabled="editSave"
  218. clearable placeholder="请输入JOB NO" >
  219. </el-input>
  220. </el-form-item>
  221. </el-col>
  222. <el-col :span="5">
  223. <el-form-item label="ACCT NO" prop="accountNo">
  224. <el-input style="width: 100%;" v-model="form.accountNo"
  225. size="small" autocomplete="off"
  226. :disabled="editSave"
  227. clearable placeholder="请输入ACCT NO" >
  228. </el-input>
  229. </el-form-item>
  230. </el-col>
  231. <el-col :span="5">
  232. <el-form-item label="MBL NO" prop="mblno">
  233. <el-input style="width: 100%;" v-model="form.mblno"
  234. size="small" autocomplete="off"
  235. :disabled="editSave"
  236. clearable placeholder="请输入MBL NO" >
  237. </el-input>
  238. </el-form-item>
  239. </el-col>
  240. <el-col :span="5">
  241. <el-form-item label="HBL NO" prop="hblno">
  242. <el-input style="width: 100%;" v-model="form.hblno"
  243. size="small" autocomplete="off"
  244. :disabled="editSave"
  245. clearable placeholder="请输入HBL NO" >
  246. </el-input>
  247. </el-form-item>
  248. </el-col>
  249. <el-col :span="4">
  250. <el-form-item label="对账" prop="isChecked" label-width="50px">
  251. <search-query :datalist="allyesnoData"
  252. :selectValue="form.isChecked"
  253. :clearable="true"
  254. :disabled="editSave"
  255. :buttonIf="false"
  256. :forParameter="{ key:'dictKey', label:'dictValue', value:'dictKey'}"
  257. @corpChange="corpChange($event,'isChecked')"
  258. @corpFocus="allyesnoWorkDictsfun" >
  259. </search-query>
  260. </el-form-item>
  261. </el-col>
  262. <el-col :span="5">
  263. <el-form-item label="财务日期" prop="etd">
  264. <el-date-picker
  265. v-model="form.accountDate"
  266. type="datetimerange"
  267. range-separator="至"
  268. start-placeholder="开始日期"
  269. end-placeholder="结束日期"
  270. style="width: 100%;"
  271. size="small"
  272. :disabled="editSave"
  273. format="yyyy-MM-dd"
  274. value-format="yyyy-MM-dd"
  275. placeholder="选择财务日期">
  276. </el-date-picker>
  277. </el-form-item>
  278. </el-col>
  279. <el-col :span="5">
  280. <el-form-item label="审核期间" prop="etd">
  281. <el-date-picker
  282. v-model="form.approvedDate"
  283. type="datetimerange"
  284. range-separator="至"
  285. start-placeholder="开始日期"
  286. end-placeholder="结束日期"
  287. style="width: 100%;"
  288. size="small"
  289. :disabled="editSave"
  290. format="yyyy-MM-dd"
  291. value-format="yyyy-MM-dd"
  292. placeholder="选择对账日期">
  293. </el-date-picker>
  294. </el-form-item>
  295. </el-col>
  296. <el-col :span="5">
  297. <el-form-item label="查询金额" prop="queryAmount">
  298. <el-input style="width: 100%;" v-model="form.queryAmount"
  299. size="small" autocomplete="off"
  300. :disabled="editSave"
  301. clearable placeholder="请输入查询金额" >
  302. </el-input>
  303. </el-form-item>
  304. </el-col>
  305. <el-col :span="5">
  306. <el-form-item label="业务类型" prop="businessType" >
  307. <search-query :datalist="businessTypeData"
  308. :selectValue="form.businessType"
  309. :clearable="true"
  310. :disabled="editSave"
  311. :buttonIf="false"
  312. @corpChange="corpChange($event,'businessType')">
  313. </search-query>
  314. </el-form-item>
  315. </el-col>
  316. <el-col :span="4">
  317. <el-form-item label="发票" prop="isChecked" label-width="50px">
  318. <search-query :datalist="isInvoiceData"
  319. :selectValue="form.isInvoice"
  320. :clearable="true"
  321. :disabled="editSave"
  322. :buttonIf="false"
  323. :forParameter="{ key:'dictKey', label:'dictValue', value:'dictKey'}"
  324. @corpChange="corpChange($event,'isInvoice')"
  325. @corpFocus="invoiceWorkDictsfun" >
  326. </search-query>
  327. </el-form-item>
  328. </el-col>
  329. <el-col :span="5">
  330. <el-form-item label="船 名" prop="vesselCnName" >
  331. <el-input style="width: 100%;" v-model="form.vesselCnName"
  332. size="small" autocomplete="off"
  333. :disabled="editSave"
  334. clearable placeholder="请选择船名" ></el-input>
  335. </el-form-item>
  336. </el-col>
  337. <el-col :span="5">
  338. <el-form-item label="航 次" prop="voyageNo" >
  339. <el-input style="width: 100%;" v-model="form.voyageNo"
  340. size="small" autocomplete="off"
  341. :disabled="editSave"
  342. clearable placeholder="请选择航次" ></el-input>
  343. </el-form-item>
  344. </el-col>
  345. <el-col :span="5">
  346. <el-form-item label="三检单号" prop="threeInspectionsNo" >
  347. <el-input style="width: 100%;" v-model="form.threeInspectionsNo"
  348. size="small" autocomplete="off"
  349. :disabled="editSave"
  350. clearable placeholder="请输入三检单号" ></el-input>
  351. </el-form-item>
  352. </el-col>
  353. <el-col :span="5">
  354. <el-form-item label="预收帐款" prop="receivableAdvance" >
  355. <el-input style="width: 100%;" v-model="form.receivableAdvance"
  356. size="small" autocomplete="off"
  357. :disabled="editSave"
  358. clearable placeholder="请输入预收帐款" ></el-input>
  359. </el-form-item>
  360. </el-col>
  361. <el-col :span="4">
  362. <el-form-item label="发票号" prop="invoiceNo" label-width="50px">
  363. <el-input style="width: 100%;" v-model="form.invoiceNo"
  364. size="small" autocomplete="off"
  365. :disabled="editSave"
  366. clearable placeholder="请输入发票号" ></el-input>
  367. </el-form-item>
  368. </el-col>
  369. <el-col :span="5">
  370. <el-form-item label="操作员" prop="updateUserName" >
  371. <search-query :datalist="updateUserData"
  372. :selectValue="form.updateUserName"
  373. :clearable="true"
  374. :disabled="editSave"
  375. :buttonIf="false"
  376. :filterable="true"
  377. :remote="true"
  378. :forParameter="{ key:'id', label:'name', value:'name'}"
  379. @corpChange="corpChange($event,'updateUserName')"
  380. @remoteMethod="updateUserUserGetListfun"
  381. @corpFocus="updateUserUserGetListfun" >
  382. </search-query>
  383. </el-form-item>
  384. </el-col>
  385. <el-col :span="5">
  386. <el-form-item label="BKNO" prop="bookingNo" >
  387. <el-input style="width: 100%;" v-model="form.bookingNo"
  388. size="small" autocomplete="off"
  389. :disabled="editSave"
  390. clearable placeholder="请输入BKNO" ></el-input>
  391. </el-form-item>
  392. </el-col>
  393. </el-row>
  394. </expand>
  395. <el-row>
  396. <el-col span="24">
  397. <div style="text-align: right">
  398. <el-button size="small" type="" style="margin-right: 8px"
  399. :loading="saveLoading" @click="ResetFilter">重置条件
  400. </el-button>
  401. <el-button size="small" type="primary" style="margin-right: 8px"
  402. :loading="saveLoading" @click="finstlbillslistAccBillV1fun" >检 索
  403. </el-button>
  404. </div>
  405. </el-col>
  406. </el-row>
  407. </el-row>
  408. </el-form>
  409. </el-card>
  410. <el-card style="margin-top: 10px">
  411. <el-row>
  412. <el-col :span="4">
  413. <div class="bottomFlex" style="justify-content: space-around">
  414. <div style="text-align: center">
  415. <div class="weightfont">¥</div>
  416. <div>RMB</div>
  417. </div>
  418. <div>
  419. <div style="color: #81B337">
  420. <span>应收:</span>
  421. <span class="weightnum">¥0元</span>
  422. </div>
  423. <div style="color: #6BBCD1">
  424. <span>应付:</span>
  425. <span class="weightnum">¥0元</span>
  426. </div>
  427. </div>
  428. </div>
  429. </el-col>
  430. <el-col :span="4">
  431. <div class="bottomFlex" style="justify-content: space-around">
  432. <div style="text-align: center">
  433. <div class="weightfont">$</div>
  434. <div>USD</div>
  435. </div>
  436. <div>
  437. <div style="color: #81B337">
  438. <span>应收:</span>
  439. <span class="weightnum">$0元</span>
  440. </div>
  441. <div style="color: #6BBCD1">
  442. <span>应付:</span>
  443. <span class="weightnum">$0元</span>
  444. </div>
  445. </div>
  446. </div>
  447. </el-col>
  448. <el-col :span="4">
  449. <div class="bottomFlex" style="justify-content: space-around">
  450. <div style="text-align: center">
  451. <div class="weightfont">¥</div>
  452. <div>税后RMB</div>
  453. </div>
  454. <div>
  455. <div style="color: #81B337">
  456. <span>应收:</span>
  457. <span class="weightnum">¥0元</span>
  458. </div>
  459. <div style="color: #6BBCD1">
  460. <span>应付:</span>
  461. <span class="weightnum">¥0元</span>
  462. </div>
  463. </div>
  464. </div>
  465. </el-col>
  466. <el-col :span="4">
  467. <div class="bottomFlex" style="justify-content: space-around">
  468. <div style="text-align: center">
  469. <div class="weightfont">$</div>
  470. <div>税后USD</div>
  471. </div>
  472. <div>
  473. <div style="color: #81B337">
  474. <span>应收:</span>
  475. <span class="weightnum">$0元</span>
  476. </div>
  477. <div style="color: #6BBCD1">
  478. <span>应付:</span>
  479. <span class="weightnum">$0元</span>
  480. </div>
  481. </div>
  482. </div>
  483. </el-col>
  484. <el-col :span="8">
  485. <div style="text-align: right">
  486. <el-button size="small" type="primary" style="margin-right: 8px"
  487. :loading="saveLoading" @click="editHandle">计算合计值
  488. </el-button>
  489. <el-button size="small" type="primary" style="margin-right: 8px" :disabled="!form.id"
  490. :loading="saveLoading" @click="ConfirmReceiptfun">批量签收
  491. </el-button>
  492. <el-button size="small" type="danger" style="margin-right: 8px" :disabled="!form.id"
  493. :loading="saveLoading" @click="RevokeReceiptfun">撤销签收
  494. </el-button>
  495. </div>
  496. </el-col>
  497. </el-row>
  498. </el-card>
  499. <el-card style="margin-top: 10px">
  500. <div style="margin-bottom: 10px">
  501. <el-button size="small" type="primary" style="margin-right: 8px" :disabled="editSave"
  502. :loading="saveLoading" @click="Confirminvoicefun">确认发票
  503. </el-button>
  504. <el-button size="small" type="primary" style="margin-right: 8px"
  505. :loading="saveLoading" @click="editHandle">批量确认发票
  506. </el-button>
  507. <el-button size="small" type="primary" style="margin-right: 8px"
  508. :loading="saveLoading" @click="editHandle">不开发票
  509. </el-button>
  510. <el-button size="small" type="primary" style="margin-right: 8px"
  511. :loading="saveLoading" @click="editHandle">批量不开发票
  512. </el-button>
  513. <el-button size="small" type="info" style="margin-right: 8px" :disabled="editSave"
  514. :loading="saveLoading" @click="SelectedRows">确认选定行
  515. </el-button>
  516. <!--<el-button size="small" type="primary" style="margin-right: 8px"-->
  517. <!-- :loading="saveLoading" @click="editHandle">选择操作行-->
  518. <!--</el-button>-->
  519. </div>
  520. <finstlbillsitems :tableData="tableData" @handleSelectionChange="handleSelectionChange"></finstlbillsitems>
  521. </el-card>
  522. </div>
  523. </div>
  524. </template>
  525. <script>
  526. import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
  527. import {getWorkDicts} from "@/api/system/dictbiz";
  528. import {getRateList} from "@/api/iosBasicData/rateManagement";
  529. import {getList as userGetList} from '@/api/system/user'
  530. import {getBvesselsList} from "@/api/iosBasicData/bvessels";
  531. import {getBcorpslistByType} from "@/api/iosBasicData/bcorps";
  532. import {getDeptLazyTree} from "@/api/system/dept";
  533. import {
  534. finstlbillsConfirmSignFor,
  535. finstlbillsDetail,
  536. finstlbillslistAccBillV1, finstlbillsRevokeSignFor,
  537. finstlbillsSubmit
  538. } from '@/api/iosBasicData/finstlbills'
  539. import expand from "@/components/basic-container/expand.vue";
  540. import finstlbillsitems from "@/views/iosBasicData/finstlbills/assembly/finstlbillsitems.vue";
  541. export default {
  542. components: {SearchQuery,expand,finstlbillsitems},
  543. props:{
  544. // 编辑还是保存
  545. editSave:{
  546. type:Boolean,
  547. default:true
  548. }
  549. },
  550. data(){
  551. return {
  552. tableData:[],
  553. pageLoading:false, // 全屏加载动画
  554. saveLoading:false, // 按钮动画
  555. // 绑定的数据
  556. form:{
  557. },
  558. handleSelectionData:[], // 表格选择的数据
  559. corpData:[], // 对账单位 数据
  560. allyesnoData:[], // 全部是否字典数据
  561. isInvoiceData:[],// 发票字典
  562. // 收 / 付
  563. dcData:[
  564. {
  565. label:'Debit',
  566. value: 'D'
  567. },{
  568. label:'Credit',
  569. value: 'C'
  570. }
  571. ],
  572. curCodeData:[],// 币别
  573. updateUserData:[], // 操作员
  574. srcTypeData:[
  575. {
  576. label:'公司',
  577. value:'OWN'
  578. },
  579. {
  580. label:'代理',
  581. value:'AGENT'
  582. },
  583. {
  584. label:'业务员',
  585. value:'SALES'
  586. }
  587. ], // 业务来源
  588. srcData:[], // 业务来源数据
  589. srcforParameter:{},
  590. // 业务类型
  591. businessTypeData:[
  592. {
  593. label:'海运出口',
  594. value:'SE'
  595. },{
  596. label:'海运进口',
  597. value:'SI'
  598. }
  599. ],
  600. }
  601. },
  602. created() {
  603. this.allyesnoWorkDictsfun() // 获取 字典数据
  604. this.invoiceWorkDictsfun() // 获取 发票的数据
  605. },
  606. methods:{
  607. // 下拉回调
  608. corpChange(value,name){
  609. // 对账单位
  610. if (name == 'corpCnName') {
  611. if (!value) {
  612. this.$set(this.form,'corpId','')
  613. this.$set(this.form,'corpCnName','')
  614. this.$set(this.form,'corpEnName','')
  615. this.$set(this.form,'corpArgreementNo','')
  616. }
  617. for(let item of this.corpData) {
  618. if (item.cnName == value) {
  619. this.$set(this.form,'corpId',item.id)
  620. this.$set(this.form,'corpCnName',item.cnName)
  621. this.$set(this.form,'corpEnName',item.enName)
  622. this.$set(this.form,'corpArgreementNo',item.enName)
  623. }
  624. }
  625. }
  626. // 业务来源
  627. else if (name == 'srcType') {
  628. if (!value) {
  629. this.$set(this.form,'srcType','')
  630. return;
  631. }
  632. this.$set(this.form,name,value)
  633. if (value == 'OWN') {
  634. this.srcforParameter = { key:'id', label:'title', value:'title'}
  635. this.ownDeptLazyTreefun()
  636. }else if (value == 'AGENT') {
  637. this.srcforParameter = { key:'id', label:'cnName', value:'cnName'}
  638. this.srcBcorpsListfun()
  639. }else if (value == 'SALES') {
  640. this.srcforParameter = { key:'id', label:'name', value:'name'}
  641. this.salesuserGetListfun()
  642. }else {}
  643. }
  644. // 业务来源选择
  645. else if (name == 'srcCnName') {
  646. if (!value) {
  647. this.$set(this.form,'srcId','')
  648. this.$set(this.form,'srcCnName','')
  649. this.$set(this.form,'srcEnName','')
  650. return
  651. }
  652. for (let item of this.srcData) {
  653. if (item[this.srcforParameter.value] == value) {
  654. if (this.form.srcType == 'OWN') {
  655. // 公司
  656. this.$set(this.form,'srcId',item.id)
  657. this.$set(this.form,'srcCnName',item.title)
  658. this.$set(this.form,'srcEnName',item.title)
  659. }
  660. else if (this.form.srcType == 'SALES') {
  661. // 业务员
  662. this.$set(this.form,'srcId',item.id)
  663. this.$set(this.form,'srcCnName',item.name)
  664. this.$set(this.form,'srcEnName',item.name)
  665. }else if (this.form.srcType == 'AGENT') {
  666. // 代理
  667. this.$set(this.form,'srcId',item.id)
  668. this.$set(this.form,'srcCnName',item.cnName)
  669. this.$set(this.form,'srcEnName',item.enName)
  670. }else {}
  671. }
  672. }
  673. }
  674. // 操作员
  675. else if (name == 'updateUserName') {
  676. for (let item of this.updateUserData) {
  677. if (item.name == value) {
  678. this.$set(this.form,'updateUser',item.id)
  679. this.$set(this.form,'updateUserName',item.name)
  680. }
  681. }
  682. }
  683. else {
  684. this.$set(this.form,name,value)
  685. }
  686. },
  687. // 编辑
  688. editHandle(){
  689. this.editSave = false
  690. },
  691. // 保存
  692. editCustomer(){
  693. // 对账单位
  694. if (!this.form.corpId) {
  695. this.$message.warning('请选择对账单位');
  696. return
  697. }
  698. // 业务类型
  699. if (!this.form.businessType) {
  700. this.$message.warning('请选择业务类型');
  701. return
  702. }
  703. // 是否选择从表数据
  704. if (this.handleSelectionData.length == 0) {
  705. this.$message.warning('请选择对账数据');
  706. return;
  707. }
  708. this.saveLoading = true // 加载动画
  709. this.form.billNoFormat = 'HYDZ'
  710. this.form.businessTypeCode = 'HYDZ'
  711. this.form.finStlBillsItemsList = this.handleSelectionData.map((item,index)=>{
  712. item.lineNo = index
  713. item.pType = item.businessType
  714. item.accBillId = item.id
  715. item.accBillNo = item.billNo
  716. item.accDate = item.billDate
  717. delete item.businessType
  718. delete item.id
  719. delete item.billNo
  720. delete item.billDate
  721. return item
  722. })
  723. finstlbillsSubmit(this.form).then(res=>{
  724. this.saveLoading = false
  725. this.$message.success('操作成功');
  726. this.finstlbillsDetailfun(res.data.data.id)
  727. })
  728. },
  729. // 详情接口
  730. finstlbillsDetailfun(id){
  731. this.pageLoading = true
  732. finstlbillsDetail(id).then(res=>{
  733. this.form = res.data.data
  734. this.tableData = this.form.finStlBillsItemsList
  735. this.form.isSignfor = this.form.isSignfor + ''
  736. this.form.isApproved = this.form.isApproved + ''
  737. this.form.isCleared = this.form.isCleared + ''
  738. this.form.isChecked = this.form.isChecked + ''
  739. this.form.isInvoice = this.form.isInvoice + ''
  740. this.pageLoading = false
  741. })
  742. },
  743. // 重置条件
  744. ResetFilter(){
  745. this.form = {}
  746. },
  747. // 检索接口
  748. finstlbillslistAccBillV1fun(){
  749. delete this.form.id
  750. for(let i in this.form) {
  751. console.log(i,737)
  752. }
  753. // let obj = JSON.parse(JSON.stringify(this.form))
  754. let obj = {}
  755. obj.auditStatus = this.form.isApproved // 审核状态 0 新建费用 1 已请核 2 审核中 3 驳回 4 通过
  756. obj.corpCnName = this.form.corpId // 对账单位
  757. obj.isSignfor = this.form.isSignfor // 是否已签收(0 否 1是)
  758. obj.dc = this.form.dc // 收付 D=收 C=付
  759. obj.curCode = this.form.curCode // 币别
  760. obj.srcType = this.form.srcType // 业务来源
  761. obj.srcCnName = this.form.srcId // 业务员id
  762. obj.isCleared = this.form.isCleared // 是否销账(0 未销账 3 部分销账 9 销账)
  763. obj.accBillNo = this.form.accountNo // 账单编号 ACCT NO
  764. obj.billNo = this.form.businessNo // 单据编号 JOB NO
  765. obj.mblno = this.form.mblno // MB/L NO
  766. obj.hblno = this.form.hblno // HB/L NO
  767. obj.isChecked = this.form.isChecked // 是否对账(0 未对账 1 已对账)
  768. obj.queryAmount = this.form.queryAmount // 查询金额
  769. obj.businessType = this.form.businessType // 业务类型
  770. obj.invoiceStatus = this.form.isInvoice // 发票状态 0 = 未开 9=已开 2 待开 3 不开
  771. obj.vesselCnName = this.form.vesselCnName // 中文船名
  772. obj.invoiceNo = this.form.invoiceNo // 发票号
  773. obj.bookingNo = this.form.bookingNo // 订舱号 BKNO
  774. obj.createUserName = this.form.updateUser // 操作员id
  775. obj.receivableAdvance = this.form.receivableAdvance // 预收帐款
  776. obj.threeInspectionsNo = this.form.threeInspectionsNo // 三检单号
  777. obj.voyageNo = this.form.voyageNo // 航次
  778. // 审核期间
  779. if (this.form.approvedDate) {
  780. obj.approveTimeList = this.form.approvedDate
  781. }
  782. // 财务期间
  783. if (this.form.accountDate) {
  784. obj.billDateList = this.form.accountDate
  785. }
  786. console.log(obj,754)
  787. // return
  788. finstlbillslistAccBillV1(obj).then(res=>{
  789. this.tableData = res.data.data.map(item=>{
  790. return item
  791. })
  792. })
  793. },
  794. // 确认发票
  795. Confirminvoicefun(){
  796. },
  797. // 确认签收
  798. ConfirmReceiptfun(){
  799. if (this.handleSelectionData.length === 0) {
  800. this.$message.warning("请选择至少一条数据");
  801. return;
  802. }
  803. for (let item of this.handleSelectionData) {
  804. if (item.isSignfor == 1) {
  805. this.$message.warning('请选择未签收的数据');
  806. return;
  807. }
  808. }
  809. this.$confirm("确定将选择数据签收?", {
  810. confirmButtonText: "确定",
  811. cancelButtonText: "取消",
  812. type: "warning"
  813. }).then(()=>{
  814. this.finstlbillsConfirmSignForfun()
  815. })
  816. },
  817. // 撤销签收
  818. RevokeReceiptfun(){
  819. if (this.handleSelectionData.length === 0) {
  820. this.$message.warning("请选择至少一条数据");
  821. return;
  822. }
  823. this.$confirm("确定将选择数据撤销签收?", {
  824. confirmButtonText: "确定",
  825. cancelButtonText: "取消",
  826. type: "warning"
  827. }).then(()=>{
  828. this.finstlbillsRevokeSignForfun()
  829. })
  830. },
  831. // 确认选定行
  832. SelectedRows(){
  833. this.editCustomer()
  834. },
  835. // 下面表格多选
  836. handleSelectionChange(arr){
  837. this.handleSelectionData = arr
  838. },
  839. //返回列表
  840. backToList() {
  841. this.$emit('goBack')
  842. },
  843. // 请求的接口
  844. // 确认签收接口
  845. finstlbillsConfirmSignForfun(){
  846. this.form.billNoFormat = 'HYDZ'
  847. this.form.businessTypeCode = 'HYDZ'
  848. this.form.finStlBillsItemsList = this.handleSelectionData.map((item,index)=>{
  849. item.lineNo = index
  850. item.pType = item.businessType
  851. item.accBillId = item.id
  852. item.accBillNo = item.billNo
  853. item.accDate = item.billDate
  854. delete item.businessType
  855. delete item.billNo
  856. delete item.billDate
  857. return item
  858. })
  859. finstlbillsConfirmSignFor(this.form).then(res=>{
  860. this.$message.success('操作成功');
  861. this.finstlbillsDetailfun(res.data.data.id)
  862. })
  863. },
  864. // 撤销签收接口
  865. finstlbillsRevokeSignForfun(){
  866. this.form.billNoFormat = 'HYDZ'
  867. this.form.businessTypeCode = 'HYDZ'
  868. this.form.finStlBillsItemsList = this.handleSelectionData.map((item,index)=>{
  869. item.lineNo = index
  870. item.pType = item.businessType
  871. item.accBillId = item.id
  872. item.accBillNo = item.billNo
  873. item.accDate = item.billDate
  874. delete item.businessType
  875. delete item.billNo
  876. delete item.billDate
  877. return item
  878. })
  879. finstlbillsRevokeSignFor(this.form).then(res=>{
  880. this.$message.success('操作成功');
  881. this.finstlbillsDetailfun(res.data.data.id)
  882. })
  883. },
  884. // 获取 全部是否 接口
  885. allyesnoWorkDictsfun(){
  886. getWorkDicts('all_yes_no').then(res=>{
  887. this.allyesnoData = res.data.data;
  888. })
  889. },
  890. // 销账字段数据
  891. // 获取发票的字典数据
  892. invoiceWorkDictsfun(){
  893. getWorkDicts('invoice_los').then(res=>{
  894. this.isInvoiceData = res.data.data;
  895. })
  896. },
  897. // 获取币别数据
  898. getRateListfun(cnName){
  899. getRateList({current:1,size:10,cnName}).then(res=>{
  900. this.curCodeData = res.data.data.records
  901. })
  902. },
  903. // 获取操作员数据
  904. updateUserUserGetListfun(account){
  905. userGetList(1,10,{account}).then(res=>{
  906. this.updateUserData = res.data.data.records
  907. })
  908. },
  909. // 获取公司名称 用户管理左侧
  910. ownDeptLazyTreefun(){
  911. getDeptLazyTree(0).then(res=>{
  912. this.srcData = res.data.data
  913. })
  914. },
  915. // 获取业务来源代理数据
  916. srcBcorpsListfun(cnName){
  917. let corpType = '1712285382575398914,1712285645314990082,1712285842321448962,1712286433378574338'
  918. getBcorpslistByType(1,10,{cnName,corpType}).then(res=>{
  919. this.srcData = res.data.data.records
  920. })
  921. },
  922. // 获取业务员数据
  923. salesuserGetListfun(account = undefined,type = false,){
  924. userGetList(1,10,{account}).then(res=>{
  925. this.srcData = res.data.data.records
  926. })
  927. },
  928. // 获取对账单位数据
  929. corpBcorpsListfun(cnName){
  930. getBcorpslistByType(1,10,{cnName}).then(res=>{
  931. this.corpData = res.data.data.records
  932. })
  933. },
  934. }
  935. }
  936. </script>
  937. <style scoped>
  938. ::v-deep.el-form-item {
  939. margin-bottom: 0;
  940. }
  941. .bottomFlex {
  942. display: flex;
  943. align-items: center;
  944. }
  945. .weightfont {
  946. font-size: 20px;
  947. font-weight: bold;
  948. }
  949. .weightnum {
  950. font-size: 15px;
  951. font-weight: 500;
  952. }
  953. </style>