liyongli 3 年 前
コミット
d9710db005

+ 2 - 1
app.json

@@ -1,7 +1,8 @@
 {
   "pages": [
     "pages/home/home",
-    "pages/sonTopic/sonTopic"
+    "pages/sonTopic/sonTopic",
+    "pages/liveData/liveData"
   ],
   "window": {
     "backgroundTextStyle": "light",

+ 21 - 0
app.wxss

@@ -25,3 +25,24 @@ page{
   font-family: PingFang SC;
   padding-bottom: 2em;
 }
+
+.localCells {
+  padding-left: 15rpx;
+  position: relative;
+  height: 40px;
+  line-height: 40px;
+}
+.localCells::before{
+  position: absolute;
+  left: 0;
+  top: 50%;
+  transform: translateY(-50%);
+  width: 5rpx;
+  content: "";
+  height: 1em;
+  background-color: #bfcbd9;
+}
+
+.subTitle{
+  font-size: 12px;
+}

BIN
assets/1.jpg


BIN
assets/man.png


ファイルの差分が大きいため隠しています
+ 0 - 0
assets/man.svg


BIN
assets/woman.png


ファイルの差分が大きいため隠しています
+ 0 - 0
assets/woman.svg


+ 18 - 14
components/lineChart/lineChart.js

@@ -5,11 +5,11 @@ Component({
    * 组件的属性列表
    */
   properties: {
-    canvasId:{
+    canvasId: {
       type: String,
       value: "mychart-dom-bar"
     },
-    id:{
+    id: {
       type: String,
       value: "mychart-bar"
     },
@@ -17,6 +17,18 @@ Component({
       type: String,
       value: "bar"
     },
+    select: {
+      type: String,
+      value: ""
+    },
+    btnList: {
+      type: Array,
+      value: [],
+    },
+    color: {
+      type: String,
+      value: ""
+    },
     isShow: {
       type: Boolean,
       value: false,
@@ -27,14 +39,6 @@ Component({
         if (n) this.triggerEvent("lineChenge", this.data.select);
       }
     },
-    select: {
-      type: String,
-      value: ""
-    },
-    btnList: {
-      type: Array,
-      value: [],
-    },
     list: {
       type: Array,
       value: [],
@@ -42,13 +46,13 @@ Component({
         if (!n || !n.length) return;
         if (this.data.select !== '24h' && this.data.select !== '6m' && this.setInterval) clearInterval(this.setInterval)
         if (this.data.select !== '24h' && this.data.select !== '6m' && this.setTimeout) clearInterval(this.setTimeout)
-        let xData = [], yData = [];
+        let xData = [], yData = [], color = this.data.color || "24,144,255";
         yData = {
           type: this.data.type,
           smooth: 0.6,
           symbolSize: 1,
           itemStyle: {
-            color: "#1890ff"
+            color: "rgba(" + color + ", 1)"
           },
           lineStyle: {
             width: 1
@@ -57,8 +61,8 @@ Component({
             color: new echarts.graphic.LinearGradient(
               0, 0, 0, 1,
               [
-                { offset: 0, color: 'rgba(24,144,255, .8)' },
-                { offset: 1, color: 'rgba(24,144,255, 0)' },
+                { offset: 0, color: 'rgba(' + color + ', .8)' },
+                { offset: 1, color: 'rgba(' + color + ', 0)' },
               ]
             )
           },

+ 122 - 0
components/pie/pie.js

@@ -0,0 +1,122 @@
+// 线图
+import * as echarts from '../../ec-canvas/echarts';
+Component({
+  /**
+   * 组件的属性列表
+   */
+  properties: {
+    canvasId: {
+      type: String,
+      value: "mychart-dom-bar"
+    },
+    id: {
+      type: String,
+      value: "mychart-bar"
+    },
+    showLegend:{
+      type: Boolean,
+      value: true
+    },
+    list: {
+      type: Array,
+      value: [],
+      observer: function (n, o) {
+        if (!n || !n.length) return;
+        if (this.chart) {
+          const option = this.chart.getOption();
+          option.series = n;
+          this.chart.setOption(option);
+        } else {
+          this.setData({
+            ec: {
+              onInit: this.initChart.bind(this)
+            }
+          })
+        }
+      }
+    },
+    yType: {
+      type: String,
+      value: ""
+    },
+    xType: {
+      type: String,
+      value: ""
+    }
+  },
+  chart: undefined,
+  ready() {
+    this.setData({
+      ec: {
+        onInit: this.initChart.bind(this)
+      }
+    })
+  },
+
+  // 销毁组件
+  detached: function () {
+    this.chart && this.chart.dispose && this.chart.dispose();
+  },
+
+  /**
+   * 组件的初始数据
+   */
+  data: {
+    ec: {
+      onInit: undefined,
+      lazyload: true
+    },
+  },
+
+  /**
+   * 组件的方法列表
+   */
+  methods: {
+    initChart: function (canvas, width, height, dpr) {
+      this.chart && this.chart.dispose && this.chart.dispose();
+      this.chart = echarts.init(canvas, null, {
+        width: width,
+        height: height,
+        devicePixelRatio: dpr // 像素
+      });
+      canvas.setChart(this.chart);
+
+      // let colorList = ['9','a','b','c','d','e','f'], len = (this.data.list[0].data || []).length, colors = [];
+      // for (let i = 0; i < len; i++) {
+      //   let color = "#";
+      //   for (let o = 0; o < 6; o++) {
+      //     color += colorList[Math.floor(Math.random()*7)]          
+      //   }
+      //   colors.push(color);
+      // }
+      var option = {
+        tooltip: {
+          trigger: 'item',
+          formatter: '{b}{d}%',
+          position: [0, "90%"],
+          textStyle: {
+            color: "#fff"
+          },
+        },
+        legend: {
+          show: this.data.showLegend,
+          left: 'left',
+          itemGap: 1,
+          itemWidth:4,
+          itemHeight:4,
+          textStyle: {
+            color: "#fff"
+          }
+        },
+        color: ["#dd79ff","#58d9f9"],
+        // color: colors,
+        series: this.data.list || []
+      };
+      this.chart.setOption(option);
+      this.setData({
+        show: true
+      })
+      return this.chart;
+    },
+  }
+})

+ 6 - 0
components/pie/pie.json

@@ -0,0 +1,6 @@
+{
+  "component": true,
+  "usingComponents": {
+    "ec-canvas": "../../ec-canvas/ec-canvas"
+  }
+}

+ 3 - 0
components/pie/pie.wxml

@@ -0,0 +1,3 @@
+<view class="canvas" wx:if="ec.onInit" >
+  <ec-canvas id="{{id}}" canvasId="{{canvasId}}" ec="{{ ec }}"></ec-canvas>
+</view>

+ 6 - 0
components/pie/pie.wxss

@@ -0,0 +1,6 @@
+/* components/pie/pie.wxss */
+.canvas,.ec-canvas {
+  width: 100%;
+  height: 200px;
+  font-size: 14px;
+}

+ 14 - 11
pages/home/components/topic/topic.js

@@ -126,6 +126,7 @@ Component({
         url: app.baseUrl + '/overview',
         success: function (res) {
           if (res.statusCode === 200) {
+            console.log(res.data )
             _this.setData({
               headData: res.data || {}
             })
@@ -334,6 +335,18 @@ Component({
         }
       })
     },
+    toLive: function () {
+      if (!toUrl) return;
+      toUrl = false;
+      let title = encodeURIComponent(this.data.title);
+      
+      wx.navigateTo({
+        url: "/pages/liveData/liveData?title=" +title,
+        complete: function (res) {
+          toUrl = true;
+        }
+      })
+    },
     showDetail: function (e) {
       let introduce = e.currentTarget.dataset.introduce || "";
       let detail = app.introduce[this.data.title + "_" + introduce] || {}
@@ -344,14 +357,4 @@ Component({
       })
     }
   }
-})
-/**
- * 总浏览量:抖音,快手等平台浏览数总和。
- * 总点赞数:抖音,快手等平台点赞数总和。
- * 总转发量:抖音,快手等平台转发数总和。
- * 直播点赞数:抖音,快手等平台直播场次点赞总和。
- * 原创量:抖音,快手等平台原创数总和。
- * 总评论数:抖音,快手等平台评论数总和。
- * 直播观看人数:抖音,快手等平台直播场次观看人数总和。
- * 直播评论数:抖音,快手等平台直播场次直播评论数总和。
- */
+})

+ 4 - 1
pages/home/components/topic/topic.wxml

@@ -48,12 +48,15 @@
       <view class="topicItem">
         <view wx:if="{{headData.live_uv != -1}}">{{filter.valueFormat(headData.live_uv)}}</view>
       </view>
-      <view wx:if="{{headData.live_comment != -1}}" class="topicItem">{{filter.valueFormat(headData.live_comment)}}
+      <view wx:if="{{headData.live_digg != -1}}" class="topicItem">{{filter.valueFormat(headData.live_comment)}}
       </view>
     </view>
   </view>
 
   <view class="pKvm">
+    <view class="kvm" bindtap="toLive" wx:if="{{headData.has_live_data}}">
+      <view class="kvmText">直播数据</view>
+    </view>
     <view class="kvm" bindtap="toSecond" wx:if="{{sonList && sonList.length}}">
       <view class="kvmText">二次传播</view>
     </view>

+ 3 - 5
pages/home/components/topic/topic.wxss

@@ -1,4 +1,6 @@
 /* pages/home/components/topic/topic.wxss */
+@import "../../../../app.wxss";
+
 .topic {
   width: 750rpx;
 }
@@ -21,11 +23,6 @@
   padding: 5px 10px
 }
 
-.topic .localCells {
-  height: 40px;
-  line-height: 40px;
-}
-
 .topic .pKvm {
   text-align: right;
   margin-right: 10px;
@@ -41,6 +38,7 @@
   border-radius: 50%;
   text-align: center;
   box-shadow: 0 0 7px #1989fa;
+  margin-left: 5rpx;
 }
 
 .topic .kvmText {

+ 0 - 2
pages/home/home.wxss

@@ -37,8 +37,6 @@
   text-align: center;
   font-size: 18px;
 }
-.iconType{
-}
 .iconType .title{
   display: inline-block;
   margin: 0 3px;

+ 254 - 0
pages/liveData/liveData.js

@@ -0,0 +1,254 @@
+// pages/liveData/liveData.js
+const app = getApp();
+let peopleList = [{ "time": "13:00", "value": 9944 }, { "time": "14:00", "value": 8920 }, { "time": "15:00", "value": 14656 }, { "time": "16:00", "value": 13084 }];
+Page({
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    error: "",
+    detail: "",
+    diglogTitle: "",
+    title: "",
+    headData: {},
+    lineList: [],
+    region: [],
+    series: [],
+    oriList: [
+      {
+        type: 'pie',
+        label: {
+          show: false
+        },
+        data: [{ value: 1048, name: '百度' }, { value: 735, name: '谷歌' }, { value: 735, name: '360' }, { value: 735, name: '搜狗' }, { value: 735, name: '其他' }]
+      },
+    ]
+  },
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad: function (options) {
+    this.setData({
+      title: decodeURIComponent(options.title)
+    }, () => {
+      this.getData()
+    })
+  },
+
+  /**
+   * 生命周期函数--监听页面初次渲染完成
+   */
+  onReady: function () {
+  },
+
+  /**
+   * 生命周期函数--监听页面显示
+   */
+  onShow: function () {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面隐藏
+   */
+  onHide: function () {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面卸载
+   */
+  onUnload: function () {
+    this.isUp && clearInterval(this.isUp);
+  },
+
+  /**
+   * 页面相关事件处理函数--监听用户下拉动作
+   */
+  onPullDownRefresh: function () {
+
+  },
+
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  onReachBottom: function () {
+
+  },
+
+  /**
+   * 用户点击右上角分享
+   */
+  onShareAppMessage: function () {
+
+  },
+  formatNumber:function (val) {
+    let out = val;
+    if (val >= 1000 && val < 10000) {
+      out = (val / 1000).toFixed(2) - 0 + "千"
+    } else if (val >= 10000 && val < 100000000) {
+      out = (val / 10000).toFixed(0) - 0 + "万"
+    } else if (val >= 100000000) {
+      out = (val / 100000000).toFixed(2) - 0 + "亿"
+    }
+    return out
+  },
+  getData: function () {
+    let _this = this;
+    wx.showLoading();
+    wx.request({
+      url: app.baseUrl + '/live-result',
+      data: {
+        topic: this.data.title
+      },
+      success: function (res) {
+        wx.hideLoading()
+        if (res.statusCode !== 200) return wx.showToast({
+          title: '请重启小程序',
+          icon: "error"
+        })
+        let oriData = res.data || {};
+        let region = [];
+        let trend = oriData.trend || {};
+        let RealTimeTraffic = {
+          title: "实时流量",
+          subTitle: "",
+          id: 'id' + 10,
+          canvasId: 'canvasId' + 10,
+          type: "line",
+          yType: "value",
+          xType: "time",
+          peopleList: []
+        };
+        let RealTimePersonTime = {
+          title: "观看人次",
+          subTitle: "",
+          id: 'id' + 11,
+          canvasId: 'canvasId' + 11,
+          type: "line",
+          yType: "value",
+          xType: "time",
+          peopleList: []
+        };
+        let AddUpFans = {
+          title: "累计粉丝量",
+          subTitle: "",
+          id: 'id' + 12,
+          canvasId: 'canvasId' + 12,
+          type: "line",
+          yType: "value",
+          xType: "time",
+          peopleList: []
+        };
+        let LikeTheTrend = {
+          title: "点赞走势",
+          subTitle: "",
+          id: 'id' + 13,
+          canvasId: 'canvasId' + 13,
+          type: "line",
+          yType: "value",
+          xType: "time",
+          peopleList: []
+        };
+        // 实时流量
+        RealTimeTraffic.subTitle = "在线人数峰值:" + _this.formatNumber((trend.user || {}).user_count || 0) + "  出现时间:" + _this.formatNumber((trend.user || {}).crawl_date || "") + " 平均人数:" + _this.formatNumber((trend.user || {}).avg_user_count || 0);
+        // 观看人次
+        RealTimePersonTime.subTitle = _this.formatNumber((trend.user || {}).stats_user_composition_from_my_follow_count || 0) + "人来自关注页面 " + _this.formatNumber((trend.user || {}).stats_user_composition_from_video_detail_count || 0) + "人来自视频推荐";
+        // 累计粉丝量
+        AddUpFans.subTitle = "粉丝峰值:" + _this.formatNumber((trend.fans || {}).club_info_total_fans_count || 0) + " 出现在:" + _this.formatNumber((trend.fans || {}).crawl_date || "");
+        console.log(oriData);
+        // 点赞走势
+        LikeTheTrend.subTitle = "点赞峰值:" + _this.formatNumber((trend.like || {}).add_like_count || 0) + " 出现在:" + _this.formatNumber((trend.like || {}).crawl_date || "");
+        // 趋势图数据
+        for (let i = 0; i < (trend.webcastTrendList || []).length; i++) {
+          const v = (trend.webcastTrendList || [])[i];
+          let time = v.crawl_date.split(" ")[1] || "";
+          RealTimeTraffic.peopleList.push({
+            value: _this.formatNumber(v.user_count || 0),
+            time: time
+          });
+          RealTimePersonTime.peopleList.push({
+            value: _this.formatNumber(v.stats_total_user || 0),
+            time: time
+          });
+          AddUpFans.peopleList.push({
+            value: _this.formatNumber(v.club_info_total_fans_count || 0),
+            time: time
+          });
+          LikeTheTrend.peopleList.push({
+            value: _this.formatNumber(v.like_count || 0),
+            time: time
+          });
+        }
+        console.log(oriData);
+        // 基础数据
+        let last = (trend.webcastTrendList || []);
+        
+        let base = {
+          msg_count: (oriData.webcastMessageList ? oriData.webcastMessageList.count || 0 : 0),
+          like_count: (trend.like || {}).add_like_count || 0,
+          total_fans_count: (trend.fans || {}).club_info_total_fans_count || 0,
+          peopel_time: (trend.user || {}).stats_total_user || 0
+        }
+        console.log(base)
+        // 来源城市
+        let city = oriData.city || []
+        for (let i = 0; i < city.length; i++) {
+          const element = city[i] || {};
+          region.push({
+            name: element.key || "",
+            value: element.count || 0
+          })
+        }
+        // 性别比
+        let gender = [];
+        let oriGender = oriData.gender || [];
+        for (let i = 0; i < oriGender.length; i++) {
+          const v = oriGender[i];
+          gender.push({
+            name: v.key == "1" ? "男" : "女",
+            value: v.count
+          })
+        }
+
+
+        _this.setData({
+          headData: base,
+          region: [region],
+          series: [
+            {
+              type: 'pie',
+              label: {
+                position: 'inner',
+                fontSize: 14,
+              },
+              data: gender,
+              emphasis: {
+                itemStyle: {
+                  shadowBlur: 10,
+                  shadowOffsetX: 0,
+                  shadowColor: 'rgba(0, 0, 0, 0.5)'
+                }
+              }
+            }
+          ],
+          lineList:[
+            RealTimeTraffic,
+            RealTimePersonTime,
+            AddUpFans,
+            LikeTheTrend
+          ]
+        })
+
+      },
+      fail: function (err) {
+        wx.hideLoading()
+        wx.showToast({
+          title: '请重启小程序',
+          icon: "error"
+        })
+      },
+    })
+  }
+})

+ 9 - 0
pages/liveData/liveData.json

@@ -0,0 +1,9 @@
+{
+  "usingComponents": {
+    "mp-dialog": "weui-miniprogram/dialog/dialog",
+    "mp-toptips": "weui-miniprogram/toptips/toptips",
+    "lineChart": "/components/lineChart/lineChart",
+    "chart" : "/components/Chart/Chart",
+    "pie": "/components/pie/pie"
+  }
+}

+ 86 - 0
pages/liveData/liveData.wxml

@@ -0,0 +1,86 @@
+<!--pages/home/components/liveData/liveData.wxml-->
+<wxs module="filter" src="/components/table/filter.wxs" />
+<!-- 错误提示 -->
+<mp-toptips msg="{{error}}" ext-class="toptips" type="error" show="{{error}}"></mp-toptips>
+
+<view class="liveData">
+  <view class="topTable">
+    <view class="liveDataTable title">
+      <view data-introduce="total_fans_count" bindtap="showDetail" class="liveDataItem">
+        粉丝数
+        <!-- <text class="show">?</text> : -->
+      </view>
+      <view data-introduce="like_count" bindtap="showDetail" class="liveDataItem">
+        点赞数
+        <!-- <text class="show">?</text> : -->
+      </view>
+    </view>
+    <view class="liveDataTable">
+      <view class="liveDataItem">{{filter.valueFormat(headData.total_fans_count)}}</view>
+      <view class="liveDataItem">{{filter.valueFormat(headData.like_count)}}</view>
+    </view>
+    <view class="liveDataTable title">
+      <view wx:if="{{ headData.msg_count != -1  }}" data-introduce="msg_count" bindtap="showDetail"
+        class="liveDataItem liveDataItemRigh">
+        评论数
+        <!-- <text class="show">?</text> : -->
+      </view>
+      <view wx:if="{{ headData.peopel_time != -1  }}" data-introduce="peopel_time" bindtap="showDetail"
+        class="liveDataItem liveDataItemRigh">
+        观看人数
+        <!-- <text class="show">?</text> : -->
+      </view>
+    </view>
+    <view class="liveDataTable">
+      <view wx:if="{{ headData.msg_count != -1  }}" class="liveDataItem">{{filter.valueFormat(headData.msg_count)}}
+      </view>
+      <view wx:if="{{ headData.peopel_time != -1  }}" class="liveDataItem">{{filter.valueFormat(headData.peopel_time)}}
+      </view>
+    </view>
+  </view>
+
+  <view class="itemView">
+    <view class="localCells">观众来源</view>
+  </view>
+
+  <!-- <view class="information">
+    <view class="itemView">
+      <pie id="pie001" wx:if="{{series.length}}" canvasId="pie002" list="{{series}}" />
+    </view>
+    <view class="itemView">
+      <pie id="pie001" canvasId="pie002" list="{{oriList}}" />
+    </view>
+  </view> -->
+  <view class="itemView">
+    <pie id="pie001" wx:if="{{series.length}}" canvasId="pie002" list="{{series}}" />
+  </view>
+  <chart wx:if="{{region.length && region[0].length}}" list="{{region}}" id="{{'id' + 1}}" canvasId="{{'canvasId' + 1}}"
+    yType="value" xType="name" />
+
+  <view class="itemView" wx:for="{{lineList}}" wx:key="id">
+    <view wx:if="item.peopleList.length" class="localCells">{{item.title}}</view>
+    <view wx:if="item.peopleList.length" class="subTitle">{{item.subTitle}}</view>
+    <lineChart id="{{item.id}}" wx:if="item.peopleList.length" canvasId="{{item.canvasId}}" type="{{item.type}}"
+      list="{{item.peopleList || []}}" yType="{{item.yType}}" xType="{{item.xType}}" color="{{item.color}}" />
+  </view>
+
+</view>
+<cover-view wx:if="{{detail !== ''}}" class="modolBg">
+  <cover-view class="local_dialog">
+    <cover-view class="local_dialog_title">
+      <cover-view class="local_dialog_close" bindtap="showDetail">
+        <cover-view class="local_dialog_close_left"></cover-view>
+        <cover-view class="local_dialog_close_right"></cover-view>
+      </cover-view>
+      <cover-view class="title">
+        {{diglogTitle}}
+      </cover-view>
+    </cover-view>
+    <cover-view class="local_dialog_body">
+      <cover-view style="padding-right:5px;white-space:pre-wrap;line-height: 1.5em;width:490rpx;margin: 0 auto;">
+        {{detail}}
+      </cover-view>
+    </cover-view>
+  </cover-view>
+</cover-view>
+<!-- <mp-toptips msg="{{detail}}" type="info" show="{{detail !== ''}}"></mp-toptips> -->

+ 153 - 0
pages/liveData/liveData.wxss

@@ -0,0 +1,153 @@
+/* pages/home/components/liveData/liveData.wxss */
+.liveData {
+  width: 750rpx;
+  color: #bfcbd9;
+}
+
+.topTable {
+  display: flex;
+  margin-bottom: 10px;
+}
+
+.topTable .liveDataTable {
+  flex: 1;
+  white-space: nowrap;
+}
+
+.topTable .liveDataTable .liveDataItem {
+  padding: 5px 0 5px 5px;
+}
+
+.liveData .itemView {
+  padding: 5px 10px
+}
+
+.liveData .pKvm {
+  text-align: right;
+  margin-right: 10px;
+  margin-top: -20px;
+}
+
+.liveData .kvm {
+  display: inline-block;
+  width: 3.5em;
+  color: #fff;
+  background-color: #1989fa;
+  height: 3.5em;
+  border-radius: 50%;
+  text-align: center;
+  box-shadow: 0 0 7px #1989fa;
+  margin-left: 5rpx;
+}
+
+.liveData .kvmText {
+  padding-top: 0.7em;
+  width: 2em;
+  margin: 0 auto;
+  line-height: 1.1em;
+  color: #bfcbd9;
+  font-weight: 400;
+}
+
+.show {
+  display: inline-block;
+  /* border: 1rpx solid #e2dd52;
+  color: #e2dd52; */
+  border: 1rpx solid #1989fa;
+  color: #1989fa;
+  width: var(--tips-btn);
+  height: var(--tips-btn);
+  line-height: var(--tips-btn);
+  font-size: 12px;
+  text-align: center;
+  border-radius: 50%;
+}
+
+.self_toptips {
+  background-color: rgba(0, 0, 0, .3);
+}
+
+.modolBg {
+  position: fixed;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  z-index: 1;
+  background-color: rgba(0, 0, 0, .5);
+}
+
+.local_dialog {
+  top: 50%;
+  left: 50%;
+  width: 600rpx;
+  position: absolute;
+  border-radius: 1em;
+  background-color: #eee;
+  transform: translate(-50%, -50%);
+}
+
+.local_dialog_title {
+  position: relative;
+  text-align: right;
+  padding: 8px 15px;
+  margin-bottom: 1rpx;
+  line-height: 1.5em;
+}
+
+.local_dialog_close {
+  float: right;
+  position: relative;
+  width: 1.5em;
+  height: 1.5em;
+}
+.local_dialog_title .title {
+  font-size: 16px;
+  height: 25px;
+  white-space: pre-wrap;
+  text-align: center;
+  line-height: 25px;
+  color: #121212;
+  text-align: center;
+}
+
+.local_dialog_close_left,
+.local_dialog_close_right {
+  position: absolute;
+  width: 100%;
+  height: 1rpx;
+  background-color: #121212;
+  top: 50%;
+  transform: rotate(45deg);
+}
+
+.local_dialog_close_right {
+  transform: rotate(135deg);
+}
+
+.local_dialog_body {
+  max-height: 60vh;
+  overflow-y: scroll;
+  padding: 8px 15px 15px 15px;
+  white-space: normal;
+  line-height: 2em;
+  font-size: 14px;
+  color: #222;
+}
+
+.information .itemView{
+  box-sizing: border-box;
+  display: inline-block;
+  width: 375rpx;
+  vertical-align: top;
+}
+
+.userImage{
+  width: 34px;
+  height: 34px;
+  display: inline-block;
+  vertical-align: middle;
+}
+.bulletChat{
+  text-align: center;
+}

+ 24 - 0
project.private.config.json

@@ -0,0 +1,24 @@
+{
+  "setting": {},
+  "condition": {
+    "plugin": {
+      "list": []
+    },
+    "game": {
+      "list": []
+    },
+    "gamePlugin": {
+      "list": []
+    },
+    "miniprogram": {
+      "list": [
+        {
+          "name": "pages/liveData/liveData",
+          "pathName": "pages/liveData/liveData",
+          "query": "",
+          "scene": null
+        }
+      ]
+    }
+  }
+}

この差分においてかなりの量のファイルが変更されているため、一部のファイルを表示していません