form.vue 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. <template>
  2. <view class="u-p-24 page-bg-color" style="min-height: 100%;">
  3. <view class="page-card u-p-l-24 u-p-r-24 u-p-b-24">
  4. <u-form :model="form" ref="uForm" :label-width="150">
  5. <u-form-item label="姓名" prop="name">
  6. <u-input v-model="form.name" placeholder="请输入姓名" />
  7. </u-form-item>
  8. <u-form-item label="性别" prop="sex">
  9. <di-select v-model="form.sex" placeholder="请选择性别" :list="list"></di-select>
  10. </u-form-item>
  11. <u-form-item label="水果" prop="fruits">
  12. <di-checkbox-list v-model="form.fruits" :list="checkboxList"></di-checkbox-list>
  13. </u-form-item>
  14. <u-form-item label="味道" prop="taste">
  15. <di-radio-list v-model="form.taste" :list="radioList"/>
  16. </u-form-item>
  17. <u-form-item label="开关">
  18. <template slot="right">
  19. <di-switch v-model="form.switchVal"></di-switch>
  20. </template>
  21. </u-form-item>
  22. <u-form-item label="日历" prop="calendarDate">
  23. <di-calendar-picker v-model="form.calendarDate" placeholder="请选择日期范围"/>
  24. </u-form-item>
  25. <u-form-item label="日历范围" prop="calendarRange">
  26. <di-calendar-picker v-model="form.calendarRange" mode="range" placeholder="请选择日期范围"/>
  27. </u-form-item>
  28. <u-form-item label="地区" prop="region">
  29. <di-region-picker v-model="form.region" placeholder="请选择地区"/>
  30. </u-form-item>
  31. <u-form-item label="时间" prop="time">
  32. <di-date-picker v-model="form.time" placeholder="请选择时间" mode="datetime"/>
  33. </u-form-item>
  34. <u-form-item label="上传图片" prop="picture">
  35. <di-upload v-model="form.picture" :file-list="fileWrapper.pictureList" rel-obj-field="picture" :rel-obj-type="relObjType"/>
  36. </u-form-item>
  37. </u-form>
  38. <view class="u-m-t-60">
  39. <u-button type="success">提交</u-button>
  40. </view>
  41. </view>
  42. </view>
  43. </template>
  44. <script>
  45. import form from '@/mixins/form'
  46. export default {
  47. data() {
  48. return {
  49. form: {
  50. "name": "123",
  51. "taste": "麻辣",
  52. "sex": "1",
  53. "switchVal": true,
  54. "fruits": "apple,mango",
  55. "calendarDate": "2021-12-24",
  56. "calendarRange": "2021-12-14~2021-12-24",
  57. "region": "北京市-市辖区-东城区",
  58. "time": "2021-12-29 17:36:38",
  59. "picture": ""
  60. },
  61. list: [{
  62. value: '1',
  63. label: '男'
  64. },
  65. {
  66. value: '2',
  67. label: '女'
  68. }
  69. ],
  70. checkboxList: [
  71. {
  72. value: 'apple',
  73. label: '苹果'
  74. },
  75. {
  76. value: 'banana',
  77. label: '香蕉'
  78. },
  79. {
  80. value: 'mango',
  81. label: '芒果'
  82. }
  83. ],
  84. radioList: [{
  85. label: '鲜甜',
  86. value: '鲜甜'
  87. },
  88. {
  89. label: '麻辣',
  90. value: '麻辣'
  91. }
  92. ],
  93. relObjType: 'Demo',
  94. fileWrapper: {
  95. pictureList: []
  96. },
  97. isUpload: true,
  98. rules: {
  99. name: [{
  100. required: true,
  101. message: '请输入姓名',
  102. trigger: ['blur', 'change']
  103. }],
  104. sex: [{
  105. required: true,
  106. message: '请选择性别',
  107. trigger: ['blur', 'change']
  108. }],
  109. fruits: [{
  110. required: true,
  111. message: '请选择水果',
  112. trigger: ['blur', 'change']
  113. }],
  114. taste: [{
  115. required: true,
  116. message: '请选择味道',
  117. trigger: ['blur', 'change']
  118. }],
  119. calendarDate: [{
  120. required: true,
  121. message: '请选择日历',
  122. trigger: ['blur', 'change']
  123. }],
  124. calendarRange: [{
  125. required: true,
  126. message: '请选择日历范围',
  127. trigger: ['blur', 'change']
  128. }],
  129. region: [{
  130. required: true,
  131. message: '请选择地区',
  132. trigger: ['blur', 'change']
  133. }],
  134. time: [{
  135. required: true,
  136. message: '请选择时间',
  137. trigger: ['blur', 'change']
  138. }],
  139. picture: [{
  140. required: true,
  141. message: '请上传图片',
  142. trigger: ['blur', 'change']
  143. }],
  144. }
  145. };
  146. },
  147. mixins:[form],
  148. methods: {
  149. enhance (values) {
  150. this.__setFileUuidList__(values)
  151. },
  152. /****
  153. * 打开表单之后的操作
  154. * @param id
  155. */
  156. afterOpen (id) {
  157. // 回显图片
  158. if(id) {
  159. // this.$dibootApi.get(`/uploadFile/getList/${id}/${this.relObjType}/picture`).then(res => {
  160. // if (res.code === 0) {
  161. // if (res.data && res.data.length > 0) {
  162. // res.data.forEach(data => {
  163. // this.fileWrapper.pictureList.push(this.fileFormatter(data,true))
  164. // })
  165. // }
  166. // }
  167. // })
  168. }
  169. }
  170. },
  171. // 必须要在onReady生命周期,因为onLoad生命周期组件可能尚未创建完毕
  172. onReady() {
  173. this.$refs.uForm.setRules(this.rules);
  174. }
  175. };
  176. </script>