预约规则

This commit is contained in:
18631081161 2025-12-21 00:32:03 +08:00
parent 8529fd1575
commit 33bb1bbd56
18 changed files with 561 additions and 22 deletions

View File

@ -0,0 +1,53 @@
'use strict';
module.exports = {
up: async (queryInterface, Sequelize) => {
await queryInterface.createTable('booking_rules', {
id: {
type: Sequelize.UUID,
defaultValue: Sequelize.UUIDV4,
primaryKey: true,
},
service_type: {
type: Sequelize.STRING(50),
allowNull: false,
unique: true,
comment: '服务类型标识',
},
rules: {
type: Sequelize.TEXT,
allowNull: true,
comment: '预约登记规则内容',
},
status: {
type: Sequelize.ENUM('active', 'inactive'),
defaultValue: 'active',
allowNull: false,
comment: '状态',
},
created_at: {
type: Sequelize.DATE,
allowNull: false,
defaultValue: Sequelize.literal('CURRENT_TIMESTAMP'),
},
updated_at: {
type: Sequelize.DATE,
allowNull: false,
defaultValue: Sequelize.literal('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'),
},
});
// 添加索引
await queryInterface.addIndex('booking_rules', ['service_type'], {
unique: true,
name: 'booking_rules_service_type_unique'
});
await queryInterface.addIndex('booking_rules', ['status'], {
name: 'booking_rules_status'
});
},
down: async (queryInterface, Sequelize) => {
await queryInterface.dropTable('booking_rules');
}
};

View File

@ -39,4 +39,14 @@ const BookingRule = sequelize.define('BookingRule', {
],
});
// 自动同步表结构
(async () => {
try {
await BookingRule.sync();
console.log('BookingRule table synced successfully');
} catch (err) {
console.error('BookingRule sync error:', err.message);
}
})();
module.exports = BookingRule;

View File

@ -11,8 +11,8 @@ var Config = Config || {}
// API 基础地址
// 注意:微信小程序开发工具无法访问localhost,需要使用本机IP地址
Config.API_BASE_URL = 'https://sub.zpc-xy.com' // 本地开发环境(使用本机IP)
// Config.API_BASE_URL = 'http://localhost:3000' // 本地开发环境(浏览器可用)
// Config.API_BASE_URL = 'https://sub.zpc-xy.com' // 本地开发环境(使用本机IP)
Config.API_BASE_URL = 'http://localhost:3000' // 本地开发环境(浏览器可用)
// Config.API_BASE_URL = 'https://your-production-domain.com' // 生产环境(待配置)
// ============================================

View File

@ -12,7 +12,12 @@
<!-- 可滚动内容区域 -->
<view class="scroll-content">
<view class="content">
<view class=""
<!-- 预约登记规则区域 -->
<view class="booking-rules-box" v-if="bookingRules">
<view class="rules-title">预约登记规则</view>
<view class="rules-content">{{ bookingRules }}</view>
</view>
<view v-else class=""
style="width: 680rpx; height: 396rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); margin-top: 32rpx; border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);">
</view>
@ -122,9 +127,11 @@
<script>
import { AppServer } from '@/modules/api/AppServer.js'
import bookingRulesMixin from '@/mixins/bookingRulesMixin.js'
const appServer = new AppServer()
export default {
mixins: [bookingRulesMixin],
data() {
return {
serviceId: "",
@ -157,6 +164,8 @@
if (options.title) {
this.serviceTitle = decodeURIComponent(options.title)
}
//
this.loadBookingRules('air_logistics')
},
methods: {
checkData() {
@ -352,4 +361,29 @@
.flash-animation {
animation: flash 0.5s ease-in-out 3;
}
/* 预约登记规则样式 */
.booking-rules-box {
width: 680rpx;
margin-top: 32rpx;
padding: 30rpx;
background-image: linear-gradient(-45deg, #60D7FF, #68BBD7);
border-radius: 20rpx;
box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);
box-sizing: border-box;
}
.rules-title {
font-size: 32rpx;
font-weight: bold;
color: #fff;
margin-bottom: 20rpx;
}
.rules-content {
font-size: 26rpx;
color: #fff;
line-height: 1.6;
white-space: pre-wrap;
}
</style>

View File

@ -12,7 +12,12 @@
<!-- 可滚动内容区域 -->
<view class="scroll-content">
<view class="content">
<view class=""
<!-- 预约登记规则区域 -->
<view class="booking-rules-box" v-if="bookingRules">
<view class="rules-title">预约登记规则</view>
<view class="rules-content">{{ bookingRules }}</view>
</view>
<view v-else class=""
style="width: 680rpx; height: 396rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); margin-top: 32rpx; border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);">
</view>
@ -147,9 +152,11 @@
<script>
import { AppServer } from '@/modules/api/AppServer.js'
import bookingRulesMixin from '@/mixins/bookingRulesMixin.js'
const appServer = new AppServer()
export default {
mixins: [bookingRulesMixin],
data() {
return {
serviceId: "",
@ -187,6 +194,8 @@
if (options.title) {
this.serviceTitle = decodeURIComponent(options.title)
}
//
this.loadBookingRules('airport_transfer')
},
methods: {
initDateRange() {
@ -475,4 +484,29 @@
min-width: 80rpx;
text-align: center;
}
/* 预约登记规则样式 */
.booking-rules-box {
width: 680rpx;
margin-top: 32rpx;
padding: 30rpx;
background-image: linear-gradient(-45deg, #60D7FF, #68BBD7);
border-radius: 20rpx;
box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);
box-sizing: border-box;
}
.rules-title {
font-size: 32rpx;
font-weight: bold;
color: #fff;
margin-bottom: 20rpx;
}
.rules-content {
font-size: 26rpx;
color: #fff;
line-height: 1.6;
white-space: pre-wrap;
}
</style>

View File

@ -200,17 +200,17 @@
'lounge': 'vip-lounge-page',
'airport_transfer': 'airport-transfer-page',
'unaccompanied_minor': 'unaccompanied-minor-page',
'rail_ticket': 'rail-ticket-page',
'medical_consultation': 'medical-consultation-page',
'train': 'rail-ticket-page',
'telemedicine': 'medical-consultation-page',
'special_passenger': 'special-needs-page',
'pet_transportation': 'pet-transportation-page',
'pet_transport': 'pet-transportation-page',
'guide_translation': 'guide-translation-page',
'visa_consultation': 'visa-consultation-page',
'exhibition_service': 'exhibition-service-page',
'visa': 'visa-consultation-page',
'exhibition': 'exhibition-service-page',
'air_logistics': 'air-logistics-page',
'sea_freight': 'sea-freight-page',
'travel_planning': 'travel-planning-page',
'insurance_consultation': 'insurance-consultation-page'
'insurance': 'insurance-consultation-page'
}
const serviceType = service.serviceType

View File

@ -12,7 +12,12 @@
<!-- 可滚动内容区域 -->
<view class="scroll-content">
<view class="content">
<view class=""
<!-- 预约登记规则区域 -->
<view class="booking-rules-box" v-if="bookingRules">
<view class="rules-title">预约登记规则</view>
<view class="rules-content">{{ bookingRules }}</view>
</view>
<view v-else class=""
style="width: 680rpx; height: 396rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); margin-top: 32rpx; border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);">
</view>
@ -105,9 +110,11 @@
<script>
import { AppServer } from '@/modules/api/AppServer.js'
import bookingRulesMixin from '@/mixins/bookingRulesMixin.js'
const appServer = new AppServer()
export default {
mixins: [bookingRulesMixin],
data() {
return {
serviceId: "",
@ -137,6 +144,8 @@
if (options.title) {
this.serviceTitle = decodeURIComponent(options.title)
}
//
this.loadBookingRules('exhibition')
},
methods: {
checkData() {
@ -311,4 +320,29 @@
.flash-animation {
animation: flash 0.5s ease-in-out 3;
}
/* 预约登记规则样式 */
.booking-rules-box {
width: 680rpx;
margin-top: 32rpx;
padding: 30rpx;
background-image: linear-gradient(-45deg, #60D7FF, #68BBD7);
border-radius: 20rpx;
box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);
box-sizing: border-box;
}
.rules-title {
font-size: 32rpx;
font-weight: bold;
color: #fff;
margin-bottom: 20rpx;
}
.rules-content {
font-size: 26rpx;
color: #fff;
line-height: 1.6;
white-space: pre-wrap;
}
</style>

View File

@ -12,7 +12,12 @@
<!-- 可滚动内容区域 -->
<view class="scroll-content">
<view class="content">
<view class=""
<!-- 预约登记规则区域 -->
<view class="booking-rules-box" v-if="bookingRules">
<view class="rules-title">预约登记规则</view>
<view class="rules-content">{{ bookingRules }}</view>
</view>
<view v-else class=""
style="width: 680rpx; height: 396rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); margin-top: 32rpx; border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);">
</view>
@ -116,9 +121,11 @@
<script>
import { AppServer } from '@/modules/api/AppServer.js'
import bookingRulesMixin from '@/mixins/bookingRulesMixin.js'
const appServer = new AppServer()
export default {
mixins: [bookingRulesMixin],
data() {
return {
serviceId: "",
@ -153,6 +160,8 @@
if (options.title) {
this.serviceTitle = decodeURIComponent(options.title)
}
//
this.loadBookingRules('guide_translation')
},
methods: {
initDateRange() {
@ -377,4 +386,29 @@
.flash-animation {
animation: flash 0.5s ease-in-out 3;
}
/* 预约登记规则样式 */
.booking-rules-box {
width: 680rpx;
margin-top: 32rpx;
padding: 30rpx;
background-image: linear-gradient(-45deg, #60D7FF, #68BBD7);
border-radius: 20rpx;
box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);
box-sizing: border-box;
}
.rules-title {
font-size: 32rpx;
font-weight: bold;
color: #fff;
margin-bottom: 20rpx;
}
.rules-content {
font-size: 26rpx;
color: #fff;
line-height: 1.6;
white-space: pre-wrap;
}
</style>

View File

@ -12,7 +12,12 @@
<!-- 可滚动内容区域 -->
<view class="scroll-content">
<view class="content">
<view class=""
<!-- 预约登记规则区域 -->
<view class="booking-rules-box" v-if="bookingRules">
<view class="rules-title">预约登记规则</view>
<view class="rules-content">{{ bookingRules }}</view>
</view>
<view v-else class=""
style="width: 680rpx; height: 396rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); margin-top: 32rpx; border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);">
</view>
@ -105,9 +110,11 @@
<script>
import { AppServer } from '@/modules/api/AppServer.js'
import bookingRulesMixin from '@/mixins/bookingRulesMixin.js'
const appServer = new AppServer()
export default {
mixins: [bookingRulesMixin],
data() {
return {
serviceId: "",
@ -137,6 +144,8 @@
if (options.title) {
this.serviceTitle = decodeURIComponent(options.title)
}
//
this.loadBookingRules('insurance')
},
methods: {
checkData() {
@ -311,4 +320,29 @@
.flash-animation {
animation: flash 0.5s ease-in-out 3;
}
/* 预约登记规则样式 */
.booking-rules-box {
width: 680rpx;
margin-top: 32rpx;
padding: 30rpx;
background-image: linear-gradient(-45deg, #60D7FF, #68BBD7);
border-radius: 20rpx;
box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);
box-sizing: border-box;
}
.rules-title {
font-size: 32rpx;
font-weight: bold;
color: #fff;
margin-bottom: 20rpx;
}
.rules-content {
font-size: 26rpx;
color: #fff;
line-height: 1.6;
white-space: pre-wrap;
}
</style>

View File

@ -12,7 +12,12 @@
<!-- 可滚动内容区域 -->
<view class="scroll-content">
<view class="content">
<view class=""
<!-- 预约登记规则区域 -->
<view class="booking-rules-box" v-if="bookingRules">
<view class="rules-title">预约登记规则</view>
<view class="rules-content">{{ bookingRules }}</view>
</view>
<view v-else class=""
style="width: 680rpx; height: 396rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); margin-top: 32rpx; border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);">
</view>
@ -139,9 +144,11 @@
<script>
import { AppServer } from '@/modules/api/AppServer.js'
import bookingRulesMixin from '@/mixins/bookingRulesMixin.js'
const appServer = new AppServer()
export default {
mixins: [bookingRulesMixin],
data() {
return {
serviceId: "",
@ -178,6 +185,8 @@
if (options.title) {
this.serviceTitle = decodeURIComponent(options.title)
}
//
this.loadBookingRules('telemedicine')
},
methods: {
initDateRange() {
@ -416,4 +425,29 @@
.flash-animation {
animation: flash 0.5s ease-in-out 3;
}
/* 预约登记规则样式 */
.booking-rules-box {
width: 680rpx;
margin-top: 32rpx;
padding: 30rpx;
background-image: linear-gradient(-45deg, #60D7FF, #68BBD7);
border-radius: 20rpx;
box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);
box-sizing: border-box;
}
.rules-title {
font-size: 32rpx;
font-weight: bold;
color: #fff;
margin-bottom: 20rpx;
}
.rules-content {
font-size: 26rpx;
color: #fff;
line-height: 1.6;
white-space: pre-wrap;
}
</style>

View File

@ -12,7 +12,12 @@
<!-- 可滚动内容区域 -->
<view class="scroll-content">
<view class="content">
<view class=""
<!-- 预约登记规则区域 -->
<view class="booking-rules-box" v-if="bookingRules">
<view class="rules-title">预约登记规则</view>
<view class="rules-content">{{ bookingRules }}</view>
</view>
<view v-else class=""
style="width: 680rpx; height: 396rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); margin-top: 32rpx; border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);">
</view>
@ -165,9 +170,11 @@
<script>
import { AppServer } from '@/modules/api/AppServer.js'
import bookingRulesMixin from '@/mixins/bookingRulesMixin.js'
const appServer = new AppServer()
export default {
mixins: [bookingRulesMixin],
data() {
return {
serviceId: "",
@ -226,6 +233,8 @@
if (options.title) {
this.serviceTitle = decodeURIComponent(options.title)
}
//
this.loadBookingRules('pet_transport')
},
methods: {
initDateRange() {
@ -485,4 +494,29 @@
.flash-animation {
animation: flash 0.5s ease-in-out 3;
}
/* 预约登记规则样式 */
.booking-rules-box {
width: 680rpx;
margin-top: 32rpx;
padding: 30rpx;
background-image: linear-gradient(-45deg, #60D7FF, #68BBD7);
border-radius: 20rpx;
box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);
box-sizing: border-box;
}
.rules-title {
font-size: 32rpx;
font-weight: bold;
color: #fff;
margin-bottom: 20rpx;
}
.rules-content {
font-size: 26rpx;
color: #fff;
line-height: 1.6;
white-space: pre-wrap;
}
</style>

View File

@ -12,7 +12,12 @@
<!-- 可滚动内容区域 -->
<view class="scroll-content">
<view class="content">
<view class=""
<!-- 预约登记规则区域 -->
<view class="booking-rules-box" v-if="bookingRules">
<view class="rules-title">预约登记规则</view>
<view class="rules-content">{{ bookingRules }}</view>
</view>
<view v-else class=""
style="width: 680rpx; height: 396rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); margin-top: 32rpx; border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);">
</view>
@ -160,9 +165,11 @@
<script>
import { AppServer } from '@/modules/api/AppServer.js'
import bookingRulesMixin from '@/mixins/bookingRulesMixin.js'
const appServer = new AppServer()
export default {
mixins: [bookingRulesMixin],
data() {
return {
serviceId: "",
@ -223,6 +230,8 @@
if (options.title) {
this.serviceTitle = decodeURIComponent(options.title)
}
//
this.loadBookingRules('train')
},
methods: {
initDateRange() {
@ -528,4 +537,29 @@
min-width: 80rpx;
text-align: center;
}
/* 预约登记规则样式 */
.booking-rules-box {
width: 680rpx;
margin-top: 32rpx;
padding: 30rpx;
background-image: linear-gradient(-45deg, #60D7FF, #68BBD7);
border-radius: 20rpx;
box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);
box-sizing: border-box;
}
.rules-title {
font-size: 32rpx;
font-weight: bold;
color: #fff;
margin-bottom: 20rpx;
}
.rules-content {
font-size: 26rpx;
color: #fff;
line-height: 1.6;
white-space: pre-wrap;
}
</style>

View File

@ -12,7 +12,12 @@
<!-- 可滚动内容区域 -->
<view class="scroll-content">
<view class="content">
<view class=""
<!-- 预约登记规则区域 -->
<view class="booking-rules-box" v-if="bookingRules">
<view class="rules-title">预约登记规则</view>
<view class="rules-content">{{ bookingRules }}</view>
</view>
<view v-else class=""
style="width: 680rpx; height: 396rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); margin-top: 32rpx; border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);">
</view>
@ -122,9 +127,11 @@
<script>
import { AppServer } from '@/modules/api/AppServer.js'
import bookingRulesMixin from '@/mixins/bookingRulesMixin.js'
const appServer = new AppServer()
export default {
mixins: [bookingRulesMixin],
data() {
return {
serviceId: "",
@ -157,6 +164,8 @@
if (options.title) {
this.serviceTitle = decodeURIComponent(options.title)
}
//
this.loadBookingRules('sea_freight')
},
methods: {
checkData() {
@ -352,4 +361,29 @@
.flash-animation {
animation: flash 0.5s ease-in-out 3;
}
/* 预约登记规则样式 */
.booking-rules-box {
width: 680rpx;
margin-top: 32rpx;
padding: 30rpx;
background-image: linear-gradient(-45deg, #60D7FF, #68BBD7);
border-radius: 20rpx;
box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);
box-sizing: border-box;
}
.rules-title {
font-size: 32rpx;
font-weight: bold;
color: #fff;
margin-bottom: 20rpx;
}
.rules-content {
font-size: 26rpx;
color: #fff;
line-height: 1.6;
white-space: pre-wrap;
}
</style>

View File

@ -12,7 +12,12 @@
<!-- 可滚动内容区域 -->
<view class="scroll-content">
<view class="content">
<view class=""
<!-- 预约登记规则区域 -->
<view class="booking-rules-box" v-if="bookingRules">
<view class="rules-title">预约登记规则</view>
<view class="rules-content">{{ bookingRules }}</view>
</view>
<view v-else class=""
style="width: 680rpx; height: 396rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); margin-top: 32rpx; border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);">
</view>
@ -131,9 +136,11 @@
<script>
import { AppServer } from '@/modules/api/AppServer.js'
import bookingRulesMixin from '@/mixins/bookingRulesMixin.js'
const appServer = new AppServer()
export default {
mixins: [bookingRulesMixin],
data() {
return {
serviceId: "",
@ -169,6 +176,8 @@
if (options.title) {
this.serviceTitle = decodeURIComponent(options.title)
}
//
this.loadBookingRules('special_passenger')
},
methods: {
initDateRange() {
@ -400,4 +409,29 @@
.flash-animation {
animation: flash 0.5s ease-in-out 3;
}
/* 预约登记规则样式 */
.booking-rules-box {
width: 680rpx;
margin-top: 32rpx;
padding: 30rpx;
background-image: linear-gradient(-45deg, #60D7FF, #68BBD7);
border-radius: 20rpx;
box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);
box-sizing: border-box;
}
.rules-title {
font-size: 32rpx;
font-weight: bold;
color: #fff;
margin-bottom: 20rpx;
}
.rules-content {
font-size: 26rpx;
color: #fff;
line-height: 1.6;
white-space: pre-wrap;
}
</style>

View File

@ -12,7 +12,12 @@
<!-- 可滚动内容区域 -->
<view class="scroll-content">
<view class="content">
<view class=""
<!-- 预约登记规则区域 -->
<view class="booking-rules-box" v-if="bookingRules">
<view class="rules-title">预约登记规则</view>
<view class="rules-content">{{ bookingRules }}</view>
</view>
<view v-else class=""
style="width: 680rpx; height: 396rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); margin-top: 32rpx; border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);">
</view>
@ -190,9 +195,11 @@
<script>
import { AppServer } from '@/modules/api/AppServer.js'
import bookingRulesMixin from '@/mixins/bookingRulesMixin.js'
const appServer = new AppServer()
export default {
mixins: [bookingRulesMixin],
data() {
return {
serviceId: "",
@ -232,6 +239,8 @@
if (options.title) {
this.serviceTitle = decodeURIComponent(options.title)
}
//
this.loadBookingRules('travel_planning')
},
methods: {
initDateRange() {
@ -555,4 +564,29 @@
min-width: 80rpx;
text-align: center;
}
/* 预约登记规则样式 */
.booking-rules-box {
width: 680rpx;
margin-top: 32rpx;
padding: 30rpx;
background-image: linear-gradient(-45deg, #60D7FF, #68BBD7);
border-radius: 20rpx;
box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);
box-sizing: border-box;
}
.rules-title {
font-size: 32rpx;
font-weight: bold;
color: #fff;
margin-bottom: 20rpx;
}
.rules-content {
font-size: 26rpx;
color: #fff;
line-height: 1.6;
white-space: pre-wrap;
}
</style>

View File

@ -12,7 +12,12 @@
<!-- 可滚动内容区域 -->
<view class="scroll-content">
<view class="content">
<view class=""
<!-- 预约登记规则区域 -->
<view class="booking-rules-box" v-if="bookingRules">
<view class="rules-title">预约登记规则</view>
<view class="rules-content">{{ bookingRules }}</view>
</view>
<view v-else class=""
style="width: 680rpx; height: 396rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); margin-top: 32rpx; border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);">
</view>
@ -165,9 +170,11 @@
<script>
import { AppServer } from '@/modules/api/AppServer.js'
import bookingRulesMixin from '@/mixins/bookingRulesMixin.js'
const appServer = new AppServer()
export default {
mixins: [bookingRulesMixin],
data() {
return {
serviceId: "",
@ -205,6 +212,8 @@
if (options.title) {
this.serviceTitle = decodeURIComponent(options.title)
}
//
this.loadBookingRules('unaccompanied_minor')
},
methods: {
initDateRange() {
@ -516,4 +525,29 @@
min-width: 80rpx;
text-align: center;
}
/* 预约登记规则样式 */
.booking-rules-box {
width: 680rpx;
margin-top: 32rpx;
padding: 30rpx;
background-image: linear-gradient(-45deg, #60D7FF, #68BBD7);
border-radius: 20rpx;
box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);
box-sizing: border-box;
}
.rules-title {
font-size: 32rpx;
font-weight: bold;
color: #fff;
margin-bottom: 20rpx;
}
.rules-content {
font-size: 26rpx;
color: #fff;
line-height: 1.6;
white-space: pre-wrap;
}
</style>

View File

@ -12,7 +12,12 @@
<!-- 可滚动内容区域 -->
<view class="scroll-content">
<view class="content">
<view class=""
<!-- 预约登记规则区域 -->
<view class="booking-rules-box" v-if="bookingRules">
<view class="rules-title">预约登记规则</view>
<view class="rules-content">{{ bookingRules }}</view>
</view>
<view v-else class=""
style="width: 680rpx; height: 396rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); margin-top: 32rpx; border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);">
</view>
@ -170,9 +175,11 @@
<script>
import { AppServer } from '@/modules/api/AppServer.js'
import bookingRulesMixin from '@/mixins/bookingRulesMixin.js'
const appServer = new AppServer()
export default {
mixins: [bookingRulesMixin],
data() {
return {
serviceId: "",
@ -211,6 +218,8 @@
if (options.title) {
this.serviceTitle = decodeURIComponent(options.title)
}
//
this.loadBookingRules('lounge')
},
methods: {
initDateRange() {
@ -517,4 +526,29 @@
min-width: 80rpx;
text-align: center;
}
/* 预约登记规则样式 */
.booking-rules-box {
width: 680rpx;
margin-top: 32rpx;
padding: 30rpx;
background-image: linear-gradient(-45deg, #60D7FF, #68BBD7);
border-radius: 20rpx;
box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);
box-sizing: border-box;
}
.rules-title {
font-size: 32rpx;
font-weight: bold;
color: #fff;
margin-bottom: 20rpx;
}
.rules-content {
font-size: 26rpx;
color: #fff;
line-height: 1.6;
white-space: pre-wrap;
}
</style>

View File

@ -12,7 +12,12 @@
<!-- 可滚动内容区域 -->
<view class="scroll-content">
<view class="content">
<view class=""
<!-- 预约登记规则区域 -->
<view class="booking-rules-box" v-if="bookingRules">
<view class="rules-title">预约登记规则</view>
<view class="rules-content">{{ bookingRules }}</view>
</view>
<view v-else class=""
style="width: 680rpx; height: 396rpx; background-image: linear-gradient(-45deg, #60D7FF, #68BBD7); margin-top: 32rpx; border-radius: 20rpx; box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);">
</view>
@ -105,9 +110,11 @@
<script>
import { AppServer } from '@/modules/api/AppServer.js'
import bookingRulesMixin from '@/mixins/bookingRulesMixin.js'
const appServer = new AppServer()
export default {
mixins: [bookingRulesMixin],
data() {
return {
serviceId: "",
@ -137,6 +144,8 @@
if (options.title) {
this.serviceTitle = decodeURIComponent(options.title)
}
//
this.loadBookingRules('visa')
},
methods: {
checkData() {
@ -311,4 +320,29 @@
.flash-animation {
animation: flash 0.5s ease-in-out 3;
}
/* 预约登记规则样式 */
.booking-rules-box {
width: 680rpx;
margin-top: 32rpx;
padding: 30rpx;
background-image: linear-gradient(-45deg, #60D7FF, #68BBD7);
border-radius: 20rpx;
box-shadow: 0 0 10rpx 10rpx rgba(0, 0, 0, 0.1);
box-sizing: border-box;
}
.rules-title {
font-size: 32rpx;
font-weight: bold;
color: #fff;
margin-bottom: 20rpx;
}
.rules-content {
font-size: 26rpx;
color: #fff;
line-height: 1.6;
white-space: pre-wrap;
}
</style>