|
@@ -1,36 +1,69 @@
|
|
<!--test.vue-->
|
|
<!--test.vue-->
|
|
<template>
|
|
<template>
|
|
- <van-form @submit="onSubmit">
|
|
|
|
- <van-field
|
|
|
|
- v-if="sourceFormConfig.name"
|
|
|
|
- v-model.trim="form.name"
|
|
|
|
- name="姓名"
|
|
|
|
- label="姓名"
|
|
|
|
- placeholder="请输入姓名"
|
|
|
|
- />
|
|
|
|
- <van-field
|
|
|
|
- v-if="sourceFormConfig.phone"
|
|
|
|
- v-model.trim="form.phone"
|
|
|
|
- name="手机号"
|
|
|
|
- label="手机号"
|
|
|
|
- placeholder="请输入准确的手机号"
|
|
|
|
- />
|
|
|
|
- <van-field
|
|
|
|
- v-if="sourceFormConfig.company"
|
|
|
|
- v-model.trim="form.company"
|
|
|
|
- name="公司名称"
|
|
|
|
- label="公司名称"
|
|
|
|
- placeholder="请输入准确的公司名称"
|
|
|
|
- />
|
|
|
|
|
|
+ <div>
|
|
|
|
+ <van-form
|
|
|
|
+ class="source-form"
|
|
|
|
+ @submit="onSubmit"
|
|
|
|
+ :style="{
|
|
|
|
+ 'background-color': sourceFormConfig.background
|
|
|
|
+ }"
|
|
|
|
+ >
|
|
|
|
+ <van-field
|
|
|
|
+ v-if="sourceFormConfig.company"
|
|
|
|
+ v-model.trim="form.company"
|
|
|
|
+ name="公司名称"
|
|
|
|
+ label="公司名称"
|
|
|
|
+ placeholder="请输入准确的公司名称"
|
|
|
|
+ />
|
|
|
|
+ <van-field
|
|
|
|
+ v-if="sourceFormConfig.name"
|
|
|
|
+ v-model.trim="form.name"
|
|
|
|
+ name="姓名"
|
|
|
|
+ label="姓名"
|
|
|
|
+ placeholder="请输入姓名"
|
|
|
|
+ />
|
|
|
|
+ <van-field
|
|
|
|
+ v-if="sourceFormConfig.phone"
|
|
|
|
+ v-model.trim="form.phone"
|
|
|
|
+ name="手机号"
|
|
|
|
+ label="手机号"
|
|
|
|
+ placeholder="请输入准确的手机号"
|
|
|
|
+ />
|
|
|
|
+ <van-field name="radio" label="你希望获得哪个行业的报告" v-if="sourceFormConfig.source_desc">
|
|
|
|
+ <template #input>
|
|
|
|
+ <div class="custom-radio-type">
|
|
|
|
+ <van-radio-group
|
|
|
|
+ v-model="form.source_desc"
|
|
|
|
+ >
|
|
|
|
+ <van-radio
|
|
|
|
+ v-for="item in sourceFormConfig.sourceOptions"
|
|
|
|
+ :name="item"
|
|
|
|
+ :key="item"
|
|
|
|
+ >
|
|
|
|
+ <div class="other-input-box" v-if="form.source_desc === '其他' && item === '其他'">
|
|
|
|
+ <span>{{item}}</span>
|
|
|
|
+ <van-field
|
|
|
|
+ v-model.trim="form.source_desc_temp"
|
|
|
|
+ placeholder="请输入行业"
|
|
|
|
+ />
|
|
|
|
+ </div>
|
|
|
|
+ <span v-else>{{item}}</span>
|
|
|
|
+ </van-radio>
|
|
|
|
+ </van-radio-group>
|
|
|
|
|
|
- <div style="margin: 16px;">
|
|
|
|
- <van-button round block :type="btnType" :size="size" native-type="submit">{{text}}</van-button>
|
|
|
|
- </div>
|
|
|
|
- </van-form>
|
|
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ </van-field>
|
|
|
|
+
|
|
|
|
+ <div style="margin: 16px;">
|
|
|
|
+ <van-button round block :type="btnType" :size="size" native-type="submit">{{text}}</van-button>
|
|
|
|
+ </div>
|
|
|
|
+ </van-form>
|
|
|
|
+ </div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
<script>
|
|
-import { Form, Field, Button } from 'vant';
|
|
|
|
|
|
+import { Form, Field, Button, Radio, RadioGroup } from 'vant';
|
|
import $axios from "@/service/httpServer";
|
|
import $axios from "@/service/httpServer";
|
|
|
|
|
|
export default {
|
|
export default {
|
|
@@ -38,6 +71,8 @@ import $axios from "@/service/httpServer";
|
|
components: {
|
|
components: {
|
|
[Form.name]: Form,
|
|
[Form.name]: Form,
|
|
[Field.name]: Field,
|
|
[Field.name]: Field,
|
|
|
|
+ [Radio.name]: Radio,
|
|
|
|
+ [RadioGroup.name]: RadioGroup,
|
|
[Button.name]: Button
|
|
[Button.name]: Button
|
|
},
|
|
},
|
|
data() {
|
|
data() {
|
|
@@ -45,7 +80,9 @@ import $axios from "@/service/httpServer";
|
|
form: {
|
|
form: {
|
|
name: '',
|
|
name: '',
|
|
phone: '',
|
|
phone: '',
|
|
- company: ''
|
|
|
|
|
|
+ company: '',
|
|
|
|
+ source_desc: '',
|
|
|
|
+ source_desc_temp: ''
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
},
|
|
@@ -69,10 +106,20 @@ import $axios from "@/service/httpServer";
|
|
sourceFormConfig: {
|
|
sourceFormConfig: {
|
|
type:Object,
|
|
type:Object,
|
|
default: ()=>({
|
|
default: ()=>({
|
|
|
|
+ background: 'transparent',
|
|
source: 'default-source-h5',
|
|
source: 'default-source-h5',
|
|
name: true,
|
|
name: true,
|
|
phone: true,
|
|
phone: true,
|
|
- company: true
|
|
|
|
|
|
+ company: true,
|
|
|
|
+ source_desc: true,
|
|
|
|
+ sourceOptions: [
|
|
|
|
+ '建筑工程',
|
|
|
|
+ '信息技术',
|
|
|
|
+ '弱电安防',
|
|
|
|
+ '医疗卫生',
|
|
|
|
+ '服务采购',
|
|
|
|
+ '其他'
|
|
|
|
+ ]
|
|
})
|
|
})
|
|
}
|
|
}
|
|
},
|
|
},
|
|
@@ -84,7 +131,8 @@ import $axios from "@/service/httpServer";
|
|
forbidClick: true
|
|
forbidClick: true
|
|
});
|
|
});
|
|
const params = Object.assign({
|
|
const params = Object.assign({
|
|
- source: this.sourceFormConfig.source
|
|
|
|
|
|
+ source: this.form.source_desc === '其他' ? this.form.source_desc_temp : this.form.source_desc,
|
|
|
|
+ origin: location.href
|
|
}, this.form)
|
|
}, this.form)
|
|
|
|
|
|
console.log('source-params', params)
|
|
console.log('source-params', params)
|
|
@@ -95,7 +143,7 @@ import $axios from "@/service/httpServer";
|
|
}).then(res => {
|
|
}).then(res => {
|
|
console.log('res', res)
|
|
console.log('res', res)
|
|
this.$toast.clear()
|
|
this.$toast.clear()
|
|
- this.$toast('提交成功')
|
|
|
|
|
|
+ this.$toast('提交成功,我们会尽快联系您~')
|
|
}).catch(() => {
|
|
}).catch(() => {
|
|
this.$toast.clear()
|
|
this.$toast.clear()
|
|
this.$toast('太火爆了,请稍后重试')
|
|
this.$toast('太火爆了,请稍后重试')
|
|
@@ -106,5 +154,34 @@ import $axios from "@/service/httpServer";
|
|
</script>
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
<style lang="scss" scoped>
|
|
|
|
+.other-input-box {
|
|
|
|
+ display: flex;
|
|
|
|
+ flex-direction: row;
|
|
|
|
+ align-items: center;
|
|
|
|
+ span {
|
|
|
|
+ flex-shrink: 0;
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+.custom-radio-type {
|
|
|
|
+ display: flex;
|
|
|
|
+ flex-direction: column;
|
|
|
|
+}
|
|
|
|
+.source-form {
|
|
|
|
+
|
|
|
|
+ width: 100%;
|
|
|
|
+ height: 100%;
|
|
|
|
|
|
|
|
+ ::v-deep {
|
|
|
|
+ .van-cell {
|
|
|
|
+ flex-direction: column;
|
|
|
|
+ background-color: inherit;
|
|
|
|
+ }
|
|
|
|
+ .van-field__label {
|
|
|
|
+ width: 100%;
|
|
|
|
+ }
|
|
|
|
+ .van-radio {
|
|
|
|
+ height: 44px;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|
|
</style>
|
|
</style>
|