/**
|
* 电话表管理模块
|
* 功能:实现电话表的查询、添加、编辑、删除和导入功能
|
* 后端API:基于Spring Boot实现的电话表管理接口
|
*/
|
(function (vc) {
|
// 默认分页参数
|
var DEFAULT_PAGE = 1;
|
var DEFAULT_ROWS = 10;
|
|
vc.extends({
|
data: {
|
// 电话表管理信息对象
|
phoneMeterManageInfo: {
|
// 电话表数据列表
|
phoneBillFlows: [],
|
// 总记录数
|
total: 0,
|
// 总页数
|
records: 1,
|
// 是否显示更多查询条件
|
moreCondition: false,
|
// 房间名称
|
roomName: '',
|
// 查询条件
|
conditions: {
|
// 设备编号
|
deviceNum: '',
|
// 房间编号
|
roomNum: '',
|
// 对象ID(房间ID)
|
objId: ''
|
},
|
// 定时器对象,用于输入搜索
|
timer: {}
|
}
|
},
|
/**
|
* 初始化方法
|
* 功能:初始化房间树、加载电话表数据
|
*/
|
_initMethod: function () {
|
// 初始化房间树组件
|
vc.emit('roomTreeDiv', 'initRoomTreeDiv', {
|
callName: 'phoneMeterManage'
|
});
|
// 加载电话表数据
|
if (typeof $that._listPhoneBillFlows === 'function') {
|
$that._listPhoneBillFlows(DEFAULT_PAGE, DEFAULT_ROWS);
|
}
|
},
|
/**
|
* 初始化事件监听
|
* 功能:监听组件间的事件通信
|
*/
|
_initEvent: function () {
|
// 监听选择房间事件
|
vc.on('phoneMeterManage', 'selectRoom', function (_param) {
|
$that.phoneMeterManageInfo.conditions.objId = _param.roomId;
|
$that.phoneMeterManageInfo.conditions.roomNum = '';
|
$that.phoneMeterManageInfo.roomName = _param.roomName;
|
// 重新加载电话表数据
|
$that._listPhoneBillFlows(DEFAULT_PAGE, DEFAULT_ROWS);
|
});
|
|
// 监听列表刷新事件
|
vc.on('phoneMeterManage', 'listPhoneBillFlow', function (_param) {
|
$that._listPhoneBillFlows(DEFAULT_PAGE, DEFAULT_ROWS);
|
});
|
|
// 监听分页事件
|
vc.on('pagination', 'page_event', function (_currentPage) {
|
$that._listPhoneBillFlows(_currentPage, DEFAULT_ROWS);
|
});
|
|
// 监听通知房间事件
|
vc.on('phoneMeterManage', 'notifyRoom', function (_room) {
|
$that.phoneMeterManageInfo.conditions.roomNum = _room.floorNum + "-" + _room.unitNum + "-" + _room.roomNum;
|
// 重新加载电话表数据
|
$that._listPhoneBillFlows(DEFAULT_PAGE, DEFAULT_ROWS);
|
});
|
},
|
methods: {
|
/**
|
* 查询电话表数据
|
* @param {number} _page 当前页码
|
* @param {number} _rows 每页记录数
|
*/
|
_listPhoneBillFlows: function (_page, _rows) {
|
// 设置分页参数
|
$that.phoneMeterManageInfo.conditions.page = _page;
|
$that.phoneMeterManageInfo.conditions.row = _rows;
|
// 设置小区ID
|
$that.phoneMeterManageInfo.conditions.communityId = vc.getCurrentCommunity().communityId;
|
|
// 构建请求参数
|
let param = {
|
params: $that.phoneMeterManageInfo.conditions
|
};
|
|
// 去除首尾空格
|
param.params.deviceNum = param.params.deviceNum.trim();
|
param.params.roomNum = param.params.roomNum.trim();
|
|
// 发送GET请求查询电话表数据
|
vc.http.apiGet('/phoneBillFlowInfo/queryPhoneBillFlowInfo',
|
param,
|
function (json, res) {
|
// 解析响应数据
|
let _json = JSON.parse(json);
|
// 更新数据列表
|
$that.phoneMeterManageInfo.total = _json.total;
|
$that.phoneMeterManageInfo.records = _json.records;
|
|
// 转换数据结构,将单元数据转换为电话费抄表数据格式
|
let convertedData = [];
|
if (_json.data && Array.isArray(_json.data)) {
|
_json.data.forEach(item => {
|
convertedData.push({
|
deviceNum: item.unitNum || '-',
|
objName: item.floorNum + '-' + item.unitNum || '-',
|
preDegrees: '-',
|
curDegrees: '-',
|
preReadingTime: '-',
|
curReadingTime: '-',
|
createTime: '-',
|
id: item.unitId || ''
|
});
|
});
|
}
|
|
$that.phoneMeterManageInfo.phoneBillFlows = convertedData;
|
|
// 更新分页组件
|
vc.emit('pagination', 'init', {
|
total: $that.phoneMeterManageInfo.records,
|
dataCount: $that.phoneMeterManageInfo.total,
|
currentPage: _page
|
});
|
},
|
function (errInfo, error) {
|
// 错误处理
|
console.log('请求失败处理');
|
}
|
);
|
},
|
/**
|
* 打开添加电话表模态框
|
* 功能:触发添加电话表组件的打开事件
|
*/
|
_openAddPhoneBillFlowModal: function () {
|
vc.emit('addPhoneBillFlow', 'openAddPhoneBillFlowModal', {
|
roomId: $that.phoneMeterManageInfo.conditions.objId,
|
roomName: $that.phoneMeterManageInfo.roomName
|
});
|
},
|
/**
|
* 打开编辑电话表模态框
|
* 功能:触发编辑电话表组件的打开事件
|
* @param {object} _phoneBillFlow 电话表数据对象
|
*/
|
_openEditPhoneBillFlowModel: function (_phoneBillFlow) {
|
vc.emit('editPhoneBillFlow', 'openEditPhoneBillFlowModal', _phoneBillFlow);
|
},
|
/**
|
* 打开删除电话表模态框
|
* 功能:触发删除电话表组件的打开事件
|
* @param {object} _phoneBillFlow 电话表数据对象
|
*/
|
_openDeletePhoneBillFlowModel: function (_phoneBillFlow) {
|
vc.emit('deletePhoneBillFlow', 'openDeletePhoneBillFlowModal', _phoneBillFlow);
|
},
|
/**
|
* 执行查询操作
|
* 功能:根据当前查询条件重新加载数据
|
*/
|
_queryPhoneBillFlowMethod: function () {
|
$that._listPhoneBillFlows(DEFAULT_PAGE, DEFAULT_ROWS);
|
},
|
/**
|
* 执行重置操作
|
* 功能:清空查询条件并重新加载数据
|
*/
|
_resetPhoneBillFlowMethod: function () {
|
// 清空查询条件
|
$that.phoneMeterManageInfo.conditions.roomNum = "";
|
$that.phoneMeterManageInfo.conditions.deviceNum = "";
|
// 重新加载数据
|
$that._listPhoneBillFlows(DEFAULT_PAGE, DEFAULT_ROWS);
|
},
|
/**
|
* 切换更多查询条件显示状态
|
* 功能:控制更多查询条件的显示与隐藏
|
*/
|
_moreCondition: function () {
|
if ($that.phoneMeterManageInfo.moreCondition) {
|
$that.phoneMeterManageInfo.moreCondition = false;
|
} else {
|
$that.phoneMeterManageInfo.moreCondition = true;
|
}
|
},
|
/**
|
* 打开导入电话表模态框
|
* 功能:触发导入电话表组件的打开事件
|
*/
|
_openPhoneBillFlowImport: function () {
|
vc.emit('importPhoneBillFlow', 'openImportPhoneBillFlowModal', {});
|
},
|
_openBatchAddPhoneBillFlowModal: function () {
|
vc.emit('batchAddPhoneBillFlow', 'openBatchAddPhoneBillFlowModal', {});
|
},
|
/**
|
* 房间输入搜索
|
* 功能:通过输入房间编号搜索房间
|
*/
|
_phoneInputRoom: function () {
|
// 清除之前的定时器
|
if ($that.phoneMeterManageInfo.timer) {
|
clearTimeout($that.phoneMeterManageInfo.timer)
|
}
|
// 设置新的定时器,延迟1.5秒执行搜索
|
$that.phoneMeterManageInfo.timer = setTimeout(() => {
|
vc.emit('inputSearchRoomInfo', 'searchRoom', {
|
callComponent: 'phoneMeterManage',
|
roomName: $that.phoneMeterManageInfo.conditions.roomNum
|
});
|
}, 1500)
|
},
|
/**
|
* 计算表格容器宽度
|
* 功能:根据左侧树宽度动态计算表格容器宽度
|
* @returns {string} 表格容器宽度
|
*/
|
_computeTableDivWidth: function () {
|
let treeWidth = 200;
|
try {
|
treeWidth = document.getElementsByClassName('room-floor-unit-tree')[0].offsetWidth;
|
} catch (e) {
|
// 忽略错误,使用默认值
|
}
|
let mainWidth = document.body.offsetWidth - treeWidth - 50;
|
return mainWidth + 'px';
|
}
|
}
|
});
|
})(window.vc);
|