/**
* 生命周期
* @author weidy@2020-07-27
*/
layui.define(['layer','element','form','table','util'],function(exports){
var Class = function(){
this.MODELNAME = "platform/objectService/VciOsLifeCycle";
this.moduleKey = "VciOsLifeCycle";
this.id='VciLifeCycle';
this.sourceData={};
this.columns = [];
this.backPath = configData.compatibility?path:configData.objectServicePath;
this.url={
controller:'lifeCycleController/',
dataGrid:'gridLifeCycle',
addSave:'addSave',
editSave:'editSave',
deleteUrl:'deleteData',
getObjectByOid:'getObjectByOid',
listUsed:'listUsed',
listLines:'listLineByOid',
listLinesPic:'listLinesPic',
gridEvent:'gridLifeEvents'
};
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.getContent=function(){//返回这个组件的基础html
var that = this;
var html = "";
html = [
'
',
'
',
that.getToolbarHtml(),
'
',
'
',
'
',
'
',
'
',
'
'
].join("");
return html;
};
this.getToolbarHtml =function(){
var that = this;
var html = [
'',
!configData.compatibility?
[ '',
'',
''
].join(''):'',
'',
'
',
].join("");
return html;
};
this.init=function(){//基础的html被添加后,再执行初始化
var that = this;
$webUtil.copyConfig(that,that.moduleKey);
var table = layui.table;
that.checkColumns();//主列表中列。
that.firstGridLoad = false;
table.render({
elem: '#table_' + that.id,
id: 'table_' + that.id,
url: that.url.controller + that.url.dataGrid,
backPath:that.backPath,
page: {
limit: 15,
page: 1
},
selectMode:table.selectMode.muti,
cols: [that.columns],
done:function(res, cur, count){
if(!that.firstGridLoad) {
if(!configData.compatibility) {
that.initDetailTable(((res && res.data) ? res.data[0].oid : ""));
$(".layui-south").hide();
}
that.firstGridLoad = true;
}else{
if(count>0){
that.gridItemsByOid(res.data[0].oid);
}
}
table.on('tool(' + that.id + ')',function(obj) {
var data = obj.data;//当前选择行的数据
var layEvent = obj.event;//点的是什么按钮
if (layEvent == 'edit') {
that.addOrEdit(false, data.oid);
}else if(layEvent == 'listUsed'){
that.listUsed(data);
}else if(layEvent == 'exportCode'){
that.exportCode(data);
}else if(layEvent == 'viewLine'){
that.viewLinePic(data);
}
});
},
rowClick:function(filter,data){
if(data && !configData.compatibility){
that.gridItemsByOid(data.oid);
}
}
});
$webUtil.createSearchHtml({
id:'英文名称',
name:'中文名称'
},$("[layui-filter='toolbar_" + that.id + "']"),'table_' + that.id);
$webUtil.bindDefultButtonLisenter(that, that.id);
};
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:'英文名称',
sort:true,
width:150
},{
field:'name',
title:'中文名称',
sort:true,
width:200
},{
field: 'startStatusName',
title: '起始状态',
sort:true,
width: 90
},{
field:'description',
title:'描述',
width:150
},{
field: "options",
title:'操作',
width:230,
templet:function (d){
if(configData.compatibility){
return '查看连接线';
}else {
return ['编辑',
'查看应用范围',
'导出代码'].join('');
}
}
}];
}
};
this.initDetailTable = function(pkLife){
var that = this;
var table = layui.table;
that.checkDetailColumns();
table.render({
elem: '#detail_table_' + that.id,
id: 'detail_' + that.id,
backPath:that.backPath,
url: that.url.controller + that.url.listLines,
where:{
oid:pkLife
},
cols: [that.detailColumns],
done:function (res, cur, count){
table.on('tool(detail_' + that.id + ')',function(obj) {
var data = obj.data;//当前选择行的数据
var layEvent = obj.event;//点的是什么按钮
if (layEvent == 'viewEvent') {
that.viewEvent(data);
}
});
}
});
};
this.checkDetailColumns = function () {
var that = this;
var table = layui.table;
if(that.detailColumns==null || that.detailColumns.length==0){//如果其他地方想使用这个组件的时候,可以自定义列
that.detailColumns = [table.getIndexColumn(),table.getCheckColumn(),{
field:'sourceLifeStatusName',
title:'源状态',
width:150
},{
field:'targetLifeStatusName',
title:'目标状态',
width:150
},{
field:'name',
title:'业务描述',
width:150
},{
field:'options',
title: '操作',
width: 100,
templet:function (d){
if(d.events&& d.events.length > 0) {
return '查看事件';
}else{
return '';
}
}
}];
}
};
this.gridItemsByOid = function(pkLife){
var that = this;
if($webUtil.isNull(pkLife)){
return;
}
layui.table.reload("detail_" + that.id,{
where:{
oid: pkLife
}
});
};
this.getFormItems = function(onlyShow,edit) {
return [
{
field: 'id',
title: '英文名称(唯一)',
required: true,
readOnly:(onlyShow||edit)
} , {
field: 'name',
title: '中文名称',
required: true,
readOnly:onlyShow
} ,{
field: ''
}, {
field: 'description',
title: '描述',
type: 'text',
inputWidth:535,
readOnly:onlyShow
} ];
};
this.ADD = function () {
var that = this;
that.addOrEdit(true);
};
this.EDIT = function(){
var that = this;
var oid = webUtil.getOidFromGrid("table_" + that.id,true,true);
if(!oid){
return false;
}
that.addOrEdit(false,oid);
};
this.addOrEdit = function(add,oid) {
var that = this;
var form = layui.form;
var filter ="form_" + that.id;
var addSaveIndex =webUtil.dialog({
title:add?'添加生命周期':'修改生命周期',
btn:['保存','取消'],
content:'',
fullScreen:true,
shadeClose:false,
resizing:function(layero){
form.doResize(filter);
},
success:function(layero) {
form.addItems(filter,that.getFormItems(false,!add),
function () {
if(!add){
form.load(filter,{
backPath:that.backPath,
url:that.url.controller + that.url.getObjectByOid,
method:'get',
params:{
oid:oid
}
});
}else{
var defaultValues = {};
//可以手动在此处添加默认值
form.setValues(defaultValues,filter);
}
}, {}, {defaultColumnOneRow: 2,labelWidth:130});
},
yes:function(layero){
if(form.validata(filter)){
var values = form.getValues(filter,true);
var url = that.url.controller + (add?that.url.addSave:that.url.editSave);
webUtil.ajax(add?'post':'put',url,values,function(result){
if(result.success){
webUtil.showMsgFromResult(result,(add ? "添加成功" : "修改成功"));
layer.close(addSaveIndex);
that.refresh();
}else{
webUtil.showErrorMsg(result.msg);
}
},function(xhr,err){
webUtil.showErrorMsg("请求服务出现了错误,可能服务器未开启");
},that.backPath);
}
},
btn2:function(layero){
layer.close(addSaveIndex);
}
});
};
this.DEL = function(){
var that = this;
var oid = webUtil.getOidFromGrid("table_" +that.id,true,false);
if(!oid){
return false;
}
webUtil.showConfirmMsg("是否删除这条数据?如果被引用将不能被删除!",function () {
webUtil.deleteRequest(that.url.controller + that.url.deleteUrl,{oids:oid},function(result){
if(result.success){
webUtil.showMsgFromResult(result,"删除成功");
that.refresh();
}else{
webUtil.showErrorMsg(result.msg);
}
},function(xhr,err){
webUtil.showErrorMsg("请求服务出现了错误,可能服务器未开启");
},that.backPath);
});
};
this.refresh = function(){
var that = this;
layui.table.reload("table_" + that.id);
};
this.listUsed = function (data){
var that = this;
if(!data){
return false;
}
var filter = data.oid;
webUtil.dialog({
title: '查看生命周期[' + data.name + "(" + data.id + ")]的应用范围",
content: '',
area: ['950px', '600px'],
success: function (layero) {
layui.table.render({
elem: '#used_' + filter,
id: 'used_' + filter,
url: that.url.controller + that.url.listUsed,
backPath:that.backPath,
where:{
oid:data.oid
},
cols: [[{
field:'id',
title:'业务类型英文名称',
width:150
},{
field: 'name',
title: '业务类型名称',
width: 250
},{
field: 'description',
title:'描述',
width: 200
},{
field: 'implClass',
title: '实现类',
width: 300
}]]
});
}
});
};
this.viewEvent = function (data){
var that = this;
if(!data){
return false;
}
if(!data.events || data.events.length == 0){
$webUtil.showAutoMsg('没有事件');
return false;
}
var filter = data.oid;
webUtil.dialog({
title: '查看生命周期事件',
content: '',
area: ['950px', '500px'],
success: function (layero) {
layui.table.render({
elem: '#events_' + filter,
id: 'events_' + filter,
data:data.events,
cols: [[{
field:'eventFullName',
title:'全路径',
width: 600
},{
field: 'eventShowName',
title: '事件名称',
width: 250
}]]
});
}
});
};
this.EVENTS = function (){
var that = this;
var filter = "event_" + that.id;
webUtil.dialog({
title: '查看已经注册的生命周期事件',
content: '',
area: ['950px', '500px'],
success: function (layero) {
layui.table.render({
elem: '#events_' + filter,
id: 'events_' + filter,
backPath:that.backPath,
url:that.url.controller + that.url.gridEvent,
cols: [[{
field:'eventFullName',
title:'全路径',
width: 400
},{
field: 'eventShowName',
title: '事件名称',
width: 250
},{
field: 'description',
title: '描述',
width: 200
}]]
});
}
});
};
this.viewLinePic = function (data) {
var that = this;
layui.use('platform/objectService/er/erContent', function () {
var erContent = layui['platform/objectService/er/erContent'];
var filter = "er_" + that.id;
var erIndex = $webUtil.dialog({
title: "查看生命周期[" + data.name + "]的内容",
content: '',
fullScreen: true,
success: function (layero) {
var oid = data.id + "_linkType";
$("#" + filter).html(erContent.getContent(oid));
erContent.init(oid, {
id: data.id,
url: that.url.controller + that.url.listLinesPic
});
}
});
});
};
};
var cs = new Class();
exports(cs.MODELNAME,cs);
});