<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. meta-inf文件夹以及MANIFEST.MF文件的作用

    meta-inf相当于一个信息包,目录中的文件和目录获得Java 2平台的认可与解释,用来配置应用程序.扩展程序.类加载器和服务 manifest.mf文件,在用jar打包时自动生成的. META-I ...

  2. 重启Hbase命令

    注意先启动hadoop,记得重启zookeeper. 具体操作如下: cd hadoop-2.7.4/sbin/ && ./stop-all.sh && ./start ...

  3. python自动化之调试

    #####调试 #####查看日志与断言 ''' 抛出异常使用raise语句.在代码中,raise语句包含以下部分: (1)raise关键字; (2)对Exception函数的调用; (3)传递给Ex ...

  4. WebSite下创建webapi

    注意这里说的是WebSite,不是Webapp 就是我们常说的新建网站,而不是新建项目 直接上代码: 1 在要在website下创建,那么应该这么干.先添加引用和global.asax 2 然后创建对 ...

  5. 关于http请求时 安全协议问题 PKIX path building failed 解决办法

    该问题的解决办法   1.在请求前需要将证书导入,不推荐       2.绕开安全协议处理 下面的代码时一段http请求并且绕开安全协议.可直接使用 /** * * @param url 需要请求的网 ...

  6. tp3 链接生成二维码

    https://packagist.org/packages/endroid/qr-code

  7. win下jdk7环境变量的配置

    win下jdk7环境变量的配置: 单击计算机(Computer),选择属性(Properties),选择高级系统设置(Advanced systems settings), 选择环境变量(Enviro ...

  8. OpenStack 存储服务 Cinder介绍和控制节点部署(十五)

    Cinder介绍 OpenStack块存储服务(cinder)为虚拟机添加持久的存储,块存储提供一个基础设施为了管理卷,以及和OpenStack计算服务交互,为实例提供卷.此服务也会激活管理卷的快照和 ...

  9. python教程1:Python基础之数据类型和变量、字符串和编码

    视频链接:http://www.bilibili.com/video/av10730372/ 我是在Linux下玩python的,Linux下默认安装python,直接打个pyhon3就好了,pyth ...

  10. bzoj千题计划206:bzoj1076: [SCOI2008]奖励关

    http://www.lydsy.com/JudgeOnline/problem.php?id=1076 很容易想到方程 dp[i][j]表示抛出了i个宝物,已选宝物状态为j的期望最大得分 初始化dp ...