2023-11-28 15:18:01 +08:00

436 lines
23 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 wrx <it2bt.com>
* @description Do it yourself.
* @date 2018-6-21 23:20:52
* @version 1.0.0
*/
use app\widgets\PickImage;
use app\assets\UeditorAsset;
UeditorAsset::register($this);
$this->title = $goods_hub->isNewRecord ? '新建商品' : '编辑商品';
$this->params['breadcrumbs'][] = $this->title;
?>
<style>
.required {
color: red;
}
</style>
<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-form">
<div class="layui-col-md6">
<div class="grid-demo grid-demo-bg1">
<div class="layui-form-item">
<label class="layui-form-label">禁售旅行社</label>
<div class="layui-input-inline">
<div id="demo4" class="xm-select-size xm-select-demo" style="width: 200px"></div>
</div>
<div class="layui-form-mid layui-word-aux"></div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">商品名称<span class="required">*</span></label>
<div class="layui-input-block">
<input type="text" name="name" value="<?= $goods_hub->name ?>" lay-verify="required"
autocomplete="off" placeholder="请输入商品名称" class="layui-input" style="width: 90%">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">售价<span class="required">*</span></label>
<div class="layui-input-inline">
<input type="text" name="price" value="<?= $goods->price ?>"
lay-verify="required" autocomplete="off" placeholder="请输入售价" class="layui-input">
</div>
<div class="layui-form-mid layui-word-aux">只做展示用途</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">导游售价<span class="required">*</span></label>
<div class="layui-input-inline">
<input type="text" name="guide_price" value="<?= $goods->guide_price ?>"
lay-verify="required" autocomplete="off" placeholder="请输入导游售价" class="layui-input">
</div>
<div class="layui-form-mid layui-word-aux">只做展示用途</div>
</div>
<!-- <div class="layui-form-item">-->
<!-- <label class="layui-form-label">虚拟库存<span class="required">*</span></label>-->
<!-- <div class="layui-input-inline">-->
<!-- <input type="text" name="goods_stock" value="--><?//= $goods->goods_stock ?><!--"-->
<!-- lay-verify="required"-->
<!-- onchange="if(this.value <= 0){alert('只能输入整数');this.value='';}"-->
<!-- autocomplete="off" placeholder="请输入库存" class="layui-input">-->
<!-- </div>-->
<!-- </div>-->
<div class="layui-form-item">
<label class="layui-form-label">重量(克)<span class="required">*</span></label>
<div class="layui-input-inline">
<input type="text" name="weight" value="<?= $attr->weight ?>"
lay-verify="required"
onchange="if(/\D/.test(this.value)){alert('只能输入整数');this.value='';}"
autocomplete="off" placeholder="请输入重量" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">排序<span class="required">*</span></label>
<div class="layui-input-inline">
<input type="text" name="sort" value="<?= $goods->sort ?>"
lay-verify="required"
onchange="if(/\D/.test(this.value)){alert('只能输入整数');this.value='';}"
autocomplete="off" placeholder="请输入排序" class="layui-input">
</div>
<div class="layui-form-mid layui-word-aux">升序,值越小排序越靠前</div>
</div>
<?= PickImage::widget([
'accept' => 'images',
'id' => 'cover_pic',
'name' => 'cover_pic',
'label' => '商品封面',
'value' => $goods_hub->cover_pic,
'tip' => '图片大小100px×100px',
'mode' => 'one',
]) ?>
</div>
</div>
<div class="layui-col-md6">
<div class="grid-demo">
<div id="def" style="display: none">
<div class="layui-form-item">
<label class="layui-form-label">运费规则</label>
<div class="layui-input-block">
<select name="freight_id" lay-filter="ruls">
<option value=""></option>
<?php foreach ($postage_ruls as $index => $item) : ?>
<option value="<?= $item['id'] ?>" <?= $goods->freight_id == $item['id'] ? 'selected' : '' ?>><?= $item['name'] ?></option>
<?php endforeach; ?>
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">包邮规则</label>
<div class="layui-input-block">
<select name="delivery_id" lay-filter="ruls">
<option value=""></option>
<?php foreach ($delivery_ruls as $index => $item) : ?>
<option value="<?= $item['id'] ?>" <?= $goods->delivery_id == $item['id'] ? 'selected' : '' ?>><?= $item['name'] ?></option>
<?php endforeach; ?>
</select>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">状态<span class="required">*</span></label>
<div class="layui-input-block">
<input type="radio" name="status" value="0"
title="下架" <?= $goods->status == 0 ? 'checked' : $goods->isNewRecord == 1 ? 'checked' : '' ?>>
<input type="radio" name="status" value="1"
title="上架" <?= $goods->status == 1 ? 'checked' : '' ?>>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">分类<span class="required">*</span></label>
<div class="layui-input-block">
<input type="radio" name="plugin_sign" value="0"
title="试吃" <?= $goods->plugin_sign == 0 ? 'checked' : $goods->isNewRecord == 1 ? 'checked' : '' ?> lay-filter="plugin_sign">
<input type="radio" name="plugin_sign" value="1"
title="配货" <?= $goods->plugin_sign == 1 ? 'checked' : '' ?> lay-filter="plugin_sign">
<input type="radio" name="plugin_sign" value="2"
title="耳麦" <?= $goods->plugin_sign == 2 ? 'checked' : '' ?> lay-filter="plugin_sign">
<input type="radio" name="plugin_sign" value="3"
title="快递" <?= $goods->plugin_sign == 3 ? 'checked' : '' ?> lay-filter="plugin_sign">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">规格</label>
<div class="layui-input-block">
<input type="checkbox" name="goods_attr[first]" value="1" lay-filter="goods_attr" lay-skin="primary" title="盒">
<input type="checkbox" name="goods_attr[second]" value="2" lay-filter="goods_attr" lay-skin="primary" title="套">
</div>
</div>
<div class="layui-col-md6" id="goods_attr_first_html" style="display:none;">
<div class="layui-card">
<div class="layui-card-header">
单位:盒<span class="required">*</span>
</div>
<div class="layui-card-body">
<div class="layui-form-item">
<label class="layui-form-label">售价(元)</label>
<div class="layui-input-inline">
<input type="number" name="goods_attr_first[price]" value="<?= $attr[0]['price'] ?? null ?>" autocomplete="off" placeholder="请输入" class="layui-input goods_attr_first">
</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="goods_attr_first[guide_price]" value="<?= $attr[0]['tourist'] ?? null ?>" autocomplete="off" placeholder="请输入" class="layui-input goods_attr_first">
</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="goods_attr_first[stock]" value="<?= $attr[0]['stock'] ?? null ?>" autocomplete="off" placeholder="请输入" class="layui-input goods_attr_first">
</div>
<div class="layui-form-mid layui-word-aux"></div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">管家婆SKU</label>
<div class="layui-input-inline">
<input type="text" name="goods_attr_first[serial_no]" value="<?= $attr[0]['serial_no'] ?? ''?>" autocomplete="off" placeholder="请输入" class="layui-input goods_attr_first">
</div>
<div class="layui-form-mid layui-word-aux"></div>
</div>
</div>
</div>
</div>
<div class="layui-col-md6" id="goods_attr_second_html" style="display:none;">
<div class="layui-card">
<div class="layui-card-header">
单位:套<span class="required">*</span>
</div>
<div class="layui-card-body">
<div class="layui-form-item">
<label class="layui-form-label">售价(元)</label>
<div class="layui-input-inline">
<input type="number" name="goods_attr_second[price]" value="<?= $attr[1]['price'] ?? null ?>" autocomplete="off" placeholder="请输入" class="layui-input goods_attr_second">
</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="goods_attr_second[guide_price]" value="<?= $attr[1]['tourist'] ?? null ?>" autocomplete="off" placeholder="请输入" class="layui-input goods_attr_second">
</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="goods_attr_second[stock]" value="<?= $attr[1]['stock'] ?? null ?>" autocomplete="off" placeholder="请输入" class="layui-input goods_attr_second">
</div>
<div class="layui-form-mid layui-word-aux"></div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">管家婆SKU</label>
<div class="layui-input-inline">
<input type="text" name="goods_attr_second[serial_no]" value="<?= $attr[1]['serial_no'] ?? ''?>" autocomplete="off" placeholder="请输入" class="layui-input goods_attr_second">
</div>
<div class="layui-form-mid layui-word-aux"></div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<div class="">
<input type="hidden" name="id" value="<?= $goods_hub->id ?>">
<input type="hidden" name="type" value="0">
<input type="hidden" name="use_attr" value="off">
<button class="layui-btn" id="layui-form-submit" lay-submit=""
lay-filter="layui-form-submit">保存
</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
<?php $this->beginBlock('js_script_wrap') ?>
layui.config({
base: '/statics/layuiadmin/' //静态资源所在路径
}).extend({
index: 'lib/index', //主入口模块
laySku: 'laySku',
xmSelect:'lib/extend/xm-select',
}).use(['index', 'user', 'upload', 'laySku','xmSelect'], function () {
var $ = layui.$
, setter = layui.setter
, admin = layui.admin
, upload = layui.upload
, form = layui.form
, router = layui.router()
, layer = layui.layer
, laySku = layui.laySku
, search = router.search;
var xmSelect = layui.xmSelect;
var demo4 = xmSelect.render({
el: '#demo4',
size: 'small',
model: { label: { type: 'text' } },
tree: {
show: true,
strict: false,
expandedKeys: [ -1 ],
repeat: true,
},
height: 'auto'
})
var agency = '<?= $agency ?>'
var goods_agency = '<?= $goods->prohibit_agency ?>'
setTimeout(function() {
demo4.update({
data: JSON.parse(agency)
});
if(!isNewRecord){
demo4.setValue(JSON.parse(goods_agency));
}
}, 300);
var isNewRecord = '<?= $goods_hub->isNewRecord ?>';
if(!isNewRecord){
var plugin_sign = '<?= $goods->plugin_sign ?>';
if(plugin_sign === '3'){
$('#def').show()
}
}
form.on('checkbox(goods_attr)', function(data){
var value = data.value;
var checked = data.elem.checked;
if(value == '1'){
if(checked == true){
//lay-verify="required" id="goods_attr_first_price"
$('#goods_attr_first_html').show()
$('.goods_attr_first').attr('lay-verify','required')
}else{
$('#goods_attr_first_html').hide()
$('.goods_attr_first').removeAttr('lay-verify')
}
}
if(value == '2'){
if(checked == true){
$('#goods_attr_second_html').show()
$('.goods_attr_second').attr('lay-verify','required')
}else{
$('#goods_attr_second_html').hide()
$('.goods_attr_second').removeAttr('lay-verify')
}
}
});
form.on("radio(plugin_sign)", function (data) {
var plugin_sign = data.value;
if(plugin_sign === '3'){
$('#def').show()
}else{
$('#def').hide()
}
})
form.render();
//提交
var submitLock = false;
form.on('submit(layui-form-submit)', function (obj) {
if (submitLock) {
return false;
}
submitLock = true;
//请求登入接口
var url = '<?= \Yii::$app->urlManager->createUrl(["/admin/goods/edit", 'id' => $goods_hub->id ? $goods_hub->id : 0]) ?>';
var data = obj.field;
data._csrf = _csrf;
data.prohibit_agency = JSON.stringify(demo4.getValue());
console.log(data);
$.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 () {
location.reload();
});
} else {
layer.msg(res.msg, {
offset: '15px'
, icon: 2
, time: 1000
}, function () {
submitLock = false;
});
}
},
error: function (xhr, type, err) {
layer.msg(xhr.responseText, {
offset: '15px'
, icon: 2
, time: 1000
}, function () {
});
},
complete: function () {
submitLock = false;
}
})
});
});
<?php $this->endBlock(); ?>
</script>
<?php $this->registerJs($this->blocks['js_script_wrap'], \yii\web\View::POS_END); ?>