Browse Source

招投标管理基本信息

dev_kxc
xzt 2 years ago
parent
commit
74ee91ace9
  1. 53
      jwtech-admin-page/src/api/earlyStage/bidInfoVO.js
  2. 251
      jwtech-admin-page/src/views/earlyStage/projectInfo/index.vue
  3. 307
      jwtech-admin-page/src/views/project/bid/index.vue
  4. 375
      jwtech-admin-page/src/views/project/plan/index.vue
  5. 50
      jwtech-admin-page/src/views/project/special/index.vue
  6. 18
      jwtech-admin-page/src/views/project/special/options/ContractPage.vue
  7. 85
      jwtech-admin-page/src/views/project/special/options/ImplementationPage.vue
  8. 7
      jwtech-admin-page/src/views/project/special/options/basePage.vue
  9. 38
      jwtech-admin-page/src/views/project/special/options/documentPage.vue
  10. 13
      jwtech-admin-page/src/views/project/special/options/index.vue
  11. 35
      jwtech-admin-page/src/views/project/special/options/resultsPage.vue
  12. 77
      jwtech-admin-page/src/views/project/special/options/taskPage.vue

53
jwtech-admin-page/src/api/earlyStage/bidInfoVO.js

@ -0,0 +1,53 @@
import request from '@/utils/request'
// 查询招标计划基本信息列表
export function listBidInfo(query) {
return request({
url: '/earlyStage/bidInfo/list',
method: 'post',
data: query
})
}
// 查询招标计划基本信息详细
export function getBidInfo(id) {
return request({
url: '/earlyStage/bidInfo/' + id,
method: 'get'
})
}
// 查询招标计划基本信息详细及明细表
export function getBidInfoVO(id) {
return request({
url: '/earlyStage/bidInfo/listVO' + id,
method: 'get'
})
}
// 新增招标计划基本信息及明细表
export function addBidInfoVO(data) {
return request({
url: '/earlyStage/bidInfo/addVO',
method: 'post',
data: data
})
}
// 修改招标计划基本信息及明细表
export function updateBidInfoVO(data) {
return request({
url: '/earlyStage/bidInfo/editVO',
method: 'put',
data: data
})
}
// 删除招标计划基本信息及详细信息
export function delBidInfoVO(id) {
return request({
url: '/earlyStage/bidInfo/delVO' + id,
method: 'delete'
})
}

251
jwtech-admin-page/src/views/earlyStage/projectInfo/index.vue

@ -1,6 +1,12 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form
:model="queryParams"
ref="queryForm"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="专题项目名称" prop="projectName">
<el-input
v-model="queryParams.data.projectName"
@ -11,7 +17,12 @@
/>
</el-form-item>
<el-form-item label="规划类型" prop="projectType">
<el-select v-model="queryParams.data.projectType" placeholder="请选择规划类型" clearable size="small">
<el-select
v-model="queryParams.data.projectType"
placeholder="请选择规划类型"
clearable
size="small"
>
<el-option
v-for="dict in projectTypeOptions"
:key="dict.dictValue"
@ -21,8 +32,16 @@
</el-select>
</el-form-item>
<el-form-item>
<el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
<el-button
type="cyan"
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>
@ -34,7 +53,8 @@
size="mini"
@click="handleAdd"
v-hasPermi="['system:projectinfo:add']"
>新增</el-button>
>新增</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
@ -44,7 +64,8 @@
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:projectinfo:edit']"
>修改</el-button>
>修改</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
@ -54,7 +75,8 @@
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:projectinfo:remove']"
>删除</el-button>
>删除</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
@ -63,27 +85,53 @@
size="mini"
@click="handleExport"
v-hasPermi="['system:projectinfo:export']"
>导出</el-button>
>导出</el-button
>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="projectinfoList" @selection-change="handleSelectionChange">
<el-table
v-loading="loading"
:data="projectinfoList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="序号" type="index" width="50" align="center"/>
<el-table-column label="序号" type="index" width="50" align="center" />
<el-table-column label="专题项目名称" align="center" prop="projectName" />
<el-table-column label="规划类型" align="center" prop="projectType" :formatter="projectTypeFormat" />
<el-table-column label="规划编制单位" align="center" prop="compilingUnit" />
<el-table-column
label="规划类型"
align="center"
prop="projectType"
:formatter="projectTypeFormat"
/>
<el-table-column
label="规划编制单位"
align="center"
prop="compilingUnit"
/>
<el-table-column label="规划水平年" align="center" prop="startYear" />
<el-table-column label="规划目标年" align="center" prop="endYear" />
<el-table-column label="规划金额" align="center" prop="amount" />
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
<el-table-column
label="创建时间"
align="center"
prop="createTime"
width="180"
>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
<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">
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button
size="mini"
@ -91,20 +139,22 @@
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:projectinfo:edit']"
>修改</el-button>
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:projectinfo:remove']"
>删除</el-button>
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@ -115,7 +165,10 @@
<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="projectName">
<el-input v-model="form.projectName" placeholder="请输入专题项目名称" />
<el-input
v-model="form.projectName"
placeholder="请输入专题项目名称"
/>
</el-form-item>
<el-form-item label="规划类型" prop="projectType">
<el-select v-model="form.projectType" placeholder="请选择规划类型">
@ -131,7 +184,10 @@
<el-input v-model="form.overview" placeholder="请输入规划概况" />
</el-form-item>
<el-form-item label="规划编制单位" prop="compilingUnit">
<el-input v-model="form.compilingUnit" placeholder="请输入规划编制单位" />
<el-input
v-model="form.compilingUnit"
placeholder="请输入规划编制单位"
/>
</el-form-item>
<el-form-item label="规划水平年" prop="startYear">
<el-input v-model="form.startYear" placeholder="请输入规划水平年" />
@ -143,13 +199,22 @@
<el-input v-model="form.amount" placeholder="请输入规划金额" />
</el-form-item>
<el-form-item label="规划编制单位性质" prop="compilingUnitNature">
<el-input v-model="form.compilingUnitNature" placeholder="请输入规划编制单位性质" />
<el-input
v-model="form.compilingUnitNature"
placeholder="请输入规划编制单位性质"
/>
</el-form-item>
<el-form-item label="规划编制单位地址" prop="compilingUnitAddress">
<el-input v-model="form.compilingUnitAddress" placeholder="请输入规划编制单位地址" />
<el-input
v-model="form.compilingUnitAddress"
placeholder="请输入规划编制单位地址"
/>
</el-form-item>
<el-form-item label="规划编制法人代表" prop="compilingUnitLegalPerson">
<el-input v-model="form.compilingUnitLegalPerson" placeholder="请输入规划编制法人代表" />
<el-input
v-model="form.compilingUnitLegalPerson"
placeholder="请输入规划编制法人代表"
/>
</el-form-item>
<el-form-item label="规划报告" prop="projectReport">
<el-input v-model="form.projectReport" placeholder="请输入规划报告" />
@ -176,7 +241,14 @@
</template>
<script>
import { listProjectinfo, getProjectinfo, delProjectinfo, addProjectinfo, updateProjectinfo, exportProjectinfo } from "@/api/earlyStage/projectinfo";
import {
listProjectinfo,
getProjectinfo,
delProjectinfo,
addProjectinfo,
updateProjectinfo,
exportProjectinfo,
} from "@/api/earlyStage/projectinfo";
export default {
name: "Projectinfo",
@ -206,23 +278,21 @@ export default {
queryParams: {
pageNum: 1,
pageSize: 10,
ids:null,
data:{
projectName: null,
projectType: null,
}
ids: null,
data: {
projectName: null,
projectType: null,
},
},
//
form: {},
//
rules: {
}
rules: {},
};
},
created() {
this.getList();
this.getDicts("plan_type").then(response => {
this.getDicts("plan_type").then((response) => {
this.projectTypeOptions = response.data;
});
},
@ -230,7 +300,7 @@ export default {
/** 查询专题项目前期背景信息列表 */
getList() {
this.loading = true;
listProjectinfo(this.queryParams).then(response => {
listProjectinfo(this.queryParams).then((response) => {
this.projectinfoList = response.records;
this.total = response.total;
this.loading = false;
@ -265,7 +335,7 @@ export default {
createTime: null,
updateUid: null,
updateTime: null,
owerDept: null
owerDept: null,
};
this.resetForm("form");
},
@ -274,26 +344,26 @@ export default {
this.queryParams = {
pageNum: 1,
pageSize: 10,
data:{
id: null,
projectName: null,
projectType: null,
overview: null,
compilingUnit: null,
startYear: null,
endYear: null,
amount: null,
compilingUnitNature: null,
compilingUnitAddress: null,
compilingUnitLegalPerson: null,
projectReport: null,
proNo: null,
createUid: null,
createTime: null,
updateUid: null,
updateTime: null,
owerDept: null
}
data: {
id: null,
projectName: null,
projectType: null,
overview: null,
compilingUnit: null,
startYear: null,
endYear: null,
amount: null,
compilingUnitNature: null,
compilingUnitAddress: null,
compilingUnitLegalPerson: null,
projectReport: null,
proNo: null,
createUid: null,
createTime: null,
updateUid: null,
updateTime: null,
owerDept: null,
},
};
this.resetForm("form");
},
@ -309,9 +379,9 @@ export default {
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
@ -322,8 +392,8 @@ export default {
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getProjectinfo(id).then(response => {
const id = row.id || this.ids;
getProjectinfo(id).then((response) => {
this.form = response.data;
this.open = true;
this.title = "修改专题项目前期背景信息";
@ -331,10 +401,10 @@ export default {
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.id != null) {
updateProjectinfo(this.form).then(response => {
updateProjectinfo(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("修改成功");
this.open = false;
@ -342,7 +412,7 @@ export default {
}
});
} else {
addProjectinfo(this.form).then(response => {
addProjectinfo(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("新增成功");
this.open = false;
@ -356,41 +426,46 @@ export default {
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
if(ids){
this.$confirm("是否删除选中的数据?", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
return delProjectinfo(ids);
}).then(() => {
this.getList();
this.msgSuccess("删除成功");
}).catch(function() {});
}else{
this.$message.warning("请选择要删除的数据!!");
if (ids) {
this.$confirm("是否删除选中的数据?", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return delProjectinfo(ids);
})
.then(() => {
this.getList();
this.msgSuccess("删除成功");
})
.catch(function () {});
} else {
this.$message.warning("请选择要删除的数据!!");
}
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
let message = "是否确认导出所有的数据项?";
if(this.ids){
if (this.ids) {
message = "是否确认导出选中的数据项?";
queryParams.ids = this.ids;
}
this.$confirm(message, "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return exportProjectinfo(queryParams);
}).then(response => {
this.downloadFile(response, true, response.msg);
})
.then((response) => {
this.downloadFile(response, true, response.msg);
// this.download(response.msg);
}).catch(function() {});
}
}
})
.catch(function () {});
},
},
};
</script>

307
jwtech-admin-page/src/views/project/bid/index.vue

@ -1,3 +1,308 @@
<template>
<div class="app-container">招投标信息</div>
<div class="app-container">
<!-- 面包屑 -->
<el-breadcrumb separator="/" style="margin-bottom: 20px">
<el-breadcrumb-item
v-for="(item, index) in routeList"
:key="item + index"
:to="{ path: item.path }"
>{{ item.routeName }}</el-breadcrumb-item
>
</el-breadcrumb>
<el-row :gutter="20">
<el-col :span="22">
<!-- 搜索条件 -->
<el-form
:model="queryParams"
ref="queryForm"
:inline="true"
label-width="68px"
>
<el-form-item label="项目名称" prop="projectName">
<el-input
v-model="queryParams.data.projectName"
placeholder="请输入专题项目名称"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="规划类型" prop="projectType">
<el-select
v-model="queryParams.data.projectType"
placeholder="请选择规划类型"
clearable
size="small"
>
<el-option
v-for="dict in projectTypeOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button
type="cyan"
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-col>
<!-- <el-col :span="2">
<el-button type="primary" @click="openOptions" size="mini"
>新增项目
</el-button>
</el-col> -->
</el-row>
<!-- 表格 -->
<el-table
v-loading="loading"
:data="projectinfoList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="序号" type="index" width="50" align="center" />
<el-table-column label="专题项目名称" align="center" prop="projectName" />
<el-table-column
label="规划类型"
align="center"
prop="projectType"
:formatter="projectTypeFormat"
/>
<el-table-column
label="规划编制单位"
align="center"
prop="compilingUnit"
/>
<el-table-column label="规划水平年" align="center" prop="startYear" />
<el-table-column label="规划目标年" align="center" prop="endYear" />
<el-table-column label="规划金额" align="center" prop="amount" />
<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"
width="180"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-s-promotion"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:projectinfo:edit']"
>查看招投标信息</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:projectinfo: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"
/>
</div>
</template>
<script>
import {
listProjectinfo,
getProjectinfo,
delProjectinfo,
addProjectinfo,
updateProjectinfo,
exportProjectinfo,
} from "@/api/earlyStage/projectinfo";
export default {
data() {
return {
//
total: 0,
//
loading: true,
//
projectinfoList: [],
//
projectTypeOptions: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
ids: null,
data: {
projectName: null,
projectType: null,
},
//
params: {
//
orderBy: "create_time",
// descasc
sort: "desc",
},
},
//
routeList: [
{
path: "/project/bid",
routeName: "项目列表",
},
],
};
},
created() {
this.getList();
this.getDicts("plan_type").then((response) => {
this.projectTypeOptions = response.data;
});
},
methods: {
onSubmit() {
console.log("submit!");
},
openOptions() {
this.routeList.push({
path: "/project/bid/options",
routeName: "招标基本信息",
isEdit: false,
});
//
this.$store.commit("setRouteList", JSON.stringify(this.routeList));
this.$router.push({
path: "/project/bid/options",
});
},
/** 查询专题项目前期背景信息列表 */
getList() {
this.loading = true;
listProjectinfo(this.queryParams).then((response) => {
this.projectinfoList = response.records;
this.total = response.total;
this.loading = false;
});
},
//
projectTypeFormat(row, column) {
return this.selectDictLabel(this.projectTypeOptions, row.projectType);
},
//
resetQueryForm() {
this.queryParams = {
pageNum: 1,
pageSize: 10,
data: {
id: null,
projectName: null,
projectType: null,
overview: null,
compilingUnit: null,
startYear: null,
endYear: null,
amount: null,
compilingUnitNature: null,
compilingUnitAddress: null,
compilingUnitLegalPerson: null,
projectReport: null,
proNo: null,
createUid: null,
createTime: null,
updateUid: null,
updateTime: null,
owerDept: null,
},
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetQueryForm();
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 查看招投标信息 */
handleUpdate(row) {
// this.reset();
const id = row.id || this.ids;
getProjectinfo(id).then((response) => {
this.routeList.push({
path: "/project/bid/options",
routeName: "招标基本信息",
isEdit: true,
});
//
this.$store.commit("setRouteList", JSON.stringify(this.routeList));
//
// this.$store.commit("setBaseFormData", JSON.stringify(response.data));
//
this.$router.push({
// path: "/project/special/options",
path: "/project/bid/options?baseDataId=" + response.data.id,
});
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
if (ids) {
this.$confirm("是否删除选中的数据?", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return delProjectinfo(ids);
})
.then(() => {
this.getList();
this.msgSuccess("删除成功");
})
.catch(function () {});
} else {
this.$message.warning("请选择要删除的数据!!");
}
},
},
};
</script>

375
jwtech-admin-page/src/views/project/plan/index.vue

@ -1,7 +1,376 @@
<template>
<div class="app-container">计划</div>
<div class="app-container">
<!-- 面包屑 -->
<el-breadcrumb separator="/" style="margin-bottom: 20px">
<el-breadcrumb-item
v-for="(item, index) in routeList"
:key="item + index"
:to="{ path: item.path }"
>{{ item.routeName }}</el-breadcrumb-item
>
</el-breadcrumb>
<el-row :gutter="20">
<el-col :span="22">
<el-form
:model="queryParams"
ref="queryForm"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="计划名称" prop="planName">
<el-input
v-model="queryParams.data.planName"
placeholder="请输入计划名称"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="计划类型" prop="planType">
<el-select
v-model="queryParams.data.planType"
placeholder="请选择计划类型"
clearable
size="small"
>
<el-option
v-for="dict in planTypeOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button
type="cyan"
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-col>
<el-col :span="2">
<el-button type="primary" @click="openOptions" size="mini"
>新增计划
</el-button>
</el-col>
</el-row>
<el-table
v-loading="loading"
:data="PlanInfoList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="序号" type="index" width="50" align="center" />
<el-table-column label="计划名称" align="center" prop="planName" />
<el-table-column
label="计划类型"
align="center"
prop="planType"
:formatter="planTypeFormat"
/>
<el-table-column label="归属业务部门" align="center" prop="department" />
<el-table-column label="投资计划" align="center" prop="investment" />
<el-table-column label="主要内容" align="center" prop="content" />
<el-table-column
label="计划关联的项目信息"
align="center"
prop="relatedProjects"
/>
<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"
width="180"
>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['earlyStage:PlanInfo:edit']"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['earlyStage:PlanInfo: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>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { v4 as uuidv4 } from "uuid";
console.log(uuidv4()); // '9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d'
import {
listPlanInfo,
getPlanInfo,
delPlanInfo,
addPlanInfo,
updatePlanInfo,
exportPlanInfo,
} from "@/api/earlyStage/PlanInfo";
export default {
name: "PlanInfo",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
PlanInfoList: [],
//
title: "",
//
open: false,
// (0:,1:使...)
planTypeOptions: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
ids: null,
data: {
planName: null,
planType: null,
},
//
params: {
//
orderBy: "create_time",
// descasc
sort: "desc",
},
},
//
form: {},
//
rules: {},
//
routeList: [
{
path: "/project/plan",
routeName: "计划管理",
},
],
};
},
created() {
this.getList();
this.getDicts("project_plan_type").then((response) => {
this.planTypeOptions = response.data;
});
},
methods: {
openOptions() {
this.routeList.push({
path: "/project/plan/options",
routeName: "计划基本信息",
isEdit: false,
});
//
this.$store.commit("setRouteList", JSON.stringify(this.routeList));
this.$router.push({
path: "/project/plan/options",
});
},
/** 查询计划基本信息列表 */
getList() {
this.loading = true;
listPlanInfo(this.queryParams).then((response) => {
this.PlanInfoList = response.records;
this.total = response.total;
this.loading = false;
});
},
// (0:,1:使...)
planTypeFormat(row, column) {
return this.selectDictLabel(this.planTypeOptions, row.planType);
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
planName: null,
planType: null,
department: null,
investment: null,
content: null,
relatedProjects: null,
proNo: null,
createUid: null,
createTime: null,
updateUid: null,
updateTime: null,
owerDept: null,
remark: null,
};
this.resetForm("form");
},
//
resetQueryForm() {
this.queryParams = {
pageNum: 1,
pageSize: 10,
data: {
id: null,
planName: null,
planType: null,
department: null,
investment: null,
content: null,
relatedProjects: null,
proNo: null,
createUid: null,
createTime: null,
updateUid: null,
updateTime: null,
owerDept: null,
remark: null,
},
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetQueryForm();
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) {
const id = row.id || this.ids;
getPlanInfo(id).then((response) => {
this.routeList.push({
path: "/project/plan/options",
routeName: "计划基本信息",
isEdit: true,
});
//
this.$store.commit("setRouteList", JSON.stringify(this.routeList));
//
this.$router.push({
path: "/project/plan/options?baseDataId=" + response.data.id,
});
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.id != null) {
updatePlanInfo(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
}
});
} else {
addPlanInfo(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
}
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
if (ids) {
this.$confirm("是否删除选中的数据?", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return delPlanInfo(ids);
})
.then(() => {
this.getList();
this.msgSuccess("删除成功");
})
.catch(function () {});
} else {
this.$message.warning("请选择要删除的数据!!");
}
},
},
};
</script>

50
jwtech-admin-page/src/views/project/special/index.vue

@ -13,11 +13,25 @@
<el-row :gutter="20">
<el-col :span="22">
<!-- 搜索条件 -->
<el-form :model="queryParams" :inline="true" label-width="80px">
<el-form-item label="项目类型" prop="projectType">
<el-form
:model="queryParams"
ref="queryForm"
:inline="true"
label-width="68px"
>
<el-form-item label="项目名称" prop="projectName">
<el-input
v-model="queryParams.data.projectName"
placeholder="请输入专题项目名称"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="规划类型" prop="projectType">
<el-select
v-model="queryParams.data.projectType"
placeholder="项目类型"
placeholder="请选择规划类型"
clearable
size="small"
>
@ -29,22 +43,14 @@
/>
</el-select>
</el-form-item>
<el-form-item label="关键词" prop="projectName">
<el-input
v-model="queryParams.data.projectName"
placeholder="请输入项目关键词"
clearable
size="small"
@keyup.enter.native="handleQuery"
>
<el-button
slot="append"
icon="el-icon-search"
@click="handleQuery"
></el-button>
</el-input>
</el-form-item>
<el-form-item>
<el-button
type="cyan"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
@ -96,6 +102,7 @@
label="操作"
align="center"
class-name="small-padding fixed-width"
width="180"
>
<template slot-scope="scope">
<el-button
@ -159,6 +166,13 @@ export default {
projectName: null,
projectType: null,
},
//
params: {
//
orderBy: "create_time",
// descasc
sort: "desc",
},
},
//
routeList: [

18
jwtech-admin-page/src/views/project/special/options/ContractPage.vue

@ -9,7 +9,7 @@
>
<el-form-item label="合同名称" prop="contractName">
<el-input
v-model="queryParams.data.contractName"
v-model="queryParams.cv.value"
placeholder="请输入合同名称"
clearable
size="small"
@ -121,6 +121,7 @@
label="操作"
align="center"
class-name="small-padding fixed-width"
width="180"
>
<template slot-scope="scope">
<el-button
@ -278,6 +279,19 @@ export default {
owerDept: null,
remark: null,
},
//
cv: {
type: null,
name: null,
value: null,
},
//
params: {
//
orderBy: "create_time",
// descasc
sort: "desc",
},
},
//
form: {},
@ -371,6 +385,8 @@ export default {
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.queryParams.cv.type = "like";
this.queryParams.cv.name = "contractName";
this.getList();
},
/** 重置按钮操作 */

85
jwtech-admin-page/src/views/project/special/options/ImplementationPage.vue

@ -7,33 +7,24 @@
v-show="showSearch"
label-width="100px"
>
<el-form-item label="项目负责人" prop="projectLeader">
<el-input
v-model="queryParams.data.projectLeader"
placeholder="请输入项目负责人"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="项目进度安排" prop="projectProgressArrange">
<el-form-item label="计划名称" prop="planningName">
<el-input
v-model="queryParams.data.projectProgressArrange"
placeholder="请输入项目进度安排"
v-model="queryParams.cv.value"
placeholder="请输入计划名称"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="计划名称" prop="planningName">
<!-- <el-form-item label="项目负责人" prop="projectLeader">
<el-input
v-model="queryParams.data.planningName"
placeholder="请输入计划名称"
v-model="queryParams.data.projectLeader"
placeholder="请输入项目负责人"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
</el-form-item> -->
<el-form-item>
<el-button
@ -94,8 +85,19 @@
@selection-change="handleSelectionChange"
height="480"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="序号" type="index" width="50" align="center" />
<el-table-column
type="selection"
width="55"
align="center"
fixed="left"
/>
<el-table-column
label="序号"
type="index"
width="50"
align="center"
fixed="left"
/>
<el-table-column label="项目名称" align="center" prop="projectName" />
<el-table-column
@ -120,13 +122,24 @@
<span>{{ parseTime(scope.row.projectEndTime, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column label="项目负责人" align="center" prop="projectLeader" />
<el-table-column
label="项目负责人"
align="center"
prop="projectLeader"
width="180"
/>
<el-table-column
label="项目进度安排"
align="center"
prop="projectProgressArrange"
width="180"
/>
<el-table-column
label="计划名称"
align="center"
prop="planningName"
width="180"
/>
<el-table-column label="计划名称" align="center" prop="planningName" />
<el-table-column
label="计划时间"
align="center"
@ -141,22 +154,26 @@
label="计划资金进度安排"
align="center"
prop="planningFundProgressArrange"
width="180"
/>
<el-table-column
label="计划资金下达进度"
align="center"
prop="planningFundIssuedProgress"
width="180"
/>
<el-table-column
label="是否到位"
align="center"
prop="isInPlace"
:formatter="isInPlaceFormatter"
width="180"
/>
<el-table-column
label="完成计划单位"
align="center"
prop="completedPlanningUnit"
width="180"
/>
<el-table-column
label="完成计划开始时间"
@ -182,20 +199,22 @@
label="完成计划投资使用进度安排"
align="center"
prop="investmentProgressArrange"
width="180"
/>
<el-table-column
label="是否完成计划"
align="center"
prop="isCompletedPlanning"
:formatter="isCompletedPlanningFormatter"
width="180"
/>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
fixed="right"
width="180"
fixed="right"
>
<template slot-scope="scope">
<el-button
@ -240,6 +259,7 @@
<el-input
v-model="form.projectName"
placeholder="请输入项目名称"
readonly
/>
</el-form-item>
</el-col>
@ -428,7 +448,7 @@ import {
} from "@/api/earlyStage/planImpleInfo";
export default {
props: ["proNo"],
props: ["proNo", "projectName"],
name: "PlanImpleInfo",
data() {
return {
@ -480,6 +500,19 @@ export default {
owerDept: null,
remark: null,
},
//
cv: {
type: null,
name: null,
value: null,
},
//
params: {
//
orderBy: "create_time",
// descasc
sort: "desc",
},
},
//
form: {},
@ -500,6 +533,10 @@ export default {
this.proNo = n;
this.getList();
},
projectName: function (n, o) {
this.projectName = n;
this.getList();
},
},
methods: {
/** 查询计划实施信息列表 */
@ -594,6 +631,8 @@ export default {
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.queryParams.cv.type = "like";
this.queryParams.cv.name = "planningName";
this.getList();
},
/** 重置按钮操作 */
@ -610,6 +649,7 @@ export default {
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.form.projectName = this.projectName;
this.open = true;
this.title = "添加计划实施信息";
},
@ -637,6 +677,7 @@ export default {
});
} else {
this.form.proNo = this.proNo;
this.form.projectName = this.projectName;
addPlanImpleInfo(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("新增成功");

7
jwtech-admin-page/src/views/project/special/options/basePage.vue

@ -177,6 +177,13 @@ export default {
projectName: null,
projectType: null,
},
//
params: {
//
orderBy: "create_time",
// descasc
sort: "desc",
},
},
};
},

38
jwtech-admin-page/src/views/project/special/options/documentPage.vue

@ -25,6 +25,15 @@
v-show="showSearch"
label-width="68px"
>
<el-form-item label="文档名称" prop="documentName">
<el-input
v-model="queryParams.cv.value"
placeholder="请输入文档名称"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="文档类型" prop="documentType">
<el-select
v-model="queryParams.data.documentType"
@ -40,15 +49,6 @@
/>
</el-select>
</el-form-item>
<el-form-item label="文档名称" prop="documentName">
<el-input
v-model="queryParams.data.documentName"
placeholder="请输入文档名称"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button
@ -134,13 +134,14 @@
<i class="el-icon-document"></i>
{{ item.name }}
</div>
</template> </el-table-column
>>
</template>
</el-table-column>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
width="180"
>
<template slot-scope="scope">
<el-button
@ -294,6 +295,19 @@ export default {
owerDept: null,
remark: null,
},
//
cv: {
type: null,
name: null,
value: null,
},
//
params: {
//
orderBy: "create_time",
// descasc
sort: "desc",
},
},
//
form: {},
@ -383,6 +397,8 @@ export default {
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.queryParams.cv.type = "like";
this.queryParams.cv.name = "documentName";
this.getList();
},
/** 重置按钮操作 */

13
jwtech-admin-page/src/views/project/special/options/index.vue

@ -37,7 +37,10 @@
:disabled="!routeList[1].isEdit"
style="height: 700px"
>
<ImplementationPage :proNo="formData.proNo" />
<ImplementationPage
:proNo="formData.proNo"
:projectName="formData.projectName"
/>
</el-tab-pane>
<el-tab-pane
label="专题合同管理"
@ -107,6 +110,13 @@ export default {
projectName: null,
projectType: null,
},
//
params: {
//
orderBy: "create_time",
// descasc
sort: "desc",
},
},
};
},
@ -144,7 +154,6 @@ export default {
if (valid) {
if (this.formData.id != null) {
updateProjectinfo(this.formData).then((response) => {
console.log(7777777777777);
if (response.code === 200) {
this.msgSuccess("修改成功");
// this.open = false;

35
jwtech-admin-page/src/views/project/special/options/resultsPage.vue

@ -8,18 +8,9 @@
v-show="showSearch"
label-width="100px"
>
<el-form-item label="评价人" prop="evaluator">
<el-input
v-model="queryParams.data.evaluator"
placeholder="请输入评价人"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="评价规划名称" prop="evaluationName">
<el-input
v-model="queryParams.data.evaluationName"
v-model="queryParams.cv.value"
placeholder="请输入评价规划名称"
clearable
size="small"
@ -92,6 +83,7 @@
<el-table
:data="resultsList"
@selection-change="handleSelectionChange"
class="application"
ref="applicationTable"
v-loading="loading"
@ -150,7 +142,12 @@
</div>
</template>
</el-table-column>
<el-table-column label="操作" width="180" fixed="right">
<el-table-column
label="操作"
width="180"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button
v-if="scope.row.id !== 1"
@ -328,6 +325,7 @@ import {
import { getToken } from "@/utils/auth";
import { getFileStream } from "@/api/system/upload";
export default {
name: "Gain",
props: ["proNo"],
data() {
return {
@ -374,6 +372,19 @@ export default {
owerDept: null,
remark: null,
},
//
cv: {
type: null,
name: null,
value: null,
},
//
params: {
//
orderBy: "create_time",
// descasc
sort: "desc",
},
},
//
form: {},
@ -467,6 +478,8 @@ export default {
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.queryParams.cv.type = "like";
this.queryParams.cv.name = "evaluationName";
this.getList();
},
/** 重置按钮操作 */

77
jwtech-admin-page/src/views/project/special/options/taskPage.vue

@ -10,7 +10,7 @@
>
<el-form-item label="规划的名称" prop="projectName">
<el-input
v-model="queryParams.data.projectName"
v-model="queryParams.cv.value"
placeholder="请输入规划的名称"
clearable
size="small"
@ -103,8 +103,19 @@
@selection-change="handleSelectionChange"
height="480"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="序号" type="index" width="50" align="center" />
<el-table-column
type="selection"
width="55"
align="center"
fixed="left"
/>
<el-table-column
label="序号"
type="index"
width="50"
align="center"
fixed="left"
/>
<el-table-column
label="规划上报的时间"
@ -118,15 +129,31 @@
}}</span>
</template>
</el-table-column>
<el-table-column label="规划的名称" align="center" prop="projectName" />
<el-table-column
label="规划的名称"
align="center"
prop="projectName"
width="180"
/>
<el-table-column
label="所属类别"
align="center"
prop="category"
:formatter="categoryFormat"
width="180"
/>
<el-table-column
label="预期目标"
align="center"
prop="expectedGoal"
width="180"
/>
<el-table-column label="预期目标" align="center" prop="expectedGoal" />
<el-table-column label="规划附件" align="center" prop="projectAttachment">
<el-table-column
label="规划附件"
align="center"
prop="projectAttachment"
width="180"
>
<template slot-scope="scope">
<div
v-for="(item, index) in JSON.parse(scope.row.projectAttachment)"
@ -147,9 +174,24 @@
<span>{{ parseTime(scope.row.replyTime, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column label="批复人信息" align="center" prop="replyPerson" />
<el-table-column label="批复意见" align="center" prop="replyOpinion" />
<el-table-column label="意见附件" align="center" prop="opinionAttachment">
<el-table-column
label="批复人信息"
align="center"
prop="replyPerson"
width="180"
/>
<el-table-column
label="批复意见"
align="center"
prop="replyOpinion"
width="180"
/>
<el-table-column
label="意见附件"
align="center"
prop="opinionAttachment"
width="180"
>
<template slot-scope="scope">
<div
v-for="(item, index) in JSON.parse(scope.row.opinionAttachment)"
@ -412,6 +454,19 @@ export default {
owerDept: null,
remark: null,
},
//
cv: {
type: null,
name: null,
value: null,
},
//
params: {
//
orderBy: "create_time",
// descasc
sort: "desc",
},
},
//
form: {},
@ -458,6 +513,7 @@ export default {
getList() {
this.loading = true;
this.queryParams.data.proNo = this.proNo;
listApproval(this.queryParams).then((response) => {
this.approvalList = response.records;
// console.log("this.approvalList", this.approvalList);
@ -528,6 +584,9 @@ export default {
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.queryParams.cv.type = "like";
this.queryParams.cv.name = "projectName";
// this.queryParams.cv.value = ;
this.getList();
},
/** 重置按钮操作 */

Loading…
Cancel
Save