connectionList.vue 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. <template>
  2. <view class="connection">
  3. <view class="connection-item" v-for="(item,index) in list" :key="index">
  4. <view class="connection-item-title">
  5. <view class="connection-item-title-text">
  6. 联系人{{index + 1}}
  7. </view>
  8. <view v-if="list.length - 1 ==index" class="connection-item-title-icon">
  9. <view @click="decrease" class="connection-item-title-icon-decrease">
  10. -
  11. </view>
  12. <view @click="add" class="connection-item-title-icon-add">
  13. +
  14. </view>
  15. </view>
  16. </view>
  17. <view class="connection-item-content">
  18. <view class="connection-item-content-left">
  19. 联系人姓名
  20. </view>
  21. <view class="connection-item-content-right">
  22. <uni-easyinput trim="all" v-model="item.name" placeholder="请输入内容"></uni-easyinput>
  23. </view>
  24. </view>
  25. <view class="connection-item-content">
  26. <view class="connection-item-content-left">
  27. 联系人关系
  28. </view>
  29. <view class="connection-item-content-right">
  30. <uni-data-select v-model="item.relation" :localdata="range" @change="change"></uni-data-select>
  31. </view>
  32. </view>
  33. <view class="connection-item-content">
  34. <view class="connection-item-content-left">
  35. 联系人电话
  36. </view>
  37. <view class="connection-item-content-right">
  38. <uni-easyinput type='number' trim="all" v-model="item.tetelephone"
  39. placeholder="请输入内容"></uni-easyinput>
  40. </view>
  41. </view>
  42. </view>
  43. </view>
  44. </template>
  45. <script>
  46. export default {
  47. name: "connectionList",
  48. props: {
  49. list: {
  50. default: () => [],
  51. type: Array
  52. }
  53. },
  54. data() {
  55. return {
  56. range: [{
  57. value: '0',
  58. text: "爸爸"
  59. },
  60. {
  61. value: '1',
  62. text: "妈妈"
  63. },
  64. {
  65. value: '2',
  66. text: "爷爷"
  67. },
  68. ],
  69. };
  70. },
  71. methods: {
  72. change(e) {
  73. console.log("e:", e);
  74. },
  75. add() {
  76. let obj = {
  77. name: '',
  78. relation: '',
  79. tetelephone: ''
  80. }
  81. this.list.push(obj)
  82. this.$emit('update:list', this.list)
  83. },
  84. decrease() {
  85. this.list.splice(this.list.length-1, 1);
  86. this.$emit('update:list', this.list)
  87. }
  88. }
  89. }
  90. </script>
  91. <style lang="scss" scoped>
  92. /deep/.uni-easyinput__content {
  93. height: 64rpx;
  94. }
  95. /deep/.uni-select {
  96. height: 64rpx;
  97. }
  98. .connection {
  99. width: 100%;
  100. .connection-item {
  101. width: 100%;
  102. .connection-item-title {
  103. display: flex;
  104. margin-bottom: 20rpx;
  105. }
  106. .connection-item-title-icon {
  107. display: flex;
  108. align-items: center;
  109. }
  110. .connection-item-title-text {
  111. margin-right: 32rpx;
  112. }
  113. .connection-item-title-icon-decrease {
  114. width: 30rpx;
  115. height: 30rpx;
  116. text-align: center;
  117. line-height: 24rpx;
  118. border-radius: 50%;
  119. background-color: rgba(5, 204, 161, 0.5);
  120. color: #fff;
  121. font-size: 28rpx;
  122. margin-right: 20rpx;
  123. }
  124. .connection-item-title-icon-add {
  125. width: 30rpx;
  126. height: 30rpx;
  127. text-align: center;
  128. line-height: 24rpx;
  129. border-radius: 50%;
  130. background-color: rgba(5, 204, 161, 1);
  131. color: #fff;
  132. font-size: 28rpx;
  133. }
  134. }
  135. }
  136. .connection-item-content {
  137. width: 100%;
  138. margin-bottom: 20rpx;
  139. display: flex;
  140. align-items: center;
  141. .connection-item-content-left {
  142. width: 200rpx;
  143. padding-left: 20rpx;
  144. }
  145. .connection-item-content-right {
  146. flex: 1;
  147. }
  148. }
  149. </style>