Browse Source

招投标管理板块基本完成

dev_kxc
xzt 2 years ago
parent
commit
ea13ef7fa3
  1. 4
      jwtech-admin-page/src/api/earlyStage/bidInfoVO.js
  2. 61
      jwtech-admin-page/src/api/earlyStage/bidWinningVO.js
  3. 188
      jwtech-admin-page/src/views/project/bid/options/PreQualificationPage.vue
  4. 1148
      jwtech-admin-page/src/views/project/bid/options/TenderAnnouncementPage.vue
  5. 224
      jwtech-admin-page/src/views/project/bid/options/bidBasePage.vue
  6. 907
      jwtech-admin-page/src/views/project/bid/options/candidatePage.vue
  7. 697
      jwtech-admin-page/src/views/project/bid/options/winningResultPage.vue
  8. 269
      jwtech-admin-page/src/views/project/report/index.vue

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

@ -20,7 +20,7 @@ export function getBidInfo(id) {
// 查询招标计划基本信息详细及明细表
export function getBidInfoVO(id) {
return request({
url: '/earlyStage/bidInfo/listVO' + id,
url: '/earlyStage/bidInfo/listVO/' + id,
method: 'get'
})
}
@ -46,7 +46,7 @@ export function updateBidInfoVO(data) {
// 删除招标计划基本信息及详细信息
export function delBidInfoVO(id) {
return request({
url: '/earlyStage/bidInfo/delVO' + id,
url: '/earlyStage/bidInfo/delVO/' + id,
method: 'delete'
})
}

61
jwtech-admin-page/src/api/earlyStage/bidWinningVO.js

@ -0,0 +1,61 @@
import request from '@/utils/request'
// 查询中标候选人公示基本信息列表
export function listBidWinning(query) {
return request({
url: '/earlyStage/bidWinning/list',
method: 'post',
data: query
})
}
// 查询中标候选人公示基本信息详细
export function getBidWinning(id) {
return request({
url: '/earlyStage/bidWinning/' + id,
method: 'get'
})
}
// 查询中标候选人公示基本信息及候选人表
export function getBidWinningVO(id) {
return request({
url: '/earlyStage/bidWinning/listVO/' + id,
method: 'get'
})
}
// 新增中标候选人公示基本信息及候选人表
export function addBidWinningVO(data) {
return request({
url: '/earlyStage/bidWinning/addVO',
method: 'post',
data: data
})
}
// 修改中标候选人公示基本信息及候选人表
export function updateBidWinningVO(data) {
return request({
url: '/earlyStage/bidWinning/editVO',
method: 'put',
data: data
})
}
// 删除中标候选人公示基本信息及候选人表
export function delBidWinningVO(id) {
return request({
url: '/earlyStage/bidWinning/delVO/' + id,
method: 'delete'
})
}
// 导出中标候选人公示基本信息
export function exportBidWinning(query) {
return request({
url: '/earlyStage/bidWinning/export',
method: 'get',
params: query
})
}

188
jwtech-admin-page/src/views/project/bid/options/PreQualificationPage.vue

@ -115,12 +115,28 @@
label="公告内容附件"
align="center"
prop="noticeAtttachment"
/>
width="180"
>
<template slot-scope="scope">
<div
v-for="(item, index) in JSON.parse(scope.row.noticeAtttachment)"
:key="item + index"
>
<i class="el-icon-document"></i>
{{ item.name }}
<i
class="el-icon-download"
@click="downloadFile(scope)"
style="cursor: pointer"
></i>
</div>
</template>
</el-table-column>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
width="180"
>
<template slot-scope="scope">
<el-button
@ -152,8 +168,14 @@
/>
<!-- 添加或修改资格预审公告对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-dialog
:title="title"
:visible.sync="open"
width="700px"
append-to-body
@close="close"
>
<el-form ref="form" :model="form" :rules="rules" label-width="180px">
<el-form-item label="招标项目名称" prop="bidProjectName">
<el-input
v-model="form.bidProjectName"
@ -164,7 +186,7 @@
<el-date-picker
clearable
size="small"
style="width: 200px"
style="width: 100%"
v-model="form.fileGainTime"
type="date"
value-format="yyyy-MM-dd"
@ -176,7 +198,7 @@
<el-date-picker
clearable
size="small"
style="width: 200px"
style="width: 100%"
v-model="form.reportTime"
type="date"
value-format="yyyy-MM-dd"
@ -185,28 +207,30 @@
</el-date-picker>
</el-form-item>
<el-form-item label="公告内容附件" prop="noticeAtttachment">
<el-input
<!-- <el-input
v-model="form.noticeAtttachment"
placeholder="请输入公告内容附件"
/>
</el-form-item>
<el-form-item label="项目编码" prop="projectCode">
<el-input v-model="form.projectCode" placeholder="请输入项目编码" />
</el-form-item>
<el-form-item label="项目编号" prop="proNo">
<el-input v-model="form.proNo" placeholder="请输入项目编号" />
</el-form-item>
<el-form-item label="创建人" prop="createUid">
<el-input v-model="form.createUid" placeholder="请输入创建人" />
</el-form-item>
<el-form-item label="更新人" prop="updateUid">
<el-input v-model="form.updateUid" placeholder="请输入更新人" />
</el-form-item>
<el-form-item label="数源部门" prop="owerDept">
<el-input v-model="form.owerDept" placeholder="请输入数源部门" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
/> -->
<el-upload
class="upload-demo"
action="http://127.0.0.1/thinking/common/upload"
:headers="headers"
:on-preview="handleNoticePreview"
:on-remove="handleNoticeRemove"
:before-remove="beforeNoticeRemove"
multiple
:on-exceed="handleNoticeExceed"
:on-success="submitNoticeUpload"
:file-list="noticeFileList"
>
<el-button size="small" type="primary" plain>
<i class="el-icon-upload el-icon--right"></i>
点击上传
</el-button>
<div slot="tip" class="el-upload__tip">
支持jpg/png/pdf/word/excel文件等不超过100M
</div>
</el-upload>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@ -226,6 +250,8 @@ import {
updateBidPrequ,
exportBidPrequ,
} from "@/api/earlyStage/bidPrequ";
import { getToken } from "@/utils/auth";
import { getFileStream } from "@/api/system/upload";
export default {
name: "BidPrequ",
@ -274,6 +300,12 @@ export default {
form: {},
//
rules: {},
//
noticeFileList: [],
//
headers: {
jianwei: "jwtech " + getToken(),
},
};
},
created() {
@ -297,11 +329,6 @@ export default {
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
@ -320,6 +347,7 @@ export default {
remark: null,
};
this.resetForm("form");
this.noticeFileList = [];
},
//
resetQueryForm() {
@ -362,16 +390,19 @@ export default {
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加资格预审公告";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids;
getBidPrequ(id).then((response) => {
this.form = response.data;
//
console.log("response.data", response.data);
if (response.data.noticeAtttachment) {
this.noticeFileList = JSON.parse(response.data.noticeAtttachment);
}
this.open = true;
this.title = "修改资格预审公告";
});
@ -379,6 +410,8 @@ export default {
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
//
this.form.noticeAtttachment = JSON.stringify(this.noticeFileList);
if (valid) {
if (this.form.id != null) {
updateBidPrequ(this.form).then((response) => {
@ -401,6 +434,14 @@ export default {
}
});
},
//
cancel() {
this.open = false;
},
//
close() {
this.reset();
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
@ -422,28 +463,67 @@ export default {
this.$message.warning("请选择要删除的数据!!");
}
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
let message = "是否确认导出所有的数据项?";
if (this.ids) {
message = "是否确认导出选中的数据项?";
queryParams.ids = this.ids;
}
this.$confirm(message, "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return exportBidPrequ(queryParams);
})
.then((response) => {
this.downloadFile(response, true, response.msg);
// this.download(response.msg);
})
.catch(function () {});
submitNoticeUpload(_, fileList) {
console.log("fileList", fileList);
this.noticeFileList.push({
name: fileList.name,
fileName: fileList.response.fileName,
url: fileList.response.url,
uid: fileList.uid,
});
},
handleNoticeRemove(file, fileList) {
// console.log(file, fileList);
let index = this.noticeFileList.findIndex(
(item) => item.uid === file.uid
);
//
this.noticeFileList.splice(index, 1);
},
//
downloadFile(scope) {
// console.log(scope);
let file = JSON.parse(scope.row.noticeAtttachment)[0];
this.handleNoticePreview(file);
},
//
handleNoticePreview(file) {
// console.log(file);
getFileStream({ fileName: file.fileName }).then((res) => {
const blob = new Blob([res], {
// type
// application/xlsx application/zip
type: "application/xlsx",
}); //excel,pdf
const href = URL.createObjectURL(blob); //URLblob
const a = document.createElement("a"); //a
a.style.display = "none";
a.href = href; //
a.download = file.name; //
a.click(); //
URL.revokeObjectURL(a.href); //URL
});
},
handleNoticeExceed(files, fileList) {
this.$message.warning(
`当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${
files.length + fileList.length
} 个文件`
);
},
beforeNoticeRemove(file, fileList) {
return this.$confirm(`确定移除 ${file.name}`);
},
},
};
</script>
<style lang="scss" scoped>
::v-deep {
.el-dialog {
margin-top: 2vh !important;
height: 90%;
overflow-y: auto;
}
}
</style>

1148
jwtech-admin-page/src/views/project/bid/options/TenderAnnouncementPage.vue

File diff suppressed because it is too large

224
jwtech-admin-page/src/views/project/bid/options/bidBasePage.vue

@ -97,13 +97,25 @@
align="center"
prop="isConsolidatedBidding"
:formatter="isConsolidatedBiddingFormat"
width="180"
/>
<el-table-column
label="招标性质"
align="center"
prop="bidNature"
width="180"
/>
<el-table-column
label="招标计划名称"
align="center"
prop="bidPlanName"
width="180"
/>
<el-table-column label="招标性质" align="center" prop="bidNature" />
<el-table-column label="招标计划名称" align="center" prop="bidPlanName" />
<el-table-column
label="招标计划发布人"
align="center"
prop="bidPlanPerson"
width="180"
/>
<el-table-column
label="发布时间"
@ -115,12 +127,40 @@
<span>{{ parseTime(scope.row.reportTime, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column label="招标人名称" align="center" prop="tendererName" />
<el-table-column
label="招标人名称"
align="center"
prop="tendererName"
width="180"
/>
<el-table-column
label="招标人统一社会信用代码"
align="center"
prop="socialCreditCode"
width="180"
/>
<el-table-column
label="附件"
align="center"
prop="bidAttachment"
width="180"
>
<template slot-scope="scope">
<div
v-for="(item, index) in JSON.parse(scope.row.bidAttachment)"
:key="item + index"
>
<i class="el-icon-document"></i>
{{ item.name }}
<i
class="el-icon-download"
@click="downloadFile(scope)"
style="cursor: pointer"
></i>
</div>
</template>
</el-table-column>
<el-table-column
label="创建时间"
align="center"
@ -167,23 +207,28 @@
/>
<!-- 添加或修改招标计划基本信息对话框 -->
<el-dialog :title="title" :visible.sync="open" width="90%" append-to-body>
<el-dialog
:title="title"
:visible.sync="open"
width="90%"
append-to-body
@close="close"
>
<!-- 招标计划基本信息 -->
<el-divider content-position="left" class="divider"
>招标计划基本信息</el-divider
>
<el-divider content-position="left"> 招标计划基本信息 </el-divider>
<el-row :gutter="15">
<el-form
ref="baseForm"
:model="baseForm"
:rules="rules"
label-width="150px"
label-width="170px"
>
<el-col :span="12">
<el-form-item label="是否合并招标" prop="isConsolidatedBidding">
<el-select
v-model="baseForm.isConsolidatedBidding"
placeholder="请选择是否合并招标"
style="width: 100%"
>
<el-option
v-for="dict in isConsolidatedBiddingOptions"
@ -223,7 +268,7 @@
<el-date-picker
clearable
size="small"
style="width: 200px"
style="width: 100%"
v-model="baseForm.reportTime"
type="date"
value-format="yyyy-MM-dd"
@ -258,10 +303,30 @@
</el-col>
<el-col :span="12">
<el-form-item label="附件" prop="bidAttachment">
<el-input
<!-- <el-input
v-model="baseForm.bidAttachment"
placeholder="请输入附件"
/>
/> -->
<el-upload
class="upload-demo"
action="http://127.0.0.1/thinking/common/upload"
:headers="headers"
:on-preview="handlePreview"
:on-remove="handleRemove"
:before-remove="beforeRemove"
multiple
:on-exceed="handleExceed"
:on-success="submitUpload"
:file-list="fileList"
>
<el-button size="small" type="primary" plain>
<i class="el-icon-upload el-icon--right"></i>
点击上传
</el-button>
<div slot="tip" class="el-upload__tip">
支持jpg/png/pdf/word/excel文件等不超过100M
</div>
</el-upload>
</el-form-item>
</el-col>
</el-form>
@ -269,7 +334,7 @@
<!-- 计划明细内容 -->
<el-divider content-position="left">计划明细内容</el-divider>
<el-row :gutter="15">
<el-form ref="detailsForm" :model="detailsForm" label-width="150px">
<el-form ref="detailsForm" :model="detailsForm" label-width="170px">
<el-col :span="12">
<el-form-item label="招标项目名称" prop="bidProjectName">
<el-input
@ -279,14 +344,19 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="是否依法必招项目(0:否,1:是)"
prop="isMustProject"
>
<el-input
<el-form-item label="是否依法必招项目" prop="isMustProject">
<el-select
v-model="detailsForm.isMustProject"
placeholder="请输入是否依法必招项目(0:否,1:是)"
/>
placeholder="请输入是否依法必招项目"
style="width: 100%"
>
<el-option
v-for="dict in isMustProject"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
@ -302,8 +372,14 @@
<el-select
v-model="detailsForm.bidType"
placeholder="请选择招标项目类型"
style="width: 100%"
>
<el-option label="请选择字典生成" value="" />
<el-option
v-for="dict in bidType"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
></el-option>
</el-select>
</el-form-item>
</el-col>
@ -347,7 +423,7 @@
<el-date-picker
clearable
size="small"
style="width: 200px"
style="width: 100%"
v-model="detailsForm.bidNoticeTime"
type="date"
value-format="yyyy-MM-dd"
@ -372,14 +448,6 @@
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="招标计划ID" prop="bidId">
<el-input
v-model="detailsForm.bidId"
placeholder="请输入招标计划ID"
/>
</el-form-item>
</el-col>
</el-form>
</el-row>
@ -400,6 +468,8 @@ import {
addBidInfoVO,
updateBidInfoVO,
} from "@/api/earlyStage/bidInfoVO";
import { getToken } from "@/utils/auth";
import { getFileStream } from "@/api/system/upload";
export default {
name: "BidInfo",
@ -426,6 +496,10 @@ export default {
open: false,
//
isConsolidatedBiddingOptions: [],
//
isMustProject: [],
//
bidType: [],
//
queryParams: {
pageNum: 1,
@ -478,12 +552,23 @@ export default {
detailsForm: {},
//
rules: {},
//
fileList: [],
//
headers: {
jianwei: "jwtech " + getToken(),
},
};
},
created() {
this.getList();
this.getDicts("yes_no").then((response) => {
this.getDicts("whether").then((response) => {
// console.log("444444", response);
this.isConsolidatedBiddingOptions = response.data;
this.isMustProject = response.data;
});
this.getDicts("Bid_type").then((response) => {
this.bidType = response.data;
});
},
// axios
@ -511,11 +596,6 @@ export default {
row.isConsolidatedBidding
);
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.baseForm = {
@ -561,7 +641,7 @@ export default {
owerDept: null,
remark: null,
};
this.fileList = [];
this.resetForm("baseForm");
this.resetForm("detailsForm");
},
@ -610,17 +690,21 @@ export default {
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加招标计划基本信息";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids;
getBidInfoVO(id).then((response) => {
// this.baseForm = response.data;
console.log("666666666666", response);
// console.log("666666666666", response);
this.baseForm = response.data.specialProjectBidInfo;
if (response.data.specialProjectBidInfo.bidAttachment) {
this.fileList = JSON.parse(
response.data.specialProjectBidInfo.bidAttachment
);
}
this.detailsForm = response.data.projectBidDetails;
this.open = true;
this.title = "修改招标计划基本信息";
});
@ -629,6 +713,8 @@ export default {
submitForm() {
this.$refs["baseForm"].validate((valid) => {
this.$refs["detailsForm"].validate((valid2) => {
//
this.baseForm.bidAttachment = JSON.stringify(this.fileList);
if (valid && valid2) {
if (this.baseForm.id != null || this.detailsForm.id != null) {
updateBidInfoVO({
@ -659,6 +745,14 @@ export default {
});
});
},
//
cancel() {
this.open = false;
},
//
close() {
this.reset();
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
@ -680,6 +774,56 @@ export default {
this.$message.warning("请选择要删除的数据!!");
}
},
submitUpload(_, fileList) {
console.log("fileList", fileList);
this.fileList.push({
name: fileList.name,
fileName: fileList.response.fileName,
url: fileList.response.url,
uid: fileList.uid,
});
},
handleRemove(file, fileList) {
// console.log(file, fileList);
let index = this.fileList.findIndex((item) => item.uid === file.uid);
//
this.fileList.splice(index, 1);
},
//
downloadFile(scope) {
// console.log(scope);
let file = JSON.parse(scope.row.bidAttachment)[0];
this.handlePreview(file);
},
//
handlePreview(file) {
// console.log(file);
getFileStream({ fileName: file.fileName }).then((res) => {
const blob = new Blob([res], {
// type
// application/xlsx application/zip
type: "application/xlsx",
}); //excel,pdf
const href = URL.createObjectURL(blob); //URLblob
const a = document.createElement("a"); //a
a.style.display = "none";
a.href = href; //
a.download = file.name; //
a.click(); //
URL.revokeObjectURL(a.href); //URL
});
},
handleExceed(files, fileList) {
this.$message.warning(
`当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${
files.length + fileList.length
} 个文件`
);
},
beforeRemove(file, fileList) {
return this.$confirm(`确定移除 ${file.name}`);
},
},
};
</script>

907
jwtech-admin-page/src/views/project/bid/options/candidatePage.vue

File diff suppressed because it is too large

697
jwtech-admin-page/src/views/project/bid/options/winningResultPage.vue

@ -43,31 +43,10 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="公名称" prop="noticeName">
<el-form-item label="公名称" prop="noticeName">
<el-input
v-model="queryParams.data.noticeName"
placeholder="请输入公示名称"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="开标日期" prop="bidOpenDate">
<el-date-picker
clearable
size="small"
style="width: 200px"
v-model="queryParams.bidOpenDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择开标日期"
>
</el-date-picker>
</el-form-item>
<el-form-item label="评标情况" prop="evaluationSituation">
<el-input
v-model="queryParams.data.evaluationSituation"
placeholder="请输入评标情况"
placeholder="请输入公告名称"
clearable
size="small"
@keyup.enter.native="handleQuery"
@ -82,180 +61,7 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="办公地址" prop="officeAddress">
<el-input
v-model="queryParams.data.officeAddress"
placeholder="请输入办公地址"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="招标人联系人" prop="bidderContacts">
<el-input
v-model="queryParams.data.bidderContacts"
placeholder="请输入招标人联系人"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="联系电话" prop="contactsPhone">
<el-input
v-model="queryParams.data.contactsPhone"
placeholder="请输入联系电话"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="招标投标监督部门" prop="tenderingSupervisionDept">
<el-input
v-model="queryParams.data.tenderingSupervisionDept"
placeholder="请输入招标投标监督部门"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="联系电话" prop="deptPhone">
<el-input
v-model="queryParams.data.deptPhone"
placeholder="请输入联系电话"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="联系地址" prop="deptAddress">
<el-input
v-model="queryParams.data.deptAddress"
placeholder="请输入联系地址"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="公示开始时间" prop="publicityStartTime">
<el-date-picker
clearable
size="small"
style="width: 200px"
v-model="queryParams.publicityStartTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择公示开始时间"
>
</el-date-picker>
</el-form-item>
<el-form-item label="公示结束日期" prop="publicityEndTime">
<el-date-picker
clearable
size="small"
style="width: 200px"
v-model="queryParams.publicityEndTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择公示结束日期"
>
</el-date-picker>
</el-form-item>
<el-form-item label="公示ID" prop="noticeId">
<el-input
v-model="queryParams.data.noticeId"
placeholder="请输入公示ID"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="项目编码" prop="projectCode">
<el-input
v-model="queryParams.data.projectCode"
placeholder="请输入项目编码"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="附件地址" prop="attachmentAddress">
<el-input
v-model="queryParams.data.attachmentAddress"
placeholder="请输入附件地址"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="项目编号" prop="proNo">
<el-input
v-model="queryParams.data.proNo"
placeholder="请输入项目编号"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="创建人" prop="createUid">
<el-input
v-model="queryParams.data.createUid"
placeholder="请输入创建人"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="创建时间" prop="createTime">
<el-date-picker
clearable
size="small"
style="width: 200px"
v-model="queryParams.createTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择创建时间"
>
</el-date-picker>
</el-form-item>
<el-form-item label="更新人" prop="updateUid">
<el-input
v-model="queryParams.data.updateUid"
placeholder="请输入更新人"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="更新时间" prop="updateTime">
<el-date-picker
clearable
size="small"
style="width: 200px"
v-model="queryParams.updateTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择更新时间"
>
</el-date-picker>
</el-form-item>
<el-form-item label="数源部门" prop="owerDept">
<el-input
v-model="queryParams.data.owerDept"
placeholder="请输入数源部门"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input
v-model="queryParams.data.remark"
placeholder="请输入备注"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button
type="cyan"
@ -277,7 +83,7 @@
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['earlyStage:bidWinning:add']"
v-hasPermi="['earlyStage:bidResult:add']"
>新增</el-button
>
</el-col>
@ -288,7 +94,7 @@
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['earlyStage:bidWinning:edit']"
v-hasPermi="['earlyStage:bidResult:edit']"
>修改</el-button
>
</el-col>
@ -299,20 +105,10 @@
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['earlyStage:bidWinning:remove']"
v-hasPermi="['earlyStage:bidResult:remove']"
>删除</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['earlyStage:bidWinning:export']"
>导出</el-button
>
</el-col>
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
@ -321,7 +117,7 @@
<el-table
v-loading="loading"
:data="bidWinningList"
:data="bidResultList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
@ -331,109 +127,90 @@
label="投资项目代码"
align="center"
prop="investProjectCode"
width="180"
/>
<el-table-column
label="投资项目名称"
align="center"
prop="investProjectName"
width="180"
/>
<el-table-column
label="招标项目名称"
align="center"
prop="bidProjectName"
width="180"
/>
<el-table-column label="标段" align="center" prop="lotName" />
<el-table-column label="公示名称" align="center" prop="noticeName" />
<el-table-column label="标段" align="center" prop="lotName" width="180" />
<el-table-column
label="开标日期"
label="公告名称"
align="center"
prop="bidOpenDate"
prop="noticeName"
width="180"
>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.bidOpenDate, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
/>
<el-table-column
label="招标人"
align="center"
prop="tendererName"
width="180"
/>
<el-table-column
label="评标情况"
label="招标代理"
align="center"
prop="evaluationSituation"
prop="biddingAgency"
width="180"
/>
<el-table-column label="招标人" align="center" prop="tendererName" />
<el-table-column label="办公地址" align="center" prop="officeAddress" />
<el-table-column
label="招标人联系人"
label="中标人"
align="center"
prop="bidderContacts"
prop="successfulBidder"
width="180"
/>
<el-table-column label="联系电话" align="center" prop="contactsPhone" />
<el-table-column
label="招标投标监督部门"
label="中标价"
align="center"
prop="tenderingSupervisionDept"
prop="bidWinningPrice"
width="180"
/>
<el-table-column label="联系电话" align="center" prop="deptPhone" />
<el-table-column label="联系地址" align="center" prop="deptAddress" />
<el-table-column label="费率" align="center" prop="rate" width="180" />
<el-table-column
label="公示开始时间"
label="工期"
align="center"
prop="publicityStartTime"
prop="deliveryTime"
width="180"
>
<template slot-scope="scope">
<span>{{
parseTime(scope.row.publicityStartTime, "{y}-{m}-{d}")
}}</span>
<span>{{ parseTime(scope.row.deliveryTime, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column label="项目负责人" align="center" prop="projectLeader" />
<el-table-column
label="公示结束日期"
label="中标日期"
align="center"
prop="publicityEndTime"
prop="bidWinningTime"
width="180"
>
<template slot-scope="scope">
<span>{{
parseTime(scope.row.publicityEndTime, "{y}-{m}-{d}")
}}</span>
<span>{{ parseTime(scope.row.bidWinningTime, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column label="公示ID" align="center" prop="noticeId" />
<el-table-column label="项目编码" align="center" prop="projectCode" />
<el-table-column
label="附件地址"
align="center"
prop="attachmentAddress"
/>
<el-table-column label="项目编号" align="center" prop="proNo" />
<el-table-column label="创建人" align="center" prop="createUid" />
<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" prop="updateUid" />
/>
<el-table-column
label="更新时间"
label="项目编码"
align="center"
prop="updateTime"
prop="projectCode"
width="180"
>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.updateTime, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column label="数源部门" align="center" prop="owerDept" />
<el-table-column label="备注" align="center" prop="remark" />
/>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
width="180"
>
<template slot-scope="scope">
<el-button
@ -441,7 +218,7 @@
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['earlyStage:bidWinning:edit']"
v-hasPermi="['earlyStage:bidResult:edit']"
>修改</el-button
>
<el-button
@ -449,7 +226,7 @@
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['earlyStage:bidWinning:remove']"
v-hasPermi="['earlyStage:bidResult:remove']"
>删除</el-button
>
</template>
@ -464,130 +241,139 @@
@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="investProjectCode">
<el-input
v-model="form.investProjectCode"
placeholder="请输入投资项目代码"
/>
</el-form-item>
<el-form-item label="投资项目名称" prop="investProjectName">
<el-input
v-model="form.investProjectName"
placeholder="请输入投资项目名称"
/>
</el-form-item>
<el-form-item label="招标项目名称" prop="bidProjectName">
<el-input
v-model="form.bidProjectName"
placeholder="请输入招标项目名称"
/>
</el-form-item>
<el-form-item label="标段" prop="lotName">
<el-input v-model="form.lotName" placeholder="请输入标段" />
</el-form-item>
<el-form-item label="公示名称" prop="noticeName">
<el-input v-model="form.noticeName" placeholder="请输入公示名称" />
</el-form-item>
<el-form-item label="开标日期" prop="bidOpenDate">
<el-date-picker
clearable
size="small"
style="width: 200px"
v-model="form.bidOpenDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择开标日期"
>
</el-date-picker>
</el-form-item>
<el-form-item label="评标情况" prop="evaluationSituation">
<el-input
v-model="form.evaluationSituation"
placeholder="请输入评标情况"
/>
</el-form-item>
<el-form-item label="招标人" prop="tendererName">
<el-input v-model="form.tendererName" placeholder="请输入招标人" />
</el-form-item>
<el-form-item label="办公地址" prop="officeAddress">
<el-input v-model="form.officeAddress" placeholder="请输入办公地址" />
</el-form-item>
<el-form-item label="招标人联系人" prop="bidderContacts">
<el-input
v-model="form.bidderContacts"
placeholder="请输入招标人联系人"
/>
</el-form-item>
<el-form-item label="联系电话" prop="contactsPhone">
<el-input v-model="form.contactsPhone" placeholder="请输入联系电话" />
</el-form-item>
<el-form-item label="招标投标监督部门" prop="tenderingSupervisionDept">
<el-input
v-model="form.tenderingSupervisionDept"
placeholder="请输入招标投标监督部门"
/>
</el-form-item>
<el-form-item label="联系电话" prop="deptPhone">
<el-input v-model="form.deptPhone" placeholder="请输入联系电话" />
</el-form-item>
<el-form-item label="联系地址" prop="deptAddress">
<el-input v-model="form.deptAddress" placeholder="请输入联系地址" />
</el-form-item>
<el-form-item label="公示开始时间" prop="publicityStartTime">
<el-date-picker
clearable
size="small"
style="width: 200px"
v-model="form.publicityStartTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择公示开始时间"
>
</el-date-picker>
</el-form-item>
<el-form-item label="公示结束日期" prop="publicityEndTime">
<el-date-picker
clearable
size="small"
style="width: 200px"
v-model="form.publicityEndTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择公示结束日期"
>
</el-date-picker>
</el-form-item>
<el-form-item label="公示ID" prop="noticeId">
<el-input v-model="form.noticeId" placeholder="请输入公示ID" />
</el-form-item>
<el-form-item label="项目编码" prop="projectCode">
<el-input v-model="form.projectCode" placeholder="请输入项目编码" />
</el-form-item>
<el-form-item label="附件地址" prop="attachmentAddress">
<el-input
v-model="form.attachmentAddress"
placeholder="请输入附件地址"
/>
</el-form-item>
<el-form-item label="项目编号" prop="proNo">
<el-input v-model="form.proNo" placeholder="请输入项目编号" />
</el-form-item>
<el-form-item label="创建人" prop="createUid">
<el-input v-model="form.createUid" placeholder="请输入创建人" />
</el-form-item>
<el-form-item label="更新人" prop="updateUid">
<el-input v-model="form.updateUid" placeholder="请输入更新人" />
</el-form-item>
<el-form-item label="数源部门" prop="owerDept">
<el-input v-model="form.owerDept" placeholder="请输入数源部门" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-form>
<!-- 添加或修改中标结果对话框 -->
<el-dialog :title="title" :visible.sync="open" width="90%" append-to-body>
<el-row :gutter="15">
<el-form ref="form" :model="form" :rules="rules" label-width="110px">
<el-col :span="12">
<el-form-item label="投资项目代码" prop="investProjectCode">
<el-input
v-model="form.investProjectCode"
placeholder="请输入投资项目代码"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="投资项目名称" prop="investProjectName">
<el-input
v-model="form.investProjectName"
placeholder="请输入投资项目名称"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="招标项目名称" prop="bidProjectName">
<el-input
v-model="form.bidProjectName"
placeholder="请输入招标项目名称"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="标段" prop="lotName">
<el-input v-model="form.lotName" placeholder="请输入标段" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="公告名称" prop="noticeName">
<el-input
v-model="form.noticeName"
placeholder="请输入公告名称"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="招标人" prop="tendererName">
<el-input
v-model="form.tendererName"
placeholder="请输入招标人"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="招标代理" prop="biddingAgency">
<el-input
v-model="form.biddingAgency"
placeholder="请输入招标代理"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="中标人" prop="successfulBidder">
<el-input
v-model="form.successfulBidder"
placeholder="请输入中标人"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="中标价" prop="bidWinningPrice">
<el-input
v-model="form.bidWinningPrice"
placeholder="请输入中标价"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="费率" prop="rate">
<el-input v-model="form.rate" placeholder="请输入费率" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="工期" prop="deliveryTime">
<el-date-picker
clearable
size="small"
style="width: 100%"
v-model="form.deliveryTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择工期"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目负责人" prop="projectLeader">
<el-input
v-model="form.projectLeader"
placeholder="请输入项目负责人"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="中标日期" prop="bidWinningTime">
<el-date-picker
clearable
size="small"
style="width: 100%"
v-model="form.bidWinningTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择中标日期"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="附件地址" prop="attachmentAddress">
<el-input
v-model="form.attachmentAddress"
placeholder="请输入附件地址"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目编码" prop="projectCode">
<el-input
v-model="form.projectCode"
placeholder="请输入项目编码"
/>
</el-form-item>
</el-col>
</el-form>
</el-row>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
@ -598,16 +384,16 @@
<script>
import {
listBidWinning,
getBidWinning,
delBidWinning,
addBidWinning,
updateBidWinning,
exportBidWinning,
} from "@/api/earlyStage/bidWinning";
listBidResult,
getBidResult,
delBidResult,
addBidResult,
updateBidResult,
exportBidResult,
} from "@/api/earlyStage/bidResult";
export default {
name: "BidWinning",
name: "BidResult",
props: ["proNo"],
data() {
return {
@ -623,8 +409,8 @@ export default {
showSearch: true,
//
total: 0,
//
bidWinningList: [],
//
bidResultList: [],
//
title: "",
//
@ -640,20 +426,16 @@ export default {
bidProjectName: null,
lotName: null,
noticeName: null,
bidOpenDate: null,
evaluationSituation: null,
tendererName: null,
officeAddress: null,
bidderContacts: null,
contactsPhone: null,
tenderingSupervisionDept: null,
deptPhone: null,
deptAddress: null,
publicityStartTime: null,
publicityEndTime: null,
noticeId: null,
projectCode: null,
biddingAgency: null,
successfulBidder: null,
bidWinningPrice: null,
rate: null,
deliveryTime: null,
projectLeader: null,
bidWinningTime: null,
attachmentAddress: null,
projectCode: null,
proNo: null,
createUid: null,
createTime: null,
@ -680,12 +462,12 @@ export default {
},
},
methods: {
/** 查询中标候选人公示基本信息列表 */
/** 查询中标结果列表 */
getList() {
this.loading = true;
this.queryParams.data.proNo = this.proNo;
listBidWinning(this.queryParams).then((response) => {
this.bidWinningList = response.records;
listBidResult(this.queryParams).then((response) => {
this.bidResultList = response.records;
this.total = response.total;
this.loading = false;
});
@ -704,20 +486,16 @@ export default {
bidProjectName: null,
lotName: null,
noticeName: null,
bidOpenDate: null,
evaluationSituation: null,
tendererName: null,
officeAddress: null,
bidderContacts: null,
contactsPhone: null,
tenderingSupervisionDept: null,
deptPhone: null,
deptAddress: null,
publicityStartTime: null,
publicityEndTime: null,
noticeId: null,
projectCode: null,
biddingAgency: null,
successfulBidder: null,
bidWinningPrice: null,
rate: null,
deliveryTime: null,
projectLeader: null,
bidWinningTime: null,
attachmentAddress: null,
projectCode: null,
proNo: null,
createUid: null,
createTime: null,
@ -740,20 +518,16 @@ export default {
bidProjectName: null,
lotName: null,
noticeName: null,
bidOpenDate: null,
evaluationSituation: null,
tendererName: null,
officeAddress: null,
bidderContacts: null,
contactsPhone: null,
tenderingSupervisionDept: null,
deptPhone: null,
deptAddress: null,
publicityStartTime: null,
publicityEndTime: null,
noticeId: null,
projectCode: null,
biddingAgency: null,
successfulBidder: null,
bidWinningPrice: null,
rate: null,
deliveryTime: null,
projectLeader: null,
bidWinningTime: null,
attachmentAddress: null,
projectCode: null,
proNo: null,
createUid: null,
createTime: null,
@ -785,16 +559,16 @@ export default {
handleAdd() {
this.reset();
this.open = true;
this.title = "添加中标候选人公示基本信息";
this.title = "添加中标结果";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids;
getBidWinning(id).then((response) => {
getBidResult(id).then((response) => {
this.form = response.data;
this.open = true;
this.title = "修改中标候选人公示基本信息";
this.title = "修改中标结果";
});
},
/** 提交按钮 */
@ -802,7 +576,7 @@ export default {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.id != null) {
updateBidWinning(this.form).then((response) => {
updateBidResult(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("修改成功");
this.open = false;
@ -811,7 +585,7 @@ export default {
});
} else {
this.form.proNo = this.proNo;
addBidWinning(this.form).then((response) => {
addBidResult(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("新增成功");
this.open = false;
@ -832,7 +606,7 @@ export default {
type: "warning",
})
.then(function () {
return delBidWinning(ids);
return delBidResult(ids);
})
.then(() => {
this.getList();
@ -843,28 +617,15 @@ export default {
this.$message.warning("请选择要删除的数据!!");
}
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
let message = "是否确认导出所有的数据项?";
if (this.ids) {
message = "是否确认导出选中的数据项?";
queryParams.ids = this.ids;
}
this.$confirm(message, "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return exportBidWinning(queryParams);
})
.then((response) => {
this.downloadFile(response, true, response.msg);
// this.download(response.msg);
})
.catch(function () {});
},
},
};
</script>
<style lang="scss" scoped>
::v-deep {
.el-dialog {
margin-top: 2vh !important;
height: 90%;
overflow-y: auto;
}
}
</style>

269
jwtech-admin-page/src/views/project/report/index.vue

@ -1,17 +1,15 @@
<template>
<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
>{{ item.routeName }}</el-breadcrumb-item
>
</el-breadcrumb>
<el-row :gutter="20" v-show="showSearch">
<el-col :span="22">
<!-- 搜索条件 -->
@ -49,27 +47,19 @@
<el-form-item>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>重置</el-button
>
</el-form-item>
</el-form>
</el-col>
<el-col :span="2">
<el-button
size="mini"
type="primary"
@click="handleAdd"
>新增研究报告</el-button
<el-button size="mini" type="primary" @click="handleAdd"
>新增研究报告</el-button
>
</el-col>
</el-row>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="success"
@ -78,7 +68,8 @@
:disabled="single"
@click="handleUpdate"
v-hasPermi="['earlyStage:feasibility:edit']"
>修改</el-button>
>修改</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
@ -88,22 +79,45 @@
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['earlyStage:feasibility:remove']"
>删除</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="feasibilityList" @selection-change="handleSelectionChange">
<!-- 列表-->
<el-table
v-loading="loading"
:data="feasibilityList"
@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="序号" type="index" width="50" align="center" />
<el-table-column
label="项目名称"
align="center"
prop="projectName"
:formatter="projectNameFormat"
width="180"
/>
<el-table-column
label="项目类型"
align="center"
prop="projectType"
:formatter="projectTypeFormat"
width="180"
/>
<el-table-column label="编制单位" align="center" prop="compilingUnit" />
<el-table-column label="可行性研究报告文件" align="center" prop="feasibilityReportFile" >
<el-table-column
label="可行性研究报告文件"
align="center"
prop="feasibilityReportFile"
width="180"
>
<template slot-scope="scope">
<div
v-for="(item, index) in JSON.parse(scope.row.feasibilityReportFile)"
@ -114,10 +128,17 @@
</div>
</template>
</el-table-column>
<el-table-column label="可行性研究报告相关附件" align="center" prop="feasibilityReportAttachment" >
<el-table-column
label="可行性研究报告相关附件"
align="center"
prop="feasibilityReportAttachment"
width="180"
>
<template slot-scope="scope">
<div
v-for="(item, index) in JSON.parse(scope.row.feasibilityReportAttachment)"
v-for="(item, index) in JSON.parse(
scope.row.feasibilityReportAttachment
)"
:key="item + index"
>
<i class="el-icon-document"></i>
@ -126,14 +147,23 @@
</template>
</el-table-column>
<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"
width="180"
>
<template slot-scope="scope">
<el-button
size="mini"
@ -141,29 +171,28 @@
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['earlyStage:feasibility:edit']"
>修改</el-button>
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['earlyStage:feasibility: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"
@pagination="getList"
/>
<!-- 添加或修改可行性研究报告对话框 -->
<el-dialog
:title="title"
@ -185,9 +214,9 @@
>
<el-option
v-for="dict in projectNameOptions"
:key="dict.proNo"
:label="dict.projectName+'['+dict.projectCode+']'"
:value="dict.projectName+'['+dict.projectCode+']'"
:key="dict.projectName + dict.id"
:label="dict.projectName + '[' + dict.projectCode + ']'"
:value="dict.projectName + '[' + dict.projectCode + ']'"
@click.native="getId(dict)"
/>
</el-select>
@ -229,7 +258,7 @@
</el-form-item>
</el-col>
<!-- <el-col :span="12">
<!-- <el-col :span="12">
<el-form-item label="项目编码" prop="projectCode">
<el-select
v-model="form.projectCode"
@ -275,7 +304,6 @@
type="date"
value-format="yyyy-MM-dd"
placeholder="选择上报时间"
>
</el-date-picker>
</el-form-item>
@ -290,7 +318,6 @@
type="date"
value-format="yyyy-MM-dd"
placeholder="选择审批时间"
>
</el-date-picker>
</el-form-item>
@ -340,7 +367,10 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="可行性研究报告相关附件" prop="opinionAttachment">
<el-form-item
label="可行性研究报告相关附件"
prop="opinionAttachment"
>
<!-- <el-input
v-model="form.opinionAttachment"
placeholder="请输入意见附件"
@ -378,7 +408,14 @@
</template>
<script>
import { listFeasibility, getFeasibility, delFeasibility, addFeasibility, updateFeasibility, exportFeasibility } from "@/api/earlyStage/feasibility";
import {
listFeasibility,
getFeasibility,
delFeasibility,
addFeasibility,
updateFeasibility,
exportFeasibility,
} from "@/api/earlyStage/feasibility";
import {
listProposal,
getProposal,
@ -386,10 +423,10 @@ import {
addProposal,
updateProposal,
exportProposal,
getProjectCode
getProjectCode,
} from "@/api/earlyStage/proposal";
import {getProjectinfo, listProjectinfo} from "@/api/earlyStage/projectinfo";
import {getFileStream} from "@/api/system/upload";
import { getProjectinfo, listProjectinfo } from "@/api/earlyStage/projectinfo";
import { getFileStream } from "@/api/system/upload";
import { getToken } from "@/utils/auth";
export default {
@ -397,7 +434,7 @@ export default {
data() {
return {
//
attachmentList:[],
attachmentList: [],
//
fileList: [],
//
@ -405,12 +442,9 @@ export default {
jianwei: "jwtech " + getToken(),
},
//
projectNameOptions:[],
projectNameOptions: [],
//
IS:[
"是",
"否"
],
IS: ["是", "否"],
//
routeList: [
{
@ -442,8 +476,8 @@ export default {
queryParams: {
pageNum: 1,
pageSize: 10,
ids:null,
data:{
ids: null,
data: {
projectName: null,
projectType: null,
compilingUnit: null,
@ -463,23 +497,18 @@ export default {
updateUid: null,
updateTime: null,
owerDept: null,
remark: null
remark: null,
},
cv:{}
cv: {},
},
//
form: {},
//
rules: {
},
projectType:"",
rules: {},
projectType: "",
proNo: "",
proCodeList:[],
proCodeList: [],
// projectCode: "",
};
},
created() {
@ -489,31 +518,31 @@ export default {
});
},
methods: {
clear(){
clear() {
this.fileList = [];
this.attachmentList = [];
this.proCodeList = [];
},
getId(res){
getId(res) {
// console.log(res.projectType)
this.form.projectType = res.projectType;
this.form.projectCode = res.projectCode;
},
//
projectTypeFormat(row, column) {
return this.selectDictLabel(this.projectTypeOptions, row.projectType);
},
projectNameFormat(row) {
return row.projectName.slice(0, row.projectName.indexOf("["));
},
/** 查询可行性研究报告列表 */
getList() {
this.loading = true;
this.queryParams.params = {
orderBy: "create_time",
sort:"desc"
sort: "desc",
};
listFeasibility(this.queryParams).then(response => {
listFeasibility(this.queryParams).then((response) => {
this.feasibilityList = response.records;
this.total = response.total;
this.loading = false;
@ -547,7 +576,7 @@ export default {
updateUid: null,
updateTime: null,
owerDept: null,
remark: null
remark: null,
};
this.resetForm("form");
},
@ -556,7 +585,7 @@ export default {
this.queryParams = {
pageNum: 1,
pageSize: 10,
data:{
data: {
id: null,
projectName: null,
projectType: null,
@ -577,17 +606,16 @@ export default {
updateUid: null,
updateTime: null,
owerDept: null,
remark: null
remark: null,
},
cv: {},
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.cv.name="projectName"
this.queryParams.cv.type="like"
this.queryParams.cv.name = "projectName";
this.queryParams.cv.type = "like";
this.queryParams.pageNum = 1;
this.getList();
},
@ -598,9 +626,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() {
@ -608,32 +636,32 @@ export default {
this.form = {};
this.fileList = [];
this.attachmentList = [];
listProposal(this.queryParams).then((response) => {
this.projectNameOptions = response.records;
});
this.open = true;
this.title = "添加可行性研究报告";
listProposal(this.queryParams).then((response)=>{
this.projectNameOptions = response.records;
})
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
this.open = true;
this.title = "修改可行性研究报告";
// listProjectinfo(this.queryParams).then((response)=>{
// this.projectNameOptions = response.records;
// })
const id = row.id || this.ids
getFeasibility(id).then(response => {
const id = row.id || this.ids;
getFeasibility(id).then((response) => {
this.form = response.data;
//
if (response.data.feasibilityReportFile) {
this.fileList = JSON.parse(response.data.feasibilityReportFile);
}
if (response.data.feasibilityReportAttachment) {
this.attachmentList = JSON.parse(response.data.feasibilityReportAttachment);
this.attachmentList = JSON.parse(
response.data.feasibilityReportAttachment
);
}
// getProjectCode(response.data.proNo).then((response)=>{
@ -641,26 +669,24 @@ export default {
// this.proCodeList = response.data;
// // console.log(this.proCodeList)
// })
listProposal(this.queryParams).then((response)=>{
listProposal(this.queryParams).then((response) => {
this.projectNameOptions = response.records;
})
});
this.open = true;
this.title = "修改可行性研究报告";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
this.$refs["form"].validate((valid) => {
//
this.form.feasibilityReportFile = JSON.stringify(this.fileList);
this.form.feasibilityReportAttachment = JSON.stringify(this.attachmentList);
this.form.feasibilityReportAttachment = JSON.stringify(
this.attachmentList
);
if (valid) {
if (this.form.id != null) {
this.form.projectName=this.form.projectName.slice(0, this.form.projectName.indexOf('['));
updateFeasibility(this.form).then(response => {
updateFeasibility(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("修改成功");
this.open = false;
@ -668,10 +694,13 @@ export default {
}
});
} else {
this.form.proNo=this.proNo;
this.form.proNo = this.proNo;
// this.form.projectType = this.projectType;
this.form.projectName=this.form.projectName.slice(0, this.form.projectName.indexOf('['));
addFeasibility(this.form).then(response => {
this.form.projectName = this.form.projectName.slice(
0,
this.form.projectName.indexOf("[")
);
addFeasibility(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("新增成功");
this.open = false;
@ -685,21 +714,23 @@ export default {
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
if(ids){
if (ids) {
this.$confirm("是否删除选中的数据?", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
return delFeasibility(ids);
}).then(() => {
this.getList();
this.msgSuccess("删除成功");
}).catch(function() {});
}else{
type: "warning",
})
.then(function () {
return delFeasibility(ids);
})
.then(() => {
this.getList();
this.msgSuccess("删除成功");
})
.catch(function () {});
} else {
this.$message.warning("请选择要删除的数据!!");
}
},
//
handleFilePreview(file) {
@ -721,9 +752,7 @@ export default {
},
handleFileRemove(file, fileList) {
// console.log(file, fileList);
let index = this.fileList.findIndex(
(item) => item.uid === file.uid
);
let index = this.fileList.findIndex((item) => item.uid === file.uid);
//
this.fileList.splice(index, 1);
},
@ -793,6 +822,6 @@ export default {
// fileList: fileList,
});
},
}
},
};
</script>

Loading…
Cancel
Save