From d9dfe81a9e819d9da2d41cb57d674eff894c6605 Mon Sep 17 00:00:00 2001 From: 44323 <443237572@qq.com> Date: 星期二, 05 九月 2023 11:36:21 +0800 Subject: [PATCH] 场地类型管理、场地管理、课包类型管理、教练管理、教练类型管理、福利视频分类管理、体测预约 --- cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite.js | 614 ++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 508 insertions(+), 106 deletions(-) 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 efb9b57..3c90189 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 @@ -5,26 +5,33 @@ id: "TSiteTable", //表格id seItem: null, //选中的条目 table: null, - layerIndex: -1 + layerIndex: -1, + picture:"", + fileUrl:"", + img:"", + plan:"", + goodsPicArray:[], + validateFields: { + } }; - +var objectType =$("#objectType").val() /** * 初始化表格的列 */ TSite.initColumn = function () { return [ - {field: 'selectItem', radio: true}, + {field: 'selectItem', checkbox: true}, {title: '主键ID', field: 'id', visible: false, align: 'center', valign: 'middle'}, - {title: '省', field: 'insertTime', visible: true, align: 'center', valign: 'middle',width:'20%', + {title: '省', field: 'province', visible: objectType==1?true:false, align: 'center', valign: 'middle',width:'20%', }, - {title: '市', field: 'name', visible: true, align: 'center', valign: 'middle', + {title: '市', field: 'city', visible: objectType==1?true:false, align: 'center', valign: 'middle', }, - {title: '门店名称', field: 'insertUserId', visible: false, align: 'center', valign: 'middle'}, - {title: '场地类型', field: 'insertUser', visible: true, align: 'center', valign: 'middle', + {title: '门店名称', field: 'storeName', visible: true, align: 'center', valign: 'middle'}, + {title: '场地类型', field: 'siteTypeName', visible: true, align: 'center', valign: 'middle', }, - {title: '场地名称', field: 'province', visible: true, align: 'center', valign: 'middle', + {title: '场地名称', field: 'name', visible: true, align: 'center', valign: 'middle', }, - {title: '场地责任险有效期', field: 'lineNum', visible: true, align: 'center', valign: 'middle', + {title: '场地责任险有效期', field: 'insuranceEndTime', visible: true, align: 'center', valign: 'middle', }, {title: '状态', field: 'state', visible: true, align: 'center', valign: 'middle', formatter:function (data) { @@ -47,149 +54,544 @@ return true; } }; -TSite.oneChange = function (e) { - var oneId=$(e).val(); - var ajax = new $ax(Feng.ctxPath + "/tCity/onChange", function(data){ - if(data!=null){ - if(language==1){ - var content='<option value="">选择市</option>'; - }else if(language==2){ - var content='<option value="">Choose your franchisee</option>'; - }else { - var content='<option value="">Pilih franchisee Anda</option>'; +/** + * 上架 + */ + +TSite.onShelf = function () { + if (this.check()){ + var selected = $('#' + this.id).bootstrapTable('getSelections'); + const data1 = { + siteIds:[], + type:null + }; + selected.forEach(function(obj) { + var id = obj.id; + data1.siteIds.push(id); + }); + data1.type = 1; + + $.ajax({ + url: Feng.ctxPath + "/tSite/changeState", + type: "POST", + contentType: "application/json", // 设置请求头的 Content-Type + data: JSON.stringify(data1), // 将数据转换为 JSON 字符串 + success: function(response) { + Feng.success("上架成功!"); + TSite.search(); + }, + error: function(xhr, status, error) { + var errorMessage = xhr.responseText ? xhr.responseText : "上架失败!"; + Feng.error("您的网络异常!"); } + }); + } +}; +/** + * 下架 + */ +TSite.offShelf = function () { + if (this.check()){ + var selected = $('#' + this.id).bootstrapTable('getSelections'); + const data1 = { + siteIds:[], + type:null + }; + selected.forEach(function(obj) { + var id = obj.id; + data1.siteIds.push(id); + }); + data1.type = 2; + $.ajax({ + url: Feng.ctxPath + "/tSite/changeState", + type: "POST", + contentType: "application/json", // 设置请求头的 Content-Type + data: JSON.stringify(data1), // 将数据转换为 JSON 字符串 + success: function(response) { + Feng.success("下架成功!"); + TSite.search(); + }, + error: function(xhr, status, error) { + var errorMessage = xhr.responseText ? xhr.responseText : "下架失败!"; + Feng.error("您的网络异常!"); + } + }); + } +}; +TSite.uploadFile = function(){ + var elementById = document.getElementById("uploadFile"); + var file = elementById.files[0]; + var formData = new FormData(); + formData.append('file',file); + $.ajax({ + url: Feng.ctxPath + "/tCouponManage/uploadPic" , + type: "POST", + data: formData, + contentType: false, // 设置为false,让浏览器自动识别并设置请求头 + processData: false, // 设置为false,不处理发送的数据(因为FormData对象已经包含了文件数据) + success: function (response) { + TSite.fileUrl = response; + console.log(TSite.fileUrl); + Feng.success("文件上传成功"); + }, + error: function (xhr, status, error) { + Feng.error("文件上传失败!" + error); + } + }); +}; +TSite.getChange = function(e){ + var oneId=$(e).val(); + var selectedValue = e.value; + var citySelect = document.getElementById("cCode"); + + var ajax = new $ax(Feng.ctxPath + "/tSite/getChange", function(data){ + if(data!=null){ + var content='<option value="">选择市</option>'; $.each(data, function(k,v) { - content += "<option value='"+v.code+"'>"+v.name+"</option>"; + content += "<option value='"+v.name+"'>"+v.name+"</option>"; }); $("#cCode").empty().append(content); } }); + if (selectedValue === ""){ + citySelect.innerHTML = '<option value="">请先选择省</option>'; + } + ajax.set("province",oneId); + ajax.start(); +}; +// 场地管理首页 选择对应的省市 +// 传1是场地管理首页 传2是场地管理添加页面 +TSite.oneChange = function (e) { + var selectElement = document.getElementById('store'); + var startTime = document.getElementById('start-time'); + var endTime = document.getElementById('end-time'); + if (startTime!==null){ + startTime.disabled = true; + endTime.disabled = true; + selectElement.addEventListener('change',function () { + if (selectElement.value !== ''){ + startTime.disabled = false; + endTime.disabled = false; + }else{ + startTime.disabled = true; + endTime.disabled = true; + } + }); + } + + var province = $('#pCode option:selected').text(); + var val = $('#pCode option:selected').val(); + + var citySelect = document.getElementById("cCode"); + var accountSelect = document.getElementById("account"); + var storeSelect = document.getElementById("store"); + var ajax = new $ax(Feng.ctxPath + "/tSite/getCity", function(data){ + if(data!=null){ + var content='<option value="">选择市</option>'; + $.each(data, function(k,v) { + content += "<option value='"+v.city+"'>"+v.city+"</option>"; + }); + $("#cCode").empty().append(content); + } + }); + if (val === ""){ + citySelect.innerHTML = '<option value="">请先选择省</option>'; + + } + if (e===2){ + accountSelect.innerHTML = '<option value="">请先选择省/市</option>'; + storeSelect.innerHTML = '<option value="">请先选择省/市</option>'; + } + if (val === ""){ + startTime.disabled = true; + endTime.disabled = true; + } + + ajax.set("province",province); + ajax.start(); +}; + +TSite.oneChangeNext = function (e) { + var startTime = document.getElementById('start-time'); + var endTime = document.getElementById('end-time'); + + var oneId=$(e).val(); + var citySelect = document.getElementById("account"); + var storeSelect = document.getElementById("store"); + var ajax = new $ax(Feng.ctxPath + "/tSite/accountChangeNext", function(data){ + if(data!=null){ + var content='<option value="">选择账号</option>'; + $.each(data, function(k,v) { + content += "<option style='width: 300px' value='"+v.id+"'>"+v.name+"</option>"; + }); + $("#account").empty().append(content); + } + }); + if (oneId === ""){ + citySelect.innerHTML = '<option style="width: 300px" value="">请先选择省/市</option>'; + storeSelect.innerHTML = '<option style="width: 300px" value="">请先选择省/市</option>'; + startTime.disabled = true; + endTime.disabled = true; + } ajax.set("oneId",oneId); ajax.start(); -} + + var ajax1 = new $ax(Feng.ctxPath + "/tSite/storeChangeNext", function(data){ + if(data!=null && data.length !== 0){ + var content='<option value="">选择门店</option>'; + $.each(data, function(k,v) { + content += "<option style='width: 300px' value='"+v.id+"'>"+v.name+"</option>"; + }); + $("#store").empty().append(content); + }else { + storeSelect.innerHTML = '<option value="">当前所选市没有门店</option>'; + } + }); + ajax1.set("oneId",oneId); + ajax1.start(); +}; /** - * 点击添加跨城站点管理 + * 跳转添加场地页面 */ TSite.openAddTSite = function () { + var index = layer.open({ type: 2, - title: language==1?'添加':(language==2?'Add':'Tambahkan'), + title: "添加场地", area: ['100%', '100%'], //宽高 fix: false, //不固定 maxmin: true, - content: Feng.ctxPath + '/tSite/tSite_add' + content: Feng.ctxPath + '/tSite/add' }); this.layerIndex = index; }; - /** - * 打开查看跨城站点管理详情 + * 跳转锁定场地页面 */ -TSite.openTSiteDetail = function () { +TSite.lock = function () { + var selected = $('#' + this.id).bootstrapTable('getSelections'); + if(selected.length >1 ){ + Feng.info("只能选择一个场地进行锁定!"); + }else { + if (this.check()) { + var index = layer.open({ + type: 2, + title: "锁定场地", + area: ['100%', '100%'], //宽高 + fix: false, //不固定 + maxmin: true, + content: Feng.ctxPath + '/tSite/lockSite/' + TSite.seItem.id + }); + this.layerIndex = index; + } + } +}; +/** + * 打开场地管理查看详情 + */ +TSite.openInfo = function () { + var selected = $('#' + this.id).bootstrapTable('getSelections'); + if(selected.length >1 ){ + Feng.info("只能选择一个问题进行编辑!"); + }else { + if (this.check()) { + var index = layer.open({ + type: 2, + title: "查看详情", + area: ['100%', '100%'], //宽高 + fix: false, //不固定 + maxmin: true, + content: Feng.ctxPath + '/tSite/openInfoTSite/' + TSite.seItem.id + }); + this.layerIndex = index; + } + } +}; +/** + * 打开场地管理编辑 + */ +TSite.openEditTSite = function () { + var selected = $('#' + this.id).bootstrapTable('getSelections'); + if(selected.length >1 ){ + Feng.info("只能选择一个问题进行编辑!"); + }else { if (this.check()) { var index = layer.open({ type: 2, - title: language==1?'编辑':(language==2?'Edit':'Edit'), + title: "编辑场地", area: ['100%', '100%'], //宽高 fix: false, //不固定 maxmin: true, - content: Feng.ctxPath + '/tSite/tSite_update/' + TSite.seItem.id + content: Feng.ctxPath + '/tSite/openEditTSite/' + TSite.seItem.id }); this.layerIndex = index; } -}; - -/** - * 操作跨城站点管理 - */ -TSite.opt = function (type) { - if (this.check()) { - var name = TSite.seItem.name; - if (name == "" || name == null || name == undefined) { - name = "该站点"; - } else { - name = "【" + name + "】"; - } - var str = ""; - var text = "请谨慎操作!"; - var title = "请谨慎操作!"; - if (1 == type){ - str = "删除"; - title = "您是否确认删除"+name+"?"; - text = "请谨慎操作,删除后数据无法恢复!"; - } else if (2 == type){ - str = "冻结"; - title = "您是否确认冻结"+name+"?"; - } else if (3 == type){ - str = "解冻"; - title = "您是否确认解冻"+name+"?"; - } - if (1 == type){ - if (TSite.seItem.lineNum != "" && TSite.seItem.lineNum != null && TSite.seItem.lineNum > 0) { - swal("删除失败", "该站点还有关联线路!", "warning"); - return; - } - } - if(2 == type){ - if (TSite.seItem.state != 1) { - swal("冻结失败", "【正常】状态下才能执行此操作!", "warning"); - return; - } - } - if (3 == type){ - if (TSite.seItem.state != 2){ - swal("解冻失败", "【冻结】状态下才能执行此操作!", "warning"); - return; - } - } - - swal({ - title: title, - text: text, - type: "warning", - showCancelButton: true, - confirmButtonColor: "#DD6B55", - confirmButtonText: str, - closeOnConfirm: true - }, function () { - var ajax = new $ax(Feng.ctxPath + "/tSite/opt", function (data) { - swal(str+"成功", "您已经"+str+"了" + name + "。", "success"); - TSite.table.refresh(); - }, function (data) { - swal(str+"失败", data.responseJSON.message + "!", "warning"); - }); - ajax.set("tSiteId",TSite.seItem.id); - ajax.set("optType", type); - ajax.start(); - }); } }; - /** - * 查询跨城站点管理列表 + * 关闭此对话框 */ +TSite.close = function() { + parent.layer.close(window.parent.TSite.layerIndex); +} + +var sh = ""; // 门店经营开始时间:小时 +var sm = "";// 门店经营开始时间:分钟 +var eh = "";// 门店经营结束时间:小时 +var em = "";// 门店经营结束时间:分钟 + +TSite.addSubmit = function(){ + + var data = { + province:"", + city:"", + cityManagerId:"", + storeId:"", + siteTypeId:null, + appointmentStartTime:"", + appointmentEndTime:"", + cashPrice:null, + playPaiCoin:null, + insuranceEndTime:"", + name:"", + insuranceImg:"", + managementPlan:"" + }; + 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() + var sh =data.appointmentStartTime.split(':')[0]; + var sm =data.appointmentStartTime.split(':')[1]; + var eh =data.appointmentEndTime.split(':')[0]; + var em =data.appointmentEndTime.split(':')[1]; + + if($("#pCode").val()==''){ + Feng.info("请选择省") + return; + } + if($("#cCode").val()==''){ + Feng.info("请选择市") + return; + } + if($("#account").val()=='' ){ + Feng.info("请选择账号") + return; + } + if($("#store").val()=='' ){ + Feng.info("请选择门店") + return; + } + if($("#siteTypeId").val()=='' ){ + Feng.info("请选择场地类型") + return; + } + if($("#name").val()==''){ + Feng.info("请输入场地名称") + return; + } + if($("#start-time").val()=='' ){ + Feng.info("请输入可预约时间段 开始时间") + return; + } + if($("#end-time").val()==''){ + Feng.info("请输入可预约时间段 结束时间") + return; + } + if($("#cashPrice").val()==''){ + Feng.info("请输入现金价格") + return; + } + if($("#playPaiCoin").val()==''){ + Feng.info("请输入玩湃币价格") + return; + } + if($("#insuranceEndTime").val()==''){ + Feng.info("请输入场地责任险有效期") + return; + } + + if($("#img").val()==''){ + Feng.info("请上传场地责任有效期图片") + return; + } + if($('#courseVideo').val()==''){ + Feng.info("请上传消防及应急管理方案") + return; + } + var sTime = document.getElementById("start-time"); //获取输入的开始时间 + var eTime = document.getElementById("end-time"); // 获取输入的结束时间 + var rStime = ""; //门店的经营开始时间 + var rEtime = ""; //门店的经营结束时间 + var selectedText = $('#store option:selected').text(); + $.ajax({ + url: Feng.ctxPath + "/tSite/getTime/" + selectedText, + type: "GET", + contentType: "application/json", // 设置请求头的 Content-Type + success: function (response) { + rStime = response.startTime; + sh = rStime.split(':')[0];// 门店经营开始时间:小时 + sm = rStime.split(':')[1];// 门店经营开始时间:分钟 + + rEtime = response.endTime; + eh = rEtime.split(':')[0];// 门店经营结束时间:小时 + em = rEtime.split(':')[1];// 门店经营结束时间:分钟 + + var start = sTime.value; + var startHour = start.split(':')[0]; // 输入的可预约开始时间:小时 + var startMinute = start.split(':')[1];// 输入的可预约开始时间:分钟 + if (Number(sh)>Number(startHour)){ + Feng.error("预约的开始时间不应小于营业开始时间!") + return false; + }else if(Number(sh) === Number(startHour) ){ + if (Number(sm)>Number(startMinute)){ + Feng.error("预约的开始时间不应大于营业开始时间!") + return false; + } + }else if (Number(eh)<Number(startHour)){ + Feng.error("预约的开始时间不应大于营业结束时间!") + return false; + }else if(Number(eh)===Number(startHour)){ + Feng.error("预约的开始时间不应大于等于营业结束时间!") + return false; + } + var end = eTime.value; + var endHour = end.split(':')[0]; // 输入的可预约结束时间:小时 + var endMinute = end.split(':')[1];// 输入的可预约结束时间:分钟 + if (Number(eh)<Number(endHour)){ + Feng.error("预约的结束时间不应大于营业结束时间!") + return ; + }else if(Number(eh) === Number(endHour) ){ + if (Number(em)<Number(endMinute)){ + Feng.error("预约的开始时间不应大于开始营业时间!") + return ; + } + }else if(Number(sh)>Number(endHour)){ + Feng.error("预约的结束时间不应小于营业开始时间!") + return ; + } + if (Number(endHour)===Number(sh)){ + if(Number(endMinute) < Number(sm)){ + Feng.error("预约结束时间不应小于营业开始时间"); + return; + } + } + if (Number(startHour)===Number(endHour) && Number(startMinute)===Number(endMinute)){ + Feng.error("至少预约半个小时"); + return; + } + $.ajax({ + url: Feng.ctxPath + "/tSite/addSite" , + type: "POST", + data: JSON.stringify(data), + contentType: "application/json", + success: function (response) { + Feng.success("添加成功"); + TSite.search(); + }, + error: function (xhr, status, error) { + Feng.error("添加失败!" + error); + } + }); + }, + error: function (xhr, status, error) { + var errorMessage = xhr.responseText ? xhr.responseText : "上架失败!"; + Feng.error("您的网络异常!"); + return false; + } + }); +}; + TSite.search = function () { var queryData = {}; - queryData['insertTime'] = $("#insertTime").val(); + queryData['province'] = $("#pCode").val(); + queryData['city'] = $("#cCode").val(); + queryData['siteTypeId'] = $("#sCode").val(); + // 场地名称 queryData['name'] = $("#name").val(); - queryData['insertUser'] = $("#insertUser").val(); - queryData['city'] = $("#city").val(); - queryData['state'] = $("#state").val(); + // 门店名称 + queryData['storeName'] = $("#storeName").val(); TSite.table.refresh({query: queryData}); }; TSite.resetSearch = function () { - $("#insertTime").val(""); + $("#pCode").val(""); + $("#cCode").val(""); + $("#store").val(""); + $("#sCode").val(""); + $("#storeName").val(""); + $("#siteTypeId").val(""); $("#name").val(""); - $("#insertUser").val(""); - $("#city").val(""); - $("#state").val(""); + $("#insuranceEndTime").val(""); TSite.search(); }; +function UploadFileFn(){ + $('#upFile').click(); +} + $(function () { + // 限制分钟选项为 0 和 30 + var timeInputs = document.querySelectorAll('input[type="time"]'); + timeInputs.forEach(function(input) { + input.addEventListener('change', function() { + var selectedTime = input.value; + var hour = selectedTime.split(':')[0]; + var minute = selectedTime.split(':')[1]; + if (minute < 30 &&minute>0) { + minute = '30'; + } else if (minute >30) { + hour++; + minute = '00'; + if (hour<10){ + hour = '0'+hour; + } + } + input.value = hour + ':' + minute; + }); + }); + + var defaultColunms = TSite.initColumn(); - var table = new BSTable(TSite.id, "/tSite/list", defaultColunms); - table.setPaginationType("server"); + var type =$("#type").val(); + if (type !== 1){ + var table1 = new BSTable(TSite.id, "/tSite/listExipre", defaultColunms); + table1.setPaginationType("client"); + TSite.table = table1.init(); + } + var table = new BSTable(TSite.id, "/tSite/listAll", defaultColunms); + table.setPaginationType("client"); TSite.table = table.init(); + Feng.initValidator("carInfoForm", TSite.validateFields); + var carPhoto = new $WebUpload("img"); + carPhoto.setUploadBarId("progressBar"); + carPhoto.init(); + $('#upFile').on('change', function () { + var formData = new FormData() //创建一个forData + formData.append('file', $('#upFile')[0].files[0]) //把file添加进去 name命名为img + layer.load(); //上传loading + $.ajax({ + url: Feng.ctxPath + '/mgr/uploadFile', + data: formData, + type: "POST", + async: true, + cache: false, + contentType: false, + processData: false, + success: function(res) { + layer.closeAll('loading'); //关闭loading + $('#upFile').val(''); + $('#courseVideo').val(res); + } + }) + }); }); -- Gitblit v1.7.1