feat:人脸管理

This commit is contained in:
dzc committed 2024-12-31 12:32:13 +08:00
1 parent ffe6ba4390
commit fce1603a2e
5 files changed
+257 -33

No files matched your search

+33 -32
View File
@@ -1,16 +1,19 @@
<template>
<div class="system-user-dialog-container">
<el-dialog :close-on-click-modal="false" :title="dataForm.userId ? $t('common.editBtn') : $t('common.addBtn')" draggable v-model="visible">
<el-dialog :close-on-click-modal="false" :title="dataForm.userId ? $t('common.editBtn') : $t('common.addBtn')"
draggable v-model="visible">
<el-form :model="dataForm" :rules="dataRules" label-width="90px" ref="dataFormRef" v-loading="loading">
<el-row :gutter="20">
<el-col :span="12" class="mb20">
<el-form-item :label="$t('sysuser.username')" prop="username">
<el-input :disabled="dataForm.userId !== ''" placeholder="请输入用户名" v-model="dataForm.username"></el-input>
<el-input :disabled="dataForm.userId !== ''" placeholder="请输入用户名"
v-model="dataForm.username"></el-input>
</el-form-item>
</el-col>
<el-col :span="12" class="mb20">
<el-form-item :label="$t('sysuser.password')" prop="password">
<el-input clearable placeholder="请输入密码" type="password" v-model="dataForm.password"></el-input>
<el-input clearable placeholder="请输入密码" type="password"
v-model="dataForm.password"></el-input>
</el-form-item>
</el-col>
<el-col :span="12" class="mb20">
@@ -26,28 +29,24 @@
<el-col :span="12" 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-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-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" />
<el-option :key="item.postId" :label="item.postName" :value="item.postId"
v-for="item in postData" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12" class="mb20">
<el-form-item :label="$t('sysuser.dept')" prop="deptId">
<el-tree-select
:data="deptData"
:props="{ value: 'id', label: 'name', children: 'children' }"
check-strictly
class="w100"
clearable
placeholder="请选择所属部门"
v-model="dataForm.deptId"
>
<el-tree-select :data="deptData"
:props="{ value: 'id', label: 'name', children: 'children' }" check-strictly
class="w100" clearable placeholder="请选择所属部门" v-model="dataForm.deptId">
</el-tree-select>
</el-form-item>
</el-col>
@@ -65,7 +64,8 @@
<el-col :span="12" class="mb20">
<el-form-item :label="$t('sysuser.lockFlag')" prop="lockFlag">
<el-radio-group v-model="dataForm.lockFlag">
<el-radio :key="index" :label="item.value" border v-for="(item, index) in lock_flag">{{ item.label }} </el-radio>
<el-radio :key="index" :label="item.value" border v-for="(item, index) in lock_flag">{{
item.label }} </el-radio>
</el-radio-group>
</el-form-item>
</el-col>
@@ -74,7 +74,8 @@
<template #footer>
<span class="dialog-footer">
<el-button @click="visible = false">{{ $t('common.cancelButtonText') }}</el-button>
<el-button @click="onSubmit" type="primary" :disabled="loading">{{ $t('common.confirmButtonText') }}</el-button>
<el-button @click="onSubmit" type="primary" :disabled="loading">{{ $t('common.confirmButtonText')
}}</el-button>
</span>
</template>
</el-dialog>
@@ -107,10 +108,10 @@ const postData = ref<any[]>([]);
const loading = ref(false);
const props = defineProps({
deptId: {
type: String,
default: '',
}
deptId: {
type: String,
default: '',
}
});
const dataForm = reactive({
@@ -155,7 +156,7 @@ const dataRules = ref({
],
// 姓名校验,不能为空、只能是中文
name: [
{ validator: rule.overLength, trigger: 'blur' },
{ validator: rule.overLength, trigger: 'blur' },
{ required: true, message: '姓名不能为空', trigger: 'blur' },
{ validator: rule.chinese, trigger: 'blur' },
],
@@ -173,7 +174,7 @@ const dataRules = ref({
trigger: 'blur',
},
],
email: [{ type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change'] },{ validator: rule.overLength, trigger: 'blur' }],
email: [{ type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change'] }, { validator: rule.overLength, trigger: 'blur' }],
lockFlag: [{ required: true, message: '状态不能为空', trigger: 'blur' }],
});
@@ -202,7 +203,7 @@ const openDialog = async (id: string) => {
// 提交
const onSubmit = async () => {
const valid = await dataFormRef.value.validate().catch(() => {});
const valid = await dataFormRef.value.validate().catch(() => { });
if (!valid) return false;
try {
@@ -263,9 +264,9 @@ const getDeptData = () => {
deptTree().then((res) => {
deptData.value = res.data;
// 默认选择在树中选中的部门
if (!dataForm.userId) {
dataForm.deptId = props.deptId;
}
if (!dataForm.userId) {
dataForm.deptId = props.deptId;
}
});
};
@@ -274,9 +275,9 @@ const getPostData = () => {
postList().then((res) => {
postData.value = res.data;
// 默认选择第一个
if (!dataForm.userId) {
dataForm.post = [res.data[0].postId];
}
if (!dataForm.userId) {
dataForm.post = [res.data[0].postId];
}
});
};
// 角色数据
@@ -284,9 +285,9 @@ const getRoleData = () => {
roleList().then((res) => {
roleData.value = res.data;
// 默认选择第一个
if (!dataForm.userId) {
dataForm.role = [res.data[0].roleId];
}
if (!dataForm.userId) {
dataForm.role = [res.data[0].roleId];
}
});
};