daiJiaoDanWeiHuiFei.vue 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. <template>
  2. <view class="container">
  3. <view class="form-box">
  4. <u-form :model="formData.form" ref="formRef" label-width="160" :label-style="{fontWeight: 'bold', fontSize: '26rpx'}">
  5. <u-form-item label="机构名称" prop="name"><u-input v-model="formData.form.name" :border="true" type="text" placeholder="请输入缴交机构名称"/></u-form-item>
  6. <u-form-item label="机构备案证号" prop="number"><u-input v-model="formData.form.number" :border="true" type="text" placeholder="请输入缴交对象机构备案证号"/></u-form-item>
  7. <u-form-item label="缴费年限" prop="year"><u-input v-model="formData.form.year" :border="true" type="select" @click="showYear = true" placeholder="请选择缴费时间"/></u-form-item>
  8. </u-form>
  9. </view>
  10. <u-select v-model="showYear" :list="yearList" @confirm="onYearConfirm"></u-select>
  11. <view class="bottom-box">
  12. <u-button type="error" shape="circle" @click="onSubmit">点击缴费</u-button>
  13. </view>
  14. </view>
  15. </template>
  16. <script setup>
  17. import { ref, reactive } from 'vue'
  18. import { onLoad, onReady } from '@dcloudio/uni-app'
  19. import { dept } from '@/api/cost.js'
  20. import { msgError } from '../../utils/common'
  21. const formRef = ref()
  22. const formData = reactive({
  23. form: {
  24. name: null, // 机构名称
  25. number: null, // 机构备案证号
  26. year: null // 缴费年限
  27. },
  28. rules: {
  29. name: [
  30. {
  31. required: true,
  32. message: '请输入缴交对象机构名称',
  33. // 可以单个或者同时写两个触发验证方式
  34. trigger: 'blur',
  35. }
  36. ],
  37. number: [
  38. {
  39. required: true,
  40. message: '请输入缴交对象机构备案证号',
  41. // 可以单个或者同时写两个触发验证方式
  42. trigger: 'blur',
  43. }
  44. ],
  45. year: [
  46. {
  47. required: true,
  48. message: '请输入缴费年限',
  49. // 可以单个或者同时写两个触发验证方式
  50. trigger: 'change',
  51. }
  52. ],
  53. }
  54. })
  55. const showYear = ref(false)
  56. const yearList = ref([
  57. {
  58. value: '2025',
  59. label: '2025'
  60. },
  61. {
  62. value: '2024',
  63. label: '2024'
  64. }
  65. ])
  66. function onYearConfirm(val) {
  67. formData.form.year = val[0].value
  68. }
  69. function onSubmit() {
  70. formRef.value.validate((valid) => {
  71. if (valid) {
  72. dept(formData.form).then(res => {
  73. if(res && res.message === 'success') {
  74. const data = res.data
  75. if (data.canPay) {
  76. uni.navigateTo({
  77. url: `/pages/daiJiaoDanWeiChaXunJieGuo/daiJiaoDanWeiChaXunJieGuo?name=${formData.form.name}&number=${formData.form.number}&year=${formData.form.year}&price=${data.duePrice}&userId=${data.userId}`
  78. })
  79. } else {
  80. msgError('无法代支付')
  81. }
  82. } else {
  83. msgError(res.message)
  84. }
  85. })
  86. }
  87. })
  88. }
  89. onReady(() => {
  90. formRef.value.setRules(formData.rules)
  91. })
  92. onLoad(() => {
  93. yearList.value = []
  94. const year = new Date().getFullYear()
  95. for (let i = 0; i < 10; i++) {
  96. yearList.value.push({
  97. value: `${year - i}`,
  98. label: `${year - i}`
  99. })
  100. }
  101. console.log('onLoad')
  102. })
  103. </script>
  104. <style lang="scss" scoped>
  105. .container {
  106. height: 100vh;
  107. width: 100vw;
  108. background-color: $uni-bg-color;
  109. padding: 20rpx;
  110. .form-box {
  111. padding: 20rpx 0;
  112. }
  113. .bottom-box {
  114. margin-top: 100rpx;
  115. padding: 0 50rpx;
  116. }
  117. }
  118. </style>