step2.vue 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. <template>
  2. <div>
  3. <common @asynCallBack="asynCallBack"></common>
  4. <top-header :pageTitle="pageTitle"></top-header>
  5. <div class="mui-content">
  6. <div class="mui-content-padded vongi-xzdw-search">
  7. <input @focusin="searchIn" @keyup="doSearchCompany" v-model="searchForm.name" type="search" placeholder="请输入机构名称">
  8. <span class="mui-icon mui-icon-search"></span>
  9. </div>
  10. <!--搜索结果的状态-->
  11. <!-- <div class="mui-content-padded flew-items flew-sp">
  12. <div class="vongi-xzdw-search mui-col-xs-10">
  13. <input type="search" placeholder="请输入姓名">
  14. <span class="mui-icon mui-icon-search"></span>
  15. </div>
  16. <a class="color4fc5f7">取消</a>
  17. </div> -->
  18. <ul class="mui-table-view vongi-xzyljg">
  19. <li v-for="(item,index) in searchCompanyList" class="mui-table-view-cell mui-media">
  20. <a @click="clickSearchCompany(item)" v-text="item.name">
  21. </a>
  22. </li>
  23. </ul>
  24. </div>
  25. <loading :visible="isLoading"></loading>
  26. </div>
  27. </template>
  28. <script>
  29. import * as API_Person from '@/apis/person'
  30. import Common from '$project/components/Common.vue'
  31. import Loading from '$project/components/Loading.vue'
  32. import TopHeader from '$project/components/TopHeader.vue'
  33. import {
  34. mapGetters,
  35. mapMutations
  36. } from 'vuex'
  37. import * as types from '$project/store/mutation-types'
  38. export default {
  39. name: 'RegisterPensionStep2',
  40. components: {
  41. Common,
  42. Loading,
  43. TopHeader
  44. },
  45. data() {
  46. return {
  47. pageTitle: '选择养老机构',
  48. subForm: {
  49. sceneId: '',
  50. sceneName: '',
  51. personRoleId: '',
  52. roleName: '',
  53. name: '',
  54. telephone: '',
  55. personId: '',
  56. companyId: '',
  57. companyName: '请选择',
  58. companyStructureId: '',
  59. //最终选择的数据
  60. selectCompanyStructureList: [],
  61. address: '',
  62. idCard: '',
  63. faceImageUrl: ''
  64. },
  65. isLoading: false,
  66. showType: 'search',
  67. searchForm: {
  68. sceneId: '',
  69. name: '',
  70. totalPage: 1,
  71. pageIndex: 1,
  72. pageSize: 20,
  73. },
  74. searchCompanyList: [],
  75. inputIng: false,
  76. }
  77. },
  78. created() {
  79. this.subForm = this.register_form_data;
  80. this.searchForm.sceneId = this.subForm.sceneId;
  81. },
  82. methods: {
  83. //搜索出来的公司选择
  84. clickSearchCompany(item) {
  85. this.subForm.companyId = item.id;
  86. this.subForm.companyName = item.name;
  87. this.set_register_form_data(this.subForm);
  88. this.$router.push({
  89. name: 'RegisterPensionStep1'
  90. })
  91. },
  92. //进入搜索
  93. searchIn() {
  94. this.inputIng = false;
  95. this.showType = 'search';
  96. },
  97. //搜索
  98. doSearchCompany() {
  99. if (this.inputIng) {
  100. return false
  101. }
  102. this.inputIng = true;
  103. var _this = this;
  104. setTimeout(function() {
  105. if (_this.searchForm.name) {
  106. _this.searchForm.pageIndex = 1;
  107. _this.getSearchCompanyList();
  108. } else {
  109. _this.inputIng = false;
  110. }
  111. }, 500);
  112. },
  113. //根据公司名称搜索
  114. getSearchCompanyList() {
  115. this.isLoading = true;
  116. API_Person.getCompanyListBySeach(this.searchForm).then(response => {
  117. this.isLoading = false;
  118. if (response) {
  119. if (this.searchForm.pageIndex == 1) {
  120. this.searchCompanyList = response.data;
  121. this.searchForm.pageIndex = response.pageNumber;
  122. this.searchForm.totalPage = response.totalPage;
  123. } else {
  124. this.searchCompanyList = [
  125. ...this.searchCompanyList,
  126. ...response.data
  127. ];
  128. }
  129. }
  130. this.searchForm.pageIndex++;
  131. this.inputIng = false;
  132. }).catch(error => {
  133. this.isLoading = false;
  134. mui.toast(error);
  135. })
  136. },
  137. //下拉事件
  138. handleScrool() {
  139. if (isReachBottom()) {
  140. console.log('到达底部')
  141. if (this.listForm.pageIndex <= this.listForm.totalPage && this.isLoading == false) {
  142. this.getSearchCompanyList();
  143. } else {
  144. return;
  145. }
  146. }
  147. },
  148. asynCallBack() {
  149. },
  150. ...mapMutations({
  151. set_register_form_data: types.SET_REGISTER_FORM_DATA,
  152. })
  153. },
  154. mounted() {
  155. //监控下拉加载事件
  156. var _this = this;
  157. window.addEventListener('scroll', _this.handleScrool);
  158. },
  159. destroyed() {
  160. //销毁监听事件
  161. var _this = this;
  162. window.removeEventListener('scroll', _this.handleScrool);
  163. },
  164. computed: {
  165. ...mapGetters({
  166. openId: 'wx_openid',
  167. token: 'token',
  168. person_data: 'person_data',
  169. person_popedom: 'person_popedom',
  170. register_form_data: 'register_form_data'
  171. })
  172. }
  173. }
  174. </script>
  175. <style scoped src="$project/assets/css/xpwyfyy.css"></style>
  176. <style scoped src="$project/assets/css/sczpfyy.css"></style>
  177. <style src="$project/assets/css/iconfont.css"></style>
  178. <style>
  179. </style>