2021-03-27 14:30:51 +08:00

124 lines
5.6 KiB
PHP

{extend name="../../admin/view/main"}
{block name="content"}
<div class="think-box-shadow">
<form autocomplete="off" class='layui-form layui-card' id="DataForm" onsubmit="return false;" style="width:850px">
<div class="layui-card-header text-center margin-20 font-w7 color-text layui-bg-gray border-radius-5">
{$title|default='图片数据管理'}<span class="color-desc font-s12"> ( 建议上传图片尺寸为 690px 250px )</span>
</div>
<div class="layui-card-body margin-top-20 padding-bottom-0">
<div class="padding-left-20" data-rule-list>
<div class="layui-form-item text-center">
<a class="layui-btn layui-btn-primary" data-item-add>添加图片</a>
</div>
</div>
<div class="hr-line-dashed margin-top-30"></div>
<div class="layui-form-item text-center padding-left-20">
<button class="layui-btn" data-submit>保存数据</button>
</div>
</div>
</form>
</div>
<div class="layui-hide" data-item-tpl>
<div class="layui-form-item" data-rule-item>
<div class="layui-input-inline nowrap relative" style="width:180px">
<input data-upload-image name="img[]" type="hidden">
</div>
<label class="layui-input-inline nowrap relative margin-bottom-5" style="width:300px">
<b class="notselect color-green margin-right-5">图片名称</b>
<input class="layui-input inline-block" name="name[]" placeholder="请输入图片名称" required style="width:240px" value="#">
<a class="layui-btn layui-btn-primary" data-item-up><i class="layui-icon layui-icon-up margin-0"></i></a>
<a class="layui-btn layui-btn-primary" data-item-dn><i class="layui-icon layui-icon-down margin-0"></i></a>
<a class="layui-btn layui-btn-primary" data-item-rm><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">
<b class="notselect color-green margin-right-5">跳转规则</b>
<input class="layui-input inline-block" name="rule[]" placeholder="请输入跳转规则" required style="width:240px" value="#">
<a class="layui-btn layui-btn-primary" data-prefix="NEWS" data-rule-page="{:url('data/news.item/select')}">选择文章</a>
<a class="layui-btn layui-btn-primary" data-prefix="GOODS" data-rule-page="{:url('data/shop.goods/select')}">选择商品</a>
<span class="help-block block notselect">若要跳转页面,请选择对应的数据或填写跳转的 URL 地址,不跳转请填写 #” 号占位。</span>
</label>
</div>
</div>
<label class="layui-hide">
<textarea id="DefaultData">{$data|default=[]|json_encode}</textarea>
</label>
<style>
[data-rule-page] {
margin-top: -3px;
margin-left: 5px;
}
[data-rule-item] {
padding-left: 40px;
margin-bottom: 20px;
}
[data-rule-item] .uploadimage {
width: 135px;
height: 100px;
}
[data-item-dn], [data-item-up], [data-item-rm] {
margin-top: -4px;
margin-left: 5px;
}
</style>
<script>
(function (data) {
/*! 默认数据渲染 */
if (data.length < 1) addItem();
else data.forEach(function (item) {
addItem(item)
});
/*! 初始化上传插件 */
(function initUpload() {
$('[data-rule-list] input[data-upload-image]').map(function () {
if (!$(this).attr('inited')) $(this).attr('inited', true).uploadOneImage();
});
setTimeout(initUpload, 100);
})();
/*! 数据选项操作 */
$('[data-rule-list]').on('click', '[data-rule-page]', function ($that) {
$that = $(this), top.setItemValue = function (value) {
$that.prevAll('input').val(($that.data('prefix') + '#{v}').replace('{v}', value));
};
$.form.iframe($(this).data('rule-page'), $that.data('title') || $that.text(), ['930px', '600px']);
}).on('click', '[data-item-add]', function () {
addItem();
}).on('click', '[data-item-rm]', function () {
$(this).parents('[data-rule-item]').remove();
}).on('click', '[data-item-up]', function () {
var item = $(this).parents('[data-rule-item]');
var prev = item.prev('[data-rule-item]');
if (item.index() > 0) item.insertBefore(prev);
}).on('click', '[data-item-dn]', function () {
var item = $(this).parents('[data-rule-item]');
var next = item.next('[data-rule-item]');
if (next) item.insertAfter(next);
});
/*! 表单提交处理 */
$('form#DataForm').vali(function (ret) {
var idx, data = [];
for (idx in ret.img) {
if (!ret.img[idx]) return $.msg.tips('请上传展示图片哦!');
data.push({img: ret.img[idx], rule: ret.rule[idx], name: ret.name[idx]});
}
$.form.load('{$request->url()}', {data: JSON.stringify(data)}, 'post');
});
})(JSON.parse($('#DefaultData').val() || '[]') || []);
/*! 添加数据选项 */
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}