/**
|
* Created by weidy on 2020/2/25. from dengbk
|
*
|
* 物料基本信息
|
*/
|
|
layui.define(['layer','element','form','table','upload','platform/basedoc/BdMaterialClassifyExtendAttr'],function(exports){
|
var Class = function(){
|
this.MODULE_NAME = "platform/basedoc/BdMaterial";
|
this.moduleKey = "BdMaterial";
|
this.id='BdMaterial';
|
this.sourceData={};
|
this.columns = [];
|
this.detailcolumns = [];
|
this.backPath = configData.compatibility?path:configData.frameworkPath;//默认流程和项目的路径是一样的
|
this.accountPath = configData.compatibility?path:configData.invmPath;
|
this.controlSecret = true;//是否控制密级
|
this.url={
|
classifyTree:'materialClassifyController/referTree',
|
referClassifyTree: 'materialClassifyController/referTree',
|
controller:'materialController/',
|
dataGrid:'gridMaterial',//列表数据和查询
|
add:'addMaterial',
|
edit:'editMaterial',
|
del:'delMaterial',
|
upRevision:'upRevisionMaterial',
|
referOldRevision:'referOldRevision',
|
release:'releaseForMaterial',
|
getObjectByOid:'getObjectByOid',
|
accountGrid:'materialAccountController/gridMaterAccountByMaterialOid',
|
referUnit:'unitOfMeasurementController/referGridData',
|
listCheckRule:'bdMaterialCheckController/gridBdMaterialCheck',
|
addSave:'bdMaterialCheckController/addSave',
|
editSave:'bdMaterialCheckController/editSave',
|
deleteData:'bdMaterialCheckController/deleteData',
|
download:'bdMaterialCheckController/downloadImportTemplate', // 导入定检规则下载文件
|
importData:'bdMaterialCheckController/importData', // 导入定检规则下载文件
|
exportData:'bdMaterialCheckController/exportData' //导出定检规则
|
};
|
this.buttonIconMap = {
|
SEARCH:'layui-icon-refresh-2',
|
SENIORSEARCH:'layui-icon-query',
|
ADD:'layui-icon-add-1',
|
EDIT:'layui-icon-edit',
|
DELETE:'layui-icon-delete'
|
};
|
this.checkRuleTypeMap = {
|
CHECK_HOUR:'check_hour',
|
CHECK_COUNT:'check_count',
|
CHECK_STORE_TIME:'check_store_time',
|
CHECK_REACH_COUNT:'check_reach_cunt',
|
CHECK_REACH_TIME:'check_reach_time',
|
CHECK_DAY:'check_day',
|
CHECK_MONTH:'check_month',
|
CHECK_YEAR:'check_year',
|
NONE:'check_none'
|
};
|
this.getContent=function(){
|
//返回这个组件的基础html
|
var that = this;
|
var html = [
|
'<div class="layui-layout-border" id="border_',that.id,'" style="overflow-x:hidden;">',
|
'<div class="layui-vci-deptTree" style="width:220px;float: left;background-color:#ffffff;">',
|
that.getClassifyToolbarHtml(),
|
'<label class="layui-icon layui-icon-tree" style="color:red;">物料/工具基本分类</label>',
|
'<ul layui-filter="tree_',that.id,'"></ul>',
|
'</div>',
|
'<div class="layui-center" style="margin-left:225px;">',
|
that.getToolbarHtml(),
|
'<table id="table_', that.id , '" lay-filter="',that.id , '" style="overflow-x:auto;"></table>',//主列表
|
'<div id="toolbar_column_',that.id ,'" style="display:none;"></div>',
|
'</div>',
|
'<div class="layui-south" style="margin-left:225px;">',
|
'<div class="layui-tab">',
|
'<ul class="layui-tab-title">',
|
'<li class="layui-this">定检规则</li>',
|
($webUtil.isNotNull(that.accountPath)?'<li>包含台账清单</li>':''),
|
'</ul>',
|
'<div class="layui-tab-content">',
|
'<div class="layui-tab-item layui-show">',
|
that.getCheckToolbarHtml(),
|
'<table id="table_check_', that.id , '" lay-filter="check_',that.id , '" style="overflow-x:auto;"></table>',
|
'<div id="toolbar_column_check_',that.id ,'" style="display:none;"></div>',
|
'</div>',
|
($webUtil.isNotNull(that.accountPath)?('<div class="layui-tab-item"><table id="detail_' + that.id + '" lay-filter="detail_' + that.id + '" style="width:100%"></table><div id="toolbar_column_detail_' + that.id + '" style="display:none;"></div></div>'):''),
|
'</div>',
|
'</div>',
|
'</div>'];
|
html.push('</div>');
|
return html.join("");
|
};
|
this.getToolbarHtml =function(){
|
var that = this;
|
var html = [
|
'<div layui-filter="toolbar_',that.id, '" class="layui-btn-container ">',//主列表的按钮 IMPORTTEMPLATE
|
'<button class="layui-btn layui-btn-sm" layui-filter="toolbar_',that.id,'_ADD"><i class="layui-icon layui-icon-add-1"></i>创建</button>',
|
'<button class="layui-btn layui-btn-sm" layui-filter="toolbar_',that.id,'_EDIT"><i class="layui-icon layui-icon-set"></i>修改</button>',
|
'<button class="layui-btn layui-btn-sm" layui-filter="toolbar_',that.id,'_RELEASE"><i class="layui-icon layui-icon-ok-circle"></i>发布</button>',
|
'<button class="layui-btn layui-btn-sm" layui-filter="toolbar_',that.id,'_UPREVISION"><i class="layui-icon layui-icon-templeate-1"></i>升版</button>',
|
'<button class="layui-btn layui-btn-sm" layui-filter="toolbar_',that.id,'_DEL"><i class="layui-icon layui-icon-delete"></i>删除</button>',
|
'<button class="layui-btn layui-btn-sm" layui-filter="toolbar_',that.id,'_IMPORT"><i class="layui-icon layui-icon-upload"></i>导入物料</button>',
|
'<button class="layui-btn layui-btn-sm" layui-filter="toolbar_',that.id,'_EXPORT"><i class="layui-icon layui-icon-export"></i>导出物料</button>',
|
'<button class="layui-btn layui-btn-sm" layui-filter="toolbar_',that.id,'_IMPORTRULE"><i class="layui-icon layui-icon-upload"></i>导入定检规则</button>',
|
'<button class="layui-btn layui-btn-sm" layui-filter="toolbar_',that.id,'_EXPORTRULE"><i class="layui-icon layui-icon-export"></i>导出定检规则</button>',
|
'<button class="layui-btn layui-btn-sm" layui-filter="toolbar_',that.id,'_refresh"><i class="layui-icon layui-icon-refresh"></i>刷新</button>',
|
'<div class="layui-input-inline" style="position: relative; padding-right: 5px;">',
|
'<div id="selectWrapForIE" style="display:none"></div>',
|
'<label class="layui-form-label" style="width: 100px;font-size:14px;padding: 5px;">显示所有版本:</label>',
|
'<div class="layui-unselect layui-form-switch" lay-skin="_switch" style="margin-top:0px" id="switch_',that.id,'"><em>否</em><i></i></div>',
|
'</div>',
|
|
'</div>'
|
].join("");
|
return html;
|
};
|
this.getCheckToolbarHtml = function () {
|
var that = this;
|
var html = [ '<div layui-filter="toolbar_check_',that.id, '" class="layui-btn-container layui-buttons">',
|
'<button class="layui-btn layui-btn-sm" layui-filter="toolbar_check_',that.id,'_ADDRULE"><i class="layui-icon layui-icon-add-1"></i>创建定检规则</button>',
|
'<button class="layui-btn layui-btn-sm" layui-filter="toolbar_check_',that.id,'_EDITRULE"><i class="layui-icon layui-icon-set"></i>修改定检规则</button>',
|
'<button class="layui-btn layui-btn-sm" layui-filter="toolbar_check_',that.id,'_DELRULE"><i class="layui-icon layui-icon-delete"></i>删除定检规则</button>',
|
|
'<button class="layui-btn layui-btn-sm" layui-filter="toolbar_check_',that.id,'_refreshRule"><i class="layui-icon layui-icon-refresh"></i>刷新</button>',
|
'</div>'
|
].join("");
|
return html;
|
};
|
this.getClassifyToolbarHtml = function(){
|
var that = this;
|
var html = [
|
'<div layui-filter="toolbar_classify_',that.id, '" class="layui-btn-container layui-buttons">',
|
'<button class="layui-btn layui-btn-sm" layui-filter="toolbar_classify_',that.id,'_refreshClassify"><i class="layui-icon layui-icon-refresh"></i>刷新</button>',
|
'</div>'
|
].join("");
|
return html;
|
};
|
this.init=function(){//基础的html被添加后,再执行初始化
|
var that = this;
|
$webUtil.copyConfig(that,that.moduleKey);
|
$webUtil.bindDefultButtonLisenter(that, that.id);
|
$webUtil.bindDefultButtonLisenter(that, "classify_" + that.id);
|
$webUtil.bindDefultButtonLisenter(that, "check_" + that.id);
|
var table = layui.table;
|
that.materialExtendAttr = layui['platform/basedoc/BdMaterialClassifyExtendAttr'];
|
//初始化
|
that.classifyTreeInit(function () {
|
that.initMainTable(
|
function () {
|
$webUtil.createSearchHtml({
|
id: '编号',
|
code:'图号',
|
name:'名称',
|
specification:'规格',
|
brand:'品牌',
|
material:'材质',
|
applyProduct:'适用产品',
|
supplier:'常用制造/供应商',
|
"useDept.name":'使用部门名称',
|
revisionValue:'版本号'
|
}, $('[layui-filter="toolbar_' + that.id + '"]'), that.id);
|
// that.initCheckTable();
|
if($webUtil.isNotNull(that.accountPath)) {
|
that.detailTableInit();
|
}
|
}
|
);
|
});
|
$("#switch_" + that.id).unbind('click').click(function (e) {
|
var thisObject = $(this);
|
if(thisObject.hasClass("layui-form-onswitch")){
|
//说明现在点的是,需要修改为否
|
thisObject.removeClass("layui-form-onswitch");
|
thisObject.find("em").html("否");
|
table.reload("table_"+that.id,{
|
where:{
|
"conditionMap['${queryAllRevision}']":false
|
}
|
});
|
}else{
|
thisObject.addClass("layui-form-onswitch");
|
thisObject.find("em").html("是");
|
table.reload("table_"+that.id,{
|
where:{
|
"conditionMap['${queryAllRevision}']":true
|
}
|
});
|
}
|
layui.stope(e);
|
});
|
};
|
this.classifyTreeInit = function(callback){
|
//初始化分类树
|
var that = this;
|
var tree = layui.tree;
|
that.fristTreeLoad = false;
|
tree.init("tree_" + that.id, $('[layui-filter="tree_' + that.id + '"]'), {
|
url: that.url.classifyTree,
|
backPath: that.backPath,
|
extraParams: {
|
isMuti: false,
|
isQueryAllColumn: true
|
},
|
treeFilter: that.id,
|
treeName: 'materialClassify',
|
click: function (item, elem, options) {
|
that.currentItemOid = item.oid;
|
that.currentItemAttributes = item.attributes;
|
that.showMaterialByClassify(item.attributes);
|
},
|
done:function (filter,children) {
|
if(!that.fristTreeLoad &&callback){
|
callback();
|
}
|
that.fristTreeLoad = true;
|
}
|
});
|
};
|
this.showMaterialByClassify = function (classifyAttributes) {
|
var that =this;
|
var table = layui.table;
|
that.materialExtendAttr.initExtendAttr(classifyAttributes.id,function(){
|
table.reload("table_"+that.id,{
|
where:{
|
materialClassify:classifyAttributes.oid
|
}
|
});
|
});
|
};
|
this.initMainTable = function (callback) {
|
var that = this;
|
that.checkColumns();
|
var table = layui.table;
|
that.fristMainLoad = false;
|
//主列表中列。
|
var tableWidth = $("#border_" + that.id).width()-225;
|
table.render({
|
elem: '#table_' + that.id,
|
id: 'table_' + that.id,
|
url: that.backPath + that.url.controller + that.url.dataGrid,
|
page: {
|
limit: 20,
|
page: 1
|
},
|
height:400,
|
cols: [that.columns],
|
width:tableWidth,
|
done:function(res,cur,total){
|
if(!that.fristMainLoad ){
|
if(callback) {
|
callback();
|
}
|
table.on('tool(' + that.id + ')',function(obj){
|
var data = obj.data;//当前选择行的数据
|
var layEvent = obj.event;//点的是什么按钮
|
if(layEvent == 'viewInfo'){
|
that.showMaterialByOid(data.oid);
|
}
|
});
|
}
|
that.fristMainLoad = true;
|
},
|
rowClick:function(thisTableFilter,record){
|
that.initCheckTable(record.oid);
|
that.addRuleOid = record.oid
|
if($webUtil.isNotNull(that.accountPath)) {
|
table.reload("detail_" + that.id, {
|
extraParams: {
|
pkMaterial: record.oid
|
}
|
});
|
}
|
table.reload("check_" + that.id, {
|
extraParams: {
|
pkMaterial: record.oid
|
}
|
});
|
}
|
});
|
document.getElementById("toolbar_column_" + that.id).innerHTML = '<a class="layui-btn layui-btn-intable" lay-event="viewInfo">查看</a>';
|
};
|
this.initCheckTable = function (oid) {
|
//初始化定检规则的表格
|
var that = this;
|
that.checkCheckRuleColumns();
|
var table = layui.table;
|
//主列表中列。
|
var tableWidth = $("#border_" + that.id).width()-225;
|
var requestData = {};
|
if(oid != undefined) {
|
requestData["conditionMap['pkMaterial']"] = oid;
|
};
|
table.render({
|
elem: '#table_check_' + that.id,
|
id: 'table_check_' + that.id,
|
url: that.backPath + that.url.listCheckRule,
|
page: {
|
limit: 20,
|
page: 1
|
},
|
where: requestData,
|
cols: [that.checkRuleColumns],
|
width:tableWidth,
|
done:function(res,cur,total){
|
// if(!that.fristMainLoadCheck ){
|
// if(callback) {
|
// callback();
|
// }
|
table.on('tool(check_' + that.id + ')',function(obj){
|
console.log(obj)
|
var data = obj.data;//当前选择行的数据
|
var layEvent = obj.event;//点的是什么按钮
|
if(layEvent == 'viewInfo'){
|
that.showRuleByOid(data);
|
}
|
});
|
// }
|
// that.fristMainLoadCheck = true;
|
}
|
});
|
document.getElementById("toolbar_column_check_" + that.id).innerHTML = '<a class="layui-btn layui-btn-intable" lay-event="viewInfo">查看</a>';;
|
};
|
this.detailTableInit = function(){
|
//初始化明细的列表
|
var that = this,table = layui.table;
|
that.detailCheckColumns();
|
var tableWidth = $("#border_" + that.id).width()-225;
|
table.render({
|
elem: '#detail_' + that.id,
|
id: 'detail_' + that.id,
|
height:230,
|
width:tableWidth,
|
url:that.accountPath + that.url.accountGrid,
|
extraParams:{
|
pkMaterial: ''
|
},
|
page: {
|
limit: 5,
|
page: 1
|
},
|
cols: [that.detailcolumns]
|
});
|
};
|
this.checkLength = function(str){
|
var reg = str.replace(/[\u4e00-\u9fa5]/g,'');
|
if((str.length-reg.length)*2+reg.length<=127){
|
return str
|
}else{
|
return str.substring(0,127)
|
}
|
};
|
|
this.advancedQuery = function(){
|
var that = this;
|
var dynamicCondition = layui.dynamicCondition;
|
$('[layui-filter="toolbar_' + that.id + '"]').append('<div id="toolbar'+ that.id+'" class="layui-inline"></div>');
|
var dataFields = that.columns;
|
that.serinorQueryInstance = dynamicCondition.create({
|
fields : dataFields//查询字段
|
,tableId:"table_"+that.id//需要查询的表格
|
,type:"complex" //type:"simple"/"complex" 查询的方法 暂时写死为 complex
|
,conditionTextId:"#toolbar"+that.id//高级查询 按钮所在的div
|
,popupShowQueryBtn: true//显示高级查询按钮
|
,queryCallBack:function(requestData){//查询之后的callback
|
//console.log(JSON.stringify(requestData))
|
}
|
});
|
};
|
this.ADD = function(){
|
var that = this;
|
if(!that.currentItemOid){
|
$webUtil.showErrorMsg("请先选择分类节点后再操作");
|
return false;
|
}
|
that.addOrEdit(true);
|
};
|
this.EDIT = function(oid){
|
var that = this;
|
if(!oid) {
|
oid = $webUtil.getOidFromGrid("table_" + that.id, true, true);
|
}
|
if(!oid){
|
return false;
|
}
|
var lcStatus = $webUtil.getOidFromGrid("table_" + that.id,false,false,'lcStatus');
|
if('Editing' != lcStatus){
|
$webUtil.showErrorMsg("只有状态为【编辑中】时才能修改");
|
return false;
|
}
|
that.addOrEdit(false);
|
};
|
this.addOrEdit = function (add) {
|
var that = this;
|
var filter = "addOrEdit_" + that.id;
|
if(!add){
|
var oid = $webUtil.getOidFromGrid("table_" + that.id,true,true);
|
if(!oid){
|
return false;
|
}
|
}
|
var form = layui.form;
|
var addSaveIndex = layer.open({
|
type:1,
|
title: add?'新增物料/工具基本信息':'修改物料/工具基本信息',
|
btn: ['保存', '取消'],
|
skin: 'layui-layer-lan',
|
content: '<form id="form_' + filter + '" lay-filter="' + filter + '" class="layui-form" style="margin-top:5px" ></form>',
|
fullScreen:true,
|
resizing: function (layero) {
|
form.doResize(filter);
|
},
|
success: function (layero) {
|
form.addItems(filter,that.getFormItems(false),
|
function () {
|
if(add){
|
//添加的时候,如果选择树节点,则设置为物料基本分类
|
if($webUtil.isNotNull(that.currentItemOid)){
|
form.setValues({
|
materialClassify:that.currentItemOid,
|
materialClassifyText:(that.currentItemAttributes.id + " " + that.currentItemAttributes.name),
|
materialClassifyId:that.currentItemAttributes.id
|
},filter);
|
}else{
|
form.setValues({},filter);
|
}
|
}else{
|
var selectRowData = layui.table.checkStatus("table_" + that.id).data[0];
|
that.materialExtendAttr.loadMaterialForForm(filter,selectRowData.oid,that.currentItemAttributes.id);
|
}
|
//监控事件
|
form.on("select(" + filter + ")",function(data){
|
//我们需要在这里处理扩展属性
|
//获取新的分类的值,获取对应的业务类型的字段内容
|
//然后设置新的内容
|
});
|
}
|
, {}
|
, {
|
defaultColumnOneRow: 3
|
});
|
},
|
yes:function(layero){
|
if(form.validata(filter)){
|
var formValues = form.getValues(filter,true);
|
delete formValues['extendAttrData'];
|
for(var key in formValues){
|
if($webUtil.startWith(key,"extendAttrData[")){
|
delete formValues[key];
|
}
|
}
|
//处理扩展属性
|
for(var key in formValues){
|
if($webUtil.startWith(key,"ext_")){
|
var fieldName = key.replace("ext_","");
|
formValues['extendAttrData[' + fieldName + ']'] = formValues[key];
|
}
|
}
|
$webUtil.ajax(add?'post':'put',that.url.controller + (add?that.url.add:that.url.edit),formValues,function (result) {
|
if(result.success){
|
$webUtil.showMsgFromResult(result,add?"新增物料/工具基本信息成功":"修改物料/工具基本信息成功");
|
that.refresh();
|
layer.close(addSaveIndex);
|
}else{
|
$webUtil.showErrorMsg(result.msg);
|
}
|
},function (xhr,error) {
|
$webUtil.showErrorMsg("访问服务器出现了错误,可能服务器没有开启,或者连接失败");
|
},that.backPath);
|
}
|
},
|
btn2:function(layero){
|
that.refresh();
|
layer.close()
|
}
|
});
|
};
|
this.ADDRULE = function () {
|
var that = this;
|
//添加规则
|
var oid = $webUtil.getOidFromGrid("table_" + that.id, true, true);
|
if(!oid){
|
return false;
|
}
|
var lcStatus = $webUtil.getOidFromGrid("table_" + that.id,false,false,'lcStatus');
|
if('Editing' != lcStatus){
|
$webUtil.showErrorMsg("只有基本信息的状态为【编辑中】时才能添加定检规则");
|
return false;
|
}
|
that.addOrEditRule(true);
|
};
|
this.EDITRULE = function (oid) {
|
var that = this;
|
var materialOid = $webUtil.getOidFromGrid("table_" + that.id, true, true);
|
if(!materialOid){
|
return false;
|
}
|
var lcStatus = $webUtil.getOidFromGrid("table_" + that.id,false,false,'lcStatus');
|
if('Editing' != lcStatus){
|
$webUtil.showErrorMsg("只有基本信息的状态为【编辑中】时才能添加定检规则");
|
return false;
|
}
|
if(!oid) {
|
oid = $webUtil.getOidFromGrid("table_check_" + that.id, true, true);
|
}
|
if(!oid){
|
return false;
|
}
|
that.addOrEditRule(false,oid);
|
};
|
this.DELRULE = function(){//删除
|
var that = this;
|
var oid = $webUtil.getOidFromGrid("table_check_" +that.id,true,true);
|
if(!oid){
|
return false;
|
}
|
var ts = $webUtil.getOidFromGrid("table_check_" +that.id,false,false,"ts");
|
$webUtil.showConfirmMsg("是否删除?如果物料/工具已经有台账内容,则不能删除",function () {
|
$webUtil.deleteRequest(that.url.deleteData,{oid:oid,ts:ts},function (result) {
|
if(result.success){
|
$webUtil.showMsgFromResult(result,"删除成功");
|
that.refreshRule();
|
}else{
|
$webUtil.showErrorMsg(result.msg);
|
}
|
},function (xhr,error) {
|
$webUtil.showErrorMsg("访问服务器出现了错误,可能服务器没有开启,或者连接失败");
|
},that.backPath)
|
});
|
};
|
this.IMPORT = function () {
|
var that = this;
|
var filter =that.id + "_uploadAccount";
|
var uploadIndex = layer.open({
|
type:1,
|
title:'导入物料基本信息',
|
skin:'layui-layer-lan',
|
btn:['下载导入模板','取消'],
|
content:'<div id="importAccount_' + that.id + '"><button type="button" class="layui-btn" id="upload_button_\' + filter + \'" style="margin:5px auto;display: block;float:left;"><i class="layui-icon layui-icon-upload"></i>浏览文件</button></div>',
|
closeBtn:2,
|
shade:true,
|
area:['250px','180px'],
|
shadeClose:true,
|
resize:false,
|
success:function(layero){
|
|
},
|
yes:function(){
|
var iframeId = MD5("downloadImportTemplate" +$webUtil.getSystemVar($webUtil.systemValueKey.currentDateTimeSSS) +$webUtil.getSystemVar($webUtil.systemValueKey.userOid));
|
$webUtil.fileDownload(that.backPath + that.url.controller + that.url.downloadImportTemplate+ "?" + TOKEN_KEY + "=" + $webUtil.getToken() + "&downloadUUID=" + iframeId + "&materialClassifyId=" + that.currentItemAttributes.id);
|
}
|
});
|
};
|
this.IMPORTRULE = function () { //导入定检规则
|
var that = this;
|
var selectData = layui.table.checkStatus("table_" + that.id).data[0];
|
if(selectData == undefined){
|
$webUtil.showErrorMsg('请选择一条数据!');
|
return false;
|
}
|
var form = layui.form;
|
var filter = that.id + "_uploadAccount";
|
var uploadIndex = layer.open({
|
type:1,
|
title:'导入定检规则',
|
skin:'layui-layer-lan',
|
btn:['下载导入模板','取消'],
|
content:'<div id="importAccount_' + filter + '"></div>',
|
closeBtn:2,
|
shade:true,
|
area:['500px','300px'],
|
shadeClose:true,
|
resize:false,
|
success:function(layero){
|
form.addItems(filter,[{
|
type:'label',
|
name:'uploadTwoDimensions',
|
labelWidth:140,
|
}],function(){
|
$("#importAccount_" + filter).append('<div style="display:block;width:190px;margin:10px auto 0">选择文件后自动上传</div>');
|
$("#importAccount_" + filter).append('<button type="button" class="layui-btn" id="upload_button_' + filter + '" style="display:block;width:190px;margin:100px auto 0"><i class="layui-icon layui-icon-upload"></i>选择文件后自动上传</button>');
|
var upload = layui.upload;
|
//执行实例
|
var uploadInst = upload.render({
|
elem: '#upload_button_' + filter //绑定元素
|
,accept:'file'
|
,acceptMime:'file/*'
|
,exts:'xls|xlsx'
|
,url: that.backPath+ that.url.importData//上传接口
|
,auto:true
|
,before:function(obj){
|
obj.setData({pkMaterial:selectData.oid});
|
return true;
|
}
|
,done: function(result){//不需要输入内容,因此没有before
|
if(result.success){
|
layer.close(uploadIndex);
|
$webUtil.showMsg("上传定检规则成功!");
|
that.refresh();
|
that.refreshRule();
|
}else{
|
$webUtil.showErrorMsg(result.msg);
|
}
|
}
|
,error: function(){
|
//请求异常回调
|
$webUtil.showErrorMsg("上传异常,服务端出错了");
|
}
|
});
|
},{},{
|
defaultColumnOneRow:1,
|
inDialog:true
|
});
|
},
|
yes:function(){
|
// var iframeId = MD5("downloadImportTemplate" +$webUtil.getSystemVar($webUtil.systemValueKey.currentDateTimeSSS) +$webUtil.getSystemVar($webUtil.systemValueKey.userOid));
|
// $webUtil.fileDownload(that.backPath + that.url.download+ "?" + TOKEN_KEY + "=" + $webUtil.getToken() + "&downloadUUID=" + iframeId + "&materialClassifyId=" + that.currentItemAttributes.id);
|
var oid = "&" + "conditionMap['pkMaterial']=" + selectData.oid
|
var downIframe = $("<iframe>");
|
var iframeId = MD5("downloadImportTemplate" +$webUtil.getSystemVar($webUtil.systemValueKey.currentDateTimeSSS) +$webUtil.getSystemVar($webUtil.systemValueKey.userOid));
|
iframeId.src = that.backPath + that.url.download;
|
portal.downloadFileUUID.push(iframeId);
|
downIframe.attr("style","display:none;");
|
downIframe.attr("id",iframeId);
|
$("body").append(downIframe);
|
downIframe.attr("src",that.backPath + that.url.download+ "?" + TOKEN_KEY + "=" + $webUtil.getToken() + "&downloadUUID=" + iframeId + "&materialClassifyId=" + that.currentItemAttributes.id+encodeURI(oid));
|
downIframe.load(function(){
|
if(downIframe.contents() && downIframe.contents().length>0) {
|
$webUtil.showErrorMsg(downIframe.contents().find("pre").html());
|
}
|
downIframe.remove();
|
});
|
}
|
});
|
};
|
this.EXPORTRULE = function () { // 导出定检规则
|
var that = this
|
var selectData = layui.table.checkStatus("table_" + that.id).data[0];
|
if(selectData != undefined){
|
var query = "";
|
query += "&" + "conditionMap['pkMaterial']=" + selectData.oid
|
// $webUtil.showConfirmMsg("您确定要下载文件吗?下载后请解压压缩包后再自行打开文件",function(){
|
var downIframe = $("<iframe>");
|
var iframeId = MD5(that.id + $webUtil.getSystemVar($webUtil.systemValueKey.userOid));
|
iframeId.src = that.backPath + that.url.exportData;
|
portal.downloadFileUUID.push(iframeId);
|
downIframe.attr("style","display:none;");
|
downIframe.attr("id",iframeId);
|
$("body").append(downIframe);
|
downIframe.attr("src",that.backPath + that.url.exportData+"?limit=-1"+ "&AuthorizationToken=" + $webUtil.getToken() + encodeURI(query));
|
downIframe.load(function(){
|
if(downIframe.contents() && downIframe.contents().length>0) {
|
$webUtil.showErrorMsg(downIframe.contents().find("pre").html());
|
}
|
downIframe.remove();
|
});
|
// });
|
} else {
|
$webUtil.showErrorMsg('请选择一条数据!');
|
}
|
};
|
this.addOrEditRule = function (add,oid) {
|
var that = this;
|
var filter = "addOrEditRule_" + that.id;
|
if(!add){
|
if(!oid) {
|
oid = $webUtil.getOidFromGrid("table_check_" + that.id, true, true);
|
}
|
if(!oid){
|
return false;
|
}
|
}
|
var form = layui.form;
|
var addSaveIndex = layer.open({
|
type:1,
|
title: add?'新增定检规则':'修改定检规则',
|
btn: ['保存', '取消'],
|
skin: 'layui-layer-lan',
|
content: '<form id="form_' + filter + '" lay-filter="' + filter + '" class="layui-form" style="margin-top:5px" ></form>',
|
fullScreen:true,
|
resizing: function (layero) {
|
form.doResize(filter);
|
},
|
success: function (layero) {
|
form.addItems(filter,that.getFormCheckItems(false),
|
function () {
|
if(add) {
|
|
}else {
|
var selectRowData = layui.table.checkStatus("table_check_" + that.id).data[0];
|
form.setValues(selectRowData,filter);
|
}
|
}
|
, {}
|
, {
|
defaultColumnOneRow: 2
|
});
|
},
|
yes:function(layero){
|
if(form.validata(filter)){
|
var formValues = form.getValues(filter,true);
|
formValues.pkMaterial = that.addRuleOid;
|
$webUtil.ajax(add?'post':'put',(add?that.url.addSave:that.url.editSave),formValues,function (result) {
|
if(result.success){
|
$webUtil.showMsgFromResult(result,add?"新增定检规则成功":"修改定检规则成功");
|
that.refreshRule();
|
layer.close(addSaveIndex);
|
}else{
|
$webUtil.showErrorMsg(result.msg);
|
}
|
},function (xhr,error) {
|
$webUtil.showErrorMsg("访问服务器出现了错误,可能服务器没有开启,或者连接失败");
|
},that.backPath);
|
}
|
},
|
btn2:function(layero){
|
that.refreshRule();
|
layer.close()
|
}
|
});
|
};
|
|
this.showMaterialByOid =function (oid) { //物料基本信息查看
|
var that = this;
|
if(!oid){
|
return false;
|
}
|
var filter = "view_" + that.id;
|
var form = layui.form;
|
var addSaveIndex = layer.open({
|
type:1,
|
title: '查看物料/工具基本信息',
|
skin: 'layui-layer-lan',
|
content: '<form id="form_' + filter + '" lay-filter="' + filter + '" class="layui-form" style="margin-top:5px" ></form>',
|
fullScreen:true,
|
resizing: function (layero) {
|
form.doResize(filter);
|
},
|
success: function (layero) {
|
form.addItems(filter,that.getFormItems(true),function () {
|
that.materialExtendAttr.loadMaterialForForm(filter,oid,that.currentItemAttributes.id);
|
}
|
, {}
|
, {
|
defaultColumnOneRow: 3
|
});
|
}
|
});
|
};
|
this.showRuleByOid =function (data) { //定检规则查看
|
var that = this;
|
var filter = "view_" + that.id;
|
var form = layui.form;
|
var addSaveIndex = layer.open({
|
type:1,
|
title: '定检规则',
|
skin: 'layui-layer-lan',
|
content: '<form id="form_' + filter + '" lay-filter="' + filter + '" class="layui-form" style="margin-top:5px" ></form>',
|
fullScreen:true,
|
resizing: function (layero) {
|
form.doResize(filter);
|
},
|
success: function (layero) {
|
form.addItems(filter,that.getFormCheckItems(true),function () {
|
form.setValues(data,filter)
|
}
|
, {}
|
, {
|
defaultColumnOneRow: 3
|
});
|
}
|
});
|
};
|
this.getFormItems = function(readOnly){
|
var that = this;
|
var items = [{
|
name:'materialClassify',
|
text:'物料/工具分类',
|
type:'refer',
|
showField: 'materialClassifyText',
|
required:true,
|
readOnly:readOnly,
|
referConfig:{
|
type:'tree',
|
url: that.url.referClassifyTree,
|
backPath:that.backPath,
|
textField:'id,name',
|
valueField:'oid',
|
isMuti:false
|
}
|
},{
|
name:'id',
|
text:'物料/工具编号',
|
readOnly:readOnly,
|
required:true
|
},{
|
name:'code',
|
readOnly:readOnly,
|
text:'图号'
|
},{
|
name:'name',
|
text:'名称',
|
readOnly:readOnly,
|
required:true
|
},{
|
name:'revisionValue',
|
readOnly:readOnly,
|
text:'版本'
|
},{
|
name:'useDept',
|
text:'使用部门',
|
readOnly:readOnly,
|
type:'refer',
|
showField: 'useDeptName',
|
referConfig: {
|
type:layui.vciAlias.referRegister.departmentRefer
|
}
|
},{
|
name:'specification',
|
readOnly:readOnly,
|
text:'规格'
|
},{
|
name:'materialModel',
|
readOnly:readOnly,
|
text:'物料型号'
|
},{
|
name:'brand',
|
readOnly:readOnly,
|
text:'品牌'
|
},{
|
name:'material',
|
readOnly:readOnly,
|
text:'材质'
|
},{
|
name:'applyProduct',
|
readOnly:readOnly,
|
text:'适用产品'
|
},{
|
name:'supplier',
|
text:'常用制造/供应商',
|
readOnly:readOnly
|
},{
|
readOnly:readOnly,
|
name:'unitOfMeasurement',
|
text:'计量单位(可手输)',
|
type:'refer',
|
showField: 'unitOfMeasurement',
|
referConfig: {
|
type:'grid',
|
url: that.url.referUnit,
|
backPath: configData.frameworkPath,
|
textField:'id',
|
valueField:'id',
|
editable:true,
|
tableConfig: {
|
page: {
|
limit: 15,
|
page: 1
|
},
|
cols: [layui.table.getIndexColumn(), layui.table.getCheckColumn(), {
|
field: 'id',
|
title: '单位',
|
sort:true,
|
width: 150
|
}, {
|
field: 'name',
|
title: '说明',
|
sort:true,
|
width: 150
|
}],
|
queryColumns: [{
|
field: 'id',
|
title: '单位'
|
}, {
|
field: 'name',
|
title: '说明'
|
}]
|
}
|
}
|
},{
|
name:'priceOfUnit',
|
text:'单价',
|
readOnly:readOnly,
|
verify:'number'
|
},layui.vciWebComboxStore.getSecretObject(that.controlSecret)];
|
var extendAttrs = that.materialExtendAttr.getFormItemsByClassifyId(that.currentItemAttributes.id);
|
if(extendAttrs && extendAttrs.length > 0){
|
layui.each(extendAttrs,function (_index,_item) {
|
_item.name = "ext_" + _item.name;
|
if(readOnly){
|
_item.readOnly = readOnly;
|
}
|
});
|
items = items.concat(extendAttrs);
|
}
|
items.push({
|
name:'materialLife',
|
text:'寿命',
|
readOnly:readOnly
|
},{
|
name:'description',
|
type:'textarea',
|
textWidth:870,
|
readOnly:readOnly,
|
text:'备注'
|
});
|
return items;
|
};
|
this.getFormCheckItems = function (readOnly) {
|
var that = this;
|
var table = layui.table;
|
var items = [{
|
name: 'name',
|
text: '规则名称',
|
required:true,
|
readOnly:readOnly
|
},{
|
name:readOnly ? 'checkTypeText' : 'checkType',
|
text:'定检类型',
|
type:readOnly ? 'text' : 'combox',
|
comboxKey:'lifeCountType',
|
required:true,
|
readOnly:readOnly
|
},{
|
name:'checkCycle',
|
text:'定检周期数',
|
verify:'number',
|
required:true,
|
readOnly:readOnly
|
},{
|
name:'alertCycle',
|
text:'提前提醒数',
|
verify:'number',
|
required:true,
|
readOnly:readOnly
|
},{
|
name:'checkContent',
|
text:'定检内容',
|
isNewRow:true,
|
inputWidth:400,
|
type:'textarea',
|
readOnly:readOnly
|
},{
|
field:'exclusiveRuleName',
|
text:'互斥定检规则',
|
type:'refer',
|
showField:'exclusiveRuleName',
|
readOnly:readOnly,
|
referConfig:{
|
type:'grid',
|
url: "bdMaterialCheckController/getByMaterialOid",
|
backPath:that.backPath,
|
textField:'name',
|
valueField:'oid',
|
extraParams:{
|
materialOid:that.addRuleOid
|
},
|
isMuti:false,
|
tableConfig:{
|
page:{
|
limit:15,
|
page:1
|
},
|
cols:[table.getIndexColumn(),table.getCheckColumn(),{
|
field:'name',
|
title:'定检名称',
|
width:430
|
},{
|
field:'exclusiveRuleName',
|
title:'互斥规则名称',
|
}],
|
queryColumns:[{
|
field:'name',
|
title:'定检名称'
|
}]
|
}
|
}
|
}];
|
return items;
|
};
|
this.RELEASE = function(){
|
var that = this;
|
//发布版本
|
var oid = $webUtil.getOidFromGrid("table_" +that.id,true,true);
|
if(!oid){
|
return false;
|
}
|
var ts = $webUtil.getOidFromGrid("table_" +that.id,false,false,"ts");
|
$webUtil.showConfirmMsg("是否发布当前版本,发布后老的版本将无法被使用",function () {
|
$webUtil.put(that.url.controller + that.url.release,{oid:oid,ts:ts},function (result) {
|
if(result.success){
|
$webUtil.showMsgFromResult(result,"发布成功");
|
that.refresh();
|
}else{
|
$webUtil.showErrorMsg(result.msg);
|
}
|
},function (xhr,error) {
|
$webUtil.showErrorMsg("访问服务器出现了错误,可能服务器没有开启,或者连接失败");
|
},that.backPath);
|
});
|
};
|
this.UPREVISION= function () {
|
var that = this;
|
//升版本,把之前的版本的信息,去除基本信息和版本的信息后,作为新版本的数据
|
var filter = "uprevision_" + that.id;
|
var form = layui.form;
|
var oid = $webUtil.getOidFromGrid("table_" +that.id,true,true);
|
if(!oid){
|
return false;
|
}
|
var lcStatus = $webUtil.getOidFromGrid("table_" + that.id,false,false,'lcStatus');
|
if('Released' != lcStatus){
|
$webUtil.showErrorMsg("只有状态为【已发布】时才能升版");
|
return false;
|
}
|
var selectRowData = layui.table.checkStatus("table_" + that.id);
|
var addSaveIndex = layer.open({
|
type:1,
|
title: '物料/工具基本信息修订(升版)',
|
btn: ['保存', '取消'],
|
skin: 'layui-layer-lan',
|
content: '<form id="form_' + filter + '" lay-filter="' + filter + '" class="layui-form" style="margin-top:5px" ></form>',
|
fullScreen:true,
|
resizing: function (layero) {
|
form.doResize(filter);
|
},
|
success: function (layero) {
|
var formItems = that.getFormItems(false);
|
//需要在第一个元素里添加
|
formItems.unshift({
|
name:'copyFromVersion',
|
text:'修订来自(源)',
|
type: 'refer',
|
showField:'copyFromVersionName',
|
required:true,
|
textWidth:870,
|
useAllWidth:true,
|
referConfig:{
|
type:'grid',
|
url: that.url.controller + that.url.referOldRevision,
|
backPath:that.backPath,
|
textField:'id,name,revision',
|
valueField:'oid',
|
extraParams:{
|
nameOid:selectRowData.data[0].nameOid
|
},
|
isMuti:false,
|
tableConfig:{
|
page:{
|
limit:15,
|
page:1
|
},
|
cols:that.getOldRevisionColumns(),
|
method:'get'
|
}
|
}
|
});
|
form.addItems(filter,formItems,
|
function () {
|
var selectRowData = layui.table.checkStatus("table_" + that.id);
|
if(selectRowData !=null && selectRowData.data !=null && selectRowData.data.length > 0) {
|
var selectValues = selectRowData.data[0];
|
var newRevisionData = {};
|
for (var key in selectValues) {
|
if(key !='revisionValue' && key !='versionValue') {
|
newRevisionData[key] = selectValues[key];
|
}
|
}
|
newRevisionData['copyFromVersion'] = selectValues.oid;
|
newRevisionData['copyFromVersionName'] = selectValues.id + " " + selectValues.name + "(" + selectValues.revisionValue + ")";
|
form.setValues(newRevisionData, filter);
|
}
|
|
//监控事件
|
form.on("select(" + filter + ")",function(data){
|
if(data.elem.name == 'copyFromVersion'){
|
//说明变更了版本,需要重新加载数据
|
$webUtil.get(that.url.controller + that.url.getObjectByOid ,{oid:data.value},function (result) {
|
if(result.success){
|
result.obj['copyFromVersion'] = data.value;
|
result.obj['copyFromVersionName']=result.obj[0].oid + " " + result.obj[0].id + " " + result.obj[0].name + "(" + result.obj[0].revisionValue + ")";
|
form.setValues(result.obj,filter);
|
}else{
|
$webUtil.showErrorForResult(result,"获取老版本的数据出现了错误");
|
}
|
},function (xhr,error) {
|
$webUtil.showErrorMsg("连接服务器出现了错误,可能因为服务器未启动");
|
},that.backPath);
|
}
|
//我们需要在这里处理扩展属性
|
//获取新的分类的值,获取对应的业务类型的字段内容
|
//然后设置新的内容
|
});
|
}
|
, {}
|
, {
|
defaultColumnOneRow: 3
|
});
|
},
|
yes:function(layero){
|
if(form.validata(filter)){
|
var formValues = form.getValues(filter);
|
formValues.materialClassifyId = formValues.materialClassify;
|
$webUtil.post(that.url.controller + that.url.upRevision,formValues,function (result) {
|
if(result.success){
|
$webUtil.showMsgFromResult(result,"修订(升版)物料/工具基本信息成功");
|
that.refresh();
|
layer.close(addSaveIndex);
|
}else{
|
$webUtil.showErrorMsg(result.msg);
|
}
|
},function (xhr,error) {
|
$webUtil.showErrorMsg("访问服务器出现了错误,可能服务器没有开启,或者连接失败");
|
},that.backPath);
|
}
|
},
|
btn2:function(layero){
|
that.refresh();
|
layer.close()
|
}
|
});
|
};
|
this.getOldRevisionColumns = function () {
|
var that = this;
|
var table = layui.table;
|
return [table.getIndexColumn(),table.getCheckColumn(),{
|
field:'id',
|
title:'编号',
|
width:150
|
},{
|
field:'name',
|
title:'名称',
|
width:200
|
},{
|
field:'revisionValue',
|
title:'版本',
|
width:80
|
},{
|
field:'code',
|
title:'图号',
|
width:120
|
},{
|
field:'specification',
|
title:'规格',
|
width:120
|
},{
|
field:'brand',
|
title:'品牌',
|
width:120
|
},{
|
field:'lcStatusText',
|
title:'状态',
|
width:80
|
}];
|
};
|
this.DEL = function(){//删除
|
var that = this;
|
var oid = $webUtil.getOidFromGrid("table_" +that.id,true,true);
|
if(!oid){
|
return false;
|
}
|
var ts = $webUtil.getOidFromGrid("table_" +that.id,false,false,"ts");
|
$webUtil.showConfirmMsg("是否删除?如果物料/工具已经有台账内容,则不能删除",function () {
|
$webUtil.deleteRequest(that.url.controller + that.url.del,{oid:oid,ts:ts},function (result) {
|
if(result.success){
|
$webUtil.showMsgFromResult(result,"删除成功");
|
that.refresh();
|
}else{
|
$webUtil.showErrorMsg(result.msg);
|
}
|
},function (xhr,error) {
|
$webUtil.showErrorMsg("访问服务器出现了错误,可能服务器没有开启,或者连接失败");
|
},that.backPath)
|
});
|
};
|
|
this.checkColumns = function(){
|
var that = this;
|
var table = layui.table;
|
if(that.columns==null || that.columns.length==0){//如果其他地方想使用这个组件的时候,可以自定义列
|
that.columns = [table.getIndexColumn(),table.getCheckColumn(),{
|
field:'id',
|
title:'物料/工具编号 名称 (版本)',
|
width:350,
|
templet:function(d){
|
return d.id + ' ' + d.name + ' (' + d.revisionValue + ')' ;
|
}
|
},{
|
field:'code',
|
title:'图号',
|
width:120
|
},{
|
field:'specification',
|
title:'规格',
|
width:120
|
},{
|
field:'brand',
|
title:'品牌',
|
width:120
|
},{
|
field:'lcStatusText',
|
title:'状态',
|
width:80
|
},{
|
title:'操作',
|
field:'options',
|
width:140,
|
fixed:'right',
|
toolbar: '#toolbar_column_' + that.id
|
}];
|
}
|
};
|
this.checkCheckRuleColumns = function () {
|
var that = this;
|
var table = layui.table;
|
if(that.checkRuleColumns==null || that.checkRuleColumns.length==0){//如果其他地方想使用这个组件的时候,可以自定义列
|
that.checkRuleColumns = [table.getIndexColumn(),table.getCheckColumn(),{
|
field:'name',
|
title:'规则名称',
|
width:150
|
},{
|
field:'checkCycle',
|
title:'定检周期数',
|
width:90
|
},{
|
field:'checkTypeText',
|
title:'定检类型',
|
width:200
|
// templet:function (d) {
|
// if(d.checkCycle*1>0 && $webUtil.isNotNull(d.checkCycleType) && 'check_none' != d.checkCycleType){
|
// if(that.checkRuleTypeMap.CHECK_REACH_COUNT == d.checkCycleType){
|
// return "使用次数达到【" + d.checkCycle + "】定检";
|
// }else if(that.checkRuleTypeMap.CHECK_REACH_TIME == d.checkCycleType){
|
// return "使用时间达到【" + d.checkCycle + "】定检";
|
// }else if(that.checkRuleTypeMap.CHECK_COUNT == d.checkCycleType){
|
// return "使用次数每间隔【" + d.checkCycle + "】次定检";
|
// }else if(that.checkRuleTypeMap.CHECK_STORE_TIME == d.checkCycleType){
|
// return "存放时间每间隔【" + d.checkCycle + "】次定检";
|
// }else{
|
// return "每间隔【" + d.checkCycle + "】" + d.checkCycleType + "定检";
|
// }
|
// }
|
// return '不定检';
|
// }
|
},{
|
field:'alertCycle',
|
title:'提前提醒数',
|
width:90
|
},{
|
field:'checkContent',
|
title:'定检内容',
|
width:300
|
},{
|
field:'exclusiveRuleName',
|
title:'互斥规则名称',
|
width:150
|
},{
|
title:'操作',
|
field:'options',
|
width:140,
|
fixed:'right',
|
toolbar: '#toolbar_column_check_' + that.id
|
}];
|
}
|
};
|
this.detailCheckColumns = function(){
|
var that = this;
|
var table = layui.table;
|
if(that.detailcolumns==null || that.detailcolumns.length==0){//如果其他地方想使用这个组件的时候,可以自定义列
|
that.detailcolumns = [table.getIndexColumn(),table.getCheckColumn(),{
|
field:'id',
|
title:'台账编号 名称(版本)',
|
width:350,
|
fixed:'left',
|
templet:function(d) {
|
return d.id + ' ' + d.name + ' (' + d.revisionValue + ')';
|
}
|
},{
|
field:'code',
|
title:'图号',
|
width:120
|
},{
|
field:'specification',
|
title:'规格',
|
width:120
|
},{
|
field:'quantity',
|
title:'总数量/在库/可领',
|
width:160,
|
templet:function(d){
|
return d.quantity + "/" + d.quantityInStore + "/" + d.canBorrowQuantity + " (" + d.unitOfMeasurement + ")";
|
}
|
},{
|
field:'pkWarehouseName',
|
title:'所属库房',
|
width:120
|
},{
|
field:'invStatusText',
|
title:'库存状态',
|
width:90
|
},{
|
field:'brand',
|
title:'品牌',
|
width:80
|
},{
|
field:'material',
|
title:'材质',
|
width:80
|
},{
|
field:'applyProduct',
|
title:'适用产品',
|
width:120
|
},{
|
field:'supplier',
|
title:'制造/供应商',
|
width:120
|
},{
|
field:'description',
|
title:'备注',
|
width:120
|
}];
|
}
|
};
|
this.refreshClassify = function () {
|
var that = this;
|
layui.tree.reload("tree_" + that.id);
|
};
|
this.refresh = function(){
|
var that = this;
|
layui.table.reload('table_' + that.id,{});
|
if($webUtil.isNotNull(that.accountPath)) {
|
layui.table.reload('detail_' + that.id, {});
|
}
|
};
|
this.refreshRule = function(){
|
var that = this;
|
layui.table.reload('table_check_' + that.id,{});
|
if($webUtil.isNotNull(that.accountPath)) {
|
layui.table.reload('detail_' + that.id, {});
|
}
|
};
|
};
|
var cs = new Class();
|
exports(cs.MODULE_NAME,cs);
|
});
|