refund.vue 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. <template>
  2. <view class="">
  3. <u-navbar title="申请退款" :placeholder="true" :autoBack="true" :safeAreaInsetTop="true">
  4. </u-navbar>
  5. <view class="page-wrap">
  6. <view class="box">
  7. <u--form labelPosition="left" :model="model" labelWidth="160rpx" :rules="rules" ref="uForm">
  8. <u-form-item required label="退款原因" borderBottom @click="showRefundReason = true;"
  9. ref="refundReason">
  10. <text v-if="model.refundReason">{{model.refundReason}}</text>
  11. <text v-else style="color: #999;">请选择退款原因</text>
  12. <!-- <u--input v-model="model.refundReason" disabledColor="#ffffff" placeholder="请选择退款原因"
  13. border="none"></u--input> -->
  14. <u-icon slot="right" name="arrow-right"></u-icon>
  15. </u-form-item>
  16. <u-form-item label="补充说明">
  17. <u--textarea v-model="model.remark" placeholder="请输入内容" ></u--textarea>
  18. </u-form-item>
  19. </u--form>
  20. </view>
  21. <view class="full-btn" @click="submit">提交申请</view>
  22. </view>
  23. <u-action-sheet :show="showRefundReason" :actions="actions" title="请选择退款原因"
  24. @close="showRefundReason = false" @select="reasonSelect">
  25. </u-action-sheet>
  26. </view>
  27. </template>
  28. <script>
  29. export default {
  30. data() {
  31. return {
  32. model: {
  33. orderId:'',
  34. refundReason:'',
  35. remark:''
  36. },
  37. showRefundReason:false,
  38. actions: [
  39. {name: '不想要了'},
  40. {name: '拍错了'},
  41. {name: '商家联系缺货'},
  42. ],
  43. rules: {
  44. 'model.refundReason': {
  45. type: 'string',
  46. required: true,
  47. message: '请选择退款原因',
  48. trigger: ['blur', 'change']
  49. }
  50. },
  51. }
  52. },
  53. onReady() {
  54. //如果需要兼容微信小程序,并且校验规则中含有方法等,只能通过setRules方法设置规则。
  55. // this.$refs.uForm.setRules(this.rules)
  56. },
  57. onShow() {},
  58. onLoad(page) {
  59. console.log('page',page);
  60. this.model.orderId = page.id;
  61. },
  62. methods: {
  63. sexSelect(e) {
  64. this.model1.userInfo.sex = e.name
  65. this.$refs.uForm.validateField('userInfo.sex')
  66. },
  67. reasonSelect(e){
  68. // console.log('reasonSelect',e);
  69. this.model.refundReason = e.name;
  70. },
  71. submit() {
  72. // console.log('model',this.model);
  73. if(!this.model.orderId){uni.$u.toast('没有订单ID');return}
  74. if(!this.model.refundReason){uni.$u.toast('请选择退款原因');return}
  75. this.$u.api.refundSubmit(this.model).then(res=>{
  76. uni.$u.toast(res.msg)
  77. uni.navigateBack()
  78. console.log('res',res.data);
  79. }).catch(err=>{
  80. console.log('refundSubmit',err);
  81. })
  82. // this.$refs.uForm.validate().then(res => {
  83. // // uni.$u.toast('校验通过')
  84. // this.$u.api.refundSubmit({id:id}).then(res=>{
  85. // uni.$u.toast(res.msg)
  86. // uni.navigateBack()
  87. // console.log('res',res.data);
  88. // }).catch(err=>{
  89. // console.log('refundSubmit',err);
  90. // })
  91. // }).catch(errors => {
  92. // uni.$u.toast('校验失败')
  93. // })
  94. }
  95. }
  96. }
  97. </script>
  98. <style>
  99. page{
  100. background-color: #F5F5F5;
  101. }
  102. </style>
  103. <style lang="scss" scoped>
  104. .box{
  105. background: #FFFFFF;
  106. border-radius: 8rpx;
  107. padding: 20rpx;
  108. }
  109. </style>