添加序列号功能

This commit is contained in:
cjl
2019-01-23 13:58:53 +08:00
parent fd76355f3a
commit 2bd1d9982d
29 changed files with 1787 additions and 347 deletions

View File

@@ -0,0 +1,453 @@
<!DOCTYPE html>
<html>
<head>
<title>序列号</title>
<meta charset="utf-8">
<!-- 指定以IE8的方式来渲染 -->
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8"/>
<link rel="shortcut icon" href="/images/favicon.ico" type="image/x-icon"/>
<script type="text/javascript" src="/js/jquery-1.8.0.min.js"></script>
<link rel="stylesheet" type="text/css" href="/js/easyui-1.3.5/themes/default/easyui.css"/>
<link rel="stylesheet" type="text/css" href="/js/easyui-1.3.5/themes/icon.css"/>
<link type="text/css" rel="stylesheet" href="/css/common.css"/>
<link type="text/css" rel="stylesheet" href="/css/material.css"/>
<script type="text/javascript" src="/js/easyui-1.3.5/jquery.easyui.min.js"></script>
<script type="text/javascript" src="/js/easyui-1.3.5/locale/easyui-lang-zh_CN.js"></script>
<script type="text/javascript" src="/js/common/outlook_in.js"></script>
<script type="text/javascript" src="/js/common/common.js"></script>
</head>
<body>
<!-- 查询 -->
<div id="searchPanel" class="easyui-panel" style="padding:10px;" title="查询窗口" iconCls="icon-search" collapsible="true"
closable="false">
<table id="searchTable">
<tr>
<td>商品名称:</td>
<td>
<input name="materialName_s" id="materialName_s" style="width:80px;"/>
</td>
<td>&nbsp;</td>
<td>序列号:</td>
<td>
<input name="serialNumber_s" id="serialNumber_s" style="width:80px;"/>
</td>
<td>&nbsp;</td>
<td>
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-search" id="searchBtn">查询</a>&nbsp;&nbsp;
<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-redo" id="searchResetBtn">重置</a>
</td>
</tr>
</table>
</div>
<!-- 数据显示table -->
<div id="tablePanel" class="easyui-panel" style="padding:1px;top:300px;" title="序列号列表" iconCls="icon-list"
collapsible="true" closable="false">
<table id="tableData" style="top:300px;border-bottom-color:#FFFFFF"></table>
</div>
<div id="serialNumberDetailListDlg" class="easyui-dialog" style="width:900px;height:500px;padding:10px 20px" closed="true"
modal="true" collapsible="false" closable="true">
<table id="serialNumberTableData" style="top:50px;border-bottom-color:#FFFFFF"></table>
</div>
<div id="serialNumberDlg" class="easyui-dialog" style="width:860px;height:420px;padding:10px 20px"
closed="true" buttons="#dlg-buttons" modal="true" collapsible="false" closable="true">
<form id="serialNumberFM" method="post" novalidate>
<div id="tt" class="easyui-tabs" style="width:800px;height:320px;">
<div title="基本信息" style="padding:20px;">
<table>
<tr>
<td style="width:60px; height:30px;">商品名称</td>
<td style="padding:5px;width:180px;">
<input name="materialId" id="materialId" type="hidden" />
<input name="materialName" id="materialName" class="easyui-validatebox"
data-options="required:false,validType:'length[2,30]'"
style="width: 180px;height: 20px"/>
</td>
<td style="width:80px;">序列号</td>
<td style="padding:5px;width:180px;">
<input name="serialNumberId" id="serialNumberId" type="hidden" />
<input name="serialNumber" id="serialNumber" class="easyui-validatebox"
data-options="required:true,validType:'length[1,30]'"
style="width: 180px;height: 20px"/>
</td>
<td style="width:200px;"></td>
</tr>
<tr>
<td style="height:30px;">备注</td>
<td style="padding:5px" colspan="3">
<textarea name="remark" id="remark" rows="2" cols="2" placeholder="暂无备注信息"
style="width: 468px; height:40px;"></textarea>
</td>
<td></td>
</tr>
</table>
</div>
</div>
</form>
</div>
<div id="dlg-buttons">
<a href="javascript:void(0)" id="saveSerialNumber" class="easyui-linkbutton" iconCls="icon-ok">保存</a>
<a href="javascript:void(0)" id="cancelSerialNumber" class="easyui-linkbutton" iconCls="icon-cancel"
onclick="javascript:$('#serialNumberDlg').dialog('close')">取消</a>
</div>
<script type="text/javascript">
var url;
//初始化界面
$(function () {
//初始化系统基础信息
initTableData();
ininPager();
initForm();
});
//防止表单提交重复
function initForm() {
$('#serialNumberFM').form({
onSubmit: function () {
return false;
}
});
}
//初始化表格数据
function initTableData() {
//改变宽度和高度
$("#searchPanel").panel({width: webW - 2});
$("#tablePanel").panel({width: webW - 2});
$('#tableData').datagrid({
//title:'商品列表',
//iconCls:'icon-save',
//width:700,
height: heightInfo,
nowrap: false,
rownumbers: false,
//动画效果
animate: false,
//选中单行
singleSelect: true,
collapsible: false,
selectOnCheck: false,
//fitColumns:true,
//单击行是否选中
//checkOnSelect : false,
pagination: true,
//交替出现背景
striped: true,
//loadFilter: pagerFilter,
pageSize: initPageSize,
pageList: initPageNum,
columns: [[
{field: 'id', width: 35, align: "center", checkbox: true},
{
title: '操作', field: 'op', align: "center", width: 60, formatter: function (value, rec) {
var str = '';
var rowInfo = rec.id + 'AaBb' + rec.materialId + 'AaBb' + rec.materialName + 'AaBb' + rec.serialNumber + 'AaBb' + rec.isSell + 'AaBb' + rec.remark
+ 'AaBb' + rec.deleteFlag + 'AaBb' + rec.createTime + 'AaBb' + rec.updateTime + 'AaBb' + rec.creator + 'AaBb' + rec.updater
+ 'AaBb' + rec.creatorName + 'AaBb' + rec.updaterName;
str += '<img title="编辑" src="/js/easyui-1.3.5/themes/icons/pencil.png" style="cursor: pointer;" onclick="editSerialNumber(\'' + rowInfo + '\');"/>&nbsp;&nbsp;&nbsp;';
str += '<img title="删除" src="/js/easyui-1.3.5/themes/icons/edit_remove.png" style="cursor: pointer;" onclick="deleteSerialNumber(' + rec.id + ');"/>';
return str;
}
},
{title: '商品名称', field: 'materialName', width: 100},
{title: '序列号', field: 'serialNumber', width: 80},
{title: '已卖出', field: 'isSell', width: 150 , formatter: function (value) {
return value ? "是" : "否";
}
},
{title: '已删除', field: 'deleteFlag', width: 60, formatter: function (value) {
return value ? "是" : "否";
}
},
{title: '创建时间', field: 'createTime', width: 70},
{title: '更新时间', field: 'updateTime', width: 70},
{title: '备注', field: 'remark',width: 300}
]],
toolbar: [
{
id: 'addSerialNumber',
text: '增加',
iconCls: 'icon-add',
handler: function () {
addSerialNumber();
}
},
'-',
{
id: 'batDeleteSerialNumber',
text: '删除',
iconCls: 'icon-remove',
handler: function () {
batDeleteSerialNumber();
}
},
],
onLoadError: function () {
$.messager.alert('页面加载提示', '页面加载异常,请稍后再试!', 'error');
return;
}
});
showSerialNumberDetails(1, initPageSize);
}
//初始化键盘enter事件
$(document).keydown(function (event) {
//兼容 IE和firefox 事件
var e = window.event || event;
var k = e.keyCode || e.which || e.charCode;
//兼容 IE,firefox 兼容
var obj = e.srcElement ? e.srcElement : e.target;
//绑定键盘事件为 id是指定的输入框才可以触发键盘事件 13键盘事件 ---遗留问题 enter键效验 对话框会关闭问题
if (k == "13" && (obj.id == "CategoryLevel" || obj.id == "Name")) {
$("#saveMaterial").click();
}
//搜索按钮添加快捷键
if (k == "13" && (obj.id == "searchCategoryId" || (obj.id == "searchName"))) {
$("#searchBtn").click();
}
});
//分页信息处理
function ininPager() {
try {
var opts = $("#tableData").datagrid('options');
var pager = $("#tableData").datagrid('getPager');
pager.pagination({
onSelectPage: function (pageNum, pageSize) {
opts.pageNumber = pageNum;
opts.pageSize = pageSize;
pager.pagination('refresh',
{
pageNumber: pageNum,
pageSize: pageSize
});
showMaterialDetails(pageNum, pageSize);
}
});
}
catch (e) {
$.messager.alert('异常处理提示', "分页信息异常 : " + e.name + ": " + e.message, 'error');
}
}
//删除序列号信息
function deleteSerialNumber(id) {
$.messager.confirm('删除确认', '确定要删除此序列号信息吗?', function (r) {
if (r) {
$.ajax({
type: "post",
url: "/serialNumber/" + id + "/delete",
dataType: "json",
success: function (res) {
if(res && res.code == 200) {
$("#searchBtn").click();
} else {
$.messager.alert('删除提示', '删除序列号信息失败,请稍后再试!', 'error');
}
},
//此处添加错误处理
error: function () {
$.messager.alert('删除提示', '删除序列号信息异常,请稍后再试!', 'error');
return;
}
});
}
});
}
//批量删除序列号
function batDeleteSerialNumber() {
var row = $('#tableData').datagrid('getChecked');
if (row.length == 0) {
$.messager.alert('删除提示', '没有记录被选中!', 'info');
return;
}
if (row.length > 0) {
$.messager.confirm('删除确认', '确定要删除选中的' + row.length + '条序列号信息吗?', function (r) {
if (r) {
var ids = "";
for (var i = 0; i < row.length; i++) {
if (i == row.length - 1) {
ids += row[i].id;
break;
}
//alert(row[i].id);
ids += row[i].id + ",";
}
$.ajax({
type: "post",
url: "/serialNumber/batchDelete",
dataType: "json",
async: false,
data: ({
ids: ids
}),
success: function (res) {
if(res && res.code === 200) {
$("#searchBtn").click();
$(":checkbox").attr("checked", false);
} else {
$.messager.alert('删除提示', '删除序列号信息失败,请稍后再试!', 'error');
}
},
//此处添加错误处理
error: function () {
$.messager.alert('删除提示', '删除序列号信息异常,请稍后再试!', 'error');
return;
}
});
}
});
}
}
//增加
function addSerialNumber() {
$('#serialNumberDlg').dialog('open').dialog('setTitle', '<img src="/js/easyui-1.3.5/themes/icons/edit_add.png"/>&nbsp;增加序列号信息');
$(".window-mask").css({width: webW, height: webH});
$('#materialId').val('');
$('#materialName').val('');
$('#serialNumberId').val('');
$('#serialNumber').val('');
$('#remark').val('');
url = '/serialNumber/addSerialNumber';
}
//检查商品名称和序列号是否存在
function checkIsExist() {
var materialName = $.trim($("#materialName").val());
var serialNumber = $.trim($("#serialNumber").val());
var id = $.trim($("#serialNumberId").val());
//开始ajax名称检验不能重名(新增或编辑)
$.ajax({
type: "post",
url: "/serialNumber/checkIsExist",
dataType: "json",
async: false,
data: ({
materialName: materialName,
serialNumber: serialNumber,
id: id
}),
success: function (res) {
if(res && res.code != 200) {
if(res.msg) {
$.messager.alert('提示', res.msg, 'error');
return;
}
}
},
//此处添加错误处理
error: function () {
$.messager.alert('提示', '检查序列号信息是否存在异常,请稍后再试!', 'error');
return;
}
});
return false;
}
//保存信息
$("#saveSerialNumber").off("click").on("click", function () {
if (!$('#serialNumber').val()) {
$.messager.alert('提示', '序列号不能为空!', 'warning');
return;
}
if (checkIsExist()) {
return;
}
//构造序列号json
var objInfo = $("#serialNumberFM").serializeObject();
objInfo.id=objInfo.serialNumberId;
$.ajax({
type: "post",
url: url,
dataType: "json",
async: false,
data: ({
info: JSON.stringify(objInfo)
}),
success: function(res) {
if(res && res.code === 200) {
$('#serialNumberDlg').dialog('close');
//加载完以后重新初始化
var opts = $("#tableData").datagrid('options');
showSerialNumberDetails(opts.pageNumber, opts.pageSize);
}
},
//此处添加错误处理
error: function () {
$.messager.alert('提示', '保存序列化信息异常,请稍后再试!', 'error');
return;
}
});
});
//编辑信息
function editSerialNumber(serialNumberInfo) {
var serialNumberInfo = serialNumberInfo.split("AaBb");
$("#serialNumberId").focus().val(serialNumberInfo[0]);
$("#materialId").focus().val(serialNumberInfo[1]);
$("#materialName").focus().val(serialNumberInfo[2]);
$("#serialNumber").focus().val(serialNumberInfo[3]);
$("#remark").focus().val(serialNumberInfo[5]);
$('#serialNumberDlg').dialog('open').dialog('setTitle', '<img src="/js/easyui-1.3.5/themes/icons/pencil.png"/>&nbsp;编辑序列号信息');
$(".window-mask").css({width: webW, height: webH});
//选中基本资料tab
$("#serialNumberFM #tt .tabs li").first().click();
url = '/serialNumber/updateSerialNumber';
}
//搜索处理
$("#searchBtn").unbind().bind({
click: function () {
showSerialNumberDetails(1, initPageSize);
var opts = $("#tableData").datagrid('options');
var pager = $("#tableData").datagrid('getPager');
opts.pageNumber = 1;
opts.pageSize = initPageSize;
pager.pagination('refresh', {
pageNumber: 1,
pageSize: initPageSize
});
}
});
function showSerialNumberDetails(pageNo, pageSize) {
var materialName = $.trim($("#materialName_s").val());
var serialNumber = $.trim($("#serialNumber_s").val());
$.ajax({
type: "get",
url: "/serialNumber/list",
dataType: "json",
data: ({
search: JSON.stringify({
materialName: materialName,
serialNumber: serialNumber
}),
currentPage: pageNo,
pageSize: pageSize
}),
success: function (res) {
if(res && res.code === 200){
if(res.data && res.data.page) {
if(res.data.page.total==0){
$.messager.alert('查询提示', '没有对应数据!', 'warning');
}
$("#tableData").datagrid('loadData', res.data.page);
}
}
},
//此处添加错误处理
error: function () {
$.messager.alert('查询提示', '查询数据后台异常,请稍后再试!', 'error');
return;
}
});
}
//重置按钮
$("#searchResetBtn").unbind().bind({
click: function () {
$("#materialName_s").val("");
$("#serialNumber_s").val("");
//加载完以后重新初始化
$("#searchBtn").click();
}
});
</script>
</body>
</html>

View File

@@ -90,6 +90,16 @@
</td>
<td></td>
</tr>
<tr>
<td style="width:80px;">序列号</td>
<td style="padding:5px;width:180px;">
<select name="enableSerialNumber" id="enableSerialNumber" class="easyui-combobox" style="width:152px;height: 20px">
<option value="1">启用</option>
<option value="0">禁用</option>
</select>
</td>
<td></td>
</tr>
<tr>
<td style="height:30px;">备注</td>
<td style="padding:5px" colspan="3">
@@ -611,7 +621,7 @@
+ 'AaBb' + rec.lowprice + 'AaBb' + rec.presetpriceone + 'AaBb' + rec.presetpricetwo + 'AaBb' + rec.remark + 'AaBb' + rec.standard
+ 'AaBb' + rec.color + 'AaBb' + rec.packing + 'AaBb' + rec.safetystock + 'AaBb' + rec.categoryid + 'AaBb' + rec.categoryName
+ 'AaBb' + rec.unitid + 'AaBb' + rec.unitName + 'AaBb' + rec.firstoutunit + 'AaBb' + rec.firstinunit
+ 'AaBb' + rec.mfrs + 'AaBb' + rec.otherfield1 + 'AaBb' + rec.otherfield2 + 'AaBb' + rec.otherfield3;
+ 'AaBb' + rec.mfrs + 'AaBb' + rec.otherfield1 + 'AaBb' + rec.otherfield2 + 'AaBb' + rec.otherfield3+ 'AaBb' + rec.enableSerialNumber;
str += '<img title="编辑" src="/js/easyui-1.3.5/themes/icons/pencil.png" style="cursor: pointer;" onclick="editMaterial(\'' + rowInfo + '\');"/>&nbsp;&nbsp;&nbsp;';
str += '<img title="删除" src="/js/easyui-1.3.5/themes/icons/edit_remove.png" style="cursor: pointer;" onclick="deleteMaterial(' + rec.id + ');"/>';
return str;
@@ -671,6 +681,11 @@
title: '状态', field: 'enabled', width: 50, align: "center", formatter: function (value) {
return value ? "启用" : "禁用";
}
},
{
title: '序列号', field: 'enableSerialNumber', width: 70, align: "center", formatter: function (value) {
return value ? "启用" : "禁用";
}
}
]],
toolbar: [
@@ -1145,7 +1160,7 @@
$('#materialFM input').val(""); //将输入框全部清空
bindMProperty(); //根据商品属性绑定
$("#enableSerialNumber").combobox('setValue','0');
$('#materialDlg').dialog('open').dialog('setTitle', '<img src="/js/easyui-1.3.5/themes/icons/edit_add.png"/>&nbsp;增加商品信息');
$(".window-mask").css({width: webW, height: webH});
$("#Name").val("").focus();
@@ -1271,11 +1286,13 @@
basicList.LowPrice = $("#basicLowPrice").val();
basicList.PresetPriceOne = $("#basicPresetPriceOne").val();
basicList.PresetPriceTwo = $("#basicPresetPriceTwo").val();
basicList.enableSerialNumber=$("#enableSerialNumber").combobox('getValue');
otherList.Unit = $("#otherUnit").text();
otherList.RetailPrice = $("#otherRetailPrice").val();
otherList.LowPrice = $("#otherLowPrice").val();
otherList.PresetPriceOne = $("#otherPresetPriceOne").val();
otherList.PresetPriceTwo = $("#otherPresetPriceTwo").val();
var basic = {};
var other = {};
basic.basic = basicList;
@@ -1341,6 +1358,10 @@
$("#Name").focus().val(materialInfo[1]);
$("#Color").focus().val(materialInfo[11]);
// console.log("enableSerialNumber:"+(materialInfo[24]=='true'?'1':'0'));
// console.log("enableSerialNumber:"+materialInfo[24]);
$("#enableSerialNumber").combobox('setValue',materialInfo[24]=='true'?'1':'0');
// console.log($("#enableSerialNumber").val());
var categoryName = ""; //类型名称
mId = materialInfo[14];