06222
This commit is contained in:
parent
a0c61a83da
commit
1ac0d23016
|
|
@ -5,7 +5,7 @@ NODE_ENV = development
|
||||||
VUE_APP_TITLE = '曲阳金隅安全智能管控平台'
|
VUE_APP_TITLE = '曲阳金隅安全智能管控平台'
|
||||||
|
|
||||||
# 接口地址
|
# 接口地址
|
||||||
VUE_APP_API_BASEURL = http://49.232.14.174:2226/api
|
VUE_APP_API_BASEURL = http://1.203.161.103:2800/api
|
||||||
#VUE_APP_API_BASEURL = http://127.0.0.1:8000/api
|
#VUE_APP_API_BASEURL = http://127.0.0.1:8000/api
|
||||||
|
|
||||||
# 本地端口
|
# 本地端口
|
||||||
|
|
|
||||||
|
|
@ -173,12 +173,13 @@ export default {
|
||||||
},
|
},
|
||||||
user: {
|
user: {
|
||||||
list: {
|
list: {
|
||||||
url: `${config.API_URL}/system/user`,
|
url: `${config.API_URL}/system/user/`,
|
||||||
name: "获取用户列表",
|
name: "获取用户列表",
|
||||||
req: async function(params){
|
req: async function(params){
|
||||||
return await http.get(this.url, params);
|
return await http.get(this.url, params);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
create: {
|
create: {
|
||||||
url: `${config.API_URL}/system/user/`,
|
url: `${config.API_URL}/system/user/`,
|
||||||
name: "新增用户",
|
name: "新增用户",
|
||||||
|
|
@ -200,7 +201,7 @@ export default {
|
||||||
req: async function(id){
|
req: async function(id){
|
||||||
return await http.delete(`${config.API_URL}/system/user/${id}/`);
|
return await http.delete(`${config.API_URL}/system/user/${id}/`);
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
},
|
},
|
||||||
post: {
|
post: {
|
||||||
list: {
|
list: {
|
||||||
|
|
@ -264,5 +265,98 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
task: {
|
||||||
|
list: {
|
||||||
|
url: `${config.API_URL}/system/ptask/`,
|
||||||
|
name: "定时任务列表",
|
||||||
|
req: async function(data){
|
||||||
|
return await http.get(this.url, data);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
item: {
|
||||||
|
name: "定时任务详情",
|
||||||
|
req: async function(id){
|
||||||
|
return await http.get( `${config.API_URL}/system/ptask/${id}/`);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
create: {
|
||||||
|
url: `${config.API_URL}/system/ptask/`,
|
||||||
|
name: "创建定时任务",
|
||||||
|
req: async function(data){
|
||||||
|
return await http.post(this.url,data);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
update: {
|
||||||
|
name: "更新定时任务",
|
||||||
|
req: async function(id, data){
|
||||||
|
return await http.put(
|
||||||
|
`${config.API_URL}/system/ptask/${id}/`,
|
||||||
|
data
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
updateToggle: {
|
||||||
|
name: "修改启用禁用状态",
|
||||||
|
req: async function(id, data){
|
||||||
|
return await http.put(
|
||||||
|
`${config.API_URL}/system/ptask/${id}/toggle/`,
|
||||||
|
data
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
delete: {
|
||||||
|
name: "删除定时任务",
|
||||||
|
req: async function(id){
|
||||||
|
return await http.delete(`${config.API_URL}/system/ptask/${id}/`);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
deletes: {
|
||||||
|
url: `${config.API_URL}/system/ptask/deletes/`,
|
||||||
|
name: "批量删除定时任务",
|
||||||
|
req: async function(data){
|
||||||
|
return await http.post(this.url,data);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
runOnce: {
|
||||||
|
name: "执行一次",
|
||||||
|
req: async function(data){
|
||||||
|
return await http.post(`${config.API_URL}/system/ptask/${id}/run_once/`,data);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
result: {
|
||||||
|
url: `${config.API_URL}/system/ptask_result/`,
|
||||||
|
name: "任务执行结果列表",
|
||||||
|
req: async function(data){
|
||||||
|
return await http.get(this.url, data);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
resultItem: {
|
||||||
|
name: "任务执行结果详情",
|
||||||
|
req: async function(id){
|
||||||
|
return await http.get( `${config.API_URL}/system/ptask_result/${id}/`);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
userPost:{
|
||||||
|
list: {
|
||||||
|
url: `${config.API_URL}/system/user_post/`,
|
||||||
|
name: "用户/岗位关系",
|
||||||
|
req: async function(params){
|
||||||
|
return await http.get(this.url, params);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
create: {
|
||||||
|
url: `${config.API_URL}/system/user_post/`,
|
||||||
|
name: "新增用户/岗位关系",
|
||||||
|
req: async function(data){
|
||||||
|
return await http.post(this.url,data);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
delete: {
|
||||||
|
name: "删除用户/岗位关系",
|
||||||
|
req: async function(id){
|
||||||
|
return await http.delete(`${config.API_URL}/system/user_post/${id}/`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -172,7 +172,7 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
customfield:{
|
field:{
|
||||||
list: {
|
list: {
|
||||||
url: `${config.API_URL}/wf/customfield/`,
|
url: `${config.API_URL}/wf/customfield/`,
|
||||||
name: "字段列表",
|
name: "字段列表",
|
||||||
|
|
|
||||||
|
|
@ -122,6 +122,16 @@ const routes = [
|
||||||
"icon": "el-icon-menu",
|
"icon": "el-icon-menu",
|
||||||
},
|
},
|
||||||
"component": "wf/ticket"
|
"component": "wf/ticket"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "configuration",
|
||||||
|
"path": "/wf/configuration",
|
||||||
|
"meta": {
|
||||||
|
"title": "工单",
|
||||||
|
"icon": "el-icon-menu",
|
||||||
|
"hidden":true
|
||||||
|
},
|
||||||
|
"component": "wf/configuration"
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
@ -359,7 +369,7 @@ const routes = [
|
||||||
},
|
},
|
||||||
"component": "ops/log_request"
|
"component": "ops/log_request"
|
||||||
},
|
},
|
||||||
{
|
/*{
|
||||||
"name": "monitor",
|
"name": "monitor",
|
||||||
"path": "/ops/monitor",
|
"path": "/ops/monitor",
|
||||||
"meta": {
|
"meta": {
|
||||||
|
|
@ -367,7 +377,7 @@ const routes = [
|
||||||
"icon": "el-icon-fold",
|
"icon": "el-icon-fold",
|
||||||
},
|
},
|
||||||
"component": "ops/monitor"
|
"component": "ops/monitor"
|
||||||
},
|
},*/
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -110,6 +110,50 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
<!--drag-sort -->
|
||||||
|
<sc-form-table v-model="userPostForm.list" :addTemplate="addTemplate" placeholder="暂无数据">
|
||||||
|
<el-table-column prop="val" label="名称" min-width="150">
|
||||||
|
<template #default="scope">
|
||||||
|
<span v-if="scope.row.id">{{scope.row.name}}</span>
|
||||||
|
<el-input v-else v-model="scope.row.name" placeholder="名称"></el-input>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="time" label="部门" min-width="150">
|
||||||
|
<template #default="scope">
|
||||||
|
<span v-if="scope.row.id">{{scope.row.dept}}</span>
|
||||||
|
<el-cascader
|
||||||
|
v-else
|
||||||
|
v-model="scope.row.dept"
|
||||||
|
:options="group"
|
||||||
|
:props="groupsProps"
|
||||||
|
:show-all-levels="false"
|
||||||
|
clearable
|
||||||
|
style="width: 100%"
|
||||||
|
@change="handleChange"
|
||||||
|
></el-cascader>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="type" label="岗位" min-width="150">
|
||||||
|
<template #default="scope">
|
||||||
|
<span v-if="scope.row.id">{{scope.row.post}}</span>
|
||||||
|
<el-select v-else v-model="scope.row.post" placeholder="请选择所在岗位">
|
||||||
|
<el-option v-for="item in postOptions" :key="item.id" :label="item.name" :value="item.id"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="val" label="排序" min-width="80">
|
||||||
|
<template #default="scope">
|
||||||
|
<span v-if="scope.row.id">{{scope.row.sort}}</span>
|
||||||
|
<el-input v-else v-model="scope.row.sort" placeholder="请输入内容"></el-input>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="open" label="操作" width="80" align="center">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-button v-if="scope.row.id" text type="danger" size="small" @click="userPostDel(scope.row.id)">删除</el-button>
|
||||||
|
<el-button v-else text type="primary" size="small" @click="createUserPost(scope.row)">添加</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</sc-form-table>
|
||||||
</el-main>
|
</el-main>
|
||||||
<el-footer v-if="mode!=='show'">
|
<el-footer v-if="mode!=='show'">
|
||||||
<el-button
|
<el-button
|
||||||
|
|
@ -147,6 +191,45 @@
|
||||||
emits: ["success", "closed"],
|
emits: ["success", "closed"],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
addTemplate: {
|
||||||
|
name: '',
|
||||||
|
sort: '',
|
||||||
|
user: '',
|
||||||
|
post: "",
|
||||||
|
dept: "",
|
||||||
|
},
|
||||||
|
userPostForm: {
|
||||||
|
title: "用户/岗位关系",
|
||||||
|
list: [
|
||||||
|
{
|
||||||
|
id:'1001',
|
||||||
|
name: "关系1",
|
||||||
|
sort: "1",
|
||||||
|
user: "石静",
|
||||||
|
post: "岗位",
|
||||||
|
dept: "部门",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '',
|
||||||
|
sort: '',
|
||||||
|
user: '',
|
||||||
|
post: "",
|
||||||
|
dept: "",
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
typeDic: [
|
||||||
|
{
|
||||||
|
label: "全局",
|
||||||
|
value: "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "局部",
|
||||||
|
value: "1"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
|
||||||
loading: false,
|
loading: false,
|
||||||
mode: "add",
|
mode: "add",
|
||||||
titleMap: {
|
titleMap: {
|
||||||
|
|
@ -189,20 +272,20 @@
|
||||||
}*/
|
}*/
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
addTemplate: {
|
addForm: {
|
||||||
label: "",
|
name: "",
|
||||||
prop: "",
|
sort: "",
|
||||||
width: "100",
|
user: "",
|
||||||
hide: false,
|
post: "",
|
||||||
sortable: false,
|
dept: [],
|
||||||
fixed: false,
|
|
||||||
filters: [],
|
|
||||||
},
|
},
|
||||||
depts: [],
|
groupsProps: {
|
||||||
deptsProps: {
|
|
||||||
value: "id",
|
value: "id",
|
||||||
checkStrictly: true
|
multiple: false,
|
||||||
|
checkStrictly: true,
|
||||||
},
|
},
|
||||||
|
group: [],
|
||||||
|
postOptions: [],
|
||||||
selectionFilters: [],
|
selectionFilters: [],
|
||||||
filtersAddTemplate: {
|
filtersAddTemplate: {
|
||||||
text: "",
|
text: "",
|
||||||
|
|
@ -212,8 +295,50 @@
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
this.getPosts();
|
||||||
|
this.getGroup();
|
||||||
|
this.getUserPostList();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
getPosts(){
|
||||||
|
this.$API.system.post.list.req({page:0}).then(res=>{
|
||||||
|
if(res.err_msg){
|
||||||
|
this.$message.error(res.err_msg)
|
||||||
|
}else{
|
||||||
|
this.postOptions = res;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
//加载树数据
|
||||||
|
async getGroup() {
|
||||||
|
let res = await this.$API.system.dept.list.req({page: 0});
|
||||||
|
let postList = res;
|
||||||
|
this.group = res;
|
||||||
|
let posts = [];
|
||||||
|
postList.forEach(item => {
|
||||||
|
let obj = new Object();
|
||||||
|
obj.id = item.id;
|
||||||
|
obj.sort = item.sort;
|
||||||
|
obj.label = item.name;
|
||||||
|
obj.type = item.type;
|
||||||
|
obj.parent = item.parent;
|
||||||
|
obj.create_time = item.create_time;
|
||||||
|
posts.push(obj)
|
||||||
|
});
|
||||||
|
let obj = posts.reduce((res, v) => (res[v.id] = v , res), {});//Object
|
||||||
|
let arr = [];
|
||||||
|
for (let item of posts) {
|
||||||
|
// debugger;
|
||||||
|
if (item.parent == null) {
|
||||||
|
arr.push(item);
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
let parent = obj[item.parent];
|
||||||
|
parent.children = parent.children ? parent.children : [];
|
||||||
|
parent.children.push(item);
|
||||||
|
}
|
||||||
|
this.group = arr;
|
||||||
|
},
|
||||||
//显示
|
//显示
|
||||||
open(mode) {
|
open(mode) {
|
||||||
this.mode = mode;
|
this.mode = mode;
|
||||||
|
|
@ -224,6 +349,11 @@
|
||||||
this.visible = false;
|
this.visible = false;
|
||||||
this.$emit('closed');
|
this.$emit('closed');
|
||||||
},
|
},
|
||||||
|
handleChange(value) {
|
||||||
|
debugger;
|
||||||
|
console.log(value);
|
||||||
|
console.log(this.addForm.parent);
|
||||||
|
},
|
||||||
//表单提交方法
|
//表单提交方法
|
||||||
submit() {
|
submit() {
|
||||||
debugger;
|
debugger;
|
||||||
|
|
@ -232,6 +362,7 @@
|
||||||
if (valid) {
|
if (valid) {
|
||||||
debugger;
|
debugger;
|
||||||
this.isSaveing = true;
|
this.isSaveing = true;
|
||||||
|
this.addForm.dept = this.addForm.dept[1];
|
||||||
if (this.mode === 'add') {
|
if (this.mode === 'add') {
|
||||||
debugger;
|
debugger;
|
||||||
this.$API.hrm.employee.create.req(this.form)
|
this.$API.hrm.employee.create.req(this.form)
|
||||||
|
|
@ -257,6 +388,17 @@
|
||||||
this.isSaveing = false;
|
this.isSaveing = false;
|
||||||
return err
|
return err
|
||||||
})
|
})
|
||||||
|
this.$API.hrm.employee.update.req(this.form.id, this.form)
|
||||||
|
.then(res => {
|
||||||
|
this.isSaveing = false;
|
||||||
|
this.visible = false;
|
||||||
|
this.$emit("success", this.form, this.mode);
|
||||||
|
this.$message.success("操作成功");
|
||||||
|
return res
|
||||||
|
}).catch(err => {
|
||||||
|
this.isSaveing = false;
|
||||||
|
return err
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -274,6 +416,49 @@
|
||||||
this.selectionFilters = filters;
|
this.selectionFilters = filters;
|
||||||
this.setFiltersVisible = true;
|
this.setFiltersVisible = true;
|
||||||
},
|
},
|
||||||
|
/////
|
||||||
|
//用户岗位关系列表
|
||||||
|
getUserPostList(){
|
||||||
|
this.$API.system.userPost.list.req().then(res=>{
|
||||||
|
if(res.err_msg){
|
||||||
|
this.$message.error(res.err_msg)
|
||||||
|
}else{
|
||||||
|
this.userPostForm.list=res.results;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
//新增用户岗位关系
|
||||||
|
createUserPost(row){
|
||||||
|
debugger;
|
||||||
|
console.log(row);
|
||||||
|
this.isSaveing = true;
|
||||||
|
row.dept = row.dept.slice(-1)[0];
|
||||||
|
row.user = this.form.id;
|
||||||
|
this.$API.system.userPost.create.req(row).then(res=>{
|
||||||
|
if(res.err_msg){
|
||||||
|
this.$message.error(res.err_msg)
|
||||||
|
}else{
|
||||||
|
this.userPostForm.list=res.results;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
//用户岗位关系删除
|
||||||
|
userPostDel(id){
|
||||||
|
this.$confirm(`确定删除该岗位关系吗?`, '提示', {
|
||||||
|
type: 'warning',
|
||||||
|
confirmButtonText: '删除',
|
||||||
|
confirmButtonClass: 'el-button--danger'
|
||||||
|
}).then(() => {
|
||||||
|
this.$API.system.userPost.delete.req(id).then(res=>{
|
||||||
|
if(res.err_msg){
|
||||||
|
this.$message.error(res.err_msg)
|
||||||
|
}else{
|
||||||
|
this.$message.success("操作成功");
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -27,13 +27,14 @@
|
||||||
<el-table-column label="排序" prop="sort" min-width="200"></el-table-column>
|
<el-table-column label="排序" prop="sort" min-width="200"></el-table-column>
|
||||||
<el-table-column label="操作" fixed="right" align="center" width="200">
|
<el-table-column label="操作" fixed="right" align="center" width="200">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button type="text" size="small" @click="editDept(scope.row, scope.$index)">编辑</el-button>
|
<el-button text type="primary" size="small" @click="editMenu(scope.row, scope.$index)">编辑</el-button>
|
||||||
<el-divider direction="vertical"></el-divider>
|
<el-divider direction="vertical"></el-divider>
|
||||||
<el-popconfirm title="确定删除吗?" @confirm="delDept(scope.row, scope.$index)">
|
<el-button text type="danger" size="small" @click="delMenu(scope.row.id)">删除</el-button>
|
||||||
|
<!--<el-popconfirm title="确定删除吗?" @confirm="delMenu(scope.row, scope.$index)">
|
||||||
<template #reference>
|
<template #reference>
|
||||||
<el-button type="text" size="small">删除</el-button>
|
<el-button type="text" size="small">删除</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-popconfirm>
|
</el-popconfirm>-->
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</scTable>
|
</scTable>
|
||||||
|
|
@ -53,15 +54,6 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="标识">
|
<el-form-item label="标识">
|
||||||
<el-input v-model="codes" clearable style="width: 90%;"></el-input>
|
<el-input v-model="codes" clearable style="width: 90%;"></el-input>
|
||||||
<!--<el-button class="formAddButton" type="primary" icon="el-icon-plus" @click="addCodes"></el-button>
|
|
||||||
<div v-if="codesLimited" style="display: flex">
|
|
||||||
<el-input v-model="codes" clearable style="width: 50%;flex: 1"></el-input>
|
|
||||||
<div style="width: 50%;display: inline-block;position: relative;flex: 1">
|
|
||||||
<el-button class="formSaveButton" type="success" icon="el-icon-check" @click="saveCodes"></el-button>
|
|
||||||
<el-button class="formDelButton" type="danger" icon="el-icon-close" @click="delCodes"></el-button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>-->
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="父级">
|
<el-form-item label="父级">
|
||||||
<el-cascader
|
<el-cascader
|
||||||
|
|
@ -73,11 +65,9 @@
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
@change="handleChange"
|
@change="handleChange"
|
||||||
></el-cascader>
|
></el-cascader>
|
||||||
<!--<el-input v-model="addForm.parent" clearable></el-input>-->
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="排序">
|
<el-form-item label="排序">
|
||||||
<el-input-number v-model="addForm.sort" controls-position="right" :min="1"
|
<el-input-number v-model="addForm.sort" controls-position="right" :min="1" style="width: 100%;"></el-input-number>
|
||||||
style="width: 100%;"></el-input-number>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
|
|
@ -209,7 +199,7 @@
|
||||||
this.codes = ''
|
this.codes = ''
|
||||||
},
|
},
|
||||||
//编辑
|
//编辑
|
||||||
editDept(row) {
|
editMenu(row) {
|
||||||
// debugger;
|
// debugger;
|
||||||
this.type = 'edit';
|
this.type = 'edit';
|
||||||
this.addForm.id = row.id;
|
this.addForm.id = row.id;
|
||||||
|
|
@ -243,36 +233,34 @@
|
||||||
return data
|
return data
|
||||||
},
|
},
|
||||||
//删除
|
//删除
|
||||||
delDept(row) {
|
delMenu(id) {
|
||||||
var id = row.id;
|
this.$confirm(`确定删除吗?`, '提示', {
|
||||||
var res = this.$API.system.permDel.delete(id);
|
type: 'warning',
|
||||||
if (res.code == 200) {
|
confirmButtonText: '删除',
|
||||||
this.$refs.table.refresh();
|
confirmButtonClass: 'el-button--danger'
|
||||||
this.$message.success("删除成功")
|
}).then(() => {
|
||||||
|
this.$API.system.permission.delete.req(id).then(res=>{
|
||||||
|
if(res.err_msg){
|
||||||
|
this.$message.error(res.err_msg);
|
||||||
|
this.$refs.table.refresh()
|
||||||
}else{
|
}else{
|
||||||
this.$alert(res.message, "提示", {type: 'error'})
|
this.$message.success("操作成功");
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
})
|
||||||
},
|
},
|
||||||
submitHandle() {
|
submitHandle() {
|
||||||
let that = this;
|
let that = this;
|
||||||
debugger;
|
|
||||||
console.log(this.addForm.parent);
|
|
||||||
debugger;
|
|
||||||
if (this.addForm.parent !== null) {
|
if (this.addForm.parent !== null) {
|
||||||
this.addForm.parent = this.addForm.parent[this.addForm.parent.length - 1];
|
this.addForm.parent = this.addForm.parent[this.addForm.parent.length - 1];
|
||||||
} else {
|
} else {
|
||||||
this.addForm.parent = ""
|
this.addForm.parent = ""
|
||||||
}
|
}
|
||||||
debugger;
|
|
||||||
console.log(this.codes);
|
|
||||||
|
|
||||||
if(this.codes.indexOf(','>-1)){
|
if(this.codes.indexOf(','>-1)){
|
||||||
this.addForm.codes = this.codes.split(',');
|
this.addForm.codes = this.codes.split(',');
|
||||||
}else{
|
}else{
|
||||||
this.addForm.codes.push(this.codes)
|
this.addForm.codes.push(this.codes)
|
||||||
}
|
}
|
||||||
debugger;
|
|
||||||
console.log(this.addForm.codes);
|
|
||||||
this.$refs.addForm.validate((valid) => {
|
this.$refs.addForm.validate((valid) => {
|
||||||
debugger;
|
debugger;
|
||||||
if (valid) {
|
if (valid) {
|
||||||
|
|
@ -283,11 +271,15 @@
|
||||||
} else {
|
} else {
|
||||||
res = this.$API.system.permission.update.req(that.addForm.id, that.addForm);
|
res = this.$API.system.permission.update.req(that.addForm.id, that.addForm);
|
||||||
}
|
}
|
||||||
|
console.log(res);
|
||||||
|
debugger;
|
||||||
|
if(res.err_msg){
|
||||||
|
this.$message.error(res.err_msg)
|
||||||
|
}else{
|
||||||
this.isSaveing = false;
|
this.isSaveing = false;
|
||||||
this.limitedVisible = false;
|
this.limitedVisible = false;
|
||||||
this.$refs.table.refresh();
|
this.$refs.table.refresh();
|
||||||
console.log(res);
|
}
|
||||||
debugger;
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
@ -297,7 +289,8 @@
|
||||||
},
|
},
|
||||||
//搜索
|
//搜索
|
||||||
upsearch() {
|
upsearch() {
|
||||||
|
let params = {search:this.search.keyword};
|
||||||
|
this.$refs.table.queryData(params);
|
||||||
},
|
},
|
||||||
//本地更新数据
|
//本地更新数据
|
||||||
handleSaveSuccess(data, mode) {
|
handleSaveSuccess(data, mode) {
|
||||||
|
|
|
||||||
|
|
@ -138,5 +138,5 @@
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.treeMain {height:280px;overflow: auto;border: 1px solid #dcdfe6;margin-bottom: 10px;}
|
.treeMain {width: 100%;height:280px;overflow: auto;border: 1px solid #dcdfe6;margin-bottom: 10px;}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@
|
||||||
<el-divider direction="vertical"></el-divider>
|
<el-divider direction="vertical"></el-divider>
|
||||||
<el-popconfirm title="确定删除吗?" @confirm="delDept(scope.row, scope.$index)">
|
<el-popconfirm title="确定删除吗?" @confirm="delDept(scope.row, scope.$index)">
|
||||||
<template #reference>
|
<template #reference>
|
||||||
<el-button type="text" size="small">删除</el-button>
|
<el-button text type="danger" size="small">删除</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-popconfirm>
|
</el-popconfirm>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -192,20 +192,17 @@
|
||||||
},
|
},
|
||||||
//删除
|
//删除
|
||||||
delDept(row){
|
delDept(row){
|
||||||
var id = row.id;
|
let id = row.id;
|
||||||
var res = this.$API.system.dept.delete.req(id);
|
let res = this.$API.system.dept.delete.req(id);
|
||||||
if(res.code == 200){
|
if(res.err_msg){
|
||||||
|
this.$message.error(res.err_msg)
|
||||||
|
}else{
|
||||||
this.$refs.table.refresh();
|
this.$refs.table.refresh();
|
||||||
this.$message.success("删除成功")
|
this.$message.success("删除成功")
|
||||||
}else{
|
|
||||||
this.$alert(res.message, "提示", {type: 'error'})
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
submitHandle(){
|
submitHandle(){
|
||||||
let that = this;
|
let that = this;
|
||||||
debugger;
|
|
||||||
console.log(this.addForm.parent);
|
|
||||||
debugger;
|
|
||||||
this.addForm.parent = this.addForm.parent!==null?this.addForm.parent[0]?this.addForm.parent[0]:'':'';
|
this.addForm.parent = this.addForm.parent!==null?this.addForm.parent[0]?this.addForm.parent[0]:'':'';
|
||||||
this.$refs.addForm.validate( (valid) => {
|
this.$refs.addForm.validate( (valid) => {
|
||||||
debugger;
|
debugger;
|
||||||
|
|
@ -217,11 +214,15 @@
|
||||||
}else{
|
}else{
|
||||||
res = this.$API.system.dept.update.req(that.addForm.id,that.addForm);
|
res = this.$API.system.dept.update.req(that.addForm.id,that.addForm);
|
||||||
}
|
}
|
||||||
|
console.log(res);
|
||||||
|
debugger;
|
||||||
|
if(res.err_msg){
|
||||||
|
this.$message.error(res.err_msg)
|
||||||
|
}else{
|
||||||
this.isSaveing = false;
|
this.isSaveing = false;
|
||||||
this.limitedVisible = false;
|
this.limitedVisible = false;
|
||||||
this.$refs.table.refresh();
|
this.$refs.table.refresh();
|
||||||
console.log(res);
|
}
|
||||||
debugger;
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -384,11 +384,11 @@
|
||||||
async delDic(row,index){
|
async delDic(row,index){
|
||||||
var delId = row.id;
|
var delId = row.id;
|
||||||
var res = await this.$API.system.dict.delete.req(delId);
|
var res = await this.$API.system.dict.delete.req(delId);
|
||||||
if(res.code == 200){
|
if(res.err.msg){
|
||||||
|
this.$message.error(res.err.msg)
|
||||||
|
}else{
|
||||||
this.$refs.table.tableData.splice(index, 1);
|
this.$refs.table.tableData.splice(index, 1);
|
||||||
this.$message.success("删除成功")
|
this.$message.success("删除成功")
|
||||||
}else{
|
|
||||||
this.$alert(res.message, "提示", {type: 'error'})
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -39,11 +39,22 @@
|
||||||
<scTable ref="table2" :apiObj="apiObj2" row-key="id" stripe :hidePagination="true">
|
<scTable ref="table2" :apiObj="apiObj2" row-key="id" stripe :hidePagination="true">
|
||||||
<el-table-column type="selection" width="50"></el-table-column>
|
<el-table-column type="selection" width="50"></el-table-column>
|
||||||
<el-table-column label="" type="index"></el-table-column>
|
<el-table-column label="" type="index"></el-table-column>
|
||||||
<el-table-column label="权限范围" prop="filter_recipient" width="150"></el-table-column>
|
<el-table-column label="权限范围" prop="data_range" min-width="80">
|
||||||
<el-table-column label="关联岗位" prop="filter_area_level" width="150"></el-table-column>
|
<template #default="scope">{{options[scope.row.data_range]}}</template>
|
||||||
<el-table-column label="关联角色" prop="can_handle" width="80"></el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column label="关联岗位" prop="post" min-width="80">
|
||||||
|
<template #default="scope">{{scope.row.post_.name}}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="关联角色" prop="role" min-width="80">
|
||||||
|
<template #default="scope">{{scope.row.role_.name}}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="创建时间" prop="create_time" min-width="80">
|
||||||
|
<template #default="scope">{{scope.row.create_time}}</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="操作" fixed="right" align="right">
|
<el-table-column label="操作" fixed="right" align="right">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
|
<el-button type="warning" link size="small" @click="postRoleEdit(scope.row)">编辑
|
||||||
|
</el-button>
|
||||||
<el-button type="warning" link size="small" @click="postRoleDel(scope.row)">删除
|
<el-button type="warning" link size="small" @click="postRoleDel(scope.row)">删除
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -54,7 +65,7 @@
|
||||||
</el-container>
|
</el-container>
|
||||||
<save-dialog v-if="dialog.save" ref="saveDialog" @success="handleSaveSuccess"
|
<save-dialog v-if="dialog.save" ref="saveDialog" @success="handleSaveSuccess"
|
||||||
@closed="dialog.save=false"></save-dialog>
|
@closed="dialog.save=false"></save-dialog>
|
||||||
<save-role-dialog v-if="dialog.roleSave" ref="saveDialog" @success="handleSaveSuccess"
|
<save-role-dialog v-if="dialog.roleSave" ref="saveRoleDialog" @success="handleSaveRoleSuccess"
|
||||||
@closed="dialog.roleSave=false"></save-role-dialog>
|
@closed="dialog.roleSave=false"></save-role-dialog>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -77,13 +88,23 @@
|
||||||
roleSave: false,
|
roleSave: false,
|
||||||
},
|
},
|
||||||
selection: [],
|
selection: [],
|
||||||
|
postId:'',
|
||||||
|
options: {
|
||||||
|
10: "全部",
|
||||||
|
20: "自定义",
|
||||||
|
30: "同级及以下",
|
||||||
|
40: "本级及以下",
|
||||||
|
50: "本级",
|
||||||
|
60: "仅本人"
|
||||||
|
},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
rowClick(row) {
|
rowClick(row) {
|
||||||
var params = {
|
let params = {
|
||||||
event_cate: row.id
|
post: row.id
|
||||||
};
|
};
|
||||||
|
this.postId = row.id;
|
||||||
this.$refs.table2.reload(params)
|
this.$refs.table2.reload(params)
|
||||||
},
|
},
|
||||||
//窗口新增
|
//窗口新增
|
||||||
|
|
@ -118,7 +139,7 @@
|
||||||
this.$message.success("操作成功")
|
this.$message.success("操作成功")
|
||||||
|
|
||||||
},
|
},
|
||||||
//本地更新数据
|
//新增岗位后更新数据
|
||||||
handleSaveSuccess(data, mode) {
|
handleSaveSuccess(data, mode) {
|
||||||
//为了减少网络请求,直接变更表格内存数据
|
//为了减少网络请求,直接变更表格内存数据
|
||||||
if (mode == 'add') {
|
if (mode == 'add') {
|
||||||
|
|
@ -130,10 +151,20 @@
|
||||||
//当然也可以暴力的直接刷新表格
|
//当然也可以暴力的直接刷新表格
|
||||||
// this.$refs.table.refresh()
|
// this.$refs.table.refresh()
|
||||||
},
|
},
|
||||||
|
//新增岗位关系后更新数据
|
||||||
|
handleSaveRoleSuccess() {
|
||||||
|
this.$refs.table2.refresh()
|
||||||
|
},
|
||||||
addPostRole(){
|
addPostRole(){
|
||||||
this.dialog.roleSave = true;
|
this.dialog.roleSave = true;
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.$refs.saveDialog.open()
|
this.$refs.saveRoleDialog.open("add").setData({postId:this.postId})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
postRoleEdit(row){
|
||||||
|
this.dialog.roleSave = true;
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.$refs.saveRoleDialog.open("edit").setData(row)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
delPostRole(){
|
delPostRole(){
|
||||||
|
|
@ -142,15 +173,24 @@
|
||||||
closed(){
|
closed(){
|
||||||
this.dialog.save = false;
|
this.dialog.save = false;
|
||||||
this.dialog.roleSave = false;
|
this.dialog.roleSave = false;
|
||||||
|
this.postId = '';
|
||||||
|
this.$refs.table2.refresh();
|
||||||
},
|
},
|
||||||
postRoleDel(){
|
postRoleDel(row){
|
||||||
this.$confirm(`确定删除选中的岗位关系吗?如果删除项中含有子集将会被一并删除`, '提示', {
|
this.$confirm(`确定删除选中的岗位关系吗?`, '提示', {
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
|
this.$API.system.postrole.delete.req(row.id).then(res=>{
|
||||||
|
if(res.err_msg){
|
||||||
|
this.$message.error(res.err_msg)
|
||||||
|
}else{
|
||||||
const loading = this.$loading();
|
const loading = this.$loading();
|
||||||
this.$refs.table.refresh();
|
this.$refs.table2.refresh();
|
||||||
loading.close();
|
loading.close();
|
||||||
this.$message.success("操作成功")
|
this.$message.success("操作成功")
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -117,10 +117,20 @@ export default {
|
||||||
methods: {
|
methods: {
|
||||||
//显示
|
//显示
|
||||||
open(mode = "add"){
|
open(mode = "add"){
|
||||||
|
debugger;
|
||||||
this.mode = mode;
|
this.mode = mode;
|
||||||
this.visible = true;
|
this.visible = true;
|
||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
|
//表单注入数据
|
||||||
|
setData(data) {
|
||||||
|
debugger;
|
||||||
|
if(data.postId){
|
||||||
|
this.form.post=data.postId;
|
||||||
|
}else{
|
||||||
|
Object.assign(this.form, data);
|
||||||
|
}
|
||||||
|
},
|
||||||
//表单提交方法
|
//表单提交方法
|
||||||
async submit() {
|
async submit() {
|
||||||
var valid = await this.$refs.form.validate().catch(() => {});
|
var valid = await this.$refs.form.validate().catch(() => {});
|
||||||
|
|
@ -146,10 +156,7 @@ export default {
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
//表单注入数据
|
|
||||||
setData(data) {
|
|
||||||
Object.assign(this.form, data);
|
|
||||||
},
|
|
||||||
getPosts(){
|
getPosts(){
|
||||||
this.$API.system.post.list.req({page:0}).then(res=>{
|
this.$API.system.post.list.req({page:0}).then(res=>{
|
||||||
if(res.err_msg){
|
if(res.err_msg){
|
||||||
|
|
|
||||||
|
|
@ -126,7 +126,7 @@
|
||||||
},
|
},
|
||||||
//加载树数据
|
//加载树数据
|
||||||
async getGroup() {
|
async getGroup() {
|
||||||
var res = await this.$API.system.dept.list.req({page: 0});
|
let res = await this.$API.system.permission.list.req({page: 0});
|
||||||
let postList = res;
|
let postList = res;
|
||||||
let posts = [];
|
let posts = [];
|
||||||
postList.forEach(item => {
|
postList.forEach(item => {
|
||||||
|
|
@ -169,25 +169,28 @@
|
||||||
console.log(this.menu.list);
|
console.log(this.menu.list);
|
||||||
},*/
|
},*/
|
||||||
submitHandle(){
|
submitHandle(){
|
||||||
debugger;
|
|
||||||
let that = this;
|
let that = this;
|
||||||
debugger;
|
|
||||||
this.addForm.perms = this.menu.checked;
|
this.addForm.perms = this.menu.checked;
|
||||||
this.$refs.addForm.validate( (valid) => {
|
this.$refs.addForm.validate( (valid) => {
|
||||||
debugger;
|
|
||||||
if (valid) {
|
if (valid) {
|
||||||
this.isSaveing = true;
|
this.isSaveing = true;
|
||||||
var res;
|
let res;
|
||||||
if(this.type==='add'){
|
if(this.type==='add'){
|
||||||
res = this.$API.system.role.create.req(that.addForm);
|
res = this.$API.system.role.create.req(that.addForm);
|
||||||
}else{
|
}else{
|
||||||
res = this.$API.system.role.update.req(that.addForm.id,that.addForm);
|
res = this.$API.system.role.update.req(that.addForm.id,that.addForm);
|
||||||
}
|
}
|
||||||
|
console.log(res);
|
||||||
|
debugger;
|
||||||
|
if(res.err_msg){
|
||||||
|
this.$message.error(res.err_msg);
|
||||||
|
}else{
|
||||||
this.isSaveing = false;
|
this.isSaveing = false;
|
||||||
this.limitedVisible = false;
|
this.limitedVisible = false;
|
||||||
this.$refs.table.refresh();
|
this.$refs.table.refresh();
|
||||||
console.log(res);
|
}
|
||||||
debugger;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
@ -195,11 +198,13 @@
|
||||||
//编辑角色
|
//编辑角色
|
||||||
roleEdit(row){
|
roleEdit(row){
|
||||||
this.type='edit';
|
this.type='edit';
|
||||||
this.limitedVisible = true;
|
this.menu.checked = '[]';
|
||||||
this.addForm.id=row.id;
|
this.addForm.id=row.id;
|
||||||
this.addForm.name=row.name;
|
this.addForm.name=row.name;
|
||||||
this.addForm.code=row.code;
|
this.addForm.code=row.code;
|
||||||
|
this.menu.checked = row.perms;
|
||||||
this.addForm.description=row.description;
|
this.addForm.description=row.description;
|
||||||
|
this.limitedVisible = true;
|
||||||
},
|
},
|
||||||
|
|
||||||
//删除角色
|
//删除角色
|
||||||
|
|
@ -250,5 +255,5 @@
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.treeMain {height:280px;overflow: auto;border: 1px solid #dcdfe6;margin-bottom: 10px;}
|
.treeMain {width: 100%;height:280px;overflow: auto;border: 1px solid #dcdfe6;margin-bottom: 10px;}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,220 @@
|
||||||
|
<template>
|
||||||
|
<el-main>
|
||||||
|
<el-row :gutter="15">
|
||||||
|
<el-col :xl="6" :lg="6" :md="8" :sm="12" :xs="24" v-for="item in list" :key="item.id">
|
||||||
|
<el-card class="task task-item" shadow="hover">
|
||||||
|
<h2>{{item.title}}</h2>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<h4>执行类</h4>
|
||||||
|
<p>{{item.handler}}</p>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<h4>定时规则</h4>
|
||||||
|
<p>{{item.cron}}</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<div class="bottom">
|
||||||
|
<div class="state">
|
||||||
|
<el-tag v-if="item.state=='1'" size="mini">准备就绪</el-tag>
|
||||||
|
<el-tag v-if="item.state=='-1'" size="mini" type="info">停用</el-tag>
|
||||||
|
</div>
|
||||||
|
<div class="handler">
|
||||||
|
<el-popconfirm title="确定立即执行吗?" @confirm="run(item)">
|
||||||
|
<template #reference>
|
||||||
|
<el-button type="primary" icon="el-icon-caret-right" size="mini" circle></el-button>
|
||||||
|
</template>
|
||||||
|
</el-popconfirm>
|
||||||
|
<el-dropdown trigger="click">
|
||||||
|
<el-button type="primary" icon="el-icon-more" size="mini" circle plain></el-button>
|
||||||
|
<template #dropdown>
|
||||||
|
<el-dropdown-menu>
|
||||||
|
<el-dropdown-item @click="editTask(item)">编辑</el-dropdown-item>
|
||||||
|
<el-dropdown-item @click="logs(item)">日志</el-dropdown-item>
|
||||||
|
<el-dropdown-item @click="delTask(item)" divided>删除</el-dropdown-item>
|
||||||
|
</el-dropdown-menu>
|
||||||
|
</template>
|
||||||
|
</el-dropdown>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-card>
|
||||||
|
</el-col>
|
||||||
|
<el-col :xl="6" :lg="6" :md="8" :sm="12" :xs="24">
|
||||||
|
<el-card class="task task-add" shadow="none" @click="addTask">
|
||||||
|
<i class="el-icon-plus"></i>
|
||||||
|
<p>添加计划任务</p>
|
||||||
|
</el-card>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-main>
|
||||||
|
<el-dialog :title="titleMap[mode]" v-model="visible" destroy-on-close>
|
||||||
|
<el-form :model="form" :rules="rules" ref="addForm" label-width="100px" label-position="left">
|
||||||
|
<el-form-item label="任务标题" prop="name">
|
||||||
|
<el-input v-model="form.name" placeholder="计划任务标题" clearable></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="执行任务" prop="task">
|
||||||
|
<el-input v-model="form.task" placeholder="执行任务" clearable></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="定时间隔">
|
||||||
|
<el-input v-model="form.interval" placeholder="请输入定时间隔" clearable></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="定时命令">
|
||||||
|
<el-input v-model="form.crontab" placeholder="请输入定时命令" clearable></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="定时规则">
|
||||||
|
<el-input v-model="form.args" placeholder="请输入Cron定时规则" clearable></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="定时规则">
|
||||||
|
<el-input v-model="form.kwargs" placeholder="请输入Cron定时规则" clearable></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<!--<el-form-item label="是否启用">
|
||||||
|
<el-switch v-model="form.used" active-value="1" inactive-value="-1"></el-switch>
|
||||||
|
</el-form-item>-->
|
||||||
|
</el-form>
|
||||||
|
<template #footer>
|
||||||
|
<el-button @click="visible=false" >取 消</el-button>
|
||||||
|
<el-button type="primary" :loading="isSaving" @click="submit()">保 存</el-button>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
|
||||||
|
<el-drawer title="计划任务日志" v-model="logsVisible" :size="600" direction="rtl" destroy-on-close>
|
||||||
|
<logs></logs>
|
||||||
|
</el-drawer>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import logs from './taskLogs'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'task',
|
||||||
|
components: {
|
||||||
|
logs
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
list: [
|
||||||
|
{
|
||||||
|
id: "1",
|
||||||
|
title: "清理服务器缓存",
|
||||||
|
handler: "cleanUpCacheHandler",
|
||||||
|
cron: "59 59 23 * * ? *",
|
||||||
|
state: "1"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
mode: "add",
|
||||||
|
editId:null,
|
||||||
|
titleMap: {
|
||||||
|
add: '新增计划任务',
|
||||||
|
edit: '编辑计划任务'
|
||||||
|
},
|
||||||
|
form: {
|
||||||
|
name: "",
|
||||||
|
task: "",
|
||||||
|
interval: "",
|
||||||
|
crontab: "",
|
||||||
|
args: "",
|
||||||
|
kwargs: "",
|
||||||
|
},
|
||||||
|
rules: {
|
||||||
|
name:[
|
||||||
|
{required: true, message: '请填写任务名称'}
|
||||||
|
],
|
||||||
|
task:[
|
||||||
|
{required: true, message: '请填写任务内容'}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
visible: false,
|
||||||
|
isSaving: false,
|
||||||
|
logsVisible: false,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
getList(){
|
||||||
|
this.$API.system.task.list.req().then(res=>{
|
||||||
|
if(res.err_msg){
|
||||||
|
this.message.error(res.err_msg)
|
||||||
|
}else{
|
||||||
|
debugger;
|
||||||
|
this.list.concat(res.results)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
addTask(){
|
||||||
|
this.visible = true;
|
||||||
|
this.mode = 'add';
|
||||||
|
},
|
||||||
|
editTask(item){
|
||||||
|
this.visible = true;
|
||||||
|
this.mode = 'edit';
|
||||||
|
this.editId = item.id;
|
||||||
|
Object.assign(this.form, item);
|
||||||
|
},
|
||||||
|
//表单提交方法
|
||||||
|
submit(){
|
||||||
|
this.$refs.addForm.validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
this.isSaveing = true;
|
||||||
|
let res = null;
|
||||||
|
if(this.mode==='add'){
|
||||||
|
res = this.$API.system.task.create.req(this.form);
|
||||||
|
}else{
|
||||||
|
res = this.$API.system.task.update.req(this.editId,this.form);
|
||||||
|
}
|
||||||
|
if(res.err_msg){
|
||||||
|
this.message.error(res.err_msg)
|
||||||
|
}else{
|
||||||
|
this.getList();
|
||||||
|
this.isSaveing = false;
|
||||||
|
this.visible = false;
|
||||||
|
this.$message.success("操作成功");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
delTask(task){
|
||||||
|
this.$confirm(`确认删除 ${task.title} 计划任务吗?`,'提示', {
|
||||||
|
type: 'warning',
|
||||||
|
confirmButtonText: '删除',
|
||||||
|
confirmButtonClass: 'el-button--danger'
|
||||||
|
}).then(() => {
|
||||||
|
this.$API.system.task.delete.req(task.id).then(res=>{
|
||||||
|
if(res.err_msg){
|
||||||
|
this.message.error(res.err_msg)
|
||||||
|
}else{
|
||||||
|
this.list.splice(this.list.findIndex(item => item.id === task.id), 1);
|
||||||
|
this.getList();
|
||||||
|
this.$message.success("操作成功");
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}).catch(() => {
|
||||||
|
//取消
|
||||||
|
})
|
||||||
|
},
|
||||||
|
logs(){
|
||||||
|
this.logsVisible = true
|
||||||
|
},
|
||||||
|
run(task){
|
||||||
|
this.$API.system.task.runOnce.req(task.id).then(res=>{
|
||||||
|
})
|
||||||
|
this.$message.success(`已成功执行计划任务:${task.title}`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.task {height: 210px;}
|
||||||
|
.task-item h2 {font-size: 15px;color: #3c4a54;padding-bottom:15px;}
|
||||||
|
.task-item li {list-style-type:none;margin-bottom: 10px;}
|
||||||
|
.task-item li h4 {font-size: 12px;font-weight: normal;color: #999;}
|
||||||
|
.task-item li p {margin-top: 5px;}
|
||||||
|
.task-item .bottom {border-top: 1px solid #EBEEF5;text-align: right;padding-top:10px;display: flex;justify-content: space-between;align-items: center;}
|
||||||
|
|
||||||
|
.task-add {display: flex;flex-direction: column;align-items: center;justify-content: center;text-align: center;cursor: pointer;color: #999;}
|
||||||
|
.task-add:hover {color: #409EFF;}
|
||||||
|
.task-add i {font-size: 30px;}
|
||||||
|
.task-add p {font-size: 12px;margin-top: 20px;}
|
||||||
|
</style>
|
||||||
|
|
@ -0,0 +1,99 @@
|
||||||
|
<template>
|
||||||
|
<el-container>
|
||||||
|
<el-main style="padding:0 20px;">
|
||||||
|
<scTable ref="table" :data="data" stripe>
|
||||||
|
<el-table-column label="执行时间" prop="time" width="200"></el-table-column>
|
||||||
|
<el-table-column label="执行结果" prop="state" width="100">
|
||||||
|
<template #default="scope">
|
||||||
|
<span v-if="scope.row.state==200" style="color: #67C23A;"><i class="el-icon-success"></i> 成功</span>
|
||||||
|
<span v-else style="color: #F56C6C;"><i class="el-icon-error"></i> 异常</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="执行日志" prop="logs" width="100" fixed="right">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-button size="mini" @click="show(scope.row)" type="text">日志</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</scTable>
|
||||||
|
</el-main>
|
||||||
|
</el-container>
|
||||||
|
|
||||||
|
<el-drawer title="日志" v-model="logsVisible" :size="500" direction="rtl" destroy-on-close>
|
||||||
|
<el-main style="padding:0 20px 20px 20px;">
|
||||||
|
<pre style="font-size: 12px;color: #999;padding:20px;background: #333;font-family: consolas;line-height: 1.5;overflow: auto;">{{demoLog}}</pre>
|
||||||
|
</el-main>
|
||||||
|
</el-drawer>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
logsVisible: false,
|
||||||
|
demoLog: `2021-07-07 12:35:00 [com.xxl.job.core.thread.JobThread#run]-[124]-[Thread-308]
|
||||||
|
----------- xxl-job job execute start -----------
|
||||||
|
----------- Param:
|
||||||
|
2021-07-07 12:35:00 [com.heronshn.reservation.jobhandler.AqshMasterDataSendHandler#execute]-[31]-[Thread-308] aqshMasterDataSendHandler start
|
||||||
|
2021-07-07 12:35:00 [com.heronshn.reservation.data.service.impl.AqshVehicleServiceImpl#send]-[42]-[Thread-308] send 45
|
||||||
|
2021-07-07 12:35:00 [com.heronshn.reservation.data.service.impl.AqshVehicleServiceImpl#send]-[45]-[Thread-308] webapi http://127.0.0.1:48080
|
||||||
|
2021-07-07 12:35:00 [com.heronshn.reservation.jobhandler.AqshMasterDataSendHandler#execute]-[33]-[Thread-308] aqshMasterDataSendHandler vehicle end
|
||||||
|
2021-07-07 12:35:00 [com.heronshn.reservation.jobhandler.AqshMasterDataSendHandler#execute]-[35]-[Thread-308] aqshMasterDataSendHandler stop
|
||||||
|
2021-07-07 12:35:00 [com.xxl.job.core.thread.JobThread#run]-[158]-[Thread-308]
|
||||||
|
----------- xxl-job job execute end(finish) -----------
|
||||||
|
----------- ReturnT:ReturnT [code=200, msg=null, content=null]
|
||||||
|
2021-07-07 12:35:00 [com.xxl.job.core.thread.TriggerCallbackThread#callbackLog]-[176]-[Thread-10]
|
||||||
|
----------- xxl-job job callback finish.
|
||||||
|
|
||||||
|
[Load Log Finish]`,
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
time: "2021-07-07 00:00:00",
|
||||||
|
state: "500",
|
||||||
|
logs: ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
time: "2021-07-06 00:00:00",
|
||||||
|
state: "200",
|
||||||
|
logs: ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
time: "2021-07-05 00:00:00",
|
||||||
|
state: "200",
|
||||||
|
logs: ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
time: "2021-07-04 00:00:00",
|
||||||
|
state: "200",
|
||||||
|
logs: ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
time: "2021-07-03 00:00:00",
|
||||||
|
state: "200",
|
||||||
|
logs: ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
time: "2021-07-02 00:00:00",
|
||||||
|
state: "200",
|
||||||
|
logs: ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
time: "2021-07-01 00:00:00",
|
||||||
|
state: "200",
|
||||||
|
logs: ""
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
show(){
|
||||||
|
this.logsVisible = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
</style>
|
||||||
|
|
@ -39,12 +39,6 @@
|
||||||
:disabled="selection.length == 0"
|
:disabled="selection.length == 0"
|
||||||
@click="batch_del"
|
@click="batch_del"
|
||||||
></el-button>
|
></el-button>
|
||||||
<!--<el-button
|
|
||||||
type="primary"
|
|
||||||
plain
|
|
||||||
:disabled="selection.length == 0"
|
|
||||||
>分配角色
|
|
||||||
</el-button>-->
|
|
||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
plain
|
plain
|
||||||
|
|
@ -84,22 +78,6 @@
|
||||||
label="ID"
|
label="ID"
|
||||||
prop="id"
|
prop="id"
|
||||||
></el-table-column>
|
></el-table-column>
|
||||||
<!--<el-table-column
|
|
||||||
label="头像"
|
|
||||||
width="80"
|
|
||||||
column-key="filterAvatar"
|
|
||||||
:filters="[
|
|
||||||
{ text: '已上传', value: '1' },
|
|
||||||
{ text: '未上传', value: '0' },
|
|
||||||
]"
|
|
||||||
>
|
|
||||||
<template #default="scope">
|
|
||||||
<el-avatar
|
|
||||||
:src="getImgUrl(scope.row.avatar)"
|
|
||||||
size="small"
|
|
||||||
></el-avatar>
|
|
||||||
</template>
|
|
||||||
</el-table-column>-->
|
|
||||||
<el-table-column
|
<el-table-column
|
||||||
label="姓名"
|
label="姓名"
|
||||||
prop="name"
|
prop="name"
|
||||||
|
|
@ -134,7 +112,7 @@
|
||||||
@confirm="table_del(scope.row, scope.$index)"
|
@confirm="table_del(scope.row, scope.$index)"
|
||||||
>
|
>
|
||||||
<template #reference>
|
<template #reference>
|
||||||
<el-button type="text" size="small">
|
<el-button text type="danger" size="small">
|
||||||
删除
|
删除
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -178,16 +156,6 @@
|
||||||
clearable
|
clearable
|
||||||
></el-input>
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!--<el-form-item label="所属部门">
|
|
||||||
<el-cascader
|
|
||||||
v-model="addForm.belong_dept"
|
|
||||||
:options="group"
|
|
||||||
:props="groupsProps"
|
|
||||||
:show-all-levels="false"
|
|
||||||
clearable
|
|
||||||
style="width: 100%"
|
|
||||||
></el-cascader>
|
|
||||||
</el-form-item>-->
|
|
||||||
<el-form-item label="是否在用">
|
<el-form-item label="是否在用">
|
||||||
<el-switch v-model="addForm.is_active" />
|
<el-switch v-model="addForm.is_active" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
@ -321,8 +289,8 @@
|
||||||
//删除
|
//删除
|
||||||
async table_del(row) {
|
async table_del(row) {
|
||||||
let res = await this.$API.system.user.delete.req(row.id);
|
let res = await this.$API.system.user.delete.req(row.id);
|
||||||
if (res.err.msg) {
|
if (res.err_msg) {
|
||||||
this.$alert(res.message, "提示", {type: "error"});
|
this.$message.error(res.err_msg);
|
||||||
} else {
|
} else {
|
||||||
this.$refs.table.refresh();
|
this.$refs.table.refresh();
|
||||||
this.$message.success("删除成功");
|
this.$message.success("删除成功");
|
||||||
|
|
@ -384,9 +352,7 @@
|
||||||
debugger;
|
debugger;
|
||||||
this.$refs.addForm.validate(async (valid) => {
|
this.$refs.addForm.validate(async (valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
debugger;
|
|
||||||
this.isSaveing = true;
|
this.isSaveing = true;
|
||||||
// this.addForm.belong_dept = this.addForm.belong_dept[this.addForm.belong_dept.length - 1];
|
|
||||||
let res;
|
let res;
|
||||||
if(this.type==='add'){
|
if(this.type==='add'){
|
||||||
res = await this.$API.system.user.create.req(this.addForm);
|
res = await this.$API.system.user.create.req(this.addForm);
|
||||||
|
|
@ -394,12 +360,11 @@
|
||||||
res = await this.$API.system.user.update.req(this.addForm.id,this.addForm);
|
res = await this.$API.system.user.update.req(this.addForm.id,this.addForm);
|
||||||
}
|
}
|
||||||
this.isSaveing = false;
|
this.isSaveing = false;
|
||||||
if(res.code == 200){
|
if(res.err_msg){
|
||||||
this.visible = false;
|
this.$message(res.err_msg);
|
||||||
this.$message.success("操作成功")
|
|
||||||
}else{
|
}else{
|
||||||
this.visible = false;
|
this.limitedVisible = false;
|
||||||
this.$alert(res.message, "提示", {type: 'error'});
|
this.$message.success("操作成功")
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
return false;
|
return false;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,12 @@
|
||||||
<template>
|
<template>
|
||||||
<el-main class="nopadding">
|
<el-container>
|
||||||
|
<el-header>
|
||||||
|
<div class="left-panel">
|
||||||
<el-button type="primary" icon="el-icon-plus" @click="handleAdd"></el-button>
|
<el-button type="primary" icon="el-icon-plus" @click="handleAdd"></el-button>
|
||||||
<el-table ref="table" :data="list" row-key="id" stripe>
|
</div>
|
||||||
|
</el-header>
|
||||||
|
<el-main class="nopadding">
|
||||||
|
<scTable ref="table" :apiObj="apiObj" row-key="id" stripe highlightCurrentRow>
|
||||||
<el-table-column type="index" width="50"/>
|
<el-table-column type="index" width="50"/>
|
||||||
<el-table-column label="字段标识" prop="field_key"></el-table-column>
|
<el-table-column label="字段标识" prop="field_key"></el-table-column>
|
||||||
<el-table-column label="字段名称" prop="field_name"></el-table-column>
|
<el-table-column label="字段名称" prop="field_name"></el-table-column>
|
||||||
|
|
@ -19,7 +24,7 @@
|
||||||
</el-popconfirm>
|
</el-popconfirm>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</scTable>
|
||||||
<el-dialog
|
<el-dialog
|
||||||
v-model="dialogVisible"
|
v-model="dialogVisible"
|
||||||
:title="titleMap[type]">
|
:title="titleMap[type]">
|
||||||
|
|
@ -63,7 +68,8 @@
|
||||||
<el-col :span="10">
|
<el-col :span="10">
|
||||||
<template>
|
<template>
|
||||||
<el-form-item label="id:">
|
<el-form-item label="id:">
|
||||||
<el-input type="number" v-model="domain.id" auto-complete="off" placeholder="id为整数"></el-input>
|
<el-input type="number" v-model="domain.id" auto-complete="off"
|
||||||
|
placeholder="id为整数"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
@ -106,6 +112,8 @@
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</el-main>
|
</el-main>
|
||||||
|
</el-container>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
@ -113,6 +121,7 @@
|
||||||
name: "field",
|
name: "field",
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
apiObj: this.$API.wf.field.list,
|
||||||
id: sessionStorage.getItem('jinYuWorkflowId'),
|
id: sessionStorage.getItem('jinYuWorkflowId'),
|
||||||
list: null,
|
list: null,
|
||||||
type: "add",
|
type: "add",
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,12 @@
|
||||||
<template>
|
<template>
|
||||||
<el-main class="nopadding">
|
<el-container>
|
||||||
|
<el-header>
|
||||||
|
<div class="left-panel">
|
||||||
<el-button type="primary" icon="el-icon-plus" @click="handleAdd"></el-button>
|
<el-button type="primary" icon="el-icon-plus" @click="handleAdd"></el-button>
|
||||||
<el-table ref="table" :data="list" row-key="id" stripe>
|
</div>
|
||||||
|
</el-header>
|
||||||
|
<el-main class="nopadding">
|
||||||
|
<el-table ref="table" :apiObj="apiObj" row-key="id" stripe highlightCurrentRow>
|
||||||
<el-table-column type="index" width="50"/>
|
<el-table-column type="index" width="50"/>
|
||||||
<el-table-column label="名称" prop="name"></el-table-column>
|
<el-table-column label="名称" prop="name"></el-table-column>
|
||||||
<el-table-column label="是否隐藏">
|
<el-table-column label="是否隐藏">
|
||||||
|
|
@ -82,7 +87,8 @@
|
||||||
<el-switch v-model="addForm.enable_retreat"></el-switch>
|
<el-switch v-model="addForm.enable_retreat"></el-switch>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="参与者类型" prop="participant_type">
|
<el-form-item label="参与者类型" prop="participant_type">
|
||||||
<el-select style="width: 100%" v-model="addForm.participant_type" placeholder="请选择" @change="typeChange">
|
<el-select style="width: 100%" v-model="addForm.participant_type" placeholder="请选择"
|
||||||
|
@change="typeChange">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in typeoptions"
|
v-for="item in typeoptions"
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
|
|
@ -181,6 +187,8 @@
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</el-main>
|
</el-main>
|
||||||
|
</el-container>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
@ -188,6 +196,7 @@
|
||||||
name: "state",
|
name: "state",
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
apiObj: this.$API.wf.state.list,
|
||||||
id: sessionStorage.getItem('jinYuWorkflowId'),
|
id: sessionStorage.getItem('jinYuWorkflowId'),
|
||||||
list: null,
|
list: null,
|
||||||
type: "add",
|
type: "add",
|
||||||
|
|
|
||||||
|
|
@ -181,7 +181,7 @@
|
||||||
}else{
|
}else{
|
||||||
sessionStorage.setItem('jinYuWorkflowId',row.id);
|
sessionStorage.setItem('jinYuWorkflowId',row.id);
|
||||||
}
|
}
|
||||||
this.$router.push({path:'/workflow/configuration'});
|
this.$router.push({path:'/wf/configuration'});
|
||||||
},
|
},
|
||||||
|
|
||||||
//删除工作流
|
//删除工作流
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue