Commit 3dd8917a authored by 张冬's avatar 张冬

联调

parent 18cebfd0
import request from '@/utils/request'
// 获取项目经理列表
// 获取该公司下的项目经理列表
export function userList(id) {
return request({
url: `/sys/user/list/company/${id}`,
......@@ -31,17 +31,14 @@ export function cityList(id) {
}
// 获取所有供应商列表列表
export function supplierList(type) {
export function supplierList(data) {
return request({
url: `/company/list/${type}`,
method: 'get'
url: "/company/list",
method: 'post',
data:data
})
}
// 获取所有列表(有分页) 有查询
export function getList(data, url) {
return request({
......@@ -58,4 +55,28 @@ export function queryList(data, url) {
method: 'post',
data: data
})
}
\ No newline at end of file
}
// 获取工作台列表的状态
export function projectStatusList() {
return request({
url: '/projectStatusList',
method: 'get'
})
}
// 该公司下的所有成员
export function opener(companyId) {
return request({
url:`tender-openBid/opener/${companyId}`,
method: 'get'
})
}
// 获取该项目下的项目经理
export function mamager(projectId) {
return request({
url:`tender-openBid/mamager/${projectId}`,
method: 'get'
})
}
......@@ -52,7 +52,7 @@ export function purchaseAsk(data) {
// 采购商提出澄清
export function forwardClarify(data) {
return request({
url: '/clarifies/forwardClarify',
url: '/tender-clarifies/forwardClarify',
method: 'POST',
data: data
})
......@@ -62,34 +62,36 @@ export function forwardClarify(data) {
// 问题内容接口
export function questionDetail(id) {
return request({
url: `/clarifies/question/${id}`,
url: `/tender-clarifies/question/${id}`,
method: 'get'
})
}
// 澄清内容接口
export function clarifiesDetail(id) {
return request({
url: `/clarifies/clarifies/${id}`,
url: `/tender-clarifies/clarifiesNotice/${id}`,
method: 'get'
})
}
//获取投标方列表
}
//查看某个澄清的 投标方列表
export function bidClarifies(params) {
return request({
url: '/clarifies/bid-clarifies/list',
url: 'tender-clarifies/bid-clarifies/list',
method: 'get',
params: params
})
}
//澄清确认回执查看
export function confirmation(clarifiesId) {
export function confirmation(confirmId) {
return request({
url: `/clarifies/confirmation/${clarifiesId}`,
url: `tender-clarifies/confirm/detail/${confirmId}`,
method: 'get'
})
}
// 新增
//
// 投标信息查看
export function reviewInfomation(projectId) {
return request({
......@@ -138,7 +140,7 @@ export function createAbortive(data) {
})
}
// 变更公告详情
// 流标公告详情
export function noticeAbortive(id) {
return request({
url: `/notice/abortive/${id}`,
......@@ -281,3 +283,14 @@ export function contract(data) {
data:data
})
}
//
// 开标设置
export function bidsetting(data) {
return request({
url: "/tender-openBid/bid-setting",
method: 'post',
data:data
})
}
import request from '@/utils/request'
// 2.1在线报名
......@@ -18,6 +21,8 @@ export function projectapply(data) {
})
}
//2.2.1
// 查看询价公告
export function noticeEnquiry(id) {
......@@ -52,11 +57,12 @@ export function bidderEarnestpayment(data) {
data:data
})
}
// 查看某个澄清的 投标方列表
// export function bidClarifies(params) {
// return request({
// url: '/clarifies/bid-clarifies/list',
// method: 'get',
// params: params
// })
// }
\ No newline at end of file
//查看某个澄清的 投标方列表
export function bidClarifies(params) {
return request({
url: '/clarifies/bid-clarifies/list',
method: 'get',
params: params
})
}
\ No newline at end of file
......@@ -49,6 +49,10 @@ export default {
type: Object,
default: () => {}
},
fileList:{
type: Array,
default: () => []
},
name: {
type: String,
default: ''
......@@ -64,9 +68,11 @@ export default {
},
data() {
return {
fileList: []
}
},
created(){
console.log(this.fileList)
},
methods: {
emitInput(fileList) {
let value = []
......@@ -117,6 +123,7 @@ export default {
// 调用 ali-oss 中的方法
put(`${objName}${option.file.name}`, option.file).then(res => {
this.fileList.push(res)
console.log(this.fileList)
this.emitInput(this.fileList)
})
}
......
......@@ -43,7 +43,7 @@
</template>
<script>
import dataTable from '@components/dataTable.vue'
import dataTable from '@components/nopageTable.vue'
import {
put,
getFileNameUUID
......
......@@ -26,7 +26,6 @@ export default {
this.$emit('getIndex', index)
}
}
}
</script>
......
......@@ -163,6 +163,7 @@ export default {
this.objInput = obj
}
let pageObj = this.pageObj
console.log(pageObj)
this.getauditList(pageObj)
},
//
......@@ -175,6 +176,7 @@ export default {
item.createTime=getTime1(item.createTime)
item.endTime=getTime1(item.endTime)
}
console.log(data);
this.tableData = data
this.total = total
}
......
......@@ -5,7 +5,7 @@
<el-button slot="moreButton" type="primary" style="margin-left: 50px;" @click="handlerelease">发布项目</el-button>
<el-table-column slot="operate" label="项目类型" align="center" fixed="right" width="100">
<template slot-scope="scope">
<div v-if="scope.row.type==1">公开招标</div>
<div v-if="scope.row.type==2">公开招标</div>
<div v-else>邀请招标</div>
</template>
</el-table-column>
......@@ -25,7 +25,7 @@
</template>
<script>
import {projectStatusList} from '@api/common/list'
import dataTable from '@components/dataTable.vue'
export default {
......@@ -38,57 +38,26 @@ export default {
checklist: [{
title: '项目名称',
type: 'input',
model: 'name'
model: 'name',
}, {
title: '项目类型',
type: 'select',
selectlist: [{
value: '1',
value: '2',
label: '公开招标'
}, {
value: '2',
value: '1',
label: '邀请招标'
}],
change: row => '',
model: 'type'
},
{
{
title: '状态',
type: 'select',
selectlist: [{
value: '1',
label: '项目待审核'
}, {
value: '2',
label: '询价公告待审核'
},
{
value: '3',
label: '询价公告待修改'
},
{
value: '4',
label: '招标公告待审核'
},
{
value: '5',
label: '招标公告待修改'
},
{
value: '6',
label: '招标公告待审核'
},
{
value: '7',
label: '审核通过待发布'
},
{
value: '8',
label: '招标公告待审核'
}
],
selectlist: [],
change: row => '',
model: 'state'
model: 'status'
}
],
breads: ['招标管理', '招标项目管理'],
......@@ -124,7 +93,8 @@ export default {
}
},
created(){
this.pageObj.companyId=1
this.pageObj.companyId=localStorage.getItem("companyId");
this.getprojectStatusList()
},
methods: {
// 跳转工作台
......@@ -135,6 +105,19 @@ export default {
handlerelease(){
this.$router.push('/purchaser/bid/releaseProject')
},
async getprojectStatusList() {
try {
const res = await projectStatusList()
console.log(res)
for(let item of res){
item.label=item.name
item.value=item.id
}
this.checklist[2].selectlist=res
} catch (e) {
console.log(e)
}
}
}
}
</script>
......
......@@ -15,31 +15,31 @@
<div>
<el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="100px" class="demo-ruleForm">
<div class="flex-between">
<el-form-item label="解密时限" prop="decryptTime">
<el-input v-model="ruleForm.decryptTime" style="width: 250px;" type="number" placeholder="请输入分钟数"></el-input>
<el-form-item label="解密时限" prop="decodeTime">
<el-input v-model="ruleForm.decodeTime" style="width: 250px;" type="number" placeholder="请输入分钟数"></el-input>
</el-form-item>
<el-form-item label="签名时限" prop="autographTime">
<el-input v-model="ruleForm.autographTime" style="width: 250px;" type="number" placeholder="请输入分钟数"></el-input>
<el-form-item label="签名时限" prop="signatureTime">
<el-input v-model="ruleForm.signatureTime" style="width: 250px;" type="number" placeholder="请输入分钟数"></el-input>
</el-form-item>
</div>
<div>
<el-form-item label="开标人" prop="openPerson">
<el-select v-model="ruleForm.openPerson" placeholder="请选择" style="width: 250px;">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
<el-form-item label="开标人" prop="bidOpener">
<el-select v-model="ruleForm.bidOpener" placeholder="请选择" style="width: 250px;">
<el-option v-for="item in options" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</div>
<div class="flex-between">
<el-form-item label="监标人" prop="supervisePerson">
<el-select v-model="ruleForm.supervisePerson" multiple placeholder="请选择" style="width: 250px;">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
<el-form-item label="监标人" prop="supervisionerList">
<el-select v-model="ruleForm.supervisionerList" multiple placeholder="请选择" style="width: 250px;">
<el-option v-for="item in options" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="序列人员" prop="joinPerson">
<el-select v-model="ruleForm.joinPerson" multiple placeholder="请选择" style="width: 250px;">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
<el-form-item label="序列人员" prop="delegaterList">
<el-select v-model="ruleForm.delegaterList" multiple placeholder="请选择" style="width: 250px;">
<el-option v-for="item in options" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
......@@ -47,7 +47,7 @@
</el-form>
<div style="width:200px;margin:100px auto">
<el-button @click="cancle">取消</el-button>
<el-button type="primary">保存</el-button>
<el-button type="primary" @click="submitData">保存</el-button>
</div>
</div>
......@@ -57,6 +57,9 @@
</template>
<script>
import { bidsetting} from '@api/purchaser/bid'
import { opener,mamager} from '@api/common/list'
import dataTable from '@components/dataTable.vue'
import dataBreadcrumb from '@components/dataBreadcrumb.vue'
import changeNav from '@components/changeNav.vue'
......@@ -69,49 +72,89 @@ export default {
},
data() {
return {
options: [{
value: '选项1',
label: '谢天'
}, {
value: '选项2',
label: '富贵'
}, {
value: '选项3',
label: '花满楼'
}],
options: [],
ruleForm: {
decryptTime: '',
autographTime: '',
decodeTime: '',
signatureTime: '',
pereson: '选项2',
openPerson: '',
supervisePerson: '',
joinPerson: ''
bidOpener: '',
supervisionerList: '',
delegaterList: ''
},
rules: {
autographTime: [{
signatureTime: [{
required: true,
message: '请输入时间',
trigger: 'blue'
}],
decryptTime: [{
decodeTime: [{
required: true,
message: '请输入时间',
trigger: 'blue'
}],
openPerson: [{
bidOpener: [{
required: true,
message: '请输入',
trigger: 'blue'
trigger: 'change'
}]
},
navs: ['开标设置'],
breads: ['招标管理', '招标项目管理', '工作台']
}
},
created() {
this.getopener()
this.getmamager()
},
methods: {
cancle() {
this.$router.go(-1)
}
},
// 获取公司人员列表
async getopener() {
let companyId=localStorage.getItem("companyId")
const {
data,
code
} = await opener(companyId)
if (code === 200) {
this.options=data
}
},
// 获取该项目下的项目经理
async getmamager() {
let projectId=localStorage.getItem("projectId")
const {
data,
code
} = await mamager(projectId)
if (code === 200) {
this.ruleForm.bidOpener=data
}
},
//提交表单
async submitData() {
try {
const valid = await this.$refs['ruleForm'].validate()
if (valid) {
let message=this.ruleForm
message.projectId=localStorage.getItem("projectId")
const { code,msg } = await bidsetting(message)
if (code === 200) {
this.$message({
message: msg,
type: 'success',
duration:1500
})
setTimeout(()=>{
this.$router.go(-1)
},1500)
}
}
} catch (e) {
console.log(e)
}
}
}
}
......
<!-- 投标保证金缴纳 -->
<template>
<div >
<div class="content">
<dataTable :table-data="tableData" :columns="columns" :page-obj="pageObj" :breads="breads" url="/tender-earnest/list" >
<el-table-column slot="operate" label="缴费情况" align="center" fixed="right" width="100">
<template slot-scope="scope">
<el-button type="text" size="small">{{ scope.row.state }}</el-button>
</template>
</el-table-column>
</dataTable>
</div>
</div>
</template>
<script>
import dataTable from '@components/dataTable.vue'
export default {
components: {
dataTable
},
data() {
return {
breads: ['招标管理', '招标项目管理 ', '工作台'],
tableData: [{
company: '腾讯',
person: '马小跳',
phone: '180223333',
email: '180223333',
state: '已缴费'
}, {
company: '腾讯',
person: '马小跳',
phone: '180223333',
email: '180223333',
state: '已缴费'
},
{
company: '腾讯',
person: '马小跳',
phone: '180223333',
email: '180223333',
state: '已缴费'
}],
columns: [{
label: '单位名称',
prop: 'company'
},
{
label: '联系人',
prop: 'person'
},
{
label: '手机',
prop: 'phone'
},
{
label: '邮件',
prop: 'email'
},
{
slot: 'operate'
}
], // 操作列
pageObj: {
size: 10,
currentPage: 1,
func: (currentPage) => {
this.pageTurning(currentPage)
}
}
}
},
created() {
this.pageObj.projectId = 2
},
methods: {
examine() {
this.$router.push('/admin/bid/bidingDetail')
}
}
}
</script>
<style scoped>
</style>
<!-- 投标保证金缴纳 -->
<template>
<div>
<div class="content">
<dataTable :columns="columns" :page-obj="pageObj" :breads="breads" url="/tender-earnest/list">
<el-table-column slot="operate" label="缴费情况" align="center" fixed="right" width="100">
<template slot-scope="scope">
<div v-if="scope.row.condition=='已缴纳'||scope.row.condition=='待修改'">
<el-button type="text" size="small">查看</el-button>
</div>
<div v-if="scope.row.condition=='待审核'">
<el-button type="text" size="small">审核</el-button>
</div>
</template>
</el-table-column>
</dataTable>
</div>
</div>
</template>
<script>
import dataTable from '@components/dataTable.vue'
export default {
components: {
dataTable
},
data() {
return {
breads: ['招标管理', '招标项目管理 ', '工作台'],
columns: [{
label: '单位名称',
prop: 'companyName'
},
{
label: '投标项目',
prop: 'projectName'
},
{
label: '提交审核时间',
prop: 'updateTime'
},
{
label: '缴费情况',
prop: 'condition'
},
{
slot: 'operate'
}
], // 操作列
pageObj: {
size: 10,
currentPage: 1,
func: (currentPage) => {
this.pageTurning(currentPage)
}
}
}
},
created() {
this.pageObj.projectId = 2
},
methods: {
examine() {
this.$router.push('/admin/bid/bidingDetail')
}
}
}
</script>
<style scoped>
</style>
<template>
<div>
<div class="content-head">
<dataBreadcrumb :breads="breads"></dataBreadcrumb>
<h3>提交</h3>
<h5>提交保证金缴纳信息</h5>
</div>
<div class="othercontent">
<el-form ref="ruleForm" :model="ruleForm" :rules="formrules" label-width="200px" class="demo-ruleForm">
<div class="message">
<div>
<div class="describe">单位信息</div>
<div class="message-form">
<div>
<el-form-item label="单位名称" prop="companyName">
<el-input v-model="ruleForm.companyName" disabled></el-input>
</el-form-item>
</div>
<div class="flex-between">
<el-form-item label="联系人:" prop="projectCode">
<el-input v-model="ruleForm.projectCode" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="固定电话:" prop="companyTel">
<el-input v-model="ruleForm.companyTel" placeholder="请输入"></el-input>
</el-form-item>
</div>
<div class="flex-between">
<el-form-item label="手机:" prop="companyPhone">
<el-input v-model="ruleForm.companyPhone" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="传真:" prop="companyFacsimile">
<el-input v-model="ruleForm.companyFacsimile" placeholder="请输入"></el-input>
</el-form-item>
</div>
<div>
<el-form-item label="邮箱:" prop="companyEmail">
<el-input v-model="ruleForm.companyEmail" placeholder="请输入"></el-input>
</el-form-item>
</div>
</div>
</div>
<div>
<div class="describe">邮寄信息</div>
<div class="message-form">
<div class="flex-between">
<el-form-item label="收件人名称:">
<el-input v-model="ruleForm.recipientsName" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="收件人单位:">
<el-input v-model="ruleForm.recipientsCompany" placeholder="请输入"></el-input>
</el-form-item>
</div>
<div class="flex-between">
<el-form-item label="联系方式:">
<el-input v-model="ruleForm.recipientsPhone" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="邮政编码:">
<el-input v-model="ruleForm.recipientsMail" placeholder="请输入"></el-input>
</el-form-item>
</div>
<div>
<el-form-item label="邮寄地址:">
<el-input v-model="ruleForm.recipientsAddress " placeholder="请输入"></el-input>
</el-form-item>
</div>
</div>
</div>
<div>
<div class="describe">缴费信息</div>
<div class="message-form">
<el-form-item label="付款方式:" prop="feeWay">
<el-input v-model="ruleForm.feeWay" placeholder="请输入">
</el-input>
</el-form-item>
<el-form-item label="备注:" prop="remark">
<el-input :rows="5" v-model="ruleForm.remark" type="textarea" placeholder="请输入内容">
</el-input>
</el-form-item>
<el-form-item label="上传缴费凭证:" prop="voucherUrl">
<Upload :limit="5" :max="5" tip="完成上传5份文件,每份不超过10M" @input="getfile"></Upload>
</el-form-item>
</div>
</div>
</div>
</el-form>
</div>
<div class="bottomButton">
<el-button>取消</el-button>
<el-button type="primary" @click="submitData">提交</el-button>
</div>
</div>
</template>
<script>
import {
bidderEarnestpayment
} from '@api/supply/bid'
import dataBreadcrumb from '@components/dataBreadcrumb.vue'
import Upload from '@components/Upload/Upload.vue'
export default {
components: {
dataBreadcrumb,
Upload
},
data() {
// 测试图片
let checkimg = (rule, value, callback) => {
if (this.ruleForm.voucherUrl.length === 0) {
callback(new Error('请上传凭证'));
} else {
callback();
}
};
return {
breads: ['招标管理', '招标项目管理', '工作台'],
ruleForm: {
companyName: '',
companyTel: '',
companyPhone: '',
companyFacsimile: '',
recipientsName: "",
recipientsCompany: "",
recipientsPhone: "",
recipientsMail: "",
recipientsAddress: "",
feeWay: '',
remark: "",
companyEmail: "",
voucherUrl: []
},
formrules: {
companyName: [{
required: true,
message: '请输入',
trigger: 'blur'
}],
companyPhone: [{
required: true,
message: '请输入',
trigger: 'blur'
}],
feeWay: [{
required: true,
message: '请输入',
trigger: 'blur'
}],
voucherUrl: [{
required: true,
validator: checkimg,
trigger: 'blur'
}]
}
}
},
methods: {
getfile(val) {
this.ruleForm.voucherUrl = val
},
async submitData() {
try {
const valid = await this.$refs['ruleForm'].validate()
if (valid) {
let message = this.ruleForm
message.companyId = localStorage.getItem("companyId"),
message.projectId = localstorage.getitem("projectId")
const {
code,
msg
} = await bidderEarnestpayment(message)
if (code === 2000) {
this.$success.success(msg)
}
}
} catch (e) {
console.log(e)
}
}
},
}
</script>
<style scoped>
.message {}
.message>div {
background: #fff;
margin-bottom: 20px;
padding-bottom: 20px;
}
.message-form {
width: 70%;
margin: 0 auto
}
</style>
......@@ -6,8 +6,8 @@
<dataTable :table-data="tableData" :columns="columns" :is-pageobj="false" :table-top="60">
<el-table-column slot="operate" label="操作" align="center" fixed="right" width="100">
<template slot-scope="scope">
<el-button v-if="scope.row.state=='待修改'" type="text" size="small" @click="handleModify(scope.row)">修改</el-button>
<el-button v-else type="text" size="small" @click="handleSee(scope.row)">查看</el-button>
<el-button v-if="scope.row.auditStatus===2" type="text" size="small" @click="handleModify(scope.row.id)">修改 </el-button>
<el-button v-else type="text" size="small" @click="handleSee(scope.row.id)">查看 </el-button>
</template>
</el-table-column>
</dataTable>
......@@ -42,11 +42,11 @@ export default {
},
{
label: '状态',
prop: 'auditStatus'
prop: 'Status'
},
{
label: '备注',
prop: 'remark'
prop: 'reason'
},
{
slot: 'operate'
......@@ -58,24 +58,19 @@ export default {
this.getchangeList()
},
methods: {
handleModify() {
handleModify(id) {
this.$router.push({
path: '/purchaser/bid/bidStage/changeList/changeNotice',
query: {
type: 'modify'
id:id
}
})
},
release() {
this.$router.push({
path: '/purchaser/bid/bidStage/changeList/changeNotice',
query: {
type: 'release'
}
})
this.$router.push("/purchaser/bid/bidStage/changeList/changeNotice")
},
handleSee() {
this.$router.push('/purchaser/bid/bidStage/changeList/see')
handleSee(id) {
this.$router.push(`/purchaser/bid/bidStage/changeList/see?id=${id}`)
},
async getchangeList() {
try {
......@@ -87,11 +82,11 @@ export default {
if (code === 200) {
for (let item of data) {
if (item.auditStatus === 0) {
item.auditStatus = '未审核'
item.Status = '未审核'
} else if (item.auditStatus === 1) {
item.auditStatus = '审核通过'
item.Status = '审核通过'
} else {
item.auditStatus = '未通过'
item.Status = '未通过'
}
}
this.tableData = data
......
......@@ -13,13 +13,13 @@
<el-input v-model="ruleForm.title" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="上传附件" prop="file">
<singleUpload tip="支持扩展名:.rar .zip .doc .docx .pdf .jpg..." @input="getfile"></singleUpload>
<singleUpload :fileList="ruleForm.accessoryVOList" tip="支持扩展名:.rar .zip .doc .docx .pdf .jpg..." @input="getfile"></singleUpload>
</el-form-item>
<el-form-item label="公告内容" prop="content">
<quill-editor ref="text" v-model="ruleForm.content" :options="editorOption" class="myQuillEditor" style="width: 90%;height: 250px;" />
<quill-editor ref="text" v-model="ruleForm.content" :options="editorOption" class="myQuillEditor" />
</el-form-item>
</el-form>
<div class="button">
<div class="centerButton">
<el-button @click="cancle">取消</el-button>
<el-button type="primary" @click="submit">提交审核</el-button>
</div>
......@@ -30,7 +30,7 @@
<script>
import {
createChange
createChange,noticeChange
} from '@api/purchaser/bid'
import dataBreadcrumb from '@components/dataBreadcrumb.vue'
import singleUpload from '@components/Upload/Upload.vue'
......@@ -48,6 +48,7 @@ export default {
},
data() {
return {
id:"",
editorOption: {},
title: '发布变更公告',
breads: ['招标管理', '招标项目管理', '工作台'],
......@@ -76,14 +77,11 @@ export default {
}
},
created() {
let type = this.$route.query.type
console.log(type)
if (type === 'modify') {
this.ruleForm = {
title: '修改',
content: '大修改'
}
let id = this.$route.query.id;
this.id=id;
if (id) {
this.title = '修改变更公告'
this.changeDetail(id)
}
},
methods: {
......@@ -96,7 +94,7 @@ export default {
//提交表单
async submit() {
let ruleForm = this.ruleForm
ruleForm.projectId = 1
ruleForm.projectId = localStorage.getItem("projectId")
let type = this.$route.query.type
if (type === 'modify') {
ruleForm.changeId = 1
......@@ -104,22 +102,48 @@ export default {
try {
const valid = await this.$refs['ruleForm'].validate()
if (valid) {
let ruleForm=this.ruleForm;
if(this.id){
ruleForm.id=this.id;
}
const {
code,
msg
} = await createChange(this.ruleForm)
if (code === 200) {
this.$message({
message: msg,
type: 'success'
})
// this.$router.go(-1)
// this.$message({
// message: msg,
// type: 'success',
// duration:1500
// })
// setTimeout(()=>{
// this.$router.go(-1)
// },1500)
}
}
} catch (err) {
console.log(err)
}
}
},
// 详情
async changeDetail(id) {
try {
const {
data,
code
} = await noticeChange(id)
if (code === 200) {
for(let item of data.accessoryVOList){
console.log(item)
item.name=item.fileName;
item.fileUrl=item.accessoryUrl
}
this.ruleForm = data
}
} catch (e) {
console.log(e)
}
}
}
}
......@@ -132,8 +156,4 @@ export default {
padding-bottom: 100px;
}
.button {
width: 200px;
margin: 150px auto 0
}
</style>
......@@ -8,15 +8,20 @@
<div class="content">
<div class="describe">变更公告</div>
<div class="form">
<el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="120px" class="demo-ruleForm">
<el-form-item label="公告标题" prop="title">
<div>公告标题</div>
<el-form ref="ruleForm" :model="ruleForm" label-width="120px" class="demo-ruleForm">
<el-form-item label="公告标题" >
<div>{{ruleForm.title}}</div>
</el-form-item>
<el-form-item label="上传附件" prop="file">
<!-- <multiUpload tips="支持扩展名:.rar .zip .doc .docx .pdf .jpg..."></multiUpload> -->
<el-form-item label="上传附件" v-if="ruleForm.accessoryVOList">
<ul>
<li v-for="(item,index) in ruleForm.accessoryVOList" :key="index">
<div @click="open(item.accessoryUrl)">{{item.fileName}}</div>
</li>
</ul>
</el-form-item>
<el-form-item label="公告内容" prop="content">
<div>公告内容</div>
<el-form-item label="公告内容">
<div v-html="ruleForm.content"></div>
</el-form-item>
</el-form>
<div class="button">
......@@ -43,16 +48,19 @@ export default {
editorOption: {},
breads: ['招标管理', '招标项目管理', '工作台'],
ruleForm: {
title: '',
content: ''
}
}
},
created() {
this.changeDetail(1)
let id=this.$route.query.id
this.changeDetail(id)
},
methods: {
open(url){
window.open(url)
},
cancle() {
this.$router.go(-1)
},
......@@ -63,7 +71,8 @@ export default {
code
} = await noticeChange(id)
if (code === 200) {
this.detail = data
console.log(data)
this.ruleForm = data
}
} catch (e) {
console.log(e)
......
<template>
<template>
<div>
<div class="content">
<dataBreadcrumb :breads="breads"></dataBreadcrumb>
<changeNav :navs="navs"></changeNav>
<dataBreadcrumb :breads="breads"></dataBreadcrumb>
<div>招标文件澄清列表</div>
<changeNav :navs="navs" @getIndex="getIndex"></changeNav>
<div class="absolute">
<el-button type="primary" @click="out">退出澄清</el-button>
<el-button type="primary" @click="propose">出澄清</el-button>
</div>
<dataTable :columns="columns" :page-obj="pageObj" url="/clarifies/list">
<el-table-column slot="operate" label="状态" align="center" fixed="right" >
<template slot-scope="scope">
<div v-if="scope.row.state==0">已回复</div>
<div v-else>未回复</div>
</template>
</el-table-column>
<el-table-column slot="operate" label="类型" align="center" fixed="right" >
<template slot-scope="scope">
<div v-if="scope.row.clarifiesType==0">提出澄清</div>
<div v-else>回复问题</div>
</template>
</el-table-column>
<el-table-column slot="operate" label="操作" align="center" fixed="right" width="100">
<template slot-scope="scope">
<div v-if="scope.row.clarifiesType==0">
<el-button type="text" size="small" @click="handleSee(scope.row)">查看</el-button>
</div>
<div v-else>
<el-button v-if="scope.row.state==1" type="text" size="small" @click="examine(scope.row)">查看</el-button>
<el-button v-else type="text" size="small" @click="handleReply(scope.row.id)">回复</el-button>
</div>
</template>
</el-table-column>
</dataTable>
<div v-show="idx==0">
<dataTable :columns="columns" :page-obj="pageObj" url="tender-clarifies/list">
<el-table-column slot="operate" label="操作" align="center" fixed="right" width="100">
<template slot-scope="scope">
<div v-if="scope.row.clarifiesType==0">
<el-button type="text" size="small" @click="handleSee(scope.row)">查看</el-button>
</div>
<div v-else>
<el-button v-if="scope.row.noticeId" type="text" size="small" @click="handleSee(scope.row)">查看</el-button>
<el-button v-else type="text" size="small" @click="handleReply(scope.row)">回复</el-button>
</div>
</template>
</el-table-column>
</dataTable>
</div>
<div v-show="idx==1">
<dataTable :columns="columns" :page-obj="pageObj1" url="tender-clarifies/list">
<el-table-column slot="operate" label="操作" align="center" fixed="right" width="100">
<template slot-scope="scope">
<div v-if="scope.row.clarifiesType==0">
<el-button type="text" size="small" @click="handleSee(scope.row)">查看</el-button>
</div>
<div v-else>
<el-button v-if="scope.row.noticeId" type="text" size="small" @click="handleSee(scope.row)">查看</el-button>
<el-button v-else type="text" size="small" @click="handleReply(scope.row)">回复</el-button>
</div>
</template>
</el-table-column>
</dataTable>
</div>
</div>
</div>
</template>
......@@ -41,7 +47,6 @@ import dataTable from '@components/dataTable.vue'
import changeNav from '@components/changeNav.vue'
import dataBreadcrumb from '@components/dataBreadcrumb.vue'
export default {
name: 'bidingList',
components: {
dataTable,
changeNav,
......@@ -49,28 +54,18 @@ export default {
},
data() {
return {
navs: ['招标文件澄清列表'],
idx:0,
navs: ["问题列表","公告列表"],
breads: ['招标管理', '招标项目管理', '工作台'],
checklist: [{
title: '公告名称',
type: 'input'
}, {
title: '状态',
type: 'select',
selectlist: [{
value: '1',
label: '公开招标'
}, {
value: '2',
label: '邀请招标'
}],
change: row => ''
}],
tableData: [],
columns: [{
label: '澄清问题标题',
prop: 'title'
},
{
label: '状态',
prop: 'operaion'
},
{
label: '提出时间',
prop: 'createTime',
......@@ -78,7 +73,7 @@ export default {
},
{
label: '提出人',
prop: 'createBy'
prop: 'bidCompanyName'
},
{
slot: 'operate'
......@@ -86,31 +81,55 @@ export default {
], // 操作列
pageObj: {
size: 10,
currentPage: 1
// func: (currentPage) => {
// this.pageTurning(currentPage)
// }
}
currentPage: 1,
type:1,
func: (currentPage) => {
this.pageTurning(currentPage)
}
},
pageObj1: {
size: 10,
currentPage: 1,
type:2,
func: (currentPage) => {
this.pageTurning(currentPage)
}
}
}
},
created() {
this.pageObj.projectId = 2
this.pageObj.questionId = 1
this.pageObj.projectId = localStorage.getItem("projectId")
this.pageObj.companyId = localStorage.getItem("companyId")
this.pageObj1.projectId = localStorage.getItem("projectId")
this.pageObj1.companyId = localStorage.getItem("companyId")
},
methods: {
getIndex(value){
this.idx=value
},
// 提出
propose(){
this.$router.push("/purchaser/bid/bidStage/clearManagement/propose")
},
// 查看
handleSee(row) {
console.log(row)
this.$router.push({
path: '/purchaser/bid/bidStage/clearManagement/see',
query: {
questionId: row.questionId,
noticeId: row.noticeId
}
})
},
handleReply(id) {
// 回复
handleReply(row) {
this.$router.push({
path: '/purchaser/bid/bidStage/clearManagement/reply',
query: id
query: {
questionId: row.questionId,
}
})
},
out() {
this.$router.go(-1)
}
}
}
</script>
......
......@@ -8,8 +8,18 @@
<div class="content flex-center">
<div>
<h3>这里显示招标方单位名称:</h3>
<h5>我单位已收到贵公司发出的项目【这里是参与的项目名称】澄清标题为【这里是招标方发出澄清的标题】的澄清文件,特此回执</h5>
<h4>*回执文件</h4>
<h5>我单位已收到贵公司发出的项目{{detail.projectName}}澄清标题为{{detail.title}}的澄清文件,特此回执</h5>
<div class="flex">
<h4>*回执文件</h4>
<div class="img">
<div>{{detail.fileName}}</div>
<el-image
style="width: 100px; height: 100px"
:src="detail.accessoryUrl"
:preview-src-list="srcList">
</el-image>
</div>
</div>
<div class="flex-center" style="margin-top:100px">
<el-button @click="back">返回</el-button>
</div>
......@@ -29,25 +39,31 @@ export default {
},
data() {
return {
confirmationId: 1,
srcList:[],
detail:{},
confirmationId:"" ,
breads: ['招标管理', '招标项目管理', '工作台']
}
},
created() {
this.getconfirmationId()
let confirmId=this.$route.query.confirmId;
this.getconfirmationId(confirmId)
},
methods: {
back() {
this.$router.go(-1)
},
// 获取确认函
async getconfirmationId() {
async getconfirmationId(confirmId) {
try {
const {
code,
data
} = await confirmation(this.confirmationId)
if (code === 0) {
} = await confirmation(confirmId)
if (code === 200) {
let srcList=[];
srcList.push(data.accessoryUrl)
this.srcList=srcList
this.detail = data
}
} catch (err) {
......@@ -61,6 +77,9 @@ export default {
<style scoped>
.img{
margin-left: 10px;
}
.content {
height: 70%;
}
......
......@@ -19,10 +19,10 @@
<singleUpload :limit="5" tip="最多上传5个文件,每个文件不超过100M。" @input="getfile"></singleUpload>
</el-form-item>
<el-form-item label="公告内容" prop="content">
<quill-editor ref="text" v-model="ruleForm.content" :options="editorOption" class="myQuillEditor" style="width: 90%;height: 250px;" />
<quill-editor ref="text" v-model="ruleForm.content" :options="editorOption" class="myQuillEditor" />
</el-form-item>
</el-form>
<div class="button">
<div class="centerButton">
<el-button @click="cancle">取消</el-button>
<el-button type="primary" @click="submit">提交审核</el-button>
</div>
......@@ -95,8 +95,8 @@ export default {
//提交表单
async submit() {
let ruleForm = this.ruleForm
ruleForm.projectId = 1
ruleForm.companyId = 1
ruleForm.projectId = localStorage.getItem("projectId")
ruleForm.companyId = localStorage.getItem("companyId")
try {
const valid = await this.$refs['ruleForm'].validate()
if (valid) {
......@@ -105,11 +105,14 @@ export default {
msg
} = await forwardClarify(this.ruleForm)
if (code === 200) {
this.$message({
message: msg,
type: 'success'
})
// this.$router.go(-1)
this.$message({
message: msg,
type: 'success',
duration:1500
})
setTimeout(()=>{
this.$router.go(-1)
},1500)
}
}
} catch (err) {
......@@ -127,8 +130,5 @@ export default {
padding-bottom: 100px;
}
.button {
width: 200px;
margin: 150px auto 0
}
</style>
<template>
<div>
<div class="content-head">
<dataBreadcrumb :breads="breads"></dataBreadcrumb>
<h3>回复问题</h3>
<h5>回复问题</h5>
</div>
<div class="content">
<div class="describe">澄清问题</div>
<div class="clear-message">
<div class="flex clear-item">
<div><span>*</span>澄清问题标题:</div>
<div>{{ detail.title }}</div>
</div>
<div class="flex clear-item">
<div><span>*</span>澄清问题内容:</div>
<div>{{ detail.content }}</div>
</div>
<div v-if="detail.accessoryList" class="flex-between">
<div><span>*</span>澄清问题附件:</div>
<ul>
<li v-for="(item,index) in detail.accessoryList" :key="index">
<span>{{ item.fileName }}</span>
<el-button @click="download(item.accessoryUrl)">下载</el-button>
</li>
</ul>
</div>
</div>
<h3 class="title">澄清内容</h3>
<div class="form">
<el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="120px" class="demo-ruleForm">
<el-form-item label="回复标题" prop="title">
<el-input v-model="ruleForm.title" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="公告发布媒体" prop="release">
<el-input v-model="ruleForm.release" disabled></el-input>
</el-form-item>
<el-form-item label="回复文件" prop="file">
<singleUpload :limit="5" tip="最多上传5个文件,每个文件不超过100M。" @input="getfile"></singleUpload>
</el-form-item>
<el-form-item label="回复内容内容" prop="content">
<quill-editor ref="text" v-model="ruleForm.content" :options="editorOption" class="myQuillEditor" style="width: 90%;height: 250px;" />
</el-form-item>
</el-form>
<div class="button">
<el-button @click="cancle">取消</el-button>
<el-button type="primary" @click="submit">提交审核</el-button>
</div>
</div>
</div>
</div>
<div>
<div class="content-head">
<dataBreadcrumb :breads="breads"></dataBreadcrumb>
<h3>回复问题</h3>
<h5>回复问题</h5>
</div>
<div class="content">
<div class="describe">澄清问题</div>
<div class="clear-message">
<div class="flex clear-item">
<div><span>*</span>澄清问题标题:</div>
<div>{{ detail.title }}</div>
</div>
<div class="flex clear-item">
<div><span>*</span>澄清问题内容:</div>
<div>{{ detail.content }}</div>
</div>
<div v-if="detail.accessoryList" class="flex-between">
<div><span>*</span>澄清问题附件:</div>
<ul>
<li v-for="(item,index) in detail.accessoryList" :key="index">
<span>{{ item.fileName }}</span>
<el-button @click="download(item.accessoryUrl)">下载</el-button>
</li>
</ul>
</div>
</div>
<h3 class="title">澄清内容</h3>
<div class="form">
<el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="120px" class="demo-ruleForm">
<el-form-item label="回复标题" prop="title">
<el-input v-model="ruleForm.title" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="公告发布媒体" prop="release">
<el-input v-model="ruleForm.release" disabled></el-input>
</el-form-item>
<el-form-item label="回复文件" prop="file">
<singleUpload :limit="5" tip="最多上传5个文件,每个文件不超过100M。" @input="getfile"></singleUpload>
</el-form-item>
<el-form-item label="回复内容内容" prop="content">
<quill-editor ref="text" v-model="ruleForm.content" :options="editorOption" class="myQuillEditor" />
</el-form-item>
</el-form>
<div class="centerButton">
<el-button @click="cancle">取消</el-button>
<el-button type="primary" @click="submit">提交审核</el-button>
</div>
</div>
</div>
</div>
</template>
<script>
import {
clarifiesDetail,
forwardClarify
} from '@api/purchaser/bid'
import {
clarifiesDetail,
forwardClarify
} from '@api/purchaser/bid'
import dataBreadcrumb from '@components/dataBreadcrumb.vue'
import singleUpload from '@components/Upload/Upload.vue'
import {
quillEditor
} from 'vue-quill-editor'
import 'quill/dist/quill.core.css'
import 'quill/dist/quill.snow.css'
import 'quill/dist/quill.bubble.css'
export default {
components: {
dataBreadcrumb,
singleUpload,
quillEditor
},
data() {
return {
questionId: 1,
accessoryPOList: [],
detail: '',
editorOption: {},
breads: ['招标管理', '招标项目管理', '工作台'],
ruleForm: {
title: '',
release: '捷安采官网招标投专区',
content: ''
},
rules: {
title: [{
required: true,
message: '请输入',
trigger: 'blue'
}],
release: [{
required: true,
message: '请输入',
trigger: 'blue'
}],
import dataBreadcrumb from '@components/dataBreadcrumb.vue'
import singleUpload from '@components/Upload/Upload.vue'
import {
quillEditor
} from 'vue-quill-editor'
import 'quill/dist/quill.core.css'
import 'quill/dist/quill.snow.css'
import 'quill/dist/quill.bubble.css'
export default {
components: {
dataBreadcrumb,
singleUpload,
quillEditor
},
data() {
return {
questionId: 1,
accessoryPOList: [],
detail: '',
editorOption: {},
breads: ['招标管理', '招标项目管理', '工作台'],
ruleForm: {
title: '',
release: '捷安采官网招标投专区',
content: ''
},
rules: {
title: [{
required: true,
message: '请输入',
trigger: 'blue'
}],
release: [{
required: true,
message: '请输入',
trigger: 'blue'
}],
content: [{
required: true,
message: '请输入',
trigger: 'blue'
}]
}
}
},
created() {
this.id = this.$route.query.id
this.getclarifiesDetail()
},
methods: {
getfile(val) {
for (let item of val) {
item.accessoryUrl = item.fileUrl
}
this.ruleForm.accessoryList = val
},
download(url) {
window.open(url)
},
cancle() {
this.$router.go(-1)
},
// 查看问题详情
async getclarifiesDetail() {
try {
const {
code,
data
} = await clarifiesDetail(1)
if (code === 0) {
this.detail = data
}
} catch (err) {
console.log(err)
}
},
//提交澄清
async submit() {
let ruleForm = this.ruleForm
ruleForm.questionId = this.questionId
ruleForm.companyId = 1
try {
const valid = await this.$refs['ruleForm'].validate()
if (valid) {
const {
code,
msg
} = await forwardClarify(this.ruleForm)
if (code === 200) {
this.$message({
message: msg,
type: 'success'
})
this.$router.go(-1)
}
}
} catch (err) {
console.log(err)
}
}
}
}
content: [{
required: true,
message: '请输入',
trigger: 'blue'
}]
}
}
},
created() {
this.id = this.$route.query.questionId
this.getclarifiesDetail()
},
methods: {
getfile(val) {
for (let item of val) {
item.accessoryUrl = item.fileUrl
}
this.ruleForm.accessoryList = val
},
download(url) {
window.open(url)
},
cancle() {
this.$router.go(-1)
},
// 查看澄清详情
async getclarifiesDetail() {
try {
const {
code,
data
} = await clarifiesDetail(this.id)
if (code === 200) {
this.detail = data
}
} catch (err) {
console.log(err)
}
},
//提交澄清
async submit() {
let ruleForm = this.ruleForm
ruleForm.questionId = this.id
ruleForm.companyId = localStorage.getItem("companyId")
try {
const valid = await this.$refs['ruleForm'].validate()
if (valid) {
const {
code,
msg
} = await forwardClarify(this.ruleForm)
if (code === 200) {
this.$message({
message: msg,
type: 'success',
duration: 1500
})
setTimeout(() => {
this.$router.go(-1)
}, 1500)
}
}
} catch (err) {
console.log(err)
}
}
}
}
</script>
......@@ -169,14 +172,11 @@ export default {
padding-bottom: 100px;
}
.button {
width: 200px;
margin: 150px auto 0
}
.clear-message {
margin-left: 70px;
width: 40%
width:80%
}
.clear-message>div>span {
......
......@@ -48,7 +48,7 @@
</div>
<div class="clear-item">
<div><span>*</span>回复内容:</div>
<div>{{ clarifies.content }}</div>
<div v-html="clarifies.content"></div>
</div>
</div>
</div>
......@@ -57,7 +57,7 @@
<dataTable :table-data="tableData" :columns="columns">
<el-table-column slot="operate" label="操作" align="center" fixed="right" width="200">
<template slot-scope="scope">
<el-button type="text" size="small" @click="handlesee(scope.row)">查看澄清确认回执</el-button>
<el-button v-if="scope.row.confirmId" type="text" size="small" @click="handlesee(scope.row)">查看澄清确认回执</el-button>
</template>
</el-table-column>
</dataTable>
......@@ -93,6 +93,7 @@ export default {
},
data() {
return {
clarifiesId:"",
question: '',
clarifies: '',
questionId: 1,
......@@ -103,7 +104,7 @@ export default {
},
{
label: '状态',
prop: 'state'
prop: 'operationStatus'
},
{
label: '确认时间',
......@@ -144,6 +145,8 @@ export default {
}
},
created() {
this.questionId=this.$route.query.questionId
this.clarifiesId=this.$route.query.noticeId
this.getquestionDetail()
this.getclarifiesDetail()
this.getbidClarifies()
......@@ -152,8 +155,8 @@ export default {
cancle() {
this.$router.go(-1)
},
handlesee() {
this.$router.push('/purchaser/bid/bidStage/clearManagement/confirm')
handlesee(row) {
this.$router.push(`/purchaser/bid/bidStage/clearManagement/confirm?confirmId=${row.confirmId}`)
},
download(url) {
window.open(url)
......@@ -164,8 +167,8 @@ export default {
const {
code,
data
} = await clarifiesDetail(1)
if (code === 0) {
} = await clarifiesDetail(this.clarifiesId)
if (code === 200) {
this.clarifies = data
}
} catch (err) {
......@@ -179,7 +182,7 @@ export default {
code,
data
} = await questionDetail(this.questionId)
if (code === 0) {
if (code === 200) {
this.question = data
}
} catch (err) {
......@@ -190,19 +193,14 @@ export default {
async getbidClarifies() {
try {
let params = {}
params.projectId = 1
params.questionId = 1
params.projectId = localStorage.getItem("projectId")
params.noticeId = this.clarifiesId
const {
code,
data
} = await bidClarifies(params)
if (code === 0) {
if (code === 200) {
for (let item of data) {
if (item.confirmId) {
item.state = '已确认'
} else {
item.state = '未确认'
}
if (!item.updateTime) {
item.updateTime = '空'
}
......@@ -236,7 +234,7 @@ export default {
.clear-message {
margin-left: 70px;
width: 350px
width:80%
}
.clear-message>div>span {
......
......@@ -6,8 +6,8 @@
<dataTable :table-data="tableData" :columns="columns" :is-pageobj="false" :table-top="60">
<el-table-column slot="operate" label="操作" align="center" fixed="right" width="100">
<template slot-scope="scope">
<el-button v-if="scope.row.state=='待修改'" type="text" size="small" @click="handleModify(scope.row)">修改</el-button>
<el-button v-else type="text" size="small" @click="handleSee(scope.row)">查看</el-button>
<el-button v-if="scope.row.auditStatus===2" type="text" size="small" @click="handleModify(scope.row.id)">修改 </el-button>
<el-button v-else type="text" size="small" @click="handleSee(scope.row.id)">查看 </el-button>
</template>
</el-table-column>
</dataTable>
......@@ -44,11 +44,11 @@ export default {
},
{
label: '状态',
prop: 'state'
prop: 'Status'
},
{
label: '备注',
prop: 'remark'
prop: 'reason'
},
{
slot: 'operate'
......@@ -61,24 +61,19 @@ export default {
this.getabortiveList()
},
methods: {
handleModify() {
handleModify(id) {
this.$router.push({
path: '/purchaser/bid/bidStage/failList/failNotice',
query: {
type: 'modify'
id:id
}
})
},
release() {
this.$router.push({
path: '/purchaser/bid/bidStage/failList/failNotice',
query: {
type: 'release'
}
})
this.$router.push("/purchaser/bid/bidStage/failList/failNotice")
},
handleSee() {
this.$router.push('/purchaser/bid/bidStage/failList/see')
handleSee(id) {
this.$router.push(`/purchaser/bid/bidStage/failList/see?id=${id}`)
},
async getabortiveList() {
try {
......@@ -88,15 +83,15 @@ export default {
code
} = await abortiveList(projectId)
if (code === 200) {
for (let item of data) {
if (item.auditStatus === 0) {
item.auditStatus = '未审核'
} else if (item.auditStatus === 1) {
item.auditStatus = '审核通过'
} else {
item.auditStatus = '未通过'
}
for (let item of data) {
if (item.auditStatus === 0) {
item.Status = '未审核'
} else if (item.auditStatus === 1) {
item.Status = '审核通过'
} else {
item.Status = '未通过'
}
}
this.tableData = data
}
} catch (e) {
......
<template>
<div>
<div class="content-head">
<dataBreadcrumb :breads="breads"></dataBreadcrumb>
<h3>提交</h3>
<h5>提交购标信息、邮寄信息、发票信息、缴费信息</h5>
</div>
<div class="othercontent">
<el-form ref="ruleForm" :model="ruleForm" :rules="formrules" label-width="200px" class="demo-ruleForm">
<div class="message">
<div>
<div class="describe">确认购标信息</div>
<div class="message-form">
<div>
<el-form-item label="单位名称" prop="companyName">
<el-input v-model="ruleForm.companyName" disabled></el-input>
</el-form-item>
</div>
<div class="flex-between">
<el-form-item label="联系人:" prop="projectCode">
<el-input v-model="ruleForm.projectCode" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="固定电话:" prop="companyTel">
<el-input v-model="ruleForm.companyTel" placeholder="请输入"></el-input>
</el-form-item>
</div>
<div class="flex-between">
<el-form-item label="手机:" prop="companyPhone">
<el-input v-model="ruleForm.companyPhone" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="传真:" prop="companyFacsimile">
<el-input v-model="ruleForm.companyFacsimile" placeholder="请输入"></el-input>
</el-form-item>
</div>
<div>
<el-form-item label="邮箱:" prop="companyEmail">
<el-input v-model="ruleForm.companyEmail" placeholder="请输入"></el-input>
</el-form-item>
</div>
</div>
</div>
<div>
<div class="describe">邮寄信息</div>
<div class="message-form">
<div class="flex-between">
<el-form-item label="收件人名称:">
<el-input v-model="ruleForm.recipientsName" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="收件人单位:">
<el-input v-model="ruleForm.recipientsCompany" placeholder="请输入"></el-input>
</el-form-item>
</div>
<div class="flex-between">
<el-form-item label="联系方式:">
<el-input v-model="ruleForm.recipientsPhone" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="邮政编码:">
<el-input v-model="ruleForm.recipientsMail" placeholder="请输入"></el-input>
</el-form-item>
</div>
<div>
<el-form-item label="邮寄地址:">
<el-input v-model="ruleForm.recipientsAddress " placeholder="请输入"></el-input>
</el-form-item>
</div>
</div>
</div>
<div>
<div class="describe">发票信息</div>
<div class="message-form">
<div class="flex-between">
<el-form-item label="发票类型:" prop="invoiceType">
<el-radio-group v-model="ruleForm.invoiceType">
<el-radio :label="1">增值税普通发票</el-radio>
<el-radio :label="2">增值税专用发票</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="发票抬头:" prop="invoiceHead">
<el-input v-model="ruleForm.invoiceHead" placeholder="请输入"></el-input>
</el-form-item>
</div>
<div class="flex-between">
<el-form-item label="纳税人识别号:" prop="invoiceTaxNumber ">
<el-input v-model="ruleForm.invoiceTaxNumber " placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="地址:" prop="invoiceAddress">
<el-input v-model="ruleForm.invoiceAddress" placeholder="请输入"></el-input>
</el-form-item>
</div>
<div class="flex-between">
<el-form-item label="电话:" prop="invoiceTel">
<el-input v-model="ruleForm.invoiceTel" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="开户行及账号:" prop="invoiceAccount">
<el-input v-model="ruleForm.invoiceAccount" placeholder="请输入"></el-input>
</el-form-item>
</div>
</div>
</div>
<div>
<div class="describe">缴费信息</div>
<div class="message-form">
<el-form-item label="付款方式:" prop="feeWay">
<el-input v-model="ruleForm.feeWay" placeholder="请输入">
</el-input>
</el-form-item>
<el-form-item label="备注:" prop="remark">
<el-input :rows="5" v-model="ruleForm.remark" type="textarea" placeholder="请输入内容">
</el-input>
</el-form-item>
<el-form-item label="上传缴费凭证:" prop="voucherUrl">
<Upload :limit="5" :max="5" tip="完成上传5份文件,每份不超过10M" @input="getfile"></Upload>
</el-form-item>
</div>
</div>
</div>
</el-form>
</div>
<div class="bottomButton">
<el-button>取消</el-button>
<el-button type="primary" @click="submitData">提交</el-button>
</div>
</div>
</template>
<script>
import {
bidBookpayment
} from '@api/supply/bid'
import dataBreadcrumb from '@components/dataBreadcrumb.vue'
import Upload from '@components/Upload/Upload.vue'
export default {
components: {
dataBreadcrumb,
Upload
},
data() {
// 测试图片
let checkimg = (rule, value, callback) => {
if (this.ruleForm.voucherUrl.length === 0) {
callback(new Error('请上传凭证'));
} else {
callback();
}
};
return {
breads: ['招标管理', '招标项目管理', '工作台'],
ruleForm: {
companyName: '',
companyTel: '',
companyPhone: '',
companyFacsimile: '',
recipientsName: "",
recipientsCompany: "",
recipientsPhone: "",
recipientsMail: "",
recipientsAddress: "",
invoiceType: '',
invoiceHead: "",
invoiceTaxNumber: "",
invoiceAddress: "",
invoiceTel: "",
invoiceAccount: '',
feeWay: '',
remark: "",
companyEmail: "",
voucherUrl: []
},
formrules: {
companyName: [{
required: true,
message: '请输入',
trigger: 'blur'
}],
companyPhone: [{
required: true,
message: '请输入',
trigger: 'blur'
}],
invoiceType: [{
required: true,
message: '请输入',
trigger: 'blur'
}],
invoiceTaxNumber: [{
required: true,
message: '请输入',
trigger: 'blur'
}],
invoiceAddress: [{
required: true,
message: '请输入',
trigger: 'blur'
}],
invoiceTel: [{
required: true,
message: '请输入',
trigger: 'blur'
}],
invoiceAccount: [{
required: true,
message: '请输入',
trigger: 'blur'
}],
feeWay: [{
required: true,
message: '请输入',
trigger: 'blur'
}],
voucherUrl: [{
required: true,
validator: checkimg,
trigger: 'blur'
}]
}
}
},
methods: {
getfile(val) {
this.ruleForm.voucherUrl = val
},
async submitData() {
try {
const valid = await this.$refs['ruleForm'].validate()
if (valid) {
let message = this.ruleForm
message.companyId = localStorage.getItem("companyId"),
message.projectId = localstorage.getitem("projectId")
const {
code,
msg
} = await bidBookpayment(message)
if (code === 2000) {
this.$success.success(msg)
}
}
} catch (e) {
console.log(e)
}
}
},
}
</script>
<style scoped>
.message {}
.message>div {
background: #fff;
margin-bottom: 20px;
padding-bottom: 20px;
}
.message-form {
width: 70%;
margin: 0 auto
}
</style>
<!-- 保证金缴纳 -->
<!-- 标书费 缴纳 -->
<template>
<div >
<div class="content">
<dataTable :table-data="tableData" :columns="columns" :page-obj="pageObj" :breads="breads" url="/tender-bidbook/operation">
<el-table-column slot="operate" label="缴费情况" align="center" fixed="right" width="100">
<dataTable :columns="columns" :page-obj="pageObj" :breads="breads" url="/tender-bidbook/operation">
<el-table-column slot="operate" label="操作" align="center" fixed="right" width="100">
<template slot-scope="scope">
<el-button type="text" size="small">{{ scope.row.state }}</el-button>
<div v-if="scope.row.condition=='已缴纳'||scope.row.condition=='待修改'">
<el-button type="text" size="small" @click="handleSee">查看</el-button>
</div>
<div v-if="scope.row.condition=='待审核'">
<el-button type="text" size="small" @click="handleExamine">审核</el-button>
</div>
</template>
</el-table-column>
</dataTable>
......@@ -21,24 +26,22 @@ export default {
data() {
return {
breads: ['招标管理', '招标项目管理 ', '工作台'],
tableData: [],
columns: [{
label: '单位名称',
prop: 'companyName'
},
{
label: '联系人',
prop: 'person'
label: '投标项目',
prop: 'projectName'
},
{
label: '手机',
prop: 'phone'
label: '提交审核时间',
prop: 'updateTime'
},
{
label: '邮件',
prop: 'email'
label: '缴费情况',
prop: 'condition'
},
{
slot: 'operate'
}
......@@ -53,9 +56,12 @@ export default {
this.pageObj.projectId = 2
},
methods: {
examine() {
this.$router.push('/admin/bid/bidingDetail')
}
handleExamine() {
this.$router.push('/purchaser/bid/bidStage/tenderFeelist/detail?type=examine')
},
handleSee() {
this.$router.push('/purchaser/bid/bidStage/tenderFeelist/detail?type=see')
},
}
}
</script>
......
......@@ -31,39 +31,11 @@ export default {
projectId: 2,
breads: ['招投管理', '招标项目管理 ', '工作台'],
navs: ['投标信息查看'],
tableData: [{
company: '腾讯',
person: '马小跳',
phone: '178467457',
email: '64544',
data: '2017-10-01 12:00',
isDownload: '是',
isBid: '否'
}, {
company: '腾讯',
person: '马小跳',
phone: '178467457',
email: '64544',
data: '2017-10-01 12:00',
isDownload: '是',
isBid: '否'
}, {
company: '腾讯',
person: '马小跳',
phone: '178467457',
email: '64544',
data: '2017-10-01 12:00',
isDownload: '是',
isBid: '否'
}],
tableData: [],
columns: [{
label: '单位名称',
prop: 'companyName'
},
{
label: '联系人',
prop: 'person'
},
{
label: '手机',
prop: 'phone'
......@@ -74,7 +46,7 @@ export default {
},
{
label: '报名时间',
prop: 'data',
prop: 'createTime',
sortable: true
},
{
......@@ -89,7 +61,7 @@ export default {
},
{
label: '是否投标',
prop: 'isBid'
prop: 'bidBookId'
},
{
......@@ -112,7 +84,7 @@ export default {
data,
code
} = await reviewInfomation(projectId)
if (code === 0) {
if (code === 200) {
for (let item of data) {
if (item.isPayment) {
item.isPayment = '是'
......@@ -123,6 +95,11 @@ export default {
item.downloadId = '是'
} else {
item.downloadId = '否'
}
if(item.bidBookId){
item.bidBookId="是"
}else {
item.bidBookId = '否'
}
}
this.tableData = data
......
......@@ -36,7 +36,7 @@
</template>
<script>
import dataTable from '@components/dataTable.vue'
import dataTable from '@components/nopageTable.vue'
import dataForm from '@components/dataForm.vue'
export default {
components: {
......@@ -45,21 +45,22 @@ export default {
},
data() {
return {
requirement:[],
projectCommodityList:[],
dialogVisible: false,
searchData: {
code: '',
name: '',
number: '',
meter: '',
encoding: '',
bidName: '',
quantity: '',
unit: '',
brand: '',
model: '',
price: ''
specification: '',
price: '',
remark:""
},
searchForm: [{
type: 'input',
label: '标的编码:',
prop: 'code',
prop: 'encoding',
width: '100%',
placeholder: '请输入',
disabled: false
......@@ -67,7 +68,7 @@ export default {
{
type: 'input',
label: '标的名称:',
prop: 'name',
prop: 'bidName',
width: '100%',
placeholder: '请输入',
disabled: false
......@@ -75,7 +76,7 @@ export default {
{
type: 'input',
label: '数量:',
prop: 'number',
prop: 'quantity',
width: '100%',
placeholder: '请输入',
disabled: false
......@@ -83,7 +84,7 @@ export default {
{
type: 'input',
label: '计量单位:',
prop: 'meter',
prop: 'unit',
width: '100%',
placeholder: '请输入',
disabled: false
......@@ -99,7 +100,7 @@ export default {
{
type: 'input',
label: '规格型号:',
prop: 'model',
prop: 'specification',
width: '100%',
placeholder: '请输入',
disabled: false
......@@ -111,7 +112,15 @@ export default {
width: '100%',
placeholder: '请输入',
disabled: false
}
},
{
type: 'input',
label: '备注:',
prop: 'remark',
width: '100%',
placeholder: '请输入',
disabled: false
}
],
tableData: [],
columns: [{
......@@ -119,27 +128,27 @@ export default {
},
{
label: '标的编码',
prop: 'code'
prop: 'encoding'
},
{
label: '标的名称',
prop: 'name'
prop: 'bidName'
},
{
label: '数量',
prop: 'number'
prop: 'quantity'
},
{
label: '计量单位',
prop: 'meter'
prop: 'unit'
},
{
{
label: '品牌',
prop: 'brand'
},
{
label: '规格型号',
prop: 'model'
prop: 'specification'
},
{
label: '标杆价(元)',
......@@ -187,26 +196,27 @@ export default {
this.type = 0
this.dialogVisible = true
const searchData = {
code: '',
name: '',
number: '',
meter: '',
encoding: '',
bidName : '',
quantity: '',
unit: '',
brand: '',
model: '',
price: ''
specification: '',
price: '',
remark:""
}
this.searchData = searchData
},
// 获取邀请的供应商列表
getSelection(val) {
this.requirement = val;
console.log(this.requirement)
this.projectCommodityList = val;
console.log(this.projectCommodityList)
},
next() {
let requirement=this.requirement;
if(requirement.length>0){
let projectCommodityList=this.projectCommodityList;
if(projectCommodityList.length>0){
let ruleForm={};
ruleForm.requirement=requirement;
ruleForm.projectCommodityList=projectCommodityList;
this.$emit('getruleForm',ruleForm)
this.$parent.next()
}else{
......
......@@ -14,10 +14,10 @@
</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>
<upload :limit="1" accept=".pdf" tip="请上传一个招标文件(pdf),不要超过50M。" :max="50" @input="getfile"></upload>
</el-form-item>
<el-form-item label="其他附件" prop="file1">
<upload :limit="5" tip="最多上传五个附件,单个不超过100M。" max="100" @input="getfile1">
<upload :limit="5" tip="最多上传五个附件,单个不超过100M。" :max="100" @input="getfile1">
</upload>
</el-form-item>
</el-form>
......@@ -33,21 +33,19 @@
</div>
<div class="button">
<el-button @click="upper">上一步</el-button>
<el-button type="primary" @click="next">下一步</el-button>
<el-button type="primary" @click="next">发布</el-button>
</div>
</div>
</div>
</template>
<script>
import {
creatProject
} from '@api/purchaser/bid'
import dataTable from '@components/dataTable.vue'
import upload from '@components/Upload/specialUpload.vue'
export default {
components: {
dataTable,
upload
},
props: {
......@@ -107,12 +105,21 @@ export default {
console.log(valid)
if (valid) {
Object.assign(this.allForm, this.ruleForm)
let allForm=this.allForm;
allForm.companyId=localStorage.getItem("companyId")
const {
data,
msg,
code
} = await creatProject(this.allForm)
if (code === 200) {
console.log(data)
this.$message({
message: msg,
type: 'success',
duration:1500
})
setTimeout(()=>{
this.$router.push("/purchaser/bid/administrationList")
},1500)
}
}
......
......@@ -24,18 +24,17 @@
<!-- 项目信息 -->
<div v-show="activeIdx==0" class="message">
<messaage @getruleForm="getruleForm"></messaage>
</div>
<!-- 标的需求 -->
<div v-show="activeIdx==1" class="demand">
<div v-show="activeIdx==1" class="demand">
<demand @getruleForm="getruleForm"></demand>
</div>
<!-- 招标时间设置 -->
<div v-show="activeIdx==2" class="timeSet">
<div v-show="activeIdx==2" class="timeSet">
<timeSet @getruleForm="getruleForm"></timeSet>
</div>
<!-- 招标文件上传 -->
<div v-show="activeIdx==3" class="fileUpload">
<div v-show="activeIdx==3" class="fileUpload">
<fileUpload :all-form="allForm"></fileUpload>
</div>
......
......@@ -19,8 +19,9 @@
<el-input v-model="ruleForm.title" placeholder="请输入" style="width: 50%;" maxlength="30"></el-input>
</el-form-item>
<el-form-item label="询价所在地" prop="address">
<citySelect @getProvince="getProvince" @getCounty="getCounty" @getCity="getCity"></citySelect>
</el-form-item>
<citySelect @sendprovinceId="getprovinceId" @sendcityId="getcityId" @senddistrictId="getdistrictId"></citySelect>
</el-form-item>
<div class="flex-between" style="width:60%">
<el-form-item label="询价单编号" prop="inquiryCode">
<el-input v-model="ruleForm.inquiryCode" placeholder="请输入" maxlength="30"></el-input>
......@@ -47,7 +48,7 @@
</el-form-item>
<el-form-item label="采购单位" prop="purchaseAgent">
<el-input v-model="ruleForm.purchaseAgent" disabled></el-input>
</el-form-item>
</el-form-item>
</div>
<div class="flex-between" style="width:60%">
<el-form-item label="采购单位联系人" prop="contact">
......@@ -118,14 +119,16 @@
</template>
<script>
import dataTable from '@components/dataTable.vue'
import dataTable from '@components/nopageTable.vue'
import dataBreadcrumb from '@components/dataBreadcrumb.vue'
import citySelect from '@components/citySelect/citySelect.vue'
import singleUpload from '@components/Upload/Upload.vue'
import {
createEnquiry
} from '@api/purchaser/bid'
import {
getTime
} from '@utils/time'
export default {
components: {
dataTable,
......@@ -203,13 +206,12 @@ export default {
priority: '',
stateTime: '',
endTime: '',
purchaseAgent: '',
contact: '',
contactPhone: '',
purchaseAgent: '1',
contact: '1',
contactPhone: '1',
facsimile: '',
budget: '',
supplierScale: '',
qualification: '',
supplierQualification: '',
supplierRegion: '',
commercialRequirements: ''
......@@ -284,8 +286,14 @@ export default {
}
}
},
created() {
let data=getTime();
console.log(data);
this.ruleForm.stateTime=data;
this.ruleForm.endTime=data;
},
methods: {
// 获取上传文件
getfile(val) {
this.ruleForm.requirementUrl = val
......@@ -311,12 +319,21 @@ export default {
const valid = await this.$refs['ruleForm'].validate()
console.log(valid)
if (valid) {
let ruleForm=this.ruleForm;
ruleForm.projectId=localStorage.getItem("projectId")
const {
code,
data
} = await createEnquiry(this.ruleForm)
if (code === 200) {
console.log(data)
this.$message({
message: msg,
type: 'success',
duration:1500
})
setTimeout(()=>{
this.$router.go(-1)
},1500)
}
} else {
......
......@@ -90,7 +90,7 @@ export default {
//提交表单
async submit() {
let ruleForm = this.ruleForm
ruleForm.projectId = '1'
ruleForm.projectId = localStorage.getItem("projectId")
ruleForm.accessoryPOList = this.accessoryPOList
try {
const valid = await this.$refs['ruleForm'].validate()
......@@ -102,9 +102,12 @@ export default {
if (code === 200) {
this.$message({
message: msg,
type: 'success'
type: 'success',
duration:1500
})
this.$router.go(-1)
setTimeout(()=>{
this.$router.go(-1)
},1500)
}
}
} catch (err) {
......
......@@ -38,6 +38,11 @@ export default {
},
{
title: '招标',
// modulars:[{
// label:"项目信息",
// url:"/purchaser/bid/bidStage/clearManagement"
// },
modulars: ['项目信息', '发布询价公告', '发布招标公告', '投标邀请书', '招标文件澄清管理']
},
{
......
......@@ -82,7 +82,7 @@
},
created() {
this.getDropList();
this.sendData.tenderCompanyId = 4
this.sendData.tenderCompanyId = localStorage.getItem("companyId")
},
methods: {
contractSign() {
......
......@@ -135,11 +135,12 @@ export default {
created(){
let token=getSearchString("token");
localStorage.setItem("token",token)
localStorage.setItem("companyId",2)
},
methods: {
handleSee(row) {
this.$router.push(row.url)
}
},
}
}
</script>
......
......@@ -80,7 +80,6 @@ export default {
},
data() {
return {
companyId:1,
detail:{},
breads: ['招标管理', '招标项目管理', '工作台'],
}
......@@ -91,10 +90,11 @@ export default {
methods: {
async getbidderDetail() {
try {
let companyId=localStorage.getItem("companyId")
const {
data,
code
} = await bidderDetail(this.companyId)
} = await bidderDetail(companyId)
if (code === 200) {
this.detail = data
}
......
......@@ -163,7 +163,7 @@
const valid = await this.$refs['ruleForm'].validate()
if (valid) {
let message = this.ruleForm
message.companyId = 1,
message.companyId = localStorage.getItem("companyId"),
message.projectId = localstorage.getitem("projectId")
const {
code,
......
......@@ -67,7 +67,7 @@ export default {
try {
let message={}
message.projectId=localStorage.getItem("projectId")
message.companyId=1
message.companyId=localStorage.getItem("companyId")
const {
data,
code
......
......@@ -227,7 +227,7 @@
const valid = await this.$refs['ruleForm'].validate()
if (valid) {
let message = this.ruleForm
message.companyId = 1,
message.companyId = localStorage.getItem("companyId"),
message.projectId = localstorage.getitem("projectId")
const {
code,
......
......@@ -103,8 +103,8 @@
const valid = await this.$refs['form'].validate()
if (valid) {
let form = this.form;
form.companyId = 1,
form.projectId = 1,
form.companyId = localStorage.getItem("companyId"),
form.projectId = localStorage.getItem("projectId"),
form.is_payment_days = this.is_payment_days
const {
code,
......@@ -122,7 +122,7 @@
},
async getuserList() {
try {
let companyId = 1
let companyId = localStorage.getItem("companyId")
const {
data,
code
......
......@@ -350,13 +350,23 @@ export default new Router({
{
path: '/purchaser/bid/bidStage/bondList',
show: true,
component: () => import('../pages/purchaser/bid/bidStage/bondList.vue')
component: () => import('../pages/purchaser/bid/bidStage/bondList/bondList.vue')
},
{
path: '/purchaser/bid/bidStage/bondList/detail',
show: true,
component: () => import('../pages/purchaser/bid/bidStage/bondList/detail.vue')
},
{
path: '/purchaser/bid/bidStage/tenderFeelist',
show: true,
component: () => import('../pages/purchaser/bid/bidStage/tenderFeelist.vue')
component: () => import('../pages/purchaser/bid/bidStage/tenderFeelist/tenderFeelist.vue')
},
{
path: '/purchaser/bid/bidStage/tenderFeelist/detail',
show: true,
component: () => import('../pages/purchaser/bid/bidStage/tenderFeelist/detail.vue')
},
{
path: '/purchaser/bid/bidStage/tenderInformationlist',
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