From 6696b97ca8ce86096f8d220d11bd314ee684075c Mon Sep 17 00:00:00 2001 From: Anyon <zoujingli@qq.com> Date: Tue, 14 Jul 2020 09:38:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=BD=AE=E6=92=AD=E5=9B=BE?= =?UTF-8?q?=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/data/controller/Config.php | 36 ++++++++ app/data/view/article_content/select.html | 5 +- app/data/view/config/slider.html | 105 ++++++++++++++++++++++ 3 files changed, 143 insertions(+), 3 deletions(-) create mode 100644 app/data/controller/Config.php create mode 100644 app/data/view/config/slider.html diff --git a/app/data/controller/Config.php b/app/data/controller/Config.php new file mode 100644 index 000000000..027a815a3 --- /dev/null +++ b/app/data/controller/Config.php @@ -0,0 +1,36 @@ +<?php + +namespace app\data\controller; + +use think\admin\Controller; + +/** + * 应用参数配置 + * Class Config + * @package app\data\controller + */ +class Config extends Controller +{ + /** + * 首页轮播图片 + * @menu true + * @auth true + * @throws \think\db\exception\DataNotFoundException + * @throws \think\db\exception\DbException + * @throws \think\db\exception\ModelNotFoundException + */ + public function slider() + { + if ($this->request->isGet()) { + $this->title = '轮播图管理'; + $this->data = sysdata('slider'); + $this->fetch(); + } else { + if (sysdata('slider', json_decode(input('data'), true))) { + $this->success('轮播图保存成功!', ''); + } else { + $this->error('轮播图保存失败,请稍候再试!'); + } + } + } +} \ No newline at end of file diff --git a/app/data/view/article_content/select.html b/app/data/view/article_content/select.html index 97ae22a99..5ca500bcb 100644 --- a/app/data/view/article_content/select.html +++ b/app/data/view/article_content/select.html @@ -2,12 +2,12 @@ {block name='content'} <div class="padding-25" data-select-container> - {include file='attack_content/select_search'} + {include file='article_content/select_search'} <table class="layui-table margin-top-10" lay-skin="line"> {notempty name='list'} <thead> <tr> - <th class="text-left nowrap">文章信息</th> + <th class="text-left nowrap">文章标题</th> <th class="text-left nowrap">文章状态</th> <th class="text-left nowrap">创建时间</th> <th class="text-left nowrap"></th> @@ -36,7 +36,6 @@ {block name='script'} <script> $(function () { - layui.form.render(); $('[data-article]').on('click', function () { top.setAttackId(this.getAttribute('data-article') || ''); diff --git a/app/data/view/config/slider.html b/app/data/view/config/slider.html new file mode 100644 index 000000000..d1cbe9016 --- /dev/null +++ b/app/data/view/config/slider.html @@ -0,0 +1,105 @@ +{extend name="../../admin/view/main"} + +{block name="content"} +<div class="think-box-shadow"> + <form onsubmit="return false;" id="SliderForm" class='layui-form' autocomplete="off" style="width:750px"> + <div class="text-center font-s14 font-w7">轮播图管理<span class="color-desc font-s12">(建议尺寸:690px 250px)</span></div> + <div class="hr-line-dashed"></div> + <div class="padding-bottom-15" data-slider-box> + <div class="layui-form-item text-center"> + <a data-item-add class="layui-btn layui-btn-primary">添加图片</a> + </div> + </div> + <div class="hr-line-dashed"></div> + <div class="layui-form-item text-center"> + <button class="layui-btn" data-submit>保存数据</button> + </div> + </form> +</div> + +<div data-item-tpl class="layui-hide"> + <div class="layui-form-item padding-left-40 margin-left-40" data-slider-item> + <div class="layui-input-inline nowrap" style="width:120px"> + <input data-upload-image name="img[]" type="hidden"> + </div> + <label class="layui-input-inline nowrap relative margin-bottom-5" style="width:300px"> + <span>图片标题 </span> + <input class="layui-input inline-block" style="width:240px" name="title[]" value="#" required placeholder="请输入图片标题"> + <a data-item-up class="layui-btn layui-btn-primary margin-left-5"><i class="layui-icon layui-icon-up margin-0"></i></a> + <a data-item-dn class="layui-btn layui-btn-primary margin-left-5"><i class="layui-icon layui-icon-down margin-0"></i></a> + <a data-item-rm class="layui-btn layui-btn-primary margin-left-5"><i class="layui-icon layui-icon-close margin-0"></i></a> + </label> + <label class="layui-input-inline nowrap relative margin-bottom-5" style="width:300px"> + <span>跳转活动 </span> + <input class="layui-input inline-block" style="width:240px" name="url[]" value="#" required placeholder="请输入跳转活动"> + <a data-item-article class="layui-btn layui-btn-primary margin-left-5" style="margin-top:-3px">选择文章</a> + <span class="help-block block">若要跳转页面,请填写正确的 URL 地址,不跳转以“#”号表示。</span> + </label> + </div> +</div> + +<label class="layui-hide"> + <textarea id="default-data">{$data|default=[]|json_encode}</textarea> +</label> + +<style> + [data-item-dn], [data-item-up], [data-item-rm], [data-item-goods], [data-item-cate] { + margin-top: -4px; + } +</style> + +<script> + (function (data) { + /*! 默认数据处理 */ + if (data.length < 1) addItem(); + for (this.index in data) addItem(data[this.index]); + /*! 初始化上传插件 */ + (function initUpload() { + $('[data-slider-box] input[data-upload-image]').map(function () { + if (!$(this).attr('inited')) $(this).attr('inited', true).uploadOneImage(); + }); + setTimeout(initUpload, 100); + })(); + /*! 轮播选项操作 */ + $('[data-slider-box]').on('click', '[data-item-article]', function ($that) { + $that = $(this), top.setAttackId = function (id) { + $that.prevAll('input').val('article#{v}'.replace('{v}', id)); + }; + $.form.iframe('{:url("data/article_content/select")}', '选择文章', ['930px', '600px']); + }).on('click', '[data-item-add]', function () { + addItem(); + }).on('click', '[data-item-rm]', function () { + $(this).parents('[data-slider-item]').remove(); + }).on('click', '[data-item-up]', function () { + this.item = $(this).parents('[data-slider-item]'); + this.prev = this.item.prev('[data-slider-item]'); + if (this.item.index() > 0) this.item.insertBefore(this.prev); + }).on('click', '[data-item-dn]', function () { + this.item = $(this).parents('[data-slider-item]'); + this.next = this.item.next('[data-slider-item]'); + if (this.next) this.item.insertAfter(this.next); + }); + /*! 表单提交处理 */ + $('form#SliderForm').vali(function (ret) { + this.data = []; + for (this.index in ret.img) { + if (!ret.img[this.index]) return $.msg.tips('请上传展示图片哦!'); + this.data.push({img: ret.img[this.index], url: ret.url[this.index], title: ret.title[this.index]}); + } + $.form.load('{$request->url()}', {data: JSON.stringify(this.data)}, 'post'); + }); + + })(JSON.parse(document.getElementById('default-data').innerHTML || '[]') || []); + + /*! 添加轮播项 */ + function addItem(data) { + this.$html = $($('[data-item-tpl]').html()); + if (data) for (this.index in data) this.$html.find('[name^="' + this.index + '"]').val(data[this.index]); + $('[data-item-add]').parent().before(this.$html), setTimeout(function () { + $.form.reInit(); + }, 100); + } + +</script> + +{/block} \ No newline at end of file