327 lines
13 KiB
JavaScript
327 lines
13 KiB
JavaScript
(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); |