(function (vc) { vc.extends({ propTypes: { callBackListener: vc.propTypes.string, //父组件名称 callBackFunction: vc.propTypes.string //父组件监听方法 }, data: { addCommunitySpaceInfo: { spaceId: '', name: '', startTime: '00:00', endTime: '23:59', adminName: '', tel: '', state: '', bookingType: '', venueId: '', // 是否按天定义收费 pricingByDay: 'N', // 统一收费标准(不按天定义收费时使用) uniformFullPrice: 0, uniformHalfPrice: 0, // 按天定义收费标准(按天定义收费时使用) dayPricing: [ { day: 'MONDAY', dayName: '周一', fullPrice: 0, halfPrice: 0 }, { day: 'TUESDAY', dayName: '周二', fullPrice: 0, halfPrice: 0 }, { day: 'WEDNESDAY', dayName: '周三', fullPrice: 0, halfPrice: 0 }, { day: 'THURSDAY', dayName: '周四', fullPrice: 0, halfPrice: 0 }, { day: 'FRIDAY', dayName: '周五', fullPrice: 0, halfPrice: 0 }, { day: 'SATURDAY', dayName: '周六', fullPrice: 0, halfPrice: 0 }, { day: 'SUNDAY', dayName: '周日', fullPrice: 0, halfPrice: 0 } ], // 价格规则相关字段 priceType: 'HOUR', basePrice: 0, specialPrices: [], timePrices: [] } }, _initMethod: function () { //addSpaceStartTime // vc.initHourMinute('addSpaceStartTime', function(_value) { // $that.addCommunitySpaceInfo.startTime = _value; // }); // vc.initHourMinute('addSpaceEndTime', function(_value) { // $that.addCommunitySpaceInfo.endTime = _value; // }); }, _initEvent: function () { vc.on('addCommunitySpace', 'openAddCommunitySpaceModal', function (_param) { $that.addCommunitySpaceInfo.venueId = _param.venueId; $('#addCommunitySpaceModel').modal('show'); }); }, methods: { addCommunitySpaceValidate() { return vc.validate.validate({ addCommunitySpaceInfo: vc.component.addCommunitySpaceInfo }, { 'addCommunitySpaceInfo.name': [ { limit: "required", param: "", errInfo: "名称不能为空" }, { limit: "maxLength", param: "50", errInfo: "名称不能超过50" } ], 'addCommunitySpaceInfo.startTime': [ { limit: "required", param: "", errInfo: "预约开始时间不能为空" }, { limit: "maxLength", param: "64", errInfo: "预约开始时间不能超过64" } ], 'addCommunitySpaceInfo.endTime': [ { limit: "required", param: "", errInfo: "预约结束时间不能为空" }, { limit: "maxLength", param: "64", errInfo: "预约结束时间不能超过64" } ], 'addCommunitySpaceInfo.adminName': [ { limit: "required", param: "", errInfo: "管理员不能为空" }, { limit: "maxLength", param: "64", errInfo: "管理员不能超过64" } ], 'addCommunitySpaceInfo.tel': [ { limit: "required", param: "", errInfo: "管理员电话不能为空" }, { limit: "maxLength", param: "11", errInfo: "管理员电话不能超过11" } ], 'addCommunitySpaceInfo.bookingType': [ { limit: "required", param: "", errInfo: "预约类型不能为空" }, { limit: "maxLength", param: "12", errInfo: "预约类型不能超过12" } ], 'addCommunitySpaceInfo.state': [ { limit: "required", param: "", errInfo: "状态不能为空" }, { limit: "maxLength", param: "12", errInfo: "状态不能超过12" } ] }); }, saveCommunitySpaceInfo: function () { if (!vc.component.addCommunitySpaceValidate()) { vc.toast(vc.validate.errInfo); return; } // 根据预约类型设置默认值 if ($that.addCommunitySpaceInfo.bookingType === 'Full') { // 全场预约 console.log('全场预约'); } else if ($that.addCommunitySpaceInfo.bookingType === 'Half') { // 半场预约 console.log('半场预约'); } vc.component.addCommunitySpaceInfo.communityId = vc.getCurrentCommunity().communityId; // 设置价格规则 if ($that.addCommunitySpaceInfo.pricingByDay === 'Y') { //按天收费 $that.addCommunitySpaceInfo.priceRule = { type: '1001', communityId: vc.getCurrentCommunity().communityId, feeFlag: '2002' }; } else { //统一收费 $that.addCommunitySpaceInfo.priceRule = { type: '1002', communityId: vc.getCurrentCommunity().communityId, feeFlag: '2002' }; } //不提交数据将数据 回调给侦听处理 if (vc.notNull($props.callBackListener)) { vc.emit($props.callBackListener, $props.callBackFunction, vc.component.addCommunitySpaceInfo); $('#addCommunitySpaceModel').modal('hide'); return; } vc.http.apiPost( '/communitySpace.saveCommunitySpace', JSON.stringify(vc.component.addCommunitySpaceInfo), { emulateJSON: true }, function (json, res) { //vm.menus = vm.refreshMenuActive(JSON.parse(json),0); let _json = JSON.parse(json); if (_json.code == 0) { // 获取保存后的spaceId let spaceId = _json.data.spaceId; $that.addCommunitySpaceInfo.spaceId = spaceId; // 保存价格规则 $that._savePriceRule(); //关闭model $('#addCommunitySpaceModel').modal('hide'); vc.component.clearAddCommunitySpaceInfo(); vc.emit('communitySpaceManage', 'listCommunitySpace', {}); vc.toast("添加成功"); return; } else { vc.toast(_json.msg); } }, function (errInfo, error) { console.log('请求失败处理'); vc.message(errInfo); }); }, clearAddCommunitySpaceInfo: function () { vc.component.addCommunitySpaceInfo = { name: '', startTime: '00:00', endTime: '23:59', adminName: '', tel: '', state: '', bookingType: '', venueId: '', // 是否按天定义收费 pricingByDay: 'N', // 统一收费标准(不按天定义收费时使用) uniformFullPrice: 0, uniformHalfPrice: 0, // 按天定义收费标准(按天定义收费时使用) dayPricing: [ { day: 'MONDAY', dayName: '周一', fullPrice: 0, halfPrice: 0 }, { day: 'TUESDAY', dayName: '周二', fullPrice: 0, halfPrice: 0 }, { day: 'WEDNESDAY', dayName: '周三', fullPrice: 0, halfPrice: 0 }, { day: 'THURSDAY', dayName: '周四', fullPrice: 0, halfPrice: 0 }, { day: 'FRIDAY', dayName: '周五', fullPrice: 0, halfPrice: 0 }, { day: 'SATURDAY', dayName: '周六', fullPrice: 0, halfPrice: 0 }, { day: 'SUNDAY', dayName: '周日', fullPrice: 0, halfPrice: 0 } ], }; }, /** * 预约类型变更事件处理 */ _changeBookingType: function () { console.log('预约类型变更为:', $that.addCommunitySpaceInfo.bookingType); }, _changePricingByDay: function () { // 是否按天定义收费变化时的处理逻辑 console.log('是否按天定义收费变更为:', $that.addCommunitySpaceInfo.pricingByDay); }, _savePriceRule: function () { // 构建保存数据 let _saveData = { spaceId: $that.addCommunitySpaceInfo.spaceId, venueId: $that.addCommunitySpaceInfo.venueId, rules: [] }; // 根据是否按天定义收费添加不同的价格规则 if ($that.addCommunitySpaceInfo.pricingByDay === 'Y') { // 按天定义收费,添加每日价格规则 $that.addCommunitySpaceInfo.dayPricing.forEach(item => { // 添加全场每日价格规则 _saveData.rules.push({ ruleType: 'DAY_PRICING_FULL', day: item.day, price: item.fullPrice }); // 添加半场每日价格规则 _saveData.rules.push({ ruleType: 'DAY_PRICING_HALF', day: item.day, price: item.halfPrice }); }); } else { // 不按天定义收费,添加统一价格规则 _saveData.rules.push({ ruleType: 'UNIFORM_PRICING_FULL', price: $that.addCommunitySpaceInfo.uniformFullPrice }); _saveData.rules.push({ ruleType: 'UNIFORM_PRICING_HALF', price: $that.addCommunitySpaceInfo.uniformHalfPrice }); } // 保存价格规则 vc.http.apiPost( '/communitySpacePriceRule.saveCommunitySpacePriceRules', JSON.stringify(_saveData), { emulateJSON: true }, function (json, res) { let _json = JSON.parse(json); if (_json.code == 0) { vc.toast("价格规则保存成功"); return; } else { vc.toast(_json.msg); } }, function (errInfo, error) { console.log('请求失败处理'); vc.message(errInfo); }); } } }); })(window.vc);