<!-- 货物信息 table 页面 -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="../../layui/css/layui.css">
<link rel="stylesheet" href="../../css/diy.css">
</head>
<body>
<div class="section1">
<!-- 内容主体区域 -->
<div class="manu manu-btns" style="padding: 15px;">
<form class="layui-form" action="">
<div class="form-input-box-s layui-form-item">
<div class="input-box">
<label class="layui-form-label">仓库名称</label>
<div class="layui-input-block block input-i">
<input type="text" name="title" required lay-verify="required" autocomplete="off"
class="layui-input">
</div>
</div>
<div class="input-box">
<label class="layui-form-label">货物名称</label>
<div class="layui-input-block block input-i">
<input type="text" name="title" required lay-verify="required" autocomplete="off"
class="layui-input">
</div>
</div>
<div class="input-box">
<label class="layui-form-label">货物分类</label>
<div class="layui-input-block block select">
<select name="interest" lay-filter="classification_of_goods" id="classification_of_goods">
<option value=""></option>
</select>
</div>
</div>
<div class="input-box">
<label class="layui-form-label">存放位置</label>
<div class="layui-input-block block input-i">
<input type="text" name="title" required lay-verify="required" autocomplete="off"
class="layui-input">
</div>
</div>
</div>
</form>
<div class="buts">
<button type="button" class="layui-btn layui-btn-normal" id="inquire"><span>查询</span></button>
<button type="button" class="layui-btn layui-btn-normal" id="reset"><span>重置</span></button>
<button type="button" class="layui-btn layui-btn-normal" id="delete" style="display: none"><span>删除</span></button>
<button type="button" class="layui-btn layui-btn-normal" target="main_self_frame" id="add" style="display: none"><span>新增</span></button>
</div>
<div class="Customize-the-box">
<div class="circle"></div>
<div class="circle"></div>
<div class="card-inner"></div>
</div>
</div>
<div class="table">
<table class="layui-hide" id="goods_information" lay-filter="goods_information"></table>
<script type="text/html" id="toolbarDemo">
<div class="layui-btn-container">
{{# if(d.add_procurement_information>0){ }}
<button class="layui-btn layui-btn-sm" lay-event="procurement_information">采购</button>
{{# } }}
{{# if(d.add_storage_record>0){ }}
<button class="layui-btn layui-btn-sm" lay-event="storage_record">入库</button>
{{# } }}
{{# if(d.add_outbound_record>0){ }}
<button class="layui-btn layui-btn-sm" lay-event="outbound_record">出库</button>
{{# } }}
{{# if(d.add_inventory_records>0){ }}
<button class="layui-btn layui-btn-sm" lay-event="inventory_records">盘点</button>
{{# } }}
{{# if(d.add_price_adjustment_record>0){ }}
<button class="layui-btn layui-btn-sm" lay-event="price_adjustment_record">调价</button>
{{# } }}
{{# if(d.detail_flag){ }}
<button class="layui-btn layui-btn-sm" lay-event="detail">详情</button>
{{# } }}
</div>
</script>
</div>
</div>
</body>
<script src="../../layui/layui.js"></script>
<script src="../../js/index.js"></script>
<script src="../../js/base.js"></script>
<script src="../../js/axios.min.js"></script>
<script>
var BaseUrl = baseUrl()
layui.use(['element', 'layer', 'laydate', 'util'], function () {
var element = layui.element
, layer = layui.layer
, laydate = layui.laydate
, util = layui.util
, table = layui.table
, $ = layui.$;
let personInfo = JSON.parse(sessionStorage.personInfo)
let user_group = personInfo.user_group
let use_id = personInfo.user_id
let url = BaseUrl + '/api/goods_information/get_list?like=0'
let deletes = document.querySelector('#delete')
let add = document.querySelector('#add')
add.addEventListener('click', () => {
layopen_add("./view_add.html")
})
let sqlwhere
let data_data = {size: 10, orderby: 'create_time desc'}
let detail_flag = false;
// 获取路径权限
async function get_list() {
let {data: ren} = await axios.get(BaseUrl + '/api/auth/get_list', {
params: {
user_group: personInfo.user_group
}
})
}
get_list()
// 权限判断
/**
* 获取路径对应操作权限 鉴权
* @param {String} action 操作名
*/
function $check_action(path1, action = "get") {
var o = $get_power(path1);
if (o && o[action] != 0 && o[action] != false) {
return true;
}
return false;
}
if ($check_action('/goods_information/table', 'del') || $check_action('/goods_information/view', 'del')) {
deletes.style.display = "block"
}
if ($check_action('/goods_information/table', 'add') || $check_action('/goods_information/view', 'add')) {
add.style.display = "block"
}
if ($check_action('/goods_information/view', 'get') || $check_action('/goods_information/view', 'set')) {
detail_flag = true;
}
/**
* 获取权限
* @param {String} path 路由路径
*/
function $get_power(path) {
var list_data = JSON.parse(sessionStorage.list_data)
var list = list_data;
var obj;
for (var i = 0; i < list.length; i++) {
var o = list[i];
if (o.path === path) {
obj = o;
break;
}
}
return obj;
}
var path1
function getpath() {
var list_data = JSON.parse(sessionStorage.list_data)
for (var i = 0; i < list_data.length; i++) {
var o = list_data[i];
if (o.path === "/goods_information/table") {
console.log(o.path);
path1 = o.path
$get_power(o.path)
}
}
}
getpath()
/**
* 注册时是否有显示或操作字段的权限
* @param {String} action 操作名
* @param {String} field <span>查询</span>的字段
* @param {String} path 路径
*/
function $check_register_field(action, field, path1) {
var o = $get_power(path1);
var auth;
if (o && o[action] != 0 && o[action] != false) {
auth = o["field_" + action];
}
if (auth) {
return auth.indexOf(field) !== -1;
}
return false;
}
/**
* 是否有显示或操作字段的权限
* @param {String} action 操作名
* @param {String} field <span>查询</span>的字段
*/
function $check_field(action, field, path1) {
var o = $get_power(path1);
var auth;
if (o && o[action] != 0 && o[action] != false) {
auth = o["field_" + action];
}
if (auth) {
return auth.indexOf(field) !== -1;
}
return false;
}
/**
* 是否有显示或操作支付的权限
* @param {String} path 路径
*/
function $check_pay(path) {
let o = $get_power(path);
if (o){
let option = JSON.parse(o.option);
if (option.pay)
return true
}
return false;
}
/**
* 获取路径对应操作权限 鉴权
* @param {String} action 操作名
*/
function $check_exam(path1, action = "get") {
var o = $get_power(path1);
if (o) {
var option = JSON.parse(o.option);
if (option[action])
return true
}
return false;
}
function $check_option(path,op) {
var o = $get_power(path);
if (o){
var option = JSON.parse(o.option);
if (option[op])
return true
}
return false;
}
let token = sessionStorage.token || null
table.render({
elem: '#goods_information'
, toolbar: true
, url: url
, headers: {
'x-auth-token': token,
'Content-Type': 'application/json'
}
,limits: [10]
, page: {
layout: ['limit', 'count', 'prev', 'page', 'next', 'skip']
//,curr: 5
, groups: 1
, first: false
, last: false
}
, cols: [[
{type: 'checkbox', fixed: 'left'}
, {
field: 'warehouse_name', width: 180, title: '仓库名称', sort: true
}
, {
field: 'goods_number', width: 180, title: '货物编号', sort: true
}
, {
field: 'name_of_goods', width: 180, title: '货物名称', sort: true
}
, {
field: 'classification_of_goods', width: 180, title: '货物分类', sort: true
}
, {
field: 'goods_specifications', width: 180, title: '货物规格', sort: true
}
, {
field: 'price_of_goods', width: 180, title: '货物价格', sort: true
}
, {
field: 'inventory_of_goods', width: 180, title: '货物库存', sort: true
}
, {
field: 'storage_location', width: 180, title: '存放位置', sort: true
}
, {
field: 'description_of_the_goods', width: 180, title: '货物描述', sort: true
}
,
{
field: 'create_time',
width
:
'20%',
title
:
'新增时间',
sort
:
true,
templet
:
"<div>{{layui.util.toDateString(d.create_time, 'yyyy-MM-dd HH:mm:ss')}}</div>"
}
,
{
field: 'update_time',
width
:
'20%',
title
:
'更新时间',
sort
:
true,
templet
:
"<div>{{layui.util.toDateString(d.update_time, 'yyyy-MM-dd HH:mm:ss')}}</div>"
}
,
{
field: 'operate',
title
:
'操作',
sort
:
true,
width
:
'20%',
fixed
:
'right',
toolbar
:
"#toolbarDemo"
}
]]
,
done: function (res, curr, count) { // 表格渲染完成之后的回调
if (res.count == null) { // 无数据时直接返回了
return;
}
if ($check_field('get', 'warehouse_name', path1)) {
// console.log("显示")
} else {
$("[data-field='warehouse_name']").css('display', 'none');
}
if ($check_field('get', 'goods_number', path1)) {
// console.log("显示")
} else {
$("[data-field='goods_number']").css('display', 'none');
}
if ($check_field('get', 'name_of_goods', path1)) {
// console.log("显示")
} else {
$("[data-field='name_of_goods']").css('display', 'none');
}
if ($check_field('get', 'classification_of_goods', path1)) {
// console.log("显示")
} else {
$("[data-field='classification_of_goods']").css('display', 'none');
}
if ($check_field('get', 'goods_specifications', path1)) {
// console.log("显示")
} else {
$("[data-field='goods_specifications']").css('display', 'none');
}
if ($check_field('get', 'price_of_goods', path1)) {
// console.log("显示")
} else {
$("[data-field='price_of_goods']").css('display', 'none');
}
if ($check_field('get', 'inventory_of_goods', path1)) {
// console.log("显示")
} else {
$("[data-field='inventory_of_goods']").css('display', 'none');
}
if ($check_field('get', 'storage_location', path1)) {
// console.log("显示")
} else {
$("[data-field='storage_location']").css('display', 'none');
}
if ($check_field('get', 'description_of_the_goods', path1)) {
// console.log("显示")
} else {
$("[data-field='description_of_the_goods']").css('display', 'none');
}
for (var i = 0; i < res.data.length; i++) {
let limits = res.data[i].procurement_information_limit_times;
let index = i
if (limits > 0) {
let params = {
source_table: "goods_information",
source_id: res.data[i].goods_information_id,
source_user_id: use_id
}
axios.get(BaseUrl + '/api/procurement_information/count', {
params
}).then(count => {
if (count) {
if (count.data.result >= limits) {
$('tr[data-index="' + index + '"] .layui-table-cell').find("[lay-event='procurement_information']").hide();
}
}
})
}
}
for (var i = 0; i < res.data.length; i++) {
let limits = res.data[i].storage_record_limit_times;
let index = i
if (limits > 0) {
let params = {
source_table: "goods_information",
source_id: res.data[i].goods_information_id,
source_user_id: use_id
}
axios.get(BaseUrl + '/api/storage_record/count', {
params
}).then(count => {
if (count) {
if (count.data.result >= limits) {
$('tr[data-index="' + index + '"] .layui-table-cell').find("[lay-event='storage_record']").hide();
}
}
})
}
}
for (var i = 0; i < res.data.length; i++) {
let limits = res.data[i].outbound_record_limit_times;
let index = i
if (limits > 0) {
let params = {
source_table: "goods_information",
source_id: res.data[i].goods_information_id,
source_user_id: use_id
}
axios.get(BaseUrl + '/api/outbound_record/count', {
params
}).then(count => {
if (count) {
if (count.data.result >= limits) {
$('tr[data-index="' + index + '"] .layui-table-cell').find("[lay-event='outbound_record']").hide();
}
}
})
}
}
for (var i = 0; i < res.data.length; i++) {
let limits = res.data[i].inventory_records_limit_times;
let index = i
if (limits > 0) {
let params = {
source_table: "goods_information",
source_id: res.data[i].goods_information_id,
source_user_id: use_id
}
axios.get(BaseUrl + '/api/inventory_records/count', {
params
}).then(count => {
if (count) {
if (count.data.result >= limits) {
$('tr[data-index="' + index + '"] .layui-table-cell').find("[lay-event='inventory_records']").hide();
}
}
})
}
}
for (var i = 0; i < res.data.length; i++) {
let limits = res.data[i].price_adjustment_record_limit_times;
let index = i
if (limits > 0) {
let params = {
source_table: "goods_information",
source_id: res.data[i].goods_information_id,
source_user_id: use_id
}
axios.get(BaseUrl + '/api/price_adjustment_record/count', {
params
}).then(count => {
if (count) {
if (count.data.result >= limits) {
$('tr[data-index="' + index + '"] .layui-table-cell').find("[lay-event='price_adjustment_record']").hide();
}
}
})
}
}
// 重新渲染
}
,
page: true,
request
:
{
limitName: 'size'
}
,
response: {
statusName: 'code', //规定返回/Back的状态码字段为code
statusCode
:
200 //规定成功的状态码为200
}
,
parseData: function (res) {
// 跨表按钮
if ($check_action('/procurement_information/table', 'add') || $check_action('/procurement_information/view', 'add')) {
for (var i = 0; i < res.result.list.length; i++) {
res.result.list[i].add_procurement_information = 1
}
}
if ($check_action('/storage_record/table', 'add') || $check_action('/storage_record/view', 'add')) {
for (var i = 0; i < res.result.list.length; i++) {
res.result.list[i].add_storage_record = 1
}
}
if ($check_action('/outbound_record/table', 'add') || $check_action('/outbound_record/view', 'add')) {
for (var i = 0; i < res.result.list.length; i++) {
res.result.list[i].add_outbound_record = 1
}
}
if ($check_action('/inventory_records/table', 'add') || $check_action('/inventory_records/view', 'add')) {
for (var i = 0; i < res.result.list.length; i++) {
res.result.list[i].add_inventory_records = 1
}
}
if ($check_action('/price_adjustment_record/table', 'add') || $check_action('/price_adjustment_record/view', 'add')) {
for (var i = 0; i < res.result.list.length; i++) {
res.result.list[i].add_price_adjustment_record = 1
}
}
if ($check_pay('/goods_information/table')) {
for (var i = 0; i < res.result.list.length; i++) {
res.result.list[i].check_pay = true
}
}
if ($check_action('/goods_information/view', 'set') || $check_action('/goods_information/view', 'get')) {
for (var i = 0; i < res.result.list.length; i++) {
res.result.list[i].detail_flag = detail_flag
}
}
return {
"code": 200,
"msg": "",
"count": res.result.count,
"data": res.result.list
}
}
,
where: data_data
})
;
table.on('tool(goods_information)', function (obj) {
var data = obj.data;
if (obj.event === 'detail')
{
// window.location.href = "./view_add.html?" + data.goods_information_id;
layopen_dateil("./view_add.html?" + data.goods_information_id)
}
else if (obj.event === 'procurement_information'){
data.source_table = "goods_information"
data.source_id = data.goods_information_id
data.source_user_id = use_id
sessionStorage.setItem('data', JSON.stringify(data))
//window.location.href = "../procurement_information/view_add.html?"
layopen_dateil("../procurement_information/view_add.html?")
}
else if (obj.event === 'storage_record'){
data.source_table = "goods_information"
data.source_id = data.goods_information_id
data.source_user_id = use_id
sessionStorage.setItem('data', JSON.stringify(data))
//window.location.href = "../storage_record/view_add.html?"
layopen_dateil("../storage_record/view_add.html?")
}
else if (obj.event === 'outbound_record'){
data.source_table = "goods_information"
data.source_id = data.goods_information_id
data.source_user_id = use_id
sessionStorage.setItem('data', JSON.stringify(data))
//window.location.href = "../outbound_record/view_add.html?"
layopen_dateil("../outbound_record/view_add.html?")
}
else if (obj.event === 'inventory_records'){
data.source_table = "goods_information"
data.source_id = data.goods_information_id
data.source_user_id = use_id
sessionStorage.setItem('data', JSON.stringify(data))
//window.location.href = "../inventory_records/view_add.html?"
layopen_dateil("../inventory_records/view_add.html?")
}
else if (obj.event === 'price_adjustment_record'){
data.source_table = "goods_information"
data.source_id = data.goods_information_id
data.source_user_id = use_id
sessionStorage.setItem('data', JSON.stringify(data))
//window.location.href = "../price_adjustment_record/view_add.html?"
layopen_dateil("../price_adjustment_record/view_add.html?")
}
});
//下拉框
async function initss(url, id, ff) {
// 拿到单选框的父级节点
var select = document.querySelector("#"+id)
var op1 = document.createElement('option')
select.appendChild(op1)
// 收集数据 长度
var count
// 收集数据 数组
var arr = []
let {data: res} = await axios.get(url)
count = res.result.count
arr = res.result.list
for (var i = 0; i < arr.length; i++) {
// 创建节点
var op = document.createElement('option')
// 给节点赋值
op.innerHTML = arr[i][ff]
op.value = arr[i][ff]
// 新增/Add节点
select.appendChild(op)
layui.form.render('select')
}
}
initss(BaseUrl + '/api/classification_of_goods/get_list?', "classification_of_goods", "classification_of_goods")
let classification_of_goods
layui.form.on('select(classification_of_goods)', function (data) {
request['classification_of_goods'] = data.elem[data.elem.selectedIndex].text
});
// 请求参数:
let request = {
like: 0, size: 10, page: 1,
'warehouse_name': '',
'name_of_goods': '',
'classification_of_goods': '',
'storage_location': '',
}
if (user_group != "管理员") {
request['orderby'] = 'create_time desc'
if (sqlwhere){
request['sqlwhere'] = sqlwhere
}
}
// <span>重置</span>/Reset参数
let resetName = data_data
// 下拉框的<span>重置</span>/Reset参数
let resetSelect = []
//下拉框<span>重置</span>/Reset参数
fun('goods_information', BaseUrl + '/api/goods_information/del', 'goods_information_id', request, resetName, resetSelect )
})
</script>
</html>
分析以上代码哪些是查询功能,不要自己写