Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.52 KB | None | 0 0
  1. $ tree -L 1
  2. .
  3. ├── README.md
  4. ├── index.html
  5. ├── node_modules
  6. ├── package.json
  7. ├── src
  8. └── webpack.config.js
  9.  
  10. // App.vue
  11. <template>
  12. <div class="container">
  13. <form v-if="!submitted" >
  14. <div class="row">
  15. <div class="col-xs-12 col-sm-8 col-sm-offset-2 col-md-6 col-md-offset-3">
  16. <form>
  17. <fullname v-model="user.fullName"></fullname>
  18.  
  19. <div class="form-group">
  20. <label for="email">Email:</label>
  21. <input id="email" type="email" class="form-control" v-model="user.email">
  22. <label for="password">Password:</label>
  23. <input id="password" type="password" class="form-control" v-model="user.password">
  24. </div>
  25.  
  26. <fieldset class="form-group">
  27. <legend>Store data?</legend>
  28. <div class="form-check">
  29. <label class="form-check-label">
  30. <input type="radio" class="form-check-input" name="storeDataRadios" id="storeDataRadios1" value="true" checked v-model="user.storeData">
  31. Store Data
  32. </label>
  33. </div>
  34. <div class="form-check">
  35. <label class="form-check-label">
  36. <input type="radio" class="form-check-input" name="storeDataRadios" id="storeDataRadios2" value="false" v-model="user.storeData">
  37. No, do not make my data easily accessible
  38. </label>
  39. </div>
  40. </fieldset>
  41. </form>
  42.  
  43. <button class="btn btn-primary" @click.prevent="submitForm()">Submit</button>
  44.  
  45. </div>
  46. </div>
  47. </form>
  48. <hr>
  49. <div v-if="submitted" class="row">
  50. <div class="col-xs-12 col-sm-8 col-sm-offset-2 col-md-6 col-md-offset-3">
  51. <div class="panel panel-default">
  52. <div class="panel-heading">
  53. <h4>Your Data</h4>
  54. </div>
  55. <div class="panel-body">
  56. <p>Full Name: {{ user.fullName }}</p>
  57. <p>Mail: {{ user.email }}</p>
  58. <p>Password: {{ user.password }} </p>
  59. <p>Store in Database?: {{ user.storeData }}</p>
  60. </div>
  61. </div>
  62. </div>
  63. </div>
  64. </div>
  65. </template>
  66.  
  67. <script>
  68. import FullName from './FullName.vue';
  69.  
  70. export default {
  71. data() {
  72. return {
  73. user: {
  74. fullName: 'John Smith',
  75. email: '',
  76. password: '',
  77. storeData: true,
  78. },
  79. submitted: false
  80. }
  81. },
  82. methods: {
  83. submitForm() {
  84. this.submitted = true;
  85. },
  86. },
  87. components: {
  88. 'fullname' : FullName,
  89. }
  90. }
  91. </script>
  92.  
  93. <style>
  94. </style>
  95.  
  96. <template>
  97. <div class="form-group">
  98. <label for="firstName">First name:</label>
  99. <input id="firstName" type="text" class="form-control" :value="first" @input="emitChange(true, $event)">
  100.  
  101. <label for="lastName">Last name:</label>
  102. <input id="lastName" type="text" class="form-control" :value="last" @input="emitChange(false, $event)">
  103. </div>
  104. </template>
  105.  
  106. <script>
  107. export default {
  108. props: ['value'],
  109. methods: {
  110. emitChange(isFirst, evt) {
  111. let name = '';
  112. let evtValue = evt.target.value == undefined ? "" : evt.target.value;
  113.  
  114. if (isFirst) {
  115. name = evtValue +" "+ this.second;
  116. } else {
  117. name = this.first +" "+ evtValue;
  118. }
  119.  
  120. this.value = name;
  121. this.$emit('input', this.value);
  122. }
  123. },
  124. computed: {
  125. first() {
  126. if (this.value != "")
  127. return this.value.split(" ")[0];
  128. else return "";
  129. },
  130. last() {
  131. if (this.value != "")
  132. return this.value.split(" ")[1];
  133. else return "";
  134. }
  135. }
  136. }
  137. </script>
  138.  
  139. this.value = name;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement