<template>
<div id="parti-info">
<div>
<span>您的姓名:</span>
<input v-model="username" type="text" placeholder="请输入您的姓名" >
</div>
<div>
<span >手机号码:</span>
<input v-model="phone" type="number" maxlength="11" placeholder="请输入您的手机号码">
</div>
<div>
<span>所在保险公司:</span>
<select v-model="selectedCompany" v-show="this.selectedCompany !== ''" >
<option value="-1">请选择</option>
<option value="">自定义输入</option>
<option v-for="option in companyOptions" v-bind:value="option.id">
{{ option.value }}
</option>
</select>
<input v-model="selectedCustomCompany" v-show="this.selectedCompany === ''" type="text" maxlength="12" placeholder="请输入公司名称">
</div>
</div>
</template>
<script>
import Vue from 'vue'
import vcookie from 'vue-cookie'
import axios from 'axios'
import { companies } from '../data/companies'
Vue.use(vcookie)
export default {
name: 'PartiInfo',
data: function () {
return {
companyOptions: companies
}
},
computed: {
username: {
get: function () {
return this.$store.state.username
},
set: function (newValue) {
this.$store.commit('updateUsername', newValue)
}
},
phone: {
get: function () {
return this.$store.state.phone
},
set: function (newValue) {
this.$store.commit('updatePhone', newValue)
}
},
selectedCompany: {
get: function () {
return this.$store.state.company
},
set: function (newValue) {
this.$store.commit('updateCompanyName', '')
for (var i = 0; i < this.companyOptions.length; i++) {
if (this.companyOptions[i].id === newValue) {
this.$store.commit('updateCompanyName', this.companyOptions[i].value)
}
}
this.$store.commit('updateCompany', newValue)
}
},
selectedCustomCompany: {
get: function () {
return this.$store.state.companyName
},
set: function (newValue) {
this.$store.commit('updateCompanyName', newValue)
}
}
},
mounted: function () {
var vm = this
var uuid = this.$cookie.get('api_uuid')
var token = this.$cookie.get('api_token')
axios.defaults.headers.common['api_token'] = token
// 'eff7756789804c179e9efb0cbb48ecca'
axios.get(vm.apiUrl + '/api/v1/activity/user/uuid/' + uuid)
.then(function (response) {
// 初始化自定义保险公司
var notExist = true
for (var i = 0; i < vm.companyOptions.length; i++) {
if (vm.companyOptions[i].id === response.data.response.companyCode || vm.companyOptions[i].value === response.data.response.companyName) {
notExist = false
}
}
if (notExist) {
vm.companyOptions.push({id: response.data.response.companyCode, value: response.data.response.companyName})
}
// 初始化数据
vm.$store.commit('updateUsername', response.data.response.realName)
vm.$store.commit('updatePhone', response.data.response.mobile)
if (response.data.response.companyCode && response.data.response.companyCode !== '') {
vm.$store.commit('updateCompany', response.data.response.companyCode)
}
if (response.data.response.companyName && response.data.response.companyName !== '') {
vm.$store.commit('updateCompanyName', response.data.response.companyName)
}
}).catch(function (error) {
console.log('Error! Could not reach the API. ' + error)
})
}
}
</script>

【前端vue开发】vue开发输入姓名,电话,公司表单提交组件的更多相关文章

  1. Java Web开发总结(三) —— request接收表单提交中文参数乱码问题

    1.以POST方式提交表单中文参数的乱码问题 <%@ page language="java" import="java.util.*" pageEnco ...

  2. 利用jquery.validate以及bootstrap的tooltip开发气泡式的表单校验组件

    表单校验是页面开发中非常常见的一类需求,相信每个前端开发人员都有这方面的经验.网上有很多成熟的表单校验框架,虽然按照它们默认的设计,用起来没有多大的问题,但是在实际工作中,表单校验有可能有比较复杂的个 ...

  3. input file 在开发中遇到的问题 类似ajax form表单提交 input file中的文件

    最近在做项目的过程中遇到个问题,在这里做个记录防止日后忘记 现今的主流浏览器由于ajax提交form表单无法把文件类型数据提交到后台,供后台处理,可是开发中由于某些原因又不得不用ajax提交文件, 为 ...

  4. Swift3.0服务端开发(二) 静态文件添加、路由配置以及表单提交

    今天博客中就来聊一下Perfect框架的静态文件的添加与访问,路由的配置以及表单的提交.虽然官网上有聊静态文件的访问的部分,但是在使用Perfect框架来访问静态文件时还是有些点需要注意的,这些关键点 ...

  5. Atitit vue.js 把ajax数据 绑定到form表单

    Atitit vue.js 把ajax数据 绑定到form表单 1.1. 使用场景:主要应用在编辑与提交场合..1 1.2. 绑定数据到form控件,可以使用jquery,不过vue.js更加简单1 ...

  6. vue之回车触发表单提交

    vue之回车触发表单提交 操作: 在From标签中添加: @keyup.enter.native="handleSubmit" 注意: 1.若添加在Input标签上,只有聚焦在该i ...

  7. 前端基础:form表单提交

    今天介绍下form表单提交经常用到的表单元素. 1:datalist元素,一般与input组建配合使用,以定义可能输入的值,例如: <!DOCTYPE html> <html lan ...

  8. 前端表单提交数据~php获取表单内容

    上图代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www ...

  9. 表单提交---前端页面模拟表单提交(form)

    有些时候我们的前端页面总没有<form></form>表单,但是具体的业务时,我们又必须用表单提交才能达到我们想要的结果,LZ最近做了一些关于导出的一些功能,需要调用浏览器默认 ...

随机推荐

  1. 累计进度条 PSP

    每周例行报告 本周PSP 类别 任务 开始时间 结束时间 被打断时间 总计工作时间    11月16日 代码 参与团队项目 10:05 12:12 15 112min 写博客 进度统计 21:52 2 ...

  2. 使用 TListView 控件(4)

    本例效果图: 代码文件: unit Unit1; interface uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, ...

  3. codeforces4A

    Watermelon CodeForces - 4A Qingyu有一个简单的问题想让你解决. 输入一个数,如果它是2,或者它是奇数,输出NO,否则输出YES. 很简单吧,因此你应该很快解决. 输入 ...

  4. 【bzoj3881】[Coci2015]Divljak AC自动机+树链的并+DFS序+树状数组

    题目描述 Alice有n个字符串S_1,S_2...S_n,Bob有一个字符串集合T,一开始集合是空的. 接下来会发生q个操作,操作有两种形式: “1 P”,Bob往自己的集合里添加了一个字符串P. ...

  5. Java 8新特性之Date/Time(八恶人-4)

    Mannix‘s Marauders -Chris Mannix  曼尼克斯掠夺者 曼尼克斯·克里斯 “I'm the new sheriff of Red Rock.”  “我是红石镇的新任警长” ...

  6. 本地开启apache虚拟服务器

    一般来说,服务器是可以托管多个网站的,只要服务器开启虚拟主机的功能,原理是根据来源的host进行判断,不同的域名实现不同的文件访问,这样就可以实现一个服务器托管不同网站了,只要服务器的性能和带宽足够强 ...

  7. MT【102】一个常见的因式分解公式

    解答: $x^3+y^3+1-3xy=(x+y+1)(x^2+y^2+1+xy-x-y)=$ $(x+y+1)(x^2+y^2+1+xy-x-y)=$ $\frac{1}{2}(x+y+1)[(x-y ...

  8. 洛谷P4234 最小差值生成树(LCT,生成树)

    洛谷题目传送门 和魔法森林有点像,都是动态维护最小生成树(可参考一下Blog的LCT总结相关部分) 至于从小到大还是从大到小当然无所谓啦,我是从小到大排序,每次枚举边,还没连通就连,已连通就替换环上最 ...

  9. 【题解】 bzoj1207: [HNOI2004]打鼹鼠 (动态规划)

    bzoj1207,懒得复制,戳我戳我 Solution: 挺傻逼的一个\(dp\),直接推就好了 这题在bzoj上的数据有点问题,题目保证每个时间点不会出现在同一位置两个地鼠,然而他有= =(还浪费我 ...

  10. 致研究者:2018 AI 研究趋势

    2017 年是机器学习领域最有成效.最具创意的一年.现在已经有很多博文以及官方报道总结了学界和业界的重大突破.本文略有不同,Alex Honchar在Medium发文,从研究者的角度分享机器学习明年发 ...