/**
* maintenanceplan.js
* 维保任务管理界面
* emial: yaoqiang@chinausky.com
* create: 2018-12-08
*/
Ext.Loader.setConfig({
enabled: true
});
Ext.Loader.setPath('Ext.ux', '../../res/extjs/examples/ux');
Ext.require([
'Ext.grid.*',
'Ext.data.*',
'Ext.ux.RowExpander',
'Ext.selection.CheckboxModel'
]);
var sm = Ext.create('Ext.selection.CheckboxModel');
//var sm1 = Ext.create('Ext.selection.CheckboxModel');
var menuidx = '';
var mouseon;
var mouseoff;
var menu_click;
var AllSelectedRecords = [];
var sm1;
var initflag = false;
Ext.define('MaintenancePlan', {
extend: 'Ext.data.Model',
fields: [
{ name: 'id', type: 'string' },
{ name: 'xh', type: 'int' },
{ name: 'plan_name', type: 'string' },
{ name: 'cycle', type: 'string' },
{ name: 'cycle_name', type: 'string' },
{ name: 'zxsj', type: 'string' },
{ name: 'team_id', type: 'string' },
{ name: 'team_name', type: 'string' },
{ name: 'name', type: 'string' },
{ name: 'company_code', type: 'string' },
{ name: 'start_date', type: 'string' },
{ name: 'end_date', type: 'string' },
{ name: 'start_inspect_time', type: 'string' },
{ name: 'end_inspect_time', type: 'string' },
]
});
Ext.define('MaintenancePlan1', {
extend: 'Ext.data.Model',
fields: [
{ name: 'id', type: 'string' },
{ name: 'spot_name', type: 'string' },
{ name: 'spot_address', type: 'string' },
{ name: 'pd', type: 'string' },
]
});
function exportbtn_click() {
baseUrl = document.getElementById('basePath').value;
V_LOGINNAME = $("#V_LOGINNAME").val();
plan_name = document.getElementById('plan_name').value;
person_liable_id = document.getElementById('person_liable_id').value;
var fields = '';
var array = ['xh', 'plan_name', 'cycle_name', 'zxsj', 'team_name', 'name'];
var name = ['序号', '任务名称', '周期', '执行日期', '执行团队', '责任人'];
for (var i = 0; i < 6; i++) {
if (i > 0)
fields += ',';
fields += '{id:"' + array[i] + '",title:"' + name[i] + '",shown:"' + true + '"}';
}
var query = new Object();
// query.V_LOGINNAME = V_LOGINNAME;
// query.plan_name = plan_name;
query.person_liable_id = person_liable_id;
query.EXPORT_FILE = '维保计划列表';
query.fields = '[' + fields + ']';
$.ajax({
type: 'POST',
url: baseUrl + "iot/excel/view/XjPlanMasterExcel",
data: {
queryJson: Ext.JSON.encode(query)
},
success: function (result) {
var json = eval('(' + result + ')');
if (json.action == 'dormExport') {
ConfirmStore = json.RESULT;
var elemIF = document.createElement("iframe");
elemIF.src = baseUrl + json.filename;
elemIF.style.display = "none";
document.body.appendChild(elemIF);
}
}
});
}
var body_resize = function () {
maxHeight = document.documentElement.clientHeight;
maxWidth = document.documentElement.clientWidth;
Ext.getCmp('MaintenancePlanPiebar').setHeight(maxHeight);
Ext.getCmp('MaintenancePlanPiebar').setWidth(maxWidth);
}
Ext.onReady(function () {
var baseUrl = document.getElementById('basePath').value;
var theme = document.getElementById('theme').value;
company_code = document.getElementById('company_code').value;
$("#V_LOGINNAME").val(sessionStorage.getItem('V_LOGINNAME'));
$("#V_PASSWORD").val(sessionStorage.getItem('V_PASSWORD'));
var V_LOGINNAME = $("#V_LOGINNAME").val();
var V_PASSWORD = $("#V_PASSWORD").val();
var chkIcon = ''
var unchkIcon = '
'
var countPerPage = 15;
var maxHeight = 10000;
var chkBoolean = function (flag) {
if (flag)
return chkIcon;
return unchkIcon;
}
var states1 = Ext.create('Ext.data.Store', {
fields: ['status', 'name'],
data: [
// {"status":-1, "name":"全选"},
{ "status": "待开通", "name": "待开通" },
{ "status": "已开通", "name": "已开通" },
{ "status": "已锁定", "name": "已锁定" },
{ "status": "注销", "name": "注销" },
]
});
var deselect_fun = function (record) {
var index = AllSelectedRecords.indexOf(record.get("id"));
if (index > -1) {
AllSelectedRecords.splice(index, 1);
return AllSelectedRecords;
}
}
sm1 = Ext.create('Ext.selection.CheckboxModel', {
mode: "MULTI",
listeners: {
deselect: function (me, record, index, opts) {
if (initflag) {
// alert("初始化");
} else {
deselect_fun(record);
}
},
select: function (me, record, index, opts) {
var index = AllSelectedRecords.indexOf(record.get("id"));
if (index > -1) {
return AllSelectedRecords;
} else {
AllSelectedRecords.push(record.get("id"));
return AllSelectedRecords;
}
}
}
});
var clear_append_form = function () {
Ext.getCmp('fa_plan_name').setValue("");
Ext.getCmp('fa_team_id').setValue("");
// Ext.getCmp('fa_cycle').setValue("");
Ext.getCmp('fa_start_date').setValue("");
Ext.getCmp('fa_end_date').setValue("");
Ext.getCmp('fa_start_time').setValue("");
Ext.getCmp('fa_end_time').setValue("");
Ext.getCmp('fa_company_code').setValue("");
// Ext.getCmp('fa_spot_id').setValue("");
AllSelectedRecords = [];
Ext.getCmp('MaintenancePlanListPageToolbar').getStore().reload();
}
var queryJson = new Object();
queryJson.V_LOGINNAME = V_LOGINNAME;
// queryJson.V_PASSWORD = V_PASSWORD;
queryJson.COMMSTATUS = 'NO';
if ((company_code != null) && (company_code != 'null') && (company_code.length > 0))
queryJson.company_code = company_code;
var myStore = Ext.create('Ext.data.Store', {
model: 'MaintenancePlan',
pageSize: countPerPage,
proxy: {
type: 'ajax',
url: baseUrl + 'iot/planmaster/getList',
reader: {
type: 'json',
root: 'RESULT',
totalProperty: 'totalCount'
},
extraParams: {
queryJson: Ext.JSON.encode(queryJson)
}
},
remoteSort: true
});
var myStore1 = Ext.create('Ext.data.Store', {
model: 'MaintenancePlan1',
pageSize: 5,
listeners: {
beforeload: function (me, store, operation, eOpts) {
initflag = true;
},
load: function (me, records, success, opts) {
if (!success || !records || records.length == 0)
return;
//根据全局的选择,初始化选中的列
var selModel = Ext.getCmp('MaintenancePlanListPanel1').getSelectionModel();
Ext.Array.forEach(AllSelectedRecords, function (item) {
for (var i = 0; i < records.length; i++) {
var record = records[i];
if (record.get("id") == item && record.get('pd') != 1) {
// alert(record.get("id")+" - "+this.get("id")+"("+this.data.id+")");
selModel.select(record, true, true); //选中record,并且保持现有的选择,不触发选中事件
}
}
});
// sm1.addListener('deselect',deselect_fun);
initflag = false;
}
},
proxy: {
type: 'ajax',
url: baseUrl + 'iot/inspectionpoints/getList',
reader: {
type: 'json',
root: 'RESULT',
totalProperty: 'totalCount'
},
extraParams: {
queryJson: Ext.JSON.encode(queryJson)
}
},
remoteSort: true
});
myStore1.on('load', function (myStore1, record) {
for (var i = 0; i < record.length; i++) {
var records = record[i];
if (records.get('pd') == 1) {
Ext.getCmp('MaintenancePlanListPanel1').getSelectionModel().select(records, true);
}
};
});
Ext.define('CompanyComboStore', {
extend: 'Ext.data.Model',
fields: [
{ name: 'building_name', type: 'string' },
{ name: 'building_id', type: 'string' }
]
});
Ext.define('teamStore', {
extend: 'Ext.data.Model',
fields: [
{ name: 'team_name', type: 'string' },
{ name: 'id', type: 'string' }
]
});
var CompanyStory = Ext.create('Ext.data.Store', {
model: 'CompanyComboStore',
proxy: {
type: 'ajax',
actionMethods: {
create: 'POST',
read: 'POST', // by default GET
update: 'POST',
destroy: 'POST'
},
url: baseUrl + 'iot/company/view/getBuildingNameList',
reader: {
type: 'json',
root: 'RESULT',
totalProperty: 'totalCount'
},
extraParams: {
queryJson: Ext.JSON.encode(queryJson)
}
}
});
var teamStory = Ext.create('Ext.data.Store', {
model: 'teamStore',
proxy: {
type: 'ajax',
actionMethods: {
create: 'POST',
read: 'POST', // by default GET
update: 'POST',
destroy: 'POST'
},
url: baseUrl + 'iot/planteam/getList',
reader: {
type: 'json',
root: 'RESULT',
totalProperty: 'totalCount'
},
extraParams: {
queryJson: Ext.JSON.encode(queryJson)
}
}
});
var data = Ext.Date.format(new Date(), 'm/d/Y');
var AppendForm = Ext.create('Ext.form.Panel', {
id: 'MaintenancePlanAppendForm',
labelWidth: 55,
url: baseUrl + 'iot/planmaster/append',
bodyPadding: 15,
frame: true,
labelAlign: 'left',
region: 'north',
enableDrop: true,
ddGroup: 'treeID',
height: 200,
items: [{
autoHeight: true,
layout: 'column',
border: false,
items: [{
columnWidth: .50,
xtype: 'fieldset',
layout: 'form',
// defaults: {anchor: '95%'},
style: 'margin-left: 5px;padding-left: 5px;border:0px solid #B5B8C8!important;',
items: [
{
xtype: 'textfield',
fieldLabel: '任务名称',
id: 'fa_plan_name',
name: 'plan_name',
editable: false,
width: 283,
// store:InspectorsStory
}, {
xtype: 'combo',
fieldLabel: '建筑/项目',
id: 'fa_company_code',
name: 'company_code',
displayField: 'building_name',
valueField: 'building_id',
editable: false,
width: 283,
store: CompanyStory,
listeners: {
select: function (combo, record, index) {
try {
var label = this.value;
var query = new Object();
query.company_code = label;
query.V_LOGINNAME = V_LOGINNAME;
// query.V_PASSWORD = V_PASSWORD;
var jsonstr = Ext.JSON.encode(query);
myStore1.getProxy().extraParams = {
queryJson: jsonstr
};
Ext.getCmp('MaintenancePlanListPageToolbar1').moveFirst();
}
catch (ex) {
Ext.MessageBox.alert("错误", "数据加载失败。");
}
}
}
}, {
xtype: 'timefield',
fieldLabel: '维保开始时间',
id: 'fa_start_time',
name: "start_time",
minValue: '00:00',
maxValue: '24:00',
minText: '时间要大于{0}',
maxText: '时间要小于{0}',
format: 'G:i',//时间格式G(24小时进制)、i、s(时分秒,g是12小时进制)
increment: 30,//跨度,默认是15分钟
invalidText: '时间格式错误',
anchor: '40%'
}, {
xtype: 'timefield',
fieldLabel: '维保结束时间',
id: 'fa_end_time',
name: "end_time",
minValue: '00:00',
maxValue: '24:00',
minText: '时间要大于{0}',
maxText: '时间要小于{0}',
format: 'G:i',//时间格式G(24小时进制)、i、s(时分秒,g是12小时进制)
increment: 30,//跨度,默认是15分钟
invalidText: '时间格式错误',
anchor: '80%'
}
]
}, {
columnWidth: .50,
xtype: 'fieldset',
layout: 'form',
// defaults: {anchor: '95%'},
style: 'margin-left: 5px;padding-left: 5px;border:0px solid #B5B8C8!important;',
items: [
{
xtype: 'combo',
fieldLabel: '执行团队',
id: 'fa_team_id',
name: 'team_id',
displayField: 'team_name',
valueField: 'id',
editable: false,
width: 100,
store: teamStory
}, {
xtype: 'fieldcontainer',
fieldLabel: '周期',
defaultType: 'radiofield',
columns: 2,
id: "fa_cycle",
defaults: {
flex: 1
},
layout: 'hbox',
items: [
{ boxLabel: '每日', name: 'fa_cycle', inputValue: "0", id: 'radio1' },
{ boxLabel: '每周', name: 'fa_cycle', inputValue: "1", id: 'radio2' },
{ boxLabel: '每月', name: 'fa_cycle', inputValue: "2", id: 'radio3' }
]
}, {
xtype: 'datefield',
fieldLabel: "执行开始日期",
minValue: data,
// '07/07/2017',
minText: "当前日期选择应大于当天日期",
format: "Y-m-d",
columnWidth: 0.5,
id: 'fa_start_date',
name: "start_date",
editable: false,//只读约束
anchor: '80%'
}, {
xtype: 'datefield',
fieldLabel: "执行结束日期",
minValue: data,
// '07/07/2017',
minText: "当前日期选择应大于当天日期",
format: "Y-m-d",
columnWidth: 0.5,
id: 'fa_end_date',
name: "end_date",
editable: false,//只读约束
anchor: '80%'
}, {
id: 'fa_queryJson',
name: 'queryJson',
hidden: true
}
]
}
]
}]
});
function public_insert() {
var query = new Object();
var spot_id = null;
query.plan_name = Ext.getCmp('fa_plan_name').getValue();
if (query.plan_name == null || query.plan_name == "") {
Ext.Msg.alert('系统提示', '任务名称不能为空!', function (btn, txt) {
Ext.getCmp('fa_plan_name').setValue("");
});
return;
}
query.company_code = Ext.getCmp('fa_company_code').getValue();
if (query.company_code == null || query.company_code == "") {
Ext.Msg.alert('系统提示', '请选择建筑/项目!', function (btn, txt) {
Ext.getCmp('fa_company_code').setValue("");
});
return;
}
var start_time = Ext.getCmp('fa_start_time').getValue();
if (start_time == null || start_time == "") {
Ext.Msg.alert('系统提示', '请选择维保开始时间!', function (btn, txt) {
Ext.getCmp('fa_start_time').setValue("");
});
return;
} else {
var start_time1 = ((start_time.getHours() < 10) ? ('0' + start_time.getHours()) : start_time.getHours()) + ':' + ((start_time.getMinutes() < 10) ? ('0' + start_time.getMinutes()) : start_time.getMinutes());
}
var end_time = Ext.getCmp('fa_end_time').getValue();
if (end_time == null || end_time == "") {
Ext.Msg.alert('系统提示', '请选择维保结束时间!', function (btn, txt) {
Ext.getCmp('fa_end_time').setValue("");
});
return;
} else {
var end_time1 = ((end_time.getHours() < 10) ? ('0' + end_time.getHours()) : end_time.getHours()) + ':' + ((end_time.getMinutes() < 10) ? ('0' + end_time.getMinutes()) : end_time.getMinutes());
}
query.team_id = Ext.getCmp('fa_team_id').getValue();
if (query.team_id == null || query.team_id == "") {
Ext.Msg.alert('系统提示', '请选择执行团队!', function (btn, txt) {
Ext.getCmp('fa_company_code').setValue("");
});
return;
}
query.start_date = Ext.util.Format.date(Ext.getCmp('fa_start_date').getValue(), 'Y-m-d');
if (query.start_date == null || query.start_date == "") {
Ext.Msg.alert('系统提示', '请选择执行开始日期!', function (btn, txt) {
Ext.getCmp('fa_start_date').setValue("");
});
return;
}
query.end_date = Ext.util.Format.date(Ext.getCmp('fa_end_date').getValue(), 'Y-m-d');
if (query.end_date == null || query.end_date == "") {
Ext.Msg.alert('系统提示', '请选择执行结束日期!', function (btn, txt) {
Ext.getCmp('fa_end_date').setValue("");
});
return;
}
var fa_cycle = AppendForm.getForm().findField("fa_cycle").getGroupValue();
var V_LOGINNAME = $("#V_LOGINNAME").val();
var V_PASSWORD = $("#V_PASSWORD").val();
if (AllSelectedRecords.length == 1) {
query.spot_id = AllSelectedRecords[0];
} else {
if (AllSelectedRecords.length > 1) {
for (var i = 0; i < AllSelectedRecords.length; i++) {
if (i == 0)
spot_id = AllSelectedRecords[i];
else
spot_id += "," + AllSelectedRecords[i];
}
// alert("测试4-"+spot_id);
query.spot_id = spot_id;
} else {
Ext.Msg.alert('请先选择', '至少选择一条维保点位,再点击提交');
return;
}
}
query.cycle = fa_cycle;
query.start_inspect_time = start_time1;
query.end_inspect_time = end_time1;
// query.V_LOGINNAME = V_LOGINNAME;
var jsonstr = Ext.JSON.encode(query);
Ext.Ajax.request({
// timeout : 3000000,
url: baseUrl + 'iot/planmaster/append',
params: 'queryJson=' + jsonstr,
success: function (resp, opts) {
Ext.Msg.alert('操作成功', '计划已添加', function (btn, txt) {
// myStore.reload();
clear_append_form();
});
}
});
}
var appendwin = function () {
AllSelectedRecords = [];
var query = new Object();
query.V_LOGINNAME = V_LOGINNAME;
// query.V_PASSWORD=V_PASSWORD;
var jsonstr = Ext.JSON.encode(query);
myStore1.getProxy().extraParams = {
queryJson: jsonstr
};
Ext.getCmp('MaintenancePlanListPageToolbar1').moveFirst();
Ext.create('Ext.window.Window', {
title: '新增维保计划',
height: 600,
width: 800,
modal: true,
layout: 'border',
items: [AppendForm, MaintenancePlanTab],
closeAction: 'hide',
buttons: [{
text: '提交',
iconCls: 'ok_btn',
handler: function () {
public_insert();
}
}, {
text: '关闭',
iconCls: 'cancel_btn',
handler: function () {
this.up('window').hide();
}
}]
}).show();
}
var del_sm = function () {
if (sm.getCount() == 1) {
var selected = sm.getSelection();
var query = new Object();
var list = new Array();
var o = new Object();
o.id = selected[0].raw.id;
list.push(o);
query.ID_LIST = list;
var jsonstr = Ext.JSON.encode(query);
Ext.MessageBox.confirm('删除任务信息', '是否删除' + selected[0].raw.plan_name + ' 维保任务?', function (btn) {
if (btn == 'yes') {
$.ajax({
type: 'POST',
url: baseUrl + "iot/planmaster/del",
data: {
queryJson: jsonstr
},
success: function (result) {
var json = eval('(' + result + ')');
if (json.action == 'deletePlanMaster') {
if (json.success == true) {
Ext.Msg.alert('操作成功', json.MSG, function (btn, txt) {
Ext.getCmp('MaintenancePlanListPanel').getStore().reload();
});
} else {
Ext.Msg.alert('操作失败', json.MSG, function (btn, txt) {
Ext.getCmp('MaintenancePlanListPanel').getStore().reload();
});
}
}
}
});
}
}, this);
} else {
if (sm.getCount() > 1) {
var query = new Object();
var list = new Array();
for (var i = 0; i < sm.getCount(); i++) {
var selected = sm.getSelection();
var o = new Object();
o.id = selected[i].raw.id;
list.push(o);
}
query.ID_LIST = list;
var jsonstr = Ext.JSON.encode(query);
Ext.MessageBox.confirm('删除任务信息', '是否删除选中的' + sm.getCount() + ' 个维保任务?', function (btn) {
if (btn == 'yes') {
$.ajax({
type: 'POST',
url: baseUrl + "iot/planmaster/del",
data: {
queryJson: jsonstr
},
success: function (result) {
var json = eval('(' + result + ')');
if (json.action == 'deletePlanMaster') {
if (json.success == true) {
Ext.Msg.alert('操作成功', json.MSG, function (btn, txt) {
Ext.getCmp('MaintenancePlanListPanel').getStore().reload();
});
} else {
Ext.Msg.alert('操作失败', json.MSG, function (btn, txt) {
Ext.getCmp('MaintenancePlanListPanel').getStore().reload();
});
}
}
}
});
}
}, this);
} else {
Ext.Msg.alert('请先选择', '至少选择一条记录,再点击删除');
}
}
}
var clear_modify_form = function () {
Ext.getCmp('fm_id').setValue("");
Ext.getCmp('fm_plan_name').setValue("");
Ext.getCmp('fm_team_id').setValue("");
// Ext.getCmp('fm_cycle').setValue("");
Ext.getCmp('fm_start_date').setValue("");
Ext.getCmp('fm_end_date').setValue("");
Ext.getCmp('fm_start_time').setValue("");
Ext.getCmp('fm_end_time').setValue("");
Ext.getCmp('fm_company_code').setValue("");
AllSelectedRecords = [];
// Ext.getCmp('fm_spot_id').setValue("");
Ext.getCmp('MaintenancePlanListPageToolbar').getStore().reload();
}
var show_page = function () {
var maintenancePlan_title2_input = document.getElementById('maintenancePlan_title2_input').value;
var maintenancePlan_title3_input1 = document.getElementById('maintenancePlan_title3_input1').value;
var query = new Object();
if (maintenancePlan_title2_input.length > 0) {
query.plan_name = maintenancePlan_title2_input;
$("#plan_name").val(maintenancePlan_title2_input);
}
if (maintenancePlan_title3_input1.length > 0) {
query.person_liable_id = maintenancePlan_title3_input1;
$("#person_liable_id").val(maintenancePlan_title3_input1);
}
// query.V_LOGINNAME = V_LOGINNAME;
// query.V_PASSWORD = V_PASSWORD;
var jsonstr = Ext.JSON.encode(query);
myStore.getProxy().extraParams = {
queryJson: jsonstr
};
Ext.getCmp('MaintenancePlanListPageToolbar').moveFirst();
}
var reset1 = function () {
document.getElementById('maintenancePlan_title2_input').value = '';
document.getElementById('maintenancePlan_title3_input1').value = '0';
$("#plan_name").val('');
$("#person_liable_id").val('');
show_page();
}
mouseon = function (obj) {
var id = obj.id;
$("#" + id).removeClass(id);
$("#" + id).addClass(id + '_on');
}
mouseoff = function (obj) {
var mid = "maintenancePlan_";
for (var i = 1; i < 7; i++) {
var id = "maintenancePlan_title" + i + "_div";
$("#" + id).removeClass(id + '_on');
$("#" + id).addClass(id);
}
if (menuidx == 'm1') {
mid += 'title1_div';
$("#" + mid).removeClass(mid);
$("#" + mid).addClass(mid + '_on');
}
else if (menuidx == 'm2') {
mid += 'title2_div';
$("#" + mid).removeClass(mid);
$("#" + mid).addClass(mid + '_on');
}
else if (menuidx == 'm3') {
mid += 'title3_div';
$("#" + mid).removeClass(mid);
$("#" + mid).addClass(mid + '_on');
}
else if (menuidx == 'm4') {
mid += 'title4_div';
$("#" + mid).removeClass(mid);
$("#" + mid).addClass(mid + '_on');
}
else if (menuidx == 'm5') {
mid += 'title5_div';
$("#" + mid).removeClass(mid);
$("#" + mid).addClass(mid + '_on');
}
else if (menuidx == 'm6') {
mid += 'title6_div';
$("#" + mid).removeClass(mid);
$("#" + mid).addClass(mid + '_on');
}
}
menu_click = function (obj) {
var id = obj.id;
if (id == 'maintenancePlan_title1_div') {
menuidx = 'm1';
show_page();
}
else if (id == 'maintenancePlan_title2_div') {
menuidx = 'm2';
reset1();
}
else if (id == 'maintenancePlan_title3_div') {
menuidx = 'm3';
exportbtn_click();
}
else if (id == 'maintenancePlan_title4_div') {
menuidx = 'm4';
del_sm();
}
else if (id == 'maintenancePlan_title5_div') {
menuidx = 'm5';
appendwin();
}
else if (id == 'maintenancePlan_title6_div') {
menuidx = 'm6';
chk_sm();
}
}
// var childPanel1 = Ext.create('Ext.Panel', {
// height:188,
// width:'100%',
// html: '