adminDialog.vue 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. <template>
  2. <!-- 管理员配置 -->
  3. <el-dialog
  4. :title="dialogTitle"
  5. v-model="cloneDialog"
  6. @close="close"
  7. @open="open"
  8. >
  9. <div class="dialogOne">
  10. <el-form
  11. :model="form"
  12. :rules="rules"
  13. ref="ruleForm"
  14. label-width="150px"
  15. class="demo-ruleForm"
  16. >
  17. <el-form-item label="管理员姓名:" prop="nickName">
  18. <el-input
  19. v-model="form.nickName"
  20. placeholder="请输入管理员姓名"
  21. clearable
  22. />
  23. </el-form-item>
  24. <el-form-item label="管理员账号:" prop="userName">
  25. <el-input
  26. v-model="form.userName"
  27. placeholder="请输入管理员账号"
  28. clearable
  29. />
  30. </el-form-item>
  31. <el-form-item label="管理员邮箱:" prop="email">
  32. <el-input
  33. v-model="form.email"
  34. placeholder="请输入管理员邮箱"
  35. clearable
  36. />
  37. </el-form-item>
  38. <el-form-item label="管理员手机号:" prop="phonenumber">
  39. <el-input
  40. v-model="form.phonenumber"
  41. placeholder="请输入管理员手机号"
  42. clearable
  43. />
  44. </el-form-item>
  45. <el-form-item label="管理员密码:" prop="password" v-if="dialogTitle != '修改'">
  46. <el-input
  47. v-model="form.password"
  48. placeholder="请输入管理员密码"
  49. clearable
  50. />
  51. </el-form-item>
  52. <el-form-item label="状态:" prop="status">
  53. <el-select v-model="form.status" placeholder="请选择">
  54. <el-option label="正常" :value="0"></el-option>
  55. <el-option label="停用" :value="1"></el-option>
  56. </el-select>
  57. </el-form-item>
  58. </el-form>
  59. </div>
  60. <template #footer>
  61. <span class="dialog-footer">
  62. <el-button @click="cloneDialog = false">取消</el-button>
  63. <el-button type="primary" @click="submit()">确定</el-button>
  64. </span>
  65. </template>
  66. </el-dialog>
  67. </template>
  68. <script>
  69. import { useStore } from 'vuex'
  70. import { defineComponent, ref, watchEffect } from 'vue'
  71. import * as api from '@/api/tenantManage/adminConfig.js'
  72. import { ElMessage } from 'element-plus'
  73. import { validatorPhone, isEmail } from '@/utils'
  74. export default defineComponent({
  75. name: 'powerEquip',
  76. components: {},
  77. emits: ['closeNo', 'select'],
  78. props: {
  79. show_dialog2: Boolean,
  80. DialogArray: Object,
  81. dialogTitle: String,
  82. itemInfo: {
  83. type: Object,
  84. default: function () {
  85. return {}
  86. },
  87. },
  88. },
  89. setup(props, context) {
  90. const store = useStore()
  91. store
  92. const form = ref({})
  93. const cloneDialog = ref(false) //管理员配置弹窗控制
  94. const ruleForm = ref(null)
  95. const submit = () => {
  96. ruleForm.value.validate((valid) => {
  97. if (valid) {
  98. if (props.dialogTitle === '修改') {
  99. api.updateserData(form.value).then((requset) => {
  100. if (requset.status === 'SUCCESS') {
  101. ElMessage.success({
  102. message: '修改成功',
  103. type: 'success',
  104. })
  105. close()
  106. } else {
  107. ElMessage.error(requset.msg)
  108. }
  109. })
  110. } else {
  111. api.addUserData(form.value).then((requset) => {
  112. if (requset.status === 'SUCCESS') {
  113. ElMessage.success({
  114. message: '配置成功',
  115. type: 'success',
  116. })
  117. close()
  118. } else {
  119. ElMessage.error(requset.msg)
  120. }
  121. })
  122. }
  123. } else {
  124. console.log('error submit!!')
  125. return false
  126. }
  127. })
  128. }
  129. //open
  130. const open = () => {
  131. form.value = props.itemInfo
  132. console.log('form.value')
  133. console.log(form.value)
  134. }
  135. // close(): Dialog弹窗关闭之后做的事
  136. const close = () => {
  137. resetForm()
  138. context.emit('closeNo', false)
  139. cloneDialog.value = false
  140. }
  141. function resetForm() {
  142. ruleForm.value.resetFields()
  143. }
  144. watchEffect((fn, options) => {
  145. fn, options
  146. cloneDialog.value = props.show_dialog2
  147. })
  148. return {
  149. store,
  150. open,
  151. close,
  152. submit,
  153. form,
  154. cloneDialog,
  155. ruleForm,
  156. resetForm,
  157. rules: {
  158. nickName: [
  159. {
  160. required: true,
  161. message: '管理员姓名不能为空',
  162. trigger: 'blur',
  163. },
  164. ],
  165. userName: [
  166. {
  167. required: true,
  168. message: '管理员账号不能为空',
  169. trigger: 'blur',
  170. },
  171. ],
  172. email: [
  173. {
  174. required: true,
  175. message: '管理员邮箱不能为空',
  176. trigger: 'blur',
  177. },
  178. {
  179. validator: isEmail,
  180. message: '输入的邮箱地址不正确',
  181. trigger: 'blur',
  182. },
  183. ],
  184. phonenumber: [
  185. {
  186. required: true,
  187. message: '管理员手机号不能为空',
  188. trigger: 'blur',
  189. },
  190. {
  191. validator: validatorPhone,
  192. message: '输入的电话号码不正确',
  193. trigger: 'blur',
  194. },
  195. ],
  196. password: [
  197. {
  198. required: true,
  199. message: '密码不能为空',
  200. trigger: 'blur',
  201. },
  202. ],
  203. status: [
  204. {
  205. required: true,
  206. message: '转态不能为空',
  207. trigger: 'blur',
  208. },
  209. ],
  210. },
  211. }
  212. },
  213. })
  214. </script>