更新资源编辑
This commit is contained in:
@@ -28,7 +28,7 @@
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">资源编号</label>
|
||||
<div class="layui-input-block">
|
||||
@@ -40,7 +40,8 @@
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">描述</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="desc" placeholder="请输入资源描述" class="layui-textarea" lay-affix="clear">{$resource.desc|default=''}</textarea>
|
||||
<textarea name="desc" placeholder="请输入资源描述" class="layui-textarea"
|
||||
lay-affix="clear">{$resource.desc|default=''}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -76,8 +77,8 @@
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">资源文件</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="fileurl" required placeholder="本地资源地址" autocomplete="off"
|
||||
class="layui-input" value="{$resource.fileurl|default=''}" style="margin-bottom: 10px;" lay-affix="clear">
|
||||
<input type="text" name="fileurl" required placeholder="本地资源地址" autocomplete="off" class="layui-input"
|
||||
value="{$resource.fileurl|default=''}" style="margin-bottom: 10px;" lay-affix="clear">
|
||||
<div class="layui-upload-drag" style="display: block;" id="ID-upload-demo-drag">
|
||||
<i class="layui-icon layui-icon-upload"></i>
|
||||
<div>点击上传,或将文件拖拽到此处</div>
|
||||
@@ -90,7 +91,8 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-progress layui-progress-big" lay-showPercent="yes" lay-filter="file-progress" style="margin-top: 10px;">
|
||||
<div class="layui-progress layui-progress-big" lay-showPercent="yes" lay-filter="file-progress"
|
||||
style="margin-top: 10px;">
|
||||
<div class="layui-progress-bar" lay-percent=""></div>
|
||||
</div>
|
||||
<input type="hidden" name="file" id="file" value="">
|
||||
@@ -105,26 +107,56 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">图片上传</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="layui-upload">
|
||||
<button type="button" class="layui-btn" id="imageUpload">多图片上传</button>
|
||||
<blockquote class="layui-elem-quote layui-quote-nm" style="margin-top: 10px;">
|
||||
预览图:
|
||||
<div class="layui-upload-list" id="imagePreview" style="display: flex; flex-direction: column;">
|
||||
{if condition="$resource.images"}
|
||||
{foreach name="images" item="image" explode=",", $resource.images}
|
||||
<div class="layui-upload-img-item" data-src="{$image}">
|
||||
<img src="{$image}" alt="已上传图片" style="width: 100px; height: 100px; object-fit: cover;">
|
||||
<p>{$image|basename}</p>
|
||||
<button type="button"
|
||||
class="layui-btn layui-btn-xs layui-btn-danger delete-image">删除</button>
|
||||
</div>
|
||||
{/foreach}
|
||||
{/if}
|
||||
</div>
|
||||
</blockquote>
|
||||
</div>
|
||||
<div class="layui-progress layui-progress-big" lay-showPercent="yes" lay-filter="image-progress"
|
||||
style="margin-top: 10px;">
|
||||
<div class="layui-progress-bar" lay-percent=""></div>
|
||||
</div>
|
||||
<input type="hidden" name="images" id="images" value="{$resource.images|default=''}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">分享码</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="code" required placeholder="请输入分享码" autocomplete="off"
|
||||
class="layui-input" value="{$resource.code|default=''}" lay-affix="clear">
|
||||
<input type="text" name="code" required placeholder="请输入分享码" autocomplete="off" class="layui-input"
|
||||
value="{$resource.code|default=''}" lay-affix="clear">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">解压密码</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="zipcode" required placeholder="请输入解压密码" autocomplete="off"
|
||||
class="layui-input" value="{$resource.zipcode|default=''}" lay-affix="clear">
|
||||
<input type="text" name="zipcode" required placeholder="请输入解压密码" autocomplete="off" class="layui-input"
|
||||
value="{$resource.zipcode|default=''}" lay-affix="clear">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">排序</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="number" name="sort" value="{$resource.sort|default='0'}" class="layui-input" placeholder="数字越大越靠前" lay-affix="clear">
|
||||
<input type="number" name="sort" value="{$resource.sort|default='0'}" class="layui-input"
|
||||
placeholder="数字越大越靠前" lay-affix="clear">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -159,13 +191,13 @@
|
||||
// 获取资源详情
|
||||
var resourceId = $('input[name="id"]').val();
|
||||
var resourceData = null;
|
||||
|
||||
|
||||
if (resourceId) {
|
||||
$.get('{:url("resources/get")}', {id: resourceId}, function(res) {
|
||||
$.get('{:url("resources/get")}', { id: resourceId }, function (res) {
|
||||
if (res.code == 0) {
|
||||
resourceData = res.data;
|
||||
console.log('Resource data:', resourceData); // 调试输出
|
||||
|
||||
|
||||
// 设置表单值
|
||||
$('input[name="title"]').val(resourceData.title || '');
|
||||
$('select[name="cate"]').val(resourceData.cate || '');
|
||||
@@ -177,12 +209,12 @@
|
||||
$('input[name="sort"]').val(resourceData.sort || '0');
|
||||
$('input[name="icon"]').val(resourceData.icon || '');
|
||||
$('input[name="file"]').val(resourceData.file || '');
|
||||
|
||||
|
||||
// 设置图标预览
|
||||
if (resourceData.icon) {
|
||||
$('#upload-img').attr('src', resourceData.icon);
|
||||
}
|
||||
|
||||
|
||||
// 设置文件预览
|
||||
if (resourceData.file) {
|
||||
$('#ID-upload-demo-preview').show();
|
||||
@@ -211,7 +243,7 @@
|
||||
$('#upload-text').html('');
|
||||
layer.msg('图标上传成功', { icon: 1 });
|
||||
},
|
||||
uploadError: function () {
|
||||
error: function () {
|
||||
var demoText = $('#upload-text');
|
||||
demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
|
||||
demoText.find('.demo-reload').on('click', function () {
|
||||
@@ -226,6 +258,58 @@
|
||||
}
|
||||
});
|
||||
|
||||
// 多图片上传
|
||||
var uploadInst = upload.render({
|
||||
elem: '#imageUpload',
|
||||
url: '{:url("index/upload_img")}',
|
||||
multiple: true,
|
||||
accept: 'images',
|
||||
before: function (obj) {
|
||||
obj.preview(function (index, file, result) {
|
||||
$('#imagePreview').append('<div class="layui-upload-img-item" data-src="' + result + '"><img src="' + result + '" alt="' + file.name + '" style="width: 100px; height: 100px; object-fit: cover;"><p>' + file.name + '</p><button type="button" class="layui-btn layui-btn-xs layui-btn-danger delete-image">删除</button></div>');
|
||||
});
|
||||
element.progress('image-progress', '0%');
|
||||
layer.msg('图片上传中', { icon: 16, time: 0 });
|
||||
},
|
||||
done: function (res) {
|
||||
if (res.code > 0) {
|
||||
return layer.msg('图片上传失败');
|
||||
}
|
||||
var images = $('#images').val().split(',');
|
||||
if (res.data) {
|
||||
images.push(res.data);
|
||||
}
|
||||
$('#images').val(images.filter(Boolean).join(','));
|
||||
layer.msg('图片上传成功', { icon: 1 });
|
||||
},
|
||||
error: function () {
|
||||
var demoText = $('#imagePreview');
|
||||
demoText.append('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
|
||||
demoText.find('.demo-reload').on('click', function () {
|
||||
uploadInst.upload();
|
||||
});
|
||||
},
|
||||
progress: function (n, elem, e) {
|
||||
element.progress('image-progress', n + '%');
|
||||
if (n == 100) {
|
||||
layer.msg('图片上传完毕', { icon: 1 });
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// 删除图片功能
|
||||
$('#imagePreview').on('click', '.delete-image', function () {
|
||||
var $item = $(this).closest('.layui-upload-img-item');
|
||||
var imageSrc = $item.data('src');
|
||||
var images = $('#images').val().split(',');
|
||||
var index = images.indexOf(imageSrc);
|
||||
if (index > -1) {
|
||||
images.splice(index, 1);
|
||||
}
|
||||
$('#images').val(images.join(','));
|
||||
$item.remove();
|
||||
});
|
||||
|
||||
// 文件上传
|
||||
var fileUpload = upload.render({
|
||||
elem: '#ID-upload-demo-drag',
|
||||
@@ -274,7 +358,7 @@
|
||||
if (res.code == 0) {
|
||||
// 存储分类数据供后续使用
|
||||
window.categoryData = res.data;
|
||||
|
||||
|
||||
var html = '<option value="">请选择分类</option>';
|
||||
res.data.forEach(function (item) {
|
||||
html += '<option value="' + item.id + '">' + item.name + '</option>';
|
||||
@@ -285,11 +369,11 @@
|
||||
}
|
||||
});
|
||||
$('select[name="cate"]').html(html);
|
||||
|
||||
|
||||
// 如果有资源数据,设置分类值
|
||||
if (resourceData && resourceData.cate) {
|
||||
console.log('Setting cate value:', resourceData.cate); // 调试输出
|
||||
setTimeout(function() {
|
||||
setTimeout(function () {
|
||||
$('select[name="cate"]').val(resourceData.cate);
|
||||
form.render('select');
|
||||
}, 100);
|
||||
@@ -300,7 +384,7 @@
|
||||
});
|
||||
|
||||
// 监听分类选择变化
|
||||
form.on('select(cate)', function(data) {
|
||||
form.on('select(cate)', function (data) {
|
||||
var selectedId = data.value;
|
||||
if (!selectedId) {
|
||||
$('input[name="number"]').val('');
|
||||
@@ -311,9 +395,9 @@
|
||||
var parentCategory = null;
|
||||
var childCategory = null;
|
||||
|
||||
window.categoryData.forEach(function(parent) {
|
||||
window.categoryData.forEach(function (parent) {
|
||||
if (parent.children) {
|
||||
parent.children.forEach(function(child) {
|
||||
parent.children.forEach(function (child) {
|
||||
if (child.id == selectedId) {
|
||||
parentCategory = parent;
|
||||
childCategory = child;
|
||||
@@ -330,7 +414,7 @@
|
||||
var nextNumber = isInitialCategory ? total : total + 1;
|
||||
var numberStr = nextNumber.toString().padStart(5, '0');
|
||||
var resourceNumber = parentCategory.number + childCategory.number + numberStr;
|
||||
|
||||
|
||||
// 设置资源编号
|
||||
$('input[name="number"]').val(resourceNumber);
|
||||
}
|
||||
@@ -342,7 +426,7 @@
|
||||
var content = editor.getHtml();
|
||||
var loadIndex = layer.load(2);
|
||||
data.field.content = content;
|
||||
|
||||
|
||||
$.ajax({
|
||||
url: '{:url("resources/edit")}',
|
||||
type: 'POST',
|
||||
@@ -363,7 +447,7 @@
|
||||
});
|
||||
|
||||
// 重置按钮点击事件
|
||||
$('button[type="reset"]').on('click', function() {
|
||||
$('button[type="reset"]').on('click', function () {
|
||||
// 重新加载分类列表
|
||||
$.get('{:url("resources/getcate")}', function (res) {
|
||||
if (res.code == 0) {
|
||||
@@ -377,10 +461,10 @@
|
||||
}
|
||||
});
|
||||
$('select[name="cate"]').html(html);
|
||||
|
||||
|
||||
// 如果有资源数据,设置分类值
|
||||
if (resourceData && resourceData.cate) {
|
||||
setTimeout(function() {
|
||||
setTimeout(function () {
|
||||
$('select[name="cate"]').val(resourceData.cate);
|
||||
form.render('select');
|
||||
}, 100);
|
||||
@@ -399,7 +483,7 @@
|
||||
<script>
|
||||
const { createEditor, createToolbar } = window.wangEditor
|
||||
|
||||
const editorConfig = {
|
||||
const editorConfig = {
|
||||
MENU_CONF: {},
|
||||
placeholder: '请输入内容...',
|
||||
onChange(editor) {
|
||||
|
||||
Reference in New Issue
Block a user