Browse Source

修改创建房间

gemercheung 3 years ago
parent
commit
7a9050606d

+ 46 - 0
component/partyItem/common.wxs

@@ -0,0 +1,46 @@
+var time = {
+  TimeToDate: function (date, format) {
+    format = format || 'YYYY-MM-DD hh:mm:ss';
+    var dateTest = (getRegExp('^(-)?\d{1,10}$').test(date) || getRegExp('^(-)?\d{1,13}$').test(date));
+    if (getRegExp('^[1-9]*[1-9][0-9]*$').test(date) && dateTest) {
+      var vdate = parseInt(date);
+      if (getRegExp('^(-)?\d{1,10}$').test(vdate)) {
+        vdate = vdate * 1000;
+      } else if (getRegExp('^(-)?\d{1,13}$').test(vdate)) {
+        vdate = vdate * 1000;
+      } else if (getRegExp('^(-)?\d{1,14}$').test(vdate)) {
+        vdate = vdate * 100;
+      } else {
+        alert("时间戳格式不正确");
+        return;
+      }
+      var setdate = getDate(vdate);
+      return parse({
+        YYYY: setdate.getFullYear(),
+        MM: digit(setdate.getMonth() + 1),
+        DD: digit(setdate.getDate()),
+        hh: digit(setdate.getHours()),
+        mm: digit(setdate.getMinutes()),
+        ss: digit(setdate.getSeconds())
+      }, format);
+    } else {
+      //将日期转换成时间戳
+      re = getRegExp('(\d{4})(?:\D?(\d{1,2})(?:\D?(\d{1,2}))?[^\d\s]?)?(?:\s+(\d{1,2})\D?(\d{1,2})\D?(\d{1,2}))?').exec(date);
+      return !re ? 0 : getDate(re[1], (re[2] || 1) - 1, re[3] || 1, re[4] || 0, re[5] || 0, re[6] || 0).getTime() / 1000;
+    }
+
+    function parse(ymdhms, format) {
+      var regymdzz = "YYYY|MM|DD|hh|mm|ss|zz";
+      return format.replace(getRegExp(regymdzz, "g"), function (str, index) {
+        return str == "zz" ? "00" : digit(ymdhms[str]);
+      })
+    }
+
+    function digit(num) {
+      return num < 10 ? "0" + (num | 0) : num;
+    }
+  }
+}
+module.exports = {
+  TimeToDate: time.TimeToDate,
+}

+ 6 - 0
component/partyItem/partyItem.js

@@ -1,4 +1,5 @@
 // components/house-item/house-item.js
+var day = require('./../../utils/day.js');
 Component({
   /**
    * 组件的属性列表
@@ -34,6 +35,11 @@ Component({
       }
       this.triggerEvent('gotoWV', data)
 
+    },
+
+    covertTime(time) {
+      console.log('covertTime', time)
+      return day(time).format('DD/MM/YYYY')
     }
     // toDetail () {
     //   getApp().autoSubcrebe && getApp().autoSubcrebe()

+ 4 - 22
component/partyItem/partyItem.wxml

@@ -1,3 +1,4 @@
+<wxs module="common" src="./common.wxs"></wxs>
 <view class="tj_listItem" data-id="{{room.brandId}}" data-roomId="{{room.businessId}}" data-index="{{index}}" bindtap="gotoWV">
   <view class="tj_listItemCover">
     <image wx:if="{{ room.appListPicUrl && room.appListPicUrl!=''}}" mode="aspectFill" class="coverImage" src="{{room.appListPicUrl}}"></image>
@@ -10,29 +11,10 @@
       </p>
     </view>
     <view class="tj_listItemTip">
-      <text class="tj_listItemTipText"><text class="label">开播时间</text> {{room.businessId}} {{room.effectiveStartTime}} - {{room.effectiveEndTime}}</text>
-    </view>
-
-
-    <!-- <view class="tj_listItemTag">
-			<view class="tagVr">
-				<view class="tagItemIcon">
-					<image class="tagItemIconImage" mode="heightFix" src="../../static/images/icon/vrIcon.png"></image>
-				</view>
-				<view class="tip">
-					房源
-				</view>
+      <!-- <text class="tj_listItemTipText"><text class="label">开播时间</text> {{common.TimeToDate(room.effectiveStartTime,'YYYY年MM月DD日 hh时mm分ss秒') }} - {{room.effectiveEndTime}}</text> -->
 
-			</view>
-			<view class="tagItem">VR看房</view>
-			<view class="tagItem">随时可看</view>
-		</view> -->
-
-    <!-- <text class="totalPrice" wx:if="{{room.type==2}}">{{room.retailPrice}}元/月</text> -->
+      <text class="tj_listItemTipText"><text class="label">开播时间</text> {{common.TimeToDate(room.effectiveStartTime,'MM-DD hh:mm') +' ~ ' + common.TimeToDate(room.effectiveStartTime,'MM-DD hh:mm')}}</text>
+    </view>
 
-    <!-- <view class="tj_listItemPrice">
-			<text class="unitPrice">平均{{room.averagePrice}}元/平</text>
-			<text class="totalPrice">{{room.retailPrice}}万</text>
-		</view> -->
   </view>
 </view>

+ 11 - 4
component/partyItem/partyItem.wxss

@@ -58,12 +58,19 @@
   color: #666;
   overflow: hidden; 
   text-overflow: ellipsis; 
-  display: -webkit-box;
-  -webkit-line-clamp: 1; 
-  -webkit-box-orient: vertical;
+  display: flex;
+  flex-direction: row;
+  flex-wrap: nowrap;
+  line-height: 36rpx;
   padding-top:10px;
 }
-
+.tj_listItemTipText .label{
+  color: #0075DC;
+  display: inline-block;
+  background-color: rgba(0, 117, 220, 0.2);
+  padding: 10rpx;
+  border-radius: 2rpx;
+}
 .tj_listItemMsg .tj_listItemTag {
   display: flex;
   align-items: center;

+ 2 - 1
config/api.js

@@ -130,9 +130,10 @@ module.exports = {
     createOrUpdate: API_BASE_URL + 'liveRoom/createOrUpdate',
     listRooms: API_BASE_URL + 'liveRoom/listRooms',
     deleteRoom: API_BASE_URL + 'liveRoom/deleteRoom',
+    getAssistants: API_BASE_URL + 'liveRoom/getAssistants',
 
     // 预设房间管理
     roomChatList: API_BASE_URL + 'liveRoom/list',
     enterRoom: API_BASE_URL + 'liveRoom/enter',
-    exitRoom: API_BASE_URL + 'liveRoom/exit'
+    exitRoom: API_BASE_URL + 'liveRoom/exit',
 };

+ 171 - 74
pages/room/add.js

@@ -8,23 +8,29 @@ Page({
    * 页面的初始数据
    */
   data: {
-    sceneList: [{name:'美国',id:0},{name:'中国',id:1},{name:'巴西',id:2},{name:'本',id:3},],
-    hostList: [{name:'我的测试主持',id:0},{name:'我的测试主持1',id:1},{name:'我的测试主持2',id:2},{name:'我的测试主持3',id:3},],
-    scene: 0,
-    host: 0,
-    assistant:0,
+    sceneList: [],
+    hostList: [],
+
+    currentUser: {},
     dateMinute: '',
-    assistantList: [{name:'小黑',id:0},{name:'小白',id:1},{name:'小黄',id:2},{name:'小蓝',id:3},],
-    detail:{
-      name:'',
-      scene:'',
-      brandId:'',
-      host:'',
-      anchorUserId:'',
-      assistant:'',
-      assistantUserId:'',
-      effectiveStartTime:'',
-      effectiveEndTime:'',
+    assistantList: [],
+
+    detail: {
+      name: '',
+      scene: "", //直播label
+      brandId: '', //直播场景ID
+      anchorUserId: '', //主持人ID
+      assistantUserId: '', //助理用户iD
+      assistant: "", // 助理label
+      effectiveStartTime: '',
+      effectiveEndTime: '',
+    },
+    fetcherData: {
+      type: 32,
+      address: "",
+      page: 1,
+      size: 20,
+      name: "",
     }
   },
 
@@ -45,8 +51,17 @@ Page({
   /**
    * 生命周期函数--监听页面显示
    */
-  onShow() {
+  async onShow() {
+    this.getAssistantsList();
+    this.getSceneList();
+
+    let user = await wx.getStorageSync('userinfoDetail')
 
+    this.setData({
+      currentUser: user,
+      "detail.anchorUserId": user.userId
+    })
+    // debugger
   },
 
   /**
@@ -83,65 +98,119 @@ Page({
   onShareAppMessage() {
 
   },
-  getSceneList(){
+
+  async getAssistantsList() {
+    try {
+      const res = await util.request(api.getAssistants, this.data.fetcherData, 'POST', 'application/json')
+      console.log('getAssistantsList', res.data);
+      if (res.code === 200) {
+
+        if (Array.isArray(res.data)) {
+          Array.from(res.data).forEach(assistant => {
+            assistant.name = assistant.username
+            assistant.id = assistant.userId
+          })
+          this.setData({
+            assistantList: res.data
+          })
+
+        }
+
+      }
+
+
+    } catch (error) {
+      console.log('getAssistantsList::error', error)
+    }
+
 
   },
-  pickerChange: function(e) {
-    const abj ={
-      'scene':this.data.sceneList,
-      'host':this.data.hostList,
-      'assistant':this.data.assistantList,
+  async getSceneList() {
+    try {
+      const res = await util.request(api.BrandList, this.data.fetcherData, 'POST')
+      console.log('getSceneList', res.data.data);
+      if (res.code === 200) {
+        this.setData({
+          sceneList: res.data.data
+        })
+      }
+
+    } catch (error) {
+      console.log('getSceneList::error', error)
     }
-    const { type, name } = e.currentTarget.dataset
-    let item = abj[name][e.detail.value]
-    let detail = this.data.detail
-    detail[type] = e.detail.value,
-    detail[name] = item.name,
+
+  },
+  pickerChange: function (e) {
+    const abj = {
+      'scene': this.data.sceneList,
+      'host': this.data.hostList,
+      'assistant': this.data.assistantList,
+    }
+    const {
+      type,
+      name
+    } = e.currentTarget.dataset
+    let item = abj[name][e.detail.value];
+    let detail = this.data.detail;
+    detail[type] = e.detail.value;
+    detail[name] = item.name;
+
     this.setData({
       [name]: item.id,
       detail,
-    },()=>{
-      console.log('picker值为',type, name,detail,item,)
+    }, () => {
+      console.log('picker值为', type, name, detail, item, )
     })
   },
-  sceneChange: function(e) {
-    let index = e.detail.value
-    console.log('picker值为',index)
+
+  handleRoomName: function (e) {
     this.setData({
-      index: e.detail.value
+      'detail.name': e.detail.value
     })
   },
-  hostChange: function(e) {
-    let index = e.detail.value
-    console.log('picker值为',index)
-    this.setData({
-      index: e.detail.value
-    })
+
+  sceneChange: function (e) {
+    const index = e.detail.value
+    if (index > -1) {
+      const select = this.data.sceneList[index]
+      console.log('picker值为', select)
+      this.setData({
+        'detail.scene': select.name,
+        "detail.brandId": select.id
+      })
+    }
   },
-  assistantChange: function(e) {
-    let index = e.detail.value
-    console.log('picker值为',index)
-    this.setData({
-      index: e.detail.value
-    })
+
+  assistantChange: function (e) {
+    const index = e.detail.value
+    if (index > -1) {
+      const select = this.data.assistantList[index]
+      console.log('picker值为', select)
+      this.setData({
+        'detail.assistant': select.username,
+        "detail.assistantUserId": select.userId
+      })
+    }
   },
-    /**
+  /**
    * 年月日时分选择类型的回调函数,可以在该函数得到选择的时间
    */
   selectDateMinuteChange(ev) {
-    const { type } = ev.currentTarget.dataset
+    const {
+      type
+    } = ev.currentTarget.dataset
     let detail = this.data.detail
     detail[type] = ev.detail.value
     //判断大小
     console.log(detail)
-    if(detail.effectiveEndTime && detail.effectiveStartTime){
+    if (detail.effectiveEndTime && detail.effectiveStartTime) {
       let value = new Date(detail.effectiveEndTime) - new Date(detail.effectiveStartTime);
-      console.log(value,detail.effectiveEndTime ,detail.effectiveStartTime )
-    if(value<0){
-       return wx.showToast({
-            title: '结束时间大于开始时间',
-            icon: 'error',
-            duration: 1000
+      console.log(value, detail.effectiveEndTime, detail.effectiveStartTime)
+      if (value < 0) {
+        return wx.showToast({
+          title: '结束时间大于开始时间',
+          icon: 'error',
+          duration: 1000
         })
       }
     }
@@ -155,36 +224,64 @@ Page({
       multiIndex: e.detail.value
     })
   },
-  sbmit: async function(){
-    const {name,id,brandId,anchorUserId,effectiveStartTime,effectiveEndTime,assistantUserId} = this.data.detail
+  sbmit: async function () {
+    const {
+      name,
+      id,
+      brandId,
+      anchorUserId,
+      effectiveStartTime,
+      effectiveEndTime,
+      assistantUserId
+    } = this.data.detail
+
     let err = ''
-    if(!brandId){
+    if (!brandId) {
       err = '请选择直播场景'
-    }else if(!anchorUserId){
+    } else if (!anchorUserId) {
       err = '请选择主持人'
-    }else if(!anchorUserId){
+    } else if (!anchorUserId) {
       err = '请选择主持人'
-    }else if(!effectiveStartTime){
+    } else if (!effectiveStartTime) {
       err = '请选择开始时间'
-    }else if(!effectiveEndTime){
+    } else if (!effectiveEndTime) {
       err = '请选择结束时间'
-    }else if(!assistantUserId){
+    } else if (!assistantUserId) {
       err = '请选择助理'
     }
-    if(err){
+    if (err) {
       return wx.showToast({
-            title: err,
-            icon: 'error',
-            duration: 1000
-        })
+        title: err,
+        icon: 'error',
+        duration: 1000
+      })
     }
     let res = await util.request(api.createOrUpdate, {
-      ...this.data.detail
-    },"POST")
-    if (res.errno == 0) {
-      return res.data
-    } else if (res.errno == 1) {
-      return false
+      name,
+      brandId, //直播场景ID
+      anchorUserId, //主持人ID
+      assistantUserId, //助理用户iD
+
+      effectiveStartTime: new Date(effectiveStartTime).getTime(),
+      effectiveEndTime: new Date(effectiveEndTime).getTime(),
+    }, "POST", 'application/json')
+
+    // debugger
+
+    if (res.code == 200) {
+      wx.showToast({
+        title: '创建成功!!',
+        icon: "success"
+      })
+      // wx.navigateBack({
+      //   delta: 0,
+      // })
+
+    } else {
+      wx.showToast({
+        title: res.error || '创建失败!!',
+        icon: "error"
+      })
     }
   }
 })

+ 52 - 47
pages/room/add.wxml

@@ -1,58 +1,63 @@
-<view  class="newfrom " >
+<view class="newfrom ">
   <view class="order-list-v">
-  <picker bindchange="pickerChange" data-type="brandId" data-name="scene" value="{{scene}}" range="{{sceneList}}" range-key="name">
-    <view bindtap="toReport" class="navigator a {{ hasBrand ? '' : 'hidden'}}">
-      <view>
-        <text class="require">直播场景</text>
-        <text class="value {{detail.scene?'':'tipsClass'}}">{{detail.scene || '请选择直播场景'}}</text>
+    <view class="navigator a">
+        <view class="room-name">
+          <text class="require">房间名称</text>
+          <input  bindinput="handleRoomName" class="value input" auto-focus placeholder="请输入房间名称"/>
+        </view>
       </view>
-      <image src="/static/images/go.png" class="go"></image>
-    </view>
-  </picker>
-</view>
+  </view>
   <view class="order-list-v">
-  <picker bindchange="pickerChange" data-type="anchorUserId" data-name="host" value="{{host}}" range="{{hostList}}" range-key="name">
-    <view bindtap="toReport" class="navigator a {{ hasBrand ? '' : 'hidden'}}">
-      <view>
-        <text class="require">选择主持</text>
-        <text class="value {{ detail.host ? '' : 'tipsClass'}}">{{detail.host || '请选择主持人'}}</text>
+    <picker bindchange="sceneChange" data-type="brandId" data-name="brandId" value="{{detail.scene}}" range="{{sceneList}}" range-key="name">
+      <view bindtap="toReport" class="navigator a {{ hasBrand ? '' : 'hidden'}}">
+        <view>
+          <text class="require">直播场景</text>
+          <text class="value {{detail.scene?'':'tipsClass'}}">{{detail.scene || '请选择直播场景'}}</text>
+        </view>
+        <image src="/static/images/go.png" class="go"></image>
       </view>
-      <image src="/static/images/go.png" class="go"></image>
-    </view>
-  </picker>
-</view>
-
-<view class="order-list-v">
-  <date-time-picker data-type="effectiveStartTime" mode="dateminute" value="{{detail.effectiveStartTime}}" bindchange="selectDateMinuteChange">
+    </picker>
+  </view>
+  <view class="order-list-v">
     <view class="navigator a">
-      <view>
-        <text class="require">开始时间</text>
-        <text class="value {{ detail.effectiveStartTime ? '' : 'tipsClass'}}">{{detail.effectiveStartTime || '请选择开始时间'}}</text>
+        <view>
+          <text class="require">选择主持</text>
+          <text class="value ">{{currentUser.nickname }}</text>
+        </view>
       </view>
-      <image src="/static/images/go.png" class="go"></image>
-    </view>
-  </date-time-picker>
+  </view>
 
-  <date-time-picker  data-type="effectiveEndTime" mode="dateminute" value="{{detail.effectiveEndTime}}" bindchange="selectDateMinuteChange">
-    <view class="navigator a">
-      <view>
-        <text class="require">结束时间</text>
-        <text class="value {{ detail.effectiveEndTime ? '' : 'tipsClass'}}">{{detail.effectiveEndTime || '请选择结束时间'}}</text>
+  <view class="order-list-v">
+    <date-time-picker data-type="effectiveStartTime" mode="dateminute" value="{{detail.effectiveStartTime}}" bindchange="selectDateMinuteChange">
+      <view class="navigator a">
+        <view>
+          <text class="require">开始时间</text>
+          <text class="value {{ detail.effectiveStartTime ? '' : 'tipsClass'}}">{{detail.effectiveStartTime || '请选择开始时间'}}</text>
+        </view>
+        <image src="/static/images/go.png" class="go"></image>
+      </view>
+    </date-time-picker>
+
+    <date-time-picker data-type="effectiveEndTime" mode="dateminute" value="{{detail.effectiveEndTime}}" bindchange="selectDateMinuteChange">
+      <view class="navigator a">
+        <view>
+          <text class="require">结束时间</text>
+          <text class="value {{ detail.effectiveEndTime ? '' : 'tipsClass'}}">{{detail.effectiveEndTime || '请选择结束时间'}}</text>
+        </view>
+        <image src="/static/images/go.png" class="go"></image>
       </view>
-      <image src="/static/images/go.png" class="go"></image>
-    </view>
-  </date-time-picker>
-</view>
+    </date-time-picker>
+  </view>
   <view class="order-list-v">
-  <picker bindchange="pickerChange" data-type="assistantUserId" data-name="assistant" value="{{detail.assistant}}" range="{{assistantList}}" range-key="name">
-    <view bindtap="toReport" class="navigator a {{ hasBrand ? '' : 'hidden'}}">
-      <view>
-        <text class="require">选择助理</text>
-        <text class="value {{ detail.assistant ? '' : 'tipsClass'}}">{{detail.assistant || '请选择助理'}}</text>
+    <picker bindchange="assistantChange" data-type="assistantUserId" data-name="assistant" value="{{detail.assistant}}" range="{{assistantList}}" range-key="name">
+      <view bindtap="toReport" class="navigator a {{ hasBrand ? '' : 'hidden'}}">
+        <view>
+          <text class="require">选择助理</text>
+          <text class="value {{ detail.assistant ? '' : 'tipsClass'}}">{{detail.assistant || '请选择助理'}}</text>
+        </view>
+        <image src="/static/images/go.png" class="go"></image>
       </view>
-      <image src="/static/images/go.png" class="go"></image>
-    </view>
-  </picker>
-</view>
+    </picker>
+  </view>
   <view class="fb-btn" bindtap="sbmit">创建房间</view>
-</view>
+</view>

+ 5 - 0
pages/room/add.wxss

@@ -26,6 +26,11 @@
 .tipsClass{
   color: #B2B2B2;
 }
+.room-name{
+  display: flex;
+  flex-direction: row;
+}
+
 .fb-btn{
   display: flex;
   justify-content: center;

+ 17 - 13
pages/roomManger/roomManger.js

@@ -12,19 +12,21 @@ Page({
     hasData: true,
     loading: false,
     isSearch: false,
-    state:true,
+    state: true,
     fetcherData: {
       type: 32,
       address: '',
       page: 1,
       size: 20,
       name: '',
-      state: 1
+      state: 102
     }
   },
   async getUserInfo() {
-    const {data} = await util.request(api.UserInfo)
-    console.log('UserInfo',data)
+    const {
+      data
+    } = await util.request(api.UserInfo)
+    console.log('UserInfo', data)
     wx.setStorageSync('userinfoDetail', data)
     this.setData({
       userInfo: {
@@ -33,12 +35,14 @@ Page({
       }
     })
   },
-  setActive(ev){
+  setActive(ev) {
     const that = this
-    const { type } = ev.currentTarget.dataset
+    const {
+      type
+    } = ev.currentTarget.dataset
     this.setData({
-      'fetcherData.state': type == 'true'?1:2,
-    },()=>{
+      'fetcherData.state': type == 'true' ? 102 : 101,
+    }, () => {
       that.searchRoomList()
     });
   },
@@ -80,7 +84,7 @@ Page({
     }
 
   },
-  addRoom(){
+  addRoom() {
     wx.navigateTo({
       url: `/pages/room/add`,
     })
@@ -97,7 +101,7 @@ Page({
           title: '加载中...',
         })
         try {
-          const res = await util.request(api.roomChatList, this.data.fetcherData, 'post', 'application/json')
+          const res = await util.request(api.roomChatList, this.data.fetcherData, 'POST', 'application/json')
           console.log('roomData', res.data.list);
           // debugger
           if (res.code === 200) {
@@ -146,14 +150,14 @@ Page({
         'fetcherData.page': 1,
         'fetcherData.size': 100,
       })
-      util.request(api.roomChatList, this.data.fetcherData).then((res) => {
+      util.request(api.roomChatList, this.data.fetcherData, 'POST', 'application/json').then((res) => {
         this.setData({
           loading: false
         })
         wx.hideLoading()
         if (res.errno === 0) {
           this.setData({
-            roomList: res.data.data,
+            roomList: res.data.list,
           })
         }
       }).catch(err => {
@@ -221,7 +225,7 @@ Page({
    * 生命周期函数--监听页面初次渲染完成
    */
   onReady: function () {
-
+  
   },
 
   /**

+ 3 - 3
pages/roomManger/roomManger.wxml

@@ -4,10 +4,10 @@
 
   <view class="storeContent">
     <view class="tab-header">
-      <view class="un-start {{fetcherData.state == 1?'active':''}}" data-type="true" bindtap="setActive">
+      <view class="un-start {{fetcherData.state == 102?'active':''}}" data-type="true" bindtap="setActive">
         <text>待开始</text>
       </view>
-      <view class="has-start {{fetcherData.state !== 1?'active':''}}" data-type="false" bindtap="setActive"> 
+      <view class="has-start {{fetcherData.state !== 102?'active':''}}" data-type="false" bindtap="setActive">
         <text>已开始</text>
       </view>
     </view>
@@ -22,7 +22,7 @@
 
 
   </view>
-  <view class="addRoom"  bindtap="addRoom">+
+  <view class="addRoom" bindtap="addRoom">+
   </view>
   <view class="result" wx:if="{{roomList.length > 0}}">