finstlbillsDetails.vue 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757
  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="warning" plain style="margin-right: 8px" :disabled="!form.id" v-if="form.isCleared == 1"
  11. :loading="saveLoading" @click="finstlbillsRevokeSettlementfun">撤销结算
  12. </el-button>
  13. <el-button size="small" type="success" plain style="margin-right: 8px" :disabled="!form.id" v-else
  14. :loading="saveLoading" @click="finstlbillsConfirmSettlementfun">确认结算
  15. </el-button>
  16. <el-button size="small" type="primary" style="margin-right: 8px" :disabled="form.isCleared == 1" v-if="editSave"
  17. :loading="saveLoading" @click="editHandle">编 辑
  18. </el-button>
  19. <el-button size="small" type="primary" style="margin-right: 8px" :disabled="form.isCleared == 1" 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="9">
  59. <el-form-item label="审核期间" prop="etd">
  60. <el-date-picker
  61. v-model="form.approvedDate"
  62. type="datetimerange"
  63. range-separator="至"
  64. start-placeholder="开始日期"
  65. end-placeholder="结束日期"
  66. style="width: 100%;"
  67. size="small"
  68. :disabled="editSave"
  69. format="yyyy-MM-dd"
  70. value-format="yyyy-MM-dd"
  71. placeholder="选择对账日期">
  72. </el-date-picker>
  73. </el-form-item>
  74. </el-col>
  75. <el-col :span="10">
  76. <el-form-item label="结算单位" prop="corpCnName">
  77. <el-col :span="11">
  78. <search-query :datalist="corpData"
  79. :selectValue="form.corpCnName"
  80. :clearable="true"
  81. :disabled="editSave"
  82. :filterable="true"
  83. :remote="true"
  84. :buttonIf="false"
  85. :forParameter="{ key:'id', label:'cnName', value:'cnName'}"
  86. @corpChange="corpChange($event,'corpCnName')"
  87. @remoteMethod="corpBcorpsListfun"
  88. @corpFocus="corpBcorpsListfun" >
  89. </search-query>
  90. </el-col>
  91. <el-col :span="12" :offset="1">
  92. <el-input style="width: 100%;" v-model="form.corpEnName"
  93. size="small" autocomplete="off"
  94. :disabled="editSave"
  95. clearable placeholder="请输入" >
  96. </el-input>
  97. </el-col>
  98. </el-form-item>
  99. </el-col>
  100. <el-col :span="5">
  101. <el-form-item label="业务类型" prop="businessTypes" >
  102. <search-query :datalist="businessTypesData"
  103. :selectValue="form.businessTypes"
  104. :clearable="true"
  105. :disabled="editSave"
  106. :buttonIf="false"
  107. @corpChange="corpChange($event,'businessTypes')">
  108. </search-query>
  109. </el-form-item>
  110. </el-col>
  111. <el-col :span="5">
  112. <el-form-item label="查询金额" prop="queryAmount">
  113. <el-input style="width: 100%;" v-model="form.queryAmount"
  114. size="small" autocomplete="off"
  115. :disabled="editSave"
  116. clearable placeholder="请输入查询金额" >
  117. </el-input>
  118. </el-form-item>
  119. </el-col>
  120. <el-col :span="4">
  121. <el-form-item label="币别" prop="curCode">
  122. <search-query :datalist="curCodeData"
  123. :selectValue="form.curCode"
  124. :clearable="true"
  125. :disabled="editSave"
  126. :buttonIf="false"
  127. :filterable="true"
  128. :remote="true"
  129. :forParameter="{ key:'id', label:'code', value:'code'}"
  130. @corpChange="corpChange($event,'curCode')"
  131. @remoteMethod="getRateListfun"
  132. @corpFocus="getRateListfun" >
  133. </search-query>
  134. </el-form-item>
  135. </el-col>
  136. </el-row>
  137. <expand :showBtn="true" :showSpan="true">
  138. <el-row>
  139. <el-col :span="5">
  140. <el-form-item label="JOB NO" prop="businessNo">
  141. <el-input style="width: 100%;" v-model="form.businessNo"
  142. size="small" autocomplete="off"
  143. :disabled="editSave"
  144. clearable placeholder="请输入JOB NO" >
  145. </el-input>
  146. </el-form-item>
  147. </el-col>
  148. <el-col :span="5">
  149. <el-form-item label="ACCT NO" prop="accountNo">
  150. <el-input style="width: 100%;" v-model="form.accountNo"
  151. size="small" autocomplete="off"
  152. :disabled="editSave"
  153. clearable placeholder="请输入ACCT NO" >
  154. </el-input>
  155. </el-form-item>
  156. </el-col>
  157. <el-col :span="5">
  158. <el-form-item label="MBL NO" prop="mblno">
  159. <el-input style="width: 100%;" v-model="form.mblno"
  160. size="small" autocomplete="off"
  161. :disabled="editSave"
  162. clearable placeholder="请输入MBL NO" >
  163. </el-input>
  164. </el-form-item>
  165. </el-col>
  166. <el-col :span="5">
  167. <el-form-item label="HBL NO" prop="hblno">
  168. <el-input style="width: 100%;" v-model="form.hblno"
  169. size="small" autocomplete="off"
  170. :disabled="editSave"
  171. clearable placeholder="请输入HBL NO" >
  172. </el-input>
  173. </el-form-item>
  174. </el-col>
  175. <el-col :span="4">
  176. <el-form-item label="CHK NO" prop="checkNo">
  177. <el-input style="width: 100%;" v-model="form.checkNo"
  178. size="small" autocomplete="off"
  179. :disabled="editSave"
  180. clearable placeholder="请输入CHK NO" >
  181. </el-input>
  182. </el-form-item>
  183. </el-col>
  184. <el-col :span="5">
  185. <el-form-item label="财务日期" prop="accountDate">
  186. <el-date-picker
  187. v-model="form.accountDate"
  188. type="datetimerange"
  189. range-separator="至"
  190. start-placeholder="开始日期"
  191. end-placeholder="结束日期"
  192. style="width: 100%;"
  193. size="small"
  194. :disabled="editSave"
  195. format="yyyy-MM-dd"
  196. value-format="yyyy-MM-dd"
  197. placeholder="选择财务日期">
  198. </el-date-picker>
  199. </el-form-item>
  200. </el-col>
  201. <el-col :span="5">
  202. <el-form-item label="签收日期" prop="signforDateList">
  203. <el-date-picker
  204. v-model="form.signforDateList"
  205. type="datetimerange"
  206. range-separator="至"
  207. start-placeholder="开始日期"
  208. end-placeholder="结束日期"
  209. style="width: 100%;"
  210. size="small"
  211. :disabled="editSave"
  212. format="yyyy-MM-dd"
  213. value-format="yyyy-MM-dd"
  214. placeholder="选择签收日期">
  215. </el-date-picker>
  216. </el-form-item>
  217. </el-col>
  218. <el-col :span="5">
  219. <el-form-item label="船 名" prop="vesselCnName" >
  220. <el-input style="width: 100%;" v-model="form.vesselCnName"
  221. size="small" autocomplete="off"
  222. :disabled="editSave"
  223. clearable placeholder="请选择船名" ></el-input>
  224. </el-form-item>
  225. </el-col>
  226. <el-col :span="5">
  227. <el-form-item label="航 次" prop="voyageNo" >
  228. <el-input style="width: 100%;" v-model="form.voyageNo"
  229. size="small" autocomplete="off"
  230. :disabled="editSave"
  231. clearable placeholder="请选择航次" ></el-input>
  232. </el-form-item>
  233. </el-col>
  234. <el-col :span="4">
  235. <el-form-item label="预收帐款" prop="receivableAdvance" >
  236. <el-input style="width: 100%;" v-model="form.receivableAdvance"
  237. size="small" autocomplete="off"
  238. :disabled="editSave"
  239. clearable placeholder="请输入预收帐款" ></el-input>
  240. </el-form-item>
  241. </el-col>
  242. </el-row>
  243. </expand>
  244. <el-row>
  245. <el-col span="24">
  246. <div style="text-align: right">
  247. <el-button size="small" type="" style="margin-right: 8px"
  248. :loading="saveLoading" @click="ResetFilter">重置条件
  249. </el-button>
  250. <el-button size="small" type="primary" style="margin-right: 8px"
  251. :loading="saveLoading" @click="finstlbillslistAccBillV1fun" >检 索
  252. </el-button>
  253. </div>
  254. </el-col>
  255. </el-row>
  256. </el-row>
  257. </el-form>
  258. </el-card>
  259. <el-card style="margin-top: 10px">
  260. <el-row>
  261. <el-col :span="4">
  262. <div class="bottomFlex" style="justify-content: space-around">
  263. <!--<div style="text-align: center">-->
  264. <!-- <div class="weightfont">¥</div>-->
  265. <!-- <div>RMB</div>-->
  266. <!--</div>-->
  267. <div>
  268. <div style="color: #81B337">
  269. <span>税后应收RMB:</span>
  270. <span class="weightnum">¥{{form.amountDrNet || 0}}元</span>
  271. </div>
  272. <div style="color: #6BBCD1">
  273. <span>税后应付RMB:</span>
  274. <span class="weightnum">¥{{form.amountCrNet || 0}}元</span>
  275. </div>
  276. </div>
  277. </div>
  278. </el-col>
  279. <el-col :span="4">
  280. <div class="bottomFlex" style="justify-content: space-around">
  281. <!--<div style="text-align: center">-->
  282. <!-- <div class="weightfont">$</div>-->
  283. <!-- <div>USD</div>-->
  284. <!--</div>-->
  285. <div>
  286. <div style="color: #81B337">
  287. <span>税后应收USD:</span>
  288. <span class="weightnum">${{form.amountDrUsdNet || 0}}元</span>
  289. </div>
  290. <div style="color: #6BBCD1">
  291. <span>税后应付USD:</span>
  292. <span class="weightnum">${{form.amountCrUsdNet || 0}}元</span>
  293. </div>
  294. </div>
  295. </div>
  296. </el-col>
  297. <el-col :span="4">
  298. <div class="bottomFlex" style="justify-content: space-around">
  299. <!--<div style="text-align: center">-->
  300. <!-- <div class="weightfont">¥</div>-->
  301. <!-- <div>税后RMB</div>-->
  302. <!--</div>-->
  303. <div>
  304. <div style="color: #81B337">
  305. <span>税后应收合计:</span>
  306. <span class="weightnum">¥{{form.amountDrLocNet || 0}}元</span>
  307. </div>
  308. <div style="color: #6BBCD1">
  309. <span>税后应付合计:</span>
  310. <span class="weightnum">¥{{form.amountCrLocNet || 0}}元</span>
  311. </div>
  312. </div>
  313. </div>
  314. </el-col>
  315. <el-col :span="4">
  316. <div class="bottomFlex" style="justify-content: space-around">
  317. <!--<div style="text-align: center">-->
  318. <!-- <div class="weightfont">$</div>-->
  319. <!-- <div>税后USD</div>-->
  320. <!--</div>-->
  321. <div>
  322. <div style="color: #81B337">
  323. <span>应收RMB:</span>
  324. <span class="weightnum">${{form.amountDr || 0}}元</span>
  325. </div>
  326. <div style="color: #6BBCD1">
  327. <span>应付RMB:</span>
  328. <span class="weightnum">${{form.amountCr || 0}}元</span>
  329. </div>
  330. </div>
  331. </div>
  332. </el-col>
  333. <el-col :span="4">
  334. <div class="bottomFlex" style="justify-content: space-around">
  335. <!--<div style="text-align: center">-->
  336. <!-- <div class="weightfont">$</div>-->
  337. <!-- <div>税后USD</div>-->
  338. <!--</div>-->
  339. <div>
  340. <div style="color: #81B337">
  341. <span>应收USD:</span>
  342. <span class="weightnum">${{form.amountDrUsd || 0}}元</span>
  343. </div>
  344. <div style="color: #6BBCD1">
  345. <span>应付USD:</span>
  346. <span class="weightnum">${{form.amountCrUsd || 0}}元</span>
  347. </div>
  348. </div>
  349. </div>
  350. </el-col>
  351. <el-col :span="4">
  352. <div class="bottomFlex" style="justify-content: space-around">
  353. <!--<div style="text-align: center">-->
  354. <!-- <div class="weightfont">$</div>-->
  355. <!-- <div>税后USD</div>-->
  356. <!--</div>-->
  357. <div>
  358. <div style="color: #81B337">
  359. <span>应付合计:</span>
  360. <span class="weightnum">${{form.amountDrLoc || 0}}元</span>
  361. </div>
  362. <div style="color: #6BBCD1">
  363. <span>应收合计:</span>
  364. <span class="weightnum">${{form.amountCrLoc || 0}}元</span>
  365. </div>
  366. </div>
  367. </div>
  368. </el-col>
  369. <!--<el-col :span="3">-->
  370. <!-- <div class="bottomFlex" style="justify-content: space-around">-->
  371. <!-- &lt;!&ndash;<div style="text-align: center">&ndash;&gt;-->
  372. <!-- &lt;!&ndash; <div class="weightfont">$</div>&ndash;&gt;-->
  373. <!-- &lt;!&ndash; <div>税后USD</div>&ndash;&gt;-->
  374. <!-- &lt;!&ndash;</div>&ndash;&gt;-->
  375. <!-- <div>-->
  376. <!-- <div style="color: #81B337">-->
  377. <!-- <span>销项税合计:</span>-->
  378. <!-- <span class="weightnum">${{form.amountDrLoc || 0}}元</span>-->
  379. <!-- </div>-->
  380. <!-- <div style="color: #6BBCD1">-->
  381. <!-- <span>进项税合计:</span>-->
  382. <!-- <span class="weightnum">${{form.amountCrLoc || 0}}元</span>-->
  383. <!-- </div>-->
  384. <!-- </div>-->
  385. <!-- </div>-->
  386. <!--</el-col>-->
  387. </el-row>
  388. </el-card>
  389. <el-card style="margin-top: 10px">
  390. <div style="margin-bottom: 10px">
  391. <el-button size="small" type="info" style="margin-right: 8px" :disabled="editSave"
  392. :loading="saveLoading" @click="SelectedRows">确认选定行
  393. </el-button>
  394. </div>
  395. <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
  396. <el-tab-pane label="核销明细" name="first">
  397. <finstlbillsitems :tableData="tableData"
  398. :handleSelectionData="handleSelectionData"
  399. @handleSelectionChange="handleSelectionChange">
  400. </finstlbillsitems>
  401. </el-tab-pane>
  402. <el-tab-pane label="凭证明细" name="second">凭证明细</el-tab-pane>
  403. </el-tabs>
  404. </el-card>
  405. </div>
  406. </div>
  407. </template>
  408. <script>
  409. import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
  410. import {getRateList} from "@/api/iosBasicData/rateManagement";
  411. import {getBcorpslistByType} from "@/api/iosBasicData/bcorps";
  412. import {
  413. finstlbillsConfirmSettlement,
  414. finstlbillsConfirmSignFor,
  415. finstlbillsDetail,
  416. finstlbillslistAccBillV1,
  417. finstlbillsRevokeSettlement,
  418. finstlbillsRevokeSignFor,
  419. finstlbillsSubmit
  420. } from '@/api/iosBasicData/finstlbills'
  421. import expand from "@/components/basic-container/expand.vue";
  422. import finstlbillsitems from "@/views/iosBasicData/CollectionSettlement/assembly/finstlbillsitems.vue";
  423. export default {
  424. components: {SearchQuery,expand,finstlbillsitems},
  425. props:{
  426. // 编辑还是保存
  427. editSave:{
  428. type:Boolean,
  429. default:true
  430. }
  431. },
  432. data(){
  433. return {
  434. activeName:'first', // tabs 切换数据
  435. tableData:[],
  436. pageLoading:false, // 全屏加载动画
  437. saveLoading:false, // 按钮动画
  438. // 绑定的数据
  439. form:{},
  440. handleSelectionData:[], // 表格选择的数据
  441. corpData:[], // 结算单位 数据
  442. curCodeData:[],// 币别
  443. srcforParameter:{},
  444. // 业务类型
  445. businessTypesData:[
  446. {
  447. label:'海运出口',
  448. value:'SE'
  449. },{
  450. label:'海运进口',
  451. value:'SI'
  452. }
  453. ],
  454. }
  455. },
  456. watch:{
  457. // // 监听业务类型 如果不是分单 可以编辑分单号
  458. // form:{
  459. // // 执行方法
  460. // handler(oldValue,newValue) {
  461. // delete this.form.id
  462. // // this.tableData = []
  463. // // // 只要分单不能编辑
  464. // // console.log(this.form,619)
  465. // // if (!newValue || JSON.stringify(newValue) == '{}') {
  466. // // return
  467. // // }
  468. // // delete this.form.id
  469. // // this.tableData = []
  470. // // this.form.finStlBillsItemsList = []
  471. // // console.log(newValue)
  472. // },
  473. // deep: true, // 深度监听
  474. // immediate: true // 第一次改变就执行
  475. // },
  476. },
  477. created() {
  478. },
  479. methods:{
  480. // 下拉回调
  481. corpChange(value,name){
  482. // 结算单位
  483. if (name == 'corpCnName') {
  484. if (!value) {
  485. this.$set(this.form,'corpId','')
  486. this.$set(this.form,'corpCnName','')
  487. this.$set(this.form,'corpEnName','')
  488. this.$set(this.form,'corpArgreementNo','')
  489. }
  490. for(let item of this.corpData) {
  491. if (item.cnName == value) {
  492. this.$set(this.form,'corpId',item.id)
  493. this.$set(this.form,'corpCnName',item.cnName)
  494. this.$set(this.form,'corpEnName',item.enName)
  495. this.$set(this.form,'corpArgreementNo',item.enName)
  496. }
  497. }
  498. }
  499. else {
  500. this.$set(this.form,name,value)
  501. }
  502. },
  503. // 编辑
  504. editHandle(){
  505. this.editSave = false
  506. },
  507. // 保存
  508. editCustomer(){
  509. // 对账单位
  510. if (!this.form.corpId) {
  511. this.$message.warning('请选择结算单位');
  512. return
  513. }
  514. // 业务类型
  515. if (!this.form.businessTypes) {
  516. this.$message.warning('请选择业务类型');
  517. return
  518. }
  519. if (!this.form.id) {
  520. // 是否选择从表数据
  521. if (this.handleSelectionData.length == 0) {
  522. this.$message.warning('请选择结算数据');
  523. return;
  524. }
  525. }
  526. for (let item of this.handleSelectionData) {
  527. if (!item.currentStlCurCode) {
  528. this.$message.warning('请选择本次结算币种');
  529. return;
  530. }
  531. // if (!item.currentStlAmount) {
  532. // this.$message.warning('请选择本次结算金额');
  533. // return;
  534. // }
  535. }
  536. this.saveLoading = true // 加载动画
  537. this.form.billNoFormat = 'HYDZ'
  538. this.form.businessTypeCode = 'HYDZ'
  539. this.form.businessType = 'STL' // 结算单
  540. this.form.dc = 'D' // 收
  541. this.form.finStlBillsItemsList = this.handleSelectionData.map((item,index)=>{
  542. item.lineNo = index
  543. item.pType = item.businessType
  544. item.accBillId = item.id
  545. item.accBillNo = item.billNo
  546. item.accDate = item.billDate
  547. item.dc = item.accountDc // 收付
  548. if (item.currentStlCurCode == 'CNY') {
  549. item.currentStlAmount = item.currentStlAmountRMB
  550. }else {
  551. item.currentStlAmount = item.currentStlAmountUSD
  552. }
  553. delete item.businessType
  554. if (!this.form.id) {
  555. delete item.id
  556. }
  557. delete item.billNo
  558. delete item.billDate
  559. delete item.accountDc
  560. return item
  561. })
  562. finstlbillsSubmit(this.form).then(res=>{
  563. this.saveLoading = false
  564. this.$message.success('操作成功');
  565. this.finstlbillsDetailfun(res.data.data.id)
  566. })
  567. },
  568. // 详情接口
  569. finstlbillsDetailfun(id){
  570. this.pageLoading = true
  571. finstlbillsDetail(id).then(res=>{
  572. this.form = res.data.data
  573. this.tableData = this.form.finStlBillsItemsList.map(item=>{
  574. item.stlTtlAmountNet = Number(item.stlTtlAmount) - (Number(item.stlTtlAmount) * (Number(item.taxRate) + Number(item.surchargeRate)))
  575. item.currentStlAmountNet = Number(item.unsettledAmount) - (Number(item.unsettledAmount) * (Number(item.taxRate) + Number(item.surchargeRate)))
  576. if(item.curCode == 'CNY') {
  577. this.$set(item,'currentInvoiceAmountRMB',item.currentInvoiceAmount)
  578. this.$set(item,'amountRMB',item.amount)
  579. this.$set(item,'amountNetRMB',item.amountNet)
  580. this.$set(item,'stlTtlAmountRMB',item.stlTtlAmount)
  581. this.$set(item,'stlTtlAmountNetRMB',item.stlTtlAmountNet)
  582. this.$set(item,'currentStlAmountRMB',item.unsettledAmount) // 未结算金额
  583. this.$set(item,'currentStlAmountNetRMB',item.currentStlAmountNet)
  584. }else {
  585. this.$set(item,'currentInvoiceAmountUSD',item.currentInvoiceAmount)
  586. this.$set(item,'amountUSD',item.amount)
  587. this.$set(item,'amountNetUSD',item.amountNet)
  588. this.$set(item,'stlTtlAmountNetUSD',item.stlTtlAmountNet)
  589. this.$set(item,'stlTtlAmountUSD',item.stlTtlAmount)
  590. this.$set(item,'currentStlAmountUSD',item.unsettledAmount) // 未结算金额
  591. this.$set(item,'currentStlAmountNetUSD',item.currentStlAmountNet)
  592. }
  593. return item
  594. })
  595. this.pageLoading = false
  596. }).catch(err=>{
  597. this.pageLoading = false
  598. })
  599. },
  600. // 重置条件
  601. ResetFilter(){
  602. this.form = {}
  603. this.tableData = []
  604. },
  605. // 检索接口
  606. finstlbillslistAccBillV1fun(){
  607. // 对账单位
  608. if (!this.form.corpId) {
  609. this.$message.warning('请选择对账单位');
  610. return
  611. }
  612. // 业务类型
  613. if (!this.form.businessTypes) {
  614. this.$message.warning('请选择业务类型');
  615. return
  616. }
  617. delete this.form.id
  618. // let obj = JSON.parse(JSON.stringify(this.form))
  619. let obj = {}
  620. obj.type = '2'
  621. obj.dc = 'D' // 收
  622. obj.corpCnName = this.form.corpId // 结算单位
  623. obj.curCode = this.form.curCode // 币别
  624. // obj.dc = this.form.dc // 收付 D=收 C=付
  625. obj.accBillNo = this.form.accountNo // 账单编号 ACCT NO
  626. obj.billNo = this.form.businessNo // 单据编号 JOB NO
  627. obj.checkBillNo = this.form.checkNo // CHK NO
  628. obj.mblno = this.form.mblno // MB/L NO
  629. obj.hblno = this.form.hblno // HB/L NO
  630. obj.queryAmount = this.form.queryAmount // 查询金额
  631. obj.businessType = this.form.businessTypes // 业务类型
  632. obj.vesselCnName = this.form.vesselCnName // 中文船名
  633. obj.receivableAdvance = this.form.receivableAdvance // 预收帐款
  634. obj.voyageNo = this.form.voyageNo // 航次
  635. obj.signforDateList = this.form.signforDateList // 签收日期
  636. // 审核期间
  637. if (this.form.approvedDate) {
  638. obj.approveTimeList = this.form.approvedDate
  639. }
  640. // 财务期间
  641. if (this.form.accountDate) {
  642. obj.billDateList = this.form.accountDate
  643. }
  644. finstlbillslistAccBillV1(obj).then(res=>{
  645. this.tableData = res.data.data.map(item=>{
  646. item.stlTtlAmountNet = Number(item.stlTtlAmount) - (Number(item.stlTtlAmount) * (Number(item.taxRate) + Number(item.surchargeRate)))
  647. if(item.curCode == 'CNY') {
  648. this.$set(item,'currentInvoiceAmountRMB',item.currentInvoiceAmount)
  649. this.$set(item,'amountRMB',item.amount)
  650. this.$set(item,'amountNetRMB',item.amountNet)
  651. this.$set(item,'stlTtlAmountRMB',item.stlTtlAmount)
  652. this.$set(item,'stlTtlAmountNetRMB',item.stlTtlAmountNet)
  653. }else {
  654. this.$set(item,'currentInvoiceAmountUSD',item.currentInvoiceAmount)
  655. this.$set(item,'amountUSD',item.amount)
  656. this.$set(item,'amountNetUSD',item.amountNet)
  657. this.$set(item,'stlTtlAmountNetUSD',item.stlTtlAmountNet)
  658. this.$set(item,'stlTtlAmountUSD',item.stlTtlAmount)
  659. }
  660. return item
  661. })
  662. })
  663. },
  664. // 结算确认
  665. finstlbillsConfirmSettlementfun(){
  666. this.$confirm("确定进行对账操作?", {
  667. confirmButtonText: "确定",
  668. cancelButtonText: "取消",
  669. type: "warning"
  670. }).then(()=>{
  671. this.pageLoading = true
  672. finstlbillsConfirmSettlement(this.form).then(res=>{
  673. this.pageLoading = false
  674. this.$message.success('操作成功');
  675. this.finstlbillsDetailfun(res.data.data.id)
  676. }).catch(err=>{
  677. this.pageLoading = false
  678. })
  679. })
  680. },
  681. // 结算撤销
  682. finstlbillsRevokeSettlementfun(){
  683. this.$confirm("确定进行撤销对账操作?", {
  684. confirmButtonText: "确定",
  685. cancelButtonText: "取消",
  686. type: "warning"
  687. }).then(()=>{
  688. this.pageLoading = true
  689. finstlbillsRevokeSettlement(this.form).then(res=>{
  690. this.pageLoading = false
  691. this.$message.success('操作成功');
  692. this.finstlbillsDetailfun(res.data.data.id)
  693. })
  694. }).catch(err=>{
  695. this.pageLoading = false
  696. })
  697. },
  698. // 确认选定行
  699. SelectedRows(){
  700. this.editCustomer()
  701. },
  702. // 下面表格多选
  703. handleSelectionChange(arr){
  704. this.handleSelectionData = arr
  705. },
  706. //返回列表
  707. backToList() {
  708. this.$emit('goBack')
  709. },
  710. // 请求的接口
  711. // 获取币别数据
  712. getRateListfun(cnName){
  713. getRateList({current:1,size:10,cnName}).then(res=>{
  714. this.curCodeData = res.data.data.records
  715. })
  716. },
  717. // 获取结算单位数据
  718. corpBcorpsListfun(cnName){
  719. getBcorpslistByType(1,10,{cnName}).then(res=>{
  720. this.corpData = res.data.data.records
  721. })
  722. },
  723. }
  724. }
  725. </script>
  726. <style scoped>
  727. ::v-deep.el-form-item {
  728. margin-bottom: 0;
  729. }
  730. .bottomFlex {
  731. display: flex;
  732. align-items: center;
  733. }
  734. .weightfont {
  735. font-size: 20px;
  736. font-weight: bold;
  737. }
  738. .weightnum {
  739. font-size: 15px;
  740. font-weight: 500;
  741. }
  742. </style>