Browse Source

修改审批

lwx_dev
erdanergou 3 years ago
parent
commit
1c07d44156
  1. 284
      target/classes/static/js/stockTaking/stockTakingForLocation_mobile.js
  2. 481
      target/classes/static/js/stockTaking/stockTakingForMaterial_mobile.js
  3. 358
      target/classes/templates/pages/authorization/depositoryOpen.html
  4. 199
      target/classes/templates/pages/notice/notice-out_mobile.html
  5. 197
      target/classes/templates/pages/notice/notice-out_user_mobile.html
  6. 474
      target/classes/templates/pages/self/message.html
  7. 236
      target/classes/templates/pages/self/userAuthorityMenus.html
  8. 148
      target/classes/templates/pages/stockTaking/stockTakingDetail.html
  9. 273
      target/classes/templates/pages/stockTaking/stockTakingInfoForInventory.html
  10. 445
      target/classes/templates/pages/stockTaking/stockTaking_mobile.html
  11. 111
      target/classes/templates/pages/user/userInfo.html

284
target/classes/static/js/stockTaking/stockTakingForLocation_mobile.js

@ -0,0 +1,284 @@
// 用于扫描条形码或二维码
function scanCode(obj) {
}
// 用于计算盘点结果
function calculateForLocation(obj) {
}
function updateFlowShowForLocation() {
}
layui.use(['form', 'step', 'flow', 'inputTag'], function () {
var $ = layui.$,
form = layui.form,
flow = layui.flow,
inputTag = layui.inputTag,
dropdown = layui.dropdown, //下拉菜单
step = layui.step;
departmentManagerIdForLocation = $("#departmentManagerIdForLocation").val();
let takingPre = 0;
let tagData = [];
let tempData = $("#departmentManagerForLocation").val().split(",");
$.each(tempData, function (index, item) {
if (item !== "") {
tagData.push(item)
}
});
$("#departmentManagerForLocation").val("");
let tagLabel1 = inputTag.render({
elem: '#departmentManagerForLocation',
data: tagData,//初始值
removeKeyNum: 8,//删除按键编号 默认,BackSpace 键
createKeyNum: 13,//创建按键编号 默认,Enter 键
onChange: function (data, value, type, index) {
if (type === "remove") {
let split = departmentManagerIdForLocation.split(",");
split.splice(index, 1);
departmentManagerIdForLocation = split.toString();
$("#departmentManagerIdForLocation").val(departmentManagerIdForLocation);
}
}
});
// 用于打开负责人树形菜单
$("#selectdepartmentManagerForLocation").on('click', function () {
layer.open({
type: 2,
title: '弹窗内容',
skin: 'layui-layer-rim',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'],
move: '.layui-layer-title',
fixed: false,
content: '/selectManager?type=Location',
end: function () {
departmentManagerIdForLocation = $("#departmentManagerIdForLocation").val();
tagLabel1.createItem();
},
success: function (layero, index) {
var children = layero.children();
var content = $(children[1]);
var iframeChildren = $(content.children());
content.css('height', '100%');
iframeChildren.css('height', '100%');
}
});
});
// 扫码盘点位置
scanCode = function () {
parent.wx.scanQRCode({
desc: 'scanQRCode desc',
needResult: 1, // 默认为0,扫描结果由企业微信处理,1则直接返回扫描结果,
scanType: ["qrCode", "barCode"], // 可以指定扫二维码还是条形码(一维码),默认二者都有
success: function (res) {
// 回调
var result = res.resultStr;//当needResult为1时返回处理结果
var req = {};
req.qrCode = result;
req.codeFlag = 2;
$.ajax({
url: "/place/qywxApplicationInScanQrCode",
type: "post",
dataType: 'json',
data: JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (d) {
var data = d.data;
var flag = data["flag"];
if (flag === 0) {
// 如果没有获取到位置
layer.msg("并未查询到对应位置,请重新扫描", {
icon: 0,
time: 1000
}, function () {
depositoryId = -1;
placeId = -1;
});
} else if (flag === 1) {
// 如果获取到的是库位
var place = data["place"];
$("#placeId").val(place.id);
$("#openSonByDepository").val(place.depositoryName);
$("#depositoryId").val(place.did);
depositoryId = place.did;
placeId = place.id;
} else if (flag === 2) {
// 如果获取到的是仓库
var depository = data["depository"];
$("#placeId").val("0");
$("#openSonByDepository").val(depository.dname);
$("#depositoryId").val(depository.id);
depositoryId = depository.id;
placeId = "0";
}
updateFlowShowForLocation();
}
})
}
})
};
// 用于计算盘点结果
calculateForLocation = function (obj) {
let oldInventory = Number(obj.tr[0].childNodes[6].childNodes[0].innerText);
let nowInventory = Number(obj.value);
let number = 0;
let takingResult = '';
let takingResultString = '';
let req = {};
if ((oldInventory) > (nowInventory)) {
number = oldInventory - nowInventory;
takingResult = "Inventory_down";
takingResultString = "盘亏";
} else if ((oldInventory) < (nowInventory)) {
number = nowInventory - oldInventory;
takingResult = "Inventory_up";
takingResultString = "盘盈";
} else {
takingResult = "Inventory_normal";
takingResultString = "正常";
}
obj.tr[0].childNodes[8].childNodes[0].innerText = takingResultString;
obj.tr[0].childNodes[9].childNodes[0].innerText = number;
obj.update({takingResult: takingResult});
obj.update({takingInventory: number});
req.number = number + "";
req.takingResult = takingResult;
req.takingResultString = takingResultString;
req.id = obj.data.id + "";
req.unit = obj.tr[0].childNodes[5].childNodes[0].innerText;
req.oldInventory = oldInventory + "";
$.ajax({
url: "/stockTaking/temporaryStorageForTakingResult",
dataType: "json",
data: JSON.stringify(req),
type: "POST",
contentType: "application/json;charset=utf-8"
});
};
// 用于打开仓库树形菜单
$('#openSonByDepository').on('click', function () {
layer.open({
type: 2,
title: '弹窗内容',
skin: 'layui-layer-rim',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'],
move: '.layui-layer-title',
fixed: false,
content: '/selectDepository?type=2',
success: function (layero, index) {
var children = layero.children();
var content = $(children[1]);
var iframeChildren = $(content.children());
content.css('height', '100%');
iframeChildren.css('height', '100%');
},
end: function () {
var nowDepositoryId = $("#depositoryId").val();
var nowPlaceId = $("#placeId").val();
if (nowDepositoryId !== depositoryId || nowPlaceId !== placeId) {
// 如果重新选择盘点位置
var nowDepositoryName = $("#openSonByDepository").val();
$("#form1")[0].reset();
$("#depositoryId").val(nowDepositoryId);
$("#placeId").val(nowPlaceId);
$("#openSonByDepository").val(nowDepositoryName);
form.render();
}
if (nowDepositoryId !== null && nowDepositoryId !== "") {
depositoryId = nowDepositoryId;
placeId = nowPlaceId;
updateFlowShowForLocation();
}
}
});
});
updateFlowShowForLocation = function () {
$("#LAY_FlowForLocation").empty();
takingPre = 0;
let req = {};
req.depositoryId = depositoryId;
req.placeId = placeId;
req.size = size;
flow.load({
elem: '#LAY_FlowForLocation' //流加载容器
, done: function (page, next) { //执行下一页的回调
let result;
let lis = [];
req.page = page;
$.ajax({
url: '/material/findInventoryForStockTaking',
data: req,
type: 'get',
dataType: 'json',
contentType: "application/json;charset=utf-8",
success: function (res) {
result = res.data;
lis.push("<div class='clearfix'>");
for (let i = 0; i < result.length; i++) {
let splitInventory = result[i].splitInventory;
let keys = Object.keys(splitInventory);
let InventoryItem = "";
for (let j = 0; j < keys.length; j++) {
let key = keys[j];
let item = '<p>' + "计量单位:" + key + ";对应库存:" + splitInventory[key] + '</p>';
InventoryItem += item;
}
let brandItem ='<p>' + "物料品牌:"+result[i].mbrand + '</p>';
if(result[i].mbrand === ""){
brandItem = "";
}
lis.push('<li style="width:100%;margin-top: 10px;float:left;border: 1px solid #9999996e;"><div class="layui-card my-shadow my-card flow1" iid='+result[i].id+' pid='+result[i].pid+' onclick="showDetail(this)">' +
'<div class="layui-card-header"><h2>' + "物料名称:" + result[i].mname + '</h2></div>');
lis.push('<div class="layui-col-md4 my-info" style="margin-left: 15px; color: #999;font-size: 15px;">'
+'<p>' + "物料编码:" + result[i].mcode + '</p>'
+'<p>' + "物料型号:" + result[i].version + '</p>'
+ brandItem
+'<p>' + "所处库位:" + result[i].kingdeecode + '</p>'
+ InventoryItem
+ '</div></div></li>');
}
lis.push('</div>');
takingPre += result.length;
//执行下一页渲染,第二参数为:满足“加载更多”的条件,即后面仍有分页
//pages为Ajax返回的总页数,只有当前页小于总页数的情况下,才会继续出现加载更多
next(lis.join(''), takingPre < res.count);
}
});
}
});
};
});

481
target/classes/static/js/stockTaking/stockTakingForMaterial_mobile.js

@ -0,0 +1,481 @@
// 用于扫描条形码或二维码
function scanCode(obj) {
}
// 用于加载物料选择菜单
function selectMaterial() {
}
// 用于通过物料名称获取物料
function selectMaterialByName() {
}
// 用于编码查询
function selectCode(obj) {
}
// 用于扫描物料码
function scanCodeForMaterial() {
}
// 用于计算盘点结果
function calculateForMaterial(obj) {
}
function updateFlowShowForMaterial() {
}
// 用于展示具体库存数据
function showDetail() {
}
layui.use(['form', 'step', 'flow', 'table', 'inputTag'], function () {
var $ = layui.$,
form = layui.form,
table = layui.table,
inputTag = layui.inputTag,
dropdown = layui.dropdown, //下拉菜单
flow = layui.flow;
departmentManagerIdForMaterial = $("#departmentManagerIdForMaterial").val();
let takingPre = 0;
let tagData = [];
let tempData = $("#departmentManagerForMaterial").val().split(",");
$.each(tempData, function (index, item) {
if (item !== "") {
tagData.push(item)
}
});
$("#departmentManagerForMaterial").val("");
let tagLabel = inputTag.render({
elem: '#departmentManagerForMaterial',
data: tagData,//初始值
removeKeyNum: 8,//删除按键编号 默认,BackSpace 键
createKeyNum: 13,//创建按键编号 默认,Enter 键
onChange: function (data, value, type, index) {
if (type === "remove") {
let split = departmentManagerIdForMaterial.split(",");
split.splice(index, 1);
departmentManagerIdForMaterial = split.toString();
$("#departmentManagerIdForMaterial").val(departmentManagerIdForMaterial);
}
}
});
updateFlowShowForMaterial = function () {
$("#LAY_FlowForMaterial").empty();
takingPre = 0;
let req = {};
let mid = $("#mid").val();
req.mid = mid;
req.size = size;
if(mid !== ""){
flow.load({
elem: '#LAY_FlowForMaterial' //流加载容器
, done: function (page, next) { //执行下一页的回调
let result;
let lis = [];
req.page = page;
$.ajax({
url: '/material/findMaterialByConditionForStockTaking',
data: req,
type: 'get',
dataType: 'json',
contentType: "application/json;charset=utf-8",
success: function (res) {
result = res.data;
lis.push("<div class='clearfix'>");
for (let i = 0; i < result.length; i++) {
let splitInventory = result[i].splitInventory;
let keys = Object.keys(splitInventory);
let InventoryItem = "";
for (let j = 0; j < keys.length; j++) {
let key = keys[j];
let item = '<p>' + "计量单位:" + key + ";对应库存:" + splitInventory[key] + '</p>';
InventoryItem += item;
}
lis.push('<li style="width:100%;margin-top: 10px;float:left;border: 1px solid #9999996e;"><div class="layui-card my-shadow my-card flow1" iid='+result[i].id+' pid='+result[i].pid+' onclick="showDetail(this)">' +
'<div class="layui-card-header"><h2>' + "所处位置:" + result[i].dname + "-" + result[i].kingdeecode + '</h2></div>');
lis.push('<div class="layui-col-md4 my-info" style="margin-left: 15px; color: #999;font-size: 15px;">'
+ InventoryItem
+ '</div></div></li>');
}
lis.push('</div>');
takingPre += result.length;
//执行下一页渲染,第二参数为:满足“加载更多”的条件,即后面仍有分页
//pages为Ajax返回的总页数,只有当前页小于总页数的情况下,才会继续出现加载更多
next(lis.join(''), takingPre < res.count);
}
});
}
});
}
};
// 用于打开负责人树形菜单
$("#selectdepartmentManagerForMaterial").on('click', function () {
layer.open({
type: 2,
title: '弹窗内容',
skin: 'layui-layer-rim',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'],
move: '.layui-layer-title',
fixed: false,
content: '/selectManager?type=Material',
end: function () {
departmentManagerIdForMaterial = $("#departmentManagerIdForMaterial").val();
tagLabel.createItem();
},
success: function (layero, index) {
var children = layero.children();
var content = $(children[1]);
var iframeChildren = $(content.children());
content.css('height', '100%');
iframeChildren.css('height', '100%');
}
});
});
table.on('edit(currentTableFilterForMaterial)', function (obj) {
obj.update({stockTakingQuantity: obj.value});//修改当前行数据
calculateForMaterial(obj);
});
// 用于监听下拉菜单
table.on('tool(currentTableFilterForMaterial)', function (obj) { //注:tool 是工具条事件名,test 是 table 原始容器的属性 lay-filter="对应的值"
var data = obj.data //获得当前行数据
, layEvent = obj.event; //获得 lay-event 对应的值
if (layEvent === 'more') {
let splitInfoList = obj.data.splitInfoList;
if (splitInfoList.length > 0) {
let dropDownDataList = [];
for (var i = 0; i < splitInfoList.length; i++) {
let dropDownData = {};
dropDownData.title = splitInfoList[i].newUnit;
dropDownData.id = obj.data.id;
dropDownDataList.push(dropDownData);
}
dropdown.render({
elem: this //触发事件的 DOM 对象
, show: true //外部事件触发即显示
, data: dropDownDataList
, click: function (unit) {
this.elem[0].childNodes[0].data = unit.title;
obj.tr[0].childNodes[7].childNodes[0].innerText = obj.data.splitInventory[unit.title];
}
, align: 'right' //右对齐弹出(v2.6.8 新增)
, style: 'box-shadow: 1px 1px 10px rgb(0 0 0 / 12%);' //设置额外样式
})
}
//下拉菜单
}
});
// 用于计算盘点结果
calculateForMaterial = function (obj) {
let oldInventory = Number(obj.tr[0].childNodes[7].childNodes[0].innerText);
let nowInventory = Number(obj.value);
let number = 0;
let takingResult = '';
let takingResultString = '';
let req = {};
if ((oldInventory) > (nowInventory)) {
number = oldInventory - nowInventory;
takingResult = "Inventory_down";
takingResultString = "盘亏";
} else if ((oldInventory) < (nowInventory)) {
number = nowInventory - oldInventory;
takingResult = "Inventory_up";
takingResultString = "盘盈";
} else {
takingResult = "Inventory_normal";
takingResultString = "正常";
}
obj.tr[0].childNodes[9].childNodes[0].innerText = takingResultString;
obj.tr[0].childNodes[10].childNodes[0].innerText = number;
obj.update({takingResult: takingResult});
obj.update({takingInventory: number});
req.number = number + "";
req.takingResult = takingResult;
req.takingResultString = takingResultString;
req.id = obj.data.id + "";
req.unit = obj.tr[0].childNodes[6].childNodes[0].innerText;
req.oldInventory = oldInventory + "";
$.ajax({
url: "/stockTaking/temporaryStorageForTakingResult",
dataType: "json",
data: JSON.stringify(req),
type: "POST",
contentType: "application/json;charset=utf-8"
});
};
// 用于通过物料名称获取物料
selectMaterialByName = function (obj) {
// 输入code
var data = obj.value;
var req = {};
data = data.split(",")[0];
if (data !== "") {
req.mname = data;
let loading2 = layer.open({type: 3, shade: [0.25, '#000'], icon: 2, speed: 0});
$.ajax({
url: "/material/findMaterialByCondition",
type: "post",
dataType: 'json',
data: JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (d) {
if (d.count > 1) {
layer.msg("请点击右侧搜索确定物品",{
icon:0,
time:1000
},function () {
$("#mname").val("");
$("#mid").val("");
$("#code").val("");
$("#version").val("");
$("#mtype").val("");
$("#texture").val("");
$("#brand").val("");
layer.close(loading2);
});
return false;
} else if (d.count === 0) {
layer.msg("没有该物品,请确认输入是否正确",{
icon:0,
time:1000
},function () {
$("#mname").val("");
$("#mid").val("");
$("#code").val("");
$("#version").val("");
$("#mtype").val("");
$("#texture").val("");
$("#brand").val("");
layer.close(loading2);
});
return false;
} else {
var material = d.data[0];
$("#mname").val(material.mname);
$("#mid").val(material.mid);
$("#code").val(material.code);
$("#version").val(material.version);
$("#mtype").val(material.typeName);
$("#texture").val(material.texture);
$("#brand").val(material.brand);
form.render();
updateFlowShowForMaterial();
layer.close(loading2);
}
}
});
}
};
// 用于实现点击搜索按钮
selectMaterial = function (obj) {
var mname = $("#mname").val();
mname = mname.split(",")[0];
layer.open({
type: 2,
title: '弹窗内容',
skin: 'layui-layer-rim',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'],
content: '/selectMaterial?mname=' + mname + '&type=2',
move: '.layui-layer-title',
fixed: false,
success: function (layero, index) {
var children = layero.children();
var content = $(children[1]);
var iframeChildren = $(content.children());
content.css('height', '100%');
iframeChildren.css('height', '100%');
},
end: function () {
let mid = $("#mid").val();
if (mid !== "") {
let loading2 = layer.open({type: 3, shade: [0.25, '#000'], icon: 2, speed: 0});
$.ajax({
url: "/material/findMatrialById?mid=" + mid + "&type=out",
type: "get",
dataType: 'json',
contentType: "application/json;charset=utf-8",
success: function (d) {
var material = d.data.materialById;
$("#mid").val(material.mid);
$("#mname").val(material.mname);
$("#code").val(material.code);
$("#version").val(material.version);
$("#mtype").val(material.typeName);
$("#texture").val(material.texture);
$("#brand").val(material.brand);
layer.close(loading2);
updateFlowShowForMaterial();
form.render();
}
});
}
else{
updateFlowShowForMaterial()
}
}
});
};
// 用于实现通过编码查询物料
selectCode = function (obj) {
// 输入code
var code = obj.value;
var req = {};
req.code = code;
req.type = "out";
if (code !== "") {
let loading2 = layer.open({type: 3, shade: [0.25, '#000'], icon: 2, speed: 0});
$.ajax({
url: "/material/findMatrialByCode",
type: "get",
dataType: 'json',
data: (req),
contentType: "application/json;charset=utf-8",
success: function (d) {
var d = d.data;
if (d == null) {
layer.msg("仓库中暂无该物料", {
icon: 0,
time: 1000
}, function () {
$("#mname").val("");
$("#mid").val("");
$("#code").val("");
$("#version").val("");
$("#mtype").val("");
$("#texture").val("");
$("#brand").val("");
updateFlowShowForMaterial();
layer.close(loading2);
});
} else {
$("#mname").val(d.mname);
$("#mid").val(d.mid);
$("#version").val(d.version);
$("#mtype").val(d.typeName);
$("#texture").val(d.texture);
$("#brand").val(d.brand);
form.render();
updateFlowShowForMaterial();
layer.close(loading2);
}
}
});
}
};
scanCodeForMaterial = function () {
let wxScan = parent;
if (wxScan.wx === undefined) {
wxScan = wxScan.parent.wx;
} else {
wxScan = wxScan.wx;
}
wxScan.scanQRCode({
desc: 'scanQRCode desc',
needResult: 1, // 默认为0,扫描结果由企业微信处理,1则直接返回扫描结果,
scanType: ["qrCode", "barCode"], // 可以指定扫二维码还是条形码(一维码),默认二者都有
success: function (res) {
// 回调
var result = res.resultStr;//当needResult为1时返回处理结果
var req = {};
req.qrCode = result;
req.codeFlag = 2;
let loading2 = layer.open({type: 3, shade: [0.25, '#000'], icon: 2, speed: 0});
$.ajax({
url: "/material/qywxApplicationOutScanQrCode",
type: "post",
dataType: 'json',
data: JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (d) {
var data = d.data;
if (data === null) {
layer.msg("对于编码:" + result + ",并未发现仓库中存在对应的物料", {
icon: 0,
time: 1000 //0.5秒关闭(如果不配置,默认是3秒)
}, function () {
$("#mname").val("");
$("#mid").val("");
$("#code").val("");
$("#version").val("");
$("#mtype").val("");
$("#texture").val("");
$("#brand").val("");
updateFlowShowForMaterial();
layer.close(loading2);
})
} else {
$("#mname").val(data.mname);
$("#mid").val(data.id);
$("#code").val(data.code);
$("#version").val(data.version);
$("#mtype").val(data.typeName);
$("#texture").val(data.texture);
$("#brand").val(data.brand);
updateFlowShowForMaterial();
layer.close(loading2);
}
}
})
}
})
};
showDetail = function (obj) {
let pid = $(obj).attr("pid");
let iid = $(obj).attr("iid");
layer.open({
type: 2,
title: '盘点详情',
skin: 'layui-layer-rim',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['100%', '100%'],
content: '/stockTakingInfoForInventory?id=' + iid + '&pid='+pid,
move: '.layui-layer-title',
fixed: false
})
}
});

358
target/classes/templates/pages/authorization/depositoryOpen.html

@ -0,0 +1,358 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
<title>layui</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="/static/lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="/static/css/public.css" media="all">
<link rel="stylesheet" href="/static/lib/font-awesome-4.7.0/css/font-awesome.min.css" media="all">
</head>
<body>
<div class="layuimini-container">
<div class="layui-row">
<div class="layui-col-md8">
<div class="layui-tab" lay-filter="roleSet">
<ul class="layui-tab-title">
<li class="layui-this" tabType="person">人员</li>
<li tabType="post">岗位</li>
</ul>
<div class="layui-tab-content">
<div class="layui-tab-item layui-show">
<form class="layui-form layui-form-pane" action="">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">人员姓名</label>
<div class="layui-input-inline">
<input type="text" name="name" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">人员工号</label>
<div class="layui-input-inline">
<input type="text" name="number" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<button type="submit" class="layui-btn layui-btn-primary" lay-submit
lay-filter="data-search-btn"><i class="layui-icon"></i> 搜 索
</button>
</div>
</div>
</form>
<table class="layui-hide" id="currentTableForUser"
lay-filter="currentTableFilterForUser"></table>
</div>
<div class="layui-tab-item">
<div id="postTree" class="demo-tree"></div>
</div>
</div>
</div>
</div>
<div class="layui-col-md4">
<div id="depositoryTree" class="demo-tree"></div>
<button type="button" class="layui-btn layui-btn-primary layui-border-blue" onclick="Impower()">授权</button>
</div>
</div>
</div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script>
function Impower() {
}
// 用于标志是否为第一次提交
let flagForForm = false;
layui.use(['form', 'layer', 'tree', 'element', 'table'], function () {
var $ = layui.jquery,
form = layui.form,
tree = layui.tree,
element = layui.element,
table = layui.table,
layer = layui.layer;
let tabType = "person";
let depositoryTree;
let postTree;
element.on('tab(roleSet)', function (data) {
tabType = $(this).attr("tabType");
if (tabType === "post") {
$.ajax({
url: "/company/getOrgAndPostThree",
type: 'get',
dataType: 'json',
contentType: "application/json;charset=utf-8",
beforeSend: function () {
},
success: function (d) {
var data2 = d.data;
postTree.reload({
data: data2
});
},
});
} else {
table.reload('currentTableForUser', {
url: '/sys/findUsers',
page: {
curr: 1
},
}, 'data');
}
});
table.render({
elem: '#currentTableForUser',
url: '/sys/findUsers',
method: "POST",
parseData: function (res) { //res 即为原始返回的数据
return {
"status": res.status, //解析接口状态
"message": res.statusInfo.message, //解析提示文本
"count": res.count, //解析数据长度
"data": res.data //解析数据列表
};
},
height: 'full-255',//固定高度-即固定表头固定第一行首行
request: {
pageName: 'page', //页码的参数名称,默认:page
limitName: 'size' //每页数据量的参数名,默认:limit
},
response: {
statusName: 'status' //规定数据状态的字段名称,默认:code
, statusCode: 200 //规定成功的状态码,默认:0
, msgName: 'message' //规定状态信息的字段名称,默认:msg
, countName: 'count' //规定数据总数的字段名称,默认:count
, dataName: 'data' //规定数据列表的字段名称,默认:data
},
cols: [
[
{type: "checkbox", width: 50},
{field: 'number', width: 100, title: '工号', sort: true},
{field: 'name', width: 100, title: '姓名'},
{
field: 'gender', width: 80, title: '性别', templet: function (d) {
if (d.gender === 1) {
return "男性";
} else if (d.gender === 2) {
return "女性";
} else if (d.gender === 3) {
return "中性";
} else {
return "";
}
}
},
{field: 'companyname', width: 200, title: '公司名称'},
{field: 'maindeparmentname', width: 200, title: '主部门'},
{field: 'sunmaindeparmentname', width: 200, title: '岗位'},
{field: 'workpostname', width: 200, title: '工段'},
{field: 'positionname', width: 200, title: '职位'}
]
],
limits: [10, 15, 20, 25, 50, 100],
limit: 10,
page: true,
skin: 'line',
});
table.on('row(currentTableFilterForUser)', function (obj) {
let data = obj.data; //得到当前行数据
$.ajax({
url: "/repository/findWarehouseVisiblePermission",
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
data: JSON.stringify({"type": "person", "uid": data.id}),
success: function (res) {
let data = res.data;
depositoryTree.reload();
tree.setChecked('depositoryTree', data);
}
})
});
form.on('submit(data-search-btn)', function (data) {
data = data.field;
let req = {};
if (data.name !== '') {
req.name = data.name;
}
if (data.number !== '') {
req.number = data.number;
}
//执行搜索重载
table.reload('currentTableForUser', {
url: '/sys/findUsers',
page: {
curr: 1
},
where: req
}, 'data');
return false;
});
depositoryTree = tree.render({
elem: '#depositoryTree'
, id: "depositoryTree"
, showCheckbox: true //是否显示复选框
, data: []
});
$.ajax({
url: "/repository/treeMenusOnlyDepository",
type: 'get',
dataType: 'json',
contentType: "application/json;charset=utf-8",
beforeSend: function () {
},
success: function (d) {
depositoryTree.reload({
data: d.data
});
},
});
postTree = tree.render({
elem: '#postTree'
, id: "postTree"
, showCheckbox: true //是否显示复选框
, data: []
, click: function (obj) {
let data = obj.data; //得到当前点击的节点数据
let elem = obj.elem;
if ("-1" === data.orgid) {
// 如果点击的是岗位
let postId = data.id; // 岗位id
$.ajax({
url: "/repository/findWarehouseVisiblePermission",
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
data: JSON.stringify({"type": "post", "uid": postId}),
success: function (res) {
let data = res.data;
depositoryTree.reload();
tree.setChecked('depositoryTree', data);
tree.setChecked('postTree', [postId])
}
})
}
}
});
Impower = function () {
let treeData = tree.getChecked('depositoryTree');
// 获取选中的Id
let userIds = [];
if (tabType === "person") {
let checkUserData = table.checkStatus('currentTableForUser').data;
for (let i = 0, len = checkUserData.length; i < len; i++) {
userIds.push(checkUserData[i].id);
}
} else {
userIds = getAllTreeId(tree.getChecked('postTree'));
}
// 获取选中的仓库树id
let allTreeId = getAllTreeId(treeData);
if (userIds.length > 0) {
if (!flagForForm) {
flagForForm = true;
let req = {};
req.userIds = userIds;
req.depositoryIds = allTreeId;
req.type = tabType;
req.count = userIds.length * allTreeId.length;
$.ajax({
url: "/repository/setWarehouseVisiblePermission",
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(req),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (res) {
layer.close(this.layerIndex);
if (res.status >= 300) {
layer.msg(res.statusInfo.message, {
icon: 5,
time: 1000
}, function () {
location.reload();
});//失败的表情
flagForForm = false;
} else {
layer.msg("设置成功!", {
icon: 6,//成功的表情
time: 1000
}, //1秒关闭(如果不配置,默认是3秒)
function () {
//do something
location.reload();
});
}
}
})
}
} else {
layer.msg("请选中赋权岗位或人员", {
icon: 5,
time: 1000
})
}
};
/**
* 用于获取选中树的id
* @param data
*/
function getAllTreeId(data) {
// 用于存储id
let idList = [];
for (let i = 0; i < data.length; i++) {
let temp = data[i];
if (temp.orgid !== undefined) {
if (temp.orgid === "-1") {
idList.push(temp.id);
}
} else {
if (temp.children.length === 0) {
// 如果是底层仓库
idList.push(temp.id);
}
}
if (temp.children !== null && temp.children !== undefined && temp.children.length > 0) {
// 如果存在子树
idList.push(...getAllTreeId(temp.children));
}
}
return idList;
}
});
</script>
</body>
</html>

199
target/classes/templates/pages/notice/notice-out_mobile.html

@ -0,0 +1,199 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
<title>layui</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="/static/lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="/static/css/public.css" media="all">
<link rel="stylesheet" href="/static/lib/font-awesome-4.7.0/css/font-awesome.min.css" media="all">
</head>
<body>
<div class="layuimini-container">
<div class="layuimini-main">
<div class="layui-collapse">
<div class="layui-colla-item">
<h2 class="layui-colla-title">搜索</h2>
<div class="layui-colla-content">
<div style="margin: 10px 10px 10px 10px">
<form class="layui-form layui-form-pane" action="">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">标题</label>
<div class="layui-input-inline">
<input type="text" class="layui-input" id="title" name="title"
autocomplete="off"/>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">发布日期</label>
<div class="layui-input-inline">
<input type="text" name="startDate" id="startDate" placeholder="请选择开始日期"
autocomplete="off" class="layui-input">
</div>
<div class="layui-form-mid">-</div>
<div class="layui-input-inline">
<input type="text" name="endDate" id="endDate" placeholder="请选择开始日期"
autocomplete="off"
class="layui-input">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">状态</label>
<div class="layui-input-inline">
<select name="state">
<option value="">请选择状态</option>
<option value="1">启用</option>
<option value="2">禁用</option>
</select>
</div>
</div>
<div class="layui-inline">
<button type="submit" class="layui-btn layui-btn-primary" lay-submit
lay-filter="data-search-btn"><i class="layui-icon"></i> 搜 索
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<ul class="flow-default" id="LAY_notice"></ul>
</div>
</div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script>
layui.use(['form', 'flow', 'laydate'], function () {
var $ = layui.jquery,
form = layui.form,
laydate = layui.laydate,
flow = layui.flow;
let takingPre = 0;
let size = 8;
laydate.render({
elem: '#startDate'
});
laydate.render({
elem: '#endDate'
});
flow.load({
elem: '#LAY_notice' //流加载容器
, done: function (page, next) { //执行下一页的回调
let result;
let lis = [];
$.get('/notice/findAllNotices?page=' + page + '&size=' + size, function (res) {
result = res.data;
lis.push("<div class='clearfix'>");
for (let i = 0; i < result.length; i++) {
lis.push('<li style="width:100%;margin-top: 10px;float:left;border: 1px solid #9999996e;"><div class="layui-card my-shadow my-card flow1" onclick="showDetail('
+ result[i].id + ')"><div class="layui-card-header"><h2>' + "标题:"+result[i].title + '</h2></div>');
lis.push('<div class="layui-col-md4 my-info" style="margin-left: 15px; color: #999;font-size: 15px;">'
+ '<p>' + "内容:"+result[i].content + '</p>'
+ '<p>' +"发布人:"+ result[i].userName + '</p>'
+ '</div></div></li>');
}
lis.push('</div>');
takingPre += result.length;
//执行下一页渲染,第二参数为:满足“加载更多”的条件,即后面仍有分页
//pages为Ajax返回的总页数,只有当前页小于总页数的情况下,才会继续出现加载更多
next(lis.join(''), takingPre < res.count);
});
}
});
updateFlow = function (req) {
$("#LAY_material").empty();
takingPre = 0;
flow.load({
elem: '#LAY_material' //流加载容器
, done: function (page, next) { //执行下一页的回调
let result;
let lis = [];
req.page = page;
req.size = size;
$.ajax({
url: "/material/material",
type: "get",
data: req,
dataType: "json",
contentType: "application/json;charset=utf-8",
success: function (res) {
result = res.data;
lis.push("<div class='clearfix'>");
for (let i = 0; i < result.length; i++) {
lis.push('<li style="width:100%;margin-top: 10px;float:left;border: 1px solid #9999996e;"><div class="layui-card my-shadow my-card flow1" onclick="showDetail('
+ result[i].id + ')"><div class="layui-card-header"><h2>' + "标题:"+result[i].title + '</h2></div>');
lis.push('<div class="layui-col-md4 my-info" style="margin-left: 15px; color: #999;font-size: 15px;">'
+ '<p>' + "内容:"+result[i].content + '</p>'
+ '<p>' +"发布人:"+ result[i].userName + '</p>'
+ '</div></div></li>');
}
lis.push('</div>');
takingPre += result.length;
//执行下一页渲染,第二参数为:满足“加载更多”的条件,即后面仍有分页
//pages为Ajax返回的总页数,只有当前页小于总页数的情况下,才会继续出现加载更多
next(lis.join(''), takingPre < res.count);
}
});
}
});
};
// 监听搜索操作
form.on('submit(data-search-btn)', function (data) {
var req = {};
data = data.field;
req.type = 1;
if (data.title !== '') {
req.title = data.title;
}
if (data.state !== '') {
req.state = data.state;
}
if (data.startDate !== '') {
req.startDate = data.startDate;
}
if (data.endDate !== '') {
req.endDate = data.endDate;
}
//执行搜索重载
updateFlow(req);
return false;
});
showDetail = function(data){
let req = {};
var index = layer.open({
title: '公告详情',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/noticeView?id=' + data,
});
$(window).on("resize", function () {
layer.full(index);
});
return false;
}
})
</script>
</body>
</html>

197
target/classes/templates/pages/notice/notice-out_user_mobile.html

@ -0,0 +1,197 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
<title>layui</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="/static/lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="/static/css/public.css" media="all">
<link rel="stylesheet" href="/static/lib/font-awesome-4.7.0/css/font-awesome.min.css" media="all">
</head>
<body>
<div class="layuimini-container">
<div class="layuimini-main">
<div class="layui-collapse">
<div class="layui-colla-item">
<h2 class="layui-colla-title">搜索</h2>
<div class="layui-colla-content">
<div style="margin: 10px 10px 10px 10px">
<form class="layui-form layui-form-pane" action="">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">标题</label>
<div class="layui-input-inline">
<input type="text" class="layui-input" id="title" name="title"
autocomplete="off"/>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">发布日期</label>
<div class="layui-input-inline">
<input type="text" name="startDate" id="startDate" placeholder="请选择开始日期"
autocomplete="off" class="layui-input">
</div>
<div class="layui-form-mid">-</div>
<div class="layui-input-inline">
<input type="text" name="endDate" id="endDate" placeholder="请选择开始日期"
autocomplete="off"
class="layui-input">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">状态</label>
<div class="layui-input-inline">
<select name="state">
<option value="">请选择状态</option>
<option value="1">启用</option>
<option value="2">禁用</option>
</select>
</div>
</div>
<div class="layui-inline">
<button type="submit" class="layui-btn layui-btn-primary" lay-submit
lay-filter="data-search-btn"><i class="layui-icon"></i> 搜 索
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<ul class="flow-default" id="LAY_notice"></ul>
</div>
</div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script>
layui.use(['form', 'flow', 'laydate'], function () {
var $ = layui.jquery,
form = layui.form,
laydate = layui.laydate,
flow = layui.flow;
let takingPre = 0;
let size = 8;
laydate.render({
elem: '#startDate'
});
laydate.render({
elem: '#endDate'
});
flow.load({
elem: '#LAY_notice' //流加载容器
, done: function (page, next) { //执行下一页的回调
let result;
let lis = [];
$.get('/notice/findAllNotices?page=' + page + '&size=' + size, function (res) {
result = res.data;
lis.push("<div class='clearfix'>");
for (let i = 0; i < result.length; i++) {
lis.push('<li style="width:100%;margin-top: 10px;float:left;border: 1px solid #9999996e;"><div class="layui-card my-shadow my-card flow1" onclick="showDetail('
+ result[i].id + ')"><div class="layui-card-header"><h2>' + "标题:"+result[i].title + '</h2></div>');
lis.push('<div class="layui-col-md4 my-info" style="margin-left: 15px; color: #999;font-size: 15px;">'
+ '<p>' + "内容:"+result[i].content + '</p>'
+ '<p>' +"发布人:"+ result[i].userName + '</p>'
+ '</div></div></li>');
}
lis.push('</div>');
takingPre += result.length;
//执行下一页渲染,第二参数为:满足“加载更多”的条件,即后面仍有分页
//pages为Ajax返回的总页数,只有当前页小于总页数的情况下,才会继续出现加载更多
next(lis.join(''), takingPre < res.count);
});
}
});
// 监听搜索操作
form.on('submit(data-search-btn)', function (data) {
var req = {};
data = data.field;
req.type = 1;
if (data.title !== '') {
req.title = data.title;
}
if (data.state !== '') {
req.state = data.state;
}
if (data.startDate !== '') {
req.startDate = data.startDate;
}
if (data.endDate !== '') {
req.endDate = data.endDate;
}
updateFlow();
return false;
});
updateFlow = function (req) {
$("#LAY_material").empty();
takingPre = 0;
flow.load({
elem: '#LAY_material' //流加载容器
, done: function (page, next) { //执行下一页的回调
let result;
let lis = [];
req.page = page;
req.size = size;
$.ajax({
url: "/material/material",
type: "get",
data: req,
dataType: "json",
contentType: "application/json;charset=utf-8",
success: function (res) {
result = res.data;
lis.push("<div class='clearfix'>");
for (let i = 0; i < result.length; i++) {
lis.push('<li style="width:100%;margin-top: 10px;float:left;border: 1px solid #9999996e;"><div class="layui-card my-shadow my-card flow1" onclick="showDetail('
+ result[i].id + ')"><div class="layui-card-header"><h2>' + "标题:"+result[i].title + '</h2></div>');
lis.push('<div class="layui-col-md4 my-info" style="margin-left: 15px; color: #999;font-size: 15px;">'
+ '<p>' + "内容:"+result[i].content + '</p>'
+ '<p>' +"发布人:"+ result[i].userName + '</p>'
+ '</div></div></li>');
}
lis.push('</div>');
takingPre += result.length;
//执行下一页渲染,第二参数为:满足“加载更多”的条件,即后面仍有分页
//pages为Ajax返回的总页数,只有当前页小于总页数的情况下,才会继续出现加载更多
next(lis.join(''), takingPre < res.count);
}
});
}
});
};
showDetail = function(data){
let req = {};
var index = layer.open({
title: '公告详情',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/noticeView?id=' + data,
});
$(window).on("resize", function () {
layer.full(index);
});
return false;
}
});
</script>
</body>
</html>

474
target/classes/templates/pages/self/message.html

@ -0,0 +1,474 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
<title>首页二</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="/static/lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="/static/lib/font-awesome-4.7.0/css/font-awesome.min.css" media="all">
<link rel="stylesheet" href="/static/css/public.css" media="all">
<style>
.layui-card {
border: 1px solid #f2f2f2;
border-radius: 5px;
}
.icon {
margin-right: 10px;
color: #1aa094;
}
.icon-cray {
color: #ffb800 !important;
}
.icon-blue {
color: #1e9fff !important;
}
.icon-tip {
color: #ff5722 !important;
}
.layuimini-qiuck-module {
text-align: center;
margin-top: 10px
}
.layuimini-qiuck-module a i {
display: inline-block;
width: 100%;
height: 60px;
line-height: 60px;
text-align: center;
border-radius: 2px;
font-size: 30px;
background-color: #F8F8F8;
color: #333;
transition: all .3s;
-webkit-transition: all .3s;
}
.layuimini-qiuck-module a cite {
position: relative;
top: 2px;
display: block;
color: #666;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
font-size: 14px;
}
.welcome-module {
width: 100%;
height: 210px;
}
.panel {
background-color: #fff;
border: 1px solid transparent;
border-radius: 3px;
-webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
box-shadow: 0 1px 1px rgba(0, 0, 0, .05)
}
.panel-body {
padding: 10px
}
.panel-title {
margin-top: 0;
margin-bottom: 0;
font-size: 12px;
color: inherit
}
.label {
display: inline;
padding: .2em .6em .3em;
font-size: 75%;
font-weight: 700;
line-height: 1;
color: #fff;
text-align: center;
white-space: nowrap;
vertical-align: baseline;
border-radius: .25em;
margin-top: .3em;
}
.layui-red {
color: red
}
.main_btn > p {
height: 40px;
}
.layui-bg-number {
background-color: #F8F8F8;
}
.layuimini-notice:hover, .layuimini-myTask:hover {
background: #f6f6f6;
}
.layuimini-notice, .layuimini-myTask {
padding: 7px 16px;
clear: both;
font-size: 12px !important;
cursor: pointer;
position: relative;
transition: background 0.2s ease-in-out;
}
.layuimini-notice-title, .layuimini-notice-label, .layuimini-myTask-type {
padding-right: 70px !important;
text-overflow: ellipsis !important;
overflow: hidden !important;
white-space: nowrap !important;
}
.layuimini-notice-title, .layuimini-myTask-type {
line-height: 28px;
font-size: 14px;
}
.layuimini-notice-extra, .layuimini-myTask-extra {
position: absolute;
top: 50%;
margin-top: -8px;
right: 16px;
display: inline-block;
height: 16px;
color: #999;
}
</style>
</head>
<body>
<div class="layuimini-container">
<div class="layuimini-main">
<div class="layui-row layui-col-space15">
<div class="layui-col-md4">
<div class="layui-card">
<div class="layui-card-header">
<i class="fa fa-bullhorn icon icon-tip"></i>系统公告
<i class="fa fa-chevron-right" aria-hidden="true"
style="right: 7px;top: 13px;position: absolute;" onclick="showAllNotice()"></i>
</div>
<div class="layui-card-body layui-text">
<div class="layuimini-notice" th:each="notice,iterStat:${notices}">
<input id="noticeId" style="display:none;" th:value="${notice.getId()}"/>
<div class="layuimini-notice-title" th:text="${notice.getTitle()}"></div>
<div class="layuimini-notice-extra" th:text="${notice.getTime()}"></div>
<div class="layuimini-notice-content layui-hide" th:text="${notice.getContent()}">
</div>
</div>
</div>
</div>
</div>
<div class="layui-col-md12">
<div class="layui-card">
<div class="layui-card-header">
<i class="fa fa-tasks icon-blue"></i>我的任务
<i class="fa fa-chevron-right" aria-hidden="true"
style="right: 7px;top: 13px;position: absolute;" onclick="showAllMyTask()"></i>
</div>
<div class="layui-card-body layui-text">
<div class="layuimini-myTask" th:each="myTask,iterStat:${myTaskList}">
<div class="layuimini-myTask-type" th:text="${myTask.getType()}"></div>
<div class="layuimini-myTask-extra" th:text="${myTask.getApplicantTime()}"></div>
<div class="layuimini-myTask-name " th:text="${myTask.getApplicantName()}"></div>
<div class="layuimini-myTask-id layui-hide" th:text="${myTask.getId()}"></div>
<hr/>
</div>
</div>
</div>
</div>
<div class="layui-col-md12">
<div class="layui-card">
<div class="layui-card-header">
<i class="fa fa fa-map-o icon"></i>我的申请
<i class="fa fa-chevron-right" aria-hidden="true"
style="right: 7px;top: 13px;position: absolute;" onclick="showAllMyApply()"></i>
</div>
<div class="layui-card-body layui-text">
<div class="layuimini-myApply" th:each="myTask,iterStat:${myApplyList}">
<div class="layuimini-myApply-type" th:text="${myTask.getType()}"></div>
<div class="layuimini-myApply-extra" th:text="${myTask.getApplicantTime()}"></div>
<div class="layuimini-myApply-name " th:text="${myTask.getApplicantName()}"></div>
<div class="layuimini-myApply-id layui-hide" th:text="${myTask.getId()}"></div>
<hr/>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script src="/static/js/lay-config.js?v=1.0.4" charset="utf-8"></script>
<script>
function showAllNotice() {
}
function showAllMyTask() {
}
function showAllMyApply() {
}
layui.use(['layer', 'miniTab', 'echarts'], function () {
var $ = layui.jquery,
layer = layui.layer,
miniTab = layui.miniTab,
echarts = layui.echarts;
miniTab.listen();
/**
* 查看公告信息
**/
$('body').on('click', '.layuimini-notice', function () {
var title = $(this).children('.layuimini-notice-title').text(),
noticeTime = $(this).children('.layuimini-notice-extra').text(),
content = $(this).children('.layuimini-notice-content').html(),
nid = $(this).children("#noticeId").val();
var html = '<div style="padding:15px 20px; text-align:justify; line-height: 22px;border-bottom:1px solid #e2e2e2;background-color: #2f4056;color: #ffffff">\n' +
'<div style="text-align: center;margin-bottom: 20px;font-weight: bold;border-bottom:1px solid #718fb5;padding-bottom: 5px"><h4 class="text-danger">' + title + '</h4></div>\n' +
'<div style="font-size: 12px">' + content + '</div>\n' +
'</div>\n';
parent.layer.open({
type: 1,
title: '系统公告' + '<span style="float: right;right: 1px;font-size: 12px;color: #b1b3b9;margin-top: 1px">' + noticeTime + '</span>',
area: '300px;',
shade: 0.8,
id: 'layuimini-notice',
btn: ['查看', '取消'],
btnAlign: 'c',
moveType: 1,
content: html,
success: function (layero) {
var btn = layero.find('.layui-layer-btn');
btn.find('.layui-layer-btn0').click(function () {
layer.open({
type: 2,
title: '弹窗内容',
skin: 'layui-layer-rim',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['100%', '100%'],
move: '.layui-layer-title',
fixed: false,
content: "/noticeView?id=" + nid
});
}
);
}
});
});
/**
* 查看任务信息
**/
$('body').on('click', '.layuimini-myTask', function () {
var id = $(this).children('.layuimini-myTask-id').text();
var type = $(this).children('.layuimini-myTask-type').text();
if (type === '出库请求') {
var index = layer.open({
title: '请求详情',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/application_review?id=' + id,
end: function () {
location.reload()
}
});
$(window).on("resize", function () {
layer.full(index);
});
}
else if (type === '入库请求') {
var index = layer.open({
title: '请求详情',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/application_in_review?id=' + id,
end: function () {
location.reload()
}
});
$(window).on("resize", function () {
layer.full(index);
});
}
else if (type === "库存盘点请求") {
var index = layer.open({
title: '请求详情',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/StockTakingReview?id=' + id,
end: function () {
location.reload()
}
});
$(window).on("resize", function () {
layer.full(index);
});
} else if (type === "物料出库请求") {
var index = layer.open({
title: '请求详情',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/ApplicationOutMinByDidForMobile?depositoryId=' + id + "&state=0",
end: function () {
location.reload()
}
});
$(window).on("resize", function () {
layer.full(index);
});
}
});
/**
* 查看申请信息
**/
$('body').on('click', '.layuimini-myApply', function () {
var id = $(this).children('.layuimini-myApply-id').text();
var type = $(this).children('.layuimini-myApply-type').text();
if (type === '物料出库申请') {
var index = layer.open({
title: '请求详情',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/ApplicationOutView?id=' + id,
end: function () {
location.reload()
}
});
$(window).on("resize", function () {
layer.full(index);
});
}
else if (type === '物料入库请求') {
var index = layer.open({
title: '请求详情',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/form_step_look?id=' + id,
end: function () {
location.reload()
}
});
$(window).on("resize", function () {
layer.full(index);
});
}
else if (type === "库存盘点请求") {
var index = layer.open({
title: '请求详情',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/StockTakingView?id=' + id,
end: function () {
location.reload()
}
});
$(window).on("resize", function () {
layer.full(index);
});
}
});
showAllNotice = function () {
var index = layer.open({
title: '所有公告',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/noticeAll',
});
};
showAllMyTask = function () {
layer.open({
type: 2,
title: '我的任务',
skin: 'layui-layer-rim',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['100%', '100%'],
move: '.layui-layer-title',
fixed: false,
content: '/my_task',
});
}
showAllMyApply = function () {
layer.open({
type: 2,
title: '我的申请',
skin: 'layui-layer-rim',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['100%', '100%'],
move: '.layui-layer-title',
fixed: false,
content: '/my_apply',
});
}
$('body').on('click', '[data-refresh]', function () {
location.reload();
})
});
</script>
</body>
</html>

236
target/classes/templates/pages/self/userAuthorityMenus.html

@ -0,0 +1,236 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>用户功能</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="/static/lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="/static/lib/font-awesome-4.7.0/css/font-awesome.min.css" media="all">
<link rel="stylesheet" href="/static/css/public.css" media="all">
</head>
<body>
<style>
.layui-colla-content:before, .layui-colla-content:after {
content: "";
display: block;
clear: both;
}
.layuimini-container {
background-color: #efefef;
}
.layuimini-authority-content-item a i {
background-color: #efefef;
}
.first a i {
color: #993333;
}
.second a i {
color: #6699CC;
}
.third a i {
color: #99CC33;
}
.fourthly a i {
color: #003399;
}
</style>
<div class="layuimini-container">
<div class="layuimini-main">
<div class="layuimini-authority" id="layuimini-authority">
</div>
</div>
</div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script src="/static/js/lay-config.js?v=1.0.4" charset="utf-8"></script>
<script>
layui.use(['layer', 'miniTab', 'echarts', 'element'], function () {
var $ = layui.jquery,
layer = layui.layer,
element = layui.element,
miniTab = layui.miniTab;
miniTab.listen();
/*$(function () {
$.ajax({
url: "/index/menus",
type: 'get',
dataType: 'json',
contentType: "application/json;charset=utf-8",
success: function (data) {
let menuInfo = data.menuInfo;
for (let i = 0; i < menuInfo.length; i++) {
let menuInfoElement = menuInfo[i];
if (menuInfoElement.href === '') {
let menuItem = createMenuList(menuInfoElement);
if(menuInfoElement.title.indexOf("辅助管理") !== -1){
let resultChild = '<div class="layui-collapse"> ' +
'<div class="layui-colla-item">' +
'<h2 class="layui-colla-title">' + menuInfoElement.title + '</h2>' +
'<div class="layui-colla-content layui-show" >';
resultChild += menuItem;
resultChild += '</div></div></div>';
menuItem = resultChild;
}
$("#layuimini-authority").append(menuItem);
element.render();
}
}
}
})
});
// 用于构造菜单列表
function createMenuList(data) {
// 获取子菜单
let childList = data.child;
// 如果存在子菜单
if (childList.length > 0) {
let result = '';
// 循环子菜单
for (let i = 0; i < childList.length; i++) {
let childListElement = childList[i];
if (childListElement.href.indexOf("my_")!== -1) {
continue;
}
result += createChildMenuItem(childListElement);
}
return result;
}
}
// 用于构造子菜单列表
function createChildMenuItem(data) {
// 获取当前子菜单
let childList = data.child;
// 定义返回结果
let result;
// 如果存在子菜单
if (childList !== undefined && childList !== null && childList.length > 0) {
let resultChild = '<div class="layui-collapse"> ' +
'<div class="layui-colla-item">' +
'<h2 class="layui-colla-title">' + data.title + '</h2>' +
'<div class="layui-colla-content layui-show" >';
for (let i = 0; i < childList.length; i++) {
let childMenuList = createChildMenuItem(childList[i]);
resultChild += childMenuList;
}
resultChild += '</div></div></div>';
return resultChild;
} else {
// 如果不存在子菜单
// 构造标签
let childItem_out = '<div class="layuimini-authority-content-item layuimini-qiuck-module">';
let childItem_a = '<a href="javascript:;" layuimini-content-href="' + data.href+ '" data-title="' + data.title + '" data-icon="' + data.icon + '">';
let childItem_i = '<i class="' + data.icon + '"></i>';
let childItem_cite = ' <cite>' + data.title + '</cite></a></div>';
result = childItem_out + childItem_a + childItem_i + childItem_cite;
}
return result;
}*/
$(function () {
$.ajax({
url: "/getUserAuthorization",
type: 'get',
dataType: 'json',
contentType: "application/json;charset=utf-8",
success: function (res) {
let menuList = res.data;
let menuItem = createMenuList(menuList);
$("#layuimini-authority").append(menuItem);
element.render();
}
})
});
// 用于构造菜单列表
function createMenuList(data) {
// 如果存在菜单
if (data.length > 0) {
// 定义结果
let result = '';
// 定义暂存结果
let tempItemForApplication = '';
let tempItemForAnalyse = '';
let tempItemForCreate = '';
let tempItemForSystem = '';
for (let i = 0; i < data.length; i++) {
// 遍历子菜单
let childListElement = data[i];
if (childListElement.url.indexOf("my_") !== -1) {
// 如果是我的任务,我的申请跳过
continue;
}
if (childListElement.name.indexOf("申请") !== -1) {
// 如果是申请相关操作
tempItemForApplication = createChildMenuItem(childListElement, tempItemForApplication, '业务操作','first');
} else if (childListElement.name.indexOf("查询") !== -1 || childListElement.name.indexOf("可视化") !== -1) {
// 如果是查询可视化等操作
tempItemForAnalyse = createChildMenuItem(childListElement, tempItemForAnalyse, '查询分析','second');
} else if (childListElement.name.indexOf("创建") !== -1) {
// 如果是创建相关操作
tempItemForCreate = createChildMenuItem(childListElement, tempItemForCreate, '基础设置','third');
} else if (childListElement.name.indexOf("赋权") !== -1 || childListElement.name.indexOf("发布") !== -1) {
tempItemForSystem = createChildMenuItem(childListElement, tempItemForSystem, '系统管理','fourthly');
}
if (i === data.length - 1) {
tempItemForApplication += "</div></div></div>";
tempItemForAnalyse += "</div></div></div>";
tempItemForCreate += "</div></div></div>";
tempItemForSystem += "</div></div></div>";
result = tempItemForApplication+tempItemForAnalyse+tempItemForCreate+tempItemForSystem;
}
}
return result;
}
}
// 用于构造子菜单按钮
function createChildMenuItem(data, result, title,classItem) {
if (result.indexOf("layui-collapse") === -1) {
// 如果没有面板
let resultChild = '<div class="layui-collapse '+classItem+'"> ' +
'<div class="layui-colla-item">' +
'<h2 class="layui-colla-title">' + title + '</h2>' +
'<div class="layui-colla-content layui-show" >';
result += resultChild;
}
// 构造标签
let childItem_out = '<div class="layuimini-authority-content-item layuimini-qiuck-module">';
let childItem_a = '<a href="javascript:;" layuimini-content-href="' + data.url + '" data-title="' + data.name + '" data-icon="' + data.icon + '">';
let childItem_i = '<i class="' + data.icon + '"></i>';
let childItem_cite = ' <cite>' + data.name + '</cite></a></div>';
result += childItem_out + childItem_a + childItem_i + childItem_cite;
return result;
}
$('body').on('click', '[data-refresh]', function () {
location.reload();
})
});
</script>
</body>
</html>

148
target/classes/templates/pages/stockTaking/stockTakingDetail.html

@ -0,0 +1,148 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
<title>仓库盘点</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="/static/lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="/static/css/public.css" media="all">
<link rel="stylesheet" href="/static/js/lay-module/step-lay/step.css" media="all">
<link rel="stylesheet" href="/static/css/inputTag.css">
<link rel="stylesheet" href="/static/lib/font-awesome-4.7.0/css/font-awesome.min.css" media="all">
<style>
.inputdiv {
display: flex;
background-color: #fff;
height: 38px;
line-height: 38px;
border: 1px solid rgb(238, 238, 238);
}
.layui-card-body {
padding: 0px;
}
.layui-form-label {
padding: 9px 0px;
text-align: left;
}
.layui-input-block {
margin-left: 80px;
}
.layui-form-select {
width: 100%;
height: 38px;
}
.lay-step {
display: none;
}
</style>
</head>
<body>
<div class="layuimini-container">
<div class="layuimini-main">
<div class="layui-fluid">
</div>
</div>
</div>
<script id="changeUnit" type="text/html">
<a class="layui-btn layui-btn-xs" lay-event="more">{{d.unit}}<i class="layui-icon layui-icon-down"></i></a>
</script>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script src="/static/js/lay-config.js?v=1.0.4" charset="utf-8"></script>
<script src="/static/js/stockTaking/stockTakingForMaterial.js" charset="utf-8"></script>
<script>
layui.use(['form', 'step'], function () {
var $ = layui.$,
step = layui.step,
form = layui.form;
// 用于分步表单加载
step.render({
elem: '#stepForm',
filter: 'stepForm',
width: '100%', //设置容器宽度
height: '900px',
stepItems: [{
title: '填写信息'
}, {
title: '提交成功'
}]
});
// 用于提交盘点情况
form.on('submit(formStep)', function (data) {
if(!flagForForm){
flagForForm = true;
data = data.field;
data.depositoryId = depositoryId;
data.placeId = placeId;
let submitType = this.getAttribute("submitType");
if ("Material" === submitType) {
data.departmentManager = departmentManagerIdForMaterial;
} else if ("Location" === submitType) {
data.departmentManager = departmentManagerIdForLocation;
}
$.ajax({
url: "/stockTaking/submitStockTaking",
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(data),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.msg("申请提交成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
}, function () {
step.next('#stepForm');
});
},
complete: function () {
layer.close(this.layerIndex);
}
});
}
});
form.on('submit(formStep2)', function (data) {
step.next('#stepForm');
return false;
});
$('.pre').click(function () {
step.pre('#stepForm');
});
$('.next').click(function () {
step.next('#stepForm');
});
$('body').on('click', '[data-refresh]', function () {
location.reload();
})
})
</script>
</body>
</html>

273
target/classes/templates/pages/stockTaking/stockTakingInfoForInventory.html

@ -0,0 +1,273 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
<title>仓库盘点</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="/static/lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="/static/css/public.css" media="all">
<link rel="stylesheet" href="/static/js/lay-module/step-lay/step.css" media="all">
<link rel="stylesheet" href="/static/lib/font-awesome-4.7.0/css/font-awesome.min.css" media="all">
</head>
<body>
<div class="layuimini-container">
<div class="layuimini-main">
<div class="layui-carousel" id="stepForm" lay-filter="stepForm" style="margin: 0 auto; ">
<div carousel-item style="overflow: inherit">
<div>
<form class="layui-form"
style="margin: 0 auto;max-width: 700px;"
lay-filter="form1">
<div class="layui-card-body" style="padding-right: 0px">
<div class="layui-form-item">
<label class="layui-form-label">盘点位置:</label>
<div class="layui-input-block">
<input type="text" class="layui-input"
th:value="${record.getDepositoryCode()}"
id="openSonByDepository" readonly
lay-verify="required"/>
<input type="text" name="depositoryId" class="layui-input"
th:value="${record.getDepositoryId()}"
id="depositoryId"
style="display: none" lay-verify="required"/>
<input type="text" name="placeId" class="layui-input" th:value="${record.getPid()}"
id="placeId"
style="display: none" lay-verify="required"/>
<input type="text" name="mpId" class="layui-input" th:value="${mpId}"
id="mpId"
style="display: none" lay-verify="required"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">物料名称:</label>
<div class="layui-input-block">
<input type="text" class="layui-input"
th:value="${record.getMname()}"
id="mname" readonly/>
<input type="text" name="mid" class="layui-input" th:value="${record.getId()}"
id="mid"
style="display: none" lay-verify="required"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">物料编码:</label>
<div class="layui-input-block">
<input type="text" class="layui-input"
th:value="${record.getCode()}"
id="mcode" readonly/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">物料品牌:</label>
<div class="layui-input-block">
<input type="text" class="layui-input"
th:value="${record.getBrand()}"
id="mbrand" readonly/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">物料型号:</label>
<div class="layui-input-block">
<input type="text" class="layui-input"
th:value="${record.getVersion()}"
id="mversion" readonly/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">计量单位:</label>
<div class="layui-input-block">
<select id="unit" name="unit">
<option th:value="${record.getUnit()}" th:text="${record.getUnit()}"></option>
<option th:each="splitInfo,iterStar:${record.getSplitInfoList()}"
th:value="${splitInfo?.getNewUnit()}"
th:text="${splitInfo?.getNewUnit()}"></option>
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">库存数量:</label>
<div class="layui-input-block">
<input type="text" class="layui-input"
th:value="${record.getQuantity()}"
id="quantity" readonly/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">盘点数量:</label>
<div class="layui-input-block">
<input type="number" class="layui-input" id="newInventory"
onblur="calculateForMaterial(this)"
name="newInventory"
lay-verify="required"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">盘点结果:</label>
<div class="layui-input-block">
<input name="takingResult" id="result" class="layui-input"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">盈亏数量:</label>
<div class="layui-input-block">
<input type="number" class="layui-input"
readonly
id="Inventory_number"
name="inventory" lay-verify="required"/>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script src="/static/js/lay-config.js?v=1.0.4" charset="utf-8"></script>
<script>
layui.use(['form', 'flow', 'step', 'element'], function () {
var $ = layui.$,
step = layui.step,
element = layui.element,
form = layui.form;
// 用于分步表单加载
step.render({
elem: '#stepForm',
filter: 'stepForm',
width: '100%', //设置容器宽度
stepWidth: '750px',
height: '1050px',
stepItems: []
});
$(function() {
$.ajax({
url: "/stockTaking/getTemporaryStorageForTakingResult",
type: "post",
dataType: 'json',
data: JSON.stringify({"mpId":$("#mpId").val()}),
contentType: "application/json;charset=utf-8",
success: function (res) {
let data = res.data;
if(data !== null){
let nowUnit = $("#unit").val();
let stockUnit = data.unit;
if(nowUnit !== stockUnit){
$("#unit").val(stockUnit);
findInventoryForUnit({});
form.render();
}
$("#Inventory_number").val(data.number);
$("#result").val(data.takingResultString);
let takingResult = data.takingResult;
if("Inventory_up" === takingResult){
// 如果盘盈
$("#newInventory").val(Number(data.oldInventory) + Number(data.number));
}else if("Inventory_down" === takingResult){
// 如果盘亏
$("#newInventory").val(Number(data.oldInventory) - Number(data.number));
}else{
// 如果正常
$("#newInventory").val(0);
}
}
}
});
});
form.on('select()', function (data) {
var id = data.elem.id; //得到select原始DOM对象id
var req = {};
if (id.includes("producedDate")) {
req.mid = $("#mid").val();
req.producedDate = data.value;
$.ajax({
url: "/material/findQuantityByProducedDate",
type: "post",
dataType: 'json',
data: JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (d) {
$("#quantity").val(d.data)
}
});
} else if (id.includes("unit")) {
findInventoryForUnit(req);
}
});
findInventoryForUnit = function(req){
req.mid = $("#mid").val();
req.unit = $("#unit").val();
req.placeId = $("#placeId").val();
$.ajax({
url: "/material/findQuantityByUnit",
type: "post",
dataType: 'json',
data: JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (d) {
$("#quantity").val(d.data);
}
});
}
// 用于计算盘点结果
calculateForMaterial = function (obj) {
let oldInventory = Number($("#quantity").val());
let nowInventory = Number(obj.value);
let number = 0;
let takingResult = '';
let takingResultString = '';
let req = {};
if ((oldInventory) > (nowInventory)) {
number = oldInventory - nowInventory;
takingResult = "Inventory_down";
takingResultString = "盘亏";
} else if ((oldInventory) < (nowInventory)) {
number = nowInventory - oldInventory;
takingResult = "Inventory_up";
takingResultString = "盘盈";
} else {
takingResult = "Inventory_normal";
takingResultString = "正常";
}
$("#result").val(takingResultString);
$("#Inventory_number").val(number);
req.number = number + "";
req.takingResult = takingResult;
req.takingResultString = takingResultString;
req.id = $("#mpId").val();
req.unit = $("#unit").val();
req.oldInventory = oldInventory + "";
$.ajax({
url: "/stockTaking/temporaryStorageForTakingResult",
dataType: "json",
data: JSON.stringify(req),
type: "POST",
contentType: "application/json;charset=utf-8"
});
};
$('body').on('click', '[data-refresh]', function () {
location.reload();
})
});
</script>
</body>
</html>

445
target/classes/templates/pages/stockTaking/stockTaking_mobile.html

@ -0,0 +1,445 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
<title>仓库盘点</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="/static/lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="/static/css/public.css" media="all">
<link rel="stylesheet" href="/static/js/lay-module/step-lay/step.css" media="all">
<link rel="stylesheet" href="/static/css/inputTag.css">
<link rel="stylesheet" href="/static/lib/font-awesome-4.7.0/css/font-awesome.min.css" media="all">
<style>
.inputdiv {
display: flex;
background-color: #fff;
height: 38px;
line-height: 38px;
border: 1px solid rgb(238, 238, 238);
}
.layui-card-body {
padding: 0px;
}
.layui-form-label {
padding: 9px 0px;
text-align: left;
}
.layui-input-block {
margin-left: 80px;
}
.layui-form-select {
width: 100%;
height: 38px;
}
.lay-step {
display: none;
}
</style>
</head>
<body>
<div class="layuimini-container">
<div class="layuimini-main">
<div class="layui-fluid">
<div class="layui-tab">
<ul class="layui-tab-title" style="text-align: center">
<li class="layui-this">物料盘点</li>
<li class="layui-this">位置盘点</li>
</ul>
<div class="layui-tab-content">
<div class="layui-tab-item layui-show">
<div class="layui-carousel" id="stepForm" lay-filter="stepForm" style="margin: 0 auto; ">
<div carousel-item style="overflow: inherit">
<div>
<form class="layui-form"
style="margin: 0 auto;max-width: 700px;"
lay-filter="form1" id="form1">
<div class="layui-card-body" id="takingHeader" style="padding-right: 0px">
<div class="layui-form-item">
<label class="layui-form-label" style="height: 40px;">物料名称:</label>
<div class="layui-input-block" style="margin: 0px;">
<div class="inputdiv">
<input type="text" placeholder="请选择物料" class="layui-input"
style="border-style: none"
id="mname"
onblur="selectMaterialByName(this)"
lay-verify="required"/>
<i class="layui-icon layui-icon-search"
style="display: inline;"
id="selectMaterial" onclick="selectMaterial(this)"></i>
</div>
<input type="text" name="mid" class="layui-input" id="mid"
style="display: none" lay-verify="required"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" style="height: 40px;">物料编码:</label>
<div class="layui-input-block" style="margin: 0px;">
<div class="inputdiv">
<input id="code" name="code" type="text"
placeholder="请填写入物料编码"
value=""
onblur="selectCode(this)"
class="layui-input" lay-verify="required"
style="border-style: none">
<img src="/static/images/search.ico" height="16" width="16"
id="qrCodeImg"
style="margin-top: 10px"
onclick="scanCodeForMaterial(this)">
<input id="qrCode" name="qrCode" type="text"
style="display:none;">
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" style="height: 40px;">物料型号</label>
<div class="layui-input-block">
<input type="text" name="version" id="version"
autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" style="height: 40px;">物料品牌</label>
<div class="layui-input-block">
<input type="text" name="brand" id="brand"
autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" style="height: 40px;">物料类型</label>
<div class="layui-input-block">
<input type="text" name="mtype" id="mtype"
autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" style="height: 40px;">物料材质</label>
<div class="layui-input-block">
<input type="text" name="texture" id="texture"
autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" style="height: 40px;">负责人:</label>
<div class="layui-input-block">
<div class="fairy-tag-container" style="border-style: none">
<div class="inputdiv">
<input type="text" id="departmentManagerForMaterial"
style="display: none"
th:value="${departmentHeadName}"/>
<i class="layui-icon layui-icon-search"
style="display: inline;right: 0;position: absolute;"
id="selectdepartmentManagerForMaterial"></i>
<input type="text" id="departmentManagerIdForMaterial"
name="departmentManagerId"
th:value="${departmentHeadId}"
class="layui-input" style="display: none"
lay-verify="required"/>
</div>
</div>
</div>
</div>
</div>
</form>
<ul class="flow-default" id="LAY_FlowForMaterial"></ul>
<!-- 提交按钮-->
<div class="layui-form-item" style="margin-top: 10px;">
<div class="layui-input-block">
<button type="button" class="layui-btn layui-btn-normal layui-btn-lg"
submitType="Material"
lay-submit
lay-filter="formStep">
&emsp;提交&emsp;
</button>
</div>
</div>
</div>
<!-- 下一步-->
<div>
<form class="layui-form" style="margin: 0 auto;max-width: 460px;padding-top: 40px;">
<div style="text-align: center;margin-top: 90px;">
<i class="layui-icon layui-circle"
style="color: white;font-size:30px;font-weight:bold;background: #52C41A;padding: 20px;line-height: 80px;">&#xe605;</i>
<div style="font-size: 24px;color: #333;font-weight: 500;margin-top: 30px;">
提交成功
</div>
<div style="text-align: center;margin-top: 50px;">
<button class="layui-btn next">再填写一次</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<div class="layui-tab-item">
<div class="layui-carousel" id="stepForm1" lay-filter="stepForm" style="margin: 0 auto; ">
<div carousel-item style="overflow: inherit">
<div>
<div class="layui-card">
<form class="layui-form"
style="margin: 0 auto;max-width: 700px;"
lay-filter="form1">
<div class="layui-card-body" style="padding-right: 0px">
<div class="layui-form-item">
<label class="layui-form-label" style="height: 40px;">盘点位置:</label>
<div class="layui-input-block">
<div class="inputdiv">
<input type="text" placeholder="请选择盘点位置" class="layui-input"
style="border-style: none"
id="openSonByDepository" readonly
lay-verify="required"/>
<img src="/static/images/search.ico" height="16" width="16"
id="scanCodeImg"
style="margin-top: 10px" onclick="scanCode(this)">
</div>
<input type="text" name="depositoryId" class="layui-input"
id="depositoryId"
style="display: none" lay-verify="required"/>
<input type="text" name="placeId" class="layui-input"
id="placeId"
style="display: none" lay-verify="required"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" style="height: 40px;">负责人:</label>
<div class="layui-input-block">
<div class="fairy-tag-container" style="border-style: none">
<div class="inputdiv">
<input type="text" id="departmentManagerForLocation"
style="display: none"
th:value="${departmentHeadName}"/>
<i class="layui-icon layui-icon-search"
id="selectdepartmentManagerForLocation"
style="display: inline;right: 0;position: absolute;"
></i>
<input type="text" id="departmentManagerIdForLocation"
name="departmentManagerId"
th:value="${departmentHeadId}"
class="layui-input" style="display: none"
lay-verify="required"/>
</div>
</div>
</div>
</div>
</div>
</form>
<div class="layui-tab">
<div class="layui-tab-content">
<ul class="flow-default" id="LAY_FlowForLocation"></ul>
<!-- 提交按钮-->
<div class="layui-form-item" style="margin-top: 10px;">
<div class="layui-input-block">
<button type="button"
class="layui-btn layui-btn-normal layui-btn-lg"
submitType="Location"
lay-submit
lay-filter="formStep">
&emsp;提交&emsp;
</button>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- 下一步-->
<div>
<form class="layui-form"
style="margin: 0 auto;max-width: 460px;padding-top: 40px;">
<div style="text-align: center;margin-top: 90px;">
<i class="layui-icon layui-circle"
style="color: white;font-size:30px;font-weight:bold;background: #52C41A;padding: 20px;line-height: 80px;">&#xe605;</i>
<div style="font-size: 24px;color: #333;font-weight: 500;margin-top: 30px;">
提交成功
</div>
<div style="text-align: center;margin-top: 50px;">
<button class="layui-btn next">再填写一次</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script id="changeUnit" type="text/html">
<a class="layui-btn layui-btn-xs" lay-event="more">{{d.unit}}<i class="layui-icon layui-icon-down"></i></a>
</script>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script src="/static/js/lay-config.js?v=1.0.4" charset="utf-8"></script>
<script src="/static/js/stockTaking/stockTakingForMaterial_mobile.js" charset="utf-8"></script>
<script src="/static/js/stockTaking/stockTakingForLocation_mobile.js" charset="utf-8"></script>
<script>
// 用于存储当前选择的盘点位置
let depositoryId;
let placeId;
// 用于存储当前选择的负责人
let departmentManagerIdForMaterial;
// 用于存储当前选择的负责人
let departmentManagerIdForLocation;
// 用于标志是否为第一次提交
let flagForForm = false;
let flagForForm1 = false;
// 用于控制每次展示数目
let size = 8;
layui.use(['form', 'step', 'flow', 'table', 'inputTag'], function () {
var $ = layui.$,
form = layui.form,
table = layui.table,
inputTag = layui.inputTag,
dropdown = layui.dropdown, //下拉菜单
step = layui.step;
// 用于分步表单加载
step.render({
elem: '#stepForm',
filter: 'stepForm',
width: '100%', //设置容器宽度
height: '900px',
stepItems: [{
title: '填写信息'
}, {
title: '提交成功'
}]
});
// 用于分步表单加载
step.render({
elem: '#stepForm1',
filter: 'stepForm',
width: '100%', //设置容器宽度
height: '900px',
stepItems: [{
title: '填写信息'
}, {
title: '提交成功'
}]
});
// 用于提交盘点情况
form.on('submit(formStep)', function (data) {
if (!flagForForm) {
flagForForm = true;
data = data.field;
data.depositoryId = depositoryId;
data.placeId = placeId;
let submitType = this.getAttribute("submitType");
if ("Material" === submitType) {
data.departmentManager = departmentManagerIdForMaterial;
} else if ("Location" === submitType) {
data.departmentManager = departmentManagerIdForLocation;
}
$.ajax({
url: "/stockTaking/submitStockTaking",
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(data),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.msg("申请提交成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
}, function () {
step.next('#stepForm');
});
},
complete: function () {
layer.close(this.layerIndex);
}
});
}
});
form.on('submit(formStep2)', function (data) {
step.next('#stepForm');
return false;
});
// 用于提交盘点情况
form.on('submit(formStep3)', function (data) {
if (!flagForForm1) {
flagForForm1 = true;
data = data.field;
data.params = params;
data.departmentManagerId = departmentManagerIdForLocation;
data.depositoryId = depositoryId;
data.placeId = placeId;
$.ajax({
url: "/stockTaking/addStockTakingRecord",
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(data),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.msg("申请提交成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
}, function () {
step.next('#stepForm');
});
},
complete: function () {
layer.close(this.layerIndex);
}
});
}
});
$('.pre').click(function () {
step.pre('#stepForm');
});
$('.next').click(function () {
step.next('#stepForm');
});
$('body').on('click', '[data-refresh]', function () {
location.reload();
})
})
</script>
</body>
</html>

111
target/classes/templates/pages/user/userInfo.html

@ -0,0 +1,111 @@
<!DOCTYPE html>
<html lang="zh-CN" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>后台管理-登陆</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta http-equiv="Access-Control-Allow-Origin" content="*">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="format-detection" content="telephone=no">
<link rel="stylesheet" href="/static/lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="/static/lib/font-awesome-4.7.0/css/font-awesome.min.css" media="all">
<link rel="stylesheet" href="/static/css/public.css">
<!--[if lt IE 9]>
<script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
<script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="layui-container">
<div class="admin-login-background">
<div class="layui-form login-form">
<form class="layui-form layui-form-pane" action="">
<div style="text-align: center" onclick="showInfo()">
<img th:attr="src=${userInfo.getIcon()}" alt="头像" class="userInfo_icon">
</div>
<div style="text-align: center;margin-top: 20px">
<span id="number" th:text="${userInfo.getNumber()}" style="font-size: x-large"></span>
</div>
<div style="text-align: center;margin-top: 20px">
<span id="maindeparmentname" th:text="${userInfo.getMaindeparmentname()}"
style="font-size: x-large"></span>
</div>
<div style="text-align: center;margin-top: 20px">
<span id="name" th:text="${userInfo.getName()}" style="font-size: x-large"></span>
</div>
<div class="layui-form-item" style="margin-top: 20%">
<button class="layui-btn layui-btn layui-btn-normal layui-btn-fluid" onclick="loginOut()">退出
</button>
</div>
</form>
</div>
</div>
</div>
<script src="/static/lib/jquery-3.4.1/jquery-3.4.1.min.js" charset="utf-8"></script>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script>
function loginOut() {
}
function showInfo() {
}
layui.use(['layer', 'form'], function () {
var form = layui.form,
$ = layui.jquery,
layer = layui.layer;
loginOut = function () {
$.ajax({
url: "/loginOut",
type: 'get',
dataType: 'json',
contentType: "application/json;charset=utf-8",
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
layer.msg(data.statusInfo.message, function () {
window.location = '/login';
});
}
});
};
showInfo = function () {
layer.open({
type: 2,
title: '个人信息',
skin: 'layui-layer-rim',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['100%', '100%'],
content: '/account_look',
move: '.layui-layer-title',
fixed: false,
success: function (layero, index) {
var children = layero.children();
var content = $(children[1]);
var iframeChildren = $(content.children());
content.css('height', '100%');
iframeChildren.css('height', '100%');
}
})
}
$('body').on('click', '[data-refresh]', function () {
location.reload();
})
});
</script>
</body>
</html>
Loading…
Cancel
Save