人脸审批相关修改
This commit is contained in:
1 parent
a7f82a1ee7
commit
866cb60801
6 files changed
+94
-65
No files matched your search
+45
-43
@@ -1,19 +1,20 @@
|
||||
import { defineStore } from 'pinia';
|
||||
import { Session } from '/@/utils/storage';
|
||||
import { getUserInfo, login, loginByMobile, loginBySocial, refreshTokenApi } from '/@/api/login/index';
|
||||
import { useMessage } from '/@/hooks/message';
|
||||
import { defineStore } from "pinia"
|
||||
import { Session } from "/@/utils/storage"
|
||||
import { getUserInfo, login, loginByMobile, loginBySocial, refreshTokenApi } from "/@/api/login/index"
|
||||
import { useMessage } from "/@/hooks/message"
|
||||
|
||||
/**
|
||||
* @function useUserInfo
|
||||
* @returns {UserInfosStore}
|
||||
*/
|
||||
export const useUserInfo = defineStore('userInfo', {
|
||||
export const useUserInfo = defineStore("userInfo", {
|
||||
state: (): UserInfosState => ({
|
||||
userInfos: {
|
||||
userName: '',
|
||||
photo: '',
|
||||
userName: "",
|
||||
photo: "",
|
||||
time: 0,
|
||||
roles: [],
|
||||
roleCodes: [],
|
||||
authBtnList: [],
|
||||
},
|
||||
}),
|
||||
@@ -26,23 +27,23 @@ export const useUserInfo = defineStore('userInfo', {
|
||||
* @param {Object} data - 登录数据
|
||||
* @returns {Promise<Object>}
|
||||
*/
|
||||
async login(data:any) {
|
||||
data.grant_type = 'password';
|
||||
data.scope = 'server';
|
||||
async login(data: any) {
|
||||
data.grant_type = "password"
|
||||
data.scope = "server"
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
login(data)
|
||||
.then((res) => {
|
||||
// 存储token 信息
|
||||
Session.set('token', res.access_token);
|
||||
Session.set('refresh_token', res.refresh_token);
|
||||
resolve(res);
|
||||
Session.set("token", res.access_token)
|
||||
Session.set("refresh_token", res.refresh_token)
|
||||
resolve(res)
|
||||
})
|
||||
.catch((err) => {
|
||||
useMessage().error(err?.msg || '系统异常请联系管理员');
|
||||
reject(err);
|
||||
});
|
||||
});
|
||||
useMessage().error(err?.msg || "系统异常请联系管理员")
|
||||
reject(err)
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -57,15 +58,15 @@ export const useUserInfo = defineStore('userInfo', {
|
||||
loginByMobile(data.mobile, data.code)
|
||||
.then((res) => {
|
||||
// 存储token 信息
|
||||
Session.set('token', res.access_token);
|
||||
Session.set('refresh_token', res.refresh_token);
|
||||
resolve(res);
|
||||
Session.set("token", res.access_token)
|
||||
Session.set("refresh_token", res.refresh_token)
|
||||
resolve(res)
|
||||
})
|
||||
.catch((err) => {
|
||||
useMessage().error(err?.msg || '系统异常请联系管理员');
|
||||
reject(err);
|
||||
});
|
||||
});
|
||||
useMessage().error(err?.msg || "系统异常请联系管理员")
|
||||
reject(err)
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -81,15 +82,15 @@ export const useUserInfo = defineStore('userInfo', {
|
||||
loginBySocial(state, code)
|
||||
.then((res) => {
|
||||
// 存储token 信息
|
||||
Session.set('token', res.access_token);
|
||||
Session.set('refresh_token', res.refresh_token);
|
||||
resolve(res);
|
||||
Session.set("token", res.access_token)
|
||||
Session.set("refresh_token", res.refresh_token)
|
||||
resolve(res)
|
||||
})
|
||||
.catch((err) => {
|
||||
useMessage().error(err?.msg || '系统异常请联系管理员');
|
||||
reject(err);
|
||||
});
|
||||
});
|
||||
useMessage().error(err?.msg || "系统异常请联系管理员")
|
||||
reject(err)
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -100,19 +101,19 @@ export const useUserInfo = defineStore('userInfo', {
|
||||
*/
|
||||
async refreshToken() {
|
||||
return new Promise((resolve, reject) => {
|
||||
const refreshToken = Session.get('refresh_token');
|
||||
const refreshToken = Session.get("refresh_token")
|
||||
refreshTokenApi(refreshToken)
|
||||
.then((res) => {
|
||||
// 存储token 信息
|
||||
Session.set('token', res.access_token);
|
||||
Session.set('refresh_token', res.refresh_token);
|
||||
resolve(res);
|
||||
Session.set("token", res.access_token)
|
||||
Session.set("refresh_token", res.refresh_token)
|
||||
resolve(res)
|
||||
})
|
||||
.catch((err) => {
|
||||
useMessage().error(err.msg);
|
||||
reject(err);
|
||||
});
|
||||
});
|
||||
useMessage().error(err.msg)
|
||||
reject(err)
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -126,10 +127,11 @@ export const useUserInfo = defineStore('userInfo', {
|
||||
user: res.data.sysUser,
|
||||
time: new Date().getTime(),
|
||||
roles: res.data.roles,
|
||||
roleCodes: res.data.roleCodes,
|
||||
authBtnList: res.data.permissions,
|
||||
};
|
||||
this.userInfos = userInfo;
|
||||
});
|
||||
}
|
||||
this.userInfos = userInfo
|
||||
})
|
||||
},
|
||||
},
|
||||
});
|
||||
})
|
||||
+12
-12
@@ -1,5 +1,5 @@
|
||||
import { useUserInfo } from '/@/stores/userInfo';
|
||||
import { judementSameArr } from '/@/utils/arrayOperation';
|
||||
import { useUserInfo } from "/@/stores/userInfo"
|
||||
import { judementSameArr } from "/@/utils/arrayOperation"
|
||||
|
||||
/**
|
||||
* 单个权限验证
|
||||
@@ -7,8 +7,8 @@ import { judementSameArr } from '/@/utils/arrayOperation';
|
||||
* @returns 有权限,返回 `true`,反之则反
|
||||
*/
|
||||
export function auth(value: string): boolean {
|
||||
const stores = useUserInfo();
|
||||
return stores.userInfos.authBtnList.some((v: string) => v === value);
|
||||
const stores = useUserInfo()
|
||||
return stores.userInfos.authBtnList.some((v: string) => v === value)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -17,14 +17,14 @@ export function auth(value: string): boolean {
|
||||
* @returns 有权限,返回 `true`,反之则反
|
||||
*/
|
||||
export function auths(value: Array<string>): boolean {
|
||||
let flag = false;
|
||||
const stores = useUserInfo();
|
||||
let flag = false
|
||||
const stores = useUserInfo()
|
||||
stores.userInfos.authBtnList.map((val: string) => {
|
||||
value.map((v: string) => {
|
||||
if (val === v) flag = true;
|
||||
});
|
||||
});
|
||||
return flag;
|
||||
if (val === v) flag = true
|
||||
})
|
||||
})
|
||||
return flag
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -33,6 +33,6 @@ export function auths(value: Array<string>): boolean {
|
||||
* @returns 有权限,返回 `true`,反之则反
|
||||
*/
|
||||
export function authAll(value: Array<string>): boolean {
|
||||
const stores = useUserInfo();
|
||||
return judementSameArr(value, stores.userInfos.authBtnList);
|
||||
const stores = useUserInfo()
|
||||
return judementSameArr(value, stores.userInfos.authBtnList)
|
||||
}
|
||||
@@ -17,6 +17,11 @@
|
||||
<preview-image :src="row.faceImg" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="processStatus" align="center" label="审批状态">
|
||||
<template #default="{ row }">
|
||||
<dict-tag :options="check_status" :value="row.processStatus" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-auths="['userFace_sysUserFace_edit', 'userFace_sysUserFace_del']" prop="address" align="center" label="操作">
|
||||
<template #default="{ row }">
|
||||
<el-button v-auth="'userFace_sysUserFace_edit'" link type="primary" @click="editFace(row)">修改</el-button>
|
||||
@@ -48,20 +53,19 @@ import { BasicTableProps, useTable } from "/@/hooks/table"
|
||||
import * as userFaceApi from "/@/api/admin/userFace"
|
||||
import { useMessage } from "/@/hooks/message"
|
||||
import { auth } from "/@/utils/authFunction"
|
||||
import { useDict } from "/@/hooks/dict"
|
||||
|
||||
// 定义刷新表格emit
|
||||
const emit = defineEmits(["refresh"])
|
||||
|
||||
// 定义变量内容
|
||||
const { check_status } = useDict("check_status")
|
||||
const formRef = ref()
|
||||
|
||||
const dialogVisible = ref(false)
|
||||
const uploadDialogVisible = ref(false)
|
||||
|
||||
const faceUploadTitle = ref<"上传人脸" | "修改人脸">("上传人脸")
|
||||
|
||||
const formLoading = ref(false)
|
||||
const faceTableLoading = ref(false)
|
||||
|
||||
const formData = ref<any>({
|
||||
id: undefined,
|
||||
|
||||
@@ -28,14 +28,14 @@
|
||||
<el-input clearable placeholder="请输入手机号" v-model="dataForm.phone"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12" class="mb20">
|
||||
<el-col :span="12" v-if="!roleCodes.includes('DEPT_ADMIN') && !roleCodes.includes('ROLE_ADMIN')" class="mb20">
|
||||
<el-form-item :label="$t('sysuser.role')" prop="role">
|
||||
<el-select clearable multiple placeholder="请选择角色" v-model="dataForm.role">
|
||||
<el-option :key="item.roleId" :label="item.roleName" :value="item.roleId" v-for="item in roleData" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12" class="mb20">
|
||||
<el-col :span="12" v-if="!roleCodes.includes('DEPT_ADMIN') && !roleCodes.includes('ROLE_ADMIN')" class="mb20">
|
||||
<el-form-item :label="$t('sysuser.post')" prop="post">
|
||||
<el-select clearable multiple placeholder="请选择岗位" v-model="dataForm.post">
|
||||
<el-option :key="item.postId" :label="item.postName" :value="item.postId" v-for="item in postData" />
|
||||
@@ -95,9 +95,14 @@ import { useDict } from "/@/hooks/dict"
|
||||
import { useI18n } from "vue-i18n"
|
||||
import { useMessage } from "/@/hooks/message"
|
||||
import { rule } from "/@/utils/validate"
|
||||
import { useUserInfo } from "/@/stores/userInfo"
|
||||
|
||||
const { t } = useI18n()
|
||||
|
||||
const {
|
||||
userInfos: { roleCodes },
|
||||
} = useUserInfo()
|
||||
|
||||
// 定义刷新表格emit
|
||||
const emit = defineEmits(["refresh"])
|
||||
// @ts-ignore
|
||||
@@ -166,7 +171,10 @@ const dataRules = ref({
|
||||
{ validator: rule.chinese, trigger: "blur" },
|
||||
],
|
||||
deptId: [{ required: true, message: "部门不能为空", trigger: "blur" }],
|
||||
role: [{ required: true, message: "角色不能为空", trigger: "blur" }],
|
||||
role:
|
||||
roleCodes.includes("DEPT_ADMIN") || roleCodes.includes("ROLE_ADMIN")
|
||||
? []
|
||||
: [{ required: true, message: "角色不能为空", trigger: "blur" }],
|
||||
// post: [{ required: true, message: '岗位不能为空', trigger: 'blur' }],
|
||||
// 手机号校验,不能为空、新增的时不能重复校验
|
||||
phone: [
|
||||
@@ -280,7 +288,7 @@ const getPostData = () => {
|
||||
postList().then((res) => {
|
||||
postData.value = res.data
|
||||
// 默认选择第一个
|
||||
if (!dataForm.userId) {
|
||||
if (!roleCodes.includes("DEPT_ADMIN") && !roleCodes.includes("ROLE_ADMIN") && !dataForm.userId) {
|
||||
dataForm.post = [res.data[0].postId]
|
||||
}
|
||||
})
|
||||
@@ -290,7 +298,7 @@ const getRoleData = () => {
|
||||
roleList().then((res) => {
|
||||
roleData.value = res.data
|
||||
// 默认选择第一个
|
||||
if (!dataForm.userId) {
|
||||
if (!roleCodes.includes("DEPT_ADMIN") && !roleCodes.includes("ROLE_ADMIN") && !dataForm.userId) {
|
||||
dataForm.role = [res.data[0].roleId]
|
||||
}
|
||||
})
|
||||
|
||||
@@ -166,7 +166,7 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<pagination v-bind="state.pagination" @current-change="currentChangeHandle" @size-change="sizeChangeHandle"> </pagination>
|
||||
<pagination v-bind="state.pagination" @current-change="currentChangeHandle" @size-change="sizeChangeHandle" />
|
||||
</template>
|
||||
</DraggableDepTree>
|
||||
</div>
|
||||
|
||||
@@ -55,10 +55,12 @@
|
||||
<dict-tag :options="check_status" :value="row.processStatus" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="创建时间" prop="createTime" show-overflow-tooltip min-width="160" />
|
||||
<el-table-column label="审核时间" prop="processTime" show-overflow-tooltip min-width="160" />
|
||||
<el-table-column label="操作" min-width="100" fixed="right">
|
||||
<el-table-column label="操作" min-width="160" fixed="right">
|
||||
<template #default="scope">
|
||||
<el-button type="primary" size="small" link icon="VideoPlay" @click="deal(scope.row)">开始处理</el-button>
|
||||
<el-button v-auth="'userFace_sysUserFace_del'" link type="danger" @click="delFace(scope.row)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -79,6 +81,7 @@ import { getUserFaceList } from "/@/api/admin/userFaceApprove"
|
||||
import { useMessage } from "/@/hooks/message"
|
||||
import { useDict } from "/@/hooks/dict"
|
||||
import { getDicts } from "/@/api/admin/dict"
|
||||
import * as userFaceApi from "/@/api/admin/userFace"
|
||||
|
||||
const { check_status } = useDict("check_status")
|
||||
const queryRef = ref()
|
||||
@@ -139,4 +142,16 @@ const deal = (row: any) => {
|
||||
const taskSubmitEvent = () => {
|
||||
getDataList()
|
||||
}
|
||||
|
||||
// 删除人脸
|
||||
const delFace = async (row: any) => {
|
||||
try {
|
||||
await useMessage().delConfirm("是否删除人脸?")
|
||||
await userFaceApi.delObjs([row.id])
|
||||
useMessage().success("删除成功")
|
||||
getDataList()
|
||||
} catch (error) {
|
||||
console.log(error)
|
||||
}
|
||||
}
|
||||
</script>
|
||||
Reference in new issue
Block a user