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