修改店铺的管理员设置界面

This commit is contained in:
zhl 2021-05-10 14:09:02 +08:00
parent 06b7acb751
commit f2a052799c
5 changed files with 74 additions and 6 deletions

2
.env
View File

@ -1 +1 @@
VUE_APP_BASE_API = 'http://127.0.0.1:2900' VUE_APP_BASE_API = 'http://192.168.100.24:2900'

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
node_modules node_modules
.DS_Store .DS_Store
.idea .idea
/dist/

View File

@ -1,5 +1,5 @@
{ {
"name": "vue-typescript-admin-template", "name": "pyxis-fe",
"version": "1.0.0", "version": "1.0.0",
"private": true, "private": true,
"scripts": { "scripts": {

View File

@ -20,6 +20,22 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="店铺" v-if="userLevel === 1">
<el-select
v-model="filterForm.department"
placeholder="所有"
class="w100"
>
<el-option value="">所有</el-option>
<el-option value="未指定">未指定</el-option>
<el-option
v-for="item in allDepts"
:key="item._id"
:label="item.name"
:value="item._id"
/>
</el-select>
</el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="search">查询</el-button> <el-button type="primary" @click="search">查询</el-button>
<el-button @click="resetFilterForm">重置</el-button> <el-button @click="resetFilterForm">重置</el-button>
@ -48,6 +64,16 @@
{{row.showname}}({{row.username}}) {{row.showname}}({{row.username}})
</template> </template>
</el-table-column> </el-table-column>
<el-table-column
prop="department"
align="center"
label="店铺"
v-if="userLevel === 1"
>
<template slot-scope="{row}">
{{formatDept(row)}}
</template>
</el-table-column>
<el-table-column <el-table-column
prop="locked" prop="locked"
align="center" align="center"
@ -195,6 +221,27 @@
<el-radio-button :label="9">店铺</el-radio-button> <el-radio-button :label="9">店铺</el-radio-button>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item
label="店铺"
prop="department"
v-if="userLevel === 1"
>
<el-select
v-model="record.department"
:remote-method="getRemoteDeptList"
filterable
default-first-option
remote
placeholder=""
>
<el-option
v-for="(item) in deptListOptions"
:key="item._id"
:label="item.name"
:value="item._id"
/>
</el-select>
</el-form-item>
<el-form-item label="锁定" v-permission="['admin:lock']"> <el-form-item label="锁定" v-permission="['admin:lock']">
<el-switch v-model="record.locked"/> <el-switch v-model="record.locked"/>
</el-form-item> </el-form-item>
@ -247,6 +294,7 @@ import {
import { IRole } from '@/views/system/role.vue' import { IRole } from '@/views/system/role.vue'
import { IShopData } from '@/api/types' import { IShopData } from '@/api/types'
import { UserModule } from '@/store/modules/user' import { UserModule } from '@/store/modules/user'
import { getShops } from '@/api/shop'
@Component({ @Component({
name: 'ShopAdmin', name: 'ShopAdmin',
@ -300,7 +348,12 @@ export default class extends Vue {
}] }]
} }
get userLevel() {
return UserModule.level
}
async created() { async created() {
this.allDepts = await this.getRemoteDeptList('')
await this.getRecords() await this.getRecords()
await this.getAllRole() await this.getAllRole()
} }
@ -372,7 +425,11 @@ export default class extends Vue {
private async getRecords() { private async getRecords() {
this.isLoad = true this.isLoad = true
const { data } = await getUsers({ dept: UserModule.department }) const reqParams: any = { level: 9 }
if (UserModule.level > 1) {
reqParams.dept = UserModule.department
}
const { data } = await getUsers(reqParams)
this.adminList = data this.adminList = data
this.dataCount = data.length this.dataCount = data.length
this.sliceData() this.sliceData()
@ -380,7 +437,7 @@ export default class extends Vue {
} }
private async getAllRole() { private async getAllRole() {
const { data } = await getRoles({ level: UserModule.level }) const { data } = await getRoles({ level: 9 })
this.roleList = data this.roleList = data
} }
@ -410,7 +467,10 @@ export default class extends Vue {
private handleCreateAdmin() { private handleCreateAdmin() {
this.record = Object.assign({}, defaultAdmin) this.record = Object.assign({}, defaultAdmin)
this.record.level = 9
if (UserModule.level > 1) {
this.record.department = UserModule.department
}
this.dialogType = 'new' this.dialogType = 'new'
this.dialogVisible = true this.dialogVisible = true
} }
@ -507,6 +567,13 @@ export default class extends Vue {
}) })
} }
private async getRemoteDeptList(name?: string) {
const { data } = await getShops({ key: name })
if (!data.records) return
this.deptListOptions = data.records
return data.records
}
private formatDept(row: any) { private formatDept(row: any) {
if (row.level === 1) { if (row.level === 1) {
return '系统帐号' return '系统帐号'

View File

@ -3,7 +3,7 @@ const name = 'Vue Typescript Admin'
module.exports = { module.exports = {
// TODO: Remember to change publicPath to fit your need // TODO: Remember to change publicPath to fit your need
publicPath: process.env.NODE_ENV === 'production' ? '/vue-typescript-admin-template/' : '/', publicPath: process.env.NODE_ENV === 'production' ? '/' : '/',
lintOnSave: process.env.NODE_ENV === 'development', lintOnSave: process.env.NODE_ENV === 'development',
pwa: { pwa: {
name: name name: name