1
This commit is contained in:
@ -48,3 +48,11 @@ export function recognizeBankCard(data: any) {
|
|||||||
data: data
|
data: data
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
//识别人脸
|
||||||
|
export function recognizeFace(data: any) {
|
||||||
|
return request({
|
||||||
|
url: '/contractor/constructionUser/face/recognize',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|||||||
@ -16,6 +16,16 @@ export const listUser = (query: UserQuery): AxiosPromise<UserVO[]> => {
|
|||||||
params: query
|
params: query
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
/**
|
||||||
|
* 查询用户列表
|
||||||
|
* @param query
|
||||||
|
*/
|
||||||
|
export const appUserType = (userId, appUserType) => {
|
||||||
|
return request({
|
||||||
|
url: '/system/user/appUserType/' + userId + '/' + appUserType,
|
||||||
|
method: 'put'
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过用户ids查询用户
|
* 通过用户ids查询用户
|
||||||
|
|||||||
@ -41,7 +41,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { listByIds, delOss, recognizeidCard, recognizeBankCard } from '@/api/system/oss';
|
import { listByIds, delOss, recognizeidCard, recognizeBankCard, recognizeFace } from '@/api/system/oss';
|
||||||
import { OssVO } from '@/api/system/oss/types';
|
import { OssVO } from '@/api/system/oss/types';
|
||||||
import { propTypes } from '@/utils/propTypes';
|
import { propTypes } from '@/utils/propTypes';
|
||||||
import { globalHeaders } from '@/utils/request';
|
import { globalHeaders } from '@/utils/request';
|
||||||
@ -64,6 +64,11 @@ const props = defineProps({
|
|||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: true
|
default: true
|
||||||
},
|
},
|
||||||
|
// 是否支持压缩,默认否
|
||||||
|
compressSupport: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
isGo: {
|
isGo: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false
|
default: false
|
||||||
@ -73,11 +78,6 @@ const props = defineProps({
|
|||||||
type: String,
|
type: String,
|
||||||
default: ''
|
default: ''
|
||||||
},
|
},
|
||||||
// 是否支持压缩,默认否
|
|
||||||
compressSupport: {
|
|
||||||
type: Boolean,
|
|
||||||
default: false
|
|
||||||
},
|
|
||||||
// 压缩目标大小,单位KB。默认300KB以上文件才压缩,并压缩至300KB以内
|
// 压缩目标大小,单位KB。默认300KB以上文件才压缩,并压缩至300KB以内
|
||||||
compressTargetSize: propTypes.number.def(300),
|
compressTargetSize: propTypes.number.def(300),
|
||||||
idCardType: {
|
idCardType: {
|
||||||
@ -96,7 +96,6 @@ const dialogVisible = ref(false);
|
|||||||
const baseUrl = props.isGo ? import.meta.env.VITE_APP_BASE_API_GO : import.meta.env.VITE_APP_BASE_API;
|
const baseUrl = props.isGo ? import.meta.env.VITE_APP_BASE_API_GO : import.meta.env.VITE_APP_BASE_API;
|
||||||
const uploadImgUrl = ref(baseUrl + (props.action ? props.action : '/resource/oss/upload')); // 上传的图片服务器地址
|
const uploadImgUrl = ref(baseUrl + (props.action ? props.action : '/resource/oss/upload')); // 上传的图片服务器地址
|
||||||
console.log('🚀 ~ uploadImgUrl:', uploadImgUrl.value, baseUrl, props.action);
|
console.log('🚀 ~ uploadImgUrl:', uploadImgUrl.value, baseUrl, props.action);
|
||||||
|
|
||||||
const headers = ref(globalHeaders());
|
const headers = ref(globalHeaders());
|
||||||
|
|
||||||
const fileList = ref<any[]>([]);
|
const fileList = ref<any[]>([]);
|
||||||
@ -188,7 +187,6 @@ const handleExceed = () => {
|
|||||||
const handleUploadSuccess = async (res: any, file: UploadFile) => {
|
const handleUploadSuccess = async (res: any, file: UploadFile) => {
|
||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
uploadList.value.push({ name: res.data.fileName, url: res.data.url, ossId: res.data.ossId });
|
uploadList.value.push({ name: res.data.fileName, url: res.data.url, ossId: res.data.ossId });
|
||||||
uploadedSuccessfully();
|
|
||||||
if (props.idCardType) {
|
if (props.idCardType) {
|
||||||
const formData = new FormData();
|
const formData = new FormData();
|
||||||
formData.append('file', file.raw); // 假设后端接收的字段名为file
|
formData.append('file', file.raw); // 假设后端接收的字段名为file
|
||||||
@ -197,8 +195,11 @@ const handleUploadSuccess = async (res: any, file: UploadFile) => {
|
|||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
proxy?.$modal.msgSuccess('身份证识别成功');
|
proxy?.$modal.msgSuccess('身份证识别成功');
|
||||||
emit('success', res.data);
|
emit('success', res.data);
|
||||||
|
uploadedSuccessfully();
|
||||||
} else {
|
} else {
|
||||||
proxy?.$modal.msgError('身份证识别失败');
|
proxy?.$modal.msgError('身份证识别失败');
|
||||||
|
proxy?.$modal.closeLoading();
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (props.idCardType === 'bank') {
|
if (props.idCardType === 'bank') {
|
||||||
@ -206,10 +207,27 @@ const handleUploadSuccess = async (res: any, file: UploadFile) => {
|
|||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
proxy?.$modal.msgSuccess('银行卡识别成功');
|
proxy?.$modal.msgSuccess('银行卡识别成功');
|
||||||
emit('success', res.data);
|
emit('success', res.data);
|
||||||
|
uploadedSuccessfully();
|
||||||
} else {
|
} else {
|
||||||
proxy?.$modal.msgError('银行卡识别失败');
|
proxy?.$modal.msgError('银行卡识别失败');
|
||||||
|
proxy?.$modal.closeLoading();
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (props.idCardType === 'face') {
|
||||||
|
const res = await recognizeFace(formData);
|
||||||
|
if (res.code === 200) {
|
||||||
|
proxy?.$modal.msgSuccess('人脸识别成功');
|
||||||
|
emit('success', res.data);
|
||||||
|
uploadedSuccessfully();
|
||||||
|
} else {
|
||||||
|
console.log('人脸识别失败', res);
|
||||||
|
proxy?.$modal.closeLoading();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
uploadedSuccessfully();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
number.value--;
|
number.value--;
|
||||||
|
|||||||
@ -4,9 +4,6 @@
|
|||||||
<div v-show="showSearch" class="mb-[10px]">
|
<div v-show="showSearch" class="mb-[10px]">
|
||||||
<el-card shadow="hover">
|
<el-card shadow="hover">
|
||||||
<el-form ref="queryFormRef" :model="queryParams" :inline="true" label-width="110px">
|
<el-form ref="queryFormRef" :model="queryParams" :inline="true" label-width="110px">
|
||||||
<el-form-item label="道路编号" prop="roadCode">
|
|
||||||
<el-input v-model="queryParams.roadCode" placeholder="请输入道路编号" clearable @keyup.enter="handleQuery" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="道路名称" prop="roadName">
|
<el-form-item label="道路名称" prop="roadName">
|
||||||
<el-input v-model="queryParams.roadName" placeholder="请输入道路名称" clearable @keyup.enter="handleQuery" />
|
<el-input v-model="queryParams.roadName" placeholder="请输入道路名称" clearable @keyup.enter="handleQuery" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -40,7 +37,14 @@
|
|||||||
class="upload-demo"
|
class="upload-demo"
|
||||||
:http-request="handleImport"
|
:http-request="handleImport"
|
||||||
:show-file-list="false"
|
:show-file-list="false"
|
||||||
/>
|
>
|
||||||
|
<template #trigger>
|
||||||
|
<el-button plain type="primary" icon="upload">导入excel</el-button>
|
||||||
|
</template>
|
||||||
|
</el-upload>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button type="success" plain icon="Download" @click="exportFile">导出模版</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
@ -49,10 +53,10 @@
|
|||||||
<el-table-column type="selection" width="55" align="center" />
|
<el-table-column type="selection" width="55" align="center" />
|
||||||
<el-table-column label="道路编号" align="center" prop="roadCode" />
|
<el-table-column label="道路编号" align="center" prop="roadCode" />
|
||||||
<el-table-column label="道路名称" align="center" prop="roadName" />
|
<el-table-column label="道路名称" align="center" prop="roadName" />
|
||||||
<el-table-column label="设计新建道路长度" align="center" prop="designCreateLength" />
|
<el-table-column label="设计新建道路长度(米)" align="center" prop="designCreateLength" />
|
||||||
<el-table-column label="设计改扩建长度" align="center" prop="designUpdateLength" />
|
<el-table-column label="设计改扩建长度(米)" align="center" prop="designUpdateLength" />
|
||||||
<el-table-column label="需流转总长度" align="center" prop="changeLength" />
|
<el-table-column label="需流转总长度(米)" align="center" prop="changeLength" />
|
||||||
<el-table-column label="需要流转总面积" align="center" prop="changeArea" />
|
<el-table-column label="需要流转总面积(亩)" align="center" prop="changeArea" />
|
||||||
<el-table-column label="对应地块" align="center" prop="landName" />
|
<el-table-column label="对应地块" align="center" prop="landName" />
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
@ -69,24 +73,21 @@
|
|||||||
</el-card>
|
</el-card>
|
||||||
<!-- 添加或修改进场道路信息对话框 -->
|
<!-- 添加或修改进场道路信息对话框 -->
|
||||||
<el-dialog draggable :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
|
<el-dialog draggable :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
|
||||||
<el-form ref="enterRoadFormRef" :model="form" :rules="rules" label-width="130px">
|
<el-form ref="enterRoadFormRef" :model="form" :rules="rules" label-width="150px">
|
||||||
<el-form-item label="道路编号" prop="roadCode">
|
|
||||||
<el-input v-model="form.roadCode" placeholder="请输入道路编号" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="道路名称" prop="roadName">
|
<el-form-item label="道路名称" prop="roadName">
|
||||||
<el-input v-model="form.roadName" placeholder="请输入道路名称" />
|
<el-input v-model="form.roadName" placeholder="请输入道路名称" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="设计新建道路长度" prop="designCreateLength">
|
<el-form-item label="设计新建道路长度(米)" prop="designCreateLength">
|
||||||
<el-input v-model="form.designCreateLength" placeholder="请输入设计新建道路长度" />
|
<el-input v-model="form.designCreateLength" type="number" placeholder="请输入设计新建道路长度" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="设计改扩建长度" prop="designUpdateLength">
|
<el-form-item label="设计改扩建长度(米)" prop="designUpdateLength">
|
||||||
<el-input v-model="form.designUpdateLength" placeholder="请输入设计改扩建长度" />
|
<el-input v-model="form.designUpdateLength" type="number" placeholder="请输入设计改扩建长度" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="需流转总长度" prop="changeLength">
|
<el-form-item label="需流转总长度(米)" prop="changeLength">
|
||||||
<el-input v-model="form.changeLength" placeholder="请输入需流转总长度" />
|
<el-input v-model="form.changeLength" type="number" placeholder="请输入需流转总长度" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="需要流转总面积" prop="changeArea">
|
<el-form-item label="需要流转总面积(亩)" prop="changeArea">
|
||||||
<el-input v-model="form.changeArea" placeholder="请输入需要流转总面积" />
|
<el-input v-model="form.changeArea" type="number" placeholder="请输入需要流转总面积" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="对应地块" prop="landBlockId">
|
<el-form-item label="对应地块" prop="landBlockId">
|
||||||
<el-select v-model="form.landBlockId" clearable placeholder="请选择对应地块">
|
<el-select v-model="form.landBlockId" clearable placeholder="请选择对应地块">
|
||||||
@ -96,7 +97,7 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<div class="dialog-footer">
|
<div class="dialog-footer">
|
||||||
<el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
|
<el-button :loading="buttonLoading" type="primary" v-hasPermi="['land:enterRoad:add']" @click="submitForm">确 定</el-button>
|
||||||
<el-button @click="cancel">取 消</el-button>
|
<el-button @click="cancel">取 消</el-button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -105,7 +106,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup name="EnterRoad" lang="ts">
|
<script setup name="EnterRoad" lang="ts">
|
||||||
import { listEnterRoad, getEnterRoad, delEnterRoad, addEnterRoad, updateEnterRoad } from '@/api/system/landTransfer/enterRoad';
|
import { listEnterRoad, getEnterRoad, delEnterRoad, addEnterRoad, updateEnterRoad, importEnterRoad } from '@/api/system/landTransfer/enterRoad';
|
||||||
import { EnterRoadVO, EnterRoadQuery, EnterRoadForm } from '@/api/system/landTransfer/enterRoad/types';
|
import { EnterRoadVO, EnterRoadQuery, EnterRoadForm } from '@/api/system/landTransfer/enterRoad/types';
|
||||||
import { listLandBlock } from '@/api/system/landTransfer/landBlock';
|
import { listLandBlock } from '@/api/system/landTransfer/landBlock';
|
||||||
import { useUserStoreHook } from '@/store/modules/user';
|
import { useUserStoreHook } from '@/store/modules/user';
|
||||||
@ -133,7 +134,7 @@ const dialog = reactive<DialogOption>({
|
|||||||
|
|
||||||
const initFormData: EnterRoadForm = {
|
const initFormData: EnterRoadForm = {
|
||||||
id: undefined,
|
id: undefined,
|
||||||
projectId: currentProject.value.id,
|
projectId: currentProject.value?.id,
|
||||||
roadCode: undefined,
|
roadCode: undefined,
|
||||||
roadName: undefined,
|
roadName: undefined,
|
||||||
designCreateLength: undefined,
|
designCreateLength: undefined,
|
||||||
@ -147,7 +148,7 @@ const data = reactive<PageData<EnterRoadForm, EnterRoadQuery>>({
|
|||||||
queryParams: {
|
queryParams: {
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
projectId: currentProject.value.id,
|
projectId: currentProject.value?.id,
|
||||||
roadCode: undefined,
|
roadCode: undefined,
|
||||||
roadName: undefined,
|
roadName: undefined,
|
||||||
designCreateLength: undefined,
|
designCreateLength: undefined,
|
||||||
@ -180,7 +181,7 @@ const getListLand = async () => {
|
|||||||
const res = await listLandBlock({
|
const res = await listLandBlock({
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 10000,
|
pageSize: 10000,
|
||||||
projectId: currentProject.value.id
|
projectId: currentProject.value?.id
|
||||||
});
|
});
|
||||||
landBlockList.value = res.rows;
|
landBlockList.value = res.rows;
|
||||||
};
|
};
|
||||||
@ -207,6 +208,24 @@ const resetQuery = () => {
|
|||||||
queryFormRef.value?.resetFields();
|
queryFormRef.value?.resetFields();
|
||||||
handleQuery();
|
handleQuery();
|
||||||
};
|
};
|
||||||
|
const exportFile = () => {
|
||||||
|
// 导出模版文件
|
||||||
|
try {
|
||||||
|
// 创建a标签
|
||||||
|
const link = document.createElement('a');
|
||||||
|
// 设置PDF文件路径 - 相对于public目录
|
||||||
|
link.href = '/daolu.xlsx';
|
||||||
|
// 设置下载后的文件名
|
||||||
|
link.download = '道路信息导入模版.xlsx';
|
||||||
|
// 触发点击
|
||||||
|
document.body.appendChild(link);
|
||||||
|
link.click();
|
||||||
|
// 清理
|
||||||
|
document.body.removeChild(link);
|
||||||
|
} catch (error) {
|
||||||
|
alert('下载失败,请重试');
|
||||||
|
}
|
||||||
|
};
|
||||||
/** 多选框选中数据 */
|
/** 多选框选中数据 */
|
||||||
const handleSelectionChange = (selection: EnterRoadVO[]) => {
|
const handleSelectionChange = (selection: EnterRoadVO[]) => {
|
||||||
ids.value = selection.map((item) => item.id);
|
ids.value = selection.map((item) => item.id);
|
||||||
@ -259,7 +278,7 @@ const handleDelete = async (row?: EnterRoadVO) => {
|
|||||||
|
|
||||||
//监听项目id刷新数据
|
//监听项目id刷新数据
|
||||||
const listeningProject = watch(
|
const listeningProject = watch(
|
||||||
() => currentProject.value.id,
|
() => currentProject.value?.id,
|
||||||
(nid, oid) => {
|
(nid, oid) => {
|
||||||
queryParams.value.projectId = nid;
|
queryParams.value.projectId = nid;
|
||||||
getListLand();
|
getListLand();
|
||||||
@ -267,6 +286,46 @@ const listeningProject = watch(
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// 导入文件
|
||||||
|
const handleImport = (options: any) => {
|
||||||
|
loading.value = true;
|
||||||
|
let formData = new FormData();
|
||||||
|
formData.append('file', options.file);
|
||||||
|
importEnterRoad(currentProject.value?.id, formData)
|
||||||
|
.then((res) => {
|
||||||
|
if (res.code == 200) {
|
||||||
|
proxy.$modal.msgSuccess(res.msg || '导入成功');
|
||||||
|
getListLand();
|
||||||
|
getList();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
proxy.$modal.msgError(err.msg || '导入失败');
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
|
loading.value = false;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
// 下载模板
|
||||||
|
const downloadTemplate = () => {
|
||||||
|
// 导出模版文件
|
||||||
|
try {
|
||||||
|
// 创建a标签
|
||||||
|
const link = document.createElement('a');
|
||||||
|
// 设置PDF文件路径 - 相对于public目录
|
||||||
|
link.href = '/enterRoad.xlsx';
|
||||||
|
// 设置下载后的文件名
|
||||||
|
link.download = '道路信息导入模板.xlsx';
|
||||||
|
// 触发点击
|
||||||
|
document.body.appendChild(link);
|
||||||
|
link.click();
|
||||||
|
// 清理
|
||||||
|
document.body.removeChild(link);
|
||||||
|
} catch (error) {
|
||||||
|
alert('下载失败,请重试');
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
onUnmounted(() => {
|
onUnmounted(() => {
|
||||||
listeningProject();
|
listeningProject();
|
||||||
});
|
});
|
||||||
|
|||||||
@ -118,6 +118,9 @@
|
|||||||
|
|
||||||
<el-table-column label="操作" fixed="right" width="230" class-name="small-padding fixed-width">
|
<el-table-column label="操作" fixed="right" width="230" class-name="small-padding fixed-width">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
|
<el-tooltip v-if="scope.row.userId !== 1" content="权限" placement="top">
|
||||||
|
<el-button v-hasPermi="['system:user:edit']" link type="warning" icon="Edit" @click="handleUpdate1(scope.row)"></el-button>
|
||||||
|
</el-tooltip>
|
||||||
<el-tooltip v-if="scope.row.userId !== 1" content="修改" placement="top">
|
<el-tooltip v-if="scope.row.userId !== 1" content="修改" placement="top">
|
||||||
<el-button v-hasPermi="['system:user:edit']" link type="primary" icon="Edit" @click="handleUpdate(scope.row)"></el-button>
|
<el-button v-hasPermi="['system:user:edit']" link type="primary" icon="Edit" @click="handleUpdate(scope.row)"></el-button>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
@ -234,11 +237,28 @@
|
|||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
<el-dialog title="修改人员权限" v-model="userTypeShow" width="30%" destroy-on-close>
|
||||||
|
<el-form ref="userFormRef" :model="form" :rules="rules" label-width="80px" size="large">
|
||||||
|
<el-form-item label="用户权限">
|
||||||
|
<el-radio-group v-model="userType">
|
||||||
|
<el-radio value="2" size="large">分包人员</el-radio>
|
||||||
|
<el-radio value="1" size="large">管理人员</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
|
||||||
|
<template #footer>
|
||||||
|
<span>
|
||||||
|
<el-button @click="userTypeShow = false">取消</el-button>
|
||||||
|
<el-button type="primary" @click="onUserTypeSubmit">确定</el-button>
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup name="User" lang="ts">
|
<script setup name="User" lang="ts">
|
||||||
import api, { uploadCertList } from '@/api/system/user';
|
import api, { uploadCertList, appUserType } from '@/api/system/user';
|
||||||
import { UserForm, UserQuery, UserVO } from '@/api/system/user/types';
|
import { UserForm, UserQuery, UserVO } from '@/api/system/user/types';
|
||||||
import { DeptTreeVO, DeptVO } from '@/api/system/dept/types';
|
import { DeptTreeVO, DeptVO } from '@/api/system/dept/types';
|
||||||
import { RoleVO } from '@/api/system/role/types';
|
import { RoleVO } from '@/api/system/role/types';
|
||||||
@ -271,6 +291,8 @@ const roleOptions = ref<RoleVO[]>([]);
|
|||||||
const projectOptions = ref<any[]>([]);
|
const projectOptions = ref<any[]>([]);
|
||||||
const editInfoRef = ref<InstanceType<typeof editInfo> | null>(null);
|
const editInfoRef = ref<InstanceType<typeof editInfo> | null>(null);
|
||||||
const roleInfoRef = ref<InstanceType<typeof roleInfo> | null>(null);
|
const roleInfoRef = ref<InstanceType<typeof roleInfo> | null>(null);
|
||||||
|
const userTypeShow = ref(false);
|
||||||
|
const userType = ref('');
|
||||||
/*** 用户导入参数 */
|
/*** 用户导入参数 */
|
||||||
const upload = reactive<ImportOption>({
|
const upload = reactive<ImportOption>({
|
||||||
// 是否显示弹出层(用户导入)
|
// 是否显示弹出层(用户导入)
|
||||||
@ -308,7 +330,7 @@ const dialog = reactive<DialogOption>({
|
|||||||
visible: false,
|
visible: false,
|
||||||
title: ''
|
title: ''
|
||||||
});
|
});
|
||||||
|
const userId = ref();
|
||||||
const initFormData: UserForm = {
|
const initFormData: UserForm = {
|
||||||
userId: undefined,
|
userId: undefined,
|
||||||
deptId: undefined,
|
deptId: undefined,
|
||||||
@ -408,7 +430,20 @@ const getList = async () => {
|
|||||||
userList.value = res.rows;
|
userList.value = res.rows;
|
||||||
total.value = res.total;
|
total.value = res.total;
|
||||||
};
|
};
|
||||||
|
const onUserTypeSubmit = async () => {
|
||||||
|
if (userType.value != '') {
|
||||||
|
const res = await appUserType(userId.value, userType.value);
|
||||||
|
if (res.code == 200) {
|
||||||
|
ElMessage.success('设置成功');
|
||||||
|
userTypeShow.value = false;
|
||||||
|
userType.value = '';
|
||||||
|
} else {
|
||||||
|
ElMessage.error(res.msg);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
userTypeShow.value = false;
|
||||||
|
}
|
||||||
|
};
|
||||||
/** 查询部门下拉树结构 */
|
/** 查询部门下拉树结构 */
|
||||||
const getDeptTree = async () => {
|
const getDeptTree = async () => {
|
||||||
const res = await api.deptTreeSelect({ isShow: '1' });
|
const res = await api.deptTreeSelect({ isShow: '1' });
|
||||||
@ -593,7 +628,10 @@ const handleAdd = async () => {
|
|||||||
postOptions.value = data.posts;
|
postOptions.value = data.posts;
|
||||||
form.value.password = initPassword.value.toString();
|
form.value.password = initPassword.value.toString();
|
||||||
};
|
};
|
||||||
|
const handleUpdate1 = async (row?: UserForm) => {
|
||||||
|
userTypeShow.value = true;
|
||||||
|
userId.value = row.userId;
|
||||||
|
};
|
||||||
/** 修改按钮操作 */
|
/** 修改按钮操作 */
|
||||||
const handleUpdate = async (row?: UserForm) => {
|
const handleUpdate = async (row?: UserForm) => {
|
||||||
reset();
|
reset();
|
||||||
|
|||||||
@ -73,12 +73,8 @@ import ApprovalRecord from '@/components/Process/approvalRecord.vue';
|
|||||||
import ApprovalButton from '@/components/Process/approvalButton.vue';
|
import ApprovalButton from '@/components/Process/approvalButton.vue';
|
||||||
import { AxiosResponse } from 'axios';
|
import { AxiosResponse } from 'axios';
|
||||||
import { StartProcessBo } from '@/api/workflow/workflowCommon/types';
|
import { StartProcessBo } from '@/api/workflow/workflowCommon/types';
|
||||||
import { useUserStoreHook } from '@/store/modules/user';
|
|
||||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||||
// 获取用户 store
|
|
||||||
const userStore = useUserStoreHook();
|
|
||||||
// 从 store 中获取项目列表和当前选中的项目
|
|
||||||
const currentProject = computed(() => userStore.selectedProject);
|
|
||||||
const buttonLoading = ref(false);
|
const buttonLoading = ref(false);
|
||||||
const loading = ref(true);
|
const loading = ref(true);
|
||||||
const leaveTime = ref<Array<string>>([]);
|
const leaveTime = ref<Array<string>>([]);
|
||||||
@ -104,27 +100,27 @@ const options = [
|
|||||||
];
|
];
|
||||||
const flowCodeOptions = [
|
const flowCodeOptions = [
|
||||||
{
|
{
|
||||||
value: currentProject.value.id + '_leave1',
|
value: 'leave1',
|
||||||
label: '请假申请-普通'
|
label: '请假申请-普通'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: currentProject.value.id + '_leave2',
|
value: 'leave2',
|
||||||
label: '请假申请-排他网关'
|
label: '请假申请-排他网关'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: currentProject.value.id + '_leave3',
|
value: 'leave3',
|
||||||
label: '请假申请-并行网关'
|
label: '请假申请-并行网关'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: currentProject.value.id + '_leave4',
|
value: 'leave4',
|
||||||
label: '请假申请-会签'
|
label: '请假申请-会签'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: currentProject.value.id + '_leave5',
|
value: 'leave5',
|
||||||
label: '请假申请-并行会签网关'
|
label: '请假申请-并行会签网关'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: currentProject.value.id + '_leave6',
|
value: 'leave6',
|
||||||
label: '请假申请-排他并行会签'
|
label: '请假申请-排他并行会签'
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|||||||
Reference in New Issue
Block a user