|
@@ -45,15 +45,17 @@
|
|
|
<div class="value-wrap">
|
|
|
<input type="tel" placeholder="请输入验证码" v-myBlur v-model.trim="postData.code" @input="funLimitLength">
|
|
|
</div>
|
|
|
- <button class="get-code" @click="funGetCode">{{[0, 60].includes(numCount) ? '获取': numCount + '秒'}}</button>
|
|
|
+ <button class="get-code" @click="funGetCode">{{ [0, 60].includes(numCount) ? '获取' : numCount + '秒' }}</button>
|
|
|
</li>
|
|
|
<li>
|
|
|
<label>
|
|
|
<span v-for="(str, index) in '所在城市:'" :key="index">{{ str }}</span>
|
|
|
</label>
|
|
|
<div class="value-wrap" @click="showPicker = true">
|
|
|
- <p class="value-city" v-show="postData.orderProvince">{{ postData.orderProvince + postData.orderCity +
|
|
|
- postData.orderDistrict}}</p>
|
|
|
+ <p class="value-city" v-show="postData.orderProvince">{{
|
|
|
+ postData.orderProvince + postData.orderCity +
|
|
|
+ postData.orderDistrict
|
|
|
+ }}</p>
|
|
|
<p class="value-city init" v-show="!postData.orderProvince">请选择所在城市</p>
|
|
|
<img src="./image/btn_next@2x.png" alt="">
|
|
|
</div>
|
|
@@ -97,470 +99,467 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
- import Flow from './components/flow'
|
|
|
- import { Popup, Picker, Toast } from 'vant'
|
|
|
- import { createOrder } from './api'
|
|
|
- import { getChinaArea, sendSMS, getProductDetail } from '../../../api/common'
|
|
|
- import { funWxShare } from '../../../utils/wxShareConfig'
|
|
|
+import Flow from './components/flow'
|
|
|
+import { Popup, Picker, Toast } from 'vant'
|
|
|
+import { createOrder } from './api'
|
|
|
+import { getChinaArea, sendSMS, getProductDetail } from '../../../api/common'
|
|
|
+import { funWxShare } from '../../../utils/wxShareConfig'
|
|
|
|
|
|
- const STRCAPTURE = process.env.API_DOMAIN + '/api/captcha'
|
|
|
- export default {
|
|
|
- name: 'apply',
|
|
|
- components: {
|
|
|
- Flow,
|
|
|
- 'van-popup': Popup,
|
|
|
- 'van-picker': Picker
|
|
|
+const STRCAPTURE = process.env.API_DOMAIN + '/api/captcha'
|
|
|
+export default {
|
|
|
+ name: 'apply',
|
|
|
+ components: {
|
|
|
+ Flow,
|
|
|
+ 'van-popup': Popup,
|
|
|
+ 'van-picker': Picker
|
|
|
+ },
|
|
|
+ props: {
|
|
|
+ // 产品ID
|
|
|
+ orderProductId: {
|
|
|
+ type: String,
|
|
|
+ default: ''
|
|
|
},
|
|
|
- props: {
|
|
|
- // 产品ID
|
|
|
- orderProductId: {
|
|
|
- type: String,
|
|
|
- default: ''
|
|
|
+ partnerId: {
|
|
|
+ type: String,
|
|
|
+ default: ''
|
|
|
+ }
|
|
|
+ },
|
|
|
+ data () {
|
|
|
+ return {
|
|
|
+ postData: {
|
|
|
+ orderUserName: '', // 用户名称
|
|
|
+ orderUserSex: '男',
|
|
|
+ orderUserPhone: '', // 手机号码
|
|
|
+ code: '', // 验证码
|
|
|
+ capture: '',
|
|
|
+ orderPrice: '', // 申请金额
|
|
|
+ orderProvince: '', // 省份
|
|
|
+ orderCity: '', // 城市
|
|
|
+ orderDistrict: '', // 区域
|
|
|
+ orderAddress: '' // 详细地址
|
|
|
},
|
|
|
- partnerId: {
|
|
|
- type: String,
|
|
|
- default: ''
|
|
|
- }
|
|
|
- },
|
|
|
- data () {
|
|
|
- return {
|
|
|
- postData: {
|
|
|
- orderUserName: '', // 用户名称
|
|
|
- orderUserSex: '男',
|
|
|
- orderUserPhone: '', // 手机号码
|
|
|
- code: '', // 验证码
|
|
|
- capture: '',
|
|
|
- orderPrice: '', // 申请金额
|
|
|
- orderProvince: '', // 省份
|
|
|
- orderCity: '', // 城市
|
|
|
- orderDistrict: '', // 区域
|
|
|
- orderAddress: '' // 详细地址
|
|
|
- },
|
|
|
- numCount: 60,
|
|
|
- arrErrorList: [],
|
|
|
- strCapture: STRCAPTURE,
|
|
|
- showPicker: false,
|
|
|
- columns: [],
|
|
|
- productInfo: {},
|
|
|
- timer: null
|
|
|
- }
|
|
|
- },
|
|
|
- computed: {
|
|
|
- amount: {
|
|
|
- get () {
|
|
|
- return this.postData.orderPrice * 1 ? this.postData.orderPrice : ''
|
|
|
- },
|
|
|
- set (value) {
|
|
|
- this.postData.orderPrice = value
|
|
|
- }
|
|
|
+ numCount: 60,
|
|
|
+ arrErrorList: [],
|
|
|
+ strCapture: STRCAPTURE,
|
|
|
+ showPicker: false,
|
|
|
+ columns: [],
|
|
|
+ productInfo: {},
|
|
|
+ timer: null
|
|
|
+ }
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ amount: {
|
|
|
+ get () {
|
|
|
+ return this.postData.orderPrice * 1 ? this.postData.orderPrice : ''
|
|
|
+ },
|
|
|
+ set (value) {
|
|
|
+ this.postData.orderPrice = value
|
|
|
}
|
|
|
- },
|
|
|
- async mounted () {
|
|
|
- this.funGetChinaArea()
|
|
|
- this.funGetProductDetail()
|
|
|
- await this.$nextTick()
|
|
|
- const textarea = this.$refs.myTextarea
|
|
|
- if (textarea) {
|
|
|
- this.handleTextarea(textarea)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ async mounted () {
|
|
|
+ this.funGetChinaArea()
|
|
|
+ this.funGetProductDetail()
|
|
|
+ await this.$nextTick()
|
|
|
+ const textarea = this.$refs.myTextarea
|
|
|
+ if (textarea) {
|
|
|
+ this.handleTextarea(textarea)
|
|
|
+ textarea.addEventListener('input', this.handleTextarea(textarea, 1), false)
|
|
|
+ this.$once('hook:beforeDestroy', () => {
|
|
|
textarea.addEventListener('input', this.handleTextarea(textarea, 1), false)
|
|
|
- this.$once('hook:beforeDestroy', () => {
|
|
|
- textarea.addEventListener('input', this.handleTextarea(textarea, 1), false)
|
|
|
- })
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ activated () {
|
|
|
+ if (!this.$route.meta.isUseCache) {
|
|
|
+ this.postData = {
|
|
|
+ orderUserName: '',
|
|
|
+ orderUserSex: '男',
|
|
|
+ orderUserPhone: '',
|
|
|
+ code: '',
|
|
|
+ capture: '',
|
|
|
+ orderPrice: '',
|
|
|
+ orderProvince: '',
|
|
|
+ orderCity: '',
|
|
|
+ orderDistrict: '',
|
|
|
+ orderAddress: ''
|
|
|
}
|
|
|
- },
|
|
|
- activated () {
|
|
|
- if (!this.$route.meta.isUseCache) {
|
|
|
- this.postData = {
|
|
|
- orderUserName: '',
|
|
|
- orderUserSex: '男',
|
|
|
- orderUserPhone: '',
|
|
|
- code: '',
|
|
|
- capture: '',
|
|
|
- orderPrice: '',
|
|
|
- orderProvince: '',
|
|
|
- orderCity: '',
|
|
|
- orderDistrict: '',
|
|
|
- orderAddress: ''
|
|
|
- }
|
|
|
- this.numCount = 60
|
|
|
- this.arrErrorList = []
|
|
|
- this.showPicker = false
|
|
|
- this.timer = null
|
|
|
- } else {
|
|
|
- if (this.timer) {
|
|
|
- clearInterval(this.timer)
|
|
|
- }
|
|
|
+ this.numCount = 60
|
|
|
+ this.arrErrorList = []
|
|
|
+ this.showPicker = false
|
|
|
+ this.timer = null
|
|
|
+ } else {
|
|
|
+ if (this.timer) {
|
|
|
+ clearInterval(this.timer)
|
|
|
}
|
|
|
- this.$nextTick(() => {
|
|
|
- this.$refreshTitle('家装分期')
|
|
|
+ }
|
|
|
+ this.$route.meta.isUseCache = false
|
|
|
+ funWxShare('驼驼银服', '家里用钱,就找驼驼银服,省心,省力,妥妥的!', location.href, location.protocol + '//api.tuotuoyinfu.com/img/logo.jpg')
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ funGetChinaArea () {
|
|
|
+ getChinaArea().then(res => {
|
|
|
+ if (res.status) {
|
|
|
+ this.columns = res.data.filter(province => province.text === '浙江')
|
|
|
+ } else {
|
|
|
+ Toast(res.msg)
|
|
|
+ }
|
|
|
+ }).catch(err => {
|
|
|
+ Toast(err)
|
|
|
})
|
|
|
- this.$route.meta.isUseCache = false
|
|
|
- funWxShare('驼驼银服', '家里用钱,就找驼驼银服,省心,省力,妥妥的!', location.href, location.protocol + '//api.tuotuoyinfu.com/img/logo.jpg')
|
|
|
},
|
|
|
- methods: {
|
|
|
- funGetChinaArea () {
|
|
|
- getChinaArea().then(res => {
|
|
|
- if (res.status) {
|
|
|
- this.columns = res.data.filter(province => province.text === '浙江')
|
|
|
- } else {
|
|
|
- Toast(res.msg)
|
|
|
- }
|
|
|
- }).catch(err => {
|
|
|
- Toast(err)
|
|
|
- })
|
|
|
- },
|
|
|
- funGetProductDetail () {
|
|
|
- getProductDetail(this.orderProductId).then(res => {
|
|
|
- if (res.status) {
|
|
|
- this.productInfo = res.data
|
|
|
- this.$nextTick(() => {
|
|
|
- this.$refreshTitle(res.data.productName)
|
|
|
- })
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
- handleTextarea (el, auto) {
|
|
|
- return () => {
|
|
|
- if (auto) {
|
|
|
- el.style.height = 'auto'
|
|
|
- }
|
|
|
- el.style.height = el.scrollHeight + 'px'
|
|
|
+ funGetProductDetail () {
|
|
|
+ getProductDetail(this.orderProductId).then(res => {
|
|
|
+ if (res.status) {
|
|
|
+ this.productInfo = res.data
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.$refreshTitle(res.data.productName)
|
|
|
+ })
|
|
|
}
|
|
|
- },
|
|
|
- onConfirm (value) {
|
|
|
- this.showPicker = false
|
|
|
- this.$set(this.postData, 'orderProvince', value[0])
|
|
|
- this.$set(this.postData, 'orderCity', value[1])
|
|
|
- this.$set(this.postData, 'orderDistrict', value[2])
|
|
|
- },
|
|
|
- funLimitLength () {
|
|
|
- const { orderUserPhone, code } = this.postData
|
|
|
- this.postData.orderUserPhone = orderUserPhone.length > 11 ? orderUserPhone.slice(0, 11) : orderUserPhone
|
|
|
- this.postData.code = code.length > 4 ? code.slice(0, 4) : code
|
|
|
- },
|
|
|
- funCutDown () {
|
|
|
- clearInterval(this.timer)
|
|
|
- this.timer = setInterval(() => {
|
|
|
- if (this.numCount === 0) {
|
|
|
- clearInterval(this.timer)
|
|
|
- this.numCount = 0
|
|
|
- return
|
|
|
- }
|
|
|
- this.numCount--
|
|
|
- }, 1000)
|
|
|
- },
|
|
|
- // 获取验证码
|
|
|
- funGetCode () {
|
|
|
- const numCount = this.numCount
|
|
|
- const { orderUserPhone, capture } = this.postData
|
|
|
- if (numCount < 60 && numCount > 0) {
|
|
|
- return
|
|
|
+ })
|
|
|
+ },
|
|
|
+ handleTextarea (el, auto) {
|
|
|
+ return () => {
|
|
|
+ if (auto) {
|
|
|
+ el.style.height = 'auto'
|
|
|
}
|
|
|
- this.numCount = 60
|
|
|
- if (!(/^1[2|3|4|5|6|7|8|9]\d{9}$/.test(orderUserPhone))) {
|
|
|
- Toast('请输入手机号码')
|
|
|
+ el.style.height = el.scrollHeight + 'px'
|
|
|
+ }
|
|
|
+ },
|
|
|
+ onConfirm (value) {
|
|
|
+ this.showPicker = false
|
|
|
+ this.$set(this.postData, 'orderProvince', value[0])
|
|
|
+ this.$set(this.postData, 'orderCity', value[1])
|
|
|
+ this.$set(this.postData, 'orderDistrict', value[2])
|
|
|
+ },
|
|
|
+ funLimitLength () {
|
|
|
+ const { orderUserPhone, code } = this.postData
|
|
|
+ this.postData.orderUserPhone = orderUserPhone.length > 11 ? orderUserPhone.slice(0, 11) : orderUserPhone
|
|
|
+ this.postData.code = code.length > 4 ? code.slice(0, 4) : code
|
|
|
+ },
|
|
|
+ funCutDown () {
|
|
|
+ clearInterval(this.timer)
|
|
|
+ this.timer = setInterval(() => {
|
|
|
+ if (this.numCount === 0) {
|
|
|
+ clearInterval(this.timer)
|
|
|
+ this.numCount = 0
|
|
|
return
|
|
|
}
|
|
|
+ this.numCount--
|
|
|
+ }, 1000)
|
|
|
+ },
|
|
|
+ // 获取验证码
|
|
|
+ funGetCode () {
|
|
|
+ const numCount = this.numCount
|
|
|
+ const { orderUserPhone, capture } = this.postData
|
|
|
+ if (numCount < 60 && numCount > 0) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ this.numCount = 60
|
|
|
+ if (!(/^1[2|3|4|5|6|7|8|9]\d{9}$/.test(orderUserPhone))) {
|
|
|
+ Toast('请输入手机号码')
|
|
|
+ return
|
|
|
+ }
|
|
|
|
|
|
- // if (!capture) {
|
|
|
- // Toast('请输入图片验证码')
|
|
|
- // return
|
|
|
- // }
|
|
|
- this.funCutDown()
|
|
|
- sendSMS(orderUserPhone, 0, capture).then(res => {
|
|
|
- if (res.status) {
|
|
|
- Toast('发送成功')
|
|
|
- } else {
|
|
|
- Toast(res.msg)
|
|
|
- this.funUpdateCapture()
|
|
|
- clearInterval(this.timer)
|
|
|
- this.numCount = 60
|
|
|
- }
|
|
|
- }).catch(err => {
|
|
|
- Toast(err.msg)
|
|
|
+ // if (!capture) {
|
|
|
+ // Toast('请输入图片验证码')
|
|
|
+ // return
|
|
|
+ // }
|
|
|
+ this.funCutDown()
|
|
|
+ sendSMS(orderUserPhone, 0, capture).then(res => {
|
|
|
+ if (res.status) {
|
|
|
+ Toast('发送成功')
|
|
|
+ } else {
|
|
|
+ Toast(res.msg)
|
|
|
this.funUpdateCapture()
|
|
|
clearInterval(this.timer)
|
|
|
this.numCount = 60
|
|
|
- })
|
|
|
- },
|
|
|
- verifyData () {
|
|
|
- const { orderUserName, orderUserSex, orderUserPhone, code, orderProvince, orderCity, orderDistrict, orderAddress, orderPrice } = this.postData
|
|
|
- this.arrErrorList = []
|
|
|
- if (!orderUserName) {
|
|
|
- this.arrErrorList.push('请输入姓名')
|
|
|
- }
|
|
|
- if (!orderUserSex) {
|
|
|
- this.arrErrorList.push('请选择性别')
|
|
|
- }
|
|
|
- if (!/^1[2|3|4|5|6|7|8|9]\d{9}$/.test(orderUserPhone)) {
|
|
|
- this.arrErrorList.push('请输入手机号码')
|
|
|
- }
|
|
|
- if (!(/^\d{4}$/.test(code))) {
|
|
|
- this.arrErrorList.push('请输入验证码')
|
|
|
- }
|
|
|
- if (!orderProvince || !orderCity || !orderDistrict) {
|
|
|
- this.arrErrorList.push('请选择所在城市')
|
|
|
- }
|
|
|
- if (!orderAddress) {
|
|
|
- this.arrErrorList.push('请输入房产地址')
|
|
|
- }
|
|
|
- if (orderPrice * 1 <= 0) {
|
|
|
- this.arrErrorList.push('请输入需求金额')
|
|
|
}
|
|
|
- return this.arrErrorList.length <= 0
|
|
|
- },
|
|
|
- funUpdateCapture () {
|
|
|
- this.strCapture = STRCAPTURE + '?' + new Date().getTime()
|
|
|
- },
|
|
|
- funSubmit () {
|
|
|
- const postData = {
|
|
|
- orderProductId: this.orderProductId,
|
|
|
- partnerId: this.partnerId,
|
|
|
- ...this.postData
|
|
|
- }
|
|
|
- delete postData.capture
|
|
|
- if (!this.verifyData()) {
|
|
|
+ }).catch(err => {
|
|
|
+ Toast(err.msg)
|
|
|
+ this.funUpdateCapture()
|
|
|
+ clearInterval(this.timer)
|
|
|
+ this.numCount = 60
|
|
|
+ })
|
|
|
+ },
|
|
|
+ verifyData () {
|
|
|
+ const { orderUserName, orderUserSex, orderUserPhone, code, orderProvince, orderCity, orderDistrict, orderAddress, orderPrice } = this.postData
|
|
|
+ this.arrErrorList = []
|
|
|
+ if (!orderUserName) {
|
|
|
+ this.arrErrorList.push('请输入姓名')
|
|
|
+ }
|
|
|
+ if (!orderUserSex) {
|
|
|
+ this.arrErrorList.push('请选择性别')
|
|
|
+ }
|
|
|
+ if (!/^1[2|3|4|5|6|7|8|9]\d{9}$/.test(orderUserPhone)) {
|
|
|
+ this.arrErrorList.push('请输入手机号码')
|
|
|
+ }
|
|
|
+ if (!(/^\d{4}$/.test(code))) {
|
|
|
+ this.arrErrorList.push('请输入验证码')
|
|
|
+ }
|
|
|
+ if (!orderProvince || !orderCity || !orderDistrict) {
|
|
|
+ this.arrErrorList.push('请选择所在城市')
|
|
|
+ }
|
|
|
+ if (!orderAddress) {
|
|
|
+ this.arrErrorList.push('请输入房产地址')
|
|
|
+ }
|
|
|
+ if (orderPrice * 1 <= 0) {
|
|
|
+ this.arrErrorList.push('请输入需求金额')
|
|
|
+ }
|
|
|
+ return this.arrErrorList.length <= 0
|
|
|
+ },
|
|
|
+ funUpdateCapture () {
|
|
|
+ this.strCapture = STRCAPTURE + '?' + new Date().getTime()
|
|
|
+ },
|
|
|
+ funSubmit () {
|
|
|
+ const postData = {
|
|
|
+ orderProductId: this.orderProductId,
|
|
|
+ partnerId: this.partnerId,
|
|
|
+ ...this.postData
|
|
|
+ }
|
|
|
+ delete postData.capture
|
|
|
+ if (!this.verifyData()) {
|
|
|
+ Toast({
|
|
|
+ message: this.arrErrorList[0],
|
|
|
+ forbidClick: true
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ const myToast = Toast.loading({
|
|
|
+ message: '提交中...',
|
|
|
+ duration: 1000 * 100,
|
|
|
+ forbidClick: true
|
|
|
+ })
|
|
|
+ createOrder(postData).then(res => {
|
|
|
+ myToast.clear()
|
|
|
+ if (res.status) {
|
|
|
+ const { id } = res.data
|
|
|
Toast({
|
|
|
- message: this.arrErrorList[0],
|
|
|
- forbidClick: true
|
|
|
+ type: 'success',
|
|
|
+ message: '提交成功',
|
|
|
+ forbidClick: true,
|
|
|
+ onClose: () => {
|
|
|
+ this.$router.replace({ path: '/loan/detail/' + id })
|
|
|
+ }
|
|
|
})
|
|
|
return
|
|
|
}
|
|
|
- const myToast = Toast.loading({
|
|
|
- message: '提交中...',
|
|
|
- duration: 1000 * 100,
|
|
|
- forbidClick: true
|
|
|
- })
|
|
|
- createOrder(postData).then(res => {
|
|
|
- myToast.clear()
|
|
|
- if (res.status) {
|
|
|
- const { id } = res.data
|
|
|
- Toast({
|
|
|
- type: 'success',
|
|
|
- message: '提交成功',
|
|
|
- forbidClick: true,
|
|
|
- onClose: () => {
|
|
|
- this.$router.replace({ path: '/loan/detail/' + id })
|
|
|
- }
|
|
|
- })
|
|
|
- return
|
|
|
- }
|
|
|
- Toast(res.msg)
|
|
|
- }).catch(err => {
|
|
|
- myToast.clear()
|
|
|
- Toast(err)
|
|
|
- })
|
|
|
- }
|
|
|
- },
|
|
|
- beforeRouteLeave (to, from, next) {
|
|
|
- if (['loanPrivacy', 'loanAgreement'].includes(to.name)) {
|
|
|
- from.meta.isUseCache = true
|
|
|
- }
|
|
|
- next()
|
|
|
+ Toast(res.msg)
|
|
|
+ }).catch(err => {
|
|
|
+ myToast.clear()
|
|
|
+ Toast(err)
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ beforeRouteLeave (to, from, next) {
|
|
|
+ if (['loanPrivacy', 'loanAgreement'].includes(to.name)) {
|
|
|
+ from.meta.isUseCache = true
|
|
|
}
|
|
|
+ next()
|
|
|
}
|
|
|
+}
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
- .wrapper {
|
|
|
+.wrapper {
|
|
|
+ position: relative;
|
|
|
+ left: 0;
|
|
|
+ top: 0;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ align-items: center;
|
|
|
+ width: 100%;
|
|
|
+ min-height: 100vh;
|
|
|
+ padding: 110px 0 200px;
|
|
|
+ background: #fff;
|
|
|
+}
|
|
|
+
|
|
|
+.goods-cover {
|
|
|
+ position: absolute;
|
|
|
+ left: 0;
|
|
|
+ top: 0;
|
|
|
+ right: 0;
|
|
|
+ display: block;
|
|
|
+ width: 100%;
|
|
|
+ min-height: 147px;
|
|
|
+}
|
|
|
+
|
|
|
+.form-wrap {
|
|
|
+ li {
|
|
|
position: relative;
|
|
|
left: 0;
|
|
|
top: 0;
|
|
|
display: flex;
|
|
|
- flex-direction: column;
|
|
|
- align-items: center;
|
|
|
- width: 100%;
|
|
|
- min-height: 100vh;
|
|
|
- padding: 110px 0 200px;
|
|
|
- background: #fff;
|
|
|
- }
|
|
|
-
|
|
|
- .goods-cover {
|
|
|
- position: absolute;
|
|
|
- left: 0;
|
|
|
- top: 0;
|
|
|
- right: 0;
|
|
|
- display: block;
|
|
|
- width: 100%;
|
|
|
- min-height: 147px;
|
|
|
- }
|
|
|
-
|
|
|
- .form-wrap {
|
|
|
- li {
|
|
|
- position: relative;
|
|
|
- left: 0;
|
|
|
- top: 0;
|
|
|
- display: flex;
|
|
|
- align-items: flex-start;
|
|
|
- width: 327px;
|
|
|
- padding: 13px 14px;
|
|
|
- margin-top: 8px;
|
|
|
- border: 1px solid #E8E8E8;
|
|
|
- border-radius: 4px;
|
|
|
+ align-items: flex-start;
|
|
|
+ width: 327px;
|
|
|
+ padding: 13px 14px;
|
|
|
+ margin-top: 8px;
|
|
|
+ border: 1px solid #E8E8E8;
|
|
|
+ border-radius: 4px;
|
|
|
|
|
|
- &:nth-of-type(1) {
|
|
|
- margin-top: 37px;
|
|
|
- }
|
|
|
+ &:nth-of-type(1) {
|
|
|
+ margin-top: 37px;
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- label {
|
|
|
- display: flex;
|
|
|
+ label {
|
|
|
+ display: flex;
|
|
|
|
|
|
- span {
|
|
|
- line-height: 22px;
|
|
|
- font-size: 16px;
|
|
|
- font-weight: 500;
|
|
|
- color: #333;
|
|
|
+ span {
|
|
|
+ line-height: 22px;
|
|
|
+ font-size: 16px;
|
|
|
+ font-weight: 500;
|
|
|
+ color: #333;
|
|
|
|
|
|
- &.label-name:nth-of-type(4),
|
|
|
- &.label-name:nth-of-type(5),
|
|
|
- &.label-code:nth-of-type(5), {
|
|
|
- visibility: hidden;
|
|
|
- }
|
|
|
+ &.label-name:nth-of-type(4),
|
|
|
+ &.label-name:nth-of-type(5),
|
|
|
+ &.label-code:nth-of-type(5), {
|
|
|
+ visibility: hidden;
|
|
|
}
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- .value-wrap {
|
|
|
- flex: 1;
|
|
|
- display: flex;
|
|
|
- margin-left: 9px;
|
|
|
- }
|
|
|
+ .value-wrap {
|
|
|
+ flex: 1;
|
|
|
+ display: flex;
|
|
|
+ margin-left: 9px;
|
|
|
+ }
|
|
|
|
|
|
- .amount-wrap {
|
|
|
- position: relative;
|
|
|
+ .amount-wrap {
|
|
|
+ position: relative;
|
|
|
+ left: 0;
|
|
|
+ top: 0;
|
|
|
+
|
|
|
+ input {
|
|
|
+ position: absolute;
|
|
|
left: 0;
|
|
|
top: 0;
|
|
|
+ z-index: 1;
|
|
|
|
|
|
- input {
|
|
|
- position: absolute;
|
|
|
- left: 0;
|
|
|
- top: 0;
|
|
|
- z-index: 1;
|
|
|
-
|
|
|
- &.opacity-0 {
|
|
|
- opacity: 0;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- p {
|
|
|
- width: 100%;
|
|
|
- padding-top: 2px;
|
|
|
- line-height: 20px;
|
|
|
- font-size: 15px;
|
|
|
- color: #333;
|
|
|
+ &.opacity-0 {
|
|
|
+ opacity: 0;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- input,
|
|
|
- textarea {
|
|
|
+ p {
|
|
|
width: 100%;
|
|
|
- min-height: 20px;
|
|
|
padding-top: 2px;
|
|
|
line-height: 20px;
|
|
|
font-size: 15px;
|
|
|
color: #333;
|
|
|
- word-break: break-all;
|
|
|
- resize: none;
|
|
|
- outline: 0 none;
|
|
|
- overflow: hidden;
|
|
|
- background: transparent;
|
|
|
- -webkit-text-fill-color: #333;
|
|
|
- opacity: 1;
|
|
|
-
|
|
|
- &::-webkit-input-placeholder {
|
|
|
- color: #999;
|
|
|
- -webkit-text-fill-color: #999;
|
|
|
- opacity: 1;
|
|
|
- }
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- .value-name {
|
|
|
- display: flex;
|
|
|
- width: 100%;
|
|
|
+ input,
|
|
|
+ textarea {
|
|
|
+ width: 100%;
|
|
|
+ min-height: 20px;
|
|
|
+ padding-top: 2px;
|
|
|
+ line-height: 20px;
|
|
|
+ font-size: 15px;
|
|
|
+ color: #333;
|
|
|
+ word-break: break-all;
|
|
|
+ resize: none;
|
|
|
+ outline: 0 none;
|
|
|
+ overflow: hidden;
|
|
|
+ background: transparent;
|
|
|
+ -webkit-text-fill-color: #333;
|
|
|
+ opacity: 1;
|
|
|
+
|
|
|
+ &::-webkit-input-placeholder {
|
|
|
+ color: #999;
|
|
|
+ -webkit-text-fill-color: #999;
|
|
|
+ opacity: 1;
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- .value-gender {
|
|
|
- display: flex;
|
|
|
+ .value-name {
|
|
|
+ display: flex;
|
|
|
+ width: 100%;
|
|
|
+ }
|
|
|
|
|
|
- p {
|
|
|
- display: flex;
|
|
|
+ .value-gender {
|
|
|
+ display: flex;
|
|
|
|
|
|
- &:nth-of-type(2) {
|
|
|
- margin-left: 15px;
|
|
|
- }
|
|
|
- }
|
|
|
+ p {
|
|
|
+ display: flex;
|
|
|
|
|
|
- span {
|
|
|
- margin-left: 4px;
|
|
|
- line-height: 22px;
|
|
|
- font-size: 16px;
|
|
|
- color: #333;
|
|
|
+ &:nth-of-type(2) {
|
|
|
+ margin-left: 15px;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- .value-city {
|
|
|
- flex: 1;
|
|
|
+ span {
|
|
|
+ margin-left: 4px;
|
|
|
line-height: 22px;
|
|
|
- font-size: 15px;
|
|
|
+ font-size: 16px;
|
|
|
color: #333;
|
|
|
-
|
|
|
- &.init {
|
|
|
- color: #999;
|
|
|
- }
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- img {
|
|
|
- width: 22px;
|
|
|
- height: 22px;
|
|
|
- }
|
|
|
+ .value-city {
|
|
|
+ flex: 1;
|
|
|
+ line-height: 22px;
|
|
|
+ font-size: 15px;
|
|
|
+ color: #333;
|
|
|
|
|
|
- .capture-img {
|
|
|
- @include vertical-center;
|
|
|
- right: 14px;
|
|
|
- z-index: 1;
|
|
|
- display: block;
|
|
|
- width: 125px;
|
|
|
- height: 31px;
|
|
|
- border-radius: 4px;
|
|
|
- overflow: hidden;
|
|
|
+ &.init {
|
|
|
+ color: #999;
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- .get-code {
|
|
|
- @include vertical-center;
|
|
|
- right: 0;
|
|
|
- z-index: 1;
|
|
|
- display: block;
|
|
|
- min-width: 87px;
|
|
|
- padding: 6px;
|
|
|
- line-height: 22px;
|
|
|
- font-size: 16px;
|
|
|
- font-weight: 500;
|
|
|
- color: #C9A585;
|
|
|
- }
|
|
|
+ img {
|
|
|
+ width: 22px;
|
|
|
+ height: 22px;
|
|
|
}
|
|
|
|
|
|
- .submit {
|
|
|
- width: 327px;
|
|
|
- height: 45px;
|
|
|
- margin-top: 36px;
|
|
|
+ .capture-img {
|
|
|
+ @include vertical-center;
|
|
|
+ right: 14px;
|
|
|
+ z-index: 1;
|
|
|
+ display: block;
|
|
|
+ width: 125px;
|
|
|
+ height: 31px;
|
|
|
border-radius: 4px;
|
|
|
- line-height: 20px;
|
|
|
- font-size: 14px;
|
|
|
+ overflow: hidden;
|
|
|
+ }
|
|
|
+
|
|
|
+ .get-code {
|
|
|
+ @include vertical-center;
|
|
|
+ right: 0;
|
|
|
+ z-index: 1;
|
|
|
+ display: block;
|
|
|
+ min-width: 87px;
|
|
|
+ padding: 6px;
|
|
|
+ line-height: 22px;
|
|
|
+ font-size: 16px;
|
|
|
font-weight: 500;
|
|
|
- color: #fff;
|
|
|
- background: linear-gradient(90deg, #E5C7A5 0%, #CFAA7F 100%);
|
|
|
- box-shadow: 0 14px 9px -10px rgba(219, 208, 194, 1);
|
|
|
+ color: #C9A585;
|
|
|
}
|
|
|
+}
|
|
|
|
|
|
- .explain {
|
|
|
- display: flex;
|
|
|
- margin-top: 12px;
|
|
|
+.submit {
|
|
|
+ width: 327px;
|
|
|
+ height: 45px;
|
|
|
+ margin-top: 36px;
|
|
|
+ border-radius: 4px;
|
|
|
+ line-height: 20px;
|
|
|
+ font-size: 14px;
|
|
|
+ font-weight: 500;
|
|
|
+ color: #fff;
|
|
|
+ background: linear-gradient(90deg, #E5C7A5 0%, #CFAA7F 100%);
|
|
|
+ box-shadow: 0 14px 9px -10px rgba(219, 208, 194, 1);
|
|
|
+}
|
|
|
|
|
|
- span,
|
|
|
- a {
|
|
|
- line-height: 17px;
|
|
|
- font-size: 12px;
|
|
|
- color: #666;
|
|
|
- }
|
|
|
+.explain {
|
|
|
+ display: flex;
|
|
|
+ margin-top: 12px;
|
|
|
+
|
|
|
+ span,
|
|
|
+ a {
|
|
|
+ line-height: 17px;
|
|
|
+ font-size: 12px;
|
|
|
+ color: #666;
|
|
|
}
|
|
|
+}
|
|
|
</style>
|