Commit 8e1c6e29 authored by 张冬's avatar 张冬

制作投标的开标时间和倒计时

parent 9a0e606a
<template>
<p>{{time}}</p>
</template>
<script>
export default{
data () {
return {
time : '',
flag : false
}
},
mounted () {
let time = setInterval(()=>{
if(this.flag == true){
clearInterval(time)
}
this.timeDown()
},500)
},
props : {
endTime : {
type : String
}
},
destroyed() {
clearInterval(time)
},
methods : {
timeDown () {
const endTime = new Date(this.endTime)
const nowTime = new Date();
let leftTime = parseInt((endTime.getTime()-nowTime.getTime())/1000)
if(leftTime>0){
let d = parseInt(leftTime/(24*60*60))
let h = this.formate(parseInt(leftTime/(60*60)%24))
let m = this.formate(parseInt(leftTime/60%60))
let s = this.formate(parseInt(leftTime%60))
if(leftTime <= 0){
this.flag = true
this.$emit('timeend')
}
this.time = `${d}${h}小时${m}${s}秒` // 需要修改时间样式的话 ,比如需要什么30分钟倒计时,就只保留分和秒
}else{
this.time = "时间已过"
this.$emit('timeend')
}
},
formate (time) {
if(time>=10){
return time
}else{
return `0${time}`
}
}
}
}
</script>
<style scoped>
</style>
...@@ -157,7 +157,7 @@ ...@@ -157,7 +157,7 @@
created() { created() {
this.getbidsupplyList() this.getbidsupplyList()
this.projectCode = localStorage.getItem("projectCode") this.projectCode = localStorage.getItem("projectCode")
this.projectCode = localStorage.getItem("projectName") this.projectName = localStorage.getItem("projectName")
} }
} }
</script> </script>
......
...@@ -18,23 +18,23 @@ ...@@ -18,23 +18,23 @@
</div> </div>
<div class="flex-between"> <div class="flex-between">
<el-form-item label="联系人:" prop="projectCode"> <el-form-item label="联系人:" prop="projectCode">
<el-input v-model="ruleForm.projectCode" placeholder="请输入"></el-input> <el-input v-model="ruleForm.projectCode" placeholder="请输入" maxlength="30"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="固定电话:" prop="companyTel"> <el-form-item label="固定电话:" prop="companyTel">
<el-input v-model="ruleForm.companyTel" placeholder="请输入"></el-input> <el-input v-model="ruleForm.companyTel" placeholder="请输入" maxlength="30"></el-input>
</el-form-item> </el-form-item>
</div> </div>
<div class="flex-between"> <div class="flex-between">
<el-form-item label="手机:" prop="companyPhone"> <el-form-item label="手机:" prop="companyPhone">
<el-input v-model="ruleForm.companyPhone" placeholder="请输入"></el-input> <el-input v-model="ruleForm.companyPhone" placeholder="请输入" maxlength="30"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="传真:" prop="companyFacsimile"> <el-form-item label="传真:" prop="companyFacsimile">
<el-input v-model="ruleForm.companyFacsimile" placeholder="请输入"></el-input> <el-input v-model="ruleForm.companyFacsimile" placeholder="请输入" maxlength="30"></el-input>
</el-form-item> </el-form-item>
</div> </div>
<div> <div>
<el-form-item label="邮箱:" prop="companyEmail"> <el-form-item label="邮箱:" prop="companyEmail">
<el-input v-model="ruleForm.companyEmail" placeholder="请输入"></el-input> <el-input v-model="ruleForm.companyEmail" placeholder="请输入" maxlength="30"></el-input>
</el-form-item> </el-form-item>
</div> </div>
</div> </div>
...@@ -44,23 +44,23 @@ ...@@ -44,23 +44,23 @@
<div class="message-form"> <div class="message-form">
<div class="flex-between"> <div class="flex-between">
<el-form-item label="收件人名称:"> <el-form-item label="收件人名称:">
<el-input v-model="ruleForm.recipientsName" placeholder="请输入"></el-input> <el-input v-model="ruleForm.recipientsName" placeholder="请输入" maxlength="30"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="收件人单位:"> <el-form-item label="收件人单位:">
<el-input v-model="ruleForm.recipientsCompany" placeholder="请输入"></el-input> <el-input v-model="ruleForm.recipientsCompany" placeholder="请输入" maxlength="30"></el-input>
</el-form-item> </el-form-item>
</div> </div>
<div class="flex-between"> <div class="flex-between">
<el-form-item label="联系方式:"> <el-form-item label="联系方式:">
<el-input v-model="ruleForm.recipientsPhone" placeholder="请输入"></el-input> <el-input v-model="ruleForm.recipientsPhone" placeholder="请输入" maxlength="30"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="邮政编码:"> <el-form-item label="邮政编码:">
<el-input v-model="ruleForm.recipientsMail" placeholder="请输入"></el-input> <el-input v-model="ruleForm.recipientsMail" placeholder="请输入" maxlength="10"></el-input>
</el-form-item> </el-form-item>
</div> </div>
<div> <div>
<el-form-item label="邮寄地址:"> <el-form-item label="邮寄地址:">
<el-input v-model="ruleForm.recipientsAddress " placeholder="请输入"></el-input> <el-input v-model="ruleForm.recipientsAddress " placeholder="请输入" maxlength="30"></el-input>
</el-form-item> </el-form-item>
</div> </div>
</div> </div>
...@@ -69,11 +69,11 @@ ...@@ -69,11 +69,11 @@
<div class="describe">缴费信息</div> <div class="describe">缴费信息</div>
<div class="message-form"> <div class="message-form">
<el-form-item label="付款方式:" prop="feeWay"> <el-form-item label="付款方式:" prop="feeWay">
<el-input v-model="ruleForm.feeWay" placeholder="请输入"> <el-input v-model="ruleForm.feeWay" placeholder="请输入" maxlength="30">
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item label="备注:" prop="remark"> <el-form-item label="备注:" prop="remark">
<el-input :rows="5" v-model="ruleForm.remark" type="textarea" placeholder="请输入内容"> <el-input :rows="5" v-model="ruleForm.remark" type="textarea" placeholder="请输入内容" maxlength="300">
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item label="上传缴费凭证:" prop="voucherList"> <el-form-item label="上传缴费凭证:" prop="voucherList">
...@@ -185,7 +185,7 @@ ...@@ -185,7 +185,7 @@
code, code,
msg msg
} = await bidderEarnestpayment(message) } = await bidderEarnestpayment(message)
if (code === 200) { if (code ==200) {
this.$message({ this.$message({
message: msg, message: msg,
type: 'success', type: 'success',
...@@ -194,6 +194,8 @@ ...@@ -194,6 +194,8 @@
setTimeout(() => { setTimeout(() => {
this.$router.go(-1) this.$router.go(-1)
}, 1500) }, 1500)
}else{
this.$message.error(msg)
} }
} }
} catch (e) { } catch (e) {
......
...@@ -251,7 +251,7 @@ ...@@ -251,7 +251,7 @@
code, code,
msg msg
} = await bidBookpayment(message) } = await bidBookpayment(message)
if (code === 200) { if (code == 200) {
this.$message({ this.$message({
message: msg, message: msg,
type: 'success', type: 'success',
...@@ -260,6 +260,8 @@ ...@@ -260,6 +260,8 @@
setTimeout(() => { setTimeout(() => {
this.$router.go(-1) this.$router.go(-1)
}, 1500) }, 1500)
}else{
this.$message.error(msg)
} }
} }
} catch (e) { } catch (e) {
......
...@@ -19,8 +19,11 @@ ...@@ -19,8 +19,11 @@
<div>投标文件成功递交时间:{{submitTime}}</div> <div>投标文件成功递交时间:{{submitTime}}</div>
</div> </div>
<div> <div>
<div>投标截止(开标)时间:2020-09-09 22:12:23</div> <div>投标截止(开标)时间:{{openBidTime}}</div>
<div>投标截止时间倒计时:6天 6小时 6分钟 6秒</div> <div class="flex-item">
<div>投标截止时间倒计时:</div>
<timeDown :endTime='openBidTime'></timeDown>
</div>
</div> </div>
<el-form ref="form" :model="form" :rules="rules" label-width="120px" class="demo-ruleForm"> <el-form ref="form" :model="form" :rules="rules" label-width="120px" class="demo-ruleForm">
<div class="flex-between"> <div class="flex-between">
...@@ -36,7 +39,7 @@ ...@@ -36,7 +39,7 @@
<el-select v-model="form.bidbookId" placeholder="请选择"> <el-select v-model="form.bidbookId" placeholder="请选择">
<el-option v-for="item in options" :key="item.id" :label="item.fileName" :value="item.id"> <el-option v-for="item in options" :key="item.id" :label="item.fileName" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</div> </div>
</el-form> </el-form>
...@@ -50,7 +53,7 @@ ...@@ -50,7 +53,7 @@
</div> --> </div> -->
<div class="bottomButton"> <div class="bottomButton">
<el-button @click="back">取消</el-button> <el-button @click="back">取消</el-button>
<el-button>下载回执</el-button> <!-- <el-button>下载回执</el-button> -->
<el-button :disabled="!state" type="primary" @click="withdraw">撤回投标文件</el-button> <el-button :disabled="!state" type="primary" @click="withdraw">撤回投标文件</el-button>
<el-button :disabled="state" type="primary" @click="submitData">递交投标文件</el-button> <el-button :disabled="state" type="primary" @click="submitData">递交投标文件</el-button>
</div> </div>
...@@ -59,36 +62,43 @@ ...@@ -59,36 +62,43 @@
</template> </template>
<script> <script>
import timeDown from '@components/dayDown.vue'
import { import {
bidBooks,bidFile,revocationBidbFile bidBooks,
bidFile,
revocationBidbFile,
timeInfo
} from '@api/supply/bid' } from '@api/supply/bid'
import { import {
getTime getTime
} from '@utils/time' } from '@utils/time'
import dataBreadcrumb from '@components/dataBreadcrumb.vue' import dataBreadcrumb from '@components/dataBreadcrumb.vue'
import Upload from '@components/Upload/Upload.vue' import Upload from '@components/Upload/Upload.vue'
export default { export default {
components: { components: {
dataBreadcrumb, dataBreadcrumb,
Upload Upload,
timeDown
}, },
data() { data() {
let checkPhone = async (rule, value, callback) => { let checkPhone = async (rule, value, callback) => {
if (!value) { if (!value) {
return callback(new Error('手机号不能为空')); return callback(new Error('手机号不能为空'));
} else { } else {
const reg = /^1[3|4|5|7|8][0-9]\d{8}$/ const reg = /^1[3|4|5|7|8][0-9]\d{8}$/
if (reg.test(value)) { if (reg.test(value)) {
callback(); callback();
} else { } else {
return callback(new Error('请输入正确的手机号')); return callback(new Error('请输入正确的手机号'));
} }
} }
}; };
return { return {
bidFileId:"", compareTime:"",
submitTime:"暂无", openBidTime:"",
state:false, bidFileId: "",
submitTime: "暂无",
state: false,
options: [], options: [],
projectName: "", projectName: "",
projectCode: "", projectCode: "",
...@@ -106,7 +116,7 @@ ...@@ -106,7 +116,7 @@
}], }],
bidderPhone: [{ bidderPhone: [{
required: true, required: true,
validator: checkPhone, validator: checkPhone,
trigger: 'blur' trigger: 'blur'
}], }],
bidbookId: [{ bidbookId: [{
...@@ -118,59 +128,96 @@ ...@@ -118,59 +128,96 @@
} }
}, },
methods: { methods: {
back(){ remaintimeEnd(){
},
back() {
this.$router.go(-1) this.$router.go(-1)
}, },
getfile() { // 获取时间
async gettimeInfo(projectId) {
const {
data,
code
} = await timeInfo(projectId)
this.openBidTime=data.openBidTime
}, },
// 获取文件列表 // 获取文件列表
async getbidBooks() { async getbidBooks(projectId) {
let projectId = localStorage.getItem("projectId")
const { const {
data, data,
code code
} = await bidBooks(projectId) } = await bidBooks(projectId)
this.options=data this.options = data
}, },
// 提交 // 提交
async submitData() { async submitData() {
try { try {
const valid = await this.$refs['form'].validate() const valid = await this.$refs['form'].validate()
if (valid) { if (valid) {
let form=this.form let form = this.form
const { code,msg } = await bidFile(form) const {
if (code === 200) { code,
this.$message.success(msg) msg
this.submitTime=getTime() } = await bidFile(form)
this.state=true if (code === 200) {
this.bidFileId=form.bidbookId; // this.$message.success(msg)
this.getbidBooks() // this.submitTime=getTime()
} // this.state=true
} // this.bidFileId=form.bidbookId;
} catch (e) { // this.getbidBooks()
console.log(e) this.$message({
} message: msg,
type: 'success',
duration: 1500
})
setTimeout(() => {
this.$router.go(-1)
}, 1500)
} else {
this.$message.error(msg)
}
}
} catch (e) {
console.log(e)
}
}, },
// 撤回 // 撤回
async withdraw(){ async withdraw() {
try { try {
const {msg, code } = await revocationBidbFile(this.bidFileId) const {
if(code===200){ msg,
this.$message.success(msg) code
this.state=false } = await revocationBidbFile(this.bidFileId)
this.submitTime="暂无" if (code === 200) {
this.getbidBooks() // this.$message.success(msg)
// this.state=false
// this.submitTime="暂无"
// this.getbidBooks()
this.$message({
message: msg,
type: 'success',
duration: 1500
})
setTimeout(() => {
this.$router.go(-1)
}, 1500)
} else {
this.$message.error(msg)
} }
} catch (e) { } catch (e) {
console.log(e) console.log(e)
} }
} }
}, },
created() { created() {
this.projectCode = localStorage.getItem("projectCode") this.projectCode = localStorage.getItem("projectCode")
this.projectName = localStorage.getItem("projectName") this.projectName = localStorage.getItem("projectName")
this.getbidBooks() let projectId = localStorage.getItem("projectId")
this.getbidBooks(projectId)
this.gettimeInfo(projectId)
} }
} }
</script> </script>
......
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