haiziNianling2.vue 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <template>
  2. <view v-for="(item,index) in myData.children" :key="item.timer" class="fwnr-label-input">
  3. <view class="fwnr-form-label"><text class="form-label-require"></text><template v-if="index == 0">孩子年龄</template></view>
  4. <uni-easyinput v-model="item.age" placeholder="请输入孩子年龄" @change="onChange" />
  5. <view @click="handleAdd" v-if="myData.children.length == 1" class="fwnr-add-btn"><icon></icon></view>
  6. <view @click="handleAdd" class="fwnr-add-btn"
  7. v-else-if="myData.children.length-1 == index && myData.children.length != 1 && myData.children.length<3">
  8. <icon></icon>
  9. </view>
  10. <view @click="handleDelete(item.timer)" v-else class="fwnr-del-btn"><icon></icon></view>
  11. </view>
  12. </template>
  13. <script setup>
  14. import {
  15. computed,
  16. reactive,
  17. watch,
  18. watchEffect
  19. } from "vue"
  20. import {
  21. useHetong
  22. } from "../useHetong.js"
  23. const {
  24. injectHetong
  25. } = useHetong();
  26. const data = injectHetong()
  27. const emits = defineEmits(['change'])
  28. const myData = reactive({
  29. children: []
  30. })
  31. watchEffect(() => {
  32. const list = data.hetong.fzHzNianling && data.hetong.fzHzNianling.split(',').map((item,index) => ({
  33. age: item,
  34. timer: new Date().getTime()+index
  35. }));
  36. myData.children = list.length ? list : [{
  37. age: '',
  38. timer: new Date().getTime()
  39. }]
  40. })
  41. function onChange() {
  42. data.hetong.fzHzNianling = myData.children.map(item => item.age).join(',')
  43. }
  44. function handleAdd() {
  45. myData.children.push({
  46. age: '',
  47. timer: new Date().getTime()
  48. });
  49. data.hetong.fzHzNianling = myData.children.map(item => item.age).join(',')
  50. emits('change')
  51. }
  52. function handleDelete(timer) {
  53. console.log('timer', timer)
  54. myData.children = myData.children.filter(item => item.timer != timer)
  55. data.hetong.fzHzNianling = myData.children.map(item => item.age).join(',')
  56. emits('change')
  57. }
  58. </script>
  59. <style>
  60. </style>