dislogSet.vue 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. <template>
  2. <div>
  3. <BaseDialog
  4. width="600px"
  5. :isShow.sync="isShow"
  6. :title="ShowStatus() ? '付款审核' : '退款审核'"
  7. @close="close"
  8. @submit="submitForm"
  9. :confirmName="form.checkType === 2 ? '确定支付' : '确定'"
  10. >
  11. <template v-if="form.checkType === 1">
  12. <p style="margin-top: 0">申请时间:{{ $methodsTools.onlyForma(form.applyTime) }}</p>
  13. <p style="margin-top: 0" v-if="ShowStatus()">
  14. 订单单号:{{ form.orderSn }}
  15. </p>
  16. <p>
  17. <span class="color_1890ff">{{form.applyName}}</span>
  18. <span v-if="!ShowStatus()">,发起退款申请</span>
  19. </p>
  20. <div class="bgc_pink" v-if="ShowStatus()">
  21. <p>待付账款:<span class="color_red">¥252.00</span></p>
  22. <p>预付时间:2023-12-12 10:10:10</p>
  23. <p>剩余天数:10</p>
  24. </div>
  25. <div class="bgc_pink" v-else>
  26. <p>
  27. 本次退款金额:<span class="color_red">¥{{ form.refundFee }}</span>
  28. </p>
  29. <p>退款理由:{{ form.refundReason }}</p>
  30. </div>
  31. <el-form
  32. :model="formData"
  33. :rules="rules"
  34. ref="formData"
  35. label-width="100px"
  36. >
  37. <el-form-item prop="checkResult" label="审核结果:">
  38. <el-radio-group v-model="formData.checkResult">
  39. <el-radio label="1">同意</el-radio>
  40. <el-radio label="-1">拒绝</el-radio>
  41. </el-radio-group>
  42. </el-form-item>
  43. <el-form-item prop="checkReason" label="审核意见:">
  44. <el-input
  45. type="textarea"
  46. placeholder="请输入审核意见"
  47. v-model="formData.checkReason"
  48. ></el-input> </el-form-item
  49. ></el-form>
  50. <template slot="slotBtn">
  51. <el-button @click="auditProgress = true">审核进度</el-button>
  52. </template>
  53. <audit-progress :auditProgress.sync="auditProgress" :checkLogVos="form.checkLogVos"></audit-progress>
  54. </template>
  55. <template v-if="form.checkType === 2">
  56. <em>收款信息:</em>
  57. <p>开户名称:<em>广东中正教育科技有限公司</em></p>
  58. <p>开户银行:<em>农业银行燕塘支行</em></p>
  59. <p>收款账号:<em>4565 1561 1515 1222</em></p>
  60. <el-divider></el-divider>
  61. <em>订单信息:</em>
  62. <p>
  63. 支付金额:<span
  64. class="color_red"
  65. style="font-size: 28px; font-weight: 400"
  66. >¥ 5,107.49</span
  67. >
  68. </p>
  69. <p>
  70. 支付方式:<el-radio v-model="form.payType" :label="1"
  71. >微信支付</el-radio
  72. >
  73. <el-radio v-model="form.payType" :label="2" v-if="!ShowStatus()"
  74. >网银支付、对公转账</el-radio
  75. >
  76. </p>
  77. <p>下单时间:<em>2022-12-12</em></p>
  78. <p>订单单号:<em>54664666661464154</em></p>
  79. <el-divider></el-divider>
  80. <em>支付方式:</em>
  81. <el-tag type="success" v-if="form.payType === 1">原路返回</el-tag>
  82. <el-tag type="danger" v-if="form.payType === 2">网银支付</el-tag>
  83. </template>
  84. </BaseDialog>
  85. </div>
  86. </template>
  87. <script>
  88. import auditProgress from "@/components/audit/auditProgress.vue";
  89. export default {
  90. name: "DislogSet",
  91. components: {
  92. auditProgress,
  93. },
  94. props: {
  95. dialogVisible: {
  96. type: Boolean,
  97. default: false,
  98. },
  99. type: {
  100. type: Number,
  101. default: 0, //1付款 2退款
  102. },
  103. orderSn: {
  104. type: String,
  105. default: "",
  106. },
  107. },
  108. data() {
  109. return {
  110. auditProgress: false,
  111. formData: {
  112. checkResult: "",
  113. checkReason: "",
  114. },
  115. form: {
  116. checkLogVos: []
  117. },
  118. rules: {
  119. checkResult: [
  120. { required: true, message: "请选择审核结果", trigger: "change" },
  121. ],
  122. checkReason: [
  123. { required: true, message: "请输入审核意见", trigger: "blur" },
  124. ],
  125. },
  126. };
  127. },
  128. mounted() {},
  129. methods: {
  130. ShowStatus() {
  131. return this.type === 1 ? true : false;
  132. },
  133. init() {
  134. this.resetForm();
  135. if (this.id) {
  136. }
  137. this.$api.systemtoporderrefunddetail(this.orderSn).then((res) => {
  138. this.form = res.data;
  139. });
  140. },
  141. close() {
  142. if (this.form.checkType === 1) {
  143. this.$refs["formData"].resetFields();
  144. }
  145. },
  146. resetForm() {
  147. this.formData = {
  148. checkResult: "",
  149. checkReason: "",
  150. };
  151. },
  152. submitForm() {
  153. if (this.form.checkType === 2) {
  154. this.$confirm("确定支付账款吗?", "提示", {
  155. confirmButtonText: "确定",
  156. cancelButtonText: "取消",
  157. type: "warning",
  158. })
  159. .then(() => {
  160. this.isShow = false;
  161. this.$emit("search");
  162. this.$message({
  163. type: "success",
  164. message: "支付成功!",
  165. });
  166. })
  167. .catch(() => {});
  168. } else {
  169. this.$refs["formData"].validate((valid) => {
  170. if (valid) {
  171. this.$api
  172. .systemtoporderrefundcheck({
  173. orderSn: this.orderSn,
  174. ...this.formData,
  175. })
  176. .then((res) => {});
  177. this.isShow = false;
  178. this.$emit("search");
  179. } else {
  180. return false;
  181. }
  182. });
  183. }
  184. },
  185. },
  186. computed: {
  187. isShow: {
  188. get() {
  189. if (this.dialogVisible) {
  190. this.init();
  191. }
  192. return this.dialogVisible;
  193. },
  194. set(val) {
  195. this.$emit("update:dialogVisible", false);
  196. },
  197. },
  198. },
  199. };
  200. </script>
  201. <style lang="scss" scoped>
  202. .bgc_pink {
  203. padding: 10px;
  204. background-color: rgb(252, 234, 236);
  205. color: #000;
  206. }
  207. .color_red {
  208. font-weight: bold;
  209. color: rgb(235, 59, 59);
  210. }
  211. .color_1890ff {
  212. color: #1890ff;
  213. font-weight: bold;
  214. }
  215. em {
  216. font-weight: bold;
  217. color: #000;
  218. font-style: unset;
  219. }
  220. </style>