From e97c42a4a63427ad82f4db8a8783066b4f71847b Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期一, 03 十一月 2025 20:27:22 +0800
Subject: [PATCH] bug修改
---
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TSiteController.java | 4 +
cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite_info.js | 137 ++++++++++++++++++++++++++++++++++++++++++++-
2 files changed, 135 insertions(+), 6 deletions(-)
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TSiteController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TSiteController.java
index 181576d..2bd1a66 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TSiteController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TSiteController.java
@@ -595,7 +595,9 @@
@ResponseBody
@RequestMapping(value = "/updateSite")
public ResultUtil updateSite(@RequestBody Site site) {
- if(site.getInsuranceImg().equals("")){
+ System.out.println(JSONObject.toJSONString(site));
+ // 防止空指针异常:如果 insuranceImg 为 null 或空字符串,设置为 null
+ if(site.getInsuranceImg() == null || site.getInsuranceImg().equals("")){
site.setInsuranceImg(null);
}
Store store = storeClient.getStoreById(site.getStoreId());
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite_info.js b/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite_info.js
index a2bff4c..18abcdd 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite_info.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite_info.js
@@ -946,7 +946,8 @@
}
// 清除现有价格表
- TSiteInfo.clearPriceTables();
+ // 如果是回显场景(autoAddRow 为 false),使用静默模式不显示提示
+ TSiteInfo.clearPriceTables(!autoAddRow);
// 生成表头
TSiteInfo.buildTableHeaders();
@@ -977,8 +978,9 @@
/**
* 清除价格表
+ * @param {boolean} silent - 是否静默模式(不显示提示),默认为 false
*/
-TSiteInfo.clearPriceTables = function() {
+TSiteInfo.clearPriceTables = function(silent) {
// 清空价格表内容
$("#booking_price_tbody").empty();
$("#walkin_price_tbody").empty();
@@ -994,7 +996,10 @@
// 标记价格表未生成
TSiteInfo.priceTablesGenerated = false;
- Feng.info("价格配置已清除,请重新生成价格表!");
+ // 只在非静默模式下显示提示
+ if (!silent) {
+ Feng.info("价格配置已清除,请重新生成价格表!");
+ }
}
/**
@@ -1370,7 +1375,16 @@
};
if (!isAddMode) {
- data.siteId = parseInt(siteId);
+ // 编辑模式:需要提交完整的场地信息(包括基本信息和价格配置)
+ // 先收集基本信息
+ var basicData = TSiteInfo.collectBasicDataForEdit();
+ if (!basicData || !basicData.id) {
+ Feng.error("获取场地信息失败,请刷新页面重试!");
+ return;
+ }
+ // 合并基本信息、价格配置和场地配置
+ data = Object.assign(basicData, data);
+ data.id = parseInt(siteId);
} else {
// 新增模式:收集基本信息
data = Object.assign(data, TSiteInfo.collectBasicData());
@@ -1386,7 +1400,7 @@
layer.close(index);
// 提交到后端
- var url = isAddMode ? "/tSite/addSite" : "/tSite/savePriceConfig";
+ var url = isAddMode ? "/tSite/addSite" : "/tSite/updateSite";
var successMsg = isAddMode ? "场地添加成功!" : "价格配置保存成功!";
$.ajax({
@@ -1417,6 +1431,119 @@
}
/**
+ * 收集基本信息数据(用于编辑场地时保存价格配置)
+ */
+TSiteInfo.collectBasicDataForEdit = function() {
+ var data = {
+ id: null,
+ province: "",
+ city: "",
+ cityManagerId: "",
+ storeId: null,
+ siteTypeId: null,
+ appointmentStartTime: "",
+ appointmentEndTime: "",
+ cashPrice: null,
+ playPaiCoin: null,
+ insuranceEndTime: "",
+ name: "",
+ insuranceImg: "",
+ managementPlan: "",
+ operatorId: null,
+ typeName: "",
+ nextName: "",
+ ishalf: null,
+ cashPriceOne: null,
+ playPaiCoinOne: null,
+ halfName: "",
+ introduce: "",
+ imgs: "",
+ reservation: null,
+ isCanBeBooked: null,
+ type: null
+ };
+
+ // 从页面表单获取基本信息
+ data.id = $("#id").val() ? parseInt($("#id").val()) : null;
+ data.province = $("#pCode").val() || "";
+ data.city = $("#cCode").val() || "";
+ data.cityManagerId = $("#account").val() ? parseInt($("#account").val()) : null;
+ data.storeId = $("#store").val() ? parseInt($("#store").val()) : null;
+ data.siteTypeId = $("#siteTypeId").val() ? parseInt($("#siteTypeId").val()) : null;
+ data.appointmentStartTime = $("#start-time").val() || "";
+ data.appointmentEndTime = $("#end-time").val() || "";
+ data.cashPrice = $("#cashPrice").val() ? parseFloat($("#cashPrice").val()) : null;
+ data.playPaiCoin = $("#playPaiCoin").val() ? parseInt($("#playPaiCoin").val()) : null;
+ data.insuranceEndTime = $("#insuranceEndTime").val() || "";
+ data.name = $("#name").val() || "";
+ data.insuranceImg = $("input[type='hidden']#img").val() || "";
+ data.managementPlan = $('#courseVideo').val() || "";
+ data.typeName = $('#siteTypeOne').val() || "";
+
+ // 获取运营商信息
+ var checkbox = document.querySelector('input[name="pt"]');
+ if (checkbox != null) {
+ if (checkbox.checked) {
+ data.type = 1;
+ data.operatorId = 0;
+ } else {
+ data.type = 2;
+ var SelectValue = "";
+ $("input[name='pt']:checked").each(function(j) {
+ if (j >= 0) {
+ SelectValue += $(this).val();
+ }
+ });
+ if (SelectValue == '') {
+ var yys = $("#yys").val();
+ if (yys == "") {
+ SelectValue = null;
+ } else {
+ SelectValue = yys;
+ }
+ }
+ data.operatorId = SelectValue ? parseInt(SelectValue) : null;
+ }
+ }
+
+ // 获取预约相关
+ var reservation = $("input[name='reservation']:checked").val();
+ data.reservation = reservation ? parseInt(reservation) : null;
+ data.isCanBeBooked = reservation ? parseInt(reservation) : null;
+
+ // 获取公告内容
+ var objectType = $("#objectType").val();
+ var introduce = "";
+ if (objectType == 1 && TSiteInfo.editor) {
+ introduce = TSiteInfo.editor.getContent() || "";
+ }
+ data.introduce = introduce;
+
+ // 获取实景图
+ var goodImgs = TSiteInfo.goodsPicArray || [];
+ var imgOne = "";
+ for (let i = 0; i < goodImgs.length; i++) {
+ if (i == goodImgs.length - 1) {
+ imgOne += (goodImgs[i].response || "");
+ } else {
+ imgOne += (goodImgs[i].response || "") + ",";
+ }
+ }
+ data.imgs = imgOne;
+
+ // 半场相关
+ data.cashPriceOne = $("#cashPriceOne").val() ? parseFloat($("#cashPriceOne").val()) : null;
+ data.playPaiCoinOne = $("#playPaiCoinOne").val() ? parseFloat($("#playPaiCoinOne").val()) : null;
+
+ // 确保 insuranceImg 不为 null,如果为空字符串则设为 null
+ if (data.insuranceImg === "") {
+ data.insuranceImg = null;
+ }
+
+ return data;
+}
+
+/**
* 收集基本信息数据(用于新增场地)
*/
TSiteInfo.collectBasicData = function() {
--
Gitblit v1.7.1