Commit 39df3cd9 by 严立

Signed-off-by: yanl <yanl@xmmakeit.com>

parent 34a095e1
......@@ -1586,9 +1586,8 @@
},
"async-validator": {
"version": "1.8.5",
"resolved": "https://registry.npmjs.org/async-validator/-/async-validator-1.8.5.tgz",
"integrity": "sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA==",
"dev": true,
"resolved": "https://registry.npm.taobao.org/async-validator/download/async-validator-1.8.5.tgz?cache=0&sync_timestamp=1596623559786&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-validator%2Fdownload%2Fasync-validator-1.8.5.tgz",
"integrity": "sha1-3D4I7B/Q3dtn5ghC8CwM0c7G1/A=",
"requires": {
"babel-runtime": "6.x"
}
......@@ -1889,8 +1888,7 @@
"babel-helper-vue-jsx-merge-props": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz",
"integrity": "sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg==",
"dev": true
"integrity": "sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg=="
},
"babel-helpers": {
"version": "6.24.1",
......@@ -4695,9 +4693,8 @@
},
"deepmerge": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz",
"integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==",
"dev": true
"resolved": "https://registry.npm.taobao.org/deepmerge/download/deepmerge-1.5.2.tgz",
"integrity": "sha1-EEmdhohEza1P7ghC34x/bwyVp1M="
},
"default-compare": {
"version": "1.0.0",
......@@ -4988,6 +4985,11 @@
"is-obj": "^1.0.0"
}
},
"downloadjs": {
"version": "1.4.7",
"resolved": "https://registry.npm.taobao.org/downloadjs/download/downloadjs-1.4.7.tgz",
"integrity": "sha1-9p+W+UDg0FU9rCkROYZaPNAQHjw="
},
"duplexer": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
......@@ -5046,9 +5048,8 @@
},
"element-ui": {
"version": "2.13.2",
"resolved": "https://registry.npmjs.org/element-ui/-/element-ui-2.13.2.tgz",
"integrity": "sha512-r761DRPssMPKDiJZWFlG+4e4vr0cRG/atKr3Eqr8Xi0tQMNbtmYU1QXvFnKiFPFFGkgJ6zS6ASkG+sellcoHlQ==",
"dev": true,
"resolved": "https://registry.npm.taobao.org/element-ui/download/element-ui-2.13.2.tgz",
"integrity": "sha1-WCv0eqqqr+I+oZWPriF6aHrQZEc=",
"requires": {
"async-validator": "~1.8.1",
"babel-helper-vue-jsx-merge-props": "^2.0.0",
......@@ -9082,9 +9083,8 @@
},
"normalize-wheel": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/normalize-wheel/-/normalize-wheel-1.0.1.tgz",
"integrity": "sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU=",
"dev": true
"resolved": "https://registry.npm.taobao.org/normalize-wheel/download/normalize-wheel-1.0.1.tgz",
"integrity": "sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU="
},
"now-and-later": {
"version": "2.0.1",
......@@ -12684,9 +12684,8 @@
},
"resize-observer-polyfill": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
"integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==",
"dev": true
"resolved": "https://registry.npm.taobao.org/resize-observer-polyfill/download/resize-observer-polyfill-1.5.1.tgz",
"integrity": "sha1-DpAg3T0hAkRY1OvSfiPkAmmBBGQ="
},
"resolve": {
"version": "1.12.0",
......@@ -13759,9 +13758,8 @@
},
"throttle-debounce": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-1.1.0.tgz",
"integrity": "sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg==",
"dev": true
"resolved": "https://registry.npm.taobao.org/throttle-debounce/download/throttle-debounce-1.1.0.tgz?cache=0&sync_timestamp=1591627122189&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fthrottle-debounce%2Fdownload%2Fthrottle-debounce-1.1.0.tgz",
"integrity": "sha1-UYU9o3vmihVctugns1FKPEIuic0="
},
"through": {
"version": "2.3.8",
......
......@@ -12,6 +12,8 @@
"dependencies": {
"babel-preset-es2015": "^6.24.1",
"crypto-js": "^4.0.0",
"downloadjs": "^1.4.7",
"element-ui": "^2.13.2",
"miment": "0.0.9",
"vue": "^2.6.11",
"vue-router": "^3.3.4"
......@@ -30,7 +32,6 @@
"chalk": "^2.0.1",
"copy-webpack-plugin": "^4.0.1",
"css-loader": "^0.28.0",
"element-ui": "^2.13.2",
"extract-text-webpack-plugin": "^3.0.0",
"file-loader": "^1.1.4",
"font-spider": "^1.3.5",
......
......@@ -11,7 +11,7 @@
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<span class="global-cursor" @click="$router.push('/question')">在线咨询</span>
<span class="global-cursor about-consulting" @click="$router.push('/question')">在线咨询</span>
</div>
<div class="row">
<div class="search row">
......@@ -288,6 +288,10 @@
.about {
background: #F8F8F8;
.about-consulting {
margin-top: 1px;
}
span {
margin-right: 40px;
font-size: @fontSize00;
......
......@@ -31,7 +31,9 @@
<el-form-item class="register-info-certificate" label="上传营业执照:" prop="licenseImage">
<!-- 此处 input 是为了模拟校验而设置的隐藏组件 -->
<el-input class="global-none" v-model="formRegister.licenseImage"></el-input>
<el-upload :class="uploadOption.license.image.length > 0 ? 'upload-none' : ''"
<el-upload
class="upload-image"
:class="uploadOption.license.image.length > 0 ? 'upload-none' : ''"
ref="uploadLicense"
list-type="picture-card"
:auto-upload="false"
......@@ -49,14 +51,14 @@
<i class="el-icon-plus"></i>
<span>点击上传营业执照</span>
</div>
<div slot="tip" class="el-upload__tip">
<span>复印件需盖有公司印章,大小不超过5MB</span>
</div>
</el-upload>
<div>
<img src="../../assets/register-certificate.png" alt="">
</div>
</el-form-item>
<el-form-item label="">
<span>复印件需盖有公司印章,大小不超过5MB</span>
</el-form-item>
<el-form-item label="是否参与网上竞价:" prop="isQuote">
<div>
<el-radio-group v-model="formRegister.isQuote">
......@@ -68,32 +70,29 @@
<el-form-item v-if="formRegister.isQuote === '1'" label="上传竞价承诺书:" prop="quoteImage">
<!-- 此处 input 是为了模拟校验而设置的隐藏组件 -->
<el-input class="global-none" v-model="formRegister.quoteImage"></el-input>
<el-upload :class="uploadOption.quote.image.length > 0 ? 'upload-none' : ''"
<el-upload
class="upload-file"
ref="uploadQuote"
list-type="picture-card"
:auto-upload="false"
:limit="1"
:file-list="uploadOption.quote.image"
:action="uploadOption.quote.url"
:data="uploadOption.quote.params"
:on-preview="onUploadPreviewFile"
:on-preview="onUploadDownloadFile"
:on-remove="(file, fileList) => { onUploadRemove('quote', file, fileList) }"
:on-change="(file, fileList) => { onUploadChange('quote', file, fileList) }"
:on-success="(respons, file, fileList) => { onUploadSuccess('quote', respons, file, fileList) }"
:on-error="(error) => { onUploadFail('quote', error) }"
>
<div class="col">
<i class="el-icon-plus"></i>
<span>点击上传网上竞价承诺书</span>
</div>
</el-upload>
</el-form-item>
<el-form-item v-if="formRegister.isQuote === '1'" label="">
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">
<span>(请查看</span>
<span class="global-color-red">网上竞价须知</span>
<span>,并下载</span>
<span class="global-cursor global-color-red" @click="onLoadStatement">网上竞价承诺书</span>
<span>,签名盖章后扫描上传,大小不超过5MB)</span>
<span>,签名盖章后扫描上传,文件大小不超过5MB)</span>
</div>
</el-upload>
</el-form-item>
</el-form>
</div>
......@@ -406,6 +405,7 @@
'companyAddress': '',
'email': '',
'licenseImage': '',
'quoteImage': '',
'companyTax': '',
'companyInvoice': [],
......@@ -459,16 +459,30 @@
})
},
/**
* 下载申明
* @function
* @returns
*/
onLoadStatement: function () {
window.location.href = '../../static/quote.zip'
},
onSubmit: function () {
switch (this.uploadOption.license.image[0].status) {
case 'ready':
this.$refs.formBase.validate(funcValid => {
if (funcValid) {
if (this.uploadOption.license.image[0].status === 'ready') {
this.$refs.uploadLicense.submit()
break
return
}
case 'success':
if (this.uploadOption.quote.image[0].status === 'ready') {
this.$refs.uploadQuote.submit()
return
}
this.registerInfo()
break
}
})
},
/**
......@@ -542,6 +556,7 @@
* @returns
*/
onUploadRemove: function (funcType, funcFile, funcFileList) {
console.log('onUploadRemove', funcFile)
// 判断当前文件列表是否存在删除图片
// 找到列表中的文件进行删除
let funcImageList = this.uploadOption[funcType].image
......@@ -571,6 +586,46 @@
},
/**
* 上传组件 - 文件下载
* @function
* @param {object} funcFile
* @returns
*/
onUploadDownloadFile: function (funcFile) {
switch (funcFile.status) {
case 'ready':
// 重新上传的文件下载
let funcReader = new FileReader()
funcReader.readAsArrayBuffer(funcFile.raw)
funcReader.onload = function(funcEvent){
let funcBlob = new Blob([funcEvent.target.result], { type : funcFile.raw.type })
if (window.navigator.msSaveBlob) {
window.navigator.msSaveBlob(funcBlob, funcFile.raw.name)
} else {
let funcDownloadLink = document.createElement('a')
funcDownloadLink.download = funcFile.raw.name
funcDownloadLink.href = URL.createObjectURL(funcBlob)
document.body.appendChild(funcDownloadLink)
funcDownloadLink.click()
document.body.removeChild(funcDownloadLink)
}
}
break
case 'success':
// 已经上传过的文件下载
window.open(funcFile.url, funcFile.name)
return
const funcDownloadLink = document.createElement('a')
funcDownloadLink.setAttribute('href', funcFile.url)
funcDownloadLink.setAttribute('download' , 'download')
funcDownloadLink.click()
break
}
},
/**
* 上传组件 - 上传成功
* @function
* @param {string} funcType
......@@ -661,6 +716,8 @@
.el-form {
width: 100%;
.upload-image {
.el-upload-list {
display: flex;
flex-wrap: wrap;
......@@ -692,6 +749,13 @@
}
}
.upload-file {
a {
cursor: pointer;
}
}
}
.register-info-certificate {
> div {
display: flex;
......
......@@ -51,18 +51,16 @@
<span>机构邮箱:</span>
<span>{{formInfo.email}}</span>
</div>
<div class="item-text row align-c" v-if="formInfo.quoteImage">
<span>竞价承诺书:</span>
<el-button size="small" type="primary" @click.prevent="onUploadDownloadFile">点击下载</el-button>
</div>
<div class="item-text row">
<span>营业执照:</span>
<div class="item-img">
<img :src="formInfo.licenseImage" alt="">
</div>
</div>
<div v-if="formInfo.isQuote === '1'" class="item-text row">
<span>竞价承诺书:</span>
<div class="item-img">
<img :src="formInfo.quoteImage" alt="">
</div>
</div>
</div>
<div class="detail-title row align-c">
......@@ -183,6 +181,7 @@
'companyAddress': funcResponse.address,
'email': funcResponse.email,
'licenseImage': funcResponse.license,
'quoteFile': funcResponse.bidStatement ? funcResponse.bidStatement.substring(funcResponse.bidStatement.lastIndexOf('/') + 1, funcResponse.bidStatement.length) : '',
'quoteImage': funcResponse.bidStatement,
'isQuote': funcResponse.isJoinBid,
......@@ -203,6 +202,8 @@
'examineReason': funcResponse.reason,
}
console.log(this.formInfo)
switch(this.formInfo.companyTax) {
case 0:
this.formInfo.companyTaxText = '一般纳税人'
......@@ -259,6 +260,43 @@
corporationPhone: '', // 联系手机
}
},
/**
* 下载竞价承诺书
* @function
* @param {object} funcFile
* @returns
*/
onUploadDownloadFile: function () {
let funcFile = this.formInfo.quoteFile
let funcFileUrl = this.formInfo.quoteImage
new Promise(function (funcResolve, funcReject) {
let funcXMLHttpRequest = new XMLHttpRequest()
funcXMLHttpRequest.open('get', funcFileUrl, true)
funcXMLHttpRequest.responseType = 'blob'
funcXMLHttpRequest.send()
funcXMLHttpRequest.onreadystatechange = function () {
if (funcXMLHttpRequest.readyState !== 4) {
return
}
let funStatus = funcXMLHttpRequest.status
if ((funStatus >= 200 && funStatus < 300) || funStatus === 304) {
let funcBlob = new Blob([funcXMLHttpRequest.response])
if (window.navigator.msSaveBlob) {
window.navigator.msSaveBlob(funcBlob, funcFile)
} else {
let funcDownloadLink = document.createElement('a')
funcDownloadLink.download = funcFile
funcDownloadLink.href = URL.createObjectURL(funcBlob)
document.body.appendChild(funcDownloadLink)
funcDownloadLink.click()
document.body.removeChild(funcDownloadLink)
}
}
}
})
},
onChange: function () {
this.$router.push('/supplier/infochange')
},
......
......@@ -63,22 +63,22 @@
</div>
<div class="detail-content orders-bills">
<el-form ref="form" :model="formBills" :rules="rule" label-width="160px">
<el-form-item label="发票领取方式:" prop="name">
<el-form-item label="发票领取方式:">
<el-radio-group v-model="formBills.receiveType">
<el-radio label="0">寄送</el-radio>
<el-radio label="1">自取</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="收件人:" prop="name">
<el-form-item v-if="formBills.receiveType === '0'" label="收件人:" prop="name">
<el-input v-model="formBills.name" maxlength="30" placeholder="请输入姓名"></el-input>
</el-form-item>
<el-form-item label="收件人电话:" prop="phone">
<el-form-item v-if="formBills.receiveType === '0'" label="收件人电话:" prop="phone">
<el-input v-model="formBills.phone" maxlength="20" placeholder="请输入电话"></el-input>
</el-form-item>
<el-form-item v-if="formBills.receiveType === '0'" label="收件地址:">
<el-form-item v-if="formBills.receiveType === '0'" label="收件地址:" prop="area">
<currencyArea @change="onAreaChange"></currencyArea>
</el-form-item>
<el-form-item v-if="formBills.receiveType === '0'" label="">
<el-form-item v-if="formBills.receiveType === '0'" label="" prop="area">
<el-input v-model="formBills.area" maxlength="100" placeholder="请输入详细地址"></el-input>
</el-form-item>
<el-form-item class="form-button row">
......
......@@ -7,7 +7,7 @@
</div>
<!-- 项目进度 - 采购 -->
<div v-if="!isReceive && componentOrder.paymentAmount !== 0" class="detail-operation">
<div v-if="!componentOrder.isMakeBill && componentOrder.paymentAmount !== 0" class="detail-operation">
<button @click="onOpenBill()">申请开票</button>
</div>
......@@ -260,6 +260,7 @@
'paymentId': funcResponse.order.payId,
'paymentWay': funcResponse.order.payType,
'paymentTime': iMiment(funcResponse.order.payTime).format('YYYY-MM-DD hh:mm:ss'),
'isMakeBill': funcResponse.order.billingState === '0' ? false : true,
}
this.componentProject = {
......
......@@ -98,10 +98,10 @@
<i class="el-icon-plus"></i>
<span>点击上传</span>
</div>
</el-upload>
</el-form-item>
<el-form-item label="">
<div slot="tip" class="el-upload__tip">
<span>下载<span class="global-cursor global-color-red" @click="onLoadStatement">专家入库声明</span>,签名后扫描上传,大小不超过5MB </span>
</div>
</el-upload>
</el-form-item>
<el-form-item class="register-info-button row con-c">
<el-button type="primary" @click.prevent="onNext()">下一步</el-button>
......@@ -153,10 +153,10 @@
<i class="el-icon-plus"></i>
<span>点击上传</span>
</div>
</el-upload>
</el-form-item>
<el-form-item label="">
<div slot="tip" class="el-upload__tip">
<span>(支持JPG、PNG格式图片,每张大小不超过5MB)</span>
</div>
</el-upload>
</el-form-item>
<el-form-item class="register-info-button row con-c">
<el-button type="primary" @click.prevent="onPrevious()">上一步</el-button>
......@@ -201,10 +201,10 @@
<i class="el-icon-plus"></i>
<span>点击上传</span>
</div>
</el-upload>
</el-form-item>
<el-form-item label="">
<div slot="tip" class="el-upload__tip">
<span>(支持JPG、PNG格式图片,每张大小不超过5MB)</span>
</div>
</el-upload>
</el-form-item>
<el-form-item class="register-info-button row con-c">
<el-button type="primary" @click.prevent="onPrevious()">上一步</el-button>
......@@ -869,6 +869,7 @@
* @returns
*/
onUploadChange: function (funcType, funcFile, funcFileList) {
console.log(funcFile)
if (funcFile.status === 'ready') {
if (this.checkFileFormat(funcType, funcFile)) {
// 重新定义上传文件名称
......
......@@ -15,13 +15,13 @@
</div>
<el-form ref="formSignIn" :model="info" :rules="rule" label-width="0">
<el-form-item prop="phone">
<el-input v-model="info.phone" placeholder="手机号" :autofocus="true" maxlength="11"></el-input>
<el-input v-model="info.phone" placeholder="手机号" :autofocus="true" maxlength="11" @keyup.enter.native="onSignInSubmit()"></el-input>
</el-form-item>
<el-form-item prop="password">
<el-input v-model="info.password" show-password maxlength="20" placeholder="密码"></el-input>
<el-input v-model="info.password" show-password maxlength="20" placeholder="密码" @keyup.enter.native="onSignInSubmit()"></el-input>
</el-form-item>
<el-form-item v-show="showImageCode" class="form-item-code" prop="code">
<el-input v-model="info.code" maxlength="4" placeholder="请输入验证码"></el-input>
<el-input v-model="info.code" maxlength="4" placeholder="请输入验证码" @keyup.enter.native="onSignInSubmit()"></el-input>
<button @click.prevent=""><img :src="imageCodeData" alt=""></button>
</el-form-item>
<div class="row con-b align-c">
......
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