事件页面美化调整

This commit is contained in:
曹前明 2022-07-22 14:22:42 +08:00
parent 0d114bf349
commit 48e83cc4fa
17 changed files with 314 additions and 330 deletions

View File

@ -5,9 +5,9 @@ NODE_ENV = development
VUE_APP_TITLE = '曲阳金隅安全智能管控平台' VUE_APP_TITLE = '曲阳金隅安全智能管控平台'
# 接口地址 # 接口地址
VUE_APP_API_BASEURL = http://1.203.161.103:2800/api # VUE_APP_API_BASEURL = http://1.203.161.103:2800/api
VUE_APP_WS_API = 'ws://localhost:8000' VUE_APP_WS_API = 'ws://localhost:8000'
#VUE_APP_API_BASEURL = http://127.0.0.1:8000/api VUE_APP_API_BASEURL = http://127.0.0.1:8000/api
# 本地端口 # 本地端口
VUE_APP_PORT = 2800 VUE_APP_PORT = 2800

View File

@ -47,7 +47,14 @@ export default {
req: async function(id){ req: async function(id){
return await http.delete(`${config.API_URL}/hrm/employee/${id}/`); return await http.delete(`${config.API_URL}/hrm/employee/${id}/`);
} }
},
improve_info: {
name: "完善个人信息",
req: async function(data){
return await http.post(`${config.API_URL}/hrm/employee/improve_info/`, data);
}
} }
}, },
certificate: { certificate: {
list: { list: {

View File

@ -76,7 +76,7 @@ const routes = [
"path": "/ecm", "path": "/ecm",
"meta": { "meta": {
"title": "事件", "title": "事件",
"icon": "el-icon-goods-filled", "icon": "el-icon-alarm-clock",
"type": "menu", "type": "menu",
"perms": ["ecm"] "perms": ["ecm"]
}, },
@ -86,7 +86,7 @@ const routes = [
"path": "/ecm/event", "path": "/ecm/event",
"meta": { "meta": {
"title": "事件列表", "title": "事件列表",
"icon": "el-icon-document", "icon": "el-icon-alarm-clock",
"perms": ["event"] "perms": ["event"]
}, },
"component": "ecm/event", "component": "ecm/event",
@ -99,7 +99,6 @@ const routes = [
"title": "事件详情", "title": "事件详情",
"icon": "el-icon-menu", "icon": "el-icon-menu",
"hidden": true, "hidden": true,
"perms": ["eventfrom"]
}, },
"component": "ecm/event_from" "component": "ecm/event_from"
} }
@ -111,7 +110,6 @@ const routes = [
"title": "处理作业", "title": "处理作业",
"icon": "el-icon-menu", "icon": "el-icon-menu",
"hidden": true, "hidden": true,
"perms": ["eventhandlefrom"]
}, },
"component": "ecm/event_handlefrom" "component": "ecm/event_handlefrom"
}, },
@ -120,7 +118,7 @@ const routes = [
"path": "/ecm/myevent", "path": "/ecm/myevent",
"meta": { "meta": {
"title": "我的事件", "title": "我的事件",
"icon": "el-icon-document-remove", "icon": "el-icon-notification",
"perms": ["myevent"] "perms": ["myevent"]
}, },
"component": "ecm/myevent" "component": "ecm/myevent"
@ -141,7 +139,7 @@ const routes = [
"path": "/ecm/algo", "path": "/ecm/algo",
"meta": { "meta": {
"title": "算法配置", "title": "算法配置",
"icon": "el-icon-setting", "icon": "el-icon-set-up",
"perms": ["algo"] "perms": ["algo"]
}, },
"component": "ecm/algo" "component": "ecm/algo"

View File

@ -78,14 +78,14 @@
</div> </div>
<el-dropdown class="user panel-item" trigger="click" @command="handleUser"> <el-dropdown class="user panel-item" trigger="click" @command="handleUser">
<div class="user-avatar"> <div class="user-avatar">
<el-avatar :size="30">{{ userNameF }}</el-avatar> <el-avatar :size="34" shape="square">{{ userNameF }}</el-avatar>
<label>{{ userName }}</label> <label>{{ userName }}</label>
<el-icon class="el-icon--right"><el-icon-arrow-down /></el-icon> <el-icon class="el-icon--right"><el-icon-arrow-down /></el-icon>
</div> </div>
<template #dropdown> <template #dropdown>
<el-dropdown-menu> <el-dropdown-menu>
<el-dropdown-item command="uc">帐号信息</el-dropdown-item> <el-dropdown-item command="uc">帐号信息</el-dropdown-item>
<el-dropdown-item command="clearCache">清除缓存</el-dropdown-item> <!-- <el-dropdown-item command="clearCache">清除缓存</el-dropdown-item> -->
<el-dropdown-item divided command="outLogin" <el-dropdown-item divided command="outLogin"
>退出登录</el-dropdown-item >退出登录</el-dropdown-item
> >
@ -124,7 +124,7 @@ export default {
}, },
created() { created() {
var userInfo = this.$TOOL.data.get("USER_INFO"); var userInfo = this.$TOOL.data.get("USER_INFO");
this.userName = userInfo.username; this.userName = userInfo.name;
this.userNameF = this.userName.substring(0, 1); this.userNameF = this.userName.substring(0, 1);
}, },
@ -246,7 +246,7 @@ this.msg=false;
.user-bar .user-avatar label { .user-bar .user-avatar label {
display: inline-block; display: inline-block;
margin-left: 5px; margin-left: 5px;
font-size: 12px; font-size: 14px;
cursor: pointer; cursor: pointer;
} }

View File

@ -9,7 +9,7 @@ export default {
forgetPassword: 'Forget password', forgetPassword: 'Forget password',
signIn: 'Sign in', signIn: 'Sign in',
signInOther: 'Sign in with', signInOther: 'Sign in with',
userPlaceholder: 'user / phone / email', userPlaceholder: 'user / phone / idnumber',
userError: 'Please input a user name', userError: 'Please input a user name',
PWPlaceholder: 'Please input a password', PWPlaceholder: 'Please input a password',
PWError: 'Please input a password', PWError: 'Please input a password',

View File

@ -9,7 +9,7 @@ export default {
forgetPassword: '忘记密码', forgetPassword: '忘记密码',
signIn: '登录', signIn: '登录',
signInOther: '其他登录方式', signInOther: '其他登录方式',
userPlaceholder: '用户名 / 手机 / 邮箱', userPlaceholder: '用户名 / 手机号 / 身份证号',
userError: '请输入用户名', userError: '请输入用户名',
PWPlaceholder: '请输入密码', PWPlaceholder: '请输入密码',
PWError: '请输入密码', PWError: '请输入密码',

View File

@ -67,7 +67,7 @@ router.beforeEach(async (to, from, next) => {
//加载动态/静态路由 //加载动态/静态路由
if (!isGetRouter) { if (!isGetRouter) {
// let apiMenu = tool.data.get("MENU") || [] // let apiMenu = tool.data.get("MENU") || []
let permissions = tool.data.get("PERMISSIONS"); let permissions = tool.data.get("PERMISSIONS") || [];
let userMenu = userRoutes; let userMenu = userRoutes;
if (permissions.indexOf('superuser') == -1) { if (permissions.indexOf('superuser') == -1) {
userMenu = treeFilter(userRoutes, node => { userMenu = treeFilter(userRoutes, node => {
@ -107,7 +107,7 @@ router.onError((error) => {
//入侵追加自定义方法、对象 //入侵追加自定义方法、对象
router.sc_getMenu = () => { router.sc_getMenu = () => {
// var apiMenu = tool.data.get("MENU") || [] // var apiMenu = tool.data.get("MENU") || []
let permissions = tool.data.get("PERMISSIONS"); let permissions = tool.data.get("PERMISSIONS") || [];
let userMenu = userRoutes; let userMenu = userRoutes;
if (permissions.indexOf('superuser') == -1) { if (permissions.indexOf('superuser') == -1) {
userMenu = treeFilter(userRoutes, node => { userMenu = treeFilter(userRoutes, node => {

View File

@ -88,7 +88,7 @@
} }
.el-main { .el-main {
padding: 15px; padding: 8px;
} }
.el-main.nopadding { .el-main.nopadding {

View File

@ -23,12 +23,10 @@
@resetQuery="resetQuery" @resetQuery="resetQuery"
> >
<el-table-column label="#" type="index" width="50"></el-table-column> <el-table-column label="#" type="index" width="50"></el-table-column>
<el-table-column label="事件种类" > <el-table-column label="事件种类" width="200">
<template #default="scope" > <template #default="scope" >
<el-span v-for="item in scope.row.cates_" <el-tag v-for="item in scope.row.cates_"
:key="item.id" :key="item.id" type="warning">{{item.name}}</el-tag>
:label="item.name"
:value="item.id">{{item.name}}</el-span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="发生区域" prop="area_.name"></el-table-column> <el-table-column label="发生区域" prop="area_.name"></el-table-column>
@ -68,40 +66,40 @@
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="发生时间" prop="create_time"></el-table-column> <el-table-column label="发生时间" prop="create_time" width="150"></el-table-column>
<el-table-column <el-table-column
label="处理人" label="处理人"
prop="handle_user_name" prop="handle_user_name"
></el-table-column> ></el-table-column>
<el-table-column label="处理时间" prop="handle_time"></el-table-column> <!-- <el-table-column label="处理时间" prop="handle_time"></el-table-column> -->
<el-table-column label="事件标记" prop="mark"> <el-table-column label="事件标记" prop="mark">
<template #default="scope"> <template #default="scope">
<el-span v-if="scope.row.mark == 20" color="red">误报</el-span> <el-span v-if="scope.row.mark == 20" color="red">误报</el-span>
<el-span v-else color="green">正常</el-span> <el-span v-else color="green">正常</el-span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="是否超时"> <el-table-column label="处理超时">
<template #default="scope"> <template #default="scope">
<el-span v-if="scope.row.is_timeout" color="red"></el-span> <el-tag v-if="scope.row.is_timeout" type="warning"></el-tag>
<el-span v-else color="green"></el-span> <el-tag v-else type="success"></el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" fixed="right" align="right"> <el-table-column label="操作" fixed="right" align="center">
<template #default="scope"> <template #default="scope">
<el-button-group>
<el-button <el-button
text link
type="primary" type="info"
size="small" size="small"
@click="table_show(scope.row, scope.$index)" @click="table_show(scope.row, scope.$index)"
>查看</el-button> >查看</el-button>
<el-button <el-button
text link
type="primary" type="primary"
size="small" size="small"
v-if="scope.row.handle_user==null"
@click="table_handle(scope.row, scope.$index)" @click="table_handle(scope.row, scope.$index)"
>处理</el-button> >处理</el-button>
<!-- <el-button text type="warning" size="small" @click="table_edit(scope.row, scope.$index)">编辑</el-button> --> <!-- <el-button text type="warning" size="small" @click="table_edit(scope.row, scope.$index)">编辑</el-button> -->
@ -110,7 +108,6 @@
<el-button text type="danger" size="small">删除</el-button> <el-button text type="danger" size="small">删除</el-button>
</template> </template>
</el-popconfirm> --> </el-popconfirm> -->
</el-button-group>
</template> </template>
</el-table-column> </el-table-column>
</scTable> </scTable>
@ -145,7 +142,7 @@ export default {
// //
table_show(row) { table_show(row) {
this.$router.push({ this.$router.push({
name: "eventfrom", name: "eventhandlefrom",
query: { query: {
id: row.id, id: row.id,
}, },

View File

@ -61,7 +61,7 @@
<sc-title title="音响配置"></sc-title> <sc-title title="音响配置"></sc-title>
<el-row> <el-row>
<el-col :md="12" :sm="24"> <el-col :md="12" :sm="24">
<el-form-item label="事件优先级" prop="priority"> <el-form-item label="事件优先级" prop="priority" placeholder="数字越小级别越高">
<el-input-number <el-input-number
v-model="form.priority" v-model="form.priority"
:min="1" :min="1"

View File

@ -1,81 +1,53 @@
<template> <template>
<el-container v-loading="loading"> <el-container v-loading="loading">
<!--<sc-title title="详细信息"></sc-title>--> <!--<sc-title title="详细信息"></sc-title>-->
<el-main style="padding: 0 20px 20px 20px"> <el-main>
<el-card class="box-card"> <el-card>
<sc-title title="事件基本信息"> </sc-title> <el-descriptions title="事件基本信息" :border="true">
<el-descriptions-item label="事件种类"><el-tag
<el-form :model="form" label-width="120px">
<el-row>
<el-col :md="4" :sm="24">
<el-form-item label="事件种类" prop="cates">
<el-tag
v-for="item in form.cates_" v-for="item in form.cates_"
:key="item.id" :key="item.id"
:label="item.name" type="warning"
:value="item.id"
>{{ item.name }}</el-tag >{{ item.name }}</el-tag
> ></el-descriptions-item>
</el-form-item> <el-descriptions-item label="事件标记">{{mark_options2[form.mark]}}
</el-col> </el-descriptions-item>
<el-col :md="4" :sm="24" > <el-descriptions-item label="发生时间">{{form.create_time}}</el-descriptions-item>
<el-form-item label="当事人" prop="employee"> <el-descriptions-item label="发生区域" v-if="form.area_">{{form.area_.name}}</el-descriptions-item>
<el-tag v-if="form.employee" clearable>{{ form.employee_.name }}</el-tag> <el-descriptions-item label="人员类型">
<el-tag v-else clearable>未知人员</el-tag> <span v-if="form.employee">{{type_options2[form.employee_.type]}}</span>
</el-form-item> <span v-else>未知人员</span>
</el-col> </el-descriptions-item>
<el-col :md="8" :sm="24" v-if="form.area"> <el-descriptions-item label="当事人">
<el-form-item label="发生区域" prop="area"> <span v-if="form.employee">{{form.employee_.name}}</span>
<el-input v-model="form.area_.name" clearable :disabled="true"></el-input> </el-descriptions-item>
</el-form-item> <el-descriptions-item label="图片" column=3>
</el-col> <div style="display:flex;">
<sc-upload v-model="form.global_img" title="全景照" :disabled="true" style="margin-right:8px"></sc-upload>
<sc-upload v-model="form.face_img" title="人脸照" :disabled="true"></sc-upload>
<el-col </div>
:md="8" </el-descriptions-item>
:sm="24" </el-descriptions>
v-if="form.employee && form.employee_.type" </el-card>
> <el-card v-if="form.handle_user" style="margin-top:8px">
<el-form-item label="人员类型" prop="employee"> <el-descriptions title="事件处理" :border="true">
<el-select v-model="form.employee_.type" style="width: 100%" :disabled="true"> <el-descriptions-item label="事件标记">{{mark_options2[form.mark]}}
<el-option </el-descriptions-item>
v-for="item in type_options" <el-descriptions-item label="处理人">
:key="item.id" <span v-if="form.handle_user"></span>{{form.handle_user_name}}
:label="item.name" </el-descriptions-item>
:value="item.id" <el-descriptions-item label="处理时间">
/> {{form.handle_time}}
</el-select> </el-descriptions-item>
</el-form-item> <el-descriptions-item label="处理描述" column=3>
</el-col> {{form.handle_desc}}
</el-descriptions-item>
<el-col :md="8" :sm="24"> </el-descriptions>
<el-form-item label="发生时间"> </el-card>
<el-input v-model="form.create_time" clearable :disabled="true"></el-input> <el-card header="事件处理" v-else style="margin-top:8px">
</el-form-item> <el-form :inline="true">
</el-col>
<el-col :md="8" :sm="24">
<el-form-item label="是否超时">
<el-switch v-model="form.is_timeout" :disabled="true"/>
</el-form-item>
</el-col>
<el-col :md="8" :sm="24">
<el-form-item label="人脸照">
<sc-upload v-model="form.face_img" title="人脸照" :disabled="true"></sc-upload>
</el-form-item>
</el-col>
<el-col :md="8" :sm="24">
<el-form-item label="全景照">
<sc-upload v-model="form.global_img" title="全景照" :disabled="true"></sc-upload>
</el-form-item>
</el-col>
<el-col :md="6" :sm="24">
<el-form-item label="事件标记"> <el-form-item label="事件标记">
<el-select v-model="form.mark" style="width: 100%" > <el-select v-model="form.mark" style="width: 100%">
<el-option <el-option
v-for="item in mark_options" v-for="item in mark_options"
:key="item.id" :key="item.id"
@ -84,50 +56,50 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col>
<el-col :md="8" :sm="24">
<el-form-item label="处理描述"> <el-form-item label="处理描述">
<el-input v-model="form.handle_desc" clearable ></el-input> <el-input v-model="form.handle_desc" clearable type="textarea"></el-input>
</el-form-item> </el-form-item>
</el-col> <el-form-item>
</el-row> <el-button type="primary" @click="onSubmit">保存</el-button>
<el-row><el-col> <el-button type="primary" style="float:right" @click="submit()">提交</el-button></el-col></el-row> </el-form-item>
</el-form>
<sc-title title="事件推送列表"></sc-title> </el-form>
<scTable </el-card>
<el-card header="事件推送情况" style="margin-top:8px">
<scTable
ref="table" ref="table"
:data="remindData" :data="remindData"
row-key="id" row-key="id"
height="300px"
fit fit
stripe stripe
@resetQuery="resetQuery" hidePagination
hidePagination
> >
<el-table-column label="#" type="index" width="50"></el-table-column> <el-table-column label="#" type="index" width="50"></el-table-column>
<el-table-column label="事件种类"> <el-table-column label="事件种类" width="200">
<template #default="scope"> <template #default="scope">
<el-span <el-tag v-for="item in scope.row.event_.cates_"
v-for="item in scope.row.event_.cates_" :key="item.id" type="warning">{{item.name}}</el-tag>
:key="item.id"
:label="item.name"
:value="item.id"
>{{ item.name }}</el-span
>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="事件处理状态" prop="can_handle">
<template #default="scope">
<el-span v-if="scope.row.handle_user==null">未处理</el-span>
<el-span v-else>已处理</el-span>
</template>
</el-table-column>
<el-table-column <el-table-column
label="警报信息" label="警报信息"
prop="event_.voice_msg" prop="event_.voice_msg"
width="200"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
label="接收人" label="接收人"
prop="recipient_.name" prop="recipient_.name"
></el-table-column> ></el-table-column>
<el-table-column label="是否可处理" prop="can_handle"> <el-table-column label="是否可处理" prop="can_handle">
<template #default="scope"> <template #default="scope">
<el-span v-if="scope.row.can_handle"></el-span> <el-span v-if="scope.row.can_handle"></el-span>
@ -141,9 +113,10 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="创建时间" prop="create_time"></el-table-column> <el-table-column label="发送时间" prop="create_time"></el-table-column>
</scTable> </scTable>
</el-card> </el-card>
</el-main> </el-main>
</el-container> </el-container>
</template> </template>
@ -157,7 +130,6 @@ export default {
loading: false, loading: false,
visible: false, visible: false,
isSaveing: false, isSaveing: false,
mode: "show", mode: "show",
titleMap: { titleMap: {
show: "事件信息查看", show: "事件信息查看",
@ -167,11 +139,20 @@ export default {
{ id: "remployee", name: "相关方" }, { id: "remployee", name: "相关方" },
{ id: "visitor", name: "访客" }, { id: "visitor", name: "访客" },
], ],
type_options2: {
"employee": "企业员工",
"remployee": "相关方",
"visitor": "访客"
},
mark_options2: {
10: "正常",
20: "误报"
},
mark_options: [ mark_options: [
{ id: 10, name: "正常" }, { id: 10, name: "正常" },
{ id: 20, name: "误报" }, { id: 20, name: "误报" },
], ],
form: [], form: {},
remindData: [], remindData: [],
eventID: "", eventID: "",
}; };
@ -183,23 +164,25 @@ export default {
}, },
methods: { methods: {
getEvent() { getEvent() {
this.loading = true
this.$API.ecm.event.item.req(this.eventID).then((res) => { this.$API.ecm.event.item.req(this.eventID).then((res) => {
this.loading = false
this.form = res; this.form = res;
}); }).catch(e=>{this.loading=false});
}, },
getRemind() { getRemind() {
this.$API.ecm.remind.list this.$API.ecm.remind.list
.req({ event: this.eventID, page: 0 }) .req({ event: this.eventID, page: 0 })
.then((res) => { .then((res) => {
this.remindData = res; this.remindData = res;
}); });
}, },
submit(){ onSubmit(){
this.$API.ecm.event.handle.req(this.form.id, this.form) this.$API.ecm.event.handle.req(this.form.id, this.form)
.then((res) => { .then((res) => {
this.$router.go(-1) this.$router.go(-1)
this.$message.success("操作成功"); this.$message.success("操作成功");
return res; return res;

View File

@ -24,20 +24,15 @@
@resetQuery="resetQuery" @resetQuery="resetQuery"
> >
<el-table-column label="#" type="index" width="50"></el-table-column> <el-table-column label="#" type="index" width="50"></el-table-column>
<el-table-column label="事件种类"> <el-table-column label="事件种类" width="200">
<template #default="scope"> <template #default="scope">
<el-span <el-tag v-for="item in scope.row.event_.cates_"
v-for="item in scope.row.event_.cates_" :key="item.id" type="warning">{{item.name}}</el-tag>
:key="item.id"
:label="item.name"
:value="item.id"
>{{ item.name }}</el-span
>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="事件处理状态" prop="can_handle"> <el-table-column label="事件处理状态" prop="can_handle">
<template #default="scope"> <template #default="scope">
<el-span v-if="scope.row.handle_user==''">未处理</el-span> <el-span v-if="scope.row.handle_user==null">未处理</el-span>
<el-span v-else>已处理</el-span> <el-span v-else>已处理</el-span>
</template> </template>
</el-table-column> </el-table-column>
@ -45,6 +40,7 @@
<el-table-column <el-table-column
label="警报信息" label="警报信息"
prop="event_.voice_msg" prop="event_.voice_msg"
width="200"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
@ -65,16 +61,22 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="创建时间" prop="create_time"></el-table-column> <el-table-column label="发送时间" prop="create_time"></el-table-column>
<el-table-column label="操作" fixed="right" align="right"> <el-table-column label="操作" fixed="right">
<template #default="scope"> <template #default="scope">
<el-button-group> <el-button
link
type="info"
size="small"
@click="table_show(scope.row, scope.$index)"
>查看</el-button>
<el-button <el-button
text text
type="primary" type="primary"
size="small" size="small"
@click="table_show(scope.row, scope.$index)" @click="table_show(scope.row, scope.$index)"
v-if="scope.row.can_handle && scope.row.event_.handle_user == null"
>处理</el-button >处理</el-button
> >
<!-- <el-button text type="warning" size="small" @click="table_edit(scope.row, scope.$index)">编辑</el-button> --> <!-- <el-button text type="warning" size="small" @click="table_edit(scope.row, scope.$index)">编辑</el-button> -->
@ -83,7 +85,6 @@
<el-button text type="danger" size="small">删除</el-button> <el-button text type="danger" size="small">删除</el-button>
</template> </template>
</el-popconfirm> --> </el-popconfirm> -->
</el-button-group>
</template> </template>
</el-table-column> </el-table-column>
</scTable> </scTable>
@ -124,6 +125,16 @@ export default {
}, },
}); });
}, },
table_handle(row) {
this.$router.push({
name: "eventhandlefrom",
query: {
id: row.event_.id,
},
});
},
// //
upsearch() {}, upsearch() {},
// //

View File

@ -174,8 +174,8 @@ export default {
id: null, id: null,
obj_cate: null, obj_cate: null,
can_handle: true, can_handle: true,
wechat_enable: true, wechat_enable: false,
sms_enable: false, sms_enable: true,
filter_recipient: null, filter_recipient: null,
filter_area_level: null, filter_area_level: null,
}, },

View File

@ -1,119 +1,123 @@
<template> <template>
<el-container class="page-user"> <el-container class="page-user">
<el-aside style="width: 240px;"> <el-aside style="width: 240px">
<el-container> <el-container>
<el-header style="height: auto;display: block;"> <el-header style="height: auto; display: block">
<div class="user-info-top"> <div class="user-info-top">
<el-avatar :size="100" :src="userData.avatar" class="el-avatar--circle"></el-avatar> <el-avatar
:size="100"
<h2>{{ userData.username }}</h2> :src="userData.avatar"
shape="square"
</div> ></el-avatar>
</el-header>
<el-main class="nopadding"> <h2>{{ userData.name }}</h2>
<el-menu class="menu" :default-active="page"> </div>
<el-menu-item-group v-for="group in menu" :key="group.groupName" :title="group.groupName"> </el-header>
<el-menu-item v-for="item in group.list" :key="item.component" :index="item.component" @click="openPage"> <el-main class="nopadding">
<el-icon v-if="item.icon"><component :is="item.icon"/></el-icon> <el-menu class="menu" :default-active="page">
<template #title> <el-menu-item-group
<span>{{item.title}}</span> v-for="group in menu"
:key="group.groupName"
</template> :title="group.groupName"
</el-menu-item> >
</el-menu-item-group> <el-menu-item
</el-menu> v-for="item in group.list"
</el-main> :key="item.component"
</el-container> :index="item.component"
</el-aside> @click="openPage"
<el-main> >
<Suspense> <el-icon v-if="item.icon"
<template #default> ><component :is="item.icon"
<component :is="page"/> /></el-icon>
</template> <template #title>
<template #fallback> <span>{{ item.title }}</span>
<el-skeleton :rows="3" /> </template>
</template> </el-menu-item>
</Suspense> </el-menu-item-group>
</el-main> </el-menu>
</el-container> </el-main>
</el-container>
</el-aside>
<el-main>
<Suspense>
<template #default>
<component :is="page" />
</template>
<template #fallback>
<el-skeleton :rows="3" />
</template>
</Suspense>
</el-main>
</el-container>
</template> </template>
<script> <script>
import { defineAsyncComponent } from 'vue' import { defineAsyncComponent } from "vue";
export default { export default {
name: 'userCenter', name: "userCenter",
components: { components: {
account: defineAsyncComponent(() => import('./user/account')), account: defineAsyncComponent(() => import("./user/account")),
seting: defineAsyncComponent(() => import('./user/seting')), seting: defineAsyncComponent(() => import("./user/seting")),
pushSettings: defineAsyncComponent(() => import('./user/pushSettings')) pushSettings: defineAsyncComponent(() => import("./user/pushSettings")),
}, },
data() { data() {
return { return {
menu: [ menu: [
{ {
groupName: "基本设置", groupName: "基本设置",
list: [ list: [
{ {
icon: "el-icon-postcard", icon: "el-icon-postcard",
title: "账号信息", title: "账号信息",
component: "account" component: "account",
}, },
{ {
icon: "el-icon-operation", icon: "el-icon-operation",
title: "个人设置", title: "个人设置",
component: "seting", component: "seting",
},
}, {
{ icon: "el-icon-lock",
icon: "el-icon-bell", title: "修改密码",
title: "修改密码", component: "pushSettings",
component: "pushSettings" },
} ],
] },
} ],
], userData: {},
userData:{}, page: "account",
page: "account" };
} },
}, // from
// from beforeRouteEnter(to, from, next) {
beforeRouteEnter (to, from, next){ next((vm) => {
next((vm)=>{ if (from.is) {
if(from.is){ //
// delete from.is;
delete from.is //
// vm.$alert("路由跳转过来后含有特殊标识,做特殊处理", "提示", {
vm.$alert('路由跳转过来后含有特殊标识,做特殊处理', '提示', { type: "success",
type: 'success', center: true,
center: true })
}).then(() => {}).catch(() => {}) .then(() => {})
} .catch(() => {});
}) }
}, });
mounted() { },
this.getUserlogin(); mounted() {
}, this.getUserlogin();
methods: { },
openPage(item){ methods: {
this.page = item.index openPage(item) {
}, this.page = item.index;
},
getUserlogin(){ getUserlogin() {
this.userData = this.$TOOL.data.get("USER_INFO");
this.$API.system.user.read.req({page:0}).then(res=>{ },
this.userData = res; },
}); };
}
}
}
</script> </script>
<style scoped> <style scoped>
.el-avatar--circle{
border-radius: 1% !important;
}
</style> </style>

View File

@ -6,24 +6,27 @@
label-width="120px" label-width="120px"
style="margin-top: 20px" style="margin-top: 20px"
> >
<el-row> <!-- <el-row>
<el-col :md="6" :sm="24"> <el-col :md="6" :sm="24" style="text-align:center">
<el-avatar :size="100" :src="form.avatar" class="el-avatar--circle"></el-avatar> <el-avatar :size="100" :src="form.avatar" shape="square"></el-avatar>
</el-col> </el-col>
<el-col :md="18" :sm="24"> <el-col :md="18" :sm="24"> -->
<el-form-item label="账号"> <el-form-item label="账号">
<el-input v-model="form.username" disabled></el-input> <el-input v-model="form.username" readonly></el-input>
<div class="el-form-item-msg">账号信息用于登录系统不允许修改</div> <div class="el-form-item-msg">账号信息用于登录系统不允许修改</div>
</el-form-item> </el-form-item>
<el-form-item label="姓名"> <el-form-item label="姓名">
<el-input v-model="form.name" disabled></el-input> <el-input v-model="form.name" readonly></el-input>
</el-form-item> </el-form-item>
<el-form-item label="岗位"> <el-form-item label="主岗">
<el-input v-model="form.posts" disabled></el-input> <el-tag v-if="form.belong_dept_name">{{form.belong_dept_name}}</el-tag>
</el-form-item></el-col> <el-tag v-if="form.post_name" type="success">{{form.post_name}}</el-tag>
<el-tag v-if="form.is_superuser">超级管理员</el-tag>
</el-form-item>
<!-- </el-col>
</el-row> </el-row> -->
</el-form> </el-form>
</el-card> </el-card>
</template> </template>
@ -44,17 +47,8 @@ export default {
}, },
getUserlogin() { getUserlogin() {
this.$API.system.user.read.req({ page: 0 }).then((res) => { this.form = this.$TOOL.data.get("USER_INFO");
this.form = res;
});
}, },
}, },
}; };
</script> </script>
<style scoped>
.el-avatar--circle{
border-radius: 1% !important;
margin-left:50%;
}
</style>

View File

@ -19,7 +19,7 @@
<el-input v-model="formData.new_password2" placeholder="请再次输入新密码" clearable show-password <el-input v-model="formData.new_password2" placeholder="请再次输入新密码" clearable show-password
:style="{width: '100%'}"></el-input> :style="{width: '100%'}"></el-input>
</el-form-item> </el-form-item>
<el-form-item size="large"> <el-form-item>
<el-button type="primary" @click="submitForm">提交</el-button> <el-button type="primary" @click="submitForm">提交</el-button>
<el-button @click="resetForm">重置</el-button> <el-button @click="resetForm">重置</el-button>
</el-form-item> </el-form-item>

View File

@ -9,28 +9,28 @@
<el-row> <el-row>
<el-col :md="12" :sm="24"> <el-col :md="12" :sm="24">
<el-form-item label="姓名"> <el-form-item label="姓名">
<el-input v-model="form.name"></el-input> <el-input v-model="form.name" disabled></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="12" :sm="24"> <el-col :md="12" :sm="24">
<el-form-item label="编号"> <el-form-item label="编号">
<el-input v-model="form.number"></el-input> <el-input v-model="form.number" disabled></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="12" :sm="24"> <el-col :md="12" :sm="24">
<el-form-item label="学历"> <el-form-item label="学历">
<el-input v-model="form.qualification"></el-input> <el-input v-model="form.qualification" disabled></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="12" :sm="24"> <el-col :md="12" :sm="24">
<el-form-item label="性别"> <el-form-item label="性别">
<el-input v-model="form.gender"></el-input> <el-input v-model="form.gender" disabled></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="12" :sm="24"> <el-col :md="12" :sm="24">
<el-form-item label="生日"> <el-form-item label="生日">
<el-input v-model="form.birthday"></el-input> <el-input v-model="form.birthday" disabled></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="12" :sm="24"> <el-col :md="12" :sm="24">
@ -42,60 +42,36 @@
<el-form-item label="邮箱"> <el-form-item label="邮箱">
<el-input v-model="form.birthday"></el-input> <el-input v-model="form.birthday"></el-input>
</el-form-item> </el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="身份证号">
<el-input v-model="form.id_number" disabled></el-input>
</el-form-item>
</el-col> </el-col>
<el-col :md="12" :sm="24"> <el-col :md="12" :sm="24">
<el-form-item label="部门"> <el-form-item label="部门">
<el-input v-model="form.belong_dept_name"></el-input> <el-input v-model="form.belong_dept_name" disabled></el-input>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="身份证号">
<el-input v-model="form.id_number" ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="12" :sm="24"> <el-col :md="12" :sm="24">
<el-form-item label="岗位名称"> <el-form-item label="岗位">
<el-input v-model="form.post_name"></el-input> <el-input v-model="form.post_name" disabled></el-input>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="是否在岗">
<el-switch v-model="form.is_atwork"></el-switch>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="是否在职">
<el-switch v-model="form.job_state"></el-switch>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="最后打卡时间">
<el-input v-model="form.last_check_time"></el-input>
</el-form-item>
</el-col>
<el-col :md="12" :sm="24">
<el-form-item label="当前未打卡说明">
<el-input v-model="form.not_work_remark"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="12" :sm="24"> <el-col :md="12" :sm="24">
<el-form-item label="证件照"> <el-form-item label="证件照">
<sc-upload <sc-upload v-model="form.photo" title="证件照" :disabled="true"></sc-upload>
v-model="form.photo"
:modelValue="form.photo"
title="证件照"
></sc-upload>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="12" :sm="24"> <el-col :md="12" :sm="24">
<el-form-item label="签名照"> <el-form-item label="签名">
<sc-upload v-model="form.signature" title="签名照"></sc-upload> <el-image :src="form.signature" style="width: 148px; height: 80px"></el-image>
</el-form-item>
</el-col>
<el-col>
<el-form-item>
<el-button type="primary" @click="submitForm" :loading="saveLoading">保存</el-button>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -108,6 +84,7 @@ export default {
data() { data() {
return { return {
form: {}, form: {},
saveLoading: false
}; };
}, },
mounted() { mounted() {
@ -119,10 +96,23 @@ export default {
}, },
getemployee() { getemployee() {
this.$API.hrm.employee.read.req({ page: 0 }).then((res) => { this.$API.hrm.employee.read.req().then((res) => {
this.form = res; this.form = res;
}); });
}, },
submitForm() {
let sform = {
"phone": this.form.phone,
"email": this.form.email
}
this.saveLoading = true
this.$API.hrm.employee.improve_info.req(sform).then(res=>{
this.saveLoading = false
this.$message.success('保存成功')
}).catch(e=>{
this.saveLoading = false
})
}
}, },
}; };
</script> </script>