diff --git a/src/api/admins.ts b/src/api/admins.ts
index c59e444..d67003d 100644
--- a/src/api/admins.ts
+++ b/src/api/admins.ts
@@ -10,6 +10,7 @@ export interface IAdmin {
avatar: string
password: string
department: string
+ level: number
}
export const defaultAdmin: IAdmin = {
@@ -19,6 +20,7 @@ export const defaultAdmin: IAdmin = {
comment: '',
locked: false,
roles: [],
+ level: 1,
sex: '0',
password: '',
avatar: '',
@@ -58,6 +60,14 @@ export const deleteAdmin = (uid: string) => {
})
}
+export const changeLocker = (uid: string, status: boolean) => {
+ return request({
+ url: `/admin/${uid}/locker`,
+ method: 'post',
+ data: { lock: status }
+ })
+}
+
export const getUsers = (params: any) =>
request({
url: '/admins',
diff --git a/src/views/system/admin.vue b/src/views/system/admin.vue
index 28c233d..541fa3f 100644
--- a/src/views/system/admin.vue
+++ b/src/views/system/admin.vue
@@ -27,6 +27,7 @@
class="w100"
>
所有
+ 系统帐号
未指定
- {{row.username}}
+ {{row.showname}}({{row.username}})
- {{row.showname}}
+ {{formatDept(row)}}
+
+
+
+
+ {{ formStatus(row.locked) }}
-
+
{{ formatRole(item) }}
-
-
-
{{$t('permission.delete')}}
+
+
+ {{scope.row.locked? '解锁' : '锁定'}}
+
@@ -180,15 +196,15 @@
/>
-
- 未指定
- 男
- 女
+
+ 未指定
+ 男
+ 女
-
-
+
+
+
+ 系统帐号
+ 店铺
+
+
{
+ return user.level === 1
+ })
+ } else if (this.filterForm.department === '未指定') {
result = result.filter(user => {
return !user.department
})
@@ -373,6 +401,10 @@ export default class extends Vue {
(this.currentPage - 1) * this.pageSize,
this.currentPage * this.pageSize
)
+ if (this.tableData.length === 0 && this.currentPage > 1) {
+ this.currentPage -= 1
+ this.sliceData()
+ }
}
private async getRecords() {
@@ -402,6 +434,10 @@ export default class extends Vue {
}
}
+ private formStatus(cellValue: boolean) {
+ return cellValue ? '已锁定' : '正常'
+ }
+
private formatRole(val: string) {
const data = this.roleList.find(o => {
return o.key === val
@@ -423,24 +459,50 @@ export default class extends Vue {
this.record = cloneDeep(scope.row)
}
- private handleDelete(scope: any) {
+ private async handleDelete(scope: any) {
const { $index, row } = scope
- this.$confirm('Confirm to remove the record?', 'Warning', {
- confirmButtonText: 'Confirm',
- cancelButtonText: 'Cancel',
- type: 'warning'
- })
- .then(async() => {
- await deleteAdmin(row.id)
- this.adminList.splice($index, 1)
- this.$message({
- type: 'success',
- message: 'Deleted!'
- })
+ console.log($index, row)
+ try {
+ await this.$confirm('确定删除当前帐号?', 'Warning', {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning'
})
- .catch(err => {
- console.log(err)
+ await deleteAdmin(row.id)
+ const index = this.adminList.indexOf(row)
+ this.adminList.splice(index, 1)
+ this.sliceData()
+ this.$message({
+ type: 'success',
+ message: 'Deleted!'
})
+ } catch (err) {
+ console.log(err)
+ }
+ }
+
+ private async handleLock(scope: any) {
+ const { row } = scope
+ try {
+ let txt = '确定锁定当前帐号?'
+ if (row.locked) {
+ txt = '确定解锁当前帐号?'
+ }
+ await this.$confirm(txt, 'Warning', {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning'
+ })
+ await changeLocker(row.id, !row.locked)
+ row.locked = !row.locked
+ this.sliceData()
+ this.$message({
+ type: 'success',
+ message: 'Deleted!'
+ })
+ } catch (err) {
+ console.log(err)
+ }
}
private closeModal() {
@@ -489,15 +551,31 @@ export default class extends Vue {
return data.records
}
- private formatDept(row: number, column: number, cellValue: string) {
+ private formatDept(row: any) {
+ if (row.level === 1) {
+ return '系统帐号'
+ }
let result = '未指定'
for (const dep of this.allDepts) {
- if (dep._id === cellValue) {
+ if (dep._id === row.department) {
result = dep.name
break
}
}
return result
}
+
+ private tableRowClassName({ row, rowIndex }: {row: any, rowIndex: number}) {
+ if (row.level === 1) {
+ return 'shop-row'
+ }
+ return ''
+ }
}
+
+