wupengfei 2 năm trước cách đây
mục cha
commit
a9e15f41fb

+ 8 - 4
.idea/workspace.xml

@@ -2,8 +2,12 @@
 <project version="4">
   <component name="ChangeListManager">
     <list default="true" id="1a36929e-c054-4875-a943-593a74e55fa4" name="Default Changelist" comment="">
+      <change afterPath="$PROJECT_DIR$/application/nutrition/controller/ArticleClassify.php" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/application/nutrition/view/article_classify/form.html" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/application/nutrition/view/article_classify/index.html" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/application/nutrition/view/article_classify/second.html" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/application/nutrition/controller/VideoClassify.php" beforeDir="false" afterPath="$PROJECT_DIR$/application/nutrition/controller/VideoClassify.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/application/nutrition/view/video_classify/index.html" beforeDir="false" afterPath="$PROJECT_DIR$/application/nutrition/view/video_classify/index.html" afterDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -129,7 +133,7 @@
   <component name="PropertiesComponent">
     <property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
     <property name="WebServerToolWindowFactoryState" value="false" />
-    <property name="last_opened_file_path" value="$PROJECT_DIR$/application/nutrition/view/video_classify" />
+    <property name="last_opened_file_path" value="$PROJECT_DIR$/application/nutrition/controller" />
     <property name="node.js.detected.package.eslint" value="true" />
     <property name="node.js.detected.package.tslint" value="true" />
     <property name="node.js.path.for.package.eslint" value="project" />
@@ -147,9 +151,9 @@
       <recent name="D:\zs\gaoyixia\application\api\controller" />
     </key>
     <key name="CopyFile.RECENT_KEYS">
-      <recent name="D:\zs\gaoyixia\application\nutrition\view\video_classify" />
       <recent name="D:\zs\gaoyixia\application\nutrition\controller" />
       <recent name="D:\zs\gaoyixia\application\nutrition\view" />
+      <recent name="D:\zs\gaoyixia\application\nutrition\view\video_classify" />
       <recent name="D:\zs\gaoyixia\vendor" />
       <recent name="D:\zs\gaoyixia\application\common\service" />
     </key>
@@ -269,7 +273,7 @@
       <workItem from="1679359715116" duration="25702000" />
       <workItem from="1679532313623" duration="31448000" />
       <workItem from="1679619041819" duration="29965000" />
-      <workItem from="1679706054685" duration="6478000" />
+      <workItem from="1679706054685" duration="6654000" />
     </task>
     <servers />
   </component>

+ 150 - 0
application/nutrition/controller/ArticleClassify.php

@@ -0,0 +1,150 @@
+<?php
+namespace app\Nutrition\controller;
+use library\Controller;
+use library\service\MenuService;
+use library\tools\Data;
+use think\Db;
+use think\db\Where;
+
+/**
+ * 分类
+ * Class ArticleClassify
+ * @package app\nutrition\controller
+ */
+class ArticleClassify extends Controller
+{
+
+    /**
+     * 绑定数据表
+     * @var string
+     */
+    protected $table = 'SeriesArticleCate';
+
+    /**
+     * 分类列表
+     * @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 = '分类列表';
+        $query = $this->_query($this->table)->where('is_deleted',0)->like('title')
+            ->where('pid',0)
+            ->order('sort desc,id asc')->page();
+    }
+
+
+
+    /**
+     * 添加分类
+     * @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');
+    }
+
+    /**
+     * 表单数据处理
+     * @param array $vo
+     * @throws \ReflectionException
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\ModelNotFoundException
+     * @throws \think\exception\DbException
+     */
+    protected function _form_filter(&$data)
+    {
+        if($this->request->action() == 'edit') unset($data['pid']);
+    }
+
+    /**
+     * 启用
+     * @auth true
+     * @menu true
+     * @throws \think\Exception
+     * @throws \think\exception\PDOException
+     */
+    public function resume()
+    {
+        $this->_save($this->table, ['status' => '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 forbid()
+    {
+        $this->_save($this->table, ['status' => '0']);
+    }
+
+    /**
+     * 删除
+     * @auth true
+     * @menu true
+     * @throws \think\Exception
+     * @throws \think\exception\PDOException
+     */
+    public function remove()
+    {
+        $this->_save($this->table, ['is_deleted' => 1]);
+    }
+
+
+    /**
+     * 二级分类列表
+     * @auth true
+     * @menu true
+     * @throws \think\Exception
+     * @throws \think\exception\PDOException
+     */
+    public function second(){
+        $this->title ='二级分类';
+        $pid = input('pid');
+        $list = $this->_query('SeriesArticleCate')
+            ->where(['is_deleted'=>0,'pid'=>$pid])
+            ->like('title')
+            ->order('id desc')->page();
+        $this->assign('list',$list);
+        $this->fetch('');
+    }
+
+
+
+}
+

+ 27 - 0
application/nutrition/view/article_classify/form.html

@@ -0,0 +1,27 @@
+<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>
+            <div class="layui-input-block">
+                <input name="title" value='{$vo.title|default=""}' required placeholder="请输入分类名称" class="layui-input">
+                <p class="help-block">必填,请填写分类名称,建议字符不要太长,一般4-6个汉字</p>
+            </div>
+        </div>
+    </div>
+    {notempty name='vo.id'}<input type='hidden' value='{$vo.id}' name='id'>{/notempty}
+    <input type='hidden' value='{$Think.get.pid|default="0"}' name='pid'>
+
+    <div class="layui-form-item text-center" style="margin-top: 100px">
+        <button class="layui-btn" type='submit'>保存数据</button>
+        <button class="layui-btn layui-btn-danger" type='button' data-confirm="确定要取消编辑吗?" data-close>取消编辑</button>
+    </div>
+
+</form>
+
+{block name='script'}
+<script>
+    window.form.render();
+    $('[name="logo"]').uploadOneImage();
+</script>
+{/block}

+ 84 - 0
application/nutrition/view/article_classify/index.html

@@ -0,0 +1,84 @@
+{extend name='admin@main'}
+
+{block name="button"}
+<button data-modal='{:url("add")}' data-title="添加分类" class='layui-btn layui-btn-sm layui-btn-primary'>添加分类</button>
+{/block}
+
+{block name="content"}
+<div class="think-box-shadow">
+    <fieldset>
+        <legend>条件搜索</legend>
+        <form class="layui-form layui-form-pane form-search" action="{:request()->url()}" onsubmit="return false" method="get" autocomplete="off">
+            <div class="layui-form-item layui-inline">
+                <label class="layui-form-label">名称</label>
+                <div class="layui-input-inline">
+                    <input name="title" value="{$Think.get.title|default=''}" placeholder="请输入分类名称" class="layui-input">
+                </div>
+            </div>
+            <div class="layui-form-item layui-inline">
+                <button class="layui-btn layui-btn-primary"><i class="layui-icon">&#xe615;</i> 搜 索</button>
+            </div>
+        </form>
+        <script>form.render()</script>
+    </fieldset>
+    <table class="layui-table margin-top-20" lay-skin="line">
+        <thead>
+        <tr>
+            <th class='list-table-check-td think-checkbox'><input data-auto-none data-check-target='.list-check-box' type='checkbox'></th>
+            <th class='list-table-sort-td'><button type="button" data-reload class="layui-btn layui-btn-xs">刷 新</button></th>
+            <th class='text-left nowrap'>ID</th>
+            <th class='text-left nowrap'>名称</th>
+            <th class='text-left nowrap'>状态</th>
+            <th class="text-left" style="width: 20%">操作</th>
+        </tr>
+        </thead>
+        <tbody>
+        {foreach $list as $key=>$vo}
+        <tr>
+            <td class='list-table-check-td think-checkbox'><input class="list-check-box" value='{$vo.id}' type='checkbox'></td>
+            <td class='list-table-sort-td'><input data-action-blur="{:request()->url()}" data-value="id#{$vo.id};action#sort;sort#{value}" data-loading="false" value="{$vo.sort}" class="list-sort-input"></td>
+            <td class='text-left nowrap'>{$vo.id|default=''}</td>
+            <td class='text-left nowrap'>{$vo.title|default=''}</td>
+            <td class='text-left nowrap'>{$vo.status == 1 ?'已启用' :'已禁用'}</td>
+            <td class='text-left' style="width: 20%">
+                <a data-title="编辑分类" class="layui-btn layui-btn-xs" data-modal='{:url("edit")}?id={$vo.id}'>编 辑</a>
+                {if $vo.pid == 0}  <a data-title="查看" class="layui-btn layui-btn-xs" data-open='{:url("second")}?pid={$vo.id}'>二级分类</a>{/if}
+                {if $vo.status == 1}
+                <span class="layui-btn layui-btn-xs  layui-btn-warm"  onclick="btn_confirm('禁用','forbid','{$vo.id}');" >禁 用</span>
+                {else}
+                <span class="layui-btn layui-btn-xs layui-btn-xs"  onclick="btn_confirm('启用','resume','{$vo.id}');">启 用</span>
+                {/if}
+                <span class="layui-btn layui-btn-xs layui-btn-danger" onclick="btn_confirm('删除','remove','{$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/article_classify/"+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}
+
+
+

+ 84 - 0
application/nutrition/view/article_classify/second.html

@@ -0,0 +1,84 @@
+{extend name='admin@main'}
+
+{block name="button"}
+<button data-modal='{:url("add")}?pid={$Think.get.pid|default="0"}' data-title="添加分类" class='layui-btn layui-btn-sm layui-btn-primary'>添加分类</button>
+{/block}
+
+{block name="content"}
+<div class="think-box-shadow">
+    <fieldset>
+        <legend>条件搜索</legend>
+        <form class="layui-form layui-form-pane form-search" action="{:request()->url()}" onsubmit="return false" method="get" autocomplete="off">
+            <div class="layui-form-item layui-inline">
+                <label class="layui-form-label">名称</label>
+                <div class="layui-input-inline">
+                    <input name="title" value="{$Think.get.title|default=''}" placeholder="请输入分类名称" class="layui-input">
+                </div>
+            </div>
+            <div class="layui-form-item layui-inline">
+                <button class="layui-btn layui-btn-primary"><i class="layui-icon">&#xe615;</i> 搜 索</button>
+            </div>
+        </form>
+        <script>form.render()</script>
+    </fieldset>
+    <table class="layui-table margin-top-20" lay-skin="line">
+        <thead>
+        <tr>
+            <th class='list-table-check-td think-checkbox'><input data-auto-none data-check-target='.list-check-box' type='checkbox'></th>
+            <th class='list-table-sort-td'><button type="button" data-reload class="layui-btn layui-btn-xs">刷 新</button></th>
+            <th class='text-left nowrap'>ID</th>
+            <th class='text-left nowrap'>名称</th>
+            <th class='text-left nowrap'>状态</th>
+            <th class="text-left" style="width: 20%">操作</th>
+        </tr>
+        </thead>
+        <tbody>
+        {foreach $list as $key=>$vo}
+        <tr>
+            <td class='list-table-check-td think-checkbox'><input class="list-check-box" value='{$vo.id}' type='checkbox'></td>
+            <td class='list-table-sort-td'><input data-action-blur="{:request()->url()}" data-value="id#{$vo.id};action#sort;sort#{value}" data-loading="false" value="{$vo.sort}" class="list-sort-input"></td>
+            <td class='text-left nowrap'>{$vo.id|default=''}</td>
+            <td class='text-left nowrap'>{$vo.title|default=''}</td>
+            <td class='text-left nowrap'>{$vo.status == 1 ?'已启用' :'已禁用'}</td>
+            <td class='text-left' style="width: 20%">
+                <a data-title="编辑分类" class="layui-btn layui-btn-xs" data-modal='{:url("edit")}?id={$vo.id}'>编 辑</a>
+                {if $vo.pid == 0}  <a data-title="查看" class="layui-btn layui-btn-xs" data-open='{:url("second")}?pid={$vo.id}'>查看二级分类</a>{/if}
+                {if $vo.status == 1}
+                <span class="layui-btn layui-btn-xs  layui-btn-warm"  onclick="btn_confirm('禁用','forbid','{$vo.id}');" >禁 用</span>
+                {else}
+                <span class="layui-btn layui-btn-xs layui-btn-xs"  onclick="btn_confirm('启用','resume','{$vo.id}');">启 用</span>
+                {/if}
+                <span class="layui-btn layui-btn-xs layui-btn-danger" onclick="btn_confirm('删除','remove','{$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/article_classify/"+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}
+
+
+

+ 1 - 1
application/nutrition/view/video_classify/index.html

@@ -42,7 +42,7 @@
             <td class='text-left nowrap'>{$vo.status == 1 ?'已启用' :'已禁用'}</td>
             <td class='text-left' style="width: 20%">
                 <a data-title="编辑分类" class="layui-btn layui-btn-xs" data-modal='{:url("edit")}?id={$vo.id}'>编 辑</a>
-                {if $vo.pid == 0}  <a data-title="查看" class="layui-btn layui-btn-xs" data-open='{:url("second")}?pid={$vo.id}'>查看二级分类</a>{/if}
+                {if $vo.pid == 0}  <a data-title="查看" class="layui-btn layui-btn-xs" data-open='{:url("second")}?pid={$vo.id}'>二级分类</a>{/if}
                 {if $vo.status == 1}
                 <span class="layui-btn layui-btn-xs  layui-btn-warm"  onclick="btn_confirm('禁用','forbid','{$vo.id}');" >禁 用</span>
                 {else}