yuanzhi_kuang hai 2 días
pai
achega
7685bab782

+ 0 - 2
js/eas/server/deploy/easweb.ear/shr_web.war/addon/customer/dormitorysystem/affair/web/js/resignBizBillHrManEditEx.js

@@ -65,11 +65,9 @@ shr.defineClass("shr.affair.hrman.ResignBizBillHrManEditEx", shr.affair.hrman.Re
 	switchCusStyle:function(flagTar){
 		var self = this;
 		if(flagTar == "true" || flagTar ){
-			 
 			self.getField("entrys_checkOutDate").shrDateTimePicker('enable');
 			self.getField("entrys_checkOutDate").shrDateTimePicker('option','required',true);
 		}else{
-			 
 			self.getField("entrys_checkOutDate").shrDateTimePicker('disable');
 			self.getField("entrys_checkOutDate").shrDateTimePicker('option','required',false);
 		}

+ 58 - 6
js/eas/server/deploy/easweb.ear/shr_web.war/addon/customer/dormitorysystem/application/RoomChangeApplicationEdit.js

@@ -5,8 +5,57 @@ shr.defineClass("shr.custom.RoomChangeApplicationEdit", shr.custom.HRBillBaseEdi
 		if (this.getOperateState().toUpperCase() != 'VIEW') {
 			that.entrysOldOccupantsF7Action();
 			that.occupantsFilter();
+			that.adjustRoomFilter();
 		}
 	},
+	adjustRoomFilter() {
+		var self = this;
+		$("#entrys_adjustRoom").shrPromptBox("option", {
+			verifyBeforeOpenCallback: function () {
+				var checkInDate = $("#entrys_checkInDate").shrDateTimePicker("getValue");
+				var person = $("#entrys_person").shrPromptBox("getValue");
+				if (!person.id || person.id == '') {
+					shr.showWarning({
+						message: "请先选择入住人员!",
+						hideAfter: 5
+					});
+					return false;
+				}
+				//必须先选择入住日期
+				if (!checkInDate || checkInDate == '') {
+					shr.showWarning({
+						message: "请先选择入住日期!",
+						hideAfter: 5
+					});
+					return false;
+				}
+				var checkInDate = $("#entrys_checkInDate").shrDateTimePicker("getValue");
+				var checkoutDate = $("#entrys_checkoutDate").shrDateTimePicker("getValue");
+				var personId = $("#entrys_person_el").val();
+				var result = self.callServiceReturnResponse('getOptionalRoomIdsService', {
+					checkInDate: checkInDate,
+					checkoutDate: checkoutDate,
+					personId: personId
+				});
+				if (result.code == 500) {
+					shr.showWarning({
+						message: result.errorMsg,
+						hideAfter: 5
+					});
+					return false;
+				}
+				//设置过滤条件
+				$("#entrys_adjustRoom").shrPromptBox("setFilter", "id in (" + result + ")");
+				return true;
+			}
+		});
+			$("#entrys_checkInDate").shrDateTimePicker("option", {
+				onChange: function (event) {
+					//当换宿改变时清空入住房间
+					$("#entrys_adjustRoom").shrPromptBox("setValue", null);
+				}
+			});
+	},
 	actSubmit: function (event, action) {
 		var _self = this;
 		var data = _self.assembleSaveData(action);
@@ -36,11 +85,8 @@ shr.defineClass("shr.custom.RoomChangeApplicationEdit", shr.custom.HRBillBaseEdi
 					}
 				} else {
 					// 普通提交,返回上一页面
-					// setTimeout(() => {
-						_self.back();
-					// }, 2000)
+					_self.back();
 					// _self.goNextPage(target,response);
-
 				}
 				//来自portal流程中心,关闭窗口
 				if (location.href.indexOf("isShrBill=true") > 0) window.close();
@@ -89,16 +135,22 @@ shr.defineClass("shr.custom.RoomChangeApplicationEdit", shr.custom.HRBillBaseEdi
 				position.id = data["personPosition.primaryPosition.id"];
 				position.name = data["personPosition.primaryPosition.name"];
 				$('#entrys_position').shrPromptBox('setValue', position);
+				// 房间
+				var dormitory = new Object();
+				dormitory.id = data["Dormitory.id"];
+				dormitory.name = data["Dormitory.name"];
+				$('#entrys_currentRoom').shrPromptBox('setValue', dormitory);
 				that.isDisableOrenable("enable")
 
 			}
 		});
 	},
 	isDisableOrenable(type) {
-		$('#entrys_currentRoom').shrPromptBox(type);
+		$('#entrys_currentRoom').shrPromptBox("disable");
+		//$('#entrys_currentRoom').shrPromptBox(type);
 		$('#entrys_checkInDate').shrDateTimePicker(type);
 		$('#entrys_adjustRoom').shrPromptBox(type);
-		$('#entrys_checkoutDate').shrDateTimePicker(type);
+		$('#entrys_checkoutDate').shrDateTimePicker("disable");
 	}
 
 });

+ 375 - 2
js/eas/server/deploy/easweb.ear/shr_web.war/addon/customer/dormitorysystem/application/checkInApplicationAllList.js

@@ -1,8 +1,27 @@
 shr.defineClass("shr.custom.CheckInApplicationList", shr.framework.List, {
 	initalizeDOM: function () {
 		shr.custom.CheckInApplicationList.superClass.initalizeDOM.call(this);
+
+		// $("#entrys_checkInRoom").shrPromptBox("options",{
+		// 	verifyBeforeOpenCallback:function(){
+
+		// 		return false;
+		// 	}
+		// });
+
 	},
-	/** 批量新增
+
+	/**
+	 * 新增
+	 */
+	// addNewAction: function (event) {
+	// 	this.reloadPage({
+	// 		uipk: "com.kingdee.eas.custom.dormitorysystem.application.app.CheckInApplication_self.form",
+	// 		method: 'addNew'
+	// 	});
+	// },
+	/**
+	 * 批量新增
 	 */
 	addNewBatchAction: function () {
 		this.reloadPage({
@@ -40,6 +59,15 @@ shr.defineClass("shr.custom.CheckInApplicationList", shr.framework.List, {
 	 * 提交生效 
 	 */
 	prepareSubmitEffect: function (event, action) {
+		//		var _self = this;
+		//		var billData = _self.selectedRowData;
+		//		var realBillId = [];
+		//		for(var i=0;i<billData.length;i++){
+		//		    var billState = billData[i]['billState'];
+		//		   if("未提交" == billState.alias && $.inArray(billData[i].id, realBillId) == -1){
+		//		      realBillId.push(billData[i].id);
+		//		   }
+		//		}
 		var _self = this;
 		var billId = $("#grid").jqGrid("getSelectedRows");
 		var realBillId = [];
@@ -64,8 +92,65 @@ shr.defineClass("shr.custom.CheckInApplicationList", shr.framework.List, {
 		if (event && event.currentTarget) {
 			target = event.currentTarget;
 		}
+		//openLoader(1, jsBizMultLan.atsManager_atsLeaveBillAllList_i18n_47);
+
+		//审核操作
+		//  _self.doRemoteWithBatchExtendAction({
+		// 	method: "sendInterviewNotice",
+		// 	type: '600' //列表页签类型-未审核
+
+		// });
 		_self.defaultBatchActionHandle("submitEffect");
-	},
+
+		// _self.remoteCall({
+		// 	type: "post",
+		// 	method: "submitEffect",
+		// 	param: data,
+		// 	success: function (res) {
+		// 		closeLoader();
+		// 		var failMsg = "";
+		// 		if (res.error != "" && res.error != null && res.error != undefined) {
+		// 			shr.showError({ message: res.error });
+		// 		} else {
+		// 			if (res.submitNum - res.submitSuccessNum > 0) {
+		// 				failMsg = "," + jsBizMultLan.atsManager_atsLeaveBillAllList_i18n_36 + (res.submitNum - res.submitSuccessNum)
+		// 			}
+		// 			shr.showInfo({ message: shr.formatMsg(jsBizMultLan.atsManager_atsLeaveBillAllList_i18n_37, [res.submitNum, res.submitSuccessNum]) + failMsg, hiddenAfter: 5 });
+		// 			$("#grid").jqGrid().jqGrid("reloadGrid");
+		// 		}
+		// 	},
+		// 	error: function (e) {
+		// 		closeLoader();
+		// 	}
+		// });
+	},/**
+	* 描述:删除操作
+	* @action 
+	*/
+	// deleteAction: function () {
+	// 	var _self = this;
+	// 	var billId = $(this.gridId).jqGrid("getSelectedRows");;
+	// 	if (billId == undefined || billId.length <= 0 || (billId && billId.length == 1 && billId[0] == "")) {
+	// 		shr.showWarning({ message: jsBizMultLan.atsManager_atsLeaveBillAllList_i18n_28 });
+	// 		return false;
+	// 	}
+	// 	//var selectedIds = _self.getSelectedIds();
+	// 	var selectedIds = shr.atsBillUtil.getSelectedIds();
+	// 	if (shr.atsBillUtil.isInWorkFlow(selectedIds)) {
+	// 		shr.showConfirm(jsBizMultLan.atsManager_atsLeaveBillAllList_i18n_34, function () {
+	// 			top.Messenger().hideAll();
+	// 			shr.atsBillUtil.abortWorkFlow(selectedIds);//废弃未提交且已绑定流程的单据
+	// 			_self.doRemoteAction({
+	// 				method: 'delete',
+	// 				billId: selectedIds
+	// 			});
+	// 		});
+	// 	} else {
+	// 		if (selectedIds) {
+	// 			this.deleteRecord(selectedIds);
+	// 		}
+	// 	}
+	// },
 
 	/**
 	 *提交之前的校验逻辑
@@ -106,6 +191,12 @@ shr.defineClass("shr.custom.CheckInApplicationList", shr.framework.List, {
 		shr.showConfirm($.shrI18n.common.tips.submitConfirm, function () {
 			_self.doSubmit(event, 'submit', response, realIds);
 		});
+
+		/*this.defaultActionHandle({
+			methodName: 'submit',
+			requireConfirm: true,
+			message: '您确认要提交吗?'
+		});*/
 	},
 	/**
 	 * 撤销
@@ -122,6 +213,27 @@ shr.defineClass("shr.custom.CheckInApplicationList", shr.framework.List, {
 			return;
 		}
 		that.defaultBatchActionHandle("abortBizBill");
+
+		// var billLength = billId.length;
+		// for (var i = 0; i < billLength; i++) {
+		// 	//去除重复处理
+		// 	if ($.inArray(billId[i], realBillId) == -1) {
+		// 		realBillId.push(billId[i]);
+		// 	}
+		// }
+		// var _self = this;
+		// shr.showConfirm(jsBizMultLan.atsManager_atsLeaveBillAllList_i18n_22, function () {
+		// 	top.Messenger().hideAll();
+		// 	_self.remoteCall({
+		// 		type: "post",
+		// 		method: "abortBill",
+		// 		param: { billId: realBillId.toString() },
+		// 		success: function (res) {
+		// 			shr.showInfo({ message: jsBizMultLan.atsManager_atsLeaveBillAllList_i18n_3 });
+		// 			_self.reloadGrid();
+		// 		}
+		// 	});
+		//});
 	},
 	/**
 	 * 反审批
@@ -133,9 +245,270 @@ shr.defineClass("shr.custom.CheckInApplicationList", shr.framework.List, {
 		if (billId == undefined || billId.length == 0 || (billId && billId.length == 1 && billId[0] == "")) {
 			shr.showError({ message: jsBizMultLan.atsManager_atsLeaveBillAllList_i18n_33 });
 			return;
+			// }else if(billId.length > 1){
+			// 	shr.showError({message: "只能选中一条记录进行反审批!"});
+			// 	return ;
 		} else {
 			var billIds = that.getSelectedIds();
 			that.defaultBatchActionHandle("againstApprove");
+
+			// var url = shr.getContextPath() + "/dynamic.do?method=checkAgainstInfo" + "&uipk=" + shr.getUrlRequestParam('uipk');
+			// shr.ajax({
+			// 	type: "post",
+			// 	async: false,
+			// 	data: { billIds: billIds },
+			// 	url: url,
+			// 	success: function (res) {
+			// 		info = res;
+
+			// 	}
+			// });
+			// if (info != null) {
+			// 	var error = jsBizMultLan.atsManager_atsLeaveBillAllList_i18n_0 + "<br/>";
+			// 	var type = 1;
+
+			// 	if (info.auditInfo) {
+			// 		error = error + jsBizMultLan.atsManager_atsLeaveBillAllList_i18n_21 + "[" + info.auditInfo + " ]<br/>";
+			// 		type = 2;
+			// 	}
+
+			// 	if (info.cancelInfoList) {
+			// 		error = error + jsBizMultLan.atsManager_atsLeaveBillAllList_i18n_46 + "[" + info.cancelInfoList + " ]<br/>";
+			// 		type = 2;
+			// 	}
+
+			// 	if (type == 2) {
+			// 		shr.showError({ message: error });
+			// 		return;
+			// 	}
+			// }
+		}
+
+		//校验请假明细有没有生成汇总记录
+		var hasSummary = false;
+		var hasSalary = false;
+		var msg = "";
+		var salaryMsg = "";
+		var url = shr.getContextPath() + "/dynamic.do?method=checkDetailSummary" + "&uipk=" + shr.getUrlRequestParam('uipk');
+		shr.ajax({
+			type: "post",
+			async: false,
+			data: { billIds: billIds },
+			url: url,
+			success: function (res) {
+				hasSummary = res.hasSummary == "true" ? true : false;
+				hasSalary = res.hasSalary == "true" ? true : false;
+				msg = res.msg;
+				salaryMsg = res.salaryMsg;
+			}
+		});
+
+		if (hasSalary) {
+			shr.showError({ message: jsBizMultLan.atsManager_atsLeaveBillAllList_i18n_11 + salaryMsg });
+			return;
 		}
+
+		//
+		var confirmStr = jsBizMultLan.atsManager_atsLeaveBillAllList_i18n_23;
+		if (hasSummary) {
+			confirmStr = msg;
+		}
+
+		//新增反审批原因	    
+		var serviceId = shr.getUrlRequestParam("serviceId");
+		$("#orgFillDiv").attr("src", shr.getContextPath() + '/dynamic.do?checkLicense=true&uipk=com.kingdee.eas.hr.ats.app.AtsBill.reason' + '&serviceId=' + encodeURIComponent(serviceId));
+		$('#orgFillDiv').dialog({
+			title: jsBizMultLan.atsManager_atsLeaveBillAllList_i18n_52,
+			width: 900,
+			height: 400,
+			modal: true,
+			resizable: false,
+			position: {
+				my: 'center',
+				at: 'top+20%',
+				of: window
+			},
+			open: function (event, ui) {
+			},
+			buttons: [{
+				text: jsBizMultLan.atsManager_atsLeaveBillAllList_i18n_50,
+				click: function () {
+					var reason = $("#orgFillDiv #reason").val();
+					if (reason) {
+						$(this).dialog("close");
+						shr.showConfirm(jsBizMultLan.atsManager_atsLeaveBillAllList_i18n_23, function () {
+							top.Messenger().hideAll();
+
+							var data = {
+								method: 'againstApprove',
+								billIds: billIds,
+								reason: reason.substring(0, 400)
+							};
+							data = $.extend(that.prepareParam(), data);
+
+							shr.remoteCall({
+								type: "post",
+								method: "againstApprove",
+								param: data,
+								url: shr.getContextPath() + "/dynamic.do?uipk=com.kingdee.eas.hr.ats.app.AtsLeaveBillAllList",
+								success: function (res) {
+									if (res.flag == "1") {
+										shr.showInfo({ message: jsBizMultLan.atsManager_atsLeaveBillAllList_i18n_9 });
+										that.queryGrid();
+									} else {
+										shr.showError({ message: jsBizMultLan.atsManager_atsLeaveBillAllList_i18n_10 });
+									}
+								}
+							});
+
+						});
+					} else {
+						shr.showError({ message: jsBizMultLan.atsManager_atsLeaveBillAllList_i18n_53 });
+						return;
+					}
+				}
+			}, {
+				text: jsBizMultLan.atsManager_atsLeaveBillAllList_i18n_51,
+				click: function () {
+					$(this).dialog("close");
+				}
+			}],
+			close: function () { }
+		});
+		var addWorkString = '<div style=" margin: 35px; ">'
+			+ '<div id="allCalculateDatePicker" style=" margin-top: 19px;">'
+			+ '<textarea id="reason" type="text" class="block-father valid" name="remark" cols="3" rows="3" placeholder="" dataextenal="" istotemplate="true" ctrlrole="textarea" validate="{maxlength:255}"></textarea>'
+			+ ''
+			+ '</div>'
+			+ '</div>';
+		$("#orgFillDiv").html("").append(addWorkString);
+	},
+	/**
+	 * 扩展批处理方法
+	 */
+	doRemoteWithBatchExtendAction: function (option) {
+		var $grid = $(this.gridId),
+			totalRecords = $grid.jqGrid('getGridParam', 'records');
+		option.rows = totalRecords;
+		option.realMethod = option.method;
+		delete option.method;
+		var params = that.getCommonParamsForBatchAction(option);
+		params.theMaxRecords = this.theMaxRecords;
+		params.submitRecordsStep = this.submitRecordsStep;
+		params.dealWithOriginalPostData = this.dealWithOriginalPostData;
+		params.virtualQueryMode = this.virtualQueryMode;
+		params.isCancelCrossPageSelected = option.isCancelCrossPageSelected;
+		params.isShowCustomerMessage = option.isShowCustomerMessage;
+		if (option.isCancelCrossPageSelected == undefined) {
+			params.isCancelCrossPageSelected = true;
+		}
+		if (option.gridFrame != undefined && option.gridFrame != "") {
+			this.gridFrame = option.gridFrame;
+		}
+		var messageFun;
+		if ($.isFunction(top.Messenger)) {
+			messageFun = top.Messenger();
+		} else {
+			messageFun = Messenger();
+		}
+		messageFun.hideAll();
+		// if (this.isCrossPageSelectAll() == this._crossPage.YES || option.selectAll ) {
+		//     var message = '';
+		//     /*if (totalRecords > this.theMaxRecords) {
+		//         message = this.theMaxRecordsMessage;
+		//         params.rows = this.theMaxRecords;
+		//         message = shr.formatMsg(message, [this.theMaxRecords, this.theMaxRecords]);
+		//     } else*/
+		//     if (totalRecords > this.maxRecords) {
+		//         message = this.maxRecordsMessage;
+		//         message = shr.formatMsg(message, [this.maxRecords]);
+		//     }
+
+		//     if (message) {
+		//         /*if (this.isOverTheMaxRecordsRefuseDeal && totalRecords > this.theMaxRecords) {
+		//             shr.showWarning({message: this.theMaxRecordsMessage});
+		//         } else {*/
+		//             shr.showConfirm(message, function () {
+		//                 that._doRemoteWithCrossPageSelectAllAction(params);
+		//                 that.cancelCrossPageSelected(params.isCancelCrossPageSelected);
+		//             });
+		//         /*}*/
+		//     } else {
+		//         that._doRemoteWithCrossPageSelectAllAction(params);
+		//         that.cancelCrossPageSelected(params.isCancelCrossPageSelected); // 批处理操作完后是否自动取消页面的跨页全选操作)
+		//     }
+		// } else {
+		that.doRemoteWithBatchAction(params);
+		//that.cancelCrossPageSelected(params.isCancelCrossPageSelected);
+		//}
+	},
+	doRemoteWithBatchAction: function (param) {
+		var _self = this;
+		var data = param;
+		var func = data.func;
+		var success = param.success;
+		delete data.func;
+		data = $.extend(_self.prepareParam(), data);
+		data = $.extend({ permItemId: shr.getCurrentPagePermItemId() }, data);
+		//增加异步处理不弹框
+		var showDialog = param.showDialog;
+		if (showDialog == undefined || showDialog == 'undefined' || showDialog == null) {
+			showDialog = true;
+		}
+		var async = param.async;
+		if (async == undefined || async == 'undefined' || async == null) {
+			async = false;
+		}
+		var showBlock = param.showBlock;
+		if (showBlock == undefined || showBlock == 'undefined' || showBlock == null) {
+			showBlock = true;
+		}
+		shr.doWithBatchAction({
+			url: _self.dynamicPage_url,
+			type: 'post',
+			data: data,
+			async: async,
+			showBlock: showBlock,
+			success: function (response) {
+				if (response) {
+					if (func && typeof func === "function") {
+						func(response);
+					}
+
+					if (success && typeof success === "function") {
+						return success(response);
+					}
+					var batchTipsData = _self.batchTipsDataHandler(response, data);
+					if (showDialog) {
+						$(_self).shrMessageTips({
+							isSuccess: batchTipsData.isSuccess,
+							successCount: batchTipsData.successCount,
+							failureCount: batchTipsData.failureCount,
+							confirmCallback: function () {
+								$(_self).shrDetailTips({
+									tableData: batchTipsData.tmp,
+									successCount: batchTipsData.successCount,
+									failureCount: batchTipsData.failureCount,
+									colNamesData: batchTipsData.tableModel,
+									isSortable: _self.batchHandlerWhetherSortable(),
+									modalWidth: param.modalWidth || ''
+								}).shrDetailTips("open");
+							},
+
+							closeCallback: function () {
+								_self.reloadGrid();
+							}
+						}).shrMessageTips("open");
+					}
+				} else {
+					$(_self).shrMessageTips("_setDetailDisable");
+				}
+			},
+			error: function (response) {
+				if (param.billId && param.billId.split(',').length > 1) {
+					_self.reloadGrid();
+				}
+			}
+		});
 	},
 });

+ 154 - 40
js/eas/server/deploy/easweb.ear/shr_web.war/addon/customer/dormitorysystem/waterelectricity/waterElectricityEdit.js

@@ -1,63 +1,175 @@
-var that;
-shr.defineClass("shr.dormitorysystem.WaterElectricityEdit",  shr.framework.Edit, {
+// 定义水电编辑页面类
+shr.defineClass("shr.dormitorysystem.WaterElectricityEdit", shr.framework.Edit, {
+    // 实例属性:保存当前实例引用(替代全局that)
+    that: null,
 
+    /**
+     * 初始化DOM元素及事件绑定
+     */
     initalizeDOM: function () {
         shr.dormitorysystem.WaterElectricityEdit.superClass.initalizeDOM.call(this);
-        that = this;
-        var operateState = _self.getOperateState().toUpperCase();
-        if("ADDNEW"==operateState) {
-            var grid_f7_json = {
-                onchange: (e, value) => {
-                    if (value.current) {
-                        var current = value.current;
-                        $('#empName').shrTextField("setValue", current.name);
-                        $('#empNumber').shrTextField("setValue", current.number);
-                        $('#positionStatus').shrTextField("setValue", current['employeeType.name']);
-                        $('#adminOrg').shrPromptBox("setValue",
-                            {
-                                id: current['adminOrgUnit.id'],
-                                name: current['adminOrgUnit.name']
-                            }
-                        );
-                        $('#position').shrPromptBox("setValue",
-                            {
-                                id: current['position.id'],
-                                name: current['position.name']
-                            }
-                        );
-                        $('#hrOrgUnit').shrPromptBox("setValue",
+        this.that = this;
+        const operateState = this.getOperateState().toUpperCase();
+
+        // 新增状态下:默认设置开始日期为当天
+        if ("ADDNEW" === operateState) {
+            this.setDefaultStartDate();
+        }
+
+        // 非查看状态下:绑定业务相关事件
+        if ("VIEW" !== operateState) {
+            this.bindOccupantsChangeEvent(); // 绑定入住人员变更事件
+            this.bindDormitoryChangeEvent(); // 绑定房间变更事件
+            this.bindStartDateChangeEvent(); // 绑定开始日期变更事件
+        }
+    },
+
+    /**
+     * 【通用方法】设置开始日期默认值为当天
+     */
+    setDefaultStartDate: function () {
+         this.that.getField('startDate').shrDateTimePicker('setValue', new Date());
+         this.that.setYearMonthVal();
+    },
+
+
+    /**
+     * 【通用方法】设置开始日期默认值为当天
+     */
+    setYearMonthVal: function () {
+        var startDate = $('#startDate').val();
+		if(startDate){
+			$('#yearMonth').shrTextField("setValue",startDate);
+		}
+    },
+
+    /**
+     * 【通用方法】远程调用获取水电单价
+     * @param {String} dormFid 房间ID
+     * @param {Date} startDate 开始日期
+     */
+    fetchWaterElecPrice: function (dormFid, startDate) {
+        // 空值校验:房间ID为空时不发起请求
+        if (!dormFid) return;
+
+        this.that.remoteCall({
+            method: "getWaterElecPrice",
+            async: false,
+            param: {
+                dormFid: dormFid,
+                startDate: startDate
+            },
+            success: (data) => {
+                if (data) {
+                    // 赋值水电单价到表单字段
+                    this.that.getField('waterprice').shrTextField('setValue', data.CFWaterprice);
+                    this.that.getField('electricityprice').shrTextField('setValue', data.CFElectricityprice);
+                }
+            },
+            // 新增错误处理(增强鲁棒性)
+            error: (err) => {
+                console.error('获取水电单价失败:', err);
+            }
+        });
+    },
+
+    /**
+     * 【事件绑定】入住人员选择变更事件
+     */
+    bindOccupantsChangeEvent: function () {
+        $("#occupants").shrPromptBox("option", {
+            onchange: (e, value) => {
+                const occupants = value.current;
+                if (!occupants) return;
+
+                // 赋值组织/岗位/人员等信息
+                this.assignOccupantsInfo(occupants);
+            }
+        });
+    },
+
+    /**
+     * 【通用方法】赋值入住人员相关信息到表单
+     * @param {Object} occupants 入住人员数据对象
+     */
+    assignOccupantsInfo: function (occupants) {
+        // 所属组织
+        $("#adminOrg").shrPromptBox("setValue", {
+            id: occupants["personPosition.personDep.id"],
+            name: occupants["personPosition.personDep.name"]
+        });
+        // 岗位
+        $("#position").shrPromptBox("setValue", {
+            id: occupants["personPosition.primaryPosition.id"],
+            name: occupants["personPosition.primaryPosition.name"]
+        });
+        // 人员
+        $("#person").shrPromptBox("setValue", {
+            id: occupants["person.id"],
+            name: occupants["person.name"],
+            number: occupants["person.number"]
+        });
+        $('#empName').shrTextField("setValue",occupants["personPosition.person.name"]);
+        $('#empNumber').shrTextField("setValue", occupants["personPosition.person.number"]);
+        // 入住日期
+        $("#bizDate").shrDateTimePicker("setValue", occupants.CheckInDate);
+        // 退宿日期
+        $("#leaveDate").shrDateTimePicker("setValue", occupants.CheckOutDate);
+        // 现住房间
+        $("#dormitory").shrPromptBox("setValue", {
+            id: occupants["Dormitory.id"],
+            name: occupants["Dormitory.name"],
+            displayName: occupants["Dormitory.displayName"]
+        });
+        $('#hrOrgUnit').shrPromptBox("setValue",
                             {
                                 id: '00000000-0000-0000-0000-000000000000CCE7AED4',
                                 name: 'HR组织'
                             }
                         );
-                        $('#stutas').shrSelect("setValue", 'unLock');
-                    }
-                }
-            };
-            $('#person').shrPromptBox(grid_f7_json);
+    },
 
-        }
+    /**
+     * 【事件绑定】房间选择变更事件
+     */
+    bindDormitoryChangeEvent: function () {
+        $("#dormitory").shrPromptBox("option", {
+            onchange: (e, value) => {
+                const dormitory = value.current;
+                if (!dormitory) return;
 
+                // 获取开始日期
+                const startDate = this.that.getField('startDate').shrDateTimePicker('getValue');
+                // 调用通用方法获取水电单价
+                this.fetchWaterElecPrice(dormitory.id, startDate);
+            }
+        });
     },
+
     /**
-     * 保存
+     * 【事件绑定】开始日期变更事件
      */
+    bindStartDateChangeEvent: function () {
+        $("#startDate").shrDateTimePicker("onChange", () => {
+            // 获取房间ID
+            const dormitory = this.that.getField('dormitory').shrPromptBox('getValue');
+            // 获取变更后的开始日期
+            const startDate = this.that.getField('startDate').shrDateTimePicker('getValue');
+            // 调用通用方法获取水电单价
+            this.fetchWaterElecPrice(dormitory.id, startDate);
+            setYearMonthVal();
+        });
+    },
+
+
     saveAction: function(event) {
         var _self = this;
         var operateState = _self.getOperateState().toUpperCase();
         if("ADDNEW"==operateState) {
             var startDate = $('#startDate').val();
-            if(startDate){
-                $('#yearMonth').shrTextField("setValue",startDate);
-                var date1 = new Date(startDate);
-                var date2= new Date(date1.getFullYear(),date1.getMonth()+1,0);
-                var date2Str = date2.toLocaleDateString().replaceAll("/","-");
-                $('#endDate').shrDateTimePicker("setValue",date2Str)
-            }
             var person = $('#person').shrPromptBox("getValue");
             let timestamp = new Date().getTime();
-            var number="TWE"+person.number+startDate+timestamp;
+            var number="TWE"+person.number+"-"+timestamp;
             $('#number').shrTextField("setValue",number);
         }
         if (_self.validate() && _self.verify()) {
@@ -69,4 +181,6 @@ shr.defineClass("shr.dormitorysystem.WaterElectricityEdit",  shr.framework.Edit,
 
         }
     },
+
+    
 });