receiptSettleDetailsPage.vue 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773
  1. <template>
  2. <div class="borderless">
  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 class="upper_right_button">
  9. <el-button
  10. type="primary"
  11. size="small"
  12. @click="editHandle"
  13. v-if="editDisable"
  14. >编 辑</el-button>
  15. <el-button type="primary"
  16. size="small"
  17. :disabled="!form.id || editDisable"
  18. @click="postMessage"
  19. >发送消息</el-button>
  20. <el-button type="warning"
  21. size="small"
  22. class="el-button--small-yh"
  23. :buttonLoading="buttonLoading"
  24. :disabled="!form.id || editDisable"
  25. @click.stop="confirmSettlement"
  26. >{{financeDisabled?"收费":"撤销收费"}}
  27. </el-button>
  28. <el-button class="el-button--small-yh"
  29. type="primary"
  30. size="small"
  31. :buttonLoading="buttonLoading"
  32. :disabled="!financeDisabled || editDisable"
  33. @click.stop="saveSettlement"
  34. >保存数据
  35. </el-button>
  36. </div>
  37. </div>
  38. </div>
  39. <div class="customer-main">
  40. <containerTitle title="基础信息"></containerTitle>
  41. <basic-container>
  42. <avue-form class="trading-form" ref="form" v-model="form" :option="option">
  43. <template slot="corpId">
  44. <crop-select
  45. v-model="form.corpId"
  46. corpType="KG"
  47. :disabled="!financeDisabled || editDisable"
  48. @getCorpData="returnBack"
  49. style="width: 100%"
  50. ></crop-select>
  51. </template>
  52. <template slot="accountNo">
  53. <el-select v-model="form.accountNo"
  54. placeholder="请选择"
  55. :disabled="!financeDisabled || editDisable"
  56. @change="accountNoChange"
  57. clearable
  58. filterable>
  59. <el-option v-for="(item,index) in form.bankList"
  60. :key="index"
  61. :label="item.accountNo"
  62. :value="item.accountNo"
  63. >
  64. </el-option>
  65. </el-select>
  66. </template>
  67. <template slot="caseOverPayment">
  68. <el-input
  69. placeholder="请输入"
  70. clearable
  71. v-model="form.caseOverPayment"
  72. @change="caseOverPaymentChange"
  73. v-input-limit="2"
  74. :disabled="dataList.length == 0 || !financeDisabled || editDisable"
  75. ></el-input>
  76. </template>
  77. <template slot="remark">
  78. <el-input type="textarea"
  79. v-model="form.remark"
  80. size="small"
  81. rows="2"
  82. autocomplete="off"
  83. placeholder="">
  84. </el-input>
  85. </template>
  86. </avue-form>
  87. </basic-container>
  88. <containerTitle title="明细列表"></containerTitle>
  89. <basic-container>
  90. <avue-crud :option="itemsOption"
  91. :data="dataList"
  92. ref="crud"
  93. v-model="itemsForm"
  94. :page.sync="page"
  95. @search-reset="searchReset"
  96. @row-update="rowUpdate"
  97. @selection-change="selectionChange"
  98. @current-change="currentChange"
  99. @size-change="sizeChange"
  100. @refresh-change="refreshChange">
  101. <template slot="menuLeft">
  102. <el-button type="primary"
  103. size="small"
  104. icon="el-icon-shopping-cart-2"
  105. :disabled="!financeDisabled || editDisable"
  106. :buttonLoading="buttonLoading"
  107. @click="selectRecipt"
  108. >选择销售合同
  109. </el-button>
  110. </template>
  111. <template slot-scope="{ row }" slot="currency">
  112. <el-select v-if="row.$cellEdit" v-model="row.currency" size="small" placeholder="请选择 币别" clearable filterable>
  113. <el-option v-for="(item,index) in currencyDic" :key="index" :label="item.dictValue" :value="item.dictValue"></el-option>
  114. </el-select>
  115. <span v-else>{{ row.currency }}</span>
  116. </template>
  117. <template slot="thisAmount" slot-scope="{ row }">
  118. <span v-if="row.$cellEdit" class="required_fields">*</span>
  119. <el-input
  120. v-if="row.$cellEdit"
  121. v-model="row.thisAmount"
  122. style="width: 90%"
  123. placeholder="请输入"
  124. size="small"
  125. oninput='this.value=this.value.replace(/[^(\d.)]/g,"").replace(/^(\d+)\.(\d\d).*$/, "$1.$2")'
  126. ></el-input>
  127. <span v-else>{{ row.thisAmount }}</span>
  128. </template>
  129. <template slot-scope="scope" slot="menu">
  130. <el-button
  131. type="text"
  132. size="small"
  133. icon="el-icon-edit"
  134. :disabled="!financeDisabled || editDisable"
  135. @click.stop="rowCell(scope.row,scope.index)"
  136. > {{ scope.row.$cellEdit ? '修改完成' : '修改' }}
  137. </el-button>
  138. <el-button
  139. type="text"
  140. size="small"
  141. icon="el-icon-delete"
  142. :disabled="!financeDisabled || editDisable"
  143. @click.stop="rowDel(scope.row,scope.index)"
  144. >删除
  145. </el-button>
  146. </template>
  147. </avue-crud>
  148. </basic-container>
  149. <el-dialog
  150. title="导入销售"
  151. append-to-body
  152. class="el-dialogDeep"
  153. :visible.sync="billDetailDialog"
  154. width="60%"
  155. :close-on-click-modal="false"
  156. :destroy-on-close="true"
  157. :close-on-press-escape="false"
  158. top="10vh"
  159. v-dialog-drag>
  160. <bill-detail
  161. :params="params"
  162. :billType="billType"
  163. :flag="1"
  164. @closeFun="closeBillDetail"
  165. @importProMent="importProMent"
  166. >
  167. </bill-detail>
  168. </el-dialog>
  169. </div>
  170. <messagePost
  171. v-if="messageVisble"
  172. ref="messagePost"
  173. @closeDialog="closeDialog"
  174. ></messagePost>
  175. </div>
  176. </template>
  177. <script>
  178. import option from "./configuration/detailsPage.json";
  179. import { getDetail } from "@/api/financialManagement/financialManagement"
  180. import { getDetails,modify,cancelModify,saveOrEdit } from "@/api/financialManagement/paymentRequest";
  181. import billDetail from "@/components/bill/billDetailList";
  182. import _ from "lodash";
  183. import { getlistBankBy,deleteDetail } from "@/api/financialManagement/paymentRequest";
  184. import { contrastObj,contrastList } from "@/util/contrastData";
  185. import {getUserInfo} from "@/api/system/user";
  186. import {getCorpDetail} from "@/api/maintenance/overpayment";
  187. export default {
  188. name: "receiptDetailsPage",
  189. props: {
  190. detailData: {
  191. type: Object
  192. }
  193. },
  194. components:{
  195. billDetail,
  196. },
  197. data() {
  198. return {
  199. category: '',
  200. form: {},
  201. itemsForm:{},
  202. params:{},
  203. buttonLoading:false,
  204. itemsOption: option,
  205. option: {
  206. menuBtn: false,
  207. labelWidth: 100,
  208. column: [
  209. {
  210. label: '系统号',
  211. prop: 'sysNo',
  212. span: 8,
  213. disabled: true
  214. },{
  215. label: '合同号',
  216. prop: 'srcOrderno',
  217. span: 8,
  218. rules: [
  219. {
  220. required: false,
  221. message: ' ',
  222. trigger: 'blur'
  223. }
  224. ]
  225. }, {
  226. label: '往来单位',
  227. prop: 'corpId',
  228. sort:true,
  229. span: 8,
  230. rules: [
  231. {
  232. required: false,
  233. message: ' ',
  234. trigger: 'blur'
  235. }
  236. ]
  237. },
  238. {
  239. label: '银行账号',
  240. prop: 'accountNo',
  241. span: 8,
  242. rules: [
  243. {
  244. required: false,
  245. message: ' ',
  246. trigger: 'blur'
  247. }
  248. ]
  249. },
  250. {
  251. label: '开户银行',
  252. prop: 'accountBank',
  253. span: 8,
  254. rules: [
  255. {
  256. required: false,
  257. message: ' ',
  258. trigger: 'blur'
  259. }
  260. ]
  261. }, {
  262. label: '银行户头',
  263. prop: 'accountName',
  264. span: 8,
  265. rules: [
  266. {
  267. required: false,
  268. message: ' ',
  269. trigger: 'blur'
  270. }
  271. ]
  272. },
  273. {
  274. label: '人民币金额',
  275. prop: 'amount',
  276. span: 8,
  277. rules: [
  278. {
  279. pattern: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
  280. message: ' ',
  281. trigger: 'blur'
  282. },
  283. {
  284. required: false,
  285. message: ' ',
  286. trigger: 'blur'
  287. }
  288. ]
  289. },
  290. {
  291. label: '外币金额',
  292. prop: 'foreignAmount',
  293. display: true,
  294. span: 8,
  295. rules: [
  296. {
  297. pattern: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
  298. message: ' ',
  299. trigger: 'blur'
  300. }
  301. ]
  302. },
  303. {
  304. label: '使用溢付款',
  305. prop: 'caseOverPayment',
  306. display: false,
  307. span: 8,
  308. rules: [
  309. {
  310. pattern: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
  311. message: ' ',
  312. trigger: 'blur'
  313. }
  314. ]
  315. },
  316. {
  317. label: '溢付款余额',
  318. prop: 'overPayment',
  319. display: false,
  320. disabled: true,
  321. span: 8,
  322. rules: [
  323. {
  324. pattern: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
  325. message: ' ',
  326. trigger: 'blur'
  327. }
  328. ]
  329. },
  330. {
  331. label: '收款日期',
  332. prop: 'time',
  333. span: 8,
  334. type:"date",
  335. rules: [
  336. {
  337. required: false,
  338. message: ' ',
  339. trigger: 'blur'
  340. }
  341. ]
  342. },
  343. {
  344. label: '制单人',
  345. prop: 'createUserName',
  346. span: 8,
  347. disabled:true,
  348. rules: [
  349. {
  350. required: false,
  351. message: ' ',
  352. trigger: 'blur'
  353. }
  354. ]
  355. }, {
  356. label: '制单日期',
  357. prop: 'createTime',
  358. span: 8,
  359. type:"date",
  360. disabled:true,
  361. rules: [
  362. {
  363. required: false,
  364. message: ' ',
  365. trigger: 'blur'
  366. }
  367. ]
  368. },
  369. {
  370. label: '备注',
  371. prop: 'remark',
  372. span:24,
  373. row:2,
  374. rules: [
  375. {
  376. required: false,
  377. message: ' ',
  378. trigger: 'blur'
  379. }
  380. ]
  381. },
  382. ],
  383. },
  384. id:'',
  385. dataList: [],
  386. currencyDic:[],
  387. page: {
  388. pageSize: 10,
  389. pagerCount: 5,
  390. total: 0,
  391. },
  392. billDetailDialog:false,
  393. financeDisabled:true,
  394. billType:"收费",
  395. // 明细本次金额总计
  396. allAmount: 0,
  397. // 消息弹窗
  398. messageVisble: false,
  399. //新旧数据对比
  400. oldForm:{},
  401. oldDataList:[],
  402. financeStatusDic:[{
  403. value: '正常',
  404. label: '正常'
  405. },
  406. {
  407. value: '停用',
  408. label: '停用'
  409. }],
  410. editDisable: false, //编辑状态禁用
  411. }
  412. },
  413. created() {
  414. // 人民币金额默认为0
  415. this.$set(this.form,"amount", 0)
  416. getUserInfo().then(res=>{
  417. this.category = res.data.data.billType
  418. if (this.category == 2) {
  419. this.$set(this.form,"overPayment", 0)
  420. this.$set(this.form,"caseOverPayment", 0)
  421. this.option.column.forEach(item => {
  422. if (item.prop == 'caseOverPayment' || item.prop == 'overPayment') {
  423. item.display = true
  424. }
  425. if (item.prop == 'foreignAmount') {
  426. item.display = false
  427. }
  428. })
  429. }
  430. })
  431. //币别
  432. this.getWorkDicts("currency").then(res =>{
  433. this.currencyDic = res.data.data
  434. })
  435. this.detailData.disabled && (this.editDisable = true)
  436. if (this.detailData.id) {
  437. this.buttonLoading = true
  438. this.id = this.detailData.id;//字符串转数字 超长用BigInt
  439. getDetail(this.id).then(res => {
  440. this.afterEcho(res.data.data)
  441. }).finally(()=>{
  442. this.buttonLoading = false
  443. })
  444. }else{
  445. this.form.financeStatus = "待结算"
  446. this.oldForm.financeStatus = "待结算"
  447. }
  448. },
  449. mounted() {
  450. },
  451. methods: {
  452. //选择客户
  453. returnBack(corpValue){
  454. this.corpId = corpValue.id
  455. getlistBankBy(corpValue.id).then(res =>{
  456. this.$set(this.form,"bankList",res.data)
  457. })
  458. // 溢付款余额获取
  459. if (this.category == 2) {
  460. getCorpDetail({corpId:corpValue.id}).then(res => {
  461. this.form.overPayment = res.data.data? res.data.data.balanceOverpaymen: 0
  462. })
  463. }
  464. },
  465. //选择卡号
  466. accountNoChange(value){
  467. this.form.bankList.forEach(item =>{
  468. if(item.accountNo == value){
  469. this.$set(this.form,"accountBank",item.accountBank)
  470. this.$set(this.form,"accountName",item.accountName)
  471. }
  472. })
  473. },
  474. selectRecipt(){
  475. if(!this.form.corpId){
  476. this.$message.warning("请先选择客户!")
  477. return
  478. }
  479. this.params = {
  480. corpId: this.form.corpId
  481. }
  482. this.billDetailDialog = true;
  483. },
  484. closeBillDetail(){
  485. this.billDetailDialog = false;
  486. },
  487. importProMent(list){
  488. list.forEach((item,index) =>{
  489. item.accId = item.id;
  490. item.srcOrderno = item.accSysNo
  491. item.billNo = item.srcBillNo
  492. delete item.id;
  493. this.$refs.crud.rowCellAdd(item);
  494. })
  495. //明细列表所有合同号 去重 加, 为主表合同号
  496. this.$set(this.form,'srcOrderno',Array.from(new Set(this.dataList.map(item =>{ return item.srcOrderno}))).join(','))
  497. this.billDetailDialog = false;
  498. },
  499. rowUpdate(row, index, done) {
  500. done(row);
  501. },
  502. rowCell(row,index){
  503. // row.$cellEdit = !row.$cellEdit
  504. this.$refs.crud.rowCell(row, index)
  505. },
  506. rowDel(row,index){
  507. if (row.id) {
  508. deleteDetail({ids: row.id}).then(res => {
  509. this.$message({
  510. type: "success",
  511. message: "操作成功!"
  512. });
  513. this.dataList.splice(index, 1);
  514. })
  515. } else {
  516. this.dataList.splice(index, 1);
  517. }
  518. },
  519. searchReset() {
  520. console.log('1')
  521. },
  522. selectionChange() {
  523. console.log('1')
  524. },
  525. currentChange() {
  526. console.log('1')
  527. },
  528. sizeChange() {
  529. console.log('1')
  530. },
  531. refreshChange() {
  532. console.log('1')
  533. },
  534. confirmSettlement(status){
  535. if (!this.form.corpId) return this.$message.error('往来单位不能为空')
  536. this.$refs["form"].validate((valid,done) => {
  537. done();
  538. if(valid && this.verificationData()){
  539. this.$confirm("是否确认收费?", "提示", {
  540. confirmButtonText: "确认",
  541. cancelButtonText: "取消",
  542. type: "warning",
  543. }).then(()=>{
  544. for (let i = 0; i < this.dataList.length; i++) {
  545. if (this.dataList[i].thisAmount == null || this.dataList[i].thisAmount == 0 ) {
  546. return this.$message.error(`第${i + 1}行的本次金额不能为空`);
  547. }
  548. }
  549. this.buttonLoading = true
  550. this.form.billNo = this.dataList.map(item =>{return item.billNo}).join(",")
  551. if (this.category == 2 && this.financeDisabled) {
  552. this.allAmount = 0;
  553. this.form.amount = this.form.amount? this.form.amount: 0
  554. this.dataList.forEach(e => {
  555. this.allAmount = Number(this.allAmount) + Number(e.thisAmount)
  556. })
  557. if (this.allAmount == 0 && this.form.amount == 0) {
  558. return this.$message.error('人民币金额不能为空')
  559. } else if (Number(this.allAmount) > 0 && (Number(this.form.amount) > Number(this.allAmount))) {
  560. this.form.caseOverPayment = 0;
  561. } else if (Number(this.allAmount) > 0 && (Number(this.form.amount) < Number(this.allAmount))) {
  562. this.form.caseOverPayment = Number(this.allAmount) - Number(this.form.amount)
  563. if (Number(this.form.caseOverPayment) > Number(this.form.overPayment)) {
  564. return this.$message.error('溢付款余额不足,无法收费')
  565. }
  566. }
  567. }
  568. const params = {
  569. ...this.form,
  570. billType:"收费",
  571. itemsList:this.dataList
  572. }
  573. if(this.financeDisabled){
  574. modify(params).then(res =>{
  575. this.$message.success("操作成功!")
  576. this.afterEcho(res.data.data)
  577. }).finally(()=>{
  578. this.buttonLoading = false
  579. })
  580. }else{
  581. cancelModify(params).then(res =>{
  582. this.$message.success("操作成功!")
  583. this.afterEcho(res.data.data)
  584. }).finally(()=>{
  585. this.buttonLoading = false
  586. })
  587. }
  588. })
  589. if(status === true){
  590. this.$emit("goBack");
  591. }
  592. }
  593. })
  594. },
  595. saveSettlement(){
  596. this.$refs["form"].validate((valid,done) => {
  597. done();
  598. if(valid){
  599. for (let i = 0; i < this.dataList.length; i++) {
  600. if (this.dataList[i].thisAmount === (null || "")) {
  601. return this.$message.error(`第${i + 1}行的本次金额不能为空`);
  602. }
  603. }
  604. this.buttonLoading = true
  605. this.form.billNo = this.dataList.map(item =>{return item.billNo}).join(",")
  606. const params = {
  607. ...this.form,
  608. billType:"收费",
  609. itemsList:this.dataList,
  610. settlementType:1
  611. }
  612. // 如果有id解锁,没有跳过
  613. this.form.id && this.unLock({moduleName: 'sf',tableName: 'finance_settlement', billId: this.form.id})
  614. saveOrEdit(params).then(res=>{
  615. this.$message.success("操作成功!")
  616. this.detailData.disabled = true
  617. this.editDisable = true
  618. this.afterEcho(res.data.data)
  619. }).finally(()=>{
  620. this.buttonLoading = false
  621. })
  622. }})
  623. },
  624. async afterEcho(data){
  625. this.form = data;
  626. // 溢付款余额获取
  627. if (this.category == 2) {
  628. await getCorpDetail({corpId: this.form.corpId}).then(res => {
  629. if (Number(this.form.overPayment) != (res.data.data? res.data.data.balanceOverpaymen: '0.00')) {
  630. this.form.overPayment = res.data.data? res.data.data.balanceOverpaymen: '0.00'
  631. }
  632. })
  633. }
  634. this.oldForm = Object.assign({},this.form);
  635. this.financeDisabled = this.form.financeStatus === "待结算"?true:false;
  636. if(this.financeDisabled || !this.editDisable){
  637. this.option.column.forEach(item =>{
  638. if( item.prop === "remark"){
  639. this.$set(item,"disabled",false)
  640. }else if( item.prop === "createUserName" || item.prop === "createTime" || item.prop === "sysNo" || item.prop === "overPayment"){
  641. this.$set(item,"disabled",true)
  642. }else{
  643. this.$set(item,"disabled",false)
  644. }
  645. })
  646. }
  647. if(this.financeDisabled === false || this.editDisable){
  648. this.option.column.forEach(item =>{
  649. if( item.prop === "remark"){
  650. this.$set(item,"disabled",false)
  651. }else if( item.prop === "createUserName" || item.prop === "createTime" || item.prop === "sysNo"){
  652. this.$set(item,"disabled",true)
  653. }else{
  654. this.$set(item,"disabled",true)
  655. }
  656. })
  657. }
  658. if(data.itemsList){
  659. this.dataList = data.itemsList
  660. this.oldDataList = this.deepClone(data.itemsList)
  661. }
  662. },
  663. verificationData(){
  664. if(contrastObj(this.form,this.oldForm) || contrastList(this.dataList,this.oldDataList)
  665. ){
  666. this.$confirm("数据发生变化,请先提交保存!", "提示", {
  667. confirmButtonText: "保存",
  668. cancelButtonText: "取消",
  669. type: "warning",
  670. }).then(() => {
  671. this.saveSettlement()
  672. }).catch(()=>{
  673. return false
  674. })
  675. }else{
  676. return true
  677. }
  678. },
  679. backToList(){
  680. if(contrastObj(this.form,this.oldForm) || contrastList(this.dataList,this.oldDataList)
  681. ){
  682. this.$confirm("是否保存当前页面?", "提示", {
  683. confirmButtonText: "保存",
  684. cancelButtonText: "取消",
  685. type: "warning",
  686. }).then(() => {
  687. this.saveSettlement()
  688. }).catch(()=>{
  689. this.$emit("goBack");
  690. })
  691. }else{
  692. this.$emit("goBack");
  693. }
  694. },
  695. // 溢付款更改时
  696. caseOverPaymentChange() {
  697. if (!this.form.caseOverPayment) this.form.caseOverPayment = 0;
  698. if (Number(this.form.caseOverPayment) > Number(this.form.overPayment)) {
  699. this.form.caseOverPayment = 0;
  700. return this.$message.error('本次使用的溢付款不能超过总溢付款')
  701. }
  702. },
  703. // 发送消息
  704. postMessage() {
  705. this.messageVisble = true
  706. this.$nextTick(() => {
  707. this.$refs.messagePost.init()
  708. })
  709. },
  710. closeDialog() {
  711. this.messageVisble = false
  712. },
  713. editHandle() {
  714. const data = {
  715. moduleName: 'sf',
  716. tableName: 'finance_settlement',
  717. billId: this.form.id,
  718. no: localStorage.getItem('browserID')
  719. }
  720. this.checkLock(data).then(res => {
  721. if (res.data.code == 200) {
  722. this.onLock(data).then(response => {
  723. })
  724. this.detailData.disabled = false;
  725. this.editDisable = false;
  726. this.buttonLoading = true
  727. getDetail(this.form.id).then(data => {
  728. this.afterEcho(data.data.data)
  729. }).finally(()=>{
  730. this.buttonLoading = false
  731. })
  732. }
  733. }).catch(error => {
  734. }).finally(() => {
  735. this.buttonLoading = false
  736. })
  737. },
  738. }
  739. }
  740. </script>
  741. <style lang="scss" scoped>
  742. ::v-deep .el-form-item {
  743. margin-bottom: 0;
  744. }
  745. .trading-form ::v-deep .el-form-item {
  746. margin-bottom: 8px !important;
  747. }
  748. .required_fields{
  749. color: #F56C6C;
  750. display:inline-block;
  751. width: 7%
  752. }
  753. .upper_right_button{
  754. display: flex;
  755. position: fixed;
  756. right: 12px;
  757. top: 47px;
  758. }
  759. </style>