index.js 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317
  1. import houseApi from '../../apis/house'
  2. import cityApi from '../../apis/city'
  3. import { isPhoneX } from '../../utils/tools'
  4. import { bindInput } from '../../utils/utils'
  5. const app = getApp();
  6. const panelData={
  7. 'region':[{
  8. id:'quyu',
  9. items:[{
  10. name:'珠海',
  11. id:''
  12. }]
  13. },
  14. {
  15. id:'didian',
  16. items:[{
  17. name:'不限',
  18. id:''
  19. }]
  20. },
  21. {
  22. id:'xianshi',
  23. items:[{
  24. name:'不限',
  25. id:''
  26. }]
  27. }],
  28. 'jiage':[{
  29. id:'jiage',
  30. filter:'价格',
  31. items:[{
  32. name:'不限',
  33. id:''
  34. },{
  35. name:'50万以下',
  36. id:'0#50'
  37. },{
  38. name:'50万-100万',
  39. id:'50#100'
  40. },{
  41. name:'100万-150万',
  42. id:'100#150'
  43. },{
  44. name:'150万-200万',
  45. id:'150#200'
  46. },{
  47. name:'200万-250万',
  48. id:'200#250'
  49. },{
  50. name:'250万-300万',
  51. id:'250#300'
  52. }]
  53. }],
  54. 'jushi':[{
  55. id:'jushi',
  56. filter:'居室',
  57. items:[{
  58. name:'不限',
  59. id:''
  60. },{
  61. name:'1室',
  62. id:'1'
  63. },{
  64. name:'2室',
  65. id:'2'
  66. },{
  67. name:'3室',
  68. id:'3'
  69. },{
  70. name:'4室',
  71. id:'4'
  72. }]
  73. }]
  74. }
  75. let type_acive = ''
  76. const LD = {
  77. agencyId: '',
  78. id: '',
  79. name: "不限",
  80. parentId: '',
  81. type: ''
  82. }
  83. Page({
  84. /**
  85. * 组件的属性列表
  86. */
  87. bindInput,
  88. data: {
  89. houses: [],
  90. type_acive,
  91. tab_panel:panelData[type_acive]||[],
  92. icon_list: [
  93. {name: '总价',icon:'edit',type:"jiage"},
  94. {name: '居室',icon:'write',type:"jushi"}
  95. ],
  96. fetcherData: {
  97. page_num: 1,
  98. city: '',
  99. page_size: 10,
  100. saleState: 1,
  101. district:'',
  102. price_s:'',
  103. rooms:''
  104. },
  105. has_next: true,
  106. navbarInitTop: 80,
  107. seachKey:'',
  108. currentCity:'珠海市'
  109. },
  110. changeListType(e){
  111. let {type} = e.currentTarget.dataset
  112. let obj = {
  113. type_acive: type,
  114. tab_panel: panelData[type]
  115. }
  116. if (type===this.data.type_acive) {
  117. obj['type_acive'] = ''
  118. }
  119. this.setData({
  120. type_acive: '',
  121. tab_panel: []
  122. })
  123. this.setData(obj)
  124. },
  125. getCityListByProv(){
  126. // app.wxshowloading('拼命加载中...');
  127. var province = app.globalData.province;
  128. cityApi.getCityListByProv(province).then(res => {
  129. let items = res.data
  130. let quyu = panelData['region'].find(item=>item.id==='quyu')
  131. quyu['items'] = items
  132. let city = items.find(sub=>sub.name===this.data.currentCity)
  133. city && this.getSubList({
  134. selectObj:{
  135. didian:LD,
  136. xianshi:LD,
  137. quyu:city
  138. },
  139. type:'quyu'
  140. })
  141. }).finally(() => {
  142. // wx.hideLoading()
  143. })
  144. },
  145. getSubList(data){
  146. let {selectObj,type} = data
  147. let current = selectObj[type]
  148. cityApi.getSubList(current.id).then(res => {
  149. let items = res.data
  150. let tmp = []
  151. if (type==='quyu') {
  152. tmp = panelData['region'].find(item=>item.id==='didian')
  153. let sub = panelData['region'].find(item=>item.id==='xianshi')
  154. sub['items'] = [LD]
  155. }
  156. if (type==='didian') {
  157. tmp = panelData['region'].find(item=>item.id==='xianshi')
  158. }
  159. items.unshift(LD)
  160. tmp['items'] = tmp['items'] && items
  161. this.setData({
  162. tab_panel:panelData['region']
  163. })
  164. }).finally(() => {
  165. // wx.hideLoading()
  166. })
  167. },
  168. comfirmhandle(e){
  169. let data = e.detail
  170. let fetData = this.data.fetcherData
  171. let tmp = Object.assign(fetData,{
  172. price_s:data.jiage||fetData.price||'',
  173. room_s:data.jushi||''
  174. })
  175. this.closeTypeActive()
  176. this.setData({
  177. fetcherData: tmp
  178. })
  179. this.closeTypeActive()
  180. this.getHouseList()
  181. },
  182. selecthandle(e){
  183. let {selectObj,type} = e.detail
  184. console.log( e.detail)
  185. if (type === 'quyu'||type === 'xianshi'||type === 'didian') {
  186. this.getSubList(e.detail)
  187. }
  188. console.log(selectObj)
  189. let tmp = Object.assign(this.data.fetcherData,{
  190. district:selectObj.didian.name,
  191. price_s:selectObj.jiage?selectObj.jiage.id:'',
  192. rooms:selectObj.jushi?selectObj.jushi.id:'',
  193. city: selectObj.quyu.name.replace('市', '')
  194. })
  195. this.setData({
  196. fetcherData: tmp
  197. })
  198. if (type !== 'quyu' && type !== 'didian') {
  199. this.closeTypeActive()
  200. }
  201. this.getHouseList()
  202. },
  203. tapSearch(){
  204. this.setData({
  205. 'fetcherData.title': this.data.seachKey
  206. })
  207. this.getHouseList()
  208. },
  209. closeTypeActive(){
  210. this.setData({
  211. type_acive:''
  212. })
  213. },
  214. // onReachBottomDistance: 50,
  215. // onReachBottom: function () {
  216. // let page = this.data.fetcherData.page++
  217. // this.setData({
  218. // 'fetcherData.page': page
  219. // })
  220. // this.getHouseList()
  221. // },
  222. onShow: function () {
  223. this.getInitData()
  224. },
  225. getInitData(){
  226. this.getHouseList()
  227. this.getCityListByProv()
  228. },
  229. getHouseList: function () {
  230. // app.wxshowloading('拼加载中...');
  231. this.data.fetcherData.agency_user_id = getApp().globalData.userinfo.user_id
  232. houseApi.fetchAgencyHouseList(this.data.fetcherData).then(res => {
  233. this.setData({
  234. houses: res.data.list.map(item => {
  235. item.cover_image += '?x-oss-process=image/resize,w_210,limit_0'
  236. return item
  237. })
  238. })
  239. }).finally(() => {
  240. // wx.hideLoading()
  241. })
  242. },
  243. onLoad: function (options) {
  244. // this.getInitData()
  245. isPhoneX().then(res => {
  246. this.setData({
  247. isIphoneX: res
  248. })
  249. })
  250. },
  251. stop () {
  252. return
  253. },
  254. onShareAppMessage: function (res) {
  255. var path ='/pages/index/index'
  256. return {
  257. title: '四维看看,海量复刻真房源',
  258. path: path,
  259. imageUrl: 'https://4d-tjw.oss-cn-shenzhen.aliyuncs.com/4dHouse/share.png', // 分享的封面图
  260. }
  261. },
  262. getPermission:function(){
  263. var that = this;
  264. return new Promise((resolve, reject) => {
  265. wx.getLocation({
  266. type: 'wgs84',
  267. success: function (res) {
  268. var latitude = res.latitude;
  269. var longitude = res.longitude;
  270. app.globalData.qqmapsdk.reverseGeocoder({
  271. location: {
  272. latitude: latitude,
  273. longitude: longitude
  274. },
  275. success: function (res) {
  276. var ad_info = res.result.ad_info;
  277. let province = ad_info.province;
  278. let city = ad_info.city.replace('市', '');
  279. let district = ad_info.district;
  280. app.SetProvinceCity(province, city, district);
  281. that.setData({
  282. // 'fetcherData.city': city
  283. })
  284. that.getInitData()
  285. app.ShowToast('定位城市:' + city)
  286. },
  287. fail:function (res) {
  288. wx.showModal({
  289. title: '定位失败,请手动选择城市',
  290. });
  291. that.getInitData()
  292. }
  293. });
  294. },
  295. fail(err) {
  296. wx.showModal({
  297. title: '定位失败,请手动选择城市',
  298. });
  299. }
  300. })
  301. })
  302. }
  303. });