From c2a369639e46fb99bf0dd2010aa737053e1551bb Mon Sep 17 00:00:00 2001 From: guosheng <gs@bronet.cn> Date: Thu, 12 Dec 2019 22:41:00 +0800 Subject: [PATCH] 封面管理 --- .idea/workspace.xml | 9 +++------ application/admin/controller/Feng.php | 35 +++++++++++++++++++++++++++++++++++ application/admin/lang/zh-cn/feng.php | 10 ++++++++++ application/admin/model/Feng.php | 40 ++++++++++++++++++++++++++++++++++++++++ application/admin/validate/Feng.php | 27 +++++++++++++++++++++++++++ application/admin/view/feng/add.html | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ application/admin/view/feng/edit.html | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ application/admin/view/feng/index.html | 35 +++++++++++++++++++++++++++++++++++ public/assets/js/backend/feng.js | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ public/pdf/.pdf | Bin 0 -> 332321 bytes public/pdf/2019121299974848,2019121210057100.pdf | Bin 0 -> 333497 bytes 11 files changed, 316 insertions(+), 6 deletions(-) create mode 100644 application/admin/controller/Feng.php create mode 100644 application/admin/lang/zh-cn/feng.php create mode 100644 application/admin/model/Feng.php create mode 100644 application/admin/validate/Feng.php create mode 100644 application/admin/view/feng/add.html create mode 100644 application/admin/view/feng/edit.html create mode 100644 application/admin/view/feng/index.html create mode 100644 public/assets/js/backend/feng.js create mode 100644 public/pdf/.pdf create mode 100644 public/pdf/2019121299974848,2019121210057100.pdf diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 32ca042..6db8304 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -1,10 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="ChangeListManager"> - <list default="true" id="e93f11c2-a7d9-4d35-8b1c-8dd18e7f5fef" name="Default" comment=""> - <change type="MODIFICATION" beforePath="$PROJECT_DIR$/application/admin/controller/Order.php" afterPath="$PROJECT_DIR$/application/admin/controller/Order.php" /> - <change type="MODIFICATION" beforePath="$PROJECT_DIR$/application/api/controller/User.php" afterPath="$PROJECT_DIR$/application/api/controller/User.php" /> - </list> + <list default="true" id="e93f11c2-a7d9-4d35-8b1c-8dd18e7f5fef" name="Default" comment="" /> <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> <option name="TRACKING_ENABLED" value="true" /> <option name="SHOW_DIALOG" value="false" /> @@ -356,7 +353,7 @@ <workItem from="1576028218954" duration="680000" /> <workItem from="1576128183316" duration="7364000" /> <workItem from="1576135696788" duration="17540000" /> - <workItem from="1576153922472" duration="7615000" /> + <workItem from="1576153922472" duration="7712000" /> </task> <task id="LOCAL-00001" summary="调试"> <created>1574145133364</created> @@ -383,7 +380,7 @@ <servers /> </component> <component name="TimeTrackingManager"> - <option name="totallyTimeSpent" value="422753000" /> + <option name="totallyTimeSpent" value="422850000" /> </component> <component name="TodoView"> <todo-panel id="selected-file"> diff --git a/application/admin/controller/Feng.php b/application/admin/controller/Feng.php new file mode 100644 index 0000000..1287832 --- /dev/null +++ b/application/admin/controller/Feng.php @@ -0,0 +1,35 @@ +<?php + +namespace app\admin\controller; + +use app\common\controller\Backend; + +/** + * 封面管理 + * + * @icon fa fa-circle-o + */ +class Feng extends Backend +{ + + /** + * Feng模型对象 + * @var \app\admin\model\Feng + */ + protected $model = null; + + public function _initialize() + { + parent::_initialize(); + $this->model = new \app\admin\model\Feng; + + } + + /** + * 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法 + * 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑 + * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改 + */ + + +} diff --git a/application/admin/lang/zh-cn/feng.php b/application/admin/lang/zh-cn/feng.php new file mode 100644 index 0000000..e112830 --- /dev/null +++ b/application/admin/lang/zh-cn/feng.php @@ -0,0 +1,10 @@ +<?php + +return [ + 'Id' => 'ID', + 'Thumbnail' => '大片封面', + 'Image' => '图片封面', + 'Pic' => '视频封面', + 'Createtime' => '创建时间', + 'Updatetime' => '修改时间' +]; diff --git a/application/admin/model/Feng.php b/application/admin/model/Feng.php new file mode 100644 index 0000000..02e8037 --- /dev/null +++ b/application/admin/model/Feng.php @@ -0,0 +1,40 @@ +<?php + +namespace app\admin\model; + +use think\Model; + + +class Feng extends Model +{ + + + + + + // 表名 + protected $name = 'feng'; + + // 自动写入时间戳字段 + protected $autoWriteTimestamp = 'int'; + + // 定义时间戳字段名 + protected $createTime = 'createtime'; + protected $updateTime = 'updatetime'; + protected $deleteTime = false; + + // 追加属性 + protected $append = [ + + ]; + + + + + + + + + + +} diff --git a/application/admin/validate/Feng.php b/application/admin/validate/Feng.php new file mode 100644 index 0000000..37739c5 --- /dev/null +++ b/application/admin/validate/Feng.php @@ -0,0 +1,27 @@ +<?php + +namespace app\admin\validate; + +use think\Validate; + +class Feng extends Validate +{ + /** + * 验证规则 + */ + protected $rule = [ + ]; + /** + * 提示消息 + */ + protected $message = [ + ]; + /** + * 验证场景 + */ + protected $scene = [ + 'add' => [], + 'edit' => [], + ]; + +} diff --git a/application/admin/view/feng/add.html b/application/admin/view/feng/add.html new file mode 100644 index 0000000..b16f643 --- /dev/null +++ b/application/admin/view/feng/add.html @@ -0,0 +1,53 @@ +<form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action=""> + + <div class="form-group"> + <label class="control-label col-xs-12 col-sm-2">{:__('Thumbnail')}:</label> + <div class="col-xs-12 col-sm-8"> + <div class="input-group"> + <input id="c-thumbnail" data-rule="required" class="form-control" size="35" name="row[thumbnail]" type="text" placeholder="请上传大片封面"> + <div class="input-group-addon no-border no-padding"> + <span><button type="button" id="plupload-thumbnail" class="btn btn-danger plupload" data-input-id="c-thumbnail" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp" data-multiple="false" data-preview-id="p-thumbnail"><i class="fa fa-upload"></i> {:__('Upload')}</button></span> + <span><button type="button" id="fachoose-thumbnail" class="btn btn-primary fachoose" data-input-id="c-thumbnail" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span> + </div> + <span class="msg-box n-right"></span> + </div> + <ul class="row list-inline plupload-preview" id="p-thumbnail"></ul> + </div> + </div> + + <div class="form-group"> + <label class="control-label col-xs-12 col-sm-2">{:__('Image')}:</label> + <div class="col-xs-12 col-sm-8"> + <div class="input-group"> + <input id="c-image" data-rule="required" class="form-control" size="35" name="row[image]" type="text" placeholder="请上传图片封面"> + <div class="input-group-addon no-border no-padding"> + <span><button type="button" id="plupload-image" class="btn btn-danger plupload" data-input-id="c-image" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp" data-multiple="false" data-preview-id="p-image"><i class="fa fa-upload"></i> {:__('Upload')}</button></span> + <span><button type="button" id="fachoose-image" class="btn btn-primary fachoose" data-input-id="c-image" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span> + </div> + <span class="msg-box n-right"></span> + </div> + <ul class="row list-inline plupload-preview" id="p-image"></ul> + </div> + </div> + <div class="form-group"> + <label class="control-label col-xs-12 col-sm-2">{:__('Pic')}:</label> + <div class="col-xs-12 col-sm-8"> + <div class="input-group"> + <input id="c-pic" data-rule="required" class="form-control" size="35" name="row[pic]" type="text" placeholder="请上传视频封面图片"> + <div class="input-group-addon no-border no-padding"> + <span><button type="button" id="plupload-pic" class="btn btn-danger plupload" data-input-id="c-pic" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp" data-multiple="false" data-preview-id="p-image"><i class="fa fa-upload"></i> {:__('Upload')}</button></span> + <span><button type="button" id="fachoose-pic" class="btn btn-primary fachoose" data-input-id="c-pic" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span> + </div> + <span class="msg-box n-right"></span> + </div> + <ul class="row list-inline plupload-preview" id="p-pic"></ul> + </div> + </div> + <div class="form-group layer-footer"> + <label class="control-label col-xs-12 col-sm-2"></label> + <div class="col-xs-12 col-sm-8"> + <button type="submit" class="btn btn-success btn-embossed disabled">{:__('OK')}</button> + <button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button> + </div> + </div> +</form> diff --git a/application/admin/view/feng/edit.html b/application/admin/view/feng/edit.html new file mode 100644 index 0000000..6c00926 --- /dev/null +++ b/application/admin/view/feng/edit.html @@ -0,0 +1,53 @@ +<form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action=""> + + <div class="form-group"> + <label class="control-label col-xs-12 col-sm-2">{:__('Thumbnail')}:</label> + <div class="col-xs-12 col-sm-8"> + <div class="input-group"> + <input id="c-thumbnail" data-rule="required" class="form-control" size="35" name="row[thumbnail]" type="text" value="{$row.thumbnail}" placeholder="请上传大片封面"> + <div class="input-group-addon no-border no-padding"> + <span><button type="button" id="plupload-thumbnail" class="btn btn-danger plupload" data-input-id="c-thumbnail" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp" data-multiple="false" data-preview-id="p-thumbnail"><i class="fa fa-upload"></i> {:__('Upload')}</button></span> + <span><button type="button" id="fachoose-thumbnail" class="btn btn-primary fachoose" data-input-id="c-thumbnail" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span> + </div> + <span class="msg-box n-right"></span> + </div> + <ul class="row list-inline plupload-preview" id="p-thumbnail"></ul> + </div> + </div> + + <div class="form-group"> + <label class="control-label col-xs-12 col-sm-2">{:__('Image')}:</label> + <div class="col-xs-12 col-sm-8"> + <div class="input-group"> + <input id="c-image" data-rule="required" class="form-control" size="35" name="row[image]" type="text" value="{$row.image}" placeholder="请上传图片封面"> + <div class="input-group-addon no-border no-padding"> + <span><button type="button" id="plupload-image" class="btn btn-danger plupload" data-input-id="c-image" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp" data-multiple="false" data-preview-id="p-image"><i class="fa fa-upload"></i> {:__('Upload')}</button></span> + <span><button type="button" id="fachoose-image" class="btn btn-primary fachoose" data-input-id="c-image" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span> + </div> + <span class="msg-box n-right"></span> + </div> + <ul class="row list-inline plupload-preview" id="p-image"></ul> + </div> + </div> + <div class="form-group"> + <label class="control-label col-xs-12 col-sm-2">{:__('Pic')}:</label> + <div class="col-xs-12 col-sm-8"> + <div class="input-group"> + <input id="c-pic" data-rule="required" class="form-control" size="35" name="row[pic]" type="text" value="{$row.pic}" placeholder="请上传视频封面图片"> + <div class="input-group-addon no-border no-padding"> + <span><button type="button" id="plupload-pic" class="btn btn-danger plupload" data-input-id="c-pic" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp" data-multiple="false" data-preview-id="p-pic"><i class="fa fa-upload"></i> {:__('Upload')}</button></span> + <span><button type="button" id="fachoose-pic" class="btn btn-primary fachoose" data-input-id="c-pic" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span> + </div> + <span class="msg-box n-right"></span> + </div> + <ul class="row list-inline plupload-preview" id="p-pic"></ul> + </div> + </div> + <div class="form-group layer-footer"> + <label class="control-label col-xs-12 col-sm-2"></label> + <div class="col-xs-12 col-sm-8"> + <button type="submit" class="btn btn-success btn-embossed disabled">{:__('OK')}</button> + <button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button> + </div> + </div> +</form> diff --git a/application/admin/view/feng/index.html b/application/admin/view/feng/index.html new file mode 100644 index 0000000..55356f1 --- /dev/null +++ b/application/admin/view/feng/index.html @@ -0,0 +1,35 @@ +<div class="panel panel-default panel-intro"> + {:build_heading()} + + <div class="panel-body"> + <div id="myTabContent" class="tab-content"> + <div class="tab-pane fade active in" id="one"> + <div class="widget-body no-padding"> + <div id="toolbar" class="toolbar"> + <a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a> + <!--<a href="javascript:;" class="btn btn-success btn-add {:$auth->check('feng/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>--> + <a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('feng/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a> + <!--<a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('feng/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>--> + <a href="javascript:;" class="btn btn-danger btn-import {:$auth->check('feng/import')?'':'hide'}" title="{:__('Import')}" id="btn-import-file" data-url="ajax/upload" data-mimetype="csv,xls,xlsx" data-multiple="false"><i class="fa fa-upload"></i> {:__('Import')}</a> + + <div class="dropdown btn-group {:$auth->check('feng/multi')?'':'hide'}"> + <a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a> + <ul class="dropdown-menu text-left" role="menu"> + <li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=normal"><i class="fa fa-eye"></i> {:__('Set to normal')}</a></li> + <li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=hidden"><i class="fa fa-eye-slash"></i> {:__('Set to hidden')}</a></li> + </ul> + </div> + + + </div> + <table id="table" class="table table-striped table-bordered table-hover table-nowrap" + data-operate-edit="{:$auth->check('feng/edit')}" + data-operate-del="{:$auth->check('feng/del')}" + width="100%"> + </table> + </div> + </div> + + </div> + </div> +</div> diff --git a/public/assets/js/backend/feng.js b/public/assets/js/backend/feng.js new file mode 100644 index 0000000..55b2f8e --- /dev/null +++ b/public/assets/js/backend/feng.js @@ -0,0 +1,60 @@ +define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) { + + var Controller = { + index: function () { + // 初始化表格参数配置 + Table.api.init({ + extend: { + index_url: 'feng/index' + location.search, + add_url: 'feng/add', + edit_url: 'feng/edit', + del_url: 'feng/del', + multi_url: 'feng/multi', + table: 'feng', + } + }); + + var table = $("#table"); + + // 初始化表格 + table.bootstrapTable({ + url: $.fn.bootstrapTable.defaults.extend.index_url, + pk: 'id', + sortName: 'id', + columns: [ + [ + {checkbox: true}, + {field: 'id', title: __('Id')}, + {field: 'thumbnail', title: __('Thumbnail'),operate:false, events: Table.api.events.image,formatter: Table.api.formatter.image}, + {field: 'image', title: __('Image'), events: Table.api.events.image, formatter: Table.api.formatter.image}, + {field: 'pic', title: __('Pic'), events: Table.api.events.image, formatter: Table.api.formatter.image}, + {field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', formatter: Table.api.formatter.datetime}, + {field: 'updatetime', title: __('Updatetime'), operate:'RANGE', addclass:'datetimerange', formatter: Table.api.formatter.datetime}, + {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: function (value, row, index) { + var that = $.extend({}, this); + var table = $(that.table).clone(true); + $(table).data("operate-del", null); + that.table = table; + return Table.api.formatter.operate.call(that, value, row, index); + }} + ] + ] + }); + + // 为表格绑定事件 + Table.api.bindevent(table); + }, + add: function () { + Controller.api.bindevent(); + }, + edit: function () { + Controller.api.bindevent(); + }, + api: { + bindevent: function () { + Form.api.bindevent($("form[role=form]")); + } + } + }; + return Controller; +}); \ No newline at end of file diff --git a/public/pdf/.pdf b/public/pdf/.pdf new file mode 100644 index 0000000..c95be3b Binary files /dev/null and b/public/pdf/.pdf differ diff --git a/public/pdf/2019121299974848,2019121210057100.pdf b/public/pdf/2019121299974848,2019121210057100.pdf new file mode 100644 index 0000000..935411d Binary files /dev/null and b/public/pdf/2019121299974848,2019121210057100.pdf differ -- libgit2 0.24.0