修改商城快讯

This commit is contained in:
wangxiaowei 2024-07-22 17:53:12 +08:00
parent cc66900147
commit cd2a856345
7 changed files with 517 additions and 192 deletions

@ -15,7 +15,7 @@ class MallNews extends AdminBase
{
if ($this->request->isAjax()) {
$get = $this->request->get();
$lists = LiveGoodsLogic::lists($get);
$lists = MallNewsLogic::lists($get);
return JsonServer::success('', $lists);
}
return view('', [
@ -25,12 +25,38 @@ class MallNews extends AdminBase
public function add()
{
return view('');
if ($this->request->isAjax()) {
$post = $this->request->post();
$result = MallNewsLogic::create($post);
if ($result['code'] == 1) {
return JsonServer::success('添加成功');
}
return JsonServer::error($result['msg']);
}
return view('', [
'max_upload_size' => MallNewsLogic::$MAX_UPLOAD_SIZE . 'Mb',
'max_upload_file' => MallNewsLogic::$MAX_UPLOAD_FILE,
]);
}
public function edit()
public function audit()
{
if ($this->request->isAjax()) {
$post = $this->request->post();
$result = MallNewsLogic::audit($post);
if ($result['code'] == 1) {
return JsonServer::success('添加成功');
}
return JsonServer::error($result['msg']);
}
$id = $this->request->get('id');
return view('', [
'detail' => MallNewsLogic::detail($id),
'max_upload_size' => MallNewsLogic::$MAX_UPLOAD_SIZE . 'Mb',
'max_upload_file' => MallNewsLogic::$MAX_UPLOAD_FILE,
]);
}
/**
@ -44,4 +70,13 @@ class MallNews extends AdminBase
}
return JsonServer::error('', $result['msg']);
}
public function delVideo()
{
if ($this->request->isAjax()) {
$file = $this->request->post('videoFile');
MallNewsLogic::delVideo($file);
}
}
}

@ -3,38 +3,143 @@
namespace app\admin\logic;
use app\common\basics\Logic;
use app\common\model\MallNews;
use app\common\model\MallNewsFile;
use app\common\server\ConfigServer;
use app\common\server\storage\Driver as StorageDriver;
use think\facade\Config;
class MallNewsLogic extends Logic
{
private static $MAX_UPLOAD_SIZE = 50 * 1024 * 1024;
private static $FILE_PATH = 'mall_news/video';
public static $MAX_UPLOAD_SIZE = 50;
public static $MAX_UPLOAD_FILE = 6;
private static $FILE_VIDEO_PATH = 'mall_news/video';
public static function uploadVideo()
private static function config()
{
$file = request()->file('file');
if ($file->getSize() > self::$MAX_UPLOAD_SIZE) {
return ['code' => -1, 'msg' => '视频最大上传为50M'];
}
$config = [
return [
'default' => ConfigServer::get('storage', 'default', 'local'),
'engine' => ConfigServer::get('storage_engine') ?? ['local'=>[]]
];
}
$StorageDriver = new StorageDriver($config);
public static function lists($get)
{
$where = [];
if (!empty($get['title']) and $get['title']) {
$where[] = ['title', 'like', '%' . $get['title'] . '%'];
}
$model = new MallNews();
$lists = $model->field(true)
->where($where)
->order('sort desc, create_time desc')
->paginate([
'page' => $get['page'],
'list_rows' => $get['limit'],
'var_page' => 'page'
])
->toArray();
return ['count' => $lists['total'], 'lists' => $lists['data']];
}
// 获取详情
public static function detail($id)
{
return MallNews::where([
'id' => $id,
'delete_time' => 0
])->alias('mn')->join('mall_news_file mnf', 'mn.id = mnf.mall_news_id')->find()->toArray();
}
// 添加表单信息
public static function create($form)
{
if (empty($form)) {
return ['code' => -1, 'msg' => '表单内容为空'];
}
$file = [];
unset($form['file']);
if (!is_numeric($form['sort'])) {
return ['code' => -1, 'msg' => '请输入整数'];
}
if ($form['type'] == 0 && isset($form['mall_news_images'])) {
// 文章类型
$file = $form['mall_news_images'];
if (count($form['mall_news_images']) > 6) {
return ['code' => -1, 'msg' => '上传图片数量超过限制'];
}
unset($form['mall_news_images']);
unset($form['video_file']);
} else if ($form['type'] == 1 && !empty($form['video_file'])) {
// 视频类型
$file = $form['video_file'];
if (!$form['video_file']) {
return ['code' => -1, 'msg' => '请上传视频'];
}
unset($form['mall_news_images']);
unset($form['video_file']);
}
$form['create_time'] = time();
$id = MallNews::insertGetId($form);
if (is_array($file)) {
foreach ($file as &$v) {
MallNewsFile::create([
'mall_news_id' => $id,
'src' => basename($v)
]);
}
} else {
MallNewsFile::create([
'mall_news_id' => $id,
'src' => basename($file)
]);
}
return ['code' => 1, 'msg' => '添加成功'];
}
// 上传视频
public static function uploadVideo()
{
$file = request()->file('file');
if ($file->getSize() > self::$MAX_UPLOAD_SIZE * 1024 * 1024) {
return ['code' => -1, 'msg' => '视频最大上传为' . self::$MAX_UPLOAD_SIZE . 'Mb'];
}
$StorageDriver = new StorageDriver(self::config());
$StorageDriver->setUploadFile('file');
if (!$StorageDriver->upload(self::$FILE_PATH)) {
if (!$StorageDriver->upload(self::$FILE_VIDEO_PATH)) {
return ['code' => -1, 'msg' => '上传错误'];
}
$fileName = $StorageDriver->getFileName();
if ($fileName) {
return ['code' => 1, 'msg' => '', 'data' => array('file' => Config::get('aliyunoss.domain') . self::$FILE_PATH . '/'. $fileName)];
return ['code' => 1, 'msg' => '', 'data' => array('file' => Config::get('aliyunoss.domain') . self::$FILE_VIDEO_PATH . '/'. $fileName)];
}
return ['code' => -1, 'msg' => '上传失败'];
}
// 删除视频
public static function delVideo($file)
{
if (!$file) {
return false;
}
$file = self::$FILE_VIDEO_PATH . '/' . basename($file);
$StorageDriver = new StorageDriver(self::config());
$StorageDriver->delete($file);
}
}

@ -5,10 +5,27 @@
.layui-form-item .layui-input-inline { width: 240px; }
.layui-form-item .map-container{ width: 600px; height: 400px; margin-left: 100px; margin-top: 20px; }
#video-block {position: relative; width: 700px;height: 300px}
.del-video-btn {
visibility: hidden;
display: flex;
align-items: center;
justify-content: center;
position: absolute;
z-index: 100;
top: -11px;
right: -9px;
width: 20px;
height: 20px;
cursor: pointer;
font-size: 14px;
color: #FFFFFF;
border-radius: 50%;
background: hsla(0, 0%, 60%, .6)
}
</style>
<div class="layui-card layui-form">
<div class="layui-tab-item layui-show">
<div class="layui-card-body">
<div class="layui-form-item">
<label for="title" class="layui-form-label"><span style="color:red;">*</span>标题:</label>
<div class="layui-input-inline">
@ -18,18 +35,18 @@
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span style="color:red;">*</span>文章类型:</label>
<label class="layui-form-label">文章类型:</label>
<div class="layui-input-inline">
<input type="radio" name="type" value="0" title="文章" checked lay-filter="article">
<input type="radio" name="type" value="1" title="视频" lay-filter="video">
<input type="radio" lay-filter="type" name="type" value="0" title="文章" checked>
<input type="radio" lay-filter="type" name="type" value="1" title="视频">
</div>
</div>
<div id="mall-image" class="layui-form-item">
<label class="layui-form-label"><span style="color:red;">*</span>图片:</label>
<label class="layui-form-label">图片:</label>
<div class="layui-input-block">
<div class="like-upload-image" switch-tab="0" lay-verType="tips" lay-verify="logo">
<div class="upload-image-elem"><a class="add-upload-image"> + 添加图片</a></div>
<div class="like-upload-image">
<div class="upload-image-elem"><a class="add-upload-image" id="mallNewImage"> + 添加图片</a></div>
</div>
</div>
</div>
@ -37,26 +54,31 @@
<div id="mall-video" class="layui-form-item" style="display: none">
<label class="layui-form-label"><span style="color:red;">*</span>视频:</label>
<div id="upload-video-block" class="layui-input-block">
<div class="like-upload-image" switch-tab="0" lay-verType="tips" lay-verify="logo">
<div class="like-upload-image">
<div class="upload-image-elem"><a class="add-upload-video"> + 上传视频</a></div>
</div>
</div>
<div id="video-block" style="display: none">
<div class="del-upload-btn" style="visibility: inherit">x</div>
<video src="https://zjeloong.oss-cn-hangzhou.aliyuncs.com/mall_news/video/20240720172404a4dc53630.mp4" controls></video>
<div class="del-video-btn" style="visibility: inherit">x</div>
<video id="mallVideo" controls></video>
<input type="hidden" name="video_file" >
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<span style="color: #a3a3a3;font-size: 9px">视频上传格式为mp4,上传文件大小限制为:{$max_upload_size}</span>
</div>
</div>
<div class="layui-form-item">
<label for="shop_name" class="layui-form-label"><span style="color:red;">*</span>商品名称:</label>
<label for="shop_name" class="layui-form-label">商品名称:</label>
<div class="layui-input-inline">
<input type="text" name="shop_name" id="shop_name" lay-verType="tips" lay-verify="shop_name"
switch-tab="0" autocomplete="off" class="layui-input">
<input type="text" name="shop_name" id="shop_name" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span style="color:red;">*</span>是否置顶:</label>
<label class="layui-form-label">是否置顶:</label>
<div class="layui-input-inline">
<input type="radio" name="is_top" value="0" title="否" checked>
<input type="radio" name="is_top" value="1" title="是">
@ -64,15 +86,14 @@
</div>
<div class="layui-form-item">
<label for="order" class="layui-form-label"><span style="color:red;">*</span>排序:</label>
<label for="sort" class="layui-form-label">排序:</label>
<div class="layui-input-inline">
<input type="text" name="order" id="order" lay-verType="tips" lay-verify="title"
switch-tab="0" autocomplete="off" class="layui-input">
<input type="text" name="sort" id="sort" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span style="color:red;">*</span>文章详情:</label>
<label for="content" class="layui-form-label">文章详情:</label>
<div class="layui-input-block">
<textarea name="content" id="content" lay-verify="content"></textarea>
</div>
@ -89,7 +110,7 @@
layui.config({
base: "/static/lib/"
}).extend({
likeedit: 'likeedit/likeedit',
likeedit: "likeedit/likeedit",
likeArea: "likeArea/likeArea",
txMap: "likeMap/txMap"
}).use(["form", "laydate", "likeArea", "txMap", 'likeedit', 'upload', 'element'], function(){
@ -98,17 +119,27 @@
var laydate = layui.laydate;
var likeedit = layui.likeedit;
var likeupload = layui.upload;
var element = layui.element;
form.on('radio(article)', function(data){
if(data.value =='0'){
$("#mall-image").show()
$("#mall-video").hide()
//------------------------------------------富文本编辑器 begin --------------------------------
var content = likeedit.build("content", {
uploadImage: {
url: '{:url("file/lists")}?type=10'
}
});
form.on('radio(video)', function(data){
if(data.value =='1'){
form.verify({
content: function() {
likeedit.sync(content)
}
});
//------------------------------------------富文本编辑器 end --------------------------------
form.on('radio(type)', function(data){
if(data.value == 0){
$("#mall-image").show()
$("#mall-video").hide()
} else {
$("#mall-image").hide()
$("#mall-video").show()
}
@ -117,10 +148,10 @@
laydate.render({type:"datetime", elem:"#expire_time", trigger:"click",min:0});
like.delUpload();
$(document).on("click", ".add-upload-image", function () {
$(document).on("click", "#mallNewImage", function () {
like.imageUpload({
limit: 1,
field: "logo",
limit: {$max_upload_file},
field: "mall_news_images[]",
that: $(this)
});
});
@ -130,14 +161,20 @@
var uploadInst = likeupload.render({
elem: '.add-upload-video' //绑定元素
,url: "{:url('MallNews/uploadVideo')}" //上传接口
,accept: 'video'
,exts: "mp4"
,before: function(obj){ //obj参数包含的信息,跟 choose回调完全一致,可参见上文。
console.log(222)
layer.load(); //上传loading
}
,done: function(res, index, upload){
if (res.code === 1) {
console.log(res)
$("#upload-video-block").hide()
$("#video-block").show()
$("#mallVideo").attr('src', res.data.file)
$("#mall_news_images").val(res.data.file)
$("input[name='video_file']").val(res.data.file)
} else {
layer.msg('上传错误');
return false;
@ -145,94 +182,34 @@
layer.closeAll('loading'); //关闭loading
}
,error: function(index, upload){
layer.msg('上传错误');
layer.closeAll('loading'); //关闭loading
}
});
//------------------------------------------富文本编辑器 begin --------------------------------
likeedit.set({
uploadImage: {
url: '{:url("file/lists")}?type=10',
type: 'post'
}
});
// 删除视频
$(document).on("click", ".del-video-btn", function (e) {
const videoFile = $("#mallVideo").attr('src')
like.ajax({
url: '{:url("mallNews/delVideo")}',
data: {videoFile},
type: "post",
success: function (res) {}
});
var likeedit_index = likeedit.build('content');
form.verify({
content: function () {
likeedit.sync(likeedit_index)
}
$("#upload-video-block").show()
$("#video-block").hide()
$("#mallVideo").attr('src', '')
});
//------------------------------------------富文本编辑器 end --------------------------------
form.verify({
name: function (value, item) {
title: function (value, item) {
if (!value) {
switchTab($(item).attr("switch-tab"));
return "请填写商家名称";
}
},
cid: function (value, item) {
if (!value) {
switchTab($(item).attr("switch-tab"));
return "请选择主营类目";
}
},
nickname: function (value, item) {
if (!value) {
switchTab($(item).attr("switch-tab"));
return "请填写联系人";
}
},
mobile: function (value, item) {
if (!value) {
switchTab($(item).attr("switch-tab"));
return "请填写联系手机号";
}
},
logo: function (value, item) {
if (!value) {
if ($(item).find(".upload-image-div").length <= 0) {
switchTab($(item).attr("switch-tab"))
return "请上传商家logo";
}
}
},
expire_time: function (value, item) {
if (!value) {
switchTab($(item).attr("switch-tab"));
return "请选择到期时间";
}
},
trade_service_fee: function (value, item) {
if (!value && parseInt(value) !== 0) {
switchTab($(item).attr("switch-tab"));
return "请填写交易服务费";
}
},
account: function (value, item) {
if (!value) {
switchTab($(item).attr("switch-tab"));
return "请填写商家账号";
}
},
password: function (value, item) {
if (!value) {
switchTab($(item).attr("switch-tab"));
return "请填写商家登录密码";
}
},
pwd: function (value, item) {
if (!value) {
switchTab($(item).attr("switch-tab"));
return "请填确认商家登录密码";
return "请填写标题";
}
}
});
function switchTab(number) {
$('.layui-tab-card .layui-tab-title li').removeClass('layui-this');
$('.layui-tab-content .layui-tab-item').removeClass('layui-show');

@ -0,0 +1,220 @@
{layout name="layout2" /}
<style>
.layui-form {padding: 20px 30px;background-color: #ffffff;}
.layui-form-item .layui-form-label { width: 95px; }
.layui-form-item .layui-input-inline { width: 240px; }
.layui-form-item .map-container{ width: 600px; height: 400px; margin-left: 100px; margin-top: 20px; }
#video-block {position: relative; width: 700px;height: 300px}
.del-video-btn {
visibility: hidden;
display: flex;
align-items: center;
justify-content: center;
position: absolute;
z-index: 100;
top: -11px;
right: -9px;
width: 20px;
height: 20px;
cursor: pointer;
font-size: 14px;
color: #FFFFFF;
border-radius: 50%;
background: hsla(0, 0%, 60%, .6)
}
</style>
<div class="layui-card layui-form">
<div class="layui-card-body">
<div class="layui-form-item">
<label for="title" class="layui-form-label"><span style="color:red;">*</span>标题:</label>
<div class="layui-input-inline">
<input type="text" name="title" id="title" lay-verType="tips" lay-verify="title"
switch-tab="0" autocomplete="off" class="layui-input" value="{$detail.title}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">文章类型:</label>
<div class="layui-input-inline">
<input type="radio" lay-filter="type" name="type" value="0" title="文章" {if condition = "$detail.type eq 0"} checked {/if}>
<input type="radio" lay-filter="type" name="type" value="1" title="视频" {if condition = "$detail.type eq 1"} checked {/if}>
</div>
</div>
<div id="mall-image" class="layui-form-item">
<label class="layui-form-label">图片:</label>
<div class="layui-input-block">
<div class="like-upload-image">
<div class="upload-image-elem"><a class="add-upload-image" id="mallNewImage"> + 添加图片</a></div>
</div>
</div>
</div>
<div id="mall-video" class="layui-form-item" style="display: none">
<label class="layui-form-label"><span style="color:red;">*</span>视频:</label>
<div id="upload-video-block" class="layui-input-block">
<div class="like-upload-image">
<div class="upload-image-elem"><a class="add-upload-video"> + 上传视频</a></div>
</div>
</div>
<div id="video-block" style="display: none">
<div class="del-video-btn" style="visibility: inherit">x</div>
<video id="mallVideo" controls></video>
<input type="hidden" name="video_file">
</div>
<div class="layui-form-item">
<label class="layui-form-label"></label>
<span style="color: #a3a3a3;font-size: 9px">视频上传格式为mp4,上传文件大小限制为:{$max_upload_size}</span>
</div>
</div>
<div class="layui-form-item">
<label for="shop_name" class="layui-form-label">商品名称:</label>
<div class="layui-input-inline">
<input type="text" name="shop_name" id="shop_name" autocomplete="off" class="layui-input" value="{$detail.shop_name}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">是否置顶:</label>
<div class="layui-input-inline">
<input type="radio" name="is_top" value="0" title="否" {if condition = "$detail.is_top eq 0"} checked {/if}>
<input type="radio" name="is_top" value="1" title="是" {if condition = "$detail.is_top eq 1"} checked {/if}>
</div>
</div>
<div class="layui-form-item">
<label for="sort" class="layui-form-label">排序:</label>
<div class="layui-input-inline">
<input type="text" name="sort" id="sort" autocomplete="off" class="layui-input" value="{$detail.sort}">
</div>
</div>
<div class="layui-form-item">
<label for="content" class="layui-form-label">文章详情:</label>
<div class="layui-input-block">
<textarea name="content" id="content" lay-verify="content">{$detail.content}</textarea>
</div>
</div>
</div>
<div class="layui-form-item layui-hide">
<input type="button" lay-submit lay-filter="addSubmit" id="addSubmit" value="确认">
</div>
</div>
<script src="__PUBLIC__/static/common/js/area.js"></script>
<script>
layui.config({
base: "/static/lib/"
}).extend({
likeedit: "likeedit/likeedit",
likeArea: "likeArea/likeArea",
txMap: "likeMap/txMap"
}).use(["form", "laydate", "likeArea", "txMap", 'likeedit', 'upload', 'element'], function(){
var $ = layui.$;
var form = layui.form;
var laydate = layui.laydate;
var likeedit = layui.likeedit;
var likeupload = layui.upload;
//------------------------------------------富文本编辑器 begin --------------------------------
var content = likeedit.build("content", {
uploadImage: {
url: '{:url("file/lists")}?type=10'
}
});
form.verify({
content: function() {
likeedit.sync(content)
}
});
//------------------------------------------富文本编辑器 end --------------------------------
form.on('radio(type)', function(data){
if(data.value == 0){
$("#mall-image").show()
$("#mall-video").hide()
} else {
$("#mall-image").hide()
$("#mall-video").show()
}
});
laydate.render({type:"datetime", elem:"#expire_time", trigger:"click",min:0});
like.delUpload();
$(document).on("click", "#mallNewImage", function () {
like.imageUpload({
limit: {$max_upload_file},
field: "mall_news_images[]",
that: $(this)
});
});
// 视频上传
likeupload
var uploadInst = likeupload.render({
elem: '.add-upload-video' //绑定元素
,url: "{:url('MallNews/uploadVideo')}" //上传接口
,accept: 'video'
,exts: "mp4"
,before: function(obj){ //obj参数包含的信息,跟 choose回调完全一致,可参见上文。
console.log(222)
layer.load(); //上传loading
}
,done: function(res, index, upload){
if (res.code === 1) {
console.log(res)
$("#upload-video-block").hide()
$("#video-block").show()
$("#mallVideo").attr('src', res.data.file)
$("#mall_news_images").val(res.data.file)
$("input[name='video_file']").val(res.data.file)
} else {
layer.msg('上传错误');
return false;
}
layer.closeAll('loading'); //关闭loading
}
,error: function(index, upload){
layer.closeAll('loading'); //关闭loading
}
});
// 删除视频
$(document).on("click", ".del-video-btn", function (e) {
const videoFile = $("#mallVideo").attr('src')
like.ajax({
url: '{:url("mallNews/delVideo")}',
data: {videoFile},
type: "post",
success: function (res) {}
});
$("#upload-video-block").show()
$("#video-block").hide()
$("#mallVideo").attr('src', '')
});
form.verify({
title: function (value, item) {
if (!value) {
switchTab($(item).attr("switch-tab"));
return "请填写标题";
}
}
});
function switchTab(number) {
$('.layui-tab-card .layui-tab-title li').removeClass('layui-this');
$('.layui-tab-content .layui-tab-item').removeClass('layui-show');
$('.layui-tab-card .layui-tab-title li').eq(number).addClass('layui-this');
$('.layui-tab-content .layui-tab-item').eq(number).addClass('layui-show');
}
})
</script>

@ -12,8 +12,7 @@
<div class="layui-colla-item">
<h2 class="layui-colla-title like-layui-colla-title">操作提示</h2>
<div class="layui-colla-content layui-show">
<p>* 商家提交直播商品后,平台审核后,将交由微信再次进行审核;</p>
<p>* 直播商品每天最多可添加500次,删除商品每天最多可删除1000次。</p>
<p>* 可通过关键词搜索历史文章;</p>
</div>
</div>
</div>
@ -24,26 +23,22 @@
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">商家名称:</label>
<label class="layui-form-label">文章标题:</label>
<div class="layui-input-block">
<select name="shop_id" id="shop_id">
<option value="">全部</option>
{foreach $shop as $val}
<option value="{$val.id}">{$val.name}</option>
{/foreach}
</select>
<input type="text" id="title" name="title" placeholder="请输入文章标题"
autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<label for="goods_name" class="layui-form-label">商品名称:</label>
<div class="layui-inline" style="margin-right:0;">
<div class="layui-input-inline" >
<input type="text" id="goods_name" name="goods_name" placeholder="请输入商品名称"
autocomplete="off" class="layui-input">
</div>
</div>
</div>
<!-- <div class="layui-inline">-->
<!-- <label for="goods_name" class="layui-form-label">商品名称:</label>-->
<!-- <div class="layui-inline" style="margin-right:0;">-->
<!-- <div class="layui-input-inline" >-->
<!-- <input type="text" id="goods_name" name="goods_name" placeholder="请输入商品名称"-->
<!-- autocomplete="off" class="layui-input">-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<div class="layui-inline">
<a class="layui-btn layui-btn-sm layui-btn-normal" lay-submit lay-filter="search">搜索</a>
@ -59,44 +54,27 @@
<button type="button" id="add-mail-news" class="layui-btn layui-btn-normal layui-btn-sm layEvent">添加</button>
<table id="like-table-lists" lay-filter="like-table-lists"></table>
<script type="text/html" id="operation">
{{# if(d.sys_audit_status < 1 ){ }}
<a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="audit">审核</a>
{{# } }}
<a class="layui-btn layui-btn-primary layui-btn-sm" lay-event="detail">详情</a>
{{# if(d.sys_audit_status > 1 ){ }}
<a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="audit">编辑</a>
<a class="layui-btn layui-btn-danger layui-btn-sm" lay-event="del">删除</a>
{{# } }}
</script>
<!-- 商品信息 -->
<script type="text/html" id="table-goods">
<div class="goods-content">
<div style="text-align: left;">
<img src="{{ d.cover_img }}" style="height:80px;width: 80px" class="image-show">
<div class="layui-input-inline ">
<span class="">{{ d.name }}</span>
</div>
</div>
<!-- 文章标题 -->
<script type="text/html" id="news-type">
<div >
{{# if(d.type == 0 ){ }}
文章
{{# } else { }}
视频
{{# } }}
</div>
</script>
<!-- 商品价格 -->
<script type="text/html" id="table-price">
<div class="price-content">
<span>{{ d.price_text }}</span>
</div>
</script>
<!-- 审核状态 -->
<script type="text/html" id="table-audit">
<div class="audit-content">
<span>{{ d.audit_status_text }}</span>
<span>{{ d.audit_remark }}</span>
</div>
</script>
<!-- 商家状态 -->
<script type="text/html" id="table-shop">
<img src="{{d.shop.logo}}" alt="图标" style="width:60px;height:60px;margin-right:5px;">
<div class="layui-inline" style="text-align:left;">
<p>商家名称:{{d.shop.name}}</p>
<p>商家类型:{{d.shop.type_desc}}</p>
<!-- 是否置顶 -->
<script type="text/html" id="news-top">
<div >
{{# if(d.is_top == 0 ){ }}
否
{{# } else { }}
是
{{# } }}
</div>
</script>
</div>
@ -124,7 +102,6 @@
});
});
form.on("submit(clear-search)", function(){
$("#goods_name").val("");
$("#shop_id").val("");
@ -144,23 +121,16 @@
});
function getList() {
like.tableLists("#like-table-lists", '{:url("live.LiveGoods/lists")}?status=' + status, [
like.tableLists("#like-table-lists", '{:url("mallNews/lists")}', [
{field: 'goodsId', width: 80, title: 'ID', sort: true, hide: true}
,{field:"storeInfo", title:"商家信息", templet:"#table-shop", width:250}
, {field: 'goods_info', title: '商品信息', width: 300, templet:'#table-goods'}
, {field: 'price', title: '商品价格', width: 200, align: 'center',templet: '#table-price'}
, {field: 'url', title: '商品链接', width: 320, align: 'center'}
, {field: 'audit_status', title: '状态', width: 200, align: 'center', templet:'#table-audit'}
, {fixed: 'right', title: '操作', width: 150, align: 'center', toolbar: '#operation'}
, {field: 'title', title: '标题', width: 300}
, {field: 'type', title: '文章类型', width: 200, align: 'center',templet: '#news-type'}
, {field: 'shop_name', title: '商品名称', width: 320, align: 'center'}
, {field: 'is_top', title: '是否置顶', width: 320, align: 'center', templet: '#news-top'}
, {fixed: 'right', title: '操作', width: 400, align: 'center', toolbar: '#operation'}
]);
}
//图片放大
$(document).on('click', '.image-show', function () {
var src = $(this).attr('src');
like.showImg(src, 400);
});
//添加快讯
$(document).on('click', '#add-mail-news', function () {
layer.open({
@ -168,15 +138,15 @@
, title: '添加快讯'
, content: '{:url("MallNews/add")}'
, area: ['90%', '90%']
,btn: ['确定', '取消']
, yes: function (index, layero) {
var iframeWindow = window['layui-layer-iframe' + index]
, submitID = 'addSubmit'
, submit = layero.find('iframe').contents().find('#' + submitID);
iframeWindow.layui.form.on('submit(' + submitID + ')', function (data) {
var field = data.field;
console.log(field);
like.ajax({
url: '{:url("live.LiveGoods/audit")}',
url: '{:url("mallNews/add")}',
data: field,
type: "post",
success: function (res) {
@ -195,14 +165,12 @@
//事件
var active = {
add: function() {
console.log(123)
},
audit: function (obj) {
console.log(obj)
layer.open({
type: 2
, title: '审核'
, content: '{:url("live.LiveGoods/audit")}?id=' + obj.data.id
, title: '编辑'
, content: '{:url("mallNews/audit")}?id=' + obj.data.id
, area: ['90%', '90%']
, yes: function (index, layero) {
var iframeWindow = window['layui-layer-iframe' + index]

@ -0,0 +1,10 @@
<?php
namespace app\common\model;
use app\common\basics\Models;
class MallNews extends Models
{
protected $table = 'ls_mall_news';
}

@ -0,0 +1,10 @@
<?php
namespace app\common\model;
use app\common\basics\Models;
class MallNewsFile extends Models
{
protected $table = 'ls_mall_news_file';
}