first commit

This commit is contained in:
2026-01-16 14:13:44 +08:00
commit 903ff8d495
34603 changed files with 8585054 additions and 0 deletions

View File

@ -0,0 +1,232 @@
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<%request.setAttribute("START", SparePartCommString.STATUS_STOCK_START); %>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
//流程审核文件上传所需参数
var masterId_process = '${id}';//业务Id
var tbName_process = 'TB_Process_UploadFile'; //数据表
var nameSpace_process ='ProcessUploadFile';//保存文件夹
var status = 'delete';//有删除权限
function dosave() {
$.post(ext.contextPath + "/sparepart/stockCheck/getCheck.do", {warehouseId: $("#warehouseId").val()}, function(res) {
if (res.data == 0) {
$('#subForm').data('bootstrapValidator')
.updateStatus('userName', 'NOT_VALIDATED',null)
.validateField('userName');
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/sparepart/outStockRecord/save.do", $("#subForm").serialize(), function(data) {
if (data.res == 1){
closeModal('subModal');
$("#table").bootstrapTable('refresh');
//editFun('${id}');
}else if(data.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}
} else {
showAlert('d',res.res);
}
},'json');
}
//输入框验证
$("#subForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
outDate: {
validators: {
notEmpty: {
message: '领用日期不能为空'
}
}
},
warehouseId: {
validators: {
notEmpty: {
message: '所属仓库不能为空'
}
}
},
/* deptId: {
validators: {
notEmpty: {
message: '领用部门不能为空'
}
}
}, */
userName: {
validators: {
notEmpty: {
message: '领用人不能为空'
}
}
},
}
});
$(function(){
//初始化文件显示
getFileList_process();
//选择部门
$.post(ext.contextPath + "/user/getDeptByBizId4Select.do", {companyId:'${company.id}'}, function(data) {
var selelct = $("#deptId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('').trigger("change");
},'json');
//选择仓库
$.post(ext.contextPath + "/sparepart/warehouse/getWarehouseForSelectByCompanyId.do", {companyId:"${company.id}"}, function(data) {
var selelct =$("#warehouseId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('').trigger("change");
},'json');
//采购时间
$("#outDate").datepicker({
language: 'zh-CN',
autoclose: true,
todayHighlight: true,
format:'yyyy-mm-dd',
});
$("#outDate").datepicker('setDate',new Date());
});
//选择入库负责人
var showUser4SelectsFun = function() {
var userIds= $("#userId").val();
$.post(ext.contextPath + '/user/userForSelectByStructure.do', {formId:"subForm",hiddenId:"userId",textId:"userName",userIds:userIds} , function(data) {
$("#user4SelectDiv").html(data);
openModal("user4SelectModal");
});
};
//选择入库审核人
var showUser4AuditSelectsFun = function() {
var userIds= $("#auditManId").val();
$.post(ext.contextPath + '/user/userForSelectByStructure.do', {formId:"subForm",hiddenId:"auditManId",textId:"auditManName",userIds:userIds} , function(data) {
$("#user4SelectDiv").html(data);
openModal("user4SelectModal");
});
};
</script>
<div class="modal fade" id="subModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">新增物资领用记录</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<input name="status" type="hidden" value="${START}"/>
<div class="form-group">
<label class="col-sm-2 control-label">所属厂区</label>
<div class="col-sm-10">
<input name="bizId" type="hidden" value="${company.id}"/>
<p class="form-control-static" >${company.name}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*领用单号</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="id" name ="id" placeholder="名称" value="${id}" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*领用日期</label>
<div class="col-sm-6">
<div class="input-group date">
<div class="input-group-addon">
<i class="fa fa-calendar"></i>
</div>
<input type="text" class="form-control" id="outDate" name="outDate" style="width: 230px;" placeholder="请选择"/>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">票据单号</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="billNumber" name ="billNumber" placeholder="票据单号" value="">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*所属仓库</label>
<div class="col-sm-6">
<select class="form-control select2" id="warehouseId" name="warehouseId" style="width: 270px;" ></select>
</div>
</div>
<!-- <div class="form-group">
<label class="col-sm-2 control-label">*领用部门</label>
<div class="col-sm-6">
<select class="form-control select2" id="deptId" name ="deptId" style="width: 270px;">
</select>
</div>
</div> -->
<div class="form-group">
<label class="col-sm-2 control-label">*领用人</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="userName" name="userName" value="${cu.caption}" placeholder="点击选择" onclick="showUser4SelectsFun();">
<input id="userId" name="userId" value="${cu.id}" type="hidden" />
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">审核人</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="auditManName" name="auditManName" placeholder="点击选择" onclick="showUser4AuditSelectsFun();">
<input id="auditManId" name="auditManId" type="hidden" />
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">备注</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" id ="remark" name ="remark" placeholder="备注..."></textarea>
</div>
</div>
<!-- 文件上传,显示 -->
<div class="form-group" style="margin:8px">
<label class="col-sm-2 control-label"></label>
<button type="button" class="btn btn-default btn-file" onclick="fileinput_process()" id="btn_save"><i class="fa fa-paperclip"></i>上传文件</button>
</div>
<div id="fileArea">
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="dosave()" id="btn_save">保存</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,506 @@
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<%request.setAttribute("AUDIT", SparePartCommString.STATUS_STOCK_AUDIT); %>
<%request.setAttribute("START", SparePartCommString.STATUS_STOCK_START); %>
<%request.setAttribute("FINSH", SparePartCommString.STATUS_STOCK_FINISH); %>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
//流程审核文件上传所需参数
var masterId_process = '${outStockRecord.id}';//业务Id
var tbName_process = 'TB_Process_UploadFile'; //数据表
var nameSpace_process ='ProcessUploadFile';//保存文件夹
var status = 'delete';//有删除权限
function doupdate() {
$.post(ext.contextPath + "/sparepart/stockCheck/getCheck.do", {warehouseId: $("#warehouseId").val()}, function(res) {
if (res.data == 0) {
$('#subForm').data('bootstrapValidator')
.updateStatus('userName', 'NOT_VALIDATED',null)
.validateField('userName');
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/sparepart/outStockRecord/update.do", $("#subForm").serialize(), function(data) {
if (data.res == 1){
closeModal('subModal');
$("#table").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}
} else {
showAlert('d',"请完成盘点后在进行领料操作!");
}
},'json');
}
function dosubmit(){
$.post(ext.contextPath + "/sparepart/stockCheck/getCheck.do", {warehouseId: $("#warehouseId").val()}, function(res) {
if (res.data == 0) {
$("#status").val('${AUDIT}');
$('#subForm').data('bootstrapValidator')
.updateStatus('auditManName', 'NOT_VALIDATED',null)
.validateField('auditManName');
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
var url = "";
if('${taskName}'!= null && '${taskName}'!=""){
url = "/sparepart/outStockRecord/submitOutStockHandle.do";
}else{
url = "/sparepart/outStockRecord/startProcess.do";
}
$.post(ext.contextPath + url, $("#subForm").serialize(), function(data) {
if (data.res == 1) {
$("#table").bootstrapTable('refresh');
closeModal('subModal');
}else if(data.res == 0){
showAlert('d','保存失败');
}else if(data.res == 2){
showAlert('d','未检测到出库审核流程,请先部署出库审核流程!');
}else{
showAlert('d',data.res);
}
},'json');
}
} else {
showAlert('d',"请完成盘点后在进行领料操作!");
}
},'json');
}
//提交时先验证审核人不能为空,保存时审核人可以为空
function submitFun(){
//没有领用明细不能发起审核
var allTableData = $("#table_outStockDetail").bootstrapTable('getData');
if(allTableData.length == 0){
showAlert('d','请先添加领用的明细信息!','alertDiv');
}else{
//新增的输入框添加验证
$("#subForm").data('bootstrapValidator').addField('auditManName',{
validators: {
notEmpty: {
message: '审核人不能为空'
},
}
});
dosubmit();
}
}
//关闭模态框时刷新表格数据
function closeModel(){
closeModal('subModal');
$("#table").bootstrapTable('refresh');
}
//新增入库明细
var addDetailFun = function() {
//新增物资领用明细时,验证所属仓库不能为空
$("#subForm").data('bootstrapValidator').validateField('warehouseId');
if($("#subForm").data('bootstrapValidator').isValidField('warehouseId')){
var allTableData = $("#table_outStockDetail").bootstrapTable('getData');
var stockIds="";
$.each(allTableData,function(index,item){
if(stockIds!=""){
stockIds+=",";
}
stockIds+=item.stockId;
})
$.post(ext.contextPath + '/sparepart/outStockRecord/selectStockForOutStockDetails.do', {stockIds:stockIds,companyId:'${outStockRecord.bizId}',
warehouseId:$("#warehouseId").val()},
function(data) {
$("#stock4SelectsDiv").html(data);
openModal('subDetailModal');
});
}
};
var doFinishSelects = function(data) {
$.post(ext.contextPath + '/sparepart/outStockRecord/saveOutStockRecordDetails.do', {outstockRecordId:'${outStockRecord.id}',
stockIds:data} , function(data) {
if(data.res){
$("#table_outStockDetail").bootstrapTable('refresh');
}
},'json');
};
//删除多条申购明细数据
var deletesDetailFun = function() {
var checkedItems = $("#table_outStockDetail").bootstrapTable('getSelections');
var datas="";
$.each(checkedItems, function(index, item){
datas+=item.id+",";
});
if(datas==""){
showAlert('d','请先选择记录','alertDiv');
}else{
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete) {
if (willDelete) {
$.post(ext.contextPath + '/sparepart/outStockRecord/deletesOutStockRecordDetail.do', {ids:datas} , function(data) {
if(data>0){
$("#table_outStockDetail").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','alertDiv');
}
});
}
});
}
};
//输入框验证
$("#subForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
outDate: {
validators: {
notEmpty: {
message: '领用日期不能为空'
}
}
},
warehouseId: {
validators: {
notEmpty: {
message: '所属仓库不能为空'
}
}
},
deptId: {
validators: {
notEmpty: {
message: '领用部门不能为空'
}
}
},
userName: {
validators: {
notEmpty: {
message: '领用人不能为空'
}
}
},
}
});
$(function(){
//初始化文件显示
getFileList_process();
$('#table_outStockDetail').bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/outStockRecord/getOutStockDetailList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
showFooter:true,//添加页脚
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
pid:'${outStockRecord.id}',
}
},
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
columns: [
{
checkbox: true, // 显示一个勾选框
},{
field: 'goods.name', // 返回json数据中的name
title: '物品名称', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.model', // 返回json数据中的name
title: '规格型号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.brand', // 返回json数据中的name
title: '品牌', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'goods.unit', // 返回json数据中的name
title: '单位', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},/* {
field: 'dept.name', // 返回json数据中的name
title: '领用部门', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
}, */{
field: 'outNumber', // 返回json数据中的name
title: '领用数量', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
editable: { //编辑列元素
type: 'text',
title: '领用数量',
validate: function (v) {
if (!v) return '数量不能为空';
}
}
},{
field: 'includedTaxCostPrice', // 返回json数据中的name
title: '含税单价/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
footerFormatter:"合计",
},{
field: 'includedTaxTotalMoney', // 返回json数据中的name
title: '含税合计/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
footerFormatter:function(value){
if(value==""){
return"";
}else{
var count = 0;
for(var i in value){
count += value[i].includedTaxTotalMoney;
}
return count.toFixed(4);
}
},
},
// {
// field: 'price', // 返回json数据中的name
// title: '不含税单价/元', // 表格表头显示文字
// align: 'center', // 左右居中
// valign: 'middle', // 上下居中
//
// },{
// field: 'totalMoney', // 返回json数据中的name
// title: '不含税合计/元', // 表格表头显示文字
// align: 'center', // 左右居中
// valign: 'middle' ,// 上下居中
// footerFormatter:function(value){
// if(value==""){
// return"";
// }else{
// var count = 0;
// for(var i in value){
// count += value[i].totalMoney;
// }
// return count.toFixed(2);
// }
// },
// },
],
//保存列修改后的数据
onEditableSave: function (field, row, oldValue, $el) {
$.post(ext.contextPath + "/sparepart/outStockRecord/updateOutStockDetail.do", {id:row.id,price:row.price,number:row.outNumber}, function(data) {
if (data.res == 1){
$("#table_outStockDetail").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','编辑失败');
}else{
showAlert('d',data.res);
$("#table_outStockDetail").bootstrapTable('refresh');
}
},'json');
},
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table_outStockDetail");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
//选择部门
$.post(ext.contextPath + "/user/getDeptByBizId4Select.do", {companyId:"${outStockRecord.bizId}"}, function(data) {
var selelct = $("#deptId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('${outStockRecord.deptId}').trigger("change");
},'json');
//选择仓库
$.post(ext.contextPath + "/sparepart/warehouse/getWarehouseForSelectByCompanyId.do", {companyId:"${outStockRecord.bizId}"}, function(data) {
var selelct =$("#warehouseId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('${outStockRecord.warehouseId}').trigger("change");
},'json');
//领用时间
$("#outDate").datepicker({
language: 'zh-CN',
autoclose: true,
todayHighlight: true,
format:'yyyy-mm-dd',
});
});
//选择入库负责人
var showUser4SelectsFun = function() {
var userIds= $("#userId").val();
$.post(ext.contextPath + '/user/userForSelectByStructure.do', {formId:"subForm",hiddenId:"userId",textId:"userName",userIds:userIds} , function(data) {
$("#user4SelectDiv").html(data);
openModal("user4SelectModal");
});
};
//选择入库审核人
var showUser4AuditSelectsFun = function() {
var userIds= $("#auditManId").val();
$.post(ext.contextPath + '/user/userForSelectByStructure.do', {formId:"subForm",hiddenId:"auditManId",textId:"auditManName",userIds:userIds} , function(data) {
$("#user4SelectDiv").html(data);
openModal("user4SelectModal");
});
};
</script>
<div class="modal fade" id="subModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">编辑物资领用记录</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<input id="status" name="status" type="hidden" value="${outStockRecord.status}"/>
<input id="bizId" name="bizId" type="hidden" value="${outStockRecord.bizId}"/>
<div class="form-group">
<label class="col-sm-2 control-label">所属厂区</label>
<div class="col-sm-6" >
<p class="form-control-static" >${outStockRecord.company.name}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*领用单号</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="id" name ="id" placeholder="名称" value="${outStockRecord.id}" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*领用日期</label>
<div class="col-sm-6">
<div class="input-group date">
<div class="input-group-addon">
<i class="fa fa-calendar"></i>
</div>
<input type="text" class="form-control" id="outDate" name="outDate" style="width: 230px;" value="${outStockRecord.outDate.substring(0,10)}" placeholder="请选择"/>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">票据单号</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="billNumber" name ="billNumber" placeholder="票据单号" value="${outStockRecord.billNumber}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*所属仓库</label>
<div class="col-sm-6">
<select class="form-control select2" id="warehouseId" name="warehouseId" style="width: 270px;" ></select>
</div>
</div>
<!-- <div class="form-group">
<label class="col-sm-2 control-label">*领用部门</label>
<div class="col-sm-6">
<select class="form-control select2" id="deptId" name ="deptId" style="width: 270px;">
</select>
</div>
</div> -->
<div class="form-group">
<label class="col-sm-2 control-label">*领用人</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="userName" name="userName" placeholder="点击选择" onclick="showUser4SelectsFun();" value="${outStockRecord.userName}">
<input id="userId" name="userId" type="hidden" value="${outStockRecord.userId}" />
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">审核人</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="auditManName" name="auditManName" placeholder="点击选择" onclick="showUser4AuditSelectsFun();" value="${outStockRecord.auditManName}">
<input id="auditManId" name="auditManId" type="hidden" value="${outStockRecord.auditManId}" />
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">备注</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" id ="remark" name ="remark" placeholder="备注...">${outStockRecord.remark}</textarea>
</div>
</div>
<!-- 文件上传,显示 -->
<div class="form-group" style="margin:8px">
<label class="col-sm-2 control-label"></label>
<button type="button" class="btn btn-default btn-file" onclick="fileinput_process()" id="btn_save"><i class="fa fa-paperclip"></i>上传文件</button>
</div>
<div id="fileArea">
</div>
</form>
<div class="box box-primary" >
<div class="box-header with-border">
<h3 class="box-title">领用明细</h3>
<div class="box-tools pull-right">
<a onclick="addDetailFun()" class="btn btn-box-tool" data-toggle="tooltip" title="新增"><i class="glyphicon glyphicon-plus"></i></a>
<a onclick="deletesDetailFun()" class="btn btn-box-tool" data-toggle="tooltip" title="删除"><i class="glyphicon glyphicon-minus"></i></a>
</div>
</div>
<!-- /.box-header -->
<div class="box-body ">
<table id="table_outStockDetail"></table>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" onclick="closeModel()">关闭</button>
<button type="button" class="btn btn-primary" onclick="doupdate()" id="btn_save">保存</button>
<button type="button" class="btn btn-primary" onclick="submitFun()" id="btn_save">提交</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,530 @@
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<%request.setAttribute("AUDIT", SparePartCommString.STATUS_STOCK_AUDIT); %>
<%request.setAttribute("START", SparePartCommString.STATUS_STOCK_START); %>
<%request.setAttribute("FINSH", SparePartCommString.STATUS_STOCK_FINISH); %>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
//流程审核文件上传所需参数
var masterId_process = '${outStockRecord.id}';//业务Id
var tbName_process = 'TB_Process_UploadFile'; //数据表
var nameSpace_process ='ProcessUploadFile';//保存文件夹
var status = 'delete';//有删除权限
function doupdate() {
$('#subForm').data('bootstrapValidator')
.updateStatus('userName', 'NOT_VALIDATED',null)
.validateField('userName');
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/sparepart/outStockRecord/update.do", $("#subForm").serialize(), function(data) {
if (data.res == 1){
closeModal('subModal');
$("#table").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}
}
/* function dosubmit(routeNum){
$("#status").val('${AUDIT}');
$('#subForm').data('bootstrapValidator')
.updateStatus('auditManName', 'NOT_VALIDATED',null)
.validateField('auditManName');
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
var targetusers = $("#auditManId").val();
$("#targetusers").val(targetusers);
$.post(ext.contextPath + "/sparepart/outStockRecord/update.do", $("#subForm").serialize(), function(data) {
if (data.res == 1){
$.post(ext.contextPath + "/sparepart/outStockRecord/submitOutStockHandle.do", $("#subUnitForm").serialize()+"&routeNum="+routeNum, function(unitdata) {
if (unitdata.res == 1) {
closeModal('subModal')
$("#table").bootstrapTable('refresh');
}else if(unitdata.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}else if(data.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}
} */
function dosubmit(){
$('#subUnitForm').data('bootstrapValidator')
.updateStatus('targetUsersName', 'NOT_VALIDATED',null)
.validateField('targetUsersName');
$("#subForm").bootstrapValidator('validate');//提交验证
$("#subUnitForm").bootstrapValidator('validate');//提交验证
setTimeout(function(){
if ($("#subForm").data('bootstrapValidator').isValid() && $("#subUnitForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/sparepart/outStockRecord/update.do", $("#subForm").serialize(), function(data) {
var routeNum = $("#routeNum").val();
if (data.res == 1){
$.post(ext.contextPath + "/sparepart/outStockRecord/submitOutStockHandle.do", $("#subUnitForm").serialize()+"&routeNum="+routeNum, function(unitdata) {
if (unitdata.res == 1) {
closeModal('subModal')
$("#table").bootstrapTable('refresh');
}else if(unitdata.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}else if(data.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}
}, 100);
}
//提交时先验证审核人不能为空,保存时审核人可以为空
function submitFun(){
//没有入库明细不能发起审核
var allTableData = $("#table_outStockDetail").bootstrapTable('getData');
if(allTableData.length == 0){
showAlert('d','请先添加出库的明细信息!','alertDiv');
}else{
dosubmit();
}
}
//关闭模态框时刷新表格数据
function closeModel(){
closeModal('subModal');
$("#table").bootstrapTable('refresh');
}
//新增入库明细
var addDetailFun = function() {
//新增物资领用明细时,验证所属仓库不能为空
$("#subForm").data('bootstrapValidator').validateField('warehouseId');
if($("#subForm").data('bootstrapValidator').isValidField('warehouseId')){
var allTableData = $("#table_outStockDetail").bootstrapTable('getData');
var stockIds="";
$.each(allTableData,function(index,item){
if(stockIds!=""){
stockIds+=",";
}
stockIds+=item.stockId;
})
$.post(ext.contextPath + '/sparepart/outStockRecord/selectStockForOutStockDetails.do', {stockIds:stockIds,companyId:'${outStockRecord.bizId}',
warehouseId:$("#warehouseId").val()},
function(data) {
$("#stock4SelectsDiv").html(data);
openModal('subDetailModal');
});
}
};
var doFinishSelects = function(data) {
$.post(ext.contextPath + '/sparepart/outStockRecord/saveOutStockRecordDetails.do', {outstockRecordId:'${outStockRecord.id}',
stockIds:data} , function(data) {
if(data.res){
$("#table_outStockDetail").bootstrapTable('refresh');
}
},'json');
};
//删除多条申购明细数据
var deletesDetailFun = function() {
var checkedItems = $("#table_outStockDetail").bootstrapTable('getSelections');
var datas="";
$.each(checkedItems, function(index, item){
datas+=item.id+",";
});
if(datas==""){
showAlert('d','请先选择记录','alertDiv');
}else{
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete) {
if (willDelete) {
$.post(ext.contextPath + '/sparepart/outStockRecord/deletesOutStockRecordDetail.do', {ids:datas} , function(data) {
if(data>0){
$("#table_outStockDetail").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','alertDiv');
}
});
}
});
}
};
//输入框验证
$("#subForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
outDate: {
validators: {
notEmpty: {
message: '领用日期不能为空'
}
}
},
warehouseId: {
validators: {
notEmpty: {
message: '所属仓库不能为空'
}
}
},
deptId: {
validators: {
notEmpty: {
message: '领用部门不能为空'
}
}
},
userName: {
validators: {
notEmpty: {
message: '领用人不能为空'
}
}
},
}
});
$("#subUnitForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
targetUsersName: {
validators: {
notEmpty: {
message: '审核人不能为空'
}
}
},
}
});
$(function(){
//初始化文件显示
getFileList_process();
//初始化选择框方法在workflow.js里
processSelectNodeForHandle("${businessUnitHandle.taskid}");
$('#table_outStockDetail').bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/outStockRecord/getOutStockDetailList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
pid:'${outStockRecord.id}',
}
},
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
columns: [
{
checkbox: true, // 显示一个勾选框
},{
field: 'goods.name', // 返回json数据中的name
title: '物品名称', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.model', // 返回json数据中的name
title: '规格型号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.brand', // 返回json数据中的name
title: '品牌', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'goods.unit', // 返回json数据中的name
title: '单位', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},/* {
field: 'dept.name', // 返回json数据中的name
title: '领用部门', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
}, */{
field: 'outNumber', // 返回json数据中的name
title: '领用数量', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
editable: { //编辑列元素
type: 'text',
title: '领用数量',
validate: function (v) {
if (!v) return '数量不能为空';
}
}
},{
field: 'price', // 返回json数据中的name
title: '单价/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'totalMoney', // 返回json数据中的name
title: '合计/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},
],
//保存列修改后的数据
onEditableSave: function (field, row, oldValue, $el) {
$.post(ext.contextPath + "/sparepart/outStockRecord/updateOutStockDetail.do", {id:row.id,price:row.price,number:row.outNumber}, function(data) {
if (data.res == 1){
$("#table_outStockDetail").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','编辑失败');
}else{
showAlert('d',data.res);
$("#table_outStockDetail").bootstrapTable('refresh');
}
},'json');
},
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table_outStockDetail");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
//选择部门
$.post(ext.contextPath + "/user/getDeptByBizId4Select.do", {companyId:"${outStockRecord.bizId}"}, function(data) {
var selelct = $("#deptId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('${outStockRecord.deptId}').trigger("change");
},'json');
//选择仓库
$.post(ext.contextPath + "/sparepart/warehouse/getWarehouseForSelectByCompanyId.do", {companyId:"${outStockRecord.bizId}"}, function(data) {
var selelct =$("#warehouseId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('${outStockRecord.warehouseId}').trigger("change");
},'json');
//领用时间
$("#outDate").datepicker({
language: 'zh-CN',
autoclose: true,
todayHighlight: true,
format:'yyyy-mm-dd',
});
});
//选择入库负责人
var showUser4SelectsFun = function() {
var userIds= $("#userId").val();
$.post(ext.contextPath + '/user/userForSelectByStructure.do', {formId:"subForm",hiddenId:"userId",textId:"userName",userIds:userIds} , function(data) {
$("#user4SelectDiv").html(data);
openModal("user4SelectModal");
});
};
//选择入库审核人
var showUser4AuditSelectsFun = function() {
var userIds= $("#targetusers").val();
var jobIds= $("#targetjobs").val();
$.post(ext.contextPath + '/user/userForSelectByCompany.do', {formId:"subUnitForm",hiddenId:"targetusers",textId:"targetUsersName",userIds:userIds,jobIds:jobIds} , function(data) {
$("#user4SelectDiv").html(data);
openModal("user4SelectModal");
});
};
</script>
<div class="modal fade" id="subModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">调整领用物资</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<input id="status" name="status" type="hidden" value="${outStockRecord.status}"/>
<input id="bizId" name="bizId" type="hidden" value="${outStockRecord.bizId}"/>
<div class="form-group">
<label class="col-sm-2 control-label">所属厂区</label>
<div class="col-sm-6" >
<p class="form-control-static" >${outStockRecord.company.name}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*领用单号</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="id" name ="id" placeholder="名称" value="${outStockRecord.id}" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*领用日期</label>
<div class="col-sm-6">
<div class="input-group date">
<div class="input-group-addon">
<i class="fa fa-calendar"></i>
</div>
<input type="text" class="form-control" id="outDate" name="outDate" style="width: 230px;" value="${outStockRecord.outDate.substring(0,10)}" placeholder="请选择"/>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">票据单号</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="billNumber" name ="billNumber" placeholder="票据单号" value="${outStockRecord.billNumber}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*所属仓库</label>
<div class="col-sm-6">
<select class="form-control select2" id="warehouseId" name="warehouseId" style="width: 270px;" ></select>
</div>
</div>
<!-- <div class="form-group">
<label class="col-sm-2 control-label">*领用部门</label>
<div class="col-sm-6">
<select class="form-control select2" id="deptId" name ="deptId" style="width: 270px;">
</select>
</div>
</div> -->
<div class="form-group">
<label class="col-sm-2 control-label">*领用人</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="userName" name="userName" placeholder="点击选择" onclick="showUser4SelectsFun();" value="${outStockRecord.userName}">
<input id="userId" name="userId" type="hidden" value="${outStockRecord.userId}" />
</div>
</div>
<%-- <div class="form-group">
<label class="col-sm-2 control-label">审核人</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="auditManName" name="auditManName" placeholder="点击选择" onclick="showUser4AuditSelectsFun();" value="${outStockRecord.auditManName}">
<input id="auditManId" name="auditManId" type="hidden" value="${outStockRecord.auditManId}" />
</div>
</div> --%>
<div class="form-group">
<label class="col-sm-2 control-label">备注</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" id ="remark" name ="remark" placeholder="备注...">${outStockRecord.remark}</textarea>
</div>
</div>
</form>
<!--出库审核退回后显示 -->
<form class="form-horizontal" id="subUnitForm" enctype="multipart/form-data" >
<input type="hidden" class="form-control" name ="id" value="${businessUnitHandle.id}">
<input type="hidden" class="form-control" name ="processid" value="${businessUnitHandle.processid}">
<input type="hidden" class="form-control" name ="taskid" value="${businessUnitHandle.taskid}">
<input type="hidden" class="form-control" name ="businessid" value="${businessUnitHandle.businessid}">
<input type="hidden" class="form-control" name ="taskdefinitionkey" value="${businessUnitHandle.taskdefinitionkey}">
<%-- <input type="hidden" class="form-control" id= "targetusers" name ="targetusers" value="${businessUnitHandle.targetusers}"> --%>
<input type="hidden" class="form-control" name ="unitid" value="${businessUnitHandle.unitid}">
<c:if test='${not empty businessUnitAudit.auditopinion }'>
<div class="form-group">
<label class="col-sm-2 control-label">审核意见:</label>
<div class="col-sm-10">
<textarea class="form-control " id="auditopinion" name="auditopinion" rows="2" placeholder="审核意见" >${businessUnitAudit.auditopinion}</textarea>
</div>
</div>
</c:if>
<div class="form-group">
<label class="col-sm-2 control-label">*下一节点</label>
<div class="col-sm-6">
<select class="form-control select2" id="routeNum" name ="routeNum" style="width: 270px;">
</select>
</div>
</div>
<div id = "selectUsers" class="form-group">
<label class="col-sm-2 control-label">提交至:</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="targetUsersName" name ="targetUsersName" placeholder="下一级人员" onclick="showUser4AuditSelectsFun();" >
<input id="targetusers" name="targetusers" type="hidden" value="${businessUnitHandle.targetusers}"/>
<input class="form-control" id="targetjobs" name="targetjobs" type="hidden" value=""/>
</div>
</div>
<!-- 文件上传,显示 -->
<div class="form-group" style="margin:8px">
<label class="col-sm-2 control-label"></label>
<button type="button" class="btn btn-default btn-file" onclick="fileinput_process()" id="btn_save"><i class="fa fa-paperclip"></i>上传文件</button>
</div>
<div id="fileArea">
</div>
</form>
<div class="box box-primary" >
<div class="box-header with-border">
<h3 class="box-title">领用明细</h3>
<div class="box-tools pull-right">
<a onclick="addDetailFun()" class="btn btn-box-tool" data-toggle="tooltip" title="新增"><i class="glyphicon glyphicon-plus"></i></a>
<a onclick="deletesDetailFun()" class="btn btn-box-tool" data-toggle="tooltip" title="删除"><i class="glyphicon glyphicon-minus"></i></a>
</div>
</div>
<!-- /.box-header -->
<div class="box-body ">
<table id="table_outStockDetail"></table>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" onclick="closeModel()">关闭</button>
<button type="button" class="btn btn-primary" onclick="doupdate()" id="btn_save">保存</button>
<button type="button" class="btn btn-primary" onclick="submitFun()" id="btn_submit">提交审核</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,471 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ page import="com.sipai.entity.base.ServerObject"%>
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security"%>
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
<%request.setAttribute("AUDIT", SparePartCommString.STATUS_STOCK_AUDIT); %>
<%request.setAttribute("START", SparePartCommString.STATUS_STOCK_START); %>
<%request.setAttribute("FINISH", SparePartCommString.STATUS_STOCK_FINISH); %>
<%@page import="com.sipai.entity.activiti.ProcessType" %>
<%request.setAttribute("Out_Stock", ProcessType.O_Stock.getId());%>
<!DOCTYPE html>
<!-- <html lang="zh-CN"> -->
<!-- BEGIN HEAD -->
<head>
<title><%= ServerObject.atttable.get("TOPTITLE")%></title>
<!-- 引用页头及CSS页-->
<jsp:include page="/jsp/inc.jsp"></jsp:include>
<!-- bootstrap switch -->
<link rel="stylesheet" href="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/css/bootstrap3/bootstrap-switch.min.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/js/bootstrap-switch.min.js" charset="utf-8"></script>
<!--bootstrap-edittable 表格行内编辑 -->
<link rel="stylesheet" href="<%=request.getContextPath()%>/plugins/bootstrap-editable/css/bootstrap-editable.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-editable/js/bootstrap-editable.js" charset="utf-8"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-editable/js/bootstrap-table-editable.js" charset="utf-8"></script>
<style type="text/css">
.main-header{display:none;}
.content-header{display:none;}
.main-footer{display:none;}
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
.table-hover>tbody>tr:hover {
cursor: pointer;
}
</style>
<script type="text/javascript">
//跳转至待办
function TaskListFun4Type() {
window.parent.addTab('taskList', '待办事项', 'activiti/workflow/taskList.do?modelKey=${Out_Stock}-'+unitId);
}
var addFun = function() {
$("#searchForm").bootstrapValidator('validate');//提交验证
if ($("#searchForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + '/sparepart/outStockRecord/add.do', {companyId :unitId } , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
};
var editFun = function(id) {
stopBubbleDefaultEvent();
$.post(ext.contextPath + '/sparepart/outStockRecord/edit.do', {id:id} , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
var viewFun = function(id){
$.post(ext.contextPath + '/sparepart/outStockRecord/view.do', {id:id} , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
var outStockProcessFun = function(id){
stopBubbleDefaultEvent();
$.post(ext.contextPath + '/sparepart/outStockRecord/showProcessOutStockView.do', {id:id} , function(data) {
$("#subDiv").html(data);
openModal('outStockExcuteModal');
});
};
var deleteFun = function(id) {
stopBubbleDefaultEvent();
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete){
if (willDelete) {
$.post(ext.contextPath + '/sparepart/outStockRecord/delete.do', {id : id}, function(data) {
if(data==1){
$("#table").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','mainAlertdiv');
}
});
}
});
};
var deletesFun = function() {
var checkedItems = $("#table").bootstrapTable('getSelections');
var datas="";
$.each(checkedItems, function(index, item){
datas+=item.id+",";
});
if(datas==""){
showAlert('d','请先选择记录','mainAlertdiv');
}else{
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete){
if (willDelete) {
$.post(ext.contextPath + '/sparepart/outStockRecord/deletes.do', {ids:datas} , function(data) {
if(data>0){
$("#table").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','mainAlertdiv');
}
});
}
});
}
};
var dosearch = function() {
$("#table").bootstrapTable('refresh');
};
var companyId = "";
$(function() {
var flag = IsApp();
if (flag==true){
}else{
$(".main-header").show();
$(".content-header").show();
$(".main-footer").show();
}
//输入框验证
$("#searchForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
search_code: {
validators: {
notEmpty: {
message: '请先选择厂区'
}
}
},
}
});
/*//简易公司combotree
$.post(ext.contextPath + '/user/getUnitForTree.do', { ng: '' }, function (data) {
if (data.length == 1 && !data[0].hasOwnProperty("nodes")) {
//当登陆者的pid以下没有子节点时显示单独一个span
$("#search_pid").val(data[0].id);
$("#companyselect").hide();
$("#companyName").text("公司: " + data[0].text);
companyId = data[0].id;
initFun();
} else if ((data.length == 1 && data.nodes != "") || data.length > 1) {
//第一次加载时赋值
$("#search_pid").val(data[0].id);
$("#cname_input").val(data[0].text);
companyId = data[0].id;
initFun();
//$table.bootstrapTable('refresh');//异步加载重新刷新,待修改
$('#companytree').treeview({
data: data,
showBorder: false,
levels: 3,
});
$('#companytree').on('nodeSelected', function (event, data) {
$("#search_pid").val(data.id);
$("#cname_input").val(data.text);
document.getElementById('ul_tree').style.display = "none";
companyId= data.id;
initFun();
});
} else {
//待完善
};
}, 'json');
//防止点击树的+号收起下拉框
$("#ul_tree").on("click", function (e) {
event.stopPropagation();
});
//点击空白隐藏树
$(document).click(function (e) {
var divTree = $('#ul_tree'); // 设置目标区域
if (!divTree.is(e.target) && divTree.has(e.target).length === 0) {
divTree.hide()
}
})*/
initFun();
});
var initFun = function(){
companyId = unitId;
//选择仓库
$.post(ext.contextPath + "/sparepart/warehouse/getWarehouseForSelectByCompanyId.do", {companyId:companyId}, function(data) {
$("#warehouse_id").empty();
var selelct =$("#warehouse_id").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('').trigger("change");
selelct.on("change",function(e){
dosearch();
});
},'json');
$("#table").bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/outStockRecord/getList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
companyId = unitId;
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
search_name: $('#search_name').val(),
search_code: companyId,
warehouseId: $('#warehouse_id').val(),
}
},
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
onClickRow: function (row) {//单击行事件,执行查看功能
// viewFun(row.id);
},
//detailView: true,//父子表
columns: [
{
checkbox: true, // 显示一个勾选框
},{
field: 'id', // 返回json数据中的name
title: '领用单号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'insdt', // 返回json数据中的name
title: '申请日期', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter:function (value, row, index){
return value.substring(0,10);
},
},{
field: 'outDate', // 返回json数据中的name
title: '领用日期', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter:function (value, row, index){
return value.substring(0,10);
},
},{
field: 'warehouse.name', // 返回json数据中的name
title: '所属仓库', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},/* {
field: 'dept.name', // 返回json数据中的name
title: '领用部门', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
}, */{
field: 'userName', // 返回json数据中的name
title: '领用人', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'auditManName', // 返回json数据中的name
title: '审核人', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'totalMoney', // 返回json数据中的name
title: '含税合计/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter: function (value, row, index){
return value.toFixed(4);
},
},{
field: 'status', // 返回json数据中的name
title: '审核状态', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter: function (value, row, index){
switch (value){
case '${FINISH}' :
return "审核完成";
case '${START}' :
return "未提交";
case '${AUDIT}' :
return "已提交审核";
default :
return value;
}
}
},{
title: "操作",
align: 'center',
valign: 'middle',
width: 120, // 定义列的宽度单位为像素px
formatter: function (value, row, index) {
var buts= '';
if(row.status == '${START}'){
buts+= '<security:authorize buttonUrl="sparepart/outStockRecord/edit.do">';
buts+= '<button class="btn btn-default btn-sm" title="编辑" onclick="editFun(\'' + row.id + '\')"><i class="fa fa-edit"></i><span class="hidden-md hidden-lg"> 编辑</span></button>';
buts+= '</security:authorize>';
buts+= '<security:authorize buttonUrl="sparepart/outStockRecord/delete.do">';
buts+='<button class="btn btn-default btn-sm" title="删除" onclick="deleteFun(\''+row.id+'\')"><i class="fa fa fa-trash-o"></i><span class="hidden-md hidden-lg">删除</span></button>';
buts+= '</security:authorize>';
}else{
buts+= '<button class="btn btn-default btn-sm" title="查看详情" onclick="viewFun(\'' + row.id + '\')"><i class="fa fa-eye"></i><span class="hidden-md hidden-lg">查看详情</span></button>';
}
//流程中的显示 快捷跳转
if(row.status != '${FINISH}'){
buts += '<button type="button" class="btn btn-default btn-sm" title="处理" onclick="TaskListFun4Type(\'' + row.id + '\')"><i class="fa fa-play"></i><span class="hidden-md hidden-lg"> 处理</span></button>';
}
buts='<div class="btn-group" >'+buts+'</div>';
return buts;
}
}
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
}
</script>
</head>
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
<div class="wrapper">
<!-- 引用top -->
<%-- <jsp:include page="/jsp/top.jsp"></jsp:include> --%>
<!-- 菜单栏 -->
<%-- <jsp:include page="/jsp/left.jsp"></jsp:include> --%>
<div class="content-wrapper">
<!-- Main content -->
<section class="content container-fluid">
<div id="mainAlertdiv"></div>
<div id="subDiv"></div>
<div id="subViewDiv"></div>
<div id="subEditDiv"></div>
<div id="subDetailDiv"></div>
<div id="stock4SelectsDiv"></div>
<div id="user4SelectDiv"></div>
<div id="fileInputDiv"></div>
<form id="searchForm">
<div >
<%--<div class="form-group " style="margin-bottom:10px;">
<input id="search_pid" name="search_pid" type="hidden" />
<span id="companyName" style="height:31px;color:#000000;border-top-left-radius: 4px;border-bottom-left-radius: 4px;font-weight:bold"></span>
</div>
<ul id="companyselect" style="list-style-type:none;padding-left:0px;width:300px;">
<li class="dropdown" style="width:300px;">
<!-- Menu toggle button -->
<a href="#" class="dropdown-toggle" data-toggle="dropdown"
style="width:300px;" onclick="document.getElementById('ul_tree').style.display = 'block';">
<div class="input-group">
<span class="input-group-addon"
style="height:31px;color:#000000;border-top-left-radius: 4px;border-bottom-left-radius: 4px;font-weight:bold">公司:</span>
<input class="form-control " id="cname_input" name="cname_input"
style="height:31px;width: 220px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;"
readonly />
</div><!-- /input-group -->
</a>
<ul id="ul_tree" class="dropdown-menu" data-stopPropagation="true">
<li class="header">
<div id="companytree" style="width: 275px;overflow:auto;"></div>
</li>
</ul>
</li>
</ul>--%>
<div class="form-group" style="padding:0;">
<div class="btn-group" style="width: 220px;padding-bottom:10px;">
<security:authorize buttonUrl="sparepart/outStockRecord/add.do">
<button type="button" class="btn btn-default btn-sm" onclick="addFun();"><i class="fa fa-plus"></i> 新增</button>
<button type="button" class="btn btn-default btn-sm" onclick="deletesFun();"><i class="fa fa-trash-o"></i> 删除</button>
</security:authorize>
</div>
<div class="form-group pull-right form-inline" >
<label class="form-label" id="companylabel">所属仓库:</label>
<select class="form-control select2 " id="warehouse_id" name ="warehouse_id" style="width: 160px;">
</select>
<div class="input-group input-group-sm" style="width: 250px;">
<input type="text" id="search_name" name="search_name" class="form-control pull-right" placeholder="领用单号">
<div class="input-group-btn">
<button class="btn btn-default" onclick="dosearch();"><i class="fa fa-search"></i></button>
</div>
</div>
</div>
</div>
</div>
</form>
<table id="table"></table>
</section>
<!-- /.content -->
</div>
<%-- <jsp:include page="/jsp/bottom.jsp"></jsp:include> --%>
<%-- <jsp:include page="/jsp/side.jsp"></jsp:include> --%>
</div>
</body>
<!-- 文件上传-->
<link rel="stylesheet" href="<%=request.getContextPath()%>/node_modules/bootstrap-fileinput/css/fileinput.min.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-fileinput/js/fileinput.min.js" charset="utf-8"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-fileinput/js/locales/zh.js" charset="utf-8"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/JS/commonFileUpload.js" charset="utf-8"></script>
</html>

View File

@ -0,0 +1,247 @@
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<%request.setAttribute("START", SparePartCommString.STATUS_STOCK_START); %>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
//流程审核文件上传所需参数
var masterId_process = '${id}';//业务Id
var tbName_process = 'TB_Process_UploadFile'; //数据表
var nameSpace_process ='ProcessUploadFile';//保存文件夹
var status = 'delete';//有删除权限
function dosave() {
$('#subForm').data('bootstrapValidator')
.updateStatus('userName', 'NOT_VALIDATED',null)
.validateField('userName');
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/sparepart/outStocksectionRecord/save.do", $("#subForm").serialize(), function(data) {
if (data.res == 1){
closeModal('subModal');
$("#table").bootstrapTable('refresh');
//editFun('${id}');
}else if(data.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}
}
//输入框验证
$("#subForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
outDate: {
validators: {
notEmpty: {
message: '领用日期不能为空'
}
}
},
warehouseId: {
validators: {
notEmpty: {
message: '所出仓库不能为空'
}
}
},
inhouseId: {
validators: {
notEmpty: {
message: '领入仓库不能为空'
}
}
},
userName: {
validators: {
notEmpty: {
message: '领用人不能为空'
}
}
},
}
});
$(function(){
//初始化文件显示
getFileList_process();
//选择部门
$.post(ext.contextPath + "/user/getDeptByBizId4Select.do", {companyId:'${company.id}'}, function(data) {
var selelct = $("#deptId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('').trigger("change");
},'json');
//选择所出仓库
$.post(ext.contextPath + "/sparepart/warehouse/getWarehouseForSelectByCompanyId.do", {companyId:"${company.id}"}, function(data) {
var selelct =$("#warehouseId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('').trigger("change");
},'json');
//选择领入仓库
$.post(ext.contextPath + "/sparepart/outStocksectionRecord/showinhouseIdForSelects.do", {companyId:"${company.id}"}, function(data) {
var selelct =$("#inhouseId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('').trigger("change");
},'json');
//采购时间
$("#outDate").datepicker({
language: 'zh-CN',
autoclose: true,
todayHighlight: true,
format:'yyyy-mm-dd',
});
$("#outDate").datepicker('setDate',new Date());
});
//选择入库负责人
var showUser4SelectsFun = function() {
var userIds= $("#userId").val();
$.post(ext.contextPath + '/user/userForSelectByStructure.do', {formId:"subForm",hiddenId:"userId",textId:"userName",userIds:userIds} , function(data) {
$("#user4SelectDiv").html(data);
openModal("user4SelectModal");
});
};
//选择入库审核人
var showUser4AuditSelectsFun = function() {
var userIds= $("#auditManId").val();
$.post(ext.contextPath + '/user/userForSelectByStructure.do', {formId:"subForm",hiddenId:"auditManId",textId:"auditManName",userIds:userIds} , function(data) {
$("#user4SelectDiv").html(data);
openModal("user4SelectModal");
});
};
</script>
<div class="modal fade" id="subModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">新增物资领用记录</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<input name="status" type="hidden" value="${START}"/>
<div class="form-group">
<label class="col-sm-2 control-label">所属厂区</label>
<div class="col-sm-10">
<input name="bizId" type="hidden" value="${company.id}"/>
<p class="form-control-static" >${company.name}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*领用单号</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="id" name ="id" placeholder="名称" value="${id}" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*领用日期</label>
<div class="col-sm-6">
<div class="input-group date">
<div class="input-group-addon">
<i class="fa fa-calendar"></i>
</div>
<input type="text" class="form-control" id="outDate" name="outDate" style="width: 230px;" placeholder="请选择"/>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*所出仓库</label>
<div class="col-sm-6">
<select class="form-control select2" id="warehouseId" name="warehouseId" style="width: 270px;" ></select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*领入仓库</label>
<div class="col-sm-6">
<select class="form-control select2" id="inhouseId" name="inhouseId" style="width: 270px;" ></select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">票据单号</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="billNumber" name ="billNumber" placeholder="票据单号" value="">
</div>
</div>
<!-- <div class="form-group">
<label class="col-sm-2 control-label">*领用部门</label>
<div class="col-sm-6">
<select class="form-control select2" id="deptId" name ="deptId" style="width: 270px;">
</select>
</div>
</div> !-->
<div class="form-group">
<label class="col-sm-2 control-label">*领用人</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="userName" name="userName" placeholder="点击选择" onclick="showUser4SelectsFun();">
<input id="userId" name="userId" type="hidden" />
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">审核人</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="auditManName" name="auditManName" placeholder="点击选择" onclick="showUser4AuditSelectsFun();">
<input id="auditManId" name="auditManId" type="hidden" />
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">备注</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" id ="remark" name ="remark" placeholder="备注..."></textarea>
</div>
</div>
<!-- 文件上传,显示 -->
<div class="form-group" style="margin:8px">
<label class="col-sm-2 control-label"></label>
<button type="button" class="btn btn-default btn-file" onclick="fileinput_process()" id="btn_save"><i class="fa fa-paperclip"></i>上传文件</button>
</div>
<div id="fileArea">
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="dosave()" id="btn_save">保存</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,480 @@
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<%request.setAttribute("AUDIT", SparePartCommString.STATUS_STOCK_AUDIT); %>
<%request.setAttribute("START", SparePartCommString.STATUS_STOCK_START); %>
<%request.setAttribute("FINSH", SparePartCommString.STATUS_STOCK_FINISH); %>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
//流程审核文件上传所需参数
var masterId_process = '${outStockRecord.id}';//业务Id
var tbName_process = 'TB_Process_UploadFile'; //数据表
var nameSpace_process ='ProcessUploadFile';//保存文件夹
var status = 'delete';//有删除权限
function doupdate() {
$('#subForm').data('bootstrapValidator')
.updateStatus('userName', 'NOT_VALIDATED',null)
.validateField('userName');
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/sparepart/outStocksectionRecord/update.do", $("#subForm").serialize(), function(data) {
if (data.res == 1){
closeModal('subModal');
$("#table").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}
}
function dosubmit(){
$("#status").val('${AUDIT}');
$('#subForm').data('bootstrapValidator')
.updateStatus('auditManName', 'NOT_VALIDATED',null)
.validateField('auditManName');
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
var url = "";
if('${taskName}'!= null && '${taskName}'!=""){
url = "/sparepart/outStocksectionRecord/submitOutStockHandle.do";
}else{
url = "/sparepart/outStocksectionRecord/startProcess.do";
}
$.post(ext.contextPath + url, $("#subForm").serialize(), function(data) {
if (data.res == 1) {
$("#table").bootstrapTable('refresh');
closeModal('subModal');
}else if(data.res == 0){
showAlert('d','保存失败');
}else if(data.res == 2){
showAlert('d','未检测到出库审核流程,请先部署出库审核流程!');
}else{
showAlert('d',data.res);
}
},'json');
}
}
//提交时先验证审核人不能为空,保存时审核人可以为空
function submitFun(){
//没有领用明细不能发起审核
var allTableData = $("#table_outStockDetail").bootstrapTable('getData');
if(allTableData.length == 0){
showAlert('d','请先添加领用的明细信息!','alertDiv');
}else{
//新增的输入框添加验证
$("#subForm").data('bootstrapValidator').addField('auditManName',{
validators: {
notEmpty: {
message: '审核人不能为空'
},
}
});
dosubmit();
}
}
//关闭模态框时刷新表格数据
function closeModel(){
closeModal('subModal');
$("#table").bootstrapTable('refresh');
}
//新增入库明细
var addDetailFun = function() {
//新增物资领用明细时,验证所属仓库不能为空
$("#subForm").data('bootstrapValidator').validateField('warehouseId');
if($("#subForm").data('bootstrapValidator').isValidField('warehouseId')){
var allTableData = $("#table_outStockDetail").bootstrapTable('getData');
var stockIds="";
$.each(allTableData,function(index,item){
if(stockIds!=""){
stockIds+=",";
}
stockIds+=item.stockId;
})
$.post(ext.contextPath + '/sparepart/outStocksectionRecord/selectStockForOutStockDetails.do', {stockIds:stockIds,companyId:'${companyId}',
warehouseId:$("#warehouseId").val()},
function(data) {
$("#stock4SelectsDiv").html(data);
openModal('subDetailModal');
});
}
};
var doFinishSelects = function(data) {
$.post(ext.contextPath + '/sparepart/outStocksectionRecord/saveOutStockRecordDetails.do', {outstockRecordId:'${outStockRecord.id}',
stockIds:data} , function(data) {
if(data.res){
$("#table_outStockDetail").bootstrapTable('refresh');
}
},'json');
};
//删除多条申购明细数据
var deletesDetailFun = function() {
var checkedItems = $("#table_outStockDetail").bootstrapTable('getSelections');
var datas="";
$.each(checkedItems, function(index, item){
datas+=item.id+",";
});
if(datas==""){
showAlert('d','请先选择记录','alertDiv');
}else{
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete) {
if (willDelete) {
$.post(ext.contextPath + '/sparepart/outStocksectionRecord/deletesoutStockRecordDetail.do', {ids:datas} , function(data) {
if(data>0){
$("#table_outStockDetail").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','alertDiv');
}
});
}
});
}
};
//输入框验证
$("#subForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
outDate: {
validators: {
notEmpty: {
message: '领用日期不能为空'
}
}
},
warehouseId: {
validators: {
notEmpty: {
message: '所出仓库不能为空'
}
}
},
inhouseId: {
validators: {
notEmpty: {
message: '领入仓库不能为空'
}
}
},
deptId: {
validators: {
notEmpty: {
message: '领用部门不能为空'
}
}
},
userName: {
validators: {
notEmpty: {
message: '领用人不能为空'
}
}
},
}
});
$(function(){
//初始化文件显示
getFileList_process();
$('#table_outStockDetail').bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/outStocksectionRecord/getOutStockDetailList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
pid:'${outStockRecord.id}',
}
},
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
columns: [
{
checkbox: true, // 显示一个勾选框
},{
field: 'goods.name', // 返回json数据中的name
title: '物品名称', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.model', // 返回json数据中的name
title: '规格型号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.brand', // 返回json数据中的name
title: '品牌', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'goods.unit', // 返回json数据中的name
title: '单位', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},/* {
field: 'dept.name', // 返回json数据中的name
title: '领用部门', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
}, */
{
field: 'outNumber', // 返回json数据中的name
title: '领用数量', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
editable: { //编辑列元素
type: 'text',
title: '领用数量',
validate: function (v) {
if (!v) return '数量不能为空';
}
}
},{
field: 'price', // 返回json数据中的name
title: '单价/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'totalMoney', // 返回json数据中的name
title: '合计/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},
],
//保存列修改后的数据
onEditableSave: function (field, row, oldValue, $el) {
$.post(ext.contextPath + "/sparepart/outStocksectionRecord/updateOutStockDetail.do", {id:row.id,price:row.price,number:row.outNumber}, function(data) {
if (data.res == 1){
$("#table_outStockDetail").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','编辑失败');
}else{
showAlert('d',data.res);
$("#table_outStockDetail").bootstrapTable('refresh');
}
},'json');
},
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table_outStockDetail");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
//选择部门
$.post(ext.contextPath + "/user/getDeptByBizId4Select.do", {companyId:"${outStockRecord.bizId}"}, function(data) {
var selelct = $("#deptId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('${outStockRecord.deptId}').trigger("change");
},'json');
//选择仓库
$.post(ext.contextPath + "/sparepart/outStocksectionRecord/showinhouseIdForSelects.do", {companyId:"${outStockRecord.bizId}"}, function(data) {
var selelct =$("#inhouseId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('${outStockRecord.inhouseId}').trigger("change");
},'json');
//选择仓库
$.post(ext.contextPath + "/sparepart/warehouse/getWarehouseForSelectByCompanyId.do", {companyId:"${outStockRecord.bizId}"}, function(data) {
var selelct =$("#warehouseId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('${outStockRecord.warehouseId}').trigger("change");
},'json');
//领用时间
$("#outDate").datepicker({
language: 'zh-CN',
autoclose: true,
todayHighlight: true,
format:'yyyy-mm-dd',
});
});
//选择入库负责人
var showUser4SelectsFun = function() {
var userIds= $("#userId").val();
$.post(ext.contextPath + '/user/userForSelectByStructure.do', {formId:"subForm",hiddenId:"userId",textId:"userName",userIds:userIds} , function(data) {
$("#user4SelectDiv").html(data);
openModal("user4SelectModal");
});
};
//选择入库审核人
var showUser4AuditSelectsFun = function() {
var userIds= $("#auditManId").val();
$.post(ext.contextPath + '/user/userForSelectByStructure.do', {formId:"subForm",hiddenId:"auditManId",textId:"auditManName",userIds:userIds} , function(data) {
$("#user4SelectDiv").html(data);
openModal("user4SelectModal");
});
};
</script>
<div class="modal fade" id="subModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">编辑物资领用记录</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<input id="status" name="status" type="hidden" value="${outStockRecord.status}"/>
<input id="bizId" name="bizId" type="hidden" value="${outStockRecord.bizId}"/>
<div class="form-group">
<label class="col-sm-2 control-label">所属厂区</label>
<div class="col-sm-6" >
<p class="form-control-static" >${outStockRecord.company.name}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*领用单号</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="id" name ="id" placeholder="名称" value="${outStockRecord.id}" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*领用日期</label>
<div class="col-sm-6">
<div class="input-group date">
<div class="input-group-addon">
<i class="fa fa-calendar"></i>
</div>
<input type="text" class="form-control" id="outDate" name="outDate" style="width: 230px;" value="${outStockRecord.outDate.substring(0,10)}" placeholder="请选择"/>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*所出仓库</label>
<div class="col-sm-6">
<select class="form-control select2" id="warehouseId" name="warehouseId" style="width: 270px;" ></select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*领入仓库</label>
<div class="col-sm-6">
<select class="form-control select2" id="inhouseId" name="inhouseId" style="width: 270px;" ></select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">票据单号</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="billNumber" name ="billNumber" placeholder="票据单号" value="${outStockRecord.billNumber}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*领用人</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="userName" name="userName" placeholder="点击选择" onclick="showUser4SelectsFun();" value="${outStockRecord.userName}">
<input id="userId" name="userId" type="hidden" value="${outStockRecord.userId}" />
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">审核人</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="auditManName" name="auditManName" placeholder="点击选择" onclick="showUser4AuditSelectsFun();" value="${outStockRecord.auditManName}">
<input id="auditManId" name="auditManId" type="hidden" value="${outStockRecord.auditManId}" />
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">备注</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" id ="remark" name ="remark" placeholder="备注...">${outStockRecord.remark}</textarea>
</div>
</div>
<!-- 文件上传,显示 -->
<div class="form-group" style="margin:8px">
<label class="col-sm-2 control-label"></label>
<button type="button" class="btn btn-default btn-file" onclick="fileinput_process()" id="btn_save"><i class="fa fa-paperclip"></i>上传文件</button>
</div>
<div id="fileArea">
</div>
</form>
<div class="box box-primary" >
<div class="box-header with-border">
<h3 class="box-title">领用明细</h3>
<div class="box-tools pull-right">
<a onclick="addDetailFun()" class="btn btn-box-tool" data-toggle="tooltip" title="新增"><i class="glyphicon glyphicon-plus"></i></a>
<a onclick="deletesDetailFun()" class="btn btn-box-tool" data-toggle="tooltip" title="删除"><i class="glyphicon glyphicon-minus"></i></a>
</div>
</div>
<!-- /.box-header -->
<div class="box-body ">
<table id="table_outStockDetail"></table>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" onclick="closeModel()">关闭</button>
<button type="button" class="btn btn-primary" onclick="doupdate()" id="btn_save">保存</button>
<button type="button" class="btn btn-primary" onclick="submitFun()" id="btn_save">提交</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,550 @@
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<%request.setAttribute("AUDIT", SparePartCommString.STATUS_STOCK_AUDIT); %>
<%request.setAttribute("START", SparePartCommString.STATUS_STOCK_START); %>
<%request.setAttribute("FINSH", SparePartCommString.STATUS_STOCK_FINISH); %>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
//流程审核文件上传所需参数
var masterId_process = '${outStockRecord.id}';//业务Id
var tbName_process = 'TB_Process_UploadFile'; //数据表
var nameSpace_process ='ProcessUploadFile';//保存文件夹
var status = 'delete';//有删除权限
function doupdate() {
$('#subForm').data('bootstrapValidator')
.updateStatus('userName', 'NOT_VALIDATED',null)
.validateField('userName');
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/sparepart/outStocksectionRecord/update.do", $("#subForm").serialize(), function(data) {
if (data.res == 1){
closeModal('subModal');
$("#table").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}
}
/* function dosubmit(routeNum){
$("#status").val('${AUDIT}');
$('#subForm').data('bootstrapValidator')
.updateStatus('auditManName', 'NOT_VALIDATED',null)
.validateField('auditManName');
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
var targetusers = $("#auditManId").val();
$("#targetusers").val(targetusers);
$.post(ext.contextPath + "/sparepart/outStocksectionRecord/update.do", $("#subForm").serialize(), function(data) {
if (data.res == 1){
$.post(ext.contextPath + "/sparepart/outStocksectionRecord/submitOutStockHandle.do", $("#subUnitForm").serialize()+"&routeNum="+routeNum, function(unitdata) {
if (unitdata.res == 1) {
closeModal('subModal')
$("#table").bootstrapTable('refresh');
}else if(unitdata.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}else if(data.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}
} */
function dosubmit(){
$('#subUnitForm').data('bootstrapValidator')
.updateStatus('targetUsersName', 'NOT_VALIDATED',null)
.validateField('targetUsersName');
$("#subForm").bootstrapValidator('validate');//提交验证
$("#subUnitForm").bootstrapValidator('validate');//提交验证
setTimeout(function(){
if ($("#subForm").data('bootstrapValidator').isValid() && $("#subUnitForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/sparepart/outStocksectionRecord/update.do", $("#subForm").serialize(), function(data) {
var routeNum = $("#routeNum").val();
if (data.res == 1){
$.post(ext.contextPath + "/sparepart/outStocksectionRecord/submitOutStockHandle.do", $("#subUnitForm").serialize()+"&routeNum="+routeNum, function(unitdata) {
if (unitdata.res == 1) {
closeModal('subModal')
$("#table").bootstrapTable('refresh');
}else if(unitdata.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}else if(data.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}
}, 100);
}
//提交时先验证审核人不能为空,保存时审核人可以为空
function submitFun(){
//没有入库明细不能发起审核
var allTableData = $("#table_outStockDetail").bootstrapTable('getData');
if(allTableData.length == 0){
showAlert('d','请先添加出库的明细信息!','alertDiv');
}else{
dosubmit();
}
}
//关闭模态框时刷新表格数据
function closeModel(){
closeModal('subModal');
$("#table").bootstrapTable('refresh');
}
//新增入库明细
var addDetailFun = function() {
//新增物资领用明细时,验证所属仓库不能为空
$("#subForm").data('bootstrapValidator').validateField('warehouseId');
if($("#subForm").data('bootstrapValidator').isValidField('warehouseId')){
var allTableData = $("#table_outStockDetail").bootstrapTable('getData');
var stockIds="";
$.each(allTableData,function(index,item){
if(stockIds!=""){
stockIds+=",";
}
stockIds+=item.stockId;
})
$.post(ext.contextPath + '/sparepart/outStocksectionRecord/selectStockForOutStockDetails.do', {stockIds:stockIds,companyId:'${outStockRecord.bizId}',
warehouseId:$("#warehouseId").val()},
function(data) {
$("#stock4SelectsDiv").html(data);
openModal('subDetailModal');
});
}
};
var doFinishSelects = function(data) {
$.post(ext.contextPath + '/sparepart/outStocksectionRecord/saveOutStockRecordDetails.do', {outstockRecordId:'${outStockRecord.id}',
stockIds:data} , function(data) {
if(data.res){
$("#table_outStockDetail").bootstrapTable('refresh');
}
},'json');
};
//删除多条申购明细数据
var deletesDetailFun = function() {
var checkedItems = $("#table_outStockDetail").bootstrapTable('getSelections');
var datas="";
$.each(checkedItems, function(index, item){
datas+=item.id+",";
});
if(datas==""){
showAlert('d','请先选择记录','alertDiv');
}else{
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete) {
if (willDelete) {
$.post(ext.contextPath + '/sparepart/outStocksectionRecord/deletesOutStockRecordDetail.do', {ids:datas} , function(data) {
if(data>0){
$("#table_outStockDetail").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','alertDiv');
}
});
}
});
}
};
//输入框验证
$("#subForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
outDate: {
validators: {
notEmpty: {
message: '领用日期不能为空'
}
}
},
warehouseId: {
validators: {
notEmpty: {
message: '所属仓库不能为空'
}
}
},
deptId: {
validators: {
notEmpty: {
message: '领用部门不能为空'
}
}
},
userName: {
validators: {
notEmpty: {
message: '领用人不能为空'
}
}
},
}
});
$("#subUnitForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
targetUsersName: {
validators: {
notEmpty: {
message: '审核人不能为空'
}
}
},
}
});
$(function(){
//初始化文件显示
getFileList_process();
//初始化选择框方法在workflow.js里
processSelectNodeForHandle("${businessUnitHandle.taskid}");
$('#table_outStockDetail').bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/outStocksectionRecord/getOutStockDetailList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
pid:'${outStockRecord.id}',
}
},
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
columns: [
{
checkbox: true, // 显示一个勾选框
},{
field: 'goods.name', // 返回json数据中的name
title: '物品名称', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.model', // 返回json数据中的name
title: '规格型号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.brand', // 返回json数据中的name
title: '品牌', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'goods.unit', // 返回json数据中的name
title: '单位', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},/* {
field: 'dept.name', // 返回json数据中的name
title: '领用部门', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
}, */{
field: 'outNumber', // 返回json数据中的name
title: '领用数量', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
editable: { //编辑列元素
type: 'text',
title: '领用数量',
validate: function (v) {
if (!v) return '数量不能为空';
}
}
},{
field: 'price', // 返回json数据中的name
title: '单价/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'totalMoney', // 返回json数据中的name
title: '合计/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},
],
//保存列修改后的数据
onEditableSave: function (field, row, oldValue, $el) {
$.post(ext.contextPath + "/sparepart/outStocksectionRecord/updateOutStockDetail.do", {id:row.id,price:row.price,number:row.outNumber}, function(data) {
if (data.res == 1){
$("#table_outStockDetail").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','编辑失败');
}else{
showAlert('d',data.res);
$("#table_outStockDetail").bootstrapTable('refresh');
}
},'json');
},
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table_outStockDetail");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
//选择部门
$.post(ext.contextPath + "/user/getDeptByBizId4Select.do", {companyId:"${outStockRecord.bizId}"}, function(data) {
var selelct = $("#deptId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('${outStockRecord.deptId}').trigger("change");
},'json');
//选择仓库
$.post(ext.contextPath + "/sparepart/outStocksectionRecord/showinhouseIdForSelects.do", {companyId:"${outStockRecord.bizId}"}, function(data) {
var selelct =$("#inhouseId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('${outStockRecord.inhouseId}').trigger("change");
},'json');
//选择仓库
$.post(ext.contextPath + "/sparepart/warehouse/getWarehouseForSelectByCompanyId.do", {companyId:"${outStockRecord.bizId}"}, function(data) {
var selelct =$("#warehouseId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('${outStockRecord.warehouseId}').trigger("change");
},'json');
//领用时间
$("#outDate").datepicker({
language: 'zh-CN',
autoclose: true,
todayHighlight: true,
format:'yyyy-mm-dd',
});
});
//选择入库负责人
var showUser4SelectsFun = function() {
var userIds= $("#userId").val();
$.post(ext.contextPath + '/user/userForSelectByStructure.do', {formId:"subForm",hiddenId:"userId",textId:"userName",userIds:userIds} , function(data) {
$("#user4SelectDiv").html(data);
openModal("user4SelectModal");
});
};
//选择入库审核人
var showUser4AuditSelectsFun = function() {
var userIds= $("#targetusers").val();
var jobIds= $("#targetjobs").val();
$.post(ext.contextPath + '/user/userForSelectByCompany.do', {formId:"subUnitForm",hiddenId:"targetusers",textId:"targetUsersName",userIds:userIds,jobIds:jobIds} , function(data) {
$("#user4SelectDiv").html(data);
openModal("user4SelectModal");
});
};
</script>
<div class="modal fade" id="subModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">调整领用物资</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<input id="status" name="status" type="hidden" value="${outStockRecord.status}"/>
<input id="bizId" name="bizId" type="hidden" value="${outStockRecord.bizId}"/>
<div class="form-group">
<label class="col-sm-2 control-label">所属厂区</label>
<div class="col-sm-6" >
<p class="form-control-static" >${outStockRecord.company.name}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*领用单号</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="id" name ="id" placeholder="名称" value="${outStockRecord.id}" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*领用日期</label>
<div class="col-sm-6">
<div class="input-group date">
<div class="input-group-addon">
<i class="fa fa-calendar"></i>
</div>
<input type="text" class="form-control" id="outDate" name="outDate" style="width: 230px;" value="${outStockRecord.outDate.substring(0,10)}" placeholder="请选择"/>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*所出仓库</label>
<div class="col-sm-6">
<select class="form-control select2" id="warehouseId" name="warehouseId" style="width: 270px;" ></select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*领入仓库</label>
<div class="col-sm-6">
<select class="form-control select2" id="inhouseId" name="inhouseId" style="width: 270px;" ></select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">票据单号</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="billNumber" name ="billNumber" placeholder="票据单号" value="${outStockRecord.billNumber}">
</div>
</div>
<!-- <div class="form-group">
<label class="col-sm-2 control-label">*领用部门</label>
<div class="col-sm-6">
<select class="form-control select2" id="deptId" name ="deptId" style="width: 270px;">
</select>
</div>
</div> -->
<div class="form-group">
<label class="col-sm-2 control-label">*领用人</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="userName" name="userName" placeholder="点击选择" onclick="showUser4SelectsFun();" value="${outStockRecord.userName}">
<input id="userId" name="userId" type="hidden" value="${outStockRecord.userId}" />
</div>
</div>
<%-- <div class="form-group">
<label class="col-sm-2 control-label">审核人</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="auditManName" name="auditManName" placeholder="点击选择" onclick="showUser4AuditSelectsFun();" value="${outStockRecord.auditManName}">
<input id="auditManId" name="auditManId" type="hidden" value="${outStockRecord.auditManId}" />
</div>
</div> --%>
<div class="form-group">
<label class="col-sm-2 control-label">备注</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" id ="remark" name ="remark" placeholder="备注...">${outStockRecord.remark}</textarea>
</div>
</div>
</form>
<!--出库审核退回后显示 -->
<form class="form-horizontal" id="subUnitForm" enctype="multipart/form-data" >
<input type="hidden" class="form-control" name ="id" value="${businessUnitHandle.id}">
<input type="hidden" class="form-control" name ="processid" value="${businessUnitHandle.processid}">
<input type="hidden" class="form-control" name ="taskid" value="${businessUnitHandle.taskid}">
<input type="hidden" class="form-control" name ="businessid" value="${businessUnitHandle.businessid}">
<input type="hidden" class="form-control" name ="taskdefinitionkey" value="${businessUnitHandle.taskdefinitionkey}">
<%-- <input type="hidden" class="form-control" id= "targetusers" name ="targetusers" value="${businessUnitHandle.targetusers}"> --%>
<input type="hidden" class="form-control" name ="unitid" value="${businessUnitHandle.unitid}">
<c:if test='${not empty businessUnitAudit.auditopinion }'>
<div class="form-group">
<label class="col-sm-2 control-label">审核意见:</label>
<div class="col-sm-10">
<textarea class="form-control " id="auditopinion" name="auditopinion" rows="2" placeholder="审核意见" >${businessUnitAudit.auditopinion}</textarea>
</div>
</div>
</c:if>
<div class="form-group">
<label class="col-sm-2 control-label">*下一节点</label>
<div class="col-sm-6">
<select class="form-control select2" id="routeNum" name ="routeNum" style="width: 270px;">
</select>
</div>
</div>
<div id = "selectUsers" class="form-group">
<label class="col-sm-2 control-label">提交至:</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="targetUsersName" name ="targetUsersName" placeholder="下一级人员" onclick="showUser4AuditSelectsFun();" >
<input id="targetusers" name="targetusers" type="hidden" value="${businessUnitHandle.targetusers}"/>
<input class="form-control" id="targetjobs" name="targetjobs" type="hidden" value=""/>
</div>
</div>
<!-- 文件上传,显示 -->
<div class="form-group" style="margin:8px">
<label class="col-sm-2 control-label"></label>
<button type="button" class="btn btn-default btn-file" onclick="fileinput_process()" id="btn_save"><i class="fa fa-paperclip"></i>上传文件</button>
</div>
<div id="fileArea">
</div>
</form>
<div class="box box-primary" >
<div class="box-header with-border">
<h3 class="box-title">领用明细</h3>
<div class="box-tools pull-right">
<a onclick="addDetailFun()" class="btn btn-box-tool" data-toggle="tooltip" title="新增"><i class="glyphicon glyphicon-plus"></i></a>
<a onclick="deletesDetailFun()" class="btn btn-box-tool" data-toggle="tooltip" title="删除"><i class="glyphicon glyphicon-minus"></i></a>
</div>
</div>
<!-- /.box-header -->
<div class="box-body ">
<table id="table_outStockDetail"></table>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" onclick="closeModel()">关闭</button>
<button type="button" class="btn btn-primary" onclick="doupdate()" id="btn_save">保存</button>
<button type="button" class="btn btn-primary" onclick="submitFun()" id="btn_submit">提交审核</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,464 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ page import="com.sipai.entity.base.ServerObject"%>
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security"%>
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
<%request.setAttribute("AUDIT", SparePartCommString.STATUS_STOCK_AUDIT); %>
<%request.setAttribute("START", SparePartCommString.STATUS_STOCK_START); %>
<%request.setAttribute("FINSH", SparePartCommString.STATUS_STOCK_FINISH); %>
<!DOCTYPE html>
<!-- <html lang="zh-CN"> -->
<!-- BEGIN HEAD -->
<head>
<title><%= ServerObject.atttable.get("TOPTITLE")%></title>
<!-- 引用页头及CSS页-->
<jsp:include page="/jsp/inc.jsp"></jsp:include>
<!-- bootstrap switch -->
<link rel="stylesheet" href="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/css/bootstrap3/bootstrap-switch.min.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/js/bootstrap-switch.min.js" charset="utf-8"></script>
<!--bootstrap-edittable 表格行内编辑 -->
<link rel="stylesheet" href="<%=request.getContextPath()%>/plugins/bootstrap-editable/css/bootstrap-editable.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-editable/js/bootstrap-editable.js" charset="utf-8"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-editable/js/bootstrap-table-editable.js" charset="utf-8"></script>
<style type="text/css">
.main-header{display:none;}
.content-header{display:none;}
.main-footer{display:none;}
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
.table-hover>tbody>tr:hover {
cursor: pointer;
}
</style>
<script type="text/javascript">
var addFun = function() {
$("#searchForm").bootstrapValidator('validate');//提交验证
if ($("#searchForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + '/sparepart/outStocksectionRecord/add.do', {companyId :companyId } , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
};
var editFun = function(id) {
stopBubbleDefaultEvent();
$.post(ext.contextPath + '/sparepart/outStocksectionRecord/edit.do', {id:id} , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
var viewFun = function(id){
$.post(ext.contextPath + '/sparepart/outStocksectionRecord/view.do', {id:id} , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
var outStockProcessFun = function(id){
stopBubbleDefaultEvent();
$.post(ext.contextPath + '/sparepart/outStocksectionRecord/showProcessOutStockView.do', {id:id} , function(data) {
$("#subDiv").html(data);
openModal('outStockExcuteModal');
});
};
var deleteFun = function(id) {
stopBubbleDefaultEvent();
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete){
if (willDelete) {
$.post(ext.contextPath + '/sparepart/outStocksectionRecord/delete.do', {id : id}, function(data) {
if(data==1){
$("#table").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','mainAlertdiv');
}
});
}
});
};
var deletesFun = function() {
var checkedItems = $("#table").bootstrapTable('getSelections');
var datas="";
$.each(checkedItems, function(index, item){
datas+=item.id+",";
});
if(datas==""){
showAlert('d','请先选择记录','mainAlertdiv');
}else{
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete){
if (willDelete) {
$.post(ext.contextPath + '/sparepart/outStocksectionRecord/deletes.do', {ids:datas} , function(data) {
if(data>0){
$("#table").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','mainAlertdiv');
}
});
}
});
}
};
var dosearch = function() {
$("#table").bootstrapTable('refresh');
};
var companyId = "";
$(function() {
var flag = IsApp();
if (flag==true){
}else{
$(".main-header").show();
$(".content-header").show();
$(".main-footer").show();
}
//输入框验证
$("#searchForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
search_code: {
validators: {
notEmpty: {
message: '请先选择厂区'
}
}
},
}
});
//简易公司combotree
$.post(ext.contextPath + '/user/getUnitForTree.do', { ng: '' }, function (data) {
if (data.length == 1 && !data[0].hasOwnProperty("nodes")) {
//当登陆者的pid以下没有子节点时显示单独一个span
$("#search_pid").val(data[0].id);
$("#companyselect").hide();
$("#companyName").text("公司: " + data[0].text);
companyId = data[0].id;
initFun();
} else if ((data.length == 1 && data.nodes != "") || data.length > 1) {
//第一次加载时赋值
$("#search_pid").val(data[0].id);
$("#cname_input").val(data[0].text);
companyId = data[0].id;
initFun();
//$table.bootstrapTable('refresh');//异步加载重新刷新,待修改
$('#companytree').treeview({
data: data,
showBorder: false,
levels: 3,
});
$('#companytree').on('nodeSelected', function (event, data) {
$("#search_pid").val(data.id);
$("#cname_input").val(data.text);
document.getElementById('ul_tree').style.display = "none";
companyId= data.id;
initFun();
});
} else {
//待完善
};
}, 'json');
//防止点击树的+号收起下拉框
$("#ul_tree").on("click", function (e) {
event.stopPropagation();
});
//点击空白隐藏树
$(document).click(function (e) {
var divTree = $('#ul_tree'); // 设置目标区域
if (!divTree.is(e.target) && divTree.has(e.target).length === 0) {
divTree.hide()
}
})
});
var initFun = function(){
//选择仓库
$.post(ext.contextPath + "/sparepart/warehouse/getWarehouseForSelectByCompanyId.do", {companyId:companyId}, function(data) {
$("#warehouse_id").empty();
var selelct =$("#warehouse_id").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('').trigger("change");
selelct.on("change",function(e){
dosearch();
});
},'json');
$("#table").bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/outStocksectionRecord/getList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
search_name: $('#search_name').val(),
search_code: companyId,
warehouseId: $('#warehouse_id').val(),
}
},
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
onClickRow: function (row) {//单击行事件,执行查看功能
viewFun(row.id);
},
//detailView: true,//父子表
columns: [
{
checkbox: true, // 显示一个勾选框
},{
field: 'id', // 返回json数据中的name
title: '领用单号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'insdt', // 返回json数据中的name
title: '申请日期', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter:function (value, row, index){
return value.substring(0,10);
},
},{
field: 'outDate', // 返回json数据中的name
title: '领用日期', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter:function (value, row, index){
return value.substring(0,10);
},
},{
field: 'warehouse.name', // 返回json数据中的name
title: '所出仓库', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
}, {
field: 'inhouse.name', // 返回json数据中的name
title: '领入仓库', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},
/*{
field: 'dept.name', // 返回json数据中的name
title: '领用部门', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},*/{
field: 'userName', // 返回json数据中的name
title: '领用人', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'auditManName', // 返回json数据中的name
title: '审核人', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'totalMoney', // 返回json数据中的name
title: '合计金额/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'status', // 返回json数据中的name
title: '审核状态', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter: function (value, row, index){
switch (value){
case '${FINSH}' :
return "审核完成";
case '${START}' :
return "未提交";
case '${AUDIT}' :
return "已提交审核";
default :
return value;
}
}
},{
title: "操作",
align: 'center',
valign: 'middle',
width: 120, // 定义列的宽度单位为像素px
formatter: function (value, row, index) {
var buts= '';
if(row.status == '${START}'){
buts+= '<security:authorize buttonUrl="sparepart/outStocksectionRecord/edit.do">';
buts+= '<button class="btn btn-default btn-sm" title="编辑" onclick="editFun(\'' + row.id + '\')"><i class="fa fa-edit"></i><span class="hidden-md hidden-lg"> 编辑</span></button>';
buts+= '</security:authorize>';
buts+= '<security:authorize buttonUrl="sparepart/outStocksectionRecord/delete.do">';
buts+='<button class="btn btn-default btn-sm" title="删除" onclick="deleteFun(\''+row.id+'\')"><i class="fa fa fa-trash-o"></i><span class="hidden-md hidden-lg">删除</span></button';
buts+= '</security:authorize>';
}else{
buts+= '<button class="btn btn-default btn-sm" title="查看详情" onclick="outStockProcessFun(\'' + row.id + '\')"><i class="fa fa-history"></i><span class="hidden-md hidden-lg">查看详情</span></button>';
}
buts='<div class="btn-group" >'+buts+'</div>';
return buts;
}
}
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
}
</script>
</head>
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
<div class="wrapper">
<!-- 引用top -->
<%-- <jsp:include page="/jsp/top.jsp"></jsp:include> --%>
<!-- 菜单栏 -->
<%-- <jsp:include page="/jsp/left.jsp"></jsp:include> --%>
<div class="content-wrapper">
<!-- Content Header (Page header) -->
<section class="content-header">
<h1 id ="head_title"></h1>
<ol class="breadcrumb">
<li><a id ='head_firstlevel' href="#"><i class="fa fa-dashboard"></i> </a></li>
<!-- <li class="active">Here</li> -->
</ol>
</section>
<!-- Main content -->
<section class="content container-fluid">
<div id="mainAlertdiv"></div>
<div id="subDiv"></div>
<div id="subEditDiv"></div>
<div id="subDetailDiv"></div>
<div id="stock4SelectsDiv"></div>
<div id="user4SelectDiv"></div>
<div id="fileInputDiv"></div>
<form id="searchForm">
<div >
<div class="form-group " style="margin-bottom:10px;">
<input id="search_pid" name="search_pid" type="hidden" />
<span id="companyName" style="height:31px;color:#000000;border-top-left-radius: 4px;border-bottom-left-radius: 4px;font-weight:bold"></span>
</div>
<ul id="companyselect" style="list-style-type:none;padding-left:0px;width:300px;">
<li class="dropdown" style="width:300px;">
<!-- Menu toggle button -->
<a href="#" class="dropdown-toggle" data-toggle="dropdown"
style="width:300px;" onclick="document.getElementById('ul_tree').style.display = 'block';">
<div class="input-group">
<span class="input-group-addon"
style="height:31px;color:#000000;border-top-left-radius: 4px;border-bottom-left-radius: 4px;font-weight:bold">公司:</span>
<input class="form-control " id="cname_input" name="cname_input"
style="height:31px;width: 220px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;"
readonly />
</div><!-- /input-group -->
</a>
<ul id="ul_tree" class="dropdown-menu" data-stopPropagation="true">
<li class="header">
<div id="companytree" style="width: 275px;overflow:auto;"></div>
</li>
</ul>
</li>
</ul>
<div class="form-group" style="padding:0;">
<div class="btn-group" style="width: 220px;padding-bottom:10px;">
<security:authorize buttonUrl="sparepart/outStocksectionRecord/add.do">
<button type="button" class="btn btn-default btn-sm" onclick="addFun();"><i class="fa fa-plus"></i> 新增</button>
<button type="button" class="btn btn-default btn-sm" onclick="deletesFun();"><i class="fa fa-trash-o"></i> 删除</button>
</security:authorize>
</div>
<div class="form-group pull-right form-inline" >
<label class="form-label" id="companylabel">所属仓库:</label>
<select class="form-control select2 " id="warehouse_id" name ="warehouse_id" style="width: 160px;">
</select>
<div class="input-group input-group-sm" style="width: 250px;">
<input type="text" id="search_name" name="search_name" class="form-control pull-right" placeholder="名称">
<div class="input-group-btn">
<button class="btn btn-default" onclick="dosearch();"><i class="fa fa-search"></i></button>
</div>
</div>
</div>
</div>
</div>
</form>
<table id="table"></table>
</section>
<!-- /.content -->
</div>
<%-- <jsp:include page="/jsp/bottom.jsp"></jsp:include> --%>
<%-- <jsp:include page="/jsp/side.jsp"></jsp:include> --%>
</div>
</body>
<!-- 文件上传-->
<link rel="stylesheet" href="<%=request.getContextPath()%>/node_modules/bootstrap-fileinput/css/fileinput.min.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-fileinput/js/fileinput.min.js" charset="utf-8"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-fileinput/js/locales/zh.js" charset="utf-8"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/JS/commonFileUpload.js" charset="utf-8"></script>
</html>

View File

@ -0,0 +1,38 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<script type="text/javascript">
$(function() {
$.post(ext.contextPath + '/sparepart/applyPurchasePlan/getApplyPurchasePlanJson.do', {ng:''} , function(data) {
//console.info(data)
if(data.length>0){
$('#fault_select_tree').treeview({
data: data,
});
$('#fault_select_tree').on('nodeSelected', function(event, data) {
$('#${param.formId} #${param.hiddenId}' ).val(data.id);
$('#${param.formId} #${param.textId}').val(data.text);
closeModal("fault4SelectModal")
});
}
},'json');
});
</script>
<div class="modal fade" id="fault4SelectModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">选择</h4>
</div>
<div class="modal-body">
<div id="fault_select_tree" style="height:430px;overflow:auto;width:100%"></div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,133 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
var showContractClass4SelectFun = function() {
$.post(ext.contextPath + '/sparepart/applyPurchasePlan/showList4Select.do', {formId:"subForm",hiddenId:"pid",textId:"pname"} , function(data) {
$("#fault4SelectDiv").html(data);
openModal('fault4SelectModal');
});
};
function dosave() {
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {
$.post(ext.contextPath + "/sparepart/applyPurchasePlan/save.do", $("#subForm").serialize(), function(result) {
if (result == 1) {
closeModal('subModal');
dosearch();
}else{
showAlert('d','保存失败');
}
});
}
}
$(function() {
$("#bizId").val(companyId);
/* BOOTSTRAP SLIDER */
var intSlider = $("input.slider").bootstrapSlider({
tooltip: 'always'
}).on('change',function() {
var intArr = intSlider.bootstrapSlider('getValue');
$('#planApplyPurchaseStartdate').val(intArr[0]);
$('#planApplyPurchaseEnddate').val(intArr[1]);
});
$.post(ext.contextPath + "/user/getUnitsByUnitId4Select.do", {id:companyId}, function(data) {
var selelct = $("#departmentId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('${cu.pid}').trigger("change");
},'json');
$("#status").select2({minimumResultsForSearch: 10});
$("#subForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
applicant: {
validators: {
notEmpty: {
message: '负责人不能为空'
}
}
},
}
});
});
</script>
<div class="modal fade" id="subModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">新增记录</h4>
</div>
<div class="modal-body">
<form class="form-horizontal " id="subForm">
<input id="id" name="id" type="hidden" />
<input id="bizId" name="bizId" type="hidden"/>
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<div id="fault4SelectDiv"></div>
<div class="form-group">
<label class="col-sm-2 control-label">*部门</label>
<div class="col-sm-9">
<select class="form-control" id="departmentId" name ="departmentId" style="width: 100%;" >
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*负责人</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="applicantName" name ="applicantName" placeholder="负责人" value="${cu.caption}" readonly>
<input name="applicant" type="hidden" value="${cu.id}"/>
</div>
<label class="col-sm-2 control-label">*状态</label>
<div class="col-sm-4">
<select id ="status" name="status" class="form-control select2">
<option value="启用" selected="selected">启用</option>
<option value="禁用" >禁用</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label">*每月开始时间~结束时间</label>
<div class="col-sm-8">
<input type="text" value="" class="slider form-control" data-slider-min="1" data-slider-max="31"
data-slider-step="1" data-slider-value="[1,15]" data-slider-orientation="horizontal"
data-slider-selection="before" data-slider-tooltip="show" data-slider-id="green" >
<input id="planApplyPurchaseStartdate" name="planApplyPurchaseStartdate" type="hidden" value="1"/>
<input id="planApplyPurchaseEnddate" name="planApplyPurchaseEnddate" type="hidden" value="15"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">备注</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" id ="remark" name ="remark" placeholder="备注..."></textarea>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="dosave()" id="btn_save">保存</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,177 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
var showApplyPurchasePlan4SelectFun = function() {
$.post(ext.contextPath + '/sparepart/applyPurchasePlan/showList4Select.do', {formId:"subForm",hiddenId:"pid",textId:"pname"} , function(data) {
$("#fault4SelectDiv").html(data);
openModal('fault4SelectModal');
});
};
function doupdate() {
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {
$.post(ext.contextPath + "/sparepart/applyPurchasePlan/update.do", $("#subForm").serialize(), function(result) {
if (result == 1) {
showAlert('s','保存成功');
dosearch();
closeModal('subModal');
}else{
showAlert('d','保存失败');
}
});
}
}
function dodel() {
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete) {
if (willDelete) {
$.post(ext.contextPath + '/sparepart/applyPurchasePlan/delete.do', $("#subForm").serialize(), function(data) {
if(data>0){
initTreeView();
}else{
showAlert('d','删除失败');
}
},'json');
}
});
}
$(function() {
$("#bizId").val(companyId);
/* BOOTSTRAP SLIDER */
var intSlider = $("input.slider").bootstrapSlider({
tooltip: 'always'
}).on('change',function() {
var intArr = intSlider.bootstrapSlider('getValue');
$('#planApplyPurchaseStartdate').val(intArr[0]);
$('#planApplyPurchaseEnddate').val(intArr[1]);
});
$.post(ext.contextPath + "/user/getUnitsByUnitId4Select.do", {id:companyId}, function(data) {
var selelct = $("#departmentId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('${applyPurchasePlan.departmentId}').trigger("change");
},'json');
$("#status").select2({minimumResultsForSearch: 10}).val("${applyPurchasePlan.status}").trigger("change");
$("#subForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
applicant: {
validators: {
notEmpty: {
message: '负责人不能为空'
}
}
},
}
});
});
//关闭模态框时刷新表格数据
function closeModel(){
closeModal('subModal');
$("#table").bootstrapTable('refresh');
}
</script>
<div class="modal fade" id="subModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">编辑记录</h4>
</div>
<div class="modal-body">
<form class="form-horizontal " id="subForm">
<input id="id" name="id" type="hidden" value="${applyPurchasePlan.id}"/>
<input id="bizId" name="bizId" type="hidden"/>
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<div id="fault4SelectDiv"></div>
<div class="form-group">
<label class="col-sm-2 control-label">*部门</label>
<div class="col-sm-9">
<select class="form-control" id="departmentId" name ="departmentId" style="width: 100%;" >
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*负责人</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="applicantName" name ="applicantName" placeholder="负责人" value="${applyPurchasePlan.applicantName}" readonly>
<input name="applicant" type="hidden" value="${applyPurchasePlan.applicant}"/>
</div>
<label class="col-sm-2 control-label">*状态</label>
<div class="col-sm-4">
<select id ="status" name="status" class="form-control select2">
<option value="启用">启用</option>
<option value="禁用" >禁用</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label">*每月开始时间~结束时间</label>
<div class="col-sm-8">
<input type="text" value="" class="slider form-control" data-slider-min="1" data-slider-max="31"
data-slider-step="1" data-slider-value="[${applyPurchasePlan.planApplyPurchaseStartdate},${applyPurchasePlan.planApplyPurchaseEnddate}]"
data-slider-orientation="horizontal"
data-slider-selection="before" data-slider-tooltip="show" data-slider-id="green" id="slider" >
<input id="planApplyPurchaseStartdate" name="planApplyPurchaseStartdate" type="hidden" value="${applyPurchasePlan.planApplyPurchaseStartdate}"/>
<input id="planApplyPurchaseEnddate" name="planApplyPurchaseEnddate" type="hidden" value="${applyPurchasePlan.planApplyPurchaseEnddate}"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">备注</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" id ="remark" name ="remark" placeholder="备注...">${applyPurchasePlan.remark}</textarea>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" onclick="closeModel()">关闭</button>
<button type="button" class="btn btn-primary" onclick="doupdate()" id="btn_save">保存</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,290 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ page import="com.sipai.entity.base.ServerObject"%>
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security"%>
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
<!DOCTYPE html>
<!-- <html lang="zh-CN"> -->
<!-- BEGIN HEAD -->
<head>
<title><%= ServerObject.atttable.get("TOPTITLE")%></title>
<!-- 引用页头及CSS页-->
<jsp:include page="/jsp/inc.jsp"></jsp:include>
<!-- 引入bootstrap-slider-->
<link rel="stylesheet" href="<%=request.getContextPath()%>/node_modules/bootstrap-slider/dist/css/slider.css"></link>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-slider/dist/bootstrap-slider.min.js" charset="utf-8"></script>
<script type="text/javascript">
var addFun = function() {
$.post(ext.contextPath + '/sparepart/applyPurchasePlan/add.do', {companyId :companyId } , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
var editFun = function(id) {
stopBubbleDefaultEvent();
$.post(ext.contextPath + '/sparepart/applyPurchasePlan/edit.do', {id:id} , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
var viewFun = function(id){
$.post(ext.contextPath + '/sparepart/applyPurchasePlan/view.do', {id:id} , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
var deleteFun = function(id) {
stopBubbleDefaultEvent();
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete){
if (willDelete) {
$.post(ext.contextPath + '/sparepart/applyPurchasePlan/delete.do', {id : id}, function(data) {
if(data==1){
dosearch();
}else{
showAlert('d','删除失败','mainAlertdiv');
}
});
}
});
};
var deletesFun = function() {
var checkedItems = $("#table").bootstrapTable('getSelections');
var datas="";
$.each(checkedItems, function(index, item){
datas+=item.id+",";
});
if(datas==""){
showAlert('d','请先选择记录','mainAlertdiv');
}else{
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete) {
if (willDelete) {
$.post(ext.contextPath + '/sparepart/applyPurchasePlan/deletes.do', {ids:datas} , function(data) {
if(data>0){
dosearch();
}else{
showAlert('d','删除失败','mainAlertdiv');
}
});
}
});
}
};
var dosearch = function() {
$("#table").bootstrapTable('refresh');
};
var companyId = "";
$(function() {
companyId = unitId;
DatePicker('.startdt','.enddt');
initFun();
});
function selectDept(){
//选择部门
$.post(ext.contextPath + "/user/getDeptByBizId4Select.do", {companyId:companyId}, function(data) {
$("#dept_id").empty();
var selelct = $("#dept_id").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
$(".select2-selection--single").css({'height':'30px','paddingTop':'4px'})
selelct.val('').trigger("change");
selelct.on("change",function(e){
dosearch();
});
},'json');
}
var initFun = function(){
selectDept();
$("#table").bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/applyPurchasePlan/getList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
search_code: companyId,
deptId : $('#dept_id').val(),
startdt : $('#startdt').val(),
enddt : $('#enddt').val(),
}
},
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
onClickRow: function (row) {//单击行事件,执行查看功能
viewFun(row.id);
},
columns: [
{
checkbox: true, // 显示一个勾选框
},{
field: 'unit.name', // 返回json数据中的name
title: '申购部门', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'applicantName', // 返回json数据中的name
title: '负责人', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'planApplyPurchaseStartdate', // 返回json数据中的name
title: '每月开始时间', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'planApplyPurchaseEnddate', // 返回json数据中的name
title: '每月结束时间', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'status', // 返回json数据中的name
title: '状态', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'remark', // 返回json数据中的name
title: '备注', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
title: "操作",
align: 'center',
valign: 'middle',
width: 120, // 定义列的宽度单位为像素px
formatter: function (value, row, index) {
var buts= '';
buts+= '<security:authorize buttonUrl="sparepart/outStockRecord/edit.do">';
buts+= '<button class="btn btn-default btn-sm" title="编辑" onclick="editFun(\'' + row.id + '\')"><i class="fa fa-edit"></i><span class="hidden-md hidden-lg"> 编辑</span></button>';
buts+= '</security:authorize>';
buts+= '<security:authorize buttonUrl="sparepart/outStockRecord/delete.do">';
buts+='<button class="btn btn-default btn-sm" title="删除" onclick="deleteFun(\''+row.id+'\')"><i class="fa fa fa-trash-o"></i><span class="hidden-md hidden-lg">删除</span></button';
buts+= '</security:authorize>';
buts='<div class="btn-group" >'+buts+'</div>';
return buts;
}
}
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
}
</script>
</head>
<body class="hold-transition ${cu.themeclass} sidebar-mini">
<div class="wrapper">
<div class="content-wrapper">
<!-- Main content -->
<section class="content container-fluid">
<div id="mainAlertdiv"></div>
<div id="subDiv"></div>
<div id="subDetailDiv"></div>
<div id="Goods4SelectDiv"></div>
<div id="fileInputDiv"></div>
<form id="searchForm">
<div>
<div class="form-group" style="padding:0;">
<div class="btn-group" style="width: 220px;padding-bottom:10px;">
<security:authorize buttonUrl="sparepart/warehouse/add.do">
<button type="button" class="btn btn-default btn-sm" onclick="addFun();"><i class="fa fa-plus"></i> 新增</button>
<button type="button" class="btn btn-default btn-sm" onclick="deletesFun();"><i class="fa fa-trash-o"></i> 删除</button>
</security:authorize>
</div>
<div class="form-group pull-right form-inline" >
<div class="input-group" >
<label class="form-label" id="companylabel">申购部门:</label>
<select class="form-control select2" id="dept_id" name ="dept_id" style="width: 160px;">
</select>
</div>
<div class="input-group" >
<span class="input-group-addon">日期</span>
<input type="text" class="form-control startdt" name="startdt" id="startdt" >
<span class="input-group-addon">至</span>
<input type="text" class="form-control enddt" name="enddt" id="enddt" >
<div class="input-group-btn">
<button class="btn btn-default" onclick="dosearch();"><i class="fa fa-search"></i></button>
</div>
</div>
</div>
</div>
</div>
</form>
<table id="table"></table>
</section>
<!-- /.content -->
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,253 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@page import="com.sipai.entity.sparepart.SparePartCommString" %>
<%request.setAttribute("START", SparePartCommString.STATUS_START); %>
<%request.setAttribute("DEPT_AUDIT", SparePartCommString.STATUS_DEPT_AUDIT); %>
<%request.setAttribute("DEPT_REJECT", SparePartCommString.STATUS_DEPT_REJECT); %>
<%request.setAttribute("FINISH", SparePartCommString.STATUS_FINISH); %>
<%request.setAttribute("INQUIRY_AUDIT", SparePartCommString.STATUS_INQUIRY_AUDIT); %>
<%request.setAttribute("INQUIRY_REJECT", SparePartCommString.STATUS_INQUIRY_REJECT); %>
<%request.setAttribute("PURCHASE_INQUIRY", SparePartCommString.STATUS_PURCHASE_INQUIRY); %>
<!DOCTYPE html>
<script type="text/javascript">
var doSearchStock = function () {
$("#table_subscribe").bootstrapTable('refresh');
};
function doSelectStock() {
//var checkItems = $("#table_subscribe").bootstrapTable('getAllSelections');
// var rows1 = $('#table_subscribe').bootstrapTable('getData');
var assetclassname = " ";
var datas = "";
datas_name = "";
$.each(selectionIds, function (index, item) {
var form1 = $("#table_subscribe").bootstrapTable('getRowByUniqueId', item);
assetclassname += form1.assetclassname + ",";
if (datas != "") {
datas += ",";
}
datas += item;
});
console.log(assetclassname + datas);
$('#${param.formId} #${param.hiddenId}').val(datas);
$('#${param.formId} #${param.textId}').val(assetclassname);
//$('#${param.formId} #${param.textId}').val(datas);
closeModal("subDetailModal2");
};
var $table;
var switchStatus = false;
var selectionIds = []; //保存选中ids
var dosearchTable = function () {
$("#table_subscribe").bootstrapTable('refresh');
};
function stateFormatter(value, row, index) {
var flag = false;
$.each(eval('${purchaseId}'), function (index, item) {
if (row.id == item.id) {
flag = true;
}
});
if (flag)
return {
checked: true//设置选中
};
return value;
}
var $table;
var switchStatus = false;
var selectionIds = []; //保存选中ids
function initialSelectionIds() {
var check_array = eval('${purchaseId}');
if (check_array != null && check_array.length > 0) {
selectionIds = new Array(check_array.length);
for (var i = 0; i < check_array.length; i++) {
selectionIds[i] = check_array[i].id;
}
}
}
function getCheckedIds() {
var ids = "";
var check_array = eval('${purchaseId}');
$.each(check_array, function (index, item) {
if (ids != "") {
ids += ",";
}
ids += item.id;
});
return ids;
}
$(function () {
//选择部门
/* $.post(ext.contextPath + "/user/getDeptByBizId4Select.do", {companyId:'
${param.companyId}'}, function(data) {
var selelct = $("#search_code").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('').trigger("change");
selelct.on("change",function(e){
dosearchTable();
});
},'json'); */
$("#search_name").keyup(function () {
if (event.keyCode == 13) {
event.preventDefault();
//回车查询
doSearchStock();
event.stopPropagation();
}
})
initialSelectionIds();
$table = $("#table_subscribe").bootstrapTable({
url: ext.contextPath + '/equipment/assetClass/getListtoAss.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20, 50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
uniqueId: 'id',
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset / params.limit + 1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
search_name: $('#search_name').val(),
companyId: '${param.companyId}',
warehouseId: '${param.warehouseId}',
pid: $('#classpid').val(),
}
},
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
columns: [
{
checkbox: true, // 显示一个勾选框
//formatter: stateFormatter
formatter: function (i, row) { // 每次加载 checkbox 时判断当前 row 的 id 是否已经存在全局 Set() 里
if ($.inArray(row.id, Array.from(selectionIds)) != -1) { // 因为 Set是集合,需要先转换成数组
return {
checked: true // 存在则选中
}
}
}
}, {
field: 'assetclassname', // 返回json数据中的name
title: '类型名称', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle',
width: '25%'
}, {
field: 'assetclassnumber', // 返回json数据中的name
title: '类型编号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle',
width: '25%'
}, {
field: '_pidname', // 返回json数据中的name
title: '所属类型', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle',
width: '25%'
}, {
field: 'remark', // 返回json数据中的name
title: '备注', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle',
width: '25%'
}
],
onLoadSuccess: function () { //加载成功时执行
adjustBootstrapTableView("table_subscribe");
},
onLoadError: function () { //加载失败时执行
console.info("加载数据失败");
}
});
//绑定选中事件、取消事件、全部选中、全部取消
$table.on('check.bs.table check-all.bs.table uncheck.bs.table uncheck-all.bs.table', function (e, rows) {
var ids = $.map(!$.isArray(rows) ? [rows] : rows, function (row) {
return row.id;
});
func = $.inArray(e.type, ['check', 'check-all']) > -1 ? 'union' : 'difference';
selectionIds = _[func](selectionIds, ids);
});
});
//选中事件操作数组
var union = function (array, ids) {
$.each(ids, function (i, id) {
if ($.inArray(id, array) == -1) {
array[array.length] = id;
}
});
return array;
};
//取消选中事件操作数组
var difference = function (array, ids) {
$.each(ids, function (i, id) {
var index = $.inArray(id, array);
if (index != -1) {
array.splice(index, 1);
}
});
return array;
};
var _ = {"union": union, "difference": difference};
//表格分页之前处理多选框数据
function responseHandler(res) {
$.each(res.rows, function (i, row) {
row.checkStatus = $.inArray(row.id, selectionIds) != -1; //判断当前行的数据id是否存在与选中的数组存在则将多选框状态变为true
});
return res;
}
</script>
<div class="modal fade" id="subDetailModal2">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<input id="classpid" name="classpid" type="hidden" value="${pid}"/>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">资产类型</h4>
</div>
<div class="input-group input-group-sm pull-right" style="width: 250px;">
<input type="text" id="search_name" name="search_name" class="form-control pull-right"
placeholder="所属类型/名称">
<div class="input-group-btn" style="line-height: 30px">
<button class="btn btn-default" onclick="dosearchTable();"><i class="fa fa-search"></i></button>
</div>
</div>
<div class="modal-body " style="width:100%">
<div id="table_subscribe" style="height:230px;overflow:auto;width:100%"></div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="doSelectStock()">确认</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,38 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<script type="text/javascript">
$(function() {
$.post(ext.contextPath + '/sparepart/channels/getChannelsJson.do', {ng:'',search_name:'',pid:'${param.channelsid}'} , function(data) {
if(data.length>0){
$('#fault_select_tree').treeview({
data: data,
});
$('#fault_select_tree').on('nodeSelected', function(event, data) {
$('#subscribeDetail_channelsId').val(data.id);
addchannelsIdSave();
closeModal("fault4SelectModal")
});
}
},'json');
});
</script>
<div class="modal fade" id="fault4SelectModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">选择列资渠道</h4>
</div>
<div class="modal-body">
<div id="fault_select_tree" style="height:430px;overflow:auto;width:100%"></div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<!-- <button type="button" class="btn btn-primary" onclick="selectMenu()">保存</button> -->
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,39 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<script type="text/javascript">
$(function() {
$.post(ext.contextPath + '/sparepart/channels/getChannelsJson.do', {ng:''} , function(data) {
//console.info(data)
if(data.length>0){
$('#fault_select_tree').treeview({
data: data,
});
$('#fault_select_tree').on('nodeSelected', function(event, data) {
$('#${param.formId} #${param.hiddenId}' ).val(data.id);
$('#${param.formId} #${param.textId}').val(data.text);
closeModal("fault4SelectModal")
});
}
},'json');
});
</script>
<div class="modal fade" id="fault4SelectModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">选择列资渠道</h4>
</div>
<div class="modal-body">
<div id="fault_select_tree" style="height:430px;overflow:auto;width:100%"></div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<!-- <button type="button" class="btn btn-primary" onclick="selectMenu()">保存</button> -->
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,85 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
var showChannels4SelectFun = function() {
$.post(ext.contextPath + '/sparepart/channels/showList4Select.do', {formId:"subForm",hiddenId:"pid",textId:"pname"} , function(data) {
$("#fault4SelectDiv").html(data);
openModal('fault4SelectModal');
});
};
function dosave() {
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/sparepart/channels/save.do", $("#subForm").serialize(), function(result) {
if (result.res == 1) {
initTreeView();
}else{
showAlert('d','保存失败');
}
},'json');
}
}
//输入框验证
$("#subForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
brand: {
name: {
notEmpty: {
message: '名称不能为空'
},
},
},
}
});
</script>
<div class="box box-primary" >
<div class="box-header with-border">
<h3 class="box-title">新增</h3>
<div class="box-tools pull-right">
<a onclick="dosave()" class="btn btn-box-tool" data-toggle="tooltip" title="保存"><i class="glyphicon glyphicon-floppy-disk"></i></a>
</div>
</div>
<!-- /.box-header -->
<div class="box-body ">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<div id="fault4SelectDiv"></div>
<div class="form-group">
<label class="col-sm-2 control-label">*列资渠道</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="name" name ="name" >
</div>
<label class="col-sm-2 control-label">上级菜单</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="pname" name ="pname" placeholder="上级菜单" onclick="showChannels4SelectFun();" value="${pname}"></input>
<input id="pid" name="pid" type="hidden" value="${param.pid}"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">顺序</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="morder" name ="morder" placeholder="顺序" value=0>
</div>
<label class="col-sm-2 control-label">状态</label>
<div class="col-sm-4">
<select id ="active" name="active" class="form-control select2">
<option value=true selected="selected">可用</option>
<option value=false >审核中</option>
</select>
</div>
</div>
</form>
</div>
</div>

View File

@ -0,0 +1,149 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
var showChannels4SelectFun = function() {
$.post(ext.contextPath + '/sparepart/channels/showList4Select.do', {formId:"subForm",hiddenId:"pid",textId:"pname"} , function(data) {
$("#fault4SelectDiv").html(data);
openModal('fault4SelectModal');
});
};
function doupdate() {
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/sparepart/channels/update.do", $("#subForm").serialize(), function(data) {
if (data.res == 1){
closeModal('subModal');
$("#table").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}
}
function dodel() {
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete) {
if (willDelete) {
$.post(ext.contextPath + '/sparepart/channels/delete.do', $("#subForm").serialize(), function(data) {
if(data>0){
initTreeView();
}else{
showAlert('d','删除失败');
}
},'json');
}
});
}
//输入框验证
$("#subForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
id: {
notEmpty: {
message: '编号不能为空'
},
},
name: {
notEmpty: {
message: '名称不能为空'
},
},
}
});
</script>
<div class="box box-primary" >
<div class="box-header with-border">
<h3 class="box-title">编辑</h3>
<div class="box-tools pull-right">
<c:if test="${channels.source==0}">
<a onclick="doupdate()" class="btn btn-box-tool" data-toggle="tooltip" title="保存"><i class="glyphicon glyphicon-floppy-disk"></i></a>
<a onclick="dodel()" class="btn btn-box-tool" data-toggle="tooltip" title="删除"><i class="glyphicon glyphicon-trash"></i></a>
</c:if>
</div>
</div>
<!-- /.box-header -->
<div class="box-body ">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<div id="fault4SelectDiv"></div>
<div class="form-group">
<label class="col-sm-2 control-label">*列资渠道</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="name" name ="name"
value="${channels.name}">
</div>
<label class="col-sm-2 control-label">上级菜单</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="pname" name ="pname" placeholder="上级菜单" onclick="showChannels4SelectFun();" value="${channels.pname}">
<input id="pid" name="pid" type="hidden" value="${channels.pid}"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*编号</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="id" name ="id" value="${channels.id}">
</div>
<label class="col-sm-2 control-label">顺序</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="morder" name ="morder" placeholder="顺序" value="${channels.morder}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">启用</label>
<div class="col-sm-4">
<select class="form-control" id="active" name ="active" style="width: 270px;">
<option <c:if test="${channels.active==true}">selected</c:if> value= true>可用</option>
<option <c:if test="${channels.active==false}">selected</c:if> value= false>审核中</option>
</select>
</div>
<label class="col-sm-2 control-label">数据来源</label>
<div class="col-sm-4">
<c:if test="${channels.source==0}"><p class="form-control-static" >自建</p></c:if>
<c:if test="${channels.source==1}"><p class="form-control-static" >外接(工程管理)</p></c:if>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">描述</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" id ="describe" name ="describe" placeholder="描述...">${channels.describe}</textarea>
</div>
</div>
</form>
</div>
</div>

View File

@ -0,0 +1,386 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ page import="com.sipai.entity.base.ServerObject"%>
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security"%>
<!DOCTYPE html>
<!-- <html lang="zh-CN"> -->
<!-- BEGIN HEAD -->
<head>
<title><%= ServerObject.atttable.get("TOPTITLE")%></title>
<!-- 引用页头及CSS页-->
<jsp:include page="/jsp/inc.jsp"></jsp:include>
<!-- bootstrap switch -->
<link rel="stylesheet" href="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/css/bootstrap3/bootstrap-switch.min.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/js/bootstrap-switch.min.js" charset="utf-8"></script>
<!--bootstrap-edittable 表格行内编辑 -->
<link rel="stylesheet" href="<%=request.getContextPath()%>/plugins/bootstrap-editable/css/bootstrap-editable.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-editable/js/bootstrap-editable.js" charset="utf-8"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-editable/js/bootstrap-table-editable.js" charset="utf-8"></script>
<style type="text/css">
.select2-container .select2-selection--single{
height:30px;
line-height: 30px;
}
.select2-selection__arrow{
margin-top:3px;
}
.table-hover>tbody>tr:hover {
cursor: pointer;
}
.fixed-table-toolbar .bs-bars,.fixed-table-toolbar .columns{
margin-top: 0px;
margin-bottom: 0px;
line-height: 20px;
}
</style>
<script type="text/javascript">
var addFun = function() {
var node=$('#tree').treeview('getSelected');
var pid="-1";
if(node!=null && node.length>0){
pid=node[0].id;
}
$.post(ext.contextPath + '/sparepart/channels/add.do' , {pid:pid} , function(data) {
$("#faultBox").html(data);
});
};
var editFun = function(id) {
stopBubbleDefaultEvent();
$.post(ext.contextPath + '/sparepart/channels/edit.do', {id:id} , function(data) {
$("#faultBox").html(data);
});
};
//导入设备列表
function importFun(){
$.post(ext.contextPath + '/sparepart/channels/importChannelsCard.do', {} , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
}
//导出设备列表
function downloadPost() {
window.open(ext.contextPath + '/sparepart/channels/downloadPost.do');
}
var deleteFun = function(id) {
stopBubbleDefaultEvent();
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete){
if (willDelete) {
$.post(ext.contextPath + '/sparepart/channels/delete.do', {id : id}, function(data) {
if(data==1){
$("#table").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','mainAlertdiv');
}
});
}
});
};
var deletesFun = function() {
var checkedItems = $("#table").bootstrapTable('getSelections');
var datas="";
$.each(checkedItems, function(index, item){
datas+=item.id+",";
});
if(datas==""){
showAlert('d','请先选择记录','mainAlertdiv');
}else{
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete) {
if (willDelete) {
$.post(ext.contextPath + '/sparepart/channels/deletes.do', {ids:datas} , function(data) {
if(data>0){
$("#table").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','mainAlertdiv');
}
});
}
});
}
};
//查询方法,选择厂区后自动加载
var dosearch = function() {
$("#table").bootstrapTable('refresh');
selectDept();
};
var companyId = unitId;
var initTreeView = function() {
var search_name = $.trim($('#search_name').val());
$.post(ext.contextPath + '/sparepart/channels/getChannelsJson.do', {search_name:search_name}, function(data) {
$('#tree').treeview({data: data});
$('#tree').on('nodeSelected', function(event, data) {
editFun(data.id);
});
},'json');
$("#faultBox").html("");
};
$(function() {
//简易公司combotree
$.post(ext.contextPath + "/user/showCompanySelectTree.do", {}, function (data) {
$('#companySelectTree').html(data);
});
initTreeView();
//输入框验证
$("#searchForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
search_code: {
validators: {
notEmpty: {
message: '请先选择厂区'
}
}
},
}
});
});
//表格查询参数
function queryParamsFun (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
search_name: $('#search_name').val(),
/* search_code: companyId, */
deptId: $('#dept_id').val(),
};
}
function selectDept(){
//选择部门
$.post(ext.contextPath + "/user/getDeptByBizId4Select.do", {companyId:companyId}, function(data) {
$("#dept_id").empty();
var selelct = $("#dept_id").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
$(".select2-selection--single").css({'height':'30px','paddingTop':'4px'})
selelct.val('').trigger("change");
selelct.on("change",function(e){
$("#table").bootstrapTable('refresh');
});
},'json');
}
var showUser4SelectsFun = function() {
var userIds= $("#agentid").val();
$.post(ext.contextPath + '/user/userForSelectByStructure.do', {formId:"searchForm",hiddenId:"agentid",textId:"agentname",userIds:userIds} , function(data) {
$("#user4SelectDiv").html(data);
openModal("user4SelectModal");
});
};
var initFun = function(){
selectDept();
$("#table").bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/channels/getList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: queryParamsFun,
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
onClickRow: function (row) {//单击行事件,执行查看功能
viewFun(row.id);
},
columns: [
{
checkbox: true, // 显示一个勾选框
},{
field: 'name', // 返回json数据中的name
title: '名称', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'active', // 返回json数据中的name
title: '状态', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter: function (value, row, index) {
if(value=='1'){
return '可用';
}else{
return '审核中';
}
}
},{
title: "操作",
align: 'center',
valign: 'middle',
width: 120, // 定义列的宽度单位为像素px
formatter: function (value, row, index) {
var buts= '';
buts+= '<security:authorize buttonUrl="sparepart/channels/edit.do">';
buts+= '<button class="btn btn-default btn-sm" title="编辑" onclick="editFun(\'' + row.id + '\')"><i class="fa fa-edit"></i><span class="hidden-md hidden-lg"> 编辑</span></button>';
buts+= '</security:authorize>';
buts+= '<security:authorize buttonUrl="sparepart/channels/delete.do">';
buts+='<button class="btn btn-default btn-sm" title="删除" onclick="deleteFun(\''+row.id+'\')"><i class="fa fa fa-trash-o"></i><span class="hidden-md hidden-lg">删除</span></button';
buts+= '</security:authorize>';
buts='<div class="btn-group" >'+buts+'</div>';
return buts;
}
}
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
}
</script>
</head>
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
<div class="wrapper">
<!-- 引用top -->
<%-- <jsp:include page="/jsp/top.jsp"></jsp:include> --%>
<!-- 菜单栏 -->
<%-- <jsp:include page="/jsp/left.jsp"></jsp:include> --%>
<div class="content-wrapper">
<!-- Content Header (Page header) -->
<section class="content-header">
<h1 id ="head_title"></h1>
<ol class="breadcrumb">
<li><a id ='head_firstlevel' href="#"><i class="fa fa-dashboard"></i> </a></li>
<!-- <li class="active">Here</li> -->
</ol>
</section>
<!-- Main content -->
<section class="content container-fluid">
<div id="mainAlertdiv"></div>
<div id="subDiv"></div>
<div id="subDetailDiv"></div>
<div id="Goods4SelectDiv"></div>
<div id="Goods4SelectsDiv"></div>
<div id="user4SelectDiv"></div>
<div id="fileInputDiv"></div>
<div id="goodsAddDiv"></div>
<div id="equ4SelectDiv"></div>
<div id="fault4SelectDiv"></div>
<div class="row">
<div class="col-md-4">
<div class="box box-solid">
<div class="box-header with-border">
<h3 class="box-title">列资渠道</h3>
<div class="box-tools">
<div class="input-group input-group-sm" style="width: 250px;">
<input type="text" id="search_name" name="search_name" class="form-control pull-right" placeholder="名称">
<div class="input-group-btn">
<button type="button" class="btn btn-box-tool" onclick="initTreeView();" title="搜索"><i class="fa fa-search"></i></button>
<button type="button" class="btn btn-box-tool" onclick="addFun();" title="新增"><i class="fa fa-plus"></i></button>
<button type="button" class="btn btn-box-tool" onclick="downloadPost();" title="导出"><i class="fa fa-cloud-download"></i></button>
<button type="button" class="btn btn-box-tool" onclick="importFun();" title="导入"><i class="fa fa-cloud-upload"></i></button>
</div>
</div>
</div>
</div>
<div class="box-body no-padding">
<div id="tree" style="height:550px;overflow:auto; "></div>
</div>
<!-- /.box-body -->
</div>
</div>
<div class="col-md-8" id="faultBox"></div>
</div>
<%-- <form id="searchForm">
<div >
<div id="companySelectTree" style="float:left;"></div>
<div class="form-group" style="padding:0;margin-bottom: 0px;float:left;" id="action">
<div class="btn-group" style="width: 220px;">
<security:authorize buttonUrl="sparepart/channels/add.do">
<button type="button" class="btn btn-default btn-sm" onclick="addFun();"><i class="fa fa-plus"></i> 新增</button>
<button type="button" class="btn btn-default btn-sm" onclick="deletesFun();"><i class="fa fa-trash-o"></i> 删除</button>
</security:authorize>
</div>
</div>
<div class="form-group" style="padding:0;margin-bottom: 0px;float:right;" id="action">
<div class="form-group pull-right form-inline" style="margin-bottom: 0px;">
<div class="input-group input-group-sm" style="width: 250px;">
<input type="text" id="search_name" name="search_name" class="form-control pull-right" placeholder="名称">
<div class="input-group-btn" style="line-height: 30px">
<button class="btn btn-default" onclick="dosearch();"><i class="fa fa-search"></i></button>
</div>
</div>
</div>
</div>
</div>
</form>
<table id="table"></table> --%>
</section>
<!-- /.content -->
</div>
<%-- <jsp:include page="/jsp/bottom.jsp"></jsp:include> --%>
<%-- <jsp:include page="/jsp/side.jsp"></jsp:include> --%>
</div>
</body>
<!-- 文件上传-->
<link rel="stylesheet" href="<%=request.getContextPath()%>/node_modules/bootstrap-fileinput/css/fileinput.min.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-fileinput/js/fileinput.min.js" charset="utf-8"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-fileinput/js/locales/zh.js" charset="utf-8"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/JS/commonFileUpload.js" charset="utf-8"></script>
</html>

View File

@ -0,0 +1,260 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<script type="text/javascript">
var checkedid="";
var doSearchContract = function() {
$("#table_contract").bootstrapTable('refresh');
};
function doSelect(dialog,grid) {
//var checkedItems = $("#table_contract").bootstrapTable('getAllSelections');
var datas="";
datas_name="";
$.each(selectionIds, function(index, item){
if(datas!=""){
datas+=",";
}
datas+=item;
});
$.post(ext.contextPath + '/sparepart/contract/getContractByIds.do', {contractIds : datas}, function(resp) {
$.each(resp, function(index, item){
if(datas_name!=""){
datas_name+=",";
}
datas_name+=item.contractname;
});
$('#${param.formId} #${param.hiddenId}' ).val(datas);
$('#${param.formId} #${param.textId}').val(datas_name);
closeModal("contract4SelectModal")
},'json');
};
function stateFormatter(value, row, index) {
var flag=false;
$.each(eval('${contracts}'), function(index, item){
if(row.id==item.id){
flag=true;
}
});
if (flag)
return {
checked : true//设置选中
};
return value;
}
var $table;
var switchStatus=false;
var selectionIds = []; //保存选中ids
function initialSelectionIds(){
var check_array =eval('${contracts}');
if(check_array!=null&& check_array.length>0){
selectionIds =new Array(check_array.length);
for(var i=0;i<check_array.length;i++){
selectionIds[i]=check_array[i].id;
}
}
}
function getCheckedIds(){
var ids="";
var check_array =eval('${contracts}');
$.each(check_array, function(index, item){
if(ids!=""){
ids+=",";
}
ids+=item.id;
});
return ids;
}
function queryParamsContract(params) {
var temp={
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
search_name: $('#search_contractName').val(),
classid:checkedid,
};
return temp;
}
$(function() {
$("#search_contractName").keyup(function(){
if (event.keyCode == 13) {
event.preventDefault();
//回车查询
doSearchContract();
event.stopPropagation();
}
})
initTreeViewOnlyByContract();
initialSelectionIds();
$table=$("#table_contract").bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/contract/getList.do', // 获取表格数据的url
//cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
clickToSelect:true,
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
clickToSelect:true,
responseHandler:responseHandler, //在渲染页面数据之前执行的方法,此配置很重要!!!!!!!
queryParams: queryParamsContract,
queryParamsType: "limit",
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
columns: [
{
checkbox: true, // 显示一个勾选框
//formatter: stateFormatter
formatter: function (i,row) { // 每次加载 checkbox 时判断当前 row 的 id 是否已经存在全局 Set() 里
if($.inArray(row.id,Array.from(selectionIds))!=-1){ // 因为 Set是集合,需要先转换成数组
return {
checked : true // 存在则选中
}
}
}
},{
field: 'contractnumber', // 返回json数据中的name
title: '合同编号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'contractname', // 返回json数据中的name
title: '合同名称', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'contractclassName', // 返回json数据中的name
title: '合同类型', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'agentName', // 返回json数据中的name
title: '经办人', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
}
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table_contract");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
})
//绑定选中事件、取消事件、全部选中、全部取消
$table.on('check.bs.table check-all.bs.table uncheck.bs.table uncheck-all.bs.table', function (e,rows, obj) {
var ids = $.map(!$.isArray(rows) ? [rows] : rows, function (row) {
return row.id;
});
func = $.inArray(e.type, ['check', 'check-all']) > -1 ? 'union' : 'difference';
selectionIds = _[func](selectionIds, ids);
if('check'==e.type){
obj.parent().addClass("checked");
}else{
obj.parent().removeClass("checked");
}
//adjustBootstrapTableView("table_contract");
});
});
//选中事件操作数组
var union = function(array,ids){
$.each(ids, function (i, id) {
if($.inArray(id,array)==-1){
array[array.length] = id;
}
});
return array;
};
//取消选中事件操作数组
var difference = function(array,ids){
$.each(ids, function (i, id) {
var index = $.inArray(id,array);
if(index!=-1){
array.splice(index, 1);
}
});
return array;
};
var _ = {"union":union,"difference":difference};
//表格分页之前处理多选框数据
function responseHandler(res) {
$.each(res.rows, function (i, row) {
row.checkStatus = $.inArray(row.id, selectionIds) != -1; //判断当前行的数据id是否存在与选中的数组存在则将多选框状态变为true
});
return res;
}
function initTreeViewOnlyByContract() {
$.post(ext.contextPath + '/sparepart/contractClass/getContractClassJson.do', {ng:''}, function (data) {
$('#companytree').treeview({
data: data,
showBorder: true,
levels: 3,
});
$('#companytree').on('nodeSelected', function (event, data) {
checkedid=data.id;
doSearchContract();
});
}, 'json');
};
function dorefreshContract() {
$('#search_contractName').val("");
checkedid="";
initTreeViewOnlyByContract();
doSearchContract();
}
</script>
<div class="modal fade" id="contract4SelectModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">选择合同</h4>
</div>
<div class="modal-body">
<div id="alertDiv"></div>
<div class="row">
<div class="col-sm-12">
<div class="input-group input-group-sm pull-right" style="width: 250px;margin-bottom:5px;">
<input type="text" id="search_contractName" name="search_contractName" class="form-control pull-right" placeholder="合同编号/名称">
<div class="input-group-btn" style="line-height: 30px">
<button class="btn btn-default" onclick="doSearchContract();" title="搜索"><i class="fa fa-search"></i></button>
<button class="btn btn-default" onclick="dorefreshContract();" title="重置"><i class="fa fa-refresh"></i></button>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-4">
<div class="col-sm-12">
<div id="companytree" style="height:100%;overflow:auto;"></div>
</div>
</div>
<div class="col-sm-8">
<table id="table_contract"></table>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="doSelect()">确认</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,554 @@
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<%request.setAttribute("STATUS_CONTRACT_START", SparePartCommString.STATUS_CONTRACT_START); %>
<%request.setAttribute("STATUS_CONTRACT_DEPT_AUDIT", SparePartCommString.STATUS_CONTRACT_DEPT_AUDIT); %>
<%request.setAttribute("STATUS_CONTRACT_DEPT_REJECT", SparePartCommString.STATUS_CONTRACT_DEPT_REJECT); %>
<%request.setAttribute("STATUS_CONTRACT_AUDIT", SparePartCommString.STATUS_CONTRACT_AUDIT); %>
<%request.setAttribute("STATUS_CONTRACT_REJECT", SparePartCommString.STATUS_CONTRACT_REJECT); %>
<%request.setAttribute("STATUS_CONTRACT_EXECUTE", SparePartCommString.STATUS_CONTRACT_EXECUTE); %>
<%request.setAttribute("STATUS_CONTRACT_FINISH", SparePartCommString.STATUS_CONTRACT_FINISH); %>
<%request.setAttribute("FINISH", SparePartCommString.STATUS_FINISH); %>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
function dosave() {
$("#contractnumber").val($("#contractnumber_left").val()+$("#contractnumber_right").val());
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/sparepart/contract/save.do", $("#subForm").serialize(), function(data) {
if (data.res == 1){
closeModal('subModal');
$("#table").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}
}
function dosave_his() {
$("#contractnumber").val($("#contractnumber_left").val()+$("#contractnumber_right").val());
$("#status").val(${STATUS_CONTRACT_EXECUTE});
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/sparepart/contract/save.do", $("#subForm").serialize(), function(data) {
if (data.res == 1){
closeModal('subModal');
$("#table").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}
}
//输入框验证
$("#subForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
firstparty: {
validators: {
notEmpty: {
message: '甲方不能为空'
}
}
},
contractname: {
validators: {
notEmpty: {
message: '名称不能为空'
}
}
},
deptId: {
validators: {
notEmpty: {
message: '部门不能为空'
}
}
},
contractclassid: {
validators: {
notEmpty: {
message: '类型不能为空'
}
}
},
contractnumber: {
validators: {
notEmpty: {
message: '编号不能为空'
}
}
},
/* contracttaxrateid: {
validators: {
notEmpty: {
message: '税率不能为空'
}
}
},
purchaseid: {
validators: {
notEmpty: {
message: '申购单不能为空'
}
}
},
purchasemethodsid: {
validators: {
notEmpty: {
message: '采购形式不能为空'
}
}
},
channelsid: {
validators: {
notEmpty: {
message: '列资渠道不能为空'
}
}
},*/
supplierid: {
validators: {
notEmpty: {
message: '供应商不能为空'
}
}
},
}
});
var addNumber = function() {
var companyId = $("#bizId").val();
var deptId = $("#deptId").val();
var contractclassid = $("#contractclassid").val();
var channelsid = $("#channelsId").val();//列资渠道
if(deptId==null){
showAlert('d','请选择部门');
return false;
}
if(contractclassid==null){
showAlert('d','请选择类型');
return false;
}
var firstparty = $("#firstparty").val();
var companyNum = "G";
if(firstparty=='常州市排水管理处'){
companyNum = "C";
}else{
if(firstparty=='常州市排水管理处和常州市城市排水有限公司'){
companyNum = "CG";
}
}
$.post(ext.contextPath + '/sparepart/contract/doaddNumber.do', {contractClassId:contractclassid,companyNum:companyNum,deptId:deptId,channelsid:''+channelsid+''} , function(data) {
if(data.res=='true'){
$("#contractnumber_left").val(data.number.substring(0,15));
if(data.number.length>15){
$("#contractnumber_right").val(data.number.substring(16,data.number.length-1));
}
}else{
showAlert('d',data.msg);
}
},'json');
};
var showUser4SelectsFun = function(hiddenId,textId) {
var userIds= $("#"+hiddenId).val();
$.post(ext.contextPath + '/user/userForSelectByStructure.do', {formId:"subForm",hiddenId:hiddenId,textId:textId,userIds:userIds} , function(data) {
$("#user4SelectDiv").html(data);
openModal("user4SelectModal");
});
};
var showPurchase4SelectsFun = function() {
var purchaseId= $("#purchaseId").val();
$.post(ext.contextPath + '/purchase/purchaseForSelect.do', {formId:"subForm",hiddenId:"purchaseId",textId:"purchaseName",purchaseId:purchaseId} , function(data) {
$("#user4SelectDiv").html(data);
openModal("user4SelectModal");
});
};
var showSubscribe4SelectsFun = function() {
var purchaseId= $("#purchaseId").val();
var status='${FINISH}';
$.post(ext.contextPath + '/sparepart/subscribe/subscribeList4select.do', {formId:"subForm",hiddenId:"purchaseId",textId:"purchaseId",purchaseId:purchaseId,status:status} , function(data) {
$("#fault4SelectDiv").html(data);
openModal("subDetailModal");
});
};
var doFinishSelects = function(datas) {
$("#purchaseId").val(datas);
}
$(function(){
//选择公司
$.post(ext.contextPath + "/user/getCompany4Select.do", function(data) {
var selelct = $("#bizId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('${company.id}').trigger("change");
},'json');
//选择部门
$.post(ext.contextPath + "/user/getUnitsByUnitId4Select.do", {id:'${company.id}'}, function(data) {
var selelct = $("#deptId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('${cu.pid}').trigger("change");
},'json');
//选择合同类型
$.post(ext.contextPath + "/sparepart/contractClass/getContractClass4Select.do", function(data) {
var selelct = $("#contractclassid").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('').trigger("change");
},'json');
//选择合同税率
$.post(ext.contextPath + "/sparepart/contractTaxRate/getContractTaxRate4Select.do", function(data) {
var selelct = $("#contractTaxRateId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('').trigger("change");
},'json');
//选择申购单
/* $.post(ext.contextPath + "/sparepart/subscribe/getSubscribe4Select.do", function(data) {
var selelct = $("#purchaseId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('').trigger("change");
},'json'); */
//选择采购形式
$.post(ext.contextPath + "/sparepart/purchaseMethods/getPurchaseMethods4Select.do", function(data) {
var selelct = $("#purchaseMethodsId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('').trigger("change");
},'json');
//选择列资渠道
$.post(ext.contextPath + "/sparepart/channels/getChannels4Select.do", function(data) {
var selelct = $("#channelsId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('').trigger("change");
},'json');
//选择供应商
$.post(ext.contextPath + "/sparepart/supplier/getSupplier4Select.do", function(data) {
var selelct = $("#supplierId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('').trigger("change");
},'json');
//选择质保期
$.post(ext.contextPath + "/sparepart/warrantyPeriod/getWarrantyPeriod4Select.do", function(data) {
var selelct = $("#warrantyPeriodId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('').trigger("change");
},'json');
$("#contractenddate").datepicker({
language: 'zh-CN',
autoclose: true,
todayHighlight: true,
format:'yyyy-mm-dd',
})
$("#contractstartdate").datepicker({
language: 'zh-CN',
autoclose: true,
todayHighlight: true,
format:'yyyy-mm-dd',
})
$("#supplyplanenddate").datepicker({
language: 'zh-CN',
autoclose: true,
todayHighlight: true,
format:'yyyy-mm-dd',
})
$("#supplyplanstartdate").datepicker({
language: 'zh-CN',
autoclose: true,
todayHighlight: true,
format:'yyyy-mm-dd',
})
$("#supplyactualstartdate").datepicker({
language: 'zh-CN',
autoclose: true,
todayHighlight: true,
format:'yyyy-mm-dd',
})
$("#supplyactualenddate").datepicker({
language: 'zh-CN',
autoclose: true,
todayHighlight: true,
format:'yyyy-mm-dd',
})
/* $("#contractDate").datepicker('setDate',new Date()); */
})
</script>
<div class="modal fade" id="subModal">
<div class="modal-dialog modal-xlg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">新增合同</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<input id ="detailDatas" type="hidden" value="" />
<input id="status" name="status" type="hidden" value="${STATUS_CONTRACT_START}"/>
<div class="form-group">
<label class="col-md-2 col-sm-2 control-label">所属厂区</label>
<div class="col-md-4 col-sm-10">
<select class="form-control" id="bizId" name ="bizId" style="width: 100%;" >
</select>
</div>
<label class="col-md-2 col-sm-2 control-label hidden">*合同甲方</label>
<div class="col-md-4 col-sm-10 hidden">
<select class="form-control select2" id="firstparty" name ="firstparty" style="width: 100%;">
<option selected>常州市城市排水有限公司</option>
<option >常州市排水管理处</option>
<option >常州市排水管理处和常州市城市排水有限公司</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-md-2 col-sm-2 control-label">*合同名称</label>
<div class="col-md-4 col-sm-10">
<input type="text" class="form-control" id="contractname" name ="contractname" placeholder="名称" value="" >
</div>
<label class="col-md-2 col-sm-2 control-label">*合同类型</label>
<div class="col-md-4 col-sm-10">
<select class="form-control select2" id="contractclassid" name ="contractclassid" style="width: 100%;"></select>
</div>
</div>
<div class="form-group">
<label class="col-md-2 col-sm-2 control-label">*经办部门</label>
<div class="col-md-4 col-sm-10">
<select class="form-control" id="deptId" name ="deptId" style="width: 100%;" >
</select>
</div>
<label class="col-md-2 col-sm-2 control-label">*经办人</label>
<div class="col-md-4 col-sm-10">
<input type="text" class="form-control" id="agentName" name ="agentName" placeholder="点击选择"
onclick="showUser4SelectsFun('agentId','agentName');" value="${agentName}">
<input type="hidden" class="form-control" id="agentId" name ="agentid" value="${agentId}">
</div>
</div>
<div class="form-group">
<label class="col-md-2 col-sm-2 control-label">*合同编号</label>
<div class="col-md-5 col-sm-10">
<input type="hidden" class="form-control" id="id" name ="id" placeholder="编号" value="${id}" readonly>
<input type="text" class="form-control" id="contractnumber_left" placeholder="编号" value="" readonly>
</div>
<div class="col-md-5 col-sm-10">
<div class="input-group">
<input type="text" class="form-control" id="contractnumber_right" placeholder="编号自定义部分" value="">
<input type="hidden" class="form-control" id="contractnumber" name="contractnumber" value="">
<span class="input-group-btn">
<a rol="button" class="btn btn-default" onclick="addNumber();"><i class="fa fa-plus"></i> 生成编号</a>
</span>
</div><!-- /input-group -->
</div>
</div>
<div class="form-group">
<label class="col-md-2 col-sm-2 control-label">*供应商</label>
<div class="col-md-4 col-sm-10">
<select class="form-control select2" id="supplierId" name ="supplierid" style="width: 100%;"></select>
</div>
<label class="col-md-2 col-sm-2 control-label">采购形式</label>
<div class="col-md-4 col-sm-10">
<select class="form-control select2" id="purchaseMethodsId" name ="purchasemethodsid" style="width: 100%;"></select>
</div>
</div>
<div class="form-group">
<label class="col-md-2 col-sm-2 control-label">结算金额</label>
<div class="col-md-4 col-sm-10">
<input type="text" class="form-control" id="settlementAmount" name ="settlementAmount" value="">
</div>
</div>
<div class="form-group">
<label class="col-md-2 col-sm-2 control-label">采购申请单</label>
<div class="col-sm-10">
<!-- <select class="form-control select2" id="purchaseId" name ="purchaseid" style="width: 100%;"></select> -->
<input type="text" class="form-control" id="purchaseId" name ="purchaseid" placeholder="点击选择" onclick="showSubscribe4SelectsFun();" value="">
</div>
</div>
<div class="form-group">
<label class="col-md-2 col-sm-2 control-label">列资渠道</label>
<div class="col-sm-10">
<select class="form-control select2" multiple="multiple" id="channelsId" name ="channelsid" style="width: 100%;"></select>
</div>
</div>
<div class="form-group">
<label class="col-md-2 col-sm-2 control-label">开始日期</label>
<div class="col-md-4 col-sm-10">
<input type="text" class="form-control" id="contractstartdate" name ="contractstartdate" value="" >
</div>
<label class="col-md-2 col-sm-2 control-label">结束日期</label>
<div class="col-md-4 col-sm-10">
<input type="text" class="form-control" id="contractenddate" name ="contractenddate" value="" >
</div>
</div>
<div class="form-group">
<label class="col-md-2 col-sm-2 control-label">合同金额(元)</label>
<div class="col-md-4 col-sm-10">
<input type="text" class="form-control" id="contractAmount" name ="contractamount" value="" >
</div>
<label class="col-md-2 col-sm-2 control-label">合同税率(%)</label>
<div class="col-md-4 col-sm-10">
<select class="form-control select2" id="contractTaxRateId" name ="contracttaxrateid" style="width: 100%;"></select>
</div>
</div>
<div class="form-group">
<label class="col-md-2 col-sm-2 control-label">履约保证金</label>
<div class="col-md-4 col-sm-10">
<input type="text" class="form-control" id="performancebond" name ="performancebond" value="">
</div>
<label class="col-md-2 col-sm-2 control-label">质保金(%</label>
<div class="col-md-4 col-sm-10">
<input type="text" class="form-control" id="warrantydeposit" name ="warrantydeposit" value="">
</div>
</div>
<div class="form-group">
<label class="col-md-2 col-sm-2 control-label">质保金(元)</label>
<div class="col-md-4 col-sm-10">
<input type="text" class="form-control" id="qualityDeposit" name ="qualitydeposit" value="">
</div>
<label class="col-md-2 col-sm-2 control-label">质保期(年)</label>
<div class="col-md-4 col-sm-10">
<select class="form-control select2" id="warrantyPeriodId" name ="warrantyperiodid" style="width: 100%;"></select>
</div>
</div><div class="form-group">
<label class="col-md-2 col-sm-2 control-label">供货计划开始日期</label>
<div class="col-md-4 col-sm-10">
<input type="text" class="form-control" id="supplyplanstartdate" name ="supplyplanstartdate" value="" >
</div>
<label class="col-md-2 col-sm-2 control-label">供货计划结束日期</label>
<div class="col-md-4 col-sm-10">
<input type="text" class="form-control" id="supplyplanenddate" name ="supplyplanenddate" value="" >
</div>
</div>
<div class="form-group">
<label class="col-md-2 col-sm-2 control-label">供货实际开始日期</label>
<div class="col-md-4 col-sm-10">
<input type="text" class="form-control" id="supplyactualstartdate" name ="supplyactualstartdate" value="" >
</div>
<label class="col-md-2 col-sm-2 control-label">供货实际结束日期</label>
<div class="col-md-4 col-sm-10">
<input type="text" class="form-control" id="supplyactualenddate" name ="supplyactualenddate" value="" >
</div>
</div>
<div class="form-group">
<label class="col-md-2 col-sm-2 control-label">审核人</label>
<div class="col-md-4 col-sm-10">
<input type="text" class="form-control" id="auditMan" name ="auditMan" placeholder="请选择本部门领导" onclick="showUser4SelectsFun('contractAuditId','auditMan');" value="">
<input id="contractAuditId" name="contractAuditId" type="hidden" value="" />
</div>
<label class="col-md-2 col-sm-2 control-label">协办人</label>
<div class="col-md-4 col-sm-10">
<input type="text" class="form-control" id="helpersMan" name ="helpersMan" placeholder="请选择协办部门经办人(可多选)" onclick="showUser4SelectsFun('helpers','helpersMan');" value="">
<input id="helpers" name="helpers" type="hidden" value="" />
</div>
</div>
<div class="form-group">
<label class="col-md-2 col-sm-2 control-label">备注</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" id ="remark" name ="remark" placeholder="备注..."></textarea>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="dosave()" id="btn_save">保存</button>
<button type="button" class="btn btn-primary" onclick="dosave_his()" id="btn_save_his">历史保存</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,635 @@
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
//流程审核文件上传所需参数
var masterId_process = '${contract.id}';//业务Id
var tbName_process = 'TB_Process_UploadFile'; //数据表
var nameSpace_process ='ProcessUploadFile';//保存文件夹
var status = 'delete';//有删除权限
var helperstype=0;
function doSubmit() {
$('#subForm').data('bootstrapValidator')
.updateStatus('targetUsersName', 'NOT_VALIDATED',null)
.validateField('targetUsersName');
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码 */
$.post(ext.contextPath + "/sparepart/contract/doAuditContract.do", $("#subForm").serialize(), function(data) {
if (data.res == 1) {
closeModal('subModal')
$("#table").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','操作执行失败,请重试');
}else{
showAlert('d',data.res);
}
},'json');
}
}
var showUser4SelectsFun = function() {
if(helperstype==1){
showAlert('d','协助部门经办人已指定,目前无法调整');
}else{
var userIds= $("#targetusers").val();
var jobIds= $("#targetjobs").val();
$.post(ext.contextPath + '/user/userForSelectByCompany.do', {formId:"subForm",hiddenId:"targetusers",textId:"targetUsersName",userIds:userIds,jobIds:jobIds} , function(data) {
$("#user4SelectDiv").html(data);
openModal("user4SelectModal");
});
}
};
/**
* 审核界面--流程选择节点,
*/
var processSelectNode_cont = function(taskId){
//初始化路线选择
$("#routeNum").select2({
placeholder:'请选择',//默认文字提示
language: "zh-CN",
minimumResultsForSearch: -1,//禁用搜索框
});
//驳回意见初始化隐藏
// $("#reject").hide();
//初始化审核意见,通过(true)或驳回(false)
var selectResult = $("#passstatus").select2({
placeholder:'请选择',//默认文字提示
minimumResultsForSearch: -1,//禁用搜索框
});
selectResult.on('change',function(){
var passFlag= $(this).val();
//驳回时显示驳回原因,通过时隐藏
// if(passFlag == 'false'){
// $("#reject").show();
// }else{
// $("#reject").hide();
// }
//选择下一节点,先选择审核结果,再选择节点
$.post(ext.contextPath + "/activiti/workflow/getRoutesForSelect2.do", {taskId:taskId,passFlag:passFlag}, function(data) {
$("#routeNum").empty();
var o = data;
if(o!=null && o.length>0){
for(var i=0;i<o.length;i++){
if(helperstype==1){
if(o[i].text=='协助部门'){
}else{
if(o[i].text=='法务'){
o.splice(i--, 1);
}
}
}else{
if(helperstype==0){
if(o[i].text=='协助部门'){
o.splice(i--, 1);
}
}
}
}
}
var selelct = $("#routeNum").select2({
data: data,
placeholder:'请先选择审核结果',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: -1,//禁用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val(data[0].id).trigger("change");
//流程结束,不用选择人员
if(data[0].text == "结束流程"){
$("#selectUsers").hide();
}
selelct.on('change',function(){
var routeName = $("#routeNum").find("option:selected").text();
if(routeName == "结束流程"){
$("#selectUsers").hide();
}else{
$("#selectUsers").show();
}
})
},'json');
})
selectResult.val('').trigger("change");
//初始化审批人
var selectResultUser = $("#routeNum").select2({
placeholder:'请选择',//默认文字提示
minimumResultsForSearch: -1,//禁用搜索框
});
selectResultUser.on('change',function(){
var data1 = $("#routeNum").select2("data");
var targetusers="";
var targetUsersName="";
var resourceId= data1[0].resourceId;
var modelKEY = data1[0].modelKEY;
//选择下一节点,先选择审核结果,再选择节点,得到下一节点审批人
$.post(ext.contextPath + "/activiti/workflow/getTargetUsers4Node.do", {resourceId:resourceId,modelKEY:modelKEY}, function(data) {
$("#targetusers").empty();
$("#targetUsersName").empty();
if(data !=null && data.length>0){
for(var i=0;i<data.length;i++){
targetusers =targetusers+data[i].id+",";
targetUsersName =targetUsersName+data[i].caption+",";
}
if(targetusers.length>0){
targetusers = targetusers.substring(0, targetusers.length-1);
}
if(targetUsersName.length>0){
targetUsersName = targetUsersName.substring(0, targetUsersName.length-1);
}
//填写默认审批人
//$("#targetusers").val(targetusers);
//$("#targetUsersName").val(targetUsersName);
}
},'json');
//得到下一节点审批职位
var targetjobs="";
$.post(ext.contextPath + "/activiti/workflow/getTargetJobs4Node.do", {resourceId:resourceId,modelKEY:modelKEY}, function(data) {
$("#targetjobs").empty();
if(data !=null && data.length>0){
for(var i=0;i<data.length;i++){
var joblist = data[i].jobId;
targetjobs +=data[i].jobId+",";
}
if(targetjobs.length>0){
targetjobs = targetjobs.substring(0, targetjobs.length-1);
}
//console.info("targetjobs:"+targetjobs);
//填写默认审批人
//$("#targetusers").val(targetusers);
//$("#targetUsersName").val(targetUsersName);
}
$("#targetjobs").val(targetjobs);
},'json');
})
selectResult.val('').trigger("change");
}
$(function(){
//初始化文件显示
getFileList_process();
//初始化选择框方法在workflow.js里
processSelectNode_cont("${businessUnitAudit.taskid}");
//输入框验证
$("#subForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
targetUsersName: {
validators: {
notEmpty: {
message: '提交人员不能为空'
}
}
},
}
});
$('#table_SubscribeDetail').bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/subscribe/getSubscribeDetailList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
pids:'${contract.purchaseid}',
contractid:'${contract.id}',
}
},
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
columns: [
{
checkbox: true, // 显示一个勾选框
},{
field: 'goods.name', // 返回json数据中的name
title: '物品名称', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.model', // 返回json数据中的name
title: '规格型号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.unit', // 返回json数据中的name
title: '单位', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'brand', // 返回json数据中的name
title: '品牌', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
editable: { //编辑列元素
type: 'text',
title: '品牌',
}
},{
field: 'design', // 返回json数据中的name
title: '设计规格', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
editable: { //编辑列元素
type: 'text',
title: '设计规格',
}
},{
field: 'manufacturer', // 返回json数据中的name
title: '生产厂家', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
editable: { //编辑列元素
type: 'text',
title: '品牌',
}
},{
field: 'number', // 返回json数据中的name
title: '数量', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
editable: { //编辑列元素
type: 'text',
title: '数量',
validate: function (v) {
if (!v) return '数量不能为空';
}
}
},{
field: 'price', // 返回json数据中的name
title: '单价/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
editable: { //编辑列元素
type: 'text',
title: '单价',
validate: function (v) {
if (!v) return '单价不能为空';
}
}
},{
field: 'totalMoney', // 返回json数据中的name
title: '合计/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'install', // 返回json数据中的name
title: '是否安装', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'channelsName', // 返回json数据中的name
title: '子项工程', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'purpose', // 返回json数据中的name
title: '用途', // 表格表头显示文字
width: '20%',
align: 'center', // 左右居中
valign: 'middle', // 上下居中
}
],
//保存列修改后的数据
onEditableSave: function (field, row, oldValue, $el) {
$.post(ext.contextPath + "/sparepart/subscribe/updateSubscribeDetail.do", {id:row.id,price:row.price,number:row.number,purpose:row.purpose}, function(data) {
if (data.res == 1){
$("#table_SubscribeDetail").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','编辑失败');
}else{
showAlert('d',data.res);
}
},'json');
},
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table_SubscribeDetail");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
})
//显示流程详情
var id = '${contract.id}';
$.post(ext.contextPath + '/sparepart/contract/showContractView.do', {id:id,inModal:'inModal'} , function(data) {
$("#showView").html(data);
});
var helpers = "${contract.helpers}";
var helpersName = "${contract.helpersMan}";
var helpersLog = "${contract.helpersLog}";
var userid = "${cu.id}";
var arr = helpers.split(",");
var arrName = helpersName.split(",");
var targetusers = "";
var targetUsersName = "";
var indexUser = $.inArray(userid,arr);
if(indexUser<0){
for(var i=0;i<arr.length;i++){
var arrLog = helpersLog.split(",");
var index =$.inArray(arr[i],arrLog);
if(index < 0){
targetusers = arr[i];
targetUsersName = arrName[i];
helperstype=1;
break;
}
}
}
$("#targetusers").val(targetusers);
$("#targetUsersName").val(targetUsersName);
/* $('#routeNum').change(function(){
var o=document.getElementById('routeNum').getElementsByTagName('option');
var all="";
for(var i=0;i<o.length;i++){
if(helperstype==1){
if(o[i].text=='协助部门'){
$("#routeNum").val(o[i].value);
}else{
if(o[i].text=='法务'){
$("#routeNum option[value='"+o[i].value+"']").remove();
}
}
}else{
if(helperstype==0){
if(o[i].text=='协助部门'){
$("#routeNum option[value='"+o[i].value+"']").remove();
}
}
}
}
}) */
})
</script>
<div class="modal fade" id="subModal">
<div class="modal-dialog modal-xlg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">合同审核</h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-7 col-xs-12">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm" enctype="multipart/form-data" >
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<div class="form-group">
<label class="col-sm-3 control-label">所属厂区</label>
<div class="col-sm-9">
<input id="bizId" name="bizId" type="hidden" value="${contract.company.id}"/>
<p class="form-control-static" >${contract.company.name}</p>
</div>
</div>
<div class="form-group">
<label class="col-md-3 col-sm-2 control-label hidden">*合同甲方</label>
<div class="col-md-9 col-sm-10 hidden">
<select class="form-control select2" id="firstparty" name ="firstparty" style="width: 100%;" readonly>
<option <c:if test="${contract.firstparty=='常州市城市排水有限公司'}">selected</c:if>>常州市城市排水有限公司</option>
<option <c:if test="${contract.firstparty=='常州市排水管理处'}">selected</c:if>>常州市排水管理处</option>
<option <c:if test="${contract.firstparty=='常州市排水管理处和常州市城市排水有限公司'}">selected</c:if>>常州市排水管理处和常州市城市排水有限公司</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">*合同名称</label>
<div class="col-sm-9">
<input type="text" class="form-control" value="${contract.contractname}" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">*合同类型</label>
<div class="col-sm-9">
<input type="text" class="form-control" value="${contract.contractclassName}" readonly >
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">*经办部门</label>
<div class="col-sm-9">
<c:choose>
<c:when test="${!empty contract.dept.name}">
<input type="text" class="form-control" placeholder="名称" value="${contract.dept.name}" readonly>
</c:when>
<c:otherwise>
<input type="text" class="form-control" placeholder="名称" value="${contract.company.name}" readonly>
</c:otherwise>
</c:choose>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">*经办人</label>
<div class="col-sm-9">
<input type="text" class="form-control" value="${contract.agentName}" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">*合同编号</label>
<div class="col-sm-9">
<input type="text" class="form-control" value="${contract.contractnumber}" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">*供应商</label>
<div class="col-sm-9">
<input type="text" class="form-control " value="${contract.supplierName}" name ="supplierid" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">合同税率(%)</label>
<div class="col-sm-9">
<input type="text" class="form-control" value="${contract.contracttaxrateName}" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">采购申请单</label>
<div class="col-sm-9">
<input type="text" class="form-control " value="${contract.purchaseName}" name ="purchaseid" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">采购形式</label>
<div class="col-sm-9">
<input type="text" class="form-control " value="${contract.purchasemethodsName}" name ="purchasemethodsid" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">列资渠道</label>
<div class="col-sm-9">
<input type="text" class="form-control " value="${contract.channelsName}" name ="channelsid" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">开始日期</label>
<div class="col-sm-9">
<input type="text" class="form-control" value="${contract.contractstartdate.substring(0,10)}" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">结束日期</label>
<div class="col-sm-9">
<input type="text" class="form-control" value="${contract.contractenddate.substring(0,10)}" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">合同金额(元)</label>
<div class="col-sm-9">
<input type="text" class="form-control" value="${contract.contractamount}" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">履约保证金</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="performancebond" name ="performancebond" value="${contract.performancebond}" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">质保金(%</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="warrantydeposit" name ="warrantydeposit" value="${contract.warrantydeposit}" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">质保金(元)</label>
<div class="col-sm-9">
<input type="text" class="form-control" value="${contract.qualitydeposit}" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">质保期(年)</label>
<div class="col-sm-9">
<input type="text" class="form-control " value="${contract.warrantyperiod}" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">供货计划开始日期</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="supplyplanstartdate" name ="supplyplanstartdate" value="${contract.supplyplanstartdate.substring(0,10)}" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">供货计划结束日期</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="supplyplanenddate" name ="supplyplanenddate" value="${contract.supplyplanenddate.substring(0,10)}" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">供货实际开始日期</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="supplyactualstartdate" name ="supplyactualstartdate" value="${contract.supplyactualstartdate.substring(0,10)}" readonly >
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">供货实际结束日期</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="supplyactualenddate" name ="supplyactualenddate" value="${contract.supplyactualenddate.substring(0,10)}" readonly >
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">备注</label>
<div class="col-sm-9">
<textarea class="form-control" rows="2" id ="remark" name ="remark" placeholder="备注...">${contract.remark}</textarea>
</div>
</div>
<input type="hidden" class="form-control" name ="id" value="${businessUnitAudit.id}">
<input type="hidden" class="form-control" name ="processid" value="${businessUnitAudit.processid}">
<input type="hidden" class="form-control" name ="taskid" value="${businessUnitAudit.taskid}">
<input type="hidden" class="form-control" name ="businessid" value="${businessUnitAudit.businessid}">
<input type="hidden" class="form-control" name ="unitid" value="${businessUnitAudit.unitid}">
<input type="hidden" class="form-control" name ="taskdefinitionkey" value="${businessUnitAudit.taskdefinitionkey}">
<div class="form-group">
<label class="col-sm-3 control-label">*审核结果</label>
<div class="col-sm-9">
<select class="form-control select2" id="passstatus" name ="passstatus" style="width: 270px;">
<option value= true>通过</option>
<option value= false>驳回</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">*下一节点</label>
<div class="col-sm-9">
<select class="form-control select2" id="routeNum" name ="routeNum" style="width: 270px;">
</select>
</div>
</div>
<!-- <div id = "reject" class="form-group">
<label class="col-sm-2 control-label">*驳回原因</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" id ="auditopinion" name ="auditopinion" placeholder="驳回原因"></textarea>
</div>
</div> -->
<div class="form-group">
<label class="col-sm-3 control-label">审核意见</label>
<div class="col-sm-9">
<textarea class="form-control" rows="2" id ="auditopinion" name ="auditopinion" placeholder="审核意见">通过</textarea>
</div>
</div>
<div id = "selectUsers" class="form-group">
<label class="col-sm-3 control-label">提交至:</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="targetUsersName" name ="targetUsersName" placeholder="下一级人员" onclick="showUser4SelectsFun();" >
<input id="targetusers" name="targetusers" type="hidden" value=""/>
<input class="form-control" id="targetjobs" name="targetjobs" type="hidden" value=""/>
</div>
</div>
<!-- 文件上传,显示 -->
<div class="form-group" style="margin:8px">
<label class="col-sm-3 control-label"></label>
<button type="button" class="btn btn-default btn-file" onclick="fileinput_process()" id="btn_save"><i class="fa fa-paperclip"></i>上传文件</button>
</div>
<div id="fileArea">
</div>
</form>
<div class="box box-primary" >
<div class="box-header with-border">
<h3 class="box-title">申购明细</h3>
</div>
<!-- /.box-header -->
<div class="box-body ">
<input id="subscribeDetail_channelsId" type="hidden" value="" />
<table id="table_SubscribeDetail"></table>
</div>
</div>
</div>
<div class="col-md-5 col-xs-12" id="showView">
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="doSubmit()" id="btn_update">提交</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,39 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<script type="text/javascript">
$(function() {
$.post(ext.contextPath + '/sparepart/contractClass/getContractClassJson.do', {ng:''} , function(data) {
//console.info(data)
if(data.length>0){
$('#fault_select_tree').treeview({
data: data,
});
$('#fault_select_tree').on('nodeSelected', function(event, data) {
$('#${param.formId} #${param.hiddenId}' ).val(data.id);
$('#${param.formId} #${param.textId}').val(data.text);
closeModal("fault4SelectModal")
});
}
},'json');
});
</script>
<div class="modal fade" id="fault4SelectModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">选择类型</h4>
</div>
<div class="modal-body">
<div id="fault_select_tree" style="height:430px;overflow:auto;width:100%"></div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<!-- <button type="button" class="btn btn-primary" onclick="selectMenu()">保存</button> -->
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,106 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
var showContractClass4SelectFun = function() {
$.post(ext.contextPath + '/sparepart/contractClass/showList4Select.do', {formId:"subForm",hiddenId:"pid",textId:"pname"} , function(data) {
$("#fault4SelectDiv").html(data);
openModal('fault4SelectModal');
});
};
function dosave() {
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {
$.post(ext.contextPath + "/sparepart/contractClass/save.do", $("#subForm").serialize(), function(result) {
if (result == 1) {
initTreeView();
}else{
showAlert('d','保存失败');
}
});
}
}
$(function() {
$("#active").select2({minimumResultsForSearch: 10});
$("#subForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
name: {
validators: {
notEmpty: {
message: '名称不能为空'
}
}
},
number: {
validators: {
notEmpty: {
message: '编号不能为空'
}
}
},
}
});
});
</script>
<div class="box box-primary" >
<div class="box-header with-border">
<h3 class="box-title">新增</h3>
<div class="box-tools pull-right">
<a onclick="dosave()" class="btn btn-box-tool" data-toggle="tooltip" title="保存"><i class="glyphicon glyphicon-floppy-disk"></i></a>
</div>
</div>
<!-- /.box-header -->
<div class="box-body ">
<form class="form-horizontal " id="subForm">
<input id="id" name="id" type="hidden" />
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<div id="fault4SelectDiv"></div>
<div class="form-group">
<label class="col-sm-2 control-label">名称</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="name" name ="name" placeholder="名称" ">
</div>
<label class="col-sm-2 control-label">上级菜单</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="pname" name ="pname" placeholder="上级菜单" onclick="showContractClass4SelectFun();" value="${pname}"></input>
<input id="pid" name="pid" type="hidden" value="${param.pid}"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">顺序</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="morder" name ="morder" placeholder="顺序" value=0>
</div>
<label class="col-sm-2 control-label">状态</label>
<div class="col-sm-4">
<select id ="active" name="active" class="form-control select2">
<option value=true selected="selected">启用</option>
<option value=false >禁用</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">编号</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="number" name="number" placeholder="编号"
value="">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">描述</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" id ="describe" name ="describe" placeholder="描述..."></textarea>
</div>
</div>
</form>
</div>
</div>

View File

@ -0,0 +1,144 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
var showContractClass4SelectFun = function() {
$.post(ext.contextPath + '/sparepart/contractClass/showList4Select.do', {formId:"subForm",hiddenId:"pid",textId:"pname"} , function(data) {
$("#fault4SelectDiv").html(data);
openModal('fault4SelectModal');
});
};
function doupdate() {
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {
$.post(ext.contextPath + "/sparepart/contractClass/update.do", $("#subForm").serialize(), function(result) {
if (result == 1) {
showAlert('s','保存成功');
}else{
showAlert('d','保存失败');
}
});
}
}
function dodel() {
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete) {
if (willDelete) {
$.post(ext.contextPath + '/sparepart/contractClass/delete.do', $("#subForm").serialize(), function(data) {
if(data>0){
initTreeView();
}else{
showAlert('d','删除失败');
}
},'json');
}
});
}
$(function() {
$("#active").select2({minimumResultsForSearch: 10}).val("${contractClass.active}").trigger("change");
$("#subForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
name: {
validators: {
notEmpty: {
message: '名称不能为空'
}
}
},
number: {
validators: {
notEmpty: {
message: '编号不能为空'
}
}
},
}
});
});
</script>
<div class="box box-primary" >
<div class="box-header with-border">
<h3 class="box-title">编辑</h3>
<div class="box-tools pull-right">
<a onclick="doupdate()" class="btn btn-box-tool" data-toggle="tooltip" title="保存"><i class="glyphicon glyphicon-floppy-disk"></i></a>
<a onclick="dodel()" class="btn btn-box-tool" data-toggle="tooltip" title="删除"><i class="glyphicon glyphicon-trash"></i></a>
</div>
</div>
<!-- /.box-header -->
<div class="box-body ">
<form class="form-horizontal " id="subForm">
<input id="id" name="id" type="hidden" value="${contractClass.id}"/>
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<div id="fault4SelectDiv"></div>
<div class="form-group">
<label class="col-sm-2 control-label">名称</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="name" name ="name" placeholder="名称" value="${contractClass.name }">
</div>
<label class="col-sm-2 control-label">上级菜单</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="pname" name ="pname" placeholder="上级菜单" onclick="showContractClass4SelectFun();" value="${contractClass.pname}">
<input id="pid" name="pid" type="hidden" value="${contractClass.pid}"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">顺序</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="morder" name ="morder" placeholder="顺序" value="${contractClass.morder}">
</div>
<label class="col-sm-2 control-label">启用</label>
<div class="col-sm-4">
<select id ="active" name="active" class="form-control select2">
<option value=true >启用</option>
<option value=false >禁用</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">编号</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="number" name="number" placeholder="编号"
value="${contractClass.number }">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">描述</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" id ="describe" name ="describe" placeholder="描述...">${contractClass.describe}</textarea>
</div>
</div>
</form>
</div>
</div>

View File

@ -0,0 +1,91 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ page import="com.sipai.entity.base.ServerObject"%>
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security"%>
<!DOCTYPE html>
<!-- <html lang="zh-CN"> -->
<!-- BEGIN HEAD -->
<head>
<title><%= ServerObject.atttable.get("TOPTITLE")%></title>
<!-- 引用页头及CSS页-->
<jsp:include page="/jsp/inc.jsp"></jsp:include>
<script type="text/javascript">
var addFun = function() {
var node=$('#tree').treeview('getSelected');
var pid="-1";
console.info(node)
if(node!=null && node.length>0){
pid=node[0].id;
}
$.post(ext.contextPath + '/sparepart/contractClass/add.do', {pid:pid} , function(data) {
$("#faultBox").html(data);
});
};
var editFun = function(id) {
$.post(ext.contextPath + '/sparepart/contractClass/edit.do', {id:id} , function(data) {
$("#faultBox").html(data);
});
};
var initTreeView = function() {
$.post(ext.contextPath + '/sparepart/contractClass/getContractClassJson.do', function(data) {
$('#tree').treeview({data: data});
$('#tree').on('nodeSelected', function(event, data) {
editFun(data.id);
});
},'json');
$("#faultBox").html("");
};
$(function() {
initTreeView();
});
</script>
</head>
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
<div class="wrapper">
<!-- 引用top -->
<%-- <jsp:include page="/jsp/top.jsp"></jsp:include> --%>
<!-- 菜单栏 -->
<%-- <jsp:include page="/jsp/left.jsp"></jsp:include> --%>
<div class="content-wrapper">
<!-- Content Header (Page header) -->
<section class="content-header">
<h1 id ="head_title"></h1>
<ol class="breadcrumb">
<li><a id ='head_firstlevel' href="#"><i class="fa fa-dashboard"></i> </a></li>
<!-- <li class="active">Here</li> -->
</ol>
</section>
<!-- Main content -->
<section class="content container-fluid">
<div id="mainAlertdiv"></div>
<div id="subDiv"></div>
<div class="row">
<div class="col-md-2">
<div class="box box-solid">
<div class="box-header with-border">
<h3 class="box-title">合同类别</h3>
<div class="box-tools">
<button type="button" class="btn btn-box-tool" onclick="addFun();"><i class="fa fa-plus"></i>
</button>
</div>
</div>
<div class="box-body no-padding">
<div id="tree" style="height:550px;overflow:auto; "></div>
</div>
<!-- /.box-body -->
</div>
</div>
<div class="col-md-10" id="faultBox"></div>
</div>
</section>
<!-- /.content -->
</div>
<%-- <jsp:include page="/jsp/bottom.jsp"></jsp:include> --%>
<%-- <jsp:include page="/jsp/side.jsp"></jsp:include> --%>
</div>
</body>
</html>

View File

@ -0,0 +1,130 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
//流程审核文件上传所需参数
var masterId_process = '${contractDetailInvoice.id}';//业务Id
var tbName_process = 'TB_Process_UploadFile'; //数据表
var nameSpace_process ='ProcessUploadFile';//保存文件夹
function doupdate() {
$("#subDetailForm").bootstrapValidator('validate');//提交验证
if ($("#subDetailForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/sparepart/contractDetailInvoice/updateFinance.do", $("#subDetailForm").serialize(), function(data) {
if (data.res == 1){
closeModal('subDetailModal');
$("#table_Invoice").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}
}
//初始化文件显示
getFileList_process();
$("#invoicedate").datepicker({
language: 'zh-CN',
autoclose: true,
todayHighlight: true,
format:'yyyy-mm-dd',
})
//输入框验证
$("#subDetailForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
number: {
validators: {
notEmpty: {
message: '发票号不能为空'
},
}
},
invoicedate: {
validators: {
notEmpty: {
message: '开票时间不能为空'
},
},
},
amountinvoice: {
validators: {
notEmpty: {
message: '开票金额不能为空'
}
}
},
}
});
</script>
<div class="modal fade" id="subDetailModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">编辑付款信息</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subDetailForm -->
<form class="form-horizontal" id="subDetailForm">
<input type="hidden" class="form-control" id="id" name ="id" value="${contractDetailInvoice.id}">
<input type="hidden" class="form-control" id="contractId" name ="contractId" value="${contractDetailInvoice.contractId}">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<div class="form-group">
<label class="col-sm-2 control-label">*发票号</label>
<div class="col-sm-6">
<div class="input-group date">
<div class="input-group-addon">
<i class="fa fa-calendar"></i>
</div>
<input type="text" class="form-control" id="number" name ="number" readonly value="${contractDetailInvoice.number}">
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*开票时间</label>
<div class="col-sm-6">
<div class="input-group date">
<div class="input-group-addon">
<i class="fa fa-calendar"></i>
</div>
<input type="text" class="form-control" id="invoicedate" name="invoicedate"
style="width: 230px;" value="${contractDetailInvoice.invoicedate.substring(0,10)}" readonly>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*开票金额</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="amountinvoice" name ="amountinvoice"
onkeyup="LimitNumber(this)" readonly value="${contractDetailInvoice.amountinvoice}">
</div>
</div>
<!-- 文件上传,显示 -->
<div class="form-group" style="margin:8px">
<label class="col-sm-2 control-label"></label>
<button type="button" class="btn btn-default btn-file" onclick="fileinput_processMore('fileAreakpje')" id="btn_save"><i class="fa fa-paperclip"></i>上传文件</button>
</div>
<div id="fileAreakpje">
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="doupdate()" id="btn_update">确认</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,148 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
function doupdate() {
$("#subDetailForm").bootstrapValidator('validate');//提交验证
if ($("#subDetailForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/sparepart/contractDetailPayment/updateFinance.do", $("#subDetailForm").serialize(), function(data) {
if (data.res == 1){
closeModal('subDetailModal');
$("#table_Payment").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}
}
var subtraction = function(value) {
if(value!=null && value!=undefined && trim(value)!=''){
if(value>$("#contractcount").val()){
showAlert('d','付款金额异常');
}else{
$("#amountoutstanding").val($("#contractcount").val()-value);
}
}
}
$("#paymentdate").datepicker({
language: 'zh-CN',
autoclose: true,
todayHighlight: true,
format:'yyyy-mm-dd',
});
$("#applicationTime").datepicker({
language: 'zh-CN',
autoclose: true,
todayHighlight: true,
format:'yyyy-mm-dd',
})
//输入框验证
$("#subDetailForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
paymentdate: {
validators: {
notEmpty: {
message: '付款时间不能为空'
},
},
},
amountpaid: {
validators: {
notEmpty: {
message: '支付金额不能为空'
}
}
},
}
});
</script>
<div class="modal fade" id="subDetailModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">编辑付款信息</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subDetailForm -->
<form class="form-horizontal" id="subDetailForm">
<input type="hidden" class="form-control" id="id" name ="id" value="${contractDetailPayment.id}">
<input type="hidden" class="form-control" id="contractId" name ="contractId" value="${contractDetailPayment.contractId}">
<input type="hidden" class="form-control" id="contractcount" value="${contractDetailPayment.amountoutstanding}">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<div class="form-group">
<label class="col-sm-2 control-label">*付款时间</label>
<div class="col-sm-6">
<div class="input-group date">
<div class="input-group-addon">
<i class="fa fa-calendar"></i>
</div>
<input type="text" class="form-control" id="paymentdate" name="paymentdate"
style="width: 230px;" value="${contractDetailPayment.paymentdate.substring(0,10)}" />
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*支付金额</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="amountpaid" name ="amountpaid"
onkeyup="LimitNumber(this)" onblur="subtraction(this.value)" value="${contractDetailPayment.amountpaid}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*未付金额</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="amountoutstanding" name ="amountoutstanding"
value="${contractDetailPayment.amountoutstanding}" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*申请时间</label>
<div class="col-sm-6">
<div class="input-group date">
<div class="input-group-addon">
<i class="fa fa-calendar"></i>
</div>
<input type="text" class="form-control" id="applicationTime" name="applicationTime" value="${contractDetailPayment.applicationTime}"style="width: 230px;" placeholder="请选择" readonly>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*申请金额</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="applicationAmount" name ="applicationAmount" value="${contractDetailPayment.applicationAmount}"onkeyup="LimitNumber(this)" readonly>
</div>
</div>
<!-- 文件上传,显示 -->
<div class="form-group" style="margin:8px">
<label class="col-sm-2 control-label"></label>
<button type="button" class="btn btn-default btn-file" onclick="fileinput_processMore('fileAreascwj')" id="btn_save"><i class="fa fa-paperclip"></i>上传文件</button>
</div>
<div id="fileAreascwj">
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="doupdate()" id="btn_update">保存</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,144 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
function dosave() {
$("#subDetailForm").bootstrapValidator('validate');//提交验证
if ($("#subDetailForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/sparepart/contractDetailInvoice/save.do", $("#subDetailForm").serialize(), function(data) {
if (data.res == 1){
closeModal('subDetailModal');
$("#table_Invoice").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','保存失败','alertDivnumber');
}else{
showAlert('d',data.res,'alertDivnumber');
}
},'json');
}
}
var numbersubtraction = function(value) {
if(value!=null && value!=undefined && trim(value)!=''){
$.post(ext.contextPath + '/sparepart/contractDetailInvoice/checknumber.do', {number : value}, function(data) {
if(data==1){
console.log(data+"data");
showAlert('d','发票号重复','alertDivnumber');
$("#number").val("");
}
});
}
}
var comparetotal = function(value) {
if(value!=null && value!=undefined && trim(value)!=''){
var id= $("#contractId").val();
$.post(ext.contextPath + '/sparepart/contractDetailInvoice/comparetotal.do', {number : value,id:id}, function(data) {
if(data==1){
console.log(data+"data");
showAlert('w','开票金额大于合同金额,请检查','alertDivnumber');
}
});
}
}
$("#invoicedate").datepicker({
language: 'zh-CN',
autoclose: true,
todayHighlight: true,
format:'yyyy-mm-dd',
})
//输入框验证
$("#subDetailForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
number: {
validators: {
notEmpty: {
message: '发票号不能为空'
},
}
},
invoicedate: {
validators: {
notEmpty: {
message: '开票时间不能为空'
},
}
},
amountinvoice: {
validators: {
notEmpty: {
message: '开票金额不能为空'
}
}
},
}
});
</script>
<div class="modal fade" id="subDetailModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">新增开票信息</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subDetailForm -->
<form class="form-horizontal" id="subDetailForm">
<input type="hidden" class="form-control" id="contractId" name ="contractId" value="${contractId}">
<input type="hidden" class="form-control" id="total" name ="total" value="${total}">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<div id="alertDivnumber"></div>
<div class="form-group">
<label class="col-sm-2 control-label">*发票号</label>
<div class="col-sm-6">
<div class="input-group date">
<input type="text" class="form-control" id="number" onblur="numbersubtraction(this.value)" name ="number" >
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*开票金额</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="amountinvoice" name ="amountinvoice" onblur="comparetotal(this.value)" onkeyup="LimitNumber(this)" >
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*开票时间</label>
<div class="col-sm-6">
<div class="input-group date">
<div class="input-group-addon">
<i class="fa fa-calendar"></i>
</div>
<input type="text" class="form-control" id="invoicedate" name="invoicedate" style="width: 230px;" placeholder="请选择" readonly/>
</div>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="dosave()" id="btn_save">保存</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,131 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
//流程审核文件上传所需参数
var masterId_process = '${contractDetailInvoice.id}';//业务Id
var tbName_process = 'TB_Process_UploadFile'; //数据表
var nameSpace_process ='ProcessUploadFile';//保存文件夹
function doupdate() {
$("#subDetailForm").bootstrapValidator('validate');//提交验证
if ($("#subDetailForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/sparepart/contractDetailInvoice/update.do", $("#subDetailForm").serialize(), function(data) {
if (data.res == 1){
closeModal('subDetailModal');
$("#table_Invoice").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}
}
//初始化文件显示
getFileList_process();
$("#invoicedate").datepicker({
language: 'zh-CN',
autoclose: true,
todayHighlight: true,
format:'yyyy-mm-dd',
})
//输入框验证
$("#subDetailForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
number: {
validators: {
notEmpty: {
message: '发票号不能为空'
},
}
},
invoicedate: {
validators: {
notEmpty: {
message: '开票时间不能为空'
},
},
},
amountinvoice: {
validators: {
notEmpty: {
message: '开票金额不能为空'
}
}
},
}
});
</script>
<div class="modal fade" id="subDetailModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">编辑付款信息</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subDetailForm -->
<form class="form-horizontal" id="subDetailForm">
<input type="hidden" class="form-control" id="id" name ="id" value="${contractDetailInvoice.id}">
<input type="hidden" class="form-control" id="contractId" name ="contractId" value="${contractDetailInvoice.contractId}">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<div class="form-group">
<label class="col-sm-2 control-label">*发票号</label>
<div class="col-sm-6">
<div class="input-group date">
<div class="input-group-addon">
<i class="fa fa-calendar"></i>
</div>
<input type="text" class="form-control" id="number" name ="number" readonly value="${contractDetailInvoice.number}">
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*开票时间</label>
<div class="col-sm-6">
<div class="input-group date">
<div class="input-group-addon">
<i class="fa fa-calendar"></i>
</div>
<input type="text" class="form-control" id="invoicedate" name="invoicedate"
style="width: 230px;" value="${contractDetailInvoice.invoicedate.substring(0,10)}" readonly/>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*开票金额</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="amountinvoice" name ="amountinvoice"
onkeyup="LimitNumber(this)" value="${contractDetailInvoice.amountinvoice}">
</div>
</div>
<!-- 文件上传,显示 -->
<div class="form-group" style="margin:8px">
<label class="col-sm-2 control-label"></label>
<button type="button" class="btn btn-default btn-file" onclick="fileinput_processMore('fileAreakpje')" id="btn_save"><i class="fa fa-paperclip"></i>上传文件</button>
</div>
<div id="fileAreakpje">
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="doupdate()" id="btn_update">保存</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,134 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
function dosave() {
$("#subDetailForm").bootstrapValidator('validate');//提交验证
if ($("#subDetailForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/sparepart/contractDetailPayment/save.do", $("#subDetailForm").serialize(), function(data) {
if (data.res == 1){
closeModal('subDetailModal');
$("#table_Payment").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}
}
var showSubscribe4SelectsFun = function() {
var invoiceIds= $("#invoiceIds").val();
var contractId=$("#contractId").val();
$.post(ext.contextPath + '/sparepart/contractDetailInvoice/subscribeList4select.do', {formId:"subDetailForm",hiddenId:"invoiceIds",textId:"applicationAmount",invoiceIds:invoiceIds,contractId:contractId} , function(data) {
$("#fault4SelectDiv111").html(data);
openModal("subDetailModal2");
});
};
var subtraction = function(value) {
if(value!=null && value!=undefined && trim(value)!=''){
if(Number(value)>Number($("#contractcount").val())){
showAlert('付款金额异常');
}else{
$("#amountoutstanding").val($("#contractcount").val()-value);
}
}
}
$("#paymentdate").datepicker({
language: 'zh-CN',
autoclose: true,
todayHighlight: true,
format:'yyyy-mm-dd',
});
$("#applicationTime").datepicker({
language: 'zh-CN',
autoclose: true,
todayHighlight: true,
format:'yyyy-mm-dd',
})
//输入框验证
$("#subDetailForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
applicationTime: {
validators: {
notEmpty: {
message: '申请时间不能为空'
},
},
},
applicationAmount: {
validators: {
notEmpty: {
message: '申请金额不能为空'
}
}
},
}
});
</script>
<div class="modal fade" id="subDetailModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">新增付款信息</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subDetailForm -->
<form class="form-horizontal" id="subDetailForm">
<input type="hidden" class="form-control" id="contractId" name ="contractId" value="${contractId}">
<input type="hidden" class="form-control" id="contractcount" value="${amountoutstanding}">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<div class="form-group">
<div class="form-group">
<label class="col-sm-2 control-label">*申请时间</label>
<div class="col-sm-6">
<div class="input-group date">
<div class="input-group-addon">
<i class="fa fa-calendar"></i>
</div>
<input type="text" class="form-control" id="applicationTime" name="applicationTime" style="width: 230px;" placeholder="请选择" readonly/>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">关联发票</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="invoiceIds" name ="invoiceIds" style="width: 330px;" placeholder="点击选择" onclick="showSubscribe4SelectsFun();" >
<!-- <select class="form-control select2" id="purchaseId" name ="purchaseid" style="width: 100%;"></select> -->
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*申请金额</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="applicationAmount" name ="applicationAmount" onkeyup="LimitNumber(this)" >
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="dosave()" id="btn_save">保存</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,140 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
function doupdate() {
$("#subDetailForm").bootstrapValidator('validate');//提交验证
if ($("#subDetailForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/sparepart/contractDetailPayment/update.do", $("#subDetailForm").serialize(), function(data) {
if (data.res == 1){
closeModal('subDetailModal');
$("#table_Payment").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}
}
var subtraction = function(value) {
if(value!=null && value!=undefined && trim(value)!=''){
if(value>$("#contractcount").val()){
showAlert('d','付款金额异常');
}else{
$("#amountoutstanding").val($("#contractcount").val()-value);
}
}
}
var showSubscribe4SelectsFun = function() {
var invoiceIds= $("#invoiceIds").val();
var contractId=$("#contractId").val();
$.post(ext.contextPath + '/sparepart/contractDetailInvoice/subscribeList4select.do', {formId:"subDetailForm",hiddenId:"invoiceIds",textId:"applicationAmount",invoiceIds:invoiceIds,contractId:contractId} , function(data) {
$("#fault4SelectDiv111").html(data);
openModal("subDetailModal2");
});
};
$("#paymentdate").datepicker({
language: 'zh-CN',
autoclose: true,
todayHighlight: true,
format:'yyyy-mm-dd',
});
$("#applicationTime").datepicker({
language: 'zh-CN',
autoclose: true,
todayHighlight: true,
format:'yyyy-mm-dd',
})
//输入框验证
$("#subDetailForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
applicationTime: {
validators: {
notEmpty: {
message: '申请时间不能为空'
},
},
},
applicationAmount: {
validators: {
notEmpty: {
message: '申请金额不能为空'
}
}
},
}
});
</script>
<div class="modal fade" id="subDetailModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">编辑付款信息</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subDetailForm -->
<form class="form-horizontal" id="subDetailForm">
<input type="hidden" class="form-control" id="id" name ="id" value="${contractDetailPayment.id}">
<input type="hidden" class="form-control" id="contractId" name ="contractId" value="${contractDetailPayment.contractId}">
<input type="hidden" class="form-control" id="contractcount" value="${contractDetailPayment.amountoutstanding}">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<div class="form-group">
<div class="form-group">
<label class="col-sm-2 control-label">*申请时间</label>
<div class="col-sm-6">
<div class="input-group date">
<div class="input-group-addon">
<i class="fa fa-calendar"></i>
</div>
<input type="text" class="form-control" id="applicationTime" name="applicationTime" value="${contractDetailPayment.applicationTime}"style="width: 230px;" placeholder="请选择" readonly/>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">关联发票</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="invoiceIds" name ="invoiceIds" style="width: 330px;" placeholder="点击选择" onclick="showSubscribe4SelectsFun();"value="${contractDetailPayment.invoiceIds}" >
<!-- <select class="form-control select2" id="purchaseId" name ="purchaseid" style="width: 100%;"></select> -->
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*申请金额</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="applicationAmount" name ="applicationAmount" value="${contractDetailPayment.applicationAmount}"onkeyup="LimitNumber(this)" >
</div>
</div>
<!-- 文件上传,显示 -->
<div class="form-group" style="margin:8px">
<label class="col-sm-2 control-label"></label>
<button type="button" class="btn btn-default btn-file" onclick="fileinput_processMore('fileAreascwj')" id="btn_save"><i class="fa fa-paperclip"></i>上传文件</button>
</div>
<div id="fileAreascwj">
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="doupdate()" id="btn_update">保存</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,967 @@
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<%request.setAttribute("DEPARTMENT", SparePartCommString.PURCHASE_DEPARTMENT); %>
<%request.setAttribute("START", SparePartCommString.STATUS_START); %>
<%request.setAttribute("DEPT_AUDIT", SparePartCommString.STATUS_DEPT_AUDIT); %>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
//流程审核文件上传所需参数
var masterId_process = '${contract.id}';//业务Id
var tbName_process = 'TB_Process_UploadFile'; //数据表
var nameSpace_process ='ProcessUploadFile';//保存文件夹
var status = 'delete';//有删除权限
function doupdate() {
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/sparepart/contract/update.do", $("#subForm").serialize(), function(data) {
if (data.res == 1){
closeModal('subModal');
$("#table").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}
}
function dosubmit(){
$('#subUnitForm').data('bootstrapValidator')
.updateStatus('targetUsersName', 'NOT_VALIDATED',null)
.validateField('targetUsersName');
$("#subForm").bootstrapValidator('validate');//提交验证
$("#subUnitForm").bootstrapValidator('validate');//提交验证
setTimeout(function(){
if ($("#subForm").data('bootstrapValidator').isValid() && $("#subUnitForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/sparepart/contract/update.do", $("#subForm").serialize(), function(data) {
var routeNum = $("#routeNum").val();
if (data.res == 1){
$.post(ext.contextPath + "/sparepart/contract/doHandleDeptApply.do", $("#subUnitForm").serialize()+"&routeNum="+routeNum, function(unitdata) {
if (unitdata.res == 1) {
closeModal('subModal')
$("#table").bootstrapTable('refresh');
}else if(unitdata.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}else if(data.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}
}, 100);
}
var addNumber = function() {
var companyId = $("#bizId").val();;
var deptId = $("#deptId").val();
var contractclassid = $("#contractclassid").val();
if(deptId==null){
showAlert('d','请选择部门');
return false;
}
if(contractclassid==null){
showAlert('d','请选择类型');
return false;
}
var firstparty = $("#firstparty").val();
var companyNum = "G";
if(firstparty=='常州市排水管理处'){
companyNum = "C";
}else{
if(firstparty=='常州市排水管理处和常州市城市排水有限公司'){
companyNum = "CG";
}
}
$.post(ext.contextPath + '/sparepart/contract/doaddNumber.do', {contractClassId:contractclassid,companyNum:companyNum,deptId:deptId} , function(data) {
var res = data;
$("#contractnumber").val(res);
});
};
var doRefreshSubscribeDetail = function() {
$("#table_SubscribeDetail").bootstrapTable('refresh');
};
var doFinishSelectSubscribeDetail = function(data) {
$.post(ext.contextPath + '/sparepart/contract/updateSubscribeDetails.do', {contractId:'${contract.id}',deptId : $("#deptId").val(),
goodsIds:data} , function(data) {
if(data.res){
doRefreshSubscribeDetail();
}
},'json');
};
//删除多条申购明细数据
var deletesSubscribeDetailFun = function() {
var checkedItems = $("#table_SubscribeDetail").bootstrapTable('getSelections');
var datas="";
$.each(checkedItems, function(index, item){
datas+=item.id+",";
});
if(datas==""){
showAlert('d','请先选择记录','alertDiv');
}else{
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete) {
if (willDelete) {
$.post(ext.contextPath + '/sparepart/contract/deletesSubscribeDetail.do', {ids:datas} , function(data) {
if(data>0){
$("#table_SubscribeDetail").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','alertDiv');
}
});
}
});
}
};
var showUser4SelectsFun = function() {
var userIds= $("#targetusers").val();
var jobIds= $("#targetjobs").val();
$.post(ext.contextPath + '/user/userForSelectByCompany.do', {formId:"subUnitForm",hiddenId:"targetusers",textId:"targetUsersName",userIds:userIds,jobIds:jobIds} , function(data) {
$("#user4SelectDiv").html(data);
openModal("user4SelectModal");
});
};
var companyId = "${contract.bizId}";
//初始化申购部门
var refreshSelect = function(companyId) {
$.post(ext.contextPath + "/user/getDeptByBizId4Select.do", {companyId:companyId}, function(data) {
//$("#deptId").empty();
var selelct_ =$("#deptId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct_.val('${contract.deptId}').trigger("change");
},'json');
};
//新增申购明细-历史订单
var addSubscribeHistoryFun = function() {
//新增申购明细时,验证部门不能为空
$("#subForm").data('bootstrapValidator').validateField('deptId');
if($("#subForm").data('bootstrapValidator').isValidField('deptId')){
var allTableData = $("#table_SubscribeDetail").bootstrapTable('getData');
var goodsIds="";
$.each(allTableData,function(index,item){
if(goodsIds!=""){
goodsIds+=",";
}
goodsIds+=item.goods.id;
})
var goodsIds="";
var subscribeId = $("#purchaseId").val();
if(subscribeId=='' || subscribeId==null){
showAlert('d','请先选择采购申请单!','alertDiv');
return false;
}
var contractId = $("#id").val();
$.post(ext.contextPath + '/sparepart/subscribe/selectGoodsForSubscribeHistory.do', {goodsIds:goodsIds,contractId:contractId,subscribeId:subscribeId},
function(data) {
$("#fault4SelectDiv").html(data);
openModal('subDetailModal');
});
}
};
var doFinishSelectSubscribeDetail = function(data) {
var contractId = $("#id").val();
var subscribeId = $("#purchaseId").val();
$.post(ext.contextPath + '/sparepart/subscribe/updateSubscribeDetails4contract.do', {subscribeId:subscribeId,contractId : contractId, goodsIds:data} , function(data) {
if(data.res){
$("#table_SubscribeDetail").bootstrapTable('refresh');
}
},'json');
};
//删除多条申购明细数据
var deletesSubscribeHistoryFun = function() {
var checkedItems = $("#table_SubscribeDetail").bootstrapTable('getSelections');
var datas="";
$.each(checkedItems, function(index, item){
datas+=item.id+",";
});
if(datas==""){
showAlert('d','请先选择记录','alertDiv');
}else{
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete) {
if (willDelete) {
var contractId = $("#id").val();
$.post(ext.contextPath + '/sparepart/subscribe/deletesSubscribeDetail4contract.do', {ids:datas} , function(data) {
if(data>0){
$("#table_SubscribeDetail").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','alertDiv');
}
});
}
});
}
};
$(function(){
//初始化文件显示
getFileList_process();
//初始化选择框方法在workflow.js里
processSelectNodeForHandle("${businessUnitDeptApply.taskid}");
//选择公司
$.post(ext.contextPath + "/user/getCompany4Select.do", function(data) {
var selelct = $("#bizId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('${contract.bizId}').trigger("change");
},'json');
$.post(ext.contextPath + "/user/getDeptByBizId4Select.do", {companyId:companyId}, function(data) {
//$("#deptId").empty();
var selelct_ =$("#deptId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct_.val('${contract.deptId}').trigger("change");
},'json');
//选择合同类型
$.post(ext.contextPath + "/sparepart/contractClass/getContractClass4Select.do", function(data) {
var selelct = $("#contractclassid").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('${contract.contractclassid}').trigger("change");
},'json');
//选择合同税率
$.post(ext.contextPath + "/sparepart/contractTaxRate/getContractTaxRate4Select.do", function(data) {
var selelct = $("#contractTaxRateId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('${contract.contracttaxrateid}').trigger("change");
},'json');
//选择申购单
$.post(ext.contextPath + "/sparepart/subscribe/getSubscribe4Select.do", function(data) {
var selelct = $("#purchaseId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('${contract.purchaseid}').trigger("change");
},'json');
//选择采购形式
$.post(ext.contextPath + "/sparepart/purchaseMethods/getPurchaseMethods4Select.do", function(data) {
var selelct = $("#purchaseMethodsId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('${contract.purchasemethodsid}').trigger("change");
},'json');
//选择列资渠道
$.post(ext.contextPath + "/sparepart/channels/getChannels4Select.do", function(data) {
var selelct = $("#channelsId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('${contract.channelsid}').trigger("change");
},'json');
//选择供应商
$.post(ext.contextPath + "/sparepart/supplier/getSupplier4Select.do", function(data) {
var selelct = $("#supplierId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('${contract.supplierid}').trigger("change");
},'json');
//选择质保期
$.post(ext.contextPath + "/sparepart/warrantyPeriod/getWarrantyPeriod4Select.do", function(data) {
var selelct = $("#warrantyPeriodId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('${contract.warrantyperiodid}').trigger("change");
},'json');
//输入框验证
$("#subForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
contractname: {
validators: {
notEmpty: {
message: '名称不能为空'
}
}
},
deptId: {
validators: {
notEmpty: {
message: '部门不能为空'
}
}
},
contractclassid: {
validators: {
notEmpty: {
message: '类型不能为空'
}
}
},
contractnumber: {
validators: {
notEmpty: {
message: '编号不能为空'
}
}
},
/* contracttaxrateid: {
validators: {
notEmpty: {
message: '税率不能为空'
}
}
},
purchaseid: {
validators: {
notEmpty: {
message: '申购单不能为空'
}
}
},
purchasemethodsid: {
validators: {
notEmpty: {
message: '采购形式不能为空'
}
}
},
channelsid: {
validators: {
notEmpty: {
message: '列资渠道不能为空'
}
}
}, */
supplierid: {
validators: {
notEmpty: {
message: '供应商不能为空'
}
}
},
}
});
//输入框验证
$("#subUnitForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
targetUsersName: {
validators: {
notEmpty: {
message: '审核人员不能为空'
}
}
},
}
});
$('#table_SubscribeDetail').bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/subscribe/getSubscribeDetailList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
pids:'${contract.purchaseid}',
contractid:'${contract.id}',
}
},
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
columns: [
{
checkbox: true, // 显示一个勾选框
},{
field: 'goods.name', // 返回json数据中的name
title: '物品名称', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.model', // 返回json数据中的name
title: '规格型号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.unit', // 返回json数据中的name
title: '单位', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'brand', // 返回json数据中的name
title: '品牌', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
editable: { //编辑列元素
type: 'text',
title: '品牌',
}
},{
field: 'design', // 返回json数据中的name
title: '设计规格', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
editable: { //编辑列元素
type: 'text',
title: '设计规格',
}
},{
field: 'manufacturer', // 返回json数据中的name
title: '生产厂家', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
editable: { //编辑列元素
type: 'text',
title: '品牌',
}
},{
field: 'number', // 返回json数据中的name
title: '数量', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
editable: { //编辑列元素
type: 'text',
title: '数量',
validate: function (v) {
if (!v) return '数量不能为空';
}
}
},{
field: 'price', // 返回json数据中的name
title: '单价/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
editable: { //编辑列元素
type: 'text',
title: '单价',
validate: function (v) {
if (!v) return '单价不能为空';
}
}
},{
field: 'totalMoney', // 返回json数据中的name
title: '合计/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'install', // 返回json数据中的name
title: '是否安装', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'channelsName', // 返回json数据中的name
title: '子项工程', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'purpose', // 返回json数据中的name
title: '用途', // 表格表头显示文字
width: '20%',
align: 'center', // 左右居中
valign: 'middle', // 上下居中
}
],
//保存列修改后的数据
onEditableSave: function (field, row, oldValue, $el) {
$.post(ext.contextPath + "/sparepart/subscribe/updateSubscribeDetail.do", {id:row.id,price:row.price,number:row.number,purpose:row.purpose}, function(data) {
if (data.res == 1){
$("#table_SubscribeDetail").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','编辑失败');
}else{
showAlert('d',data.res);
}
},'json');
},
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table_SubscribeDetail");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
})
//显示流程详情
var id = '${subscribe.id}';
$.post(ext.contextPath + '/sparepart/subscribe/showSubscribeView.do', {id:id,inModal:'inModal'} , function(data) {
$("#showView").html(data);
});
$("#contractenddate").datepicker({
language: 'zh-CN',
autoclose: true,
todayHighlight: true,
format:'yyyy-mm-dd',
})
$("#contractstartdate").datepicker({
language: 'zh-CN',
autoclose: true,
todayHighlight: true,
format:'yyyy-mm-dd',
})
$("#supplyplanenddate").datepicker({
language: 'zh-CN',
autoclose: true,
todayHighlight: true,
format:'yyyy-mm-dd',
})
$("#supplyplanstartdate").datepicker({
language: 'zh-CN',
autoclose: true,
todayHighlight: true,
format:'yyyy-mm-dd',
})
$("#supplyactualstartdate").datepicker({
language: 'zh-CN',
autoclose: true,
todayHighlight: true,
format:'yyyy-mm-dd',
})
$("#supplyactualenddate").datepicker({
language: 'zh-CN',
autoclose: true,
todayHighlight: true,
format:'yyyy-mm-dd',
})
})
//导出设备表,要用get请求的方式
function downloadFun() {
var contractId = '${contract.id}';
window.open(ext.contextPath + "/sparepart/subscribe/downloadSubscribeDetailExcel.do?contractId="+contractId);
}
//导出设备表,要用get请求的方式
function downloadFun4equ() {
var contractId = '${contract.id}';
window.open(ext.contextPath + "/sparepart/subscribe/downloadEquipmentExcel.do?contractId="+contractId);
}
//导入明细
function importFun(){
var contractId = '${contract.id}';
var channelsid = $("#channelsid").val();//列资渠道
$.post(ext.contextPath + '/sparepart/subscribe/importSubscribeDetail.do', {contractId:contractId,channelsid:channelsid} , function(data) {
$("#importDiv").html(data);
openModal('importModal');
});
}
var addchannelsId = function() {
var checkedItems = $("#table_SubscribeDetail").bootstrapTable('getSelections');
var datas="";
$.each(checkedItems, function(index, item){
datas+=item.id+",";
});
if(datas==""){
showAlert('d','请先选择记录','alertDiv');
}else{
var channelsid= $("#channelsid").val();
$.post(ext.contextPath + '/sparepart/channels/selectChannelsForSubscribeDetail.do', {channelsid:channelsid},
function(data) {
$("#fault4SelectDiv").html(data);
openModal('fault4SelectModal');
});
}
}
var addchannelsIdSave = function() {
var checkedItems = $("#table_SubscribeDetail").bootstrapTable('getSelections');
var datas="";
$.each(checkedItems, function(index, item){
datas+=item.id+",";
});
var channelsId= $("#subscribeDetail_channelsId").val();
$.post(ext.contextPath + '/sparepart/subscribe/addSubscribeDetailchannelsId.do', {ids:datas,channelsId:channelsId} , function(data) {
if(data>0){
$("#table_SubscribeDetail").bootstrapTable('refresh');
}else{
showAlert('d','设置失败','alertDiv');
}
});
}
</script>
<div class="modal fade" id="subModal">
<div class="modal-dialog modal-xlg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">重新编辑合同</h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-7 col-xs-12">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<input id="status" name="status" type="hidden" value="${contract.status}"/>
<div class="form-group">
<label class="col-sm-3 control-label">所属厂区</label>
<div class="col-sm-9">
<select class="form-control" id="bizId" name ="bizId" style="width: 270px;" >
</select>
<%-- <input id="bizId" name="bizId" type="hidden" value="${contract.company.id}"/>
<p class="form-control-static" >${contract.company.name}</p> --%>
</div>
</div>
<div class="form-group">
<label class="col-md-3 col-sm-2 control-label hidden">*合同甲方</label>
<div class="col-md-6 col-sm-10 hidden">
<select class="form-control select2" id="firstparty" name ="firstparty" style="width: 100%;">
<option <c:if test="${contract.firstparty=='常州市城市排水有限公司'}">selected</c:if>>常州市城市排水有限公司</option>
<option <c:if test="${contract.firstparty=='常州市排水管理处'}">selected</c:if>>常州市排水管理处</option>
<option <c:if test="${contract.firstparty=='常州市排水管理处和常州市城市排水有限公司'}">selected</c:if>>常州市排水管理处和常州市城市排水有限公司</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">*合同名称</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="contractname" name ="contractname" placeholder="名称" value="${contract.contractname}" >
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">*合同类型</label>
<div class="col-sm-6">
<select class="form-control select2" id="contractclassid" name ="contractclassid" style="width: 270px;"></select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">*经办部门</label>
<div class="col-sm-6">
<select class="form-control" id="deptId" name ="deptId" style="width: 270px;" >
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">*经办人</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="agentName" name ="agentName" placeholder="点击选择"
onclick="showUser4SelectsFun();" value="${contract.agentName}">
<input type="hidden" class="form-control" id="agentId" name ="agentid" value="${contract.agentid}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">*合同编号</label>
<div class="col-sm-6">
<input type="hidden" class="form-control" id="id" name ="id" value="${contract.id}" readonly>
<input type="text" class="form-control" id="contractnumber" placeholder="编号" name ="contractnumber" value="${contract.contractnumber}" readonly>
</div>
<div class="col-sm-3">
<a rol="button" class="btn btn-default btn-sm" onclick="addNumber();"><i class="fa fa-plus"></i> 获取编号</a>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">*合同税率(%)</label>
<div class="col-sm-6">
<select class="form-control select2" id="contractTaxRateId" name ="contracttaxrateid" style="width: 270px;"></select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">采购申请单</label>
<div class="col-sm-6">
<select class="form-control select2" id="purchaseId" name ="purchaseid" style="width: 270px;"></select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">采购形式</label>
<div class="col-sm-6">
<select class="form-control select2" id="purchaseMethodsId" name ="purchasemethodsid" style="width: 270px;"></select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">列资渠道</label>
<div class="col-sm-6">
<select class="form-control select2" id="channelsId" name ="channelsid" style="width: 270px;"></select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">*供应商</label>
<div class="col-sm-6">
<select class="form-control select2" id="supplierId" name ="supplierid" style="width: 270px;"></select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">开始日期</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="contractstartdate" name ="contractstartdate" value="${contract.contractstartdate.substring(0,10)}" >
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">结束日期</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="contractenddate" name ="contractenddate" value="${contract.contractenddate.substring(0,10)}" >
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">合同金额(元)</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="contractAmount" name ="contractamount" value="${contract.contractamount}" >
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">质保金(元)</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="qualityDeposit" name ="qualitydeposit" value="${contract.qualitydeposit}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">履约保证金</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="performancebond" name ="performancebond" value="${contract.performancebond}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">质保金(%</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="warrantydeposit" name ="warrantydeposit" value="${contract.warrantydeposit}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">质保期(年)</label>
<div class="col-sm-6">
<select class="form-control select2" id="warrantyPeriodId" name ="warrantyperiodid" style="width: 270px;"></select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">供货计划开始日期</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="supplyplanstartdate" name ="supplyplanstartdate" value="${contract.supplyplanstartdate.substring(0,10)}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">供货计划结束日期</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="supplyplanenddate" name ="supplyplanenddate" value="${contract.supplyplanenddate.substring(0,10)}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">供货实际开始日期</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="supplyactualstartdate" name ="supplyactualstartdate" value="${contract.supplyactualstartdate.substring(0,10)}" >
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">供货实际结束日期</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="supplyactualenddate" name ="supplyactualenddate" value="${contract.supplyactualenddate.substring(0,10)}" >
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">协办人</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="helpersMan" name ="helpersMan" placeholder="点击选择" onclick="showUser4SelectsFun('helpers','helpersMan');" value="${contract.helpersMan}">
<input id="helpers" name="helpers" type="hidden" value="${contract.helpers}" />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">备注</label>
<div class="col-sm-6">
<textarea class="form-control" rows="2" id ="remark" name ="remark" placeholder="备注...">${contract.remark}</textarea>
</div>
</div>
</form>
<form class="form-horizontal" id="subUnitForm" enctype="multipart/form-data" >
<input type="hidden" class="form-control" name ="id" value="${businessUnitDeptApply.id}">
<input type="hidden" class="form-control" name ="processid" value="${businessUnitDeptApply.processid}">
<input type="hidden" class="form-control" name ="taskid" value="${businessUnitDeptApply.taskid}">
<input type="hidden" class="form-control" name ="subscribeId" value="${businessUnitDeptApply.subscribeId}">
<input type="hidden" class="form-control" name ="taskdefinitionkey" value="${businessUnitDeptApply.taskdefinitionkey}">
<c:if test='${not empty rejectReson }'>
<div class="form-group">
<label class="col-sm-3 control-label">调整说明:</label>
<div class="col-sm-9">
<textarea class="form-control " id="auditopinion" name="auditopinion" rows="2" placeholder="调整说明" >${rejectReson}</textarea>
</div>
</div>
</c:if>
<div class="form-group">
<label class="col-sm-3 control-label">*下一节点</label>
<div class="col-sm-6">
<select class="form-control select2" id="routeNum" name ="routeNum" style="width: 270px;">
</select>
</div>
</div>
<div id = "selectUsers" class="form-group">
<label class="col-sm-3 control-label">提交至:</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="targetUsersName" name ="targetUsersName" placeholder="下一级人员" onclick="showUser4SelectsFun();" >
<input id="targetusers" name="targetusers" type="hidden" value="${businessUnitDeptApply.targetusers}"/>
<input class="form-control" id="targetjobs" name="targetjobs" type="hidden" value=""/>
</div>
</div>
<!-- 文件上传,显示 -->
<div class="form-group" style="margin:8px">
<label class="col-sm-3 control-label"></label>
<button type="button" class="btn btn-default btn-file" onclick="fileinput_process()" id="btn_save"><i class="fa fa-paperclip"></i>上传文件</button>
</div>
<div id="fileArea">
</div>
</form>
<div class="box box-primary" >
<div class="box-header with-border">
<h3 class="box-title">合同明细</h3>
<div class="box-tools pull-right">
<a class="btn btn-default btn-sm" onclick="importFun();"><i class="fa fa-cloud-upload"></i> 导入合同明细表</a>
<a onclick="downloadFun();" class="btn btn-default btn-sm"><i class="fa fa-cloud-download"></i> 导出合同明细表</a>
<a onclick="downloadFun4equ();" class="btn btn-default btn-sm"><i class="fa fa-cloud-download"></i> 导出为设备台账</a>
<a onclick="addchannelsId()" class="btn btn-default" data-toggle="tooltip" title="设置">设置子项工程</a>
<a onclick="addSubscribeHistoryFun()" class="btn btn-box-tool" data-toggle="tooltip" title="新增"><i class="glyphicon glyphicon-plus"></i></a>
<a onclick="deletesSubscribeHistoryFun()" class="btn btn-box-tool" data-toggle="tooltip" title="删除"><i class="glyphicon glyphicon-minus"></i></a>
</div>
</div>
<!-- /.box-header -->
<div class="box-body ">
<input id="subscribeDetail_channelsId" type="hidden" value="" />
<table id="table_SubscribeDetail"></table>
</div>
</div>
</div>
<div class="col-md-5 col-xs-12" id="showView">
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="doupdate()" id="btn_update">保存</button>
<button type="button" class="btn btn-primary" onclick="dosubmit()" id="btn_submit">提交审核</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,206 @@
<%@page import="com.sipai.entity.business.BusinessUnit"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<%@page import="com.sipai.entity.maintenance.Maintenance"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%String contextPath = request.getContextPath();%>
<%String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath();%>
<%String serverPath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort();%>
<%request.setAttribute("Status_Finish",Maintenance.Status_Finish);%>
<!-- 补录状态 -->
<%request.setAttribute("TYPE_SUPPLEMENT",Maintenance.TYPE_SUPPLEMENT);%>
<!-- 运维主流程状态 -->
<%request.setAttribute("TYPE_MAINTENANCE",Maintenance.TYPE_MAINTENANCE);%>
<%request.setAttribute("UNIT_HANDLE",BusinessUnit.UNIT_HANDLE);%>
<!-- bootstrap-star-rating -->
<link rel="stylesheet" href="<%=request.getContextPath()%>/node_modules/bootstrap-star-rating/css/star-rating.min.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-star-rating/js/star-rating.min.js" charset="utf-8"></script>
<script type="text/javascript">
//var masterId=$('#maintenanceId').val();
var tbName_problem='tb_maintenance_problem_fille'; //数据表
var tbName_maintenance='tb_maintenance_file'; //数据表
var nameSpace='MaintenanceProblem';//保存文件夹
var previews = new Array();
var previewConfigs = new Array();
//初始化fileinput控件第一次初始化
function showFileInput(ctrlName) {
var control = $('#' + ctrlName);
control.fileinput('destroy');
control.fileinput({
language: 'zh', //设置语言
showUpload: false, //是否显示上传按钮
showRemove:false,
showCaption: false,//是否显示标题
showBrowse:false,//选择按钮
showClose:false,//右上角关闭按钮
dropZoneEnabled: false,//是否显示拖拽区域
resizeImage:true,
fileActionSettings:{
showDrag:false
},
browseClass: "btn btn-primary", //按钮样式
maxFileCount: 10, //表示允许同时上传的最大文件个数
enctype: 'multipart/form-data',
validateInitialCount:true,
previewFileIcon: "<i class='glyphicon glyphicon-king'></i>",
initialPreviewAsData: true,
initialPreview: previews,
initialPreviewConfig:previewConfigs,
layoutTemplates:{
actionUpload:'',
actionDelete:''
}
});
$('#kvFileinputModal').on("hidden.bs.modal", function() {
$(this).removeData("bs.modal");
//modal重复打开会导致前面的滚动条失去作用
$('.modal').css("overflow","auto");
});
}
var viewHandleDetailFun = function(id) {
$.post(ext.contextPath + '/maintenance/showHandleDetailView.do', {id:id} , function(data) {
$("#handleDetailDiv").html(data);
openModal('handleDetailModal');
});
};
//流程审核文件上传所需参数
var masterId_process = '${param.id}';//业务Id
var tbName_process = 'TB_Process_UploadFile'; //数据表
var nameSpace_process ='ProcessUploadFile';//保存文件夹
var status = 'view';//有查看权限
$(function() {
//初始化文件显示
getFileList_process();
$("#judgemaintainerstaff").rating('refresh',{showClear:false,showCaption:false,readonly:true});
$("#judgeresult").rating('refresh',{showClear:false,showCaption:false,readonly:true});
var result='${businessUnitRecords}';
result=result.replace(new RegExp("\r\n","gm"),"");
var json =JSON.parse(result);
$.each(json, function(index, item) {
if(item.id!=null &&item.id!=""){
previews=new Array();
$('#'+item.id).show();
var data =item.files;
for(var i=0;i<data.length;i++){
var previewConfig = new Object();
var path = data[i].abspath;
path=path.substring(path.indexOf('webapps')+7,path.length);
path =ext.basePath.replace(ext.contextPath,'')+ path.replace(/\\/g,"\/");
previews.push(path);
previewConfig['width']= '30px';
previewConfig['caption']= data[i].filename;
previewConfig['key']= data[i].id;
previewConfigs.push(previewConfig);
}
showFileInput(item.id);
}
});
})
//----------------------------------------------------------------------------------------------------------------------------------------------------
var printpage = function (myDiv){
$('.printContent').show();
var printHtml = document.getElementById(myDiv).innerHTML;
var wind = window.open("", "newwin", "width=1550,height=565,top=80,left=80,toolbar=no,scrollbars=yes,menubar=no");
var link = document.createElement('link');
link.type = 'text/css';
link.rel = 'stylesheet';
link.href = '<%=serverPath%><%=contextPath%>/plugins/bootstrap-ext/dist/bootstrap.min.css';
wind.document.head.appendChild(link);
wind.document.body.innerHTML = printHtml;
wind.print();
wind.close();
$('.printContent').hide();
};
//----------------------------------------------------------------------------------------------------------------------------------------------------
</script>
<div class="modal fade" id="contractExcuteModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">合同详情</h4>
</div>
<div class="modal-body " style="padding-left:0;padding-right:0;">
<div class="row">
<div class="col-md-12">
<!-- The time line -->
<ul class="timeline">
<c:forEach items="${businessUnitRecords}" var="item" varStatus="status">
<li>
<c:choose>
<c:when test='${finishFlag && status.last}'>
<i class="fa fa-check bg-blue"></i>
</c:when>
<c:otherwise >
<i class="fa fa-clock-o bg-grey"></i>
</c:otherwise>
</c:choose>
<div class="timeline-item">
<span class="time"><i class="fa fa-clock-o"></i> ${item.insdt.substring(0,16)}</span>
<h3 class="timeline-header"><a href="#">${item.taskName}</a> ${item.user.caption}</h3>
<div class="timeline-body" style="padding-left:5px;padding-right:5px;">
<div>
${item.record}
</div>
<c:if test ="${item.id!=''}">
<div style="padding-top:5px;">
<input type="file" id='${item.id}' multiple class="file-loading" />
</div>
</c:if>
</div>
</div>
</li>
</c:forEach>
</ul>
</div>
<!-- /.col -->
</div>
</div>
<!-- 流程打印布局 开始 -->
<div id="contractExcuteDetail">
<div class="printContent" style="display:none">
<h4 style="text-align:center;">申购处理详情</h4>
</div>
<div class="printContent" style="display:none;">
<table style="border-collapse:collapse;margin:0 auto">
<tr >
<td style="border:1px solid black;width:120px;text-align: center;">时间</td>
<td style="border:1px solid black;width:120px;text-align: center;">发起人</td>
<td style="border:1px solid black;width:120px;text-align: center;">任务</td>
<td style="border:1px solid black;width:120px;text-align: center;">流程内容详情</td>
</tr>
<c:forEach items="${businessUnitRecords}" var="item" varStatus="status">
<tr>
<td style="border:1px solid black;width:150px;text-align: center;">${item.insdt.substring(0,16)}</td>
<td style="border:1px solid black;width:120px;text-align: center;">${item.user.caption}</td>
<td style="border:1px solid black;width:120px;text-align: center;">${item.taskName}</td>
<td style="border:1px solid black;width:300px;">${item.record}</td>
</tr>
</c:forEach>
</table>
</div>
<form class="form-horizontal" id="subForm">
<div class="form-group">
<label class="col-sm-2 control-label">文件附件:</label>
</div>
<!-- 文件上传,显示 -->
<div class="file-border" id="fileArea">
</div>
</form>
</div>
<!-- 流程打印布局 结束-->
<div class="modal-footer">
<button type="button" class="btn btn-default" onclick="printpage('contractExcuteDetail');"><i class="fa fa-print"></i>打印</button>
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,185 @@
<%@page import="com.sipai.entity.business.BusinessUnit"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<%@page import="com.sipai.entity.maintenance.Maintenance"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%String contextPath = request.getContextPath();%>
<%String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath();%>
<%String serverPath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort();%>
<%request.setAttribute("Status_Finish",Maintenance.Status_Finish);%>
<!-- 补录状态 -->
<%request.setAttribute("TYPE_SUPPLEMENT",Maintenance.TYPE_SUPPLEMENT);%>
<!-- 运维主流程状态 -->
<%request.setAttribute("TYPE_MAINTENANCE",Maintenance.TYPE_MAINTENANCE);%>
<%request.setAttribute("UNIT_HANDLE",BusinessUnit.UNIT_HANDLE);%>
<!-- bootstrap-star-rating -->
<link rel="stylesheet" href="<%=request.getContextPath()%>/node_modules/bootstrap-star-rating/css/star-rating.min.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-star-rating/js/star-rating.min.js" charset="utf-8"></script>
<script type="text/javascript">
//var masterId=$('#maintenanceId').val();
var tbName_problem='tb_maintenance_problem_fille'; //数据表
var tbName_maintenance='tb_maintenance_file'; //数据表
var nameSpace='MaintenanceProblem';//保存文件夹
var previews = new Array();
var previewConfigs = new Array();
//初始化fileinput控件第一次初始化
function showFileInput(ctrlName) {
var control = $('#' + ctrlName);
control.fileinput('destroy');
control.fileinput({
language: 'zh', //设置语言
showUpload: false, //是否显示上传按钮
showRemove:false,
showCaption: false,//是否显示标题
showBrowse:false,//选择按钮
showClose:false,//右上角关闭按钮
dropZoneEnabled: false,//是否显示拖拽区域
resizeImage:true,
fileActionSettings:{
showDrag:false
},
browseClass: "btn btn-primary", //按钮样式
maxFileCount: 10, //表示允许同时上传的最大文件个数
enctype: 'multipart/form-data',
validateInitialCount:true,
previewFileIcon: "<i class='glyphicon glyphicon-king'></i>",
initialPreviewAsData: true,
initialPreview: previews,
initialPreviewConfig:previewConfigs,
layoutTemplates:{
actionUpload:'',
actionDelete:''
}
});
$('#kvFileinputModal').on("hidden.bs.modal", function() {
$(this).removeData("bs.modal");
//modal重复打开会导致前面的滚动条失去作用
$('.modal').css("overflow","auto");
});
}
var viewHandleDetailFun = function(id) {
$.post(ext.contextPath + '/maintenance/showHandleDetailView.do', {id:id} , function(data) {
$("#handleDetailDiv").html(data);
openModal('handleDetailModal');
});
};
//流程审核文件上传所需参数
var masterId_process = '${param.id}';//业务Id
var tbName_process = 'TB_Process_UploadFile'; //数据表
var nameSpace_process ='ProcessUploadFile';//保存文件夹
var status = 'view';//有查看权限
$(function() {
//初始化文件显示
getFileList_process();
$("#judgemaintainerstaff").rating('refresh',{showClear:false,showCaption:false,readonly:true});
$("#judgeresult").rating('refresh',{showClear:false,showCaption:false,readonly:true});
var result='${businessUnitRecords}';
result=result.replace(new RegExp("\r\n","gm"),"");
var json =JSON.parse(result);
$.each(json, function(index, item) {
if(item.id!=null &&item.id!=""){
previews=new Array();
$('#'+item.id).show();
var data =item.files;
for(var i=0;i<data.length;i++){
var previewConfig = new Object();
var path = data[i].abspath;
path=path.substring(path.indexOf('webapps')+7,path.length);
path =ext.basePath.replace(ext.contextPath,'')+ path.replace(/\\/g,"\/");
previews.push(path);
previewConfig['width']= '30px';
previewConfig['caption']= data[i].filename;
previewConfig['key']= data[i].id;
previewConfigs.push(previewConfig);
}
showFileInput(item.id);
}
});
})
//----------------------------------------------------------------------------------------------------------------------------------------------------
var printpage = function (myDiv){
$('.printContent').show();
var printHtml = document.getElementById(myDiv).innerHTML;
var wind = window.open("", "newwin", "width=1550,height=565,top=80,left=80,toolbar=no,scrollbars=yes,menubar=no");
var link = document.createElement('link');
link.type = 'text/css';
link.rel = 'stylesheet';
link.href = '<%=serverPath%><%=contextPath%>/plugins/bootstrap-ext/dist/bootstrap.min.css';
wind.document.head.appendChild(link);
wind.document.body.innerHTML = printHtml;
wind.print();
wind.close();
$('.printContent').hide();
};
//----------------------------------------------------------------------------------------------------------------------------------------------------
</script>
<div class="row">
<div class="col-md-12">
<!-- The time line -->
<ul class="timeline">
<c:forEach items="${businessUnitRecords}" var="item" varStatus="status">
<li>
<c:choose>
<c:when test='${finishFlag && status.last}'>
<i class="fa fa-check bg-blue"></i>
</c:when>
<c:otherwise >
<i class="fa fa-clock-o bg-grey"></i>
</c:otherwise>
</c:choose>
<div class="timeline-item">
<span class="time"><i class="fa fa-clock-o"></i> ${item.insdt.substring(0,16)}</span>
<h3 class="timeline-header"><a href="#">${item.taskName}</a> ${item.user.caption}</h3>
<div class="timeline-body" style="padding-left:5px;padding-right:5px;">
<div>
${item.record}
</div>
<c:if test ="${item.id!=''}">
<div style="padding-top:5px;">
<input type="file" id='${item.id}' multiple class="file-loading" />
</div>
</c:if>
</div>
</div>
</li>
</c:forEach>
</ul>
</div>
<!-- /.col -->
</div>
<!-- 流程打印布局 开始 -->
<div id="contractExcuteDetail">
<div class="printContent" style="display:none">
<h4 style="text-align:center;">申购处理详情</h4>
</div>
<div class="printContent" style="display:none;">
<table style="border-collapse:collapse;margin:0 auto">
<tr >
<td style="border:1px solid black;width:120px;text-align: center;">时间</td>
<td style="border:1px solid black;width:120px;text-align: center;">发起人</td>
<td style="border:1px solid black;width:120px;text-align: center;">任务</td>
<td style="border:1px solid black;width:120px;text-align: center;">流程内容详情</td>
</tr>
<c:forEach items="${businessUnitRecords}" var="item" varStatus="status">
<tr>
<td style="border:1px solid black;width:150px;text-align: center;">${item.insdt.substring(0,16)}</td>
<td style="border:1px solid black;width:120px;text-align: center;">${item.user.caption}</td>
<td style="border:1px solid black;width:120px;text-align: center;">${item.taskName}</td>
<td style="border:1px solid black;width:300px;">${item.record}</td>
</tr>
</c:forEach>
</table>
</div>
<form class="form-horizontal" id="subForm">
<div class="form-group">
<label class="col-sm-4 control-label">文件附件:</label>
</div>
<!-- 文件上传,显示 -->
<div class="file-border" id="fileArea">
</div>
</form>
</div>

View File

@ -0,0 +1,629 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ page import="com.sipai.entity.base.ServerObject"%>
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security"%>
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
<%request.setAttribute("START", SparePartCommString.STATUS_START); %>
<%request.setAttribute("DEPT_AUDIT", SparePartCommString.STATUS_DEPT_AUDIT); %>
<%request.setAttribute("DEPT_REJECT", SparePartCommString.STATUS_DEPT_REJECT); %>
<%request.setAttribute("FINISH", SparePartCommString.STATUS_FINISH); %>
<%request.setAttribute("INQUIRY_AUDIT", SparePartCommString.STATUS_INQUIRY_AUDIT); %>
<%request.setAttribute("INQUIRY_REJECT", SparePartCommString.STATUS_INQUIRY_REJECT); %>
<%request.setAttribute("PURCHASE_INQUIRY", SparePartCommString.STATUS_PURCHASE_INQUIRY); %>
<%request.setAttribute("STATUS_CONTRACT_START", SparePartCommString.STATUS_CONTRACT_START); %>
<%request.setAttribute("STATUS_CONTRACT_DEPT_AUDIT", SparePartCommString.STATUS_CONTRACT_DEPT_AUDIT); %>
<%request.setAttribute("STATUS_CONTRACT_DEPT_REJECT", SparePartCommString.STATUS_CONTRACT_DEPT_REJECT); %>
<%request.setAttribute("STATUS_CONTRACT_AUDIT", SparePartCommString.STATUS_CONTRACT_AUDIT); %>
<%request.setAttribute("STATUS_CONTRACT_REJECT", SparePartCommString.STATUS_CONTRACT_REJECT); %>
<%request.setAttribute("STATUS_CONTRACT_EXECUTE", SparePartCommString.STATUS_CONTRACT_EXECUTE); %>
<%request.setAttribute("STATUS_CONTRACT_FINISH", SparePartCommString.STATUS_CONTRACT_FINISH); %>
<!DOCTYPE html>
<!-- <html lang="zh-CN"> -->
<!-- BEGIN HEAD -->
<head>
<title><%= ServerObject.atttable.get("TOPTITLE")%></title>
<!-- 引用页头及CSS页-->
<jsp:include page="/jsp/inc.jsp"></jsp:include>
<!--bootstrap-table 导出 -->
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-table/extensions/export/bootstrap-table-export.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-table/tableExport/libs/FileSaver/FileSaver.min.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-table/tableExport/libs/js-xlsx/xlsx.core.min.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-table/tableExport/libs/jsPDF/jspdf.min.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-table/tableExport/libs/jsPDF-AutoTable/jspdf.plugin.autotable.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-table/tableExport/libs/es6-promise/es6-promise.auto.min.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-table/tableExport/libs/html2canvas/html2canvas.min.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-table/tableExport/tableExport.min.js"></script>
<!-- bootstrap switch -->
<link rel="stylesheet" href="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/css/bootstrap3/bootstrap-switch.min.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/js/bootstrap-switch.min.js" charset="utf-8"></script>
<!--bootstrap-edittable 表格行内编辑 -->
<link rel="stylesheet" href="<%=request.getContextPath()%>/plugins/bootstrap-editable/css/bootstrap-editable.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-editable/js/bootstrap-editable.js" charset="utf-8"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-editable/js/bootstrap-table-editable.js" charset="utf-8"></script>
<style type="text/css">
.select2-container .select2-selection--single{
height:30px;
line-height: 30px;
}
.select2-selection__arrow{
margin-top:3px;
}
.table-hover>tbody>tr:hover {
cursor: pointer;
}
.fixed-table-toolbar .bs-bars,.fixed-table-toolbar .columns{
margin-top: 0px;
margin-bottom: 0px;
line-height: 20px;
}
</style>
<script type="text/javascript">
var addFun = function() {
$("#searchForm").bootstrapValidator('validate');//提交验证
if ($("#searchForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + '/sparepart/contract/add.do', {companyId :companyId } , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
};
var editFun = function(id) {
stopBubbleDefaultEvent();
$.post(ext.contextPath + '/sparepart/contract/edit.do', {id:id} , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
var viewFun = function(id){
$.post(ext.contextPath + '/sparepart/contract/view.do', {id:id} , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
//流程处理详情
var viewDetailHandleFun = function(id) {
stopBubbleDefaultEvent();
$.post(ext.contextPath + '/sparepart/contract/showContractView.do', {id:id} , function(data) {
$("#subDiv").html(data);
openModal('contractExcuteModal');
});
};
var deleteFun = function(id) {
stopBubbleDefaultEvent();
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete){
if (willDelete) {
$.post(ext.contextPath + '/sparepart/contract/delete.do', {id : id}, function(data) {
if(data==1){
$("#table").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','mainAlertdiv');
}
});
}
});
};
var deletesFun = function() {
var checkedItems = $("#table").bootstrapTable('getSelections');
var datas="";
$.each(checkedItems, function(index, item){
datas+=item.id+",";
});
if(datas==""){
showAlert('d','请先选择记录','mainAlertdiv');
}else{
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete) {
if (willDelete) {
$.post(ext.contextPath + '/sparepart/contract/deletes.do', {ids:datas} , function(data) {
if(data>0){
$("#table").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','mainAlertdiv');
}
});
}
});
}
};
//查询方法,选择厂区后自动加载
var dosearch = function() {
$("#table").bootstrapTable('refresh');
selectDept();
};
var companyId = unitId;
$(function() {
//简易公司combotree
$.post(ext.contextPath + "/user/showCompanySelectTree.do", {}, function (data) {
$('#companySelectTree').html(data);
});
//输入框验证
$("#searchForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
search_code: {
validators: {
notEmpty: {
message: '请先选择厂区'
}
}
},
}
});
});
//表格查询参数
function queryParamsFun (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
search_name: $('#search_name').val(),
search_code: companyId,
deptId: $('#dept_id').val(),
status:$('#status4list').val(),
agentid:$('#agentid').val(),
};
}
function selectDept(){
//选择部门
$.post(ext.contextPath + "/user/getDeptByBizId4Select.do", {companyId:companyId}, function(data) {
$("#dept_id").empty();
var selelct = $("#dept_id").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
$(".select2-selection--single").css({'height':'30px','paddingTop':'4px'})
selelct.val('').trigger("change");
selelct.on("change",function(e){
$("#table").bootstrapTable('refresh');
});
},'json');
}
var listShowUser4SelectsFun = function() {
var userIds= $("#agentid_search").val();
$.post(ext.contextPath + '/user/userForSelectByStructure.do', {formId:"searchForm",hiddenId:"agentid_search",textId:"agentname_search",userIds:userIds} , function(data) {
$("#user4SelectDiv").html(data);
openModal("user4SelectModal");
});
};
var initFun = function(){
selectDept();
$("#table").bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/contract/getList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
showColumns:true,
sidePagination: 'server', // 设置为服务器端分页
queryParams: queryParamsFun,
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
toolbar: '#action', //工具按钮用哪个容器
//导出配置使用需要单独引用js
//是否显示导出按钮
showExport: true,
//导出表格方式默认basic只导出当前页的表格数据all导出所有数据selected导出选中的数据
exportDataType: "all",
//导出文件类型
exportTypes: ['excel'],
exportOptions:{
worksheetName: '合同信息', //表格工作区名称
fileName: '导出合同信息'
},
//end
onClickRow: function (row) {//单击行事件,执行查看功能
viewFun(row.id);
},
columns: [
{
checkbox: true, // 显示一个勾选框
},
{
field: 'contractnumber', // 返回json数据中的name
title: '合同编号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'contractname', // 返回json数据中的name
title: '合同名称', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'contractclassName', // 返回json数据中的name
title: '合同类型', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'agentName', // 返回json数据中的name
title: '经办人', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'contractamount', // 返回json数据中的name
title: '合同金额', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'contractstartdate', // 返回json数据中的name
title: '开始日期', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter:function (value, row, index){
return value.substring(0,10);
}
},{
field: 'contractenddate', // 返回json数据中的name
title: '结束日期', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter:function (value, row, index){
return value.substring(0,10);
}
},{
field: 'contracttaxrateName', // 返回json数据中的name
title: '合同税率', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'supplierName', // 返回json数据中的name
title: '供应商', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'purchasemethodsName', // 返回json数据中的name
title: '采购形式', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'purchaseName', // 返回json数据中的name
title: '采购申请单', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'contractamount', // 返回json数据中的name
title: '合同金额(元)', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: '_totalinvoice', // 返回json数据中的name
title: '开票金额', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle',
},{
field: '_totalpayment', // 返回json数据中的name
title: '付款金额', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle',
},{
field: '_nototalpayment', // 返回json数据中的name
title: '未付数', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle',
},{
field: 'performancebond', // 返回json数据中的name
title: '履约保证金', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'warrantydeposit', // 返回json数据中的name
title: '质保金(%', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'qualitydeposit', // 返回json数据中的name
title: '质保金(元)', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'warrantyperiod', // 返回json数据中的name
title: '质保期(年)', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'supplyplanstartdate', // 返回json数据中的name
title: '供货计划开始日期', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter:function (value, row, index){
return value.substring(0,10);
}
},{
field: 'supplyplanenddate', // 返回json数据中的name
title: '供货计划结束日期', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter:function (value, row, index){
return value.substring(0,10);
}
},{
field: 'supplyactualstartdate', // 返回json数据中的name
title: '供货实际开始日期', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter:function (value, row, index){
return value.substring(0,10);
}
},{
field: 'supplyactualenddate', // 返回json数据中的name
title: '供货实际结束日期', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter:function (value, row, index){
return value.substring(0,10);
}
},{
field: 'remark', // 返回json数据中的name
title: '备注', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'status', // 返回json数据中的name
title: '状态', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter: function (value, row, index){
switch (value){
case '${STATUS_CONTRACT_START}' :
return "发起合同";
case '${STATUS_CONTRACT_DEPT_AUDIT}' :
return "部门审核";
case '${STATUS_CONTRACT_DEPT_REJECT}' :
return "部门审核驳回";
case '${STATUS_CONTRACT_AUDIT}' :
return "领导审核";
case '${STATUS_CONTRACT_REJECT}' :
return "领导审核驳回";
case '${STATUS_CONTRACT_EXECUTE}' :
return "合同执行";
case '${STATUS_CONTRACT_FINISH}' :
return "合同完成";
default :
return value;
}
}
},{
title: "操作",
align: 'center',
valign: 'middle',
width: 120, // 定义列的宽度单位为像素px
formatter: function (value, row, index) {
var buts= '';
if(row.status == '${STATUS_CONTRACT_START}'){
buts+= '<security:authorize buttonUrl="sparepart/contract/edit.do">';
buts+= '<button class="btn btn-default btn-sm" title="编辑" onclick="editFun(\'' + row.id + '\')"><i class="fa fa-edit"></i><span class="hidden-md hidden-lg"> 编辑</span></button>';
buts+= '</security:authorize>';
buts+= '<security:authorize buttonUrl="sparepart/contract/delete.do">';
buts+='<button class="btn btn-default btn-sm" title="删除" onclick="deleteFun(\''+row.id+'\')"><i class="fa fa fa-trash-o"></i><span class="hidden-md hidden-lg">删除</span></button';
buts+= '</security:authorize>';
}else{
if(row.status == '${STATUS_CONTRACT_EXECUTE}'){
buts+= '<security:authorize buttonUrl="sparepart/contract/edit.do">';
buts+= '<button class="btn btn-default btn-sm" title="编辑" onclick="editFun(\'' + row.id + '\')"><i class="fa fa-edit"></i><span class="hidden-md hidden-lg"> 编辑</span></button>';
buts+= '</security:authorize>';
}
//流程未发起时不能查看流程详情
buts+= '<button class="btn btn-default btn-sm" title="查看流程详情" onclick="viewDetailHandleFun(\'' + row.id + '\')"><i class="fa fa-history"></i><span class="hidden-md hidden-lg">查看</span></button>';
/* if(row.processid!=null && row.processid!=''){
buts+= '<button class="btn btn-default btn-sm" title="撤回" onclick="doWithdraw(\'' + row.processid + '\')"><i class="fa fa-reply"></i><span class="hidden-md hidden-lg">撤回</span></button>';
} */
}
buts='<div class="btn-group" >'+buts+'</div>';
return buts;
}
}
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
$('#table').bootstrapTable('hideColumn', 'supplyplanstartdate');
$('#table').bootstrapTable('hideColumn', 'remark');
$('#table').bootstrapTable('hideColumn', 'supplyactualenddate');
$('#table').bootstrapTable('hideColumn', 'supplyactualstartdate');
$('#table').bootstrapTable('hideColumn', 'supplyplanenddate');
$('#table').bootstrapTable('hideColumn', 'warrantyperiod');
$('#table').bootstrapTable('hideColumn', 'qualitydeposit');
$('#table').bootstrapTable('hideColumn', 'warrantydeposit');
$('#table').bootstrapTable('hideColumn', 'performancebond');
$('#table').bootstrapTable('hideColumn', 'contractamount');
$('#table').bootstrapTable('hideColumn', 'purchaseName');
$('#table').bootstrapTable('hideColumn', 'purchasemethodsName');
$('#table').bootstrapTable('hideColumn', '_totalinvoice');
$('#table').bootstrapTable('hideColumn', '_totalpayment');
$('#table').bootstrapTable('hideColumn', '_nototalpayment');
//状态
$.post(ext.contextPath + "/sparepart/contract/getContractCheckForSelect.do", {}, function(data) {
var selelct =$("#status4list").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: true,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据大于10个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
$(".select2-selection--single").css({'height':'30px','paddingTop':'4px'})
selelct.val('').trigger("change");
selelct.on("change",function(e){
dosearch();
});
},'json');
}
//导出设备表,要用get请求的方式
function downloadFuns() {
if (companyId == "") {//获取验证结果,如果成功,执行下面代码
showAlert('d','请先选择厂区','mainAlertdiv');
}else{
var checkedItems = $("#table").bootstrapTable('getAllSelections');
var datas="";
$.each(checkedItems, function(index, item){
datas+=item.id+",";
});
if(checkedItems.length>0){
datas = datas.substr(0,datas.length-1)
window.open(ext.contextPath + "/sparepart/subscribe/downloadSubscribeDetailExcel.do?contractId="+datas);
}else{
showAlert('d','请先选择合同','mainAlertdiv');
}
}
}
function doWithdraw(processInstanceId){
stopBubbleDefaultEvent();
$.post(ext.contextPath + "/sparepart/contract/doWithdrawContract.do", {processInstanceId:processInstanceId}, function(data) {
if (data.res == 1){
closeModal('subModal');
$("#table").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','撤回失败');
}else{
showAlert('d',data.res);
}
},'json');
}
</script>
</head>
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
<div class="wrapper">
<!-- 引用top -->
<%-- <jsp:include page="/jsp/top.jsp"></jsp:include> --%>
<!-- 菜单栏 -->
<%-- <jsp:include page="/jsp/left.jsp"></jsp:include> --%>
<div class="content-wrapper">
<!-- Content Header (Page header) -->
<section class="content-header">
<h1 id ="head_title"></h1>
<ol class="breadcrumb">
<li><a id ='head_firstlevel' href="#"><i class="fa fa-dashboard"></i> </a></li>
<!-- <li class="active">Here</li> -->
</ol>
</section>
<!-- Main content -->
<section class="content container-fluid">
<div id="mainAlertdiv"></div>
<div id="subDiv"></div>
<div id="subDetailDiv"></div>
<div id="Goods4SelectDiv"></div>
<div id="Goods4SelectsDiv"></div>
<div id="user4SelectDiv"></div>
<div id="fileInputDiv"></div>
<div id="goodsAddDiv"></div>
<div id="equ4SelectDiv"></div>
<div id="fault4SelectDiv"></div>
<div id="importDiv"></div>
<div id="templateDiv"></div>
<div id="fault4SelectDiv111"></div>
<form id="searchForm">
<div >
<div id="companySelectTree" style="float:left;"></div>
<div class="form-group" style="padding:0;margin-bottom: 0px;float:right;" id="action">
<div class="btn-group" style="width: 300px;">
<security:authorize buttonUrl="sparepart/contract/add.do">
<button type="button" class="btn btn-default btn-sm" onclick="addFun();"><i class="fa fa-plus"></i> 新增</button>
<button type="button" class="btn btn-default btn-sm" onclick="deletesFun();"><i class="fa fa-trash-o"></i> 删除</button>
</security:authorize>
<button type="button" class="btn btn-default btn-sm" onclick="downloadFuns();"><i class="fa fa-cloud-download"></i> 导出合同明细表</button>
</div>
<div class="form-group pull-right form-inline" style="margin-bottom: 0px;">
<div class="input-group input-group-sm" style="line-height: 30px">
<label class="form-label" style="margin-bottom:0;">经办人:</label>
<input type="text" class="form-control pull-right" id="agentname_search" name ="agentname_search"
placeholder="点击选择" style="width: 160px;" onclick="listShowUser4SelectsFun();" value="">
<input id="agentid" name="agentid" type="hidden" value="" />
</div>
<div class="input-group input-group-sm" style="width: 250px;">
<input type="text" id="search_name" name="search_name" class="form-control pull-right" placeholder="合同编号/名称">
<div class="input-group-btn" style="line-height: 30px">
<button class="btn btn-default" onclick="dosearch();"><i class="fa fa-search"></i></button>
</div>
</div>
<div class="input-group input-group-sm">
<label class="form-label">状态:</label>
<select class="form-control select2 " id="status4list" name ="status" style="width: 160px;"></select>
</div>
</div>
</div>
</div>
<table id="table"></table>
</form>
</section>
<!-- /.content -->
</div>
<%-- <jsp:include page="/jsp/bottom.jsp"></jsp:include> --%>
<%-- <jsp:include page="/jsp/side.jsp"></jsp:include> --%>
</div>
</body>
<!-- 文件上传-->
<link rel="stylesheet" href="<%=request.getContextPath()%>/node_modules/bootstrap-fileinput/css/fileinput.min.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-fileinput/js/fileinput.min.js" charset="utf-8"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-fileinput/js/locales/zh.js" charset="utf-8"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/JS/commonFileUpload.js" charset="utf-8"></script>
</html>

View File

@ -0,0 +1,597 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ page import="com.sipai.entity.base.ServerObject"%>
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security"%>
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
<%request.setAttribute("START", SparePartCommString.STATUS_START); %>
<%request.setAttribute("DEPT_AUDIT", SparePartCommString.STATUS_DEPT_AUDIT); %>
<%request.setAttribute("DEPT_REJECT", SparePartCommString.STATUS_DEPT_REJECT); %>
<%request.setAttribute("FINISH", SparePartCommString.STATUS_FINISH); %>
<%request.setAttribute("INQUIRY_AUDIT", SparePartCommString.STATUS_INQUIRY_AUDIT); %>
<%request.setAttribute("INQUIRY_REJECT", SparePartCommString.STATUS_INQUIRY_REJECT); %>
<%request.setAttribute("PURCHASE_INQUIRY", SparePartCommString.STATUS_PURCHASE_INQUIRY); %>
<%request.setAttribute("STATUS_CONTRACT_START", SparePartCommString.STATUS_CONTRACT_START); %>
<%request.setAttribute("STATUS_CONTRACT_DEPT_AUDIT", SparePartCommString.STATUS_CONTRACT_DEPT_AUDIT); %>
<%request.setAttribute("STATUS_CONTRACT_DEPT_REJECT", SparePartCommString.STATUS_CONTRACT_DEPT_REJECT); %>
<%request.setAttribute("STATUS_CONTRACT_AUDIT", SparePartCommString.STATUS_CONTRACT_AUDIT); %>
<%request.setAttribute("STATUS_CONTRACT_REJECT", SparePartCommString.STATUS_CONTRACT_REJECT); %>
<%request.setAttribute("STATUS_CONTRACT_EXECUTE", SparePartCommString.STATUS_CONTRACT_EXECUTE); %>
<%request.setAttribute("STATUS_CONTRACT_FINISH", SparePartCommString.STATUS_CONTRACT_FINISH); %>
<!DOCTYPE html>
<!-- <html lang="zh-CN"> -->
<!-- BEGIN HEAD -->
<head>
<title><%= ServerObject.atttable.get("TOPTITLE")%></title>
<!-- 引用页头及CSS页-->
<jsp:include page="/jsp/inc.jsp"></jsp:include>
<!--bootstrap-table 导出 -->
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-table/extensions/export/bootstrap-table-export.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-table/tableExport/libs/FileSaver/FileSaver.min.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-table/tableExport/libs/js-xlsx/xlsx.core.min.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-table/tableExport/libs/jsPDF/jspdf.min.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-table/tableExport/libs/jsPDF-AutoTable/jspdf.plugin.autotable.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-table/tableExport/libs/es6-promise/es6-promise.auto.min.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-table/tableExport/libs/html2canvas/html2canvas.min.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-table/tableExport/tableExport.min.js"></script>
<!-- bootstrap switch -->
<link rel="stylesheet" href="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/css/bootstrap3/bootstrap-switch.min.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/js/bootstrap-switch.min.js" charset="utf-8"></script>
<!--bootstrap-edittable 表格行内编辑 -->
<link rel="stylesheet" href="<%=request.getContextPath()%>/plugins/bootstrap-editable/css/bootstrap-editable.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-editable/js/bootstrap-editable.js" charset="utf-8"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-editable/js/bootstrap-table-editable.js" charset="utf-8"></script>
<style type="text/css">
.select2-container .select2-selection--single{
height:30px;
line-height: 30px;
}
.select2-selection__arrow{
margin-top:3px;
}
.table-hover>tbody>tr:hover {
cursor: pointer;
}
.fixed-table-toolbar .bs-bars,.fixed-table-toolbar .columns{
margin-top: 0px;
margin-bottom: 0px;
line-height: 20px;
}
</style>
<script type="text/javascript">
var addFun = function() {
$("#searchForm").bootstrapValidator('validate');//提交验证
if ($("#searchForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + '/sparepart/contract/add.do', {companyId :companyId } , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
};
var editFun = function(id) {
stopBubbleDefaultEvent();
$.post(ext.contextPath + '/sparepart/contract/editFinance.do', {id:id} , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
var viewFun = function(id){
$.post(ext.contextPath + '/sparepart/contract/view.do', {id:id} , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
//流程处理详情
var viewDetailHandleFun = function(id) {
stopBubbleDefaultEvent();
$.post(ext.contextPath + '/sparepart/contract/showContractView.do', {id:id} , function(data) {
$("#subDiv").html(data);
openModal('contractExcuteModal');
});
};
var deleteFun = function(id) {
stopBubbleDefaultEvent();
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete){
if (willDelete) {
$.post(ext.contextPath + '/sparepart/contract/delete.do', {id : id}, function(data) {
if(data==1){
$("#table").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','mainAlertdiv');
}
});
}
});
};
var deletesFun = function() {
var checkedItems = $("#table").bootstrapTable('getSelections');
var datas="";
$.each(checkedItems, function(index, item){
datas+=item.id+",";
});
if(datas==""){
showAlert('d','请先选择记录','mainAlertdiv');
}else{
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete) {
if (willDelete) {
$.post(ext.contextPath + '/sparepart/contract/deletes.do', {ids:datas} , function(data) {
if(data>0){
$("#table").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','mainAlertdiv');
}
});
}
});
}
};
//查询方法,选择厂区后自动加载
var dosearch = function() {
$("#table").bootstrapTable('refresh');
selectDept();
};
var companyId = unitId;
$(function() {
//简易公司combotree
$.post(ext.contextPath + "/user/showCompanySelectTree.do", {}, function (data) {
$('#companySelectTree').html(data);
});
//输入框验证
$("#searchForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
search_code: {
validators: {
notEmpty: {
message: '请先选择厂区'
}
}
},
}
});
});
//表格查询参数
function queryParamsFun (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
search_name: $('#search_name').val(),
search_code: companyId,
deptId: $('#dept_id').val(),
status:$('#status').val(),
agentid:$('#agentid').val(),
};
}
function selectDept(){
//选择部门
$.post(ext.contextPath + "/user/getDeptByBizId4Select.do", {companyId:companyId}, function(data) {
$("#dept_id").empty();
var selelct = $("#dept_id").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
$(".select2-selection--single").css({'height':'30px','paddingTop':'4px'})
selelct.val('').trigger("change");
selelct.on("change",function(e){
$("#table").bootstrapTable('refresh');
});
},'json');
}
var showUser4SelectsFun = function() {
var userIds= $("#agentid").val();
$.post(ext.contextPath + '/user/userForSelectByStructure.do', {formId:"searchForm",hiddenId:"agentid",textId:"agentname",userIds:userIds} , function(data) {
$("#user4SelectDiv").html(data);
openModal("user4SelectModal");
});
};
var initFun = function(){
selectDept();
$("#table").bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/contract/getFinanceList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: queryParamsFun,
showColumns:true,
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
toolbar: '#action', //工具按钮用哪个容器
//导出配置使用需要单独引用js
//是否显示导出按钮
showExport: true,
//导出表格方式默认basic只导出当前页的表格数据all导出所有数据selected导出选中的数据
exportDataType: "all",
//导出文件类型
exportTypes: ['excel'],
exportOptions:{
worksheetName: '合同信息', //表格工作区名称
fileName: '导出合同信息'
},
//end
onClickRow: function (row) {//单击行事件,执行查看功能
viewFun(row.id);
},
columns: [
{
field: 'contractnumber', // 返回json数据中的name
title: '合同编号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'contractname', // 返回json数据中的name
title: '合同名称', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'contractclassName', // 返回json数据中的name
title: '合同类型', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'agentName', // 返回json数据中的name
title: '经办人', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'contractamount', // 返回json数据中的name
title: '合同金额', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'contractstartdate', // 返回json数据中的name
title: '开始日期', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter:function (value, row, index){
return value.substring(0,10);
}
},{
field: 'contractenddate', // 返回json数据中的name
title: '结束日期', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter:function (value, row, index){
return value.substring(0,10);
}
},{
field: 'contracttaxrateName', // 返回json数据中的name
title: '合同税率', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'supplierName', // 返回json数据中的name
title: '供应商', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'purchasemethodsName', // 返回json数据中的name
title: '采购形式', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'purchaseName', // 返回json数据中的name
title: '采购申请单', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: '_totalinvoice', // 返回json数据中的name
title: '开票金额', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle',
cellStyle:function(value,row,index){
if (value>row.contractamount){
return {css:{"background-color":"yellow"}}
}else{
return {css:{}}
}
}
},{
field: '_totalpayment', // 返回json数据中的name
title: '付款金额', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle',
},{
field: '_nototalpayment', // 返回json数据中的name
title: '未付数', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle',
},{
field: 'performancebond', // 返回json数据中的name
title: '履约保证金', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'warrantydeposit', // 返回json数据中的name
title: '质保金(%', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'qualitydeposit', // 返回json数据中的name
title: '质保金(元)', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'warrantyperiod', // 返回json数据中的name
title: '质保期(年)', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'supplyplanstartdate', // 返回json数据中的name
title: '供货计划开始日期', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter:function (value, row, index){
return value.substring(0,10);
}
},{
field: 'supplyplanenddate', // 返回json数据中的name
title: '供货计划结束日期', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter:function (value, row, index){
return value.substring(0,10);
}
},{
field: 'supplyactualstartdate', // 返回json数据中的name
title: '供货实际开始日期', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter:function (value, row, index){
return value.substring(0,10);
}
},{
field: 'supplyactualenddate', // 返回json数据中的name
title: '供货实际结束日期', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter:function (value, row, index){
return value.substring(0,10);
}
},{
field: 'remark', // 返回json数据中的name
title: '备注', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
title: "操作",
align: 'center',
valign: 'middle',
width: 120, // 定义列的宽度单位为像素px
formatter: function (value, row, index) {
var buts= '';
if(row.status == '${STATUS_CONTRACT_START}'){
buts+= '<security:authorize buttonUrl="sparepart/contract/editFinance.do">';
buts+= '<button class="btn btn-default btn-sm" title="编辑" onclick="editFun(\'' + row.id + '\')"><i class="fa fa-edit"></i><span class="hidden-md hidden-lg"> 编辑</span></button>';
buts+= '</security:authorize>';
buts+= '<security:authorize buttonUrl="sparepart/contract/delete.do">';
buts+='<button class="btn btn-default btn-sm" title="删除" onclick="deleteFun(\''+row.id+'\')"><i class="fa fa fa-trash-o"></i><span class="hidden-md hidden-lg">删除</span></button';
buts+= '</security:authorize>';
}else{
if(row.status == '${STATUS_CONTRACT_EXECUTE}'){
buts+= '<security:authorize buttonUrl="sparepart/contract/editFinance.do">';
buts+= '<button class="btn btn-default btn-sm" title="编辑" onclick="editFun(\'' + row.id + '\')"><i class="fa fa-edit"></i><span class="hidden-md hidden-lg"> 编辑</span></button>';
buts+= '</security:authorize>';
}
//流程未发起时不能查看流程详情
buts+= '<button class="btn btn-default btn-sm" title="查看流程详情" onclick="viewDetailHandleFun(\'' + row.id + '\')"><i class="fa fa-history"></i><span class="hidden-md hidden-lg">查看</span></button>';
/* if(row.processid!=null && row.processid!=''){
buts+= '<button class="btn btn-default btn-sm" title="撤回" onclick="doWithdraw(\'' + row.processid + '\')"><i class="fa fa-reply"></i><span class="hidden-md hidden-lg">撤回</span></button>';
} */
}
buts='<div class="btn-group" >'+buts+'</div>';
return buts;
}
}
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table");
$('#table').bootstrapTable('hideColumn', 'supplyplanstartdate');
$('#table').bootstrapTable('hideColumn', 'remark');
$('#table').bootstrapTable('hideColumn', 'supplyactualenddate');
$('#table').bootstrapTable('hideColumn', 'supplyactualstartdate');
$('#table').bootstrapTable('hideColumn', 'supplyplanenddate');
$('#table').bootstrapTable('hideColumn', 'warrantyperiod');
$('#table').bootstrapTable('hideColumn', 'qualitydeposit');
$('#table').bootstrapTable('hideColumn', 'warrantydeposit');
$('#table').bootstrapTable('hideColumn', 'performancebond');
$('#table').bootstrapTable('hideColumn', 'purchaseName');
$('#table').bootstrapTable('hideColumn', 'purchasemethodsName');
$('#table').bootstrapTable('hideColumn', 'contractstartdate');
$('#table').bootstrapTable('hideColumn', 'contractenddate');
$('#table').bootstrapTable('hideColumn', 'supplierName');
$('#table').bootstrapTable('hideColumn', '_nototalpayment');
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
//状态
$.post(ext.contextPath + "/sparepart/contract/getContractCheckForSelect.do", {}, function(data) {
var selelct =$("#status").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: true,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据大于10个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
$(".select2-selection--single").css({'height':'30px','paddingTop':'4px'})
selelct.val('').trigger("change");
selelct.on("change",function(e){
dosearch();
});
},'json');
}
//导出设备表,要用get请求的方式
function downloadFuns() {
if (companyId == "") {//获取验证结果,如果成功,执行下面代码
showAlert('d','请先选择厂区','mainAlertdiv');
}else{
var checkedItems = $("#table").bootstrapTable('getAllSelections');
var datas="";
$.each(checkedItems, function(index, item){
datas+=item.id+",";
});
if(checkedItems.length>0){
window.open(ext.contextPath + "/sparepart/subscribe/downloadSubscribeDetailExcel.do?contractId="+datas);
}else{
showAlert('d','请先选择合同','mainAlertdiv');
}
}
}
function doWithdraw(processInstanceId){
stopBubbleDefaultEvent();
$.post(ext.contextPath + "/sparepart/contract/doWithdrawContract.do", {processInstanceId:processInstanceId}, function(data) {
if (data.res == 1){
closeModal('subModal');
$("#table").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','撤回失败');
}else{
showAlert('d',data.res);
}
},'json');
}
</script>
</head>
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
<div class="wrapper">
<!-- 引用top -->
<%-- <jsp:include page="/jsp/top.jsp"></jsp:include> --%>
<!-- 菜单栏 -->
<%-- <jsp:include page="/jsp/left.jsp"></jsp:include> --%>
<div class="content-wrapper">
<!-- Content Header (Page header) -->
<section class="content-header">
<h1 id ="head_title"></h1>
<ol class="breadcrumb">
<li><a id ='head_firstlevel' href="#"><i class="fa fa-dashboard"></i> </a></li>
<!-- <li class="active">Here</li> -->
</ol>
</section>
<!-- Main content -->
<section class="content container-fluid">
<div id="mainAlertdiv"></div>
<div id="subDiv"></div>
<div id="subDetailDiv"></div>
<div id="Goods4SelectDiv"></div>
<div id="Goods4SelectsDiv"></div>
<div id="user4SelectDiv"></div>
<div id="fileInputDiv"></div>
<div id="goodsAddDiv"></div>
<div id="equ4SelectDiv"></div>
<div id="fault4SelectDiv"></div>
<div id="importDiv"></div>
<div id="templateDiv"></div>
<form id="searchForm">
<div >
<div id="companySelectTree" style="float:left;"></div>
<div class="form-group" style="padding:0;margin-bottom: 0px;float:right;" id="action">
<div class="btn-group" style="width: 300px;">
<security:authorize buttonUrl="sparepart/contract/add.do">
<button type="button" class="btn btn-default btn-sm" onclick="addFun();"><i class="fa fa-plus"></i> 新增</button>
<button type="button" class="btn btn-default btn-sm" onclick="deletesFun();"><i class="fa fa-trash-o"></i> 删除</button>
</security:authorize>
<button type="button" class="btn btn-default btn-sm" onclick="downloadFuns();"><i class="fa fa-cloud-download"></i> 导出合同明细表</button>
</div>
<div class="form-group pull-right form-inline" style="margin-bottom: 0px;">
<div class="input-group input-group-sm" style="line-height: 30px">
<label class="form-label" style="margin-bottom:0;">经办人:</label>
<input type="text" class="form-control pull-right" id="agentname" name ="agentname"
placeholder="点击选择" style="width: 160px;" onclick="showUser4SelectsFun();" value="">
<input id="agentid" name="agentid" type="hidden" value="" />
</div>
<div class="input-group input-group-sm" style="width: 250px;">
<input type="text" id="search_name" name="search_name" class="form-control pull-right" placeholder="合同编号/名称">
<div class="input-group-btn" style="line-height: 30px">
<button class="btn btn-default" onclick="dosearch();"><i class="fa fa-search"></i></button>
</div>
</div>
</div>
</div>
</div>
<table id="table"></table>
</form>
</section>
<!-- /.content -->
</div>
<%-- <jsp:include page="/jsp/bottom.jsp"></jsp:include> --%>
<%-- <jsp:include page="/jsp/side.jsp"></jsp:include> --%>
</div>
</body>
<!-- 文件上传-->
<link rel="stylesheet" href="<%=request.getContextPath()%>/node_modules/bootstrap-fileinput/css/fileinput.min.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-fileinput/js/fileinput.min.js" charset="utf-8"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-fileinput/js/locales/zh.js" charset="utf-8"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/JS/commonFileUpload.js" charset="utf-8"></script>
</html>

View File

@ -0,0 +1,322 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ page import="com.sipai.entity.base.ServerObject"%>
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security"%>
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
<%request.setAttribute("START", SparePartCommString.STATUS_START); %>
<%request.setAttribute("DEPT_AUDIT", SparePartCommString.STATUS_DEPT_AUDIT); %>
<%request.setAttribute("DEPT_REJECT", SparePartCommString.STATUS_DEPT_REJECT); %>
<%request.setAttribute("FINISH", SparePartCommString.STATUS_FINISH); %>
<%request.setAttribute("INQUIRY_AUDIT", SparePartCommString.STATUS_INQUIRY_AUDIT); %>
<%request.setAttribute("INQUIRY_REJECT", SparePartCommString.STATUS_INQUIRY_REJECT); %>
<%request.setAttribute("PURCHASE_INQUIRY", SparePartCommString.STATUS_PURCHASE_INQUIRY); %>
<%request.setAttribute("STATUS_CONTRACT_START", SparePartCommString.STATUS_CONTRACT_START); %>
<%request.setAttribute("STATUS_CONTRACT_DEPT_AUDIT", SparePartCommString.STATUS_CONTRACT_DEPT_AUDIT); %>
<%request.setAttribute("STATUS_CONTRACT_DEPT_REJECT", SparePartCommString.STATUS_CONTRACT_DEPT_REJECT); %>
<%request.setAttribute("STATUS_CONTRACT_AUDIT", SparePartCommString.STATUS_CONTRACT_AUDIT); %>
<%request.setAttribute("STATUS_CONTRACT_REJECT", SparePartCommString.STATUS_CONTRACT_REJECT); %>
<%request.setAttribute("STATUS_CONTRACT_EXECUTE", SparePartCommString.STATUS_CONTRACT_EXECUTE); %>
<%request.setAttribute("STATUS_CONTRACT_FINISH", SparePartCommString.STATUS_CONTRACT_FINISH); %>
<!DOCTYPE html>
<!-- <html lang="zh-CN"> -->
<!-- BEGIN HEAD -->
<head>
<title><%= ServerObject.atttable.get("TOPTITLE")%></title>
<!-- 引用页头及CSS页-->
<jsp:include page="/jsp/inc.jsp"></jsp:include>
<!-- bootstrap switch -->
<link rel="stylesheet" href="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/css/bootstrap3/bootstrap-switch.min.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/js/bootstrap-switch.min.js" charset="utf-8"></script>
<style type="text/css">
.select2-container .select2-selection--single{
height:30px;
line-height: 30px;
}
.select2-selection__arrow{
margin-top:3px;
}
.table-hover>tbody>tr:hover {
cursor: pointer;
}
.fixed-table-toolbar .bs-bars,.fixed-table-toolbar .columns{
margin-top: 0px;
margin-bottom: 0px;
line-height: 20px;
}
</style>
<script type="text/javascript">
//查询方法,选择厂区后自动加载
var dosearch = function() {
$("#table").bootstrapTable('refresh');
selectDept();
};
var companyId = unitId;
$(function() {
//简易公司combotree
$.post(ext.contextPath + "/user/showCompanySelectTree.do", {}, function (data) {
$('#companySelectTree').html(data);
});
//输入框验证
$("#searchForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
search_code: {
validators: {
notEmpty: {
message: '请先选择厂区'
}
}
},
}
});
});
//表格查询参数
function queryParamsFun (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
search_name: $('#search_name').val(),
search_code: companyId,
status: '${STATUS_CONTRACT_EXECUTE},${STATUS_CONTRACT_FINISH}',
deptId: $('#dept_id').val(),
};
}
function selectDept(){
//选择部门
$.post(ext.contextPath + "/user/getDeptByBizId4Select.do", {companyId:companyId}, function(data) {
$("#dept_id").empty();
var selelct = $("#dept_id").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
$(".select2-selection--single").css({'height':'30px','paddingTop':'4px'})
selelct.val('').trigger("change");
selelct.on("change",function(e){
$("#table").bootstrapTable('refresh');
});
},'json');
}
var showUser4SelectsFun = function() {
var userIds= $("#agentid").val();
$.post(ext.contextPath + '/user/userForSelectByStructure.do', {formId:"searchForm",hiddenId:"agentid",textId:"agentname",userIds:userIds} , function(data) {
$("#user4SelectDiv").html(data);
openModal("user4SelectModal");
});
};
var initFun = function(){
selectDept();
$("#table").bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/contract/getList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: queryParamsFun,
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
toolbar: '#action', //工具按钮用哪个容器
onClickRow: function (row) {//单击行事件,执行查看功能
viewFun(row.id);
},
columns: [
{
checkbox: true, // 显示一个勾选框
},{
field: 'contractnumber', // 返回json数据中的name
title: '合同编号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'contractname', // 返回json数据中的name
title: '合同名称', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'contractclassName', // 返回json数据中的name
title: '合同类型', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'agentName', // 返回json数据中的name
title: '经办人', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'contractamount', // 返回json数据中的name
title: '合同金额', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'contractstartdate', // 返回json数据中的name
title: '开始日期', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter:function (value, row, index){
return value.substring(0,10);
}
},{
field: 'contractenddate', // 返回json数据中的name
title: '结束日期', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter:function (value, row, index){
return value.substring(0,10);
}
},{
field: 'contracttaxrateName', // 返回json数据中的name
title: '合同税率', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'supplierName', // 返回json数据中的name
title: '供应商', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'contractenddate', // 返回json数据中的name
title: '付款状态', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter: function (value, row, index){
var begindate= new Date(Date.parse(value.substring(0,10).replace(/-/g, "/")));
var myDate = new Date(); //此处将服务器当前日期作为结束日期,也可为其他任意时间
var endDate = begindate.getTime();//将开始日期转换成毫秒
var startDate = myDate.getTime(); //将结束日期转换成毫秒
var day = parseInt((endDate-startDate)/1000/3600/24); //结束日期减去开始日期后转换成天数
var alertList = row.autoAlertList;
var alert = 10;
if(alertList!=null && alertList.length>0){
for(var a =0;a<alertList.length;a++){
if(alertList[a].alertType=='payment'){
alert = alertList[a].alertDate;
}
}
}
if(day<alert){
if(day>0){
return '<i class="fa fa-circle" style="color:yellow;"></i> 即将到期';
}else{
return '<i class="fa fa-circle" style="color:red;"></i> 已到期';
}
}else{
return '<i class="fa fa-circle" style="color:green;"></i> 正常';
}
}
},{
field: 'contractenddate', // 返回json数据中的name
title: '合同状态', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter: function (value, row, index){
var begindate= new Date(Date.parse(value.substring(0,10).replace(/-/g, "/")));
var myDate = new Date(); //此处将服务器当前日期作为结束日期,也可为其他任意时间
var endDate = begindate.getTime();//将开始日期转换成毫秒
var startDate = myDate.getTime(); //将结束日期转换成毫秒
var day = parseInt((endDate-startDate)/1000/3600/24); //结束日期减去开始日期后转换成天数
var alertList = row.autoAlertList;
var alert = 10;
if(alertList!=null && alertList.length>0){
for(var a =0;a<alertList.length;a++){
if(alertList[a].alertType=='contract'){
alert = alertList[a].alertDate;
}
}
}
if(day<alert){
if(day>0){
return '<i class="fa fa-circle" style="color:yellow;"></i> 即将结束';
}else{
return '<i class="fa fa-circle" style="color:red;"></i> 已结束';
}
}else{
return '<i class="fa fa-circle" style="color:green;"></i> 正常';
}
}
}
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
}
</script>
</head>
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
<div class="wrapper">
<!-- 引用top -->
<%-- <jsp:include page="/jsp/top.jsp"></jsp:include> --%>
<!-- 菜单栏 -->
<%-- <jsp:include page="/jsp/left.jsp"></jsp:include> --%>
<div class="content-wrapper">
<!-- Content Header (Page header) -->
<section class="content-header">
<h1 id ="head_title"></h1>
<ol class="breadcrumb">
<li><a id ='head_firstlevel' href="#"><i class="fa fa-dashboard"></i> </a></li>
<!-- <li class="active">Here</li> -->
</ol>
</section>
<!-- Main content -->
<section class="content container-fluid">
<div id="mainAlertdiv"></div>
<div id="subDiv"></div>
<div id="subDetailDiv"></div>
<div id="Goods4SelectDiv"></div>
<div id="Goods4SelectsDiv"></div>
<div id="user4SelectDiv"></div>
<div id="fileInputDiv"></div>
<div id="goodsAddDiv"></div>
<div id="equ4SelectDiv"></div>
<div id="fault4SelectDiv"></div>
<form id="searchForm">
<div >
<div id="companySelectTree" style="float:left;"></div>
<div class="form-group" style="padding:0;margin-bottom: 0px;float:right;" id="action">
<div class="form-group pull-right form-inline" style="margin-bottom: 0px;">
<div class="input-group input-group-sm" style="line-height: 30px">
<label class="form-label" style="margin-bottom:0;">经办人:</label>
<input type="text" class="form-control pull-right" id="agentname" name ="agentname"
placeholder="点击选择" style="width: 160px;" onclick="showUser4SelectsFun();" value="">
<input id="agentid" name="agentid" type="hidden" value="" />
</div>
<div class="input-group input-group-sm" style="width: 250px;">
<input type="text" id="search_name" name="search_name" class="form-control pull-right" placeholder="合同编号/名称">
<div class="input-group-btn" style="line-height: 30px">
<button class="btn btn-default" onclick="dosearch();"><i class="fa fa-search"></i></button>
</div>
</div>
</div>
</div>
</div>
</form>
<table id="table"></table>
</section>
<!-- /.content -->
</div>
<%-- <jsp:include page="/jsp/bottom.jsp"></jsp:include> --%>
<%-- <jsp:include page="/jsp/side.jsp"></jsp:include> --%>
</div>
</body>
</html>

View File

@ -0,0 +1,423 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ page import="com.sipai.entity.base.ServerObject"%>
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security"%>
<!DOCTYPE html>
<!-- <html lang="zh-CN"> -->
<!-- BEGIN HEAD -->
<head>
<title><%= ServerObject.atttable.get("TOPTITLE")%></title>
<!-- 引用页头及CSS页-->
<jsp:include page="/jsp/inc.jsp"></jsp:include>
<!-- bootstrap switch -->
<link rel="stylesheet" href="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/css/bootstrap3/bootstrap-switch.min.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/js/bootstrap-switch.min.js" charset="utf-8"></script>
<style type="text/css">
.main-header{display:none;}
.content-header{display:none;}
.main-footer{display:none;}
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
.table-hover>tbody>tr:hover {
cursor: pointer;
}
</style>
<script type="text/javascript">
var height = $(window).height();
var beginTimeStore2 = '';
var endTimeStore2 = '';
$("#goodContract").css("height",(height*0.6)+'px');
var doviewFun = function(id){
$.post(ext.contextPath + '/sparepart/contract/getprice.do', {edt : endTimeStore2,sdt : beginTimeStore2,id:id} , function(data) {
var values = JSON.parse(data);
var drugBar = {name:"价格",value1:values.contract};
doBar("goodContract",drugBar,0);
});
};
function doBar(id,data){
const color = ['#EFA103', '#00CCCC', '#9E70C7', '#47C1C8', '#F55945', '#A84ECB'];
// 基于准备好的dom初始化echarts实例
var height = $(document).height()*0.31;
$("#"+id).height(height);
var myChart = echarts.init(document.getElementById(id));
var option = {
color: color,
tooltip: {
trigger: 'axis',
},
grid: {
left: '4%',
right: '1%',
top: '10%',
bottom: '10%',
containLabel: true
},
legend: {
bottom: 0,
x: 'center',
icon:'roundRect',
textStyle: {
color: '#000' ,
lineHeight: 16,
fontSize: 13 ,
fontWeight : 600 ,
},
},
xAxis: [
{
type: 'category',
axisLine: {
show: false,
lineStyle:{
color:'#8A88B7',
}
},
axisLabel: {
color:'#8A88B7',
},
axisTick: {
show: false
},
}
],
yAxis: [
{
type: 'value',
name:data.name,
axisLine: {
show: false,
lineStyle:{
color:'#8A88B7',
}
},
axisLabel: {
color:'#8A88B7',
},
axisTick: {
show: false
},
//网格样式
splitLine: {
show: false,
lineStyle:{
color: '#8A88B7',
type: 'dashed',
opacity:0.3,
}
}
}
],
series: [
{
name: '单价',
type: 'bar',
barWidth: '20%',
barMinWidth: 10 ,
itemStyle: {
barBorderRadius: 8 ,
},
label: {
show: true,
position: 'inside'
},
data: data.value1
}
]
};
myChart.clear();
myChart.setOption(option, true);
}
var dosearch = function() {
$("#table").bootstrapTable('refresh');
};
var companyId = "";
$(function() {
$("#reservationtime2").change(function(){
console.log("123");
doviewFun();
});
initDate2();
var flag = IsApp();
if (flag==true){
}else{
$(".main-header").show();
$(".content-header").show();
$(".main-footer").show();
}
//简易公司combotree
$.post(ext.contextPath + '/user/getUnitForTree.do', { ng: '' }, function (data) {
if (data.length == 1 && !data[0].hasOwnProperty("nodes")) {
//当登陆者的pid以下没有子节点时显示单独一个span
$("#search_pid").val(data[0].id);
$("#companyselect").hide();
$("#companyName").text("公司: " + data[0].text);
companyId = data[0].id;
initFun();
} else if ((data.length == 1 && data.nodes != "") || data.length > 1) {
//第一次加载时赋值
$("#search_pid").val(data[0].id);
$("#cname_input").val(data[0].text);
companyId = data[0].id;
initFun();
//$table.bootstrapTable('refresh');//异步加载重新刷新,待修改
$('#companytree').treeview({
data: data,
showBorder: false,
levels: 3,
});
$('#companytree').on('nodeSelected', function (event, data) {
$("#search_pid").val(data.id);
$("#cname_input").val(data.text);
document.getElementById('ul_tree').style.display = "none";
companyId= data.id;
initFun();
});
} else {
//待完善
};
}, 'json');
//防止点击树的+号收起下拉框
$("#ul_tree").on("click", function (e) {
event.stopPropagation();
});
//点击空白隐藏树
$(document).click(function (e) {
var divTree = $('#ul_tree'); // 设置目标区域
if (!divTree.is(e.target) && divTree.has(e.target).length === 0) {
divTree.hide()
}
})
});
var initFun = function(){
//选择仓库
$.post(ext.contextPath + "/sparepart/warehouse/getWarehouseForSelectByCompanyId.do", {companyId:companyId}, function(data) {
$("#warehouseId").empty();
var selelct =$("#warehouseId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('').trigger("change");
selelct.on("change",function(e){
dosearch();
});
},'json');
$("#table").bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/goods/getList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
showFooter:true,//添加页脚
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
search_name: $('#search_name').val(),
companyId: companyId,
equipmentId: $('#equipid').val(),
warehouseId: $('#warehouseId').val(),
}
},
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
onClickRow: function (row) {//单击行事件,执行查看功能
doviewFun(row.id);
},
columns: [
{
field: 'name', // 返回json数据中的name
title: '物品名称', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'model', // 返回json数据中的name
title: '规格型号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'brand', // 返回json数据中的name
title: '品牌', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
}
],
onLoadSuccess: function(data){ //加载成功时执行
adjustBootstrapTableView("table");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
}
function initDate2() {
//定义locale汉化插件
beginTimeStore2 = moment().subtract(6, 'days').format('YYYY-MM-DD');
endTimeStore2 = moment().subtract(-1, 'days').format('YYYY-MM-DD');
var locale = {
"format" : 'YYYY-MM-DD',
"separator" : " ~ ",
"applyLabel" : "确定",
"cancelLabel" : "取消",
"fromLabel" : "起始时间",
"toLabel" : "结束时间'",
"customRangeLabel" : "自定义",
"weekLabel" : "W",
"daysOfWeek" : [ "日", "一", "二", "三", "四", "五", "六" ],
"monthNames" : [ "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月",
"九月", "十月", "十一月", "十二月" ],
"firstDay" : 1
};
$('#reservationtime2').daterangepicker(
{
"timePicker" : false,
"timePicker24Hour" : false,
"linkedCalendars" : false,
"autoUpdateInput" : false,
"timePickerIncrement" : 10,
"locale" : locale,
//汉化按钮部分
ranges : {
'今日' : [ moment(), moment().subtract(-1, 'days') ],
'昨日' : [ moment().subtract(1, 'days'), moment() ],
'最近7日' : [ moment().subtract(6, 'days'),
moment().subtract(-1, 'days') ],
'本月' : [ moment().startOf('month'),
moment().endOf('month').subtract(-1, 'days') ],
'上月' : [
moment().subtract(1, 'month').startOf('month'),
moment().subtract(1, 'month').endOf('month')
.subtract(-1, 'days') ]
},
startDate : beginTimeStore2,
endDate : endTimeStore2
},
function(start, end, label) {
beginTimeStore2 = start.format(this.locale.format);
endTimeStore2 = end.format(this.locale.format);
if (!this.startDate) {
this.element.val('');
} else {
this.element.val(this.startDate
.format(this.locale.format)
+ this.locale.separator
+ this.endDate.format(this.locale.format));
}
});
$('#reservationtime2').val(
beginTimeStore2 + locale.separator + endTimeStore2);
//$('#reservationtime2').daterangepicker({autoUpdateInput:false})
};
//选择设备根据厂区id选择厂内设备
var selectEquipmentCard = function() {
$.post(ext.contextPath + '/equipment/showEquipmentCardForSelect.do', {companyId:companyId, equipmentId:$("#equipid").val()} , function(data) {
$("#emSubDiv").html(data);
openModal('emSubModal');
});
};
</script>
</head>
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
<div class="wrapper">
<!-- 引用top -->
<%-- <jsp:include page="/jsp/top.jsp"></jsp:include> --%>
<!-- 菜单栏 -->
<%-- <jsp:include page="/jsp/left.jsp"></jsp:include> --%>
<div class="content-wrapper">
<!-- Content Header (Page header) -->
<section class="content-header">
<h1 id ="head_title"></h1>
<ol class="breadcrumb">
<li><a id ='head_firstlevel' href="#"><i class="fa fa-dashboard"></i> </a></li>
<!-- <li class="active">Here</li> -->
</ol>
</section>
<!-- Main content -->
<section class="content container-fluid">
<div class="col-md-4">
<div id="mainAlertdiv"></div>
<div id="subDiv"></div>
<div id="emSubDiv"></div>
<!-- <form id="searchForm" > -->
<div>
<div class="form-group " style="margin-bottom:10px;">
<input id="search_pid" name="search_pid" type="hidden" />
<span id="companyName" style="height:31px;color:#000000;border-top-left-radius: 4px;border-bottom-left-radius: 4px;font-weight:bold"></span>
</div>
<div class="form-group form-inline" style="padding:0;">
<div class="form-group pull-left form-inline" >
<div class="input-group input-group-sm pull-left" style="width: 250px;">
<input type="text" id="search_name" name="search_name" class="form-control pull-left" style="height:33px;" placeholder="物品名称">
<div class="input-group-btn">
<button class="btn btn-default" onclick="dosearch();"><i class="fa fa-search"></i></button>
</div>
</div>
</div>
</div>
</div>
<!-- </form> -->
<table id="table"></table>
</div>
<div class="col-md-8">
<div class="box box-primary" style="height:500px;background-color: #fff" >
<div class="box-header with-border">
<h4 class="box-title">各供应商价格比较</h4>
<div class="box-tools pull-right">
<div class="input-group pull-left input-group-sm">
<label style="padding-top:4px">时间范围:</label> <input type="text"
class="form-control pull-right" id="reservationtime2"
style="width:160px">
</div>
</div>
</div>
<div class="box-body " id="goodContract">
</div>
</div>
</div>
</section>
<!-- /.content -->
</div>
<%-- <jsp:include page="/jsp/bottom.jsp"></jsp:include> --%>
<%-- <jsp:include page="/jsp/side.jsp"></jsp:include> --%>
</div>
</body>
<!-- 引入daterangepicker-->
<link rel="stylesheet"
href="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.css" />
<script type="text/javascript"
src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/moment.min.js"
charset="utf-8"></script>
<script type="text/javascript"
src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.js"
charset="utf-8"></script>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,70 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
function dosave() {
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/sparepart/contractTaxRate/save.do", $("#subForm").serialize(), function(data) {
if (data.res == 1){
closeModal('subModal');
$("#table").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}
}
//输入框验证
$("#subForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
taxrate: {
notEmpty: {
message: '名称不能为空'
},
},
}
});
</script>
<div class="modal fade" id="subModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">新增税率</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm">
<input type="hidden" class="form-control" id="active" name="active" value="false">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<div class="form-group">
<label class="col-sm-2 control-label">*税率</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="taxrate" name ="taxrate" >
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="dosave()" id="btn_save">保存</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,81 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
function doupdate() {
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/sparepart/contractTaxRate/update.do", $("#subForm").serialize(), function(data) {
if (data.res == 1){
closeModal('subModal');
$("#table").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}
}
//输入框验证
$("#subForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
taxrate: {
notEmpty: {
message: '名称不能为空'
},
},
}
});
</script>
<div class="modal fade" id="subModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">编辑税率</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm">
<input type="hidden" class="form-control" id="id" name ="id" value="${contractTaxRate.id}">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<div class="form-group">
<label class="col-sm-2 control-label">*税率</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="taxrate" name ="taxrate"
value="${contractTaxRate.taxrate}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*状态</label>
<div class="col-sm-6">
<select class="form-control" id="active" name ="active" style="width: 270px;">
<option <c:if test="${contractTaxRate.active==true}">selected</c:if> value= true>可用</option>
<option <c:if test="${contractTaxRate.active==false}">selected</c:if> value= false>审核中</option>
</select>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="doupdate()" id="btn_update">保存</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,366 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ page import="com.sipai.entity.base.ServerObject"%>
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security"%>
<!DOCTYPE html>
<!-- <html lang="zh-CN"> -->
<!-- BEGIN HEAD -->
<head>
<title><%= ServerObject.atttable.get("TOPTITLE")%></title>
<!-- 引用页头及CSS页-->
<jsp:include page="/jsp/inc.jsp"></jsp:include>
<!-- bootstrap switch -->
<link rel="stylesheet" href="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/css/bootstrap3/bootstrap-switch.min.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/js/bootstrap-switch.min.js" charset="utf-8"></script>
<!--bootstrap-edittable 表格行内编辑 -->
<link rel="stylesheet" href="<%=request.getContextPath()%>/plugins/bootstrap-editable/css/bootstrap-editable.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-editable/js/bootstrap-editable.js" charset="utf-8"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-editable/js/bootstrap-table-editable.js" charset="utf-8"></script>
<style type="text/css">
.select2-container .select2-selection--single{
height:30px;
line-height: 30px;
}
.select2-selection__arrow{
margin-top:3px;
}
.table-hover>tbody>tr:hover {
cursor: pointer;
}
.fixed-table-toolbar .bs-bars,.fixed-table-toolbar .columns{
margin-top: 0px;
margin-bottom: 0px;
line-height: 20px;
}
</style>
<script type="text/javascript">
var addFun = function() {
$("#searchForm").bootstrapValidator('validate');//提交验证
if ($("#searchForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + '/sparepart/contractTaxRate/add.do' , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
};
var editFun = function(id) {
stopBubbleDefaultEvent();
$.post(ext.contextPath + '/sparepart/contractTaxRate/edit.do', {id:id} , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
var viewFun = function(id){
$.post(ext.contextPath + '/sparepart/contractTaxRate/view.do', {id:id} , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
//流程处理详情
var viewDetailHandleFun = function(id) {
stopBubbleDefaultEvent();
$.post(ext.contextPath + '/sparepart/contractTaxRate/showContractView.do', {id:id} , function(data) {
$("#subDiv").html(data);
openModal('contractTaxRateExcuteModal');
});
};
var deleteFun = function(id) {
stopBubbleDefaultEvent();
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete){
if (willDelete) {
$.post(ext.contextPath + '/sparepart/contractTaxRate/delete.do', {id : id}, function(data) {
if(data==1){
$("#table").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','mainAlertdiv');
}
});
}
});
};
var deletesFun = function() {
var checkedItems = $("#table").bootstrapTable('getSelections');
var datas="";
$.each(checkedItems, function(index, item){
datas+=item.id+",";
});
if(datas==""){
showAlert('d','请先选择记录','mainAlertdiv');
}else{
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete) {
if (willDelete) {
$.post(ext.contextPath + '/sparepart/contractTaxRate/deletes.do', {ids:datas} , function(data) {
if(data>0){
$("#table").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','mainAlertdiv');
}
});
}
});
}
};
//查询方法,选择厂区后自动加载
var dosearch = function() {
$("#table").bootstrapTable('refresh');
selectDept();
};
var companyId = unitId;
$(function() {
//简易公司combotree
// $.post(ext.contextPath + "/user/showCompanySelectTree.do", {}, function (data) {
// $('#companySelectTree').html(data);
// });
//输入框验证
$("#searchForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
search_code: {
validators: {
notEmpty: {
message: '请先选择厂区'
}
}
},
}
});
initFun()
});
//表格查询参数
function queryParamsFun (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
search_name: $('#search_name').val(),
/* search_code: companyId, */
deptId: $('#dept_id').val(),
};
}
function selectDept(){
//选择部门
$.post(ext.contextPath + "/user/getDeptByBizId4Select.do", {companyId:companyId}, function(data) {
$("#dept_id").empty();
var selelct = $("#dept_id").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
$(".select2-selection--single").css({'height':'30px','paddingTop':'4px'})
selelct.val('').trigger("change");
selelct.on("change",function(e){
$("#table").bootstrapTable('refresh');
});
},'json');
}
var showUser4SelectsFun = function() {
var userIds= $("#agentid").val();
$.post(ext.contextPath + '/user/userForSelectByStructure.do', {formId:"searchForm",hiddenId:"agentid",textId:"agentname",userIds:userIds} , function(data) {
$("#user4SelectDiv").html(data);
openModal("user4SelectModal");
});
};
var initFun = function(){
selectDept();
$("#table").bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/contractTaxRate/getList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: queryParamsFun,
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
onClickRow: function (row) {//单击行事件,执行查看功能
viewFun(row.id);
},
columns: [
{
checkbox: true, // 显示一个勾选框
},{
field: 'taxrate', // 返回json数据中的name
title: '税率', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'active', // 返回json数据中的name
title: '状态', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter: function (value, row, index) {
if(value=='1'){
return '可用';
}else{
return '审核中';
}
}
},{
title: "操作",
align: 'center',
valign: 'middle',
width: 120, // 定义列的宽度单位为像素px
formatter: function (value, row, index) {
var buts= '';
buts+= '<security:authorize buttonUrl="sparepart/contractTaxRate/edit.do">';
buts+= '<button class="btn btn-default btn-sm" title="编辑" onclick="editFun(\'' + row.id + '\')"><i class="fa fa-edit"></i><span class="hidden-md hidden-lg"> 编辑</span></button>';
buts+= '</security:authorize>';
buts+= '<security:authorize buttonUrl="sparepart/contractTaxRate/delete.do">';
buts+='<button class="btn btn-default btn-sm" title="删除" onclick="deleteFun(\''+row.id+'\')"><i class="fa fa fa-trash-o"></i><span class="hidden-md hidden-lg">删除</span></button>';
buts+= '</security:authorize>';
buts='<div class="btn-group" >'+buts+'</div>';
return buts;
}
}
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
}
</script>
</head>
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
<div class="wrapper">
<!-- 引用top -->
<%-- <jsp:include page="/jsp/top.jsp"></jsp:include> --%>
<!-- 菜单栏 -->
<%-- <jsp:include page="/jsp/left.jsp"></jsp:include> --%>
<div class="content-wrapper">
<!-- Content Header (Page header) -->
<%-- <section class="content-header">--%>
<%-- <h1 id ="head_title"></h1>--%>
<%-- <ol class="breadcrumb">--%>
<%-- <li><a id ='head_firstlevel' href="#"><i class="fa fa-dashboard"></i> </a></li>--%>
<%-- <!-- <li class="active">Here</li> -->--%>
<%-- </ol>--%>
<%-- </section>--%>
<!-- Main content -->
<section class="content container-fluid">
<div id="mainAlertdiv"></div>
<div id="subDiv"></div>
<div id="subDetailDiv"></div>
<div id="Goods4SelectDiv"></div>
<div id="Goods4SelectsDiv"></div>
<div id="user4SelectDiv"></div>
<div id="fileInputDiv"></div>
<div id="goodsAddDiv"></div>
<div id="equ4SelectDiv"></div>
<div id="fault4SelectDiv"></div>
<form id="searchForm">
<div >
<%-- <div id="companySelectTree" style="float:left;"></div>--%>
<%-- <div class="form-group" style="padding:0;margin-bottom: 0px;float:left;" id="action">--%>
<%-- <div class="btn-group" style="width: 220px;">--%>
<%-- <security:authorize buttonUrl="sparepart/contractTaxRate/add.do">--%>
<%-- <button type="button" class="btn btn-default btn-sm" onclick="addFun();"><i class="fa fa-plus"></i> 新增</button>--%>
<%-- <button type="button" class="btn btn-default btn-sm" onclick="deletesFun();"><i class="fa fa-trash-o"></i> 删除</button>--%>
<%-- </security:authorize>--%>
<%-- </div>--%>
<%-- </div>--%>
<%-- <div class="form-group" style="padding:0;margin-bottom: 0px;float:right;" id="action">--%>
<%-- <div class="form-group pull-right form-inline" style="margin-bottom: 0px;">--%>
<%-- <div class="input-group input-group-sm" style="width: 250px;">--%>
<%-- <input type="text" id="search_name" name="search_name" class="form-control pull-right" placeholder="税率">--%>
<%-- <div class="input-group-btn" style="line-height: 30px">--%>
<%-- <button class="btn btn-default" onclick="dosearch();"><i class="fa fa-search"></i></button>--%>
<%-- </div>--%>
<%-- </div>--%>
<%-- </div>--%>
<%-- </div>--%>
<div class="form-group" style="padding:0;">
<div class="btn-group" style="width: 220px;padding-bottom:10px;">
<security:authorize buttonUrl="sparepart/inStockRecord/add.do">
<button type="button" class="btn btn-default btn-sm" onclick="addFun();"><i class="fa fa-plus"></i> 新增</button>
<button type="button" class="btn btn-default btn-sm" onclick="deletesFun();"><i class="fa fa-trash-o"></i> 删除</button>
</security:authorize>
</div>
<div class="form-group pull-right form-inline" >
<div class="input-group input-group-sm" style="width: 250px;">
<input type="text" id="search_name" name="search_name" class="form-control pull-right" placeholder="税率">
<div class="input-group-btn">
<button class="btn btn-default" onclick="dosearch();"><i class="fa fa-search"></i></button>
</div>
</div>
</div>
</div>
</div>
</form>
<table id="table"></table>
</section>
<!-- /.content -->
</div>
<%-- <jsp:include page="/jsp/bottom.jsp"></jsp:include> --%>
<%-- <jsp:include page="/jsp/side.jsp"></jsp:include> --%>
</div>
</body>
<!-- 文件上传-->
<link rel="stylesheet" href="<%=request.getContextPath()%>/node_modules/bootstrap-fileinput/css/fileinput.min.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-fileinput/js/fileinput.min.js" charset="utf-8"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-fileinput/js/locales/zh.js" charset="utf-8"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/JS/commonFileUpload.js" charset="utf-8"></script>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,508 @@
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%request.setAttribute("DEPARTMENT", SparePartCommString.PURCHASE_DEPARTMENT); %>
<%-- <%request.setAttribute("PASS", SparePartCommString.STATUS_PASS); %>
<%request.setAttribute("REJECT", SparePartCommString.STATUS_REJECT); %>
<%request.setAttribute("SUBMIT", SparePartCommString.STATUS_SUBMIT); %> --%>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
//流程审核文件上传所需参数
var masterId_process = '${contract.id}';//业务Id
var tbName_process = 'TB_Process_UploadFile'; //数据表
var nameSpace_process ='ProcessUploadFile';//保存文件夹
var status = 'view';//有删除权限
$(function(){
//初始化文件显示
getFileList_process();
$('#table_SubscribeDetail').bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/subscribe/getSubscribeDetailList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
pids:'${contract.purchaseid}',
contractid:'${contract.id}',
}
},
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
columns: [
{
checkbox: true, // 显示一个勾选框
},{
field: 'goods.name', // 返回json数据中的name
title: '物品名称', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.model', // 返回json数据中的name
title: '规格型号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.unit', // 返回json数据中的name
title: '单位', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'brand', // 返回json数据中的name
title: '品牌', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
editable: { //编辑列元素
type: 'text',
title: '品牌',
}
},{
field: 'design', // 返回json数据中的name
title: '设计规格', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
editable: { //编辑列元素
type: 'text',
title: '设计规格',
}
},{
field: 'manufacturer', // 返回json数据中的name
title: '生产厂家', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
editable: { //编辑列元素
type: 'text',
title: '品牌',
}
},{
field: 'number', // 返回json数据中的name
title: '数量', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
editable: { //编辑列元素
type: 'text',
title: '数量',
validate: function (v) {
if (!v) return '数量不能为空';
}
}
},{
field: 'price', // 返回json数据中的name
title: '单价/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
editable: { //编辑列元素
type: 'text',
title: '单价',
validate: function (v) {
if (!v) return '单价不能为空';
}
}
},{
field: 'totalMoney', // 返回json数据中的name
title: '合计/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'install', // 返回json数据中的name
title: '是否安装', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'channelsName', // 返回json数据中的name
title: '子项工程', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'purpose', // 返回json数据中的name
title: '用途', // 表格表头显示文字
width: '20%',
align: 'center', // 左右居中
valign: 'middle', // 上下居中
}
],
//保存列修改后的数据
onEditableSave: function (field, row, oldValue, $el) {
$.post(ext.contextPath + "/sparepart/subscribe/updateSubscribeDetail.do", {id:row.id,price:row.price,number:row.number,purpose:row.purpose}, function(data) {
if (data.res == 1){
$("#table_SubscribeDetail").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','编辑失败');
}else{
showAlert('d',data.res);
}
},'json');
},
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table_SubscribeDetail");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
})
//付款记录
$("#table_Payment").bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/contractDetailPayment/getList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
contractId:'${contract.id}',
}
},
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
columns: [
{
field: 'paymentdate', // 返回json数据中的name
title: '付款时间', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter:function(value,row,index){
return value.substring(0,10);
}
},{
field: 'amountpaid', // 返回json数据中的name
title: '已付金额', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle',
},{
field: 'amountoutstanding', // 返回json数据中的name
title: '未付金额', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
title: "操作",
align: 'center',
valign: 'middle',
width: 120, // 定义列的宽度单位为像素px
formatter: function (value, row, index) {
var buts= '';
if('${contract.status}' != '${STATUS_CONTRACT_FINISH}'){
buts+= '<security:authorize buttonUrl="sparepart/contract/edit.do">';
buts+= '<button class="btn btn-default btn-sm" title="编辑" onclick="editFunPayment(\'' + row.id + '\')"><i class="fa fa-edit"></i><span class="hidden-md hidden-lg"> 编辑</span></button>';
buts+= '</security:authorize>';
buts+= '<security:authorize buttonUrl="sparepart/contract/delete.do">';
buts+='<button class="btn btn-default btn-sm" title="删除" onclick="deleteFunPayment(\''+row.id+'\')"><i class="fa fa fa-trash-o"></i><span class="hidden-md hidden-lg">删除</span></button';
buts+= '</security:authorize>';
buts='<div class="btn-group" >'+buts+'</div>';
}
return buts;
}
}
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table_Payment");
console.info("加载数据成功");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
})
//开票记录
$("#table_Invoice").bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/contractDetailInvoice/getList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
contractId:'${contract.id}',
}
},
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
columns: [
{
field: 'invoicedate', // 返回json数据中的name
title: '开票时间', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter:function(value,row,index){
return value.substring(0,10);
}
},{
field: 'amountinvoice', // 返回json数据中的name
title: '开票金额', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle',
},{
title: "操作",
align: 'center',
valign: 'middle',
width: 120, // 定义列的宽度单位为像素px
formatter: function (value, row, index) {
var buts= '';
if('${contract.status}' != '${STATUS_CONTRACT_FINISH}'){
buts+= '<security:authorize buttonUrl="sparepart/contract/edit.do">';
buts+= '<button class="btn btn-default btn-sm" title="编辑" onclick="editFunInvoice(\'' + row.id + '\')"><i class="fa fa-edit"></i><span class="hidden-md hidden-lg"> 编辑</span></button>';
buts+= '</security:authorize>';
buts+= '<security:authorize buttonUrl="sparepart/contract/delete.do">';
buts+='<button class="btn btn-default btn-sm" title="删除" onclick="deleteFunInvoice(\''+row.id+'\')"><i class="fa fa fa-trash-o"></i><span class="hidden-md hidden-lg">删除</span></button';
buts+= '</security:authorize>';
buts='<div class="btn-group" >'+buts+'</div>';
}
return buts;
}
}
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table_Payment");
console.info("加载数据成功");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
})
</script>
<div class="modal fade" id="subModal">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">合同详情</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm" enctype="multipart/form-data" >
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<div class="form-group">
<label class="col-md-2 col-sm-2 control-label">所属厂区</label>
<div class="col-md-4 col-sm-10">
<input id="bizId" name="bizId" type="hidden" value="${contract.company.id}"/>
<p class="form-control-static" >${contract.company.name}</p>
</div>
<label class="col-md-2 col-sm-2 control-label hidden">合同甲方</label>
<div class="col-md-4 col-sm-10 hidden">
<p class="form-control-static">${contract.firstparty}</p>
</div>
</div>
<div class="form-group">
<label class="col-md-2 col-sm-2 control-label">合同名称</label>
<div class="col-md-4 col-sm-10">
<p class="form-control-static">${contract.contractname}</p>
</div>
<label class="col-md-2 col-sm-2 control-label">合同类型</label>
<div class="col-md-4 col-sm-10">
<p class="form-control-static">${contract.contractclassName}</p>
</div>
</div>
<div class="form-group">
<label class="col-md-2 col-sm-2 control-label">经办部门</label>
<div class="col-md-4 col-sm-10">
<c:choose>
<c:when test="${!empty contract.dept.name}">
<p class="form-control-static">${contract.dept.name}</p>
</c:when>
<c:otherwise>
<p class="form-control-static">${contract.company.name}</p>
</c:otherwise>
</c:choose>
</div>
<label class="col-md-2 col-sm-2 control-label">经办人</label>
<div class="col-md-4 col-sm-10">
<p class="form-control-static">${contract.agentName}</p>
</div>
</div>
<div class="form-group">
<label class="col-md-2 col-sm-2 control-label">合同编号</label>
<div class="col-md-4 col-sm-10">
<p class="form-control-static">${contract.contractnumber}</p>
</div>
<label class="col-md-2 col-sm-2 control-label">供应商</label>
<div class="col-md-4 col-sm-10">
<p class="form-control-static">${contract.supplierName}</p>
</div>
</div>
<div class="form-group">
<label class="col-md-2 col-sm-2 control-label">采购形式</label>
<div class="col-md-4 col-sm-10">
<p class="form-control-static">${contract.purchasemethodsName}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">采购申请单</label>
<div class="col-sm-10">
<p class="form-control-static">${contract.purchaseName}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">列资渠道</label>
<div class="col-sm-10">
<p class="form-control-static">${contract.channelsName}</p>
</div>
</div>
<div class="form-group">
<label class="col-md-2 col-sm-2 control-label">开始日期</label>
<div class="col-md-4 col-sm-10">
<p class="form-control-static">${contract.contractstartdate.substring(0,10)}</p>
</div>
<label class="col-md-2 col-sm-2 control-label">结束日期</label>
<div class="col-md-4 col-sm-10">
<p class="form-control-static">${contract.contractenddate.substring(0,10)}</p>
</div>
</div>
<div class="form-group">
<label class="col-md-2 col-sm-2 control-label">合同金额(元)</label>
<div class="col-md-4 col-sm-10">
<p class="form-control-static">${contract.contractamount}</p>
</div>
<label class="col-md-2 col-sm-2 control-label">合同税率(%)</label>
<div class="col-md-4 col-sm-10">
<p class="form-control-static">${contract.contracttaxrateName}</p>
</div>
</div>
<div class="form-group">
<label class="col-md-2 col-sm-2 control-label">履约保证金</label>
<div class="col-md-4 col-sm-10">
<p class="form-control-static">${contract.performancebond}</p>
</div>
<label class="col-md-2 col-sm-2 control-label">质保金(%</label>
<div class="col-md-4 col-sm-10">
<p class="form-control-static">${contract.warrantydeposit}</p>
</div>
</div>
<div class="form-group">
<label class="col-md-2 col-sm-2 control-label">质保金(元)</label>
<div class="col-md-4 col-sm-10">
<p class="form-control-static">${contract.qualitydeposit}</p>
</div>
<label class="col-md-2 col-sm-2 control-label">质保期(年)</label>
<div class="col-md-4 col-sm-10">
<p class="form-control-static">${contract.warrantyperiod}</p>
</div>
</div>
<div class="form-group">
<label class="col-md-2 col-sm-2 control-label">供货计划开始日期</label>
<div class="col-md-4 col-sm-10">
<p class="form-control-static">${contract.supplyplanstartdate.substring(0,10)}</p>
</div>
<label class="col-md-2 col-sm-2 control-label">供货计划结束日期</label>
<div class="col-md-4 col-sm-10">
<p class="form-control-static">${contract.supplyplanenddate.substring(0,10)}</p>
</div>
</div>
<div class="form-group">
<label class="col-md-2 col-sm-2 control-label">供货实际开始日期</label>
<div class="col-md-4 col-sm-10">
<p class="form-control-static">${contract.supplyactualstartdate.substring(0,10)}</p>
</div>
<label class="col-md-2 col-sm-2 control-label">供货实际结束日期</label>
<div class="col-md-4 col-sm-10">
<p class="form-control-static">${contract.supplyactualenddate.substring(0,10)}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">备注</label>
<div class="col-sm-10">
<p class="form-control-static">${contract.remark}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">文件附件:</label>
</div>
<!-- 文件上传,显示 -->
<div class="file-border" id="fileArea">
</div>
</form>
<div class="nav-tabs-custom">
<ul class="nav nav-tabs" id="">
<li class="active"><a href="#tab1" data-toggle="tab" index="0" aria-expanded="true">合同明细</a></li>
<li class=""><a href="#tab2" data-toggle="tab" index="0" aria-expanded="true">付款记录</a></li>
<li class=""><a href="#tab3" data-toggle="tab" index="1" aria-expanded="false">开票记录</a></li>
<!-- <li class=""><a href="#tab3" data-toggle="tab" index="4" aria-expanded="false">验收记录</a></li>
<li class=""><a href="#tab4" data-toggle="tab" index="3" aria-expanded="false">入库记录</a></li>
<li class=""><a href="#tab5" data-toggle="tab" index="4" aria-expanded="false">出库记录</a></li>
<li class=""><a href="#tab6" data-toggle="tab" index="5" aria-expanded="false">合同变更历史</a></li> -->
</ul>
</div><div class="tab-content" >
<div class=" tab-pane active" id="tab1">
<div class="box box-primary" >
<div class="box-header with-border">
<div class="box-tools pull-right">
</div>
</div>
<!-- /.box-header -->
<div class="box-body ">
<input id="subscribeDetail_channelsId" type="hidden" value="" />
<table id="table_SubscribeDetail"></table>
</div>
</div>
</div>
<div class=" tab-pane " id="tab2">
<div class="box box-primary" >
<c:if test="${contract.status==STATUS_CONTRACT_EXECUTE}">
<div class="box-header with-border">
<div class="box-tools pull-right">
<a onclick="paymentAddFun()" class="btn btn-box-tool" data-toggle="tooltip" title="新增"><i class="glyphicon glyphicon-plus"></i></a>
</div>
</div>
</c:if>
<div class="box-body ">
<table id="table_Payment"></table>
</div>
</div>
</div>
<div class=" tab-pane " id="tab3">
<div class="box box-primary" >
<c:if test="${contract.status==STATUS_CONTRACT_EXECUTE}">
<div class="box-header with-border">
<div class="box-tools pull-right">
<a onclick="invoiceAddFun()" class="btn btn-box-tool" data-toggle="tooltip" title="新增"><i class="glyphicon glyphicon-plus"></i></a>
</div>
</div>
</c:if>
<div class="box-body ">
<table id="table_Invoice"></table>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,139 @@
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<%request.setAttribute("DEPARTMENT", SparePartCommString.PURCHASE_DEPARTMENT); %>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
function dosave() {
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/sparepart/purchasePlan/save.do", $("#subForm").serialize(), function(data) {
if (data.res == 1){
closeModal('subModal');
$("#table").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}
}
//输入框验证
$("#subForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
departmentId: {
validators: {
notEmpty: {
message: '申购部门不能为空'
}
}
},
planPurchaseDate: {
validators: {
notEmpty: {
message: '申购日期不能为空'
}
}
},
applicant: {
validators: {
notEmpty: {
message: '申购人不能为空'
}
}
},
}
});
//选择物品类别
var showGoodsClass4SelectFun = function() {
$.post(ext.contextPath + '/sparepart/goodsClass/showList4Select.do', {formId:"subForm",hiddenId:"pid",textId:"pname"} , function(data) {
$("#fault4SelectDiv").html(data);
openModal('fault4SelectModal');
});
};
$(function(){
$("#planPurchaseDate").datepicker({
language: 'zh-CN',
autoclose: true,
todayHighlight: true,
format:'yyyy-mm-dd',
})
$("#planPurchaseDate").datepicker('setDate',new Date());
})
</script>
<div class="modal fade" id="subModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">新增部门申购计划</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<input name="type" type="hidden" value="${DEPARTMENT}"/>
<div class="form-group">
<label class="col-sm-2 control-label">所属厂区</label>
<div class="col-sm-10">
<input name="bizId" type="hidden" value="${company.id}"/>
<p class="form-control-static" >${company.name}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*申购单号</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="id" name ="id" placeholder="名称" value="${id}" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*申购日期</label>
<div class="col-sm-6">
<div class="input-group date">
<div class="input-group-addon">
<i class="fa fa-calendar"></i>
</div>
<input type="text" class="form-control" id="planPurchaseDate" name="planPurchaseDate" style="width: 230px;" placeholder="请选择"/>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*申购部门</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="departmentId" name ="departmentId" placeholder="" >
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*申购人</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="applicant" name ="applicant" placeholder="" >
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">备注</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" id ="remark" name ="remark" placeholder="备注..."></textarea>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="dosave()" id="btn_save">保存</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,318 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ page import="com.sipai.entity.base.ServerObject"%>
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security"%>
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
<%request.setAttribute("DEPARTMENT", SparePartCommString.PURCHASE_DEPARTMENT); %>
<!DOCTYPE html>
<!-- <html lang="zh-CN"> -->
<!-- BEGIN HEAD -->
<head>
<title><%= ServerObject.atttable.get("TOPTITLE")%></title>
<!-- 引用页头及CSS页-->
<jsp:include page="/jsp/inc.jsp"></jsp:include>
<!-- bootstrap switch -->
<link rel="stylesheet" href="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/css/bootstrap3/bootstrap-switch.min.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/js/bootstrap-switch.min.js" charset="utf-8"></script>
<script type="text/javascript">
var addFun = function() {
$.post(ext.contextPath + '/sparepart/purchasePlan/addDepartmentPurchase.do', {companyId :companyId } , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
var editFun = function(id) {
stopBubbleDefaultEvent();
$.post(ext.contextPath + '/sparepart/purchasePlan/edit.do', {id:id} , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
var viewFun = function(id){
$.post(ext.contextPath + '/sparepart/purchasePlan/view.do', {id:id} , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
var deleteFun = function(id) {
stopBubbleDefaultEvent();
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(willDelete =>{
if (willDelete) {
$.post(ext.contextPath + '/sparepart/purchasePlan/delete.do', {id : id}, function(data) {
if(data==1){
$("#table").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','mainAlertdiv');
}
});
}
});
};
var deletesFun = function() {
var checkedItems = $("#table").bootstrapTable('getSelections');
var datas="";
$.each(checkedItems, function(index, item){
datas+=item.id+",";
});
if(datas==""){
showAlert('d','请先选择记录','mainAlertdiv');
}else{
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete) {
if (willDelete) {
$.post(ext.contextPath + '/sparepart/purchasePlan/deletes.do', {ids:datas} , function(data) {
if(data>0){
$("#table").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','mainAlertdiv');
}
});
}
});
}
};
var dosearch = function() {
$("#table").bootstrapTable('refresh');
};
var companyId = "";
$(function() {
$.post(ext.contextPath + "/user/getSearchBizsByUserId4Select.do", {}, function(data) {
if(data.length == 1){
//选择厂区为一个厂时隐藏选择框
$("#search_code").css("display", "none");
$("#company").text(data[0].text);
companyId=data[0].id;
dosearch();
}else{
$("#company").css("display", "none");
var selelct=$("#search_code").select2({
data : data ,
placeholder:'请选择',//默认文字提示
allowClear: true,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
$(".select2-selection--single").css({'height':'30px','paddingTop':'4px'})
selelct.val('').trigger("change");
selelct.on("change",function(e){
companyId= $(this).val();
dosearch();
});
}
},'json');
$("#table").bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/purchasePlan/getList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
search_name: $('#search_name').val(),
search_code: companyId,
type : '${DEPARTMENT}'
}
},
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
onClickRow: function (row) {//单击行事件,执行查看功能
viewFun(row.id);
},
columns: [
{
checkbox: true, // 显示一个勾选框
},
{
field: 'id', // 返回json数据中的name
title: '申购单号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},
{
field: 'planPurchaseDate', // 返回json数据中的name
title: '申购日期', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter:function (value, row, index){
return value.substring(0,10);
}
},
{
field: 'departmentId', // 返回json数据中的name
title: '申购部门', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},
{
field: 'applicant', // 返回json数据中的name
title: '申购人', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},
{
field: 'status', // 返回json数据中的name
title: '申购状态', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter:function (value, row, index){
switch (value){
case :
}
}
},
{
field: 'remark', // 返回json数据中的name
title: '备注', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},
{
title: "操作",
align: 'center',
valign: 'middle',
width: 120, // 定义列的宽度单位为像素px
formatter: function (value, row, index) {
var buts= '';
buts+= '<security:authorize buttonUrl="sparepart/warehouse/edit.do">';
buts+= '<button class="btn btn-default btn-sm" title="编辑" onclick="editFun(\'' + row.id + '\')"><i class="fa fa-edit"></i><span class="hidden-md hidden-lg"> 编辑</span></button>';
buts+= '</security:authorize>';
buts+= '<security:authorize buttonUrl="sparepart/warehouse/delete.do">';
buts+='<button class="btn btn-default btn-sm" title="删除" onclick="deleteFun(\''+row.id+'\')"><i class="fa fa fa-trash-o"></i><span class="hidden-md hidden-lg">删除</span></button';
buts+= '</security:authorize>';
buts='<div class="btn-group" >'+buts+'</div>';
return buts;
}
}
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
});
</script>
</head>
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
<div class="wrapper">
<!-- 引用top -->
<%-- <jsp:include page="/jsp/top.jsp"></jsp:include> --%>
<!-- 菜单栏 -->
<%-- <jsp:include page="/jsp/left.jsp"></jsp:include> --%>
<div class="content-wrapper">
<!-- Content Header (Page header) -->
<section class="content-header">
<h1 id ="head_title"></h1>
<ol class="breadcrumb">
<li><a id ='head_firstlevel' href="#"><i class="fa fa-dashboard"></i> </a></li>
<!-- <li class="active">Here</li> -->
</ol>
</section>
<!-- Main content -->
<section class="content container-fluid">
<div id="mainAlertdiv"></div>
<div id="subDiv"></div>
<div >
<div class="form-group form-inline">
<div class="form-group">
<label class="form-label" id="companylabel">水厂:</label>
<label class="form-label" id="company" style="width:180px;border: none;background: transparent;" ></label>
</div>
<div class="form-group">
<select class="form-control select2 " id="search_code" name ="search_code" style="width: 220px;"></select>
</div>
</div>
<div class="form-group" style="padding:0;">
<div class="btn-group" style="width: 220px;padding-bottom:10px;">
<security:authorize buttonUrl="sparepart/warehouse/add.do">
<button type="button" class="btn btn-default btn-sm" onclick="addFun();"><i class="fa fa-plus"></i> 新增</button>
<button type="button" class="btn btn-default btn-sm" onclick="deletesFun();"><i class="fa fa-trash-o"></i> 删除</button>
</security:authorize>
</div>
<div class="form-group pull-right form-inline" >
<div class="input-group input-group-sm" style="width: 250px;">
<input type="text" id="search_name" name="search_name" class="form-control pull-right" placeholder="仓库名称">
<div class="input-group-btn">
<button class="btn btn-default" onclick="dosearch();"><i class="fa fa-search"></i></button>
</div>
</div>
</div>
</div>
<table id="table"></table>
</div>
</section>
<!-- /.content -->
</div>
<%-- <jsp:include page="/jsp/bottom.jsp"></jsp:include> --%>
<%-- <jsp:include page="/jsp/side.jsp"></jsp:include> --%>
</div>
</body>
</html>

View File

@ -0,0 +1,421 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
var editFun1 = function(id) {
stopBubbleDefaultEvent();
$.post(ext.contextPath + '/sparepart/supplierQualification/edit.do', {id:id} , function(data) {
$("#qualificationedit").html(data);
openModal('subModal1');
});
};
var deleteFun1 = function(id) {
stopBubbleDefaultEvent();
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(willDelete =>{
if (willDelete) {
$.post(ext.contextPath + '/sparepart/supplierQualification/delete.do', {id : id}, function(data) {
if(data==1){
$("#table1").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','mainAlertdiv');
}
});
}
});
};
var initTable = function(id) {
$("#table1").bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/supplierQualification/getList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 50, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order, // 排序规则
search_name: $('#search_name').val(),
modelid:id
}
},
sortName: 'insdt', // 要排序的字段
sortOrder: 'desc', // 排序规则
onClickRow: function (row) {//单击行事件,执行查看功能
viewFun(row.id);
},
columns: [
{
checkbox: true, // 显示一个勾选框
},
{
field: 'name', // 返回json数据中的name
title: '资质名字', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter:function(value,row,index){
return value;
}
},{
field: 'qualificationTypeName', // 返回json数据中的name
title: '资质类型', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter:function(value,row,index){
return value;
}
},{
field: 'qualificationValidityTime', // 返回json数据中的name
title: '有效时间', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter:function(value,row,index){
return value;
}
},{
field: 'qualificationState', // 返回json数据中的name
title: '状态', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter:function(value,row,index){
return value;
}
},{
title: "操作",
field: 'resourceId',
align: 'center',
valign: 'middle',
width: 120, // 定义列的宽度单位为像素px
formatter: function (value, row, index) {
var buts= '';
buts+= '<security:authorize buttonUrl="sparepart/supplierQualification/edit.do">';
buts+= '<button class="btn btn-default btn-sm" title="编辑" onclick="editFun1(\'' + row.id + '\')"><i class="fa fa-edit"></i><span class="hidden-md hidden-lg"> 编辑</span></button>';
buts+= '</security:authorize>';
buts+= '<security:authorize buttonUrl="sparepart/supplierQualification/delete.do">';
buts+='<button class="btn btn-default btn-sm" title="删除" onclick="deleteFun1(\''+row.id+'\')"><i class="fa fa fa-trash-o"></i><span class="hidden-md hidden-lg">删除</span></button';
buts+= '</security:authorize>';
buts='<div class="btn-group" >'+buts+'</div>';
return buts;
/* return '<i class="fa fa-edit" onclick="editFun()(\'' + row.id + '\')></i>'; */
}
}
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table1");
$("#table1").bootstrapTable("hideRow",1)
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
})
};
var modelid = $("#id").val();
$(function() {
initTable(modelid);
var typeStatusArr = [
{"id":"潜在","text":"潜在"},
{"id":"登记","text":"已合作"},
];
var selelct =$("#typeStatus").select2({
data: typeStatusArr,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('${supplier.typeStatus}').trigger("change");
var objArr = [
{"id":"启用","text":"启用"},
{"id":"禁用","text":"禁用"},
];
var selelct =$("#type").select2({
data: objArr,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('${supplier.type}').trigger("change");
});
var addSubscribeDetailFun = function() {
var usid1 = $("#id").val();
console.info(usid1);
$.post(ext.contextPath + '/sparepart/supplierQualification/add.do', {usid1:usid1},
function(data) {
$("#qualificationadd").html(data);
openModal('subModal3');
});
}
function doupdate() {
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/sparepart/supplier/update.do", $("#subForm").serialize(), function(data) {
if (data.res == 1){
closeModal('subModal');
$("#table").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}
}
//输入框验证
$("#subForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
name: {
validators: {
notEmpty: {
message: '供应商名称不能为空'
}
}
},
classId: {
validators: {
notEmpty: {
message: '供应商类型不能为空'
}
}
},
/* address: {
validators: {
notEmpty: {
message: '地址不能为空'
}
}
},
linkMan: {
validators: {
notEmpty: {
message: '联系人不能为空'
}
}
},
mobile: {
validators: {
notEmpty: {
message: '手机号不能为空'
}
},
stringLength: {
min: 11,
max: 11,
message: '请输入11位手机号码'
},
}, */
}
});
$(function(){
//选择供应商类型
$.post(ext.contextPath + "/sparepart/supplierClass/getSupplierClass4Select.do", {}, function(data) {
var selelct =$("#classId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('${supplier.classId}').trigger("change");
},'json');
})
</script>
<div class="modal fade" id="subModal">
<div class="modal-dialog ">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">编辑供应商</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<input type="hidden" id="id" name ="id" value="${supplier.id}">
<div class="form-group">
<label class="col-sm-2 control-label">*供应商名称</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="name" name ="name" placeholder="名称" value="${supplier.name}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*供应商类型</label>
<div class="col-sm-6">
<select class="form-control select2" id="classId" name ="classId" style="width: 270px;"></select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">地址</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="address" name ="address" placeholder="地址" value="${supplier.address}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">联系人</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="linkMan" name ="linkMan" placeholder="联系人" value="${supplier.linkMan}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">手机号</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="mobile" name ="mobile" placeholder="手机号" value="${supplier.mobile}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">传真</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="fax" name ="fax" placeholder="传真" value="${supplier.fax}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">存续状态</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="existStatus" name ="existStatus" placeholder="存续状态" value="${supplier.existStatus}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">公司简称</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="abbreviation" name ="abbreviation" placeholder="公司简称" value="${supplier.abbreviation}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">法人</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="legalPerson" name ="legalPerson" placeholder="法人" value="${supplier.legalPerson}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">银行信息</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="bankInformation" name ="bankInformation" placeholder="银行信息" value="${supplier.bankInformation}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">账号</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="bankNumber" name ="bankNumber" placeholder="账号" value="${supplier.bankNumber}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">税号</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="taxNumber" name ="taxNumber" placeholder="税号" value="${supplier.taxNumber}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">主营业务</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" id ="mainBusiness" name ="mainBusiness" placeholder="主营业务..."> ${supplier.mainBusiness}</textarea>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">已合作或潜在</label>
<div class="col-sm-10">
<select class="form-control select2 " id="typeStatus" name="typeStatus"
style="width: 200px;"></select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">状态</label>
<div class="col-sm-10">
<select class="form-control select2 " id="type" name="type"
style="width: 200px;"></select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">评价供应商</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" id ="evaluate" name ="evaluate" placeholder="评价...">${supplier.evaluate}</textarea>
</div>
</div>
<div class="box box-primary" >
<div class="box-header with-border">
<h3 class="box-title">供应商资质</h3>
<div class="box-tools pull-right">
<a onclick="addSubscribeDetailFun()" class="btn btn-box-tool" data-toggle="tooltip" title="新增"><i class="glyphicon glyphicon-plus"></i></a>
</div>
</div>
<!-- /.box-header -->
<div class="box-body ">
<table id="table1"></table>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="doupdate()" id="btn_update">保存</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,270 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<script type="text/javascript">
var doSearchGoods = function() {
$("#table_goods").bootstrapTable('refresh');
};
function doSelectGoods() {
//var checkItems = $("#table_goods").bootstrapTable('getAllSelections');
var datas="";
datas_name="";
$.each(selectionIds, function(index, item){
if(datas!=""){
datas+=",";
}
datas+=item;
});
//调用上一界面方法完成选择
doFinishSelectSubscribeDetail(datas);
closeModal("subDetailModal");
};
function stateFormatter(value, row, index) {
var flag=false;
$.each(eval('${goodsIds}'), function(index, item){
if(row.goodsId==item.id){
flag=true;
}
});
if (flag)
return {
checked : true//设置选中
};
return value;
}
var $table;
var switchStatus=false;
var selectionIds = []; //保存选中ids
function initialSelectionIds(){
var check_array =eval('${goodsIds}');
if(check_array!=null&& check_array.length>0){
selectionIds =new Array(check_array.length);
for(var i=0;i<check_array.length;i++){
selectionIds[i]=check_array[i].id;
}
}
}
function getCheckedIds(){
var ids="";
var check_array =eval('${goodsIds}');
$.each(check_array, function(index, item){
if(ids!=""){
ids+=",";
}
ids+=item.id;
});
return ids;
}
function queryParams(params) {
var temp={
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
subscribe_id: $('#search_goodsName').val(),
};
return temp;
}
$(function() {
$("#search_goodsName").keyup(function(){
if (event.keyCode == 13) {
event.preventDefault();
//回车查询
doSearchGoods();
event.stopPropagation();
}
})
initialSelectionIds();
$table=$("#table_goods").bootstrapTable({
url: ext.contextPath + '/equipment/equipmentScrapApplyCollect/getList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams:queryParams,
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
columns: [
{
checkbox: true, // 显示一个勾选框
//formatter: stateFormatter
formatter: function (i,row) { // 每次加载 checkbox 时判断当前 row 的 id 是否已经存在全局 Set() 里
if($.inArray(row.goodsId,Array.from(selectionIds))!=-1){ // 因为 Set是集合,需要先转换成数组
return {
checked : true // 存在则选中
}
}
}
},{
field : 'equipmentCardCode', // 返回json数据中的name
title : '设备编号', // 表格表头显示文字
align : 'center', // 左右居中
valign : 'middle' // 上下居中
},
{
field : 'equipmentCardName', // 返回json数据中的name
title : '设备名称', // 表格表头显示文字
align : 'center', // 左右居中
valign : 'middle' // 上下居中
},
{
field : 'scrapApplyNumber', // 返回json数据中的name
title : '报废申请编号', // 表格表头显示文字
align : 'center', // 左右居中
valign : 'middle', // 上下居中
},
{
field : 'applyTime', // 返回json数据中的name
title : '申请时间', // 表格表头显示文字
align : 'center', // 左右居中
valign : 'middle', // 上下居中
formatter : function(value, row, index) {
return value.substring(0, 10);
}
},
{
field : 'companyName', // 返回json数据中的name
title : '公司', // 表格表头显示文字
align : 'center', // 左右居中
valign : 'middle', // 上下居中
},
{
field: 'deptName', // 返回json数据中的name
title: '部门', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},
{
field : 'name', // 返回json数据中的name
title : '申请人', // 表格表头显示文字
align : 'center', // 左右居中
valign : 'middle', // 上下居中
}
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table_goods");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
//绑定选中事件、取消事件、全部选中、全部取消
$table.on('check.bs.table check-all.bs.table uncheck.bs.table uncheck-all.bs.table', function (e, rows) {
var ids = $.map(!$.isArray(rows) ? [rows] : rows, function (row) {
return row.goodsId;
});
func = $.inArray(e.type, ['check', 'check-all']) > -1 ? 'union' : 'difference';
selectionIds = _[func](selectionIds, ids);
});
});
//选中事件操作数组
var union = function(array,ids){
$.each(ids, function (i, id) {
if($.inArray(id,array)==-1){
array[array.length] = id;
}
});
return array;
};
//取消选中事件操作数组
var difference = function(array,ids){
$.each(ids, function (i, id) {
var index = $.inArray(id,array);
if(index!=-1){
array.splice(index, 1);
}
});
return array;
};
var _ = {"union":union,"difference":difference};
//表格分页之前处理多选框数据
function responseHandler(res) {
$.each(res.rows, function (i, row) {
row.checkStatus = $.inArray(row.goodsId, selectionIds) != -1; //判断当前行的数据id是否存在与选中的数组存在则将多选框状态变为true
});
return res;
}
</script>
<div class="modal fade" id="subDetailModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">选择报废物品信息</h4>
</div>
<div class="modal-body " style="width:100%">
<div id="alertDiv"></div>
<div class="form-group pull-right form-inline" >
<div class="input-group input-group-sm" style="width: 250px;">
<input type="text" id="search_goodsName" name="search_goodsName" class="form-control pull-right" placeholder="申购单号">
<div class="input-group-btn">
<button class="btn btn-default" onclick="doSearchGoods();"><i class="fa fa-search"></i></button>
</div>
</div>
</div>
<!-- <div class="box box-primary box-solid collapsed-box" id="searchBox" collapsed>
<div class="box-header">
tools box
<div class="pull-right box-tools">
<button type="button" class="btn btn-primary btn-sm pull-right" data-widget="collapse"
style="margin-right: 5px;">
<i class="fa fa-plus"></i></button>
</div>
/. tools
<i class="fa fa-search"></i>
</div>
<div class="box-body collapse" >
<form class="form-horizontal " style="padding:0;">
<div class="form-group" style="margin-right: 20px;">
<label class="control-label col-sm-2">工艺段</label>
<div class="col-sm-4">
<select class="form-control select2 " id="processSection" name ="processSection" style="width: 170px;"></select>
</div>
<label class="control-label col-sm-2 ">名称</label>
<div class="col-sm-4">
<input type="text" id="search_name" name="search_name" class="form-control input-sm" placeholder="名称" style="width:170px;">
</div>
</div>
<div class="form-group" style="margin-right: 20px;">
<label class="col-sm-2 control-label">只看选中</label>
<div class="col-sm-4">
<div class="switch" data-on="primary" data-off="info">
<input id ="switchBtn" type="checkbox" />
</div>
</div>
<div class=" col-sm-6 button-group" style="padding: 0;">
<button type ="button" class="btn btn-default btn-sm pull-right" onclick="doSearchEqu();"><i class="fa fa-search"> 搜索</i></button>
</div>
</div>
</form>
</div>
</div> -->
<div>
<div id="table_goods" style="height:230px;overflow:auto;width:100%"></div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="doSelectGoods()">确认</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,260 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<script type="text/javascript">
var checkedItem="";
var initTreeView = function() {
$.post(ext.contextPath + '/sparepart/goodsClass/getGoodsClassJson.do', function(data) {
$('#tree').treeview({data: data});
$('#tree').on('nodeSelected', function(event, data) {
$('#classid').val(data.id);
doSearchGoods();
});
},'json');
};
var doSearchGoods = function() {
$("#table_goods").bootstrapTable('refresh');
};
function doSelectGoods() {
//var checkItems = $("#table_goods").bootstrapTable('getAllSelections');
var checkedItems = $("#table_goods").bootstrapTable('getAllSelections');
var datas="";
$.each(checkedItems, function(index, item){
datas = item.id;
});
if (datas == "") {
showAlert('d','请先选择记录','alertDiv');
} else {
if ('${subscribeDetailIds}' != null) {
// 更新数据接口
$.post(ext.contextPath + '/sparepart/subscribe/doDetailUpdate.do', {subscribeDetailIds: '${subscribeDetailIds}', goodsId: datas} , function(data) {
$("#table").bootstrapTable('refresh');
});
}
closeModal("subDetailModal");
}
};
var addGoodsFun = function() {
// var goodsClassId = $('#classid').val();
// $.post(ext.contextPath + '/sparepart/goods/goodsAddInSelects.do', {goodsClassId:goodsClassId} , function(data) {
// $("#goodsAddDiv").html(data);
// openModal('subGoodsModal');
// });
if ('${subscribeDetailIds}' != null) {
$.post(ext.contextPath + '/sparepart/goods/add.do', {subscribeDetailIds: '${subscribeDetailIds}'}, function (data) {
$("#goodsAddDiv").html(data);
openModal('subModal');
});
}
};
function getCheckedIds(){
var ids="";
var check_array =eval('${goodsIds}');
$.each(check_array, function(index, item){
if(ids!=""){
ids+=",";
}
ids+=item.id;
});
return ids;
}
function queryParams(params) {
var temp={
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
search_name: $('#search_goodsName').val(),
className: '${param.className}',
classid: $('#classid').val(),
};
/* var status =$('#switchBtn').bootstrapSwitch('state')
if(status){
temp.checkedIds=getCheckedIds();
} */
return temp;
}
$(function() {
$("#search_goodsName").keyup(function(){
if (event.keyCode == 13) {
event.preventDefault();
//回车查询
doSearchGoods();
event.stopPropagation();
}
})
// initialSelectionIds();
$table=$("#table_goods").bootstrapTable({
url: ext.contextPath + '/sparepart/goods/getList.do', // 获取表格数据的url
clickToSelect:true,
singleSelect:true,
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams:queryParams,
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
columns: [
{
checkbox: true, // 显示一个勾选框
formatter: stateFormatter
},{
field: 'number', // 返回json数据中的name
title: '物品编号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'name', // 返回json数据中的name
title: '物品名称', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'brand', // 返回json数据中的name
title: '物品品牌', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'model', // 返回json数据中的name
title: '规格型号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'goodsClass.name', // 返回json数据中的name
title: '物品类别', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'unit', // 返回json数据中的name
title: '物品单位', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'remark', // 返回json数据中的name
title: '备注', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
}
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table_goods");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
//绑定选中事件、取消事件、全部选中、全部取消
$table.on('check.bs.table check-all.bs.table uncheck.bs.table uncheck-all.bs.table', function (e,rows, obj) {
if('check'==e.type){
$('#table_goods .checked').removeClass("checked");
obj.parent().addClass("checked");
checkedItem = rows;
}else{
obj.parent().removeClass("checked");
checkedItem = "";
}
});
initTreeView();
});
//显示已经勾选的数据
function stateFormatter(value, row, index) {
var flag=false;
if(row.id=='${goodsIds}'){
flag=true;
checkedItem = row;
}
if (flag)
return {
checked : true//设置选中
};
return value;
}
//选中事件操作数组
var union = function(array,ids){
$.each(ids, function (i, id) {
if($.inArray(id,array)==-1){
array[array.length] = id;
}
});
return array;
};
//取消选中事件操作数组
var difference = function(array,ids){
$.each(ids, function (i, id) {
var index = $.inArray(id,array);
if(index!=-1){
array.splice(index, 1);
}
});
return array;
};
var _ = {"union":union,"difference":difference};
//表格分页之前处理多选框数据
function responseHandler(res) {
$.each(res.rows, function (i, row) {
row.checkStatus = $.inArray(row.id, selectionIds) != -1; //判断当前行的数据id是否存在与选中的数组存在则将多选框状态变为true
});
return res;
}
</script>
<div class="modal fade" id="subDetailModal">
<div class="modal-dialog modal-xlg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">选择物品信息</h4>
</div>
<div class="modal-body " style="width:100%">
<div id="alertDiv"></div>
<div class="row">
<div class="col-lg-3 col-md-4">
<input type="hidden" id="classid" name="classid" class="form-control">
<div id="tree" style="height:550px;overflow:auto; "></div>
</div>
<div class="col-lg-9 col-md-8">
<div class="btn-group" style="width: 220px;padding-bottom:10px;">
<security:authorize buttonUrl="sparepart/goods/add.do">
<button type="button" class="btn btn-default btn-sm" onclick="addGoodsFun();"><i class="fa fa-plus"></i> 新增物品</button>
</security:authorize>
</div>
<div class="form-group pull-right form-inline" >
<div class="input-group input-group-sm" style="width: 250px;">
<input type="text" id="search_goodsName" name="search_goodsName" class="form-control pull-right" placeholder="物品名称">
<div class="input-group-btn">
<button class="btn btn-default" onclick="doSearchGoods();"><i class="fa fa-search"></i></button>
</div>
</div>
</div>
<div>
<table id="table_goods"></table>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="doSelectGoods()">确认</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,297 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<script type="text/javascript">
var initTreeView = function() {
$.post(ext.contextPath + '/sparepart/goodsClass/getGoodsClassJson.do', function(data) {
$('#tree').treeview({data: data});
$('#tree').on('nodeSelected', function(event, data) {
$('#classid').val(data.id);
doSearchGoods();
});
},'json');
};
var doSearchGoods = function() {
$("#table_goods").bootstrapTable('refresh');
};
function doSelectGoods() {
//var checkItems = $("#table_goods").bootstrapTable('getAllSelections');
var datas="";
datas_name="";
$.each(selectionIds, function(index, item){
if(datas!=""){
datas+=",";
}
datas+=item;
});
//调用上一界面方法完成选择
doFinishSelectSubscribeDetail(datas,'${param.pid}','${param.equipmentId}');
closeModal("subDetailModal");
};
var addGoodsFun = function() {
var goodsClassId = $('#classid').val();
$.post(ext.contextPath + '/sparepart/goods/goodsAddInSelects.do', {goodsClassId:goodsClassId} , function(data) {
$("#goodsAddDiv").html(data);
openModal('subGoodsModal');
});
};
function stateFormatter(value, row, index) {
var flag=false;
$.each(eval('${goodsIds}'), function(index, item){
if(row.id==item.id){
flag=true;
}
});
if (flag)
return {
checked : true//设置选中
};
return value;
}
var $table;
var switchStatus=false;
var selectionIds = []; //保存选中ids
function initialSelectionIds(){
var check_array =eval('${goodsIds}');
if(check_array!=null&& check_array.length>0){
selectionIds =new Array(check_array.length);
for(var i=0;i<check_array.length;i++){
selectionIds[i]=check_array[i].id;
}
}
}
function getCheckedIds(){
var ids="";
var check_array =eval('${goodsIds}');
$.each(check_array, function(index, item){
if(ids!=""){
ids+=",";
}
ids+=item.id;
});
return ids;
}
function queryParams(params) {
var temp={
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
search_name: $('#search_goodsName').val(),
className: '${param.className}',
classid: $('#classid').val(),
};
/* var status =$('#switchBtn').bootstrapSwitch('state')
if(status){
temp.checkedIds=getCheckedIds();
} */
return temp;
}
$(function() {
$("#search_goodsName").keyup(function(){
if (event.keyCode == 13) {
event.preventDefault();
//回车查询
doSearchGoods();
event.stopPropagation();
}
})
initialSelectionIds();
$table=$("#table_goods").bootstrapTable({
url: ext.contextPath + '/sparepart/goods/getList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams:queryParams,
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
columns: [
{
checkbox: true, // 显示一个勾选框
//formatter: stateFormatter
formatter: function (i,row) { // 每次加载 checkbox 时判断当前 row 的 id 是否已经存在全局 Set() 里
if($.inArray(row.id,Array.from(selectionIds))!=-1){ // 因为 Set是集合,需要先转换成数组
return {
checked : true // 存在则选中
}
}
}
},{
field: 'number', // 返回json数据中的name
title: '物品编号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'name', // 返回json数据中的name
title: '物品名称', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'brand', // 返回json数据中的name
title: '物品品牌', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'model', // 返回json数据中的name
title: '规格型号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'goodsClass.name', // 返回json数据中的name
title: '物品类别', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'unit', // 返回json数据中的name
title: '物品单位', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'remark', // 返回json数据中的name
title: '备注', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
}
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table_goods");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
//绑定选中事件、取消事件、全部选中、全部取消
$table.on('check.bs.table check-all.bs.table uncheck.bs.table uncheck-all.bs.table', function (e, rows) {
var ids = $.map(!$.isArray(rows) ? [rows] : rows, function (row) {
return row.id;
});
func = $.inArray(e.type, ['check', 'check-all']) > -1 ? 'union' : 'difference';
selectionIds = _[func](selectionIds, ids);
});
initTreeView();
});
//选中事件操作数组
var union = function(array,ids){
$.each(ids, function (i, id) {
if($.inArray(id,array)==-1){
array[array.length] = id;
}
});
return array;
};
//取消选中事件操作数组
var difference = function(array,ids){
$.each(ids, function (i, id) {
var index = $.inArray(id,array);
if(index!=-1){
array.splice(index, 1);
}
});
return array;
};
var _ = {"union":union,"difference":difference};
//表格分页之前处理多选框数据
function responseHandler(res) {
$.each(res.rows, function (i, row) {
row.checkStatus = $.inArray(row.id, selectionIds) != -1; //判断当前行的数据id是否存在与选中的数组存在则将多选框状态变为true
});
return res;
}
</script>
<div class="modal fade" id="subDetailModal">
<div class="modal-dialog modal-xlg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">选择物品信息</h4>
</div>
<div class="modal-body " style="width:100%">
<div id="alertDiv"></div>
<div class="row">
<div class="col-lg-3 col-md-4">
<input type="hidden" id="classid" name="classid" class="form-control">
<div id="tree" style="height:550px;overflow:auto; "></div>
</div>
<div class="col-lg-9 col-md-8">
<%-- <div class="btn-group" style="width: 220px;padding-bottom:10px;">--%>
<%-- <security:authorize buttonUrl="sparepart/goods/add.do">--%>
<%-- <button type="button" class="btn btn-default btn-sm" onclick="addGoodsFun();"><i class="fa fa-plus"></i> 新增物品</button>--%>
<%-- </security:authorize>--%>
<%-- </div>--%>
<div class="form-group pull-right form-inline" >
<div class="input-group input-group-sm" style="width: 250px;">
<input type="text" id="search_goodsName" name="search_goodsName" class="form-control pull-right" placeholder="物品名称">
<div class="input-group-btn">
<button class="btn btn-default" onclick="doSearchGoods();"><i class="fa fa-search"></i></button>
</div>
</div>
</div>
<!-- <div class="box box-primary box-solid collapsed-box" id="searchBox" collapsed>
<div class="box-header">
tools box
<div class="pull-right box-tools">
<button type="button" class="btn btn-primary btn-sm pull-right" data-widget="collapse"
style="margin-right: 5px;">
<i class="fa fa-plus"></i></button>
</div>
/. tools
<i class="fa fa-search"></i>
</div>
<div class="box-body collapse" >
<form class="form-horizontal " style="padding:0;">
<div class="form-group" style="margin-right: 20px;">
<label class="control-label col-sm-2">工艺段</label>
<div class="col-sm-4">
<select class="form-control select2 " id="processSection" name ="processSection" style="width: 170px;"></select>
</div>
<label class="control-label col-sm-2 ">名称</label>
<div class="col-sm-4">
<input type="text" id="search_name" name="search_name" class="form-control input-sm" placeholder="名称" style="width:170px;">
</div>
</div>
<div class="form-group" style="margin-right: 20px;">
<label class="col-sm-2 control-label">只看选中</label>
<div class="col-sm-4">
<div class="switch" data-on="primary" data-off="info">
<input id ="switchBtn" type="checkbox" />
</div>
</div>
<div class=" col-sm-6 button-group" style="padding: 0;">
<button type ="button" class="btn btn-default btn-sm pull-right" onclick="doSearchEqu();"><i class="fa fa-search"> 搜索</i></button>
</div>
</div>
</form>
</div>
</div> -->
<div>
<table id="table_goods"></table>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="doSelectGoods()">确认</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,273 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<script type="text/javascript">
var doSearchGoods = function() {
$("#table_goods").bootstrapTable('refresh');
};
function doSelectGoods() {
//var checkItems = $("#table_goods").bootstrapTable('getAllSelections');
var datas="";
datas_name="";
$.each(selectionIds, function(index, item){
if(datas!=""){
datas+=",";
}
datas+=item;
});
//调用上一界面方法完成选择
doFinishSelectSubscribeDetail(datas);
closeModal("subDetailModal");
};
var addGoodsFun = function() {
$.post(ext.contextPath + '/sparepart/goods/goodsAddInSelects.do', {} , function(data) {
$("#goodsAddDiv").html(data);
openModal('subGoodsModal');
});
};
function stateFormatter(value, row, index) {
var flag=false;
$.each(eval('${goodsIds}'), function(index, item){
if(row.goodsId==item.id){
flag=true;
}
});
if (flag)
return {
checked : true//设置选中
};
return value;
}
var $table;
var switchStatus=false;
var selectionIds = []; //保存选中ids
function initialSelectionIds(){
var check_array =eval('${goodsIds}');
if(check_array!=null&& check_array.length>0){
selectionIds =new Array(check_array.length);
for(var i=0;i<check_array.length;i++){
selectionIds[i]=check_array[i].id;
}
}
}
function getCheckedIds(){
var ids="";
var check_array =eval('${goodsIds}');
$.each(check_array, function(index, item){
if(ids!=""){
ids+=",";
}
ids+=item.id;
});
return ids;
}
function queryParams(params) {
var temp={
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
subscribe_id: $('#search_goodsName').val(),
contractDetail:'${param.contractId}',
pids:'${param.subscribeId}',
};
/* var status =$('#switchBtn').bootstrapSwitch('state')
if(status){
temp.checkedIds=getCheckedIds();
} */
return temp;
}
$(function() {
$("#search_goodsName").keyup(function(){
if (event.keyCode == 13) {
event.preventDefault();
//回车查询
doSearchGoods();
event.stopPropagation();
}
})
initialSelectionIds();
$table=$("#table_goods").bootstrapTable({
url: ext.contextPath + '/sparepart/subscribe/getSubscribeDetailList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams:queryParams,
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
columns: [
{
checkbox: true, // 显示一个勾选框
//formatter: stateFormatter
formatter: function (i,row) { // 每次加载 checkbox 时判断当前 row 的 id 是否已经存在全局 Set() 里
if($.inArray(row.goodsId,Array.from(selectionIds))!=-1){ // 因为 Set是集合,需要先转换成数组
return {
checked : true // 存在则选中
}
}
}
},{
field: 'subscribeId', // 返回json数据中的name
title: '申购单号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'goods.name', // 返回json数据中的name
title: '物品名称', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'goods.brand', // 返回json数据中的name
title: '物品品牌', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'goods.model', // 返回json数据中的name
title: '规格型号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'goods.goodsClass.name', // 返回json数据中的name
title: '物品类别', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.unit', // 返回json数据中的name
title: '物品单位', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'remark', // 返回json数据中的name
title: '备注', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
}
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table_goods");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
//绑定选中事件、取消事件、全部选中、全部取消
$table.on('check.bs.table check-all.bs.table uncheck.bs.table uncheck-all.bs.table', function (e, rows) {
var ids = $.map(!$.isArray(rows) ? [rows] : rows, function (row) {
return row.goodsId;
});
func = $.inArray(e.type, ['check', 'check-all']) > -1 ? 'union' : 'difference';
selectionIds = _[func](selectionIds, ids);
});
});
//选中事件操作数组
var union = function(array,ids){
$.each(ids, function (i, id) {
if($.inArray(id,array)==-1){
array[array.length] = id;
}
});
return array;
};
//取消选中事件操作数组
var difference = function(array,ids){
$.each(ids, function (i, id) {
var index = $.inArray(id,array);
if(index!=-1){
array.splice(index, 1);
}
});
return array;
};
var _ = {"union":union,"difference":difference};
//表格分页之前处理多选框数据
function responseHandler(res) {
$.each(res.rows, function (i, row) {
row.checkStatus = $.inArray(row.goodsId, selectionIds) != -1; //判断当前行的数据id是否存在与选中的数组存在则将多选框状态变为true
});
return res;
}
</script>
<div class="modal fade" id="subDetailModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">选择历史订单物品信息</h4>
</div>
<div class="modal-body " style="width:100%">
<div id="alertDiv"></div>
<div class="form-group pull-right form-inline" >
<div class="input-group input-group-sm" style="width: 250px;">
<input type="text" id="search_goodsName" name="search_goodsName" class="form-control pull-right" placeholder="申购单号">
<div class="input-group-btn">
<button class="btn btn-default" onclick="doSearchGoods();"><i class="fa fa-search"></i></button>
</div>
</div>
</div>
<!-- <div class="box box-primary box-solid collapsed-box" id="searchBox" collapsed>
<div class="box-header">
tools box
<div class="pull-right box-tools">
<button type="button" class="btn btn-primary btn-sm pull-right" data-widget="collapse"
style="margin-right: 5px;">
<i class="fa fa-plus"></i></button>
</div>
/. tools
<i class="fa fa-search"></i>
</div>
<div class="box-body collapse" >
<form class="form-horizontal " style="padding:0;">
<div class="form-group" style="margin-right: 20px;">
<label class="control-label col-sm-2">工艺段</label>
<div class="col-sm-4">
<select class="form-control select2 " id="processSection" name ="processSection" style="width: 170px;"></select>
</div>
<label class="control-label col-sm-2 ">名称</label>
<div class="col-sm-4">
<input type="text" id="search_name" name="search_name" class="form-control input-sm" placeholder="名称" style="width:170px;">
</div>
</div>
<div class="form-group" style="margin-right: 20px;">
<label class="col-sm-2 control-label">只看选中</label>
<div class="col-sm-4">
<div class="switch" data-on="primary" data-off="info">
<input id ="switchBtn" type="checkbox" />
</div>
</div>
<div class=" col-sm-6 button-group" style="padding: 0;">
<button type ="button" class="btn btn-default btn-sm pull-right" onclick="doSearchEqu();"><i class="fa fa-search"> 搜索</i></button>
</div>
</div>
</form>
</div>
</div> -->
<div>
<div id="table_goods" style="height:230px;overflow:auto;width:100%"></div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="doSelectGoods()">确认</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,156 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<%@page import="java.util.Date" %>
<%@page import="java.text.SimpleDateFormat" %>
<%@ page import="com.sipai.tools.SessionManager"%>
<%
SessionManager sessionManager = new SessionManager();
%>
<script type="text/javascript">
var checkedItem="";
function doselect() {
if(checkedItem!= null && checkedItem!=""){
console.info(checkedItem)
$('#goodsId' ).val(checkedItem.id);
$('#goodsName').val(checkedItem.name);
$('#model' ).val(checkedItem.model);
$('#brand').val(checkedItem.brand);
$('#unit').val(checkedItem.unit);
closeModal("Goods4SelectModal");
}else{
showAlert('d','尚未选择物品!','alertDiv_MaintainPlanSelect');
}
};
var $table;
//显示已经勾选的数据
function stateFormatter(value, row, index) {
var flag=false;
if(row.id=='${param.goodsId}'){
flag=true;
checkedItem = row;
}
if (flag)
return {
checked : true//设置选中
};
return value;
}
$(function() {
$table = $("#table_goods").bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/goods/getList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
search_name: $('#search_name').val(),
}
},
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
columns: [
{
checkbox: true, // 显示一个勾选框
formatter: stateFormatter
},
{
field: 'number', // 返回json数据中的name
title: '物品编号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},
{
field: 'name', // 返回json数据中的name
title: '物品名称', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},
{
field: 'brand', // 返回json数据中的name
title: '物品品牌', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},
{
field: 'model', // 返回json数据中的name
title: '规格型号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},
{
field: 'goodsClass.name', // 返回json数据中的name
title: '物品类别', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},
{
field: 'unit', // 返回json数据中的name
title: '物品单位', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'remark', // 返回json数据中的name
title: '备注', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
}
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table_goods");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
});
//绑定选中事件、取消事件、全部选中、全部取消
$table.on('check.bs.table check-all.bs.table uncheck.bs.table uncheck-all.bs.table', function (e,rows, obj) {
if('check'==e.type){
$('#table_goods .checked').removeClass("checked");
obj.parent().addClass("checked");
checkedItem = rows;
}else{
obj.parent().removeClass("checked");
checkedItem = "";
}
});
</script>
<div class="modal fade" id="Goods4SelectModal" >
<div class="modal-dialog modal-md" >
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">选择物品</h4>
</div>
<div class="modal-body">
<div id="alertDiv_MaintainPlanSelect"></div>
<div id="mainAlertdiv"></div>
<div id="menu4SelectDiv"></div>
<div id="modal-body">
<div class="table-scrollable">
<table class="table table-bordered table-striped" style="overflow:auto;width:100%" id="table_goods"></table>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default pull-left" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="doselect()" id="btn_save">确定</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,284 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
function dosave() {
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/sparepart/goods/save.do", $("#subForm").serialize(), function(data) {
if (data.res == 1){
document.getElementById("subModal").setAttribute("class", "modal hidden fade");
$(".modal-backdrop").remove();
stopBubbleDefaultEvent();
$.post(ext.contextPath + '/sparepart/goods/edit.do', {id:data.id} , function(data) {
$("#goodsEditDiv").html(data);
openModal('subModal');
});
if ('${subscribeDetailIds}' != null) {
// 更新数据接口
$.post(ext.contextPath + '/sparepart/subscribe/doDetailUpdate.do', {subscribeDetailIds: '${subscribeDetailIds}', goodsId: data.id} , function(data) {
$("#table").bootstrapTable('refresh');
});
}
$("#table").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','保存失败');
}else if(data.res == 2){
showAlert('d','编号重复');
}else{
showAlert('d',data.res);
}
},'json');
}
}
//选择设备,可多选
var showEquipment4SelectsFun = function(formId,hiddenId,textId) {
var equipmentIds = $('#equipmentIds').val();
$.post(ext.contextPath + '/sparepart/goods/showEquipmentCardForGoodsSelects.do', {formId:formId,hiddenId:hiddenId,textId:textId,equipmentIds:equipmentIds} , function(data) {
$("#equ4SelectDiv").html(data);
openModal("equipment4SelectModal");
});
};
//输入框验证
$("#subForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
name: {
validators: {
notEmpty: {
message: '物品名称不能为空'
}
}
},
model: {
validators: {
notEmpty: {
message: '物品规格型号不能为空'
}
}
},
unit: {
validators: {
notEmpty: {
message: '物品单位不能为空'
}
}
},
pname: {
validators: {
notEmpty: {
message: '物品类别不能为空'
}
}
},
number: {
validators: {
notEmpty: {
message: '物品编号不能为空'
}
}
},
/* maxReserve: {
validators: {
notEmpty: {
message: '最大存储量不能为空'
},
greaterThan:{
message: '请输入大于1的数字'
}
}
},
minReserve: {
validators: {
notEmpty: {
message: '最小存储量不能为空'
},
greaterThan:{
message: '请输入大于0的数字'
}
}
}, */
}
});
//选择物品类别
var showGoodsClass4SelectFun = function() {
$.post(ext.contextPath + '/sparepart/goodsClass/showList4Select.do', {formId:"subForm",hiddenId:"pid",textId:"pname"} , function(data) {
$("#fault4SelectDiv").html(data);
openModal('fault4SelectModal');
});
};
//生成编号
var generationNumber = function() {
var goodsClassId = $("#pid").val();
var goodsName = $("#name").val();
$.post(ext.contextPath + '/sparepart/goods/generationNumber.do', {goodsClassId:goodsClassId,goodsName:goodsName} , function(data) {
$("#number").val(data);
});
};
$(function() {
var goodsClassId = $("#pid").val();
if(goodsClassId!="" && goodsClassId!=null && goodsClassId!=undefined){
generationNumber();
}
})
//点击空白隐藏树
$(document).click(function (e) {
var tbody = $('#tbody'); // 设置目标区域
if (!tbody.is(e.target) && tbody.has(e.target).length === 0) {
tbody.hide()
}
})
function Google() {
setTimeout(() => {
if ($("#name").val() == "") {
$("#tbody").hide()
} else {
$("#tbody").show()
//获取到文本框内容
let obj = document.getElementById("name");
let tbody = document.getElementById("tbody");
let name = obj.value; //获得i1中的值
$.post(ext.contextPath + '/sparepart/goods/getDataList.do', {name: name}, function (data) {
var dataStr = eval("(" + data + ")");
if (dataStr.rows.length == 0) {
$("#tbody").hide()
} else {
$("#tbody").show()
}
//删除掉原有表格的数据
removeTbody();
for (var i = 1; i < dataStr.rows.length; i++) {
let tr = document.createElement("tr");
let td = document.createElement("td");
td.innerText = dataStr.rows[i].name + "( " + dataStr.rows[i].model + " )";
td.setAttribute("data-v", dataStr.rows[i].name);
tr.appendChild(td); //将td放入tr中;
tbody.appendChild(tr); //将tr放入div中
//手动添加事件(鼠标移入字体和背景变色)
tr.onmouseover = function () {
// this.style.color = "blue";
this.style.backgroundColor = "lightgray";
}
tr.onmouseout = function () {
this.style.color = "";
this.style.backgroundColor = "";
}
td.onclick = function () {
$("#name").val(this.getAttribute("data-v"))
$("#tbody").hide()
}
}
});
}
}, 130)
}
function removeTbody() {
$("#tbody").find("td").remove();
}
</script>
<div class="modal fade" id="subModal">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">新增物品信息</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm">
<input type="hidden" class="form-control" id="id" name ="id" value="${id}">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<div class="form-group">
<label class="col-sm-2 control-label">*物品类别</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="pname" placeholder="请选择" autocomplete="off"
onclick="showGoodsClass4SelectFun();" value="${goodsClass.name}" readonly>
<input id="pid" name="classId" type="hidden" value="${goodsClass.id}"/>
</div>
<label class="col-sm-2 control-label">*物品编号</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="number" name ="number" placeholder="编号" autocomplete="off" value="">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*物品名称</label>
<div class="col-sm-4">
<input type="text" class="form-control" onkeyup="Google()" id="name" name ="name" placeholder="名称" autocomplete="off" onchange="generationNumber()" value="${subscribeDetail.detailGoodsName}">
<table style="display: block;">
<tbody id="tbody" style="
/* border: 1px gray solid; */
/* width: 204px; */
border: 1px solid #D6D6D6;
display: none;
/* margin-top: 5px; */
width: 270px;
height: 200px;
overflow-x: hidden;
overflow-y: auto;
position: absolute;
z-index: 1;
background: white;
padding: 6px 12px 6px;"
></tbody>
</table>
</div>
<label class="col-sm-2 control-label">物品品牌</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="brand" name ="brand" placeholder="品牌" value="${subscribeDetail.brand}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*规格型号</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="model" name ="model" placeholder="型号" value="${subscribeDetail.detailGoodsModel}">
</div>
<label class="col-sm-2 control-label">*物品单位</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="unit" name ="unit" placeholder="单位">
</div>
</div>
<%-- <div class="form-group">--%>
<%-- <label class="col-sm-2 control-label">最大存储量</label>--%>
<%-- <div class="col-sm-6">--%>
<%-- <input type="number" class="form-control" id="maxReserve" name ="maxReserve" placeholder="最大存储量" step="0.1" min="1" value=0>--%>
<%-- </div>--%>
<%-- </div>--%>
<%-- <div class="form-group">--%>
<%-- <label class="col-sm-2 control-label">最小存储量</label>--%>
<%-- <div class="col-sm-6">--%>
<%-- <input type="number" class="form-control" id="minReserve" name ="minReserve" placeholder="最小存储量" step="0.1" min="0" value=0>--%>
<%-- </div>--%>
<%-- </div>--%>
<!-- <div class="form-group">
<label class="col-sm-2 control-label">所属设备</label>
<div class="col-sm-10">
<input id="equipmentIds" name="equipmentIds" type="hidden" value="" />
<input class="form-control" id="equipname" name ="equipname" onclick="showEquipment4SelectsFun('subForm','equipmentIds','equipname');" placeholder="请点击选择" readonly>
</div>
</div> -->
<div class="form-group">
<label class="col-sm-2 control-label">备注</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" id ="remark" name ="remark" placeholder="备注..."></textarea>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="dosave()" id="btn_save">保存</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,207 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
function dosaveGoods() {
$("#subGoodsForm").bootstrapValidator('validate');//提交验证
if ($("#subGoodsForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/sparepart/goods/save.do", $("#subGoodsForm").serialize(), function(data) {
if (data.res == 1){
//新增物品后默认选中
selectionIds.push(data.id);
closeModal('subGoodsModal');
$("#table_goods").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}
}
//选择设备,可多选
var showEquipment4SelectsFun = function(formId,hiddenId,textId) {
var equipmentIds = $('#equipmentIds').val();
$.post(ext.contextPath + '/sparepart/goods/showEquipmentCardForGoodsSelects.do', {formId:formId,hiddenId:hiddenId,textId:textId,equipmentIds:equipmentIds} , function(data) {
$("#equ4SelectDiv").html(data);
openModal("equipment4SelectModal");
});
};
//输入框验证
$("#subGoodsForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
/* brand: {
validators: {
notEmpty: {
message: '物品品牌不能为空'
},
},
}, */
name: {
validators: {
notEmpty: {
message: '物品名称不能为空'
}
}
},
model: {
validators: {
notEmpty: {
message: '物品规格型号不能为空'
}
}
},
unit: {
validators: {
notEmpty: {
message: '物品单位不能为空'
}
}
},
pname: {
validators: {
notEmpty: {
message: '物品类别不能为空'
}
}
},
maxReserve: {
validators: {
notEmpty: {
message: '最大存储量不能为空'
},
greaterThan:{
message: '请输入大于1的数字'
}
}
},
minReserve: {
validators: {
notEmpty: {
message: '最小存储量不能为空'
},
greaterThan:{
message: '请输入大于0的数字'
}
}
},
}
});
//选择物品类别
var showGoodsClass4SelectFun = function() {
var goodsClassId = $("#goodsClassId").val();
$.post(ext.contextPath + '/sparepart/goodsClass/showList4Select.do', {formId:"subGoodsForm",hiddenId:"goodsClassId",textId:"pname",goodsClassId:goodsClassId} , function(data) {
$("#fault4SelectDiv").html(data);
openModal('fault4SelectModal');
});
};
//生成编号
var generationNumber = function() {
var goodsClassId = $("#goodsClassId").val();
var goodsName = $("#name").val();
$.post(ext.contextPath + '/sparepart/goods/generationNumber.do', {goodsClassId:goodsClassId,goodsName:goodsName} , function(data) {
$("#number").val(data);
});
};
$(function() {
var goodsClassId = $("#goodsClassId").val();
if(goodsClassId!="" && goodsClassId!=null && goodsClassId!=undefined){
generationNumber();
}
})
</script>
<div class="modal fade" id="subGoodsModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">新增物品信息</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subGoodsForm -->
<form class="form-horizontal" id="subGoodsForm">
<input type="hidden" class="form-control" id="id" name ="id" value="${id}">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<div class="form-group">
<label class="col-sm-2 control-label">*物品类别</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="pname" placeholder="请选择" autocomplete="off" onclick="showGoodsClass4SelectFun();" value="${goodsClass.name}" readonly>
<input id="goodsClassId" name="classId" type="hidden" value="${goodsClass.id}"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*物品编号</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="number" name ="number" placeholder="编号" autocomplete="off" value="${id}" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*物品名称</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="name" name ="name" placeholder="名称" autocomplete="off" onchange="generationNumber()">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">物品品牌</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="brand" name ="brand" placeholder="品牌" >
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*规格型号</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="model" name ="model" placeholder="型号" >
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*物品单位</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="unit" name ="unit" placeholder="单位" >
</div>
</div>
<div class="form-group" >
<label class="col-sm-2 control-label">最大存储量</label>
<div class="col-sm-6">
<input type="number" class="form-control" id="maxReserve" name ="maxReserve" placeholder="最大存储量" step="0.1" min="1" value=10>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">最小存储量</label>
<div class="col-sm-6">
<input type="number" class="form-control" id="minReserve" name ="minReserve" placeholder="最小存储量" step="0.1" min="0" value=0>
</div>
</div>
<!-- <div class="form-group">
<label class="col-sm-2 control-label">所属设备</label>
<div class="col-sm-10">
<input id="equipmentIds" name="equipmentIds" type="hidden" value="" />
<input class="form-control" id="equipname" name ="equipname" onclick="showEquipment4SelectsFun('subGoodsForm','equipmentIds','equipname');" placeholder="请点击选择" readonly>
</div>
</div> -->
<div class="form-group">
<label class="col-sm-2 control-label">备注</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" id ="remark" name ="remark" placeholder="备注..."></textarea>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="dosaveGoods()" id="btn_save">保存</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,53 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<script type="text/javascript">
$(function() {
$.post(ext.contextPath + '/sparepart/goodsClass/getGoodsClassJson.do', {ng:''} , function(data) {
console.info(data)
if(data.length>0){
$('#fault_select_tree').treeview({
data: data,
});
/* var goodsClassId = "${goodsClassId}";
if(goodsClassId!="" && goodsClassId!=null && goodsClassId!=undefined){
$("#fault_select_tree").treeview('selectNode',[goodsClassId,{silent:true}]);//默认选中
} */
$('#fault_select_tree').on('nodeSelected', function(event, data) {
$('#${param.formId} #${param.hiddenId}' ).val(data.id);
$('#${param.formId} #${param.textId}').val(data.text);
//物品生成编号
try{
if($.isFunction(generationNumber)){
console.log('是函数!');
generationNumber();
}
}catch(e){
console.log('不是函数或者函数不存在!');
}
closeModal("fault4SelectModal");
});
}
},'json');
});
</script>
<div class="modal fade" id="fault4SelectModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">选择物品类型</h4>
</div>
<div class="modal-body">
<div id="fault_select_tree" style="height:430px;overflow:auto;width:100%"></div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<!-- <button type="button" class="btn btn-primary" onclick="selectMenu()">保存</button> -->
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,106 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
var showGoodsClass4SelectFun = function() {
$.post(ext.contextPath + '/sparepart/goodsClass/showList4Select.do', {formId:"subForm",hiddenId:"pid",textId:"pname"} , function(data) {
$("#fault4SelectDiv").html(data);
openModal('fault4SelectModal');
});
};
function dosave() {
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {
$.post(ext.contextPath + "/sparepart/goodsClass/save.do", $("#subForm").serialize(), function(result) {
if (result == 1) {
initTreeView();
}else{
showAlert('d','保存失败');
}
});
}
}
$(function() {
$("#active").select2({minimumResultsForSearch: 10});
$("#subForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
name: {
validators: {
notEmpty: {
message: '名称不能为空'
}
}
},
/* pname: {
validators: {
notEmpty: {
message: '上级菜单不能为空'
}
}
}, */
}
});
});
</script>
<div class="box box-primary" >
<div class="box-header with-border">
<h3 class="box-title">新增</h3>
<div class="box-tools pull-right">
<a onclick="dosave()" class="btn btn-box-tool" data-toggle="tooltip" title="保存"><i class="glyphicon glyphicon-floppy-disk"></i></a>
</div>
</div>
<!-- /.box-header -->
<div class="box-body ">
<form class="form-horizontal " id="subForm">
<input id="id" name="id" type="hidden" />
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<div id="fault4SelectDiv"></div>
<div class="form-group">
<label class="col-sm-2 control-label">名称</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="name" name ="name" placeholder="名称" ">
</div>
<label class="col-sm-2 control-label">上级菜单</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="pname" name ="pname" placeholder="上级菜单" onclick="showGoodsClass4SelectFun();" value="${pname}"></input>
<input id="pid" name="pid" type="hidden" value="${param.pid}"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">顺序</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="morder" name ="morder" placeholder="顺序" value=0>
</div>
<label class="col-sm-2 control-label">状态</label>
<div class="col-sm-4">
<select id ="active" name="active" class="form-control select2">
<option value=true selected="selected">启用</option>
<option value=false >禁用</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">编号</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="goodsClassCode" name="goodsClassCode" placeholder="编号"
value="">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">描述</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" id ="describe" name ="describe" placeholder="描述..."></textarea>
</div>
</div>
</form>
</div>
</div>

View File

@ -0,0 +1,144 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
var showGoodsClass4SelectFun = function() {
$.post(ext.contextPath + '/sparepart/goodsClass/showList4Select.do', {formId:"subForm",hiddenId:"pid",textId:"pname"} , function(data) {
$("#fault4SelectDiv").html(data);
openModal('fault4SelectModal');
});
};
function doupdate() {
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {
$.post(ext.contextPath + "/sparepart/goodsClass/update.do", $("#subForm").serialize(), function(result) {
if (result == 1) {
showAlert('s','保存成功');
}else{
showAlert('d','保存失败');
}
});
}
}
function dodel() {
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete) {
if (willDelete) {
$.post(ext.contextPath + '/sparepart/goodsClass/delete.do', $("#subForm").serialize(), function(data) {
if(data>0){
initTreeView();
}else{
showAlert('d','删除失败');
}
},'json');
}
});
}
$(function() {
$("#active").select2({minimumResultsForSearch: 10}).val("${goodsClass.active}").trigger("change");
$("#subForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
name: {
validators: {
notEmpty: {
message: '名称不能为空'
}
}
},
/* pname: {
validators: {
notEmpty: {
message: '上级菜单不能为空'
}
}
}, */
}
});
});
</script>
<div class="box box-primary" >
<div class="box-header with-border">
<h3 class="box-title">编辑</h3>
<div class="box-tools pull-right">
<a onclick="doupdate()" class="btn btn-box-tool" data-toggle="tooltip" title="保存"><i class="glyphicon glyphicon-floppy-disk"></i></a>
<a onclick="dodel()" class="btn btn-box-tool" data-toggle="tooltip" title="删除"><i class="glyphicon glyphicon-trash"></i></a>
</div>
</div>
<!-- /.box-header -->
<div class="box-body ">
<form class="form-horizontal " id="subForm">
<input id="id" name="id" type="hidden" value="${goodsClass.id}"/>
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<div id="fault4SelectDiv"></div>
<div class="form-group">
<label class="col-sm-2 control-label">名称</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="name" name ="name" placeholder="名称" value="${goodsClass.name }">
</div>
<label class="col-sm-2 control-label">上级菜单</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="pname" name ="pname" placeholder="上级菜单" onclick="showGoodsClass4SelectFun();" value="${goodsClass.pname}">
<input id="pid" name="pid" type="hidden" value="${goodsClass.pid}"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">顺序</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="morder" name ="morder" placeholder="顺序" value="${goodsClass.morder}">
</div>
<label class="col-sm-2 control-label">启用</label>
<div class="col-sm-4">
<select id ="active" name="active" class="form-control select2">
<option value=true >启用</option>
<option value=false >禁用</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">编号</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="goodsClassCode" name="goodsClassCode" placeholder="编号"
value="${goodsClass.goodsClassCode }">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">描述</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" id ="describe" name ="describe" placeholder="描述...">${goodsClass.describe}</textarea>
</div>
</div>
</form>
</div>
</div>

View File

@ -0,0 +1,91 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ page import="com.sipai.entity.base.ServerObject"%>
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security"%>
<!DOCTYPE html>
<!-- <html lang="zh-CN"> -->
<!-- BEGIN HEAD -->
<head>
<title><%= ServerObject.atttable.get("TOPTITLE")%></title>
<!-- 引用页头及CSS页-->
<jsp:include page="/jsp/inc.jsp"></jsp:include>
<script type="text/javascript">
var addFun = function() {
var node=$('#tree').treeview('getSelected');
var pid="-1";
console.info(node)
if(node!=null && node.length>0){
pid=node[0].id;
}
$.post(ext.contextPath + '/sparepart/goodsClass/add.do', {pid:pid} , function(data) {
$("#faultBox").html(data);
});
};
var editFun = function(id) {
$.post(ext.contextPath + '/sparepart/goodsClass/edit.do', {id:id} , function(data) {
$("#faultBox").html(data);
});
};
var initTreeView = function() {
$.post(ext.contextPath + '/sparepart/goodsClass/getGoodsClassJson.do', function(data) {
$('#tree').treeview({data: data});
$('#tree').on('nodeSelected', function(event, data) {
editFun(data.id);
});
},'json');
$("#faultBox").html("");
};
$(function() {
initTreeView();
});
</script>
</head>
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
<div class="wrapper">
<!-- 引用top -->
<%-- <jsp:include page="/jsp/top.jsp"></jsp:include> --%>
<!-- 菜单栏 -->
<%-- <jsp:include page="/jsp/left.jsp"></jsp:include> --%>
<div class="content-wrapper">
<!-- Content Header (Page header) -->
<section class="content-header">
<h1 id ="head_title"></h1>
<ol class="breadcrumb">
<li><a id ='head_firstlevel' href="#"><i class="fa fa-dashboard"></i> </a></li>
<!-- <li class="active">Here</li> -->
</ol>
</section>
<!-- Main content -->
<section class="content container-fluid">
<div id="mainAlertdiv"></div>
<div id="subDiv"></div>
<div class="row">
<div class="col-md-2">
<div class="box box-solid">
<div class="box-header with-border">
<h3 class="box-title">物品类别</h3>
<div class="box-tools">
<button type="button" class="btn btn-box-tool" onclick="addFun();"><i class="fa fa-plus"></i>
</button>
</div>
</div>
<div class="box-body no-padding">
<div id="tree" style="height:550px;overflow:auto; "></div>
</div>
<!-- /.box-body -->
</div>
</div>
<div class="col-md-10" id="faultBox"></div>
</div>
</section>
<!-- /.content -->
</div>
<%-- <jsp:include page="/jsp/bottom.jsp"></jsp:include> --%>
<%-- <jsp:include page="/jsp/side.jsp"></jsp:include> --%>
</div>
</body>
</html>

View File

@ -0,0 +1,229 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<script type="text/javascript">
var doSearchGoods = function() {
$("#table_goodsDetail").bootstrapTable('refresh');
};
function doSelectGoods() {
var datas="";
datas_name="";
$.each(selectionIds, function(index, item){
if(datas!=""){
datas+=",";
}
datas+=item;
});
console.log("datas value is="+datas);
//doFinishSelects(datas);
doFinishGoodsSelects(datas);
closeModal("subGoodsDetailModal");
};
var $table;
var switchStatus=false;
var selectionIds = []; //保存选中ids
var dosearchTable = function() {
$("#table_goodsDetail").bootstrapTable('refresh');
};
function stateFormatter(value, row, index) {
var flag=false;
$.each(eval('${goodsIds}'), function(index, item){
if(row.id==item.id){
flag=true;
}
});
if (flag)
return {
checked : true//设置选中
};
return value;
}
var $table;
var switchStatus=false;
var selectionIds = []; //保存选中ids
function initialSelectionIds(){
var check_array =eval('${goodsIds}');
if(check_array!=null&& check_array.length>0){
selectionIds =new Array(check_array.length);
for(var i=0;i<check_array.length;i++){
selectionIds[i]=check_array[i].id;
}
}
}
function getCheckedIds(){
var ids="";
var check_array =eval('${goodsIds}');
$.each(check_array, function(index, item){
if(ids!=""){
ids+=",";
}
ids+=item.id;
});
return ids;
}
var companyId;
$(function() {
//$("#").attr("onsubmit","return false;");
$("#search_name").keyup(function(){
if (event.keyCode == 13) {
event.preventDefault();
//回车查询
doSearchGoods();
event.stopPropagation();
}
})
initialSelectionIds();
$table=$("#table_goodsDetail").bootstrapTable({
url: ext.contextPath + '/sparepart/goods/getList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
search_name: $('#search_name').val(),
}
},
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
columns: [
{
checkbox: true, // 显示一个勾选框
//formatter: stateFormatter
formatter: function (i,row) { // 每次加载 checkbox 时判断当前 row 的 id 是否已经存在全局 Set() 里
if($.inArray(row.id,Array.from(selectionIds))!=-1){ // 因为 Set是集合,需要先转换成数组
return {
checked : true // 存在则选中
}
}
}
},{
field: 'number', // 返回json数据中的name
title: '物品编号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'name', // 返回json数据中的name
title: '物品名称', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'brand', // 返回json数据中的name
title: '物品品牌', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'model', // 返回json数据中的name
title: '规格型号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'goodsClass.name', // 返回json数据中的name
title: '物品类别', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'unit', // 返回json数据中的name
title: '物品单位', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table_goodsDetail");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
//绑定选中事件、取消事件、全部选中、全部取消
$table.on('check.bs.table check-all.bs.table uncheck.bs.table uncheck-all.bs.table', function (e, rows) {
var ids = $.map(!$.isArray(rows) ? [rows] : rows, function (row) {
return row.id;
});
func = $.inArray(e.type, ['check', 'check-all']) > -1 ? 'union' : 'difference';
selectionIds = _[func](selectionIds, ids);
});
});
//选中事件操作数组
var union = function(array,ids){
$.each(ids, function (i, id) {
if($.inArray(id,array)==-1){
array[array.length] = id;
}
});
return array;
};
//取消选中事件操作数组
var difference = function(array,ids){
$.each(ids, function (i, id) {
var index = $.inArray(id,array);
if(index!=-1){
array.splice(index, 1);
}
});
return array;
};
var _ = {"union":union,"difference":difference};
//表格分页之前处理多选框数据
function responseHandler(res) {
$.each(res.rows, function (i, row) {
row.checkStatus = $.inArray(row.id, selectionIds) != -1; //判断当前行的数据id是否存在与选中的数组存在则将多选框状态变为true
});
return res;
}
</script>
<div class="modal fade" id="subGoodsDetailModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">物品明细</h4>
</div>
<div class="modal-body " style="width:100%">
<div id="alertDetailDiv"></div>
<div class="form-group form-inline" >
<div class="form-group form-inline pull-right">
<div class="input-group input-group-sm" style="width: 250px;">
<input type="text" id="search_name" name="search_name" class="form-control pull-right" placeholder="物品名称">
<div class="input-group-btn">
<button class="btn btn-default" onclick="doSearchGoods();"><i class="fa fa-search"></i></button>
</div>
</div>
</div>
</div>
<div>
<div id="table_goodsDetail" style="height:230px;overflow:auto;width:100%"></div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="doSelectGoods()">确认</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,441 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
function doupdate() {
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/sparepart/goods/update.do", $("#subForm").serialize(), function(data) {
if (data.res == 1){
document.getElementById("subModal").setAttribute("class", "modal hidden fade");
$(".modal-backdrop").remove();
$("#table").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}
}
//选择设备,可多选
var showEquipment4SelectsFun = function(formId,hiddenId,textId) {
var equipmentIds = $('#equipmentIds').val();
$.post(ext.contextPath + '/sparepart/goods/showEquipmentCardForGoodsSelects.do', {formId:formId,hiddenId:hiddenId,textId:textId,equipmentIds:equipmentIds} , function(data) {
$("#equ4SelectDiv").html(data);
openModal("equipment4SelectModal");
});
};
//输入框验证
$("#subForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
number: {
validators: {
notEmpty: {
message: '物品编号不能为空'
}
}
},
name: {
validators: {
notEmpty: {
message: '物品名称不能为空'
}
}
},
model: {
validators: {
notEmpty: {
message: '物品规格型号不能为空'
}
}
},
unit: {
validators: {
notEmpty: {
message: '物品单位不能为空'
}
}
},
pname: {
validators: {
notEmpty: {
message: '物品类别不能为空'
}
}
},
/* maxReserve: {
validators: {
notEmpty: {
message: '最大存储量不能为空'
}
}
},
minReserve: {
validators: {
notEmpty: {
message: '最小存储量不能为空'
}
}
}, */
}
});
//选择物品类别
var showGoodsClass4SelectFun = function() {
var goodsClassId = $("#pid").val();
$.post(ext.contextPath + '/sparepart/goodsClass/showList4Select.do', {formId:"subForm",hiddenId:"pid",textId:"pname",goodsClassId:goodsClassId} , function(data) {
$("#fault4SelectDiv").html(data);
openModal('fault4SelectModal');
});
};
//生成编号
var generationNumber = function() {
var goodsClassId = $("#pid").val();
var goodsName = $("#name").val();
$.post(ext.contextPath + '/sparepart/goods/generationNumber.do', {goodsClassId:goodsClassId,goodsName:goodsName} , function(data) {
$("#number").val(data);
});
};
var addReserveFun= function() {
var id=$('#id').val();
$.post(ext.contextPath + '/sparepart/goodsReserve/add.do' ,{pid: "${goods.id}", bizId: unitId}, function(data) {
$("#subReserveDiv").html(data);
openModal('subReserveModal');
});
};
var editReserveFun = function(id) {
$.post(ext.contextPath + '/sparepart/goodsReserve/edit.do', {id:id} , function(data) {
$("#subReserveDiv").html(data);
openModal('subReserveModal');
});
};
var deletesReserveFun = function() {
var checkedItems = $("#table_Reserve").bootstrapTable('getSelections');
var datas="";
$.each(checkedItems, function(index, item){
datas+=item.id+",";
});
if(datas==""){
showAlert('d','请先选择记录','mainAlertDetaildiv');
}else{
if(confirm("信息删除后不能恢复,请问要执行删除操作吗?")){
$.post(ext.contextPath + '/sparepart/goodsReserve/deletes.do', {ids:datas} , function(data) {
if(data>0){
$("#table_Reserve").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','mainAlertDetaildiv');
}
});
}
}
};
var deleteReserveFun = function(id) {
stopBubbleDefaultEvent();
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(willDelete =>{
if (willDelete) {
$.post(ext.contextPath + '/sparepart/goodsReserve/delete.do', {id : id}, function(data) {
if(data==1){
$("#table_Reserve").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','mainAlertdiv');
}
});
}
});
};
$(function () {
$("#table_Reserve").bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/goodsReserve/getList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20, 50], // 设置页面可以显示的数据条数
pageSize: 5, // 页面数据条数
pageNumber: 1, // 首页页码
paginationDetailHAlign: ' hidden',//去除分页的显示
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset / params.limit + 1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
bizId: unitId,
search_code: "${goods.id}"
}
},
onClickRow: function (row) {//单击行事件,执行查看功能
//viewFun(row.id);
},
columns: [
{
checkbox: true, // 显示一个勾选框
}, {
field: 'max', // 返回json数据中的name
title: '物品最大量', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
width: '20%'
}, {
field: 'maxStatus', // 返回json数据中的name
title: '启用状态', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
width: '10%',
formatter: function (value) {
if (value == 0) {
return "禁用";
} else if (value == 1) {
return "启用";
} else {
return "未知";
}
}
}, {
field: 'min', // 返回json数据中的name
title: '物品最小量', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
width: '20%'
}, {
field: 'minStatus', // 返回json数据中的name
title: '启用状态', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
width: '10%',
formatter: function (value) {
if (value == 0) {
return "禁用";
} else if (value == 1) {
return "启用";
} else {
return "未知";
}
}
}, {
field: 'company.name', // 返回json数据中的name
title: '所属厂', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
width: '20%'
}, {
title: "操作",
align: 'center',
valign: 'middle',
width: '20%', // 定义列的宽度单位为像素px
formatter: function (value, row, index) {
var buts = '';
buts += '<button class="btn btn-default btn-sm" title="编辑" onclick="editReserveFun(\'' + row.id + '\')"><i class="fa fa-edit"></i><span class="hidden-md hidden-lg"> 编辑</span></button>';
buts += '<button class="btn btn-default btn-sm" title="删除" onclick="deleteReserveFun(\'' + row.id + '\')"><i class="fa fa fa-trash-o"></i><span class="hidden-md hidden-lg">删除</span></button>';
buts = '<div class="btn-group" >' + buts + '</div>';
return buts;
}
}
],
onLoadSuccess: function () { //加载成功时执行
adjustBootstrapTableView("table_Detail");
},
onLoadError: function () { //加载失败时执行
console.info("加载数据失败");
},
});
});
//点击空白隐藏树
$(document).click(function (e) {
var tbody = $('#tbody'); // 设置目标区域
if (!tbody.is(e.target) && tbody.has(e.target).length === 0) {
tbody.hide()
}
})
function Google() {
if ($("#name").val() == "") {
$("#tbody").hide()
} else {
$("#tbody").show()
//获取到文本框内容
let obj = document.getElementById("name");
let tbody = document.getElementById("tbody");
let name = obj.value; //获得i1中的值
$.post(ext.contextPath + '/sparepart/goods/getDataList.do', {name: name}, function (data) {
var dataStr = eval("(" + data + ")");
if (dataStr.rows.length == 0) {
$("#tbody").hide()
} else {
$("#tbody").show()
}
//删除掉原有表格的数据
removeTbody();
for (var i = 1; i < dataStr.rows.length; i++) {
let tr = document.createElement("tr");
let td = document.createElement("td");
td.innerText = dataStr.rows[i].name + "( " + dataStr.rows[i].model + " )";
td.setAttribute("data-v", dataStr.rows[i].name);
tr.appendChild(td); //将td放入tr中;
tbody.appendChild(tr); //将tr放入div中
//手动添加事件(鼠标移入字体和背景变色)
tr.onmouseover = function () {
// this.style.color = "blue";
this.style.backgroundColor = "lightgray";
}
tr.onmouseout = function () {
this.style.color = "";
this.style.backgroundColor = "";
}
td.onclick = function () {
$("#name").val(this.getAttribute("data-v"))
$("#tbody").hide()
}
}
});
}
}
function removeTbody() {
$("#tbody").find("td").remove();
}
</script>
<div class="modal fade" id="subModal">
<div class="modal-dialog modal-xlg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">编辑物品信息</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm">
<input type="hidden" class="form-control" id="id" name ="id" value="${goods.id}">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<div class="form-group">
<label class="col-sm-2 control-label">*物品类别</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="pname" placeholder="请选择" onclick="showGoodsClass4SelectFun();" value="${goods.goodsClass.name}" readonly>
<input id="pid" name="classId" type="hidden" value="${goods.classId}"/>
</div>
<label class="col-sm-2 control-label">*物品编号</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="number" name ="number" placeholder="编号" autocomplete="off" value="${goods.number}" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*物品名称</label>
<div class="col-sm-4">
<input type="text" class="form-control" onkeyup="Google()" id="name" name ="name" placeholder="名称" value="${goods.name}"onchange="generationNumber()">
<table style="display: block;">
<tbody id="tbody" style="
/* border: 1px gray solid; */
/* width: 204px; */
border: 1px solid #D6D6D6;
display: none;
/* margin-top: 5px; */
width: 270px;
height: 200px;
overflow-x: hidden;
overflow-y: auto;
position: absolute;
z-index: 1;
background: white;
padding: 6px 12px 6px;"
></tbody>
</table>
</div>
<label class="col-sm-2 control-label">物品品牌</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="brand" name ="brand" placeholder="品牌" value="${goods.brand}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*规格型号</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="model" name ="model" placeholder="型号" value="${goods.model}">
</div>
<label class="col-sm-2 control-label">*物品单位</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="unit" name ="unit" placeholder="单位" value="${goods.unit}">
</div>
</div>
<%-- <div class="form-group">--%>
<%-- <label class="col-sm-2 control-label">最大存储量</label>--%>
<%-- <div class="col-sm-6">--%>
<%-- <input type="number" class="form-control" id="maxReserve" name ="maxReserve" placeholder="最大存储量" step="0.1" min="1.0" value="${goods.maxReserve}">--%>
<%-- </div>--%>
<%-- </div>--%>
<%-- <div class="form-group">--%>
<%-- <label class="col-sm-2 control-label">最小存储量</label>--%>
<%-- <div class="col-sm-6">--%>
<%-- <input type="number" class="form-control" id="minReserve" name ="minReserve" placeholder="最小存储量" step="0.1" min="0.0" value="${goods.minReserve}">--%>
<%-- </div>--%>
<%-- </div>--%>
<%-- <div class="form-group">
<label class="col-sm-2 control-label">所属设备</label>
<div class="col-sm-10">
<input id="equipmentIds" name="equipmentIds" type="hidden" value="${goods.equipmentIds}" />
<input class="form-control" id="equipname" name ="equipname" value="${goods.equipmentNames}" onclick="showEquipment4SelectsFun('subForm','equipmentIds','equipname');" placeholder="请点击选择" readonly>
</div>
</div> --%>
<div class="form-group">
<label class="col-sm-2 control-label">备注</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" id ="remark" name ="remark" placeholder="备注...">${goods.remark}</textarea>
</div>
</div>
</form>
<div class="box box-primary" >
<div id="mainAlertDetaildiv"></div>
<div class="box-header with-border">
<h3 class="box-title">物资报警</h3>
<div class="box-tools pull-right">
<a onclick="addReserveFun()" class="btn btn-box-tool" data-toggle="tooltip" title="新增"><i class="glyphicon glyphicon-plus"></i></a>
<a onclick="deletesReserveFun()" class="btn btn-box-tool" data-toggle="tooltip" title="删除"><i class="glyphicon glyphicon-minus"></i></a>
</div>
</div>
<div class="box-body ">
<table id="table_Reserve" data-use-row-attr-func="true" data-reorderable-rows="true"></table>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="doupdate()" id="btn_update">保存</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,140 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<script type="text/javascript">
var doSearchSelectGoods = function() {
$("#table_selectGoods").bootstrapTable('refresh');
};
function doSelect() {
var checkItems = $("#table_selectGoods").bootstrapTable('getAllSelections');
var ids="";
var names="";
if(checkItems!=null&&checkItems.length>0){
for(var i=0;i<checkItems.length;i++){
ids+=checkItems[i].id+",";
names+=checkItems[i].name+",";
}
}
$('#${param.formId} #${param.hiddenId}').val(ids);
$('#${param.formId} #${param.textId}').val(names);
closeModal("goods4SelectModal");
};
// function doSelect(row) {
// $('#${param.formId} #${param.hiddenId}' ).val(row.id);
// $('#${param.formId} #${param.textId}').val(row.name);
// closeModal("goods4SelectModal");
// };
function queryParams(params) {
var temp={
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
search_name: $('#search_name_goods').val()
};
return temp;
}
$(function() {
$("#search_name_goods").keyup(function () {
if (event.keyCode == 13) {
event.preventDefault();
//回车执行查询
doSearchSelectGoods();
event.stopPropagation();
}
});
$("#table_selectGoods").bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/goods/getList.do', // 获取表格数据的url
//cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
// clickToSelect:true,
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20], // 设置页面可以显示的数据条数
pageSize: 20, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: queryParams,
queryParamsType: "limit",
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
/* showColumns: true,
showRefresh: true, */
columns: [
{
checkbox:true,//单选框
},{
field: 'name', // 返回json数据中的name
title: '物品名称', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'brand', // 返回json数据中的name
title: '物品品牌', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'model', // 返回json数据中的name
title: '规格型号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'goodsClass.name', // 返回json数据中的name
title: '物品类别', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'unit', // 返回json数据中的name
title: '物品单位', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
}
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table_selectGoods");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
})
});
</script>
<div class="modal fade" id="goods4SelectModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">选择备件</h4>
</div>
<div class="modal-body " style="width:100%">
<div id="alertDiv"></div>
<div class="form-group form-inline" >
<div class="form-group form-inline pull-right" style="padding-bottom: 5px;">
<div class="input-group input-group-sm" style="width: 250px;">
<input type="text" id="search_name_goods" name="search_name_goods" class="form-control pull-right" placeholder="备件名称">
<div class="input-group-btn">
<button class="btn btn-default" onclick="doSearchSelectGoods();"><i class="fa fa-search"></i></button>
</div>
</div>
</div>
</div>
<div>
<div id="table_selectGoods" style="height:330px;overflow:auto;width:100%"></div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="doSelect()">确认</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,311 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ page import="com.sipai.entity.base.ServerObject"%>
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security"%>
<!DOCTYPE html>
<!-- <html lang="zh-CN"> -->
<!-- BEGIN HEAD -->
<head>
<title><%= ServerObject.atttable.get("TOPTITLE")%></title>
<!-- 引用页头及CSS页-->
<jsp:include page="/jsp/inc.jsp"></jsp:include>
<!-- bootstrap switch -->
<link rel="stylesheet" href="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/css/bootstrap3/bootstrap-switch.min.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/js/bootstrap-switch.min.js" charset="utf-8"></script>
<script type="text/javascript">
var addFun = function() {
var classid = $('#classid').val();
$.post(ext.contextPath + '/sparepart/goods/add.do', {goodsClassId:classid} , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
var editFun = function(id) {
stopBubbleDefaultEvent();
$.post(ext.contextPath + '/sparepart/goods/edit.do', {id:id} , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
var viewFun = function(id){
$.post(ext.contextPath + '/sparepart/goods/view.do', {id:id} , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
var deleteFun = function(id) {
stopBubbleDefaultEvent();
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(willDelete =>{
if (willDelete) {
$.post(ext.contextPath + '/sparepart/goods/delete.do', {id : id}, function(data) {
if(data==1){
$("#table").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','mainAlertdiv');
}
});
}
});
};
var deletesFun = function() {
var checkedItems = $("#table").bootstrapTable('getSelections');
var datas="";
$.each(checkedItems, function(index, item){
datas+=item.id+",";
});
if(datas==""){
showAlert('d','请先选择记录','mainAlertdiv');
}else{
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete) {
if (willDelete) {
$.post(ext.contextPath + '/sparepart/goods/deletes.do', {ids:datas} , function(data) {
if(data>0){
$("#table").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','mainAlertdiv');
}
});
}
});
}
};
var dosearch = function() {
$("#table").bootstrapTable('refresh');
};
$(function() {
initTreeView();
$("#table").bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/goods/getList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
search_name: $('#search_name').val(),
classid: $('#classid').val(),
}
},
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
onClickRow: function (row) {//单击行事件,执行查看功能
viewFun(row.id);
},
columns: [
{
checkbox: true, // 显示一个勾选框
},{
field: 'number', // 返回json数据中的name
title: '物品编号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'name', // 返回json数据中的name
title: '物品名称', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'brand', // 返回json数据中的name
title: '物品品牌', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'model', // 返回json数据中的name
title: '规格型号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'goodsClass.name', // 返回json数据中的name
title: '物品类别', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'unit', // 返回json数据中的name
title: '物品单位', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'remark', // 返回json数据中的name
title: '备注', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
title: "操作",
align: 'center',
valign: 'middle',
width: 120, // 定义列的宽度单位为像素px
formatter: function (value, row, index) {
var buts= '';
buts+= '<security:authorize buttonUrl="sparepart/goods/edit.do">';
buts+= '<button class="btn btn-default btn-sm" title="编辑" onclick="editFun(\'' + row.id + '\')"><i class="fa fa-edit"></i><span class="hidden-md hidden-lg"> 编辑</span></button>';
buts+= '</security:authorize>';
buts+= '<security:authorize buttonUrl="sparepart/goods/delete.do">';
buts+='<button class="btn btn-default btn-sm" title="删除" onclick="deleteFun(\''+row.id+'\')"><i class="fa fa fa-trash-o"></i><span class="hidden-md hidden-lg">删除</span></button>';
buts+= '</security:authorize>';
buts='<div class="btn-group" >'+buts+'</div>';
return buts;
}
}
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
});
var initTreeView = function() {
$.post(ext.contextPath + '/sparepart/goodsClass/getGoodsClassJson.do', function(data) {
$('#tree').treeview({data: data});
$('#tree').on('nodeSelected', function(event, data) {
$('#classid').val(data.id);
dosearch();
});
},'json');
};
</script>
</head>
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
<div class="wrapper">
<!-- 引用top -->
<%-- <jsp:include page="/jsp/top.jsp"></jsp:include> --%>
<!-- 菜单栏 -->
<%-- <jsp:include page="/jsp/left.jsp"></jsp:include> --%>
<div class="content-wrapper">
<!-- Main content -->
<section class="content container-fluid">
<div id="mainAlertdiv"></div>
<div id="subDiv"></div>
<div id="fault4SelectDiv"></div>
<div id="equ4SelectDiv"></div>
<div id="subReserveDiv"></div>
<input id ="classid" type="hidden" value="" />
<div class="row">
<div class="col-lg-2 col-md-3">
<div class="box box-solid">
<div class="box-header with-border">
<h3 class="box-title">物品类别</h3>
</div>
<div class="box-body no-padding">
<div id="tree" style="height:600px;overflow:auto; "></div>
</div>
<!-- /.box-body -->
</div>
</div>
<div class="col-lg-10 col-md-9">
<div class="nav-tabs-custom">
<ul class="nav nav-tabs">
<security:authorize buttonUrl="sparepart/goods/showlist.do">
<li class="active"><a href="#tab_1" data-toggle="tab" aria-expanded="true" id ="head_title"></a></li>
</security:authorize>
<security:authorize buttonUrl="sparepart/goodsApply/showlist.do">
<li class=""><a href="#tab_2" data-toggle="tab" aria-expanded="false">编号审批</a></li>
</security:authorize>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="tab_1">
<div class="form-group" style="padding:0;">
<div class="btn-group" style="width: 220px;padding-bottom:10px;">
<security:authorize buttonUrl="sparepart/goods/add.do">
<button type="button" class="btn btn-default btn-sm" onclick="addFun();"><i class="fa fa-plus"></i> 新增</button>
</security:authorize>
<security:authorize buttonUrl="sparepart/goods/delete.do">
<button type="button" class="btn btn-default btn-sm" onclick="deletesFun();"><i class="fa fa-trash-o"></i> 删除</button>
</security:authorize>
</div>
<div class="form-group pull-right form-inline" >
<div class="input-group input-group-sm" style="width: 250px;">
<input type="text" id="search_name" name="search_name" class="form-control pull-right" placeholder="物品名称">
<div class="input-group-btn">
<button class="btn btn-default" onclick="dosearch();"><i class="fa fa-search"></i></button>
</div>
</div>
</div>
</div>
<!-- <div class="table-responsive">
<table id="table"></table>
</div> -->
<table id="table"></table>
</div>
<!-- /.tab-pane -->
<div class="tab-pane" id="tab_2">
</div>
<!-- /.tab-pane -->
</div>
<!-- /.tab-content -->
</div>
</div>
</div>
</section>
<!-- /.content -->
</div>
<%-- <jsp:include page="/jsp/bottom.jsp"></jsp:include> --%>
<%-- <jsp:include page="/jsp/side.jsp"></jsp:include> --%>
</div>
</body>
</html>

View File

@ -0,0 +1,103 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
/* table[ip] tr th,table[ip] tr td{
border: 1px solid grey;
text-align: center;
height: 30px;
width:25%;
} */
</style>
<script type="text/javascript">
function doReservesave() {
$("#subFormReserve").serialize().bizId = unitId
$.post(ext.contextPath + "/sparepart/goodsReserve/save.do", $("#subFormReserve").serialize(), function(data) {
if (data.res == 1) {
$("#table_Reserve").bootstrapTable('refresh');
document.getElementById("subReserveModal").setAttribute("class", "modal hidden fade");
$(".modal-backdrop").remove();
}else if(data.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}
$("#subFormReserve").bootstrapValidator({
// live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
// fields: {
// name: {
// validators: {
// notEmpty: {
// message: '用户名不能为空'
// }
// }
// },
// }
});
$(function() {
});
</script>
<div class="modal fade" id="subReserveModal">
<div class="modal-dialog modal-lg">
<div class="modal-content" style="width: 850px;">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">新增物资报警</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subFormReserve" enctype="multipart/form-data" >
<div id="fault4SelectDiv"></div>
<!-- 界面提醒div强制id为alertDiv -->
<input type="hidden" id="pid" name="pid" value="${pid}">
<input type="hidden" id="bizId" name="bizId" value="${bizId}">
<div id="alertDiv"></div>
<div class="form-group">
<label class="col-sm-2 control-label">物品最大数</label>
<div class="col-sm-4">
<input type="number" id="max" name="max" class="form-control pull-right" placeholder="物品最大数">
</div>
<label class="col-sm-2 control-label">是否启用</label>
<div class="col-sm-4">
<select class="form-control select2 " id="maxStatus" name ="maxStatus">
<option value=1 selected>启用</option>
<option value=0 >停用</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">物品最小数</label>
<div class="col-sm-4">
<input type="number" id="min" name="min" class="form-control pull-right" placeholder="物品最小数">
</div>
<label class="col-sm-2 control-label">是否启用</label>
<div class="col-sm-4">
<select class="form-control select2 " id="minStatus" name ="minStatus">
<option value=1 selected>启用</option>
<option value=0 >停用</option>
</select>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default pull-left" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="doReservesave()" >保存</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,108 @@
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page language="java" pageEncoding="UTF-8"%>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
/* table[ip] tr th,table[ip] tr td{
border: 1px solid grey;
text-align: center;
height: 30px;
width:25%;
} */
</style>
<script type="text/javascript"
src="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/js/bootstrap-switch.min.js"
charset="utf-8"></script>
<script type="text/javascript">
function doReserveUpdate() {
$.post(ext.contextPath + "/sparepart/goodsReserve/update.do", $("#subFormReserveUpdate").serialize(), function(data) {
if (data.res == 1) {
$("#table_Reserve").bootstrapTable('refresh');
document.getElementById("subReserveModal").setAttribute("class", "modal hidden fade");
$(".modal-backdrop").remove();
}else if(data.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}
$("#subFormReserveUpdate").bootstrapValidator({
// live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
// fields: {
// name: {
// validators: {
// notEmpty: {
// message: '用户名不能为空'
// }
// }
// },
// }
});
$(function() {
});
</script>
<div class="modal fade" id="subReserveModal">
<div class="modal-dialog modal-lg">
<div class="modal-content" style="width: 850px;">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">编辑物资报警</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subFormReserveUpdate" enctype="multipart/form-data" >
<div id="fault4SelectDiv"></div>
<!-- 界面提醒div强制id为alertDiv -->
<input type="hidden" id="id" name="id" value="${goodsReserve.id}">
<input type="hidden" id="pid" name="pid" value="${goodsReserve.pid}">
<input type="hidden" id="bizId" name="bizId" value="${goodsReserve.bizId}">
<div id="alertDiv"></div>
<div class="form-group">
<label class="col-sm-2 control-label">物品最大数</label>
<div class="col-sm-4">
<input type="number" id="max" name="max" class="form-control pull-right" placeholder="物品最大数" value="${goodsReserve.max}">
</div>
<label class="col-sm-2 control-label">是否启用</label>
<div class="col-sm-4">
<select class="form-control select2 " id="maxStatus" name ="maxStatus">
<option value=1 <c:if test="${goodsReserve.maxStatus==1}">selected</c:if>>启用</option>
<option value=0 <c:if test="${goodsReserve.maxStatus==0}">selected</c:if>>停用</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">物品最小数</label>
<div class="col-sm-4">
<input type="number" id="min" name="min" class="form-control pull-right" placeholder="物品最小数" value="${goodsReserve.min}">
</div>
<label class="col-sm-2 control-label">是否启用</label>
<div class="col-sm-4">
<select class="form-control select2 " id="minStatus" name ="minStatus">
<option value=1 <c:if test="${goodsReserve.minStatus==1}">selected</c:if>>启用</option>
<option value=0 <c:if test="${goodsReserve.minStatus==0}">selected</c:if>>停用</option>
</select>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default pull-left" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="doReserveUpdate()" >保存</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,348 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ page import="com.sipai.entity.base.ServerObject"%>
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security"%>
<!DOCTYPE html>
<!-- <html lang="zh-CN"> -->
<!-- BEGIN HEAD -->
<head>
<title><%= ServerObject.atttable.get("TOPTITLE")%></title>
<!-- 引用页头及CSS页-->
<jsp:include page="/jsp/inc.jsp"></jsp:include>
<!-- bootstrap switch -->
<link rel="stylesheet" href="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/css/bootstrap3/bootstrap-switch.min.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/js/bootstrap-switch.min.js" charset="utf-8"></script>
<script type="text/javascript">
var addFun = function() {
$.post(ext.contextPath + '/sparepart/goods/add.do', {} , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
var editFun = function(id) {
stopBubbleDefaultEvent();
$.post(ext.contextPath + '/sparepart/goods/edit.do', {id:id} , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
var viewFun = function(id){
$.post(ext.contextPath + '/sparepart/goods/view.do', {id:id} , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
var deleteFun = function(id) {
stopBubbleDefaultEvent();
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(willDelete =>{
if (willDelete) {
$.post(ext.contextPath + '/sparepart/goods/delete.do', {id : id}, function(data) {
if(data==1){
$("#table").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','mainAlertdiv');
}
});
}
});
};
var deletesFun = function() {
var checkedItems = $("#table").bootstrapTable('getSelections');
var datas="";
$.each(checkedItems, function(index, item){
datas+=item.id+",";
});
if(datas==""){
showAlert('d','请先选择记录','mainAlertdiv');
}else{
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete) {
if (willDelete) {
$.post(ext.contextPath + '/sparepart/goods/deletes.do', {ids:datas} , function(data) {
if(data>0){
$("#table").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','mainAlertdiv');
}
});
}
});
}
};
var dosearch = function() {
//console.log(123+$('#monthtime_id').val());
$("#table").bootstrapTable('refresh');
};
$(function() {
$('#monthtime_id').datepicker({
format: 'yyyy-mm',
weekStart: 1,
autoclose: true,
startView: 2,
minViewMode: 1,
maxViewMode: 2,
forceParse: false,
language: 'zh-CN',
}).on('changeDate',function(ev){
dosearch();
});
var d = new Date();
var y = d.getFullYear();
var m = d.getMonth();
var nowDate = y + '-' + m;
console.log('nowDate',nowDate);
if(m == 0){
y = y-1;
nowDate = y + '-' + 12;
}
//$('#monthtime_id').datetimepicker('setDate', new Date(nowDate));
$('#monthtime_id').val(nowDate);
//选择仓库
$.post(ext.contextPath + "/sparepart/warehouse/getWarehouseForSelectByCompanyId.do", {companyId:unitId}, function(data) {
$('#name1').val(data[0].id);
var selelct =$("#warehouse_id").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val(data[0].id).trigger("change");
selelct.on("change",function(e){
dosearch();
});
$("#table").bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/goods/getGoodsSaleList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
search_name: $('#search_name').val(),
warehouse_id: $('#warehouse_id').val(),
monthtime_id: $('#monthtime_id').val(),
}
},
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
onClickRow: function (row) {//单击行事件,执行查看功能
viewFun(row.id);
},
columns: [
{
checkbox: true, // 显示一个勾选框
},{
field: 'number', // 返回json数据中的name
title: '物品编号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'name', // 返回json数据中的name
title: '物品名称', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'model', // 返回json数据中的name
title: '规格型号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中model
},{
field: '_lsnumber', // 返回json数据中的name
title: '上期结存数量', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: '_lsprice', // 返回json数据中的name
title: '上期结存单价', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: '_lstotalmoney', // 返回json数据中的name
title: '上期结存金额', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: '_innumber', // 返回json数据中的name
title: '本期入库数量', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: '_inprice', // 返回json数据中的name
title: '本期入库单价', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: '_intotalmoney', // 返回json数据中的name
title: '本期入库金额', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: '_outnumber', // 返回json数据中的name
title: '本期出库数量', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: '_outprice', // 返回json数据中的name
title: '本期出库单价', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: '_outtotalmoney', // 返回json数据中的name
title: '本期出库金额', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: '_csnumber', // 返回json数据中的name
title: '本期结存数量', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: '_csprice', // 返回json数据中的name
title: '本期结存单价', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: '_cstotalmoney', // 返回json数据中的name
title: '本期结存金额', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
}
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
},'json');
});
</script>
</head>
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
<div class="wrapper">
<!-- 引用top -->
<%-- <jsp:include page="/jsp/top.jsp"></jsp:include> --%>
<!-- 菜单栏 -->
<%-- <jsp:include page="/jsp/left.jsp"></jsp:include> --%>
<div class="content-wrapper">
<!-- Content Header (Page header) -->
<section class="content-header">
<h1 id ="head_title"></h1>
<ol class="breadcrumb">
<li><a id ='head_firstlevel' href="#"><i class="fa fa-dashboard"></i> </a></li>
<!-- <li class="active">Here</li> -->
</ol>
</section>
<!-- Main content -->
<section class="content container-fluid">
<div id="mainAlertdiv"></div>
<div id="subDiv"></div>
<div id="fault4SelectDiv"></div>
<div id="equ4SelectDiv"></div>
<div >
<div class="form-group" style="padding:0;">
<div class="btn-group" style="width: 220px;padding-bottom:10px;">
<div style="width:120px;height:100%;float:left;margin:5px 0px;" id="monthDiv">
<div class="input-group" >
<input class="form-control date-picker" id="monthtime_id"
type="text" style="background-color:#FFFFFF;height:100%;" />
<span class="input-group-addon">
<i class="fa fa-calendar bigger-110"></i>
</span>
</div>
</div>
</div>
<div class="form-group pull-right form-inline" >
<label class="form-label" id="companylabel">所属仓库:</label>
<select class="form-control select2 " id="warehouse_id" name ="warehouse_id" style="width: 160px;">
</select>
<div class="input-group input-group-sm" style="width: 250px;">
<input type="text" id="search_name" name="search_name" class="form-control pull-right" placeholder="物品名称">
<div class="input-group-btn">
<button class="btn btn-default" onclick="dosearch();"><i class="fa fa-search"></i></button>
</div>
</div>
</div>
</div>
<table id="table"></table>
</div>
</section>
<!-- /.content -->
</div>
<%-- <jsp:include page="/jsp/bottom.jsp"></jsp:include> --%>
<%-- <jsp:include page="/jsp/side.jsp"></jsp:include> --%>
</div>
</body>
</html>

View File

@ -0,0 +1,147 @@
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<%request.setAttribute("CHECK", SparePartCommString.WAREHOUSE_CHECK); %>
<%request.setAttribute("START", SparePartCommString.WAREHOUSE_START); %>
<%request.setAttribute("STOP", SparePartCommString.WAREHOUSE_STOP); %>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
//表格查询参数
function queryParamsFunSubscribe (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
goods: '${goods.id}',
};
}
$("#table_Subscribe").bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/subscribe/getList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: queryParamsFunSubscribe,
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
columns: [
{
field: 'id', // 返回json数据中的name
title: '申购单号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'subscribeDate', // 返回json数据中的name
title: '申购日期', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter:function (value, row, index){
return value.substring(0,10);
}
}
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
</script>
<div class="modal fade" id="subModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">查看物品信息</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<div class="form-group">
<label class="col-sm-2 control-label">*物品编号</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="number" name ="number" placeholder="名称" value="${goods.number}" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*物品名称</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="name" name ="name" placeholder="名称" value="${goods.name}" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*物品品牌</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="brand" name ="brand" placeholder="品牌" value="${goods.brand}" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*规格型号</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="model" name ="model" placeholder="型号" value="${goods.model}" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*物品单位</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="unit" name ="unit" placeholder="单位" value="${goods.unit}" readonly>
</div>
</div>
<!-- <div class="form-group">
<label class="col-sm-2 control-label">*物品类别</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="classId" name ="classId" placeholder="单位" value="${goods.classId}" readonly>
</div>
</div> -->
<div class="form-group">
<label class="col-sm-2 control-label">最大存储量</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="maxReserve" name ="maxReserve" placeholder="最大存储量" value="${goods.maxReserve}" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">最小存储量</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="minReserve" name ="minReserve" placeholder="最小存储量" value="${goods.minReserve}" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">备注</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" id ="remark" name ="remark" placeholder="备注..." readonly>${goods.remark}</textarea>
</div>
</div>
</form>
<div class="box box-primary" >
<div class="box-header with-border">
<h3 class="box-title">采购记录</h3>
</div>
<div class="box-body ">
<table id="table_Subscribe"></table>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,430 @@
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%request.setAttribute("DEPARTMENT", SparePartCommString.PURCHASE_DEPARTMENT); %>
<%-- <%request.setAttribute("PASS", SparePartCommString.STATUS_PASS); %>
<%request.setAttribute("REJECT", SparePartCommString.STATUS_REJECT); %>
<%request.setAttribute("SUBMIT", SparePartCommString.STATUS_SUBMIT); %> --%>
<%request.setAttribute("INSTOCK_OTHER", SparePartCommString.INSTOCK_OTHER); %>
<%request.setAttribute("INSTOCK_PURCHASE", SparePartCommString.INSTOCK_PURCHASE); %>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
/* function doPass(routeNum) {
$('#subForm').data('bootstrapValidator')
.updateStatus('targetUsersName', 'NOT_VALIDATED',null)
.validateField('targetUsersName');
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$("#passstatus").val(true);
$("#routeNum").val(routeNum)
$.post(ext.contextPath + "/sparepart/inStockRecord/AuditInStockRecord.do", $("#subForm").serialize(), function(data) {
if (data.res == 1) {
closeModal('subModal')
$("#table").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','操作执行失败,请重试');
}else{
showAlert('d',data.res);
}
},'json');
}
}
function doBack(routeNum) {
swal({
title: "退回!",
text: "请输入审核不通过理由:",
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
},
content: {
element: "input",
attributes: {
placeholder: "审核不通过理由...",
},
},
})
.then(function(value){
if(value){
$("#auditopinion").val(value);
$("#passstatus").val(false);
$("#routeNum").val(routeNum)
$.post(ext.contextPath + "/sparepart/inStockRecord/AuditInStockRecord.do", $("#subForm").serialize(), function(data) {
if (data.res == 1) {
closeModal('subModal')
$("#table").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','退回失败,请重试!');
}else{
showAlert('d',data.res);
}
},'json');
}
});
} */
//流程审核文件上传所需参数
var masterId_process = '${inStockRecord.id}';//业务Id
var tbName_process = 'TB_Process_UploadFile'; //数据表
var nameSpace_process ='ProcessUploadFile';//保存文件夹
var status = 'delete';//有删除权限
function doSubmit() {
$('#subForm').data('bootstrapValidator')
.updateStatus('targetUsersName', 'NOT_VALIDATED',null)
.validateField('targetUsersName');
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码 */
$.post(ext.contextPath + "/sparepart/inStockRecord/AuditInStockRecord.do", $("#subForm").serialize(), function(data) {
if (data.res == 1) {
closeModal('subModal')
$("#table").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','操作执行失败,请重试');
}else{
showAlert('d',data.res);
}
},'json');
}
}
var showUser4SelectsFun = function() {
var userIds= $("#targetusers").val();
var jobIds= $("#targetjobs").val();
$.post(ext.contextPath + '/user/userForSelectByCompany.do', {formId:"subForm",hiddenId:"targetusers",textId:"targetUsersName",userIds:userIds,jobIds:jobIds} , function(data) {
$("#user4SelectDiv").html(data);
openModal("user4SelectModal");
});
};
$(function(){
if ('${inStockRecord.fareAdjustment}' != '') {
if (0 == '${inStockRecord.fareAdjustment}') {
document.getElementById('iDiv').style.display = 'block';
document.getElementById('vDiv').style.display = 'block';
}
}
if ('${inStockRecord.vatInvoice}' != '') {
if (1 == '${inStockRecord.vatInvoice}')
document.getElementById('tDiv').style.display = 'block';
}
//初始化文件显示
getFileList_process();
//初始化选择框方法在workflow.js里
processSelectNode("${businessUnitAudit.taskid}");
$('#table_Detail').bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/inStockRecord/getInStockDetailList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
showFooter:true,//添加页脚
sidePagination: 'server', // 设置为服务器端分页
showFooter:true,//添加页脚
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
pid:'${inStockRecord.id}',
<%--type:'${INSTOCK_OTHER}'--%>
<%--type:'${INSTOCK_PURCHASE}'--%>
}
},
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
columns: [
{
checkbox: true, // 显示一个勾选框
},{
field: 'type', // 返回json数据中的name
title: '入库类型', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter:function(value, row, index){
console.log(value)
if (value == ${INSTOCK_PURCHASE}) {
return '采购入库';
}
if (value == ${INSTOCK_OTHER}) {
return '其他入库';
}
},
},{
field: 'goods.name', // 返回json数据中的name
title: '物品名称', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.model', // 返回json数据中的name
title: '规格型号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.brand', // 返回json数据中的name
title: '品牌', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'goods.unit', // 返回json数据中的name
title: '单位', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'instockNumber', // 返回json数据中的name
title: '入库数量', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'includeTaxratePrice', // 返回json数据中的name
title: '含税单价/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
footerFormatter:"合计"
},{
field: 'includeTaxrateTotalMoney', // 返回json数据中的name
title: '含税合计/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
footerFormatter:function(value){
if(value==""){
return"";
}else{
var count = 0;
for(var i in value){
count += value[i].includeTaxrateTotalMoney;
}
return count.toFixed(2);
}
},
formatter:function(value, row, index){
return value.toFixed(2);
},
},{
field: 'price', // 返回json数据中的name
title: '不含税单价/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
footerFormatter:"总计",
},{
field: 'totalMoney', // 返回json数据中的name
title: '不含税合计/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
footerFormatter:function(value){
if(value==""){
return"";
}else{
var count = 0;
for(var i in value){
count += value[i].totalMoney;
}
return count.toFixed(2);
}
},
formatter:function(value, row, index){
return value.toFixed(2);
},
},
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table_Detail");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
//输入框验证
$("#subForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
targetUsersName: {
validators: {
notEmpty: {
message: '提交人员不能为空'
}
}
},
}
});
//显示流程详情
var id = '${inStockRecord.id}';
$.post(ext.contextPath + '/sparepart/inStockRecord/showProcessInStockView.do', {id:id,inModal:'inModal'} , function(data) {
$("#showView").html(data);
});
})
</script>
<div class="modal fade" id="subModal">
<div class="modal-dialog modal-xlg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">入库登记(${taskName})</h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-7 col-xs-12">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm" enctype="multipart/form-data" >
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<div class="form-group">
<label class="col-sm-2 control-label">所属厂区</label>
<div class="col-sm-4" >
<p class="form-control-static" >${inStockRecord.company.name}</p>
</div>
<label class="col-sm-2 control-label">所属仓库</label>
<div class="col-sm-4">
<p class="form-control-static" >${inStockRecord.warehouse.name}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">入库单号</label>
<div class="col-sm-4" >
<p class="form-control-static" >${inStockRecord.id}</p>
</div>
<label class="col-sm-2 control-label">入库日期</label>
<div class="col-sm-4">
<p class="form-control-static" >${inStockRecord.instockDate.substring(0,10)}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">票据单号</label>
<div class="col-sm-4">
<p class="form-control-static" >${inStockRecord.billNumber}</p>
</div>
<label class="col-sm-2 control-label">入库人</label>
<div class="col-sm-4">
<p class="form-control-static" >${inStockRecord.instockManName}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">是否后期补票</label>
<div class="col-sm-4">
<p class="form-control-static" >${inStockRecord.fareAdjustmentText}</p>
</div>
<div id="iDiv" style="display: none;">
<label class="col-sm-2 control-label">发票号</label>
<div class="col-sm-4">
<p class="form-control-static" >${inStockRecord.invoiceNumber}</p>
</div>
</div>
</div>
<div class="form-group">
<div id="vDiv" style="display: none;">
<label class="col-sm-2 control-label">是否专票</label>
<div class="col-sm-4">
<p class="form-control-static" >${inStockRecord.vatInvoiceText}</p>
</div>
</div>
<div id="tDiv" style="display: none;">
<label class="col-sm-2 control-label">税率(%)</label>
<div class="col-sm-4">
<p class="form-control-static" >${inStockRecord.taxrate}</p>
</div>
</div>
</div>
<input type="hidden" class="form-control" name ="id" value="${businessUnitAudit.id}">
<input type="hidden" class="form-control" name ="processid" value="${businessUnitAudit.processid}">
<input type="hidden" class="form-control" name ="taskid" value="${businessUnitAudit.taskid}">
<input type="hidden" class="form-control" name ="businessid" value="${businessUnitAudit.businessid}">
<input type="hidden" class="form-control" name =unitid value="${param.unitId}">
<input type="hidden" class="form-control" name ="taskdefinitionkey" value="${businessUnitAudit.taskdefinitionkey}">
<!-- <input type="hidden" class="form-control" id ="passstatus" name ="passstatus" value=true>
<input type="hidden" class="form-control" id ="auditopinion" name ="auditopinion" >
<input type="hidden" class="form-control" id ="routeNum" name ="routeNum" > -->
<div class="form-group">
<label class="col-sm-2 control-label">*审核结果</label>
<div class="col-sm-6">
<select class="form-control select2" id="passstatus" name ="passstatus" style="width: 270px;">
<option value= true>通过</option>
<option value= false>驳回</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*下一节点</label>
<div class="col-sm-6">
<select class="form-control select2" id="routeNum" name ="routeNum" style="width: 270px;">
</select>
</div>
</div>
<!-- <div id = "reject" class="form-group">
<label class="col-sm-2 control-label">*驳回原因</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" id ="auditopinion" name ="auditopinion" placeholder="驳回原因"></textarea>
</div>
</div> -->
<div class="form-group">
<label class="col-sm-2 control-label">审核意见</label>
<div class="col-sm-6">
<textarea class="form-control" rows="2" id ="auditopinion" name ="auditopinion" placeholder="审核意见">通过</textarea>
</div>
</div>
<div id = "selectUsers" class="form-group">
<label class="col-sm-2 control-label">提交至:</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="targetUsersName" name ="targetUsersName" placeholder="下一级人员" onclick="showUser4SelectsFun();" >
<input id="targetusers" name="targetusers" type="hidden" value=""/>
<input class="form-control" id="targetjobs" name="targetjobs" type="hidden" value=""/>
</div>
</div>
<!-- 文件上传,显示 -->
<div class="form-group" style="margin:8px">
<label class="col-sm-2 control-label"></label>
<button type="button" class="btn btn-default btn-file" onclick="fileinput_process()" id="btn_save"><i class="fa fa-paperclip"></i>上传文件</button>
</div>
<div id="fileArea">
</div>
</form>
<div class="box box-primary" >
<div class="box-header with-border">
<h3 class="box-title">入库明细</h3>
</div>
<!-- /.box-header -->
<div class="box-body ">
<table id="table_Detail"></table>
</div>
</div>
</div>
<div class="col-md-5 col-xs-12" id="showView">
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<%-- <button type="button" class="btn btn-primary" onclick="processExecute(doPass,${businessUnitAudit.taskid},true)" id="btn_update">通过</button>
<button type="button" class="btn btn-danger" onclick="processExecute(doBack,${businessUnitAudit.taskid},false)" id="btn_submit">驳回</button> --%>
<button type="button" class="btn btn-primary" onclick="doSubmit()" id="btn_update">提交</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,267 @@
<%@page import="com.sipai.entity.business.BusinessUnit"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<%@page import="com.sipai.entity.maintenance.Maintenance"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%String contextPath = request.getContextPath();%>
<%String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath();%>
<%String serverPath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort();%>
<%request.setAttribute("Status_Finish",Maintenance.Status_Finish);%>
<!-- 补录状态 -->
<%request.setAttribute("TYPE_SUPPLEMENT",Maintenance.TYPE_SUPPLEMENT);%>
<!-- 运维主流程状态 -->
<%request.setAttribute("TYPE_MAINTENANCE",Maintenance.TYPE_MAINTENANCE);%>
<%request.setAttribute("UNIT_HANDLE",BusinessUnit.UNIT_HANDLE);%>
<!-- bootstrap-star-rating -->
<link rel="stylesheet" href="<%=request.getContextPath()%>/node_modules/bootstrap-star-rating/css/star-rating.min.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-star-rating/js/star-rating.min.js" charset="utf-8"></script>
<script type="text/javascript">
//var masterId=$('#maintenanceId').val();
var tbName_problem='tb_maintenance_problem_fille'; //数据表
var tbName_maintenance='tb_maintenance_file'; //数据表
var nameSpace='MaintenanceProblem';//保存文件夹
var previews = new Array();
var previewConfigs = new Array();
/* var student = {
"caption":"lilei",
}
previewConfigs[0]=student; */
//初始化fileinput控件第一次初始化
function showFileInput(ctrlName) {
var control = $('#' + ctrlName);
control.fileinput('destroy');
control.fileinput({
language: 'zh', //设置语言
showUpload: false, //是否显示上传按钮
showRemove:false,
showCaption: false,//是否显示标题
showBrowse:false,//选择按钮
showClose:false,//右上角关闭按钮
dropZoneEnabled: false,//是否显示拖拽区域
resizeImage:true,
fileActionSettings:{
showDrag:false
},
browseClass: "btn btn-primary", //按钮样式
maxFileCount: 10, //表示允许同时上传的最大文件个数
enctype: 'multipart/form-data',
validateInitialCount:true,
previewFileIcon: "<i class='glyphicon glyphicon-king'></i>",
initialPreviewAsData: true,
initialPreview: previews,
initialPreviewConfig:previewConfigs,
layoutTemplates:{
actionUpload:'',
actionDelete:''
}
});
$('#kvFileinputModal').on("hidden.bs.modal", function() {
$(this).removeData("bs.modal");
//modal重复打开会导致前面的滚动条失去作用
$('.modal').css("overflow","auto");
});
}
var viewHandleDetailFun = function(id) {
$.post(ext.contextPath + '/maintenance/showHandleDetailView.do', {id:id} , function(data) {
$("#handleDetailDiv").html(data);
openModal('handleDetailModal');
});
};
//流程审核文件上传所需参数
var masterId_process = '${param.id}';//业务Id
var tbName_process = 'TB_Process_UploadFile'; //数据表
var nameSpace_process ='ProcessUploadFile';//保存文件夹
var status = 'view';//有查看权限
$(function() {
//初始化文件显示
getFileList_process();
$("#judgemaintainerstaff").rating('refresh',{showClear:false,showCaption:false,readonly:true});
$("#judgeresult").rating('refresh',{showClear:false,showCaption:false,readonly:true});
var result='${businessUnitRecords}';
result=result.replace(new RegExp("\r\n","gm"),"");
var json =JSON.parse(result);
$.each(json, function(index, item) {
if(item.id!=null &&item.id!=""){
previews=new Array();
$('#'+item.id).show();
var data =item.files;
for(var i=0;i<data.length;i++){
var previewConfig = new Object();
var path = data[i].abspath;
path=path.substring(path.indexOf('webapps')+7,path.length);
path =ext.basePath.replace(ext.contextPath,'')+ path.replace(/\\/g,"\/");
previews.push(path);
previewConfig['width']= '30px';
previewConfig['caption']= data[i].filename;
previewConfig['key']= data[i].id;
previewConfigs.push(previewConfig);
}
showFileInput(item.id);
}
});
})
//----------------------------------------------------------------------------------------------------------------------------------------------------
var printpage = function (myDiv){
$('.printContent').show();
var printHtml = document.getElementById(myDiv).innerHTML;
var wind = window.open("", "newwin", "width=1550,height=565,top=80,left=80,toolbar=no,scrollbars=yes,menubar=no");
/*
var ss = ".coversheet-pageBoder{"
+" padding: 10px;"
+" margin-top: 10px;"
+" border: 1px solid gray;"
+" page-break-after: always;"
+" border-radius: 5px;"
+" box-shadow: 0 1px 2px 1px rgba(0,0,0,.08), 0 3px 6px rgba(0,0,0,.08);"
+"}"
+".noprint{display: none;}"
+".select2-container .select2-selection--single{ "
+" height:34px; "
+" line-height: 34px; "
+" }"
+" .select2-selection__arrow{"
+" margin-top:3px;"
+" } "
+" .div-row{"
+" margin-left:3px;"
+" margin-right:3px;"
+" }"
+" .div-border{"
+" border-style:solid;"
+" border-width:1px;"
+" text-align:center;"
+" }"
+" .right-border{"
+" border-right:none;"
+" }"
+" .top-right-border{"
+" border-top:none;"
+" border-right:none;"
+" }"
+" .top-border{"
+" border-top:none;"
+" }";
*/
//for Chrome Firefox Opera Safari
//wind.document.body.innerHTML = printHtml;
var link = document.createElement('link');
link.type = 'text/css';
link.rel = 'stylesheet';
link.href = '<%=serverPath%><%=contextPath%>/plugins/bootstrap-ext/dist/bootstrap.min.css';
wind.document.head.appendChild(link);
/*
var style = document.createElement('style');
style.type = 'text/css';
style.rel = 'stylesheet';
style.appendChild(document.createTextNode(ss));
wind.document.head.appendChild(style);
*/
wind.document.body.innerHTML = printHtml;
//console.log(wind.document);
wind.print();
wind.close();
$('.printContent').hide();
};
//----------------------------------------------------------------------------------------------------------------------------------------------------
</script>
<div class="modal fade" id="inStockExcuteModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">入库处理详情</h4>
</div>
<div class="modal-body " style="padding-left:0;padding-right:0;">
<div class="row">
<div class="col-md-12">
<!-- The time line -->
<ul class="timeline">
<c:forEach items="${businessUnitRecords}" var="item" varStatus="status">
<li>
<c:choose>
<c:when test='${finishFlag && status.last}'>
<i class="fa fa-check bg-blue"></i>
</c:when>
<c:otherwise >
<i class="fa fa-clock-o bg-grey"></i>
</c:otherwise>
</c:choose>
<div class="timeline-item">
<span class="time"><i class="fa fa-clock-o"></i> ${item.insdt.substring(0,16)}</span>
<h3 class="timeline-header"><a href="#">${item.taskName}</a> ${item.user.caption}</h3>
<div class="timeline-body" style="padding-left:5px;padding-right:5px;">
<div>
${item.record}
</div>
<c:if test ="${item.id!=''}">
<div style="padding-top:5px;">
<input type="file" id='${item.id}' multiple class="file-loading" />
</div>
</c:if>
</div>
</div>
</li>
</c:forEach>
</ul>
</div>
</div>
<!--
<form class="form-horizontal" id="subForm">
<div class="form-group">
<label class="col-sm-2 control-label">文件附件:</label>
</div>
<div class="file-border" id="fileArea">
</div>
</form>
-->
</div>
<!-- 流程打印布局 开始 -->
<div id="inStockExcuteDetail">
<div class="printContent" style="display:none">
<h4 style="text-align:center;">入库处理详情</h4>
</div>
<div class="printContent" style="display:none">
<table style="border-collapse:collapse;margin:0 auto">
<tr >
<td style="border:1px solid black;width:120px;text-align: center;">时间</td>
<td style="border:1px solid black;width:120px;text-align: center;">发起人</td>
<td style="border:1px solid black;width:120px;text-align: center;">任务</td>
<td style="border:1px solid black;width:120px;text-align: center;">流程内容详情</td>
</tr>
<c:forEach items="${businessUnitRecords}" var="item" varStatus="status">
<tr>
<td style="border:1px solid black;width:150px;text-align: center;">${item.insdt.substring(0,16)}</td>
<td style="border:1px solid black;width:120px;text-align: center;">${item.user.caption}</td>
<td style="border:1px solid black;width:120px;text-align: center;">${item.taskName}</td>
<td style="border:1px solid black;width:300px;">${item.record}</td>
</tr>
</c:forEach>
</table>
</div>
<form class="form-horizontal" id="subForm">
<div class="form-group">
<label class="col-sm-2 control-label">文件附件:</label>
</div>
<!-- 文件上传,显示 -->
<div class="file-border" id="fileArea">
</div>
</form>
</div>
<!-- 流程打印布局 结束-->
<div class="modal-footer">
<button type="button" class="btn btn-default" onclick="printpage('inStockExcuteDetail');"><i class="fa fa-print"></i>打印</button>
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,195 @@
<%@page import="com.sipai.entity.business.BusinessUnit" %>
<%@ page language="java" pageEncoding="UTF-8" %>
<%@page import="com.sipai.entity.maintenance.Maintenance" %>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
<%String contextPath = request.getContextPath();%>
<%String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath();%>
<%String serverPath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort();%>
<%request.setAttribute("Status_Finish", Maintenance.Status_Finish);%>
<link rel="stylesheet"
href="<%=request.getContextPath()%>/node_modules/bootstrap-star-rating/css/star-rating.min.css"/>
<script type="text/javascript"
src="<%=request.getContextPath()%>/node_modules/bootstrap-star-rating/js/star-rating.min.js"
charset="utf-8"></script>
<script type="text/javascript">
var tbName_problem = 'tb_maintenance_problem_fille'; //数据表
var tbName_maintenance = 'tb_maintenance_file'; //数据表
var nameSpace = 'maintenance';//保存文件夹
var bucketName = 'maintenance';
var previews = new Array();
var previewConfigs = new Array();
//初始化fileinput控件第一次初始化
function showFileInput(ctrlName) {
var control = $('#' + ctrlName);
control.fileinput('destroy');
control.fileinput({
language: 'zh', //设置语言
showUpload: false, //是否显示上传按钮
showRemove: false,
showCaption: false,//是否显示标题
showBrowse: false,//选择按钮
showClose: false,//右上角关闭按钮
dropZoneEnabled: false,//是否显示拖拽区域
resizeImage: true,
fileActionSettings: {
showDrag: false
},
browseClass: "btn btn-primary", //按钮样式
maxFileCount: 10, //表示允许同时上传的最大文件个数
enctype: 'multipart/form-data',
validateInitialCount: true,
previewFileIcon: "<i class='glyphicon glyphicon-king'></i>",
initialPreviewAsData: true,
initialPreview: previews,
initialPreviewConfig: previewConfigs,
layoutTemplates: {
actionUpload: '',
actionDelete: ''
}
});
$('#kvFileinputModal').on("hidden.bs.modal", function () {
$(this).removeData("bs.modal");
//modal重复打开会导致前面的滚动条失去作用
$('.modal').css("overflow", "auto");
});
}
var viewHandleDetailFun = function (id) {
$.post(ext.contextPath + '/maintenance/showHandleDetailView.do', {id: id}, function (data) {
$("#handleDetailDiv").html(data);
openModal('handleDetailModal');
});
};
//流程审核文件上传所需参数
var masterId_process = '${param.id}';//业务Id
var tbName_process = 'TB_Process_UploadFile'; //数据表
var nameSpace_process = 'ProcessUploadFile';//保存文件夹
var status = 'view';//有查看权限
$(function () {
getFileList_process();
$("#judgemaintainerstaff").rating('refresh', {showClear: false, showCaption: false, readonly: true});
$("#judgeresult").rating('refresh', {showClear: false, showCaption: false, readonly: true});
var result = '${businessUnitRecords}';
result = result.replace(new RegExp("\r\n", "gm"), "");
var json = JSON.parse(result);
$.each(json, function (index, item) {
if (item.id != null && item.id != "") {
previews = new Array();
$('#' + item.id).show();
var data = item.files;
for (var i = 0; i < data.length; i++) {
var previewConfig = new Object();
var path = 'data:image/png;base64,' + data[i].streamFile;
previews.push(path);
previewConfig['width'] = '50px';
previewConfig['caption'] = data[i].filename;
previewConfig['key'] = data[i].id;
previewConfig['showRemove'] = false;//不显示移除按钮
previewConfigs.push(previewConfig);
}
showFileInput(item.id);
}
});
})
//----------------------------------------------------------------------------------------------------------------------------------------------------
var printpage = function (myDiv) {
$('.printContent').show();
var printHtml = document.getElementById(myDiv).innerHTML;
var wind = window.open("", "newwin", "width=1550,height=565,top=80,left=80,toolbar=no,scrollbars=yes,menubar=no");
var link = document.createElement('link');
link.type = 'text/css';
link.rel = 'stylesheet';
link.href = '<%=serverPath%><%=contextPath%>/plugins/bootstrap-ext/dist/bootstrap.min.css';
wind.document.head.appendChild(link);
wind.document.body.innerHTML = printHtml;
wind.print();
wind.close();
$('.printContent').hide();
};
//----------------------------------------------------------------------------------------------------------------------------------------------------
</script>
<div class="row">
<div class="col-md-12">
<!-- The time line -->
<ul class="timeline">
<c:forEach items="${businessUnitRecords}" var="item" varStatus="status">
<li>
<c:choose>
<c:when test='${finishFlag && status.last}'>
<i class="fa fa-check bg-blue"></i>
</c:when>
<c:otherwise>
<i class="fa fa-clock-o bg-grey"></i>
</c:otherwise>
</c:choose>
<div class="timeline-item">
<span class="time"><i class="fa fa-clock-o"></i> ${item.insdt.substring(0,16)}</span>
<h3 class="timeline-header"><a href="#">${item.taskName}</a> ${item.user.caption}</h3>
<div class="timeline-body" style="padding-left:5px;padding-right:5px;">
<div>
${item.record}
</div>
<c:if test="${item.id!=''}">
<div style="padding-top:5px;">
<input type="file" id='${item.id}' multiple class="file-loading"/>
</div>
</c:if>
</div>
</div>
</li>
</c:forEach>
</ul>
</div>
<!-- /.col -->
</div>
<!--
<form class="form-horizontal" id="subForm">
<div class="form-group">
<label class="col-sm-2 control-label">文件附件:</label>
</div>
<div class="file-border" id="fileArea">
</div>
</form>
-->
<!-- 流程打印布局 开始-->
<div id="maintenanceDetail">
<div class="printContent" style="display:none">
<h4 style="text-align:center;">流程处理详情</h4>
</div>
<div class="printContent" style="display:none">
<table style="border-collapse:collapse;margin:0 auto">
<tr>
<td style="border:1px solid black;width:120px;text-align: center;">时间</td>
<td style="border:1px solid black;width:120px;text-align: center;">发起人</td>
<td style="border:1px solid black;width:120px;text-align: center;">任务</td>
<td style="border:1px solid black;width:120px;text-align: center;">流程内容详情</td>
</tr>
<c:forEach items="${businessUnitRecords}" var="item" varStatus="status">
<tr>
<td style="border:1px solid black;width:150px;text-align: center;">${item.insdt.substring(0,16)}</td>
<td style="border:1px solid black;width:120px;text-align: center;">${item.user.caption}</td>
<td style="border:1px solid black;width:120px;text-align: center;">${item.taskName}</td>
<td style="border:1px solid black;width:300px;">${item.record}</td>
</tr>
</c:forEach>
</table>
</div>
<form class="form-horizontal" id="subForm">
<div class="form-group">
<!-- <label class="col-sm-2 control-label">文件附件:</label> -->
</div>
<!-- 文件上传,显示 -->
<div class="file-border" id="fileArea">
</div>
</form>
</div>
<!-- 流程打印布局 结束-->

View File

@ -0,0 +1,281 @@
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<%request.setAttribute("START", SparePartCommString.STATUS_STOCK_START); %>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
//流程审核文件上传所需参数
var masterId_process = '${id}';//业务Id
var tbName_process = 'TB_Process_UploadFile'; //数据表
var nameSpace_process ='ProcessUploadFile';//保存文件夹
var status = 'delete';//有删除权限
function dosave() {
$.post(ext.contextPath + "/sparepart/stockCheck/getCheck.do", {warehouseId: $("#warehouseId").val()}, function(res) {
if (res.data == 0){
$('#subForm').data('bootstrapValidator')
.updateStatus('instockManName', 'NOT_VALIDATED',null)
.validateField('instockManName');
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/sparepart/inStockRecord/save.do", $("#subForm").serialize(), function(data) {
if (data.res == 1){
closeModal('subModal');
$("#table").bootstrapTable('refresh');
//editFun('${id}');
}else if(data.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}
}else{
showAlert('d',res.res);
}
},'json');
}
//输入框验证
$("#subForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
instockDate: {
validators: {
notEmpty: {
message: '入库日期不能为空'
}
}
},
warehouseId: {
validators: {
notEmpty: {
message: '所属仓库不能为空'
}
}
},
instockManName: {
validators: {
notEmpty: {
message: '入库负责人不能为空'
}
}
},
}
});
$(function(){
//初始化文件显示
getFileList_process();
// 初始化显示内容
viewFun();
//选择仓库
$.post(ext.contextPath + "/sparepart/warehouse/getWarehouseForSelectByCompanyId.do", {companyId:"${company.id}"}, function(data) {
var selelct =$("#warehouseId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('').trigger("change");
},'json');
//采购时间
$("#instockDate").datepicker({
language: 'zh-CN',
autoclose: true,
todayHighlight: true,
format:'yyyy-mm-dd',
});
$("#instockDate").datepicker('setDate',new Date());
$.post(ext.contextPath + "/sparepart/contractTaxRate/getContractTaxRate4Selecttext.do", {}, function (data) {
var selelct = $("#taxrate").select2({
data: data,
placeholder: '请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo) { return repo.text; }, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo) { return repo.text; } // 函数用于呈现当前的选择
});
selelct.val(data[0].id).trigger("change");
}, 'json');
});
function viewFun() {
$("#fareAdjustment").change(function () {
let fareAdjustment = $("#fareAdjustment").val();
// 是否后期补票默认是 不显示
if (fareAdjustment == 0) {
document.getElementById('iDiv').style.display = 'block';
} else {
document.getElementById('iDiv').style.display = 'none';
}
});
$("#vatInvoice").change(function () {
let vatInvoice = $("#vatInvoice").val();
// 是否专票 默认不显示
if (vatInvoice == 1 && $('#invoiceNumber').val() != '') {
document.getElementById('tDiv').style.display = 'block';
} else {
document.getElementById('tDiv').style.display = 'none';
}
});
}
//选择入库负责人
var showUser4SelectsFun = function() {
var userIds= $("#instockManId").val();
$.post(ext.contextPath + '/user/userForSelectByStructure.do', {formId:"subForm",hiddenId:"instockManId",textId:"instockManName",userIds:userIds} , function(data) {
$("#user4SelectDiv").html(data);
openModal("user4SelectModal");
});
};
//选择入库审核人
var showUser4AuditSelectsFun = function() {
var userIds= $("#auditManId").val();
$.post(ext.contextPath + '/user/userForSelectByStructure.do', {formId:"subForm",hiddenId:"auditManId",textId:"auditManName",userIds:userIds} , function(data) {
$("#user4SelectDiv").html(data);
openModal("user4SelectModal");
});
};
var vDivFun = function () {
if ($('#invoiceNumber').val() != '' && $("#fareAdjustment").val() == 0) {
document.getElementById('vDiv').style.display = 'block';
} else {
document.getElementById('vDiv').style.display = 'none';
$("#vatInvoice").val(0).trigger("change");
}
}
</script>
<div class="modal fade" id="subModal">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">新增入库记录</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<input name="status" type="hidden" value="${START}"/>
<div class="form-group">
<label class="col-sm-2 control-label">所属厂区</label>
<div class="col-sm-4">
<input name="bizId" type="hidden" value="${company.id}"/>
<p class="form-control-static" >${company.name}</p>
</div>
<label class="col-sm-2 control-label">*所属仓库</label>
<div class="col-sm-4">
<select class="form-control select2" id="warehouseId" name="warehouseId" style="width: 270px;" ></select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*入库单号</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="id" name ="id" placeholder="名称" value="${id}" readonly>
</div>
<label class="col-sm-2 control-label">*入库日期</label>
<div class="col-sm-4">
<div class="input-group date">
<div class="input-group-addon">
<i class="fa fa-calendar"></i>
</div>
<input type="text" class="form-control" id="instockDate" name="instockDate" style="width: 230px;" placeholder="请选择"/>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">票据单号</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="billNumber" name ="billNumber" placeholder="票据单号" value="">
</div>
<label class="col-sm-2 control-label">*入库人</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="instockManName" name="instockManName" placeholder="点击选择" onclick="showUser4SelectsFun();" value="${cu.caption}">
<input id="instockManId" name="instockManId" type="hidden" value="${cu.id}" />
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">是否后期补票</label>
<div class="col-sm-4">
<select type="text" id="fareAdjustment" class="form-control pull-right" name="fareAdjustment" >
<option value=1 selected >是</option>
<option value=0>否</option>
</select>
</div>
<div id="iDiv" style="display: none;">
<label class="col-sm-2 control-label">发票号</label>
<div class="col-sm-4">
<input type="text" class="form-control" id="invoiceNumber" name ="invoiceNumber" placeholder="发票号" value="" onchange="vDivFun()">
</div>
</div>
</div>
<div class="form-group">
<div id="vDiv" style="display: none;">
<label class="col-sm-2 control-label">是否专票</label>
<div class="col-sm-4">
<select type="text" id="vatInvoice" class="form-control pull-right" name="vatInvoice" >
<option value=1>是</option>
<option value=0 selected >否</option>
</select>
</div>
</div>
<div id="tDiv" style="display: none;">
<label class="col-sm-2 control-label">税率(%)</label>
<div class="col-sm-4">
<select class="form-control select2" id="taxrate"
name="taxrate"
style="width: 270px;">
</select>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">审核人</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="auditManName" name="auditManName" placeholder="点击选择" onclick="showUser4AuditSelectsFun();">
<input id="auditManId" name="auditManId" type="hidden" />
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">备注</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" id ="remark" name ="remark" placeholder="备注..."></textarea>
</div>
</div>
<!-- 文件上传,显示 -->
<div class="form-group" style="margin:8px">
<label class="col-sm-2 control-label"></label>
<button type="button" class="btn btn-default btn-file" onclick="fileinput_process()"><i class="fa fa-paperclip"></i>上传文件</button>
</div>
<div id="fileArea">
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="dosave()" id="btn_save">保存</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,664 @@
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<%request.setAttribute("AUDIT", SparePartCommString.STATUS_STOCK_AUDIT); %>
<%request.setAttribute("START", SparePartCommString.STATUS_STOCK_START); %>
<%request.setAttribute("FINSH", SparePartCommString.STATUS_STOCK_FINISH); %>
<%request.setAttribute("INSTOCK_OTHER", SparePartCommString.INSTOCK_OTHER); %>
<%request.setAttribute("INSTOCK_PURCHASE", SparePartCommString.INSTOCK_PURCHASE); %>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
//流程审核文件上传所需参数
var masterId_process = '${inStockRecord.id}';//业务Id
var tbName_process = 'TB_Process_UploadFile'; //数据表
var nameSpace_process ='ProcessUploadFile';//保存文件夹
var status = 'delete';//有删除权限
function doupdate() {
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/sparepart/inStockRecord/update.do", $("#subForm").serialize(), function(data) {
if (data.res == 1){
closeModal('subModal');
$("#table").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}
}
function dosubmit(){
$('#subUnitForm').data('bootstrapValidator')
.updateStatus('targetUsersName', 'NOT_VALIDATED',null)
.validateField('targetUsersName');
$("#subForm").bootstrapValidator('validate');//提交验证
$("#subUnitForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid() && $("#subUnitForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/sparepart/inStockRecord/update.do", $("#subForm").serialize(), function(data) {
var routeNum = $("#routeNum").val();
if (data.res == 1){
$.post(ext.contextPath + "/sparepart/inStockRecord/submitInStockHandle.do", $("#subUnitForm").serialize()+"&routeNum="+routeNum, function(unitdata) {
if (unitdata.res == 1) {
closeModal('subModal')
$("#table").bootstrapTable('refresh');
}else if(unitdata.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}else if(data.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}
}
//提交时先验证审核人不能为空,保存时审核人可以为空
function submitFun(){
//没有入库明细不能发起审核
var allTableData = $("#table_inStockDetail").bootstrapTable('getData');
var otherTableData = $("#table_otherDetail").bootstrapTable('getData');
if(allTableData.length == 0 && otherTableData.length == 0){
showAlert('d','请先添加入库的明细信息!','alertDiv');
}else{
//新增的输入框添加验证
/* $("#subUnitForm").data('bootstrapValidator').addField('targetUsersName',{
validators: {
notEmpty: {
message: '审核人不能为空'
},
}
}); */
dosubmit();
}
}
//关闭模态框时刷新表格数据
function closeModel(){
closeModal('subModal');
$("#table").bootstrapTable('refresh');
}
//新增入库明细
var addInStockDetailFun = function() {
var allTableData = $("#table_inStockDetail").bootstrapTable('getData');
var PRDetailIds="";//PRDetail是purchaseRecordDetail的简写
$.each(allTableData,function(index,item){
if(PRDetailIds!=""){
PRDetailIds+=",";
}
PRDetailIds+=item.purchaseRecordDetailId;
})
$.post(ext.contextPath + '/sparepart/inStockRecord/selectPRDetailForInStockDetails.do', {PRDetailIds:PRDetailIds,companyId:'${inStockRecord.bizId}'},
function(data) {
$("#PRDetail4SelectsDiv").html(data);
openModal('subPDetailModal');
});
};
var doFinishSelects = function(data) {
$.post(ext.contextPath + '/sparepart/inStockRecord/saveInStockRecordDetails.do', {instockRecordId:'${inStockRecord.id}',
PRDetailIds:data} , function(data) {
if(data.res){
$("#table_inStockDetail").bootstrapTable('refresh');
}
},'json');
};
//新增其他入库明细
var addOtherDetailFun = function() {
var allTableData = $("#table_otherDetail").bootstrapTable('getData');
var goodsIds="";
$.each(allTableData,function(index,item){
if(goodsIds!=""){
goodsIds+=",";
}
goodsIds+=item.goods.id;
})
$.post(ext.contextPath + '/sparepart/subscribe/selectGoodsForSubscribeDetail.do', {goodsIds:goodsIds},
function(data) {
$("#Goods4SelectsDiv").html(data);
openModal('subDetailModal');
});
};
var doFinishSelectSubscribeDetail = function(data) {
$.post(ext.contextPath + '/sparepart/inStockRecord/saveOtherDetails.do', {instockRecordId:'${inStockRecord.id}',goodsIds:data} , function(data) {
if(data.res){
$("#table_otherDetail").bootstrapTable('refresh');
}
},'json');
};
//删除多条申购明细数据
var deletesInStockDetailFun = function() {
var checkedItems = $("#table_inStockDetail").bootstrapTable('getSelections');
var datas="";
$.each(checkedItems, function(index, item){
datas+=item.id+",";
});
if(datas==""){
showAlert('d','请先选择记录','alertDiv');
}else{
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete) {
if (willDelete) {
$.post(ext.contextPath + '/sparepart/inStockRecord/deletesInStockRecordDetail.do', {ids:datas} , function(data) {
if(data>0){
$("#table_inStockDetail").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','alertDiv');
}
});
}
});
}
};
var deletesOtherDetailFun = function() {
var checkedItems = $("#table_otherDetail").bootstrapTable('getSelections');
var datas="";
$.each(checkedItems, function(index, item){
datas+=item.id+",";
});
if(datas==""){
showAlert('d','请先选择记录','alertDiv');
}else{
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete) {
if (willDelete) {
$.post(ext.contextPath + '/sparepart/inStockRecord/deletesInStockRecordDetail.do', {ids:datas} , function(data) {
if(data>0){
$("#table_otherDetail").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','alertDiv');
}
});
}
});
}
};
//输入框验证
$("#subForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
instockDate: {
validators: {
notEmpty: {
message: '入库日期不能为空'
}
}
},
warehouseId: {
validators: {
notEmpty: {
message: '所属仓库不能为空'
}
}
},
instockManName: {
validators: {
notEmpty: {
message: '入库负责人不能为空'
}
}
},
}
});
$(function(){
//初始化文件显示
getFileList_process();
//初始化选择框方法在workflow.js里
processSelectNodeForHandle("${businessUnitHandle.taskid}");
$('#table_inStockDetail').bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/inStockRecord/getInStockDetailList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
pid:'${inStockRecord.id}',
type:'${INSTOCK_PURCHASE}'
}
},
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
columns: [
{
checkbox: true, // 显示一个勾选框
},{
field: 'goods.name', // 返回json数据中的name
title: '物品名称', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.model', // 返回json数据中的name
title: '规格型号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.brand', // 返回json数据中的name
title: '品牌', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'goods.unit', // 返回json数据中的name
title: '单位', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'dept.name', // 返回json数据中的name
title: '申购部门', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'instockNumber', // 返回json数据中的name
title: '入库数量', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
/* editable: { //编辑列元素
type: 'text',
title: '数量',
validate: function (v) {
if (!v) return '数量不能为空';
}
} */
},{
field: 'price', // 返回json数据中的name
title: '单价/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
/* editable: { //编辑列元素
type: 'text',
title: '单价',
validate: function (v) {
if (!v) return '单价不能为空';
}
} */
},{
field: 'totalMoney', // 返回json数据中的name
title: '合计/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},
],
//保存列修改后的数据
onEditableSave: function (field, row, oldValue, $el) {
$.post(ext.contextPath + "/sparepart/subscribe/updateSubscribeDetail.do", {id:row.id,price:row.price,number:row.number}, function(data) {
if (data.res == 1){
$("#table_inStockDetail").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','编辑失败');
}else{
showAlert('d',data.res);
}
},'json');
},
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table_inStockDetail");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
$('#table_otherDetail').bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/inStockRecord/getInStockDetailList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
pid:'${inStockRecord.id}',
type:'${INSTOCK_OTHER}'
}
},
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
columns: [
{
checkbox: true, // 显示一个勾选框
},{
field: 'goods.name', // 返回json数据中的name
title: '物品名称', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.model', // 返回json数据中的name
title: '规格型号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.brand', // 返回json数据中的name
title: '品牌', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'goods.unit', // 返回json数据中的name
title: '单位', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'instockNumber', // 返回json数据中的name
title: '入库数量', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
editable: { //编辑列元素
type: 'text',
title: '数量',
validate: function (v) {
if (!v) return '数量不能为空';
}
}
},{
field: 'price', // 返回json数据中的name
title: '单价/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
editable: { //编辑列元素
type: 'text',
title: '单价',
validate: function (v) {
if (!v) return '单价不能为空';
}
}
},{
field: 'totalMoney', // 返回json数据中的name
title: '合计/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},
],
//保存列修改后的数据
onEditableSave: function (field, row, oldValue, $el) {
$.post(ext.contextPath + "/sparepart/inStockRecord/updateInStockDetail.do", {id:row.id,price:row.price,number:row.instockNumber}, function(data) {
if (data.res == 1){
$("#table_otherDetail").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','编辑失败');
}else{
showAlert('d',data.res);
}
},'json');
},
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table_otherDetail");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
$("#subUnitForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
targetUsersName: {
validators: {
notEmpty: {
message: '审核人员不能为空'
}
}
},
}
});
//选择仓库
$.post(ext.contextPath + "/sparepart/warehouse/getWarehouseForSelectByCompanyId.do", {companyId:"${inStockRecord.bizId}"}, function(data) {
var selelct =$("#warehouseId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('${inStockRecord.warehouseId}').trigger("change");
},'json');
//采购时间
$("#instockDate").datepicker({
language: 'zh-CN',
autoclose: true,
todayHighlight: true,
format:'yyyy-mm-dd',
});
});
//选择入库负责人
var showUser4SelectsFun = function() {
var userIds= $("#instockManId").val();
$.post(ext.contextPath + '/user/userForSelectByStructure.do', {formId:"subForm",hiddenId:"instockManId",textId:"instockManName",userIds:userIds} , function(data) {
$("#user4SelectDiv").html(data);
openModal("user4SelectModal");
});
};
//选择审核人
var showUser4AuditSelectsFun = function() {
var userIds= $("#targetusers").val();
var jobIds= $("#targetjobs").val();
$.post(ext.contextPath + '/user/userForSelectByCompany.do', {formId:"subUnitForm",hiddenId:"targetusers",textId:"targetUsersName",userIds:userIds,jobIds:jobIds} , function(data) {
$("#user4SelectDiv").html(data);
openModal("user4SelectModal");
});
};
</script>
<div class="modal fade" id="subModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">编辑入库记录</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<input id="status" name="status" type="hidden" value="${inStockRecord.status}"/>
<input id="bizId" name="bizId" type="hidden" value="${inStockRecord.bizId}"/>
<div class="form-group">
<label class="col-sm-2 control-label">所属厂区</label>
<div class="col-sm-6" >
<p class="form-control-static" >${inStockRecord.company.name}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*入库单号</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="id" name ="id" placeholder="名称" value="${inStockRecord.id}" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*入库日期</label>
<div class="col-sm-6">
<div class="input-group date">
<div class="input-group-addon">
<i class="fa fa-calendar"></i>
</div>
<input type="text" class="form-control" id="instockDate" name="instockDate" style="width: 230px;" value="${inStockRecord.instockDate.substring(0,10)}" placeholder="请选择"/>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">票据单号</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="billNumber" name ="billNumber" placeholder="票据单号" value="${inStockRecord.billNumber}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">发票号</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="invoiceNumber" name ="invoiceNumber" placeholder="发票号" value="${inStockRecord.invoiceNumber}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*所属仓库</label>
<div class="col-sm-6">
<select class="form-control select2" id="warehouseId" name="warehouseId" style="width: 270px;" ></select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*入库人</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="instockManName" name="instockManName" placeholder="点击选择" value="${inStockRecord.instockManName}" onclick="showUser4SelectsFun();">
<input id="instockManId" name="instockManId" type="hidden" value="${inStockRecord.instockManId}" />
</div>
</div>
<%-- <div class="form-group">
<label class="col-sm-2 control-label">审核人</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="auditManName" name="auditManName" placeholder="点击选择" value="${inStockRecord.auditManName}" onclick="showUser4AuditSelectsFun();">
<input id="auditManId" name="auditManId" type="hidden" value="${inStockRecord.auditManId}" />
</div>
</div> --%>
<div class="form-group">
<label class="col-sm-2 control-label">备注</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" id ="remark" name ="remark" placeholder="备注...">${inStockRecord.remark}</textarea>
</div>
</div>
</form>
<!--入库审核退回后显示 -->
<form class="form-horizontal" id="subUnitForm" enctype="multipart/form-data" >
<input type="hidden" class="form-control" name ="id" value="${businessUnitHandle.id}">
<input type="hidden" class="form-control" name ="processid" value="${businessUnitHandle.processid}">
<input type="hidden" class="form-control" name ="taskid" value="${businessUnitHandle.taskid}">
<input type="hidden" class="form-control" name ="businessid" value="${businessUnitHandle.businessid}">
<input type="hidden" class="form-control" name ="taskdefinitionkey" value="${businessUnitHandle.taskdefinitionkey}">
<%-- <input type="hidden" class="form-control" id= "targetusers" name ="targetusers" value="${businessUnitHandle.targetusers}"> --%>
<input type="hidden" class="form-control" name ="unitid" value="${businessUnitHandle.unitid}">
<c:if test='${not empty businessUnitAudit.auditopinion }'>
<div class="form-group">
<label class="col-sm-2 control-label">审核意见:</label>
<div class="col-sm-10">
<textarea class="form-control " id="auditopinion" name="auditopinion" rows="2" placeholder="审核意见" >${businessUnitAudit.auditopinion}</textarea>
</div>
</div>
</c:if>
<div class="form-group">
<label class="col-sm-2 control-label">*下一节点</label>
<div class="col-sm-6">
<select class="form-control select2" id="routeNum" name ="routeNum" style="width: 270px;">
</select>
</div>
</div>
<div id = "selectUsers" class="form-group">
<label class="col-sm-2 control-label">提交至:</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="targetUsersName" name ="targetUsersName" placeholder="下一级人员" onclick="showUser4AuditSelectsFun();" >
<input id="targetusers" name="targetusers" type="hidden" value="${businessUnitHandle.targetusers}"/>
<input class="form-control" id="targetjobs" name="targetjobs" type="hidden" value=""/>
</div>
</div>
<!-- 文件上传,显示 -->
<div class="form-group" style="margin:8px">
<label class="col-sm-2 control-label"></label>
<button type="button" class="btn btn-default btn-file" onclick="fileinput_process()" id="btn_save"><i class="fa fa-paperclip"></i>上传文件</button>
</div>
<div id="fileArea">
</div>
</form>
<div class="box box-primary" >
<div class="box-header with-border">
<h3 class="box-title">采购入库明细</h3>
<div class="box-tools pull-right">
<a onclick="addInStockDetailFun()" class="btn btn-box-tool" data-toggle="tooltip" title="新增"><i class="glyphicon glyphicon-plus"></i></a>
<a onclick="deletesInStockDetailFun()" class="btn btn-box-tool" data-toggle="tooltip" title="删除"><i class="glyphicon glyphicon-minus"></i></a>
</div>
</div>
<!-- /.box-header -->
<div class="box-body ">
<table id="table_inStockDetail"></table>
</div>
</div>
<div class="box box-primary" >
<div class="box-header with-border">
<h3 class="box-title">其他入库明细</h3>
<div class="box-tools pull-right">
<a onclick="addOtherDetailFun()" class="btn btn-box-tool" data-toggle="tooltip" title="新增"><i class="glyphicon glyphicon-plus"></i></a>
<a onclick="deletesOtherDetailFun()" class="btn btn-box-tool" data-toggle="tooltip" title="删除"><i class="glyphicon glyphicon-minus"></i></a>
</div>
</div>
<!-- /.box-header -->
<div class="box-body ">
<table id="table_otherDetail"></table>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" onclick="closeModel()">关闭</button>
<button type="button" class="btn btn-primary" onclick="doupdate()" id="btn_save">保存</button>
<button type="button" class="btn btn-primary" onclick="submitFun()" id="btn_submit">提交审核</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,529 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ page import="com.sipai.entity.base.ServerObject"%>
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security"%>
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
<%request.setAttribute("AUDIT", SparePartCommString.STATUS_STOCK_AUDIT); %>
<%request.setAttribute("START", SparePartCommString.STATUS_STOCK_START); %>
<%request.setAttribute("FINISH", SparePartCommString.STATUS_STOCK_FINISH); %>
<%@page import="com.sipai.entity.activiti.ProcessType" %>
<%request.setAttribute("I_Stock", ProcessType.I_Stock.getId());%>
<!DOCTYPE html>
<!-- <html lang="zh-CN"> -->
<!-- BEGIN HEAD -->
<head>
<title><%= ServerObject.atttable.get("TOPTITLE")%></title>
<!-- 引用页头及CSS页-->
<jsp:include page="/jsp/inc.jsp"></jsp:include>
<!-- bootstrap switch -->
<link rel="stylesheet" href="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/css/bootstrap3/bootstrap-switch.min.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/js/bootstrap-switch.min.js" charset="utf-8"></script>
<!--bootstrap-edittable 表格行内编辑 -->
<link rel="stylesheet" href="<%=request.getContextPath()%>/plugins/bootstrap-editable/css/bootstrap-editable.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-editable/js/bootstrap-editable.js" charset="utf-8"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-editable/js/bootstrap-table-editable.js" charset="utf-8"></script>
<style type="text/css">
.main-header{display:none;}
.content-header{display:none;}
.main-footer{display:none;}
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
.table-hover>tbody>tr:hover {
cursor: pointer;
}
</style>
<script type="text/javascript">
//跳转至待办
function TaskListFun4Type() {
window.parent.addTab('taskList', '待办事项', 'activiti/workflow/taskList.do?modelKey=${I_Stock}-'+unitId);
}
var addFun = function() {
$("#searchForm").bootstrapValidator('validate');//提交验证
if ($("#searchForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + '/sparepart/inStockRecord/add.do', {companyId :companyId } , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
};
var editFun = function(id) {
stopBubbleDefaultEvent();
$.post(ext.contextPath + '/sparepart/inStockRecord/edit.do', {id:id} , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
var viewFun1 = function(id){
stopBubbleDefaultEvent();
$.post(ext.contextPath + '/sparepart/inStockRecord/view.do', {id:id} , function(data) {
$("#subDivView").html(data);
openModal('subModalView');
});
};
var inStockProcessFun = function(id){
stopBubbleDefaultEvent();
// $.post(ext.contextPath + '/sparepart/inStockRecord/showProcessInStockView.do', {id:id} , function(data) {
// $("#subDiv").html(data);
// openModal('inStockExcuteModal');
// });
};
var deleteFun = function(id) {
stopBubbleDefaultEvent();
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete){
if (willDelete) {
$.post(ext.contextPath + '/sparepart/inStockRecord/delete.do', {id : id}, function(data) {
if(data==1){
$("#table").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','mainAlertdiv');
}
});
}
});
};
var test = function(id) {
$.post(ext.contextPath + '/sparepart/inStockRecord/deferredResult.do', function(data) {
console.log(data)
});
};
var deletesFun = function() {
var checkedItems = $("#table").bootstrapTable('getSelections');
var datas="";
$.each(checkedItems, function(index, item){
datas+=item.id+",";
});
if(datas==""){
showAlert('d','请先选择记录','mainAlertdiv');
}else{
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete){
if (willDelete) {
$.post(ext.contextPath + '/sparepart/inStockRecord/deletes.do', {ids:datas} , function(data) {
if(data>0){
$("#table").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','mainAlertdiv');
}
});
}
});
}
};
var dosearch = function() {
$("#table").bootstrapTable('refresh');
};
var companyId = "";
$(function() {
var flag = IsApp();
if (flag==true){
}else{
$(".main-header").show();
$(".content-header").show();
$(".main-footer").show();
}
//简易公司combotree
/*$.post(ext.contextPath + '/user/getUnitForTree.do', { ng: '' }, function (data) {
if (data.length == 1 && !data[0].hasOwnProperty("nodes")) {
//当登陆者的pid以下没有子节点时显示单独一个span
$("#search_pid").val(data[0].id);
$("#companyselect").hide();
$("#companyName").text("公司: " + data[0].text);
companyId = data[0].id;
initFun();
} else if ((data.length == 1 && data.nodes != "") || data.length > 1) {
//第一次加载时赋值
$("#search_pid").val(data[0].id);
$("#cname_input").val(data[0].text);
companyId = data[0].id;
initFun();
//$table.bootstrapTable('refresh');//异步加载重新刷新,待修改
$('#companytree').treeview({
data: data,
showBorder: false,
levels: 3,
});
$('#companytree').on('nodeSelected', function (event, data) {
$("#search_pid").val(data.id);
$("#cname_input").val(data.text);
document.getElementById('ul_tree').style.display = "none";
companyId= data.id;
initFun();
});
} else {
//待完善
};
}, 'json');
//防止点击树的+号收起下拉框
$("#ul_tree").on("click", function (e) {
event.stopPropagation();
});
//点击空白隐藏树
$(document).click(function (e) {
var divTree = $('#ul_tree'); // 设置目标区域
if (!divTree.is(e.target) && divTree.has(e.target).length === 0) {
divTree.hide()
}
})*/
initFun();
//输入框验证
$("#searchForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
search_code: {
validators: {
notEmpty: {
message: '请先选择厂区'
}
}
},
}
});
});
var initFun = function(){
companyId = unitId;
//选择仓库
$.post(ext.contextPath + "/sparepart/warehouse/getWarehouseForSelectByCompanyId.do", {companyId:companyId}, function(data) {
$("#warehouse_id").empty();
var selelct =$("#warehouse_id").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('').trigger("change");
selelct.on("change",function(e){
dosearch();
});
},'json');
var data = [
{
"id": "0",
"text": "否"
},
{
"id": "1",
"text": "是"
},
{
"id": "3",
"text": "全部"
}
]
var selelctfareAdjustment =$("#fareAdjustment1").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelctfareAdjustment.val('3').trigger("change");
selelctfareAdjustment.on("change",function(e){
dosearch();
});
$("#table").bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/inStockRecord/getList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
companyId = unitId;
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
search_name: $('#search_name').val(),
search_code: companyId,
warehouseId: $('#warehouse_id').val(),
fareAdjustment: $('#fareAdjustment1').val(),
}
},
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
onClickRow: function (row) {//单击行事件,执行查看功能
// viewFun(row.id);
},
//detailView: true,//父子表
columns: [
{
checkbox: true, // 显示一个勾选框
formatter: function (value, row, index) {
if (row.status == null || row.status == '0' || row.status == '') {
return {disabled: false,}
} else {
return {disabled: true,}
}
}
},{
field: 'id', // 返回json数据中的name
title: '入库单号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'instockDate', // 返回json数据中的name
title: '入库日期', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter:function (value, row, index){
return value.substring(0,10);
},
},{
field: 'warehouse.name', // 返回json数据中的name
title: '所属仓库', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'instockManName', // 返回json数据中的name
title: '入库人', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'auditManName', // 返回json数据中的name
title: '审核人', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},/* {
field: 'taxrate', // 返回json数据中的name
title: '税率(%)', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
}, */{
field: 'totalMoney', // 返回json数据中的name
title: '含税合计/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter: function (value, row, index){
return value.toFixed(4);
},
},{
field: 'status', // 返回json数据中的name
title: '状态', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter: function (value, row, index){
switch (value){
case '${FINISH}' :
return "审核完成";
case '${START}' :
return "未提交";
case '${AUDIT}' :
return "已提交审核";
default :
return value;
}
}
},{
title: "操作",
align: 'center',
valign: 'middle',
width: 120, // 定义列的宽度单位为像素px
formatter: function (value, row, index) {
var buts= '';
if(row.status == '${START}'){
buts+= '<security:authorize buttonUrl="sparepart/inStockRecord/edit.do">';
buts+= '<button class="btn btn-default btn-sm" title="编辑" onclick="editFun(\'' + row.id + '\')"><i class="fa fa-edit"></i><span class="hidden-md hidden-lg"> 编辑</span></button>';
buts+= '</security:authorize>';
buts+= '<security:authorize buttonUrl="sparepart/inStockRecord/delete.do">';
buts+='<button class="btn btn-default btn-sm" title="删除" onclick="deleteFun(\''+row.id+'\')"><i class="fa fa fa-trash-o"></i><span class="hidden-md hidden-lg">删除</span></button';
buts+= '</security:authorize>';
} else if (row.fareAdjustment == 1 && row.invoiceNumber == "") {
buts+= '<security:authorize buttonUrl="sparepart/inStockRecord/edit.do">';
buts+= '<button class="btn btn-default btn-sm" title="编辑" onclick="editFun(\'' + row.id + '\')"><i class="fa fa-edit"></i><span class="hidden-md hidden-lg"> 编辑</span></button>';
buts+= '</security:authorize>';
buts+= '<button class="btn btn-default btn-sm" title="查看详情" onclick="viewFun1(\'' + row.id + '\')"><i class="fa fa-eye"></i><span class="hidden-md hidden-lg">查看详情</span></button>';
// buts+= '<button class="btn btn-default btn-sm" title="查看详情" onclick="inStockProcessFun(\'' + row.id + '\')"><i class="fa fa-history"></i><span class="hidden-md hidden-lg">查看详情</span></button>';
} else {
buts+= '<button class="btn btn-default btn-sm" title="查看详情" onclick="viewFun1(\'' + row.id + '\')"><i class="fa fa-eye"></i><span class="hidden-md hidden-lg">查看详情</span></button>';
// buts+= '<button class="btn btn-default btn-sm" title="查看详情" onclick="inStockProcessFun(\'' + row.id + '\')"><i class="fa fa-history"></i><span class="hidden-md hidden-lg">查看详情</span></button>';
}
//流程中的显示 快捷跳转
if(row.status != '${FINISH}'){
buts += '<button type="button" class="btn btn-default btn-sm" title="处理" onclick="TaskListFun4Type(\'' + row.id + '\')"><i class="fa fa-play"></i><span class="hidden-md hidden-lg"> 处理</span></button>';
}
buts='<div class="btn-group" >'+buts+'</div>';
return buts;
}
}
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
}
</script>
</head>
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
<div class="wrapper">
<!-- 引用top -->
<%-- <jsp:include page="/jsp/top.jsp"></jsp:include> --%>
<!-- 菜单栏 -->
<%-- <jsp:include page="/jsp/left.jsp"></jsp:include> --%>
<div class="content-wrapper">
<!-- Content Header (Page header) -->
<%--<section class="content-header">
<h1 id ="head_title"></h1>
<ol class="breadcrumb">
<li><a id ='head_firstlevel' href="#"><i class="fa fa-dashboard"></i> </a></li>
<!-- <li class="active">Here</li> -->
</ol>
</section>--%>
<!-- Main content -->
<section class="content container-fluid">
<div id="mainAlertdiv"></div>
<div id="subDiv"></div>
<div id="subDivView"></div>
<div id="subEditDiv"></div>
<div id="subDetailDiv"></div>
<div id="PRDetail4SelectsDiv"></div>
<div id="user4SelectDiv"></div>
<div id="Goods4SelectsDiv"></div>
<div id="fileInputDiv"></div>
<div id="goodsAddDiv"></div>
<div id="equ4SelectDiv"></div>
<div id="fault4SelectDiv"></div>
<form id="searchForm">
<div >
<%--<div class="form-group " style="margin-bottom:10px;">
<input id="search_pid" name="search_pid" type="hidden" />
<span id="companyName" style="height:31px;color:#000000;border-top-left-radius: 4px;border-bottom-left-radius: 4px;font-weight:bold"></span>
</div>
<ul id="companyselect" style="list-style-type:none;padding-left:0px;width:300px;">
<li class="dropdown" style="width:300px;">
<!-- Menu toggle button -->
<a href="#" class="dropdown-toggle" data-toggle="dropdown"
style="width:300px;" onclick="document.getElementById('ul_tree').style.display = 'block';">
<div class="input-group">
<span class="input-group-addon"
style="height:31px;color:#000000;border-top-left-radius: 4px;border-bottom-left-radius: 4px;font-weight:bold">公司:</span>
<input class="form-control " id="cname_input" name="cname_input"
style="height:31px;width: 220px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;"
readonly />
</div><!-- /input-group -->
</a>
<ul id="ul_tree" class="dropdown-menu" data-stopPropagation="true">
<li class="header">
<div id="companytree" style="width: 275px;overflow:auto;"></div>
</li>
</ul>
</li>
</ul>--%>
<div class="form-group" style="padding:0;">
<div class="btn-group" style="width: 220px;padding-bottom:10px;">
<security:authorize buttonUrl="sparepart/inStockRecord/add.do">
<button type="button" class="btn btn-default btn-sm" onclick="addFun();"><i class="fa fa-plus"></i> 新增</button>
<button type="button" class="btn btn-default btn-sm" onclick="deletesFun();"><i class="fa fa-trash-o"></i> 删除</button>
<%-- <button type="button" class="btn btn-default btn-sm" onclick="test();"><i class="fa fa-trash-o"></i> 测试</button>--%>
</security:authorize>
</div>
<div class="form-group pull-right form-inline" >
<label class="form-label" id="companylabel">所属仓库:</label>
<select class="form-control select2 " id="warehouse_id" name ="warehouse_id" style="width: 160px;">
</select>
<label class="form-label">是否后期补票:</label>
<select class="form-control select2 " id="fareAdjustment1" name ="fareAdjustment1" style="width: 160px;">
</select>
<div class="input-group input-group-sm" style="width: 250px;">
<input type="text" id="search_name" name="search_name" class="form-control pull-right" placeholder="入库单号">
<div class="input-group-btn">
<button class="btn btn-default" onclick="dosearch();"><i class="fa fa-search"></i></button>
</div>
</div>
</div>
</div>
</div>
</form>
<table id="table"></table>
</section>
<!-- /.content -->
</div>
<%-- <jsp:include page="/jsp/bottom.jsp"></jsp:include> --%>
<%-- <jsp:include page="/jsp/side.jsp"></jsp:include> --%>
</div>
</body>
<!-- 文件上传-->
<link rel="stylesheet" href="<%=request.getContextPath()%>/node_modules/bootstrap-fileinput/css/fileinput.min.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-fileinput/js/fileinput.min.js" charset="utf-8"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-fileinput/js/locales/zh.js" charset="utf-8"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/JS/commonFileUpload.js" charset="utf-8"></script>
</html>

View File

@ -0,0 +1,284 @@
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<%request.setAttribute("AUDIT", SparePartCommString.STATUS_STOCK_AUDIT); %>
<%request.setAttribute("START", SparePartCommString.STATUS_STOCK_START); %>
<%request.setAttribute("FINISH", SparePartCommString.STATUS_STOCK_FINISH); %>
<%request.setAttribute("INSTOCK_OTHER", SparePartCommString.INSTOCK_OTHER); %>
<%request.setAttribute("INSTOCK_PURCHASE", SparePartCommString.INSTOCK_PURCHASE); %>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
//流程审核文件上传所需参数
var masterId_process = '${inStockRecord.id}';//业务Id
var tbName_process = 'TB_Process_UploadFile'; //数据表
var nameSpace_process ='ProcessUploadFile';//保存文件夹
var status = 'view';//有查看权限
$(function(){
if (0 == '${inStockRecord.fareAdjustment}') {
document.getElementById('iDiv').style.display = 'block';
document.getElementById('vDiv').style.display = 'block';
}
if (1 == '${inStockRecord.vatInvoice}') {
document.getElementById('tDiv').style.display = 'block';
}
//初始化文件显示
getFileList_process();
//显示流程详情
var id = '${inStockRecord.id}';
$.post(ext.contextPath + '/sparepart/inStockRecord/showProcessInStockView.do', {id:id,inModal:'inModal'} , function(data) {
$("#showView").html(data);
});
$('#table_ViewDetail').bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/inStockRecord/getInStockDetailList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
showFooter:true,//添加页脚
sidePagination: 'server', // 设置为服务器端分页
showFooter:true,//添加页脚
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
pid:'${inStockRecord.id}',
<%--type:'${INSTOCK_OTHER}'--%>
<%--type:'${INSTOCK_PURCHASE}'--%>
}
},
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
columns: [
{
checkbox: true, // 显示一个勾选框
},{
field: 'type', // 返回json数据中的name
title: '入库类型', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter:function(value, row, index){
if (value == ${INSTOCK_PURCHASE}) {
return '采购入库';
}
if (value == ${INSTOCK_OTHER}) {
return '其他入库';
}
},
},{
field: 'goods.name', // 返回json数据中的name
title: '物品名称', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.model', // 返回json数据中的name
title: '规格型号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.brand', // 返回json数据中的name
title: '品牌', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'goods.unit', // 返回json数据中的name
title: '单位', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'instockNumber', // 返回json数据中的name
title: '入库数量', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'includeTaxratePrice', // 返回json数据中的name
title: '含税单价/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
footerFormatter:"合计"
},{
field: 'includeTaxrateTotalMoney', // 返回json数据中的name
title: '含税合计/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
footerFormatter:function(value){
if(value==""){
return"";
}else{
var count = 0;
for(var i in value){
count += value[i].includeTaxrateTotalMoney;
}
return count.toFixed(2);
}
},
formatter:function(value, row, index){
return value.toFixed(2);
},
},{
field: 'price', // 返回json数据中的name
title: '单价/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
footerFormatter:"总计",
},{
field: 'totalMoney', // 返回json数据中的name
title: '合计/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
footerFormatter:function(value){
if(value==""){
return"";
}else{
var count = 0;
for(var i in value){
count += value[i].totalMoney;
}
return count.toFixed(2);
}
},
formatter:function(value, row, index){
return value.toFixed(2);
},
},
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table_ViewDetail");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
});
</script>
<div class="modal fade" id="subModalView">
<div class="modal-dialog modal-xlg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">查看入库记录</h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-7 col-xs-12">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<input id="status" name="status" type="hidden" value="${inStockRecord.status}"/>
<div class="form-group">
<label class="col-sm-2 control-label">所属厂区</label>
<div class="col-sm-4" >
<p class="form-control-static" >${inStockRecord.company.name}</p>
</div>
<label class="col-sm-2 control-label">所属仓库</label>
<div class="col-sm-4">
<p class="form-control-static" >${inStockRecord.warehouse.name}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">入库单号</label>
<div class="col-sm-4" >
<p class="form-control-static" >${inStockRecord.id}</p>
</div>
<label class="col-sm-2 control-label">入库日期</label>
<div class="col-sm-4">
<p class="form-control-static" >${inStockRecord.instockDate.substring(0,10)}</p>
</div>
</div>
<div class="form-group">
</div>
<div class="form-group">
<label class="col-sm-2 control-label">票据单号</label>
<div class="col-sm-4">
<p class="form-control-static" >${inStockRecord.billNumber}</p>
</div>
<label class="col-sm-2 control-label">入库人</label>
<div class="col-sm-4">
<p class="form-control-static" >${inStockRecord.instockManName}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">是否后期补票</label>
<div class="col-sm-4">
<p class="form-control-static" >${inStockRecord.fareAdjustmentText}</p>
</div>
<div id="iDiv" style="display: none;">
<label class="col-sm-2 control-label">发票号</label>
<div class="col-sm-4">
<p class="form-control-static" >${inStockRecord.invoiceNumber}</p>
</div>
</div>
</div>
<div class="form-group">
<div id="vDiv" style="display: none;">
<label class="col-sm-2 control-label">是否专票</label>
<div class="col-sm-4">
<p class="form-control-static" >${inStockRecord.vatInvoiceText}</p>
</div>
</div>
<div id="tDiv" style="display: none;">
<label class="col-sm-2 control-label">税率(%)</label>
<div class="col-sm-4">
<p class="form-control-static" >${inStockRecord.taxrate}</p>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">审核人</label>
<div class="col-sm-6" >
<p class="form-control-static" >${inStockRecord.auditManName}</p>
</div>
</div>
<%-- <div class="form-group">
<label class="col-sm-2 control-label">备注</label>
<div class="col-sm-6" style="margin-top:8px;text-align:center">
${inStockRecord.remark}
</div>
</div> --%>
<div class="form-group">
<label class="col-sm-2 control-label">文件附件:</label>
</div>
<!-- 文件上传,显示 -->
<div class="file-border" id="fileArea">
</div>
</form>
<div class="box box-primary" >
<div class="box-header with-border">
<h3 class="box-title">入库明细</h3>
</div>
<!-- /.box-header -->
<div class="box-body ">
<table id="table_ViewDetail"></table>
</div>
</div>
</div>
<div class="col-md-5 col-xs-12" id="showView">
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,274 @@
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<%request.setAttribute("AUDIT", SparePartCommString.STATUS_STOCK_AUDIT); %>
<%request.setAttribute("START", SparePartCommString.STATUS_STOCK_START); %>
<%request.setAttribute("FINISH", SparePartCommString.STATUS_STOCK_FINISH); %>
<%request.setAttribute("INSTOCK_OTHER", SparePartCommString.INSTOCK_OTHER); %>
<%request.setAttribute("INSTOCK_PURCHASE", SparePartCommString.INSTOCK_PURCHASE); %>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
//流程审核文件上传所需参数
var masterId_process = '${inStockRecord.id}';//业务Id
var tbName_process = 'TB_Process_UploadFile'; //数据表
var nameSpace_process ='ProcessUploadFile';//保存文件夹
var status = 'view';//有查看权限
$(function(){
//初始化文件显示
getFileList_process();
$('#table_inStockDetail').bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/inStockRecord/getInStockDetailList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
pid:'${inStockRecord.id}',
type:'${INSTOCK_PURCHASE}'
}
},
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
columns: [
{
checkbox: true, // 显示一个勾选框
},{
field: 'goods.name', // 返回json数据中的name
title: '物品名称', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.model', // 返回json数据中的name
title: '规格型号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.brand', // 返回json数据中的name
title: '品牌', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'goods.unit', // 返回json数据中的name
title: '单位', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'dept.name', // 返回json数据中的name
title: '申购部门', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'instockNumber', // 返回json数据中的name
title: '入库数量', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'price', // 返回json数据中的name
title: '单价/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'totalMoney', // 返回json数据中的name
title: '合计/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table_inStockDetail");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
$('#table_otherDetail').bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/inStockRecord/getInStockDetailList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
pid:'${inStockRecord.id}',
type:'${INSTOCK_OTHER}'
}
},
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
columns: [
{
checkbox: true, // 显示一个勾选框
},{
field: 'goods.name', // 返回json数据中的name
title: '物品名称', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.model', // 返回json数据中的name
title: '规格型号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.brand', // 返回json数据中的name
title: '品牌', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'goods.unit', // 返回json数据中的name
title: '单位', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'instockNumber', // 返回json数据中的name
title: '入库数量', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'price', // 返回json数据中的name
title: '单价/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'totalMoney', // 返回json数据中的name
title: '合计/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table_otherDetail");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
});
</script>
<div class="modal fade" id="subModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">查看入库记录</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<input id="status" name="status" type="hidden" value="${inStockRecord.status}"/>
<div class="form-group">
<label class="col-sm-2 control-label">所属厂区</label>
<div class="col-sm-6" >
<p class="form-control-static" >${inStockRecord.company.name}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">入库单号</label>
<div class="col-sm-6" >
<p class="form-control-static" >${inStockRecord.id}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">入库日期</label>
<div class="col-sm-6">
<p class="form-control-static" >${inStockRecord.instockDate.substring(0,10)}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">票据单号</label>
<div class="col-sm-6">
<p class="form-control-static" >${inStockRecord.billNumber}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">发票号</label>
<div class="col-sm-6">
<p class="form-control-static" >${inStockRecord.invoiceNumber}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">所属仓库</label>
<div class="col-sm-6">
<p class="form-control-static" >${inStockRecord.warehouse.name}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">入库人</label>
<div class="col-sm-6">
<p class="form-control-static" >${inStockRecord.instockManName}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">审核人</label>
<div class="col-sm-6" >
<p class="form-control-static" >${inStockRecord.auditManName}</p>
</div>
</div>
<%-- <div class="form-group">
<label class="col-sm-2 control-label">备注</label>
<div class="col-sm-6" style="margin-top:8px;text-align:center">
${inStockRecord.remark}
</div>
</div> --%>
<div class="form-group">
<label class="col-sm-2 control-label">文件附件:</label>
</div>
<!-- 文件上传,显示 -->
<div class="file-border" id="fileArea">
</div>
</form>
<div class="box box-primary" >
<div class="box-header with-border">
<h3 class="box-title">采购入库明细</h3>
</div>
<!-- /.box-header -->
<div class="box-body ">
<table id="table_inStockDetail"></table>
</div>
</div>
<div class="box box-primary" >
<div class="box-header with-border">
<h3 class="box-title">其他入库明细</h3>
</div>
<!-- /.box-header -->
<div class="box-body ">
<table id="table_otherDetail"></table>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,251 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
<%request.setAttribute("START", SparePartCommString.STATUS_START); %>
<%request.setAttribute("DEPT_AUDIT", SparePartCommString.STATUS_DEPT_AUDIT); %>
<%request.setAttribute("DEPT_REJECT", SparePartCommString.STATUS_DEPT_REJECT); %>
<%request.setAttribute("FINISH", SparePartCommString.STATUS_FINISH); %>
<%request.setAttribute("INQUIRY_AUDIT", SparePartCommString.STATUS_INQUIRY_AUDIT); %>
<%request.setAttribute("INQUIRY_REJECT", SparePartCommString.STATUS_INQUIRY_REJECT); %>
<%request.setAttribute("PURCHASE_INQUIRY", SparePartCommString.STATUS_PURCHASE_INQUIRY); %>
<!DOCTYPE html>
<script type="text/javascript">
var doSearchStock = function() {
$("#table_subscribe").bootstrapTable('refresh');
};
function doSelectStock() {
//var checkItems = $("#table_subscribe").bootstrapTable('getAllSelections');
// var rows1 = $('#table_subscribe').bootstrapTable('getData');
var amountinvoice = 0;
var datas="";
datas_name="";
$.each(selectionIds, function(index, item){
var form1= $("#table_subscribe").bootstrapTable('getRowByUniqueId',item);
amountinvoice += form1.amountinvoice;
console.log(form1.amountinvoice);
if(datas!=""){
datas+=",";
}
datas+=item;
});
$('#${param.formId} #${param.hiddenId}' ).val(datas);
$('#${param.formId} #${param.textId}' ).val(amountinvoice);
//$('#${param.formId} #${param.textId}').val(datas);
closeModal("subDetailModal2");
};
var $table;
var switchStatus=false;
var selectionIds = []; //保存选中ids
var dosearchTable = function() {
$("#table_subscribe").bootstrapTable('refresh');
};
function stateFormatter(value, row, index) {
var flag=false;
$.each(eval('${purchaseId}'), function(index, item){
if(row.id==item.id){
flag=true;
}
});
if (flag)
return {
checked : true//设置选中
};
return value;
}
var $table;
var switchStatus=false;
var selectionIds = []; //保存选中ids
function initialSelectionIds(){
var check_array =eval('${purchaseId}');
if(check_array!=null&& check_array.length>0){
selectionIds =new Array(check_array.length);
for(var i=0;i<check_array.length;i++){
selectionIds[i]=check_array[i].id;
}
}
}
function getCheckedIds(){
var ids="";
var check_array =eval('${purchaseId}');
$.each(check_array, function(index, item){
if(ids!=""){
ids+=",";
}
ids+=item.id;
});
return ids;
}
$(function() {
//选择部门
/* $.post(ext.contextPath + "/user/getDeptByBizId4Select.do", {companyId:'${param.companyId}'}, function(data) {
var selelct = $("#search_code").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('').trigger("change");
selelct.on("change",function(e){
dosearchTable();
});
},'json'); */
selectDept();
$("#search_name").keyup(function(){
if (event.keyCode == 13) {
event.preventDefault();
//回车查询
doSearchStock();
event.stopPropagation();
}
})
initialSelectionIds();
$table=$("#table_subscribe").bootstrapTable({
url: ext.contextPath + '/sparepart/contractDetailInvoice/getList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
uniqueId:'id',
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
search_name: $('#search_name').val(),
companyId : '${param.companyId}',
warehouseId : '${param.warehouseId}',
contractId:$('#contractId').val(),
}
},
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
columns: [
{
checkbox: true, // 显示一个勾选框
//formatter: stateFormatter
formatter: function (i,row) { // 每次加载 checkbox 时判断当前 row 的 id 是否已经存在全局 Set() 里
if($.inArray(row.number,Array.from(selectionIds))!=-1){ // 因为 Set是集合,需要先转换成数组
return {
checked : true // 存在则选中
}
}
}
},{
field: 'number', // 返回json数据中的name
title: '发票编号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'invoicedate', // 返回json数据中的name
title: '开票时间', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'amountinvoice', // 返回json数据中的name
title: '开票金额', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
}
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table_subscribe");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
//绑定选中事件、取消事件、全部选中、全部取消
$table.on('check.bs.table check-all.bs.table uncheck.bs.table uncheck-all.bs.table', function (e, rows) {
var ids = $.map(!$.isArray(rows) ? [rows] : rows, function (row) {
return row.id;
});
func = $.inArray(e.type, ['check', 'check-all']) > -1 ? 'union' : 'difference';
selectionIds = _[func](selectionIds, ids);
});
});
//选中事件操作数组
var union = function(array,ids){
$.each(ids, function (i, id) {
if($.inArray(id,array)==-1){
array[array.length] = id;
}
});
return array;
};
//取消选中事件操作数组
var difference = function(array,ids){
$.each(ids, function (i, id) {
var index = $.inArray(id,array);
if(index!=-1){
array.splice(index, 1);
}
});
return array;
};
var _ = {"union":union,"difference":difference};
//表格分页之前处理多选框数据
function responseHandler(res) {
$.each(res.rows, function (i, row) {
row.checkStatus = $.inArray(row.id, selectionIds) != -1; //判断当前行的数据id是否存在与选中的数组存在则将多选框状态变为true
});
return res;
}
function selectDept(){
//选择部门
$.post(ext.contextPath + "/user/getDeptByBizId4Select.do", {companyId:companyId}, function(data) {
$("#dept_id").empty();
var selelct = $("#dept_id").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
$(".select2-selection--single").css({'height':'30px','paddingTop':'4px'})
selelct.val('').trigger("change");
selelct.on("change",function(e){
$("#table_subscribe").bootstrapTable('refresh');
});
},'json');
}
</script>
<div class="modal fade" id="subDetailModal2">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<input id="contractId" name="contractId" type="hidden" value="${contractId}"/>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">开票记录</h4>
</div>
<div class="modal-body " style="width:100%">
<div id="table_subscribe" style="height:230px;overflow:auto;width:100%"></div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="doSelectStock()">确认</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,251 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ page import="com.sipai.entity.base.ServerObject"%>
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security"%>
<!DOCTYPE html>
<!-- <html lang="zh-CN"> -->
<!-- BEGIN HEAD -->
<head>
<title><%= ServerObject.atttable.get("TOPTITLE")%></title>
<!-- 引用页头及CSS页-->
<jsp:include page="/jsp/inc.jsp"></jsp:include>
<!-- bootstrap switch -->
<link rel="stylesheet" href="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/css/bootstrap3/bootstrap-switch.min.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/js/bootstrap-switch.min.js" charset="utf-8"></script>
<script type="text/javascript">
var dosearch = function() {
$('#table').remove();
var includeTaxrate = $('#includeTaxrate').val();
$.post(ext.contextPath + "/sparepart/goods/getList4Summary.do", {companyId:unitId,
warehouse_id: $('#warehouse_id').val(), dt_month: $('#dt_month').val()}, function(data) {
console.log(data);
var goodsClass = data.GoodsClass;
var in_num_now = data.in_num_now;
var stock_bef = data.stock_bef;
var goodsClassStr = "";
var in_num_nowStr = "";
var stock_befStr = "";
var stock_Str = "";
var in_num_nowSum = 0;
var stock_befSum = 0;
var out_num_nowSumStr = "";
var nowSumStr = "";
if(goodsClass!=null && goodsClass.length>0){
for(var i=0;i<goodsClass.length;i++){
goodsClassStr += '<td align=center>'+goodsClass[i].name+'</td>';
if(includeTaxrate=='0'){
//不含税
in_num_nowStr += '<td align=center>'+in_num_now[i].in_totalMoney_now+'</td>';
stock_befStr += '<td align=center>'+stock_bef[i].stock_totalMoney_bef+'</td>';
stock_Str += '<td align=center class="stock_Str_'+i+'">'+(in_num_now[i].in_totalMoney_now+stock_bef[i].stock_totalMoney_bef)+'</td>';
in_num_nowSum += in_num_now[i].in_totalMoney_now;
stock_befSum += stock_bef[i].stock_totalMoney_bef;
}else{
//含税
in_num_nowStr += '<td align=center>'+in_num_now[i].in_includeTaxrate_totalMoney_now+'</td>';
stock_befStr += '<td align=center>'+stock_bef[i].stock_includeTaxrate_totalMoney_bef+'</td>';
stock_Str += '<td align=center class="stock_Str_'+i+'">'+(in_num_now[i].in_includeTaxrate_totalMoney_now+stock_bef[i].stock_includeTaxrate_totalMoney_bef)+'</td>';
in_num_nowSum += in_num_now[i].in_includeTaxrate_totalMoney_now;
stock_befSum += stock_bef[i].stock_includeTaxrate_totalMoney_bef;
}
out_num_nowSumStr += '<td align=center class="out_num_now_class_sum_'+i+'"></td>';
nowSumStr += '<td align=center class="nowSumStr_'+i+'"></td>';
}
}
var out_num_now = data.out_num_now;
var out_num_nowStr = "";
var out_num_nowSum = 0;
var out_num_nowAllSum = 0;
if(out_num_now!=null && out_num_now.length>0){
for(var i=0;i<out_num_now.length;i++){
if(i==0){
out_num_nowStr += '<tr><td rowspan='+(out_num_now.length+1)+' align=center>本月减少</td>'+
'<td align=center>'+out_num_now[i].unitSname+'</td>';
}else{
out_num_nowStr += '<tr><td align=center>'+out_num_now[i].unitSname+'</td>';
}
var unit_out_num_now = out_num_now[i].unit_out_num_now;
if(unit_out_num_now!=null && unit_out_num_now.length>0){
out_num_nowSum = 0;
for(var ii=0;ii<unit_out_num_now.length;ii++){
if(includeTaxrate=='0'){
//不含税
out_num_nowStr += '<td align=center class="out_num_now_'+ii+'">'+unit_out_num_now[ii].out_totalMoney_now+'</td>';
out_num_nowSum += unit_out_num_now[ii].out_totalMoney_now;
}else{
//含税
out_num_nowStr += '<td align=center class="out_num_now_'+ii+'">'+unit_out_num_now[ii].out_includeTaxrate_totalMoney_now+'</td>';
out_num_nowSum += unit_out_num_now[ii].out_includeTaxrate_totalMoney_now;
}
}
}
out_num_nowStr += '<td align=center class="out_num_now_sum">'+out_num_nowSum+'</td></tr>';
}
}
out_num_nowSumStr += '<td align=center class="out_num_now_class_sum"></td>';
nowSumStr += '<td align=center class="nowSumStr_sum"></td>';
var htmlStr =
'<table class="table table-bordered table-condensed" style="background: #ffffff;" id="table">'+
'<tr><td align=center colspan='+(goodsClass.length+3)+'>材料设备增减汇总表</td></tr>'+
'<tr>'+
'<td align=left colspan='+(goodsClass.length+2)+'>制表部门:</td>'+
'<td align=center>'+$('#dt_month').val()+'</td>'+
'</tr>'+
'<tr>'+
'<td colspan=2 align=center>应记账户\材设类别</td>'+goodsClassStr+
'<td align=center>合计</td>'+
'</tr>'+
'<tr>'+
'<td colspan=2 align=center>上月库存总量</td>'+stock_befStr+
'<td align=center>'+stock_befSum+'</td>'+
'</tr>'+
'<tr>'+
'<td rowspan=2 align=center>本月增加</td><td align=center>入库</td>'+in_num_nowStr+
'<td align=center>'+in_num_nowSum+'</td>'+
'</tr>'+
'<tr>'+
'<td align=center>合计</td>'+stock_Str+
'<td align=center>'+(in_num_nowSum+stock_befSum)+'</td>'+
'</tr>'+out_num_nowStr+
'<tr>'+
'<td align=center>合计</td>'+out_num_nowSumStr+
'</tr>'+
'<tr>'+
'<td colspan=2 align=center>本月库存</td>'+nowSumStr+
'</tr>'+
'</table>';
$('#content').append(htmlStr);
if(goodsClass!=null && goodsClass.length>0){
for(var i=0;i<goodsClass.length;i++){
var value = 0;
$('.out_num_now_'+i).each(function(){
value+=$(this).text()-0;
})
$('.out_num_now_class_sum_'+i).html(value);
}
var value = 0;
$('.out_num_now_sum').each(function(){
value+=$(this).text()-0;
})
$('.out_num_now_class_sum').html(value);
for(var i=0;i<goodsClass.length;i++){
var stock_Str = $('.stock_Str_'+i).text()-0;
var out_num_now_class_sum = $('.out_num_now_class_sum_'+i).text()-0;
$('.nowSumStr_'+i).html(stock_Str-out_num_now_class_sum);
}
var out_num_now_class_sum = $('.out_num_now_class_sum').text()-0;
$('.nowSumStr_sum').html(stock_befSum-out_num_now_class_sum);
}
},'json');
};
var dowarehouse = function() {
//选择仓库
$.post(ext.contextPath + "/sparepart/warehouse/getWarehouseForSelectByCompanyId.do", {companyId:unitId}, function(data) {
$('#name1').val(data[0].id);
var selelct =$("#warehouse_id").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val(data[0].id).trigger("change");
selelct.on("change",function(e){
dosearch();
});
dosearch();
},'json');
}
$(function() {
$('#dt_month').datepicker({
format: 'yyyy-mm',
weekStart: 1,
autoclose: true,
startView: 2,
minViewMode: 1,
maxViewMode: 2,
forceParse: false,
language: 'zh-CN',
}).on('changeDate',function(ev){
dosearch();
});
dowarehouse();
var data = [{ id: 0, text: '不含税' }, { id: 1, text: '含税' }];
var selelct =$("#includeTaxrate").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('0').trigger("change");
selelct.on("change",function(e){
dosearch();
});
});
</script>
</head>
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
<div class="wrapper">
<!-- 引用top -->
<%-- <jsp:include page="/jsp/top.jsp"></jsp:include> --%>
<!-- 菜单栏 -->
<%-- <jsp:include page="/jsp/left.jsp"></jsp:include> --%>
<div class="content-wrapper">
<!-- Content Header (Page header) -->
<!-- <section class="content-header">
<h1 id ="head_title"></h1>
<ol class="breadcrumb">
<li><a id ='head_firstlevel' href="#"><i class="fa fa-dashboard"></i> </a></li>
<li class="active">Here</li>
</ol>
</section> -->
<!-- Main content -->
<section class="content container-fluid">
<div id="mainAlertdiv"></div>
<div id="subDiv"></div>
<div id="fault4SelectDiv"></div>
<div id="equ4SelectDiv"></div>
<div id="content">
<div class="form-group pull-right form-inline" >
<div class="input-group input-group-sm">
<input class="form-control date-picker" id="dt_month" style="width: 160px;" value="${nowmonth}"
type="text" style="background-color:#FFFFFF;height:100%;" />
<span class="input-group-addon">
<i class="fa fa-calendar bigger-110"></i>
</span>
</div>
<div class="input-group input-group-sm">
<label class="form-label">所属仓库:</label>
<select class="form-control select2 " id="warehouse_id" name ="warehouse_id" style="width: 160px;">
</select>
</div>
<div class="input-group input-group-sm">
<label class="form-label">是否含税:</label>
<select class="form-control select2 " id="includeTaxrate" name ="includeTaxrate" style="width: 160px;">
</select>
</div>
</div>
</div>
</section>
<!-- /.content -->
</div>
<%-- <jsp:include page="/jsp/bottom.jsp"></jsp:include> --%>
<%-- <jsp:include page="/jsp/side.jsp"></jsp:include> --%>
</div>
</body>
</html>

View File

@ -0,0 +1,118 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<%@page import="com.sipai.tools.CommUtil"%>
<%request.setAttribute("nowDate", CommUtil.nowDate().replaceAll("[[\\s-:punct:]]","")); %>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
var control;
function initUpload(ctrlName, uploadUrl) {
control = $('#' + ctrlName);
control.fileinput({
language: 'zh', //设置语言
uploadUrl: uploadUrl, //上传的地址
uploadAsync: true, //默认异步上传
showCaption: true,//是否显示标题
showUpload: false, //是否显示上传按钮
browseClass: "btn btn-primary", //按钮样式
allowedFileExtensions: ["xls", "xlsx"], //接收的文件后缀
maxFileCount: 1,//最大上传文件数限制
previewFileIcon: '<i class="glyphicon glyphicon-file"></i>',
showPreview: false, //是否显示预览
previewFileIconSettings: {
'docx': '<i ass="fa fa-file-word-o text-primary"></i>',
'xlsx': '<i class="fa fa-file-excel-o text-success"></i>',
'xls': '<i class="fa fa-file-excel-o text-success"></i>',
'pptx': '<i class="fa fa-file-powerpoint-o text-danger"></i>',
'jpg': '<i class="fa fa-file-photo-o text-warning"></i>',
'pdf': '<i class="fa fa-file-archive-o text-muted"></i>',
'zip': '<i class="fa fa-file-archive-o text-muted"></i>',
},
//参数
uploadExtraData: function () {
var data = {
"companyId": '${param.companyId}', //此处自定义传参
};
return data;
}
});
control.on("fileuploaded", function (event, data, previewId, index) {
if(data.response.status == true){
closeModal('subModal');
$("#table").bootstrapTable('refresh');
showAlert('s',data.response.msg,'mainAlertdiv');
}else{
showAlert('d',data.response.msg);
}
});
}
$(function(){
initUpload("filelist", ext.contextPath+ "/sparepart/subscribe/saveExcelData.do");
})
//导入上传文件的数据
function importExcelFun(){
if($("#filelist").val() == null || $("#filelist").val()==""){
showAlert('d','上传的文件不能为空!');
}else{
control.fileinput("upload");
}
}
//打开模板下载页面
function openExcelTemplate(){
var companyId = unitId;
$.post(ext.contextPath + '/sparepart/subscribe/openExcelTemplate.do', {companyId:companyId} , function(data) {
$("#subDiv2").html(data);
openModal('subModal2');
});
// }
}
//模板下载
function downExcelTemplate(){
var excelCount = $("#excelCount").val();
var channelsid = '${param.channelsid}';
window.open(ext.contextPath + "/sparepart/subscribe/downloadSubscribeDetailExcelTemplate.do?contractId=${param.contractId}&excelCount="+excelCount+"&channelsid="+channelsid);
}
</script>
<div class="modal fade" id="templateModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">模板下载</h4>
</div>
<div class="modal-body">
<form id="importFile" name="importFile" class="form-horizontal" method="post"
enctype="multipart/form-data">
<div id="alertDiv"></div>
<div class="box-body">
<div>
<label class="col-sm-4 control-label">请输入数量:</label>
<div class="col-sm-4">
<input type="number" class="form-control" id="excelCount" name ="excelCount" placeholder="请输入数量:" min="1" value=1 step="1">
</div>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="downExcelTemplate()" id="btn_save">模板下载</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,424 @@
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%request.setAttribute("DEPARTMENT", SparePartCommString.PURCHASE_DEPARTMENT); %>
<%-- <%request.setAttribute("PASS", SparePartCommString.STATUS_PASS); %>
<%request.setAttribute("REJECT", SparePartCommString.STATUS_REJECT); %>
<%request.setAttribute("SUBMIT", SparePartCommString.STATUS_SUBMIT); %> --%>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
/* function doPass(routeNum) {
$('#subForm').data('bootstrapValidator')
.updateStatus('targetUsersName', 'NOT_VALIDATED',null)
.validateField('targetUsersName');
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$("#passstatus").val(true);
$("#routeNum").val(routeNum)
$.post(ext.contextPath + "/sparepart/outStockRecord/AuditOutStockRecord.do", $("#subForm").serialize(), function(data) {
if (data.res == 1) {
closeModal('subModal')
$("#table").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','操作执行失败,请重试');
}else{
showAlert('d',data.res);
}
},'json');
}
}
function doBack(routeNum) {
swal({
title: "退回!",
text: "请输入审核不通过理由:",
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
},
content: {
element: "input",
attributes: {
placeholder: "审核不通过理由...",
},
},
})
.then(function(value){
if(value){
$("#auditopinion").val(value);
$("#passstatus").val(false);
$("#routeNum").val(routeNum);
$.post(ext.contextPath + "/sparepart/outStockRecord/AuditOutStockRecord.do", $("#subForm").serialize(), function(data) {
if (data.res == 1) {
closeModal('subModal')
$("#table").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','退回失败,请重试!');
}else{
showAlert('d',data.res);
}
},'json');
}
});
} */
//流程审核文件上传所需参数
var masterId_process = '${outStockRecord.id}';//业务Id
var tbName_process = 'TB_Process_UploadFile'; //数据表
var nameSpace_process ='ProcessUploadFile';//保存文件夹
var status = 'delete';//有删除权限
function doSubmit() {
$('#subForm').data('bootstrapValidator')
.updateStatus('targetUsersName', 'NOT_VALIDATED',null)
.validateField('targetUsersName');
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码 */
$.post(ext.contextPath + "/sparepart/outStockRecord/AuditOutStockRecord.do", $("#subForm").serialize(), function(data) {
if (data.res == 1) {
closeModal('subModal')
$("#table").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','操作执行失败,请重试');
}else{
showAlert('d',data.res);
}
},'json');
}
}
var showUser4SelectsFun = function() {
var userIds= $("#targetusers").val();
var jobIds= $("#targetjobs").val();
$.post(ext.contextPath + '/user/userForSelectByCompany.do', {formId:"subForm",hiddenId:"targetusers",textId:"targetUsersName",userIds:userIds,jobIds:jobIds} , function(data) {
$("#user4SelectDiv").html(data);
openModal("user4SelectModal");
});
};
$(function(){
//初始化文件显示
getFileList_process();
//初始化选择框方法在workflow.js里
processSelectNode("${businessUnitAudit.taskid}");
$('#table_outStockDetail').bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/outStockRecord/getOutStockDetailList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
detailView: true,//父子表
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
pid:'${outStockRecord.id}',
}
},
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
columns: [
/* {
checkbox: true, // 显示一个勾选框
}, */{
field: 'goods.name', // 返回json数据中的name
title: '物品名称', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.model', // 返回json数据中的name
title: '规格型号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.brand', // 返回json数据中的name
title: '品牌', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'goods.unit', // 返回json数据中的name
title: '单位', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},/* {
field: 'dept.name', // 返回json数据中的name
title: '领用部门', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
}, */{
field: 'outNumber', // 返回json数据中的name
title: '领用数量', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'includedTaxCostPrice', // 返回json数据中的name
title: '含税单价/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'includedTaxTotalMoney', // 返回json数据中的name
title: '含税合计/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},
],
//注册加载子表的事件。index父表当前行的行索引,row父表当前行的Json数据对象,$detail当前行下面创建的新行里面的td对象。
onExpandRow: function (index, row, $detail) {
initDetailTable(index, row, $detail);
//存入sessionStorage
sessionStorage.setItem("index", index);
},
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table_outStockDetail");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
//输入框验证
$("#subForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
targetUsersName: {
validators: {
notEmpty: {
message: '提交人员不能为空'
}
}
},
}
});
//显示流程详情
var id = '${outStockRecord.id}';
$.post(ext.contextPath + '/sparepart/outStockRecord/showProcessOutStockView.do', {id:id,inModal:'inModal'} , function(data) {
$("#showView").html(data);
});
})
var initDetailTable = function (index, row, $detail) {
var pid = row.id;
var detailTable = $detail.html('<table></table>').find('table');
$(detailTable).bootstrapTable({
url: ext.contextPath + '/sparepart/outStockRecord/getInOutDetailList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20, 50], // 设置页面可以显示的数据条数
pageSize: 50, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
// showFooter:true,//添加页脚
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
id: row.id,
type: '${outStockRecord.warehouse.outboundType}'
}
},
sortName: 'morder,name', // 要排序的字段
sortOrder: 'asc', // 排序规则
columns: [
/* {
checkbox: true, // 显示一个勾选框
}, */{
field: 'num', // 返回json数据中的name
title: '数量', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'inStockRecordDetail.price', // 返回json数据中的name
title: '不含税单价/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
// footerFormatter:"不含税总计/元",
},{
field: 'inStockRecordDetail.totalMoney', // 返回json数据中的name
title: '不含税合计/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
// footerFormatter:function(value){
// if(value==""){
// return"";
// }else{
// var count = 0;
// for(var i in value){
// count += value[i].inStockRecordDetail.totalMoney;
// }
// return count.toFixed(4);
// }
// },
}
],
onLoadSuccess: function () { //加载成功时执行
adjustBootstrapTableView("detailTable");
},
onLoadError: function () { //加载失败时执行
console.info("加载数据失败");
}
});
}
</script>
<div class="modal fade" id="subModal">
<div class="modal-dialog modal-xlg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">物资领用(${taskName})</h4>
</div>
<div class="modal-body">
<div class="modal-body">
<div class="row">
<div class="col-md-7 col-xs-12">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm" enctype="multipart/form-data" >
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<div class="form-group">
<label class="col-sm-2 control-label">所属厂区</label>
<div class="col-sm-6" >
<p class="form-control-static" >${outStockRecord.company.name}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">领用单号</label>
<div class="col-sm-6">
<p class="form-control-static" >${outStockRecord.id}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">领用日期</label>
<div class="col-sm-6">
<p class="form-control-static" >${outStockRecord.outDate.substring(0,10)}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">所属仓库</label>
<div class="col-sm-6">
<p class="form-control-static" > ${outStockRecord.warehouse.name}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">票据单号</label>
<div class="col-sm-6">
<p class="form-control-static" >${outStockRecord.billNumber}</p>
</div>
</div>
<%-- <div class="form-group">
<label class="col-sm-2 control-label">领用部门</label>
<div class="col-sm-6" style="margin-top:8px; text-align:center">
${outStockRecord.dept.name}
</div>
</div> --%>
<div class="form-group">
<label class="col-sm-2 control-label">领用人</label>
<div class="col-sm-6">
<p class="form-control-static" >${outStockRecord.userName}</p>
</div>
</div>
<%-- <div class="form-group">
<label class="col-sm-2 control-label">备注</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" id ="remark" name ="remark" placeholder="备注..." readonly>${subscribe.remark}</textarea>
</div>
</div> --%>
<input type="hidden" class="form-control" name ="id" value="${businessUnitAudit.id}">
<input type="hidden" class="form-control" name ="processid" value="${businessUnitAudit.processid}">
<input type="hidden" class="form-control" name ="taskid" value="${businessUnitAudit.taskid}">
<input type="hidden" class="form-control" name ="businessid" value="${businessUnitAudit.businessid}">
<input type="hidden" class="form-control" name =unitid value="${param.unitId}">
<input type="hidden" class="form-control" name ="taskdefinitionkey" value="${businessUnitAudit.taskdefinitionkey}">
<!-- <input type="hidden" class="form-control" id ="passstatus" name ="passstatus" value=true>
<input type="hidden" class="form-control" id ="auditopinion" name ="auditopinion" >
<input type="hidden" class="form-control" id ="routeNum" name ="routeNum" > -->
<div class="form-group">
<label class="col-sm-2 control-label">*审核结果</label>
<div class="col-sm-6">
<select class="form-control select2" id="passstatus" name ="passstatus" style="width: 270px;">
<option value= true>通过</option>
<option value= false>驳回</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*下一节点</label>
<div class="col-sm-6">
<select class="form-control select2" id="routeNum" name ="routeNum" style="width: 270px;">
</select>
</div>
</div>
<!-- <div id = "reject" class="form-group">
<label class="col-sm-2 control-label">*驳回原因</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" id ="auditopinion" name ="auditopinion" placeholder="驳回原因"></textarea>
</div>
</div> -->
<div class="form-group">
<label class="col-sm-2 control-label">审核意见</label>
<div class="col-sm-6">
<textarea class="form-control" rows="2" id ="auditopinion" name ="auditopinion" placeholder="审核意见">通过</textarea>
</div>
</div>
<div id = "selectUsers" class="form-group">
<label class="col-sm-2 control-label">提交至:</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="targetUsersName" name ="targetUsersName" placeholder="下一级人员" onclick="showUser4SelectsFun();" >
<input id="targetusers" name="targetusers" type="hidden" value=""/>
<input class="form-control" id="targetjobs" name="targetjobs" type="hidden" value=""/>
</div>
</div>
<!-- 文件上传,显示 -->
<div class="form-group" style="margin:8px">
<label class="col-sm-2 control-label"></label>
<button type="button" class="btn btn-default btn-file" onclick="fileinput_process()" id="btn_save"><i class="fa fa-paperclip"></i>上传文件</button>
</div>
<div id="fileArea">
</div>
</form>
<div class="box box-primary" >
<div class="box-header with-border">
<h3 class="box-title">出库明细</h3>
</div>
<div class="box-body ">
<table id="table_outStockDetail"></table>
</div>
</div>
</div>
<div class="col-md-5 col-xs-12" id="showView">
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<%-- <button type="button" class="btn btn-primary" onclick="processExecute(doPass,${businessUnitAudit.taskid},true)" id="btn_update">通过</button>
<button type="button" class="btn btn-danger" onclick="processExecute(doBack,${businessUnitAudit.taskid},false)" id="btn_submit">驳回</button> --%>
<button type="button" class="btn btn-primary" onclick="doSubmit()" id="btn_update">提交</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,266 @@
<%@page import="com.sipai.entity.business.BusinessUnit"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<%@page import="com.sipai.entity.maintenance.Maintenance"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%String contextPath = request.getContextPath();%>
<%String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath();%>
<%String serverPath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort();%>
<%request.setAttribute("Status_Finish",Maintenance.Status_Finish);%>
<!-- 补录状态 -->
<%request.setAttribute("TYPE_SUPPLEMENT",Maintenance.TYPE_SUPPLEMENT);%>
<!-- 运维主流程状态 -->
<%request.setAttribute("TYPE_MAINTENANCE",Maintenance.TYPE_MAINTENANCE);%>
<%request.setAttribute("UNIT_HANDLE",BusinessUnit.UNIT_HANDLE);%>
<!-- bootstrap-star-rating -->
<link rel="stylesheet" href="<%=request.getContextPath()%>/node_modules/bootstrap-star-rating/css/star-rating.min.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-star-rating/js/star-rating.min.js" charset="utf-8"></script>
<script type="text/javascript">
//var masterId=$('#maintenanceId').val();
var tbName_problem='tb_maintenance_problem_fille'; //数据表
var tbName_maintenance='tb_maintenance_file'; //数据表
var nameSpace='MaintenanceProblem';//保存文件夹
var previews = new Array();
var previewConfigs = new Array();
/* var student = {
"caption":"lilei",
}
previewConfigs[0]=student; */
//初始化fileinput控件第一次初始化
function showFileInput(ctrlName) {
var control = $('#' + ctrlName);
control.fileinput('destroy');
control.fileinput({
language: 'zh', //设置语言
showUpload: false, //是否显示上传按钮
showRemove:false,
showCaption: false,//是否显示标题
showBrowse:false,//选择按钮
showClose:false,//右上角关闭按钮
dropZoneEnabled: false,//是否显示拖拽区域
resizeImage:true,
fileActionSettings:{
showDrag:false
},
browseClass: "btn btn-primary", //按钮样式
maxFileCount: 10, //表示允许同时上传的最大文件个数
enctype: 'multipart/form-data',
validateInitialCount:true,
previewFileIcon: "<i class='glyphicon glyphicon-king'></i>",
initialPreviewAsData: true,
initialPreview: previews,
initialPreviewConfig:previewConfigs,
layoutTemplates:{
actionUpload:'',
actionDelete:''
}
});
$('#kvFileinputModal').on("hidden.bs.modal", function() {
$(this).removeData("bs.modal");
//modal重复打开会导致前面的滚动条失去作用
$('.modal').css("overflow","auto");
});
}
var viewHandleDetailFun = function(id) {
$.post(ext.contextPath + '/maintenance/showHandleDetailView.do', {id:id} , function(data) {
$("#handleDetailDiv").html(data);
openModal('handleDetailModal');
});
};
//流程审核文件上传所需参数
var masterId_process = '${param.id}';//业务Id
var tbName_process = 'TB_Process_UploadFile'; //数据表
var nameSpace_process ='ProcessUploadFile';//保存文件夹
var status = 'view';//有查看权限
$(function() {
//初始化文件显示
getFileList_process();
$("#judgemaintainerstaff").rating('refresh',{showClear:false,showCaption:false,readonly:true});
$("#judgeresult").rating('refresh',{showClear:false,showCaption:false,readonly:true});
var result='${businessUnitRecords}';
result=result.replace(new RegExp("\r\n","gm"),"");
var json =JSON.parse(result);
$.each(json, function(index, item) {
if(item.id!=null &&item.id!=""){
previews=new Array();
$('#'+item.id).show();
var data =item.files;
for(var i=0;i<data.length;i++){
var previewConfig = new Object();
var path = data[i].abspath;
path=path.substring(path.indexOf('webapps')+7,path.length);
path =ext.basePath.replace(ext.contextPath,'')+ path.replace(/\\/g,"\/");
previews.push(path);
previewConfig['width']= '30px';
previewConfig['caption']= data[i].filename;
previewConfig['key']= data[i].id;
previewConfigs.push(previewConfig);
}
showFileInput(item.id);
}
});
})
//----------------------------------------------------------------------------------------------------------------------------------------------------
var printpage = function (myDiv){
$('.printContent').show();
var printHtml = document.getElementById(myDiv).innerHTML;
var wind = window.open("", "newwin", "width=1550,height=565,top=80,left=80,toolbar=no,scrollbars=yes,menubar=no");
/*
var ss = ".coversheet-pageBoder{"
+" padding: 10px;"
+" margin-top: 10px;"
+" border: 1px solid gray;"
+" page-break-after: always;"
+" border-radius: 5px;"
+" box-shadow: 0 1px 2px 1px rgba(0,0,0,.08), 0 3px 6px rgba(0,0,0,.08);"
+"}"
+".noprint{display: none;}"
+".select2-container .select2-selection--single{ "
+" height:34px; "
+" line-height: 34px; "
+" }"
+" .select2-selection__arrow{"
+" margin-top:3px;"
+" } "
+" .div-row{"
+" margin-left:3px;"
+" margin-right:3px;"
+" }"
+" .div-border{"
+" border-style:solid;"
+" border-width:1px;"
+" text-align:center;"
+" }"
+" .right-border{"
+" border-right:none;"
+" }"
+" .top-right-border{"
+" border-top:none;"
+" border-right:none;"
+" }"
+" .top-border{"
+" border-top:none;"
+" }";
*/
//for Chrome Firefox Opera Safari
//wind.document.body.innerHTML = printHtml;
var link = document.createElement('link');
link.type = 'text/css';
link.rel = 'stylesheet';
link.href = '<%=serverPath%><%=contextPath%>/plugins/bootstrap-ext/dist/bootstrap.min.css';
wind.document.head.appendChild(link);
/*
var style = document.createElement('style');
style.type = 'text/css';
style.rel = 'stylesheet';
style.appendChild(document.createTextNode(ss));
wind.document.head.appendChild(style);
*/
wind.document.body.innerHTML = printHtml;
//console.log(wind.document);
wind.print();
wind.close();
$('.printContent').hide();
};
//----------------------------------------------------------------------------------------------------------------------------------------------------
</script>
<div class="modal fade" id="outStockExcuteModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">物资领用处理详情</h4>
</div>
<div class="modal-body " style="padding-left:0;padding-right:0;">
<div class="row">
<div class="col-md-12">
<!-- The time line -->
<ul class="timeline">
<c:forEach items="${businessUnitRecords}" var="item" varStatus="status">
<li>
<c:choose>
<c:when test='${finishFlag && status.last}'>
<i class="fa fa-check bg-blue"></i>
</c:when>
<c:otherwise >
<i class="fa fa-clock-o bg-grey"></i>
</c:otherwise>
</c:choose>
<div class="timeline-item">
<span class="time"><i class="fa fa-clock-o"></i> ${item.insdt.substring(0,16)}</span>
<h3 class="timeline-header"><a href="#">${item.taskName}</a> ${item.user.caption}</h3>
<div class="timeline-body" style="padding-left:5px;padding-right:5px;">
<div>
${item.record}
</div>
<c:if test ="${item.id!=''}">
<div style="padding-top:5px;">
<input type="file" id='${item.id}' multiple class="file-loading" />
</div>
</c:if>
</div>
</div>
</li>
</c:forEach>
</ul>
</div>
</div>
<!--
<form class="form-horizontal" id="subForm">
<div class="form-group">
<label class="col-sm-2 control-label">文件附件:</label>
</div>
<div class="file-border" id="fileArea">
</div>
</form>
-->
</div>
<!-- 流程打印布局 开始 -->
<div id="outStockExcuteDetail">
<div class="printContent" style="display:none">
<h4 style="text-align:center;">物资领用处理详情</h4>
</div>
<div class="printContent" style="display:none">
<table style="border-collapse:collapse;margin:0 auto">
<tr >
<td style="border:1px solid black;width:120px;text-align: center;">时间</td>
<td style="border:1px solid black;width:120px;text-align: center;">发起人</td>
<td style="border:1px solid black;width:120px;text-align: center;">任务</td>
<td style="border:1px solid black;width:120px;text-align: center;">流程内容详情</td>
</tr>
<c:forEach items="${businessUnitRecords}" var="item" varStatus="status">
<tr>
<td style="border:1px solid black;width:150px;text-align: center;">${item.insdt.substring(0,16)}</td>
<td style="border:1px solid black;width:120px;text-align: center;">${item.user.caption}</td>
<td style="border:1px solid black;width:120px;text-align: center;">${item.taskName}</td>
<td style="border:1px solid black;width:300px;">${item.record}</td>
</tr>
</c:forEach>
</table>
</div>
<form class="form-horizontal" id="subForm">
<div class="form-group">
<label class="col-sm-2 control-label">文件附件:</label>
</div>
<!-- 文件上传,显示 -->
<div class="file-border" id="fileArea">
</div>
</form>
</div>
<!-- 流程打印布局 结束-->
<div class="modal-footer">
<button type="button" class="btn btn-default" onclick="printpage('outStockExcuteDetail');"><i class="fa fa-print"></i>打印</button>
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,195 @@
<%@page import="com.sipai.entity.business.BusinessUnit" %>
<%@ page language="java" pageEncoding="UTF-8" %>
<%@page import="com.sipai.entity.maintenance.Maintenance" %>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
<%String contextPath = request.getContextPath();%>
<%String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath();%>
<%String serverPath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort();%>
<%request.setAttribute("Status_Finish", Maintenance.Status_Finish);%>
<link rel="stylesheet"
href="<%=request.getContextPath()%>/node_modules/bootstrap-star-rating/css/star-rating.min.css"/>
<script type="text/javascript"
src="<%=request.getContextPath()%>/node_modules/bootstrap-star-rating/js/star-rating.min.js"
charset="utf-8"></script>
<script type="text/javascript">
var tbName_problem = 'tb_maintenance_problem_fille'; //数据表
var tbName_maintenance = 'tb_maintenance_file'; //数据表
var nameSpace = 'maintenance';//保存文件夹
var bucketName = 'maintenance';
var previews = new Array();
var previewConfigs = new Array();
//初始化fileinput控件第一次初始化
function showFileInput(ctrlName) {
var control = $('#' + ctrlName);
control.fileinput('destroy');
control.fileinput({
language: 'zh', //设置语言
showUpload: false, //是否显示上传按钮
showRemove: false,
showCaption: false,//是否显示标题
showBrowse: false,//选择按钮
showClose: false,//右上角关闭按钮
dropZoneEnabled: false,//是否显示拖拽区域
resizeImage: true,
fileActionSettings: {
showDrag: false
},
browseClass: "btn btn-primary", //按钮样式
maxFileCount: 10, //表示允许同时上传的最大文件个数
enctype: 'multipart/form-data',
validateInitialCount: true,
previewFileIcon: "<i class='glyphicon glyphicon-king'></i>",
initialPreviewAsData: true,
initialPreview: previews,
initialPreviewConfig: previewConfigs,
layoutTemplates: {
actionUpload: '',
actionDelete: ''
}
});
$('#kvFileinputModal').on("hidden.bs.modal", function () {
$(this).removeData("bs.modal");
//modal重复打开会导致前面的滚动条失去作用
$('.modal').css("overflow", "auto");
});
}
var viewHandleDetailFun = function (id) {
$.post(ext.contextPath + '/maintenance/showHandleDetailView.do', {id: id}, function (data) {
$("#handleDetailDiv").html(data);
openModal('handleDetailModal');
});
};
//流程审核文件上传所需参数
var masterId_process = '${param.id}';//业务Id
var tbName_process = 'TB_Process_UploadFile'; //数据表
var nameSpace_process = 'ProcessUploadFile';//保存文件夹
var status = 'view';//有查看权限
$(function () {
getFileList_process();
$("#judgemaintainerstaff").rating('refresh', {showClear: false, showCaption: false, readonly: true});
$("#judgeresult").rating('refresh', {showClear: false, showCaption: false, readonly: true});
var result = '${businessUnitRecords}';
result = result.replace(new RegExp("\r\n", "gm"), "");
var json = JSON.parse(result);
$.each(json, function (index, item) {
if (item.id != null && item.id != "") {
previews = new Array();
$('#' + item.id).show();
var data = item.files;
for (var i = 0; i < data.length; i++) {
var previewConfig = new Object();
var path = 'data:image/png;base64,' + data[i].streamFile;
previews.push(path);
previewConfig['width'] = '50px';
previewConfig['caption'] = data[i].filename;
previewConfig['key'] = data[i].id;
previewConfig['showRemove'] = false;//不显示移除按钮
previewConfigs.push(previewConfig);
}
showFileInput(item.id);
}
});
})
//----------------------------------------------------------------------------------------------------------------------------------------------------
var printpage = function (myDiv) {
$('.printContent').show();
var printHtml = document.getElementById(myDiv).innerHTML;
var wind = window.open("", "newwin", "width=1550,height=565,top=80,left=80,toolbar=no,scrollbars=yes,menubar=no");
var link = document.createElement('link');
link.type = 'text/css';
link.rel = 'stylesheet';
link.href = '<%=serverPath%><%=contextPath%>/plugins/bootstrap-ext/dist/bootstrap.min.css';
wind.document.head.appendChild(link);
wind.document.body.innerHTML = printHtml;
wind.print();
wind.close();
$('.printContent').hide();
};
//----------------------------------------------------------------------------------------------------------------------------------------------------
</script>
<div class="row">
<div class="col-md-12">
<!-- The time line -->
<ul class="timeline">
<c:forEach items="${businessUnitRecords}" var="item" varStatus="status">
<li>
<c:choose>
<c:when test='${finishFlag && status.last}'>
<i class="fa fa-check bg-blue"></i>
</c:when>
<c:otherwise>
<i class="fa fa-clock-o bg-grey"></i>
</c:otherwise>
</c:choose>
<div class="timeline-item">
<span class="time"><i class="fa fa-clock-o"></i> ${item.insdt.substring(0,16)}</span>
<h3 class="timeline-header"><a href="#">${item.taskName}</a> ${item.user.caption}</h3>
<div class="timeline-body" style="padding-left:5px;padding-right:5px;">
<div>
${item.record}
</div>
<c:if test="${item.id!=''}">
<div style="padding-top:5px;">
<input type="file" id='${item.id}' multiple class="file-loading"/>
</div>
</c:if>
</div>
</div>
</li>
</c:forEach>
</ul>
</div>
<!-- /.col -->
</div>
<!--
<form class="form-horizontal" id="subForm">
<div class="form-group">
<label class="col-sm-2 control-label">文件附件:</label>
</div>
<div class="file-border" id="fileArea">
</div>
</form>
-->
<!-- 流程打印布局 开始-->
<div id="maintenanceDetail">
<div class="printContent" style="display:none">
<h4 style="text-align:center;">流程处理详情</h4>
</div>
<div class="printContent" style="display:none">
<table style="border-collapse:collapse;margin:0 auto">
<tr>
<td style="border:1px solid black;width:120px;text-align: center;">时间</td>
<td style="border:1px solid black;width:120px;text-align: center;">发起人</td>
<td style="border:1px solid black;width:120px;text-align: center;">任务</td>
<td style="border:1px solid black;width:120px;text-align: center;">流程内容详情</td>
</tr>
<c:forEach items="${businessUnitRecords}" var="item" varStatus="status">
<tr>
<td style="border:1px solid black;width:150px;text-align: center;">${item.insdt.substring(0,16)}</td>
<td style="border:1px solid black;width:120px;text-align: center;">${item.user.caption}</td>
<td style="border:1px solid black;width:120px;text-align: center;">${item.taskName}</td>
<td style="border:1px solid black;width:300px;">${item.record}</td>
</tr>
</c:forEach>
</table>
</div>
<form class="form-horizontal" id="subForm">
<div class="form-group">
<!-- <label class="col-sm-2 control-label">文件附件:</label> -->
</div>
<!-- 文件上传,显示 -->
<div class="file-border" id="fileArea">
</div>
</form>
</div>
<!-- 流程打印布局 结束-->

View File

@ -0,0 +1,253 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
<%request.setAttribute("FINSH", SparePartCommString.STATUS_STOCK_FINISH); %>
<script type="text/javascript">
var doSearchoutStock = function() {
$("#table_outStock").bootstrapTable('refresh');
};
function doSelectoutStock() {
var datas="";
datas_name="";
$.each(selectionIds, function(index, item){
if(datas!=""){
datas+=",";
}
datas+=item;
});
if(datas!=""){
$.post(ext.contextPath + '/sparepart/outStockRecord/getOutStockContents.do', {outStockIds:datas}, function(resp) {
$('#${param.formId} #${param.textId}' ).val(datas);
$('#${param.formId} #${param.detailSupplement}' ).val(resp.contents);
$('#${param.moneyFormId} #${param.actualMoneyId}' ).val(resp.money);
closeModal("equipment4SelectModal")
},'json');
$('#${param.formId} #${param.textId}').val(datas);
closeModal("outStock4SelectModal")
}else{
showAlert('d','请选择出库单','alertOutStockDiv');
}
};
function stateFormatter(value, row, index) {
var flag=false;
$.each(eval('${outStockIds}'), function(index, item){
if(row.id==item.id){
flag=true;
}
});
if (flag)
return {
checked : true//设置选中
};
return value;
}
var $table;
var switchStatus=false;
var selectionIds = []; //保存选中ids
function initialSelectionIds(){
var check_array =eval('${outStockIds}');
if(check_array!=null&& check_array.length>0){
selectionIds =new Array(check_array.length);
for(var i=0;i<check_array.length;i++){
selectionIds[i]=check_array[i].id;
}
}
}
function getCheckedIds(){
var ids="";
var check_array =eval('${outStockIds}');
$.each(check_array, function(index, item){
if(ids!=""){
ids+=",";
}
ids+=item.id;
});
return ids;
}
$(function() {
var companyId= '${param.companyId}';
initialSelectionIds();
//选择仓库
$.post(ext.contextPath + "/sparepart/warehouse/getWarehouseForSelectByCompanyId.do", {companyId:companyId}, function(data) {
$("#warehouseId").empty();
var selelct =$("#warehouseId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('').trigger("change");
selelct.on("change",function(e){
doSearchoutStock();
});
},'json');
$table=$("#table_outStock").bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/outStockRecord/getList.do', // 获取表格数据的url
//cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
clickToSelect:true,
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20], // 设置页面可以显示的数据条数
pageSize: 20, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
responseHandler:responseHandler, //在渲染页面数据之前执行的方法,此配置很重要!!!!!!!
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
search_name: $('#search_name').val(),
search_code: companyId,
status:'${FINSH}',
warehouseId: $('#warehouseId').val(),
}
},
queryParamsType: "limit",
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
columns: [
{
checkbox: true, // 显示一个勾选框
formatter: function (i,row) { // 每次加载 checkbox 时判断当前 row 的 id 是否已经存在全局 Set() 里
if($.inArray(row.id,Array.from(selectionIds))!=-1){ // 因为 Set是集合,需要先转换成数组
return {
checked : true // 存在则选中
}
}
}
},{
field: 'id', // 返回json数据中的name
title: '出库单号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'insdt', // 返回json数据中的name
title: '申请日期', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter:function (value, row, index){
return value.substring(0,10);
},
},{
field: 'outDate', // 返回json数据中的name
title: '领用日期', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter:function (value, row, index){
return value.substring(0,10);
},
},{
field: 'warehouse.name', // 返回json数据中的name
title: '所属仓库', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'userName', // 返回json数据中的name
title: '领用人', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'auditManName', // 返回json数据中的name
title: '审核人', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'totalMoney', // 返回json数据中的name
title: '合计金额/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
}
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table_outStock");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
})
//绑定选中事件、取消事件、全部选中、全部取消
$table.on('check.bs.table check-all.bs.table uncheck.bs.table uncheck-all.bs.table', function (e, rows) {
var ids = $.map(!$.isArray(rows) ? [rows] : rows, function (row) {
return row.id;
});
func = $.inArray(e.type, ['check', 'check-all']) > -1 ? 'union' : 'difference';
selectionIds = _[func](selectionIds, ids);
});
});
//选中事件操作数组
var union = function(array,ids){
$.each(ids, function (i, id) {
if($.inArray(id,array)==-1){
array[array.length] = id;
}
});
return array;
};
//取消选中事件操作数组
var difference = function(array,ids){
$.each(ids, function (i, id) {
var index = $.inArray(id,array);
if(index!=-1){
array.splice(index, 1);
}
});
return array;
};
var _ = {"union":union,"difference":difference};
//表格分页之前处理多选框数据
function responseHandler(res) {
$.each(res.rows, function (i, row) {
row.checkStatus = $.inArray(row.id, selectionIds) != -1; //判断当前行的数据id是否存在与选中的数组存在则将多选框状态变为true
});
return res;
}
</script>
<div class="modal fade" id="outStock4SelectModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">选择出库单</h4>
</div>
<div class="modal-body " style="width:100%">
<div id="alertOutStockDiv"></div>
<div class="form-group form-inline" >
<label class="form-label" id="companylabel">所属仓库:</label>
<select class="form-control select2 " id="warehouseId" name ="warehouseId" style="width: 160px;">
</select>
<!-- <div class="input-group input-group-sm" style="width: 250px;">
<input type="text" id="search_name" name="search_name" class="form-control pull-right" placeholder="名称">
<div class="input-group-btn">
<button class="btn btn-default" onclick="doSearchoutStock();"><i class="fa fa-search"></i></button>
</div>
</div> -->
</div>
<div>
<div id="table_outStock" style="height:230px;overflow:auto;width:100%"></div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="doSelectoutStock()">确认</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,232 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<script type="text/javascript">
var doSearchDetail = function() {
$("#table_outStockRecordDetail").bootstrapTable('refresh');
};
function doSelectDetail() {
//var checkItems = $("#table_outStockRecordDetail").bootstrapTable('getAllSelections');
var datas="";
datas_name="";
$.each(selectionIds, function(index, item){
if(datas!=""){
datas+=",";
}
datas+=item;
});
doFinishSelects(datas);
closeModal("subPDetailModal");
};
var $table;
var switchStatus=false;
var selectionIds = []; //保存选中ids
var dosearchTable = function() {
$("#table_outStockRecordDetail").bootstrapTable('refresh');
};
function stateFormatter(value, row, index) {
var flag=false;
$.each(eval('${PRDetailIds}'), function(index, item){
if(row.id==item.id){
flag=true;
}
});
if (flag)
return {
checked : true//设置选中
};
return value;
}
var $table;
var switchStatus=false;
var selectionIds = []; //保存选中ids
function initialSelectionIds(){
var check_array =eval('${PRDetailIds}');
if(check_array!=null&& check_array.length>0){
selectionIds =new Array(check_array.length);
for(var i=0;i<check_array.length;i++){
selectionIds[i]=check_array[i].id;
}
}
}
function getCheckedIds(){
var ids="";
var check_array =eval('${PRDetailIds}');
$.each(check_array, function(index, item){
if(ids!=""){
ids+=",";
}
ids+=item.id;
});
return ids;
}
$(function() {
//选择部门
$.post(ext.contextPath + "/user/getDeptByBizId4Select.do", {companyId:'${param.companyId}'}, function(data) {
var selelct = $("#search_code").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('').trigger("change");
selelct.on("change",function(e){
dosearchTable();
});
},'json');
initialSelectionIds();
$table=$("#table_outStockRecordDetail").bootstrapTable({
url: ext.contextPath + '/sparepart/outStockRecord/getOutStockDetailList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
search_name: $('#search_name').val(),
search_code: $('#search_code').val(),
pids : '${outStockRecordIds}'
}
},
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
columns: [
{
checkbox: true, // 显示一个勾选框
//formatter: stateFormatter
formatter: function (i,row) { // 每次加载 checkbox 时判断当前 row 的 id 是否已经存在全局 Set() 里
if($.inArray(row.id,Array.from(selectionIds))!=-1){ // 因为 Set是集合,需要先转换成数组
return {
checked : true // 存在则选中
}
}
}
},{
field: 'goods.name', // 返回json数据中的name
title: '物品名称', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.model', // 返回json数据中的name
title: '规格型号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.brand', // 返回json数据中的name
title: '品牌', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'goods.unit', // 返回json数据中的name
title: '单位', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'number', // 返回json数据中的name
title: '采购数量', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'price', // 返回json数据中的name
title: '单价/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'totalMoney', // 返回json数据中的name
title: '合计/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table_outStockRecordDetail");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
//绑定选中事件、取消事件、全部选中、全部取消
$table.on('check.bs.table check-all.bs.table uncheck.bs.table uncheck-all.bs.table', function (e, rows) {
var ids = $.map(!$.isArray(rows) ? [rows] : rows, function (row) {
return row.id;
});
func = $.inArray(e.type, ['check', 'check-all']) > -1 ? 'union' : 'difference';
selectionIds = _[func](selectionIds, ids);
});
});
//选中事件操作数组
var union = function(array,ids){
$.each(ids, function (i, id) {
if($.inArray(id,array)==-1){
array[array.length] = id;
}
});
return array;
};
//取消选中事件操作数组
var difference = function(array,ids){
$.each(ids, function (i, id) {
var index = $.inArray(id,array);
if(index!=-1){
array.splice(index, 1);
}
});
return array;
};
var _ = {"union":union,"difference":difference};
//表格分页之前处理多选框数据
function responseHandler(res) {
$.each(res.rows, function (i, row) {
row.checkStatus = $.inArray(row.id, selectionIds) != -1; //判断当前行的数据id是否存在与选中的数组存在则将多选框状态变为true
});
return res;
}
</script>
<div class="modal fade" id="subPDetailModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">选择出库记录明细</h4>
</div>
<div class="modal-body " style="width:100%">
<div id="alertDetailDiv"></div>
<div class="form-group form-inline" style="padding:0;">
<div class="form-group form-inline" >
<div class="input-group input-group-sm" style="width: 250px;">
<input type="text" id="search_name" name="search_name" class="form-control pull-right" placeholder="物品名称">
<div class="input-group-btn">
<button class="btn btn-default" onclick="dosearch();"><i class="fa fa-search"></i></button>
</div>
</div>
</div>
</div>
<div>
<div id="table_outStockRecordDetail" style="height:230px;overflow:auto;width:100%"></div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="doSelectDetail()">确认</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,458 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ page import="com.sipai.entity.base.ServerObject"%>
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security"%>
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
<%request.setAttribute("AUDIT", SparePartCommString.STATUS_STOCK_AUDIT); %>
<%request.setAttribute("START", SparePartCommString.STATUS_STOCK_START); %>
<%request.setAttribute("FINSH", SparePartCommString.STATUS_STOCK_FINISH); %>
<!DOCTYPE html>
<!-- <html lang="zh-CN"> -->
<!-- BEGIN HEAD -->
<head>
<title><%= ServerObject.atttable.get("TOPTITLE")%></title>
<!-- 引用页头及CSS页-->
<jsp:include page="/jsp/inc.jsp"></jsp:include>
<!-- bootstrap switch -->
<link rel="stylesheet" href="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/css/bootstrap3/bootstrap-switch.min.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/js/bootstrap-switch.min.js" charset="utf-8"></script>
<!--bootstrap-edittable 表格行内编辑 -->
<link rel="stylesheet" href="<%=request.getContextPath()%>/plugins/bootstrap-editable/css/bootstrap-editable.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-editable/js/bootstrap-editable.js" charset="utf-8"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-editable/js/bootstrap-table-editable.js" charset="utf-8"></script>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
.table-hover>tbody>tr:hover {
cursor: pointer;
}
</style>
<script type="text/javascript">
var addFun = function() {
$("#searchForm").bootstrapValidator('validate');//提交验证
if ($("#searchForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + '/sparepart/outStockRecord/add.do', {companyId :companyId } , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
};
var editFun = function(id) {
stopBubbleDefaultEvent();
$.post(ext.contextPath + '/sparepart/outStockRecord/edit.do', {id:id} , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
var editFun4Equ = function(id) {
stopBubbleDefaultEvent();
$.post(ext.contextPath + '/sparepart/outStockRecord/edit4Equ.do', {id:id} , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
var viewFun = function(id){
$.post(ext.contextPath + '/sparepart/outStockRecord/view.do', {id:id} , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
var outStockProcessFun = function(id){
stopBubbleDefaultEvent();
$.post(ext.contextPath + '/sparepart/outStockRecord/showProcessOutStockView.do', {id:id} , function(data) {
$("#subDiv").html(data);
openModal('outStockExcuteModal');
});
};
var deleteFun = function(id) {
stopBubbleDefaultEvent();
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete){
if (willDelete) {
$.post(ext.contextPath + '/sparepart/outStockRecord/delete.do', {id : id}, function(data) {
if(data==1){
$("#table").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','mainAlertdiv');
}
});
}
});
};
var deletesFun = function() {
var checkedItems = $("#table").bootstrapTable('getSelections');
var datas="";
$.each(checkedItems, function(index, item){
datas+=item.id+",";
});
if(datas==""){
showAlert('d','请先选择记录','mainAlertdiv');
}else{
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete){
if (willDelete) {
$.post(ext.contextPath + '/sparepart/outStockRecord/deletes.do', {ids:datas} , function(data) {
if(data>0){
$("#table").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','mainAlertdiv');
}
});
}
});
}
};
var dosearch = function() {
$("#table").bootstrapTable('refresh');
};
var companyId = "";
$(function() {
//输入框验证
$("#searchForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
search_code: {
validators: {
notEmpty: {
message: '请先选择厂区'
}
}
},
}
});
initFun();
//简易公司combotree
/*$.post(ext.contextPath + '/user/getUnitForTree.do', { ng: '' }, function (data) {
if (data.length == 1 && !data[0].hasOwnProperty("nodes")) {
//当登陆者的pid以下没有子节点时显示单独一个span
$("#search_pid").val(data[0].id);
$("#companyselect").hide();
$("#companyName").text("公司: " + data[0].text);
companyId = data[0].id;
initFun();
} else if ((data.length == 1 && data.nodes != "") || data.length > 1) {
//第一次加载时赋值
$("#search_pid").val(data[0].id);
$("#cname_input").val(data[0].text);
companyId = data[0].id;
initFun();
//$table.bootstrapTable('refresh');//异步加载重新刷新,待修改
$('#companytree').treeview({
data: data,
showBorder: false,
levels: 3,
});
$('#companytree').on('nodeSelected', function (event, data) {
$("#search_pid").val(data.id);
$("#cname_input").val(data.text);
document.getElementById('ul_tree').style.display = "none";
companyId= data.id;
initFun();
});
} else {
//待完善
};
}, 'json');
//防止点击树的+号收起下拉框
$("#ul_tree").on("click", function (e) {
event.stopPropagation();
});
//点击空白隐藏树
$(document).click(function (e) {
var divTree = $('#ul_tree'); // 设置目标区域
if (!divTree.is(e.target) && divTree.has(e.target).length === 0) {
divTree.hide()
}
})*/
});
var initFun = function(){
companyId = unitId;
//选择仓库
$.post(ext.contextPath + "/sparepart/warehouse/getWarehouseForSelectByCompanyId.do", {companyId:companyId}, function(data) {
$("#warehouseId").empty();
var selelct =$("#warehouseId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('').trigger("change");
selelct.on("change",function(e){
dosearch();
});
},'json');
$("#table").bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/outStockRecord/getList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
companyId = unitId;
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
search_name: $('#search_name').val(),
search_code: companyId,
status:'${FINSH}',
warehouseId: $('#warehouseId').val(),
}
},
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
onClickRow: function (row) {//单击行事件,执行查看功能
// viewFun(row.id);
},
//detailView: true,//父子表
columns: [
{
checkbox: true, // 显示一个勾选框
},{
field: 'id', // 返回json数据中的name
title: '出库单号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'insdt', // 返回json数据中的name
title: '申请日期', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter:function (value, row, index){
return value.substring(0,10);
},
},{
field: 'outDate', // 返回json数据中的name
title: '领用日期', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter:function (value, row, index){
return value.substring(0,10);
},
},{
field: 'warehouse.name', // 返回json数据中的name
title: '所属仓库', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},/* {
field: 'dept.name', // 返回json数据中的name
title: '领用部门', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
}, */{
field: 'userName', // 返回json数据中的name
title: '领用人', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'auditManName', // 返回json数据中的name
title: '审核人', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
}
// ,
// {
// field: 'includedTaxCostPrice', // 返回json数据中的name
// title: '含税单价/元', // 表格表头显示文字
// align: 'center', // 左右居中
// valign: 'middle' // 上下居中
// },{
// field: 'includedTaxTotalMoney', // 返回json数据中的name
// title: '含税合计/元', // 表格表头显示文字
// align: 'center', // 左右居中
// valign: 'middle' // 上下居中
// }
,
{
field: 'totalMoney', // 返回json数据中的name
title: '含税合计/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
}/* ,{
field: 'status', // 返回json数据中的name
title: '审核状态', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter: function (value, row, index){
switch (value){
case '${FINSH}' :
return "审核完成";
case '${START}' :
return "未提交";
case '${AUDIT}' :
return "已提交审核";
default :
return value;
}
}
} */,{
title: "操作",
align: 'center',
valign: 'middle',
width: 120, // 定义列的宽度单位为像素px
formatter: function (value, row, index) {
var buts= '';
<%--buts+= '<security:authorize buttonUrl="sparepart/outStockRecord/edit.do">';--%>
<%--buts+= '<button class="btn btn-default btn-sm" title="编辑" onclick="editFun4Equ(\'' + row.id + '\')"><i class="fa fa-edit"></i><span class="hidden-md hidden-lg"> 编辑</span></button>';--%>
<%--buts+= '</security:authorize>';--%>
buts+= '<button class="btn btn-default btn-sm" title="查看详情" onclick="viewFun(\'' + row.id + '\')"><i class="fa fa-eye"></i><span class="hidden-md hidden-lg">查看详情</span></button>';
buts='<div class="btn-group" >'+buts+'</div>';
return buts;
}
}
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
}
</script>
</head>
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
<div class="wrapper">
<!-- 引用top -->
<%-- <jsp:include page="/jsp/top.jsp"></jsp:include> --%>
<!-- 菜单栏 -->
<%-- <jsp:include page="/jsp/left.jsp"></jsp:include> --%>
<div class="content-wrapper">
<!-- Content Header (Page header) -->
<!-- Main content -->
<section class="content container-fluid">
<div id="mainAlertdiv"></div>
<div id="subDiv"></div>
<div id="subEditDiv"></div>
<div id="emSubDiv"></div>
<div id="subDetailDiv"></div>
<div id="stock4SelectsDiv"></div>
<div id="user4SelectDiv"></div>
<div id="fileInputDiv"></div>
<form id="searchForm">
<div >
<%--<div class="form-group " style="margin-bottom:10px;">
<input id="search_pid" name="search_pid" type="hidden" />
<span id="companyName" style="height:31px;color:#000000;border-top-left-radius: 4px;border-bottom-left-radius: 4px;font-weight:bold"></span>
</div>
<ul id="companyselect" style="list-style-type:none;padding-left:0px;width:300px;">
<li class="dropdown" style="width:300px;">
<!-- Menu toggle button -->
<a href="#" class="dropdown-toggle" data-toggle="dropdown"
style="width:300px;" onclick="document.getElementById('ul_tree').style.display = 'block';">
<div class="input-group">
<span class="input-group-addon"
style="height:31px;color:#000000;border-top-left-radius: 4px;border-bottom-left-radius: 4px;font-weight:bold">公司:</span>
<input class="form-control " id="cname_input" name="cname_input"
style="height:31px;width: 220px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;"
readonly />
</div><!-- /input-group -->
</a>
<ul id="ul_tree" class="dropdown-menu" data-stopPropagation="true">
<li class="header">
<div id="companytree" style="width: 275px;overflow:auto;"></div>
</li>
</ul>
</li>
</ul>--%>
<div class="form-group" style="padding:0;">
<%-- <div class="btn-group" style="width: 220px;padding-bottom:10px;">
<security:authorize buttonUrl="sparepart/purchaseRecord/add.do">
<button type="button" class="btn btn-default btn-sm" onclick="addFun();"><i class="fa fa-plus"></i> 新增</button>
<button type="button" class="btn btn-default btn-sm" onclick="deletesFun();"><i class="fa fa-trash-o"></i> 删除</button>
</security:authorize>
</div> --%>
<div class="form-group pull-right form-inline" >
<label class="form-label" id="companylabel">所属仓库:</label>
<select class="form-control select2 " id="warehouseId" name ="warehouseId" style="width: 160px;">
</select>
<div class="input-group input-group-sm" style="width: 250px;">
<input type="text" id="search_name" name="search_name" class="form-control pull-right" placeholder="领用单号">
<div class="input-group-btn">
<button class="btn btn-default" onclick="dosearch();"><i class="fa fa-search"></i></button>
</div>
</div>
</div>
</div>
</div>
</form>
<table id="table"></table>
</section>
<!-- /.content -->
</div>
<%-- <jsp:include page="/jsp/bottom.jsp"></jsp:include> --%>
<%-- <jsp:include page="/jsp/side.jsp"></jsp:include> --%>
</div>
</body>
<!-- 文件上传-->
<link rel="stylesheet" href="<%=request.getContextPath()%>/node_modules/bootstrap-fileinput/css/fileinput.min.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-fileinput/js/fileinput.min.js" charset="utf-8"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-fileinput/js/locales/zh.js" charset="utf-8"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/JS/commonFileUpload.js" charset="utf-8"></script>
</html>

View File

@ -0,0 +1,448 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ page import="com.sipai.entity.base.ServerObject"%>
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security"%>
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
<%request.setAttribute("AUDIT", SparePartCommString.STATUS_STOCK_AUDIT); %>
<%request.setAttribute("START", SparePartCommString.STATUS_STOCK_START); %>
<%request.setAttribute("FINSH", SparePartCommString.STATUS_STOCK_FINISH); %>
<!DOCTYPE html>
<!-- <html lang="zh-CN"> -->
<!-- BEGIN HEAD -->
<head>
<title><%= ServerObject.atttable.get("TOPTITLE")%></title>
<!-- 引用页头及CSS页-->
<jsp:include page="/jsp/inc.jsp"></jsp:include>
<!-- bootstrap switch -->
<link rel="stylesheet" href="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/css/bootstrap3/bootstrap-switch.min.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/js/bootstrap-switch.min.js" charset="utf-8"></script>
<!--bootstrap-edittable 表格行内编辑 -->
<link rel="stylesheet" href="<%=request.getContextPath()%>/plugins/bootstrap-editable/css/bootstrap-editable.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-editable/js/bootstrap-editable.js" charset="utf-8"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-editable/js/bootstrap-table-editable.js" charset="utf-8"></script>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
.table-hover>tbody>tr:hover {
cursor: pointer;
}
</style>
<script type="text/javascript">
var addFun = function() {
$("#searchForm").bootstrapValidator('validate');//提交验证
if ($("#searchForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + '/sparepart/outStocksectionRecord/add.do', {companyId :companyId } , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
};
var editFun = function(id) {
stopBubbleDefaultEvent();
$.post(ext.contextPath + '/sparepart/outStocksectionRecord/edit.do', {id:id} , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
var editFun4Equ = function(id) {
stopBubbleDefaultEvent();
$.post(ext.contextPath + '/sparepart/outStocksectionRecord/edit4Equ.do', {id:id} , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
var viewFun = function(id){
$.post(ext.contextPath + '/sparepart/outStocksectionRecord/view.do', {id:id} , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
var outStockProcessFun = function(id){
stopBubbleDefaultEvent();
$.post(ext.contextPath + '/sparepart/outStocksectionRecord/showProcessOutStockView.do', {id:id} , function(data) {
$("#subDiv").html(data);
openModal('outStockExcuteModal');
});
};
var deleteFun = function(id) {
stopBubbleDefaultEvent();
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete){
if (willDelete) {
$.post(ext.contextPath + '/sparepart/outStocksectionRecord/delete.do', {id : id}, function(data) {
if(data==1){
$("#table").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','mainAlertdiv');
}
});
}
});
};
var deletesFun = function() {
var checkedItems = $("#table").bootstrapTable('getSelections');
var datas="";
$.each(checkedItems, function(index, item){
datas+=item.id+",";
});
if(datas==""){
showAlert('d','请先选择记录','mainAlertdiv');
}else{
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete){
if (willDelete) {
$.post(ext.contextPath + '/sparepart/outStocksectionRecord/deletes.do', {ids:datas} , function(data) {
if(data>0){
$("#table").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','mainAlertdiv');
}
});
}
});
}
};
var dosearch = function() {
$("#table").bootstrapTable('refresh');
};
var companyId = "";
$(function() {
//输入框验证
$("#searchForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
search_code: {
validators: {
notEmpty: {
message: '请先选择厂区'
}
}
},
}
});
//简易公司combotree
$.post(ext.contextPath + '/user/getUnitForTree.do', { ng: '' }, function (data) {
if (data.length == 1 && !data[0].hasOwnProperty("nodes")) {
//当登陆者的pid以下没有子节点时显示单独一个span
$("#search_pid").val(data[0].id);
$("#companyselect").hide();
$("#companyName").text("公司: " + data[0].text);
companyId = data[0].id;
initFun();
} else if ((data.length == 1 && data.nodes != "") || data.length > 1) {
//第一次加载时赋值
$("#search_pid").val(data[0].id);
$("#cname_input").val(data[0].text);
companyId = data[0].id;
initFun();
//$table.bootstrapTable('refresh');//异步加载重新刷新,待修改
$('#companytree').treeview({
data: data,
showBorder: false,
levels: 3,
});
$('#companytree').on('nodeSelected', function (event, data) {
$("#search_pid").val(data.id);
$("#cname_input").val(data.text);
document.getElementById('ul_tree').style.display = "none";
companyId= data.id;
initFun();
});
} else {
//待完善
};
}, 'json');
//防止点击树的+号收起下拉框
$("#ul_tree").on("click", function (e) {
event.stopPropagation();
});
//点击空白隐藏树
$(document).click(function (e) {
var divTree = $('#ul_tree'); // 设置目标区域
if (!divTree.is(e.target) && divTree.has(e.target).length === 0) {
divTree.hide()
}
})
});
var initFun = function(){
//选择仓库
$.post(ext.contextPath + "/sparepart/warehouse/getWarehouseForSelectByCompanyId.do", {companyId:companyId}, function(data) {
$("#warehouseId").empty();
var selelct =$("#warehouseId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('').trigger("change");
selelct.on("change",function(e){
dosearch();
});
},'json');
$("#table").bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/outStocksectionRecord/getList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
search_name: $('#search_name').val(),
search_code: companyId,
status:'${FINSH}',
warehouseId: $('#warehouseId').val(),
}
},
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
onClickRow: function (row) {//单击行事件,执行查看功能
viewFun(row.id);
},
//detailView: true,//父子表
columns: [
{
checkbox: true, // 显示一个勾选框
},{
field: 'id', // 返回json数据中的name
title: '出库单号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'insdt', // 返回json数据中的name
title: '申请日期', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter:function (value, row, index){
return value.substring(0,10);
},
},{
field: 'outDate', // 返回json数据中的name
title: '领用日期', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter:function (value, row, index){
return value.substring(0,10);
},
},{
field: 'warehouse.name', // 返回json数据中的name
title: '所出仓库', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'inhouse.name', // 返回json数据中的name
title: '领入仓库', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},
field: 'userName', // 返回json数据中的name
title: '领用人', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'auditManName', // 返回json数据中的name
title: '审核人', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'totalMoney', // 返回json数据中的name
title: '合计金额/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
}/* ,{
field: 'status', // 返回json数据中的name
title: '审核状态', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter: function (value, row, index){
switch (value){
case '${FINSH}' :
return "审核完成";
case '${START}' :
return "未提交";
case '${AUDIT}' :
return "已提交审核";
default :
return value;
}
}
} */,{
title: "操作",
align: 'center',
valign: 'middle',
width: 120, // 定义列的宽度单位为像素px
formatter: function (value, row, index) {
var buts= '';
buts+= '<security:authorize buttonUrl="sparepart/outStocksectionRecord/edit.do">';
buts+= '<button class="btn btn-default btn-sm" title="编辑" onclick="editFun4Equ(\'' + row.id + '\')"><i class="fa fa-edit"></i><span class="hidden-md hidden-lg"> 编辑</span></button>';
buts+= '</security:authorize>';
buts+= '<button class="btn btn-default btn-sm" title="查看详情" onclick="outStockProcessFun(\'' + row.id + '\')"><i class="fa fa-history"></i><span class="hidden-md hidden-lg">查看详情</span></button>';
buts='<div class="btn-group" >'+buts+'</div>';
return buts;
}
}
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
}
</script>
</head>
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
<div class="wrapper">
<!-- 引用top -->
<%-- <jsp:include page="/jsp/top.jsp"></jsp:include> --%>
<!-- 菜单栏 -->
<%-- <jsp:include page="/jsp/left.jsp"></jsp:include> --%>
<div class="content-wrapper">
<!-- Content Header (Page header) -->
<section class="content-header">
<h1 id ="head_title"></h1>
<ol class="breadcrumb">
<li><a id ='head_firstlevel' href="#"><i class="fa fa-dashboard"></i> </a></li>
<!-- <li class="active">Here</li> -->
</ol>
</section>
<!-- Main content -->
<section class="content container-fluid">
<div id="mainAlertdiv"></div>
<div id="subDiv"></div>
<div id="subEditDiv"></div>
<div id="emSubDiv"></div>
<div id="subDetailDiv"></div>
<div id="stock4SelectsDiv"></div>
<div id="user4SelectDiv"></div>
<div id="fileInputDiv"></div>
<form id="searchForm">
<div >
<div class="form-group " style="margin-bottom:10px;">
<input id="search_pid" name="search_pid" type="hidden" />
<span id="companyName" style="height:31px;color:#000000;border-top-left-radius: 4px;border-bottom-left-radius: 4px;font-weight:bold"></span>
</div>
<ul id="companyselect" style="list-style-type:none;padding-left:0px;width:300px;">
<li class="dropdown" style="width:300px;">
<!-- Menu toggle button -->
<a href="#" class="dropdown-toggle" data-toggle="dropdown"
style="width:300px;" onclick="document.getElementById('ul_tree').style.display = 'block';">
<div class="input-group">
<span class="input-group-addon"
style="height:31px;color:#000000;border-top-left-radius: 4px;border-bottom-left-radius: 4px;font-weight:bold">公司:</span>
<input class="form-control " id="cname_input" name="cname_input"
style="height:31px;width: 220px;border-top-right-radius: 4px;border-bottom-right-radius: 4px;"
readonly />
</div><!-- /input-group -->
</a>
<ul id="ul_tree" class="dropdown-menu" data-stopPropagation="true">
<li class="header">
<div id="companytree" style="width: 275px;overflow:auto;"></div>
</li>
</ul>
</li>
</ul>
<div class="form-group" style="padding:0;">
<%-- <div class="btn-group" style="width: 220px;padding-bottom:10px;">
<security:authorize buttonUrl="sparepart/purchaseRecord/add.do">
<button type="button" class="btn btn-default btn-sm" onclick="addFun();"><i class="fa fa-plus"></i> 新增</button>
<button type="button" class="btn btn-default btn-sm" onclick="deletesFun();"><i class="fa fa-trash-o"></i> 删除</button>
</security:authorize>
</div> --%>
<div class="form-group pull-right form-inline" >
<label class="form-label" id="companylabel">所属仓库:</label>
<select class="form-control select2 " id="warehouseId" name ="warehouseId" style="width: 160px;">
</select>
<div class="input-group input-group-sm" style="width: 250px;">
<input type="text" id="search_name" name="search_name" class="form-control pull-right" placeholder="名称">
<div class="input-group-btn">
<button class="btn btn-default" onclick="dosearch();"><i class="fa fa-search"></i></button>
</div>
</div>
</div>
</div>
</div>
</form>
<table id="table"></table>
</section>
<!-- /.content -->
</div>
<%-- <jsp:include page="/jsp/bottom.jsp"></jsp:include> --%>
<%-- <jsp:include page="/jsp/side.jsp"></jsp:include> --%>
</div>
</body>
<!-- 文件上传-->
<link rel="stylesheet" href="<%=request.getContextPath()%>/node_modules/bootstrap-fileinput/css/fileinput.min.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-fileinput/js/fileinput.min.js" charset="utf-8"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-fileinput/js/locales/zh.js" charset="utf-8"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/JS/commonFileUpload.js" charset="utf-8"></script>
</html>

View File

@ -0,0 +1,193 @@
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<%request.setAttribute("AUDIT", SparePartCommString.STATUS_STOCK_AUDIT); %>
<%request.setAttribute("START", SparePartCommString.STATUS_STOCK_START); %>
<%request.setAttribute("FINISH", SparePartCommString.STATUS_STOCK_FINISH); %>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
//流程审核文件上传所需参数
var masterId_process = '${outStockRecord.id}';//业务Id
var tbName_process = 'TB_Process_UploadFile'; //数据表
var nameSpace_process ='ProcessUploadFile';//保存文件夹
var status = 'view';//有查看权限
$(function(){
//初始化文件显示
getFileList_process();
$('#table_outStockDetail').bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/outStocksectionRecord/getOutStockDetailList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
pid:'${outStockRecord.id}',
}
},
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
columns: [
/* {
checkbox: true, // 显示一个勾选框
}, */{
field: 'goods.name', // 返回json数据中的name
title: '物品名称', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.model', // 返回json数据中的name
title: '规格型号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.brand', // 返回json数据中的name
title: '品牌', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'goods.unit', // 返回json数据中的name
title: '单位', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},/* {
field: 'dept.name', // 返回json数据中的name
title: '领用部门', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
}, */{
field: 'outNumber', // 返回json数据中的name
title: '领用数量', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'price', // 返回json数据中的name
title: '单价/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'totalMoney', // 返回json数据中的name
title: '合计/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table_outStockDetail");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
});
</script>
<div class="modal fade" id="subModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">查看物资领用记录</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<input id="status" name="status" type="hidden" value="${outStockRecord.status}"/>
<div class="form-group">
<label class="col-sm-2 control-label">所属厂区</label>
<div class="col-sm-6">
<p class="form-control-static" >${outStockRecord.company.name}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">领用单号</label>
<div class="col-sm-6" >
<p class="form-control-static" >${outStockRecord.id}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">领用日期</label>
<div class="col-sm-6" >
<p class="form-control-static" >${outStockRecord.outDate.substring(0,10)}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">所出仓库</label>
<div class="col-sm-6">
<p class="form-control-static" >${outStockRecord.warehouse.name}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">领入仓库</label>
<div class="col-sm-6">
<p class="form-control-static" >${outStockRecord.inhouse.name}</p>
</div>
</div>
<%-- <div class="form-group">
<label class="col-sm-2 control-label">领用部门</label>
<div class="col-sm-6" style="margin-top:8px; text-align:center">
${outStockRecord.dept.name}
</div>
</div> --%>
<div class="form-group">
<label class="col-sm-2 control-label">领用人</label>
<div class="col-sm-6">
<p class="form-control-static" >${outStockRecord.userName}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">审核人</label>
<div class="col-sm-6">
<p class="form-control-static" >${outStockRecord.auditManName}</p>
</div>
</div>
<%-- <div class="form-group">
<label class="col-sm-2 control-label">备注</label>
<div class="col-sm-6" style="margin-top:8px; text-align:center">
${outStockRecord.remark}
</div>
</div> --%>
<div class="form-group">
<label class="col-sm-2 control-label">文件附件:</label>
</div>
<!-- 文件上传,显示 -->
<div class="file-border" id="fileArea">
</div>
</form>
<div class="box box-primary" >
<div class="box-header with-border">
<h3 class="box-title">领用明细</h3>
</div>
<!-- /.box-header -->
<div class="box-body ">
<table id="table_outStockDetail"></table>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,277 @@
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<%request.setAttribute("AUDIT", SparePartCommString.STATUS_STOCK_AUDIT); %>
<%request.setAttribute("START", SparePartCommString.STATUS_STOCK_START); %>
<%request.setAttribute("FINISH", SparePartCommString.STATUS_STOCK_FINISH); %>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
//流程审核文件上传所需参数
var masterId_process = '${outStockRecord.id}';//业务Id
var tbName_process = 'TB_Process_UploadFile'; //数据表
var nameSpace_process ='ProcessUploadFile';//保存文件夹
var status = 'view';//有查看权限
var viewDetailFun = function(id){
$.post(ext.contextPath + '/sparepart/outStockRecord/viewDetail.do', {id:id} , function(data) {
$("#subViewDiv").html(data);
openModal('subViewModal');
});
};
$(function(){
//初始化文件显示
getFileList_process();
$.post(ext.contextPath + '/sparepart/outStockRecord/showProcessOutStockView.do', {id: '${outStockRecord.id}',inModal:'inModal'} , function(data) {
$("#showView").html(data);
});
$('#table_outStockDetail').bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/outStockRecord/getOutStockDetailList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
detailView: true,//父子表
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
pid:'${outStockRecord.id}',
}
},
onClickRow: function (row) {//单击行事件,执行查看功能
// viewDetailFun(row.id);
},
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
columns: [
/* {
checkbox: true, // 显示一个勾选框
}, */{
field: 'goods.name', // 返回json数据中的name
title: '物品名称', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.model', // 返回json数据中的name
title: '规格型号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.brand', // 返回json数据中的name
title: '品牌', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'goods.unit', // 返回json数据中的name
title: '单位', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},/* {
field: 'dept.name', // 返回json数据中的name
title: '领用部门', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
}, */{
field: 'outNumber', // 返回json数据中的name
title: '领用数量', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},
{
field: 'includedTaxCostPrice', // 返回json数据中的name
title: '含税单价/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'includedTaxTotalMoney', // 返回json数据中的name
title: '含税合计/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},
],
//注册加载子表的事件。index父表当前行的行索引,row父表当前行的Json数据对象,$detail当前行下面创建的新行里面的td对象。
onExpandRow: function (index, row, $detail) {
initDetailTable(index, row, $detail);
//存入sessionStorage
sessionStorage.setItem("index", index);
},
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table_outStockDetail");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
});
var initDetailTable = function (index, row, $detail) {
var pid = row.id;
var detailTable = $detail.html('<table></table>').find('table');
$(detailTable).bootstrapTable({
url: ext.contextPath + '/sparepart/outStockRecord/getInOutDetailList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20, 50], // 设置页面可以显示的数据条数
pageSize: 50, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
// showFooter:true,//添加页脚
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
id: row.id,
type: '${outStockRecord.warehouse.outboundType}'
}
},
sortName: 'morder,name', // 要排序的字段
sortOrder: 'asc', // 排序规则
columns: [
/* {
checkbox: true, // 显示一个勾选框
}, */{
field: 'num', // 返回json数据中的name
title: '数量', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'inStockRecordDetail.price', // 返回json数据中的name
title: '不含税单价/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
// footerFormatter:"不含税总计/元",
},{
field: 'inStockRecordDetail.totalMoney', // 返回json数据中的name
title: '不含税合计/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
// footerFormatter:function(value){
// if(value==""){
// return"";
// }else{
// var count = 0;
// for(var i in value){
// count += value[i].inStockRecordDetail.totalMoney;
// }
// return count.toFixed(4);
// }
// },
}
],
onLoadSuccess: function () { //加载成功时执行
adjustBootstrapTableView("detailTable");
},
onLoadError: function () { //加载失败时执行
console.info("加载数据失败");
}
});
}
</script>
<div class="modal fade" id="subModal">
<div class="modal-dialog modal-xlg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">查看物资领用记录</h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-7 col-xs-12">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<input id="status" name="status" type="hidden" value="${outStockRecord.status}"/>
<div class="form-group">
<label class="col-sm-2 control-label">所属厂区</label>
<div class="col-sm-6">
<p class="form-control-static" >${outStockRecord.company.name}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">领用单号</label>
<div class="col-sm-6" >
<p class="form-control-static" >${outStockRecord.id}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">领用日期</label>
<div class="col-sm-6" >
<p class="form-control-static" >${outStockRecord.outDate.substring(0,10)}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">所属仓库</label>
<div class="col-sm-6">
<p class="form-control-static" >${outStockRecord.warehouse.name}</p>
</div>
</div>
<%-- <div class="form-group">
<label class="col-sm-2 control-label">领用部门</label>
<div class="col-sm-6" style="margin-top:8px; text-align:center">
${outStockRecord.dept.name}
</div>
</div> --%>
<div class="form-group">
<label class="col-sm-2 control-label">领用人</label>
<div class="col-sm-6">
<p class="form-control-static" >${outStockRecord.userName}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">审核人</label>
<div class="col-sm-6">
<p class="form-control-static" >${outStockRecord.auditManName}</p>
</div>
</div>
<%-- <div class="form-group">
<label class="col-sm-2 control-label">备注</label>
<div class="col-sm-6" style="margin-top:8px; text-align:center">
${outStockRecord.remark}
</div>
</div> --%>
<div class="form-group">
<label class="col-sm-2 control-label">文件附件:</label>
</div>
<!-- 文件上传,显示 -->
<div class="file-border" id="fileArea">
</div>
</form>
<div class="box box-primary" >
<div class="box-header with-border">
<h3 class="box-title">领用明细</h3>
</div>
<!-- /.box-header -->
<div class="box-body ">
<table id="table_outStockDetail"></table>
</div>
</div>
</div>
<div class="col-md-5 col-xs-12" id="showView">
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,206 @@
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<%request.setAttribute("AUDIT", SparePartCommString.STATUS_STOCK_AUDIT); %>
<%request.setAttribute("START", SparePartCommString.STATUS_STOCK_START); %>
<%request.setAttribute("FINISH", SparePartCommString.STATUS_STOCK_FINISH); %>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
//流程审核文件上传所需参数
var masterId_process = '${outStockRecord.id}';//业务Id
var tbName_process = 'TB_Process_UploadFile'; //数据表
var nameSpace_process ='ProcessUploadFile';//保存文件夹
var status = 'view';//有查看权限
var editFun = function(id) {
var companyId = '${outStockRecord.company.id}';
$.post(ext.contextPath + '/sparepart/outStockRecord/edit4EquDetail.do', {id:id,companyId:companyId} , function(data) {
$("#subEditDiv").html(data);
openModal('subEditModal');
});
};
$(function(){
//初始化文件显示
getFileList_process();
$('#table_outStockDetail').bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/outStockRecord/getOutStockDetailList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
pid:'${outStockRecord.id}',
}
},
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
columns: [
/* {
checkbox: true, // 显示一个勾选框
}, */{
field: 'goods.name', // 返回json数据中的name
title: '物品名称', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.model', // 返回json数据中的name
title: '规格型号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.brand', // 返回json数据中的name
title: '品牌', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'goods.unit', // 返回json数据中的name
title: '单位', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},/* {
field: 'dept.name', // 返回json数据中的name
title: '领用部门', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
}, */{
field: 'outNumber', // 返回json数据中的name
title: '领用数量', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'price', // 返回json数据中的name
title: '单价/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'totalMoney', // 返回json数据中的name
title: '合计/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
title: "操作",
align: 'center',
valign: 'middle',
width: 120, // 定义列的宽度单位为像素px
formatter: function (value, row, index) {
var buts= '';
buts+= '<security:authorize buttonUrl="sparepart/outStockRecord/edit.do">';
buts+= '<button class="btn btn-default btn-sm" title="编辑" onclick="editFun(\'${outStockRecord.id}\')"><i class="fa fa-edit"></i><span class="hidden-md hidden-lg"> 编辑</span></button>';
buts+= '</security:authorize>';
buts='<div class="btn-group" >'+buts+'</div>';
return buts;
}
}
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table_outStockDetail");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
});
</script>
<div class="modal fade" id="subModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">查看物资领用记录</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<input id="status" name="status" type="hidden" value="${outStockRecord.status}"/>
<div class="form-group">
<label class="col-sm-2 control-label">所属厂区</label>
<div class="col-sm-6">
<p class="form-control-static" >${outStockRecord.company.name}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">领用单号</label>
<div class="col-sm-6" >
<p class="form-control-static" >${outStockRecord.id}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">领用日期</label>
<div class="col-sm-6" >
<p class="form-control-static" >${outStockRecord.outDate.substring(0,10)}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">所属仓库</label>
<div class="col-sm-6">
<p class="form-control-static" >${outStockRecord.warehouse.name}</p>
</div>
</div>
<%-- <div class="form-group">
<label class="col-sm-2 control-label">领用部门</label>
<div class="col-sm-6" style="margin-top:8px; text-align:center">
${outStockRecord.dept.name}
</div>
</div> --%>
<div class="form-group">
<label class="col-sm-2 control-label">领用人</label>
<div class="col-sm-6">
<p class="form-control-static" >${outStockRecord.userName}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">审核人</label>
<div class="col-sm-6">
<p class="form-control-static" >${outStockRecord.auditManName}</p>
</div>
</div>
<%-- <div class="form-group">
<label class="col-sm-2 control-label">备注</label>
<div class="col-sm-6" style="margin-top:8px; text-align:center">
${outStockRecord.remark}
</div>
</div> --%>
<div class="form-group">
<label class="col-sm-2 control-label">文件附件:</label>
</div>
<!-- 文件上传,显示 -->
<div class="file-border" id="fileArea">
</div>
</form>
<div class="box box-primary" >
<div class="box-header with-border">
<h3 class="box-title">领用明细</h3>
</div>
<!-- /.box-header -->
<div class="box-body ">
<table id="table_outStockDetail"></table>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,129 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<%@page import="com.sipai.entity.equipment.SpecialEquipment"%>
<%@page import="com.sipai.tools.CommString"%>
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
<%request.setAttribute("AUDIT", SparePartCommString.STATUS_STOCK_AUDIT); %>
<%request.setAttribute("START", SparePartCommString.STATUS_STOCK_START); %>
<%request.setAttribute("FINSH", SparePartCommString.STATUS_STOCK_FINISH); %>
<%request.setAttribute("CAR", SpecialEquipment.CAR); %>
<%request.setAttribute("SPECIAL_EQUIPMENT", SpecialEquipment.SPECIAL_EQUIPMENT); %>
<%request.setAttribute("INSTRUMENT", SpecialEquipment.INSTRUMENT); %>
<%request.setAttribute("TOOLS", SpecialEquipment.TOOLS); %>
<%request.setAttribute("OTHERS", SpecialEquipment.OTHERS); %>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
function dosave() {
$("#subForm").bootstrapValidator('validate');//提交验证
setTimeout(function(){
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/sparepart/outStockRecord/save4EquDetail.do",
{equipmentCardId:$("#equipmentCardId").val(),receiveTime:$("#receiveTime").val()},
function(data) {
if (data.res == 1){
closeModal("subEditModal");
}else if(data.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}
}, 100);
}
$("#subForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
/* equipmentName: {
validators: {
notEmpty: {
message: '设备名称不能为空'
}
}
}, */
nextRecordTime: {
validators: {
notEmpty: {
message: '下次登记时间不能为空'
}
}
},
}
});
//厂区ID
var companyId = "${company.id}";
//根据厂区id选择厂内设备
var selectEquipmentCard = function() {
$.post(ext.contextPath + '/equipment/specialEquipment/showEquipmentCardForSelect.do', {companyId:companyId, equipmentId:$("#equipmentCardId").val()} ,
function(data) {
$("#emSubDiv").html(data);
openModal('emSubModal');
});
};
</script>
<div class="modal fade" id="subEditModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">补充设备信息</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<div class="form-group">
<label class="col-sm-2 control-label">*公司</label>
<div class="col-sm-6">
<p class="form-control-static" >${company.name}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*设备名称</label>
<div class="col-sm-6">
<input id="equipmentCardId" name="equipmentCardId" type="hidden" />
<input class="form-control" id="equipmentName" name ="equipmentName" autocomplete="off"
onclick="selectEquipmentCard()" placeholder="请点击选择" readonly>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">领用时间</label>
<div class="col-sm-6">
<div class="input-group date">
<div class="input-group-addon">
<i class="fa fa-calendar"></i>
</div>
<input type="text" class="form-control" id="receiveTime" name="receiveTime" style="width: 230px;" value="${outStockRecord.outDate.substring(0,10)}" readonly/>
</div>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="dosave()" id="btn_save">保存</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,187 @@
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<%request.setAttribute("AUDIT", SparePartCommString.STATUS_STOCK_AUDIT); %>
<%request.setAttribute("START", SparePartCommString.STATUS_STOCK_START); %>
<%request.setAttribute("FINISH", SparePartCommString.STATUS_STOCK_FINISH); %>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
//流程审核文件上传所需参数
var masterId_process = '${outStockRecord.id}';//业务Id
var tbName_process = 'TB_Process_UploadFile'; //数据表
var nameSpace_process ='ProcessUploadFile';//保存文件夹
var status = 'view';//有查看权限
$(function(){
//初始化文件显示
getFileList_process();
$('#table_outStockDetail').bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/outStockRecord/getOutStockDetailList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
pid:'${outStockRecord.id}',
}
},
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
columns: [
/* {
checkbox: true, // 显示一个勾选框
}, */{
field: 'goods.name', // 返回json数据中的name
title: '物品名称', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.model', // 返回json数据中的name
title: '规格型号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.brand', // 返回json数据中的name
title: '品牌', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'goods.unit', // 返回json数据中的name
title: '单位', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},/* {
field: 'dept.name', // 返回json数据中的name
title: '领用部门', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
}, */{
field: 'outNumber', // 返回json数据中的name
title: '领用数量', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'price', // 返回json数据中的name
title: '单价/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'totalMoney', // 返回json数据中的name
title: '合计/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table_outStockDetail");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
});
</script>
<div class="modal fade" id="subModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">查看物资领用记录</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<input id="status" name="status" type="hidden" value="${outStockRecord.status}"/>
<div class="form-group">
<label class="col-sm-2 control-label">所属厂区</label>
<div class="col-sm-6">
<p class="form-control-static" >${outStockRecord.company.name}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">领用单号</label>
<div class="col-sm-6" >
<p class="form-control-static" >${outStockRecord.id}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">领用日期</label>
<div class="col-sm-6" >
<p class="form-control-static" >${outStockRecord.outDate.substring(0,10)}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">所属仓库</label>
<div class="col-sm-6">
<p class="form-control-static" >${outStockRecord.warehouse.name}</p>
</div>
</div>
<%-- <div class="form-group">
<label class="col-sm-2 control-label">领用部门</label>
<div class="col-sm-6" style="margin-top:8px; text-align:center">
${outStockRecord.dept.name}
</div>
</div> --%>
<div class="form-group">
<label class="col-sm-2 control-label">领用人</label>
<div class="col-sm-6">
<p class="form-control-static" >${outStockRecord.userName}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">审核人</label>
<div class="col-sm-6">
<p class="form-control-static" >${outStockRecord.auditManName}</p>
</div>
</div>
<%-- <div class="form-group">
<label class="col-sm-2 control-label">备注</label>
<div class="col-sm-6" style="margin-top:8px; text-align:center">
${outStockRecord.remark}
</div>
</div> --%>
<div class="form-group">
<label class="col-sm-2 control-label">文件附件:</label>
</div>
<!-- 文件上传,显示 -->
<div class="file-border" id="fileArea">
</div>
</form>
<div class="box box-primary" >
<div class="box-header with-border">
<h3 class="box-title">领用明细</h3>
</div>
<!-- /.box-header -->
<div class="box-body ">
<table id="table_outStockDetail"></table>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,348 @@
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%request.setAttribute("DEPARTMENT", SparePartCommString.PURCHASE_DEPARTMENT); %>
<%-- <%request.setAttribute("PASS", SparePartCommString.STATUS_PASS); %>
<%request.setAttribute("REJECT", SparePartCommString.STATUS_REJECT); %>
<%request.setAttribute("SUBMIT", SparePartCommString.STATUS_SUBMIT); %> --%>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
/* function doPass(routeNum) {
$('#subForm').data('bootstrapValidator')
.updateStatus('targetUsersName', 'NOT_VALIDATED',null)
.validateField('targetUsersName');
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$("#passstatus").val(true);
$("#routeNum").val(routeNum)
$.post(ext.contextPath + "/sparepart/outStocksectionRecord/AuditOutStockRecord.do", $("#subForm").serialize(), function(data) {
if (data.res == 1) {
closeModal('subModal')
$("#table").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','操作执行失败,请重试');
}else{
showAlert('d',data.res);
}
},'json');
}
}
function doBack(routeNum) {
swal({
title: "退回!",
text: "请输入审核不通过理由:",
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
},
content: {
element: "input",
attributes: {
placeholder: "审核不通过理由...",
},
},
})
.then(function(value){
if(value){
$("#auditopinion").val(value);
$("#passstatus").val(false);
$("#routeNum").val(routeNum);
$.post(ext.contextPath + "/sparepart/outStocksectionRecord/AuditOutStockRecord.do", $("#subForm").serialize(), function(data) {
if (data.res == 1) {
closeModal('subModal')
$("#table").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','退回失败,请重试!');
}else{
showAlert('d',data.res);
}
},'json');
}
});
} */
//流程审核文件上传所需参数
var masterId_process = '${outStockRecord.id}';//业务Id
var tbName_process = 'TB_Process_UploadFile'; //数据表
var nameSpace_process ='ProcessUploadFile';//保存文件夹
var status = 'delete';//有删除权限
function doSubmit() {
$('#subForm').data('bootstrapValidator')
.updateStatus('targetUsersName', 'NOT_VALIDATED',null)
.validateField('targetUsersName');
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码 */
$.post(ext.contextPath + "/sparepart/outStocksectionRecord/AuditOutStockRecord.do", $("#subForm").serialize(), function(data) {
if (data.res == 1) {
closeModal('subModal')
$("#table").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','操作执行失败,请重试');
}else{
showAlert('d',data.res);
}
},'json');
}
}
var showUser4SelectsFun = function() {
var userIds= $("#targetusers").val();
var jobIds= $("#targetjobs").val();
$.post(ext.contextPath + '/user/userForSelectByCompany.do', {formId:"subForm",hiddenId:"targetusers",textId:"targetUsersName",userIds:userIds,jobIds:jobIds} , function(data) {
$("#user4SelectDiv").html(data);
openModal("user4SelectModal");
});
};
$(function(){
//初始化文件显示
getFileList_process();
//初始化选择框方法在workflow.js里
processSelectNode("${businessUnitAudit.taskid}");
$('#table_outStockDetail').bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/outStocksectionRecord/getOutStockDetailList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
pid:'${outStockRecord.id}',
}
},
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
columns: [
/* {
checkbox: true, // 显示一个勾选框
}, */{
field: 'goods.name', // 返回json数据中的name
title: '物品名称', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.model', // 返回json数据中的name
title: '规格型号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.brand', // 返回json数据中的name
title: '品牌', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'goods.unit', // 返回json数据中的name
title: '单位', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},/* {
field: 'dept.name', // 返回json数据中的name
title: '领用部门', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
}, */{
field: 'outNumber', // 返回json数据中的name
title: '领用数量', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'price', // 返回json数据中的name
title: '单价/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'totalMoney', // 返回json数据中的name
title: '合计/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table_outStockDetail");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
//输入框验证
$("#subForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
targetUsersName: {
validators: {
notEmpty: {
message: '提交人员不能为空'
}
}
},
}
});
})
</script>
<div class="modal fade" id="subModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">物资领用(${taskName})</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm" enctype="multipart/form-data" >
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<div class="form-group">
<label class="col-sm-2 control-label">所属厂区</label>
<div class="col-sm-6" >
<p class="form-control-static" >${outStockRecord.company.name}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">领用单号</label>
<div class="col-sm-6">
<p class="form-control-static" >${outStockRecord.id}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">领用日期</label>
<div class="col-sm-6">
<p class="form-control-static" >${outStockRecord.outDate.substring(0,10)}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">所出仓库</label>
<div class="col-sm-6">
<p class="form-control-static" > ${outStockRecord.warehouse.name}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">领入仓库</label>
<div class="col-sm-6">
<p class="form-control-static" > ${outStockRecord.inhouse.name}</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">票据单号</label>
<div class="col-sm-6">
<p class="form-control-static" >${outStockRecord.billNumber}</p>
</div>
</div>
<%-- <div class="form-group">
<label class="col-sm-2 control-label">领用部门</label>
<div class="col-sm-6" style="margin-top:8px; text-align:center">
${outStockRecord.dept.name}
</div>
</div> --%>
<div class="form-group">
<label class="col-sm-2 control-label">领用人</label>
<div class="col-sm-6">
<p class="form-control-static" >${outStockRecord.userName}</p>
</div>
</div>
<%-- <div class="form-group">
<label class="col-sm-2 control-label">备注</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" id ="remark" name ="remark" placeholder="备注..." readonly>${subscribe.remark}</textarea>
</div>
</div> --%>
<input type="hidden" class="form-control" name ="id" value="${businessUnitAudit.id}">
<input type="hidden" class="form-control" name ="processid" value="${businessUnitAudit.processid}">
<input type="hidden" class="form-control" name ="taskid" value="${businessUnitAudit.taskid}">
<input type="hidden" class="form-control" name ="businessid" value="${businessUnitAudit.businessid}">
<input type="hidden" class="form-control" name =unitid value="${param.unitId}">
<input type="hidden" class="form-control" name ="taskdefinitionkey" value="${businessUnitAudit.taskdefinitionkey}">
<!-- <input type="hidden" class="form-control" id ="passstatus" name ="passstatus" value=true>
<input type="hidden" class="form-control" id ="auditopinion" name ="auditopinion" >
<input type="hidden" class="form-control" id ="routeNum" name ="routeNum" > -->
<div class="form-group">
<label class="col-sm-2 control-label">*审核结果</label>
<div class="col-sm-6">
<select class="form-control select2" id="passstatus" name ="passstatus" style="width: 270px;">
<option value= true>通过</option>
<option value= false>驳回</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*下一节点</label>
<div class="col-sm-6">
<select class="form-control select2" id="routeNum" name ="routeNum" style="width: 270px;">
</select>
</div>
</div>
<!-- <div id = "reject" class="form-group">
<label class="col-sm-2 control-label">*驳回原因</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" id ="auditopinion" name ="auditopinion" placeholder="驳回原因"></textarea>
</div>
</div> -->
<div class="form-group">
<label class="col-sm-2 control-label">审核意见</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" id ="auditopinion" name ="auditopinion" placeholder="审核意见">通过</textarea>
</div>
</div>
<div id = "selectUsers" class="form-group">
<label class="col-sm-2 control-label">提交至:</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="targetUsersName" name ="targetUsersName" placeholder="下一级人员" onclick="showUser4SelectsFun();" >
<input id="targetusers" name="targetusers" type="hidden" value=""/>
<input class="form-control" id="targetjobs" name="targetjobs" type="hidden" value=""/>
</div>
</div>
<!-- 文件上传,显示 -->
<div class="form-group" style="margin:8px">
<label class="col-sm-2 control-label"></label>
<button type="button" class="btn btn-default btn-file" onclick="fileinput_process()" id="btn_save"><i class="fa fa-paperclip"></i>上传文件</button>
</div>
<div id="fileArea">
</div>
</form>
<div class="box box-primary" >
<div class="box-header with-border">
<h3 class="box-title">出库明细</h3>
</div>
<div class="box-body ">
<table id="table_outStockDetail"></table>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<%-- <button type="button" class="btn btn-primary" onclick="processExecute(doPass,${businessUnitAudit.taskid},true)" id="btn_update">通过</button>
<button type="button" class="btn btn-danger" onclick="processExecute(doBack,${businessUnitAudit.taskid},false)" id="btn_submit">驳回</button> --%>
<button type="button" class="btn btn-primary" onclick="doSubmit()" id="btn_update">提交</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,98 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<%@page import="com.sipai.tools.CommUtil"%>
<%request.setAttribute("nowDate", CommUtil.nowDate().replaceAll("[[\\s-:punct:]]","")); %>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
var control;
function initUpload(ctrlName, uploadUrl) {
control = $('#' + ctrlName);
control.fileinput({
language: 'zh', //设置语言
uploadUrl: uploadUrl, //上传的地址
uploadAsync: true, //默认异步上传
showCaption: true,//是否显示标题
showUpload: false, //是否显示上传按钮
browseClass: "btn btn-primary", //按钮样式
allowedFileExtensions: ["xls", "xlsx"], //接收的文件后缀
maxFileCount: 1,//最大上传文件数限制
previewFileIcon: '<i class="glyphicon glyphicon-file"></i>',
showPreview: false, //是否显示预览
previewFileIconSettings: {
'docx': '<i ass="fa fa-file-word-o text-primary"></i>',
'xlsx': '<i class="fa fa-file-excel-o text-success"></i>',
'xls': '<i class="fa fa-file-excel-o text-success"></i>',
'pptx': '<i class="fa fa-file-powerpoint-o text-danger"></i>',
'jpg': '<i class="fa fa-file-photo-o text-warning"></i>',
'pdf': '<i class="fa fa-file-archive-o text-muted"></i>',
'zip': '<i class="fa fa-file-archive-o text-muted"></i>',
},
//参数
uploadExtraData: function () {
var data = {
//"companyId": '${param.companyId}', //此处自定义传参
'equipmentBelongId' :$("#equipmentBelongId").val(),
};
return data;
}
});
control.on("fileuploaded", function (event, data, previewId, index) {
console.log(data+"data");
if(data.response.status == true){
closeModal('subModal');
$("#table").bootstrapTable('refresh');
showAlert('s',data.response.msg,'mainAlertdiv');
}else{
showAlert('d',data.response.msg);
}
});
}
$(function(){
initUpload("filelist", ext.contextPath+ "/sparepart/channels/saveExcelData.do");
})
//导入上传文件的数据
function importExcelFun(){
if($("#filelist").val() == null || $("#filelist").val()==""){
showAlert('d','上传的文件不能为空!');
}else{
control.fileinput("upload");
}
}
</script>
<div class="modal fade" id="subModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">导入设备列表</h4>
</div>
<div class="modal-body">
<form id="importFile" name="importFile" class="form-horizontal" method="post"
enctype="multipart/form-data">
<div id="alertDiv"></div>
<div class="box-body">
<div>
<input id="filelist" name="filelist" class="file-loading" type="file" multiple accept=".xls,.xlsx">
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="importExcelFun()" id="btn_save">导入</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,259 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<script type="text/javascript">
var doSearchDetail = function() {
$("#table_purchaseDetail").bootstrapTable('refresh');
};
function doSelectDetail() {
//var checkItems = $("#table_purchaseDetail").bootstrapTable('getAllSelections');
var datas="";
datas_name="";
$.each(selectionIds, function(index, item){
if(datas!=""){
datas+=",";
}
datas+=item;
});
doFinishSelects(datas);
closeModal("subDetailModal");
};
var $table;
var switchStatus=false;
var selectionIds = []; //保存选中ids
var dosearchTable = function() {
$("#table_purchaseDetail").bootstrapTable('refresh');
};
function stateFormatter(value, row, index) {
var flag=false;
$.each(eval('${subscribeDetailIds}'), function(index, item){
if(row.id==item.id){
flag=true;
}
});
if (flag)
return {
checked : true//设置选中
};
return value;
}
var $table;
var switchStatus=false;
var selectionIds = []; //保存选中ids
function initialSelectionIds(){
var check_array =eval('${subscribeDetailIds}');
if(check_array!=null&& check_array.length>0){
selectionIds =new Array(check_array.length);
for(var i=0;i<check_array.length;i++){
selectionIds[i]=check_array[i].id;
}
}
}
function getCheckedIds(){
var ids="";
var check_array =eval('${subscribeDetailIds}');
$.each(check_array, function(index, item){
if(ids!=""){
ids+=",";
}
ids+=item.id;
});
return ids;
}
$(function() {
//选择部门
$.post(ext.contextPath + "/user/getDeptByBizId4Select.do", {companyId:'${param.companyId}'}, function(data) {
var selelct = $("#search_code").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('').trigger("change");
selelct.on("change",function(e){
dosearchTable();
});
},'json');
initialSelectionIds();
$table=$("#table_purchaseDetail").bootstrapTable({
url: ext.contextPath + '/sparepart/subscribe/getSubscribeDetailList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
search_name: $('#search_name').val(),
search_code: $('#search_code').val(),
pids : '${subscribeIds}'
}
},
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
columns: [
{
checkbox: true, // 显示一个勾选框
//formatter: stateFormatter
formatter: function (i,row) { // 每次加载 checkbox 时判断当前 row 的 id 是否已经存在全局 Set() 里
if($.inArray(row.id,Array.from(selectionIds))!=-1){ // 因为 Set是集合,需要先转换成数组
return {
checked : true // 存在则选中
}
}
}
},{
field: 'subscribe.id', // 返回json数据中的name
title: '申购单号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'subscribe.dept.name', // 返回json数据中的name
title: '申购部门', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'subscribe.subscribeManName', // 返回json数据中的name
title: '申购人', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.name', // 返回json数据中的name
title: '物品名称', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.model', // 返回json数据中的name
title: '规格型号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.brand', // 返回json数据中的name
title: '品牌', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'goods.unit', // 返回json数据中的name
title: '单位', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'number', // 返回json数据中的name
title: '计划采购数量', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'usableNumber', // 返回json数据中的name
title: '可用数量', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
cellStyle:function (value, row, index, field) {
return { css: {"background": "yellow"} };
}
},{
field: 'price', // 返回json数据中的name
title: '单价/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'totalMoney', // 返回json数据中的name
title: '合计/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table_purchaseDetail");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
//绑定选中事件、取消事件、全部选中、全部取消
$table.on('check.bs.table check-all.bs.table uncheck.bs.table uncheck-all.bs.table', function (e, rows) {
var ids = $.map(!$.isArray(rows) ? [rows] : rows, function (row) {
return row.id;
});
func = $.inArray(e.type, ['check', 'check-all']) > -1 ? 'union' : 'difference';
selectionIds = _[func](selectionIds, ids);
});
});
//选中事件操作数组
var union = function(array,ids){
$.each(ids, function (i, id) {
if($.inArray(id,array)==-1){
array[array.length] = id;
}
});
return array;
};
//取消选中事件操作数组
var difference = function(array,ids){
$.each(ids, function (i, id) {
var index = $.inArray(id,array);
if(index!=-1){
array.splice(index, 1);
}
});
return array;
};
var _ = {"union":union,"difference":difference};
//表格分页之前处理多选框数据
function responseHandler(res) {
$.each(res.rows, function (i, row) {
row.checkStatus = $.inArray(row.id, selectionIds) != -1; //判断当前行的数据id是否存在与选中的数组存在则将多选框状态变为true
});
return res;
}
</script>
<div class="modal fade" id="subDetailModal">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">按计划选择采购明细</h4>
</div>
<div class="modal-body " style="width:100%">
<div id="alertDetailDiv"></div>
<div class="form-group form-inline" style="padding:0;">
<div class="form-group">
<label class="form-label" >申购部门</label>
<select class="form-control select2 " id="search_code" name ="search_code" style="width: 160px;"></select>
</div>
<div class="form-group form-inline" >
<div class="input-group input-group-sm" style="width: 250px;">
<input type="text" id="search_name" name="search_name" class="form-control pull-right" placeholder="物品名称">
<div class="input-group-btn">
<button class="btn btn-default" onclick="dosearch();"><i class="fa fa-search"></i></button>
</div>
</div>
</div>
</div>
<div>
<div id="table_purchaseDetail" style="height:230px;overflow:auto;width:100%"></div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="doSelectDetail()">确认</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,149 @@
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<%request.setAttribute("DEPARTMENT", SparePartCommString.PURCHASE_DEPARTMENT); %>
<%request.setAttribute("NOTSUBMINT", SparePartCommString.STATUS_NOTSUBMINT); %>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
function dosavePurchaseDetail() {
$("#subDetailForm").bootstrapValidator('validate');//提交验证
if ($("#subDetailForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/sparepart/purchasePlan/savePurchaseDetail.do", $("#subDetailForm").serialize(), function(data) {
if (data.res == 1){
closeModal('subDetailModal');
$("#table_PurchaseDetail").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}
}
$(function(){
//keyup()-按键松开后的事件
$("#number").keyup(function(){
$("#totalMoney").val($("#number").val()*$("#price").val());
});
$("#price").keyup(function(){
$("#totalMoney").val($("#number").val()*$("#price").val());
})
//输入框验证
$("#subDetailForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
goodsName: {
validators: {
notEmpty: {
message: '物品名称不能为空'
}
}
},
number: {
validators: {
notEmpty: {
message: '数量不能为空'
}
}
},
price: {
validators: {
notEmpty: {
message: '价格不能为空'
}
}
},
}
});
})
//选择物品
var showGoods4SelectFun = function() {
$.post(ext.contextPath + '/sparepart/goods/showList4Select.do', {formId:"subForm",hiddenId:"goodsId",textId:"goodsName",goodsId:$("#goodsId").val()} , function(data) {
$("#Goods4SelectDiv").html(data);
openModal('Goods4SelectModal');
});
};
</script>
<div class="modal fade" id="subDetailModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">新增申购明细</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subDetailForm">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<input type="hidden" id="pid" name ="pid" value="${pid}" >
<input type="hidden" id="departmentId" name ="departmentId" value="${param.departmentId}" >
<div class="form-group">
<label class="col-sm-2 control-label">*物品名称</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="goodsName" placeholder="请选择" onclick="showGoods4SelectFun();" value=""></input>
<input id="goodsId" name="goodsId" type="hidden" value=""/>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*规格型号</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="model" name ="model" placeholder="型号" >
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">品牌</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="brand" name ="brand" placeholder="品牌" >
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">单位</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="unit" name ="unit" placeholder="单位" >
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*数量</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="number" name ="number" placeholder="数量" >
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*单价/元</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="price" name ="price" placeholder="单价" >
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">合计/元</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="totalMoney" name ="totalMoney" placeholder="合计" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">用途</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" id ="purpose" name ="purpose" placeholder="用途..."></textarea>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="dosavePurchaseDetail()" id="btn_savePurchaseDetail">保存</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,149 @@
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<%request.setAttribute("DEPARTMENT", SparePartCommString.PURCHASE_DEPARTMENT); %>
<%request.setAttribute("NOTSUBMINT", SparePartCommString.STATUS_NOTSUBMINT); %>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
function doupdatePurchaseDetail() {
$("#subDetailForm").bootstrapValidator('validate');//提交验证
if ($("#subDetailForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/sparepart/purchasePlan/updatePurchaseDetail.do", $("#subDetailForm").serialize(), function(data) {
if (data.res == 1){
closeModal('subDetailModal');
$("#table_PurchaseDetail").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}
}
$(function(){
//keyup()-按键松开后的事件
$("#number").keyup(function(){
$("#totalMoney").val($("#number").val()*$("#price").val());
});
$("#price").keyup(function(){
$("#totalMoney").val($("#number").val()*$("#price").val());
})
//输入框验证
$("#subDetailForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
goodsName: {
validators: {
notEmpty: {
message: '物品名称不能为空'
}
}
},
number: {
validators: {
notEmpty: {
message: '数量不能为空'
}
}
},
price: {
validators: {
notEmpty: {
message: '价格不能为空'
}
}
},
}
});
});
//选择物品
var showGoods4SelectFun = function() {
$.post(ext.contextPath + '/sparepart/goods/showList4Select.do', {formId:"subForm",hiddenId:"goodsId",textId:"goodsName",goodsId :'${purchaseDetail.goodsId}' } , function(data) {
$("#Goods4SelectDiv").html(data);
openModal('Goods4SelectModal');
});
};
</script>
<div class="modal fade" id="subDetailModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">编辑申购明细</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subDetailForm">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<input type="hidden" id="id" name ="id" value="${purchaseDetail.id}" >
<div class="form-group">
<label class="col-sm-2 control-label">*物品名称</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="goodsName" placeholder="请选择" onclick="showGoods4SelectFun();" value="${purchaseDetail.goods.name}"></input>
<input id="goodsId" name="goodsId" type="hidden" value="${purchaseDetail.goodsId}"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*规格型号</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="model" name ="model" placeholder="型号" value="${purchaseDetail.goods.model}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">品牌</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="brand" name ="brand" placeholder="品牌" value="${purchaseDetail.goods.brand}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">单位</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="unit" name ="unit" placeholder="单位" value="${purchaseDetail.goods.unit}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*数量</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="number" name ="number" placeholder="数量" value="${purchaseDetail.number}" >
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*单价/元</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="price" name ="price" placeholder="单价" value="${purchaseDetail.price}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">合计/元</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="totalMoney" name ="totalMoney" placeholder="合计" value="${purchaseDetail.totalMoney}" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">用途</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" id ="purpose" name ="purpose" placeholder="用途...">${purchaseDetail.purpose}</textarea>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="doupdatePurchaseDetail()" id="btn_updatePurchaseDetail">保存</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,392 @@
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%request.setAttribute("DEPARTMENT", SparePartCommString.PURCHASE_DEPARTMENT); %>
<%-- <%request.setAttribute("PASS", SparePartCommString.STATUS_PASS); %>
<%request.setAttribute("REJECT", SparePartCommString.STATUS_REJECT); %>
<%request.setAttribute("SUBMIT", SparePartCommString.STATUS_SUBMIT); %> --%>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
//流程审核文件上传所需参数
var masterId_process = '${subscribe.id}';//业务Id
var tbName_process = 'TB_Process_UploadFile'; //数据表
var nameSpace_process ='ProcessUploadFile';//保存文件夹
var status = 'delete';//有删除权限
/* function doupdate() {
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/sparepart/subscribe/update.do", $("#subForm").serialize(), function(data) {
if (data.res == 1){
closeModal('subModal');
$("#table").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}
} */
/* function dolaunch() {
$('#subForm').data('bootstrapValidator')
.updateStatus('targetUsersName', 'NOT_VALIDATED',null)
.validateField('targetUsersName');
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/sparepart/subscribe/doHandleInquiry.do", $("#subForm").serialize(), function(data) {
if (data.res == 1) {
closeModal('subModal')
$("#table").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','保存失败');
}else if(data.res == 2){
showAlert('d','处理结果保存失败,请重试');
}else{
showAlert('d',data.res);
}
},'json');
}
} */
function doSubmit() {
$('#subForm').data('bootstrapValidator')
.updateStatus('targetUsersName', 'NOT_VALIDATED',null)
.validateField('targetUsersName');
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码 */
$.post(ext.contextPath + "/sparepart/subscribe/doAuditSubscribe.do", $("#subForm").serialize(), function(data) {
if (data.res == 1) {
closeModal('subModal')
$("#table").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','操作执行失败,请重试');
}else{
showAlert('d',data.res);
}
},'json');
}
}
var showUser4SelectsFun = function() {
var userIds= $("#targetusers").val();
var jobIds= $("#targetjobs").val();
$.post(ext.contextPath + '/user/userForSelectByCompany.do', {formId:"subForm",hiddenId:"targetusers",textId:"targetUsersName",userIds:userIds,jobIds:jobIds} , function(data) {
$("#user4SelectDiv").html(data);
openModal("user4SelectModal");
});
};
$(function(){
//初始化文件显示
getFileList_process();
//初始化选择框方法在workflow.js里
processSelectNode("${businessUnitAudit.taskid}");
$('#table_SubscribeDetail').bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/subscribe/getSubscribeDetailList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: function (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
pid:'${subscribe.id}',
}
},
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
columns: [
{
field: 'detailGoodsName', // 返回json数据中的name
title: '物品名称', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'detailGoodsModel', // 返回json数据中的name
title: '规格型号', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
},{
field: 'goods.brand', // 返回json数据中的name
title: '品牌', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'goods.unit', // 返回json数据中的name
title: '单位', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'number', // 返回json数据中的name
title: '数量', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
/* editable: { //编辑列元素
type: 'text',
title: '数量',
validate: function (v) {
if (!v) return '数量不能为空';
}
} */
},{
field: 'price', // 返回json数据中的name
title: '单价/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
editable: { //编辑列元素
type: 'text',
title: '单价',
validate: function (v) {
if (!v) return '单价不能为空';
}
}
},{
field: 'totalMoney', // 返回json数据中的name
title: '合计/元', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},
],
//保存列修改后的数据
onEditableSave: function (field, row, oldValue, $el) {
$.post(ext.contextPath + "/sparepart/subscribe/updateSubscribeDetail.do", {id:row.id,price:row.price,number:row.number}, function(data) {
if (data.res == 1){
$("#table_SubscribeDetail").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','编辑失败');
}else{
showAlert('d',data.res);
}
},'json');
},
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table_SubscribeDetail");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
//选择采购形式
$.post(ext.contextPath + "/sparepart/purchaseMethods/getPurchaseMethods4Select.do", function(data) {
var selelct = $("#purchaseMethodsId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('${subscribe.purchasemethodsid}').trigger("change");
},'json');
//选择列资渠道
$.post(ext.contextPath + "/sparepart/channels/getChannels4Select.do", function(data) {
var selelct = $("#channelsId").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
selelct.val('${subscribe.channelsid}').trigger("change");
},'json');
//输入框验证
$("#subForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
targetUsersName: {
validators: {
notEmpty: {
message: '目标人员不能为空'
}
}
}
}
});
//显示流程详情
var id = '${subscribe.id}';
$.post(ext.contextPath + '/sparepart/subscribe/showSubscribeView.do', {id:id,inModal:'inModal'} , function(data) {
$("#showView").html(data);
});
})
</script>
<div class="modal fade" id="subModal">
<div class="modal-dialog modal-xlg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">采购询价</h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-7 col-xs-12">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subscribeForm" >
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<div class="form-group">
<label class="col-sm-2 control-label">*所属厂区</label>
<div class="col-sm-6">
<input type="text" class="form-control" placeholder="名称" value="${subscribe.company.name}" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*申购单号</label>
<div class="col-sm-6">
<input type="text" class="form-control" placeholder="名称" value="${subscribe.id}" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*申购日期</label>
<div class="col-sm-6">
<input type="text" class="form-control" placeholder="请选择" value="${subscribe.subscribeDate.substring(0,10)}" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*申购部门</label>
<div class="col-sm-6">
<c:choose>
<c:when test="${!empty subscribe.dept.name}">
<input type="text" class="form-control" placeholder="名称" value="${subscribe.dept.name}" readonly>
</c:when>
<c:otherwise>
<input type="text" class="form-control" placeholder="名称" value="${subscribe.company.name}" readonly>
</c:otherwise>
</c:choose>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">采购形式</label>
<div class="col-sm-6">
<select class="form-control select2" id="purchaseMethodsId" name ="purchasemethodsid" style="width: 270px;"></select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">所属项目</label>
<%-- <label class="col-sm-2 control-label">列资渠道</label>--%>
<div class="col-sm-6">
<select class="form-control select2" id="channelsId" name ="channelsid" style="width: 270px;"></select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*申购人</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="subscribeManName" name ="subscribeManName" value="${subscribe.subscribeManName}" readonly>
</div>
</div>
<c:if test = "${not empty rejectReson}">
<div class="form-group">
<label class="col-sm-2 control-label">驳回原因</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" id ="rejectReson" name ="rejectReson" placeholder="" readonly>${rejectReson}</textarea>
</div>
</div>
</c:if>
<div class="form-group">
<label class="col-sm-2 control-label">备注</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" id ="remark" name ="remark" placeholder="备注..." readonly>${subscribe.remark}</textarea>
</div>
</div>
</form>
<form class="form-horizontal" id="subForm" enctype="multipart/form-data" >
<input type="hidden" class="form-control" name ="id" value="${businessUnitAudit.id}">
<input type="hidden" class="form-control" name ="processid" value="${businessUnitAudit.processid}">
<input type="hidden" class="form-control" name ="taskid" value="${businessUnitAudit.taskid}">
<input type="hidden" class="form-control" name ="businessid" value="${businessUnitAudit.businessid}">
<input type="hidden" class="form-control" name ="taskdefinitionkey" value="${businessUnitAudit.taskdefinitionkey}">
<div class="form-group">
<label class="col-sm-2 control-label">*审核结果</label>
<div class="col-sm-6">
<select class="form-control select2" id="passstatus" name ="passstatus" style="width: 270px;">
<option value= true>通过</option>
<option value= false>驳回</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*下一节点</label>
<div class="col-sm-6">
<select class="form-control select2" id="routeNum" name ="routeNum" style="width: 270px;">
</select>
</div>
</div>
<!-- <div id = "reject" class="form-group">
<label class="col-sm-2 control-label">*驳回原因</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" id ="auditopinion" name ="auditopinion" placeholder="驳回原因"></textarea>
</div>
</div> -->
<div class="form-group">
<label class="col-sm-2 control-label">审核意见</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" id ="auditopinion" name ="auditopinion" placeholder="审核意见">通过</textarea>
</div>
</div>
<div id = "selectUsers" class="form-group">
<label class="col-sm-2 control-label">提交至:</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="targetUsersName" name ="targetUsersName" placeholder="下一级人员" onclick="showUser4SelectsFun();" >
<input id="targetusers" name="targetusers" type="hidden" value=""/>
<input class="form-control" id="targetjobs" name="targetjobs" type="hidden" value=""/>
</div>
</div>
<!-- 文件上传,显示 -->
<div class="form-group" style="margin:8px">
<label class="col-sm-2 control-label"></label>
<button type="button" class="btn btn-default btn-file" onclick="fileinput_process()" id="btn_save"><i class="fa fa-paperclip"></i>上传文件</button>
</div>
<div id="fileArea">
</div>
</form>
<div class="box box-primary" >
<div class="box-header with-border">
<h3 class="box-title">申购明细</h3>
</div>
<div class="box-body ">
<table id="table_SubscribeDetail"></table>
</div>
</div>
</div>
<div class="col-md-5 col-xs-12" id="showView"></div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" data-dismiss="modal">保存</button>
<!-- <button type="button" class="btn btn-danger" onclick="dolaunch()" id="btn_submit">提交</button> -->
<button type="button" class="btn btn-primary" onclick="doSubmit()" id="btn_update">提交</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,72 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
function dosave() {
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/sparepart/purchaseMethods/save.do", $("#subForm").serialize(), function(data) {
if (data.res == 1){
closeModal('subModal');
$("#table").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}
}
//输入框验证
$("#subForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
brand: {
name: {
notEmpty: {
message: '名称不能为空'
},
},
},
}
});
</script>
<div class="modal fade" id="subModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">新增采购形式</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm">
<input type="hidden" class="form-control" id="active" name="active" value="false">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<div class="form-group">
<label class="col-sm-2 control-label">*采购形式</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="name" name ="name" >
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="dosave()" id="btn_save">保存</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,83 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<style type="text/css">
.select2-container .select2-selection--single{
height:34px;
line-height: 34px;
}
.select2-selection__arrow{
margin-top:3px;
}
</style>
<script type="text/javascript">
function doupdate() {
$("#subForm").bootstrapValidator('validate');//提交验证
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + "/sparepart/purchaseMethods/update.do", $("#subForm").serialize(), function(data) {
if (data.res == 1){
closeModal('subModal');
$("#table").bootstrapTable('refresh');
}else if(data.res == 0){
showAlert('d','保存失败');
}else{
showAlert('d',data.res);
}
},'json');
}
}
//输入框验证
$("#subForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
brand: {
name: {
notEmpty: {
message: '名称不能为空'
},
},
},
}
});
</script>
<div class="modal fade" id="subModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">编辑采购形式</h4>
</div>
<div class="modal-body">
<!-- 新增界面formid强制为subForm -->
<form class="form-horizontal" id="subForm">
<input type="hidden" class="form-control" id="id" name ="id" value="${purchaseMethods.id}">
<!-- 界面提醒div强制id为alertDiv -->
<div id="alertDiv"></div>
<div class="form-group">
<label class="col-sm-2 control-label">*采购形式</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="name" name ="name"
value="${purchaseMethods.name}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">*状态</label>
<div class="col-sm-6">
<select class="form-control" id="active" name ="active" style="width: 270px;">
<option <c:if test="${purchaseMethods.active==true}">selected</c:if> value= true>可用</option>
<option <c:if test="${purchaseMethods.active==false}">selected</c:if> value= false>审核中</option>
</select>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="doupdate()" id="btn_update">保存</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>

View File

@ -0,0 +1,348 @@
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ page import="com.sipai.entity.base.ServerObject"%>
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security"%>
<!DOCTYPE html>
<!-- <html lang="zh-CN"> -->
<!-- BEGIN HEAD -->
<head>
<title><%= ServerObject.atttable.get("TOPTITLE")%></title>
<!-- 引用页头及CSS页-->
<jsp:include page="/jsp/inc.jsp"></jsp:include>
<!-- bootstrap switch -->
<link rel="stylesheet" href="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/css/bootstrap3/bootstrap-switch.min.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/js/bootstrap-switch.min.js" charset="utf-8"></script>
<!--bootstrap-edittable 表格行内编辑 -->
<link rel="stylesheet" href="<%=request.getContextPath()%>/plugins/bootstrap-editable/css/bootstrap-editable.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-editable/js/bootstrap-editable.js" charset="utf-8"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-editable/js/bootstrap-table-editable.js" charset="utf-8"></script>
<style type="text/css">
.select2-container .select2-selection--single{
height:30px;
line-height: 30px;
}
.select2-selection__arrow{
margin-top:3px;
}
.table-hover>tbody>tr:hover {
cursor: pointer;
}
.fixed-table-toolbar .bs-bars,.fixed-table-toolbar .columns{
margin-top: 0px;
margin-bottom: 0px;
line-height: 20px;
}
</style>
<script type="text/javascript">
var addFun = function() {
$("#searchForm").bootstrapValidator('validate');//提交验证
if ($("#searchForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
$.post(ext.contextPath + '/sparepart/purchaseMethods/add.do' , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
};
var editFun = function(id) {
stopBubbleDefaultEvent();
$.post(ext.contextPath + '/sparepart/purchaseMethods/edit.do', {id:id} , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
var viewFun = function(id){
$.post(ext.contextPath + '/sparepart/purchaseMethods/view.do', {id:id} , function(data) {
$("#subDiv").html(data);
openModal('subModal');
});
};
//流程处理详情
var viewDetailHandleFun = function(id) {
stopBubbleDefaultEvent();
$.post(ext.contextPath + '/sparepart/purchaseMethods/showContractView.do', {id:id} , function(data) {
$("#subDiv").html(data);
openModal('purchaseMethodsExcuteModal');
});
};
var deleteFun = function(id) {
stopBubbleDefaultEvent();
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete){
if (willDelete) {
$.post(ext.contextPath + '/sparepart/purchaseMethods/delete.do', {id : id}, function(data) {
if(data==1){
$("#table").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','mainAlertdiv');
}
});
}
});
};
var deletesFun = function() {
var checkedItems = $("#table").bootstrapTable('getSelections');
var datas="";
$.each(checkedItems, function(index, item){
datas+=item.id+",";
});
if(datas==""){
showAlert('d','请先选择记录','mainAlertdiv');
}else{
swal({
text: "您确定要删除此记录?",
dangerMode: true,
buttons: {
cancel: {
text: "取消",
value: null,
visible: true,
className: "btn btn-default btn-sm",
closeModal: true,
},
confirm: {
text: "确定",
value: true,
visible: true,
className: "btn btn-danger btn-sm",
closeModal: true
}
}
})
.then(function(willDelete) {
if (willDelete) {
$.post(ext.contextPath + '/sparepart/purchaseMethods/deletes.do', {ids:datas} , function(data) {
if(data>0){
$("#table").bootstrapTable('refresh');
}else{
showAlert('d','删除失败','mainAlertdiv');
}
});
}
});
}
};
//查询方法,选择厂区后自动加载
var dosearch = function() {
$("#table").bootstrapTable('refresh');
selectDept();
};
var companyId = unitId;
$(function() {
//简易公司combotree
$.post(ext.contextPath + "/user/showCompanySelectTree.do", {}, function (data) {
$('#companySelectTree').html(data);
});
//输入框验证
$("#searchForm").bootstrapValidator({
live: 'disabled',//验证时机enabled是内容有变化就验证默认disabled和submitted是提交再验证
fields: {
search_code: {
validators: {
notEmpty: {
message: '请先选择厂区'
}
}
},
}
});
});
//表格查询参数
function queryParamsFun (params) { // 请求服务器数据时发送的参数可以在这里添加额外的查询参数返回false则终止请求
return {
rows: params.limit, // 每页要显示的数据条数
page: params.offset/params.limit+1, // 每页显示数据的开始页码
sort: params.sort, // 要排序的字段
order: params.order,
search_name: $('#search_name').val(),
/* search_code: companyId, */
deptId: $('#dept_id').val(),
};
}
function selectDept(){
//选择部门
$.post(ext.contextPath + "/user/getDeptByBizId4Select.do", {companyId:companyId}, function(data) {
$("#dept_id").empty();
var selelct = $("#dept_id").select2({
data: data,
placeholder:'请选择',//默认文字提示
allowClear: false,//允许清空
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
language: "zh-CN",
minimumInputLength: 0,
minimumResultsForSearch: 10,//数据超过十个启用搜索框
formatResult: function formatRepo(repo){return repo.text;}, // 函数用来渲染结果
formatSelection: function formatRepoSelection(repo){return repo.text;} // 函数用于呈现当前的选择
});
$(".select2-selection--single").css({'height':'30px','paddingTop':'4px'})
selelct.val('').trigger("change");
selelct.on("change",function(e){
$("#table").bootstrapTable('refresh');
});
},'json');
}
var showUser4SelectsFun = function() {
var userIds= $("#agentid").val();
$.post(ext.contextPath + '/user/userForSelectByStructure.do', {formId:"searchForm",hiddenId:"agentid",textId:"agentname",userIds:userIds} , function(data) {
$("#user4SelectDiv").html(data);
openModal("user4SelectModal");
});
};
var initFun = function(){
selectDept();
$("#table").bootstrapTable({ // 对应table标签的id
url: ext.contextPath + '/sparepart/purchaseMethods/getList.do', // 获取表格数据的url
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
striped: true, //表格显示条纹默认为false
pagination: true, // 在表格底部显示分页组件默认false
pageList: [10, 20,50], // 设置页面可以显示的数据条数
pageSize: 10, // 页面数据条数
pageNumber: 1, // 首页页码
sidePagination: 'server', // 设置为服务器端分页
queryParams: queryParamsFun,
sortName: 'id', // 要排序的字段
sortOrder: 'desc', // 排序规则
onClickRow: function (row) {//单击行事件,执行查看功能
viewFun(row.id);
},
columns: [
{
checkbox: true, // 显示一个勾选框
},{
field: 'name', // 返回json数据中的name
title: '名称', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle' // 上下居中
},{
field: 'active', // 返回json数据中的name
title: '状态', // 表格表头显示文字
align: 'center', // 左右居中
valign: 'middle', // 上下居中
formatter: function (value, row, index) {
if(value=='1'){
return '可用';
}else{
return '审核中';
}
}
},{
title: "操作",
align: 'center',
valign: 'middle',
width: 120, // 定义列的宽度单位为像素px
formatter: function (value, row, index) {
var buts= '';
buts+= '<security:authorize buttonUrl="sparepart/purchaseMethods/edit.do">';
buts+= '<button class="btn btn-default btn-sm" title="编辑" onclick="editFun(\'' + row.id + '\')"><i class="fa fa-edit"></i><span class="hidden-md hidden-lg"> 编辑</span></button>';
buts+= '</security:authorize>';
buts+= '<security:authorize buttonUrl="sparepart/purchaseMethods/delete.do">';
buts+='<button class="btn btn-default btn-sm" title="删除" onclick="deleteFun(\''+row.id+'\')"><i class="fa fa fa-trash-o"></i><span class="hidden-md hidden-lg">删除</span></button';
buts+= '</security:authorize>';
buts='<div class="btn-group" >'+buts+'</div>';
return buts;
}
}
],
onLoadSuccess: function(){ //加载成功时执行
adjustBootstrapTableView("table");
},
onLoadError: function(){ //加载失败时执行
console.info("加载数据失败");
}
});
}
</script>
</head>
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
<div class="wrapper">
<!-- 引用top -->
<%-- <jsp:include page="/jsp/top.jsp"></jsp:include> --%>
<!-- 菜单栏 -->
<%-- <jsp:include page="/jsp/left.jsp"></jsp:include> --%>
<div class="content-wrapper">
<!-- Content Header (Page header) -->
<section class="content-header">
<h1 id ="head_title"></h1>
<ol class="breadcrumb">
<li><a id ='head_firstlevel' href="#"><i class="fa fa-dashboard"></i> </a></li>
<!-- <li class="active">Here</li> -->
</ol>
</section>
<!-- Main content -->
<section class="content container-fluid">
<div id="mainAlertdiv"></div>
<div id="subDiv"></div>
<div id="subDetailDiv"></div>
<div id="Goods4SelectDiv"></div>
<div id="Goods4SelectsDiv"></div>
<div id="user4SelectDiv"></div>
<div id="fileInputDiv"></div>
<div id="goodsAddDiv"></div>
<div id="equ4SelectDiv"></div>
<div id="fault4SelectDiv"></div>
<form id="searchForm">
<div >
<div id="companySelectTree" style="float:left;"></div>
<div class="form-group" style="padding:0;margin-bottom: 0px;float:left;" id="action">
<div class="btn-group" style="width: 220px;">
<security:authorize buttonUrl="sparepart/purchaseMethods/add.do">
<button type="button" class="btn btn-default btn-sm" onclick="addFun();"><i class="fa fa-plus"></i> 新增</button>
<button type="button" class="btn btn-default btn-sm" onclick="deletesFun();"><i class="fa fa-trash-o"></i> 删除</button>
</security:authorize>
</div>
</div>
<div class="form-group" style="padding:0;margin-bottom: 0px;float:right;" id="action">
<div class="form-group pull-right form-inline" style="margin-bottom: 0px;">
<div class="input-group input-group-sm" style="width: 250px;">
<input type="text" id="search_name" name="search_name" class="form-control pull-right" placeholder="名称">
<div class="input-group-btn" style="line-height: 30px">
<button class="btn btn-default" onclick="dosearch();"><i class="fa fa-search"></i></button>
</div>
</div>
</div>
</div>
</div>
</form>
<table id="table"></table>
</section>
<!-- /.content -->
</div>
<%-- <jsp:include page="/jsp/bottom.jsp"></jsp:include> --%>
<%-- <jsp:include page="/jsp/side.jsp"></jsp:include> --%>
</div>
</body>
<!-- 文件上传-->
<link rel="stylesheet" href="<%=request.getContextPath()%>/node_modules/bootstrap-fileinput/css/fileinput.min.css"/>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-fileinput/js/fileinput.min.js" charset="utf-8"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-fileinput/js/locales/zh.js" charset="utf-8"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/JS/commonFileUpload.js" charset="utf-8"></script>
</html>

Some files were not shown because too many files have changed in this diff Show More