考勤bar图显示bug以及五大申请流程开完完成
This commit is contained in:
@@ -64,6 +64,7 @@ export default {
|
|||||||
this.chart.dispose();
|
this.chart.dispose();
|
||||||
this.chart = null;
|
this.chart = null;
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
initChart() {
|
initChart() {
|
||||||
this.chart = echarts.init(this.$el, 'macarons');
|
this.chart = echarts.init(this.$el, 'macarons');
|
||||||
@@ -73,37 +74,41 @@ export default {
|
|||||||
updateData(projectList) {
|
updateData(projectList) {
|
||||||
this.colors = projectList.map((item) => item.color);
|
this.colors = projectList.map((item) => item.color);
|
||||||
this.laborCosts = projectList.map((item) => item.laborCost);
|
this.laborCosts = projectList.map((item) => item.laborCost);
|
||||||
this.projectNames = projectList.map((item) => item.projectName.replace(/(.{5})/g, '$1\n'));
|
this.projectNames = projectList.map((item) => item.projectName.replace(/(.{5})/g, '$1\n')); // 保持换行格式
|
||||||
},
|
},
|
||||||
setOption() {
|
setOption() {
|
||||||
this.chart.setOption({
|
this.chart.setOption({
|
||||||
tooltip: {
|
tooltip: {
|
||||||
trigger: 'axis',
|
trigger: 'axis',
|
||||||
axisPointer: { type: 'shadow' },
|
axisPointer: { type: 'shadow' },
|
||||||
|
formatter: (params) => { // 自定义 tooltip 格式
|
||||||
|
const { dataIndex } = params[0]; // 获取鼠标悬停的索引
|
||||||
|
const projectName = this.projectNames[dataIndex]; // 获取对应的项目名称
|
||||||
|
const laborCost = this.laborCosts[dataIndex]; // 获取对应的人工成本
|
||||||
|
return `${projectName}<br/>人工成本: ${laborCost} 人天`; // 显示项目名称和人工成本
|
||||||
|
},
|
||||||
},
|
},
|
||||||
grid: {
|
grid: {
|
||||||
top: 10,
|
top: 10,
|
||||||
left: '2%',
|
left: '2%',
|
||||||
right: '8%', // 增加右边距以适应标签
|
right: '8%',
|
||||||
bottom: '3%',
|
bottom: '3%',
|
||||||
containLabel: true,
|
containLabel: true,
|
||||||
},
|
},
|
||||||
xAxis: {
|
xAxis: {
|
||||||
max: 'dataMax',
|
max: 'dataMax',
|
||||||
name: '人天', // 设置横坐标名称
|
name: '人天',
|
||||||
nameLocation: 'middle', // 横坐标名称的位置
|
nameLocation: 'middle',
|
||||||
nameGap: 25, // 横坐标名称与轴线的距离
|
nameGap: 25,
|
||||||
},
|
},
|
||||||
yAxis: {
|
yAxis: {
|
||||||
type: 'category',
|
type: 'category',
|
||||||
data: this.projectNames,
|
data: this.projectNames,
|
||||||
inverse: true,
|
inverse: true,
|
||||||
animationDuration: 300,
|
|
||||||
animationDurationUpdate: 300,
|
|
||||||
axisLabel: {
|
axisLabel: {
|
||||||
rotate: 45, // 设置标签旋转角度,正值表示顺时针旋转
|
rotate: 45, // 设置标签旋转角度
|
||||||
interval: 0, // 强制显示所有标签
|
interval: 0, // 强制显示所有标签
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
series: [
|
series: [
|
||||||
{
|
{
|
||||||
@@ -130,5 +135,6 @@ export default {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
329
ruoyi-ui/src/views/oa/apply/absence/index.vue
Normal file
329
ruoyi-ui/src/views/oa/apply/absence/index.vue
Normal file
@@ -0,0 +1,329 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
|
||||||
|
<!-- <el-form-item label="流程分类" prop="category">
|
||||||
|
<el-select v-model="queryParams.category" clearable placeholder="请选择" size="small">
|
||||||
|
<el-option
|
||||||
|
v-for="item in categoryOptions"
|
||||||
|
:key="item.categoryId"
|
||||||
|
:label="item.categoryName"
|
||||||
|
:value="item.code">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>-->
|
||||||
|
<el-form-item label="提交时间">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="dateRange"
|
||||||
|
style="width: 240px"
|
||||||
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
|
type="daterange"
|
||||||
|
range-separator="-"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
end-placeholder="结束日期"
|
||||||
|
:default-time="['00:00:00', '23:59:59']"
|
||||||
|
></el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||||
|
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
|
||||||
|
<el-row :gutter="10" class="mb8">
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
plain
|
||||||
|
icon="el-icon-edit"
|
||||||
|
size="mini"
|
||||||
|
:disabled="btnLoading"
|
||||||
|
@click="handleStart"
|
||||||
|
>发起请假
|
||||||
|
</el-button>
|
||||||
|
</el-col>
|
||||||
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-table v-loading="loading" :data="ownProcessList" @selection-change="handleSelectionChange">
|
||||||
|
<el-table-column type="selection" width="55" align="center"/>
|
||||||
|
<!-- <el-table-column label="流程编号" align="center" prop="procInsId" :show-overflow-tooltip="true"/>-->
|
||||||
|
<el-table-column label="请假事由" align="left" prop="procVars" :show-overflow-tooltip="true"/>
|
||||||
|
<!-- <el-table-column label="流程类别" align="center" prop="category" :formatter="categoryFormat" />-->
|
||||||
|
<el-table-column label="当前节点" width="150" align="center" prop="taskName"/>
|
||||||
|
<el-table-column label="提交时间" align="center" prop="createTime" width="160"/>
|
||||||
|
<el-table-column label="当前状态" align="center" width="100">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<dict-tag :options="dict.type.wf_process_status" :value="scope.row.processStatus"/>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="耗时" align="center" prop="duration" width="130"/>
|
||||||
|
<el-table-column label="操作" align="center" width="240" class-name="small-padding fixed-width">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button
|
||||||
|
type="text"
|
||||||
|
size="mini"
|
||||||
|
icon="el-icon-tickets"
|
||||||
|
@click="handleFlowRecord(scope.row)"
|
||||||
|
v-hasPermi="['workflow:process:query']"
|
||||||
|
>详情
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
type="text"
|
||||||
|
size="mini"
|
||||||
|
icon="el-icon-delete"
|
||||||
|
@click="handleDelete(scope.row)"
|
||||||
|
v-if="scope.row.finishTime"
|
||||||
|
v-hasPermi="['workflow:process:remove']"
|
||||||
|
>删除
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
type="text"
|
||||||
|
size="mini"
|
||||||
|
icon="el-icon-circle-close"
|
||||||
|
@click="handleStop(scope.row)"
|
||||||
|
v-hasPermi="['workflow:process:cancel']"
|
||||||
|
>取消
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
type="text"
|
||||||
|
size="mini"
|
||||||
|
icon="el-icon-refresh-right"
|
||||||
|
v-hasPermi="['workflow:process:start']"
|
||||||
|
@click="handleAgain(scope.row)"
|
||||||
|
>重新发起
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
|
||||||
|
<pagination
|
||||||
|
v-show="total>0"
|
||||||
|
:total="total"
|
||||||
|
:page.sync="queryParams.pageNum"
|
||||||
|
:limit.sync="queryParams.pageSize"
|
||||||
|
@pagination="getList"
|
||||||
|
/>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {listOwnProcess, stopProcess, delProcess, listProcess} from '@/api/workflow/process';
|
||||||
|
import {listAllCategory} from '@/api/workflow/category';
|
||||||
|
import {detailProcess} from '@/api/workflow/process'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "Own",
|
||||||
|
dicts: ['wf_process_status'],
|
||||||
|
components: {},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
// 遮罩层
|
||||||
|
loading: true,
|
||||||
|
processLoading: true,
|
||||||
|
// 选中数组
|
||||||
|
ids: [],
|
||||||
|
// 非单个禁用
|
||||||
|
single: true,
|
||||||
|
// 非多个禁用
|
||||||
|
multiple: true,
|
||||||
|
// 显示搜索条件
|
||||||
|
showSearch: true,
|
||||||
|
// 总条数
|
||||||
|
total: 0,
|
||||||
|
categoryOptions: [],
|
||||||
|
processTotal: 0,
|
||||||
|
// 我发起的流程列表数据
|
||||||
|
ownProcessList: [],
|
||||||
|
// 弹出层标题
|
||||||
|
title: "",
|
||||||
|
// 是否显示弹出层
|
||||||
|
open: false,
|
||||||
|
process: {},
|
||||||
|
src: "",
|
||||||
|
definitionList: [],
|
||||||
|
// 日期范围
|
||||||
|
dateRange: [],
|
||||||
|
// 查询参数
|
||||||
|
queryParams: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
processKey: undefined,
|
||||||
|
processName: undefined,
|
||||||
|
category: "absence"
|
||||||
|
},
|
||||||
|
// 表单参数
|
||||||
|
form: {},
|
||||||
|
// 表单校验
|
||||||
|
rules: {},
|
||||||
|
btnLoading:true
|
||||||
|
};
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getCategoryList();
|
||||||
|
},
|
||||||
|
beforeRouteEnter(to, from, next) {
|
||||||
|
next(vm => {
|
||||||
|
vm.getList()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
handleStart() {
|
||||||
|
const row = this.process
|
||||||
|
this.$router.push({
|
||||||
|
path: '/workflow/process/start/' + row.deploymentId,
|
||||||
|
query: {
|
||||||
|
definitionId: row.definitionId,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/** 查询流程分类列表 */
|
||||||
|
getCategoryList() {
|
||||||
|
listAllCategory().then(response => this.categoryOptions = response.data)
|
||||||
|
},
|
||||||
|
/** 查询流程定义列表 */
|
||||||
|
getList() {
|
||||||
|
this.loading = true;
|
||||||
|
this.btnLoading = true;
|
||||||
|
listOwnProcess(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
|
||||||
|
listProcess(this.queryParams).then(response => {
|
||||||
|
this.process = response.rows[response.rows.length - 1];
|
||||||
|
this.btnLoading = false;
|
||||||
|
})
|
||||||
|
this.ownProcessList = response.rows;
|
||||||
|
this.total = response.total;
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
/**流程标题搜索**/
|
||||||
|
searchList(list, str) {
|
||||||
|
let arr = [];
|
||||||
|
list.forEach((item) => {
|
||||||
|
if (item.procVars.description.indexOf(str) > -1) {
|
||||||
|
arr.push(item)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return arr;
|
||||||
|
},
|
||||||
|
|
||||||
|
//对象数组排序(文本类)
|
||||||
|
/* compare(propertyName, order) {
|
||||||
|
return function (object1, object2) {
|
||||||
|
var value1 = object1[propertyName];
|
||||||
|
var value2 = object2[propertyName];
|
||||||
|
if (order == 0) {
|
||||||
|
if (value2 < value1) {
|
||||||
|
return -1;
|
||||||
|
} else if (value2 > value1) {
|
||||||
|
return 1;
|
||||||
|
} else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (order == 1) {
|
||||||
|
if (value2 > value1) {
|
||||||
|
return -1;
|
||||||
|
} else if (value2 < value1) {
|
||||||
|
return 1;
|
||||||
|
} else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
},*/
|
||||||
|
|
||||||
|
// 取消按钮
|
||||||
|
cancel() {
|
||||||
|
this.open = false;
|
||||||
|
this.reset();
|
||||||
|
},
|
||||||
|
// 表单重置
|
||||||
|
reset() {
|
||||||
|
this.form = {
|
||||||
|
id: null,
|
||||||
|
name: null,
|
||||||
|
category: null,
|
||||||
|
key: null,
|
||||||
|
tenantId: null,
|
||||||
|
deployTime: null,
|
||||||
|
derivedFrom: null,
|
||||||
|
derivedFromRoot: null,
|
||||||
|
parentDeploymentId: null,
|
||||||
|
engineVersion: null
|
||||||
|
};
|
||||||
|
this.resetForm("form");
|
||||||
|
},
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
handleQuery() {
|
||||||
|
this.queryParams.pageNum = 1;
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
resetQuery() {
|
||||||
|
this.dateRange = [];
|
||||||
|
this.resetForm("queryForm");
|
||||||
|
this.handleQuery();
|
||||||
|
},
|
||||||
|
// 多选框选中数据
|
||||||
|
handleSelectionChange(selection) {
|
||||||
|
this.ids = selection.map(item => item.procInsId);
|
||||||
|
this.single = selection.length !== 1;
|
||||||
|
this.multiple = !selection.length;
|
||||||
|
},
|
||||||
|
handleAgain(row) {
|
||||||
|
this.$router.push({
|
||||||
|
path: '/workflow/process/start/' + row.deployId,
|
||||||
|
query: {
|
||||||
|
definitionId: row.procDefId,
|
||||||
|
procInsId: row.procInsId
|
||||||
|
}
|
||||||
|
})
|
||||||
|
// console.log(row);
|
||||||
|
},
|
||||||
|
/** 取消流程申请 */
|
||||||
|
handleStop(row) {
|
||||||
|
const params = {
|
||||||
|
procInsId: row.procInsId
|
||||||
|
}
|
||||||
|
stopProcess(params).then(res => {
|
||||||
|
this.$modal.msgSuccess(res.msg);
|
||||||
|
this.getList();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 流程流转记录 */
|
||||||
|
handleFlowRecord(row) {
|
||||||
|
this.$router.push({
|
||||||
|
path: '/workflow/process/detail/' + row.procInsId,
|
||||||
|
query: {
|
||||||
|
processed: false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/** 删除按钮操作 */
|
||||||
|
handleDelete(row) {
|
||||||
|
const ids = row.procInsId || this.ids;
|
||||||
|
this.$confirm('是否确认删除流程定义编号为"' + ids + '"的数据项?', "警告", {
|
||||||
|
confirmButtonText: "确定",
|
||||||
|
cancelButtonText: "取消",
|
||||||
|
type: "warning"
|
||||||
|
}).then(function () {
|
||||||
|
return delProcess(ids);
|
||||||
|
}).then(() => {
|
||||||
|
this.getList();
|
||||||
|
this.$modal.msgSuccess("删除成功");
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/** 导出按钮操作 */
|
||||||
|
handleExport() {
|
||||||
|
this.download('workflow/process/ownExport', {
|
||||||
|
...this.queryParams
|
||||||
|
}, `wf_own_process_${new Date().getTime()}.xlsx`)
|
||||||
|
},
|
||||||
|
categoryFormat(row, column) {
|
||||||
|
return this.categoryOptions.find(k => k.code === row.category)?.categoryName ?? '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
329
ruoyi-ui/src/views/oa/apply/entertain/index.vue
Normal file
329
ruoyi-ui/src/views/oa/apply/entertain/index.vue
Normal file
@@ -0,0 +1,329 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
|
||||||
|
<!-- <el-form-item label="流程分类" prop="category">
|
||||||
|
<el-select v-model="queryParams.category" clearable placeholder="请选择" size="small">
|
||||||
|
<el-option
|
||||||
|
v-for="item in categoryOptions"
|
||||||
|
:key="item.categoryId"
|
||||||
|
:label="item.categoryName"
|
||||||
|
:value="item.code">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>-->
|
||||||
|
<el-form-item label="提交时间">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="dateRange"
|
||||||
|
style="width: 240px"
|
||||||
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
|
type="daterange"
|
||||||
|
range-separator="-"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
end-placeholder="结束日期"
|
||||||
|
:default-time="['00:00:00', '23:59:59']"
|
||||||
|
></el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||||
|
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
|
||||||
|
<el-row :gutter="10" class="mb8">
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
plain
|
||||||
|
icon="el-icon-edit"
|
||||||
|
size="mini"
|
||||||
|
:disabled="btnLoading"
|
||||||
|
@click="handleStart"
|
||||||
|
>发起招待申请
|
||||||
|
</el-button>
|
||||||
|
</el-col>
|
||||||
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-table v-loading="loading" :data="ownProcessList" @selection-change="handleSelectionChange">
|
||||||
|
<el-table-column type="selection" width="55" align="center"/>
|
||||||
|
<!-- <el-table-column label="流程编号" align="center" prop="procInsId" :show-overflow-tooltip="true"/>-->
|
||||||
|
<el-table-column label="招待事由" align="left" prop="procVars" :show-overflow-tooltip="true"/>
|
||||||
|
<!-- <el-table-column label="流程类别" align="center" prop="category" :formatter="categoryFormat" />-->
|
||||||
|
<el-table-column label="当前节点" width="150" align="center" prop="taskName"/>
|
||||||
|
<el-table-column label="提交时间" align="center" prop="createTime" width="160"/>
|
||||||
|
<el-table-column label="当前状态" align="center" width="100">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<dict-tag :options="dict.type.wf_process_status" :value="scope.row.processStatus"/>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="耗时" align="center" prop="duration" width="130"/>
|
||||||
|
<el-table-column label="操作" align="center" width="240" class-name="small-padding fixed-width">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button
|
||||||
|
type="text"
|
||||||
|
size="mini"
|
||||||
|
icon="el-icon-tickets"
|
||||||
|
@click="handleFlowRecord(scope.row)"
|
||||||
|
v-hasPermi="['workflow:process:query']"
|
||||||
|
>详情
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
type="text"
|
||||||
|
size="mini"
|
||||||
|
icon="el-icon-delete"
|
||||||
|
@click="handleDelete(scope.row)"
|
||||||
|
v-if="scope.row.finishTime"
|
||||||
|
v-hasPermi="['workflow:process:remove']"
|
||||||
|
>删除
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
type="text"
|
||||||
|
size="mini"
|
||||||
|
icon="el-icon-circle-close"
|
||||||
|
@click="handleStop(scope.row)"
|
||||||
|
v-hasPermi="['workflow:process:cancel']"
|
||||||
|
>取消
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
type="text"
|
||||||
|
size="mini"
|
||||||
|
icon="el-icon-refresh-right"
|
||||||
|
v-hasPermi="['workflow:process:start']"
|
||||||
|
@click="handleAgain(scope.row)"
|
||||||
|
>重新发起
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
|
||||||
|
<pagination
|
||||||
|
v-show="total>0"
|
||||||
|
:total="total"
|
||||||
|
:page.sync="queryParams.pageNum"
|
||||||
|
:limit.sync="queryParams.pageSize"
|
||||||
|
@pagination="getList"
|
||||||
|
/>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {listOwnProcess, stopProcess, delProcess, listProcess} from '@/api/workflow/process';
|
||||||
|
import {listAllCategory} from '@/api/workflow/category';
|
||||||
|
import {detailProcess} from '@/api/workflow/process'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "Own",
|
||||||
|
dicts: ['wf_process_status'],
|
||||||
|
components: {},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
// 遮罩层
|
||||||
|
loading: true,
|
||||||
|
processLoading: true,
|
||||||
|
// 选中数组
|
||||||
|
ids: [],
|
||||||
|
// 非单个禁用
|
||||||
|
single: true,
|
||||||
|
// 非多个禁用
|
||||||
|
multiple: true,
|
||||||
|
// 显示搜索条件
|
||||||
|
showSearch: true,
|
||||||
|
// 总条数
|
||||||
|
total: 0,
|
||||||
|
categoryOptions: [],
|
||||||
|
processTotal: 0,
|
||||||
|
// 我发起的流程列表数据
|
||||||
|
ownProcessList: [],
|
||||||
|
// 弹出层标题
|
||||||
|
title: "",
|
||||||
|
// 是否显示弹出层
|
||||||
|
open: false,
|
||||||
|
process: {},
|
||||||
|
src: "",
|
||||||
|
definitionList: [],
|
||||||
|
// 日期范围
|
||||||
|
dateRange: [],
|
||||||
|
// 查询参数
|
||||||
|
queryParams: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
processKey: undefined,
|
||||||
|
processName: undefined,
|
||||||
|
category: "entertain"
|
||||||
|
},
|
||||||
|
// 表单参数
|
||||||
|
form: {},
|
||||||
|
// 表单校验
|
||||||
|
rules: {},
|
||||||
|
btnLoading:true
|
||||||
|
};
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getCategoryList();
|
||||||
|
},
|
||||||
|
beforeRouteEnter(to, from, next) {
|
||||||
|
next(vm => {
|
||||||
|
vm.getList()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
handleStart() {
|
||||||
|
const row = this.process
|
||||||
|
this.$router.push({
|
||||||
|
path: '/workflow/process/start/' + row.deploymentId,
|
||||||
|
query: {
|
||||||
|
definitionId: row.definitionId,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/** 查询流程分类列表 */
|
||||||
|
getCategoryList() {
|
||||||
|
listAllCategory().then(response => this.categoryOptions = response.data)
|
||||||
|
},
|
||||||
|
/** 查询流程定义列表 */
|
||||||
|
getList() {
|
||||||
|
this.loading = true;
|
||||||
|
this.btnLoading = true;
|
||||||
|
listOwnProcess(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
|
||||||
|
listProcess(this.queryParams).then(response => {
|
||||||
|
this.process = response.rows[response.rows.length - 1];
|
||||||
|
this.btnLoading = false;
|
||||||
|
})
|
||||||
|
this.ownProcessList = response.rows;
|
||||||
|
this.total = response.total;
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
/**流程标题搜索**/
|
||||||
|
searchList(list, str) {
|
||||||
|
let arr = [];
|
||||||
|
list.forEach((item) => {
|
||||||
|
if (item.procVars.description.indexOf(str) > -1) {
|
||||||
|
arr.push(item)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return arr;
|
||||||
|
},
|
||||||
|
|
||||||
|
//对象数组排序(文本类)
|
||||||
|
/* compare(propertyName, order) {
|
||||||
|
return function (object1, object2) {
|
||||||
|
var value1 = object1[propertyName];
|
||||||
|
var value2 = object2[propertyName];
|
||||||
|
if (order == 0) {
|
||||||
|
if (value2 < value1) {
|
||||||
|
return -1;
|
||||||
|
} else if (value2 > value1) {
|
||||||
|
return 1;
|
||||||
|
} else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (order == 1) {
|
||||||
|
if (value2 > value1) {
|
||||||
|
return -1;
|
||||||
|
} else if (value2 < value1) {
|
||||||
|
return 1;
|
||||||
|
} else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
},*/
|
||||||
|
|
||||||
|
// 取消按钮
|
||||||
|
cancel() {
|
||||||
|
this.open = false;
|
||||||
|
this.reset();
|
||||||
|
},
|
||||||
|
// 表单重置
|
||||||
|
reset() {
|
||||||
|
this.form = {
|
||||||
|
id: null,
|
||||||
|
name: null,
|
||||||
|
category: null,
|
||||||
|
key: null,
|
||||||
|
tenantId: null,
|
||||||
|
deployTime: null,
|
||||||
|
derivedFrom: null,
|
||||||
|
derivedFromRoot: null,
|
||||||
|
parentDeploymentId: null,
|
||||||
|
engineVersion: null
|
||||||
|
};
|
||||||
|
this.resetForm("form");
|
||||||
|
},
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
handleQuery() {
|
||||||
|
this.queryParams.pageNum = 1;
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
resetQuery() {
|
||||||
|
this.dateRange = [];
|
||||||
|
this.resetForm("queryForm");
|
||||||
|
this.handleQuery();
|
||||||
|
},
|
||||||
|
// 多选框选中数据
|
||||||
|
handleSelectionChange(selection) {
|
||||||
|
this.ids = selection.map(item => item.procInsId);
|
||||||
|
this.single = selection.length !== 1;
|
||||||
|
this.multiple = !selection.length;
|
||||||
|
},
|
||||||
|
handleAgain(row) {
|
||||||
|
this.$router.push({
|
||||||
|
path: '/workflow/process/start/' + row.deployId,
|
||||||
|
query: {
|
||||||
|
definitionId: row.procDefId,
|
||||||
|
procInsId: row.procInsId
|
||||||
|
}
|
||||||
|
})
|
||||||
|
// console.log(row);
|
||||||
|
},
|
||||||
|
/** 取消流程申请 */
|
||||||
|
handleStop(row) {
|
||||||
|
const params = {
|
||||||
|
procInsId: row.procInsId
|
||||||
|
}
|
||||||
|
stopProcess(params).then(res => {
|
||||||
|
this.$modal.msgSuccess(res.msg);
|
||||||
|
this.getList();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 流程流转记录 */
|
||||||
|
handleFlowRecord(row) {
|
||||||
|
this.$router.push({
|
||||||
|
path: '/workflow/process/detail/' + row.procInsId,
|
||||||
|
query: {
|
||||||
|
processed: false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/** 删除按钮操作 */
|
||||||
|
handleDelete(row) {
|
||||||
|
const ids = row.procInsId || this.ids;
|
||||||
|
this.$confirm('是否确认删除流程定义编号为"' + ids + '"的数据项?', "警告", {
|
||||||
|
confirmButtonText: "确定",
|
||||||
|
cancelButtonText: "取消",
|
||||||
|
type: "warning"
|
||||||
|
}).then(function () {
|
||||||
|
return delProcess(ids);
|
||||||
|
}).then(() => {
|
||||||
|
this.getList();
|
||||||
|
this.$modal.msgSuccess("删除成功");
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/** 导出按钮操作 */
|
||||||
|
handleExport() {
|
||||||
|
this.download('workflow/process/ownExport', {
|
||||||
|
...this.queryParams
|
||||||
|
}, `wf_own_process_${new Date().getTime()}.xlsx`)
|
||||||
|
},
|
||||||
|
categoryFormat(row, column) {
|
||||||
|
return this.categoryOptions.find(k => k.code === row.category)?.categoryName ?? '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
329
ruoyi-ui/src/views/oa/apply/other/index.vue
Normal file
329
ruoyi-ui/src/views/oa/apply/other/index.vue
Normal file
@@ -0,0 +1,329 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
|
||||||
|
<!-- <el-form-item label="流程分类" prop="category">
|
||||||
|
<el-select v-model="queryParams.category" clearable placeholder="请选择" size="small">
|
||||||
|
<el-option
|
||||||
|
v-for="item in categoryOptions"
|
||||||
|
:key="item.categoryId"
|
||||||
|
:label="item.categoryName"
|
||||||
|
:value="item.code">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>-->
|
||||||
|
<el-form-item label="提交时间">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="dateRange"
|
||||||
|
style="width: 240px"
|
||||||
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
|
type="daterange"
|
||||||
|
range-separator="-"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
end-placeholder="结束日期"
|
||||||
|
:default-time="['00:00:00', '23:59:59']"
|
||||||
|
></el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||||
|
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
|
||||||
|
<el-row :gutter="10" class="mb8">
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
plain
|
||||||
|
icon="el-icon-edit"
|
||||||
|
size="mini"
|
||||||
|
:disabled="btnLoading"
|
||||||
|
@click="handleStart"
|
||||||
|
>发起申请
|
||||||
|
</el-button>
|
||||||
|
</el-col>
|
||||||
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-table v-loading="loading" :data="ownProcessList" @selection-change="handleSelectionChange">
|
||||||
|
<el-table-column type="selection" width="55" align="center"/>
|
||||||
|
<!-- <el-table-column label="流程编号" align="center" prop="procInsId" :show-overflow-tooltip="true"/>-->
|
||||||
|
<el-table-column label="申请事由" align="left" prop="procVars" :show-overflow-tooltip="true"/>
|
||||||
|
<!-- <el-table-column label="流程类别" align="center" prop="category" :formatter="categoryFormat" />-->
|
||||||
|
<el-table-column label="当前节点" width="150" align="center" prop="taskName"/>
|
||||||
|
<el-table-column label="提交时间" align="center" prop="createTime" width="160"/>
|
||||||
|
<el-table-column label="当前状态" align="center" width="100">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<dict-tag :options="dict.type.wf_process_status" :value="scope.row.processStatus"/>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="耗时" align="center" prop="duration" width="130"/>
|
||||||
|
<el-table-column label="操作" align="center" width="240" class-name="small-padding fixed-width">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button
|
||||||
|
type="text"
|
||||||
|
size="mini"
|
||||||
|
icon="el-icon-tickets"
|
||||||
|
@click="handleFlowRecord(scope.row)"
|
||||||
|
v-hasPermi="['workflow:process:query']"
|
||||||
|
>详情
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
type="text"
|
||||||
|
size="mini"
|
||||||
|
icon="el-icon-delete"
|
||||||
|
@click="handleDelete(scope.row)"
|
||||||
|
v-if="scope.row.finishTime"
|
||||||
|
v-hasPermi="['workflow:process:remove']"
|
||||||
|
>删除
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
type="text"
|
||||||
|
size="mini"
|
||||||
|
icon="el-icon-circle-close"
|
||||||
|
@click="handleStop(scope.row)"
|
||||||
|
v-hasPermi="['workflow:process:cancel']"
|
||||||
|
>取消
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
type="text"
|
||||||
|
size="mini"
|
||||||
|
icon="el-icon-refresh-right"
|
||||||
|
v-hasPermi="['workflow:process:start']"
|
||||||
|
@click="handleAgain(scope.row)"
|
||||||
|
>重新发起
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
|
||||||
|
<pagination
|
||||||
|
v-show="total>0"
|
||||||
|
:total="total"
|
||||||
|
:page.sync="queryParams.pageNum"
|
||||||
|
:limit.sync="queryParams.pageSize"
|
||||||
|
@pagination="getList"
|
||||||
|
/>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {listOwnProcess, stopProcess, delProcess, listProcess} from '@/api/workflow/process';
|
||||||
|
import {listAllCategory} from '@/api/workflow/category';
|
||||||
|
import {detailProcess} from '@/api/workflow/process'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "Own",
|
||||||
|
dicts: ['wf_process_status'],
|
||||||
|
components: {},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
// 遮罩层
|
||||||
|
loading: true,
|
||||||
|
processLoading: true,
|
||||||
|
// 选中数组
|
||||||
|
ids: [],
|
||||||
|
// 非单个禁用
|
||||||
|
single: true,
|
||||||
|
// 非多个禁用
|
||||||
|
multiple: true,
|
||||||
|
// 显示搜索条件
|
||||||
|
showSearch: true,
|
||||||
|
// 总条数
|
||||||
|
total: 0,
|
||||||
|
categoryOptions: [],
|
||||||
|
processTotal: 0,
|
||||||
|
// 我发起的流程列表数据
|
||||||
|
ownProcessList: [],
|
||||||
|
// 弹出层标题
|
||||||
|
title: "",
|
||||||
|
// 是否显示弹出层
|
||||||
|
open: false,
|
||||||
|
process: {},
|
||||||
|
src: "",
|
||||||
|
definitionList: [],
|
||||||
|
// 日期范围
|
||||||
|
dateRange: [],
|
||||||
|
// 查询参数
|
||||||
|
queryParams: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
processKey: undefined,
|
||||||
|
processName: undefined,
|
||||||
|
category: "other"
|
||||||
|
},
|
||||||
|
// 表单参数
|
||||||
|
form: {},
|
||||||
|
// 表单校验
|
||||||
|
rules: {},
|
||||||
|
btnLoading:true
|
||||||
|
};
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getCategoryList();
|
||||||
|
},
|
||||||
|
beforeRouteEnter(to, from, next) {
|
||||||
|
next(vm => {
|
||||||
|
vm.getList()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
handleStart() {
|
||||||
|
const row = this.process
|
||||||
|
this.$router.push({
|
||||||
|
path: '/workflow/process/start/' + row.deploymentId,
|
||||||
|
query: {
|
||||||
|
definitionId: row.definitionId,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/** 查询流程分类列表 */
|
||||||
|
getCategoryList() {
|
||||||
|
listAllCategory().then(response => this.categoryOptions = response.data)
|
||||||
|
},
|
||||||
|
/** 查询流程定义列表 */
|
||||||
|
getList() {
|
||||||
|
this.loading = true;
|
||||||
|
this.btnLoading = true;
|
||||||
|
listOwnProcess(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
|
||||||
|
listProcess(this.queryParams).then(response => {
|
||||||
|
this.process = response.rows[response.rows.length - 1];
|
||||||
|
this.btnLoading = false;
|
||||||
|
})
|
||||||
|
this.ownProcessList = response.rows;
|
||||||
|
this.total = response.total;
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
/**流程标题搜索**/
|
||||||
|
searchList(list, str) {
|
||||||
|
let arr = [];
|
||||||
|
list.forEach((item) => {
|
||||||
|
if (item.procVars.description.indexOf(str) > -1) {
|
||||||
|
arr.push(item)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return arr;
|
||||||
|
},
|
||||||
|
|
||||||
|
//对象数组排序(文本类)
|
||||||
|
/* compare(propertyName, order) {
|
||||||
|
return function (object1, object2) {
|
||||||
|
var value1 = object1[propertyName];
|
||||||
|
var value2 = object2[propertyName];
|
||||||
|
if (order == 0) {
|
||||||
|
if (value2 < value1) {
|
||||||
|
return -1;
|
||||||
|
} else if (value2 > value1) {
|
||||||
|
return 1;
|
||||||
|
} else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (order == 1) {
|
||||||
|
if (value2 > value1) {
|
||||||
|
return -1;
|
||||||
|
} else if (value2 < value1) {
|
||||||
|
return 1;
|
||||||
|
} else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
},*/
|
||||||
|
|
||||||
|
// 取消按钮
|
||||||
|
cancel() {
|
||||||
|
this.open = false;
|
||||||
|
this.reset();
|
||||||
|
},
|
||||||
|
// 表单重置
|
||||||
|
reset() {
|
||||||
|
this.form = {
|
||||||
|
id: null,
|
||||||
|
name: null,
|
||||||
|
category: null,
|
||||||
|
key: null,
|
||||||
|
tenantId: null,
|
||||||
|
deployTime: null,
|
||||||
|
derivedFrom: null,
|
||||||
|
derivedFromRoot: null,
|
||||||
|
parentDeploymentId: null,
|
||||||
|
engineVersion: null
|
||||||
|
};
|
||||||
|
this.resetForm("form");
|
||||||
|
},
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
handleQuery() {
|
||||||
|
this.queryParams.pageNum = 1;
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
resetQuery() {
|
||||||
|
this.dateRange = [];
|
||||||
|
this.resetForm("queryForm");
|
||||||
|
this.handleQuery();
|
||||||
|
},
|
||||||
|
// 多选框选中数据
|
||||||
|
handleSelectionChange(selection) {
|
||||||
|
this.ids = selection.map(item => item.procInsId);
|
||||||
|
this.single = selection.length !== 1;
|
||||||
|
this.multiple = !selection.length;
|
||||||
|
},
|
||||||
|
handleAgain(row) {
|
||||||
|
this.$router.push({
|
||||||
|
path: '/workflow/process/start/' + row.deployId,
|
||||||
|
query: {
|
||||||
|
definitionId: row.procDefId,
|
||||||
|
procInsId: row.procInsId
|
||||||
|
}
|
||||||
|
})
|
||||||
|
// console.log(row);
|
||||||
|
},
|
||||||
|
/** 取消流程申请 */
|
||||||
|
handleStop(row) {
|
||||||
|
const params = {
|
||||||
|
procInsId: row.procInsId
|
||||||
|
}
|
||||||
|
stopProcess(params).then(res => {
|
||||||
|
this.$modal.msgSuccess(res.msg);
|
||||||
|
this.getList();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 流程流转记录 */
|
||||||
|
handleFlowRecord(row) {
|
||||||
|
this.$router.push({
|
||||||
|
path: '/workflow/process/detail/' + row.procInsId,
|
||||||
|
query: {
|
||||||
|
processed: false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/** 删除按钮操作 */
|
||||||
|
handleDelete(row) {
|
||||||
|
const ids = row.procInsId || this.ids;
|
||||||
|
this.$confirm('是否确认删除流程定义编号为"' + ids + '"的数据项?', "警告", {
|
||||||
|
confirmButtonText: "确定",
|
||||||
|
cancelButtonText: "取消",
|
||||||
|
type: "warning"
|
||||||
|
}).then(function () {
|
||||||
|
return delProcess(ids);
|
||||||
|
}).then(() => {
|
||||||
|
this.getList();
|
||||||
|
this.$modal.msgSuccess("删除成功");
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/** 导出按钮操作 */
|
||||||
|
handleExport() {
|
||||||
|
this.download('workflow/process/ownExport', {
|
||||||
|
...this.queryParams
|
||||||
|
}, `wf_own_process_${new Date().getTime()}.xlsx`)
|
||||||
|
},
|
||||||
|
categoryFormat(row, column) {
|
||||||
|
return this.categoryOptions.find(k => k.code === row.category)?.categoryName ?? '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
329
ruoyi-ui/src/views/oa/apply/seal/index.vue
Normal file
329
ruoyi-ui/src/views/oa/apply/seal/index.vue
Normal file
@@ -0,0 +1,329 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
|
||||||
|
<!-- <el-form-item label="流程分类" prop="category">
|
||||||
|
<el-select v-model="queryParams.category" clearable placeholder="请选择" size="small">
|
||||||
|
<el-option
|
||||||
|
v-for="item in categoryOptions"
|
||||||
|
:key="item.categoryId"
|
||||||
|
:label="item.categoryName"
|
||||||
|
:value="item.code">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>-->
|
||||||
|
<el-form-item label="提交时间">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="dateRange"
|
||||||
|
style="width: 240px"
|
||||||
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
|
type="daterange"
|
||||||
|
range-separator="-"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
end-placeholder="结束日期"
|
||||||
|
:default-time="['00:00:00', '23:59:59']"
|
||||||
|
></el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||||
|
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
|
||||||
|
<el-row :gutter="10" class="mb8">
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
plain
|
||||||
|
icon="el-icon-edit"
|
||||||
|
size="mini"
|
||||||
|
:disabled="btnLoading"
|
||||||
|
@click="handleStart"
|
||||||
|
>发起用印申请
|
||||||
|
</el-button>
|
||||||
|
</el-col>
|
||||||
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-table v-loading="loading" :data="ownProcessList" @selection-change="handleSelectionChange">
|
||||||
|
<el-table-column type="selection" width="55" align="center"/>
|
||||||
|
<!-- <el-table-column label="流程编号" align="center" prop="procInsId" :show-overflow-tooltip="true"/>-->
|
||||||
|
<el-table-column label="用印事由" align="left" prop="procVars" :show-overflow-tooltip="true"/>
|
||||||
|
<!-- <el-table-column label="流程类别" align="center" prop="category" :formatter="categoryFormat" />-->
|
||||||
|
<el-table-column label="当前节点" width="150" align="center" prop="taskName"/>
|
||||||
|
<el-table-column label="提交时间" align="center" prop="createTime" width="160"/>
|
||||||
|
<el-table-column label="当前状态" align="center" width="100">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<dict-tag :options="dict.type.wf_process_status" :value="scope.row.processStatus"/>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="耗时" align="center" prop="duration" width="130"/>
|
||||||
|
<el-table-column label="操作" align="center" width="240" class-name="small-padding fixed-width">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button
|
||||||
|
type="text"
|
||||||
|
size="mini"
|
||||||
|
icon="el-icon-tickets"
|
||||||
|
@click="handleFlowRecord(scope.row)"
|
||||||
|
v-hasPermi="['workflow:process:query']"
|
||||||
|
>详情
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
type="text"
|
||||||
|
size="mini"
|
||||||
|
icon="el-icon-delete"
|
||||||
|
@click="handleDelete(scope.row)"
|
||||||
|
v-if="scope.row.finishTime"
|
||||||
|
v-hasPermi="['workflow:process:remove']"
|
||||||
|
>删除
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
type="text"
|
||||||
|
size="mini"
|
||||||
|
icon="el-icon-circle-close"
|
||||||
|
@click="handleStop(scope.row)"
|
||||||
|
v-hasPermi="['workflow:process:cancel']"
|
||||||
|
>取消
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
type="text"
|
||||||
|
size="mini"
|
||||||
|
icon="el-icon-refresh-right"
|
||||||
|
v-hasPermi="['workflow:process:start']"
|
||||||
|
@click="handleAgain(scope.row)"
|
||||||
|
>重新发起
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
|
||||||
|
<pagination
|
||||||
|
v-show="total>0"
|
||||||
|
:total="total"
|
||||||
|
:page.sync="queryParams.pageNum"
|
||||||
|
:limit.sync="queryParams.pageSize"
|
||||||
|
@pagination="getList"
|
||||||
|
/>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {listOwnProcess, stopProcess, delProcess, listProcess} from '@/api/workflow/process';
|
||||||
|
import {listAllCategory} from '@/api/workflow/category';
|
||||||
|
import {detailProcess} from '@/api/workflow/process'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "Own",
|
||||||
|
dicts: ['wf_process_status'],
|
||||||
|
components: {},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
// 遮罩层
|
||||||
|
loading: true,
|
||||||
|
processLoading: true,
|
||||||
|
// 选中数组
|
||||||
|
ids: [],
|
||||||
|
// 非单个禁用
|
||||||
|
single: true,
|
||||||
|
// 非多个禁用
|
||||||
|
multiple: true,
|
||||||
|
// 显示搜索条件
|
||||||
|
showSearch: true,
|
||||||
|
// 总条数
|
||||||
|
total: 0,
|
||||||
|
categoryOptions: [],
|
||||||
|
processTotal: 0,
|
||||||
|
// 我发起的流程列表数据
|
||||||
|
ownProcessList: [],
|
||||||
|
// 弹出层标题
|
||||||
|
title: "",
|
||||||
|
// 是否显示弹出层
|
||||||
|
open: false,
|
||||||
|
process: {},
|
||||||
|
src: "",
|
||||||
|
definitionList: [],
|
||||||
|
// 日期范围
|
||||||
|
dateRange: [],
|
||||||
|
// 查询参数
|
||||||
|
queryParams: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
processKey: undefined,
|
||||||
|
processName: undefined,
|
||||||
|
category: "seal"
|
||||||
|
},
|
||||||
|
// 表单参数
|
||||||
|
form: {},
|
||||||
|
// 表单校验
|
||||||
|
rules: {},
|
||||||
|
btnLoading:true
|
||||||
|
};
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getCategoryList();
|
||||||
|
},
|
||||||
|
beforeRouteEnter(to, from, next) {
|
||||||
|
next(vm => {
|
||||||
|
vm.getList()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
handleStart() {
|
||||||
|
const row = this.process
|
||||||
|
this.$router.push({
|
||||||
|
path: '/workflow/process/start/' + row.deploymentId,
|
||||||
|
query: {
|
||||||
|
definitionId: row.definitionId,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/** 查询流程分类列表 */
|
||||||
|
getCategoryList() {
|
||||||
|
listAllCategory().then(response => this.categoryOptions = response.data)
|
||||||
|
},
|
||||||
|
/** 查询流程定义列表 */
|
||||||
|
getList() {
|
||||||
|
this.loading = true;
|
||||||
|
this.btnLoading = true;
|
||||||
|
listOwnProcess(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
|
||||||
|
listProcess(this.queryParams).then(response => {
|
||||||
|
this.process = response.rows[response.rows.length - 1];
|
||||||
|
this.btnLoading = false;
|
||||||
|
})
|
||||||
|
this.ownProcessList = response.rows;
|
||||||
|
this.total = response.total;
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
/**流程标题搜索**/
|
||||||
|
searchList(list, str) {
|
||||||
|
let arr = [];
|
||||||
|
list.forEach((item) => {
|
||||||
|
if (item.procVars.description.indexOf(str) > -1) {
|
||||||
|
arr.push(item)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return arr;
|
||||||
|
},
|
||||||
|
|
||||||
|
//对象数组排序(文本类)
|
||||||
|
/* compare(propertyName, order) {
|
||||||
|
return function (object1, object2) {
|
||||||
|
var value1 = object1[propertyName];
|
||||||
|
var value2 = object2[propertyName];
|
||||||
|
if (order == 0) {
|
||||||
|
if (value2 < value1) {
|
||||||
|
return -1;
|
||||||
|
} else if (value2 > value1) {
|
||||||
|
return 1;
|
||||||
|
} else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (order == 1) {
|
||||||
|
if (value2 > value1) {
|
||||||
|
return -1;
|
||||||
|
} else if (value2 < value1) {
|
||||||
|
return 1;
|
||||||
|
} else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
},*/
|
||||||
|
|
||||||
|
// 取消按钮
|
||||||
|
cancel() {
|
||||||
|
this.open = false;
|
||||||
|
this.reset();
|
||||||
|
},
|
||||||
|
// 表单重置
|
||||||
|
reset() {
|
||||||
|
this.form = {
|
||||||
|
id: null,
|
||||||
|
name: null,
|
||||||
|
category: null,
|
||||||
|
key: null,
|
||||||
|
tenantId: null,
|
||||||
|
deployTime: null,
|
||||||
|
derivedFrom: null,
|
||||||
|
derivedFromRoot: null,
|
||||||
|
parentDeploymentId: null,
|
||||||
|
engineVersion: null
|
||||||
|
};
|
||||||
|
this.resetForm("form");
|
||||||
|
},
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
handleQuery() {
|
||||||
|
this.queryParams.pageNum = 1;
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
resetQuery() {
|
||||||
|
this.dateRange = [];
|
||||||
|
this.resetForm("queryForm");
|
||||||
|
this.handleQuery();
|
||||||
|
},
|
||||||
|
// 多选框选中数据
|
||||||
|
handleSelectionChange(selection) {
|
||||||
|
this.ids = selection.map(item => item.procInsId);
|
||||||
|
this.single = selection.length !== 1;
|
||||||
|
this.multiple = !selection.length;
|
||||||
|
},
|
||||||
|
handleAgain(row) {
|
||||||
|
this.$router.push({
|
||||||
|
path: '/workflow/process/start/' + row.deployId,
|
||||||
|
query: {
|
||||||
|
definitionId: row.procDefId,
|
||||||
|
procInsId: row.procInsId
|
||||||
|
}
|
||||||
|
})
|
||||||
|
// console.log(row);
|
||||||
|
},
|
||||||
|
/** 取消流程申请 */
|
||||||
|
handleStop(row) {
|
||||||
|
const params = {
|
||||||
|
procInsId: row.procInsId
|
||||||
|
}
|
||||||
|
stopProcess(params).then(res => {
|
||||||
|
this.$modal.msgSuccess(res.msg);
|
||||||
|
this.getList();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 流程流转记录 */
|
||||||
|
handleFlowRecord(row) {
|
||||||
|
this.$router.push({
|
||||||
|
path: '/workflow/process/detail/' + row.procInsId,
|
||||||
|
query: {
|
||||||
|
processed: false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/** 删除按钮操作 */
|
||||||
|
handleDelete(row) {
|
||||||
|
const ids = row.procInsId || this.ids;
|
||||||
|
this.$confirm('是否确认删除流程定义编号为"' + ids + '"的数据项?', "警告", {
|
||||||
|
confirmButtonText: "确定",
|
||||||
|
cancelButtonText: "取消",
|
||||||
|
type: "warning"
|
||||||
|
}).then(function () {
|
||||||
|
return delProcess(ids);
|
||||||
|
}).then(() => {
|
||||||
|
this.getList();
|
||||||
|
this.$modal.msgSuccess("删除成功");
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/** 导出按钮操作 */
|
||||||
|
handleExport() {
|
||||||
|
this.download('workflow/process/ownExport', {
|
||||||
|
...this.queryParams
|
||||||
|
}, `wf_own_process_${new Date().getTime()}.xlsx`)
|
||||||
|
},
|
||||||
|
categoryFormat(row, column) {
|
||||||
|
return this.categoryOptions.find(k => k.code === row.category)?.categoryName ?? '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
@@ -161,7 +161,8 @@
|
|||||||
<el-button @click="calcWork"
|
<el-button @click="calcWork"
|
||||||
element-loading-text="正在计算,请稍等"
|
element-loading-text="正在计算,请稍等"
|
||||||
v-loading.fullscreen.lock="fullscreenLoading"
|
v-loading.fullscreen.lock="fullscreenLoading"
|
||||||
>计算</el-button>
|
>计算
|
||||||
|
</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
|||||||
@@ -18,6 +18,28 @@
|
|||||||
<el-form-item label="审批意见" prop="comment">
|
<el-form-item label="审批意见" prop="comment">
|
||||||
<el-input type="textarea" :rows="5" v-model="taskForm.comment" placeholder="请输入 审批意见" />
|
<el-input type="textarea" :rows="5" v-model="taskForm.comment" placeholder="请输入 审批意见" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="抄送人" prop="copyUserIds">
|
||||||
|
<el-tag
|
||||||
|
:key="index"
|
||||||
|
v-for="(item, index) in copyUser"
|
||||||
|
closable
|
||||||
|
:disable-transitions="false"
|
||||||
|
@close="handleClose('copy', item)">
|
||||||
|
{{ item.nickName }}
|
||||||
|
</el-tag>
|
||||||
|
<el-button class="button-new-tag" type="primary" icon="el-icon-plus" size="mini" circle @click="onSelectCopyUsers" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="指定审批人" prop="copyUserIds">
|
||||||
|
<el-tag
|
||||||
|
:key="index"
|
||||||
|
v-for="(item, index) in nextUser"
|
||||||
|
closable
|
||||||
|
:disable-transitions="false"
|
||||||
|
@close="handleClose('next', item)">
|
||||||
|
{{ item.nickName }}
|
||||||
|
</el-tag>
|
||||||
|
<el-button class="button-new-tag" type="primary" icon="el-icon-plus" size="mini" circle @click="onSelectNextUsers" />
|
||||||
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
@@ -251,13 +273,7 @@
|
|||||||
/>
|
/>
|
||||||
</el-card>
|
</el-card>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
|
|
||||||
|
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@@ -21,6 +21,28 @@
|
|||||||
<el-form-item label="审批意见" prop="comment">
|
<el-form-item label="审批意见" prop="comment">
|
||||||
<el-input type="textarea" :rows="5" v-model="taskForm.comment" placeholder="请输入 审批意见"/>
|
<el-input type="textarea" :rows="5" v-model="taskForm.comment" placeholder="请输入 审批意见"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="抄送人" prop="copyUserIds">
|
||||||
|
<el-tag
|
||||||
|
:key="index"
|
||||||
|
v-for="(item, index) in copyUser"
|
||||||
|
closable
|
||||||
|
:disable-transitions="false"
|
||||||
|
@close="handleClose('copy', item)">
|
||||||
|
{{ item.nickName }}
|
||||||
|
</el-tag>
|
||||||
|
<el-button class="button-new-tag" type="primary" icon="el-icon-plus" size="mini" circle @click="onSelectCopyUsers" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="指定审批人" prop="copyUserIds">
|
||||||
|
<el-tag
|
||||||
|
:key="index"
|
||||||
|
v-for="(item, index) in nextUser"
|
||||||
|
closable
|
||||||
|
:disable-transitions="false"
|
||||||
|
@close="handleClose('next', item)">
|
||||||
|
{{ item.nickName }}
|
||||||
|
</el-tag>
|
||||||
|
<el-button class="button-new-tag" type="primary" icon="el-icon-plus" size="mini" circle @click="onSelectNextUsers" />
|
||||||
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
@@ -49,8 +71,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<!--流程处理表单模块-->
|
<!--流程处理表单模块-->
|
||||||
<el-col :span="20" :offset="2">
|
<el-col :span="20" :offset="2">
|
||||||
<parser :form-conf="formInfo" v-if="formType===''"/>
|
|
||||||
<claim-detail :form="form" :detailList="detailList" v-if="formType ==='claim'"></claim-detail>
|
<claim-detail :form="form" :detailList="detailList" v-if="formType ==='claim'"></claim-detail>
|
||||||
|
<parser :form-conf="formInfo" v-else/>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-card>
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
@@ -64,7 +86,8 @@
|
|||||||
<el-col :span="20" :offset="2">
|
<el-col :span="20" :offset="2">
|
||||||
<div class="block">
|
<div class="block">
|
||||||
<el-timeline>
|
<el-timeline>
|
||||||
<el-timeline-item v-for="(item,index) in historyProcNodeList" :key="index" :icon="setIcon(item.endTime)" :color="setColor(item.endTime)">
|
<el-timeline-item v-for="(item,index) in historyProcNodeList" :key="index" :icon="setIcon(item.endTime)"
|
||||||
|
:color="setColor(item.endTime)">
|
||||||
<p style="font-weight: 700">{{ item.activityName }}</p>
|
<p style="font-weight: 700">{{ item.activityName }}</p>
|
||||||
<el-card v-if="item.activityType === 'startEvent'" class="box-card" shadow="hover">
|
<el-card v-if="item.activityType === 'startEvent'" class="box-card" shadow="hover">
|
||||||
{{ item.assigneeName }} 在 {{ item.createTime }} 发起流程
|
{{ item.assigneeName }} 在 {{ item.createTime }} 发起流程
|
||||||
@@ -79,7 +102,9 @@
|
|||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
<div v-if="item.commentList && item.commentList.length > 0">
|
<div v-if="item.commentList && item.commentList.length > 0">
|
||||||
<el-divider content-position="left">
|
<el-divider content-position="left">
|
||||||
<el-tag :type="approveTypeTag(item.commentList[0].type)" size="mini">{{ commentType(item.commentList[0].type) }}</el-tag>
|
<el-tag :type="approveTypeTag(item.commentList[0].type)" size="mini">
|
||||||
|
{{ commentType(item.commentList[0].type) }}
|
||||||
|
</el-tag>
|
||||||
<el-tag type="info" effect="plain" size="mini">{{ item.commentList[0].time }}</el-tag>
|
<el-tag type="info" effect="plain" size="mini">{{ item.commentList[0].time }}</el-tag>
|
||||||
</el-divider>
|
</el-divider>
|
||||||
<span>{{ item.commentList[0].fullMessage }}</span>
|
<span>{{ item.commentList[0].fullMessage }}</span>
|
||||||
@@ -115,7 +140,8 @@
|
|||||||
v-for="item in returnTaskList"
|
v-for="item in returnTaskList"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
:label="item.id"
|
:label="item.id"
|
||||||
>{{item.name}}</el-radio-button>
|
>{{ item.name }}
|
||||||
|
</el-radio-button>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
@@ -134,7 +160,8 @@
|
|||||||
<span>部门列表</span>
|
<span>部门列表</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="head-container">
|
<div class="head-container">
|
||||||
<el-input v-model="deptName" placeholder="请输入部门名称" clearable size="small" prefix-icon="el-icon-search"/>
|
<el-input v-model="deptName" placeholder="请输入部门名称" clearable size="small"
|
||||||
|
prefix-icon="el-icon-search"/>
|
||||||
<el-tree
|
<el-tree
|
||||||
:data="deptOptions"
|
:data="deptOptions"
|
||||||
:props="deptProps"
|
:props="deptProps"
|
||||||
@@ -206,26 +233,40 @@ export default {
|
|||||||
commentType() {
|
commentType() {
|
||||||
return val => {
|
return val => {
|
||||||
switch (val) {
|
switch (val) {
|
||||||
case '1': return '通过'
|
case '1':
|
||||||
case '2': return '退回'
|
return '通过'
|
||||||
case '3': return '驳回'
|
case '2':
|
||||||
case '4': return '委派'
|
return '退回'
|
||||||
case '5': return '转办'
|
case '3':
|
||||||
case '6': return '终止'
|
return '驳回'
|
||||||
case '7': return '撤回'
|
case '4':
|
||||||
|
return '委派'
|
||||||
|
case '5':
|
||||||
|
return '转办'
|
||||||
|
case '6':
|
||||||
|
return '终止'
|
||||||
|
case '7':
|
||||||
|
return '撤回'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
approveTypeTag() {
|
approveTypeTag() {
|
||||||
return val => {
|
return val => {
|
||||||
switch (val) {
|
switch (val) {
|
||||||
case '1': return 'success'
|
case '1':
|
||||||
case '2': return 'warning'
|
return 'success'
|
||||||
case '3': return 'danger'
|
case '2':
|
||||||
case '4': return 'primary'
|
return 'warning'
|
||||||
case '5': return 'success'
|
case '3':
|
||||||
case '6': return 'danger'
|
return 'danger'
|
||||||
case '7': return 'info'
|
case '4':
|
||||||
|
return 'primary'
|
||||||
|
case '5':
|
||||||
|
return 'success'
|
||||||
|
case '6':
|
||||||
|
return 'danger'
|
||||||
|
case '7':
|
||||||
|
return 'info'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -421,6 +462,7 @@ export default {
|
|||||||
getProcessDetails(procInsId, taskId) {
|
getProcessDetails(procInsId, taskId) {
|
||||||
const params = {procInsId: procInsId, taskId: taskId}
|
const params = {procInsId: procInsId, taskId: taskId}
|
||||||
detailProcess(params).then(res => {
|
detailProcess(params).then(res => {
|
||||||
|
console.log(res.data)
|
||||||
const data = res.data;
|
const data = res.data;
|
||||||
this.xmlData = data.bpmnXml;
|
this.xmlData = data.bpmnXml;
|
||||||
this.processFormList = data.processFormList;
|
this.processFormList = data.processFormList;
|
||||||
@@ -432,6 +474,7 @@ export default {
|
|||||||
this.finishedInfo = data.flowViewer;
|
this.finishedInfo = data.flowViewer;
|
||||||
this.formOpen = true
|
this.formOpen = true
|
||||||
this.processTitleValue = data.processFormList[0].fields[0].__config__.defaultValue;
|
this.processTitleValue = data.processFormList[0].fields[0].__config__.defaultValue;
|
||||||
|
this.loading = false
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
onSelectCopyUsers() {
|
onSelectCopyUsers() {
|
||||||
@@ -623,6 +666,7 @@ export default {
|
|||||||
display: table;
|
display: table;
|
||||||
content: "";
|
content: "";
|
||||||
}
|
}
|
||||||
|
|
||||||
.clearfix:after {
|
.clearfix:after {
|
||||||
clear: both
|
clear: both
|
||||||
}
|
}
|
||||||
@@ -638,10 +682,12 @@ export default {
|
|||||||
|
|
||||||
.el-row {
|
.el-row {
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
|
|
||||||
&:last-child {
|
&:last-child {
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-col {
|
.el-col {
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
}
|
}
|
||||||
@@ -649,7 +695,12 @@ export default {
|
|||||||
.button-new-tag {
|
.button-new-tag {
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
}
|
}
|
||||||
.title-record{font-size: 16px; padding: 10px 0; color: #1ab394}
|
|
||||||
|
.title-record {
|
||||||
|
font-size: 16px;
|
||||||
|
padding: 10px 0;
|
||||||
|
color: #1ab394
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -205,7 +205,6 @@ export default {
|
|||||||
getList() {
|
getList() {
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
listOwnProcess(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
|
listOwnProcess(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
|
||||||
// console.log(5555,response.rows)
|
|
||||||
this.ownProcessList = response.rows;
|
this.ownProcessList = response.rows;
|
||||||
this.total = response.total;
|
this.total = response.total;
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
|
|||||||
@@ -77,12 +77,16 @@ export default {
|
|||||||
// 启动流程并将表单数据加入流程变量
|
// 启动流程并将表单数据加入流程变量
|
||||||
startProcess(this.definitionId, JSON.stringify(data.valData)).then(res => {
|
startProcess(this.definitionId, JSON.stringify(data.valData)).then(res => {
|
||||||
this.$modal.msgSuccess(res.msg);
|
this.$modal.msgSuccess(res.msg);
|
||||||
this.$tab.closeOpenPage({
|
this.goBack()
|
||||||
path: '/work/own'
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
/** 返回页面 */
|
||||||
|
goBack() {
|
||||||
|
// 关闭当前标签页并返回上个页面
|
||||||
|
this.$tab.closePage(this.$route)
|
||||||
|
this.$router.back()
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
Reference in New Issue
Block a user