316 lines
17 KiB
PHP
316 lines
17 KiB
PHP
<?php
|
||
|
||
/**
|
||
* @author Any
|
||
* @description KISS
|
||
* @date 2021年10月5日
|
||
* @version 1.0.0
|
||
*
|
||
* _____LOG_____
|
||
*
|
||
*/
|
||
use app\widgets\PickFile;
|
||
use app\widgets\GoodsSku;
|
||
use app\assets\UeditorAsset;
|
||
|
||
UeditorAsset::register($this);
|
||
$this->title = $model->isNewRecord ? '添加商品' : '编辑商品';
|
||
$this->params['breadcrumbs'][] = ['label' => '商品' , 'url' => [\Yii::$app->urlManager->createUrl(["admin/integral/mall/goods/index"])]];
|
||
$this->params['breadcrumbs'][] = $this->title;
|
||
?>
|
||
<div class="layui-fluid">
|
||
<div class="layui-card">
|
||
<div class="layui-card-header"><?= $this->title ?></div>
|
||
<div class="layui-card-body">
|
||
<div class="layui-row">
|
||
<div class="layui-col-md12">
|
||
<div class="layui-form">
|
||
<div class="layui-form-item">
|
||
<label class="layui-form-label required">商品分类</label>
|
||
<div class="layui-input-block cat-list">
|
||
<?php foreach ($cat_list as $index => $item):?>
|
||
<input type="checkbox" value="<?=$item['id']?>" name="cat_ids[]" title="<?=$item['prefix'] . $item['name']?>" lay-skin="primary" <?=$item['checked'] ? 'checked' : ''?>>
|
||
<?php endforeach;?>
|
||
<div class="layui-form-mid layui-word-aux"></div>
|
||
</div>
|
||
</div>
|
||
<div class="layui-form-item">
|
||
<label class="layui-form-label required">名称</label>
|
||
<div class="layui-input-block">
|
||
<input type="text" name="name" placeholder="请输入名称" autocomplete="off" class="layui-input" value="<?= $model->goodsHub ? $model->goodsHub->name : ''?>" lay-verify="required">
|
||
</div>
|
||
<div class="layui-form-mid layui-word-aux"></div>
|
||
</div>
|
||
<div class="layui-form-item">
|
||
<label class="layui-form-label">副标题</label>
|
||
<div class="layui-input-block">
|
||
<textarea class="layui-textarea" rows="2"><?=$model->goodsHub ? $model->goodsHub->subtitle : ''?></textarea>
|
||
</div>
|
||
<div class="layui-form-mid layui-word-aux"></div>
|
||
</div>
|
||
<?= PickFile::widget([
|
||
'accept' => 'images',
|
||
'id' => 'cover_pic',
|
||
'name' => 'cover_pic',
|
||
'label' => '封面',
|
||
'value' => $model->goodsHub ? $model->goodsHub->cover_pic : '',
|
||
'tip' => '图片大小750×750',
|
||
'required' => true,
|
||
'imageCompressEnable' => 1,
|
||
'imageCompressBorder' => 750,
|
||
])?>
|
||
<?= PickFile::widget([
|
||
'multiple' => true,
|
||
'accept' => 'images',
|
||
'id' => 'pic_urls',
|
||
'name' => 'pic_urls',
|
||
'label' => '商品轮播图(多张)',
|
||
'value' => $model->goodsHub ? $model->goodsHub->pic_urls : '',
|
||
'tip' => '图片大小750×750',
|
||
'required' => true,
|
||
'imageCompressEnable' => 1,
|
||
'imageCompressBorder' => 750,
|
||
])?>
|
||
<?= PickFile::widget([
|
||
'accept' => 'video',
|
||
'id' => 'video_url',
|
||
'name' => 'video_url',
|
||
'label' => '商品视频',
|
||
'value' => $model->goodsHub ? $model->goodsHub->video_url : '',
|
||
'tip' => '视频最大50M',
|
||
'required' => false
|
||
])?>
|
||
<div class="layui-form-item">
|
||
<label class="layui-form-label">原价</label>
|
||
<div class="layui-input-inline">
|
||
<input type="number" name="original_price" placeholder="请输入原价" autocomplete="off" class="layui-input" value="<?= $model->goodsHub ? $model->goodsHub->original_price : ''?>" lay-verify="">
|
||
</div>
|
||
<div class="layui-form-mid layui-word-aux"></div>
|
||
</div>
|
||
<div class="layui-form-item">
|
||
<label class="layui-form-label">成本价</label>
|
||
<div class="layui-input-inline">
|
||
<input type="number" name="cost_price" placeholder="请输入成本价" autocomplete="off" class="layui-input" value="<?= $model->goodsHub ? $model->goodsHub->cost_price : ''?>" lay-verify="">
|
||
</div>
|
||
<div class="layui-form-mid layui-word-aux"></div>
|
||
</div>
|
||
<div class="layui-form-item">
|
||
<label class="layui-form-label required">售价</label>
|
||
<div class="layui-input-inline">
|
||
<input type="number" name="price" placeholder="请输入售价" autocomplete="off" class="layui-input" value="<?= $model->price ?>" lay-verify="required">
|
||
</div>
|
||
<div class="layui-form-mid layui-word-aux"></div>
|
||
</div>
|
||
<div class="layui-form-item">
|
||
<label class="layui-form-label required">积分</label>
|
||
<div class="layui-input-inline">
|
||
<input type="number" name="integral_num" placeholder="请输入积分" autocomplete="off" class="layui-input" value="<?= $model->integralMallGoods ? $model->integralMallGoods->integral_num : 0 ?>" lay-verify="required">
|
||
</div>
|
||
<div class="layui-form-mid layui-word-aux"></div>
|
||
</div>
|
||
<div class="layui-form-item">
|
||
<label class="layui-form-label required">库存</label>
|
||
<div class="layui-input-inline">
|
||
<input type="number" name="goods_stock" placeholder="请输入库存" autocomplete="off" class="layui-input" value="<?= $model->goods_stock ?>" lay-verify="required">
|
||
</div>
|
||
<div class="layui-form-mid layui-word-aux"></div>
|
||
</div>
|
||
<div class="layui-form-item">
|
||
<label class="layui-form-label">虚拟销量</label>
|
||
<div class="layui-input-inline">
|
||
<input type="number" name="virtual_sales" placeholder="请输入虚拟销量" autocomplete="off" class="layui-input" value="<?= $model->virtual_sales ?>" lay-verify="">
|
||
</div>
|
||
<div class="layui-form-mid layui-word-aux"></div>
|
||
</div>
|
||
<div class="layui-form-item">
|
||
<label class="layui-form-label">限购数量</label>
|
||
<div class="layui-input-inline">
|
||
<input type="number" name="confine_count" placeholder="请输入限购数量" autocomplete="off" class="layui-input" value="<?= $model->confine_count ?>" lay-verify="">
|
||
</div>
|
||
<div class="layui-form-mid layui-word-aux">0则不限购</div>
|
||
</div>
|
||
<div class="layui-form-item">
|
||
<label class="layui-form-label required">单位</label>
|
||
<div class="layui-input-inline">
|
||
<input type="text" name="unit" placeholder="请输入单位" autocomplete="off" class="layui-input" value="<?= $model->goodsHub ? $model->goodsHub->unit : ''?>" lay-verify="required">
|
||
</div>
|
||
<div class="layui-form-mid layui-word-aux"></div>
|
||
</div>
|
||
<?= GoodsSku::widget(['id' => 'goods_attrs', 'attr' => $attr, 'attr_groups' => $attr_groups, 'open_integral' => true])?>
|
||
<div class="layui-form-item">
|
||
<label class="layui-form-label">排序</label>
|
||
<div class="layui-input-inline">
|
||
<input type="number" name="sort" placeholder="请输入数字" autocomplete="off" class="layui-input" value="<?= $model->sort ? $model->sort : 100 ?>">
|
||
</div>
|
||
<div class="layui-form-mid layui-word-aux">升序,值越小排序越靠前</div>
|
||
</div>
|
||
<div class="layui-form-item">
|
||
<label class="layui-form-label required">内容</label>
|
||
<div class="layui-input-block">
|
||
<textarea id="editor" style="width: 100%"
|
||
name="content" rows="30" ><?= $model->goodsHub ? $model->goodsHub->detail : "" ?></textarea>
|
||
</div>
|
||
<div class="layui-form-mid layui-word-aux"></div>
|
||
</div>
|
||
<div class="layui-form-item">
|
||
<div class="layui-input-block">
|
||
<div class="" >
|
||
<button class="layui-btn" lay-submit="" lay-filter="layui-form-submit">保存</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<script>
|
||
<?php $this->beginBlock('js_script_wrap') ?>
|
||
layui.config({
|
||
base: '/statics/layuiadmin/' //静态资源所在路径
|
||
}).extend({
|
||
index: 'lib/index' //主入口模块
|
||
}).use(['index', 'user'], function () {
|
||
var $ = layui.$
|
||
, setter = layui.setter
|
||
, admin = layui.admin
|
||
, form = layui.form
|
||
, router = layui.router()
|
||
, search = router.search;
|
||
|
||
form.render();
|
||
//提交
|
||
var submitLock = false;
|
||
form.on('submit(layui-form-submit)', function (obj) {
|
||
if (submitLock) {
|
||
return false;
|
||
}
|
||
submitLock = true;
|
||
//请求登入接口
|
||
//console.log(obj)
|
||
var url = '<?= \Yii::$app->urlManager->createUrl(["/admin/integral/mall/goods/edit", 'id' => $model->id ? $model->id : 0]) ?>';
|
||
var returnUrl = "<?= $return_url ?>";
|
||
var data = obj.field;
|
||
data.pic_urls = JSON.stringify(_gallery_pic_urls);
|
||
data.detail = UE.getEditor('editor').getContent();
|
||
var attrs = fixAttrGroups();
|
||
data.attr = attrs.attr;
|
||
data.use_attr = data.attr.length == 0 ? 0 : 1;
|
||
if(data.use_attr == 1){
|
||
for(var i in data.attr){
|
||
if(!data.attr[i]['price'] || data.attr[i]['price'] * 1 < 0){
|
||
submitLock = false;
|
||
return layer.msg('价格不能为空或小于0');
|
||
}
|
||
if(!data.attr[i]['stock'] || data.attr[i]['stock'] * 1 < 0){
|
||
submitLock = false;
|
||
return layer.msg('库存不能为空或小于0');
|
||
}
|
||
}
|
||
}
|
||
data.attrGroups = attrs.attr_groups;
|
||
data._csrf = _csrf;
|
||
$.ajax(url, {
|
||
type: "POST",
|
||
dataType: "json",
|
||
data: data,
|
||
timeout: 10000,
|
||
success: function (res) {
|
||
if (res.code == 0) {
|
||
layer.msg(res.msg, {
|
||
offset: '15px'
|
||
, icon: 1
|
||
, time: 1000
|
||
}, function () {
|
||
if(returnUrl){
|
||
location.href = returnUrl;
|
||
} else {
|
||
location.reload();
|
||
}
|
||
});
|
||
} else {
|
||
layer.msg(res.msg, {
|
||
offset: '15px'
|
||
, icon: 2
|
||
, time: 1000
|
||
}, function () {
|
||
});
|
||
}
|
||
},
|
||
error: function (xhr, type, err) {
|
||
layer.msg(xhr.responseText, {
|
||
offset: '15px'
|
||
, icon: 2
|
||
, time: 1000
|
||
}, function () {
|
||
});
|
||
},
|
||
complete: function () {
|
||
submitLock = false;
|
||
}
|
||
})
|
||
});
|
||
var ue = UE.getEditor('editor', {
|
||
serverUrl: "<?= \Yii::$app->urlManager->createUrl(['file/upload']) ?>",
|
||
toolbars: [
|
||
[
|
||
'anchor', //锚点
|
||
'undo', //撤销
|
||
'redo', //重做
|
||
'bold', //加粗
|
||
'indent', //首行缩进
|
||
'italic', //斜体
|
||
'underline', //下划线
|
||
'strikethrough', //删除线
|
||
'subscript', //下标
|
||
'fontborder', //字符边框
|
||
'superscript', //上标
|
||
'formatmatch', //格式刷
|
||
'source', //源代码
|
||
'blockquote', //引用
|
||
'pasteplain', //纯文本粘贴模式
|
||
'selectall', //全选
|
||
'preview', //预览
|
||
'horizontal', //分隔线
|
||
'removeformat', //清除格式
|
||
'time', //时间
|
||
'date', //日期
|
||
'unlink', //取消链接
|
||
'cleardoc', //清空文档
|
||
'insertcode', //代码语言
|
||
'fontfamily', //字体
|
||
'fontsize', //字号
|
||
'paragraph', //段落格式
|
||
'simpleupload', //单图上传
|
||
'insertimage', //多图上传
|
||
'link', //超链接
|
||
'emotion', //表情
|
||
'spechars', //特殊字符
|
||
'help', //文章
|
||
'justifyleft', //居左对齐
|
||
'justifyright', //居右对齐
|
||
'justifycenter', //居中对齐
|
||
'justifyjustify', //两端对齐
|
||
'forecolor', //字体颜色
|
||
'insertorderedlist', //有序列表
|
||
'insertunorderedlist', //无序列表
|
||
'fullscreen', //全屏
|
||
'rowspacingtop', //段前距
|
||
'rowspacingbottom', //段后距
|
||
'wordimage', //图片转存
|
||
'lineheight', //行间距
|
||
'customstyle', //自定义标题
|
||
'autotypeset', //自动排版
|
||
'drafts', // 从草稿箱加载
|
||
]
|
||
]
|
||
});
|
||
});
|
||
<?php $this->endBlock(); ?>
|
||
</script>
|
||
<?php $this->registerJs($this->blocks['js_script_wrap'], \yii\web\View::POS_END); ?>
|
||
|
||
|
||
|