checkAdminList.vue 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358
  1. <template>
  2. <el-dialog
  3. :title="dialogTitle"
  4. v-model="showDialog"
  5. width="1100px"
  6. @open="open()"
  7. @close="closeDialog(0)"
  8. >
  9. <!-- 表格start -->
  10. <el-table
  11. :data="tableData"
  12. border
  13. stripe
  14. :header-cell-style="headClass"
  15. :cell-style="cellStyle"
  16. >
  17. <el-table-column type="index" label="序号" width="50px"></el-table-column>
  18. <el-table-column prop="nickName" label="管理员姓名"></el-table-column>
  19. <el-table-column
  20. prop="phonenumber"
  21. label="管理员手机号"
  22. ></el-table-column>
  23. <el-table-column prop="email" label="管理员邮箱"></el-table-column>
  24. <el-table-column prop="userName" label="管理员账号"></el-table-column>
  25. <!-- <el-table-column prop="password" label="管理员密码"></el-table-column> -->
  26. <el-table-column prop="status" label="状态"></el-table-column>
  27. <el-table-column fixed="right" label="操作" width="240">
  28. <template #default="scope">
  29. <el-button
  30. @click="adminConfig(scope.row)"
  31. type="text"
  32. size="small"
  33. style="color: #409eff"
  34. >
  35. 编辑
  36. </el-button>
  37. <el-button
  38. type="text"
  39. size="small"
  40. style="color: #409eff"
  41. @click="resetPass(scope.row)"
  42. >
  43. 密码重置
  44. </el-button>
  45. <el-popconfirm
  46. confirm-button-text="是"
  47. cancel-button-text="否"
  48. icon="el-icon-info"
  49. icon-color="red"
  50. title="确定删除?"
  51. @confirm="handleDelete(scope.row)"
  52. @cancel="cancelEvent"
  53. >
  54. <template #reference>
  55. <el-button type="text" size="small" class="delete-text" >
  56. 删除
  57. </el-button>
  58. </template>
  59. </el-popconfirm>
  60. </template>
  61. </el-table-column>
  62. </el-table>
  63. <!-- 表格end -->
  64. <!-- 分页start -->
  65. <div class="paginationBlock1" style="margin-top:30px">
  66. <el-pagination
  67. v-model:currentPage="page"
  68. :page-sizes="[5,10,15, 20]"
  69. :page-size="pageSize"
  70. layout="total, sizes, prev, pager, next, jumper"
  71. :total="total"
  72. @size-change="handleSizeChange"
  73. @current-change="handleCurrentChange"
  74. background
  75. ></el-pagination>
  76. </div>
  77. <!-- 分页end -->
  78. <!-- 管理员配置组件开始 -->
  79. <admin-Dialog
  80. :dialog-title="dialogTitle2"
  81. :item-info="tableItem"
  82. @closeNo="closeNo"
  83. :show_dialog2="showDialog2"
  84. :DialogArray="DialogArray"
  85. ></admin-Dialog>
  86. <!-- 管理员配置组件end -->
  87. <!-- 重置密码组件开始 -->
  88. <reset-pass
  89. :dialog-title="dialogTitle3"
  90. :item-info="tableItem"
  91. @closeNo3="closeNo3"
  92. :show_dialog3="showDialog3"
  93. :DialogArray="DialogArray"
  94. ></reset-pass>
  95. <!-- 重置密码组件end -->
  96. </el-dialog>
  97. </template>
  98. <script>
  99. import { useStore } from 'vuex'
  100. import { defineComponent, ref, watchEffect } from 'vue'
  101. import * as api from '@/api/tenantManage/adminConfig.js'
  102. import { ElMessage } from 'element-plus'
  103. import adminDialog from './adminDialog.vue'
  104. import resetPass from './resetPass.vue'
  105. export default defineComponent({
  106. components: { adminDialog,resetPass },
  107. name: 'DialogComponent',
  108. emits: ['closeDialog'],
  109. props: {
  110. show_Dialog: Boolean,
  111. dialogTitle: String,
  112. itemInfo: {
  113. type: Object,
  114. default: function () {
  115. return {}
  116. },
  117. },
  118. },
  119. setup(props, { emit }) {
  120. const store = useStore()
  121. const beginTime = ref('')
  122. const form = ref({})
  123. const formInfo = ref(null)
  124. const tableData = ref()
  125. const currentPage = ref(1)
  126. const pageSize = ref(5)
  127. const total = ref(0)
  128. const tenantId = ref('')
  129. const userId = ref()
  130. const tableItem = ref()
  131. const dialogTitle2 = ref('')
  132. const dialogTitle3 = ref('')
  133. const showDialog = ref(false)
  134. const DialogArray = ref([])
  135. const showDialog2 = ref(false)
  136. const showDialog3 = ref(false)
  137. const handleSizeChange = (val) => {
  138. pageSize.value = val
  139. Select()
  140. }
  141. const handleCurrentChange = (val) => {
  142. currentPage.value = val
  143. Select()
  144. }
  145. const roleValid = (rule, value, callback) => {
  146. rule
  147. if (value.length === 0) {
  148. callback(new Error('角色不能为空'))
  149. } else {
  150. callback()
  151. }
  152. }
  153. //查询设备列表
  154. function Select() {
  155. api
  156. .getUserList({
  157. size: pageSize.value,
  158. page: currentPage.value,
  159. tenantId: tenantId.value,
  160. })
  161. .then((requset) => {
  162. if (requset.status === 'SUCCESS') {
  163. tableData.value = requset.data.records.map((val) => {
  164. store.commit('getTimestampAll', val.startTime)
  165. val.startTime = store.state.timeProcessing
  166. store.commit('getTimestampAll', val.endTime)
  167. val.endTime = store.state.timeProcessing
  168. store.commit('getTimestampAll', val.createTime)
  169. val.createTime = store.state.timeProcessing
  170. })
  171. tableData.value = requset.data.records
  172. total.value = requset.data.total
  173. } else {
  174. ElMessage.error(requset.msg)
  175. }
  176. })
  177. }
  178. //管理员配置 (修改操作)
  179. const adminConfig = (row) => {
  180. // alert('编辑操作')
  181. console.log('row')
  182. console.log(row)
  183. tableItem.value = {
  184. nickName: row.nickName,
  185. userName: row.userName,
  186. email: row.email,
  187. phonenumber: row.phonenumber,
  188. password: row.password,
  189. status: row.status,
  190. tenantId: row.tenantId,
  191. userId:row.userId
  192. }
  193. DialogArray.value = row
  194. dialogTitle2.value = '修改'
  195. showDialog2.value = true
  196. }
  197. //重置密码 (修改操作)
  198. const resetPass = (row) => {
  199. console.log('row')
  200. console.log(row)
  201. tableItem.value = {
  202. userId: row.userId,
  203. }
  204. DialogArray.value = row
  205. dialogTitle3.value = '重置密码'
  206. showDialog3.value = true
  207. }
  208. const open = () => {
  209. form.value = props.itemInfo
  210. tenantId.value = props.itemInfo.tenantId
  211. Select()
  212. }
  213. // 关闭弹框
  214. const closeDialog = (flag) => {
  215. showDialog.value = false
  216. emit('closeDialog', flag)
  217. }
  218. watchEffect((fn, options) => {
  219. fn, options
  220. showDialog.value = props.show_Dialog
  221. })
  222. //删除 是否删除 ---- 是
  223. const handleDelete = (row) => {
  224. api.delUsers({ userId: row.userId }).then((requset) => {
  225. if (requset.status === 'SUCCESS') {
  226. ElMessage.success({
  227. message: '删除成功',
  228. type: 'success',
  229. })
  230. Select()
  231. } else {
  232. ElMessage.error(requset.msg)
  233. }
  234. })
  235. }
  236. const closeNo = (value) => {
  237. showDialog2.value = value
  238. Select()
  239. }
  240. const closeNo3 = (value) => {
  241. showDialog3.value = value
  242. }
  243. //是否删除 ---- 否
  244. const cancelEvent = () => {
  245. console.log('cancel!')
  246. }
  247. return {
  248. roleValid,
  249. closeDialog,
  250. open,
  251. tableData,
  252. Select,
  253. store,
  254. beginTime,
  255. checked: true,
  256. form,
  257. formInfo,
  258. handleSizeChange,
  259. handleCurrentChange,
  260. tenantId,
  261. userId,
  262. adminConfig,
  263. tableItem,
  264. dialogTitle2,
  265. dialogTitle3,
  266. showDialog,
  267. DialogArray,
  268. showDialog2,
  269. showDialog3,
  270. total,
  271. pageSize,
  272. currentPage,
  273. closeNo,
  274. closeNo3,
  275. handleDelete,
  276. cancelEvent,
  277. resetPass,
  278. }
  279. },
  280. })
  281. </script>
  282. <style scoped lang="scss">
  283. .el-input,
  284. .el-select,
  285. .el-date-editor.el-input,
  286. .el-date-editor.el-input__inner {
  287. width: 240px;
  288. }
  289. .el-form-item {
  290. margin: 0 0 20px !important;
  291. }
  292. // label样式
  293. .el-form-item__label {
  294. width: 120px !important;
  295. }
  296. .el-form-item__content {
  297. margin-left: 100px;
  298. }
  299. .demo-form-inline .el-form-item:not(.user-layout .el-form-item) {
  300. // margin: 0 auto 20px 55px;
  301. }
  302. </style>
  303. <style>
  304. </style>