AddAccountLogPage.vue 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <template>
  2. <div>
  3. <van-form @submit="onSubmit">
  4. <van-cell-group inset>
  5. <!-- 允许输入数字,调起带符号的纯数字键盘 -->
  6. <van-field
  7. v-model="totalFee"
  8. name="totalFee"
  9. type="number"
  10. label="数字"
  11. />
  12. <van-field name="uploader" label="文件上传">
  13. <template #input>
  14. <van-uploader
  15. :model-value="files"
  16. multiple
  17. :max-count="5"
  18. :after-read="afterRead"
  19. :before-delete="filesDelete"
  20. />
  21. </template>
  22. </van-field>
  23. <van-field
  24. v-model="newTime"
  25. is-link
  26. readonly
  27. name="calendar"
  28. label="日历"
  29. placeholder="点击选择日期"
  30. @click="showCalendar = true"
  31. />
  32. <van-field
  33. v-model="remark"
  34. rows="2"
  35. autosize
  36. name="remark"
  37. label="留言"
  38. type="textarea"
  39. maxlength="50"
  40. placeholder="请输入留言"
  41. show-word-limit
  42. />
  43. </van-cell-group>
  44. <div style="margin: 16px">
  45. <van-button round block type="primary" native-type="submit">
  46. 提交
  47. </van-button>
  48. </div>
  49. </van-form>
  50. <van-calendar
  51. :min-date="new Date(2010, 0, 1)"
  52. v-model:show="showCalendar"
  53. @confirm="onConfirm"
  54. />
  55. </div>
  56. </template>
  57. <script setup>
  58. import { watch, ref, onMounted, toRaw } from 'vue'
  59. import { useRouter, useRoute } from 'vue-router'
  60. import dayjs from 'dayjs'
  61. import { uploadFile } from '@/api/api'
  62. const router = useRouter()
  63. const route = useRoute()
  64. const files = ref([])
  65. const totalFee = ref(0)
  66. const remark = ref('')
  67. const afterRead = async (file) => {
  68. // 将文件上传至服务器
  69. let formData = new FormData()
  70. formData.append('sampleFile', file.file)
  71. const res = await uploadFile(formData)
  72. files.value.push({
  73. // url: window.origin + `/api/v1/files/${res.file_id}`,
  74. url: file.objectUrl,
  75. file_id: res.file_id,
  76. isImage: true
  77. })
  78. }
  79. const newTime = ref(dayjs().format('YYYY-MM-DD'))
  80. const showCalendar = ref(false)
  81. const onConfirm = (date) => {
  82. // newTime.value = `${date.getMonth() + 1}/${date.getDate()}`
  83. newTime.value = dayjs(date).format('YYYY-MM-DD')
  84. showCalendar.value = false
  85. }
  86. const filesDelete = (file) => {
  87. files.value = files.value.filter((elm) => elm.url !== file.url)
  88. }
  89. const onSubmit = (values) => {
  90. // 金额
  91. // 附件
  92. // 时间
  93. // 留言
  94. // const params = {
  95. // totalFee: toRaw(number),
  96. // files: toRaw(files),
  97. // time: toRaw(newTime),
  98. // remark: toRaw(message)
  99. // }
  100. // console.log(103, params)
  101. console.log(102, values)
  102. }
  103. </script>