tanyanfei %!s(int64=3) %!d(string=hai) anos
pai
achega
508408b1fd

+ 3 - 2
app.json

@@ -1,9 +1,10 @@
 {
   "pages": [
-    "pages/index/index",
     "pages/knowledge/knowledge",
-    "pages/mine/mine",
+    "pages/index/index",
     
+    "pages/mine/mine",
+    "pages/news/news",
     "pages/learning/learning",
     "pages/number/number",
     

+ 10 - 0
pages/collect/collect.wxml

@@ -23,6 +23,16 @@
                         <text class="">{{item.desc}}</text>
                     </view>
 </navigator> 
+<navigator class="list" url="../news/news?id={{item.id}}"  wx:key="conference{{index}}" wx:if='{{item.target_type== "news"}}'>
+                      <image  src="{{item.img}}"></image>
+                      <view>
+                    <view class="title">{{item.name}}</view>
+                        <view class="ly" style="text-align:left;"> 
+                            <text>{{item.publish_time}}</text>
+                        </view>
+                        <text class="">{{item.desc}}</text>
+                    </view>
+</navigator> 
 </block>
 
 <view wx:if='{{list.length==0}}' style="text-align:center;color:#999;padding:200rpx 0;">暂无收藏</view>

+ 65 - 3
pages/knowledge/knowledge.js

@@ -11,10 +11,13 @@ Page({
     index:0,
     act:0,
     list:[],
+    list1: [],
     show:0,
     keyword:'',
     total:0,
-    page:1
+    page:1,
+    total1: 0,
+    page1: 1
   },
 
   /**
@@ -27,21 +30,38 @@ Page({
       page: 1
     })
     this.getData()
+    this.getData1()
+  },
+  tab: function (e) {
+    this.setData({
+      act: e.target.dataset.id
+    })
+    // if (e.target.dataset.id == 0){
+    //   this.getData()
+    // }else{
+    //   this.getData1()
+    // }
   },
   search:function(e){
     this.setData({
       keyword: e.detail.value,
       list:[],
-      page:1
+      page:1,
+      list1: [],
+      page1: 1,
     })
     this.getData();
+    this.getData1();
   },
   search1: function (e) {
     this.setData({
       list: [],
-      page: 1
+      page: 1,
+      list1: [],
+      page1: 1
     })
     this.getData();
+    this.getData1();
   },
   showmenu:function(){
     this.setData({
@@ -51,11 +71,14 @@ Page({
   check:function(e){
     this.setData({
       list:[],
+      list1: [],
       show: 0,
       page:1,
+      page1: 1,
       index:e.target.dataset.id
     })
     this.getData();
+    this.getData1();
   },
    //下一页
    next:function(){
@@ -68,6 +91,16 @@ Page({
     }
     
   },
+  next1: function () {
+    if (this.data.list1.length < this.data.total1) {
+      const page = this.data.page1 + 1
+      this.setData({
+        page1: page
+      })
+      this.getData1()
+    }
+
+  },
   //获取所有数据
   getData: function () {
     wx.showNavigationBarLoading()
@@ -97,6 +130,35 @@ Page({
       }
     })
   }, 
+  //刊群
+  getData1: function () {
+    wx.showNavigationBarLoading()
+    const _list = this.data.list1;
+    var index = this.data.index;
+    wx.request({
+      url: host + '/api/news/list',
+      method: 'GET',
+      data: {
+        order_by: this.data.val[index],
+        keyword: this.data.keyword ? this.data.keyword : '',
+        page1: this.data.page1
+      },
+      success: res => {
+        wx.hideNavigationBarLoading()
+        if (res.data.code == 0) {
+          const list = res.data.data.list;
+          for (let i = 0; i < list.length; i++) {
+            list[i].name = list[i].name.replace(this.data.keyword, '<span style="color:#3780CD;">' + this.data.keyword + '</span>')
+            _list.push(list[i])
+          }
+          this.setData({
+            list1: _list,
+            total1: res.data.data.total
+          })
+        }
+      }
+    })
+  }, 
   /**
    * 生命周期函数--监听页面初次渲染完成
    */

+ 22 - 1
pages/knowledge/knowledge.wxml

@@ -17,7 +17,7 @@
 
 <view class="tab">
     <text bindtap="tab" data-id='0' class="{{act == 0?'active':''}}">精品导读</text>
-    <text bindtap="tab" data-id='1' class="{{act == 1?'active':''}}">知识地图</text>
+    <text bindtap="tab" data-id='1' class="{{act == 1?'active':''}}">刊群状态</text>
 </view>
 
 <!-- <view style="text-align:center;margin:100px 0;" bindtap="getData" wx:if='{{list.length<=0}}'>点击重新加载</view> -->
@@ -44,4 +44,25 @@
           </block>
       </scroll-view>
   </swiper-item>
+  <swiper-item>
+      <scroll-view scroll-y="true" scroll-into-view="{{scroll}}" bindscrolltolower='next1' class="content">
+          <navigator url="../news/news?id={{item.id}}" class="list" wx:for='{{list1}}' wx:key="journals{{index}}">
+              <image   src="{{item.img}}"></image>
+              <view>
+                          <view class="title"> <rich-text nodes="<div style='overflow:hidden;white-space:nowrap;text-overflow:ellipsis;'>{{item.name}}</div>"></rich-text></view>
+                          <view class="ly"> 
+                              <view>
+                                  <text>{{item.publish_time}}</text>
+                              </view>
+                              <text class="nowrap">来源:{{item.journal_name}}</text>
+                          </view>
+                          <text>{{item.desc}}</text>
+              </view>
+          </navigator>
+          <block wx:if='{{total1>=20}}'>
+          <view class='more' wx:if='{{list1.length < total1}}'>上拉加载更多...</view>
+          <view class='more' wx:else>已加载全部数据!</view>
+          </block>
+      </scroll-view>
+  </swiper-item>
 </swiper>

+ 0 - 2
pages/learning/learning.wxml

@@ -139,8 +139,6 @@
                               <text class="nowrap">来源:{{item.organizer_name}}</text>
                           </view>
                           <text>{{item.desc}}</text>
-
-                        
                       </view>
                   </navigator> 
                   <block wx:if='{{total_0 >= 20}}'>

+ 503 - 0
pages/news/news.js

@@ -0,0 +1,503 @@
+// pages/actDetail/actDetail.js
+const app = getApp()
+var host = app.globalData.host;
+Page({
+
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    text:'发送验证码',
+    info: {},
+    uid: '',
+    show1:1,
+    show2: 1,
+    zk1: 0,
+    zk2: 0,
+    sex_array: ['男', '女'],
+    sex: -1,
+    job_array: ['非中科院单位','中科院单位'],
+    job: 0,
+    show: 0,
+    list:[],
+    index:[0,0,0],
+    page:1,
+    proof_img:'',
+    user_id:'',   //用户id
+    apply_id:'',   //报名ID
+    phone:''
+  },
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad: function (options) {
+    // options.id=35
+    if (options.apply_id){
+      this.setData({
+        page: 3,
+        show:1,
+        apply_id: options.apply_id
+      })
+    }
+    
+    var that = this;
+    wx.showNavigationBarLoading()
+    var that = this;
+    wx.getStorage({
+      key: 'uid',
+      success: res => {
+        if (res.data) {
+          this.setData({
+            user_id: res.data
+          })
+          wx.request({
+            url: host + '/api/detail',
+            method: 'GET',
+            data: {
+              type: 'news',
+              id: options.id,
+              uid: res.data
+            },
+            success: function (res) {
+              wx.hideNavigationBarLoading();
+              const info = res.data.data
+              if (info.sign_note) { info.sign_note = info.sign_note.replace(/\\n/, '\n') }
+              that.setData({
+                info: info
+              })
+              setTimeout(()=>{
+                const query = wx.createSelectorQuery()
+                query.select('#content').boundingClientRect(rect => {
+                  let height = rect.height;
+                  console.log(height)
+                  if(height<60){
+                      that.setData({
+                          show1:0
+                      })
+                  }
+                }).exec()
+                query.select('#content1').boundingClientRect(rect => {
+                  let height = rect.height;
+                  if (height < 60) {
+                    that.setData({
+                      show2: 0
+                    })
+                  }
+                }).exec()
+              },100)
+            },
+            fail: function () {
+              wx.hideLoading();
+              wx.showToast({
+                title: '服务器开小差啦!',
+                icon: 'none'
+              })
+            }
+          })
+        }
+      },
+    })
+    
+    //中科院单位
+    wx.request({
+      url: host + '/api/organization/list',
+      method: 'GET',
+      success: function (res) {
+        wx.hideNavigationBarLoading();
+        var list=[];
+        list[0] = res.data.data;
+        list[1] = list[0][0].children;
+        list[2] = list[1][0].children;
+        
+        that.setData({
+          list: list
+        })
+      },
+    })
+  },
+  map:function(){
+    const latitude = Number(this.data.info.hotel.latitude);
+    const longitude = Number(this.data.info.hotel.longitude);
+    wx.openLocation({
+      latitude,
+      longitude,
+      scale: 18
+    })
+  },
+  init: function () {
+    const query = wx.createSelectorQuery()
+    const that = this
+    query.select('#editor').context(function (res) {
+      res.context.setContents({
+        html: that.data.info.content
+      })
+    })
+      .exec()
+  },
+  collect: function (e) {
+    var that = this, info = this.data.info;
+    var data = {
+      type: 'news',
+      id: this.data.info.id,
+      uid: this.data.user_id
+    }
+    if (e.target.dataset.id) {
+      data.action = 'cancel'
+    }
+    wx.request({
+      url: host + '/api/collect',
+      data: data,
+      success: function (res) {
+        if (res.data.code == 0) {
+          if (data.action) {
+            wx.showToast({
+              title: '已取消',
+              icon: 'none'
+            })
+            info.is_collected = 0
+          } else {
+            wx.showToast({
+              title: '已收藏',
+              icon: 'none'
+            })
+            info.is_collected = 1
+          }
+
+          that.setData({
+            info: info
+          })
+        }
+      }
+    })
+  },
+  upload:function(){
+    wx.chooseImage({
+      count:0,
+      success: res=>{
+          wx.showLoading({
+            title: '正在上传',
+          })
+          wx.uploadFile({
+            url: host + '/api/uploadfile',
+            filePath: res.tempFilePaths[0],
+            name: 'file',
+            success:response=>{
+              wx.hideLoading();
+              let data = JSON.parse(response.data);
+              this.setData({
+                proof_img:data.data
+              })
+            }
+          })
+      },
+    })
+  },
+  phoneChange:function(e){
+    this.setData({
+      phone: e.detail.value
+    })
+  },
+  sendcode:function(){
+    if(this.data.phone.length<11){
+      wx.showToast({
+        title: '请输入正确的手机号',
+        icon: 'none'
+      })
+      return;
+    }
+    wx.request({
+      url: host + '/api/phcode',
+      method: 'POST',
+      data: { phone: this.data.phone},
+      success: res=> {
+          if(res.data.code == 0){
+              wx.showToast({
+                title: '验证码已发送',
+              })
+            this.countdown()
+          }else{
+            wx.showToast({
+              title: '发送失败',
+              icon: 'none'
+            })
+          }
+      },
+    })
+  },
+  countdown:function(){
+    var time=60,text;
+    var timer=setInterval(()=>{
+      if(time>0){
+        time--;
+        text = time+'s'
+      }else{
+        text='发送验证码'
+        clearInterval(timer)
+      }
+      this.setData({
+        text: text
+      })
+    },1000)
+  },
+  bindMultiPickerColumnChange:function(e){
+    console.log('修改的列为', e.detail.column, ',值为', e.detail.value);
+    var list = this.data.list, i = e.detail.value, j = e.detail.column;
+    var index=this.data.index;
+    index[j] = i
+    if (e.detail.column == 0){
+      list[1] = list[i][0].children;
+      list[2] = list[1][0].children;
+      index[1]=0;
+      index[2]=0;
+    }
+    if (e.detail.column == 1) {
+      list[1] = list[i][0].children;
+      list[2] = list[1][0].children;
+      index[2] = 0;
+    }
+    this.setData({
+      list: list,
+      index: index
+    })
+  },
+  bindSexChange:function(e){
+    this.setData({
+      sex: e.detail.value
+    })
+  },
+  bindPickerChange:function(e){
+    this.setData({
+      job: e.detail.value
+    })
+  }, 
+  skip:function(){
+    wx.redirectTo({
+      url: '../order/order'
+    })
+  },
+  next: function () {
+    this.setData({
+      page: this.data.page+1
+    })
+  },
+  close:function(){
+    this.setData({
+      show: 0
+    })
+  },
+  open: function () {
+    this.setData({
+      show: 1
+    })
+  },
+  //提交报名信息
+  submit: function (e) {
+    var form = e.detail.value;
+    var list = this.data.list, index=this.data.index;
+    if (this.data.info.signup_fields.indexOf('company')>=0){
+      form.organizer_unit = list[0][index[0]].value +","+ list[1][index[1]].value +","+ list[2][index[2]].value
+    }
+    form.sex=this.data.sex
+    form.uid=this.data.user_id;
+    form.conference_id=this.data.info.id;
+    form.conference_name = this.data.info.name;
+    form.type = 'conference';
+    if(!form.name){
+      wx.showToast({
+        title: '请输入姓名!',
+        icon:'none'
+      })
+      return;
+    }
+    // if (!form.job) {
+    //   wx.showToast({
+    //     title: '请输入职务!',
+    //     icon: 'none'
+    //   })
+    //   return;
+    // }
+    if (!form.phone) {
+      wx.showToast({
+        title: '请输入手机号!',
+        icon: 'none'
+      })
+      return;
+    }
+    if (!form.code) {
+      wx.showToast({
+        title: '请输入验证码!',
+        icon: 'none'
+      })
+      return;
+    }
+    wx.showLoading({
+      title: '正在提交',
+    })
+    wx.request({
+      url: host + '/api/user/signup',
+      method:'POST',
+      data: form,
+      success:(res=>{
+        if(res.data.code == 0){
+          wx.hideLoading()
+            this.setData({
+              page: 2,
+              apply_id:res.data.data
+            })
+        }else{
+          wx.showToast({
+            title: res.data.message,
+            icon:'none'
+          })
+        }
+      })
+    })
+   
+  },
+  //提交凭证
+  submit1:function(e){
+    var form = e.detail.value;
+    form.id=this.data.apply_id;
+    form.proof_img = this.data.proof_img;
+    if (!form.proof_img) {
+      wx.showToast({
+        title: '请上传凭证!',
+        icon: 'none'
+      })
+      return;
+    }
+    if (!form.paytype) {
+      wx.showToast({
+        title: '请选择支付方式!',
+        icon: 'none'
+      })
+      return;
+    }
+    if (!form.billtype) {
+      wx.showToast({
+        title: '请选择发票类型!',
+        icon: 'none'
+      })
+      return;
+    }
+    if (!form.billhead) {
+      wx.showToast({
+        title: '请输入发票抬头!',
+        icon: 'none'
+      })
+      return;
+    }
+    if (!form.billno) {
+      wx.showToast({
+        title: '请输入识别号!',
+        icon: 'none'
+      })
+      return;
+    }
+    if (form.billtype == 2){
+      if (!form.billaddress || !form.billphone || !form.billbank || !form.billbankno) {
+        wx.showToast({
+          title: '请填写完整的发票信息!',
+          icon: 'none'
+        })
+        return;
+      }
+    }
+    wx.showLoading({
+      title: '正在提交',
+    })
+    wx.request({
+      url: host + '/api/user/signup',
+      method: 'PUT',
+      data: e.detail.value,
+      success: (res => {
+        wx.hideLoading();
+        if (res.data.code == 0) {
+          wx.showToast({
+            title: '提交成功',
+          })
+          this.setData({
+            page:4
+          })
+        }
+      }),
+      fail:error=>{
+        wx.hideLoading()
+      }
+    })
+  },
+  home:function(){
+      wx.redirectTo({
+        url: '../order/order',
+      })
+  },
+  zk1: function () {
+    this.setData({
+      zk1: 1
+    })
+  },
+  sq1: function () {
+    this.setData({
+      zk1: 0
+    })
+  },
+  zk2: function () {
+    this.setData({
+      zk2: 1
+    })
+  },
+  sq2: function () {
+    this.setData({
+      zk2: 0
+    })
+  },
+  /**
+   * 生命周期函数--监听页面初次渲染完成
+   */
+  onReady: function () {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面显示
+   */
+  onShow: function () {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面隐藏
+   */
+  onHide: function () {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面卸载
+   */
+  onUnload: function () {
+
+  },
+
+  /**
+   * 页面相关事件处理函数--监听用户下拉动作
+   */
+  onPullDownRefresh: function () {
+
+  },
+
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  onReachBottom: function () {
+
+  },
+
+  /**
+   * 用户点击右上角分享
+   */
+  onShareAppMessage: function () {
+
+  }
+})

+ 3 - 0
pages/news/news.json

@@ -0,0 +1,3 @@
+{
+ "navigationBarTitleText": "资讯详情"
+}

+ 61 - 0
pages/news/news.wxml

@@ -0,0 +1,61 @@
+<wxs src="../../utils/util.wxs" module="tools" />
+<view class="{{show?'fixed':''}}">
+<image class='banner'  src="{{info.img}}"></image>
+<view class="info">
+    <view>{{info.name}}
+    <text wx:if='{{info.is_collected}}' class="collect" data-id='1' bindtap="collect">取消收藏</text>
+      <text wx:else class="collect" bindtap="collect">收藏</text>
+    </view>
+    <text>主办单位:{{info.organizer_info.name}}</text>
+    <!-- <text>主讲人:{{info.speaker}}</text> -->
+    <text>时间:{{info.begin_time}}—{{info.end_time}} </text>
+    <text>地址:{{info.city}}{{info.address}}</text>
+</view>
+ 
+<view class="content">
+    <view class="tt">资讯简介</view>
+    <view id='content' class="p {{zk1==1?'':'sq'}}">
+      {{info.desc}}
+    </view>
+    <block wx:if='{{show1}}'>
+    <text bindtap="sq1" class="zksq" wx:if='{{zk1}}'>收起</text>
+    <text bindtap="zk1" class="zksq"  wx:if='{{!zk1}}'>展开</text>
+    </block>
+</view>
+
+<view class="content">
+    <view class="tt">{{info.organizer_info.name}}</view>
+    <view  id='content1'  class="p {{zk2==1?'':'sq'}}">
+      {{info.organizer_info.desc}}
+      
+    </view>
+    <block wx:if='{{show2}}'>
+    <text bindtap="sq2" class="zksq" wx:if='{{zk2}}'>收起</text>
+    <text bindtap="zk2" class="zksq"  wx:if='{{!zk2}}'>展开</text>
+    </block>
+</view>
+
+<view>
+    <view class="tt">资讯内容</view>
+    <!-- <editor style="margin:10px 0;padding:0 10px;" read-only="{{true}}" id="editor"  class="ql-container">
+    </editor> -->
+    <view class="content">
+      <rich-text nodes='{{info.content}}'></rich-text>
+    </view>
+    <view class="tt" wx:if='{{info.speaker_list.length>0}}'>主讲人</view>
+    <view class="list" wx:for='{{info.speaker_list}}'>
+                          <image mode="widthFix"  src="{{item.img}}"></image>
+                          <view>
+                              <view class="tt">{{item.name}}  </view>
+                              <text>{{item.intruduce}}</text>
+                          </view>
+    </view> 
+</view>
+
+
+</view>
+
+
+
+
+                          

+ 322 - 0
pages/news/news.wxss

@@ -0,0 +1,322 @@
+/* pages/eventDetail/eventDetail.wxss */
+page{
+  background: #fff;
+  padding: 30rpx;
+}
+.banner{
+  width: 100%;
+  border-radius: 18rpx;
+  height: 300rpx;
+}
+.info{
+  border-bottom: 1px solid #F0F0F0;
+  padding-bottom: 28rpx;
+}
+.info view{
+  color: #333;
+  font-size: 36rpx;
+  margin: 34rpx 0 28rpx;
+}
+.info text{
+  display: block;
+  color: #999;
+  font-size: 26rpx;
+  padding: 5rpx 0;
+}
+.tt{
+  font-size: 36rpx;
+  color: #333;
+  margin: 34rpx 0;
+}
+.p{
+  color: #999;
+  font-size: 14px;
+  margin-bottom: 20rpx;
+  line-height: 25px;
+}
+.sq{
+   overflow: hidden;
+    text-overflow: ellipsis;
+    display: -webkit-box;
+    -webkit-line-clamp: 3;
+    -webkit-box-orient: vertical;
+    white-space: normal;
+}
+.zksq{
+  color: #3780CD;
+  font-size: 28rpx;
+}
+.content{
+   border-bottom: 1px solid #F0F0F0;
+    padding-bottom: 28rpx;
+}
+
+.post{
+  width: 100% !important;
+  background: #0580D3;
+  color: #fff;
+  display: block;
+  font-size: 34rpx;
+  height: 90rpx;
+  line-height: 90rpx;
+  padding: 0;
+  border-radius: 18rpx;
+  margin-bottom: 30rpx;
+}
+
+.bg{
+  position: fixed;
+  width: 100%;
+  height: 100vh;
+  top: 0;
+  left: 0;
+  z-index: 99;
+  background: rgba(0,0,0,.5);
+  padding: 50rpx 0;
+  overflow: auto;
+}
+.form{
+  background: #fff;
+  border-radius: 18rpx;
+  padding: 50rpx 60rpx;
+  display: block;
+  position: relative;
+  width: 90%;
+  margin: auto;
+}
+.form_tt{
+  text-align: center;
+  color: #333;
+  font-size: 30rpx;
+  margin-bottom: 50rpx;
+}
+.item{
+  background: #F7F7F7;
+  height: 72rpx;
+  border-radius: 10rpx;
+  position: relative;
+  display: flex;
+  margin-bottom: 18rpx;
+  padding: 0 20rpx;
+}
+.item label{
+  line-height: 72rpx;
+  color: #999;
+  width: 32%;
+
+}
+.item input{
+  width: 63%;
+  height: 72rpx;
+}
+.item picker{
+  width: 63%;
+}
+.form .ts{
+  display: block;
+  text-align: center;
+  color: #999;
+  font-size: 22rpx;
+  line-height: 50rpx;
+}
+.form .post{
+  margin-top: 20rpx;
+}
+.picker{
+  line-height: 72rpx;
+}
+.code{
+  position: absolute;
+  color: #1682DA;
+  font-size: 22rpx;
+  right: 24rpx;
+  top: 0;
+  line-height: 72rpx;
+  z-index: 99;
+}
+.close{
+  width: 50rpx;
+  position: absolute;
+  top: 20rpx;
+  right: 20rpx;
+}
+.tips,.tips text{
+  font-size: 24rpx;
+  color: #F6C830;
+  margin-bottom: 40rpx;
+  line-height: 40rpx;
+  display: block;
+}
+.form_info text{
+  color: #333;
+  font-size: 26rpx;
+  display: block;
+  line-height: 50rpx;
+}
+.form_info{
+  margin-bottom: 50rpx;
+}
+.form1{
+  height: 800rpx;
+  /* width: 100%; */
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  margin: auto;
+  position: absolute;
+  overflow: auto;
+}
+.upload{
+  border: 1px solid #3BA0FF;
+  padding: 30rpx;
+  text-align: center;
+  color: #999;
+  font-size: 20rpx;
+  border-radius: 12rpx;
+  margin-bottom: 20rpx;
+  position: relative;
+}
+
+.upload image{
+  display: block;
+  width: 100rpx;
+  margin:0 auto 30rpx;
+}
+.upload .proof_img{
+  height: 200rpx;
+  margin: 0 auto;
+}
+.form2 .item label{
+  width: 40%;
+  font-size: 24rpx;
+}
+.form2 radio{
+  font-size: 22rpx;
+  /* line-height: 65rpx; */
+  margin-top: 15rpx;
+}
+.form2 .item input{
+  width: 60%;
+}
+.btns{
+  display: flex;
+  justify-content: space-between;
+}
+.btns button{
+  width: 40% !important;
+  height: 90rpx;
+  background: #0580D3;
+  border-radius: 18px;
+  color: #fff;
+  font-size: 30rpx;
+  line-height: 90rpx;
+  padding: 0;
+  margin-top: 30rpx;
+}
+.btns .success{
+  background: #09A65E;
+}
+.form2{
+  max-height: 95vh;
+  overflow: auto;
+  padding: 50rpx 40rpx;
+}
+.suc{
+  color: #333;
+  font-size: 34rpx;
+  margin-bottom: 40rpx;
+  text-align: center;
+}
+.end{
+  text-align: center;
+  padding: 50rpx;
+}
+.end view{
+  color: #333;
+  font-size: 38rpx;
+  margin: 50rpx 0;
+}
+.end .form_info{
+  color: #666;
+  font-size: 30rpx;
+  line-height: 50rpx;
+}
+
+.ql-container{
+  height: auto;
+  min-height:0;
+}
+
+.hotel{
+  margin: 40rpx 0;
+}
+.hotel>view{
+  color: #333;
+  line-height: 30px;
+}
+.room{
+  display: flex;
+  margin-top: 20rpx;
+}
+.room image{
+  width: 150rpx;
+  height: 150rpx;
+}
+.room>view{
+  width: 60%;
+  padding-left: 20rpx;
+  color: #666;
+}
+.room text{
+  margin-right: 20rpx;
+}
+.map{
+  float: right;
+  color: green;
+}
+.info .collect{
+  float: right;
+  background: #F2F2F2;
+  font-size: 24rpx;
+  padding:10rpx 20rpx;
+  border-radius: 8rpx;
+}
+.list{
+  /* box-shadow: 0px 2rpx 9rpx 0px rgba(0, 0, 0, 0.2); */
+  /* border-radius: 20rpx; */
+  display: flex;
+  /* padding: 20rpx; */
+  /* box-shadow: 0 0 15rpx 0px rgba(0, 0, 0, 0.2); */
+  /* margin: 0 20rpx 40rpx; */
+  border-bottom: 1px solid #F0F0F0;
+  padding: 28rpx 0;
+  
+}
+.list image{
+  width: 20%;
+  /* height: 50px; */
+}
+.list>view{
+  width: 80%;
+  vertical-align: middle;
+  padding-left: 20rpx;  
+}
+.list .tt{
+  margin-bottom: 20rpx;
+  text-overflow: ellipsis;
+  overflow: hidden;
+  white-space: nowrap;
+  font-size: 28rpx;
+}
+.list text{
+  color: #999;
+  display: block;
+  overflow: hidden;
+    text-overflow: ellipsis;
+    display: -webkit-box;
+    -webkit-line-clamp: 2;
+    -webkit-box-orient: vertical;
+    white-space: normal;
+    font-size: 26rpx;
+}