mitao
2 天以前 79d99529f3bf1ab14a3de599fdb3fe63ea633337
cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite_info.js
@@ -640,23 +640,31 @@
 * 初始化价格配置
 */
TSiteInfo.initPriceConfig = function() {
    // 监听人群选择
    $("#audience_booking, #audience_walkin").off('change').on('change', function() {
        TSiteInfo.updateAudienceUI();
    });
    // 清空价格表
    $("#booking_price_tbody").empty();
    $("#walkin_price_tbody").empty();
    // 隐藏价格表区域
    $("#booking_section").hide();
    $("#walkin_section").hide();
    // 标记价格表未生成
    TSiteInfo.priceTablesGenerated = false;
    
    // 初始化计数器
    TSiteInfo.bookingRowIndex = 0;
    TSiteInfo.walkinRowIndex = 0;
    
    // 生成表头
    TSiteInfo.buildTableHeaders();
    // 监听人群选择变化
    $("#audience_booking, #audience_walkin").off('change').on('change', function() {
        TSiteInfo.updateAudienceUI();
        // 如果价格表已生成,提示需要重新生成
        if (TSiteInfo.priceTablesGenerated) {
            TSiteInfo.clearPriceTables();
        }
    });
    
    // 更新界面
    // 更新界面(但不显示价格表)
    TSiteInfo.updateAudienceUI();
    
    // 初始化是否可预定半场状态
@@ -668,6 +676,70 @@
        $("input[name='ishalf_step2'][value='2']").prop('checked', true);
        $("#halfCode_step2").hide();
    }
}
/**
 * 生成价格表
 */
TSiteInfo.generatePriceTables = function() {
    // 验证人群选择
    var bookingChecked = $("#audience_booking").is(':checked');
    var walkinChecked = $("#audience_walkin").is(':checked');
    if (!bookingChecked && !walkinChecked) {
        Feng.error("请至少选择一种面向人群!");
        return;
    }
    // 验证容纳散客数
    if (walkinChecked) {
        var walkinCapacity = $("#walkin_capacity").val();
        if (!walkinCapacity || parseInt(walkinCapacity) <= 0) {
            Feng.error("请输入有效的容纳散客数!");
            return;
        }
    }
    // 清除现有价格表
    TSiteInfo.clearPriceTables();
    // 生成表头
    TSiteInfo.buildTableHeaders();
    // 显示对应的价格表区域
    if (bookingChecked) {
        $("#booking_section").show();
    }
    if (walkinChecked) {
        $("#walkin_section").show();
    }
    // 标记价格表已生成
    TSiteInfo.priceTablesGenerated = true;
    Feng.success("价格表已生成,请添加时段并填写价格!");
}
/**
 * 清除价格表
 */
TSiteInfo.clearPriceTables = function() {
    // 清空价格表内容
    $("#booking_price_tbody").empty();
    $("#walkin_price_tbody").empty();
    // 隐藏价格表区域
    $("#booking_section").hide();
    $("#walkin_section").hide();
    // 重置计数器
    TSiteInfo.bookingRowIndex = 0;
    TSiteInfo.walkinRowIndex = 0;
    // 标记价格表未生成
    TSiteInfo.priceTablesGenerated = false;
    Feng.info("价格配置已清除,请重新生成价格表!");
}
/**
@@ -714,36 +786,30 @@
TSiteInfo.updateHalfField = function(value) {
    if (value == 1) {
        $("#halfCode_step2").show();
        // 更新isHalf并重新生成表头
        // 更新isHalf
        TSiteInfo.priceConfig.isHalf = 1;
    } else {
        $("#halfCode_step2").hide();
        TSiteInfo.priceConfig.isHalf = 2;
    }
    // 重新生成表头
    TSiteInfo.buildTableHeaders();
    // 如果价格表已生成,清除价格表
    if (TSiteInfo.priceTablesGenerated) {
        TSiteInfo.clearPriceTables();
    }
}
/**
 * 更新人群相关UI
 */
TSiteInfo.updateAudienceUI = function() {
    var bookingChecked = $("#audience_booking").is(':checked');
    var walkinChecked = $("#audience_walkin").is(':checked');
    
    // 显示/隐藏订场表格
    if (bookingChecked) {
        $("#booking_section").show();
    } else {
        $("#booking_section").hide();
    }
    // 显示/隐藏散客表格和容纳散客数
    // 只控制容纳散客数字段的显示/隐藏
    // 价格表的显示由生成按钮控制
    if (walkinChecked) {
        $("#walkin_section").show();
        $("#walkin_capacity_group").show();
    } else {
        $("#walkin_section").hide();
        $("#walkin_capacity_group").hide();
    }
}
@@ -969,6 +1035,12 @@
 * 保存价格配置
 */
TSiteInfo.savePriceConfig = function() {
    // 验证价格表是否已生成
    if (!TSiteInfo.priceTablesGenerated) {
        Feng.error("请先点击【生成价格表】按钮生成价格配置表!");
        return;
    }
    // 验证人群选择
    var bookingChecked = $("#audience_booking").is(':checked');
    var walkinChecked = $("#audience_walkin").is(':checked');
@@ -1001,10 +1073,7 @@
    }
    
    var siteId = $("#siteId").val();
    if (!siteId) {
        Feng.error("场地ID不存在,请先保存场地基本信息!");
        return;
    }
    var isAddMode = !siteId; // 判断是新增模式还是编辑模式
    
    // 收集场地配置
    var nextNames = [];
@@ -1031,7 +1100,6 @@
    if (walkinChecked) targetAudience.push('2');
    
    var data = {
        siteId: parseInt(siteId),
        targetAudience: targetAudience.join(','),
        walkinCapacity: walkinChecked ? parseInt($("#walkin_capacity").val()) : 0,
        nextName: nextNames.join(','),
@@ -1040,6 +1108,16 @@
        priceDetails: priceDetails
    };
    
    if (!isAddMode) {
        data.siteId = parseInt(siteId);
    } else {
        // 新增模式:收集基本信息
        data = Object.assign(data, TSiteInfo.collectBasicData());
        if (!data.name) { // 如果基本信息收集失败
            return;
        }
    }
    // 确认提交
    layer.confirm('确定要保存价格配置吗?', {
        btn: ['确定', '取消']
@@ -1047,13 +1125,16 @@
        layer.close(index);
        
        // 提交到后端
        var url = isAddMode ? "/tSite/addSite" : "/tSite/savePriceConfig";
        var successMsg = isAddMode ? "场地添加成功!" : "价格配置保存成功!";
        $.ajax({
            url: Feng.ctxPath + "/tSite/savePriceConfig",
            url: Feng.ctxPath + url,
            type: "POST",
            data: JSON.stringify(data),
            contentType: "application/json",
            success: function(response) {
                Feng.success("价格配置保存成功!");
                Feng.success(successMsg);
                // 刷新列表
                if (window.parent.TSite && window.parent.TSite.table) {
                    window.parent.TSite.table.refresh();
@@ -1075,6 +1156,141 @@
}
/**
 * 收集基本信息数据(用于新增场地)
 */
TSiteInfo.collectBasicData = function() {
    var data = {
        province:"",
        city:"",
        cityManagerId:"",
        storeId:"",
        siteTypeId:null,
        appointmentStartTime:"",
        appointmentEndTime:"",
        cashPrice:null,
        playPaiCoin:null,
        insuranceEndTime:"",
        name:"",
        insuranceImg:"",
        managementPlan:"",
        operatorId:"",
        typeName:"",
        nextName:"",
        ishalf:"",
        cashPriceOne:"",
        playPaiCoinOne:"",
        halfName:"",
        introduce:"",
        imgs:"",
        reservation:"",
        isCanBeBooked:"",
        type:"",
    };
    data.province            = $("#pCode").val()
    data.city                = $("#cCode").val()
    data.cityManagerId       = $("#account").val()
    data.storeId             = $("#store").val()
    data.siteTypeId          = $("#siteTypeId").val()
    data.appointmentStartTime= $("#start-time").val()
    data.appointmentEndTime  = $("#end-time").val()
    data.cashPrice           = $("#cashPrice").val()
    data.playPaiCoin         = $("#playPaiCoin").val()
    data.insuranceEndTime    = $("#insuranceEndTime").val()
    data.name                = $("#name").val()
    data.insuranceImg        = $("#img").val()
    data.managementPlan      = $('#courseVideo').val()
    data.typeName            = $('#siteTypeOne').val()
    var reservation= $("input[name='reservation']:checked").val();
    data.reservation= reservation;
    data.isCanBeBooked= reservation;
    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="";
    var getSelectValueMenbers = $("input[name='pt']:checked").each(function(j) {
        if (j >= 0) {
            SelectValue += $(this).val()
        }
    });
    if(SelectValue==''){
        let yys = $("#yys").val()
        if(yys==""){
            Feng.info("请选择运营商")
            return null;
        }
        SelectValue= yys
    }
    data.operatorId= SelectValue;
    let introduce = "";
    var objectType = $("#objectType").val();
    if (objectType==1){
       introduce = TSiteInfo.editor.getContent();
       if(introduce==""){
           Feng.info("请输入公告内容")
           return null;
       }
    }
    data.introduce= introduce;
    var goodImgs = TSiteInfo.goodsPicArray;
    if(objectType==1){
        if(goodImgs.length==0){
            Feng.info("请上传实景图")
            return null;
        }
    }
    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
    // 基本验证
    if($("#store").val()=='' ){
        Feng.info("请选择门店")
        return null;
    }
    if($("#siteTypeId").val()=='' ){
        Feng.info("请选择场地分类")
        return null;
    }
    if($("#name").val()==''){
        Feng.info("请输入场地名称")
        return null;
    }
    if($("#insuranceEndTime").val()==''){
        Feng.info("请输入场地责任险有效期")
        return null;
    }
    if($("#img").val()==''){
        Feng.info("请上传场地责任有效期图片")
        return null;
    }
    if($('#courseVideo').val()==''){
        Feng.info("请上传消防及应急管理方案")
        return null;
    }
    return data;
}
/**
 * 收集价格数据
 */
TSiteInfo.collectPriceData = function() {