liyongli 2 жил өмнө
parent
commit
3e0a7d9fc3

+ 21 - 0
cloudfunctions/server/controller/article/index.js

@@ -0,0 +1,21 @@
+
+
+const { formmat } = require("../../utils/http");
+const { ArticleService} = require("../../service/index");
+async function getArticleController(data) {
+  let article = {};
+  let code = 0;
+  let msg = "ok";
+  try{
+    article = await ArticleService(data);
+  }catch{
+    code = 500;
+    msg = "err";
+  }
+  return formmat(article, code, msg);
+}
+
+
+module.exports = {
+  getArticleController
+}

+ 5 - 1
cloudfunctions/server/controller/index.js

@@ -1,5 +1,9 @@
 const media = require("./media/index");
+const article = require("./article/index");
+const schedule = require("./schedule/index");
 
 module.exports = {
-  ...media
+  ...media,
+  ...schedule,
+  ...article
 }

+ 22 - 12
cloudfunctions/server/controller/media/index.js

@@ -1,23 +1,33 @@
 const { formmat } = require("../../utils/http");
-const { MediaService, MediaOnceService, ArticleService } = require("../../service/media/index");
+const { MediaService, MediaOnceService } = require("../../service/index");
 async function MediaController(data) {
-  let list = await MediaService(data);
-  return formmat(list, 0, "ok");
+  let list = [];
+  let code = 0;
+  let msg = "ok";
+  try{
+    article = await MediaService(data);
+  }catch{
+    code = 500;
+    msg = "err";
+  }
+  return formmat(list, code, msg);
 }
 
 async function MediaOnceController(data) {
-  let once = await MediaOnceService(data);
-  return formmat(once, 0, "ok");
-}
-
-async function getArticleController(data) {
-  let article = await ArticleService(data);
-  return formmat(article, 0, "ok");
+  let list = [];
+  let code = 0;
+  let msg = "ok";
+  try{
+    article = await MediaOnceService(data);
+  }catch{
+    code = 500;
+    msg = "err";
+  }
+  return formmat(list, code, msg);
 }
 
 
 module.exports = {
   MediaController,
-  MediaOnceController,
-  getArticleController
+  MediaOnceController
 }

+ 21 - 0
cloudfunctions/server/controller/schedule/index.js

@@ -0,0 +1,21 @@
+
+
+const { formmat } = require("../../utils/http");
+const { ScheduleService } = require("../../service/index");
+async function getScheduleController(data) {
+  let article = {};
+  let code = 0;
+  let msg = "ok";
+  try{
+    article = await ScheduleService(data);
+  }catch{
+    code = 500;
+    msg = "err";
+  }
+  return formmat(article, code, msg);
+}
+
+
+module.exports = {
+  getScheduleController
+}

+ 5 - 1
cloudfunctions/server/index.js

@@ -3,7 +3,7 @@
  * 初始化数据库
  */
 const cloud = require('wx-server-sdk');
-const { MediaController, MediaOnceController,getArticleController } = require("./controller/index");
+const { MediaController, MediaOnceController, getArticleController, getScheduleController } = require("./controller/index");
 cloud.init({
   env: 'serverless-env-7gkaeuji38488831'
 })
@@ -23,7 +23,11 @@ exports.main = async (event, context) => {
     case "getArticle": {
       delete event.type;
       return getArticleController(event)
+    }
 
+    case "getSchedule": {
+      delete event.type
+      return getScheduleController(event)
     }
 
     default: {

+ 10 - 0
cloudfunctions/server/service/article/index.js

@@ -0,0 +1,10 @@
+const { db, _ } = require("../../utils/http");
+
+async function ArticleService(data) {
+  const orilist = await db.collection('article').doc(data.id).get();
+  return orilist.data || {}
+}
+
+module.exports = {
+  ArticleService
+}

+ 9 - 0
cloudfunctions/server/service/index.js

@@ -0,0 +1,9 @@
+const media = require("./media/index");
+const article = require("./article/index");
+const schedule = require("./schedule/index");
+
+module.exports = {
+  ...media,
+  ...article,
+  ...schedule
+}

+ 1 - 6
cloudfunctions/server/service/media/index.js

@@ -74,12 +74,7 @@ async function MediaOnceService(data) {
   return list
 }
 
-async function ArticleService(data) {
-  const orilist = await db.collection('article').doc(data.id).get();
-  return orilist.data || {}
-}
 module.exports = {
   MediaService,
-  MediaOnceService,
-  ArticleService
+  MediaOnceService
 }

+ 20 - 0
cloudfunctions/server/service/schedule/index.js

@@ -0,0 +1,20 @@
+const { db, _ } = require("../../utils/http");
+
+async function ScheduleService(data) {
+  let orilist = [];
+  if (data.start) {
+    const T = new Date(data.start);
+    const startTime = T.getTime();
+    const endTime = startTime + 86400000;
+    orilist = await db.collection('schedule').where({
+      startTime: _.and(_.gte(startTime), _.lt(endTime))
+    }).get();
+  } else {
+    orilist = await db.collection('schedule').limit(100).get();
+  }
+  return orilist.data || {}
+}
+
+module.exports = {
+  ScheduleService
+}

+ 2 - 1
miniprogram/app.json

@@ -3,7 +3,8 @@
     "pages/home/index",
     "pages/detail/detail",
     "pages/mediaController/index",
-    "pages/videoDetail/index"
+    "pages/videoDetail/index",
+    "pages/schedule/index"
   ],
   "window": {
     "backgroundColor": "#F6F6F6",

+ 1 - 1
miniprogram/pages/detail/detail.js

@@ -28,7 +28,7 @@ Page({
         id: options.id,
       },
       call(res) {
-        console.log(res)
+        res.article_detail = res.article_detail.replace(/<img /g, "<img style='max-width:100%'");
         _this.setData({
           detail: res || {}
         })

+ 0 - 4
miniprogram/pages/detail/template/sysDetail/index.wxss

@@ -1,5 +1 @@
 /* miniprogram/pages/detail/template/sysDetail/index.wxss */
-.image-wrap,
-img{
-  max-width:100%;
- }

+ 3 - 0
miniprogram/pages/home/index.js

@@ -20,6 +20,9 @@ Page({
       case 'live':
         url = '/pages/mediaController/index?title=' + item.text + "&mediaType=" + item.type;
         break;
+      case "schedule":
+        url = '/pages/schedule/index?title=' + item.text + "&id=" + item.id;
+        break;
       default:
         url = '/pages/detail/detail?title=' + item.text + "&id=" + item.id;
         break;

+ 2 - 1
miniprogram/pages/mediaController/index.js

@@ -16,7 +16,8 @@ Page({
    */
   onLoad(options) {
     const _this = this;
-    this.nameText = options.title || "";
+    wx.showLoading({})
+    this.nameText = decodeURIComponent(options.title || "详情");
     this.mediaType = options.mediaType || 'image';
     wx.setNavigationBarTitle({
       title: this.nameText

+ 110 - 0
miniprogram/pages/schedule/index.js

@@ -0,0 +1,110 @@
+// pages/schedule/index.js
+import { httpCloud } from "../../utils/httpFunc";
+import { dateFormmat } from "../../utils/tool";
+Page({
+
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    list: []
+  },
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad(options) {
+    console.log(options)
+    wx.setNavigationBarTitle({
+      title: decodeURIComponent(options.title || "详情")
+    })
+    const _this = this;
+    let ST = dateFormmat();
+    let p = {};
+    if(options.isToday){
+      p.start = ST.year + '-' + ST.month + '-' + ST.day + ' 00:00:00'
+    }
+    httpCloud({
+      name: "server",
+      type: "getSchedule",
+      data: p,
+      call(res) {
+        let list = [];
+        const obj = {};
+        (res || []).map(v => {
+          let startTime = dateFormmat(v.startTime)
+          let endTime = dateFormmat(v.endTime)
+          v.startTime = startTime.year + '年' + startTime.month + '月' + startTime.day + '日';
+          v.endTime = endTime.year + '年' + endTime.month + '月' + endTime.day + '日';
+          if (!obj[v.startTime + v.location] && obj[v.startTime + v.location] !== 0) {
+            obj[v.startTime + v.location] = list.length;
+            list.push({
+              date: v.startTime,
+              location: v.location,
+              child: [{
+                content: startTime.hour + ':' + startTime.min + '-' + endTime.hour + ':' + endTime.min + ' ' + v.content
+              }]
+            })
+          } else {
+            list[obj[v.startTime + v.location]].child.push({
+              content: startTime.hour + ':' + startTime.min + '-' + endTime.hour + ':' + endTime.min + ' ' + v.content
+            })
+          }
+        })
+        console.log(list);
+        _this.setData({
+          list
+        })
+      }
+    })
+  },
+
+  /**
+   * 生命周期函数--监听页面初次渲染完成
+   */
+  onReady() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面显示
+   */
+  onShow() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面隐藏
+   */
+  onHide() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面卸载
+   */
+  onUnload() {
+
+  },
+
+  /**
+   * 页面相关事件处理函数--监听用户下拉动作
+   */
+  onPullDownRefresh() {
+
+  },
+
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  onReachBottom() {
+
+  },
+
+  /**
+   * 用户点击右上角分享
+   */
+  onShareAppMessage() {
+
+  }
+})

+ 5 - 0
miniprogram/pages/schedule/index.json

@@ -0,0 +1,5 @@
+{
+  "usingComponents": {
+    "mp-cell": "weui-miniprogram/cell/cell"
+  }
+}

+ 21 - 0
miniprogram/pages/schedule/index.wxml

@@ -0,0 +1,21 @@
+<!--pages/schedule/index.wxml-->
+<!-- <swiper class="swiper">
+  <swiper-item>
+    <view class="swiperItem">
+      1
+    </view>
+  </swiper-item>
+  <swiper-item>
+    <view class="swiperItem">
+      2
+    </view>
+  </swiper-item>
+</swiper> -->
+
+<view wx:for="{{list}}" wx:key="index">
+  <mp-cell title="{{item.date}}" footer="{{item.location}}"></mp-cell>
+  <view class="text" wx:for="{{item.child}}" wx:for-index="i" wx:for-item="v" wx:key="i">
+      {{v.content}}
+  </view>
+</view>
+

+ 13 - 0
miniprogram/pages/schedule/index.wxss

@@ -0,0 +1,13 @@
+/* pages/schedule/index.wxss */
+.swiperItem,
+.swiper{
+  width: 750rpx;
+  height: 100vh;
+}
+
+.text {
+  padding-left: 1em;
+  font-size: 14px;
+  font-weight: 400;
+  color: #00000080;
+}

+ 9 - 3
miniprogram/utils/tool.js

@@ -1,11 +1,17 @@
 export function dateFormmat(date) {
-  const T = new Date(date);
-  return {
+  const T = date ? new Date(date) : new Date();
+  const P = {
     year: T.getFullYear(),
-    month: T.getMonth(),
+    month: T.getMonth() - 0 + 1,
     day: T.getDate(),
     hour: T.getHours(),
     min: T.getMinutes(),
     s: T.getSeconds()
   }
+  P.month > 9 ? P.month = P.month : P.month = "0" + P.month;
+  P.day > 9 ? P.day = P.day : P.day = "0" + P.day;
+  P.hour > 9 ? P.hour = P.hour : P.hour = "0" + P.hour;
+  P.min > 9 ? P.min = P.min : P.min = "0" + P.min;
+  P.s > 9 ? P.s = P.s : P.s = "0" + P.s;
+  return P
 }

+ 13 - 1
project.private.config.json

@@ -3,7 +3,19 @@
     "compileHotReLoad": false,
     "urlCheck": true
   },
-  "condition": {},
+  "condition": {
+    "miniprogram": {
+      "list": [
+        {
+          "name": "",
+          "pathName": "pages/schedule/index",
+          "query": "title=%E6%97%A5%E7%A8%8B%E5%AE%89%E6%8E%92&id=c658c1c5637db5bd00e66d715693ebc3",
+          "launchMode": "default",
+          "scene": null
+        }
+      ]
+    }
+  },
   "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
   "libVersion": "2.14.1"
 }