From 6390fa18f5c2df1158a0d664786797b0e8b2fbf9 Mon Sep 17 00:00:00 2001
From: 祖安之光 <11848914+light-of-zuan@user.noreply.gitee.com>
Date: 星期三, 15 十月 2025 13:10:16 +0800
Subject: [PATCH] 提交
---
src/api/system/user.js | 4
public/dailyCheckSheet.docx | 0
src/views/hazardMng/hazardLedger/index.vue | 26 +---
src/views/saftyCheckMng/dailyCheck/index.vue | 84 ++++++----------
src/layout/components/Navbar.vue | 20 +++-
src/views/system/user/authRole.vue | 2
src/views/system/user/index.vue | 20 +++-
src/views/login.vue | 1
src/views/system/role/authUser.vue | 8
src/views/system/user/profile/userInfo.vue | 6
src/views/hazardMng/hazardRectify/index.vue | 26 +---
src/views/system/role/selectUser.vue | 2
src/views/system/user/profile/resetPwd.vue | 12 ++
src/views/hazardMng/hazardReport/index.vue | 38 +++----
src/views/components/formDialog.vue | 48 ++-------
15 files changed, 130 insertions(+), 167 deletions(-)
diff --git a/public/dailyCheckSheet.docx b/public/dailyCheckSheet.docx
index f892c20..e5d5cd8 100644
--- a/public/dailyCheckSheet.docx
+++ b/public/dailyCheckSheet.docx
Binary files differ
diff --git a/src/api/system/user.js b/src/api/system/user.js
index 967d49d..05bcc43 100644
--- a/src/api/system/user.js
+++ b/src/api/system/user.js
@@ -105,8 +105,8 @@
}
return request({
url: '/system/user/profile/updatePwd',
- method: 'put',
- params: data
+ method: 'post',
+ data: data
})
}
diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue
index ce9f92e..6765a2f 100644
--- a/src/layout/components/Navbar.vue
+++ b/src/layout/components/Navbar.vue
@@ -26,15 +26,18 @@
<el-dropdown @command="handleCommand" class="right-menu-item hover-effect" trigger="click">
<div class="avatar-wrapper">
<img :src="userStore.avatar" class="user-avatar" />
-<!-- <el-icon><caret-bottom /></el-icon>-->
+ <el-icon><caret-bottom /></el-icon>
</div>
<template #dropdown>
<el-dropdown-menu>
-<!-- <router-link to="/user/profile">-->
-<!-- <el-dropdown-item>个人中心</el-dropdown-item>-->
-<!-- </router-link>-->
+ <router-link to="/user/profile">
+ <el-dropdown-item>个人中心</el-dropdown-item>
+ </router-link>
<!-- <el-dropdown-item command="setLayout" v-if="settingsStore.showSettings">-->
<!-- <span>布局设置</span>-->
+<!-- </el-dropdown-item>-->
+<!-- <el-dropdown-item command="password">-->
+<!-- <span>修改密码</span>-->
<!-- </el-dropdown-item>-->
<el-dropdown-item command="logout">
<span>退出登录</span>
@@ -60,7 +63,7 @@
import useAppStore from '@/store/modules/app'
import useUserStore from '@/store/modules/user'
import useSettingsStore from '@/store/modules/settings'
-
+import resetPwd from "@/views/system/user/profile/resetPwd";
const appStore = useAppStore()
const userStore = useUserStore()
const settingsStore = useSettingsStore()
@@ -73,6 +76,9 @@
switch (command) {
case "setLayout":
setLayout();
+ break;
+ case "password":
+ editPsd();
break;
case "logout":
logout();
@@ -94,6 +100,10 @@
}).catch(() => { });
}
+function editPsd() {
+ reviewRef.value.openDialog('pwd',userInfo.value)
+}
+
const emits = defineEmits(['setLayout'])
function setLayout() {
emits('setLayout');
diff --git a/src/views/components/formDialog.vue b/src/views/components/formDialog.vue
index 3cb0e76..fdb0322 100644
--- a/src/views/components/formDialog.vue
+++ b/src/views/components/formDialog.vue
@@ -16,7 +16,7 @@
size="default"
ref="formRef"
:rules="state.formRules"
- label-width="150px"
+ label-width="160px"
>
<template v-for="(item, index) in config.formItems" :key="index">
<el-divider v-if="item.type === 'divider'" content-position="left">{{item.content}}</el-divider>
@@ -201,13 +201,11 @@
title: '',
formData: {},
formRules: {},
- // 文件上传相关
uploadUrl: props.uploadConfig.uploadUrl,
header: {
Authorization: getToken()
},
- fileLists: {}, // 存储各上传字段的文件列表
- // 数据列表
+ fileLists: {},
companyList: [],
deptList: [],
userList: [],
@@ -215,34 +213,29 @@
dialogImageUrl: ''
})
-// 初始化表单数据
const initFormData = () => {
const formData = {}
state.fileLists = {}
- // 初始化普通表单项
props.config.formItems?.forEach(item => {
- // 对于多选选择框,默认值为空数组
+
if (item.type === 'select' && item.multiple) {
formData[item.prop] = Array.isArray(item.defaultValue) ? item.defaultValue : []
} else {
formData[item.prop] = item.defaultValue !== undefined ? item.defaultValue : null
}
- // 初始化文件上传字段的文件列表
if (item.type === 'upload') {
state.fileLists[item.prop] = []
}
})
- // 初始化表单规则
const formRules = {}
props.config.formItems?.forEach(item => {
if (item.rules) {
formRules[item.prop] = item.rules
}
- // 为文件上传字段添加自定义验证规则
if (item.type === 'upload' && item.required) {
formRules[item.prop] = formRules[item.prop] || []
formRules[item.prop].push({
@@ -258,7 +251,6 @@
})
}
- // 为多选选择框添加自定义验证规则
if (item.type === 'select' && item.multiple && item.required) {
formRules[item.prop] = formRules[item.prop] || []
formRules[item.prop].push({
@@ -278,16 +270,13 @@
state.formRules = formRules
}
-// 获取选项数据
const getOptions = (options) => {
if (!options) return []
- // 如果是函数,执行函数获取选项
if (typeof options === 'function') {
return options()
}
- // 如果是数组,直接返回
if (Array.isArray(options)) {
return options
}
@@ -298,17 +287,14 @@
const getCascaderOptions = (item) => {
if (!item.options) return []
- // 如果是函数,执行函数获取选项
if (typeof item.options === 'function') {
return item.options()
}
- // 如果是数组,直接返回
if (Array.isArray(item.options)) {
return item.options
}
- // 如果是响应式引用
if (item.options && typeof item.options === 'object' && 'value' in item.options) {
return item.options.value
}
@@ -316,7 +302,6 @@
return []
}
-// 文件上传前的校验
const beforeUpload = (rawFile, item) => {
const maxSize = item.maxSize || 5
if (rawFile.size / 1024 / 1024 > maxSize) {
@@ -326,12 +311,10 @@
return true
}
-// 文件上传成功处理
const handleUploadSuccess = (res, uploadFile, prop) => {
if (res.code === 200) {
ElMessage.success('上传成功')
} else {
- // 上传失败,移除文件
state.fileLists[prop] = state.fileLists[prop].filter(file => file.uid !== uploadFile.uid)
ElMessage.warning(res.message || '文件上传失败')
}
@@ -340,7 +323,6 @@
}).join(',')
}
-// 文件移除处理
const handleRemove = async (file, uploadFiles, prop) => {
try {
if(file.uid){
@@ -363,12 +345,10 @@
state.dialogVisible = true
}
-// 超出文件数量限制提示
const showTip = () => {
ElMessage.warning('超出文件上传数量')
}
-// 处理事件
const handleEvent = async (eventName, value) => {
try {
if (eventName === 'getUserListByRole' && props.dataLoader.getUserListByRole) {
@@ -390,12 +370,11 @@
}
}
-// 打开对话框
const openDialog = async (type, initialData) => {
state.title = type === 'add' ? '新增' : type === 'edit' ? '编辑' : type === 'rectify' ? '整改' : '查看'
- // 初始化表单数据
+
initFormData()
- // 加载初始数据
+
try {
if (props.dataLoader.loadInitialData) {
const initialData = await props.dataLoader.loadInitialData(id)
@@ -405,11 +384,10 @@
console.error('无初始数据:', error)
}
- // 如果有初始数据,填充表单
if (initialData) {
Object.keys(state.formData).forEach(key => {
if (key in initialData) {
- // 对于多选字段,确保值是数组
+
const item = props.config.formItems.find(i => i.prop === key)
if (item && item.type === 'select' && item.multiple) {
state.formData[key] = Array.isArray(initialData[key]) ? initialData[key] : (initialData[key] ? [initialData[key]] : [])
@@ -419,7 +397,7 @@
}
})
state.formData.id = initialData.id || null
- // 初始化文件上传字段的文件列表
+
props.config.formItems?.forEach(item => {
if (item.type === 'upload' && initialData[item.prop]) {
state.fileLists[item.prop] = [{
@@ -448,10 +426,9 @@
try {
const valid = await formRef.value.validate()
if (valid) {
- // 准备提交数据
+
const submitData = { ...state.formData }
- // 对于多选字段,如果是空数组则转为null(根据后端需求)
props.config.formItems?.forEach(item => {
if (item.type === 'select' && item.multiple &&
Array.isArray(submitData[item.prop]) &&
@@ -460,7 +437,6 @@
}
})
- // 触发提交事件
emit('submit', submitData, state.title)
}
} catch (error) {
@@ -469,20 +445,20 @@
}
}
-// 关闭对话框
+
const closeDialog = () => {
formRef.value.clearValidate()
formRef.value.resetFields()
dialogVisible.value = false
}
-// 暴露方法给父组件
+
defineExpose({
openDialog,
closeDialog
})
-// 初始化
+
initFormData()
</script>
@@ -499,7 +475,7 @@
margin-top: 7px;
}
-// 多选选择框样式调整
+
:deep(.el-select__tags) {
white-space: nowrap;
overflow: hidden;
diff --git a/src/views/hazardMng/hazardLedger/index.vue b/src/views/hazardMng/hazardLedger/index.vue
index b0bc2b2..d37a5b6 100644
--- a/src/views/hazardMng/hazardLedger/index.vue
+++ b/src/views/hazardMng/hazardLedger/index.vue
@@ -134,7 +134,8 @@
hazardLevel: null,
reformDeptId: null,
reformUserId: null,
- state: null
+ state: null,
+ hazardsType: 3
},
dataList: [],
deptList: [],
@@ -142,31 +143,19 @@
sourceList: [
{
id: 1,
- name: '日常排查'
+ name: '综合检查'
},
{
id: 2,
- name: '综合性排查'
+ name: '部门检查'
},
{
id: 3,
- name: '专业性排查'
+ name: '实验室自查'
},
{
id: 4,
- name: '季节性排查'
- },
- {
- id: 5,
- name: '重点时段及节假日前排查'
- },
- {
- id: 6,
- name: '外聘专家诊断式排查'
- },
- {
- id: 7,
- name: '其他'
+ name: '专项检查'
}
],
levelList: [
@@ -398,7 +387,8 @@
hazardLevel: null,
reformDeptId: null,
reformUserId: null,
- state: null
+ state: null,
+ hazardsType: 3
}
await getList()
}
diff --git a/src/views/hazardMng/hazardRectify/index.vue b/src/views/hazardMng/hazardRectify/index.vue
index 3e811ef..6fef7af 100644
--- a/src/views/hazardMng/hazardRectify/index.vue
+++ b/src/views/hazardMng/hazardRectify/index.vue
@@ -135,7 +135,8 @@
hazardLevel: null,
reformDeptId: null,
reformUserId: null,
- state: null
+ state: null,
+ hazardsType: 2
},
dataList: [],
deptList: [],
@@ -143,31 +144,19 @@
sourceList: [
{
id: 1,
- name: '日常排查'
+ name: '综合检查'
},
{
id: 2,
- name: '综合性排查'
+ name: '部门检查'
},
{
id: 3,
- name: '专业性排查'
+ name: '实验室自查'
},
{
id: 4,
- name: '季节性排查'
- },
- {
- id: 5,
- name: '重点时段及节假日前排查'
- },
- {
- id: 6,
- name: '外聘专家诊断式排查'
- },
- {
- id: 7,
- name: '其他'
+ name: '专项检查'
}
],
levelList: [
@@ -399,7 +388,8 @@
hazardLevel: null,
reformDeptId: null,
reformUserId: null,
- state: null
+ state: null,
+ hazardsType: 2
}
await getList()
}
diff --git a/src/views/hazardMng/hazardReport/index.vue b/src/views/hazardMng/hazardReport/index.vue
index 71405d2..99a5ca1 100644
--- a/src/views/hazardMng/hazardReport/index.vue
+++ b/src/views/hazardMng/hazardReport/index.vue
@@ -8,6 +8,7 @@
plain
icon="Plus"
@click="openDialog('add',{})"
+ v-if="isAuthority"
>新增</el-button>
</el-form-item>
<el-form-item label="隐患名称:" >
@@ -123,7 +124,8 @@
hazardSource: null,
hazardLevel: null,
reformDeptId: null,
- reformUserId: null
+ reformUserId: null,
+ hazardsType: 1
},
dataList: [],
deptList: [],
@@ -131,31 +133,19 @@
sourceList: [
{
id: 1,
- name: '日常排查'
+ name: '综合检查'
},
{
id: 2,
- name: '综合性排查'
+ name: '部门检查'
},
{
id: 3,
- name: '专业性排查'
+ name: '实验室自查'
},
{
id: 4,
- name: '季节性排查'
- },
- {
- id: 5,
- name: '重点时段及节假日前排查'
- },
- {
- id: 6,
- name: '外聘专家诊断式排查'
- },
- {
- id: 7,
- name: '其他'
+ name: '专项检查'
}
],
levelList: [
@@ -267,14 +257,21 @@
return res.code === 200 ? res.data : []
}
},
- api: {}
+ api: {},
+ isAuthority: false
});
-const { queryParams, total, dataList, deptList, userList, formConfig, dataLoader, api, sourceList, levelList } = toRefs(state);
+const { queryParams, total, dataList, deptList, userList, formConfig, dataLoader, api, sourceList, levelList, isAuthority } = toRefs(state)
+const userStore = useUserStore()
onMounted(async ()=>{
await getList()
await getDeptList()
await getUserList()
+ if(userStore.roles.includes('admin') || userStore.roles.includes('sys_admin') || userStore.roles.includes('place_safety_officer')){
+ state.isAuthority = true
+ }else{
+ state.isAuthority = false
+ }
})
onUnmounted(()=>{
@@ -330,7 +327,8 @@
hazardSource: null,
hazardLevel: null,
reformDeptId: null,
- reformUserId: null
+ reformUserId: null,
+ hazardsType: 1
}
await getList()
}
diff --git a/src/views/login.vue b/src/views/login.vue
index aad09d1..1666125 100644
--- a/src/views/login.vue
+++ b/src/views/login.vue
@@ -31,6 +31,7 @@
auto-complete="off"
placeholder="密码"
@keyup.enter="handleLogin"
+ show-password
>
<template #prefix><svg-icon icon-class="password" class="el-input__icon input-icon" /></template>
</el-input>
diff --git a/src/views/saftyCheckMng/dailyCheck/index.vue b/src/views/saftyCheckMng/dailyCheck/index.vue
index ca44893..a72a2c2 100644
--- a/src/views/saftyCheckMng/dailyCheck/index.vue
+++ b/src/views/saftyCheckMng/dailyCheck/index.vue
@@ -21,17 +21,10 @@
<!-- </el-select>-->
<el-cascader v-model="queryParams.researchGroup" placeholder="请选择" :options="deptList" :show-all-levels="false" :props="{value: 'deptId',label: 'deptName',children: 'children',emitPath: false,checkStrictly: true}"/>
</el-form-item>
- <el-form-item label="参加检查人员:" >
- <el-select v-model="queryParams.searchCheckUserId" placeholder="请选择" clearable>
- <el-option
- v-for="item in userList"
- :key="item.userId"
- :label="item.nickName"
- :value="item.userId">
- </el-option>
- </el-select>
+ <el-form-item label="参加检查人员" >
+ <el-input v-model.trim="queryParams.checkUser" placeholder="参加检查人员"></el-input>
</el-form-item>
- <el-form-item label="检查类型:" >
+ <el-form-item label="检查类型" >
<el-select v-model="queryParams.checkType" placeholder="请选择" clearable>
<el-option
v-for="item in checkTypeList"
@@ -41,13 +34,13 @@
</el-option>
</el-select>
</el-form-item>
- <el-form-item label="隐患:" >
+ <el-form-item label="隐患" >
<el-select v-model="queryParams.haveMainHazard" placeholder="请选择" clearable>
<el-option :key="1" label="有" :value="1"></el-option>
<el-option :key="0" label="无" :value="0"></el-option>
</el-select>
</el-form-item>
- <el-form-item label="检查日期:" >
+ <el-form-item label="检查日期" >
<el-date-picker
v-model="checkDate"
type="daterange"
@@ -70,12 +63,12 @@
<el-table-column prop="checkDate" align="center" label="检查时间"/>
<el-table-column prop="checkPlace" align="center" label="检查地点"/>
<el-table-column prop="checkRoom" align="center" label="检查房间号"/>
- <el-table-column prop="enactmentDate" align="center" label="参加检查人员">
+ <el-table-column prop="checkUser" align="center" label="参加检查人员"/>
+ <el-table-column prop="researchGroupName" align="center" label="被检查部门/研究组">
<template #default="scope">
- {{scope.row.dailySafetyInspectionUsers.map(i=>i.checkUser).join('、')}}
+ {{ scope.row.dailySafetyInspectionDepts.filter(item=>item.deptName && item.deptName !== '').map(i=>i.deptName).join('、') }}
</template>
</el-table-column>
- <el-table-column prop="researchGroupName" align="center" label="被检查部门/研究组"/>
<el-table-column prop="checkContent" align="center" label="检查内容"/>
<el-table-column label="操作" align="center">
<template #default="scope">
@@ -116,14 +109,16 @@
pageNum: 1,
pageSize: 10,
researchGroup: null,
- searchCheckUserId: null,
+ checkUser: '',
checkType: null,
haveMainHazard: null,
checkBeginDate: '',
checkEndDate: ''
},
+ originDeptList: [],
dataList: [],
deptList: [],
+ safetyDeptList: [],
userList: [],
checkTypeList: [
{
@@ -156,17 +151,9 @@
},
{
label: '参加检查人员',
- prop: 'dailySafetyInspectionUsers',
- type: 'select',
- multiple: true,
- filterable: true,
- rules: [{ required: true, message: '请选择人员', trigger: 'change' }],
- options: () => {
- return state.userList.map(user => ({
- value: user.userId,
- label: user.nickName
- }))
- }
+ prop: 'checkUser',
+ type: 'text',
+ rules: [{ required: true, message: '请输入人员', trigger: 'blur' }],
},
{
label: '检查地点',
@@ -182,7 +169,7 @@
},
{
label: '被检查部门/研究组',
- prop: 'researchGroup',
+ prop: 'dailySafetyInspectionDepts',
type: 'cascader',
showAllLevels: false,
props: {
@@ -190,10 +177,11 @@
label: 'deptName',
children: 'children',
emitPath: false,
- checkStrictly: true
+ checkStrictly: true,
+ multiple: true
},
rules: [{ required: true, message: '请选择部门', trigger: 'blur' }],
- options: () => state.deptList
+ options: () => state.safetyDeptList
},
{
label: '检查类型',
@@ -235,15 +223,9 @@
},
{
label: '复查人员',
- prop: 'reCheckUserId',
- type: 'select',
- rules: [{ required: true, message: '请选择复查人员', trigger: 'blur' }],
- options: () => {
- return state.userList.map(user => ({
- value: user.userId,
- label: user.nickName
- }))
- }
+ prop: 'reCheckUser',
+ type: 'text',
+ rules: [{ required: true, message: '请输入复查人员', trigger: 'blur' }]
},
{
label: '复查时间',
@@ -278,9 +260,11 @@
})
function getDeptList() {
- listDept({safety: '1'}).then(response => {
+ listDept().then(response => {
+ state.originDeptList = response.data
state.deptList = proxy.handleTree(response.data, "deptId")
- });
+ state.safetyDeptList = proxy.handleTree(response.data.filter(item=>item.safety == '1'), "deptId")
+ })
}
function getUserList() {
@@ -305,7 +289,6 @@
const downloadFile = async (val)=>{
let tableData = val
- tableData.checkNames = val.dailySafetyInspectionUsers.map(item=>item.checkUser).join('、')
try {
generateWordDocument('/dailyCheckSheet.docx', tableData, '日常安全检查记录表.docx');
} catch (error){
@@ -317,10 +300,7 @@
}
const openDialog = (type, value) => {
- let initalData = JSON.parse(JSON.stringify(value))
- if(type == 'edit' || type == 'view'){
- initalData.dailySafetyInspectionUsers = value.dailySafetyInspectionUsers.map(i=>i.checkUserId)
- }
+ const initalData = JSON.parse(JSON.stringify(value))
dialogRef.value.openDialog(type, initalData)
}
@@ -330,7 +310,7 @@
pageNum: 1,
pageSize: 10,
researchGroup: null,
- searchCheckUserId: null,
+ checkUser: '',
checkType: null,
haveMainHazard: null,
checkBeginDate: '',
@@ -361,14 +341,14 @@
const handleSubmit = async (data, type) => {
const params = JSON.parse(JSON.stringify(data))
- params.dailySafetyInspectionUsers = params.dailySafetyInspectionUsers.map(item=>{
+ console.log(state.originDeptList,'ori')
+ params.dailySafetyInspectionDepts = params.dailySafetyInspectionDepts.map(i=>{
return {
- checkUserId: item,
- checkUser: state.userList.find(i=>i.userId == item)?.nickName,
- dailySafetyInspectionId: params.id
+ deptId: i,
+ deptName: state.originDeptList.find(item=>item.deptId == i)?.deptName
}
})
- params.reCheckUser = state.userList.find(i=>i.userId == params.reCheckUserId)?.nickName
+ // params.reCheckUser = state.userList.find(i=>i.userId == params.reCheckUserId)?.nickName
// 调用API保存数据
if (type === '新增') {
delete params.id
diff --git a/src/views/system/role/authUser.vue b/src/views/system/role/authUser.vue
index 66b5f5e..e364afe 100644
--- a/src/views/system/role/authUser.vue
+++ b/src/views/system/role/authUser.vue
@@ -47,9 +47,9 @@
>批量取消授权</el-button>
</el-col>
<el-col :span="1.5">
- <el-button
- type="warning"
- plain
+ <el-button
+ type="warning"
+ plain
icon="Close"
@click="handleClose"
>关闭</el-button>
@@ -60,7 +60,7 @@
<el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="用户名称" prop="userName" :show-overflow-tooltip="true" />
- <el-table-column label="用户昵称" prop="nickName" :show-overflow-tooltip="true" />
+ <el-table-column label="姓名" prop="nickName" :show-overflow-tooltip="true" />
<el-table-column label="邮箱" prop="email" :show-overflow-tooltip="true" />
<el-table-column label="手机" prop="phonenumber" :show-overflow-tooltip="true" />
<el-table-column label="状态" align="center" prop="status">
diff --git a/src/views/system/role/selectUser.vue b/src/views/system/role/selectUser.vue
index 9be1ec9..cda8ce9 100644
--- a/src/views/system/role/selectUser.vue
+++ b/src/views/system/role/selectUser.vue
@@ -29,7 +29,7 @@
<el-table @row-click="clickRow" ref="refTable" :data="userList" @selection-change="handleSelectionChange" height="260px">
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column label="用户名称" prop="userName" :show-overflow-tooltip="true" />
- <el-table-column label="用户昵称" prop="nickName" :show-overflow-tooltip="true" />
+ <el-table-column label="姓名" prop="nickName" :show-overflow-tooltip="true" />
<el-table-column label="邮箱" prop="email" :show-overflow-tooltip="true" />
<el-table-column label="手机" prop="phonenumber" :show-overflow-tooltip="true" />
<el-table-column label="状态" align="center" prop="status">
diff --git a/src/views/system/user/authRole.vue b/src/views/system/user/authRole.vue
index 0b5c14b..5c03220 100644
--- a/src/views/system/user/authRole.vue
+++ b/src/views/system/user/authRole.vue
@@ -4,7 +4,7 @@
<el-form :model="form" label-width="80px">
<el-row>
<el-col :span="8" :offset="2">
- <el-form-item label="用户昵称" prop="nickName">
+ <el-form-item label="姓名" prop="nickName">
<el-input v-model="form.nickName" disabled />
</el-form-item>
</el-col>
diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue
index d6cfdd6..3ba2804 100644
--- a/src/views/system/user/index.vue
+++ b/src/views/system/user/index.vue
@@ -29,6 +29,15 @@
<!--用户数据-->
<el-col :span="20" :xs="24">
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
+ <el-form-item label="姓名" prop="nickName">
+ <el-input
+ v-model="queryParams.nickName"
+ placeholder="请输入用户姓名"
+ clearable
+ style="width: 240px"
+ @keyup.enter="handleQuery"
+ />
+ </el-form-item>
<el-form-item label="用户名称" prop="userName">
<el-input
v-model="queryParams.userName"
@@ -133,7 +142,7 @@
<el-table-column type="selection" width="50" align="center" />
<el-table-column label="用户编号" align="center" key="userId" prop="userId" v-if="columns[0].visible" />
<el-table-column label="用户名称" align="center" key="userName" prop="userName" v-if="columns[1].visible" :show-overflow-tooltip="true" />
- <el-table-column label="用户昵称" align="center" key="nickName" prop="nickName" v-if="columns[2].visible" :show-overflow-tooltip="true" />
+ <el-table-column label="姓名" align="center" key="nickName" prop="nickName" v-if="columns[2].visible" :show-overflow-tooltip="true" />
<el-table-column label="部门" align="center" key="deptName" prop="dept.deptName" v-if="columns[3].visible" :show-overflow-tooltip="true" />
<el-table-column label="手机号码" align="center" key="phonenumber" prop="phonenumber" v-if="columns[4].visible" width="120" />
<el-table-column label="状态" align="center" key="status" v-if="columns[5].visible">
@@ -183,8 +192,8 @@
<el-form :model="form" :rules="rules" ref="userRef" label-width="80px">
<el-row>
<el-col :span="12">
- <el-form-item label="用户昵称" prop="nickName">
- <el-input v-model="form.nickName" placeholder="请输入用户昵称" maxlength="30" />
+ <el-form-item label="姓名" prop="nickName">
+ <el-input v-model="form.nickName" placeholder="请输入姓名" maxlength="30" />
</el-form-item>
</el-col>
<el-col :span="12">
@@ -371,7 +380,7 @@
const columns = ref([
{ key: 0, label: `用户编号`, visible: true },
{ key: 1, label: `用户名称`, visible: true },
- { key: 2, label: `用户昵称`, visible: true },
+ { key: 2, label: `姓名`, visible: true },
{ key: 3, label: `部门`, visible: true },
{ key: 4, label: `手机号码`, visible: true },
{ key: 5, label: `状态`, visible: true },
@@ -383,6 +392,7 @@
queryParams: {
pageNum: 1,
pageSize: 10,
+ nickName: undefined,
userName: undefined,
phonenumber: undefined,
status: undefined,
@@ -390,7 +400,7 @@
},
rules: {
userName: [{ required: true, message: "用户名称不能为空", trigger: "blur" }, { min: 2, max: 20, message: "用户名称长度必须介于 2 和 20 之间", trigger: "blur" }],
- nickName: [{ required: true, message: "用户昵称不能为空", trigger: "blur" }],
+ nickName: [{ required: true, message: "姓名不能为空", trigger: "blur" }],
password: [{ required: true, message: "用户密码不能为空", trigger: "blur" }, { min: 5, max: 20, message: "用户密码长度必须介于 5 和 20 之间", trigger: "blur" }],
email: [{ type: "email", message: "请输入正确的邮箱地址", trigger: ["blur", "change"] }],
phonenumber: [{ pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "请输入正确的手机号码", trigger: "blur" }]
diff --git a/src/views/system/user/profile/resetPwd.vue b/src/views/system/user/profile/resetPwd.vue
index dec2d79..4c5d701 100644
--- a/src/views/system/user/profile/resetPwd.vue
+++ b/src/views/system/user/profile/resetPwd.vue
@@ -18,7 +18,8 @@
<script setup>
import { updateUserPwd } from "@/api/system/user";
-
+import useUserStore from "@/store/modules/user";
+const userStore = useUserStore()
const { proxy } = getCurrentInstance();
const user = reactive({
@@ -45,7 +46,14 @@
proxy.$refs.pwdRef.validate(valid => {
if (valid) {
updateUserPwd(user.oldPassword, user.newPassword).then(response => {
- proxy.$modal.msgSuccess("修改成功");
+ if(response.code == 200){
+ proxy.$modal.msgSuccess("密码修改成功,需重新登录");
+ setTimeout(()=>{
+ userStore.logOut().then(() => {
+ location.href = '/index';
+ })
+ },2000)
+ }
});
}
});
diff --git a/src/views/system/user/profile/userInfo.vue b/src/views/system/user/profile/userInfo.vue
index a5e1c77..c4e51d7 100644
--- a/src/views/system/user/profile/userInfo.vue
+++ b/src/views/system/user/profile/userInfo.vue
@@ -1,6 +1,6 @@
<template>
<el-form ref="userRef" :model="form" :rules="rules" label-width="80px">
- <el-form-item label="用户昵称" prop="nickName">
+ <el-form-item label="姓名" prop="nickName">
<el-input v-model="form.nickName" maxlength="30" />
</el-form-item>
<el-form-item label="手机号码" prop="phonenumber">
@@ -35,8 +35,8 @@
const form = ref({});
const rules = ref({
- nickName: [{ required: true, message: "用户昵称不能为空", trigger: "blur" }],
- email: [{ required: true, message: "邮箱地址不能为空", trigger: "blur" }, { type: "email", message: "请输入正确的邮箱地址", trigger: ["blur", "change"] }],
+ nickName: [{ required: true, message: "姓名不能为空", trigger: "blur" }],
+ // email: [{ required: true, message: "邮箱地址不能为空", trigger: "blur" }, { type: "email", message: "请输入正确的邮箱地址", trigger: ["blur", "change"] }],
phonenumber: [{ required: true, message: "手机号码不能为空", trigger: "blur" }, { pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "请输入正确的手机号码", trigger: "blur" }],
});
--
Gitblit v1.9.2