Commit f35e9be1 authored by 张冬's avatar 张冬

询价公告和招标公告编辑和发布合

parent ea22c7eb
...@@ -564,6 +564,14 @@ export function createcadidate(data) { ...@@ -564,6 +564,14 @@ export function createcadidate(data) {
data:data data:data
}) })
} }
//中标候选人公示编辑
export function editcadidate(data) {
return request({
url: "tender-notice/edit-cadidate",
method: 'post',
data:data
})
}
//中标公告提交 //中标公告提交
export function createwin(data) { export function createwin(data) {
......
...@@ -288,9 +288,9 @@ export function noticeWin(projectId) { ...@@ -288,9 +288,9 @@ export function noticeWin(projectId) {
}) })
} }
// 中标候选人公示查看 // 中标候选人公示查看
export function publicitydetail(projectId) { export function cadidate(projectId) {
return request({ return request({
url: `bidder-decide/publicity/Detail/${projectId}`, url: `notice/cadidate?projectId=${projectId}`,
method: 'get', method: 'get',
}) })
} }
......
...@@ -181,17 +181,18 @@ export default { ...@@ -181,17 +181,18 @@ export default {
this.total = total this.total = total
} }
}, },
async list(pageObj) { // async list(pageObj) {
let url = this.url // let url = this.url
const { code, data } = await getList(pageObj, url) // const { code, data } = await getList(pageObj, url)
if (code === 200) { // if (code === 200) {
for(let item of data){ // for(let item of data){
item.createTime=getTime1(item.createTime) // item.createTime=getTime1(item.createTime)
item.endTime=getTime1(item.endTime) // item.endTime=getTime1(item.endTime)
} // }
this.tableData = data // this.tableData = data
} // this.total = total
}, // }
// },
handleSizeChange(val) { handleSizeChange(val) {
let pageObj = this.pageObj let pageObj = this.pageObj
pageObj.size = val pageObj.size = val
...@@ -207,9 +208,10 @@ export default { ...@@ -207,9 +208,10 @@ export default {
// 查询 // 查询
query() { query() {
let message=this.objInput; let message=this.objInput;
this.pageObj.currentPage=1
Object.assign(message,this.pageObj) Object.assign(message,this.pageObj)
console.log(message) this.pageObj=message
this.list(message) this.getauditList()
}, },
// check选择id // check选择id
handleSelectionChange(val) { handleSelectionChange(val) {
...@@ -218,6 +220,8 @@ export default { ...@@ -218,6 +220,8 @@ export default {
// 重置 // 重置
rest(data) { rest(data) {
this.$refs[data].resetFields() this.$refs[data].resetFields()
this.pageObj.currentPage=1
this.pageObj.size=10
this.getauditList(this.pageObj); this.getauditList(this.pageObj);
}, },
handlerelease() { handlerelease() {
......
...@@ -417,35 +417,7 @@ export default { ...@@ -417,35 +417,7 @@ export default {
cancel() { cancel() {
this.$router.go(-1); this.$router.go(-1);
}, },
//提交表单
async submit() {
try {
const valid = await this.$refs['ruleForm'].validate();
const valid1 = await this.$refs['ruleForm1'].validate();
const valid2 = await this.$refs['ruleForm2'].validate();
console.log(valid);
if (valid && valid1 && valid2) {
let ruleForm = this.ruleForm;
ruleForm.projectId = localStorage.getItem('projectId');
console.log('通过');
const { code, msg } = await editEnquiry(ruleForm);
if (code == 200) {
this.$message({
message: msg,
type: 'success',
duration: 1500
});
setTimeout(() => {
this.$router.go(-1);
}, 1500);
} else {
this.$message.error(msg);
}
}
} catch (err) {
console.log(err);
}
},
// 获取列表 // 获取列表
async getcommoditylist() { async getcommoditylist() {
let projectId = localStorage.getItem('projectId'); let projectId = localStorage.getItem('projectId');
......
<template> <template>
<div> <div>
<div v-if="auditStatus == 0||auditStatus == 1">
<div class="content-head"> <div class="content-head">
<breadCrumb :breads="breads"></breadCrumb> <breadCrumb :breads="breads"></breadCrumb>
<h3>查看询价公告</h3> <h3>查看询价公告</h3>
<h5>查看询价公告</h5> <h5>查看询价公告</h5>
</div> </div>
<div class="content"> <div class="content">
<priceDetail @getstate="getstate"> <priceDetail>
<slot> <slot>
<h3>参与报价供应商情况</h3> <h3>参与报价供应商情况</h3>
<dataTable :table-data="Bidderlist" :columns="offerBiddercolumns" :is-index="true"> <dataTable :table-data="Bidderlist" :columns="offerBiddercolumns" :is-index="true">
...@@ -31,9 +30,6 @@ ...@@ -31,9 +30,6 @@
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
<editInquiryAnnouncement v-if="auditStatus == 2"></editInquiryAnnouncement>
</div>
</template> </template>
<script> <script>
...@@ -111,10 +107,6 @@ export default { ...@@ -111,10 +107,6 @@ export default {
}; };
}, },
methods: { methods: {
getstate(val) {
this.auditStatus = val;
console.log(val)
},
back() { back() {
this.$router.go(-1); this.$router.go(-1);
}, },
......
<template> <template>
<div class="info"> <div class="info">
<div class="content"> <div class="content">
<editTenderAnnouncement v-if="auditStatus == 2"></editTenderAnnouncement>
<div v-if="auditStatus == 0||auditStatus == 1">
<div class="title_info"> <div class="title_info">
<dataBreadcrumb :breads="breads"></dataBreadcrumb> <dataBreadcrumb :breads="breads"></dataBreadcrumb>
</div> </div>
...@@ -14,7 +12,6 @@ ...@@ -14,7 +12,6 @@
</div> </div>
</div> </div>
</div> </div>
</div>
</template> </template>
<script> <script>
import noticeDetail from '@components/detail/noticeDetail.vue'; import noticeDetail from '@components/detail/noticeDetail.vue';
...@@ -33,9 +30,6 @@ export default { ...@@ -33,9 +30,6 @@ export default {
}; };
}, },
methods: { methods: {
getstate(val) {
this.auditStatus = val;
},
back() { back() {
this.$router.go(-1); this.$router.go(-1);
} }
......
...@@ -20,29 +20,26 @@ ...@@ -20,29 +20,26 @@
<quill-editor ref="text" v-model="ruleForm.content" :options="editorOption" class="myQuillEditor" /> <quill-editor ref="text" v-model="ruleForm.content" :options="editorOption" class="myQuillEditor" />
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
</div> </div>
<div class="bottomButton"> <div class="bottomButton">
<el-button @click="cancel">取消</el-button> <el-button @click="cancel">取消</el-button>
<el-button type="primary" @click="submit">提交审核</el-button> <el-button type="primary" @click="submit1" v-if="type == 1">编辑</el-button>
<el-button type="primary" @click="submit" v-else>提交审核</el-button>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import { import { biddingProjectId } from '@api/common/list';
inviteMessage import { inviteMessage } from '@api/purchaser/bid';
} from '@api/purchaser/bid' import { quillEditor } from 'vue-quill-editor';
import { import 'quill/dist/quill.core.css';
quillEditor import 'quill/dist/quill.snow.css';
} from 'vue-quill-editor' import 'quill/dist/quill.bubble.css';
import 'quill/dist/quill.core.css'
import 'quill/dist/quill.snow.css'
import 'quill/dist/quill.bubble.css'
import dataBreadcrumb from '@components/dataBreadcrumb.vue' import dataBreadcrumb from '@components/dataBreadcrumb.vue';
import singleUpload from '@components/Upload/Upload.vue' import singleUpload from '@components/Upload/Upload.vue';
export default { export default {
components: { components: {
dataBreadcrumb, dataBreadcrumb,
...@@ -51,79 +48,123 @@ export default { ...@@ -51,79 +48,123 @@ export default {
}, },
data() { data() {
return { return {
type: '',
editorOption: {}, editorOption: {},
breads: ['招标管理', '招标项目管理', '工作台'], breads: ['招标管理', '招标项目管理', '工作台'],
ruleForm: { ruleForm: {
title: '', title: '',
content: '' content: '',
accessoryPOList: []
}, },
rules: { rules: {
title: [{ title: [
{
required: true, required: true,
message: '请填写', message: '请填写',
trigger: 'blur' trigger: 'blur'
}], }
content: [{ ],
content: [
{
required: true, required: true,
message: '请填写', message: '请填写',
trigger: 'blur' trigger: 'blur'
}]
} }
]
}
};
},
created() {
let type = this.$route.query.type;
this.type = type;
if (type == 1) {
this.getbiddingProjectId();
} }
}, },
methods: { methods: {
cancel() { cancel() {
this.$router.go(-1) this.$router.go(-1);
}, },
getfile(val) { getfile(val) {
console.log(val)
for (let item of val) { for (let item of val) {
item.accessoryUrl = item.fileUrl item.accessoryUrl = item.fileUrl;
}
this.ruleForm.accessoryPOList = val;
},
async getbiddingProjectId() {
let projectId = localStorage.getItem('projectId');
const { data, code, msg } = await biddingProjectId(projectId);
if (code == 200) {
for (let item of data.accessoryVOList) {
item.url = item.accessoryUrl;
item.name = item.fileName;
}
this.ruleForm = data;
} }
this.accessoryPOList = val
}, },
//提交表单 //提交表单
async submit() { async submit() {
let ruleForm = this.ruleForm let ruleForm = this.ruleForm;
ruleForm.projectId = '1' ruleForm.projectId = localStorage.getItem('projectId');
ruleForm.accessoryPOList = this.accessoryPOList
try { try {
const valid = await this.$refs['ruleForm'].validate() const valid = await this.$refs['ruleForm'].validate();
if (valid) { if (valid) {
const { const { code, msg } = await inviteMessage(this.ruleForm);
code,
msg
} = await inviteMessage(this.ruleForm)
if (code === 200) { if (code === 200) {
this.$message({ this.$message({
message: msg, message: msg,
type: 'success' type: 'success'
}) });
this.$router.go(-1) this.$router.go(-1);
}else{ } else {
this.$message.error(msg) this.$message.error(msg);
} }
} }
} catch (err) { } catch (err) {
console.log(err) console.log(err);
} }
},
//提交表单
async submit1() {
let ruleForm = this.ruleForm;
ruleForm.projectId = localStorage.getItem('projectId');
ruleForm.accessoryPOList = this.accessoryPOList;
try {
const valid = await this.$refs['ruleForm'].validate();
if (valid) {
const { code, msg } = await editBidding(this.ruleForm);
if (code === 200) {
this.$message({
message: msg,
type: 'success',
duration: 1500
});
setTimeout(() => {
this.$router.go(-1);
}, 1500);
} else if (code == 500) {
this.$message.error(msg);
} }
} }
} catch (err) {
} console.log(err);
}
}
}
};
</script> </script>
<style scoped> <style scoped>
.ql-editor { .ql-editor {
height: 400px; height: 400px;
} }
.bottomButton { .bottomButton {
margin-top: 20px; margin-top: 20px;
} }
.form { .form {
padding-bottom: 80px; padding-bottom: 80px;
} }
</style> </style>
...@@ -10,57 +10,95 @@ ...@@ -10,57 +10,95 @@
<div> <div>
<div class="describe">基本信息</div> <div class="describe">基本信息</div>
<div class="form"> <div class="form">
<div class="flex-between" style="width:100%;margin-bottom: 20px;"> <div class="flex-between" style="width: 100%; margin-bottom: 20px">
<div>项目编号:{{projectCode}}</div> <div>项目编号:{{ projectCode }}</div>
<div>项目名称:{{projectName}}</div> <div>项目名称:{{ projectName }}</div>
</div> </div>
<el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="120px" class="demo-ruleForm"> <el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="120px" class="demo-ruleForm">
<el-form-item label="询价公告名称" prop="title"> <el-form-item label="询价公告名称" prop="title">
<el-input v-model.trim="ruleForm.title" placeholder="请输入" style="width: 50%;" maxlength="30"></el-input> <el-input v-model.trim="ruleForm.title" placeholder="请输入" style="width: 50%" maxlength="30"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="询价所在地" prop="address"> <el-form-item label="询价所在地" prop="address">
<citySelect @sendprovinceId="getprovinceId" @sendcityId="getcityId" @senddistrictId="getdistrictId"></citySelect> <citySelect
@sendprovinceId="getprovinceId"
@sendcityId="getcityId"
@senddistrictId="getdistrictId"
></citySelect>
</el-form-item> </el-form-item>
<el-form-item label="项目优先级" prop="priority" > <el-form-item label="项目优先级" prop="priority">
<el-radio-group v-model="ruleForm.priority"> <el-radio-group v-model="ruleForm.priority">
<el-radio :label="0">普通</el-radio> <el-radio :label="0">普通</el-radio>
<el-radio :label="1">紧急</el-radio> <el-radio :label="1">紧急</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<div class="flex-between" style="width:60%"> <div class="flex-between" style="width: 60%">
<el-form-item label="询价单编号" prop="inquiryCode"> <el-form-item label="询价单编号" prop="inquiryCode">
<el-input v-model.trim="ruleForm.inquiryCode" onkeyup="value=value.replace(/[^\d]/g,'')" placeholder="请输入" maxlength="30" style="width: 250px;"></el-input> <el-input
v-model.trim="ruleForm.inquiryCode"
onkeyup="value=value.replace(/[^\d]/g,'')"
placeholder="请输入"
maxlength="30"
style="width: 250px"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="采购目录" prop="purchaseCategory"> <el-form-item label="采购目录" prop="purchaseCategory">
<el-input v-model.trim="ruleForm.purchaseCategory" placeholder="请输入" maxlength="30" style="width: 250px;"></el-input> <el-input
v-model.trim="ruleForm.purchaseCategory"
placeholder="请输入"
maxlength="30"
style="width: 250px"
></el-input>
</el-form-item> </el-form-item>
</div> </div>
<div class="flex-between" style="width:60%"> <div class="flex-between" style="width: 60%">
<el-form-item label="报价开始时间" prop="startTime"> <el-form-item label="报价开始时间" prop="startTime">
<el-date-picker v-model="ruleForm.startTime" type="datetime" placeholder="选择日期时间" disabled style="width: 250px;"> <el-date-picker
v-model="ruleForm.startTime"
type="datetime"
placeholder="选择日期时间"
disabled
style="width: 250px"
>
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="报价结束时间" prop="endTime"> <el-form-item label="报价结束时间" prop="endTime">
<el-date-picker v-model="ruleForm.endTime" type="datetime" placeholder="选择日期时间" disabled style="width: 250px;"> <el-date-picker
v-model="ruleForm.endTime"
type="datetime"
placeholder="选择日期时间"
disabled
style="width: 250px"
>
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="采购单位" prop="purchaseAgent"> <el-form-item label="采购单位" prop="purchaseAgent">
<el-input v-model.trim="ruleForm.purchaseAgent" disabled style="width: 250px;"></el-input> <el-input v-model.trim="ruleForm.purchaseAgent" disabled style="width: 250px"></el-input>
</el-form-item> </el-form-item>
</div> </div>
<div class="flex-between" style="width:60%"> <div class="flex-between" style="width: 60%">
<el-form-item label="采购单位联系人" prop="contact"> <el-form-item label="采购单位联系人" prop="contact">
<el-input v-model.trim="ruleForm.contact" disabled style="width: 250px;"></el-input> <el-input v-model.trim="ruleForm.contact" disabled style="width: 250px"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="联系方式" prop="contactPhone"> <el-form-item label="联系方式" prop="contactPhone">
<el-input v-model.trim="ruleForm.contactPhone" disabled style="width: 250px;"></el-input> <el-input v-model.trim="ruleForm.contactPhone" disabled style="width: 250px"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="传真号码" > <el-form-item label="传真号码">
<el-input v-model.trim="ruleForm.facsimile" placeholder="请输入" maxlength="30" style="width: 250px;"></el-input> <el-input
v-model.trim="ruleForm.facsimile"
placeholder="请输入"
maxlength="30"
style="width: 250px"
></el-input>
</el-form-item> </el-form-item>
</div> </div>
<el-form-item label="预算总额(元)" prop="budget" style="width: 20%;"> <el-form-item label="预算总额(元)" prop="budget" style="width: 20%">
<el-input-number v-model="ruleForm.budget" :min="0" :controls="false" :precision="2" placeholder="请输入"></el-input-number> <el-input-number
v-model="ruleForm.budget"
:min="0"
:controls="false"
:precision="2"
placeholder="请输入"
></el-input-number>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
...@@ -69,9 +107,9 @@ ...@@ -69,9 +107,9 @@
<div> <div>
<div class="describe">基本信息</div> <div class="describe">基本信息</div>
<div class="form"> <div class="form">
<div class="flex-between" style="width:100%;margin-bottom: 20px;"> <div class="flex-between" style="width: 100%; margin-bottom: 20px">
<div>项目编号:{{projectCode}}</div> <div>项目编号:{{ projectCode }}</div>
<div>项目名称:{{projectName}}</div> <div>项目名称:{{ projectName }}</div>
</div> </div>
<el-form ref="ruleForm1" :model="ruleForm" :rules="rules" label-width="150px" class="demo-ruleForm"> <el-form ref="ruleForm1" :model="ruleForm" :rules="rules" label-width="150px" class="demo-ruleForm">
<el-form-item label="供应商规格要求" prop="supplierScale"> <el-form-item label="供应商规格要求" prop="supplierScale">
...@@ -91,7 +129,7 @@ ...@@ -91,7 +129,7 @@
<div class="describe">询价商品清单</div> <div class="describe">询价商品清单</div>
<div class="form"> <div class="form">
<dataTable :table-data="tableData" :columns="columns" :is-pageobj="false"></dataTable> <dataTable :table-data="tableData" :columns="columns" :is-pageobj="false"></dataTable>
<div class="flex" style="margin-top: 20px;"> <div class="flex" style="margin-top: 20px">
<div class="adjustment">上传文件</div> <div class="adjustment">上传文件</div>
<singleUpload :limit="1" tip="支持扩展名:.rar .zip .doc .docx .pdf .jpg..." @input="getfile"></singleUpload> <singleUpload :limit="1" tip="支持扩展名:.rar .zip .doc .docx .pdf .jpg..." @input="getfile"></singleUpload>
</div> </div>
...@@ -103,34 +141,36 @@ ...@@ -103,34 +141,36 @@
<div class="form"> <div class="form">
<el-form ref="ruleForm2" :model="ruleForm" :rules="rules" label-width="100px" class="demo-ruleForm"> <el-form ref="ruleForm2" :model="ruleForm" :rules="rules" label-width="100px" class="demo-ruleForm">
<el-form-item label="商务要求" prop="commercialRequirements"> <el-form-item label="商务要求" prop="commercialRequirements">
<el-input v-model.trim="ruleForm.commercialRequirements" :rows="4" style="width: 60%;" placeholder="请输入" type="textarea" maxlength="300"></el-input> <el-input
v-model.trim="ruleForm.commercialRequirements"
:rows="4"
style="width: 60%"
placeholder="请输入"
type="textarea"
maxlength="300"
></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
</div> </div>
<div class="bottomButton"> <div class="bottomButton">
<el-button @click="cancel">取消</el-button> <el-button @click="cancel">取消</el-button>
<el-button type="primary" @click="submit">提交审核</el-button> <el-button type="primary" @click="submit1" v-if="type==1">编辑</el-button>
<el-button type="primary" @click="submit" v-else>提交审核</el-button>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import { generateNumber} from '@/api/common/list' import { generateNumber, enquiryProjectId } from '@/api/common/list';
import dataTable from '@components/nopageTable.vue' import dataTable from '@components/nopageTable.vue';
import dataBreadcrumb from '@components/dataBreadcrumb.vue' import dataBreadcrumb from '@components/dataBreadcrumb.vue';
import citySelect from '@components/citySelect/citySelect.vue' import citySelect from '@components/citySelect/citySelect.vue';
import singleUpload from '@components/Upload/Upload.vue' import singleUpload from '@components/Upload/Upload.vue';
import { import { createEnquiry } from '@api/purchaser/bid';
createEnquiry import { getTime } from '@utils/time';
} from '@api/purchaser/bid' import { commoditylist, inqueryinfo } from '@api/common/list';
import {
getTime
} from '@utils/time'
import {
commoditylist,inqueryinfo
} from '@api/common/list'
export default { export default {
components: { components: {
...@@ -143,17 +183,17 @@ export default { ...@@ -143,17 +183,17 @@ export default {
// 测试省份 // 测试省份
let islocal = (rule, value, callback) => { let islocal = (rule, value, callback) => {
if (!this.ruleForm.provinceId) { if (!this.ruleForm.provinceId) {
callback(new Error('请选择省份')) callback(new Error('请选择省份'));
} else if (!this.ruleForm.cityId) { } else if (!this.ruleForm.cityId) {
callback(new Error('请选择市')) callback(new Error('请选择市'));
} else if (!this.ruleForm.districtId) { } else if (!this.ruleForm.districtId) {
callback(new Error('请选择区')) callback(new Error('请选择区'));
} else { } else {
callback() callback();
}
} }
};
let checkfacsimile = async (rule, value, callback) => { let checkfacsimile = async (rule, value, callback) => {
const reg = /^(?:\d{3,4}-)?\d{7,8}(?:-\d{1,6})?$/ const reg = /^(?:\d{3,4}-)?\d{7,8}(?:-\d{1,6})?$/;
if (reg.test(value)) { if (reg.test(value)) {
callback(); callback();
} else { } else {
...@@ -161,8 +201,8 @@ export default { ...@@ -161,8 +201,8 @@ export default {
} }
}; };
return { return {
projectName:"", projectName: '',
projectCode:"", projectCode: '',
breads: ['招标管理', ' 招标项目管理', '工作台'], breads: ['招标管理', ' 招标项目管理', '工作台'],
tableData: [], tableData: [],
columns: [ columns: [
...@@ -193,7 +233,7 @@ export default { ...@@ -193,7 +233,7 @@ export default {
{ {
label: '备注', label: '备注',
prop: 'remark' prop: 'remark'
}, }
], ],
ruleForm: { ruleForm: {
title: '', title: '',
...@@ -213,195 +253,262 @@ export default { ...@@ -213,195 +253,262 @@ export default {
supplierQualification: '', supplierQualification: '',
supplierRegion: '', supplierRegion: '',
commercialRequirements: '', commercialRequirements: '',
accessoryPOList:[], accessoryPOList: [],
purchaseCategory:"" purchaseCategory: ''
}, },
rules: { rules: {
address: [{ address: [
{
required: true, required: true,
validator: islocal, validator: islocal,
trigger: 'change' trigger: 'change'
}], }
budget: [{ ],
budget: [
{
required: true, required: true,
message: '请输入', message: '请输入',
trigger: 'blur' trigger: 'blur'
}], }
title: [{ ],
title: [
{
required: true, required: true,
message: '请输入', message: '请输入',
trigger: 'blur' trigger: 'blur'
}], }
inquiryCode: [{ ],
inquiryCode: [
{
required: true, required: true,
message: '请输入请输入', message: '请输入请输入',
trigger: 'blur' trigger: 'blur'
}], }
contact: [{ ],
contact: [
{
required: true, required: true,
message: '请输入请输入', message: '请输入请输入',
trigger: 'blur' trigger: 'blur'
}], }
contactPhone: [{ ],
contactPhone: [
{
required: true, required: true,
message: '请输入请输入', message: '请输入请输入',
trigger: 'blur' trigger: 'blur'
}], }
startTime: [{ ],
startTime: [
{
required: true, required: true,
message: '请输入', message: '请输入',
trigger: 'change' trigger: 'change'
}], }
endTime: [{ ],
endTime: [
{
required: true, required: true,
message: '请输入', message: '请输入',
trigger: 'blur' trigger: 'blur'
}], }
purchaseAgent: [{ ],
purchaseAgent: [
{
required: true, required: true,
message: '请输入', message: '请输入',
trigger: 'blur' trigger: 'blur'
}], }
facsimile: [{ ],
facsimile: [
{
required: true, required: true,
validator: checkfacsimile, validator: checkfacsimile,
trigger: 'blur' trigger: 'blur'
}], }
supplierScale: [{ ],
supplierScale: [
{
required: true, required: true,
message: '请输入', message: '请输入',
trigger: 'blur' trigger: 'blur'
}], }
supplierQualification: [{ ],
supplierQualification: [
{
required: true, required: true,
message: '请输入', message: '请输入',
trigger: 'blur' trigger: 'blur'
}], }
supplierRegion: [{ ],
supplierRegion: [
{
required: true, required: true,
message: '请输入', message: '请输入',
trigger: 'blur' trigger: 'blur'
}], }
commercialRequirements: [{ ],
commercialRequirements: [
{
required: true, required: true,
message: '请输入', message: '请输入',
trigger: 'blur' trigger: 'blur'
}]
}
} }
]
},
type: ''
};
}, },
created() { created() {
let userInfo=JSON.parse(localStorage.getItem("userInfo")) let type = this.$route.query.type;
this.ruleForm.purchaseAgent=userInfo.companyName this.type = type;
this.ruleForm.contact=userInfo.name if (type == 1) {
this.ruleForm.contactPhone=userInfo.phone this.getenquiryProjectId()
let data=getTime(); }else{
this.ruleForm.startTime=data; let userInfo = JSON.parse(localStorage.getItem('userInfo'));
this.projectCode=localStorage.getItem("projectCode") this.ruleForm.purchaseAgent = userInfo.companyName;
this.projectName=localStorage.getItem("projectName") this.ruleForm.contact = userInfo.name;
this.getcommoditylist() this.ruleForm.contactPhone = userInfo.phone;
this.getinqueryinfo() this.ruleForm.startTime = getTime();
this.getGenerateNumber() }
this.projectCode = localStorage.getItem('projectCode');
this.projectName = localStorage.getItem('projectName');
this.getcommoditylist();
this.getinqueryinfo();
this.getGenerateNumber();
}, },
methods: { methods: {
// 获取上传文件 // 获取详情
getfile(val) { async getenquiryProjectId() {
let projectId = localStorage.getItem('projectId');
const { data, code, msg } = await enquiryProjectId(projectId);
if (code == 200) {
for (let item of data.accessoryVOList) {
item.name = item.fileName;
item.url = item.accessoryUrl;
}
this.ruleForm = data;
let userInfo = JSON.parse(localStorage.getItem('userInfo'));
this.ruleForm.purchaseAgent = userInfo.companyName;
this.ruleForm.contact = userInfo.name;
this.ruleForm.contactPhone = userInfo.phone;
this.ruleForm.startTime = getTime();
}
}, },
// 获取上传文件
getfile(val) { getfile(val) {
for (let item of val) { for (let item of val) {
item.accessoryUrl = item.fileUrl item.accessoryUrl = item.fileUrl;
} }
this.ruleForm.accessoryPOList = val this.ruleForm.accessoryPOList = val;
}, },
// 获取编号 // 获取编号
async getGenerateNumber() { async getGenerateNumber() {
const {data} = await generateNumber(3) const { data } = await generateNumber(3);
this.ruleForm.inquiryCode = data this.ruleForm.inquiryCode = data;
}, },
// 获取市ID // 获取市ID
getprovinceId(val) { getprovinceId(val) {
this.ruleForm.provinceId = val this.ruleForm.provinceId = val;
}, },
// 获取省ID // 获取省ID
getcityId(val) { getcityId(val) {
this.ruleForm.cityId = val this.ruleForm.cityId = val;
}, },
// 获取城ID // 获取城ID
getdistrictId(val) { getdistrictId(val) {
this.ruleForm.districtId = val this.ruleForm.districtId = val;
}, },
cancel() { cancel() {
this.$router.go(-1) this.$router.go(-1);
}, },
//提交表单 //提交表单
async submit() { async submit() {
try { try {
const valid = await this.$refs['ruleForm'].validate() const valid = await this.$refs['ruleForm'].validate();
const valid1 =await this.$refs['ruleForm1'].validate() const valid1 = await this.$refs['ruleForm1'].validate();
const valid2 =await this.$refs['ruleForm2'].validate() const valid2 = await this.$refs['ruleForm2'].validate();
console.log(valid) console.log(valid);
if (valid&&valid1&&valid2) { if (valid && valid1 && valid2) {
let ruleForm=this.ruleForm; let ruleForm = this.ruleForm;
ruleForm.projectId=localStorage.getItem("projectId") ruleForm.projectId = localStorage.getItem('projectId');
console.log("通过") console.log('通过');
const { const { code, msg } = await createEnquiry(ruleForm);
code,
msg
} = await createEnquiry(ruleForm)
if (code == 200) { if (code == 200) {
this.$message({ this.$message({
message: msg, message: msg,
type: 'success', type: 'success',
duration:1500 duration: 1500
}) });
setTimeout(()=>{ setTimeout(() => {
this.$router.go(-1) this.$router.go(-1);
},1500) }, 1500);
}else{ } else {
this.$message.error(msg) this.$message.error(msg);
}
}
} catch (err) {
console.log(err);
}
},
//提交表单
async submit1() {
try {
const valid = await this.$refs['ruleForm'].validate();
const valid1 = await this.$refs['ruleForm1'].validate();
const valid2 = await this.$refs['ruleForm2'].validate();
console.log(valid);
if (valid && valid1 && valid2) {
let ruleForm = this.ruleForm;
ruleForm.projectId = localStorage.getItem('projectId');
console.log('通过');
const { code, msg } = await editEnquiry(ruleForm);
if (code == 200) {
this.$message({
message: msg,
type: 'success',
duration: 1500
});
setTimeout(() => {
this.$router.go(-1);
}, 1500);
} else {
this.$message.error(msg);
} }
} }
} catch (err) { } catch (err) {
console.log(err) console.log(err);
} }
}, },
// 获取列表 // 获取列表
async getcommoditylist() { async getcommoditylist() {
let projectId=localStorage.getItem("projectId") let projectId = localStorage.getItem('projectId');
const { const { data, code } = await commoditylist(projectId);
data, this.tableData = data;
code
} = await commoditylist(projectId)
this.tableData=data
}, },
// 获取招标截止时间 // 获取招标截止时间
async getinqueryinfo() { async getinqueryinfo() {
let projectId=localStorage.getItem("projectId") let projectId = localStorage.getItem('projectId');
const { const { data, code } = await inqueryinfo(projectId);
data, this.ruleForm.endTime = data.endTime;
code
} = await inqueryinfo(projectId)
this.ruleForm.endTime=data.endTime;
},
} }
}
} };
</script> </script>
<style scoped> <style scoped>
.othercontent>div { .othercontent > div {
background: #FFFFFF; background: #ffffff;
margin-bottom: 20px; margin-bottom: 20px;
} }
.form { .form {
padding: 10px 20px 20px 20px padding: 10px 20px 20px 20px;
} }
.adjustment { .adjustment {
margin-top: 5px; margin-top: 5px;
margin-right: 10px; margin-right: 10px;
} }
</style> </style>
...@@ -3,23 +3,23 @@ ...@@ -3,23 +3,23 @@
<div class="content"> <div class="content">
<dataBreadcrumb :breads="breads"></dataBreadcrumb> <dataBreadcrumb :breads="breads"></dataBreadcrumb>
<changeNav :navs="navs"></changeNav> <changeNav :navs="navs"></changeNav>
<h1>项目状态:{{remark}}</h1> <h1>项目状态:{{ remark }}</h1>
<div class="flex state"> <div class="flex state">
<!-- <ul class="flex-left"> <ul class="flex-left">
<li v-for="(item,index) in states" :key="index" class="flex"> <li v-for="(item, index) in states" :key="index" class="flex">
<div>{{ item.title }}</div> <div>{{ item.title }}</div>
<ul class="inside flex"> <ul class="inside flex">
<li v-for="(mods,index) in item.modulars" :key="index" class="flex-center"> <li v-for="(mods, index) in item.modulars" :key="index" class="flex-center">
<div class="active" @click="jump(mods.label,mods.url)">{{ mods.label }}</div> <div :class="mods.bright ? 'active' : ''" @click="jump(mods)">{{ mods.label }}</div>
</li> </li>
</ul> </ul>
</li> </li>
</ul> --> </ul>
<ul class="flex"> <!-- <ul class="flex">
<li v-for="(item,index) in states" :key="index"> <li v-for="(item,index) in states" :key="index">
<el-button type="primary" @click="jump(item.button,item.uri)">{{ item.button }}</el-button> <el-button type="primary" @click="jump(item.button,item.uri)">{{ item.button }}</el-button>
</li> </li>
</ul> </ul> -->
</div> </div>
<div class="centerButton"> <div class="centerButton">
<el-button type="primary" @click="back">返回</el-button> <el-button type="primary" @click="back">返回</el-button>
...@@ -29,129 +29,324 @@ ...@@ -29,129 +29,324 @@
</template> </template>
<script> <script>
import { import { projectEnd } from '@api/common/list';
projectEnd import { projectConsole } from '@api/purchaser/bid';
} from '@api/common/list' import dataBreadcrumb from '@components/dataBreadcrumb.vue';
import { import changeNav from '@components/changeNav.vue';
projectConsole export default {
} from '@api/purchaser/bid'
import dataBreadcrumb from '@components/dataBreadcrumb.vue'
import changeNav from '@components/changeNav.vue'
export default {
components: { components: {
dataBreadcrumb, dataBreadcrumb,
changeNav changeNav
}, },
data() { data() {
return { return {
states: [], states: [
{
title: '公告',
modulars: [
{
id: 1,
label: '变更公告管理',
url: '/purchaser/bid/bidStage/changeList',
bright: false
},
{
id: 2,
label: '流标公告管理',
url: '/purchaser/bid/bidStage/failList',
bright: false
}
]
},
{
title: '招标',
modulars: [
{
id: 3,
label: '项目信息',
url: '/purchaser/bid/bidStage/projectInformation',
bright: false
},
{
id: 4,
label: '发布询价公告',
url: '/purchaser/bid/reviewed/inquiryAnnouncement',
bright: false
},
{
id: 5,
label: '发布招标公告',
url: '/purchaser/bid/reviewed/tenderAnnouncement',
bright: false
},
{
id: 6,
label: '投标邀请书',
url: '1',
bright: false
},
{
id: 7,
label: '招标文件澄清管理',
url: '/purchaser/bid/bidStage/clearManagement',
bright: false
}
]
},
{
title: '投标',
modulars: [
{
id: 8,
label: '投标信息查看',
url: '/purchaser/bid/bidStage/tenderInformationlist',
bright: false
}
]
},
{
title: '开标',
modulars: [
{
id: 9,
label: '开标设置',
url: '/purchaser/bid/bidStage/bidSet',
bright: false
},
{
id: 10,
label: '开标大厅',
url: '/purchaser/bid/bidOpen/bidOpenhal',
bright: false
},
{
id: 11,
label: '开标过程纪录查看',
url: '/purchaser/bid/bidEvaluation/hallInformation',
bright: false
}
]
},
{
title: '评标',
modulars: [
{
id: 12,
label: '评标管理',
url: '/purchaser/bid/bidEvaluation/projectManager/content',
bright: false
},
{
id: 13,
label: '开始评标',
url: '/purchaser/bid/bidEvaluation/review/review',
bright: false
}
]
},
{
title: '定标',
modulars: [
{
id: 14,
label: '中标候选人公示',
url: '/purchaser/bid/bidEvaluation/review/review',
bright: false
},
{
id: 15,
label: '确认中标人',
url: '/purchaser/bid/bidSure/determine',
bright: false
},
{
id: 16,
label: '中标公告',
url: '/purchaser/bid/bidSure/notice',
bright: false
},
{
id: 17,
label: '发布中标通知书',
url: '/purchaser/bid/bidSure/winBid/list',
bright: false
},
{
id: 18,
label: '发布招标结果通知书',
url: '/purchaser/bid/bidSure/bidResult/list',
bright: false
},
{
id: 19,
label: '合同管理',
url: '/purchaser/bid/bidSure/contract',
bright: false
}
]
},
{
title: '费用',
modulars: [
{
id: 20,
label: '标书费缴纳管理',
url: '/purchaser/bid/bidStage/tenderFeelist',
bright: false
},
{
id: 21,
label: '保证金缴纳管理',
url: '/purchaser/bid/bidStage/bondList',
bright: false
}
]
},
{
title: '功能',
modulars: [
{
id: 22,
label: '项目终止',
url: '1',
bright: false
}
]
}
],
breads: ['招标管理', '招标项目管理 ', '工作台'], breads: ['招标管理', '招标项目管理 ', '工作台'],
navs: ['工作台'], navs: ['工作台'],
remark: "" remark: '',
} buttonList: []
};
}, },
methods: { methods: {
geturl(url, status) {
let newUrl = '';
if (status == 0) {
newUrl = url;
} else if (status == 1) {
newUrl = `${url}?type=1`; //编辑
} else {
newUrl = `${url}?type=2`; //查看
}
return newUrl;
},
getlabel(label, status) {
console.log(label, status);
let newlabel = '';
if (status == 0) {
newlabel = label;
} else if (status == 1) {
newlabel = `编辑${label}`;
} else {
newlabel = `查看${label}`;
}
return newlabel;
},
back() { back() {
this.$router.go(-1) this.$router.go(-1);
}, },
jump(label, url) { jump(mods) {
if (label == "项目终止") { // if (mods.bright) {
if (mods.label == '项目终止') {
this.$confirm('确定要终止吗?', '提示', { this.$confirm('确定要终止吗?', '提示', {
type: 'warning' type: 'warning'
}) })
.then(async () => { .then(async () => {
let projectId = localStorage.getItem("projectId") let projectId = localStorage.getItem('projectId');
const { const { msg, code } = await projectEnd(projectId);
msg,
code
} = await projectEnd(projectId)
if (code == 200) { if (code == 200) {
this.$message({ this.$message({
message: msg, message: msg,
type: 'success', type: 'success',
duration: 1500 duration: 1500
}) });
setTimeout(() => { setTimeout(() => {
this.$router.go(-1) this.$router.go(-1);
}, 1500) }, 1500);
} else { } else {
this.$message.error(msg) this.$message.error(msg);
} }
}) })
.catch(() => {}) .catch(() => {});
} else { } else {
this.$router.push(url) this.$router.push(mods.url);
} }
// }
}, },
async getprojectConsole() { async getprojectConsole() {
try { try {
let message = {} let message = {};
message.projectId = localStorage.getItem("projectId") message.projectId = localStorage.getItem('projectId');
message.type = 1 message.type = 1;
const { const { data, msg, code } = await projectConsole(message);
data,
msg,
code
} = await projectConsole(message)
if (code == 200) { if (code == 200) {
this.states = data for (let item of this.states) {
this.remark = data[0].remark for (let item1 of item.modulars) {
for (let item2 of data) {
if (item1.id == item2.buttonId) {
item1.bright = true;
item1.url = this.geturl(item1.url, item2.status);
item1.label = this.getlabel(item1.label, item2.status);
}
}
}
}
this.remark = data[0].remark;
} else { } else {
this.$message.error(msg) this.$message.error(msg);
} }
} catch (e) { } catch (e) {
console.log(e) console.log(e);
} }
} }
}, },
created() { created() {
this.getprojectConsole() this.getprojectConsole();
}
} }
};
</script> </script>
<style scoped> <style scoped>
.state { .state {
margin-top: 30px; margin-top: 30px;
/* margin-left: 50px; */ margin-left: 50px;
}
} .state > ul {
.state>ul {
flex-wrap: wrap; flex-wrap: wrap;
} }
.state>ul>li { .state > ul > li {
margin-right: 50px; margin-right: 50px;
margin-bottom: 50px;
cursor: pointer; cursor: pointer;
} }
/* .flex-left>li { .flex-left > li {
font-weight: bold; font-weight: bold;
font-size: 20px; font-size: 20px;
height: 50px; height: 70px;
line-height: 50px; line-height: 70px;
} }
.flex-left>li>div { .flex-left > li > div {
margin-right: 50px; margin-right: 50px;
padding-right: 30px; padding-right: 30px;
border-right: 1px solid #000; border-right: 1px solid #000;
} }
.inside>li>div { .inside > li > div {
padding: 0 10px; padding: 0 10px;
background: #ccc; background: #ccc;
color: #ffff; color: #ffff;
font-size: 14px; font-size: 14px;
margin-right: 30px; margin-right: 30px;
border-radius: 2px; border-radius: 2px;
line-height: 30px; line-height: 35px;
height: 30px; height: 35px;
} }
.inside>li>.active{ .inside > li > .active {
background: #2288EE background: #ff5203;
} */ }
</style> </style>
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
</li> </li>
<li> <li>
<div>注册角色</div> <div>注册角色</div>
<div>11</div> <div>{{detail.type=="1"?"采购商":"供应商"}}</div>
</li> </li>
<li> <li>
<div>法人姓名</div> <div>法人姓名</div>
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
</li> </li>
<li> <li>
<div>法人电话</div> <div>法人电话</div>
<div>11</div> <div>{{detail.legalPersonPhone}}</div>
</li> </li>
<li> <li>
<div>统一社会信用代码</div> <div>统一社会信用代码</div>
...@@ -47,15 +47,15 @@ ...@@ -47,15 +47,15 @@
</li> </li>
<li> <li>
<div>开户银行名称</div> <div>开户银行名称</div>
<div>222</div> <div>{{detail.bankName}}</div>
</li> </li>
<li> <li>
<div>结算账户</div> <div>结算账户</div>
<div>222</div> <div>{{detail.bankAccount}}</div>
</li> </li>
<li> <li>
<div>结算账户名</div> <div>结算账户名</div>
<div>222</div> <div>{{detail.bankName}}</div>
</li> </li>
<li> <li>
<div>注册资本(万元)</div> <div>注册资本(万元)</div>
......
<template>
<div>
<div class="content">
<dataBreadcrumb :breads="breads"></dataBreadcrumb>
<div class="message">
<div class="flex-between">
<div>项目编号: {{ projectCode }}</div>
<div>项目名称:{{ projectName }}</div>
</div>
<div>
<div>开标一览表:</div>
<dataTable :tableData="tableData" :columns="nopagecolumns" :margin-top="0" :margin-bottom="0"> </dataTable>
</div>
</div>
<changeNav :navs="navs" @getIndex="getIndex"></changeNav>
<!-- 开标大厅消息 -->
<div v-show="changeIndex == 0">
<dataTable :table-data="behaviorList" :columns="behavior" :is-pageobj="false" :is-index="true">
<el-table-column slot="operate" label="消息内容" align="center">
<template slot-scope="scope">
<div class="flex content">
<div>{{ scope.row.time }}</div>
<div>{{ scope.row.role }}</div>
<div>{{ scope.row.name }}</div>
<div>{{ scope.row.behavior }}</div>
</div>
</template>
</el-table-column>
</dataTable>
</div>
<!-- 对话消息 -->
<div v-show="changeIndex == 1">
<dataTable :table-data="chatList" :columns="chat" :is-pageobj="false" :is-index="true"> </dataTable>
</div>
<div class="centerButton">
<el-button @click="back">返回</el-button>
</div>
</div>
</div>
</template>
<script>
import { messageRecord, openInfo } from '@api/purchaser/bid';
import dataTable from '@components/nopageTable.vue';
import dataBreadcrumb from '@components/dataBreadcrumb.vue';
import changeNav from '@components/changeNav.vue';
export default {
components: {
dataTable,
dataBreadcrumb,
changeNav
},
data() {
return {
nopagecolumns: [
{
label: '投标人名称',
prop: 'companyName'
},
{
label: '投标报价(元)',
prop: 'price'
},
{
label: '是否签名',
prop: 'isSign'
}
], //
changeIndex: '0',
navs: ['开标大厅消息', '对话消息'],
breads: ['招标管理', '招标项目管理', '工作台'],
behaviorList: [],
behavior: [
{
slot: 'operate'
}
], // 操作列
chat: [
{
label: '发送人',
prop: 'name'
},
{
label: '发送时间',
prop: 'time'
},
{
label: '发送内容',
prop: 'chatContent'
}
],
chatList: [],
pageObj: {
size: 10,
total: 1,
currentPage: 1,
sizes: [100, 200, 300],
func: (currentPage) => {
this.pageTurning(currentPage);
}
},
projectCode: '',
projectName: '',
tableData: []
};
},
methods: {
back() {
this.$router.go(-1);
},
examine() {
this.$router.push('/admin/bid/bidingDetail');
},
getIndex(val) {
this.changeIndex = val;
},
async getmessageRecord() {
let projectId = localStorage.getItem('projectId');
const { data, code } = await messageRecord(projectId);
this.behaviorList = data.behaviorList;
this.chatList = data.chatList;
},
async getopenInfo() {
try {
let projectId = localStorage.getItem('projectId');
const { data, code } = await openInfo(projectId);
if (code == 200) {
for (let item of data) {
if (item.isSign) {
item.isSign = '是';
} else {
item.isSign = '否';
}
}
this.tableData = data;
}
} catch (e) {
console.log(e);
}
}
},
created() {
this.projectCode = localStorage.getItem('projectCode');
this.projectName = localStorage.getItem('projectName');
this.getmessageRecord();
this.getopenInfo();
}
};
</script>
<style scoped>
.content > div {
margin-right: 10px;
}
.upload > button {
border: 1px solid #000000;
background: #fff;
width: 50px;
height: 20px;
margin-left: 10px;
}
.message > div {
margin-bottom: 10px;
}
.message {
margin: 30px 0 30px 50px;
}
</style>
...@@ -140,7 +140,7 @@ export default { ...@@ -140,7 +140,7 @@ export default {
}; };
return { return {
isdisabled: true, isdisabled: true,
title: '看', title: '看',
state: '', state: '',
breads: ['招标管理', '招标项目管理', '工作台'], breads: ['招标管理', '招标项目管理', '工作台'],
ruleForm: {}, ruleForm: {},
......
...@@ -172,7 +172,7 @@ export default { ...@@ -172,7 +172,7 @@ export default {
}; };
return { return {
isdisabled: true, isdisabled: true,
title: '看', title: '看',
state: '', state: '',
breads: ['招标管理', '招标项目管理', '工作台'], breads: ['招标管理', '招标项目管理', '工作台'],
ruleForm: {}, ruleForm: {},
......
...@@ -3,37 +3,44 @@ ...@@ -3,37 +3,44 @@
<div class="content"> <div class="content">
<dataBreadcrumb :breads="breads"></dataBreadcrumb> <dataBreadcrumb :breads="breads"></dataBreadcrumb>
<changeNav :navs="navs"></changeNav> <changeNav :navs="navs"></changeNav>
<div class="message flex-colunm"> <div class="message">
<div> <div>
<div>项目编号:{{projectCode}}</div> <div>项目编号:{{ projectCode }}</div>
<div>项目名称:{{projectName}}</div> <div>项目名称:{{ projectName }}</div>
</div> </div>
<div> <div>
<div>日期:{{detail.winDate}}</div> <div>日期:{{ detail.winDate }}</div>
<div>中标金额:{{detail.money}}</div> <div>中标金额:{{ detail.money }}</div>
</div> </div>
<div> <div>
<div class="flex-item"> <div class="flex-item">
<div style="margin-right: 20px;">附件:中标通知书.pdf</div> <div style="margin-right: 20px">附件:</div>
<el-button size="mini">下载</el-button> <ul v-if="detail.fileList">
<li v-for="(item, i) in detail.fileList" :key="i">
<a :href="item.fileUrl">{{ item.fileName }}</a>
</li>
</ul>
<div v-else></div>
</div> </div>
<div>中标通知书编号:{{detail.number}}</div> <div>中标通知书编号:{{ detail.number }}</div>
</div> </div>
<div class="flex-colunm notice"> <div class="flex-colunm notice">
<h1>您已中标,请及时与平台签署应收账款买断合同。</h1> <h1>您已中标,请及时与平台签署应收账款买断合同。</h1>
<h3>咨询电话:400-4567457</h3> <h3>咨询电话:400-4567457</h3>
<el-button type="primary">查看详情</el-button> <el-button type="primary">查看详情</el-button>
</div> </div>
<div class="centerButton">
<el-button @click="back">返回</el-button> <el-button @click="back">返回</el-button>
</div> </div>
</div> </div>
</div> </div>
</div>
</template> </template>
<script> <script>
import { winBookdetail} from '@api/supply/bid' import { winBookdetail } from '@api/supply/bid';
import dataBreadcrumb from '@components/dataBreadcrumb.vue' import dataBreadcrumb from '@components/dataBreadcrumb.vue';
import changeNav from '@components/changeNav.vue' import changeNav from '@components/changeNav.vue';
export default { export default {
components: { components: {
dataBreadcrumb, dataBreadcrumb,
...@@ -41,71 +48,77 @@ export default { ...@@ -41,71 +48,77 @@ export default {
}, },
data() { data() {
return { return {
projectCode:"", projectCode: '',
projectName:"", projectName: '',
breads: ['投标管理 ', '我参加的项目', '工作台'], breads: ['投标管理 ', '我参加的项目', '工作台'],
navs: ['中标通知书'], navs: ['中标通知书'],
projectCode:"", projectCode: '',
projectName:"", projectName: '',
detail:"" detail: ''
} };
}, },
methods: { methods: {
back(){ open(url) {
this.$router.go(-1) window.open(url);
},
back() {
this.$router.go(-1);
}, },
async getwinBookdetail() { async getwinBookdetail() {
let projectId=localStorage.getItem("projectId") let projectId = localStorage.getItem('projectId');
const { const { data, code } = await winBookdetail(projectId);
data, if (code == 200) {
code this.detail = data;
} = await winBookdetail(projectId)
if(code==200){
this.detail=data
} }
} }
}, },
created() { created() {
this.projectCode=localStorage.getItem("projectCode") this.projectCode = localStorage.getItem('projectCode');
this.projectName=localStorage.getItem("projectName") this.projectName = localStorage.getItem('projectName');
this.getwinBookdetail() this.getwinBookdetail();
} }
};
}
</script> </script>
<style scoped> <style scoped>
.content>h1{ .content > h1 {
text-align: center; text-align: center;
margin-top:20px; margin-top: 20px;
margin-bottom:40px; margin-bottom: 40px;
font-weight: bold; font-weight: bold;
} }
.content>.img{ .content > .img {
width: 600px; width: 600px;
margin:0 auto margin: 0 auto;
} }
.enclosure{ .enclosure {
margin: 20px 0; margin: 20px 0;
} }
.message>div{ .message {
display:flex; width: 60%;
margin: 0 auto;
}
.message > .centerButton{
justify-content: center;
}
.message > div {
display: flex;
justify-content: space-between;
margin-bottom: 30px; margin-bottom: 30px;
} }
.message>div>div:first-child{ /* .message > div > div:first-child {
margin-right:300px; margin-right: 300px;
} } */
.notice{ .notice {
width: 80%; width: 80%;
border:1px solid #000 border: 1px solid #000;
} }
.notice{ .notice {
margin-top: 200px; margin: 200px auto 30px;
margin-bottom: 30px;
padding: 20px 0; padding: 20px 0;
} }
.notice>h3{ .notice > h3 {
margin: 20px 0; margin: 20px 0;
} }
</style> </style>
...@@ -6,16 +6,26 @@ ...@@ -6,16 +6,26 @@
<h5>查看中标候选人公示</h5> <h5>查看中标候选人公示</h5>
</div> </div>
<div class="content"> <div class="content">
<div class="flex-arround"> <div class="flex-arround" style="margin-bottom:50px">
<div>项目编号:{{projectCode}}</div> <div>项目编号:{{ projectCode }}</div>
<div>项目名称:{{projectName}}</div> <div>项目名称:{{ projectName }}</div>
<div>发布时间:2020-08-08 18:12</div> <div>发布时间:{{ detail.createTime }}</div>
</div> </div>
<h1>一级标题</h1> <div v-if="state">
<div class="img"> <div v-html=" detail.content "></div>
<img src="@static/images/content.png" alt=""> <div class="enclosure flex-item">
<div style="margin-right: 30px">相关附件</div>
<div v-if="detail.accessoryDOList">
<ul>
<li v-for="(item, i) in detail.accessoryDOList" :key="i">
<a href="item.accessoryUrl">{{ item.fileName }}</a>
</li>
</ul>
</div> </div>
<div class="enclosure">相关附件:34567890-678.pdf</div> <div v-else></div>
</div>
</div>
<div v-else>{{ msg }}</div>
<div class="centerButton"> <div class="centerButton">
<el-button @click="back">返回</el-button> <el-button @click="back">返回</el-button>
</div> </div>
...@@ -24,52 +34,58 @@ ...@@ -24,52 +34,58 @@
</template> </template>
<script> <script>
import { publicitydetail} from '@api/supply/bid' import { cadidate } from '@api/supply/bid';
import dataBreadcrumb from '@components/dataBreadcrumb.vue' import dataBreadcrumb from '@components/dataBreadcrumb.vue';
export default { export default {
components: { components: {
dataBreadcrumb, dataBreadcrumb
}, },
data() { data() {
return { return {
breads: ['投标管理 ', '我参加的项目', '工作台'], breads: ['投标管理 ', '我参加的项目', '工作台'],
projectCode:"", projectCode: '',
projectName:"" projectName: '',
} detail: '',
msg: '',
state: true
};
}, },
methods: { methods: {
back(){ back() {
this.$router.go(-1) this.$router.go(-1);
}, },
async getpublicitydetail() { async getcadidate() {
let projectId=localStorage.getItem("projectId") let projectId = localStorage.getItem('projectId');
const { const { data, code, msg } = await cadidate(projectId);
data, if (code == 200) {
code this.detail = data;
} = await publicitydetail(projectId) } else {
this.msg = msg;
this.state = false;
}
} }
}, },
created() { created() {
this.projectCode=localStorage.getItem("projectCode") this.projectCode = localStorage.getItem('projectCode');
this.projectName=localStorage.getItem("projectName") this.projectName = localStorage.getItem('projectName');
this.getpublicitydetail() this.getcadidate();
} }
} };
</script> </script>
<style scoped> <style scoped>
.content>h1{ .content > h1 {
text-align: center; text-align: center;
margin-top:20px; margin-top: 20px;
margin-bottom:40px; margin-bottom: 40px;
font-weight: bold; font-weight: bold;
} }
.content>.img{ .content > .img {
width: 600px; width: 600px;
margin:0 auto margin: 0 auto;
} }
.enclosure{ .enclosure {
margin: 20px 0; margin: 20px 0;
} }
</style> </style>
...@@ -721,6 +721,11 @@ export default new Router({ ...@@ -721,6 +721,11 @@ export default new Router({
show: true, show: true,
component: () => import('../pages/supply/bid/joinProject/bidEvaluation/evaluationList.vue') component: () => import('../pages/supply/bid/joinProject/bidEvaluation/evaluationList.vue')
}, },
{
path: '/supply/bid/joinProject/bidEvaluation/hallInformation',
show: true,
component: () => import('../pages/supply/bid/joinProject/bidEvaluation/hallInformation.vue')
},
{ {
path: '/supply/bid/joinProject/bidEvaluation/reply', path: '/supply/bid/joinProject/bidEvaluation/reply',
show: true, show: true,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment