Commit 136c6bae197d3ca499b5e7c7d23ca645e1fbe295

Authored by 后端研发-倪永富
1 parent 87ca01df

直播列表分享

packageA/pages/live_share/live_share.js 0 → 100644
  1 +// packageA//pages/goods_share/goods_share.js
  2 +Page({
  3 +
  4 + /**
  5 + * 页面的初始数据
  6 + */
  7 + data: {
  8 + // tab
  9 + tab: ['秒杀','拼单','促销','专享礼包'],
  10 + currentIndex: 0,
  11 + //促销页tab
  12 + tab2: ['正在直播','即将开始','精彩回放'],
  13 + currentIndex2: 0,
  14 + //秒杀和拼单底部tab
  15 + currentIndex3: 0,
  16 + // 控制价格
  17 + active1: false,
  18 + // 控制佣金
  19 + active2: false,
  20 + //popup
  21 + hiddenPopup: true,
  22 + },
  23 +
  24 + /**
  25 + * 生命周期函数--监听页面加载
  26 + */
  27 + onLoad: function (options) {
  28 +
  29 + },
  30 +
  31 + /**
  32 + * 生命周期函数--监听页面初次渲染完成
  33 + */
  34 + onReady: function () {
  35 +
  36 + },
  37 +
  38 + /**
  39 + * 生命周期函数--监听页面显示
  40 + */
  41 + onShow: function () {
  42 +
  43 + },
  44 +
  45 + /**
  46 + * 生命周期函数--监听页面隐藏
  47 + */
  48 + onHide: function () {
  49 +
  50 + },
  51 +
  52 + /**
  53 + * 生命周期函数--监听页面卸载
  54 + */
  55 + onUnload: function () {
  56 +
  57 + },
  58 +
  59 + /**
  60 + * 页面相关事件处理函数--监听用户下拉动作
  61 + */
  62 + // onPullDownRefresh: function () {
  63 +
  64 + // },
  65 +
  66 + /**
  67 + * 页面上拉触底事件的处理函数
  68 + */
  69 + onReachBottom: function () {
  70 +
  71 + },
  72 +
  73 + /**
  74 + * 用户点击右上角分享
  75 + */
  76 + onShareAppMessage: function () {
  77 +
  78 + },
  79 +
  80 + // 点击价格排序
  81 + sort1() {
  82 + if(this.data.active2) {
  83 + this.setData({
  84 + active2: !this.data.active2
  85 + });
  86 + };
  87 + this.setData({
  88 + active1: !this.data.active1
  89 + });
  90 +
  91 + },
  92 + // 点击佣金排序
  93 + sort2() {
  94 + if(this.data.active1) {
  95 + this.setData({
  96 + active1: !this.data.active1
  97 + });
  98 + };
  99 + this.setData({
  100 + active2: !this.data.active2
  101 + });
  102 + },
  103 + // 点击tab
  104 + clickTab(e) {
  105 + this.setData({
  106 + currentIndex: e.target.dataset.index,
  107 + });
  108 + },
  109 + // 点击促销页tab
  110 + clickTab2(e) {
  111 + this.setData({
  112 + currentIndex2: e.target.dataset.index,
  113 + });
  114 + },
  115 + // 点击秒杀和拼单底部tab
  116 + clickTab3(e) {
  117 + this.setData({
  118 + currentIndex3: e.target.dataset.index,
  119 + });
  120 + },
  121 + // 关闭弹出层
  122 + closePopup() {
  123 + this.setData({
  124 + hiddenPopup: true
  125 + });
  126 + },
  127 + // 显示弹出层
  128 + showPopup() {
  129 + this.setData({
  130 + hiddenPopup: false
  131 + });
  132 + },
  133 +})
0 134 \ No newline at end of file
... ...
packageA/pages/live_share/live_share.json 0 → 100644
  1 +{
  2 + "usingComponents": {
  3 + "nodata": "/components/nodata/nodata"
  4 + },
  5 + "enablePullDownRefresh": false
  6 +}
0 7 \ No newline at end of file
... ...
packageA/pages/live_share/live_share.wxml 0 → 100644
  1 +<view class="container">
  2 + <!-- 列表 -->
  3 + <view class="list-container">
  4 + <!-- 标题 -->
  5 + <view class="subTab-title flex">
  6 + <block wx:for="{{tab2}}">
  7 + <view class="subTab-titleItem {{currentIndex2 == index ? 'active':''}}" data-index="{{index}}" bindtap="clickTab2">{{item}}</view>
  8 + </block>
  9 + </view>
  10 + <!-- 列表项 -->
  11 + <scroll-view
  12 + class="list"
  13 + scroll-y="true"
  14 + scroll-anchoring
  15 + refresher-enabled>
  16 +
  17 + <!-- 暂无数据 -->
  18 + <nodata nodataContainer="nodata">暂无数据</nodata>
  19 +
  20 + <!-- 专享礼包 -->
  21 + <block>
  22 + <view class class="list-item">
  23 + <view class="img-container {{currentIndex2 == 0?'live':currentIndex2 == 1?'coming':'playback'}}"></view>
  24 + <view class="details">
  25 + <view class="ellipsis-2 fs28 name">商品名称商品名称商品名称商品名称商品名称商品名称商品名称商品名称商品名称</view>
  26 + <view class="pdt20 fs26 red">直播时间:2020-12-31 18:00</view>
  27 + <view class="fs26 red pdv10">主播:何大大</view>
  28 + <view class="t-r fs28 pdt10"><view class="btn-share">分享</view></view>
  29 + </view>
  30 + </view>
  31 + </block>
  32 +
  33 + <view class="no-more t-c">- 已全部加载 -</view>
  34 + </scroll-view>
  35 + </view>
  36 +</view>
  37 +
... ...
packageA/pages/live_share/live_share.wxss 0 → 100644
  1 +/* packageA//pages/goods_share/goods_share.wxss */
  2 +.red {
  3 + color: #FE6867;
  4 +}
  5 +.gray {
  6 + color: #7b7b7b;
  7 +}
  8 +.w25 {
  9 + width: 25%;
  10 +}
  11 +.w50 {
  12 + width: 50%;
  13 +}
  14 +.w164 {
  15 + width: 164rpx;
  16 +}
  17 +.bold {
  18 + font-weight: bold;
  19 +}
  20 +page {
  21 + background-color: #f2f2f2;
  22 + height: 100%;
  23 +}
  24 +.container {
  25 + background-color: white;
  26 + height: 100%;
  27 +}
  28 +.search-container {
  29 + display: flex;
  30 + padding: 26rpx 20rpx;
  31 + border-bottom: 2rpx solid #f8f8f8;
  32 +}
  33 +.input-container {
  34 + flex: 1;
  35 + border-radius: 6rpx 0 0 6rpx;
  36 + overflow: hidden;
  37 +}
  38 +.search {
  39 + background-color: #f0f0f0;
  40 + padding: 10rpx 20rpx;
  41 + font-size: 28rpx;
  42 +}
  43 +.btn-search {
  44 + background-color: #FE6867;
  45 + color: white;
  46 + padding: 0 30rpx;
  47 + display: flex;
  48 + align-items: center;
  49 + border-radius: 0 6rpx 6rpx 0;
  50 +}
  51 +.title {
  52 + display: flex;
  53 + font-size: 30rpx;
  54 + border-bottom: 2rpx solid #f8f8f8;
  55 +}
  56 +.title .iconfont {
  57 + color: #ccc;
  58 + font-size: 16rpx;
  59 + margin-left: 8rpx;
  60 +}
  61 +.title-item {
  62 + width: 25%;
  63 + box-sizing: border-box;
  64 + text-align: center;
  65 + padding: 20rpx;
  66 + position: relative;
  67 +}
  68 +.title-item.active {
  69 + color: #FE6867;
  70 + font-weight: bold;
  71 +}
  72 +.title-item.active:after {
  73 + content:'';
  74 + position: absolute;
  75 + width: 50%;
  76 + height: 4rpx;
  77 + background-color: #FE6867;
  78 + left: 0;
  79 + right: 0;
  80 + bottom: 0;
  81 + margin: 0 auto;
  82 +}
  83 +.list-container {
  84 + height: calc(100% - 118rpx);
  85 +}
  86 +.list {
  87 + box-sizing: border-box;
  88 + height: calc(100% - 82rpx);
  89 + background-color: #f2f2f2;
  90 + /* padding-bottom: 102rpx; */
  91 +}
  92 +.list.active1 {
  93 + height: calc(100% - 82rpx - 78rpx);
  94 + padding-bottom: 0;
  95 +}
  96 +.list.active2 {
  97 + padding-bottom: 0;
  98 +}
  99 +.list-item {
  100 + display: flex;
  101 + padding: 20rpx;
  102 + border-bottom: 2rpx solid #f8f8f8;
  103 + background-color: white;
  104 +}
  105 +.img-container {
  106 + background-color: #f0f0f0;
  107 + width: 280rpx;
  108 + height: 248rpx;
  109 + display: flex;
  110 + align-items: center;
  111 + justify-content: center;
  112 + position: relative;
  113 +}
  114 +.img-container:after {
  115 + font-family: iconfont;
  116 + content: '\e8c1';
  117 + color: #bbb;
  118 + font-size: 80rpx;
  119 +}
  120 +
  121 +
  122 +.img-container.live:before {
  123 + content: '\e664';
  124 +}
  125 +.img-container.coming:before {
  126 + content: '\e608';
  127 +}
  128 +.img-container.playback:before {
  129 + content: '\e603';
  130 +}
  131 +.img-container.live:before,
  132 +.img-container.coming:before,
  133 +.img-container.playback:before {
  134 + font-family: iconfont;
  135 + background-color: #FE6867;
  136 + color: white;
  137 + width: 50rpx;
  138 + height: 50rpx;
  139 + line-height: 50rpx;
  140 + text-align: center;
  141 + border-radius: 50%;
  142 + position: absolute;
  143 + left: 10rpx;
  144 + top: 10rpx;
  145 +}
  146 +.details {
  147 + flex: 1;
  148 + padding-left: 20rpx;
  149 +}
  150 +.btn-share {
  151 + box-sizing: border-box;
  152 + display: inline-block;
  153 + background-color: #FE6867;
  154 + color: white;
  155 + padding: 8rpx 30rpx;
  156 + border-radius: 6rpx;
  157 + text-align: center;
  158 +}
  159 +.pdt10 {
  160 + padding-top: 10rpx;
  161 +}
  162 +.pdt14 {
  163 + padding-top: 14rpx;
  164 +}
  165 +.pdtb6 {
  166 + padding-top: 6rpx;
  167 + padding-bottom: 6rpx;
  168 +}
  169 +.pdtb8 {
  170 + padding-top: 8rpx;
  171 + padding-bottom: 8rpx;
  172 +}
  173 +.pdl20 {
  174 + padding-left: 104rpx;
  175 +}
  176 +
  177 +
  178 +.no-more {
  179 + line-height: 3;
  180 + color: #ccc;
  181 + /* background-color: #f2f2f2; */
  182 +}
  183 +.nodata {
  184 + text-align: center;
  185 + background-color: #f2f2f2;
  186 +}
  187 +.progress-container {
  188 + width: 55%;
  189 + padding-right: 10rpx;
  190 + position: relative;
  191 + text-align: center;
  192 +}
  193 +.retail {
  194 + color: #7b7b7b;
  195 + text-decoration: line-through;
  196 + font-size: 22rpx;
  197 + padding-left: 20rpx;
  198 +}
  199 +.name {
  200 + height: 76rpx;
  201 + overflow: hidden;
  202 +}
  203 +
  204 +.percent {
  205 + position: absolute;
  206 + top: 0;
  207 + bottom: 0;
  208 + left: 0;
  209 + right: 0;
  210 + margin: auto;
  211 + color: white;
  212 +}
  213 +.tabbar {
  214 + position: fixed;
  215 + width: 100%;
  216 + bottom: 0;
  217 + background-color: white;
  218 +}
  219 +.tabbar:after {
  220 + position: absolute;
  221 + content: '';
  222 + width: 2rpx;
  223 + height: 50%;
  224 + top: 0;
  225 + bottom: 0;
  226 + left: 0;
  227 + right: 0;
  228 + margin: auto;
  229 + background-color: #f0f0f0;
  230 +}
  231 +.tabbar-item {
  232 + width: 50%;
  233 + text-align: center;
  234 + padding-top: 30rpx;
  235 + padding-bottom: 30rpx;
  236 +}
  237 +.tabbar-item .iconfont {
  238 + margin-right: 10rpx;
  239 +}
  240 +.tabbar-item.active {
  241 + color: #FE6867;
  242 +}
  243 +
  244 +
  245 +.group-type,
  246 +.group-num {
  247 + position: relative;
  248 + font-size: 22rpx;
  249 +}
  250 +.group-type:before,
  251 +.group-num:before {
  252 + font-family: iconfont;
  253 +}
  254 +.group-type:before {
  255 + content: '\e66a';
  256 + color: white;
  257 + background-color: #FE6867;
  258 + position: absolute;
  259 + left: 0;
  260 + top: 0;
  261 + bottom: 0;
  262 + padding-left: 6rpx;
  263 + padding-right: 10rpx;
  264 + line-height: 30rpx;
  265 +}
  266 +.group-num:before {
  267 + padding-right: 6rpx;
  268 +}
  269 +.group-num:before {
  270 + content: '\e694';
  271 + position: relative;
  272 +}
  273 +.group-num {
  274 + color: white;
  275 + background-color: #FE6867;
  276 + border-radius: 34rpx;
  277 + padding-left: 10rpx;
  278 + padding-right: 10rpx;
  279 + margin-right: 14rpx;
  280 +}
  281 +.group-type {
  282 + color: #FE6867;
  283 + border: 2rpx solid #FE6867;
  284 + padding-left: 42rpx;
  285 + padding-right: 4rpx;
  286 + border-radius: 6rpx;
  287 +}
  288 +
  289 +.badge {
  290 + color: white;
  291 + padding: 0 20rpx;
  292 + border-radius: 6rpx;
  293 + background-color: #FE6867;
  294 + margin-right: 10rpx;
  295 +}
  296 +
  297 +.subTab-title {
  298 + text-align: center;
  299 + justify-content: center;
  300 + align-items: center;
  301 + font-size: 28rpx;
  302 +}
  303 +.subTab-list {
  304 + padding: 20rpx;
  305 +}
  306 +.subTab-titleItem {
  307 + box-sizing: border-box;
  308 + width: calc(100% / 3);
  309 + padding: 20rpx 40rpx;
  310 + background-color: white;
  311 + border-right: 2rpx solid #f8f8f8;
  312 +}
  313 +.subTab-titleItem:last-child {
  314 + border-right: none;
  315 +}
  316 +.subTab-titleItem.active {
  317 + background-color: #FE6867;
  318 + color: white;
  319 +}
  320 +.subTab-item {
  321 + padding: 20rpx;
  322 + border-bottom: 2rpx solid #f8f8f8;
  323 + background-color: white;
  324 + border-radius: 8rpx;
  325 + box-shadow: 0 8px 12px #e7e9eb;
  326 +}
  327 +.subTab-item ~ .subTab-item {
  328 + margin-top: 20rpx;
  329 +}
  330 +.pdv10 {
  331 + padding-top: 10rpx;
  332 + padding-bottom: 10rpx;
  333 +}
  334 +.pdv20 {
  335 + padding-top: 20rpx;
  336 + padding-bottom: 20rpx;
  337 +}
  338 +.pdb10 {
  339 + padding-bottom: 10rpx;
  340 +}
  341 +.pdb20 {
  342 + padding-bottom: 20rpx;
  343 +}
  344 +.bdr-b {
  345 + border-bottom: 2rpx solid #f8f8f8;
  346 +}
  347 +.dash-b {
  348 + border-bottom: 2rpx dashed #ddd;
  349 +}
  350 +.btn-container {
  351 + display: flex;
  352 + align-items: flex-end;
  353 + font-size: 26rpx;
  354 +}
  355 +
  356 +
  357 +/* .popup-container {
  358 + content:'';
  359 + position: fixed;
  360 + top: 0;
  361 + bottom: 0;
  362 + left: 0;
  363 + right: 0;
  364 + z-index: 3;
  365 + background-color: rgba(0,0,0,.6);
  366 + display: flex;
  367 + align-items: center;
  368 + justify-content: center;
  369 +}
  370 +.popup {
  371 + width: 90%;
  372 +}
  373 +.popup-content {
  374 + box-sizing: border-box;
  375 + width: 100%;
  376 + background-color: white;
  377 + padding: 0 20rpx;
  378 + border-radius: 10rpx;
  379 + max-height: 1038rpx;
  380 +}
  381 +.icon-close {
  382 + font-size: 60rpx;
  383 + color: white;
  384 +}
  385 +.popup-btn {
  386 + padding-top: 30rpx;
  387 +}
  388 +
  389 +.popup-title {
  390 + /* font-size: 28rpx; */
  391 + /* font-weight: bold;
  392 + padding: 20rpx 0;
  393 +}
  394 +.popup-title2 { */
  395 + /* padding: 10rpx 0; */
  396 + /* padding-bottom: 8rpx;
  397 +}
  398 +.popup-title3 {
  399 + padding-left: 34rpx;
  400 + font-size: 30rpx;
  401 +}
  402 +.popup-list {
  403 + max-height: 602rpx;
  404 + overflow-y: auto;
  405 +}
  406 +
  407 +
  408 +radio .wx-radio-input {
  409 + width: 28rpx;
  410 + height: 28rpx;
  411 +}
  412 +
  413 +
  414 +radio .wx-radio-input.wx-radio-input-checked {
  415 + background-color: #FE6867;
  416 + border-color: #FE6867;
  417 +}
  418 +radio .wx-radio-input.wx-radio-input-checked::before{
  419 + color: white;
  420 +}
  421 +
  422 +.popup-content.active {
  423 + max-height: 982rpx;
  424 + overflow: auto;
  425 +} */
  426 +
  427 +
  428 +
  429 +
  430 +
... ...