2023-10-27 14:25:12 +08:00

316 lines
17 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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); ?>