|
|
@ -15,14 +15,21 @@ import {
|
|
|
|
import { getUserProfileApi, updateUserProfileApi, uploadAvatarApi } from '@/api/base/profile'
|
|
|
|
import { getUserProfileApi, updateUserProfileApi, uploadAvatarApi } from '@/api/base/profile'
|
|
|
|
import { exportLoginLog, getLoginLogPage } from '@/api/system/loginLog'
|
|
|
|
import { exportLoginLog, getLoginLogPage } from '@/api/system/loginLog'
|
|
|
|
import { deleteNotice, getNoticePage } from '@/api/system/notice'
|
|
|
|
import { deleteNotice, getNoticePage } from '@/api/system/notice'
|
|
|
|
// 单选
|
|
|
|
|
|
|
|
const sex = ref<string>('保密')//性别
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* let userInfo = reactive({
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
onMounted( async () => {
|
|
|
|
|
|
|
|
userInfo = await getUserProfileApi()
|
|
|
|
|
|
|
|
console.log(userInfo)
|
|
|
|
|
|
|
|
}) */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 单选
|
|
|
|
|
|
|
|
const sex = ref<string>('保密')//性别
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const message = ref<string>('全部信息')//系统信息选择
|
|
|
|
const message = ref<string>('全部信息')//系统信息选择
|
|
|
|
|
|
|
|
|
|
|
|
interface FormState {
|
|
|
|
interface FormState {
|
|
|
|
name: string
|
|
|
|
name: string
|
|
|
|
delivery: boolean
|
|
|
|
delivery: boolean
|
|
|
@ -55,12 +62,18 @@ function handleOk() {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
const state = reactive({
|
|
|
|
const state = reactive({
|
|
|
|
checked1: true,
|
|
|
|
checked1: true,
|
|
|
|
|
|
|
|
userInfo: {}
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
onMounted( async () => {
|
|
|
|
|
|
|
|
debugger
|
|
|
|
|
|
|
|
state.userInfo = await getUserProfileApi()
|
|
|
|
|
|
|
|
console.log("55555555" + state.userInfo);
|
|
|
|
|
|
|
|
debugger
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
//分页器
|
|
|
|
//分页器
|
|
|
|
const current = ref(6)//登录记录分页
|
|
|
|
const current = ref(6)//登录记录分页
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//系统通知切换
|
|
|
|
//系统通知切换
|
|
|
|
const isVisible = ref(true)
|
|
|
|
const isVisible = ref(true)
|
|
|
|
const isVisible2 = ref(false)
|
|
|
|
const isVisible2 = ref(false)
|
|
|
@ -145,58 +158,11 @@ const tabledata = [
|
|
|
|
time:'2023-08-22 22:31',
|
|
|
|
time:'2023-08-22 22:31',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
]
|
|
|
|
]
|
|
|
|
// const userInfo = ref(null);
|
|
|
|
|
|
|
|
// onMounted( async () => {
|
|
|
|
|
|
|
|
// let result = await getUserProfileApi()
|
|
|
|
|
|
|
|
// userInfo.value = result;
|
|
|
|
|
|
|
|
// })
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let userInfo = reactive({
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
onMounted( async () => {
|
|
|
|
|
|
|
|
userInfo = await getUserProfileApi()
|
|
|
|
|
|
|
|
console.log(userInfo)
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let loginlog = reactive({
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
onMounted( async () => {
|
|
|
|
|
|
|
|
loginlog = await getLoginLogPage()
|
|
|
|
|
|
|
|
// console.log(loginlog)
|
|
|
|
|
|
|
|
console.log(loginlog.list)
|
|
|
|
|
|
|
|
// console.log(loginlog.list.createTime)
|
|
|
|
|
|
|
|
// var date =new Date(loginlog.list.createTime)
|
|
|
|
|
|
|
|
// var time1 =loginlog.list.createTime
|
|
|
|
|
|
|
|
// console.log(time1)
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// let Notice = reactive({
|
|
|
|
|
|
|
|
// })
|
|
|
|
|
|
|
|
// onMounted( async () => {
|
|
|
|
|
|
|
|
// loginlog = await getNoticePage()
|
|
|
|
|
|
|
|
// console.log(Notice.list)
|
|
|
|
|
|
|
|
// })
|
|
|
|
|
|
|
|
// const {username} = toRefs(userInfo)
|
|
|
|
|
|
|
|
// onMounted(async () => {
|
|
|
|
|
|
|
|
// const data = await getUserProfileApi()
|
|
|
|
|
|
|
|
// console.log(data);
|
|
|
|
|
|
|
|
// })
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// let { proxy }: any = getCurrentInstance ()
|
|
|
|
|
|
|
|
// let classifylist=reactive ({
|
|
|
|
|
|
|
|
// data: [],
|
|
|
|
|
|
|
|
// })
|
|
|
|
|
|
|
|
// // 请求数据
|
|
|
|
|
|
|
|
// onMounted( async () => {
|
|
|
|
|
|
|
|
// let { data: res } = await getUserProfileApi();
|
|
|
|
|
|
|
|
// console.log(res)
|
|
|
|
|
|
|
|
// })
|
|
|
|
|
|
|
|
</script>
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
<template>
|
|
|
|
<template>
|
|
|
|
<a-card
|
|
|
|
<a-card
|
|
|
|
style="width: 80%; padding: 20px;margin: 20px auto;"
|
|
|
|
style="width: 80%; padding: 20px;margin: 20px auto;"
|
|
|
|
default-active-tab-key
|
|
|
|
default-active-tab-key
|
|
|
|
>
|
|
|
|
>
|
|
|
|
<a-tabs v-model:activeKey="activeKey" tab-position="left">
|
|
|
|
<a-tabs v-model:activeKey="activeKey" tab-position="left">
|
|
|
@ -207,34 +173,33 @@ onMounted( async () => {
|
|
|
|
<p>
|
|
|
|
<p>
|
|
|
|
<span>▋</span>
|
|
|
|
<span>▋</span>
|
|
|
|
基本资料
|
|
|
|
基本资料
|
|
|
|
<!-- {{userInfo}} -->
|
|
|
|
|
|
|
|
</p>
|
|
|
|
</p>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<p class="pleft">
|
|
|
|
<p class="pleft">
|
|
|
|
基本信息
|
|
|
|
基本信息
|
|
|
|
</p>
|
|
|
|
</p>
|
|
|
|
<div class="datumbox">
|
|
|
|
<div class="datumbox">
|
|
|
|
<div class="form" :data="list">
|
|
|
|
<div class="form">
|
|
|
|
<a-form :model="FormState" :label-col="labelCol" :wrapper-col="wrapperCol">
|
|
|
|
<a-form :model="formState" :label-col="labelCol" :wrapper-col="wrapperCol">
|
|
|
|
<a-form-item label="登录账号:">
|
|
|
|
<a-form-item label="登录账号:">
|
|
|
|
<a-input v-model:value="userInfo.username" placeholder="输入内容" />
|
|
|
|
<a-input v-model:value="state.userInfo.username" placeholder="输入内容" />
|
|
|
|
</a-form-item>
|
|
|
|
</a-form-item>
|
|
|
|
<a-form-item label="姓名:">
|
|
|
|
<a-form-item label="姓名:">
|
|
|
|
<a-input v-model:value="userInfo.nickname" placeholder="输入内容" />
|
|
|
|
<a-input v-model:value="state.userInfo.nickname" placeholder="输入内容" />
|
|
|
|
</a-form-item>
|
|
|
|
</a-form-item>
|
|
|
|
<a-form-item label="所属部门:">
|
|
|
|
<a-form-item label="所属部门:">
|
|
|
|
<a-input v-model:value="userInfo.dept.name" placeholder="输入内容" />
|
|
|
|
<a-input v-model:value="state.userInfo.dept.name" placeholder="输入内容" />
|
|
|
|
</a-form-item>
|
|
|
|
</a-form-item>
|
|
|
|
<a-form-item label="员工职务:">
|
|
|
|
<a-form-item label="员工职务:">
|
|
|
|
<a-input v-model:value="value" placeholder="输入内容" />
|
|
|
|
<a-input v-model:value="state.userInfo.posts[0].name" placeholder="输入内容" />
|
|
|
|
</a-form-item>
|
|
|
|
</a-form-item>
|
|
|
|
<a-form-item label="员工工号:">
|
|
|
|
<a-form-item label="员工工号:">
|
|
|
|
<a-input v-model:value="value" placeholder="输入内容" />
|
|
|
|
<a-input v-model:value="state.userInfo.jobNumber" placeholder="输入内容" />
|
|
|
|
</a-form-item>
|
|
|
|
</a-form-item>
|
|
|
|
<a-form-item label="手机号码:">
|
|
|
|
<a-form-item label="手机号码:">
|
|
|
|
<div class="phonecss">
|
|
|
|
<div class="phonecss">
|
|
|
|
<a-input v-model:value="value" placeholder="输入内容" :style="phoneStyle" />
|
|
|
|
<a-input v-model:value="state.userInfo.mobile" placeholder="输入内容" :style="phoneStyle" />
|
|
|
|
|
|
|
|
|
|
|
|
<div>
|
|
|
|
<div>
|
|
|
|
<a-button :style="changeStyle" @click="showModal">
|
|
|
|
<a-button :style="changeStyle" @click="showModal">
|
|
|
|
修改手机号
|
|
|
|
修改手机号
|
|
|
@ -290,11 +255,11 @@ onMounted( async () => {
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</a-form-item>
|
|
|
|
</a-form-item>
|
|
|
|
|
|
|
|
|
|
|
|
<p class="pleft">
|
|
|
|
<p class="pleft">
|
|
|
|
更多信息
|
|
|
|
更多信息
|
|
|
|
</p>
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
|
|
<a-form label-width="100px" :model="formState" :label-col="labelCol" :wrapper-col="wrapperCol">
|
|
|
|
<a-form label-width="100px" :model="formState" :label-col="labelCol" :wrapper-col="wrapperCol">
|
|
|
|
<a-form-item label="籍贯:">
|
|
|
|
<a-form-item label="籍贯:">
|
|
|
|
<a-input v-model:value="value" placeholder="输入内容" />
|
|
|
|
<a-input v-model:value="value" placeholder="输入内容" />
|
|
|
@ -327,7 +292,7 @@ onMounted( async () => {
|
|
|
|
<a-form-item label="毕业院校:">
|
|
|
|
<a-form-item label="毕业院校:">
|
|
|
|
<a-input v-model:value="value" placeholder="输入内容" />
|
|
|
|
<a-input v-model:value="value" placeholder="输入内容" />
|
|
|
|
</a-form-item>
|
|
|
|
</a-form-item>
|
|
|
|
<a-form-item name="DatePicker" label="毕业时间:" v-bind="config">
|
|
|
|
<a-form-item name="毕业时间:" label="DatePicker" v-bind="config">
|
|
|
|
<a-date-picker v-model:value="formState['date-picker']" value-format="YYYY-MM-DD" />
|
|
|
|
<a-date-picker v-model:value="formState['date-picker']" value-format="YYYY-MM-DD" />
|
|
|
|
</a-form-item>
|
|
|
|
</a-form-item>
|
|
|
|
<a-form-item label="个人简介:" placeholder="输入内容" name="desc">
|
|
|
|
<a-form-item label="个人简介:" placeholder="输入内容" name="desc">
|
|
|
@ -414,19 +379,17 @@ onMounted( async () => {
|
|
|
|
<p>
|
|
|
|
<p>
|
|
|
|
<span>▋</span>
|
|
|
|
<span>▋</span>
|
|
|
|
登录记录
|
|
|
|
登录记录
|
|
|
|
<!-- {{loginlog}}-->
|
|
|
|
|
|
|
|
</p>
|
|
|
|
</p>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<!-- 日期 -->
|
|
|
|
<!-- 日期 -->
|
|
|
|
<div
|
|
|
|
<div
|
|
|
|
v-for="(item, index) in loginlog.list" :key="index"
|
|
|
|
v-for="(item, index) in 5" :key="index"
|
|
|
|
>
|
|
|
|
>
|
|
|
|
<div class="date">
|
|
|
|
<div class="date">
|
|
|
|
{{item.logType}}
|
|
|
|
{{ `2023-08-22` }}
|
|
|
|
{{ `日期:2023-08-22` }}
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div
|
|
|
|
<div
|
|
|
|
v-for="(item, index) in loginlog.list"
|
|
|
|
v-for="(item, index) in 5"
|
|
|
|
:key="index" class="recordbox"
|
|
|
|
:key="index" class="recordbox"
|
|
|
|
>
|
|
|
|
>
|
|
|
|
<div class="recordleft">
|
|
|
|
<div class="recordleft">
|
|
|
@ -434,18 +397,14 @@ onMounted( async () => {
|
|
|
|
<WindowsFilled />
|
|
|
|
<WindowsFilled />
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="recordmessage">
|
|
|
|
<div class="recordmessage">
|
|
|
|
<div class="usersId">
|
|
|
|
<div class="usersId">
|
|
|
|
{{item.username}}
|
|
|
|
{{ `kang-pc` }}
|
|
|
|
<!-- {{ `kang-pc` }}-->
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
{{item.userIp}}
|
|
|
|
{{ `上海市长宁区 14.127.100.242` }}
|
|
|
|
<!-- {{ `上海市长宁区 14.127.100.242` }}-->
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="recordright">
|
|
|
|
<div class="recordright">
|
|
|
|
<span><FieldTimeOutlined /></span>
|
|
|
|
<span><FieldTimeOutlined /></span>{{ `2023-08-22 12:00` }}
|
|
|
|
<!-- {{ `2023-08-22 12:00` }}-->
|
|
|
|
|
|
|
|
{{item.createTime}}
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
@ -463,7 +422,6 @@ onMounted( async () => {
|
|
|
|
<p>
|
|
|
|
<p>
|
|
|
|
<span>▋</span>
|
|
|
|
<span>▋</span>
|
|
|
|
系统通知
|
|
|
|
系统通知
|
|
|
|
|
|
|
|
|
|
|
|
</p>
|
|
|
|
</p>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="messagetitle">
|
|
|
|
<div class="messagetitle">
|
|
|
@ -497,7 +455,7 @@ onMounted( async () => {
|
|
|
|
<div class="table">
|
|
|
|
<div class="table">
|
|
|
|
<a-table :columns="tablecolumns" :data-source="tabledata" :total="500">
|
|
|
|
<a-table :columns="tablecolumns" :data-source="tabledata" :total="500">
|
|
|
|
<template #headerCell="{ column }">
|
|
|
|
<template #headerCell="{ column }">
|
|
|
|
<template v-if="column.key === 'title'" >
|
|
|
|
<template v-if="column.key === 'title'">
|
|
|
|
<span>
|
|
|
|
<span>
|
|
|
|
通知标题
|
|
|
|
通知标题
|
|
|
|
</span>
|
|
|
|
</span>
|
|
|
@ -507,7 +465,7 @@ onMounted( async () => {
|
|
|
|
<template v-if="column.key === 'name'">
|
|
|
|
<template v-if="column.key === 'name'">
|
|
|
|
<a href=""> {{ record.name }}</a>
|
|
|
|
<a href=""> {{ record.name }}</a>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
<template v-else-if="column.key === 'title'">
|
|
|
|
<template v-else-if="column.key === 'title'">
|
|
|
|
<div style="cursor: pointer;" @click="toggleBlocks">
|
|
|
|
<div style="cursor: pointer;" @click="toggleBlocks">
|
|
|
|
{{ record.title }}
|
|
|
|
{{ record.title }}
|
|
|
@ -600,7 +558,7 @@ onMounted( async () => {
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="firmtopbot">
|
|
|
|
<div class="firmtopbot">
|
|
|
|
<p class="fontcss">
|
|
|
|
<p class="fontcss">
|
|
|
|
部门:{{ `再生资源事业部 采购部` }}
|
|
|
|
部门:{{ `再生资源事业部<采购部` }}
|
|
|
|
</p>
|
|
|
|
</p>
|
|
|
|
<p class="fontcss">
|
|
|
|
<p class="fontcss">
|
|
|
|
业务线:{{ `废铁、废铝` }}
|
|
|
|
业务线:{{ `废铁、废铝` }}
|
|
|
@ -609,7 +567,7 @@ onMounted( async () => {
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="default">
|
|
|
|
<div class="default">
|
|
|
|
<p class="fontcss">
|
|
|
|
<p class="fontcss">
|
|
|
|
默认登录:
|
|
|
|
默认登录:
|
|
|
|
<span style="margin-left: 15px;">
|
|
|
|
<span style="margin-left: 15px;">
|
|
|
|
<a-switch v-model:checked="state.checked1" checked-children="开" un-checked-children="关" /></span>
|
|
|
|
<a-switch v-model:checked="state.checked1" checked-children="开" un-checked-children="关" /></span>
|
|
|
|
</p>
|
|
|
|
</p>
|
|
|
@ -695,7 +653,7 @@ onMounted( async () => {
|
|
|
|
display: flex;
|
|
|
|
display: flex;
|
|
|
|
flex-wrap: wrap;
|
|
|
|
flex-wrap: wrap;
|
|
|
|
justify-content: space-between;
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.list{
|
|
|
|
.list{
|
|
|
|
width: 30%;
|
|
|
|
width: 30%;
|
|
|
@ -750,7 +708,7 @@ onMounted( async () => {
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -763,7 +721,7 @@ onMounted( async () => {
|
|
|
|
.ant-tabs-tab .ant-tabs-tab-active{
|
|
|
|
.ant-tabs-tab .ant-tabs-tab-active{
|
|
|
|
padding: 8px 24px;
|
|
|
|
padding: 8px 24px;
|
|
|
|
text-align: center;
|
|
|
|
text-align: center;
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.datum{
|
|
|
|
.datum{
|
|
|
@ -773,7 +731,7 @@ onMounted( async () => {
|
|
|
|
color: #666;
|
|
|
|
color: #666;
|
|
|
|
|
|
|
|
|
|
|
|
.datumtop{
|
|
|
|
.datumtop{
|
|
|
|
p{
|
|
|
|
p{
|
|
|
|
margin-bottom: 15px;
|
|
|
|
margin-bottom: 15px;
|
|
|
|
font-size:18px;
|
|
|
|
font-size:18px;
|
|
|
|
font-weight:700;
|
|
|
|
font-weight:700;
|
|
|
@ -783,7 +741,7 @@ onMounted( async () => {
|
|
|
|
color:#409EFF;
|
|
|
|
color:#409EFF;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.datumbox{
|
|
|
|
.datumbox{
|
|
|
@ -824,7 +782,7 @@ onMounted( async () => {
|
|
|
|
|
|
|
|
|
|
|
|
.pleft{
|
|
|
|
.pleft{
|
|
|
|
margin: 20px ;
|
|
|
|
margin: 20px ;
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -917,7 +875,7 @@ justify-content: space-between;
|
|
|
|
flex-direction: column;
|
|
|
|
flex-direction: column;
|
|
|
|
width: 300px;
|
|
|
|
width: 300px;
|
|
|
|
margin-left: 20px;
|
|
|
|
margin-left: 20px;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.usersId{
|
|
|
|
.usersId{
|
|
|
|
font-size:20px ;
|
|
|
|
font-size:20px ;
|
|
|
|