index.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433
  1. // pages/channel/index/index.js
  2. // 引入 QCloud 小程序增强 SDK
  3. Date.prototype.format = function(format){
  4. var o = {
  5. "M+" : this.getMonth()+1, //month
  6. "d+" : this.getDate(), //day
  7. "h+" : this.getHours(), //hour
  8. "m+" : this.getMinutes(), //minute
  9. "s+" : this.getSeconds(), //second
  10. "q+" : Math.floor((this.getMonth()+3)/3), //quarter
  11. "S" : this.getMilliseconds() //millisecond
  12. }
  13. if(/(y+)/.test(format)) {
  14. format = format.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
  15. }
  16. for(var k in o) {
  17. if(new RegExp("("+ k +")").test(format)) {
  18. format = format.replace(RegExp.$1, RegExp.$1.length==1 ? o[k] : ("00"+ o[k]).substr((""+ o[k]).length));
  19. }
  20. }
  21. return format;
  22. }
  23. var qcloud = require('../../../vendor/qcloud-weapp-client-sdk/index');
  24. // 引入配置
  25. var config = require('../../../config');
  26. // 显示繁忙提示
  27. var showBusy = text => wx.showToast({
  28. title: text,
  29. icon: 'loading',
  30. duration: 10000
  31. });
  32. // 显示成功提示
  33. var showSuccess = text => {
  34. wx.hideToast();
  35. wx.showToast({
  36. title: text,
  37. icon: 'success'
  38. });
  39. };
  40. // 显示失败提示
  41. var showModel = (title, content) => {
  42. wx.hideToast();
  43. wx.showModal({
  44. title,
  45. content: JSON.stringify(content),
  46. showCancel: false
  47. });
  48. };
  49. var showMsg = (title, content) => {
  50. wx.hideToast();
  51. wx.showModal({
  52. title,
  53. content: content,
  54. showCancel: false
  55. });
  56. };
  57. var busy=false;
  58. //获取应用实例
  59. var app = getApp()
  60. Page({
  61. data:{
  62. userInfo: {},
  63. loading:false,
  64. loading_more:false,
  65. loading_show:false,
  66. users_count:0,
  67. next_data:true,
  68. busy:false,
  69. posts:[]
  70. },
  71. post_list:function(){
  72. var self = this;
  73. if(self.data.busy){
  74. return;
  75. }
  76. self.setData({
  77. loading:true,
  78. posts:[],
  79. busy:true
  80. });
  81. var url=config.service.apiUrl+'timeline';
  82. qcloud.request({
  83. // 要请求的地址
  84. url: url,
  85. success(result) {
  86. if(result.data.success==true){
  87. for (var i=0;i<result.data.posts.data.length;i++){
  88. var datestr=Date.parse((result.data.posts.data[i]['created_at']).toString().replace(/-/g, "/"));
  89. if(datestr){
  90. result.data.posts.data[i]['created_at']=new Date(datestr).format("hh:mm");
  91. }else{
  92. result.data.posts.data[i]['created_at']= '--:--'
  93. }
  94. }
  95. self.setData({
  96. posts:result.data.posts.data
  97. })
  98. }
  99. if(result.data.posts.next_page_url!==null){
  100. self.setData({
  101. next_data:true,
  102. next_page_url:result.data.posts.next_page_url
  103. })
  104. }else{
  105. self.setData({
  106. next_data:false,
  107. next_page_url:null
  108. })
  109. }
  110. console.log('request success', result);
  111. },
  112. fail(error) {
  113. console.log('request fail', error);
  114. },
  115. complete() {
  116. busy=false;
  117. self.setData({
  118. loading:false,
  119. busy:false
  120. })
  121. console.log('request complete');
  122. }
  123. });
  124. },
  125. user_list(){
  126. var self=this;
  127. var url=config.service.apiUrl+'followers';
  128. qcloud.request({
  129. // 要请求的地址
  130. url: url,
  131. success(result) {
  132. if(result.data.success==true){
  133. self.setData({
  134. users_count:result.data.followers.total
  135. })
  136. }
  137. console.log('request success', result);
  138. },
  139. fail(error) {
  140. console.log('request fail', error);
  141. },
  142. complete() {
  143. console.log('request complete');
  144. }
  145. });
  146. },
  147. refresh(){
  148. var self = this;
  149. if(self.data.busy){
  150. return;
  151. }
  152. self.setData({
  153. loading:true,
  154. posts:[],
  155. busy:true
  156. });
  157. // wx.showNavigationBarLoading();
  158. var url=config.service.apiUrl+'timeline';
  159. qcloud.request({
  160. // 要请求的地址
  161. url: url,
  162. success(result) {
  163. if(result.data.success==true){
  164. for (var i=0;i<result.data.posts.data.length;i++){
  165. var datestr=Date.parse((result.data.posts.data[i]['created_at']).toString().replace(/-/g, "/"));
  166. if(datestr){
  167. result.data.posts.data[i]['created_at']=new Date(datestr).format("hh:mm");
  168. }else{
  169. result.data.posts.data[i]['created_at']= '--:--'
  170. }
  171. }
  172. self.setData({
  173. posts:result.data.posts.data
  174. })
  175. }
  176. if(result.data.posts.next_page_url!==null){
  177. self.setData({
  178. next_data:true,
  179. next_page_url:result.data.posts.next_page_url
  180. })
  181. }else{
  182. self.setData({
  183. next_data:false,
  184. next_page_url:null
  185. })
  186. }
  187. console.log('request success', result);
  188. },
  189. fail(error) {
  190. console.log('request fail', error);
  191. },
  192. complete() {
  193. self.setData({
  194. loading:false,
  195. busy:false
  196. });
  197. // wx.hideNavigationBarLoading();
  198. wx.stopPullDownRefresh();
  199. console.log('request complete');
  200. }
  201. });
  202. },
  203. load_more(){
  204. var self = this;
  205. var request_url=self.data.next_page_url;
  206. if(!request_url){
  207. return;
  208. }
  209. if(self.data.busy){
  210. return;
  211. }
  212. self.setData({
  213. loading:true,
  214. busy:true
  215. });
  216. qcloud.request({
  217. // 要请求的地址
  218. url: request_url,
  219. success(result) {
  220. if(result.data.success==true){
  221. var item=self.data.posts;
  222. var obj=result.data.posts.data;
  223. for (var i=0;i<obj.length;i++){
  224. var datestr=Date.parse((obj[i]['created_at']).toString().replace(/-/g, "/"));
  225. if(datestr){
  226. obj[i]['created_at']=new Date(datestr).format("hh:mm");
  227. }else{
  228. obj[i]['created_at']= '--:--'
  229. }
  230. item.push(obj[i]);
  231. }
  232. self.setData({
  233. posts:item
  234. });
  235. if(result.data.posts.next_page_url!==null){
  236. self.setData({
  237. next_data:true,
  238. next_page_url:result.data.posts.next_page_url
  239. })
  240. }else{
  241. self.setData({
  242. next_data:false,
  243. next_page_url:null
  244. })
  245. }
  246. }
  247. console.log('request success', result);
  248. },
  249. fail(error) {
  250. console.log('request fail', error);
  251. },
  252. complete() {
  253. self.setData({
  254. loading:false,
  255. busy:false
  256. })
  257. console.log('request complete');
  258. }
  259. });
  260. },
  261. formSubmit:function(e){
  262. var self = this;
  263. if(self.data.busy1){
  264. return;
  265. }
  266. var data={};
  267. data.image_url="http://upload-1251348966.image.myqcloud.com/upload/2017-04-21/b1ba2fd7b035f7db742bf76e2af7be96.png?imageMogr2/auto-orient/strip/thumbnail/1000x1000/quality/80/format/jpg";
  268. if(e.detail.formId!='the formId is a mock one'){
  269. data.form_id=e.detail.formId;
  270. }
  271. data.can_read_times=-1
  272. data.type==1
  273. data.expire_in=-1;
  274. self.setData({
  275. 'busy1':true
  276. })
  277. qcloud.request({
  278. // 要请求的地址
  279. url: config.service.messageAddUrl,
  280. method:"POST",
  281. data: data,
  282. success(result) {
  283. console.log(result);
  284. if(result.data.success==true){
  285. wx.navigateTo({
  286. url: '/pages/channel/invitation/invitation?hash_key='+result.data.id
  287. })
  288. }else{
  289. showMsg("提示信息","新建邀请失败,"+result.data.message);
  290. }
  291. },
  292. fail(error) {
  293. console.log('request fail', error);
  294. showMsg("提示信息","新建邀请失败");
  295. },
  296. complete() {
  297. self.setData({
  298. 'busy1':false
  299. })
  300. console.log('request complete');
  301. }
  302. });
  303. },
  304. onReachBottom: function() {
  305. var self = this;
  306. self.load_more();
  307. },
  308. onPullDownRefresh: function() {
  309. var self = this;
  310. self.refresh();
  311. },
  312. onLoad:function(e){
  313. console.log(e);
  314. if(e.hash_key){
  315. this.setData({
  316. hash_key:e.hash_key
  317. })
  318. var self=this;
  319. }else{
  320. console.log('123')
  321. }
  322. // 页面初始化 options为页面跳转所带来的参数
  323. },
  324. onReady:function(){
  325. // 页面渲染完成
  326. },
  327. onShow:function(){
  328. // 页面显示
  329. var self=this;
  330. if(busy){
  331. return;
  332. }
  333. self.setData({
  334. posts:[],
  335. loading:true,
  336. busy:false
  337. });
  338. busy=true;
  339. var self=this;
  340. app.getUserInfo(function(userInfo){
  341. self.setData({
  342. userInfo:userInfo
  343. });
  344. self.post_list();
  345. self.user_list();
  346. if(self.data.hash_key==undefined||!self.data.hash_key){
  347. return false;
  348. }
  349. qcloud.request({
  350. // 要请求的地址
  351. url: config.service.apiUrl+'messages/'+self.data.hash_key,
  352. success(result) {
  353. console.log(result);
  354. if(result.data.success==true){
  355. if(result.data.is_mine==false){
  356. var ncikname=result.data.message_data.user.nickname;
  357. showMsg("提示信息","您成功关注了"+ncikname+'的密频');
  358. }
  359. }
  360. },
  361. fail(error) {
  362. console.log('request fail', error);
  363. },
  364. complete() {
  365. console.log('request complete');
  366. }
  367. });
  368. });
  369. },
  370. formSubmit1: function(e) {
  371. var self=this;
  372. var url=e.detail.target.dataset.url;
  373. var data={};
  374. if(e.detail.formId!='the formId is a mock one'){
  375. data.form_id=e.detail.formId;
  376. }else{
  377. wx.navigateTo({
  378. url: url
  379. });
  380. return;
  381. }
  382. data.openid=self.data.userInfo.openId;
  383. qcloud.request({
  384. // 要请求的地址
  385. url: config.service.apiUrl+'form_ids',
  386. method:"POST",
  387. data: data,
  388. success(result) {
  389. console.log(result);
  390. },
  391. fail(error) {
  392. console.log('request fail', error);
  393. },
  394. complete() {
  395. wx.navigateTo({
  396. url: url
  397. })
  398. }
  399. });
  400. },
  401. onHide:function(){
  402. // 页面隐藏
  403. },
  404. onUnload:function(){
  405. // 页面关闭
  406. }
  407. })