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 @@
-
+
@@ -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}}个客户评价
-
-
-
+
+
+
{{ tag }}
@@ -81,94 +47,39 @@
套餐类型/日期
-
-
{{ item.day }}
-
{{ item.week }}
-
+
+
+
{{ item.day }}
+
{{ item.week }}
+
¥{{ item.marketPrice }}起
+

+
-
+
查看更多
+
-

-
-
-
-
-
-
-
服务内容
-
- -
- {{ n.title }}
-
{{ n.content }}
-
-
-
-
-
-
![]()
-
-
-
-
-
-
-
课程表
-
-
+
+
+
+
+
套餐{{index+1}}¥{{ item.actualPrice }}
+
{{item.comboName}}
+
-
-
-
-
-
-
-
-
-
-
-
-
![]()
-
-
{{ baseData.baseName }}
-
- {{ baseData.city }}{{ baseData.area
- }}{{ baseData.address }}
-
-
{{ baseData.baseLabel.join("/") }}
+
+
套餐说明
{{packageArr[packageActive].comboInfoList[packageTypeActive].comboDescrption}}
+
+
+
+
+
@@ -186,23 +97,10 @@
已满团
- 去订购
+ 去订购
拼团请咨询客服
-
-
-

-
拼团规则说明
-
-
1、拼团展示默认为最近活动档期,选择其它档期请时刻注意成团动态。
-
2、在限时截止后,报名人数未达最低成团数,则结束本团活动,系统将在72小时内,全额退还!
-
3、报名人数达到最低成团要求后,则拼团成功,凡在报名截止时间内未达最大限团人数,则可放心参与。
-
4、已成团的活动,除特殊情况等不可抗拒因素外,活动如期举行。
-
-
我知道了
-
-

@@ -214,31 +112,25 @@
-
-
\ 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 @@
-
+
-
活动日期
-
{{date||'选择日期'}}
+
出行时间
+
{{date||'选择日期'}}
-
-
成团情况{{comboList[active].clusterName}}
-
最低拼团数 {{comboList[active].peopleCount}}人 已报名人数{{numOne}}/{{comboList[active].stockCount}}人
+
+
行程选择
+
+
行程{{index + 1}} :{{item.dateComboName}}
+
-
-
天数
-
{{days}}天
+
+
成团情况{{comboList[Index1].clusterName}}
+
最低拼团数 {{comboList[Index1].peopleCount}}{{comboList[Index1].unitName}} 已报名{{comboList[Index1].unitName}}数{{numOne}}/{{comboList[Index1].stockCount}}{{comboList[Index1].unitName}}
-
套餐
+
套餐类型
-
-
套餐{{index + 1}} :{{item.comboName}} ¥{{item.actualPrice}}
+
套餐{{index + 1}} :{{item.comboName}} ¥{{item.actualPrice}}
-
数量
+
请选择套餐数量
-
{{count}}
@@ -35,20 +36,26 @@
库存数量({{numSecond}} /
- {{numOne+numSecond}})
+ {{numOne+numSecond}}{{comboList[Index1].unitName}})
+
套餐说明
{{comboList[Index1].comboInfoList[Index2].comboDescrption}}
-
¥{{comboList[active].actualPrice*1000*count/1000}} {{comboList[active].productPrice*1000*count/1000}}
+
¥{{comboList[Index1].comboInfoList[Index2].actualPrice*1000*count/1000}} {{comboList[Index1].comboInfoList[Index2].productPrice*1000*count/1000}}
去下单
+
+
+
+
@@ -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 @@
+
+
+
+ {{proCouponHas?'已领取:':''}}{{item.title}}
+
+
领取 >
+
+
+
\ 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 @@
+
+
+
+
+
+
+
+
服务内容
+
+ -
+ {{ n.title }}
+
{{ n.content }}
+
+
+
+
+
+
![]()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ 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 @@
+
+
+
+
+
+ {{ evaluationData.evaluationScore }}
+
+
共{{evaluationData.evaluationCount}}个客户评价
+
+
+
+
+
+
\ 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 @@
+
+
+
+
+
{{day}} {{detailData.applyCount>=detailData.minPeopleCount?'报名截止时间:':'团期截止倒计时'}}
+
{{detailData.periodOfValidity}}
+
+
{{ showTime.day }}
+ 天
+
{{ showTime.hour }}
+ 时
+
{{ showTime.minute }}
+ 分
+
{{ showTime.second }}
+ 秒
+
+
+
+
+
+
+ {{ detailData.clusterName }}
+
+
已报名 {{detailData.applyCount}}/{{detailData.stockCount}}{{detailData.unitName}}
+
最低成团数{{detailData.minPeopleCount}}{{detailData.unitName}}/已报名{{detailData.applyCount}}{{detailData.unitName}}
+
+
+
关于拼团?
+
+
+
+
+

+
拼团规则说明
+
1、拼团展示默认为最近活动档期,选择其它档期请时刻注意成团动态。
+
2、在限时截止后,报名人数未达最低成团数,则结束本团活动,系统将在72小时内,全额退还!
+
3、报名人数达到最低成团要求后,则拼团成功,凡在报名截止时间内未达最大限团人数,则可放心参与。
+
4、已成团的活动,除特殊情况等不可抗拒因素外,活动如期举行。
+
我知道了
+
+
+
+
+
\ 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 @@