CancelForm.vue 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. <template>
  2. <a-modal
  3. :title="title"
  4. :width="560"
  5. :visible="visible"
  6. :isLoading="isLoading"
  7. :confirmLoading="isLoading"
  8. :maskClosable="false"
  9. @ok="handleSubmit"
  10. @cancel="handleCancel"
  11. >
  12. <a-spin :spinning="isLoading">
  13. <a-form :form="form">
  14. <a-form-item label="实付款金额" :labelCol="labelCol" :wrapperCol="wrapperCol">
  15. <span>¥{{ record.pay_price }}</span>
  16. </a-form-item>
  17. <a-form-item
  18. label="审核状态"
  19. :labelCol="labelCol"
  20. :wrapperCol="wrapperCol"
  21. extra="同意后将退回付款金额并关闭订单"
  22. >
  23. <a-radio-group v-decorator="['status', { initialValue: 1, rules: [{ required: true }] }]">
  24. <a-radio :value="1">同意</a-radio>
  25. <a-radio :value="0">拒绝</a-radio>
  26. </a-radio-group>
  27. </a-form-item>
  28. </a-form>
  29. </a-spin>
  30. </a-modal>
  31. </template>
  32. <script>
  33. import * as Api from '@/api/order/event'
  34. export default {
  35. data () {
  36. return {
  37. // 对话框标题
  38. title: '审核取消订单',
  39. // 标签布局属性
  40. labelCol: { span: 7 },
  41. // 输入框布局属性
  42. wrapperCol: { span: 13 },
  43. // modal(对话框)是否可见
  44. visible: false,
  45. // modal(对话框)确定按钮 loading
  46. isLoading: false,
  47. // 当前表单元素
  48. form: this.$form.createForm(this),
  49. // 当前记录
  50. record: {}
  51. }
  52. },
  53. created () {
  54. },
  55. methods: {
  56. /**
  57. * 显示对话框
  58. */
  59. show (record) {
  60. // 显示窗口
  61. this.visible = true
  62. // 当前记录
  63. this.record = record
  64. },
  65. /**
  66. * 确认按钮
  67. */
  68. handleSubmit (e) {
  69. e.preventDefault()
  70. // 表单验证
  71. const { form: { validateFields } } = this
  72. validateFields((errors, values) => {
  73. // 提交到后端api
  74. !errors && this.onFormSubmit(values)
  75. })
  76. },
  77. /**
  78. * 关闭对话框事件
  79. */
  80. handleCancel () {
  81. this.visible = false
  82. this.form.resetFields()
  83. },
  84. /**
  85. * 提交到后端api
  86. */
  87. onFormSubmit (values) {
  88. this.isLoading = true
  89. Api.confirmCancel({ orderId: this.record.order_id, form: values })
  90. .then((result) => {
  91. // 显示成功
  92. this.$message.success(result.message, 1.5)
  93. // 关闭对话框事件
  94. this.handleCancel()
  95. // 通知父端组件提交完成了
  96. this.$emit('handleSubmit', values)
  97. })
  98. .finally(() => {
  99. this.isLoading = false
  100. })
  101. }
  102. }
  103. }
  104. </script>