step3.vue 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249
  1. <template>
  2. <div>
  3. <common @asynCallBack="asynCallBack" :projectCheck="false"></common>
  4. <top-header :pageTitle="pageTitle"></top-header>
  5. <div class="mui-content">
  6. <div class="mui-content-padded vongi-qingjiadt">
  7. <form class="mui-input-group">
  8. <div class="mui-input-row">
  9. <label>养老类型</label>
  10. <span v-text="subForm.sceneName"></span>
  11. </div>
  12. <div class="mui-input-row">
  13. <label>您的身份</label>
  14. <span v-text="subForm.roleName"></span>
  15. </div>
  16. </form>
  17. </div>
  18. <!-- <div v-if="subForm.sceneId=='3' || subForm.companyId" class="mui-content-padded vongi-qingjiadt vongi-editme">
  19. <form class="mui-input-group">
  20. <div class="mui-input-row">
  21. <label v-text="companyLabel"></label>
  22. <span v-text="subForm.companyName"></span>
  23. </div>
  24. <div v-for="(item,index) in structureNameList" class="mui-input-row">
  25. <label v-text="item"></label>
  26. <button @click="selectStructure(index)" class="mui-btn mui-btn-block mui-navigate-right mui-ellipsis" type='button'
  27. style="width:65%">
  28. {{subForm.selectCompanyStructureList[index]?subForm.selectCompanyStructureList[index].name:'请选择'}}
  29. </button>
  30. </div>
  31. </form>
  32. </div> -->
  33. <div class="mui-content-padded vongi-qingjiadt vongi-editme">
  34. <form class="mui-input-group">
  35. <div class="mui-input-row">
  36. <label v-text="companyLabel"></label>
  37. <span v-text="subForm.companyName"></span>
  38. </div>
  39. <!--居家养老状态-->
  40. <div class="mui-input-row">
  41. <label>家庭住址</label>
  42. <textarea v-model="subForm.address" rows="5" placeholder="请输入家庭住址"></textarea>
  43. </div>
  44. </form>
  45. </div>
  46. <div class="vongi-btn vongi-login-btn">
  47. <button class="mui-btn mui-btn-primary" @click="nextStep">
  48. 下一步
  49. </button>
  50. </div>
  51. </div>
  52. </div>
  53. </template>
  54. <script>
  55. import Vue from 'vue'
  56. require('$project/assets/js/mui.picker.min.js');
  57. import * as API_Person from '@/apis/person'
  58. import Common from '$project/components/Common.vue'
  59. import Loading from '$project/components/Loading.vue'
  60. import TopHeader from '$project/components/TopHeader.vue'
  61. import {
  62. mapGetters,
  63. mapMutations
  64. } from 'vuex'
  65. import * as types from '$project/store/mutation-types'
  66. export default {
  67. name: 'RegisterPensionStep3',
  68. components: {
  69. Common,
  70. Loading,
  71. TopHeader
  72. },
  73. data() {
  74. return {
  75. pageTitle: '注册',
  76. subForm: {
  77. sceneId: '',
  78. sceneName: '',
  79. personRoleId: '',
  80. roleName: '',
  81. name: '',
  82. telephone: '',
  83. personId: '',
  84. companyId: '',
  85. companyName: '请选择',
  86. companyStructureId: '',
  87. serviceCompanyId: '',
  88. serviceCompanyName: '请选择',
  89. //最终选择的数据
  90. selectCompanyStructureList: [],
  91. address: '',
  92. idCard: '',
  93. faceImageUrl: '',
  94. popularizePersonId: ''
  95. },
  96. isLoading: false,
  97. structureList: [],
  98. structureNameList: [],
  99. }
  100. },
  101. created() {
  102. this.subForm = this.register_form_data;
  103. },
  104. methods: {
  105. //获取公司部门列表
  106. getStructureList() {
  107. this.isLoading = true;
  108. API_Person.getCompanyStructureList(this.subForm.companyId).then(response => {
  109. this.isLoading = false;
  110. Vue.set(this.structureList, 0, response.structureInfoList)
  111. this.structureNameList = response.structureNameList;
  112. }).catch(error => {
  113. this.isLoading = false;
  114. mui.toast(error);
  115. })
  116. },
  117. //选择部门
  118. selectStructure(index) {
  119. if (this.structureList[index]) {
  120. var structureList = [];
  121. for (var i = 0; i < this.structureList[index].length; i++) {
  122. structureList.push({
  123. value: this.structureList[index][i]['id'],
  124. text: this.structureList[index][i]['structureName'],
  125. })
  126. }
  127. var _this = this;
  128. var picker = new mui.PopPicker();
  129. picker.setData(structureList);
  130. picker.show(function(selectItems) {
  131. _this.getStructureListNext(index);
  132. //设置保存数据
  133. Vue.set(_this.subForm.selectCompanyStructureList, index, {
  134. id: selectItems[0].value,
  135. name: selectItems[0].text
  136. })
  137. })
  138. } else {
  139. mui.toast('请选择' + this.structureNameList[index - 1]);
  140. }
  141. },
  142. //获取下一层机构数据
  143. getStructureListNext(index) {
  144. //如果有下一层数据就去读取
  145. if (this.structureNameList[index + 1]) {
  146. this.isLoading = true;
  147. API_Person.getCompanyStructureByName(this.subForm.companyId, this.structureNameList[index + 1]).then(response => {
  148. this.isLoading = false;
  149. Vue.set(this.structureList, index + 1, response)
  150. }).catch(error => {
  151. this.isLoading = false;
  152. mui.toast(error);
  153. })
  154. }
  155. },
  156. //检测表单
  157. checkForm() {
  158. /* if (this.subForm.companyId !== 0) {
  159. //设置最后一个id
  160. let lastIndex = this.subForm.selectCompanyStructureList.length;
  161. let lastItem = this.subForm.selectCompanyStructureList[lastIndex - 1];
  162. //只有当选择的数据长度等于返回的总长度才赋值通过
  163. if (lastIndex == this.structureNameList.length) {
  164. this.subForm.companyStructureId = lastItem ? lastItem.id : '';
  165. }
  166. if (!this.subForm.companyStructureId && this.structureNameList.length > 0) {
  167. mui.toast('请选择' + this.structureNameList[lastIndex]);
  168. return false;
  169. } else {
  170. return true;
  171. }
  172. } else {
  173. if (!this.subForm.address) {
  174. mui.toast('请输入您的家庭住址');
  175. return false;
  176. } else {
  177. return true;
  178. }
  179. } */
  180. return true;
  181. },
  182. //下一步
  183. nextStep() {
  184. if (this.checkForm()) {
  185. this.set_register_form_data(this.subForm);
  186. this.$router.push({
  187. name: 'RegisterPensionStep4'
  188. })
  189. }
  190. },
  191. asynCallBack() {
  192. },
  193. ...mapMutations({
  194. set_register_form_data: types.SET_REGISTER_FORM_DATA,
  195. })
  196. },
  197. mounted() {
  198. if (this.subForm.sceneId == '3' || this.subForm.companyId) {
  199. //获取公司部门列表
  200. this.getStructureList();
  201. }
  202. },
  203. destroyed() {
  204. },
  205. computed: {
  206. companyLabel: {
  207. // getter
  208. get: function() {
  209. if (this.subForm.sceneId == '3') {
  210. return '养老机构';
  211. } else if (this.subForm.sceneId == '4') {
  212. return '所在小区';
  213. } else {
  214. return '';
  215. }
  216. },
  217. // setter
  218. set: function(newValue) {
  219. console.log(newValue)
  220. }
  221. },
  222. ...mapGetters({
  223. openId: 'wx_openid',
  224. token: 'token',
  225. person_data: 'person_data',
  226. person_popedom: 'person_popedom',
  227. register_form_data: 'register_form_data'
  228. })
  229. }
  230. }
  231. </script>
  232. <style scoped src="$project/assets/css/xpwyfyy.css"></style>
  233. <style src="$project/assets/css/iconfont.css"></style>
  234. <style src="$project/assets/css/mui.picker.min.css"></style>
  235. <style>
  236. </style>