batchOrder.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706
  1. <template>
  2. <div class="two-child">
  3. <!-- 新增回款信息 -->
  4. <Modal title="新增回款信息" v-model="asdShow" class-name="order-model other-model batch-model" :mask-closable="false"
  5. @on-visible-change="visibleChange">
  6. <Form ref="returnCash" :model="returnCash" :rules="ruleValidate" :show-message="true" :label-width="120">
  7. <h3>关联回款流水</h3>
  8. <FormItem label="支付方式" prop="payType">
  9. <Select v-model="returnCash.payType" @on-change="payTypeChange" placeholder="请选择支付方式">
  10. <Option v-for="item in payCashStatus" :value="item.v" :key="item.v">{{ item.n }}</Option>
  11. </Select>
  12. </FormItem>
  13. <FormItem v-if="returnCash.payType == '3'" label="银行流水号" prop="serialNumber">
  14. <Input style="width:400px" v-model="returnCash.serialNumber"
  15. :placeholder="returnCash.flowType ? '请输入银行流水号' : '请选择银行流水号'" @click.native="serialChange"
  16. :readonly="!returnCash.flowType"></Input>
  17. <Checkbox style="margin-left:20px" v-model="returnCash.flowType" @on-change="flowTypeChange">
  18. <span>手动录入</span>
  19. </Checkbox>
  20. </FormItem>
  21. <div v-if="(returnCash.serialNumber && !hShow || returnCash.flowType) || returnCash.payType != '3'">
  22. <div v-if="returnCash.payType == '3'">
  23. <FormItem label="支付户名" prop="payAccountName">
  24. <Input v-model="returnCash.payAccountName" :readonly="!returnCash.flowType"></Input>
  25. </FormItem>
  26. <FormItem label="回款银行" prop="returnBank">
  27. <Input v-model="returnCash.returnBank" :readonly="true"></Input>
  28. </FormItem>
  29. </div>
  30. <div v-else>
  31. <FormItem label="支付单号" prop="returnCode">
  32. <Input v-model="returnCash.returnCode"></Input>
  33. </FormItem>
  34. </div>
  35. <FormItem label="回款时间" prop="returnTime">
  36. <DatePicker type="datetime" v-model="returnCash.returnTime" format="yyyy-MM-dd HH:mm:ss"
  37. :readonly="!returnCash.flowType && returnCash.payType == '3'"></DatePicker>
  38. </FormItem>
  39. <FormItem label="流水金额(元)" prop="serialCash">
  40. <Input v-model="returnCash.serialCash" @on-keyup="returnCash.serialCash = conHandler(returnCash.serialCash)"
  41. :readonly="!returnCash.flowType && returnCash.payType == '3'"></Input>
  42. </FormItem>
  43. <FormItem label="支付凭证">
  44. <b-upload ref="uploadRef1" @fileData="fileData" :placeholdered="'请上传凭证'" :accepted="'.jpg,.png,.jpeg'"
  45. :formated="['jpg', 'png', 'jpeg']" :multipled="false"></b-upload>
  46. </FormItem>
  47. <h3>关联订单回款明细</h3>
  48. <Table ellipsis size="small" class="batch-tab-b" :loading="loading2" :columns="columns2" :data="selectData"
  49. show-summary :summary-method="handleSummary" v-if="!hShow" border></Table>
  50. <FormItem label="回款说明" style="margin-top:20px">
  51. <Input type="textarea" v-model="returnCash.remark" placeholder="无回款说明" :autosize="{ minRows: 2, maxRows: 5 }"
  52. :readonly="!returnCash.flowType && returnCash.payType == '3'"></Input>
  53. </FormItem>
  54. </div>
  55. </Form>
  56. <div slot="footer">
  57. <Button type="primary" size="large" @click="batchConfirm" :disabled="isDisable">确定</Button>
  58. <Button size="large" @click="visibleChange(false)">取消</Button>
  59. </div>
  60. </Modal>
  61. <!-- 回款流水弹框 -->
  62. <Modal title="回款流水" v-model="hShow" class-name="order-model other-model" :mask-closable="false">
  63. <Input v-model="searVal" search enter-button="搜索" class="inpt-sear" @on-search="onSearch"
  64. placeholder="请输入户名查询回款流水" />
  65. <Table ellipsis :loading="loading1" :columns="columns" :data="selectList" :border="false"></Table>
  66. <Page :current="page" :page-size="pageSize" :total="total" @on-change="changePage" v-show="total > 10" />
  67. <div slot="footer">
  68. <Button type="primary" size="large" @click="onConfirm" :disabled="isDisable">确定</Button>
  69. <Button size="large" @click="hShow = false">取消</Button>
  70. </div>
  71. </Modal>
  72. </div>
  73. </template>
  74. <script>
  75. import bUpload from '@/components/uploadFile.vue'
  76. import { dateFormatter } from '@/assets/js/date.js'
  77. export default {
  78. props: {
  79. selectData: {},
  80. status: Boolean,
  81. bookLevel: String
  82. },
  83. components: {
  84. bUpload
  85. },
  86. methods: {
  87. conHandler(val) {
  88. return val.match(/\d+(\.\d{0,2})?/) ? val.match(/\d+(\.\d{0,2})?/)[0] : ''
  89. },
  90. payTypeChange(val) {
  91. if (val !== '3') {
  92. this.returnCash.flowType = true
  93. this.returnCash.serialNumber = ''
  94. this.returnCash.returnTime = ''
  95. this.returnCash.serialCash = ''
  96. this.returnCash.returnVoucherUrl = ''
  97. this.returnCash.remark = ''
  98. } else {
  99. this.returnCash.flowType = false
  100. }
  101. },
  102. flowTypeChange(val) {
  103. if (val) {
  104. // this.$refs.returnCash.resetFields()
  105. this.returnCash = {
  106. flowType: true,
  107. payType: '3',
  108. serialNumber: '',
  109. returnTime: '',
  110. returnBank: '广发银行北京顺义支行',
  111. serialCash: '',
  112. returnVoucherUrl: '',
  113. remark: ''
  114. }
  115. this.surplusData()
  116. }
  117. },
  118. fixedNum(val) {
  119. return val ? Number(parseFloat(val * 100).toFixed(0)) : 0
  120. },
  121. inited() {
  122. Object.keys(this.returnCash).forEach(key => {
  123. if (key == 'payType') {
  124. return
  125. } if (key == 'flowType') {
  126. this.returnCash[key] = false
  127. } else {
  128. this.returnCash[key] = ''
  129. }
  130. })
  131. },
  132. init() {
  133. const arr1 = [], arr2 = [], arr3 = []
  134. this.selectData.forEach(v => {
  135. if (v.company_name || v.id) {
  136. arr1.push(v.company_name)
  137. arr2.push(v.id)
  138. arr3.push({
  139. orderId: v.id
  140. })
  141. }
  142. })
  143. this.selectName = arr1[0]
  144. this.selectId = arr2
  145. this.selectOrderId = arr3
  146. },
  147. localed(val) {
  148. return val.toLocaleString('zh', { style: 'currency', currency: 'CNY' })
  149. },
  150. surplusData() {
  151. console.log('============')
  152. this.init()
  153. this.$request('/order/surplusPrice').data(
  154. {
  155. orderArr: this.selectOrderId
  156. }
  157. ).success((res) => {
  158. if (res.data) {
  159. this.allPrice = res.data.price
  160. this.orderAtr = res.data.orderArr
  161. console.log(parseInt(this.huiIds.TRSBAL * 100), res.data.price)
  162. if (parseInt(this.huiIds.TRSBAL * 100) > res.data.price) {
  163. this.$Notice.warning({
  164. title: '警告提示',
  165. desc: "订单回款失败,回款金额不符合!",
  166. duration: 5
  167. })
  168. return
  169. } else {
  170. console.log(this.huiIds)
  171. if (!this.returnCash.flowType) {
  172. this.returnCash.serialNumber = this.huiIds.BNKFLW
  173. this.returnCash.returnTime = String(this.huiIds.BNKTIM)
  174. this.returnCash.returnBank = this.huiIds.BNKNAM
  175. this.returnCash.serialCash = this.huiIds.TRSBAL || 0
  176. this.returnCash.payAccountName = this.huiIds.OTHNAM
  177. this.returnCash.remark = this.huiIds.NUSAGE
  178. setTimeout(() => {
  179. this.hShow = false
  180. }, 500)
  181. }
  182. }
  183. console.log(parseInt(this.returnCash.serialCash * 100), res.data.price)
  184. let arrs = this.selectData.length
  185. this.selectData.forEach((v, i) => {
  186. res.data.orderArr.forEach(s => {
  187. if (String(s.orderId) === String(v.id)) {
  188. v.no_return_monery = s.money / 100
  189. if (parseInt(this.returnCash.serialCash * 100) == res.data.price) {
  190. v._readonly = true
  191. if (this.selectData.length > 1 || this.selectData.length === 1) {
  192. v.monery = ''
  193. v.monery += (s.money / 100).toString()
  194. console.log(v.monery)
  195. } else {
  196. v.monery += ''
  197. }
  198. } else if (parseInt(this.returnCash.serialCash * 100) < res.data.price) {
  199. v.monery = ''
  200. console.log(this.returnCash.flowType)
  201. if (this.selectData.length > 1 && arrs == i + 1) {
  202. v._readonly = true
  203. } else {
  204. console.log(parseInt(this.returnCash.serialCash * 100), res.data.price)
  205. v._readonly = false
  206. this.$set(v, i, false)
  207. }
  208. }
  209. }
  210. })
  211. })
  212. }
  213. }).post()
  214. },
  215. handleSummary({ columns }) {
  216. const sums = {}
  217. columns.forEach((column, index) => {
  218. const key = column.key
  219. if (index === 0) {
  220. sums[key] = {
  221. key,
  222. value: '总价'
  223. }
  224. return
  225. }
  226. console.log(this.selectData)
  227. const values = this.selectData.map(item => Number(item[key]))
  228. if (!values.every(value => isNaN(value))) {
  229. const v = values.reduce((prev, curr) => {
  230. const value = Number(curr)
  231. if (!isNaN(value)) {
  232. return prev + curr
  233. } else {
  234. return prev
  235. }
  236. }, 0)
  237. sums[key] = {
  238. key,
  239. value: v
  240. }
  241. } else {
  242. sums[key] = {
  243. key,
  244. value: ''
  245. }
  246. }
  247. })
  248. this.selectData.forEach((v, i) => {
  249. this.orderAtr.forEach(s => {
  250. if (String(s.orderId) === String(v.id)) {
  251. if (this.returnCash.flowType && (parseInt(this.returnCash.serialCash * 100) == this.allPrice)) {
  252. v.monery = ''
  253. v.monery += (s.money / 100).toString()
  254. v._readonly = true
  255. this.$set(v, i, true)
  256. console.log(v.monery)
  257. } else if (this.returnCash.flowType && (parseInt(this.returnCash.serialCash * 100) < this.allPrice)) {
  258. if (v._readonly) {
  259. v.monery = ''
  260. v._readonly = false
  261. this.$set(v, i, false)
  262. }
  263. }
  264. }
  265. })
  266. })
  267. if (parseInt(this.returnCash.serialCash * 100) < this.allPrice) {
  268. setTimeout(() => {
  269. let lastVal = document.getElementById('re-moey' + (this.selectData.length - 1))
  270. lastVal.value = this.returnCash.serialCash - sums.monery.value.toFixed(2)
  271. lastVal.setAttribute('readonly', true)
  272. }, 0)
  273. this.lastVal = sums.monery.value
  274. }
  275. return sums
  276. },
  277. getData(val) {
  278. this.init()
  279. this.loading1 = true
  280. let obj = {
  281. offset: (this.page - 1) * this.pageSize,
  282. pageSize: this.pageSize,
  283. corporateName: val ? val : this.selectName
  284. }
  285. this.$request('/order/collectionFlow').data(obj).success((res) => {
  286. if (res.data.list) {
  287. this.selectList = res.data.list
  288. this.total = res.data.total
  289. this.loading1 = false
  290. this.hShow = true
  291. this.flage = false
  292. }
  293. }).post()
  294. },
  295. changePage(page) {
  296. this.page = page
  297. this.pageSize = 10
  298. this.getData(this.searVal)
  299. },
  300. onSearch(val) {
  301. this.page = 1
  302. this.getData(val)
  303. },
  304. serialChange() {
  305. if (this.returnCash.flowType) {
  306. return
  307. }
  308. if (this.flage) {
  309. this.searVal = this.selectData[0].company_name
  310. this.getData(this.searVal)
  311. } else {
  312. this.hShow = true
  313. }
  314. },
  315. fileData(val) {
  316. this.returnCash.returnVoucherUrl = val
  317. },
  318. onConfirm() {
  319. if (this.huiIds.length == 0) {
  320. this.$Notice.warning({
  321. title: '警告提示',
  322. desc: "至少选择一项!",
  323. duration: 5
  324. })
  325. return
  326. }
  327. this.surplusData()
  328. },
  329. batchConfirm() {
  330. console.log(this.returnCash)
  331. const arr1 = [], arr2 = []
  332. let arr3 = []
  333. this.selectData.forEach(v => {
  334. arr1.push(this.fixedNum(v.monery))
  335. arr2.push({
  336. orderId: v.id,
  337. money: this.fixedNum(v.monery),
  338. })
  339. })
  340. arr3 = arr1.splice(0, arr1.length - 1)
  341. if (this.returnCash.serialCash * 100 < this.allPrice) {
  342. arr2[arr2.length - 1].money = this.fixedNum(this.returnCash.serialCash - this.lastVal)
  343. }
  344. let obj = {}
  345. if (this.returnCash.payType == '3') {// 对公转账
  346. obj = {
  347. transactionId: this.huiIds.id ? String(this.huiIds.id) : 0,
  348. orderArr: arr2,
  349. returnVoucherUrl: this.returnCash.returnVoucherUrl,
  350. returnType: this.returnCash.payType,
  351. flowType: this.returnCash.flowType ? 1 : 0,
  352. returnRemarks: this.returnCash.remark,
  353. returnMoney: this.fixedNum(this.returnCash.serialCash),
  354. payAccountName: this.returnCash.payAccountName,
  355. BNKTIM: dateFormatter(this.returnCash.returnTime),
  356. BNKFLW: this.returnCash.serialNumber,
  357. BNKNAM: this.returnCash.returnBank,
  358. returnCode: this.returnCash.returnCode
  359. }
  360. } else {// 微信、支付宝
  361. obj = {
  362. transactionId: this.huiIds.id ? String(this.huiIds.id) : 0,
  363. orderArr: arr2,
  364. returnVoucherUrl: this.returnCash.returnVoucherUrl,
  365. returnType: this.returnCash.payType,
  366. flowType: 1,
  367. BNKTIM: dateFormatter(this.returnCash.returnTime),
  368. returnRemarks: this.returnCash.remark,
  369. returnMoney: this.fixedNum(this.returnCash.serialCash),
  370. returnCode: this.returnCash.returnCode
  371. }
  372. }
  373. console.log(obj)
  374. this.$refs.returnCash.validate((valid) => {
  375. console.log(valid)
  376. if (valid) {
  377. if (arr3.indexOf(0) > -1) {
  378. this.$Notice.warning({
  379. title: '警告提示',
  380. desc: "请输入关联订单回款金额!"
  381. })
  382. return
  383. }
  384. if (this.returnCash.serialCash < this.lastVal) {
  385. this.$Notice.warning({
  386. title: '警告提示',
  387. desc: "回款金额不能为负数!"
  388. })
  389. return
  390. }
  391. this.isDisable = true
  392. this.$request('/order/editBatchReturnMoneyInfo').data(obj).success((res) => {
  393. this.hShow = false
  394. this.asdShow = false
  395. this.isDisable = false
  396. this.huiIds = []
  397. this.$Notice.success({
  398. title: '回款结果',
  399. desc: res.data.msg || "订单回款成功!",
  400. duration: 5
  401. })
  402. this.$emit('onChange')
  403. }).post()
  404. }
  405. })
  406. },
  407. visibleChange(val) {
  408. this.$refs.returnCash.resetFields()
  409. this.returnCash = {
  410. flowType: false,
  411. payType: '3',
  412. serialNumber: '',
  413. returnTime: '',
  414. returnBank: '广发银行北京顺义支行',
  415. serialCash: '',
  416. returnVoucherUrl: '',
  417. remark: ''
  418. }
  419. if (val) {
  420. this.flage = true
  421. this.surplusData()
  422. return
  423. } else {
  424. this.hShow = false
  425. this.asdShow = false
  426. this.huiIds = []
  427. this.page = 1
  428. this.pageSize = 10
  429. setTimeout(() => {
  430. this.selectList = []
  431. this.inited()
  432. }, 300)
  433. }
  434. }
  435. },
  436. data() {
  437. const validateSequence = (rule, value, callback) => {
  438. if (this.returnCash.flowType && value == '') {
  439. callback(new Error('请输入银行流水号'))
  440. } else {
  441. callback()
  442. }
  443. }
  444. const valTime = (rule, value, callback) => {
  445. if (value == '') {
  446. callback(new Error('请选择回款时间'))
  447. } else {
  448. callback()
  449. }
  450. }
  451. const validCash = (rule, value, callback) => {
  452. if (value == '') {
  453. callback(new Error('请输入流水金额'))
  454. } if (parseInt(this.returnCash.serialCash * 100) > this.allPrice) {
  455. // callback(new Error('流水金额不能大于未回款金额'))
  456. callback(new Error('流水金额需 <= ' + this.allPrice / 100))
  457. } else {
  458. callback()
  459. }
  460. }
  461. return {
  462. hShow: false,
  463. asdShow: false,
  464. loading1: false,
  465. loading2: false,
  466. isDisable: false,
  467. page: 1,
  468. flage: true,
  469. searVal: '',
  470. pageSize: 10,
  471. total: 0,
  472. selectId: [],
  473. selectOrderId: [],
  474. selectName: [],
  475. selectList: [],
  476. huiIds: [],
  477. orderAtr: [],
  478. allPrice: 0,
  479. returnCash: {
  480. flowType: false,
  481. payType: '3',
  482. serialNumber: '',
  483. returnTime: '',
  484. returnBank: '广发银行北京顺义支行',
  485. serialCash: '',
  486. returnVoucherUrl: '',
  487. remark: ''
  488. },
  489. lastVal: 0,
  490. sums: 0,
  491. ruleValidate: {
  492. payType: [{ required: true, message: '请选择支付方式', trigger: 'change' }],
  493. serialNumber: [{ required: true, validator: validateSequence, trigger: 'blur' }],
  494. payAccountName: [{ required: true, message: '请输入支付户名', trigger: 'blur' }],
  495. returnBank: [{ required: true, message: '请输入回款银行', trigger: 'blur' }],
  496. returnCode: [{ required: true, message: '请输入支付单号', trigger: 'blur' }],
  497. returnTime: [{ required: true, type: 'datetime', validator: valTime, trigger: 'blur' }],
  498. serialCash: [{ required: true, validator: validCash, trigger: 'blur' }]
  499. },
  500. payCashStatus: [
  501. { v: '1', n: '微信' },
  502. { v: '2', n: '支付宝' },
  503. { v: '3', n: '对公转账' }
  504. ],
  505. columns: [
  506. {
  507. title: '#',
  508. type: 'checkBox',
  509. width: 40,
  510. align: 'center',
  511. render: (h, params) => {
  512. return h('div', [
  513. h('Checkbox', {
  514. props: {
  515. value: params.row.checkBox
  516. },
  517. on: {
  518. 'on-change': (e) => {
  519. this.selectList.forEach((items) => {
  520. this.$set(items, 'checkBox', false)
  521. })
  522. this.selectList[params.index].checkBox = e
  523. this.huiIds = params.row
  524. }
  525. }
  526. })
  527. ])
  528. }
  529. },
  530. {
  531. title: '金额(元)',
  532. key: 'TRSBAL',
  533. align: 'center'
  534. },
  535. {
  536. title: '户名',
  537. key: 'OTHNAM',
  538. align: 'center'
  539. },
  540. {
  541. title: '到账时间',
  542. key: 'BNKTIM',
  543. align: 'center'
  544. },
  545. {
  546. title: '银行流水号',
  547. key: 'BNKFLW',
  548. align: 'center',
  549. render: (h, { row }) => {
  550. return h('span', row.BNKFLW ? row.BNKFLW : '-')
  551. }
  552. }
  553. ],
  554. columns2: [
  555. {
  556. title: '序号',
  557. type: 'index',
  558. width: 80,
  559. align: 'center',
  560. },
  561. {
  562. title: '关联订单编号',
  563. key: 'order_code',
  564. align: 'center'
  565. },
  566. {
  567. title: '产品类型',
  568. key: 'product_type',
  569. width: '170',
  570. align: 'center',
  571. render: (h, { row }) => {
  572. let words = row.product_type
  573. // 超级订阅
  574. let vipType = ''
  575. let vipT = row.vip_type
  576. if (vipT == 0) {
  577. vipType = '(购买)'
  578. } else if (vipT == 1) {
  579. vipType = '(续费)'
  580. } else if (vipT == 2) {
  581. vipType = '(升级)'
  582. } else if (vipT == null) {
  583. if (row.pay_way == "trial") {
  584. vipType = '(试用)'
  585. } else {
  586. vipType = '(购买)'
  587. }
  588. } else if (vipT == 3) {
  589. vipType = '(试用)'
  590. }
  591. // 大会员
  592. let bigVip = ''
  593. if (row.filter) {
  594. let levels = JSON.parse(row.filter).level
  595. if (levels == 1) {
  596. bigVip = '(专家版)'
  597. } else if (levels == 2) {
  598. bigVip = '(智慧版)'
  599. } else if (levels == 3) {
  600. bigVip = '(商机版)'
  601. } else if (levels == 4) {
  602. bigVip = '(试用版)'
  603. } else if (levels == 6) {
  604. bigVip = '(商机版2.0)'
  605. } else if (levels == 7) {
  606. bigVip = '(专家版2.0)'
  607. }
  608. } else {
  609. bigVip = this.bookLevel
  610. }
  611. // 省份订阅包
  612. let bookType = ''
  613. let book = row.vip_type
  614. if (book == 1) {
  615. bookType = '(续费)'
  616. } else if (book == 2) {
  617. bookType = '(升级)'
  618. } else if (book == 0) {
  619. bookType = '(购买)'
  620. } else if (book == 3) {
  621. bookType = '(试用)'
  622. }
  623. if (words == 'VIP订阅' || words == 'vip订阅') {
  624. return h('span', '超级订阅' + vipType)
  625. } else if (words == '大会员') {
  626. return h('span', '大会员' + bigVip)
  627. } else if (words == '省份订阅包') {
  628. return h('span', '省份订阅包' + bookType)
  629. } else {
  630. return h('span', row.product_type)
  631. }
  632. }
  633. },
  634. {
  635. title: '未回款金额(元)',
  636. key: 'no_return_monery',
  637. align: 'center'
  638. },
  639. {
  640. title: '回款金额(元)',
  641. key: 'monery',
  642. align: 'center',
  643. width: '210',
  644. render: (h, { row, index }) => {
  645. return h('Input', {
  646. props: {
  647. elementId: 're-moey' + index,
  648. placeholder: '请输入关联订单回款金额',
  649. value: row.monery,
  650. readonly: row._readonly
  651. },
  652. on: {
  653. 'on-change': (e) => {
  654. this.selectData.forEach((v, i) => {
  655. if (row.id == v.id) {
  656. v.monery = e.target.value
  657. this.$set(v, i, e.target.value)
  658. }
  659. })
  660. console.log(this.selectData)
  661. }
  662. }
  663. })
  664. }
  665. }
  666. ]
  667. }
  668. }
  669. }
  670. </script>
  671. <style lang="scss" scoped>
  672. .ivu-page {
  673. text-align: right;
  674. margin-top: 20px;
  675. }
  676. h3 {
  677. margin-bottom: 20px;
  678. color: rgb(54, 163, 247);
  679. font-weight: 700;
  680. }
  681. ::v-deep #re-moey {
  682. text-align: center;
  683. }
  684. .inpt-sear {
  685. width: 500px;
  686. margin: 0 auto;
  687. margin-bottom: 14px;
  688. }
  689. ::v-deep .ivu-table-summary {
  690. display: none;
  691. }
  692. ::v-deep .ivu-table-overflowX {
  693. overflow: hidden;
  694. }
  695. </style>