3
0

index.vue 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. <!--
  2. * @Author: your name
  3. * @Date: 2021-02-19 11:59:48
  4. * @LastEditTime: 2021-03-02 11:01:57
  5. * @LastEditors: Please set LastEditors
  6. * @Description: In User Settings Edit
  7. * @FilePath: \intelligentLock\src\pages\index\index.vue
  8. -->
  9. <template>
  10. <view class="page">
  11. <!-- <view class="addHeader">
  12. <AtNavBar :onClickLeftIcon="LeftIconClick"
  13. :title="userTitle"
  14. leftIconType="chevron-left"
  15. color='#646464' />
  16. </view> -->
  17. <view class="formBox">
  18. <view class="userTitle">基本信息</view>
  19. <AtForm :onSubmit="handleSubmit"
  20. :onReset="handleReset">
  21. <AtInput required
  22. name="name"
  23. title="姓名"
  24. type="text"
  25. placeholder="请输入姓名"
  26. :value="state.name"
  27. :onChange="handleChange.bind(this, 'name')" />
  28. <AtInput required
  29. name="phone"
  30. title="手机号码"
  31. type="phone"
  32. placeholder="请输入手机号码"
  33. :value="state.phone"
  34. :onChange="handleChange.bind(this, 'phone')" />
  35. <view class="formBtnBox">
  36. <AtButton type="primary"
  37. class="btn"
  38. formType="submit"
  39. :onClick="handleSubmit">
  40. 提交
  41. </AtButton>
  42. <AtButton formType="reset"
  43. class="btn"
  44. :onClick="handleReset">重置</AtButton>
  45. </view>
  46. </AtForm>
  47. </view>
  48. <AtToast :text="state.text"
  49. :isOpened="state.isOpened"></AtToast>
  50. </view>
  51. </template>
  52. <script>
  53. import './index.scss'
  54. import setStateMixin from '../../mixins/setStateMixin'
  55. export default {
  56. name: 'userControl',
  57. mixins: [setStateMixin],
  58. data () {
  59. return {
  60. userTitle: "新增用户",
  61. state: {
  62. name: '',
  63. phone: '',
  64. isOpened: false,
  65. text: ''
  66. }
  67. }
  68. },
  69. created () { },
  70. onShow () { },
  71. onHide () { },
  72. methods: {
  73. LeftIconClick () {
  74. this.$taro.navigateBack({
  75. delta: 1 // 返回上一级页面。
  76. });
  77. },
  78. handleChange (stateName, value) {
  79. this.setState({
  80. [stateName]: value,
  81. })
  82. },
  83. // 表单 提交
  84. handleSubmit () {
  85. const { name, phone } = this.state
  86. if (!name) {
  87. this.setState({
  88. isOpened: true,
  89. text: `用户名不能为空`,
  90. })
  91. this.closeToast()
  92. return false
  93. }
  94. if (!phone) {
  95. this.setState({
  96. isOpened: true,
  97. text: `手机号不能为空`,
  98. })
  99. this.closeToast()
  100. return false
  101. }
  102. },
  103. // 表单重置
  104. handleReset () {
  105. console.log('handleReset')
  106. this.setState({
  107. isOpened: true,
  108. text: `基本信息已被重置`,
  109. name: '',
  110. phone: '',
  111. })
  112. this.closeToast()
  113. },
  114. closeToast () {
  115. setTimeout(() => {
  116. this.setState({
  117. isOpened: false,
  118. })
  119. }, 2000)
  120. }
  121. }
  122. }
  123. </script>