Commit 3f66bf67 by 严立

LL - 发票邮寄信息修改

parent 7b7f1087
let output = {
// 测试环境
base: 'http://bid-server.meiqicloud.com/', // 开发路径
// base: '/Api/', // 部署路径
// base: 'http://bid-server.meiqicloud.com/', // 开发路径
base: '/Api/', // 部署路径
resources: 'http://bid-web.meiqicloud.com',
agentSignIn: 'http://bid-vue.meiqicloud.com/'
......
<template>
<!-- 下载模板 - 附件下载 -->
<div v-if="componentFile.length > 0" class="components-file">
<div class="row align-c">
<span>文件预览</span>
</div>
<div class="col">
<div class="list row align-c" v-for="(item, index) in componentFile" :key="index" @click="onDownload(item)">
<img src="../assets/notice-file.png" alt="">
<div class="row align-c">{{item.name}}</div>
<div class="row align-c">预览</div>
</div>
</div>
</div>
</template>
<script>
import iHost from '@/common/js/host.js'
export default {
data () {
return {
file: ''
}
},
computed: {
componentFile: function () {
return this.$store.state.componentFile
},
},
watch: {
componentFile: {
handler: function (funcNewValue, funcOldValue) {
},
deep: true,
immediate: true,
}
},
methods: {
onDownload: function (funcItem) {
// 下载文档
// window.open(iHost.base + funcItem.url)
// 预览组件
let routeData = this.$router.resolve({ path:'/file?file=' + encodeURIComponent(funcItem.url) })
window.open(routeData.href, '_blank')
}
}
}
</script>
<style lang="less">
.components-file {
width: 100%;
padding-bottom: 20px;
background: #F2F2F2;
> div:nth-child(1) {
height: 60px;
padding: 0 24px;
border-bottom: 1px #E5E5E5 solid;
font-size: @fontSize04;
}
> div:nth-child(2) {
padding: 0 24px;
.list {
width: 100%;
margin-top: 20px;
font-size: @fontSize01;
cursor: pointer;
div:nth-child(2) {
flex-grow: 1;
padding-left: 4px;
text-decoration: underline;
cursor: pointer;
}
div:nth-child(3) {
cursor: pointer;
}
}
}
}
</style>
<template>
<!-- 下载模板 - 附件下载 -->
<div v-if="componentFile.length > 0" class="components-file">
<div class="row align-c">
<span>文件预览</span>
</div>
<div class="col">
<div class="list row align-c" v-for="(item, index) in componentFile" :key="index" @click="onDownload(item)">
<img src="../assets/notice-file.png" alt="">
<div class="row align-c">{{item.name}}</div>
<div class="row align-c">预览</div>
</div>
</div>
</div>
</template>
<script>
import iHost from '@/common/js/host.js'
export default {
data () {
return {
file: ''
}
},
computed: {
componentFile: function () {
return this.$store.state.componentFile
},
},
watch: {
componentFile: {
handler: function (funcNewValue, funcOldValue) {
},
deep: true,
immediate: true,
}
},
methods: {
onDownload: function (funcItem) {
console.log('onDownload')
// 未登录的全部跳转登录界面
if (!this.$store.getters.isSignIn) {
this.$message.error('请先登录后查看')
this.$store.commit('redirectPath', this.$route.fullPath)
this.$router.push('/signIn')
return
}
console.log('this.$store.getters.info', this.$store.getters.info)
if (this.$store.getters.info.register !== 1) {
this.$message.error('注册信息审核通过才可以进行预览')
return
}
// 下载文档
// window.open(iHost.base + funcItem.url)
// 预览组件
let routeData = this.$router.resolve({ path:'/file?file=' + encodeURIComponent(funcItem.url) })
window.open(routeData.href, '_blank')
}
}
}
</script>
<style lang="less">
.components-file {
width: 100%;
padding-bottom: 20px;
background: #F2F2F2;
> div:nth-child(1) {
height: 60px;
padding: 0 24px;
border-bottom: 1px #E5E5E5 solid;
font-size: @fontSize04;
}
> div:nth-child(2) {
padding: 0 24px;
.list {
width: 100%;
margin-top: 20px;
font-size: @fontSize01;
cursor: pointer;
div:nth-child(2) {
flex-grow: 1;
padding-left: 4px;
text-decoration: underline;
cursor: pointer;
}
div:nth-child(3) {
cursor: pointer;
}
}
}
}
</style>
......@@ -74,13 +74,13 @@
<div class="col con-c align-c">
<img v-if="componentProject.noticeType === 0" class="operate-img" src="../assets/notice-bitton.png" alt="">
<div v-if="operateText !== ''" class="operate-button">
<button v-if="[2].indexOf(componentProgress.state) >= 0" class="global-enable" @click="onOffer()">立即报价</button>
<button v-if="[0, 2].indexOf(componentProgress.state) >= 0" class="global-enable" @click="onOffer()">立即报价</button>
<button v-if="[3, 4].indexOf(componentProgress.state) >= 0" class="global-disable" disabled>报价已结束</button>
<button v-if="[5].indexOf(componentProgress.state) >= 0" class="global-disable" disabled>报价已暂停</button>
<button v-if="[6].indexOf(componentProgress.state) >= 0" class="global-disable" disabled>报价已终止</button>
</div>
<div class="operate-tip">
<span v-if="progressState === 1">距离报价开始仅剩 <span class="global-color-red">{{operateDay}}</span><span class="global-color-red">{{operateHour}}</span> 小时</span>
<span v-if="progressState === 1 && !([5, 6].indexOf(componentProgress.state) >= 0)">距离报价开始仅剩 <span class="global-color-red">{{operateDay}}</span><span class="global-color-red">{{operateHour}}</span> 小时</span>
<span v-if="[2].indexOf(componentProgress.state) >= 0 && !operateIsBuy">报价仅剩 <span class="global-color-red">{{operateDay}}</span><span class="global-color-red">{{operateHour}}</span> 小时</span>
</div>
</div>
......
......@@ -345,10 +345,10 @@
<span>联系电话:</span>
<span>{{componentProject.buyPhone}}</span>
</div>
<div class="item-text row align-c">
<!-- <div class="item-text row align-c">
<span>竞价时间:</span>
<span>{{componentProject.timeBegin + ' - ' + componentProject.timeEnd}}</span>
</div>
</div> -->
</div>
</div>
</template>
......
......@@ -17,9 +17,11 @@
<!-- 今日开标 -->
<div class="new-bid row con-c">
<div class="global-maxwidth row con-b">
<!--
下次更新内容,暂时隐藏。
<div class="calendar">
<span class="calendar-title">开标日历</span>
<calendar :markDate="['2020/10/13','2020/10/14']"></calendar>
<calendar :markDate="calendarMarkDate"></calendar>
</div>
<div>
<div class="row align-e">
......@@ -37,6 +39,24 @@
<span>今日暂无开标项目</span>
</div>
</div>
-->
<div>
<div class="row align-e">
<span class="title">今日开标</span>
<span class="title-extra global-color-red">{{timeDate + '开标项目'}}</span>
</div>
<div v-if="listBid.length" class="list col">
<div class="global-hover row con-b align-e" v-for="(item, index) in listBid" :key="index" @click="onDetail(item)">
<span class="global-cursor global-overflow-ellipsis ">{{item.noticeTitle}}</span>
<span>{{item.timeRelease}}</span>
</div>
</div>
<div v-if="!listBid.length" class="nothing col con-c align-c">
<img src="../assets/nothing.png" alt="">
<span>今日暂无开标项目</span>
</div>
</div>
<!-- 未登录状态展示 -->
<div v-if="!isSignIn" class="home-signin col">
<div class="home-signin-entry row">
......@@ -264,6 +284,8 @@
dealIndex: 0, // 最新交易缓存数组索引
dealActive: 0, // 最新交易选中
dealMax: 0, // 最新交易数据条目
calendarMarkDate: [],
}
},
computed: {
......@@ -297,7 +319,9 @@
this.queryNotice(2, 0)
this.onQueryAuction(0)
this.queryData()
this.queryBidMark()
},
methods: {
queryNotify: function () {
if (this.info.identity) {
......@@ -355,6 +379,42 @@
console.log(funcError)
})
},
queryBidMark: function () {
let funcResponse = [{
date: '2020-10-13',
quantity: 8,
}, {
date: '2020-10-15',
quantity: 9,
}, {
date: '2020-10-18',
quantity: 12,
}, {
date: '2020-10-21',
quantity: 14,
}]
let funcMarkDate = []
let funcMarkQuantity = []
let funcMarkQuantityCss = ''
for (let i = 0, l = funcResponse.length; i < l; i++) {
funcMarkDate.push(iMiment(funcResponse[i].date).format('YYYY/MM/DD'))
funcMarkQuantity.push(funcResponse[i].quantity)
}
this.calendarMarkDate = funcMarkDate
this.$nextTick(function () {
let funcMark = document.getElementsByClassName('wh_isMark')
console.log(funcMark)
for (let i = 0, l = funcMark.length; i < l; i++) {
funcMark[i].setAttribute( 'data-content' , funcMarkQuantity[i] )
}
})
},
setHome: function () {
this.setBid()
this.setNew()
......@@ -499,9 +559,7 @@
*/
onMoreNotice: function () {
let funcNoticeIndex = this.noticeTab[this.noticeTabActive].value
console.log(funcNoticeIndex)
let funcNoticeUrl = this.$router.resolve({ path: '/bid', query: { type: funcNoticeIndex } })
window.open(funcNoticeUrl .href, '_blank')
let funcNoticeUrl = this.$router.push({ path: '/bid', query: { type: funcNoticeIndex } })
},
/**
* 公告点击跳转详情
......@@ -715,12 +773,16 @@
.wh_isMark::after {
position: absolute;
bottom: 4px;
content: '';
width: 10px;
height: 10px;
border-radius: 50%;
right: 0;
bottom: 0;
content: attr(data-content);
width: 20px;
height: 16px;
background: #D02F1E;
font-size: 12px;
line-height: 20px;
}
.wh_isToday {
......@@ -756,7 +818,8 @@
padding-bottom: 4px;
}
.list {
width: 750px;
width: 940px;
// width: 750px;
span:nth-child(1) {
max-width: 830px;
margin-top: 32px;
......@@ -768,7 +831,8 @@
}
}
.nothing {
width: 750px;
width: 940px;
// width: 750px;
height: 200px;
img {
height: 100px;
......@@ -776,9 +840,9 @@
}
}
.home-signin {
position: absolute;
top: 60px;
right: 0;
// position: absolute;
// top: 60px;
// right: 0;
width: 206px;
height: 300px;
padding: 24px 0;
......
......@@ -200,6 +200,10 @@
</el-dialog>
<el-dialog title="报价记录" :visible.sync="winQuoteRecord" :lock-scroll="false" width="1000px" :close-on-click-modal="false">
<div v-if="quoteRecord.length === 0">
<span>暂无报价</span>
</div>
<!-- 附属合同样式 -->
<div v-if="quoteRecordHaveChild" class="col">
<div v-for="(item, index) in quoteRecord" :key="index" class="col">
......
......@@ -3,8 +3,8 @@
<div class="main global-maxwidth">
<!-- 全局搜索 -->
<div class="query-key row">
<el-input v-model="limitKeyword" placeholder="请输入您要搜索的内容" @keyup.enter.native="queryList()"></el-input>
<el-button @click="queryList()">
<el-input v-model="limitKeyword" placeholder="请输入您要搜索的内容" @keyup.enter.native="onSearchContent()"></el-input>
<el-button @click="onSearchContent()">
<span>搜  索</span>
</el-button>
</div>
......@@ -51,7 +51,7 @@
<!-- 列表分页 -->
<div class="pagination row con-c">
<el-pagination :total="pagination.total" layout="total, sizes, prev, pager, next, jumper" @size-change="(size) => {onPagination(size, 'size', pagination)}" @current-change="(size) => {onPagination(size, 'current', pagination)}"></el-pagination>
<el-pagination :total="pagination.total" :current-page="pagination.current" layout="total, sizes, prev, pager, next, jumper" @size-change="(size) => {onPagination(size, 'size', pagination)}" @current-change="(size) => {onPagination(size, 'current', pagination)}"></el-pagination>
<button>确定</button>
</div>
</div>
......@@ -250,6 +250,12 @@
}
},
onSearchContent: function () {
this.pagination.size = 10
this.pagination.current = 1
this.queryList()
},
/**
* 条件选择 - 标签选择
* @function
......@@ -262,12 +268,15 @@
switch (funcRankIndex) {
case 0:
this.limitInformation = funcItem.value
this.pagination.size = 10
this.pagination.current = 1
if (funcItem.value === '') {
this.$router.push('/bid')
} else {
this.$router.push('/bid?type=' + funcItem.value)
}
this.queryList()
break
case 1:
......@@ -296,6 +305,8 @@
* @returns
*/
onLimitOrder: function (funcType) {
this.pagination.size = 10
this.pagination.current = 1
switch (funcType) {
case 'old':
this.limitTimeOrder = 0
......
......@@ -1286,36 +1286,61 @@ let output = function (thisVue, id, type, isPreview) {
}
}
console.log('funcProject')
console.log(funcProject)
thisVue.$store.commit('componentProject', funcProject)
let funcRawData
if (funcProject.isPackage) {
funcRawData = funcResponse.packages
funcRawData.sort(function(a, b) {
let funcMainWeight = 1000
a.index = a.no
b.index = b.no
// 计算 a 的索引权重
let funcIndex = a.index.toString().split('-')
let funcA = Number(funcIndex[0]) * funcMainWeight
if (funcIndex[1]) {
a.isChild = true
funcA = funcA + Number(funcIndex[1])
} else {
a.isChild = false
}
// 计算 b 的索引权重
funcIndex = b.index.toString().split('-')
let funcB = Number(funcIndex[0]) * funcMainWeight
if (funcIndex[1]) {
b.isChild = true
funcB = funcB + Number(funcIndex[1])
} else {
b.isChild = false
}
return funcA - funcB
})
for (let i = 0, len = funcRawData.length; i < len; i++) {
let funcItem = {
'index': i + 1, // 序号
'index': funcRawData[i].index.toString(), // 序号
'id': funcRawData[i].biddingPackageId, // 标识
'object': funcRawData[i].name, // 标的
'object': funcRawData[i].name ? funcRawData[i].name : '', // 标的
'budget': funcRawData[i].fixedPrice, // 预算金额
'quantity': funcRawData[i].num, // 标的数量
'requirement': funcRawData[i].requirement, // 竞价参数要求
'isChild': funcRawData[i].isChild,
}
if (funcRawData[i].company) {
funcItem.resultName = funcRawData[i].company
} else {
funcItem.resultName = '流标'
}
if (funcRawData[i].price && funcRawData[i].price !== 0) {
funcItem.resultPrice = funcRawData[i].price
if (!funcItem.isChild) {
if (funcRawData[i + 1] && funcRawData[i + 1].isChild) {
funcItem.haveChild = true
} else {
funcItem.haveChild = false
}
} else {
funcItem.resultPrice = 0
funcItem.haveChild = false
}
funcPackage.push(funcItem)
}
thisVue.$store.commit('componentContract', funcPackage)
}
......
......@@ -119,16 +119,28 @@
</div>
<!-- 竞价变更信息 -->
<div v-if="[10].indexOf(noticeType) >= 0 && (componentProject.isChangeTime || componentProject.isChangePackage)" class="info-item">
<div v-if="[10].indexOf(noticeType) >= 0" class="info-item">
<div class="title title-decorate row align-c">
<span>变更信息</span>
</div>
<div v-if="componentProject.isPause" class="change col">
<span>{{'是否暂停竞价:是'}}</span>
</div>
<div v-if="componentProject.isRecover" class="change col">
<span>{{'是否恢复竞价:是'}}</span>
</div>
<div v-if="componentProject.isTermination" class="change col">
<span>{{'是否终止竞价:是'}}</span>
</div>
<div v-if="componentProject.isChangeTime" class="change col">
<span>{{'更改竞价时间:' + componentProject.timeBegin + ' - ' + componentProject.timeEnd}}</span>
</div>
<div v-if="componentProject.isPackage" class="change col">
<div v-if="componentProject.isChangePackage" class="change col">
<div v-if="componentContract.length > 0" class="row align-s">
<span>更改竞价标的:</span>
<el-table :data="componentContract" stripe :header-cell-style="tableHeaderStyle">
......@@ -661,6 +673,13 @@
return
}
// 供应身份但注册时未选择参与竞价不能报价
if (!this.$store.getters.info.isJoinBid) {
this.tipText = '您的注册信息尚未参与网上竞价,暂不能报价;如需报价,请您在企业信息中上传竞价承诺书,信息审核通过后,我们将为您开通报价功能。'
this.winTip = true
return
}
// 供应身份而且通过审核
if (this.$store.getters.info.identity === 2 && this.$store.getters.info.register === 1) {
this.winQuote = true
......@@ -1027,7 +1046,8 @@
}
span:nth-child(3) {
min-width: 160px;
display: inline-block;
min-width: 100px;
margin-right: 20px;
}
......
......@@ -140,11 +140,9 @@
</el-radio-group>
</el-form-item>
<el-form-item label="发票类型(可多选):" prop="companyInvoice">
<el-checkbox-group v-model="formRegister.companyInvoice">
<el-checkbox label="增值税专票"></el-checkbox>
<el-checkbox label="增值税普票"></el-checkbox>
<el-checkbox label="其他类型"></el-checkbox>
</el-checkbox-group>
<el-radio-group v-model="formRegister.companyInvoice" :value="formRegister.companyInvoice">
<el-radio label="0">增值税专票</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="公司名称:" prop="companyName">
<span>{{formRegister.companyName}}</span>
......@@ -164,6 +162,29 @@
<el-form-item label="银行账户:" prop="bankAccount">
<el-input v-model="formRegister.bankAccount" maxlength="30" placeholder="请输入银行账户"></el-input>
</el-form-item>
<el-form-item label="发票领取方式:">
<el-radio-group v-model="formRegister.receiveType">
<el-radio label="0">寄送</el-radio>
<el-radio label="1">自取</el-radio>
</el-radio-group>
</el-form-item>
<template v-if="formRegister.receiveType === '0'">
<el-form-item label="收件人:" prop="receiveContactor">
<el-input v-model="formRegister.receiveContactor" maxlength="30" placeholder="请输入姓名"></el-input>
</el-form-item>
<el-form-item label="收件人电话:" prop="receiveMobile">
<el-input v-model="formRegister.receiveMobile" maxlength="20" placeholder="请输入电话"></el-input>
</el-form-item>
<el-form-item label="收件地址:" prop="receiveArea">
<currencyArea @change="onAreaChange"></currencyArea>
</el-form-item>
<el-form-item label="" prop="receiveAddress">
<el-input v-model="formRegister.receiveAddress" maxlength="100" placeholder="请输入详细地址"></el-input>
</el-form-item>
</template>
<el-form-item class="register-info-button row con-c">
<el-button type="primary" @click.prevent="onPrevious()">上一步</el-button>
<el-button type="primary" @click.prevent="onNext()">下一步</el-button>
......@@ -234,10 +255,12 @@
import iRule from '@/common/js/rule/rule.js'
import iRequest from '@/common/js/request/request.js'
import iCurrencyMap from '@/components/currency-map.vue'
import iCurrencyArea from '@/components/currency-area.vue'
export default {
components: {
currencyMap: iCurrencyMap,
currencyArea: iCurrencyArea,
},
data: function () {
......@@ -260,10 +283,15 @@
// 税务信息
companyTax: '',
companyInvoice: [],
companyInvoice: '0',
companyPhone: '',
bankName: '',
bankAccount: '',
receiveType: '',
receiveContactor: '',
receiveMobile: '',
receiveArea: [],
receiveAddress: '',
// 短信验证
corporationName: '',
......@@ -361,7 +389,7 @@
{ required: true, message: '请选择税务资质', trigger: 'blur' }
],
companyInvoice: [
{ type: 'array', required: true, message: '请选择发票类型', trigger: 'change' }
{ required: true, message: '请选择发票类型', trigger: 'blur' }
],
companyPhone: [
{ required: true, message: '请输入公司电话', trigger: 'blur' },
......@@ -403,6 +431,22 @@
{ required: true, message: '请再次输入登录密码', trigger: 'blur' },
{ validator: (funcRule, funcValue, funcCallback) => iRule.passwordRepeat(funcRule, funcValue, funcCallback, this.formRegister.password), message: '与登录密码不一致,请重新输入', trigger: 'blur'}
],
receiveContactor: [
{ required: true, message: '请输入收件人姓名', trigger: 'blur' },
{ validator: iRule.predefineRoutineText, message: '请正确输入姓名', trigger: 'blur'}
],
receiveMobile: [
{ required: true, message: '请输入收件人电话', trigger: 'blur' },
{ validator: iRule.fixedPhone, message: '请正确输入收件人电话', trigger: 'blur'}
],
receiveArea: [
{ required: true, message: '请输入详细地址', trigger: 'blur' },
{ validator: iRule.predefineRoutineText, trigger: 'blur'}
],
receiveAddress: [
{ required: true, message: '请输入详细地址', trigger: 'blur' },
{ validator: iRule.predefineRoutineText, trigger: 'blur'}
],
},
}
},
......@@ -437,10 +481,15 @@
// 税务信息
companyTax: '',
companyInvoice: [],
companyInvoice: '0',
companyPhone: '',
bankName: '',
bankAccount: '',
receiveType: '',
receiveContactor: '',
receiveMobile: '',
receiveArea: [],
receiveAddress: '',
// 短信验证
corporationName: '',
......@@ -703,9 +752,15 @@
'taxType': this.formRegister.companyTax,
'phone': this.formRegister.companyPhone,
'invoiceType': this.formRegister.companyInvoice,
'invoiceType': '0',
'openBank': this.formRegister.bankName,
'bankAccount': this.formRegister.bankAccount,
'receiveType': this.formRegister.receiveType,
'receiveContactor': this.formRegister.receiveContactor,
'receiveMobile': this.formRegister.receiveMobile,
'receiveArea': this.formRegister.receiveArea,
'receiveAddress': this.formRegister.receiveAddress,
'contactName': this.formRegister.corporationName,
'idcard': this.formRegister.corporationIdcard,
......@@ -714,17 +769,7 @@
'password': this.formRegister.password,
}
for (let i = 0, len = funcParam.invoiceType.length; i < len; i++) {
if (funcParam.invoiceType[i] === '增值税专票') funcParam.invoiceType[i] = 0
if (funcParam.invoiceType[i] === '增值税普票') funcParam.invoiceType[i] = 1
if (funcParam.invoiceType[i] === '其他类型') funcParam.invoiceType[i] = 2
}
funcParam.invoiceType = funcParam.invoiceType.join()
console.log(JSON.stringify(funcParam))
// return
iRequest.request(iHost.base + 'bid/zUserCompany/registerCompany', funcParam, 'json', 'post')
.then((funcResponse) => {
this.state = 11
......@@ -881,6 +926,19 @@
/**
* 地域选择组件
* @function
* @param {array } funcArea - ['省份', '城市', '区域' ]
* @returns
*/
onAreaChange: function (funcArea) {
this.formRegister.receiveArea = funcArea
this.$store.commit('areaSelection', funcArea)
},
/**
* 上传组件 - 文件格式
* @function
* @param {string} funcType
......
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 sign in to comment