微信

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. import Ajax from '../../util/ajax'
  2. import api from '../../util/api'
  3. import toolClass from '../../util/util'
  4. const http = new Object
  5. // 请求数据
  6. http.getIndexLocation = (data) => {
  7. return new Promise((resolve, reject) => {
  8. Ajax(api.index.location.url, {
  9. method: api.index.location.method,
  10. queryData: {
  11. issys: data.issys,
  12. orgid: data.orgid
  13. }
  14. }).then(res => {
  15. resolve(res)
  16. }).catch((err) => {
  17. reject(err)
  18. })
  19. })
  20. }
  21. http.getBanner = (data) => {
  22. return new Promise((resolve, reject) => {
  23. Ajax(api.index.banner.url, {
  24. method: api.index.banner.method,
  25. queryData: {
  26. locationid: data.locationid,
  27. orgid: data.orgid
  28. }
  29. }).then(res => {
  30. resolve(res)
  31. }).catch((err) => {
  32. reject(err)
  33. })
  34. })
  35. }
  36. http.getMessage = (data) => {
  37. return new Promise((resolve, reject) => {
  38. Ajax(api.index.message.url, {
  39. method: api.index.message.method,
  40. queryData: {
  41. locationid: data.locationid,
  42. orgid: data.orgid
  43. }
  44. }).then(res => {
  45. resolve(res)
  46. }).catch((err) => {
  47. reject(err)
  48. })
  49. })
  50. }
  51. http.getProject = (data) => {
  52. return new Promise((resolve, reject) => {
  53. Ajax(api.index.project.url, {
  54. method: api.index.project.method,
  55. queryData: {
  56. locationid: data.locationid,
  57. orgid: data.orgid
  58. }
  59. }).then(res => {
  60. resolve(res)
  61. }).catch((err) => {
  62. reject(err)
  63. })
  64. })
  65. }
  66. http.getCms = (data) => {
  67. return new Promise((resolve, reject) => {
  68. Ajax(api.index.cms.url, {
  69. method: api.index.cms.method,
  70. queryData: {
  71. locationid: data.locationid,
  72. orgid: data.orgid
  73. }
  74. }).then(res => {
  75. resolve(res)
  76. }).catch((err) => {
  77. reject(err)
  78. })
  79. })
  80. }
  81. export default {
  82. namespaced: true,
  83. state: {
  84. banner: [],
  85. fiveA: [],
  86. message: [],
  87. project: [],
  88. cms: [],
  89. courseList: [],
  90. longitude1: 0,
  91. latitude1: 0
  92. },
  93. mutations: {
  94. setBanner (state, data) { // 获取首页轮播图
  95. data = data || []
  96. state.banner = data
  97. },
  98. setFiveA (state, data) { // 获取5A
  99. data = data || []
  100. state.fiveA = data
  101. },
  102. setMessage (state, data) { // 获取首页消息
  103. data = data || []
  104. if (data.length > 3) {
  105. state.message = data.slice(0, 3)
  106. } else {
  107. state.message = data
  108. }
  109. },
  110. setProject (state, data) { // 获取项目专题
  111. if (state.latitude1 === 0 && state.longitude1 === 0) {
  112. data.forEach((item) => {
  113. item.jl = '未获取到当前定位'
  114. })
  115. state.project = data
  116. } else {
  117. data = data || []
  118. let arr = []
  119. let dataNew = []
  120. data.forEach((item) => {
  121. if (item.Coordinate) {
  122. item.jl = parseInt(toolClass.getGreatCircleDistance(state.latitude1, state.longitude1, item.Coordinate.split(',')[0], item.Coordinate.split(',')[1]))
  123. arr.push({ jl: item.jl, CmsCaseId: item.CmsCaseId })
  124. } else {
  125. item.jl = 400000000
  126. arr.push({ jl: item.jl, CmsCaseId: item.CmsCaseId })
  127. }
  128. })
  129. arr.sort((a, b) => { return a.jl - b.jl })
  130. arr.forEach((curr) => {
  131. data.forEach((item) => {
  132. if (curr.CmsCaseId === item.CmsCaseId && item.jl === curr.jl) {
  133. item.jl = `距离${item.jl}米`
  134. dataNew.push(item)
  135. }
  136. })
  137. })
  138. state.project = dataNew
  139. }
  140. },
  141. setCms (state, data) { // 获取cms
  142. data = data || []
  143. state.cms = data
  144. },
  145. updateCourseList (state, data) { // 更新附近课程
  146. state.courseList = data.list || []
  147. },
  148. upDateLocation (state, data) {
  149. state.longitude1 = data.longitude1
  150. state.latitude1 = data.latitude1
  151. }
  152. },
  153. actions: {
  154. setLocation (context, data) {
  155. context.commit('upDateLocation', data)
  156. },
  157. getCourseList (context, payload) { // 获取附近课程
  158. return new Promise((resolve, reject) => {
  159. Ajax(api.index.getCourseList.url, {
  160. method: api.index.getCourseList.method,
  161. queryData: { ...payload }
  162. }).then(res => {
  163. context.commit('updateCourseList', res)
  164. resolve(res)
  165. }).catch((err) => {
  166. reject(err)
  167. })
  168. })
  169. },
  170. getIndexLocation (context, data) {
  171. return new Promise((resolve) => {
  172. http.getIndexLocation(data).then((res) => {
  173. context.commit('setFiveA', res)
  174. resolve(res)
  175. })
  176. })
  177. },
  178. getProjectList (context, data) {
  179. return new Promise((resolve, reject) => {
  180. Ajax(api.index.project.url, {
  181. method: api.index.project.method,
  182. queryData: {
  183. locationid: data.locationid,
  184. orgid: data.orgid
  185. }
  186. }).then(res => {
  187. context.commit('setProject', res)
  188. resolve(res)
  189. }).catch((err) => {
  190. reject(err)
  191. })
  192. })
  193. },
  194. async getIndexInfo (context, param) { // 首页全部请求
  195. try {
  196. let banner = await http.getBanner(param)
  197. context.commit('setBanner', banner)
  198. let message = await http.getMessage(param)
  199. context.commit('setMessage', message)
  200. let project = await http.getProject(param)
  201. context.commit('setProject', project)
  202. let cms = await http.getCms(param)
  203. context.commit('setCms', cms)
  204. } catch (err) {
  205. console.log(err)
  206. }
  207. }
  208. }
  209. }