添加个人重置密码
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,
|
.myInsertForm .el-tabs__item.is-active,
|
||||||
.myDetailForm .el-tabs__item.is-active,
|
.myDetailForm .el-tabs__item.is-active,
|
||||||
.my_dialog .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-family: Microsoft YaHei;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
font-size: 22px;
|
font-size: 22px;
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,24 @@
|
||||||
<img :src="icon_feedback" class="custom-icon" @click="handleFeedBack" />
|
<img :src="icon_feedback" class="custom-icon" @click="handleFeedBack" />
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
</div>
|
</div>
|
||||||
<img :src="userStore.avatar ? userStore.avatar : avatar_icon" class="user-avatar" />
|
<!-- <img :src="userStore.avatar ? userStore.avatar : avatar_icon" class="user-avatar" /> -->
|
||||||
<span class="user-nickname"> {{ userStore.name }} </span>
|
<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">
|
<div class="logout_icon">
|
||||||
<el-tooltip class="box-item" effect="dark" content="退出" placement="bottom-start">
|
<el-tooltip class="box-item" effect="dark" content="退出" placement="bottom-start">
|
||||||
<img :src="logout_icon" class="custom-icon" @click="logout" />
|
<img :src="logout_icon" class="custom-icon" @click="logout" />
|
||||||
|
|
@ -70,10 +86,10 @@ import useSettingsStore from '@/store/modules/settings'
|
||||||
import { addSysReaddBusProblemFeedbackgion } from "@/api/problemFeedback"
|
import { addSysReaddBusProblemFeedbackgion } from "@/api/problemFeedback"
|
||||||
|
|
||||||
const appStore = useAppStore()
|
const appStore = useAppStore()
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
const settingsStore = useSettingsStore()
|
const settingsStore = useSettingsStore()
|
||||||
const { proxy } = getCurrentInstance()
|
const { proxy } = getCurrentInstance()
|
||||||
|
|
||||||
function toggleSideBar() {
|
function toggleSideBar() {
|
||||||
appStore.toggleSideBar()
|
appStore.toggleSideBar()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,26 @@
|
||||||
<div class="tool-content">
|
<div class="tool-content">
|
||||||
<el-row :gutter="20" style="margin: 0 -10px 30px -10px;">
|
<el-row :gutter="20" style="margin: 0 -10px 30px -10px;">
|
||||||
<el-col :span="24">
|
<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"
|
<el-upload class="my-upload-demo" drag action="#" :http-request="requestDocUpload"
|
||||||
:file-list="docUploadList" :before-upload="beforeDocUpload" :on-remove="removeDocUpload">
|
:file-list="docUploadList" :before-upload="beforeDocUpload" :on-remove="removeDocUpload">
|
||||||
<el-icon class="el-icon--upload"><upload-filled /></el-icon>
|
<el-icon class="el-icon--upload"><upload-filled /></el-icon>
|
||||||
|
|
@ -47,6 +66,7 @@
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作时间" align="center" prop="createTime" width="210" />
|
<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">
|
<el-table-column label="操作" :width="160" align="center">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button v-if="scope.row.progress == 100" link type="primary"
|
<el-button v-if="scope.row.progress == 100" link type="primary"
|
||||||
|
|
@ -347,6 +367,41 @@ const getTaskRecordPageList = () => {
|
||||||
loading.value = false
|
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) => {
|
const requestDocUpload = (options) => {
|
||||||
|
|
@ -427,7 +482,7 @@ const handleExportCalibraTionResult = () => {
|
||||||
document.body.appendChild(a)
|
document.body.appendChild(a)
|
||||||
a.click()
|
a.click()
|
||||||
document.body.removeChild(a)
|
document.body.removeChild(a)
|
||||||
|
|
||||||
proxy.$modal.msgSuccess("导出成功")
|
proxy.$modal.msgSuccess("导出成功")
|
||||||
handleCloseModal()
|
handleCloseModal()
|
||||||
})
|
})
|
||||||
|
|
@ -581,4 +636,21 @@ defineExpose({
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
color: #67C23A;
|
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>
|
</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>
|
<span>{{ moment(scope.row.created_at, "ddd, DD MMM YYYY HH:mm:ss [GMT]").format('YYYY-MM-DD HH:mm:ss') }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column label="异常信息" align="center" prop="errorMessage" width="210" />
|
||||||
<el-table-column label="操作" :width="160" align="center">
|
<el-table-column label="操作" :width="160" align="center">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button v-if="scope.row.progress == 100" link type="primary"
|
<el-button v-if="scope.row.progress == 100" link type="primary"
|
||||||
|
|
|
||||||
|
|
@ -2,11 +2,11 @@
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :span="6" :xs="24">
|
<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>
|
<template v-slot:header>
|
||||||
<div class="clearfix">
|
<div class="clearfix">
|
||||||
<span>个人信息</span>
|
<span>个人信息</span>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<div>
|
<div>
|
||||||
<div class="text-center">
|
<div class="text-center">
|
||||||
|
|
@ -14,7 +14,7 @@
|
||||||
</div>
|
</div>
|
||||||
<ul class="list-group list-group-striped">
|
<ul class="list-group list-group-striped">
|
||||||
<li class="list-group-item">
|
<li class="list-group-item">
|
||||||
<svg-icon icon-class="user" />用户名称
|
<svg-icon icon-class="user" />用户账号
|
||||||
<div class="pull-right">{{ state.user.userName }}</div>
|
<div class="pull-right">{{ state.user.userName }}</div>
|
||||||
</li>
|
</li>
|
||||||
<li class="list-group-item">
|
<li class="list-group-item">
|
||||||
|
|
@ -27,7 +27,8 @@
|
||||||
</li>
|
</li>
|
||||||
<li class="list-group-item">
|
<li class="list-group-item">
|
||||||
<svg-icon icon-class="tree" />所属部门
|
<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>
|
||||||
<li class="list-group-item">
|
<li class="list-group-item">
|
||||||
<svg-icon icon-class="peoples" />所属角色
|
<svg-icon icon-class="peoples" />所属角色
|
||||||
|
|
@ -42,13 +43,13 @@
|
||||||
</el-card>
|
</el-card>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="18" :xs="24">
|
<el-col :span="18" :xs="24">
|
||||||
<el-card>
|
<el-card style="min-height: calc(100vh - 100px);">
|
||||||
<template v-slot:header>
|
<template v-slot:header>
|
||||||
<div class="clearfix">
|
<div class="clearfix">
|
||||||
<span>基本资料</span>
|
<span>基本资料</span>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<el-tabs v-model="selectedTab">
|
<el-tabs class="demo-tabs" v-model="selectedTab">
|
||||||
<el-tab-pane label="基本资料" name="userinfo">
|
<el-tab-pane label="基本资料" name="userinfo">
|
||||||
<userInfo :user="state.user" />
|
<userInfo :user="state.user" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
|
|
@ -66,29 +67,33 @@
|
||||||
import userAvatar from "./userAvatar"
|
import userAvatar from "./userAvatar"
|
||||||
import userInfo from "./userInfo"
|
import userInfo from "./userInfo"
|
||||||
import resetPwd from "./resetPwd"
|
import resetPwd from "./resetPwd"
|
||||||
|
import otherbg from '@/assets/images/otherbg.png'
|
||||||
import { getUserProfile } from "@/api/system/user"
|
import { getUserProfile } from "@/api/system/user"
|
||||||
|
import { useBackgroundStore } from '@/store/modules/background'
|
||||||
|
|
||||||
|
const bgStore = useBackgroundStore()
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
const selectedTab = ref("userinfo")
|
const selectedTab = ref("userinfo")
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
user: {},
|
user: {},
|
||||||
roleGroup: {},
|
roleGroup: {},
|
||||||
postGroup: {}
|
postGroup: {}
|
||||||
})
|
})
|
||||||
|
|
||||||
function getUser() {
|
function getUser() {
|
||||||
getUserProfile().then(response => {
|
getUserProfile().then(response => {
|
||||||
state.user = response.data
|
state.user = response.data
|
||||||
state.roleGroup = response.roleGroup
|
state.roleGroup = response.roleGroup
|
||||||
state.postGroup = response.postGroup
|
state.postGroup = response.postGroup
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
const activeTab = route.params && route.params.activeTab
|
bgStore.setBgImage(otherbg)
|
||||||
if (activeTab) {
|
const activeTab = route.params && route.params.activeTab
|
||||||
selectedTab.value = activeTab
|
if (activeTab) {
|
||||||
}
|
selectedTab.value = activeTab
|
||||||
getUser()
|
}
|
||||||
|
getUser()
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,7 @@ const rules = ref({
|
||||||
function submit() {
|
function submit() {
|
||||||
proxy.$refs.pwdRef.validate(valid => {
|
proxy.$refs.pwdRef.validate(valid => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
updateUserPwd(user.oldPassword, user.newPassword).then(response => {
|
updateUserPwd(user.oldPassword, user.newPassword, user.confirmPassword).then(response => {
|
||||||
proxy.$modal.msgSuccess("修改成功")
|
proxy.$modal.msgSuccess("修改成功")
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<el-form ref="userRef" :model="form" :rules="rules" label-width="80px">
|
<el-form ref="userRef" :model="form" :rules="rules" label-width="80px">
|
||||||
<el-form-item label="用户昵称" prop="nickName">
|
<el-form-item label="用户姓名" prop="realName">
|
||||||
<el-input v-model="form.nickName" maxlength="30" />
|
<el-input v-model="form.realName" maxlength="30" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="手机号码" prop="phonenumber">
|
<el-form-item label="手机号码" prop="phonenumber">
|
||||||
<el-input v-model="form.phonenumber" maxlength="11" />
|
<el-input v-model="form.phonenumber" maxlength="11" />
|
||||||
|
|
@ -35,7 +35,7 @@ const { proxy } = getCurrentInstance()
|
||||||
|
|
||||||
const form = ref({})
|
const form = ref({})
|
||||||
const rules = 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"] }],
|
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" }],
|
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 => {
|
watch(() => props.user, user => {
|
||||||
if (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 })
|
},{ immediate: true })
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user