|
@@ -1,7 +1,7 @@
|
|
|
<template>
|
|
<template>
|
|
|
- <PagingTable url="/admin/users" :freeze="freeze" :where="where" ref="table">
|
|
|
|
|
|
|
+ <PagingTable url="/admin/users" :where="where" ref="table">
|
|
|
<template #filter>
|
|
<template #filter>
|
|
|
- <EnumSelect :enum="UserRole" v-model="where.roles" v-if="role === 'admin'"></EnumSelect>
|
|
|
|
|
|
|
+ <EnumSelect :enum="UserRole" v-model="where.roles"></EnumSelect>
|
|
|
<ElButton :icon="Plus" @click="onEdit()">添加</ElButton>
|
|
<ElButton :icon="Plus" @click="onEdit()">添加</ElButton>
|
|
|
</template>
|
|
</template>
|
|
|
<ElTableColumn prop="id" label="#" width="80" />
|
|
<ElTableColumn prop="id" label="#" width="80" />
|
|
@@ -10,9 +10,10 @@
|
|
|
<ElTableColumn prop="phone" label="手机" min-width="120" />
|
|
<ElTableColumn prop="phone" label="手机" min-width="120" />
|
|
|
<ElTableColumn prop="createdAt" label="注册时间" :formatter="timeFormatter" width="150" />
|
|
<ElTableColumn prop="createdAt" label="注册时间" :formatter="timeFormatter" width="150" />
|
|
|
<ElTableColumn prop="invitor" label="上级" />
|
|
<ElTableColumn prop="invitor" label="上级" />
|
|
|
- <ElTableColumn label="操作" align="center" width="120">
|
|
|
|
|
|
|
+ <ElTableColumn label="操作" align="center" width="160">
|
|
|
<template #default="{ row }">
|
|
<template #default="{ row }">
|
|
|
<ElButton @click="getToken(row)">Token</ElButton>
|
|
<ElButton @click="getToken(row)">Token</ElButton>
|
|
|
|
|
+ <ElButton @click="onEdit(row)">编辑</ElButton>
|
|
|
</template>
|
|
</template>
|
|
|
</ElTableColumn>
|
|
</ElTableColumn>
|
|
|
</PagingTable>
|
|
</PagingTable>
|
|
@@ -26,16 +27,19 @@
|
|
|
<ElFormItem prop="phone" label="手机">
|
|
<ElFormItem prop="phone" label="手机">
|
|
|
<ElInput v-model="model.phone" placeholder="请输入手机" />
|
|
<ElInput v-model="model.phone" placeholder="请输入手机" />
|
|
|
</ElFormItem>
|
|
</ElFormItem>
|
|
|
- <ElFormItem prop="password" label="密码">
|
|
|
|
|
|
|
+ <ElFormItem prop="password" label="密码" v-if="!model.id">
|
|
|
<ElInput v-model="model.password" placeholder="请输入密码" />
|
|
<ElInput v-model="model.password" placeholder="请输入密码" />
|
|
|
</ElFormItem>
|
|
</ElFormItem>
|
|
|
<ElFormItem prop="roles" label="角色">
|
|
<ElFormItem prop="roles" label="角色">
|
|
|
<EnumSelect v-model="model.roles" :enum="UserRole" multiple :multiple-limit="1" />
|
|
<EnumSelect v-model="model.roles" :enum="UserRole" multiple :multiple-limit="1" />
|
|
|
</ElFormItem>
|
|
</ElFormItem>
|
|
|
|
|
+ <ElFormItem prop="orgId" label="企业ID" v-if="model.roles && model.roles[0] === 'org'">
|
|
|
|
|
+ <ElInputNumber :controls="false" v-model="model.orgId" placeholder="请输入企业ID" />
|
|
|
|
|
+ </ElFormItem>
|
|
|
</EditDialog>
|
|
</EditDialog>
|
|
|
</template>
|
|
</template>
|
|
|
<script setup>
|
|
<script setup>
|
|
|
-import { nextTick, ref } from 'vue'
|
|
|
|
|
|
|
+import { ref } from 'vue'
|
|
|
import PagingTable from '@/components/PagingTable.vue'
|
|
import PagingTable from '@/components/PagingTable.vue'
|
|
|
import { useTimeFormatter } from '@/utils/formatter'
|
|
import { useTimeFormatter } from '@/utils/formatter'
|
|
|
import { Plus } from '@vicons/tabler'
|
|
import { Plus } from '@vicons/tabler'
|
|
@@ -51,35 +55,20 @@ const where = ref({ roles: 'user' })
|
|
|
const timeFormatter = useTimeFormatter()
|
|
const timeFormatter = useTimeFormatter()
|
|
|
const table = ref(null)
|
|
const table = ref(null)
|
|
|
const model = ref({})
|
|
const model = ref({})
|
|
|
-let role = 'admin'
|
|
|
|
|
-const freeze = ref(true)
|
|
|
|
|
-http.get(`/auth/admin/getRole`).then((res) => {
|
|
|
|
|
- if (res === 'api') {
|
|
|
|
|
- http.get('/admin/users/get').then((res) => {
|
|
|
|
|
- where.value = { apiUserId: res.apiUserId, roles: 'api' }
|
|
|
|
|
- role = 'api'
|
|
|
|
|
- freeze.value = false
|
|
|
|
|
- nextTick(() => {
|
|
|
|
|
- table.value.refresh()
|
|
|
|
|
- })
|
|
|
|
|
- })
|
|
|
|
|
- } else {
|
|
|
|
|
- freeze.value = false
|
|
|
|
|
- nextTick(() => {
|
|
|
|
|
- table.value.refresh()
|
|
|
|
|
- })
|
|
|
|
|
- }
|
|
|
|
|
-})
|
|
|
|
|
const rules = {
|
|
const rules = {
|
|
|
username: [{ required: true, message: '请输入用户名', trigger: 'blur' }],
|
|
username: [{ required: true, message: '请输入用户名', trigger: 'blur' }],
|
|
|
name: [{ required: true, message: '请输入昵称', trigger: 'blur' }],
|
|
name: [{ required: true, message: '请输入昵称', trigger: 'blur' }],
|
|
|
phone: [{ required: true, message: '请输入手机', trigger: 'blur' }],
|
|
phone: [{ required: true, message: '请输入手机', trigger: 'blur' }],
|
|
|
password: [{ required: true, message: '请输入密码', trigger: 'blur' }],
|
|
password: [{ required: true, message: '请输入密码', trigger: 'blur' }],
|
|
|
- roles: [{ required: true, message: '请选择角色', trigger: 'blur' }]
|
|
|
|
|
|
|
+ roles: [{ required: true, message: '请选择角色', trigger: 'blur' }],
|
|
|
|
|
+ orgId: [{ required: true, message: '请输入企业ID', trigger: 'blur' }]
|
|
|
}
|
|
}
|
|
|
const { showEditDialog, onEdit } = setupEditDialog(model)
|
|
const { showEditDialog, onEdit } = setupEditDialog(model)
|
|
|
async function submit() {
|
|
async function submit() {
|
|
|
- await http.put('/admin/users', model.value)
|
|
|
|
|
|
|
+ if (model.value.roles[0] !== 'org') {
|
|
|
|
|
+ model.value.orgId = null
|
|
|
|
|
+ }
|
|
|
|
|
+ await http.put(model.value.id ? `/admin/users/${model.value.id}` : '/admin/users', model.value)
|
|
|
ElMessage.success('保存成功')
|
|
ElMessage.success('保存成功')
|
|
|
}
|
|
}
|
|
|
function getToken(row) {
|
|
function getToken(row) {
|