diff --git a/src/assets/service/select.png b/src/assets/service/select.png new file mode 100644 index 0000000..2f49b44 Binary files /dev/null and b/src/assets/service/select.png differ diff --git a/src/common/validateIdent.js b/src/common/validateIdent.js new file mode 100644 index 0000000..0d3eef5 --- /dev/null +++ b/src/common/validateIdent.js @@ -0,0 +1,159 @@ +const validateIdent = { + aIdentityCode_City: { // 城市代码列表 + 11: "北京", + 12: "天津", + 13: "河北", + 14: "山西", + 15: "内蒙古", + 21: "辽宁", + 22: "吉林", + 23: "黑龙江 ", + 31: "上海", + 32: "江苏", + 33: "浙江", + 34: "安徽", + 35: "福建", + 36: "江西", + 37: "山东", + 41: "河南", + 42: "湖北 ", + 43: "湖南", + 44: "广东", + 45: "广西", + 46: "海南", + 50: "重庆", + 51: "四川", + 52: "贵州", + 53: "云南", + 54: "西藏 ", + 61: "陕西", + 62: "甘肃", + 63: "青海", + 64: "宁夏", + 65: "新疆", + 71: "台湾", + 81: "香港", + 82: "澳门", + 91: "国外 " + }, + IdentityCode_isCardNo(card) { //检查号码是否符合规范,包括长度,类型 + var reg = /(^\d{15}$)|(^\d{17}(\d|X)$)/; //身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X + if (reg.test(card) === false) { + return false; + } + return true; + }, + IdentityCode_checkProvince(card) { //取身份证前两位,校验省份 + var province = card.substr(0, 2); + if (validateIdent.aIdentityCode_City[province] == undefined) { + return false; + } + return true; + }, + IdentityCode_checkBirthday(card) { //检查生日是否正确,15位以'19'年份来进行补齐。 + var len = card.length; + //身份证15位时,次序为省(3位)市(3位)年(2位)月(2位)日(2位)校验位(3位),皆为数字 + if (len == '15') { + var re_fifteen = /^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/; + var arr_data = card.match(re_fifteen); // 正则取号码内所含出年月日数据 + var year = arr_data[2]; + var month = arr_data[3]; + var day = arr_data[4]; + var birthday = new Date('19' + year + '/' + month + '/' + day); + return validateIdent.IdentityCode_verifyBirthday('19' + year, month, day, birthday); + } + //身份证18位时,次序为省(3位)市(3位)年(4位)月(2位)日(2位)校验位(4位),校验位末尾可能为X + if (len == '18') { + var re_eighteen = /^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/; + var arr_data = card.match(re_eighteen); // 正则取号码内所含出年月日数据 + var year = arr_data[2]; + var month = arr_data[3]; + var day = arr_data[4]; + var birthday = new Date(year + '/' + month + '/' + day); + return validateIdent.IdentityCode_verifyBirthday(year, month, day, birthday); + } + return false; + }, + IdentityCode_verifyBirthday(year, month, day, birthday) { //校验日期 ,15位以'19'年份来进行补齐。 + var now = new Date(); + var now_year = now.getFullYear(); + //年月日是否合理 + if (birthday.getFullYear() == year && + (birthday.getMonth() + 1) == month && + birthday.getDate() == day) { + //判断年份的范围(3岁到150岁之间) + var time = now_year - year; + if (time >= 3 && time <= 150) { + return true; + } + return false; + } + return false; + }, + IdentityCode_checkParity(card) { //校验位的检测 + card = validateIdent.IdentityCode_changeFivteenToEighteen(card); // 15位转18位 + var len = card.length; + if (len == '18') { + var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); + var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); + var cardTemp = 0, + i, valnum; + for (i = 0; i < 17; i++) { + cardTemp += card.substr(i, 1) * arrInt[i]; + } + valnum = arrCh[cardTemp % 11]; + if (valnum == card.substr(17, 1)) { + return true; + } + return false; + } + return false; + }, + IdentityCode_changeFivteenToEighteen(card) { //15位转18位身份证号 + if (card.length == '15') { + var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); + var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); + var cardTemp = 0, + i; + card = card.substr(0, 6) + '19' + card.substr(6, card.length - 6); + for (i = 0; i < 17; i++) { + cardTemp += card.substr(i, 1) * arrInt[i]; + } + card += arrCh[cardTemp % 11]; + return card; + } + return card; + }, + IdentityCodeValid(card) { // 身份证号码检验主入口 + let pass = true; + let sex = '' + //是否为空 + if (pass && card === '') + pass = false; + //校验长度,类型 + if (pass && validateIdent.IdentityCode_isCardNo(card) === false) + pass = false; + //检查省份 + if (pass && validateIdent.IdentityCode_checkProvince(card) === false) + pass = false; + //校验生日 + if (pass && validateIdent.IdentityCode_checkBirthday(card) === false) + pass = false; + //检验位的检测 + if (pass && validateIdent.IdentityCode_checkParity(card) === false) + pass = false; + if (pass) { + var iCard = validateIdent.IdentityCode_changeFivteenToEighteen(card); + if (parseInt(iCard.charAt(16)) % 2 == 0) { + sex = "0"; // 女生 + } else { + sex = "1"; // 男生 + } + return true + } else { + return false + } + } +} + +export default validateIdent.IdentityCodeValid //导出 \ No newline at end of file diff --git a/src/router/index.js b/src/router/index.js index c1be8e4..4e2944d 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -1,6 +1,7 @@ import Vue from 'vue' import VueRouter from 'vue-router' import Home from '@/views/Home/Home.vue' +import HomeUserInfo from '@/views/Home/HomeUserInfo.vue' import ServiceAbroadDetail from '@/views/Service/AbroadDetail.vue' import ServiceAbroadEvaluate from '@/views/Service/AbroadEvaluate.vue' @@ -55,7 +56,14 @@ const routes = [{ title: '红色网上游' } }, - + { + path: '/home_user_info', + name: 'HomeUserInfo', + component: HomeUserInfo, + meta: { + title: '红色网上游' + } + }, { path: '/abroad_detail', name: 'ServiceAbroadDetail', diff --git a/src/views/Home/Home.vue b/src/views/Home/Home.vue index 5695ba8..ffda249 100644 --- a/src/views/Home/Home.vue +++ b/src/views/Home/Home.vue @@ -17,18 +17,6 @@
-
@@ -36,6 +24,13 @@
+
+
+ + 个人信息 +
+ +
@@ -122,6 +117,10 @@ export default { handleMyCard () { this.$router.push({ name: 'CardBoxXST' }) }, + // 个人信息 + handleMyInfo () { + this.$router.push({ name: 'HomeUserInfo' }) + }, // 合伙人中心 handlePartner () { this.$toast('暂未开放,敬请期待!'); @@ -164,7 +163,7 @@ export default { } }, // 获取用户信息 - getUserInfo: function () { + getUserInfo () { this.mgop({ api: 'mgop.sz.hswsy.getPortalUserByNum', // 必须 host: 'https://mapi.zjzwfw.gov.cn/', @@ -196,7 +195,6 @@ export default { } } this.showChildList = true - }, onFail: err => { console.log('err', err) @@ -220,6 +218,7 @@ export default { //集团回调关闭页面 closeJT () { this.showSchool = false + this.getUserInfo() }, //查看是否有集团认证 getRZ () { diff --git a/src/views/Home/HomeUserInfo.vue b/src/views/Home/HomeUserInfo.vue new file mode 100644 index 0000000..1e58458 --- /dev/null +++ b/src/views/Home/HomeUserInfo.vue @@ -0,0 +1,90 @@ + + + \ No newline at end of file diff --git a/src/views/Service/AbroadDetail.scss b/src/views/Service/AbroadDetail.scss new file mode 100644 index 0000000..7d7cef6 --- /dev/null +++ b/src/views/Service/AbroadDetail.scss @@ -0,0 +1,731 @@ +.abroad_detail { + padding-bottom: 200px; + .header { + img { + width: 100%; + } + } + .countDown { + height: 130px; + width: 100%; + background-color: #201e2b; + .countDownTop { + height: 50%; + padding: 0 3vw; + box-sizing: border-box; + display: flex; + justify-content: space-between; + align-items: center; + color: #ffffff; + font-size: 32px; + .countDownTime { + font-size: 24px; + .countDownFont { + line-height: 34px; + color: #333333; + border-radius: 5px; + margin: 0 8px; + } + div { + width: 34px; + text-align: center; + display: inline-block; + background-color: #ffe9b1; + } + } + } + .countDownBottom { + height: 50%; + padding: 0 3vw; + box-sizing: border-box; + display: flex; + justify-content: space-between; + align-items: center; + color: #ffffff; + font-size: 24px; + .countDownBottomyellow { + display: inline-block; + height: 33px; + margin-right: 12px; + padding: 0 8px; + color: #333333; + font-size: 24px; + background-color: #ffe9b1; + border-radius: 4px; + } + .countDownBottomTime { + font-size: 2.8vw; + color: #ffffff; + opacity: 0.85; + } + .countDownAbout { + text-decoration: underline; + } + } + } + .uni_text { + width: 100%; + background: #fff; + padding: 24px 34px; + box-sizing: border-box; + .course_price { + font-size: 38px; + font-weight: bold; + color: red; + .redmini { + font-size: 25px; + } + .tint { + font-size: 25px; + font-weight: normal; + color: #909399; + margin-left: 2vw; + text-decoration: line-through; + } + } + .course_price_free { + font-size: 34px; + font-weight: bold; + color: red; + display: flex; + justify-content: space-between; + .des { + color: #333; + } + } + .course_coupons { + height: 70px; + font-size: 27px; + // color: #4092FF; + display: flex; + justify-content: space-between; + align-items: center; + .fontBlue { + color: #4092ff; + } + } + .course_name { + font-size: 34px; + font-weight: bold; + } + .course_info { + font-size: 24px; + color: #999; + margin-top: 16px; + } + .address { + font-size: 24px; + color: #999; + margin-top: 16px; + .icon { + color: #000; + } + } + .rate { + margin-top: 20px; + display: flex; + justify-content: space-between; + div>span { + font-size: 30px; + color: #ffcc00; + margin-left: 30px; + } + >span { + font-size: 26px; + } + } + .tag_box { + padding-top: 10px; + .tag { + display: inline-block; + margin-top: 10px; + margin-right: 12px; + color: #4092ff; + font-size: 24px; + border-radius: 8px; + border: 2px solid #4092ff; + padding: 2px 10px; + } + } + } + .custom_made { + height: 56px; + display: flex; + align-items: center; + justify-content: space-between; + padding: 0 24px; + box-sizing: border-box; + background: #4D9EFF; + font-size: 28px; + color: #fff; + p { + width: 610px; + } + } + .package { + padding: 18px 22px; + .package_title { + font-size: 28px; + color: #999; + } + .package_box { + display: flex; + white-space: nowrap; + margin-top: 22px; + .package_item { + position: relative; + width: 128px; + height: 152px; + border-radius: 12px; + border: 2px solid #dde3ef; + box-sizing: border-box; + display: inline-flex; + align-content: center; + justify-content: center; + flex-wrap: wrap; + vertical-align: top; + margin-right: 16px; + flex-shrink: 0; + &.active { + border-color: #3F92FF; + .select { + display: block; + } + } + p { + width: 100%; + margin: 0; + text-align: center; + } + .more_icon { + width: 36px; + margin-top: 10px; + } + .more_text { + font-size: 22px; + color: #fff; + margin-top: 22px; + } + .date { + font-size: 32px; + font-weight: bold; + } + .week { + font-size: 22px; + color: #999; + } + .price { + font-size: 28px; + color: #ff2b2b; + margin-top: 14px; + span { + font-size: 20px; + } + } + .index { + margin-right: 10px; + font-size: 26px; + font-weight: bold; + color: #333; + } + .name { + margin-top: 8px; + font-size: 26px; + white-space: nowrap; + } + .select { + display: none; + position: absolute; + bottom: 0; + right: 0; + width: 46px; + height: 48px; + } + } + .package_item_more { + background: #3f92ff; + border: 2px solid #3f92ff; + box-shadow: 6px 12px 16px 0px rgba(63, 146, 255, 0.29); + margin-right: 0; + } + .package_item_type { + width: auto; + height: 118px; + padding: 0 34px; + .price { + margin-top: 0; + } + } + } + .package_des { + margin-top: 28px; + font-size: 26px; + line-height: 40px; + color: #A9A9AA; + } + } + .notime { + width: 100%; + } + .content_box { + position: relative; + .content_all { + overflow: hidden; + height: 580px; + // font-size: 26px; + // line-height: 36px; + font-size: 31px !important; + line-height: 40px !important; + letter-spacing: 1.6px; + color: #666; + // padding-bottom: 130px; + img { + width: 100%; + } + } + /* 展开 */ + .open { + height: auto; + } + .extend_wrap { + display: flex; + align-items: center; + justify-content: center; + font-size: 26px; + padding: 40px 0; + color: #4092ff; + margin-top: -40px; + background: linear-gradient(180deg, rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0.8) 30%, rgba(255, 255, 255, 1) 100%); + width: 100%; + position: absolute; + bottom: 0; + left: 0; + } + } + .tag_item { + padding: 22px; + .tag_title { + font-size: 34px; + font-weight: bold; + margin-bottom: 32px; + } + .tag_text { + // font-size: 24px; + // line-height: 40px; + font-size: 28px !important; + line-height: 44px !important; + padding: 16px 0; + } + } + .cardCont { + // font-size: 24px; + font-size: 28px !important; + table { + border-radius: 5px; + width: 100%; + border: 1px solid #dde3ef; + td { + border: 1px solid #dde3ef; + text-align: center; + background: rgb(245, 246, 250); + } + .td_left { + width: 132px; + background: #fff; + box-sizing: border-box; + } + } + } + .courseContent { + li:not(:last-child) { + border-bottom: 1px solid #eee; + } + li:first-child { + .left { + color: #fa9b00; + border: 1px solid #fa9b00; + background-color: #fef4d9; + } + } + li:nth-child(3n + 1) { + .left { + color: #fa9b00; + border: 1px solid #fa9b00; + background-color: #fef4d9; + } + } + li:nth-child(3n-1) { + .left { + color: #fa008c; + border: 1px solid #fa008c; + background-color: #ffeffc; + } + } + li:nth-child(3n) { + .left { + color: #0076fa; + border: 1px solid #0076fa; + background-color: #efffff; + } + } + li { + position: relative; + margin-top: 20px; + padding-bottom: 10px; + .left { + position: absolute; + top: 0; + left: 0; + width: 120px; + font-size: 26px; + text-align: center; + border-radius: 3px; + padding: 3px; + box-sizing: border-box; + font-weight: 600; + } + h3 { + color: #202228; + // font-size: 32px; + font-size: 30px !important; + font-weight: 400; + margin: 0; + padding-left: 160px; + word-break: break-all; + } + .item { + margin-top: 10px; + img { + width: 100%; + } + p { + margin: 0; + margin-top: 10px; + color: #a7a7aa; + // font-size: 28px; + font-size: 31px !important; + b { + // font-size: 32px; + font-size: 35px !important; + font-weight: 400; + color: #000000; + margin-right: 10px; + } + span { + // font-size: 24px; + font-size: 27px !important; + } + } + } + } + } + .base { + padding: 28px 24px; + img { + width: 98px; + height: 98px; + display: inline-block; + vertical-align: top; + border-radius: 12px; + } + .center { + width: 550px; + display: inline-block; + margin-left: 20px; + .basename { + // font-size: 32px; + font-size: 35px !important; + font-weight: bold; + } + .address { + // font-size: 24px; + font-size: 27px !important; + margin-top: 12px; + } + .tag { + display: inline-block; + // font-size: 24px; + font-size: 26px !important; + margin-top: 14px; + background: #f5f6fa; + border-radius: 6px; + padding: 6px 20px; + } + } + } + .top_border { + border-top: 16px solid #f6f7fa; + ::v-deep.van-tab { + .van-tab__text { + font-size: 34px !important; + } + } + } + .popup_content { + width: 408px; + height: 346px; + overflow: hidden; + img { + display: block; + width: 86px; + height: 86px; + margin: 0 auto; + margin-top: 64px; + } + p:first-of-type { + text-align: center; + margin-top: 46px; + // font-size: 36px; + font-size: 39px !important; + } + p:last-of-type { + text-align: center; + margin-top: 16px; + // font-size: 26px; + font-size: 29px !important; + color: #999; + } + } + .Collection { + background-color: white; + position: fixed; + bottom: 0; + left: 0; + width: 100%; + padding: 28px 22px; + box-sizing: border-box; + padding-bottom: 50px; + z-index: 500; + box-shadow: 0px 4px 8px 0px rgba(0, 0, 0, 0.34); + .box1 { + width: 40%; + } + .box2 { + width: 60%; + } + .box { + display: inline-block; + vertical-align: middle; + color: #666666; + .icon { + display: inline-block; + width: 45%; + text-align: center; + // font-size: 24px; + font-size: 26px !important; + p { + // margin: 0; + color: #999999; + margin-top: 8px; + } + i { + font-size: 48px; + color: rgb(45, 45, 45); + font-weight: bold; + } + } + .icon.active { + color: 0ce39d; + i { + color: #0ce39d; + } + } + span { + display: inline-block; + width: 100%; + line-height: 92px; + box-sizing: border-box; + border-radius: 100px; + color: white; + // font-size: 32px; + font-size: 35px !important; + background: #4092ff; + text-align: center; + box-shadow: 0px 10px 40px 0px #a0c9ff; + b { + display: inline-block; + vertical-align: middle; + margin-left: 20px; + color: white; + } + i { + vertical-align: middle; + font-size: 44px; + font-weight: bold; + } + } + .disabled { + color: #999; + background: #edeced; + box-shadow: none; + } + } + } + .pintuan_about { + width: 592px; + box-sizing: border-box; + padding: 0 50px; + .about_img { + width: 112px; + margin: 0 auto; + margin-top: 30px; + display: block; + } + .about_title { + font-size: 34px; + font-weight: bold; + text-align: center; + } + .about_content { + font-size: 30px; + margin-top: 20px; + } + .about_know { + font-size: 32px; + text-align: center; + color: #3385ff; + margin-top: 60px; + margin-bottom: 44px; + } + } + .show_tip_title { + img { + width: 112px; + } + p { + margin-top: -20px; + margin-bottom: 20px; + } + } + .show_tip { + padding: 0 20px; + font-size: 28px; + letter-spacing: 1px; + text-align: left; + line-height: 64px; + color: rgb(153, 153, 153); + b { + color: #000; + } + } + .tip_checkbox { + font-size: 26px; + margin-top: 24px; + margin-bottom: 60px; + margin-left: 50px; + } +} + +.elder { + .abroad_detail { + .countDown { + height: auto; + .countDownTop { + display: block; + font-size: 40px; + .countDownTime { + font-size: 40px; + padding: 10px 0; + div { + width: 60px; + } + .countDownFont { + line-height: 60px; + } + } + } + .countDownBottom { + display: block; + font-size: 40px; + .countDownBottomyellow { + height: 60px; + font-size: 40px; + } + } + } + .uni_text { + .course_price { + font-size: 48px; + .redmini, + .tint { + font-size: 36px; + } + } + .course_name { + font-size: 44px; + } + .course_info { + font-size: 40px; + } + .address { + font-size: 40px; + } + .rate>span { + font-size: 36px; + } + .tag_box .tag { + font-size: 40px; + } + } + .package { + .package_title { + font-size: 44px; + } + .package_item { + .date { + font-size: 40px; + } + .week { + font-size: 34px; + } + .price { + font-size: 34px; + } + } + } + .content_box .content_all { + font-size: 40px !important; + line-height: 60px !important; + } + .tag_item { + .tag_title { + font-size: 44px; + } + .tag_text { + font-size: 40px !important; + line-height: 60px !important; + } + } + .base .center { + .basename { + font-size: 44px !important; + } + .address { + font-size: 40px !important; + } + } + .Collection .box { + span { + font-size: 44px !important; + } + .icon { + font-size: 40px !important; + } + } + .pintuan_about { + .about_title { + font-size: 44px; + } + .about_box { + height: 600px; + overflow: auto; + } + .about_content { + font-size: 36px; + } + .about_know { + font-size: 40px; + } + } + } +} \ No newline at end of file diff --git a/src/views/Service/AbroadDetail.vue b/src/views/Service/AbroadDetail.vue index f967230..8b2b8df 100644 --- a/src/views/Service/AbroadDetail.vue +++ b/src/views/Service/AbroadDetail.vue @@ -10,47 +10,19 @@
-
-
-
{{packageArr[0]?packageArr[0].day:''}} {{detailData.applyCount>=detailData.minPeopleCount?'报名截止时间:':'团期截止倒计时'}}
-
{{detailData.periodOfValidity}}
-
-
{{ showTime.day }}
- 天 -
{{ showTime.hour }}
- 时 -
{{ showTime.minute }}
- 分 -
{{ showTime.second }}
- 秒 -
-
-
-
-
- {{ detailData.clusterName }} -
- 已报名 {{detailData.applyCount}}/{{detailData.stockCount}}人 - 最低成团数{{detailData.minPeopleCount}}人/已报名{{detailData.applyCount}}人 - -
-
关于拼团?
-
-
-
- -
-
- {{proCouponHas?'已领取:':''}}{{item.title}} -
-
领取 >
-
+ + +

{{ detailData.course_name }}

{{ detailData.course_info }}

@@ -63,15 +35,9 @@ detailData.addressDetail }}

-
-
- - {{ evaluationData.evaluationScore }} -
- 共{{evaluationData.evaluationCount}}个客户评价 - - -
+ + +
- - \ No newline at end of file diff --git a/src/views/Service/CheckOrder.vue b/src/views/Service/CheckOrder.vue index f11b24a..be482c5 100644 --- a/src/views/Service/CheckOrder.vue +++ b/src/views/Service/CheckOrder.vue @@ -6,7 +6,7 @@

{{showCourseData.course_name}}

套餐名称:{{selectCombo.comboName}}

-

数量:x{{count}}

+

数量:x{{count}}{{selectComboUnitName}}

@@ -22,7 +22,7 @@
- +

服务承诺和保障

@@ -56,6 +56,7 @@ export default { useCard: '', orderDetail: '', selectCombo: '',//当前套餐信息 + selectComboUnitName:'',//套餐单位 人或份 showCourseData: '',//当前课程的信息 selectCombo: '',//已选择的套餐 userInfo: '',//支付用 @@ -76,6 +77,7 @@ export default { if (selectCombo) { this.selectCombo = JSON.parse(selectCombo) } + this.selectComboUnitName = sessionStorage.getItem('selectComboUnitName') // 如果有优惠券,就展示 let useCard = localStorage.getItem('useCard') @@ -117,11 +119,20 @@ export default { // 出行人数量判断 let selectedContactArr = localStorage.getItem('selectedContactArr'); selectedContactArr = JSON.parse(selectedContactArr); - if (selectedContactArr.length != this.count) { - this.$toast.fail('请选择与购买商品数量相同的出行人数'); + let selAdult = 0; + let selChild = 0; + for(let i in selectedContactArr){ + if(selectedContactArr[i].userType==2){ + selAdult++ + }else{ + selChild++ + } + } + // 判断选择成人和学生数量是否匹配 + if(selAdult!=this.count*this.selectCombo.adultCount||selChild!=this.count*this.selectCombo.chilCount){ + this.$toast.fail('请选择正确数量的出行人'); return; } - // 协议勾选 if (!this.checked) { this.$toast.fail('请先阅读并同意用户协议'); @@ -163,7 +174,6 @@ export default { // 使用后移除优惠券,防止返回继续使用 localStorage.removeItem('useCard') this.$router.push({ name: 'ServiceOrderXST', query: { active: 1, showChatGroupUrl: 1 } }) - } else { // 使用后移除优惠券,防止返回继续使用 localStorage.removeItem('useCard') diff --git a/src/views/Service/DatePackage.vue b/src/views/Service/DatePackage.vue index 483ee22..b8b8ae6 100644 --- a/src/views/Service/DatePackage.vue +++ b/src/views/Service/DatePackage.vue @@ -1,32 +1,33 @@ @@ -244,6 +267,8 @@ export default { } } .package_name { + display: flex; + justify-content: space-between; font-size: 28px; width: 100%; background: #f5f6fa; @@ -312,6 +337,15 @@ export default { } } } + .package_des { + margin: 0 24px; + margin-top: 28px; + padding: 20px 0; + font-size: 26px; + line-height: 40px; + color: #a9a9aa; + border-top: 1px solid #e2e7ee; + } .Collection { background-color: white; position: fixed; diff --git a/src/views/Service/SelectContact.vue b/src/views/Service/SelectContact.vue index cdd0572..9e01b0c 100644 --- a/src/views/Service/SelectContact.vue +++ b/src/views/Service/SelectContact.vue @@ -31,10 +31,11 @@ \ No newline at end of file diff --git a/src/views/Service/component/AbroadDetail/AbroadCoupon.vue b/src/views/Service/component/AbroadDetail/AbroadCoupon.vue new file mode 100644 index 0000000..4e739a4 --- /dev/null +++ b/src/views/Service/component/AbroadDetail/AbroadCoupon.vue @@ -0,0 +1,82 @@ + + \ No newline at end of file diff --git a/src/views/Service/component/AbroadDetail/AbroadDes.vue b/src/views/Service/component/AbroadDetail/AbroadDes.vue new file mode 100644 index 0000000..9f3a42f --- /dev/null +++ b/src/views/Service/component/AbroadDetail/AbroadDes.vue @@ -0,0 +1,157 @@ + + \ No newline at end of file diff --git a/src/views/Service/component/AbroadDetail/AbroadEvaluate.vue b/src/views/Service/component/AbroadDetail/AbroadEvaluate.vue new file mode 100644 index 0000000..f92cfcf --- /dev/null +++ b/src/views/Service/component/AbroadDetail/AbroadEvaluate.vue @@ -0,0 +1,56 @@ + + \ No newline at end of file diff --git a/src/views/Service/component/AbroadDetail/CountDown.vue b/src/views/Service/component/AbroadDetail/CountDown.vue new file mode 100644 index 0000000..0b57972 --- /dev/null +++ b/src/views/Service/component/AbroadDetail/CountDown.vue @@ -0,0 +1,146 @@ + + \ No newline at end of file diff --git a/src/views/Service/component/ContactBox.vue b/src/views/Service/component/ContactBox.vue index 767ed2e..f7862f5 100644 --- a/src/views/Service/component/ContactBox.vue +++ b/src/views/Service/component/ContactBox.vue @@ -2,25 +2,26 @@

出行人

- 需添加{{limit}}位出行人 + 需添加{{child*limit}}位学生,{{people*limit}}位家长 + 只需添加{{child*limit}}位学生 选择出行人

- + 填写项须与出游所持证件保持一致

-
- -
-

{{item.travelerName}}

-

身份证{{item.travelerIdCard}}

-
+
+ +
+

{{item.travelerName}}{{item.userType==1?"学生":"家长"}}

+

身份证{{item.travelerIdCard}}

+