nova.js 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. const CONFIG = require("../config.js");
  2. const plugin = requirePlugin('fm-plugin')
  3. const { Parse } = plugin
  4. // var Parse = getApp().Parse;
  5. module.exports = {
  6. goNovaURL: (path) => {
  7. console.log(path);
  8. // 外部应用,检测Scheme:https:// http:// wxapp://
  9. if (path.indexOf("http") != -1) {
  10. let p = path.split('?')[1]
  11. let url = p.substring(p.indexOf('http')).split('&')[0]
  12. console.log(path);
  13. wx.navigateTo({
  14. url: path
  15. });
  16. return
  17. }
  18. if (path.indexOf("wxapp") != -1) {
  19. return
  20. }
  21. if (path.indexOf("/n") != -1) {
  22. wx.navigateTo({
  23. url: path
  24. });
  25. return
  26. }
  27. // 内部应用,截取path第一位为module,后续为路径,?为参数
  28. // var plist = path.split("/")
  29. // var rpath = path.split("?")[0]
  30. // var paramstr = path.split("?")[1]
  31. // if(type=="module"){
  32. // return "comp"
  33. // }
  34. // if(type=="path"){
  35. // return rpath
  36. // }
  37. // if(type=="tag"){ // 如:"/nova-zhiliang/pages/my/index" 转为组件名 "nova-zhiliang-pages-my-index"
  38. // var tag = rpath.split("/").slice(1).join("-");
  39. // return tag
  40. // }
  41. // if(type=="params"){
  42. // if(paramstr){
  43. // return params2Json(paramstr)
  44. // }else{
  45. // return {}
  46. // }
  47. // }
  48. // wx.showToast({
  49. // title: '未设置跳转链接,暂不支持该跳转',
  50. // icon: 'error',
  51. // duration: 1000
  52. // })
  53. return
  54. },
  55. getBlockData: async (data) => {
  56. let className = ""
  57. if (data.className || (data.filter && data.filter.className)) {
  58. className = data.className || data.filter.className
  59. }
  60. let filter = data.filter || {}
  61. if (!data.src || data.src == "list") {
  62. return data.list
  63. }
  64. if (data.src && data.src == "filter" && className) {
  65. let query = new Parse.Query(className);
  66. query.equalTo("company", CONFIG.default.company)
  67. // 加载equalTo条件
  68. console.log(filter.equalTo, data.filter.className)
  69. let keyArr = Object.keys(filter)
  70. keyArr.forEach(key => {
  71. console.log(key)
  72. filter[key].forEach(f => {
  73. if (key == 'include') {
  74. query[key](f.key)
  75. }
  76. if (key != 'include') {
  77. if (f.type == "Boolean" && f.isOpen) {
  78. query[key](f.key, f.value)
  79. }
  80. if ((f.type == 'String' || f.type == 'select') && f.value) {
  81. query[key](f.key, f.value)
  82. }
  83. if (f.type == 'Pointer' && f.value) {
  84. query[key](f.key, f.value)
  85. }
  86. if (f.type == 'Array' && f.value && f.value.length > 0) {
  87. query[key](f.key, f.value)
  88. }
  89. }
  90. })
  91. });
  92. switch (className) {
  93. case 'Lesson':
  94. query.ascending('sort')
  95. break
  96. case 'Article':
  97. query.ascending('order')
  98. break
  99. case 'RushGoods':
  100. query.ascending('order')
  101. break
  102. case 'ShopStore':
  103. query.ascending('score')
  104. break
  105. default:
  106. query.ascending('index')
  107. break
  108. }
  109. if (data.limit) {
  110. query.limit(data.limit)
  111. }
  112. let list = await query.find();
  113. console.log("getBlockData", list);
  114. return list.map(item => item.toJSON())
  115. }
  116. return []
  117. },
  118. async checkComponentsDataProperties(comp) {
  119. console.log(comp.data.options && comp.data.options.data)
  120. return;
  121. },
  122. // More for Delete
  123. // 跳转详情
  124. goGoodsDetail: (e) => {
  125. //  let userInfo = wx.getStorageSync("userLogin");
  126. //         if (userInfo == "") {
  127. //           util.loginNow();
  128. //           return
  129. //        }
  130. console.log(e)
  131. console.log(e.currentTarget.dataset.link, e.currentTarget.dataset.type)
  132. if (e.currentTarget.dataset.link && e.currentTarget.dataset.type == "video") {
  133. return
  134. }
  135. // 截取后端传过来的商品的objectId
  136. let arr = e.currentTarget.dataset.link.split("=")
  137. if (!arr[1]) {
  138. wx.navigateBack()
  139. }
  140. console.log(arr[1])
  141. // 根据objectId获取商品信息
  142. let goodsInfo = new Parse.Query("ShopGoods")
  143. goodsInfo.equalTo("objectId", arr[1])
  144. goodsInfo.first().then(res => {
  145. console.log(res)
  146. let data = res.toJSON()
  147. wx.navigateTo({
  148. url: '/nova-shop/pages/goods_detail/goods_detail',
  149. events: {
  150. acceptGoodsDetail: function (goodsInfo) {
  151. console.log(goodsInfo)
  152. }
  153. },
  154. success: function (res) {
  155. res.eventChannel.emit('acceptGoodsDetail', {
  156. data
  157. })
  158. }
  159. });
  160. })
  161. // console.log(this.data.blocks)
  162. },
  163. toStoreDetail: (e) => {
  164. let userInfo = wx.getStorageSync("userLogin");
  165. if (userInfo == "") {
  166. util.loginNow();
  167. return
  168. }
  169. let data = JSON.stringify(e.currentTarget.dataset.item)
  170. if (!data) {
  171. wx.navigateBack()
  172. }
  173. wx.navigateTo({
  174. url: '/nova-shop/pages/store/store?data=' + data,
  175. })
  176. },
  177. toArticleDetail: (e) => {
  178. //  let userInfo = wx.getStorageSync("userLogin");
  179. //         if (userInfo == "") {
  180. //           util.loginNow();
  181. //           return
  182. //        }
  183. wx.navigateTo({
  184. url: e.currentTarget.dataset.url,
  185. })
  186. },
  187. };