update handbook project association

jzq 2024-07-15 13:43:15 +08:00
parent f64500b99f
commit 49efd7ccd4
5 changed files with 3677 additions and 16 deletions

View File

@ -199,20 +199,21 @@ export const dynamicRoutes = [
path: '/scientific', path: '/scientific',
component: Layout, component: Layout,
hidden: true, hidden: true,
permissions: ['scientific:start'], permissions: ['scientific:projectApply'],
children: [ children: [
{ {
path: 'start/:deployId([\\w|\\-]+)', path: 'projectApply/:deployId([\\w|\\-]+)',
component: () => import('@/views/scientific/start'), component: () => import('@/views/scientific/projectApply'),
name: 'ProjectApplyStart', name: 'ProjectApply',
meta: { title: '项目申报', icon: '' } meta: { title: '项目申报', icon: '' }
}, },
// { {
// path: 'detail/:procInsId([\\w|\\-]+)', path: 'handbookProjectQuery/:handbookId([\\w|\\-]+)',
// component: () => import('@/views/scientific/detail'), component: () => import('@/views/scientific/handbookProject_query'),
// name: 'WorkDetail', name: 'handbookProjectQuery',
// meta: { title: '流程详情', activeMenu: '/work/own' } meta: { title: '已申报项目' }
// } // meta: { title: '已申报项目', activeMenu: '/work/own' }
}
] ]
}, },
] ]

View File

@ -0,0 +1,308 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="项目名称" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入项目名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="项目创建时间" prop="createTime">
<el-date-picker clearable
v-model="queryParams.createTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择项目创建时间">
</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
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['scientific:project:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['scientific:project:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['scientific:project:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['scientific:project:export']"
>导出</el-button>
</el-col>
</el-row>
<el-table v-loading="loading" :data="projectList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="项目名称" align="center" prop="name" />
<el-table-column label="项目创建时间" align="center" prop="createTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['scientific:project:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['scientific:project:remove']"
>删除</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"
/>
<!-- 添加或修改科研管理对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="项目名称" prop="name">
<el-input v-model="form.name" placeholder="请输入项目名称" />
</el-form-item>
<el-form-item label="项目类别" prop="category">
<el-input v-model="form.category" placeholder="请输入项目类别" />
</el-form-item>
<el-form-item label="项目创建时间" prop="createTime">
<el-date-picker clearable
v-model="form.createTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择项目创建时间">
</el-date-picker>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listProject, getProject, delProject, addProject, updateProject } from "@/api/scientific/project";
export default {
name: "Project",
data() {
return {
// loading
buttonLoading: false,
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
projectList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
projectId: undefined,
handbookId: undefined,
category: undefined,
name: undefined,
createTime: undefined
},
//
form: {},
//
rules: {
id: [
{ required: true, message: "不能为空", trigger: "blur" }
],
projectId: [
{ required: true, message: "项目id不能为空", trigger: "blur" }
],
handbookId: [
{ required: true, message: "指南id不能为空", trigger: "blur" }
],
category: [
{ required: true, message: "项目类别不能为空", trigger: "blur" }
],
name: [
{ required: true, message: "项目名称不能为空", trigger: "blur" }
],
},
handbookName: undefined,
};
},
created() {
this.getList();
},
methods: {
/** 查询科研管理列表 */
getList() {
this.loading = true;
this.queryParams.handbookId = this.$route.query && this.$route.query.handbookId;
this.handbookName = this.$route.query && this.$route.query.handbookname;
listProject(this.queryParams).then(response => {
this.projectList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: undefined,
projectId: undefined,
handbookId: undefined,
category: undefined,
name: undefined,
createTime: undefined
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加科研管理";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.loading = true;
this.reset();
const id = row.id || this.ids
getProject(id).then(response => {
this.loading = false;
this.form = response.data;
this.open = true;
this.title = "修改科研管理";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
this.buttonLoading = true;
if (this.form.id != null) {
updateProject(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
}).finally(() => {
this.buttonLoading = false;
});
} else {
addProject(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
}).finally(() => {
this.buttonLoading = false;
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除科研管理编号为"' + ids + '"的数据项?').then(() => {
this.loading = true;
return delProject(ids);
}).then(() => {
this.loading = false;
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {
}).finally(() => {
this.loading = false;
});
},
/** 导出按钮操作 */
handleExport() {
this.download('scientific/project/export', {
...this.queryParams
}, `project_${new Date().getTime()}.xlsx`)
}
}
};
</script>

View File

@ -72,6 +72,7 @@
<el-table v-loading="loading" :data="showList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="showList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="指南名称" align="center"> <el-table-column label="指南名称" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.handbookname }} {{ scope.row.handbookname }}
@ -103,6 +104,12 @@
<el-button class="file" @click="projectApply(scope.row)"></el-button> <el-button class="file" @click="projectApply(scope.row)"></el-button>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<el-button class="file" @click="listProject(scope.row)"></el-button>
</template>
</el-table-column>
</el-table> </el-table>
<pagination <pagination
@ -121,14 +128,13 @@ import {
stopProcess, stopProcess,
delProcess, delProcess,
listHandbook, listHandbook,
detailProcess,
detailProcesses, detailProcesses,
listProcess listProcess
} from '@/api/workflow/process'; } from '@/api/workflow/process';
import { listAllCategory } from '@/api/workflow/category'; import { listAllCategory } from '@/api/workflow/category';
import Parser from '@/utils/generator/parser' import Parser from '@/utils/generator/parser'
import {getToken} from "@/utils/auth"; import {getToken} from "@/utils/auth";
// import {deepClone} from "@/utils"; import {listProject} from "@/api/scientific/project";
export default { export default {
name: "handbookQuery", name: "handbookQuery",
@ -210,7 +216,7 @@ export default {
const apply = response.rows[0]; const apply = response.rows[0];
if(apply) { if(apply) {
this.$router.push({ this.$router.push({
path: '/scientific/start/' + apply.deploymentId, path: '/scientific/projectApply/' + apply.deploymentId,
query: { query: {
definitionId: apply.definitionId, definitionId: apply.definitionId,
processName: row.handbookname, processName: row.handbookname,
@ -221,6 +227,18 @@ export default {
}); });
}, },
listProject(row) {
if(row.procInsId) {
this.$router.push({
path: '/scientific/handbookProjectQuery/' + row.procInsId,
query: {
processName: row.handbookname,
handbookId: row.procInsId,
}
})
}
},
/** 查询流程定义列表 */ /** 查询流程定义列表 */
getList() { getList() {
// zqjia:仿parser.js // zqjia:仿parser.js

View File

@ -82,15 +82,17 @@ export default {
submit(data) { submit(data) {
if (data && this.definitionId) { if (data && this.definitionId) {
// //
// console.log(data);
startProcess_(this.definitionId, JSON.stringify(data.valData)).then(res => { startProcess_(this.definitionId, JSON.stringify(data.valData)).then(res => {
let projectData = {}; let projectData = {};
projectData.handbookId = this.handbookId; projectData.handbookId = this.handbookId;
projectData.projectId = res.msg; projectData.projectId = res.msg;
// zqjia:
projectData.category = 1; projectData.category = 1;
projectData.name = "测试项目"; projectData.name = data.valData.field101;
projectData.createTime = "2024-07-14 23:28:17"; projectData.createTime = "2024-07-15 23:28:17";
projectData.id = undefined; projectData.id = undefined;
console.log(projectData); console.log(data);
addProject(projectData).then(response => { addProject(projectData).then(response => {
this.$modal.msgSuccess("申报完成"); this.$modal.msgSuccess("申报完成");
}) })

File diff suppressed because one or more lines are too long