wupengfei 2 years ago
parent
commit
62971c1275

+ 0 - 32
application/nutrition/controller/SeriesDatum.php

@@ -146,38 +146,6 @@ class SeriesDatum extends Controller
         $this->_save($this->table, ['is_deleted' => 1]);
     }
 
-    /**
-     * 添加资料
-     * @auth true
-     * @menu true
-     * @throws \think\Exception
-     * @throws \think\db\exception\DataNotFoundException
-     * @throws \think\db\exception\ModelNotFoundException
-     * @throws \think\exception\DbException
-     * @throws \think\exception\PDOException
-     */
-    public function add_datum()
-    {
-        $this->title = '添加资料';
-        $this->type = input('get.type',2);
-        if($this->request->isGet()) {
-            $id = input('get.id');
-            $datum_info = DatumIntro::where('id',$id)->find()->toArray();
-            $cate_name = DatumCate::where('id',$datum_info['datum_cate'])->value('title');
-            $this->fetch('add_datum',['datum_info'=>$datum_info,'cate_name'=>$cate_name]);
-        }else if($this->request->isPost()){
-            list($post) = [$this->request->post()];
-            var_dump($post);die();
-            if(empty($post['url'])) $this->error('请上传文件');
-            $item_info = [
-                'datum_id'=>$post['datum_id'],
-                'url'=>$post['url'],
-                'sort'=>$post['sort'],
-            ];
-            $this->success('添加成功');
-        }
-
-    }
 
 
     /**

+ 1 - 0
application/nutrition/controller/SeriesManage.php

@@ -177,6 +177,7 @@ class SeriesManage extends Controller
                 $item_title = input('post.item_title');
                 if(empty($item_title)) $this->error('请上传视频');
             }
+            if($this->request->action() == 'add') $data['url_num'] = 0;
 
         }
     }

+ 138 - 0
application/nutrition/controller/VideoUrl.php

@@ -0,0 +1,138 @@
+<?php
+namespace app\Nutrition\controller;
+use app\common\model\DatumIntro;
+use library\Controller;
+use app\common\model\DatumCate;
+use function AlibabaCloud\Client\value;
+
+/**
+ * 视频管理
+ * Class VideoUrl
+ * @package app\Nutrition\controller
+ */
+class VideoUrl extends Controller
+{
+    /**
+     * 绑定数据表
+     * @var string
+     */
+    protected $table = 'VideoUrl';
+
+    /**
+     * 列表
+     * @auth true
+     * @menu true
+     * @throws \think\Exception
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\ModelNotFoundException
+     * @throws \think\exception\DbException
+     * @throws \think\exception\PDOException
+     */
+    public function index()
+    {
+        $this->title = '视频列表';
+        $this->video_id = input('video_id');
+        $sel_where = [];
+        $sel_where[] = ['is_deleted','=',0];
+        $sel_where[] = ['video_id','=',$this->video_id];
+        $query = $this->_query($this->table);
+        $query->where($sel_where)->order('sort desc,id desc')->page(false);
+    }
+
+    /**
+     * 数据列表处理
+     * @auth true
+     * @menu true
+     * @param array $data
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\ModelNotFoundException
+     * @throws \think\exception\DbException
+     */
+    protected function _index_page_filter(&$data)
+    {
+
+
+    }
+
+
+
+    /**
+     * 添加
+     * @auth true
+     * @menu true
+     * @throws \think\Exception
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\ModelNotFoundException
+     * @throws \think\exception\DbException
+     * @throws \think\exception\PDOException
+     */
+    public function add()
+    {
+        $this->title = '添加视频';
+        $this->_form($this->table, 'form');
+    }
+
+
+    /**
+     * 编辑
+     * @auth true
+     * @menu true
+     * @throws \think\Exception
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\ModelNotFoundException
+     * @throws \think\exception\DbException
+     * @throws \think\exception\PDOException
+     */
+    public function edit()
+    {
+        $this->title = '编辑视频';
+        $this->_form($this->table, 'form') ;
+    }
+
+
+    /**
+     * 删除视频
+     * @auth true
+     * @menu true
+     * @throws \think\Exception
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\ModelNotFoundException
+     * @throws \think\exception\DbException
+     * @throws \think\exception\PDOException
+     */
+    public function del()
+    {
+        $video_id = \app\common\model\VideoUrl::where('id',input('id'))->value('video_id');
+        DatumIntro::where('id',$video_id)->setDec('url_num');
+        $this->_save($this->table, ['is_deleted' => 1]);
+    }
+
+
+    /**
+     * 表单数据处理
+     * @auth true
+     * @menu true
+     * @param array $data
+     */
+    protected function _form_filter(&$data)
+    {
+        if($this->request->isGet()){
+            $this->video_id = input('video_id');
+            $this->video_info = DatumIntro::where('id',$this->video_id)->find()->toArray();
+            $this->cate_name = DatumCate::where('id',$this->video_info['video_cate'])->value('title');
+        }
+        if($this->request->isPost()){
+            list($post) = [$this->request->post()];
+            if(empty($post['url'])) $this->error('请上传文件');
+        }
+
+    }
+
+    protected function  _form_result($result)
+    {
+        $url_num = \app\common\model\VideoUrl::where(['video_id'=>$this->request->post('video_id'),'is_deleted'=>0])->count();
+        DatumIntro::where('id',$this->request->post('video_id'))->update(['url_num'=>$url_num]);
+    }
+
+
+}

+ 6 - 5
application/nutrition/view/series_manage/index.html

@@ -1,7 +1,7 @@
 {extend name='admin@main'}
 
 {block name="button"}
-<button data-modal='{:url("add")}?type=2' data-title="添加" class='layui-btn layui-btn-sm layui-btn-primary'>添加系列</button>
+<button data-modal='{:url("add")}?type=2' data-title="添加" class='layui-btn layui-btn-xs layui-btn-primary'>添加系列</button>
 {/block}
 
 {block name="content"}
@@ -31,13 +31,14 @@
             <td class='text-left nowrap'>{$vo.status == 1 ?'已启用' :'已禁用'}</td>
             <td class='text-left nowrap'>{$vo.is_top == 1 ?'是' :'否'}</td>
             <td class='text-left nowrap' >
-                <a data-title="编辑" class="layui-btn layui-btn-sm" data-modal='{:url("edit")}?id={$vo.id}&type={$vo.type}'>编 辑</a>
+                <a data-title="编辑" class="layui-btn layui-btn-xs" data-modal='{:url("edit")}?id={$vo.id}&type={$vo.type}'>编 辑</a>
                 {if $vo.status == 1}
-                <span class="layui-btn layui-btn-sm  layui-btn-warm"  onclick="btn_confirm('禁用','forbidden','{$vo.id}');" >禁 用</span>
+                <span class="layui-btn layui-btn-xs  layui-btn-warm"  onclick="btn_confirm('禁用','forbidden','{$vo.id}');" >禁 用</span>
                 {else}
-                <span class="layui-btn layui-btn-sm layui-btn-sm"  onclick="btn_confirm('启用','enable','{$vo.id}');">启 用</span>
+                <span class="layui-btn layui-btn-xs layui-btn-xs"  onclick="btn_confirm('启用','enable','{$vo.id}');">启 用</span>
                 {/if}
-                <span class="layui-btn layui-btn-sm layui-btn-danger" onclick="btn_confirm('删除','del','{$vo.id}');">删 除</span>
+                <span class="layui-btn layui-btn-xs layui-btn-danger" onclick="btn_confirm('删除','del','{$vo.id}');">删 除</span>
+                <a data-title="视频管理" class="layui-btn layui-btn-xs" data-open='{:url("/nutrition/video_url/index")}?video_id={$vo.id}'>视频管理</a>
             </td>
         </tr>
         {/foreach}

+ 72 - 0
application/nutrition/view/video_url/form.html

@@ -0,0 +1,72 @@
+<div class="think-box-shadow">
+    <form class="layui-form layui-card" action="{:request()->url()}" data-auto="true" method="post" autocomplete="off">
+        <div class="layui-card-body">
+
+            <div class="layui-form-item">
+                <label class="layui-form-label label-required">系列</label>
+                <div class="layui-input-block">
+                    <input  name="video_id" type="hidden" value='{$video_info.id|default=""}' class="layui-input">
+                    <input readonly maxlength="20"  value='{$video_info.title|default=""}' class="layui-input">
+                </div>
+            </div>
+
+            <div class="layui-form-item">
+                <label class="layui-form-label label-required">标题</label>
+                <div class="layui-input-block">
+                    <input  name="title" maxlength="20"  value='{$vo.title|default=""}' class="layui-input">
+                </div>
+            </div>
+
+            <div class="layui-form-item">
+                <label class="layui-form-label label-required">视频</label>
+                <div class="layui-input-block">
+                    <input class="item_url" name="url" type="hidden" value="{$video_url.url|default=''}">
+                    <a style="margin-left: 20px;" class="layui-btn layui-btn-sm video_player">预 览</a>
+                </div>
+            </div>
+
+
+            <div class="layui-form-item">
+                <label class="layui-form-label label-required">是否VIP</label>
+                <div class="layui-input-block">
+                    <select class="layui-select" name="is_vip">
+                        <option    value="0">否</option>
+                        <option   {if !empty($vo.is_vip) &&  $vo.is_vip == 1 }selected{/if}  value="1">是</option>
+                    </select>
+                </div>
+            </div>
+
+            <div class="layui-form-item">
+                <label class="layui-form-label label-required">排序</label>
+                <div class="layui-input-block">
+                    <input name="sort" readonly maxlength="20"  value='{$vo.sort|default=""}' class="layui-input">
+                </div>
+            </div>
+            {notempty name='vo.id'}<input type='hidden' value='{$vo.id}' name='id'>{/notempty}
+            <div class="layui-form-item text-center">
+                <button class="layui-btn" type='submit'>保 存</button>
+                <button class="layui-btn layui-btn-danger" type='button' data-confirm="确定取消编辑吗?" data-close>取消编辑</button>
+            </div>
+        </div>
+    </form>
+    <script src="/static/plugs/layui/layui.all.js" charset="utf-8"></script>
+    <script>
+
+        window.form.render();
+
+        $(document).on("click",'.video_player',function () {
+            vUrl = $(".item_url").val(); //获取到播放的url
+            var loadstr = '<video width="100%" height="100%"  controls="controls" autobuffer="autobuffer"  autoplay="autoplay" loop="loop">' +
+                '<source src='+vUrl+' type="video/mp4"></source></video>';
+            layer.open({
+                type: 1,
+                title: false,
+                area: ['730px', '500px'],
+                shade: [0.8, 'rgb(14, 16, 22)'],
+                skin: 'demo-class',
+                content: loadstr
+            });
+            form.render();
+        });
+    </script>
+</div>

+ 59 - 0
application/nutrition/view/video_url/index.html

@@ -0,0 +1,59 @@
+{extend name='admin@main'}
+{block name="button"}
+<button data-modal='{:url("add")}?datum_id={$datum_id}' data-title="添加" class='layui-btn layui-btn-sm layui-btn-primary'>添加</button>
+{/block}
+{block name="content"}
+<div class="think-box-shadow">
+    <table class="layui-table margin-top-20" lay-skin="line">
+        <thead>
+        <tr>
+            <th class='text-left nowrap'>ID</th>
+            <th class='text-left nowrap'>标题</th>
+            <th class='text-left nowrap'>文件</th>
+            <th class='text-left nowrap'>是否VIP</th>
+            <th class="text-left" style="width: 20%">操作</th>
+        </tr>
+        </thead>
+        <tbody>
+        {foreach $list as $key=>$vo}
+        <tr>
+            <td class='text-left nowrap'>{$vo.id|default=''}</td>
+            <td class='text-left nowrap'>{$vo.title|default=''}</td>
+            <td class='text-left nowrap'>{$vo.url|default=''}</td>
+            <td class='text-left nowrap'>{$vo.is_vip ? '是':'否'}</td>
+            <td class='text-left' style="width: 20%">
+                <a data-title="编辑" class="layui-btn layui-btn-xs" data-modal='{:url("edit")}?id={$vo.id}&datum_id={$vo.datum_id}'>编 辑</a>
+                <span class="layui-btn layui-btn-xs layui-btn-danger" onclick="btn_confirm('删除','del','{$vo.id}');">删 除</span>
+            </td>
+        </tr>
+        {/foreach}
+        </tbody>
+    </table>
+    {empty name='list'}<span class="notdata">没有记录哦</span>{else}{$pagehtml|raw|default=''}{/empty}
+</div>
+<script>
+    function btn_confirm(msg,fun,id) {
+        layer.confirm('请确定是否'+msg, {btn: ['确定', '取消'], title: "提示"}, function () {
+            var url = "/nutrition/datum_url/"+fun;
+            layer.closeAll();
+            $.ajax({
+                type: "post",
+                url: url,
+                data: {id:id},
+                dataType: "json",
+                async: false,
+                success: function (data) {
+                    layer.msg(data.info);
+                    setTimeout(function () {
+                        window.location.reload();
+                    },1000)
+                }
+            });
+        });
+    }
+
+</script>
+{/block}
+
+
+