Files
PropertyDeployment/resources/Web/MicroCommunityWeb/html/components/property/addMeterWater/addMeterWater.js
2025-12-09 20:22:03 +08:00

380 lines
16 KiB
JavaScript

(function (vc) {
vc.extends({
propTypes: {
callBackListener: vc.propTypes.string, //父组件名称
callBackFunction: vc.propTypes.string //父组件监听方法
},
data: {
addMeterWaterInfo: {
waterId: '',
meterType: '',
preDegrees: '',
curDegrees: '',
preReadingTime: '',
curReadingTime: '',
remark: '',
roomId: '',
objId: '',
objName: '',
feeTypeCd: '',
feeConfigs: [],
configId: '',
objType: '3333',
hasRoom: false,
ownerName: '',
meterTypes: [],
computingFormula: '',
price: 0
}
},
_initMethod: function () {
$that._initAddMeterWaterDateInfo();
},
_initEvent: function () {
vc.on('addMeterWater', 'openAddMeterWaterModal', function (_param) {
$that.clearAddMeterWaterInfo();
if (_param.hasOwnProperty("objType")) {
$that.addMeterWaterInfo.objType = _param.objType;
}
if (_param.hasOwnProperty('roomId')) {
$that.addMeterWaterInfo.hasRoom = true;
$that.addMeterWaterInfo.roomId = _param.roomId;
$that.addMeterWaterInfo.objId = _param.roomId;
// $that.addMeterWaterInfo.objName = _param.roomName.replace('0单元', ''); //处理商铺
$that.addMeterWaterInfo.objName = $that.transRoomName(_param.roomName);
let _ownerName = _param.roomName;
if(_param.ownerName){
_ownerName += ('(' + _param.ownerName + ')') ;
}
$that.addMeterWaterInfo.ownerName = _ownerName;
$that._queryPreMeterWater(_param.roomId);
}
$that.addMeterWaterInfo.preReadingTime = vcFramework.dateTimeFormat(new Date().getTime());
$that.addMeterWaterInfo.preDegrees = 0;
$('#addMeterWaterModel').modal('show');
$that._listAddMeterTypes();
});
vc.on("addMeterWater", "notify", function (_param) {
if (_param.hasOwnProperty("roomId") && _param.roomId != "") {
$that.addMeterWaterInfo.roomId = _param.roomId;
$that.addMeterWaterInfo.objId = _param.roomId;
// $that.addMeterWaterInfo.objName = _param.name.replace('0单元', ''); //处理商铺;
$that.addMeterWaterInfo.objName = $that.transRoomName(_param.name);
$that._queryPreMeterWater(_param.roomId);
}
});
},
methods: {
// 将1-1-1 转化为 1栋1单元1室
transRoomName: function (roomName) {
// 没有-则返回
if (roomName.indexOf('-') < 0) {
return roomName;
}
roomName = roomName.split('-');
return roomName[0] + '栋' + roomName[1] + '单元' + roomName[2] + '室';
},
_initAddMeterWaterDateInfo: function () {
$('.addPreReadingTime').datetimepicker({
language: 'zh-CN',
fontAwesome: 'fa',
format: 'yyyy-mm-dd hh:ii:ss',
initTime: true,
initialDate: new Date(),
autoClose: 1,
todayBtn: true
});
$('.addPreReadingTime').datetimepicker()
.on('changeDate', function (ev) {
var value = $(".addPreReadingTime").val();
var start = Date.parse(new Date(value));
var end = Date.parse(new Date($that.addMeterWaterInfo.curReadingTime));
if (start - end >= 0) {
vc.toast("上期读表时间必须小于本期读表时间");
$(".addPreReadingTime").val('');
$that.addMeterWaterInfo.preReadingTime = "";
} else {
$that.addMeterWaterInfo.preReadingTime = value;
}
});
$('.addCurReadingTime').datetimepicker({
language: 'zh-CN',
fontAwesome: 'fa',
format: 'yyyy-mm-dd hh:ii:ss',
initTime: true,
initialDate: new Date(),
autoClose: 1,
todayBtn: true
});
$('.addCurReadingTime').datetimepicker()
.on('changeDate', function (ev) {
var value = $(".addCurReadingTime").val();
var start = Date.parse(new Date($that.addMeterWaterInfo.preReadingTime))
var end = Date.parse(new Date(value))
if (start - end >= 0) {
vc.toast("本期读表时间必须大于上期读表时间");
$(".addCurReadingTime").val('');
$that.addMeterWaterInfo.curReadingTime = "";
} else {
$that.addMeterWaterInfo.curReadingTime = value;
}
});
//防止多次点击时间插件失去焦点
document.getElementsByClassName('form-control addPreReadingTime')[0].addEventListener('click', myfunc)
function myfunc(e) {
e.currentTarget.blur();
}
document.getElementsByClassName("form-control addCurReadingTime")[0].addEventListener('click', myfunc)
function myfunc(e) {
e.currentTarget.blur();
}
},
addMeterWaterValidate() {
return vc.validate.validate({
addMeterWaterInfo: $that.addMeterWaterInfo
}, {
'addMeterWaterInfo.preDegrees': [
{
limit: "required",
param: "",
errInfo: "上期度数不能为空"
},
{
limit: "money",
param: "",
errInfo: "上期度数格式错误"
}
],
'addMeterWaterInfo.curDegrees': [
{
limit: "required",
param: "",
errInfo: "本期度数不能为空"
},
{
limit: "money",
param: "",
errInfo: "本期度数格式错误"
}
],
'addMeterWaterInfo.preReadingTime': [
{
limit: "required",
param: "",
errInfo: "上期读表时间不能为空"
},
{
limit: "dateTime",
param: "",
errInfo: "上期读表时间格式错误"
}
],
'addMeterWaterInfo.curReadingTime': [
{
limit: "required",
param: "",
errInfo: "本期读表时间不能为空"
},
{
limit: "dateTime",
param: "",
errInfo: "本期读表时间格式错误"
}
],
'addMeterWaterInfo.roomId': [
{
limit: "required",
param: "",
errInfo: "房屋必填"
}
],
'addMeterWaterInfo.meterType': [
{
limit: "required",
param: "",
errInfo: "抄表类型必填"
}
],
'addMeterWaterInfo.configId': [
{
limit: "required",
param: "",
errInfo: "费用必填"
}
],
'addMeterWaterInfo.remark': [
{
limit: "maxLength",
param: "500",
errInfo: "备注格式错误"
}
]
});
},
saveMeterWaterInfo: function () {
if (!$that.addMeterWaterValidate()) {
vc.toast(vc.validate.errInfo);
return;
}
if ($that.addMeterWaterInfo.computingFormula != '9009') {
$that.addMeterWaterInfo.price = 0;
}
$that.addMeterWaterInfo.communityId = vc.getCurrentCommunity().communityId;
//不提交数据将数据 回调给侦听处理
if (vc.notNull($props.callBackListener)) {
vc.emit($props.callBackListener, $props.callBackFunction, $that.addMeterWaterInfo);
$('#addMeterWaterModel').modal('hide');
return;
}
vc.http.apiPost(
'/meterWater.saveMeterWater',
JSON.stringify($that.addMeterWaterInfo), {
emulateJSON: true
},
function (json, res) {
//vm.menus = vm.refreshMenuActive(JSON.parse(json),0);
var _json = JSON.parse(json);
if (_json.code == 0) {
//关闭model
$('#addMeterWaterModel').modal('hide');
$that.clearAddMeterWaterInfo();
vc.emit('meterWaterManage', 'listMeterWater', {});
vc.emit('roomCreateFee', 'notify', {});
vc.emit('listParkingSpaceFee', 'notify', {});
vc.emit('simplifyRoomFee', 'notify', {});
vc.emit('simplifyCarFee', 'notify', {});
vc.emit('addMeterWater', 'floorSelect2', 'clearFloor', {});
vc.toast("添加成功");
return;
} else {
vc.toast(_json.msg);
}
},
function (errInfo, error) {
console.log('请求失败处理');
vc.message(errInfo);
});
},
_changeAddMeterWaterFeeTypeCd: function (_feeTypeCd) {
var param = {
params: {
page: 1,
row: 20,
communityId: vc.getCurrentCommunity().communityId,
feeTypeCd: _feeTypeCd,
isDefault: 'F',
valid: '1'
}
};
//发送get请求
vc.http.apiGet('/feeConfig.listFeeConfigs', param,
function (json, res) {
var _feeConfigManageInfo = JSON.parse(json);
$that.addMeterWaterInfo.feeConfigs = _feeConfigManageInfo.feeConfigs;
},
function (errInfo, error) {
console.log('请求失败处理');
});
},
_changeAddMeterType: function () {
$that._queryPreMeterWater($that.addMeterWaterInfo.roomId);
},
_queryPreMeterWater: function (_roomId) {
if (!_roomId) {
return;
}
let param = {
params: {
communityId: vc.getCurrentCommunity().communityId,
objId: _roomId,
objType: $that.addMeterWaterInfo.objType,
meterType: $that.addMeterWaterInfo.meterType
}
};
//发送get请求
vc.http.apiGet('/meterWater/queryPreMeterWater', param,
function (json, res) {
let _meterWaterInfo = JSON.parse(json);
let _total = _meterWaterInfo.total;
if (_total < 1) {
$that.addMeterWaterInfo.preDegrees = '0';
$that.addMeterWaterInfo.preReadingTime = vcFramework.dateTimeFormat(new Date().getTime());
return;
}
$that.addMeterWaterInfo.preDegrees = _meterWaterInfo.data[0].curDegrees;
$that.addMeterWaterInfo.preReadingTime = _meterWaterInfo.data[0].curReadingTime;
if ($that.addMeterWaterInfo.computingFormula == '9009') {
$that.addMeterWaterInfo.price = _meterWaterInfo.data[0].price;
}
},
function (errInfo, error) {
console.log('请求失败处理');
});
},
_getChange: function () {
//上期度数
var preDegrees = parseFloat($that.addMeterWaterInfo.preDegrees);
//本期度数
var curDegrees = parseFloat($that.addMeterWaterInfo.curDegrees);
if (preDegrees > curDegrees) {
vc.toast("本期度数不能小于上期度数!");
$that.addMeterWaterInfo.curDegrees = "";
}
},
_listAddMeterTypes: function (_page, _rows) {
var param = {
params: {
page: 1,
row: 50,
communityId: vc.getCurrentCommunity().communityId
}
};
//发送get请求
vc.http.apiGet('meterType.listMeterType',
param,
function (json, res) {
var _meterTypeManageInfo = JSON.parse(json);
$that.addMeterWaterInfo.meterTypes = _meterTypeManageInfo.data;
},
function (errInfo, error) {
console.log('请求失败处理');
}
);
},
clearAddMeterWaterInfo: function () {
$that.addMeterWaterInfo = {
waterId: '',
meterType: '',
preDegrees: '',
curDegrees: '',
preReadingTime: '',
curReadingTime: '',
remark: '',
roomId: '',
objId: '',
objName: '',
feeTypeCd: '',
feeConfigs: [],
configId: '',
objType: '3333',
hasRoom: false,
ownerName: '',
meterTypes: [],
computingFormula: '',
price: 0
};
},
changeFeeConfig: function () {
let _configId = $that.addMeterWaterInfo.configId;
$that.addMeterWaterInfo.feeConfigs.forEach(item => {
if (_configId == item.configId) {
$that.addMeterWaterInfo.computingFormula = item.computingFormula;
}
});
}
}
});
})(window.vc);