admin/addon/stock/shop/view/stock/manage.html

229 lines
6.4 KiB
HTML

{extend name="app/shop/view/base.html"/}
{block name="resources"}
<link rel="stylesheet" type="text/css" href="STATIC_EXT/searchable_select/searchable_select.css" />
<link rel="stylesheet" href="STATIC_EXT/layui/extend/formSelects-v4.css" />
<link rel="stylesheet" type="text/css" href="__STATIC__/ext/layui/extend/cascader/cascader.css"/>
<link rel="stylesheet" href="__ADDON__/stock/site/css/goods_lists.css">
{/block}
{block name="main"}
<div class="main-wrap">
<div class="content_full">
<div class="screen layui-collapse margin-bot" lay-filter="selection_panel">
<div class="layui-colla-item">
<form class="layui-colla-content layui-form layui-show" lay-filter="order_list">
<div class="layui-form-item">
<div class="classification">
<div class="layui-inline">
<label class="layui-form-label">商品名称/编码:</label>
<div class="layui-input-inline">
<input type="text" name="search_text" autocomplete="off" placeholder="请输入商品名称/编码" class="layui-input" />
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">商品分类</label>
<div class="layui-input-inline category-wrap">
<input type="text" autocomplete="off" show="false" class="layui-input select-category" placeholder="请选择" readonly="">
<input type="hidden" name="category_id">
</div>
</div>
</div>
<div class="classification">
<div class="layui-inline">
<label class="layui-form-label">库存:</label>
<div class="layui-input-inline">
<input type="number" name="min_stock" id="start_sale" lay-verify="int" min="0" placeholder="最低库存" class="layui-input" autocomplete="off">
</div>
<div class="layui-form-mid">-</div>
<div class="layui-input-inline">
<input type="number" name="max_stock" id="end_sale" lay-verify="int" min="0" placeholder="最高库存" class="layui-input" autocomplete="off">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">门店:</label>
<div class="layui-input-inline">
<select name="store_id" lay-filter="store_list" class="len-mid">
{foreach $store_list as $store_k => $store_v}
<option value="{$store_v.store_id}">{$store_v.store_name}</option>
{/foreach}
</select>
</div>
</div>
</div>
</div>
<div class="form-row">
<button class="layui-btn" lay-submit lay-filter="search">筛选</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</form>
</div>
</div>
<!-- 批量操作时判断是否为当前选项,防止重复点击 -->
<input type="hidden" name="openSwitch" lay-type="grouping" value="">
</div>
<div class="layui-tab table-tab" lay-filter="promition_list_tab">
<div class="table-tab-list">
<table id="team_list" lay-filter="team_list"></table>
</div>
</div>
</div>
<script type="text/html" id="goods_detail">
<div class='table-title'>
<div class='title-pic'>
<img layer-src src="{{ns.img(d.sku_image, 'small')}}">
</div>
<div class='title-content'>
<p class="layui-elip">{{d.goods_name}}</p>
</div>
</div>
</script>
<script type="text/html" id="operation">
<div class="table-btn">
<a class="layui-btn" lay-event="records">查看记录</a>
</div>
</script>
{/block}
{block name="script"}
<script src="STATIC_EXT/searchable_select/searchable_select.js"></script>
<script>
// layui.config({
// base: 'STATIC_EXT/layui/extend/' //此处路径请自行处理, 可以使用绝对路径
// }).extend({
// formSelects: 'formSelects-v4'
// });
//全局定义一次, 加载formSelects
layui.extend({
formSelects: 'STATIC_EXT/layui/extend/formSelects-v4',
layCascader: '__STATIC__/ext/layui/extend/cascader/cascader'
});
</script>
<script>
var table,form,layCascader;
var initStore = {$store_list[0]['store_id']} || "";
layui.use(['form', 'element','layCascader'], function() {
form = layui.form;
layCascader = layui.layCascader;
form.render();
table = new Table({
elem: '#team_list',
url: ns.url("stock://shop/stock/manage",{'store_id': initStore}),
cols: [
[{
field: 'sku_name',
title: '商品名称',
width: '20%',
templet: '#goods_detail'
},{
field: 'spec_name',
title: '规格',
width: '10%',
}, {
field: 'sku_no',
title: '编码',
width: '10%',
}, {
field: 'stock',
title: '销售库存',
width: '10%',
}, {
field: 'stock',
title: '实物库存',
width: '10%',
templet: function (data){
if(!data.real_stock){
return 0;
}
return data.real_stock;
}
}, {
field: 'cost_price',
title: '成本',
width: '10%',
}, {
field: 'create_time',
title: '添加时间',
width: '10%',
templet: function (data) {
return ns.time_to_date(data.create_time);
}
},
{
title: '操作',
width: '20%',
toolbar: '#operation',
align: 'right',
}
]
],
});
/**
* 监听工具栏操作
*/
table.tool(function (obj) {
var data = obj.data;
switch (obj.event) {
case 'records': //查看
window.open(ns.url("stock://shop/stock/records?sku_id=" + data.sku_id));
break;
}
});
//监听筛选事件
form.on('submit(search)', function (data) {
table.reload({
page: {
curr: 1
},
where: data.field
});
return false;
});
var goodsCategory = [];
fetchCategory('.select-category', function (value, node) {
$('[name="category_id"]').val(value)
});
/**
* 渲染分类选择
* @param elem
* @param callback
*/
function fetchCategory(elem, callback){
if (!goodsCategory.length) {
$.ajax({
url : ns.url("shop/goodscategory/lists"),
dataType: 'JSON',
type: 'POST',
async: false,
success: function(res) {
goodsCategory = res.data;
}
})
}
var _cascader = layCascader({
elem: elem,
options: goodsCategory,
props: {
value: 'category_id',
label: 'category_name',
children: 'child_list'
}
});
_cascader.changeEvent(function (value, node) {
typeof callback == 'function' && callback(value, node)
});
$("form").unbind().bind("reset", function(event){
_cascader.clearCheckedNodes()
});
}
});
</script>
{/block}