xiansin 2 роки тому
батько
коміт
d1fd34abbd

+ 1 - 1
mini/api/setting.js

@@ -2,7 +2,7 @@ const request = uni.$u.http
 
 
 export function tabBar() {
 export function tabBar() {
   return request.get(
   return request.get(
-    'setting/navBar'
+    'setting/tabBar'
   )
   )
 }
 }
 
 

+ 30 - 0
mini/components/CheckLogin/index.vue

@@ -0,0 +1,30 @@
+<template>
+  <view class="check-login">
+    <u-loading-page
+      :loading="!isLogin"
+      :bg-color="$colors.bgColor"
+      :color="$colors.primaryColor"
+      :loading-color="$colors.primaryColor"
+    />
+  </view>
+</template>
+
+<script>
+export default {
+  name: 'CheckLogin',
+  data() {
+    return {}
+  },
+  computed: {
+    isLogin() {
+      return this.$api.user.isLogin()
+    }
+  },
+  methods: {}
+}
+</script>
+
+<style lang="scss" scoped>
+    .check-login {
+    }
+</style>

+ 2 - 1
mini/components/TabBar/index.vue

@@ -9,7 +9,7 @@
         @click="handleSwitch(index)"
         @click="handleSwitch(index)"
       >
       >
         <view class="icon">
         <view class="icon">
-          <image :src="active === index ? item.selectedIconPath : item.iconPath" mode="aspectFit" />
+          <image :src="active === index ? (item.selected_icon ? item.selected_icon : item.selectedIconPath) : (item.icon ? item.icon : item.iconPath)" mode="aspectFit" />
         </view>
         </view>
         <text>{{ item.text }}</text>
         <text>{{ item.text }}</text>
       </view>
       </view>
@@ -73,6 +73,7 @@ export default {
   created() {
   created() {
     this.calc()
     this.calc()
     uni.hideTabBar()
     uni.hideTabBar()
+    this.getData()
   },
   },
   methods: {
   methods: {
     handleSwitch(index) {
     handleSwitch(index) {

+ 5 - 1
mini/pages/index/components/EpisodeBox.vue

@@ -2,7 +2,11 @@
   <view class="episode-box">
   <view class="episode-box">
     <view class="header-box main-between cross-center">
     <view class="header-box main-between cross-center">
       <text class="title">{{ title }}</text>
       <text class="title">{{ title }}</text>
-      <view class="refresh main-left cross-center" @click="handleRefresh">
+      <view
+        v-if="['recommend','news'].indexOf(type) !== -1"
+        class="refresh main-left cross-center"
+        @click="handleRefresh"
+      >
         <text>换一批</text>
         <text>换一批</text>
         <view class="icon">
         <view class="icon">
           <u-icon name="reload" size="32rpx" bold />
           <u-icon name="reload" size="32rpx" bold />

+ 47 - 40
mini/pages/index/index.vue

@@ -1,44 +1,47 @@
 <template>
 <template>
   <view class="container">
   <view class="container">
-    <!--search-->
-    <view class="search-box main-center cross-center">
-      <u-input
-        v-model="keywords"
-        placeholder="请输入剧名"
-        color="#fff"
-        border="none"
-        prefix-icon="search"
-        :prefix-icon-style="{
-          color: $colors.primaryColor,
-          fontSize: '50rpx',
-          fontWeight: 500,
-          lineHeight: '50rpx'
-        }"
-        :custom-style="{
-          backgroundColor: '#1B203C',
-          padding: '14rpx 30rpx',
-          width: '700rpx',
-          borderRadius: '36rpx',
-          color: '#fff'
-        }"
-        @confirm="handleSearch"
+    <check-login />
+    <template v-if="isLogin">
+      <!--search-->
+      <view class="search-box main-center cross-center">
+        <u-input
+          v-model="keywords"
+          placeholder="请输入剧名"
+          color="#fff"
+          border="none"
+          prefix-icon="search"
+          :prefix-icon-style="{
+            color: $colors.primaryColor,
+            fontSize: '50rpx',
+            fontWeight: 500,
+            lineHeight: '50rpx'
+          }"
+          :custom-style="{
+            backgroundColor: '#1B203C',
+            padding: '14rpx 30rpx',
+            width: '700rpx',
+            borderRadius: '36rpx',
+            color: '#fff'
+          }"
+          @confirm="handleSearch"
+        />
+      </view>
+      <!--swpier-->
+      <swiper-box />
+      <!--栏目分类-->
+      <nav-bar />
+      <!--分类-->
+      <episode-box
+        v-for="(item,index) in homeColumn"
+        :key="index"
+        :title="item.name"
+        :type="item.type"
       />
       />
-    </view>
-    <!--swpier-->
-    <swiper-box />
-    <!--栏目分类-->
-    <nav-bar />
-    <!--分类-->
-    <episode-box
-      v-for="(item,index) in homeColumn"
-      :key="index"
-      :title="item.name"
-      :type="item.type"
-    />
-    <!--tab bar-->
-    <tab-bar />
-    <!--最近播放-->
-    <recent />
+      <!--tab bar-->
+      <tab-bar />
+      <!--最近播放-->
+      <recent />
+    </template>
   </view>
   </view>
 </template>
 </template>
 
 
@@ -48,8 +51,9 @@ import EpisodeBox from './components/EpisodeBox'
 import TabBar from '../../components/TabBar/index'
 import TabBar from '../../components/TabBar/index'
 import NavBar from '../../components/NavBar/index'
 import NavBar from '../../components/NavBar/index'
 import Recent from './components/Recent'
 import Recent from './components/Recent'
+import CheckLogin from '../../components/CheckLogin/index'
 export default {
 export default {
-  components: { Recent, NavBar, TabBar, EpisodeBox, SwiperBox },
+  components: { CheckLogin, Recent, NavBar, TabBar, EpisodeBox, SwiperBox },
   data() {
   data() {
     return {
     return {
       keywords: '',
       keywords: '',
@@ -63,9 +67,12 @@ export default {
     }
     }
   },
   },
   computed: {
   computed: {
+    isLogin() {
+      return this.$api.user.isLogin()
+    }
   },
   },
   onLoad(options) {
   onLoad(options) {
-    this.$api.user.isLogin() && this.getHomeColumn()
+    this.isLogin && this.getHomeColumn()
   },
   },
   methods: {
   methods: {
     handleSearch() {
     handleSearch() {

+ 1 - 0
mini/pages/trace/index.vue

@@ -151,6 +151,7 @@ export default {
           border-top-right-radius: 30rpx;
           border-top-right-radius: 30rpx;
           border-bottom-right-radius: 30rpx;
           border-bottom-right-radius: 30rpx;
           text-align: center;
           text-align: center;
+          height: 400rpx;
         }
         }
         .episode-box{
         .episode-box{
           margin-left: 20rpx;
           margin-left: 20rpx;

+ 9 - 3
server/app/Admin/Controllers/Program/TabbarController.php

@@ -21,7 +21,8 @@ class TabbarController extends AdminController
             $grid->column('id')->sortable();
             $grid->column('id')->sortable();
             $grid->column('name')->editable();
             $grid->column('name')->editable();
             $grid->column('icon')->image('',50);
             $grid->column('icon')->image('',50);
-            $grid->column('sort')->editable()->sortable();
+            $grid->column('selected_icon')->image('',50);
+//            $grid->column('sort')->editable()->sortable();
             $grid->column('status')->switch('', true);
             $grid->column('status')->switch('', true);
 
 
             $grid->disableCreateButton();
             $grid->disableCreateButton();
@@ -44,8 +45,13 @@ class TabbarController extends AdminController
             $form->image('icon')->saveFullUrl()->uniqueName()->autoUpload()
             $form->image('icon')->saveFullUrl()->uniqueName()->autoUpload()
                 ->autoSave(false)
                 ->autoSave(false)
                 ->removable(false)
                 ->removable(false)
-                ->width(4)->required();;
-            $form->number('sort');
+                ->width(4)->required();
+
+                $form->image('selected_icon')->saveFullUrl()->uniqueName()->autoUpload()
+                ->autoSave(false)
+                ->removable(false)
+                ->width(4)->required();
+//            $form->number('sort');
             $form->switch('status', true);
             $form->switch('status', true);
 
 
             $form->disableDeleteButton();
             $form->disableDeleteButton();

+ 11 - 1
server/app/Admin/Controllers/UserController.php

@@ -104,7 +104,17 @@ class UserController extends AdminController
             $form->text('nickname')->disable();
             $form->text('nickname')->disable();
             $form->image('avatar')->width(200)->disable();
             $form->image('avatar')->width(200)->disable();
             $form->text('open_id','openid')->disable();
             $form->text('open_id','openid')->disable();
-            $form->switch('status','是否拉黑')->default(0);
+            $form->radio('status','是否拉黑')
+                ->options(config('global.bool_status'))
+                ->default(0);
+
+            $form->radio('info.is_vip','是否会员')
+                ->options(config('global.bool_status'))
+                ->default(0)
+                ->when(1,function (Form $form){
+                $form->date('info.start_at','会员开始时间')->default(0);
+                $form->date('info.end_at','会员开始时间')->default(0);
+            });
 
 
             $form->number('info.integral','金币');
             $form->number('info.integral','金币');
 
 

+ 1 - 0
server/app/Admin/Controllers/UserVipRecordController.php

@@ -18,6 +18,7 @@ class UserVipRecordController extends AdminController
     protected function grid()
     protected function grid()
     {
     {
         return Grid::make(UserVipRecord::with(['user.info','combo']), function (Grid $grid) {
         return Grid::make(UserVipRecord::with(['user.info','combo']), function (Grid $grid) {
+            $grid->model()->where('status',1);
             $grid->column('id')->sortable();
             $grid->column('id')->sortable();
             $grid->column('pay_id');
             $grid->column('pay_id');
             $grid->column('user_id')->display(function () {
             $grid->column('user_id')->display(function () {

+ 5 - 5
server/app/Http/Controllers/V1/SettingController.php

@@ -13,9 +13,9 @@ class SettingController extends Controller
      */
      */
     public function tabBar()
     public function tabBar()
     {
     {
-        $all = Tabbar::select(['name','icon','type'])
+        $all = Tabbar::select(['name as text','icon','selected_icon','type'])
             ->where('status',1)
             ->where('status',1)
-            ->orderByDesc('sort')
+            ->orderBy('sort')
             ->get();
             ->get();
 
 
         return $this->success($all);
         return $this->success($all);
@@ -28,7 +28,7 @@ class SettingController extends Controller
     {
     {
         $all = NavBar::select(['name','icon','type'])
         $all = NavBar::select(['name','icon','type'])
             ->where('status',1)
             ->where('status',1)
-            ->orderByDesc('sort')
+            ->orderBy('sort')
             ->get();
             ->get();
 
 
         return $this->success($all);
         return $this->success($all);
@@ -41,7 +41,7 @@ class SettingController extends Controller
     {
     {
         $all = Banner::select(['name as title','image'])
         $all = Banner::select(['name as title','image'])
             ->where('status',1)
             ->where('status',1)
-            ->orderByDesc('sort')
+            ->orderBy('sort')
             ->get();
             ->get();
 
 
         return $this->success($all);
         return $this->success($all);
@@ -51,7 +51,7 @@ class SettingController extends Controller
     {
     {
         $all = HomeColumn::select(['name','type'])
         $all = HomeColumn::select(['name','type'])
             ->where('status',1)
             ->where('status',1)
-            ->orderByDesc('sort')
+            ->orderBy('sort')
             ->get();
             ->get();
 
 
         return $this->success($all);
         return $this->success($all);

+ 1 - 0
server/resources/lang/zh/tabbar.php

@@ -8,6 +8,7 @@ return [
     'fields' => [
     'fields' => [
         'name' => '名称',
         'name' => '名称',
         'icon' => '图标',
         'icon' => '图标',
+        'selected_icon' => '选中图标',
         'sort' => '排序',
         'sort' => '排序',
         'status' => '是否启用',
         'status' => '是否启用',
     ],
     ],