<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. 开机自启动nginx,php-fpm

    开机自启动nginx,php-fpm(其他服务类似) centos 7以上是用Systemd进行系统初始化的,Systemd 是 Linux 系统中最新的初始化系统(init),它主要的设计目标是克服 ...

  2. jQuery简单效果

  3. 去除百度搜索结果中的广告的 js 代码

    在百度页面下控制台里执行如下代码, 然后关掉控制台 setInterval(() => { try{ Array.from( document.querySelectorAll('#conten ...

  4. c++11 noexcept修饰符

    c++11 noexcept修饰符 #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string> ...

  5. 「NOI2018」你的名字

    「NOI2018」你的名字 题目描述 小A 被选为了\(ION2018\) 的出题人,他精心准备了一道质量十分高的题目,且已经 把除了题目命名以外的工作都做好了. 由于\(ION\) 已经举办了很多届 ...

  6. bzoj1008/luogu3197 越狱 (快速幂)

    算$m^n-m*(m-1)^{n-1}$,就是总的减去不越狱的,不越狱就每次都选一个和上一个不一样的

  7. 个推基于 Apache Pulsar 的优先级队列方案

    作者:个推平台研发工程师 祥子 一.业务背景在个推的推送场景中,消息队列在整个系统中占有非常重要的位置.当 APP 有推送需求的时候, 会向个推发送一条推送命令,接到推送需求后,我们会把APP要求推送 ...

  8. 记踩坑--Flask Web开发:S6电子邮件 ----[Errno 11004] getaddrinfo failed

    必须要记录下踩过的坑,一来,为后来者铺路,二来,实在摔得疼,提醒自己写代码要谨小慎微. [Errno 11004] getaddrinfo failed 1.先排除邮箱账号和授权码的错误 测试如下代码 ...

  9. Dubbo学习笔记10:Dubbo服务消费方启动流程源码分析

    同理我们看下服务消费端启动流程时序图: 在<Dubbo整体架构分析>一文中,我们提到服务消费方需要使用ReferenceConfig API来消费服务,具体是调用代码(1)get()方法来 ...

  10. 20155321 2016-2017-2 《Java程序设计》第八周学习总结

    20155321 2016-2017-2 <Java程序设计>第八周学习总结 教材学习内容总结 创建Logger对象 static Logger getLogger(String name ...