添加个人重置密码
This commit is contained in:
parent
c024fc8ca2
commit
687b196fbe
BIN
public/jzTemplate/候车厅校准平台模板.xlsx
Normal file
BIN
public/jzTemplate/候车厅校准平台模板.xlsx
Normal file
Binary file not shown.
BIN
public/jzTemplate/写字楼校准平台模板.xlsx
Normal file
BIN
public/jzTemplate/写字楼校准平台模板.xlsx
Normal file
Binary file not shown.
BIN
public/jzTemplate/地铁校准平台模板.xlsx
Normal file
BIN
public/jzTemplate/地铁校准平台模板.xlsx
Normal file
Binary file not shown.
BIN
public/jzTemplate/车库灯箱校准平台模板.xlsx
Normal file
BIN
public/jzTemplate/车库灯箱校准平台模板.xlsx
Normal file
Binary file not shown.
BIN
public/jzTemplate/道闸校准平台模板.xlsx
Normal file
BIN
public/jzTemplate/道闸校准平台模板.xlsx
Normal file
Binary file not shown.
BIN
public/jzTemplate/门禁校准平台模板.xlsx
Normal file
BIN
public/jzTemplate/门禁校准平台模板.xlsx
Normal file
Binary file not shown.
BIN
public/jzTemplate/高铁校准平台模板.xlsx
Normal file
BIN
public/jzTemplate/高铁校准平台模板.xlsx
Normal file
Binary file not shown.
|
|
@ -1175,7 +1175,9 @@ h6 {
|
|||
.myInsertForm .el-tabs__item.is-active,
|
||||
.myDetailForm .el-tabs__item.is-active,
|
||||
.my_dialog .el-tabs__item.is-active,
|
||||
.el-tabs__item:hover {
|
||||
.myInsertForm .el-tabs__item:hover,
|
||||
.myDetailForm .el-tabs__item:hover,
|
||||
.my_dialog .el-tabs__item:hover {
|
||||
font-family: Microsoft YaHei;
|
||||
font-weight: 600;
|
||||
font-size: 22px;
|
||||
|
|
|
|||
|
|
@ -18,8 +18,24 @@
|
|||
<img :src="icon_feedback" class="custom-icon" @click="handleFeedBack" />
|
||||
</el-tooltip>
|
||||
</div>
|
||||
<img :src="userStore.avatar ? userStore.avatar : avatar_icon" class="user-avatar" />
|
||||
<span class="user-nickname"> {{ userStore.name }} </span>
|
||||
<!-- <img :src="userStore.avatar ? userStore.avatar : avatar_icon" class="user-avatar" /> -->
|
||||
<el-dropdown @command="handleCommand" class="avatar-container right-menu-item hover-effect" trigger="hover">
|
||||
<div class="avatar-wrapper">
|
||||
<img :src="userStore.avatar ? userStore.avatar : avatar_icon" class="user-avatar" />
|
||||
<span class="user-nickname"> {{ userStore.name }} </span>
|
||||
</div>
|
||||
<template #dropdown>
|
||||
<el-dropdown-menu>
|
||||
<router-link to="/user/profile">
|
||||
<el-dropdown-item>个人中心</el-dropdown-item>
|
||||
</router-link>
|
||||
<!-- <el-dropdown-item divided command="logout">
|
||||
<span>退出登录</span>
|
||||
</el-dropdown-item> -->
|
||||
</el-dropdown-menu>
|
||||
</template>
|
||||
</el-dropdown>
|
||||
|
||||
<div class="logout_icon">
|
||||
<el-tooltip class="box-item" effect="dark" content="退出" placement="bottom-start">
|
||||
<img :src="logout_icon" class="custom-icon" @click="logout" />
|
||||
|
|
@ -70,10 +86,10 @@ import useSettingsStore from '@/store/modules/settings'
|
|||
import { addSysReaddBusProblemFeedbackgion } from "@/api/problemFeedback"
|
||||
|
||||
const appStore = useAppStore()
|
||||
const userStore = useUserStore()
|
||||
const userStore = useUserStore()
|
||||
const settingsStore = useSettingsStore()
|
||||
const { proxy } = getCurrentInstance()
|
||||
|
||||
|
||||
function toggleSideBar() {
|
||||
appStore.toggleSideBar()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,7 +13,26 @@
|
|||
<div class="tool-content">
|
||||
<el-row :gutter="20" style="margin: 0 -10px 30px -10px;">
|
||||
<el-col :span="24">
|
||||
<div class="toolItemTitle mb20">上传文件</div>
|
||||
<div class="toolItemTitle mb20">
|
||||
上传文件
|
||||
<el-dropdown placement="bottom">
|
||||
<el-button class="downloadTemplateBtnDrow" text>下载模板</el-button>
|
||||
<template #dropdown>
|
||||
<el-dropdown-menu>
|
||||
<el-dropdown-item @click="downloadExcelTemplate('mj')">门禁校准模板</el-dropdown-item>
|
||||
<el-dropdown-item
|
||||
@click="downloadExcelTemplate('hct')">候车厅校准模板</el-dropdown-item>
|
||||
<el-dropdown-item @click="downloadExcelTemplate('dz')">道闸校准模板</el-dropdown-item>
|
||||
<el-dropdown-item @click="downloadExcelTemplate('dt')">地铁校准模板</el-dropdown-item>
|
||||
<el-dropdown-item @click="downloadExcelTemplate('gt')">高铁校准模板</el-dropdown-item>
|
||||
<el-dropdown-item
|
||||
@click="downloadExcelTemplate('xzl')">写字楼校准模板</el-dropdown-item>
|
||||
<el-dropdown-item
|
||||
@click="downloadExcelTemplate('ckdx')">车库灯箱校准模板</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</template>
|
||||
</el-dropdown>
|
||||
</div>
|
||||
<el-upload class="my-upload-demo" drag action="#" :http-request="requestDocUpload"
|
||||
:file-list="docUploadList" :before-upload="beforeDocUpload" :on-remove="removeDocUpload">
|
||||
<el-icon class="el-icon--upload"><upload-filled /></el-icon>
|
||||
|
|
@ -47,6 +66,7 @@
|
|||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作时间" align="center" prop="createTime" width="210" />
|
||||
<el-table-column label="异常信息" align="center" prop="errorMessage" width="210" />
|
||||
<el-table-column label="操作" :width="160" align="center">
|
||||
<template #default="scope">
|
||||
<el-button v-if="scope.row.progress == 100" link type="primary"
|
||||
|
|
@ -347,6 +367,41 @@ const getTaskRecordPageList = () => {
|
|||
loading.value = false
|
||||
})
|
||||
}
|
||||
// 模板下载
|
||||
const downloadExcelTemplate = (tempLateType) => {
|
||||
const link = document.createElement('a')
|
||||
if (tempLateType == 'mj') {
|
||||
link.href = '/jzTemplate/门禁校准平台模板.xlsx'
|
||||
link.download = '门禁校准平台模板.xlsx' // 设置下载文件名
|
||||
}
|
||||
if (tempLateType == 'hct') {
|
||||
link.href = '/jzTemplate/候车厅校准平台模板.xlsx'
|
||||
link.download = '候车厅校准平台模板.xlsx' // 设置下载文件名
|
||||
}
|
||||
if (tempLateType == 'dz') {
|
||||
link.href = '/jzTemplate/道闸校准平台模板.xlsx'
|
||||
link.download = '道闸校准平台模板.xlsx' // 设置下载文件名
|
||||
}
|
||||
if (tempLateType == 'dt') {
|
||||
link.href = '/jzTemplate/地铁校准平台模板.xlsx'
|
||||
link.download = '地铁校准平台模板.xlsx' // 设置下载文件名
|
||||
}
|
||||
if (tempLateType == 'gt') {
|
||||
link.href = '/jzTemplate/高铁校准平台模板.xlsx'
|
||||
link.download = '高铁校准平台模板.xlsx' // 设置下载文件名
|
||||
}
|
||||
if (tempLateType == 'xzl') {
|
||||
link.href = '/jzTemplate/写字楼校准平台模板.xlsx'
|
||||
link.download = '写字楼校准平台模板.xlsx' // 设置下载文件名
|
||||
}
|
||||
if (tempLateType == 'ckdx') {
|
||||
link.href = '/jzTemplate/车库灯箱校准平台模板.xlsx'
|
||||
link.download = '车库灯箱校准平台模板.xlsx' // 设置下载文件名
|
||||
}
|
||||
document.body.appendChild(link)
|
||||
link.click()
|
||||
document.body.removeChild(link)
|
||||
}
|
||||
|
||||
// 自定义上传经纬度文件
|
||||
const requestDocUpload = (options) => {
|
||||
|
|
@ -427,7 +482,7 @@ const handleExportCalibraTionResult = () => {
|
|||
document.body.appendChild(a)
|
||||
a.click()
|
||||
document.body.removeChild(a)
|
||||
|
||||
|
||||
proxy.$modal.msgSuccess("导出成功")
|
||||
handleCloseModal()
|
||||
})
|
||||
|
|
@ -581,4 +636,21 @@ defineExpose({
|
|||
font-size: 16px;
|
||||
color: #67C23A;
|
||||
}
|
||||
|
||||
.downloadTemplateBtnDrow {
|
||||
width: 100px;
|
||||
height: 36px;
|
||||
font-family: Microsoft YaHei;
|
||||
font-weight: 700;
|
||||
font-size: 16px;
|
||||
text-align: center;
|
||||
color: #409eff !important;
|
||||
background: transparent !important;
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
.downloadTemplateBtnDrow:hover {
|
||||
background: transparent !important;
|
||||
color: #409eff !important;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -77,6 +77,7 @@
|
|||
<span>{{ moment(scope.row.created_at, "ddd, DD MMM YYYY HH:mm:ss [GMT]").format('YYYY-MM-DD HH:mm:ss') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="异常信息" align="center" prop="errorMessage" width="210" />
|
||||
<el-table-column label="操作" :width="160" align="center">
|
||||
<template #default="scope">
|
||||
<el-button v-if="scope.row.progress == 100" link type="primary"
|
||||
|
|
|
|||
|
|
@ -2,11 +2,11 @@
|
|||
<div class="app-container">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="6" :xs="24">
|
||||
<el-card class="box-card">
|
||||
<el-card class="box-card" style="min-height: calc(100vh - 100px);">
|
||||
<template v-slot:header>
|
||||
<div class="clearfix">
|
||||
<span>个人信息</span>
|
||||
</div>
|
||||
<div class="clearfix">
|
||||
<span>个人信息</span>
|
||||
</div>
|
||||
</template>
|
||||
<div>
|
||||
<div class="text-center">
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
</div>
|
||||
<ul class="list-group list-group-striped">
|
||||
<li class="list-group-item">
|
||||
<svg-icon icon-class="user" />用户名称
|
||||
<svg-icon icon-class="user" />用户账号
|
||||
<div class="pull-right">{{ state.user.userName }}</div>
|
||||
</li>
|
||||
<li class="list-group-item">
|
||||
|
|
@ -27,7 +27,8 @@
|
|||
</li>
|
||||
<li class="list-group-item">
|
||||
<svg-icon icon-class="tree" />所属部门
|
||||
<div class="pull-right" v-if="state.user.dept">{{ state.user.dept.deptName }} / {{ state.postGroup }}</div>
|
||||
<div class="pull-right" v-if="state.user.dept">{{ state.user.dept.deptName }} / {{
|
||||
state.postGroup }}</div>
|
||||
</li>
|
||||
<li class="list-group-item">
|
||||
<svg-icon icon-class="peoples" />所属角色
|
||||
|
|
@ -42,13 +43,13 @@
|
|||
</el-card>
|
||||
</el-col>
|
||||
<el-col :span="18" :xs="24">
|
||||
<el-card>
|
||||
<el-card style="min-height: calc(100vh - 100px);">
|
||||
<template v-slot:header>
|
||||
<div class="clearfix">
|
||||
<span>基本资料</span>
|
||||
</div>
|
||||
<div class="clearfix">
|
||||
<span>基本资料</span>
|
||||
</div>
|
||||
</template>
|
||||
<el-tabs v-model="selectedTab">
|
||||
<el-tabs class="demo-tabs" v-model="selectedTab">
|
||||
<el-tab-pane label="基本资料" name="userinfo">
|
||||
<userInfo :user="state.user" />
|
||||
</el-tab-pane>
|
||||
|
|
@ -66,29 +67,33 @@
|
|||
import userAvatar from "./userAvatar"
|
||||
import userInfo from "./userInfo"
|
||||
import resetPwd from "./resetPwd"
|
||||
import otherbg from '@/assets/images/otherbg.png'
|
||||
import { getUserProfile } from "@/api/system/user"
|
||||
import { useBackgroundStore } from '@/store/modules/background'
|
||||
|
||||
const bgStore = useBackgroundStore()
|
||||
const route = useRoute()
|
||||
const selectedTab = ref("userinfo")
|
||||
const state = reactive({
|
||||
user: {},
|
||||
roleGroup: {},
|
||||
postGroup: {}
|
||||
user: {},
|
||||
roleGroup: {},
|
||||
postGroup: {}
|
||||
})
|
||||
|
||||
function getUser() {
|
||||
getUserProfile().then(response => {
|
||||
state.user = response.data
|
||||
state.roleGroup = response.roleGroup
|
||||
state.postGroup = response.postGroup
|
||||
})
|
||||
getUserProfile().then(response => {
|
||||
state.user = response.data
|
||||
state.roleGroup = response.roleGroup
|
||||
state.postGroup = response.postGroup
|
||||
})
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
const activeTab = route.params && route.params.activeTab
|
||||
if (activeTab) {
|
||||
selectedTab.value = activeTab
|
||||
}
|
||||
getUser()
|
||||
bgStore.setBgImage(otherbg)
|
||||
const activeTab = route.params && route.params.activeTab
|
||||
if (activeTab) {
|
||||
selectedTab.value = activeTab
|
||||
}
|
||||
getUser()
|
||||
})
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ const rules = ref({
|
|||
function submit() {
|
||||
proxy.$refs.pwdRef.validate(valid => {
|
||||
if (valid) {
|
||||
updateUserPwd(user.oldPassword, user.newPassword).then(response => {
|
||||
updateUserPwd(user.oldPassword, user.newPassword, user.confirmPassword).then(response => {
|
||||
proxy.$modal.msgSuccess("修改成功")
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<el-form ref="userRef" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="用户昵称" prop="nickName">
|
||||
<el-input v-model="form.nickName" maxlength="30" />
|
||||
<el-form-item label="用户姓名" prop="realName">
|
||||
<el-input v-model="form.realName" maxlength="30" />
|
||||
</el-form-item>
|
||||
<el-form-item label="手机号码" prop="phonenumber">
|
||||
<el-input v-model="form.phonenumber" maxlength="11" />
|
||||
|
|
@ -35,7 +35,7 @@ const { proxy } = getCurrentInstance()
|
|||
|
||||
const form = ref({})
|
||||
const rules = ref({
|
||||
nickName: [{ required: true, message: "用户昵称不能为空", trigger: "blur" }],
|
||||
realName: [{ 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" }],
|
||||
})
|
||||
|
|
@ -61,7 +61,7 @@ function close() {
|
|||
// 回显当前登录用户信息
|
||||
watch(() => props.user, user => {
|
||||
if (user) {
|
||||
form.value = { nickName: user.nickName, phonenumber: user.phonenumber, email: user.email, sex: user.sex }
|
||||
form.value = { realName: user.realName, phonenumber: user.phonenumber, email: user.email, sex: user.sex }
|
||||
}
|
||||
},{ immediate: true })
|
||||
</script>
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user