<template>
|
<div>
|
<el-row>
|
<el-col :span="24">
|
<third-register></third-register>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="24">
|
<basic-container title="待办事项">
|
<Statistic></Statistic>
|
</basic-container>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="16">
|
<basic-container title="待办流程任务">
|
<avue-crud ref="crud" :table-loading="loading" :data="todoData" :option="todoOption"
|
@on-load="onLoad"
|
@cell-click="cellHandle"
|
:page.sync="page">
|
<template #menu="{size,row,index}">
|
<el-button @click="gotodo(row,index)"
|
icon="el-icon-check"
|
type="text"
|
:size="size">执行</el-button>
|
</template>
|
</avue-crud>
|
</basic-container>
|
</el-col>
|
<el-col :span="8">
|
<el-row>
|
<basic-container title="消息列表">
|
<el-collapse v-model="logActiveNames" @change="handleChange">
|
<el-collapse-item title="2.8.2.RELEASE发布" name="23">
|
<div>1.[升级]SpringBoot 至 2.3.12</div>
|
<div>2.[升级]SpringBootAdmin 至 2.3.1</div>
|
<div>3.[升级]Knife4j 至 2.0.9</div>
|
<div>4.[升级]Nacos 至 2.0.2</div>
|
<div>5.[升级]Seata 至 1.4.2</div>
|
<div>6.[回滚]MybatisPlus 至 3.4.2</div>
|
<div>7.[升级]DynamicDatasource 至 3.3.6</div>
|
<div>8.[升级]Druid 至 1.2.6</div>
|
<div>9.[升级]Avue 至 2.8.18</div>
|
<div>10.[新增]用户登录错误次数锁定功能</div>
|
<div>11.[新增]多部门多角色用户在登录时增加下拉选项</div>
|
<div>12.[新增]新增用户多条件查询接口</div>
|
<div>13.[新增]Ribbon组件权重读取逻辑</div>
|
<div>14.[新增]ExcelUtil新增WriteHandler参数</div>
|
<div>15.[新增]CacheUtil增加指定tenantId清空方法</div>
|
<div>16.[优化]手机短信校验逻辑,增加手机号强制判断</div>
|
<div>17.[优化]短信调试功能增加资源编号读取</div>
|
<div>18.[优化]多租户切面逻辑</div>
|
<div>19.[优化]多租户缓存清空逻辑</div>
|
<div>20.[优化]ISqlInjector支持自定义覆盖</div>
|
<div>21.[优化]优化日志对于租户id的判断</div>
|
<div>22.[优化]Menu类重写hashCode方法</div>
|
<div>23.[优化]MySql脚本将long类型字段改为bigint(20)</div>
|
<div>24.[修复]用户中心字段绑定相反的问题</div>
|
<div>25.[修复]关闭验证码模式后首页仍调用验证码接口的问题</div>
|
</el-collapse-item>
|
<el-collapse-item title="2.8.2.RELEASE发布,增强用户登录方案" name="24">
|
<div>1.[升级]SpringBoot 至 2.3.12</div>
|
<div>2.[升级]SpringBootAdmin 至 2.3.1</div>
|
<div>3.[升级]Knife4j 至 2.0.9</div>
|
<div>4.[升级]Nacos 至 2.0.2</div>
|
<div>5.[升级]Seata 至 1.4.2</div>
|
<div>6.[回滚]MybatisPlus 至 3.4.2</div>
|
<div>7.[升级]DynamicDatasource 至 3.3.6</div>
|
<div>8.[升级]Druid 至 1.2.6</div>
|
<div>9.[升级]Avue 至 2.8.18</div>
|
<div>10.[新增]用户登录错误次数锁定功能</div>
|
<div>11.[新增]多部门多角色用户在登录时增加下拉选项</div>
|
<div>12.[新增]新增用户多条件查询接口</div>
|
<div>13.[新增]Ribbon组件权重读取逻辑</div>
|
<div>14.[新增]ExcelUtil新增WriteHandler参数</div>
|
<div>15.[新增]CacheUtil增加指定tenantId清空方法</div>
|
<div>16.[优化]手机短信校验逻辑,增加手机号强制判断</div>
|
<div>17.[优化]短信调试功能增加资源编号读取</div>
|
<div>18.[优化]多租户切面逻辑</div>
|
<div>19.[优化]多租户缓存清空逻辑</div>
|
<div>20.[优化]ISqlInjector支持自定义覆盖</div>
|
<div>21.[优化]优化日志对于租户id的判断</div>
|
<div>22.[优化]Menu类重写hashCode方法</div>
|
<div>23.[优化]MySql脚本将long类型字段改为bigint(20)</div>
|
<div>24.[修复]用户中心字段绑定相反的问题</div>
|
<div>25.[修复]关闭验证码模式后首页仍调用验证码接口的问题</div>
|
</el-collapse-item>
|
</el-collapse>
|
</basic-container>
|
</el-row>
|
|
</el-col>
|
</el-row>
|
<el-dialog title="修改密码" :visible.sync="dialogFormVisible" append-to-body :close-on-press-escape="false" :before-close="Xdelhandle">
|
<el-form :model="form" :rules="rules" ref="form">
|
<el-form-item label="原密码" :label-width="formLabelWidth" prop="oldPassword">
|
<el-input v-model="form.oldPassword" autocomplete="off"></el-input>
|
</el-form-item>
|
<el-form-item label="新密码" :label-width="formLabelWidth" prop="newPassword">
|
<el-input v-model="form.newPassword" autocomplete="off"></el-input>
|
</el-form-item>
|
<el-form-item label="确认密码" :label-width="formLabelWidth" prop="newPassword1">
|
<el-input v-model="form.newPassword1" autocomplete="off"></el-input>
|
</el-form-item>
|
</el-form>
|
<div slot="footer" class="dialog-footer">
|
<el-button @click="delhandle">取 消</el-button>
|
<el-button type="primary" @click="addok">确 定</el-button>
|
</div>
|
</el-dialog>
|
</div>
|
</template>
|
|
<script>
|
import {mapGetters} from "vuex";
|
import {check,updatePassword} from "@/api/system/user"
|
import md5 from "js-md5";
|
import {removeToken} from "@/util/auth";
|
import Statistic from './Statistic.vue';
|
import {validatenull} from "@/util/validate";
|
import {flowCategory,flowRoute} from "@/util/flow";
|
import {todoList} from "@/api/work/work";
|
|
export default {
|
name: "wel",
|
components: {Statistic},
|
data() {
|
return {
|
loading: false,
|
page: {
|
pageSize: 10,
|
currentPage: 1,
|
total: 0
|
},
|
// 代办流程任务data
|
todoData: [],
|
// 代办流程任务option
|
todoOption: {
|
addBtn: false,
|
header: false,
|
align: 'center',
|
index: true,
|
menuWidth: 100,
|
editBtn: false,
|
delBtn: false,
|
column: [{
|
label: '任务名称',
|
prop: 'name',
|
html: true,
|
formatter: (val) => {
|
return '<a name="processname" href="javascript:;" style="color: #66b1ff;">' + val.taskName + '</a>'
|
}
|
},
|
{
|
label: '上一步处理时间',
|
prop: 'createTime'
|
},
|
{
|
label: '描述',
|
prop: 'description'
|
},
|
{
|
label: '上一步操作人',
|
prop: 'creator_name'
|
},
|
{
|
label: '所属流程模板',
|
prop: 'categoryName'
|
}
|
]
|
},
|
logActiveNames: ['28'],
|
userarr: [],
|
userid: '',
|
updataArr: [],
|
dialogFormVisible: false,
|
form: {
|
oldPassword: '',
|
newPassword: '',
|
newPassword1: '',
|
},
|
rules: {
|
oldPassword: [
|
{required: true, message: '请输入原密码', trigger: 'blur'}
|
],
|
newPassword: [
|
{required: true, message: '请输入新密码', trigger: 'blur'}
|
],
|
newPassword1: [
|
{required: true, message: '请输确认密码', trigger: 'blur'}
|
]
|
},
|
};
|
},
|
// 拿到userid请求接口
|
created() {
|
this.updataArr = JSON.parse(localStorage.getItem("updataid"))
|
this.userid = this.$store.state.user.upadatastatus.user_id
|
this.checkhandle()
|
},
|
computed: {
|
...mapGetters(["userInfo", "flowRoutes"]),
|
},
|
methods: {
|
handleChange(val) {
|
window.console.log(val);
|
},
|
//element组件关闭弹窗的延迟回调,这里没有用关闭弹窗的方法,因为当用户点击确认也是关闭弹窗,如果登录成功弹窗关闭后也是会清除token回到登录页
|
//Xdelhandle是点击X号关闭弹唱,delhandle是点击取消关闭弹窗,在这分了两个事件
|
Xdelhandle() {
|
removeToken()
|
this.dialogFormVisible = false
|
},
|
// 关闭弹窗后清除token返回到登录页面
|
delhandle() {
|
removeToken()
|
this.dialogFormVisible = false
|
},
|
// 修改密码方法
|
addok() {
|
this.dialogFormVisible = false
|
updatePassword(md5(this.form.oldPassword), this.form.newPassword, this.form.newPassword1).then(res => {
|
if (res.data.code == 200) {
|
this.$message({
|
type: "success",
|
message: "修改成功!"
|
})
|
}
|
}).catch(res => {
|
console.log(res)
|
this.checkhandle()
|
})
|
},
|
// 提醒时间请求,也需要判断是否为超管身份,超管身份不判断
|
checkhandle() {
|
if (this.updataArr.user_id != '0' && this.updataArr.tenant_id !== '000000') {
|
check(this.userid).then(res => {
|
if (res.data.data > 0) {
|
this.$message({
|
type: 'warning',
|
message: `你还有${res.data.data}天就要修改密码了`
|
})
|
} else if (res.data.data == -1) {
|
this.$message({
|
type: "warning",
|
message: "密码策略已被修改,请重新修改密码!"
|
})
|
setTimeout(() => {
|
this.dialogFormVisible = true
|
}, 1500)
|
} else if (res.data.data == 0) {
|
this.$message({
|
type: 'success',
|
message: "操作成功"
|
})
|
}
|
}).catch(res => {
|
console.log(res)
|
})
|
}
|
},
|
onLoad(page, params = {}) {
|
this.loading = true;
|
const query = {
|
...this.query,
|
category: (params.category) ? flowCategory(params.category) : null
|
};
|
todoList(page.currentPage, page.pageSize, Object.assign(params, query)).then(res => {
|
const data = res.data.data;
|
this.page.total = data.total;
|
this.todoData = data.records;
|
this.loading = false;
|
}).catch(error => {
|
this.$message.error(error);
|
this.loading = false;
|
})
|
},
|
cellHandle(row, column, cell, event) {
|
if (column.property == 'name') {
|
this.gotodo(row)
|
}
|
},
|
gotodo(row, index) {
|
this.$router.push({ path: `/work/process/${flowRoute(this.flowRoutes, row.category)}/handle/${row.taskId}/${row.processInstanceId}/${row.businessId}` });
|
}
|
}
|
};
|
</script>
|
|
<style>
|
.el-font-size {
|
font-size: 14px;
|
}
|
|
</style>
|