Commit 17a88754 authored by 张冬's avatar 张冬

修改

parent 861ae640
......@@ -14,6 +14,17 @@ export function creatProject(data) {
})
}
// 编辑招标项目
export function editProject(data) {
return request({
url: '/tender-project/edit',
method: 'POST',
data: data
})
}
// 2.1.2
// 发送询价公告
export function createEnquiry(data) {
......
import request from '@/utils/request'
// 首页
export function home() {
return request({
url: "bidder-index/detail",
method: 'get',
})
}
\ No newline at end of file
This diff is collapsed.
<template>
<div>
<div class="content-head">
<el-breadcrumb separator="/">
<el-breadcrumb-item>招标管理 </el-breadcrumb-item>
<el-breadcrumb-item>招标项目管理</el-breadcrumb-item>
<el-breadcrumb-item>发布项目</el-breadcrumb-item>
</el-breadcrumb>
<h3>编辑项目</h3>
<h5>编辑招标项目</h5>
</div>
<div class="othercontent">
<!-- 项目信息 -->
<div class="message1">
<messaage ref="message" :ruleForm="detail"></messaage>
</div>
<!-- 标的需求 -->
<div class="demand">
<demand ref="demand" :ruleForm="detail"></demand>
</div>
<!-- 招标时间设置 -->
<div class="timeSet">
<timeSet ref="timeSet" :ruleForm="detail"></timeSet>
</div>
<!-- 招标文件上传 -->
<div class="fileUpload">
<fileUpload ref="fileUpload" :detail="detail"></fileUpload>
</div>
</div>
<div class="centerButton">
<el-button @click="edit">编辑</el-button>
</div>
</div>
</template>
<script>
import { getTime1 } from '@utils/time';
import { projectdetail } from '@api/supply/bid';
import messaage from './message.vue';
import demand from './demand.vue';
import timeSet from './timeSet.vue';
import fileUpload from './fileUpload.vue';
export default {
components: {
messaage,
demand,
timeSet,
fileUpload
},
data() {
return {
activeIdx: 0,
allForm: {},
detail: {
projectName: '项目1'
}
};
},
created() {
this.getenquiryProjectId();
},
methods: {
async edit() {
await this.$refs.message.next();
await this.$refs.timeSet.next();
await this.$refs.fileUpload.next();
console.log('通过');
console.log(this.detail);
},
// 获取详情
async getenquiryProjectId() {
let projectId = localStorage.getItem('projectId');
const { data, code } = await projectdetail(projectId);
if (code == 200) {
data.endTime = getTime1(data.endTime);
data.startTime = getTime1(data.startTime);
data.createTime = data.createTime.substring(0, 10);
data.bidBookInfoPO = data.bidBookInfoDO;
data.earnestInfoPO = data.earnestInfoDO;
this.detail = data;
}
}
}
};
</script>
<style scoped>
.steps {
width: 800px;
margin: 0 auto;
padding: 30px 0;
}
.othercontent > div {
background: #fff;
margin-bottom: 30px;
}
.bid {
margin-top: -20px;
}
.button {
display: flex;
justify-content: flex-end;
padding-bottom: 20px;
margin-right: 20px;
}
</style>
<template>
<div>
<div class="describe">上传招标文件</div>
<div class="padding">
<div class="details">
<el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="100px" class="demo-ruleForm">
<el-form-item label="上传附件" prop="file">
<upload :limit="1" accept=".pdf" tip="请上传一个招标文件(pdf),不要超过50M。" :max="50" @input="getfile"></upload>
</el-form-item>
<el-form-item label="其他附件">
<upload :limit="5" tip="最多上传五个附件,单个不超过100M。" :type="1" :max="100" @input="getfile1"> </upload>
</el-form-item>
</el-form>
</div>
</div>
</div>
</template>
<script>
import { creatProject } from '@api/purchaser/bid';
import upload from '@components/Upload/specialUpload.vue';
export default {
components: {
upload
},
props: {
allForm: {
type: Object,
default() {
return {};
}
}
},
data() {
let checkidentity = (rule, value, callback) => {
let le;
if (this.ruleForm.bidBookPO.length === 0) {
callback(new Error('请上传附件'));
} else {
callback();
}
};
return {
ruleForm: {
bidBookPO: [],
bidBookAccessoryPOList: []
},
fileList: [],
rules: {
file: [
{
required: true,
validator: checkidentity,
trigger: 'change'
}
]
}
};
},
methods: {
getfile(val) {
this.ruleForm.bidBookPO = val;
},
getfile1(val) {
this.ruleForm.bidBookAccessoryPOList = val;
},
async next() {
const valid = await this.$refs['ruleForm'].validate();
}
}
};
</script>
<style scoped>
.padding {
padding: 0px 20px 30px 20px;
}
.details > div {
margin-bottom: 20px;
}
.correct {
margin-right: 20px;
margin-top: 5px;
}
.button {
display: flex;
justify-content: flex-end;
padding-bottom: 20px;
margin-right: 20px;
}
</style>
This diff is collapsed.
<template>
<div>
<div class="describe">招标时间设置</div>
<div class="form">
<!-- <dataForm :search-form="searchForm" :search-data="searchData" :is-handle="false" label-width="250px"></dataForm> -->
<el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="250px" class="demo-ruleForm">
<el-form-item label="招标公告正式发布时间:" prop="releaseTime">
<el-date-picker v-model="ruleForm.releaseTime" type="datetime" placeholder="选择日期时间" @change="releaseTime">
</el-date-picker>
</el-form-item>
<el-form-item label="标书获取开始时间:" prop="startTime">
<el-date-picker v-model="ruleForm.startTime" type="datetime" placeholder="选择日期时间" @change="startTime">
</el-date-picker>
</el-form-item>
<el-form-item label="标书获取结束时间:" prop="endTime">
<el-date-picker v-model="ruleForm.endTime" type="datetime" placeholder="选择日期时间" @change="endTime">
</el-date-picker>
</el-form-item>
<el-form-item label="投标人澄清答疑截止时间:" prop="answerQuestionEndTime">
<el-date-picker
v-model="ruleForm.answerQuestionEndTime"
type="datetime"
placeholder="选择日期时间"
@change="answerQuestionEndTime"
>
</el-date-picker>
</el-form-item>
<el-form-item label="投标文件递交截止时间及开标时间:" prop="openBidStartTime">
<el-date-picker
v-model="ruleForm.openBidStartTime"
type="datetime"
placeholder="选择日期时间"
@change="openBidStartTime"
>
</el-date-picker>
</el-form-item>
</el-form>
</div>
</div>
</template>
<script>
import dataForm from '@components/dataForm.vue';
export default {
name: 'bidingList',
components: {
dataForm
},
props: {
ruleForm: {
type: Object,
default() {
return {};
}
}
},
data() {
let checkTime = (rule, value, callback) => {
let nowTime = new Date().getTime();
if (nowTime < value) {
callback();
} else {
return callback(new Error('请选择大于当前的时间'));
}
};
let checkTime1 = (rule, value, callback) => {
if (!this.ruleForm.releaseTime) {
return callback(new Error('请先选择招标公告正式发布时间'));
} else {
if (value > this.ruleForm.releaseTime) {
callback();
} else {
return callback(new Error('请选择大于招标公告正式发布时间'));
}
}
};
let checkTime2 = (rule, value, callback) => {
if (!this.ruleForm.startTime) {
return callback(new Error('请先选择标书获取开始时间'));
} else {
if (value > this.ruleForm.startTime) {
callback();
} else {
return callback(new Error('请选择大于标书获取开始时间'));
}
}
};
let checkTime3 = (rule, value, callback) => {
if (!this.ruleForm.endTime) {
return callback(new Error('请先选择标书获取结束时间'));
} else {
if (value > this.ruleForm.endTime) {
callback();
} else {
return callback(new Error('请选择大于标书获取结束时间'));
}
}
};
let checkTime4 = (rule, value, callback) => {
if (!this.ruleForm.answerQuestionEndTime) {
return callback(new Error('请先选择投标人澄清答疑截止时间'));
} else {
if (value > this.ruleForm.answerQuestionEndTime) {
callback();
} else {
return callback(new Error('请选择投标人澄清答疑截止时间'));
}
}
};
return {
ruleForm: {
releaseTime: '',
startTime: '',
endTime: '',
answerQuestionEndTime: '',
openBidStartTime: ''
},
rules: {
releaseTime: [
{
type: 'date',
required: true,
message: '请选择时间',
trigger: 'blur'
},
{
validator: checkTime
}
],
startTime: [
{
type: 'date',
required: true,
message: '请选择时间',
trigger: 'blur'
},
{
validator: checkTime1
}
],
endTime: [
{
type: 'date',
required: true,
message: '请选择时间',
trigger: 'blur'
},
{
validator: checkTime2
}
],
answerQuestionEndTime: [
{
type: 'date',
required: true,
message: '请选择时间',
trigger: 'blur'
},
{
validator: checkTime3
}
],
openBidStartTime: [
{
type: 'date',
required: true,
message: '请选择时间',
trigger: 'blur'
},
{
validator: checkTime4
}
]
}
};
},
methods: {
releaseTime(val) {
this.ruleForm.releaseTime = new Date(val).getTime();
},
startTime(val) {
this.ruleForm.startTime = new Date(val).getTime();
},
endTime(val) {
this.ruleForm.endTime = new Date(val).getTime();
},
answerQuestionEndTime(val) {
this.ruleForm.answerQuestionEndTime = new Date(val).getTime();
},
openBidStartTime(val) {
this.ruleForm.openBidStartTime = new Date(val).getTime();
},
async next() {
const valid = await this.$refs['ruleForm'].validate();
},
upper() {
this.$parent.upper();
}
}
};
</script>
<style scoped>
.form {
width: 50%;
margin: 0 auto;
box-sizing: border-box;
padding-bottom: 30px;
}
.button {
display: flex;
justify-content: flex-end;
padding-bottom: 20px;
margin-right: 20px;
}
</style>
<template>
<div>
<div class="describe">上传招标文件</div>
<div class="padding">
<div class="details">
<!-- <div class="flex">
<div>
<div class="describe">上传招标文件</div>
<div class="padding">
<div class="details">
<!-- <div class="flex">
<div class="correct">*文件名称</div>
<el-input v-model="bidBookPO" style="width: 50%;" placeholder="请输入" clearable>
</el-input>
</div> -->
<el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="100px" class="demo-ruleForm">
<el-form-item label="上传附件" prop="file">
<upload :limit="1" accept=".pdf" tip="请上传一个招标文件(pdf),不要超过50M。" :max="50" @input="getfile"></upload>
</el-form-item>
<el-form-item label="其他附件" >
<upload :limit="5" tip="最多上传五个附件,单个不超过100M。" :type="1" :max="100" @input="getfile1">
</upload>
</el-form-item>
</el-form>
<!-- <div>
<el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="100px" class="demo-ruleForm">
<el-form-item label="上传附件" prop="file">
<upload :limit="1" accept=".pdf" tip="请上传一个招标文件(pdf),不要超过50M。" :max="50" @input="getfile"></upload>
</el-form-item>
<el-form-item label="其他附件">
<upload :limit="5" tip="最多上传五个附件,单个不超过100M。" :type="1" :max="100" @input="getfile1"> </upload>
</el-form-item>
</el-form>
<!-- <div>
<div class="correct">*上传附件</div>
<upload :file-list="fileList" :limit="1" accept=".pdf" tip="请上传一个招标文件(pdf),不要超过50M。" max="50" @input="getfile"></upload>
</div>
......@@ -26,122 +24,114 @@
<div>*其他附件</div>
<upload :file-list="fileList" :limit="5" tip="最多上传五个附件,单个不超过100M。" max="100" @input="getfile1"></upload>
</div> -->
</div>
<div class="button">
<el-button @click="upper">上一步</el-button>
<el-button type="primary" @click="next" >发布</el-button>
</div>
</div>
<div class="button">
<el-button @click="upper">上一步</el-button>
<el-button type="primary" @click="next">发布</el-button>
</div>
</div>
</div>
</div>
</template>
<script>
import {
creatProject
} from '@api/purchaser/bid'
import { creatProject } from '@api/purchaser/bid';
import upload from '@components/Upload/specialUpload.vue'
import upload from '@components/Upload/specialUpload.vue';
export default {
components: {
upload
},
props: {
allForm: {
type: Object,
default() {
return {}
}
}
},
data() {
let checkidentity = (rule, value, callback) => {
let le
if (this.ruleForm.bidBookPO.length === 0) {
callback(new Error('请上传附件'))
} else {
callback()
}
}
return {
ruleForm: {
bidBookPO: [],
bidBookAccessoryPOList: []
},
fileList: [],
rules: {
file: [{
required: true,
validator: checkidentity,
trigger: 'change'
}],
}
}
},
methods: {
getfile(val) {
this.ruleForm.bidBookPO = val
components: {
upload
},
getfile1(val) {
this.ruleForm.bidBookAccessoryPOList = val
props: {
allForm: {
type: Object,
default() {
return {};
}
}
},
async next() {
const valid = await this.$refs['ruleForm'].validate()
console.log(valid)
if (valid) {
Object.assign(this.allForm, this.ruleForm)
let allForm=this.allForm;
allForm.companyId=localStorage.getItem("companyId")
const {
msg,
code
} = await creatProject(this.allForm)
if (code === 200) {
this.$message({
data() {
let checkidentity = (rule, value, callback) => {
let le;
if (this.ruleForm.bidBookPO.length === 0) {
callback(new Error('请上传附件'));
} else {
callback();
}
};
return {
ruleForm: {
bidBookPO: [],
bidBookAccessoryPOList: []
},
fileList: [],
rules: {
file: [
{
required: true,
validator: checkidentity,
trigger: 'change'
}
]
}
};
},
methods: {
getfile(val) {
this.ruleForm.bidBookPO = val;
},
getfile1(val) {
this.ruleForm.bidBookAccessoryPOList = val;
},
async next() {
const valid = await this.$refs['ruleForm'].validate();
console.log(valid);
if (valid) {
Object.assign(this.allForm, this.ruleForm);
let allForm = this.allForm;
allForm.companyId = localStorage.getItem('companyId');
const { msg, code } = await creatProject(this.allForm);
if (code === 200) {
this.$message({
message: msg,
type: 'success',
duration:1500
})
setTimeout(()=>{
this.$router.push("/purchaser/bid/administrationList")
},1500)
}else{
this.$message.error(msg)
}
}
},
duration: 1500
});
setTimeout(() => {
this.$router.push('/purchaser/bid/administrationList');
}, 1500);
} else {
this.$message.error(msg);
}
}
},
upper() {
this.$parent.upper();
}
// changeType(val) {
upper() {
this.$parent.upper()
// }
}
// changeType(val) {
// }
}
}
};
</script>
<style scoped>
.padding {
padding: 0px 20px 30px 20px
}
.padding {
padding: 0px 20px 30px 20px;
}
.details>div {
margin-bottom: 20px;
}
.details > div {
margin-bottom: 20px;
}
.correct {
margin-right: 20px;
margin-top: 5px;
}
.correct {
margin-right: 20px;
margin-top: 5px;
}
.button {
display: flex;
justify-content: flex-end;
padding-bottom: 20px;
margin-right: 20px;
}
.button {
display: flex;
justify-content: flex-end;
padding-bottom: 20px;
margin-right: 20px;
}
</style>
<template>
<div>
<div class="describe">标的需求</div>
<div class="padding">
<dataTable :table-data="ruleForm.commodityVOList" :columns="columns" :is-pageobj="false"> </dataTable>
<el-dialog :visible.sync="dialogVisible" title="添加标的" width="50%">
<el-form :model="searchData" :rules="rules" ref="searchData" label-width="150px">
<el-form-item label="标的编码:" prop="encoding">
<el-input v-model.trim="searchData.encoding" placeholder="请输入" maxlength="30"></el-input>
</el-form-item>
<el-form-item label="标的名称:" prop="bidName">
<el-input v-model.trim="searchData.bidName" placeholder="请输入" maxlength="30"></el-input>
</el-form-item>
<el-form-item label="数量:" prop="quantity">
<el-input
v-model.trim="searchData.quantity"
onkeyup="value=value.replace(/[^\d]/g,'')"
placeholder="请输入"
maxlength="30"
></el-input>
</el-form-item>
<el-form-item label="计量单位:" prop="unit">
<el-input v-model.trim="searchData.unit" placeholder="请输入" maxlength="30"></el-input>
</el-form-item>
<el-form-item label="品牌:" prop="brand">
<el-input v-model.trim="searchData.brand" placeholder="请输入" maxlength="30"></el-input>
</el-form-item>
<el-form-item label="规格型号:" prop="specification">
<el-input v-model.trim="searchData.specification" placeholder="请输入" maxlength="30"></el-input>
</el-form-item>
<el-form-item label="标杆价(元):" prop="price">
<el-input-number
v-model="searchData.price"
:min="0"
:controls="false"
:precision="2"
placeholder="请输入"
></el-input-number>
</el-form-item>
<el-form-item label="备注:" prop="remark">
<el-input v-model.trim="searchData.remark" placeholder="请输入" maxlength="30"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="sure">确 定</el-button>
</div>
</el-dialog>
</div>
</div>
</template>
<script>
import { generateNumber } from '@api/common/list';
import dataTable from '@components/nopageTable.vue';
import dataForm from '@components/dataForm.vue';
export default {
components: {
dataTable,
dataForm
},
props: {
ruleForm: {
type: Object,
default() {
return {};
}
}
},
data() {
return {
// 表单验证
rules: {
encoding: [
{
required: true,
message: '请输入',
trigger: 'blur'
}
],
bidName: [
{
required: true,
message: '请输入',
trigger: 'blur'
}
],
quantity: [
{
required: true,
message: '请输入',
trigger: 'blur'
}
],
unit: [
{
required: true,
message: '请输入',
trigger: 'blur'
}
],
brand: [
{
required: true,
message: '请输入',
trigger: 'blur'
}
],
specification: [
{
required: true,
message: '请输入',
trigger: 'blur'
}
],
price: [
{
required: true,
message: '请输入',
trigger: 'blur'
}
]
},
multipleSelection: [],
dialogVisible: false,
searchData: {
encoding: '',
bidName: '',
quantity: '',
unit: '',
brand: '',
specification: '',
price: undefined,
remark: ''
},
columns: [
{
label: '标的编码',
prop: 'encoding'
},
{
label: '标的名称',
prop: 'bidName'
},
{
label: '数量',
prop: 'quantity'
},
{
label: '计量单位',
prop: 'unit'
},
{
label: '品牌',
prop: 'brand'
},
{
label: '规格型号',
prop: 'specification'
},
{
label: '标杆价(元)',
prop: 'price'
},
{
label: '备注',
prop: 'remark'
},
{
slot: 'operate'
}
], // 操作列
pageObj: {
size: 10,
total: 1,
currentPage: 1,
sizes: [100, 200, 300],
func: (currentPage) => {
this.pageTurning(currentPage);
}
},
type: '',
idx: ''
};
},
created() {
},
methods: {
// 删除操作
handleDelete(row, index) {
// 二次确认删除
this.$confirm('确定要删除吗?', '提示', {
type: 'warning'
})
.then(() => {
this.$message.success('删除成功');
this.tableData.splice(index, 1);
})
.catch(() => {});
},
getSelection(val) {
console.log(val);
this.multipleSelection = val;
},
// 删除操作
delAllSelection() {
let val = this.multipleSelection;
if (val.length > 0) {
console.log(val);
val.forEach((va, index) => {
this.tableData.forEach((v, i) => {
if (va.bidName === v.bidName) {
this.tableData.splice(i, 1);
}
});
});
this.$message.success('删除成功');
this.multipleSelection = [];
} else {
this.$message.error('没有选择删除的项');
}
},
// 确认添加需求
async sure() {
const valid = await this.$refs['searchData'].validate();
console.log(valid);
if (valid) {
let type = this.type;
if (type === 0) {
this.tableData.push(this.searchData);
} else {
this.$set(this.tableData, this.idx, this.searchData);
}
this.dialogVisible = false;
}
},
examine(row, index) {
this.type = 1;
this.idx = index;
this.searchData = Object.assign({}, row);
this.dialogVisible = true;
},
async add() {
try {
this.type = 0;
this.dialogVisible = true;
const { data, code } = await generateNumber(2);
let searchData = {
encoding: data,
bidName: '',
quantity: '',
unit: '',
brand: '',
specification: '',
price: '',
remark: ''
};
console.log(searchData);
this.searchData = searchData;
} catch (e) {
console.log(e);
}
},
next() {
let projectCommodityList = this.tableData;
let ruleForm = {};
ruleForm.projectCommodityList = projectCommodityList;
this.$emit('getruleForm', ruleForm);
this.$parent.next();
}
}
};
</script>
<style scoped>
.padding {
box-sizing: border-box;
padding: 10px 20px 30px 20px;
}
.buttons {
margin-bottom: 30px;
}
.button {
display: flex;
justify-content: flex-end;
padding-bottom: 20px;
margin-right: 20px;
}
</style>
<template>
<div>
<div class="describe">上传招标文件</div>
<div class="padding">
<div class="details">
<el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="100px" class="demo-ruleForm">
<el-form-item label="上传附件" prop="file">
<upload :limit="1" accept=".pdf" tip="请上传一个招标文件(pdf),不要超过50M。" :max="50" @input="getfile"></upload>
</el-form-item>
<el-form-item label="其他附件">
<upload :limit="5" tip="最多上传五个附件,单个不超过100M。" :type="1" :max="100" @input="getfile1"> </upload>
</el-form-item>
</el-form>
</div>
</div>
</div>
</template>
<script>
import { creatProject } from '@api/purchaser/bid';
import upload from '@components/Upload/specialUpload.vue';
export default {
components: {
upload
},
props: {
allForm: {
type: Object,
default() {
return {};
}
}
},
data() {
let checkidentity = (rule, value, callback) => {
let le;
if (this.ruleForm.bidBookPO.length === 0) {
callback(new Error('请上传附件'));
} else {
callback();
}
};
return {
ruleForm: {
bidBookPO: [],
bidBookAccessoryPOList: []
},
fileList: [],
rules: {
file: [
{
required: true,
validator: checkidentity,
trigger: 'change'
}
]
}
};
},
methods: {
getfile(val) {
this.ruleForm.bidBookPO = val;
},
getfile1(val) {
this.ruleForm.bidBookAccessoryPOList = val;
},
async next() {
const valid = await this.$refs['ruleForm'].validate();
}
}
};
</script>
<style scoped>
.padding {
padding: 0px 20px 30px 20px;
}
.details > div {
margin-bottom: 20px;
}
.correct {
margin-right: 20px;
margin-top: 5px;
}
.button {
display: flex;
justify-content: flex-end;
padding-bottom: 20px;
margin-right: 20px;
}
</style>
This diff is collapsed.
<template>
<div>
<div class="content-head">
<el-breadcrumb separator="/">
<el-breadcrumb-item>招标管理 </el-breadcrumb-item>
<el-breadcrumb-item>招标项目管理</el-breadcrumb-item>
<el-breadcrumb-item>发布项目</el-breadcrumb-item>
</el-breadcrumb>
<h3>查看项目</h3>
<h5>查看招标项目</h5>
</div>
<div class="othercontent">
<!-- 项目信息 -->
<div class="message1">
<messaage ref="message" :ruleForm="detail"></messaage>
</div>
<!-- 标的需求 -->
<div class="demand">
<demand ref="demand" :ruleForm="detail"></demand>
</div>
<!-- 招标时间设置 -->
<div class="timeSet">
<timeSet ref="timeSet" :ruleForm="detail"></timeSet>
</div>
<!-- 招标文件上传 -->
<div class="fileUpload">
<fileUpload ref="fileUpload" :detail="detail"></fileUpload>
</div>
</div>
<div class="centerButton">
<el-button @click="back">返回</el-button>
</div>
</div>
</template>
<script>
import { projectdetail } from '@api/supply/bid';
import { getTime1 } from '@utils/time';
import messaage from './message.vue';
import demand from './demand.vue';
import timeSet from './timeSet.vue';
import fileUpload from './fileUpload.vue';
export default {
components: {
messaage,
demand,
timeSet,
fileUpload
},
data() {
return {
activeIdx: 0,
allForm: {},
detail: {
}
};
},
created() {
this.getenquiryProjectId();
},
methods: {
back(){
this.$router.go(-1)
},
// 获取详情
async getenquiryProjectId() {
let projectId = localStorage.getItem('projectId');
const { data, code } = await projectdetail(projectId);
if (code == 200) {
data.endTime = getTime1(data.endTime);
data.startTime = getTime1(data.startTime);
data.createTime = data.createTime.substring(0, 10);
data.bidBookInfoPO=data.bidBookInfoDO
data.earnestInfoPO=data.earnestInfoDO
this.detail = data;
}
}
}
};
</script>
<style scoped>
.steps {
width: 800px;
margin: 0 auto;
padding: 30px 0;
}
.othercontent > div {
background: #fff;
margin-bottom: 30px;
}
.bid {
margin-top: -20px;
}
.button {
display: flex;
justify-content: flex-end;
padding-bottom: 20px;
margin-right: 20px;
}
</style>
<template>
<div>
<div class="describe">招标时间设置</div>
<div class="form">
<!-- <dataForm :search-form="searchForm" :search-data="searchData" :is-handle="false" label-width="250px"></dataForm> -->
<el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="250px" class="demo-ruleForm">
<el-form-item label="招标公告正式发布时间:" prop="releaseTime">
<el-date-picker v-model="ruleForm.releaseTime" type="datetime" placeholder="选择日期时间" @change="releaseTime" disabled>
</el-date-picker>
</el-form-item>
<el-form-item label="标书获取开始时间:" prop="startTime">
<el-date-picker v-model="ruleForm.startTime" type="datetime" placeholder="选择日期时间" @change="startTime" disabled>
</el-date-picker>
</el-form-item>
<el-form-item label="标书获取结束时间:" prop="endTime">
<el-date-picker v-model="ruleForm.endTime" type="datetime" placeholder="选择日期时间" @change="endTime " disabled>
</el-date-picker>
</el-form-item>
<el-form-item label="投标人澄清答疑截止时间:" prop="answerQuestionEndTime">
<el-date-picker v-model="ruleForm.answerQuestionEndTime" type="datetime" placeholder="选择日期时间" @change="answerQuestionEndTime" disabled>
</el-date-picker>
</el-form-item>
<el-form-item label="投标文件递交截止时间及开标时间:" prop="openBidStartTime">
<el-date-picker v-model="ruleForm.openBidStartTime" type="datetime" placeholder="选择日期时间" @change="openBidStartTime" disabled>
</el-date-picker>
</el-form-item>
</el-form>
</div>
</div>
</template>
<script>
import dataForm from '@components/dataForm.vue'
export default {
components: {
dataForm
},
props: {
ruleForm: {
type: Object,
default() {
return {};
}
}
},
data() {
let checkTime = (rule, value, callback) => {
let nowTime= new Date().getTime()
if (nowTime<value) {
callback();
} else {
return callback(new Error('请选择大于当前的时间'));
}
};
let checkTime1 = (rule, value, callback) => {
if(!this.ruleForm.releaseTime){
return callback(new Error('请先选择招标公告正式发布时间'));
}else{
if(value>this.ruleForm.releaseTime){
callback();
}else{
return callback(new Error('请选择大于招标公告正式发布时间'));
}
}
};
let checkTime2 = (rule, value, callback) => {
if(!this.ruleForm.startTime){
return callback(new Error('请先选择标书获取开始时间'));
}else{
if(value>this.ruleForm.startTime){
callback();
}else{
return callback(new Error('请选择大于标书获取开始时间'));
}
}
};
let checkTime3 = (rule, value, callback) => {
if(!this.ruleForm.endTime){
return callback(new Error('请先选择标书获取结束时间'));
}else{
if(value>this.ruleForm.endTime){
callback();
}else{
return callback(new Error('请选择大于标书获取结束时间'));
}
}
};
let checkTime4 = (rule, value, callback) => {
if(!this.ruleForm.answerQuestionEndTime){
return callback(new Error('请先选择投标人澄清答疑截止时间'));
}else{
if(value>this.ruleForm.answerQuestionEndTime){
callback();
}else{
return callback(new Error('请选择投标人澄清答疑截止时间'));
}
}
};
return {
rules: {
}
}
},
methods: {
releaseTime(val) {
this.ruleForm.releaseTime = new Date(val).getTime()
},
startTime(val) {
this.ruleForm.startTime = new Date(val).getTime()
},
endTime(val) {
this.ruleForm.endTime = new Date(val).getTime()
},
answerQuestionEndTime(val) {
this.ruleForm.answerQuestionEndTime = new Date(val).getTime()
},
openBidStartTime(val) {
this.ruleForm.openBidStartTime = new Date(val).getTime()
},
async next() {
const valid = await this.$refs['ruleForm'].validate();
},
upper() {
this.$parent.upper()
}
}
}
</script>
<style scoped>
.form {
width: 50%;
margin: 0 auto;
box-sizing: border-box;
padding-bottom: 30px;
}
.button {
display: flex;
justify-content: flex-end;
padding-bottom: 20px;
margin-right: 20px;
}
</style>
This diff is collapsed.
This diff is collapsed.
......@@ -302,6 +302,16 @@ export default new Router({
show: true,
component: () => import('../pages/purchaser/bid/releaseProject/releaseProject.vue')
},
{
path: '/purchaser/bid/editProject',
show: true,
component: () => import('../pages/purchaser/bid/editProject/editProject.vue')
},
{
path: '/purchaser/bid/seeProject',
show: true,
component: () => import('../pages/purchaser/bid/seeProject/seeProject.vue')
},
{
path: '/purchaser/bid/reviewed/inquiryAnnouncement',
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