1. 流程节点功能修改

main
赵培友 3 years ago
parent 3246a8a717
commit f622563d43
  1. 42
      src/api/plugin/workflow/workorder.js
  2. 26
      src/const/workflow/crontab.js
  3. 5
      src/option/user/info.js
  4. 16
      src/views/plugin/workflow/mixins/ex-form.js
  5. 5
      src/views/plugin/workflow/process/components/button.vue
  6. 9
      src/views/plugin/workflow/process/components/examForm.vue
  7. 4
      src/views/plugin/workflow/process/components/flow.vue
  8. 5
      src/views/plugin/workflow/process/components/form.vue
  9. 80
      src/views/plugin/workflow/process/crontab.vue
  10. 17
      src/views/wel/index.vue

@ -1,5 +1,6 @@
import request from '@/router/axios';
const prefix = '/api/blade-workflow/workOrder'
const prefix2 = '/api/blade-workflow/autoProcess'
// 工单记录查询
export const getList = (query) => {
return request({
@ -8,6 +9,23 @@ export const getList = (query) => {
params:query
})
}
// 导出
export const exportExcel = (query) => {
return request({
url: `${prefix}/exportExcel`,
method: 'get',
params:query,
responseType: 'blob'
})
}
// 头部查询
export const conditionalData = (query) => {
return request({
url: `${prefix}/conditionalData`,
method: 'get',
params:query
})
}
// 我的待办
export const todoList = (query) => {
return request({
@ -16,20 +34,26 @@ export const todoList = (query) => {
params:query
})
}
// 头部查询
export const conditionalData = (query) => {
// 定时任务
export const taskList = (query) => {
return request({
url: `${prefix}/conditionalData`,
url: `${prefix2}/list`,
method: 'get',
params:query
})
}
// 导出
export const exportExcel = (query) => {
// 定时任务终止
export const taskRemove = (query) => {
return request({
url: `${prefix}/exportExcel`,
url: `${prefix2}/remove`,
method: 'get',
params:query,
responseType: 'blob'
params:query
})
}
}
// 重复模式
export const repeatMode = () => {
return request({
url: "/api/blade-system/dict-biz/dictionary?code=repeat_mode",
method: 'get',
})
}

@ -38,7 +38,7 @@ export const tableOption = {
{
type: "input",
label: "操作模块",
prop: "operationModule",
prop: "operaObject",
align: "left",
overHidden: true,
},
@ -46,35 +46,35 @@ export const tableOption = {
{
type: "input",
label: "操作对象",
prop: "operationModule",
align: "left",
overHidden: true,
},
{
type: "input",
label: "当前责任人",
prop: "currentResponsiblePerson",
prop: "operaModule",
align: "left",
overHidden: true,
},
// {
// type: "input",
// label: "当前责任人",
// prop: "currentResponsiblePerson",
// align: "left",
// overHidden: true,
// },
{
type: "input",
label: "管理部门",
prop: "dept",
prop: "deptName",
align: "left",
overHidden: true,
},
{
type: "input",
label: "运维公司",
prop: "currentResponsiblePerson",
prop: "maintenanceCompany",
align: "left",
overHidden: true,
},
{
type: "input",
label: "发起人",
prop: "sponsor",
prop: "applyUser",
align: "left",
overHidden: true,
},
@ -91,7 +91,7 @@ export const tableOption = {
{
type: "input",
label: "重复模式",
prop: "approvalStatus",
prop: "repeatMode",
align: "left",
overHidden: true,
},

@ -11,14 +11,13 @@ export default {
listType: 'picture-img',
propsHttp: {
res: 'data',
url: 'path',
name: 'name'
url: 'link',
},
canvasOption: {
text: ' ',
ratio: 0.1
},
action: '/api/blade-workflow/database/upload',
action: '/api/blade-resource/oss/endpoint/put-file',
tip: '只能上传jpg/png用户头像,且不超过500kb',
span: 12,
row: true,

@ -342,15 +342,17 @@ export default {
const { comment, copyUser, assignee, attachment } =
this.$refs.examineForm.examineForm;
// false隐藏 判断是否需要选择审批人
let flag = this.$refs.examineForm.flag;
if (flag && assignee === undefined) {
this.$message.error("请指定审批人!");
reject();
this.submitLoading = false;
return;
if (pass) {
let flag = this.$refs.examineForm.flag;
if (flag && assignee === undefined) {
this.$message.error("请指定审批人!");
reject();
this.submitLoading = false;
return;
}
}
if (!pass && !comment) {
this.$message.error("请填写批复意见");
this.$message.error("请填写意见");
this.submitLoading = false;
reject();
return;

@ -13,13 +13,12 @@
<span v-if="['recall', 'reject'].includes(process.processIsFinished)">重新提交</span>
<span v-else>{{getButton('wf_pass').name}}</span>
</el-button>
<el-button v-if="getButton('wf_effect')"
<el-button v-if="getButton('wf_effect') && !['recall', 'reject'].includes(process.processIsFinished)"
type="success"
size="medium"
v-loading="loading"
@click="$emit('examine', true)">
<span v-if="['recall', 'reject'].includes(process.processIsFinished)">重新提交</span>
<span v-else>{{getButton('wf_effect').name}}</span>
<span >{{getButton('wf_effect').name}}</span>
</el-button>
<el-button v-if="getButton('wf_reject')"
type="danger"

@ -24,14 +24,17 @@ export default {
process: {
handler(val) {
if (!val) return
const { hideComment, hideAttachment, hideCopy, hideExamine, copyUser, copyUserName,taskName } = val
console.log(['运维公司执行任务'].includes(taskName))
const { hideComment, hideAttachment, hideCopy, hideExamine, copyUser, copyUserName,taskName,processIsFinished } = val
if (hideComment) this.findObject(this.examineOption.column, 'comment').display = false //
if (hideComment || hideAttachment) this.findObject(this.examineOption.column, 'attachment').display = false //
if (hideCopy) this.findObject(this.examineOption.column, '$copyUser').display = false //
if (hideExamine ) this.findObject(this.examineOption.column, '$assignee').display = false //
if (copyUser) this.$set(this.examineForm, 'copyUser', val.copyUser) //
if (copyUserName) this.$set(this.examineForm, '$copyUser', val.copyUserName) //
if (taskName === "发起人" && ['reject','recall'.includes(processIsFinished)]) {
this.findObject(this.examineOption.column, 'attachment').display = false
this.findObject(this.examineOption.column, 'comment').display = false
}
},
deep: true,
immediate: true
@ -98,7 +101,7 @@ export default {
span: 24,
event: {
click: () => {
this.$emit('user-select', { type: 'assignee', checkType: 'checkbox' })
this.$emit('user-select', { type: 'assignee'})
}
},
rules: [{ required: true, message: "请指定审批人" }],

@ -26,14 +26,14 @@
v-if="comment.time">{{comment.time}}</p>
</template>
</p>
<template v-if="item.attachments && item.attachments.length > 0">
<!-- <template v-if="item.attachments && item.attachments.length > 0">
<p style="display: flex; align-items: baseline;">附件:
<avue-upload :value="item.attachments"
:props="{label: 'name', value: 'url'}"
:upload-preview="handleUploadPreview"
disabled></avue-upload>
</p>
</template>
</template> -->
</template>
<p v-if="item.endTime">结束时间: [{{item.endTime}}]</p>
</el-card>

@ -200,7 +200,7 @@ export default {
"renwuzhonglei"
);
for (let i in renwuzhonglei.dicData) {
this.form.renwudengji = renwuzhonglei.dicData[i].taskLevel
this.form.renwudengji = renwuzhonglei.dicData[i].taskLevel;
}
}
},
@ -297,7 +297,7 @@ export default {
"xitongmokuaishujubiao"
);
xitongmokuaishujubiao.dicData = res.data.data;
this.form.type = obj.type
this.form.type = obj.type;
});
},
//
@ -385,6 +385,7 @@ export default {
this.$confirm("是否恢复之前保存的草稿?", "提示", {})
.then(() => {
this.form = JSON.parse(data);
this.systemChange(this.form.xitongmingchengshujuku);
})
.catch(() => {});
});

@ -10,9 +10,9 @@
>
<el-option
v-for="item in taskParent"
:key="item.dictValue"
:key="item.id"
:label="item.dictValue"
:value="item.dictValue"
:value="item.id"
>
</el-option>
</el-select>
@ -24,65 +24,51 @@
>
<el-option
v-for="item in taskInfos"
:key="item.taskTypeName"
:key="item.id"
:label="item.taskTypeName"
:value="item.taskTypeName"
:value="item.id"
>
</el-option>
</el-select>
<el-select
v-model="searchForm.currentResponsiblePerson"
placeholder="当前责任人"
class="search-select"
clearable
>
<el-option
v-for="item in users"
:key="item.realName"
:label="item.realName"
:value="item.realName"
>
</el-option>
</el-select>
<el-select
v-model="searchForm.sponsor"
v-model="searchForm.applyUser"
placeholder="发起人"
class="search-select"
clearable
>
<el-option
v-for="item in users"
:key="item.realName"
:key="item.id"
:label="item.realName"
:value="item.realName"
:value="item.id"
>
</el-option>
</el-select>
<el-select
v-model="searchForm.dept"
v-model="searchForm.maintenanceCompany"
placeholder="运维公司"
class="search-select"
clearable
>
<el-option
v-for="item in depts"
:key="item.deptName"
:label="item.deptName"
:value="item.deptName"
v-for="item in users"
:key="item.id"
:label="item.realName"
:value="item.id"
>
</el-option>
</el-select>
<el-select
v-model="searchForm.approvalStatus"
v-model="searchForm.repeatMode"
placeholder="重复模式"
class="search-select"
clearable
>
<el-option
v-for="item in statusList"
:key="item.value"
:label="item.label"
:value="item.value"
v-for="item in repeatModeList"
:key="item.id"
:label="item.dictValue"
:value="item.id"
>
</el-option>
</el-select>
@ -135,8 +121,10 @@
</template>
<script>
import {
todoList as getList,
taskList as getList,
conditionalData,
taskRemove,
repeatMode
} from "@/api/plugin/workflow/workorder.js";
import { tableOption } from "@/const/workflow/crontab.js";
import { mapGetters } from "vuex";
@ -159,20 +147,7 @@ export default {
taskInfos: [],
depts: [],
users: [],
statusList: [
{
label: "审批中",
value: "审批中",
},
{
label: "进行中",
value: "进行中",
},
{
label: "已完成",
value: "已完成",
},
],
repeatModeList: [],
};
},
created() {
@ -192,6 +167,9 @@ export default {
this.users = users;
this.taskLevel = taskLevel
});
repeatMode().then(res => {
this.repeatModeList = res.data.data
})
},
//
onLoad() {
@ -238,12 +216,10 @@ export default {
type: "warning",
})
.then(() => {
// remove(row.id).then((res) => {
// //
// console.log(res);
// this.$message.success("!");
// this.onLoad(this.page[0]);
// });
taskRemove(row.id).then((res) => {
this.$message.success("任务终止成功!");
this.onLoad();
});
})
.catch(() => {
// this.$message({ type: "info", message: "" });

@ -6,7 +6,7 @@
v-for="(item, index) in headerList"
:key="index"
>
<div class="header__item__box">
<div class="header__item__box" @click="goRouter(item)" :style="{cursor:[1,2].includes(item.id)?'pointer':'default'}">
<div>
<span class="title">{{ item.title }}</span
><br />
@ -37,7 +37,7 @@
<div id="pieItemOne" style="height: 310px"></div>
</div>
<div class="footer__item2">
<div id="pieItemTwo" style="height: 310px"></div>
<div id="pieItemTwo" style="height: 310px;"></div>
</div>
<div class="footer__item3">
<div id="barChart" style="height: 310px"></div>
@ -63,21 +63,25 @@ export default {
id: 1,
title: "到期提醒",
num: "",
link: "/plugin/workflow/process/workorder"
},
{
id: 2,
title: "我的待办",
num: "",
link: "/plugin/workflow/process/todo"
},
{
id: 3,
title: "今日新增",
num: "",
link: ""
},
{
id: 4,
title: "今日完成",
num: "",
link: ""
},
],
};
@ -223,7 +227,7 @@ export default {
},
legend: {
top: "center",
left: "76%",
left: "68%",
orient: "vertical",
icon: "circle",
itemWidth: 12,
@ -301,7 +305,7 @@ export default {
data,
hoverAnimation: false,
minAngle: 15, //
startAngle: 270, //
startAngle: 0, //
label: {
normal: {
color: "#000",
@ -470,6 +474,11 @@ export default {
this.barChart(data, YData);
});
},
goRouter(item) {
if([1,2].includes(item.id)) {
this.$router.push(item.link)
}
}
},
};
</script>

Loading…
Cancel
Save