finstlbillsDetails.vue 40 KB

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