From 1293009364a938f32b8b9066caafa2f55be06496 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期三, 29 十月 2025 09:11:46 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/2.0' into 2.0
---
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TSiteController.java | 4
cloud-server-management/src/main/webapp/WEB-INF/view/common/tags/avatar.tag | 2
cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite_edit.html | 119 ++++++++++++-------
cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite.js | 123 +++++++++++---------
cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite_info.js | 78 +++++++++---
5 files changed, 206 insertions(+), 120 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 c1905a2..cd757eb 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
@@ -321,6 +321,10 @@
model.addAttribute("objectId",objectId);
model.addAttribute("stores",stores);
+
+ // 显式传递运营商ID和是否可预约字段,确保回显正确
+ model.addAttribute("operatorId", site.getOperatorId());
+ model.addAttribute("reservation", site.getReservation());
String nextName = site.getNextName();
ArrayList<String> strings1 = new ArrayList<>();
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/common/tags/avatar.tag b/cloud-server-management/src/main/webapp/WEB-INF/view/common/tags/avatar.tag
index 4c309d2..9f1bd00 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/common/tags/avatar.tag
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/common/tags/avatar.tag
@@ -20,7 +20,7 @@
<i class="fa fa-upload"></i> 文件上传
</div>
</div>
- <input type="hidden" id="${id}" />
+ <input type="hidden" id="${id}" value="${avatarImg}"/>
</div>
@if(isNotEmpty(underline) && underline == 'true'){
<div class="hr-line-dashed"></div>
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite_edit.html
index 4582400..2ecee07 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite_edit.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite_edit.html
@@ -238,7 +238,8 @@
<div class="form-horizontal" id="carInfoForm">
<input id="type_" value="${list.ishalf}" hidden>
- <input id="reservation" value="${list.reservation}" hidden>
+ <input id="reservation" value="${reservation!''}" hidden>
+ <input id="operatorIdValue" value="${operatorId!''}" hidden>
<input id="objectType" value="${objectType}" hidden>
<input type="hidden" id="siteId" value="${list.id}">
<input type="hidden" id="targetAudience" value="${targetAudience}">
@@ -525,26 +526,31 @@
<script>
function updateTime1() {
- var selectedValue = document.getElementById("siteTypeOne").value;
+ var siteTypeOneEl = document.getElementById("siteTypeOne");
+ if (!siteTypeOneEl) {
+ console.log("siteTypeOne元素未找到");
+ return;
+ }
+
+ var selectedValue = siteTypeOneEl.value;
var priceLabel = document.getElementById("priceLabel");
var priceLabel1 = document.getElementById("priceLabel1");
var priceLabel3 = document.getElementById("priceLabel3");
var priceLabel4 = document.getElementById("priceLabel4");
+ // 检查元素是否存在再设置
if (selectedValue === "智慧场地") {
console.log("=============智慧场地=")
- priceLabel.innerText = "元/15分钟";
- priceLabel1.innerText = "元/15分钟";
- priceLabel3.innerText = "元/15分钟";
- priceLabel4.innerText = "元/15分钟";
+ if (priceLabel) priceLabel.innerText = "元/15分钟";
+ if (priceLabel1) priceLabel1.innerText = "元/15分钟";
+ if (priceLabel3) priceLabel3.innerText = "元/15分钟";
+ if (priceLabel4) priceLabel4.innerText = "元/15分钟";
} else {
- priceLabel.innerText = "元/半小时";
- priceLabel1.innerText = "元/半小时";
- priceLabel3.innerText = "元/半小时";
- priceLabel4.innerText = "元/半小时";
+ if (priceLabel) priceLabel.innerText = "元/半小时";
+ if (priceLabel1) priceLabel1.innerText = "元/半小时";
+ if (priceLabel3) priceLabel3.innerText = "元/半小时";
+ if (priceLabel4) priceLabel4.innerText = "元/半小时";
}
-
-
// $("#end-time").val('');
// $("#start-time").val('');
@@ -631,40 +637,67 @@
$("#reservation1").show()
}
}
- window.onload = function(){
- var siteTypeOne = document.getElementById('siteTypeOne');
- siteTypeOne.onchange(); // Trigger the onchange event
-
-
- console.log("${list.operatorId}")
- if("${list.operatorId}"==0){
- console.log(233232)
- $("#pt").attr('checked', true)
- }
-
-
- var OBJradio=document.getElementsByName("ishalf")
- if($("#type_").val()==1){
- $("#halfCode").show()
- }
- for(i=0;i<OBJradio.length;i++){//循环查找这个radio
- if($("#type_").val()==OBJradio[i].value){//判断是否与radio的值相同
- OBJradio[i].checked=true//修改选中状态
+ // 使用jQuery方式,不会覆盖其他初始化逻辑
+ $(function(){
+ // 确保在DOM完全加载后执行
+ setTimeout(function(){
+ var siteTypeOne = document.getElementById('siteTypeOne');
+ if(siteTypeOne && siteTypeOne.onchange){
+ siteTypeOne.onchange(); // Trigger the onchange event
}
- }
- var OBJradio1=document.getElementsByName("reservation")
- if($("#reservation").val()==1){
- $("#reservation1").show()
- }else{
- $("#reservation1").hide()
- }
- for(j=0;j<OBJradio1.length;j++){//循环查找这个radio
- if($("#reservation").val()==OBJradio1[j].value){//判断是否与radio的值相同
- OBJradio1[j].checked=true//修改选中状态
+ // 回显运营商和门店
+ var operatorIdValue = $("#operatorIdValue").val();
+ var currentStoreId = "${list.storeId}"; // 保存当前门店ID
+ console.log("运营商ID:", operatorIdValue);
+ console.log("门店ID:", currentStoreId);
+
+ if(operatorIdValue && operatorIdValue != ""){
+ if(operatorIdValue == "0"){
+ // 平台
+ $("#pt").prop('checked', true);
+ $("#yys").val('');
+ // 不触发change,避免重新加载门店列表
+ } else {
+ // 运营商
+ $("#pt").prop('checked', false);
+ $("#yys").val(operatorIdValue);
+ // 不触发change,避免重新加载门店列表
+ }
}
- }
- }
+
+ // 确保门店已正确选中(HTML模板已经设置了selected,这里再次确认)
+ if(currentStoreId && currentStoreId != ""){
+ $("#store").val(currentStoreId);
+ }
+
+ // 回显是否可半场
+ var OBJradio=document.getElementsByName("ishalf")
+ if($("#type_").val()==1){
+ $("#halfCode").show()
+ }
+ for(i=0;i<OBJradio.length;i++){//循环查找这个radio
+ if($("#type_").val()==OBJradio[i].value){//判断是否与radio的值相同
+ OBJradio[i].checked=true//修改选中状态
+ }
+ }
+
+ // 回显是否可预约
+ var reservationValue = $("#reservation").val();
+ console.log("是否可预约:", reservationValue);
+ var OBJradio1=document.getElementsByName("reservation");
+ if(reservationValue == "1"){
+ $("#reservation1").show()
+ }else{
+ $("#reservation1").hide()
+ }
+ for(j=0;j<OBJradio1.length;j++){//循环查找这个radio
+ if(reservationValue == OBJradio1[j].value){//判断是否与radio的值相同
+ OBJradio1[j].checked=true//修改选中状态
+ }
+ }
+ }, 100); // 延迟100ms确保所有元素已加载
+ });
// 选择了不可预约 可预约时间段、价格、多场地配置、半场配置,都不展示。
function addBox1() {
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite.js b/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite.js
index 3a9ba36..76acaa2 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite.js
@@ -455,7 +455,7 @@
data.playPaiCoin = $("#playPaiCoin").val()
data.insuranceEndTime = $("#insuranceEndTime").val()
data.name = $("#name").val()
- data.insuranceImg = $("#img").val()
+ data.insuranceImg = $("input[type='hidden']#img").val()
data.managementPlan = $('#courseVideo').val()
data.typeName = $('#siteTypeOne').val()
var sh =data.appointmentStartTime.split(':')[0];
@@ -806,7 +806,17 @@
$(function () {
//初始化编辑器
- TSite.editor = UE.getEditor('editor');
+ // 检查editor元素是否存在再初始化UEditor
+ if (document.getElementById('editor')) {
+ TSite.editor = UE.getEditor('editor');
+ } else {
+ console.log("editor元素未找到,跳过UEditor初始化");
+ // 创建一个空对象,防止后续代码出错
+ TSite.editor = {
+ getContent: function() { return ""; },
+ setContent: function() {}
+ };
+ }
// 限制分钟选项为 0 和 30
// var timeInputs = document.querySelectorAll('input[type="time"]');
// timeInputs.forEach(function(input) {
@@ -909,42 +919,6 @@
* 验证步骤一的必填字段
*/
TSite.validateBasicInfo = function() {
- // 验证门店
- if ($("#store").val() == '') {
- Feng.error("请选择门店");
- return false;
- }
-
- // 验证场地分类
- if ($("#siteTypeId").val() == '') {
- Feng.error("请选择场地分类");
- return false;
- }
-
- // 验证场地名称
- if ($("#name").val() == '') {
- Feng.error("请输入场地名称");
- return false;
- }
-
- // 验证场地责任险有效期
- if ($("#insuranceEndTime").val() == '') {
- Feng.error("请输入场地责任险有效期");
- return false;
- }
-
- // 验证场地责任险图片
- if ($("#img").val() == '') {
- Feng.error("请上传场地责任有效期图片");
- return false;
- }
-
- // 验证消防及应急管理方案
- if ($('#courseVideo').val() == '') {
- Feng.error("请上传消防及应急管理方案");
- return false;
- }
-
// 验证运营商
var SelectValue = "";
$("input[name='pt']:checked").each(function(j) {
@@ -960,23 +934,60 @@
}
}
- // 验证对象类型相关字段
- var objectType = $("#objectType").val();
- if (objectType == 1) {
- // 验证公告内容
- var introduce = TSite.editor.getContent();
- if (introduce == "") {
- Feng.error("请输入公告内容");
- return false;
- }
-
- // 验证实景图
- var goodImgs = TSite.goodsPicArray;
- if (goodImgs.length == 0) {
- Feng.error("请上传实景图");
- return false;
- }
- }
+ // 验证门店
+ if ($("#store").val() == '') {
+ Feng.error("请选择门店");
+ return false;
+ }
+
+ // 验证场地分类
+ if ($("#siteTypeId").val() == '') {
+ Feng.error("请选择场地分类");
+ return false;
+ }
+
+ // 验证场地名称
+ if ($("#name").val() == '') {
+ Feng.error("请输入场地名称");
+ return false;
+ }
+
+ // 验证场地责任险有效期
+ if ($("#insuranceEndTime").val() == '') {
+ Feng.error("请输入场地责任险有效期");
+ return false;
+ }
+
+ // 验证场地责任险图片(使用更精确的选择器获取hidden input)
+ var imgValue = $("input[type='hidden']#img").val();
+ if (!imgValue || imgValue == '') {
+ Feng.error("请上传场地责任有效期图片");
+ return false;
+ }
+
+ // 验证消防及应急管理方案
+ if ($('#courseVideo').val() == '') {
+ Feng.error("请上传消防及应急管理方案");
+ return false;
+ }
+
+ // 验证对象类型相关字段
+ var objectType = $("#objectType").val();
+ if (objectType == 1) {
+ // 验证公告内容
+ var introduce = TSite.editor.getContent();
+ if (introduce == "") {
+ Feng.error("请输入公告内容");
+ return false;
+ }
+
+ // 验证实景图
+ var goodImgs = TSite.goodsPicArray;
+ if (goodImgs.length == 0) {
+ Feng.error("请上传实景图");
+ return false;
+ }
+ }
return true;
}
@@ -1483,7 +1494,7 @@
data.playPaiCoin = $("#playPaiCoin").val()
data.insuranceEndTime = $("#insuranceEndTime").val()
data.name = $("#name").val()
- data.insuranceImg = $("#img").val()
+ data.insuranceImg = $("input[type='hidden']#img").val()
data.managementPlan = $('#courseVideo').val()
data.typeName = $('#siteTypeOne').val()
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 eacb313..a2bff4c 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
@@ -81,6 +81,10 @@
var citySelect = document.getElementById("account");
var storeSelect = document.getElementById("store");
+
+ // 保存当前选中的门店ID(如果是编辑模式)
+ var currentStoreId = $("#store").val();
+
var ajax = new $ax(Feng.ctxPath + "/tSite/accountChangeNext", function(data){
if(data!=null){
var content='<option value="">选择账号</option>';
@@ -107,6 +111,12 @@
content += "<option style='width: 300px' value='"+v.id+"'>"+v.name+"</option>";
});
$("#store").empty().append(content);
+
+ // 如果之前有选中的门店,尝试恢复选中状态
+ if(currentStoreId && currentStoreId != ""){
+ $("#store").val(currentStoreId);
+ console.log("恢复门店选中状态:", currentStoreId);
+ }
}else {
storeSelect.innerHTML = '<option value="">当前所选市没有门店</option>';
}
@@ -124,6 +134,13 @@
success: function (response) {
var sTime = document.getElementById("start-time"); //获取输入的开始时间
var eTime = document.getElementById("end-time"); // 获取输入的结束时间
+
+ // 检查元素是否存在,如果不存在则直接返回
+ if (!sTime || !eTime) {
+ console.log("时间输入框元素未找到,跳过时间验证初始化");
+ return;
+ }
+
var rStime = response.startTime; //门店的经营开始时间
var rEtime = response.endTime; //门店的经营结束时间
@@ -219,7 +236,7 @@
data.playPaiCoin = $("#playPaiCoin").val()
data.insuranceEndTime = $("#insuranceEndTime").val()
data.name = $("#name").val()
- data.insuranceImg = $("#img").val()
+ data.insuranceImg = $("input[type='hidden']#img").val()
data.managementPlan = $('#courseVideo').val()
data.typeName = $('#siteTypeOne').val()
var sh =data.appointmentStartTime.split(':')[0];
@@ -513,6 +530,10 @@
TSiteInfo.oneChangeYys = function(e){
var oneId = $(e).val();
var checkbox = document.querySelector('input[name="pt"]');
+
+ // 保存当前选中的门店ID(如果是编辑模式)
+ var currentStoreId = $("#store").val();
+
if (checkbox.checked) {
oneId=0;
console.log("选中是平台");
@@ -549,6 +570,12 @@
content += "<option value='"+v.id+"'>"+v.name+"</option>";
});
$("#store").empty().append(content);
+
+ // 如果之前有选中的门店,尝试恢复选中状态
+ if(currentStoreId && currentStoreId != ""){
+ $("#store").val(currentStoreId);
+ console.log("恢复门店选中状态:", currentStoreId);
+ }
}
});
@@ -628,6 +655,21 @@
* 验证步骤一的必填字段
*/
TSiteInfo.validateBasicInfo = function() {
+ // 验证运营商
+ var SelectValue = "";
+ $("input[name='pt']:checked").each(function(j) {
+ if (j >= 0) {
+ SelectValue += $(this).val();
+ }
+ });
+ if (SelectValue == '') {
+ let yys = $("#yys").val();
+ if (yys == "") {
+ Feng.error("请选择运营商");
+ return false;
+ }
+ }
+
// 验证门店
if ($("#store").val() == '') {
Feng.error("请选择门店");
@@ -652,8 +694,9 @@
return false;
}
- // 验证场地责任险图片
- if ($("#img").val() == '') {
+ // 验证场地责任险图片(使用更精确的选择器获取hidden input)
+ var imgValue = $("input[type='hidden']#img").val();
+ if (!imgValue || imgValue == '') {
Feng.error("请上传场地责任有效期图片");
return false;
}
@@ -662,21 +705,6 @@
if ($('#courseVideo').val() == '') {
Feng.error("请上传消防及应急管理方案");
return false;
- }
-
- // 验证运营商
- var SelectValue = "";
- $("input[name='pt']:checked").each(function(j) {
- if (j >= 0) {
- SelectValue += $(this).val();
- }
- });
- if (SelectValue == '') {
- let yys = $("#yys").val();
- if (yys == "") {
- Feng.error("请选择运营商");
- return false;
- }
}
// 验证对象类型相关字段
@@ -1431,7 +1459,7 @@
data.playPaiCoin = $("#playPaiCoin").val()
data.insuranceEndTime = $("#insuranceEndTime").val()
data.name = $("#name").val()
- data.insuranceImg = $("#img").val()
+ data.insuranceImg = $("input[type='hidden']#img").val()
data.managementPlan = $('#courseVideo').val()
data.typeName = $('#siteTypeOne').val()
@@ -1736,7 +1764,17 @@
$('#upFile').click();
}
$(function () {
- TSiteInfo.editor = UE.getEditor('editor');
+ // 检查editor元素是否存在再初始化UEditor
+ if (document.getElementById('editor')) {
+ TSiteInfo.editor = UE.getEditor('editor');
+ } else {
+ console.log("editor元素未找到,跳过UEditor初始化");
+ // 创建一个空对象,防止后续代码出错
+ TSiteInfo.editor = {
+ getContent: function() { return ""; },
+ setContent: function() {}
+ };
+ }
// 限制分钟选项为 0 和 30
// var timeInputs = document.querySelectorAll('input[type="time"]');
// timeInputs.forEach(function(input) {
--
Gitblit v1.7.1