update
This commit is contained in:
parent
d0abd44fe9
commit
f216fd8bdd
Binary file not shown.
|
@ -0,0 +1,50 @@
|
|||
-----BEGIN OPENSSH PRIVATE KEY-----
|
||||
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
|
||||
gNBQ==
|
||||
-----END OPENSSH PRIVATE KEY-----
|
|
@ -0,0 +1 @@
|
|||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDDIEnb1XKIxd7mmMka+YhYX87U5BIXTpOY4+u0idEJMagP1IpD5etfsAjU+oWKSag+oaQ4ACJBeqqJLE7gHmMlW6s71XLr8h9Z076CbEYtUF1/UICbI+mRVpadme8UhNHuiHn8BvKKx1nCls3XamMPg5Vk58Axjj6vJDUyJ6DeM9MuKxbe3yrKxKNEeqksAQjlp4qPHybRrGj4yt0M9S8X3UPLNVvaHbLZEV3nYs9Wib7VVQS4TH9isFe2x23cRqsbguXGrWW449WacBcIHD5/gMPbPOVCSjXa6Jo6sb/oA9J10joBZRgBxezASbuZndkH3+kfvCeBVdLntdLMvJTHm1UOEgnsuM8xnJLHbCNXro7zBwffSWAl5P96HfWSr1yNIfKk0J6IvqbxFZzfLLucg9V9lQAbFkEeMTqnxOHzApUGuw0JraDEBmbiI5QjqSxKf9/plExq+xU4w5HC288zeLdnBpFySaSY1fzdPZRSy0+93YJeOD27AIDJjrtjh6nKDlEatSjP05GKPfCnDahwwB/OyfPgVJN5tyHD/yso6uRnt4Ch6S3cJImkTN0Txl/3MkoZ2LW4RsFv36Mvf/47AYMtYIi2uHRA+il/T1XKtvL9m8BgX3nzFaxcnw9hmJXk5y5WGXeH6EKe/EUVeTQigdSV89YqCuAETW/vxwcBww== 222@qq.com
|
|
@ -20,6 +20,7 @@
|
|||
"@vue-office/pdf": "^1.0.0",
|
||||
"@vue/composition-api": "^1.7.1",
|
||||
"axios": "0.18.1",
|
||||
"canvas-tablet": "^2.0.6",
|
||||
"core-js": "^3.26.1",
|
||||
"docx-preview": "^0.1.14",
|
||||
"element-ui": "2.13.2",
|
||||
|
@ -32,6 +33,7 @@
|
|||
"normalize.css": "7.0.0",
|
||||
"nprogress": "0.2.0",
|
||||
"path-to-regexp": "2.4.0",
|
||||
"sweetalert": "^2.1.2",
|
||||
"vue": "2.6.10",
|
||||
"vue-router": "3.0.6",
|
||||
"vuex": "3.1.0"
|
||||
|
|
|
@ -18,6 +18,9 @@ import api from './utils/http/index'
|
|||
import '@/icons' // icon
|
||||
// 时间
|
||||
import moment from "moment"
|
||||
|
||||
//swal
|
||||
import swal from 'sweetalert'
|
||||
//关闭自带vuex权限管理
|
||||
// import '@/permission' // permission control
|
||||
|
||||
|
@ -37,6 +40,7 @@ if (process.env.NODE_ENV === 'production') {
|
|||
Vue.prototype.$md5 = md5;
|
||||
Vue.use(api)
|
||||
Vue.prototype.$axios = Axios
|
||||
|
||||
// set ElementUI lang to EN
|
||||
// Vue.use(ElementUI, { locale })
|
||||
// 如果想要中文版 element-ui,按如下方式声明
|
||||
|
|
|
@ -139,6 +139,18 @@ export const constantRoutes = [
|
|||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
path:'/',
|
||||
component: Layout,
|
||||
children: [
|
||||
{
|
||||
path: "GetFile",
|
||||
name: 'GetFile',
|
||||
component:() => import("@/views/fileList/GetFile"),
|
||||
meta: {title: '文件提取',icon: 'el-icon-folder-opened'}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
path:'/expert',
|
||||
redirect: '/expert/form',
|
||||
|
@ -181,6 +193,19 @@ export const constantRoutes = [
|
|||
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
path:'/',
|
||||
component: Layout,
|
||||
children: [
|
||||
{
|
||||
path: "UserCenter",
|
||||
name: 'UserCenter',
|
||||
component:() => import("@/views/userCenter/UserCenter"),
|
||||
meta: {title: '用户中心',icon: 'el-icon-user'}
|
||||
}
|
||||
]
|
||||
},
|
||||
// {
|
||||
// path: '/example',
|
||||
// component: Layout,
|
||||
|
|
|
@ -65,3 +65,8 @@ div:focus {
|
|||
height: 100vh;
|
||||
|
||||
}
|
||||
|
||||
.app-table-container{
|
||||
padding: 20px;
|
||||
height: 100%;
|
||||
}
|
||||
|
|
|
@ -235,6 +235,50 @@ export const mkdir = data =>{
|
|||
})
|
||||
}
|
||||
|
||||
export const shareByCode = data =>{
|
||||
return axios({
|
||||
headers:{
|
||||
"Authorization": localStorage.getItem("systemToken")
|
||||
},
|
||||
url: '/file/shareByCode',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export const getByCode = data =>{
|
||||
return axios({
|
||||
headers:{
|
||||
"Authorization": localStorage.getItem("systemToken")
|
||||
},
|
||||
url: '/file/getByCode',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export const getAllMessage = () =>{
|
||||
return axios({
|
||||
headers:{
|
||||
"Authorization": localStorage.getItem("systemToken")
|
||||
},
|
||||
url: '/message/getAll',
|
||||
method: 'post',
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
export const insertMessage = data =>{
|
||||
return axios({
|
||||
headers:{
|
||||
"Authorization": localStorage.getItem("systemToken")
|
||||
},
|
||||
url: '/message/insert',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 默认全部倒出
|
||||
// 根据需要进行
|
||||
export default {
|
||||
|
@ -259,5 +303,9 @@ export default {
|
|||
insertRankInfo,
|
||||
insertExpertInfo,
|
||||
getFilesDirMeta,
|
||||
mkdir
|
||||
mkdir,
|
||||
shareByCode,
|
||||
getByCode,
|
||||
getAllMessage,
|
||||
insertMessage
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
|
||||
<div class="app-container">
|
||||
<div class="app-table-container">
|
||||
<!--搜索框-->
|
||||
<div class="manageList-header-input">
|
||||
<!-- 输入框 双向绑定数据 自带清空 -->
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
<li v-show="fileLevel!==0" @click="mkdirDialogVisible=true">新建目录</li>
|
||||
<li v-show="fileLevel!==0 && fileLevel !==1" @click="dialogVisible = true">上传</li>
|
||||
<li v-show="fileLevel!==0 && fileLevel !==1" @click="onlineView">浏览</li>
|
||||
<li v-show="fileLevel!==0 && fileLevel !==1" @click="share">分享</li>
|
||||
<!-- <li v-show="fileLevel!==0 && fileLevel !==1">下载</li>-->
|
||||
<!-- <li v-show="fileLevel!==0 && fileLevel !==1">删除</li>-->
|
||||
<li >属性</li>
|
||||
|
@ -13,7 +14,7 @@
|
|||
|
||||
|
||||
<marquee style="margin-bottom: 5px;font-size: 15px">
|
||||
欢迎使用文件共享管理系统,系统尚未完善,如遇问题欢迎<a href="https://www.osredm.com/p71924506/file_sharing_ms_fe/issues" style="font-weight: bold">提交反馈</a>,谢谢!
|
||||
欢迎使用文件共享管理系统,在线浏览文件请点击右键选择浏览,双击左键下载文件,系统尚未完善,如遇问题欢迎<a @click="addMessage" style="font-weight: bold">留言反馈</a>,谢谢!
|
||||
</marquee>
|
||||
|
||||
<!--搜索框-->
|
||||
|
@ -123,6 +124,56 @@
|
|||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="floating-div" >
|
||||
|
||||
<el-card class="box-card" shadow="hover">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>留言信息版</span>
|
||||
<el-button style="float: right; padding: 3px 0" type="text" @click="addMessage()">发布留言</el-button>
|
||||
</div>
|
||||
<div ref="messageItem" class="message-item">
|
||||
<div v-for="message in messageBoardList" :key="message.messageBoardId" class="text item">
|
||||
<div>
|
||||
<h5 :style="{color:message.level==='重要'?'#e54d4d':message.level==='一般'?'#d09a35':message.level==='不重要'?'#4cb95a':'black'}">{{message.message}}</h5>
|
||||
{{message.time}}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
</div>
|
||||
|
||||
|
||||
<!--发布留言-->
|
||||
<el-dialog
|
||||
title="新建文件夹"
|
||||
:visible.sync="messageVisible"
|
||||
custom-class="mkdirDialog"
|
||||
|
||||
width="30%"
|
||||
:before-close="messageClose">
|
||||
<el-form label-position="top" label-width="80px" :model="messageBoard" :rules="rules" style="text-align: left">
|
||||
<el-form-item label="发布留言" prop="message">
|
||||
<el-input placeholder="请填写留言信息" v-model="messageBoard.message"></el-input>
|
||||
</el-form-item>
|
||||
<el-select v-model="messageBoard.level" placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in levelOptions"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="insertMessage">确 定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
@ -134,10 +185,11 @@ import { saveAs } from 'file-saver'
|
|||
import { getList } from '@/api/table'
|
||||
import pageUtils from '@/utils/pageUtils'
|
||||
import { Message } from 'element-ui'
|
||||
import { getFilesInfoByName, getFilesInfoByType } from '@/utils/http/interface'
|
||||
import { getFilesInfoByName, getFilesInfoByType, shareByCode } from '@/utils/http/interface'
|
||||
import { toBase64 } from 'js-base64'
|
||||
import VueOfficeDocx from '@vue-office/docx'
|
||||
import VueOfficePdf from '@vue-office/pdf'
|
||||
import swal from 'sweetalert'
|
||||
export default {
|
||||
name: 'FileList',
|
||||
components:{
|
||||
|
@ -167,6 +219,8 @@ export default {
|
|||
data() {
|
||||
return {
|
||||
|
||||
//留言板列表
|
||||
messageBoardList:null,
|
||||
|
||||
visible: false,
|
||||
top: 0,
|
||||
|
@ -229,7 +283,13 @@ export default {
|
|||
]
|
||||
},
|
||||
|
||||
//messagedialog规则
|
||||
messageRules: {
|
||||
message: [
|
||||
{ required: true, message: '请填写留言信息', trigger: 'blur' },
|
||||
],
|
||||
|
||||
},
|
||||
|
||||
//上传文件
|
||||
filesInfo:{
|
||||
|
@ -245,6 +305,32 @@ export default {
|
|||
fileType:{
|
||||
name:""
|
||||
},
|
||||
//留言
|
||||
messageBoard:{
|
||||
message:null,
|
||||
level:null,
|
||||
time:null
|
||||
},
|
||||
levelOptions: [{
|
||||
value: '重要',
|
||||
label: '重要'
|
||||
}, {
|
||||
value: '一般',
|
||||
label: '一般'
|
||||
}, {
|
||||
value: '不重要',
|
||||
label: '不重要'
|
||||
}],
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// 上传文件弹窗状态
|
||||
dialogVisible: false,
|
||||
//分类弹窗
|
||||
|
@ -268,13 +354,24 @@ export default {
|
|||
isPdf:false,
|
||||
//用户IP
|
||||
ip:null,
|
||||
messageVisible:false
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.fetchData()
|
||||
},
|
||||
|
||||
computed:{
|
||||
|
||||
},
|
||||
methods: {
|
||||
|
||||
//发布留言
|
||||
addMessage(){
|
||||
this.messageVisible = true
|
||||
|
||||
},
|
||||
|
||||
openMenu(e) {
|
||||
e.preventDefault();
|
||||
|
||||
|
@ -373,6 +470,13 @@ export default {
|
|||
|
||||
},
|
||||
|
||||
//关闭留言弹窗
|
||||
messageClose(){
|
||||
this.messageVisible = false;
|
||||
// this.fileType.name = ""
|
||||
|
||||
},
|
||||
|
||||
resetForm(formName) {
|
||||
this.$refs[formName].resetFields();
|
||||
},
|
||||
|
@ -507,6 +611,16 @@ export default {
|
|||
//无权访问 提示信息 后续可做成输入密码授权访问
|
||||
Message.warning("抱歉,您无权限访问,您的部门是:"+ dep)
|
||||
}
|
||||
}else if (file.name === '传达文件') {
|
||||
if (dep === '管理员'){
|
||||
//继续访问下一层
|
||||
this.path = this.path + file.name + "/"
|
||||
this.getFilesDirMeta()
|
||||
this.fileLevel = this.fileLevel + 1
|
||||
}else {
|
||||
//无权访问 提示信息 后续可做成输入密码授权访问
|
||||
Message.warning("抱歉,您无权限访问,您的部门是:"+ dep)
|
||||
}
|
||||
}else {
|
||||
//不做限制
|
||||
this.path = this.path + file.name + "/"
|
||||
|
@ -590,10 +704,83 @@ export default {
|
|||
|
||||
},
|
||||
|
||||
//分享
|
||||
share(){
|
||||
if (this.viewFileData.directory){
|
||||
// 是文件夹 提示无法分享
|
||||
Message.warning("您选择的是文件夹 无法分享")
|
||||
}else {
|
||||
//生成分享码
|
||||
let code2Url ={
|
||||
url : this.viewUrl
|
||||
}
|
||||
this.$api.shareByCode(code2Url).then((res)=>{
|
||||
if (res.status == 0) {
|
||||
//成功
|
||||
swal("分享成功","分享码:" + res.code + " (区分大小写,24小时有效)")
|
||||
}else{
|
||||
Message.warning("失败")
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
//留言板
|
||||
getMessage(){
|
||||
this.$api.getAllMessage().then((res)=>{{
|
||||
if (res.status == 0) {
|
||||
this.messageBoardList = res.data
|
||||
|
||||
for(let i = 0; i < this.messageBoardList.length; i++){
|
||||
|
||||
this.messageBoardList[i].time = this.$moment(this.messageBoardList[i].time).format('YYYY-MM-DD HH:mm')
|
||||
|
||||
}
|
||||
|
||||
console.log(this.messageBoardList.toString())
|
||||
}else {
|
||||
Message.warning("留言板获取失败")
|
||||
}
|
||||
|
||||
this.messageBoardList.reverse()
|
||||
|
||||
}})
|
||||
},
|
||||
|
||||
insertMessage(){
|
||||
|
||||
this.messageBoard.time = this.$moment().format();
|
||||
|
||||
|
||||
if (this.messageBoard.level != null && this.messageBoard.message != null){
|
||||
|
||||
|
||||
this.$api.insertMessage(this.messageBoard).then((res)=>{
|
||||
if (res.status == 0) {
|
||||
Message.success("添加成功")
|
||||
this.messageVisible = false
|
||||
this.messageBoard.message = null
|
||||
this.messageBoard.level = null
|
||||
this.messageBoard.time = null
|
||||
|
||||
this.getMessage()
|
||||
}else{
|
||||
Message.warning("添加失败")
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
},
|
||||
mounted() {
|
||||
|
||||
this.getMessage()
|
||||
this.getFilesDirMeta()
|
||||
|
||||
|
||||
|
||||
},
|
||||
watch: {
|
||||
visible(value) {
|
||||
|
@ -608,6 +795,47 @@ export default {
|
|||
</script>
|
||||
|
||||
<style scoped>
|
||||
.message-item{
|
||||
overflow: auto;
|
||||
height: 300px;
|
||||
max-height: 300px; /* 设置最大高度,超过该高度将出现滚动条 */
|
||||
}
|
||||
.message-item:hover{
|
||||
overflow-y: scroll; /* 鼠标悬停时启用纵向滚动条 */
|
||||
}
|
||||
/*留言板样式*/
|
||||
.floating-div {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
margin: 20px;
|
||||
}
|
||||
|
||||
.text {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.item {
|
||||
padding: 18px 0;
|
||||
}
|
||||
|
||||
.box-card {
|
||||
width: 480px;
|
||||
|
||||
|
||||
background: rgba(240, 240, 240, 0.52);
|
||||
border-radius: 10px;
|
||||
backdrop-filter: saturate(50%) blur(8px);
|
||||
}
|
||||
.clearfix:before,
|
||||
.clearfix:after {
|
||||
display: table;
|
||||
content: "";
|
||||
}
|
||||
.clearfix:after {
|
||||
clear: both
|
||||
}
|
||||
|
||||
.manageList-header-input {
|
||||
float: left;
|
||||
margin-bottom: 20px;
|
||||
|
|
|
@ -0,0 +1,90 @@
|
|||
<template>
|
||||
|
||||
<div class="app-table-container" style=" display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;">
|
||||
<div class="input-bg">
|
||||
<div style=" display: flex; flex-direction: column;align-items: center;">
|
||||
<p>文件:{{name}}</p>
|
||||
<el-input placeholder="请输入提取码" v-model="code"></el-input>
|
||||
<el-button type="primary" style="margin-top: 10px" @click="getByCode">提取文件</el-button>
|
||||
<p v-if="status">提取成功,请选择</p>
|
||||
<div v-if="status">
|
||||
<el-button type="primary" @click="save">下载</el-button>
|
||||
<el-button @click="onlineView">在线浏览</el-button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getByCode } from '@/utils/http/interface'
|
||||
import { Message } from 'element-ui'
|
||||
import { saveAs } from 'file-saver'
|
||||
export default {
|
||||
name: 'GetFile',
|
||||
data() {
|
||||
return{
|
||||
code: null,
|
||||
url: null,
|
||||
name: "*****",
|
||||
status:false
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
getByCode(){
|
||||
let code2Url = {
|
||||
code : this.code
|
||||
}
|
||||
this.$api.getByCode(code2Url).then((res)=>{
|
||||
if (res.status == 0) {
|
||||
//成功
|
||||
this.url = res.url
|
||||
this.status = true
|
||||
this.name = this.url.split("/").pop()
|
||||
}
|
||||
})
|
||||
},
|
||||
//下载
|
||||
save(){
|
||||
console.log(this.url)
|
||||
saveAs(this.url,this.url.split("/").pop())
|
||||
},
|
||||
// 在线浏览
|
||||
onlineView(){
|
||||
|
||||
//文件 判断文件类型
|
||||
if (this.url.split("/").pop().endsWith('.docx')) {
|
||||
//word文档
|
||||
this.isWord = true
|
||||
this.viewDialogVisible = true
|
||||
}else if (this.url.split("/").pop().endsWith('.pdf')){
|
||||
this.isPdf = true
|
||||
this.viewDialogVisible = true
|
||||
}else {
|
||||
Message.warning("您的文件暂不支持在线浏览 请下载查看")
|
||||
}
|
||||
|
||||
|
||||
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.input-bg{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center; /* 垂直居中 */
|
||||
width: 800px;
|
||||
height: 500px;
|
||||
background: #FFF;
|
||||
border: solid #c7c7c7 2px;
|
||||
|
||||
border-radius: 15px;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,177 @@
|
|||
<template>
|
||||
<div class="user-center">
|
||||
<el-card class="user-card">
|
||||
<div class="user-avatar">
|
||||
<img :src="user.avatar" alt="avatar" />
|
||||
</div>
|
||||
<div class="user-info">
|
||||
<h2 class="user-name">{{ user.name }}</h2>
|
||||
<p class="user-phone">手机号:{{ user.phone }}</p>
|
||||
<p class="user-phone">部门:{{ user.dep }}</p>
|
||||
<p class="user-phone">密码:*********</p>
|
||||
<el-button type="primary" @click="openPassword">重置密码</el-button>
|
||||
<el-button type="primary" @click="manageSignature" disabled>电子签名管理</el-button>
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
|
||||
<el-dialog
|
||||
title="重置密码"
|
||||
:visible.sync="updateDialogVisible"
|
||||
width="30%"
|
||||
:before-close="updatePasswordClose">
|
||||
<el-form label-position="top" label-width="80px" style="text-align: left">
|
||||
<el-form-item label="用户ID" prop="userId">
|
||||
<el-input placeholder="请填写用户名" v-model="updatePasswordUser.userId" disabled></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="密码" prop="password">
|
||||
<el-input placeholder="请输入重置密码" v-model="updatePasswordUser.password"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="resetPassword">重置密码</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</div>
|
||||
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { Message } from 'element-ui'
|
||||
|
||||
export default {
|
||||
name: 'UserCenter',
|
||||
data(){
|
||||
return {
|
||||
user: {
|
||||
avatar: "https://picsum.photos/200",
|
||||
name: "张三",
|
||||
phone: "13888888888",
|
||||
dep: "二室"
|
||||
},
|
||||
//重置密码
|
||||
updatePasswordUser:{
|
||||
userId:null,
|
||||
password: null
|
||||
},
|
||||
|
||||
//重置密码弹窗状态
|
||||
updateDialogVisible:false,
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
openPassword(){
|
||||
this.updateDialogVisible = true
|
||||
this.updatePasswordUser.userId = localStorage.getItem("userId");
|
||||
|
||||
},
|
||||
resetPassword() {
|
||||
// 调用重置密码的接口
|
||||
//需要对应上this.updatePasswordUser
|
||||
this.updatePasswordUser.password = this.$md5(this.updatePasswordUser.password)
|
||||
this.updatePasswordUser.userId = localStorage.getItem("userId");
|
||||
this.$api.updatePassword(this.updatePasswordUser).then((res)=>{
|
||||
if (res.status == 0) {
|
||||
Message.success("重置成功")
|
||||
this.updatePasswordClose()
|
||||
}else {
|
||||
Message.warning("系统错误,重置失败")
|
||||
this.updatePasswordClose()
|
||||
}
|
||||
})
|
||||
},
|
||||
manageSignature() {
|
||||
// 跳转到电子签名管理的页面
|
||||
},
|
||||
|
||||
|
||||
// 用户登录状态判断
|
||||
getUserData(){
|
||||
/**
|
||||
* 1. 有信息 拿到token userId 去获取用户信息
|
||||
*
|
||||
*/
|
||||
let token = localStorage.getItem("systemToken");
|
||||
let userId = localStorage.getItem("userId");
|
||||
// 获取用户信息
|
||||
var user = {
|
||||
userId,
|
||||
}
|
||||
this.$api.getUserDataByUserId(user).then((res) =>{
|
||||
console.log(res);
|
||||
if (res.status == 0) {
|
||||
// 查询成功
|
||||
this.user.avatar = res.data.userDetails.profilePhoto;
|
||||
this.user.name = res.data.user.name;
|
||||
this.user.dep = res.data.user.dep;
|
||||
this.user.phone = res.data.user.phone
|
||||
// localStorage.setItem("dep",res.data.user.dep)
|
||||
}
|
||||
}).catch(function (res){
|
||||
console.log(res);
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
},
|
||||
//关闭重置密码弹窗
|
||||
updatePasswordClose(){
|
||||
this.updateDialogVisible = false
|
||||
this.updatePasswordUser.userId = null
|
||||
this.updatePasswordUser.password = null
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
this.getUserData()
|
||||
}
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.user-center {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 100%;
|
||||
}
|
||||
.user-card {
|
||||
width: 90%;
|
||||
margin-top: 20px;
|
||||
display: flex;
|
||||
padding: 20px;
|
||||
}
|
||||
.user-avatar {
|
||||
width: 150px;
|
||||
height: 150px;
|
||||
}
|
||||
.user-avatar img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
border-radius: 50%;
|
||||
}
|
||||
.user-info {
|
||||
padding-left: 20px;
|
||||
}
|
||||
.user-list {
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
.user-phone{
|
||||
margin-top: 40px;
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
|
||||
.user-name{
|
||||
margin-top: 40px;
|
||||
margin-bottom: 40px;
|
||||
|
||||
}
|
||||
</style>
|
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<div class="app-table-container">
|
||||
|
||||
<!--搜索框-->
|
||||
<div class="manageList-header-input">
|
||||
|
|
23
yarn.lock
23
yarn.lock
|
@ -2909,6 +2909,11 @@
|
|||
"resolved" "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz"
|
||||
"version" "1.0.30001431"
|
||||
|
||||
"canvas-tablet@^2.0.6":
|
||||
"integrity" "sha512-rkQo1xLAwhBBxOSzseSZREzM4/voI/hrJxYsDFKTeR1TqBXF4iw4eC+PJqdADAojjkkhF5u6ShNqYCJ9cSRPVg=="
|
||||
"resolved" "https://registry.npmmirror.com/canvas-tablet/-/canvas-tablet-2.0.6.tgz"
|
||||
"version" "2.0.6"
|
||||
|
||||
"capture-exit@^2.0.0":
|
||||
"integrity" "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g=="
|
||||
"resolved" "https://registry.npmmirror.com/capture-exit/-/capture-exit-2.0.0.tgz"
|
||||
|
@ -4369,6 +4374,11 @@
|
|||
"is-date-object" "^1.0.1"
|
||||
"is-symbol" "^1.0.2"
|
||||
|
||||
"es6-object-assign@^1.1.0":
|
||||
"integrity" "sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw=="
|
||||
"resolved" "https://registry.npmmirror.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz"
|
||||
"version" "1.1.0"
|
||||
|
||||
"escalade@^3.1.1":
|
||||
"integrity" "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
|
||||
"resolved" "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz"
|
||||
|
@ -8941,6 +8951,11 @@
|
|||
"resolved" "https://registry.npmmirror.com/promise-inflight/-/promise-inflight-1.0.1.tgz"
|
||||
"version" "1.0.1"
|
||||
|
||||
"promise-polyfill@^6.0.2":
|
||||
"integrity" "sha512-g0LWaH0gFsxovsU7R5LrrhHhWAWiHRnh1GPrhXnPgYsDkIqjRYUYSZEsej/wtleDrz5xVSIDbeKfidztp2XHFQ=="
|
||||
"resolved" "https://registry.npmmirror.com/promise-polyfill/-/promise-polyfill-6.1.0.tgz"
|
||||
"version" "6.1.0"
|
||||
|
||||
"prompts@^2.0.1":
|
||||
"integrity" "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q=="
|
||||
"resolved" "https://registry.npmmirror.com/prompts/-/prompts-2.4.2.tgz"
|
||||
|
@ -10481,6 +10496,14 @@
|
|||
"unquote" "~1.1.1"
|
||||
"util.promisify" "~1.0.0"
|
||||
|
||||
"sweetalert@^2.1.2":
|
||||
"integrity" "sha512-iWx7X4anRBNDa/a+AdTmvAzQtkN1+s4j/JJRWlHpYE8Qimkohs8/XnFcWeYHH2lMA8LRCa5tj2d244If3S/hzA=="
|
||||
"resolved" "https://registry.npmmirror.com/sweetalert/-/sweetalert-2.1.2.tgz"
|
||||
"version" "2.1.2"
|
||||
dependencies:
|
||||
"es6-object-assign" "^1.1.0"
|
||||
"promise-polyfill" "^6.0.2"
|
||||
|
||||
"symbol-tree@^3.2.2":
|
||||
"integrity" "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="
|
||||
"resolved" "https://registry.npmmirror.com/symbol-tree/-/symbol-tree-3.2.4.tgz"
|
||||
|
|
Loading…
Reference in New Issue