overseas 2.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/README.md +12 -0
  2. package/package.json +80 -0
  3. package/packages/.DS_Store +0 -0
  4. package/packages/base/bottom-popup/index.js +10 -0
  5. package/packages/base/bottom-popup/src/bottom-popup.vue +151 -0
  6. package/packages/base/button/index.js +10 -0
  7. package/packages/base/button/src/button.vue +108 -0
  8. package/packages/base/dialog/index.js +10 -0
  9. package/packages/base/dialog/src/dialog.vue +173 -0
  10. package/packages/base/icon/index.js +10 -0
  11. package/packages/base/icon/src/icon.vue +15 -0
  12. package/packages/base/image/index.js +10 -0
  13. package/packages/base/image/src/image.vue +40 -0
  14. package/packages/base/material-list/index.js +10 -0
  15. package/packages/base/material-list/src/material-list.vue +48 -0
  16. package/packages/base/popup/index.js +10 -0
  17. package/packages/base/popup/src/popup.vue +44 -0
  18. package/packages/business/basic-image/index.js +10 -0
  19. package/packages/business/basic-image/src/basicImage.vue +51 -0
  20. package/packages/business/bottom-fixed-button/index.js +10 -0
  21. package/packages/business/bottom-fixed-button/src/bottomFixedButton.vue +66 -0
  22. package/packages/business/class-choose/index.js +10 -0
  23. package/packages/business/class-choose/src/courseCard.vue +142 -0
  24. package/packages/business/class-choose/src/img/icon_close_bottomcard.svg +14 -0
  25. package/packages/business/class-choose/src/img/icon_date.svg +21 -0
  26. package/packages/business/class-choose/src/img/icon_full.svg +27 -0
  27. package/packages/business/class-choose/src/img/icon_full_EL.svg +49 -0
  28. package/packages/business/class-choose/src/img/icon_selected.svg +18 -0
  29. package/packages/business/class-choose/src/img/icon_star_selected.svg +13 -0
  30. package/packages/business/class-choose/src/img/icon_star_unselect.svg +13 -0
  31. package/packages/business/class-choose/src/index.vue +316 -0
  32. package/packages/business/grade-panel/index.js +10 -0
  33. package/packages/business/grade-panel/src/gradePanel.vue +150 -0
  34. package/packages/business/material-panel/index.js +10 -0
  35. package/packages/business/material-panel/src/index.vue +136 -0
  36. package/packages/business/notified-panel/index.js +10 -0
  37. package/packages/business/notified-panel/src/areaCodeList.js +181 -0
  38. package/packages/business/notified-panel/src/index.vue +491 -0
  39. package/packages/business/page-render/index.js +10 -0
  40. package/packages/business/page-render/src/pageRender.vue +73 -0
  41. package/packages/business/registration-panel/index.js +10 -0
  42. package/packages/business/registration-panel/src/areaCodeList.js +181 -0
  43. package/packages/business/registration-panel/src/img/icon_off.png +0 -0
  44. package/packages/business/registration-panel/src/img/icon_on.png +0 -0
  45. package/packages/business/registration-panel/src/index.vue +329 -0
  46. package/packages/business/registration-panel/src/languageList.js +41 -0
  47. package/packages/business/selector-panel/index.js +10 -0
  48. package/packages/business/selector-panel/src/selectorPanel.vue +134 -0
  49. package/packages/business/student-info/index.js +10 -0
  50. package/packages/business/student-info/src/api/index.js +10 -0
  51. package/packages/business/student-info/src/config.js +11 -0
  52. package/packages/business/student-info/src/studentInfo.vue +145 -0
  53. package/packages/business/switch-student/index.js +10 -0
  54. package/packages/business/switch-student/src/api/index.js +28 -0
  55. package/packages/business/switch-student/src/switchStudent.vue +245 -0
  56. package/packages/business/tips-popup/index.js +10 -0
  57. package/packages/business/tips-popup/src/tipsPopup.vue +76 -0
  58. package/packages/business/user-login/index.js +10 -0
  59. package/packages/business/user-login/src/api/index.js +23 -0
  60. package/packages/business/user-login/src/img/logo.png +0 -0
  61. package/packages/business/user-login/src/index.vue +149 -0
  62. package/packages/theme-style/package.json +38 -0
  63. package/packages/theme-style/src/bottom-fixed-button.scss +31 -0
  64. package/packages/theme-style/src/bottom-popup.scss +87 -0
  65. package/packages/theme-style/src/button.scss +110 -0
  66. package/packages/theme-style/src/class-choose.scss +251 -0
  67. package/packages/theme-style/src/common/popup.scss +39 -0
  68. package/packages/theme-style/src/common/var.scss +6 -0
  69. package/packages/theme-style/src/common.scss +97 -0
  70. package/packages/theme-style/src/dialog.scss +130 -0
  71. package/packages/theme-style/src/grade-panel.scss +76 -0
  72. package/packages/theme-style/src/icon.scss +369 -0
  73. package/packages/theme-style/src/image.scss +8 -0
  74. package/packages/theme-style/src/img/body_bg.png +0 -0
  75. package/packages/theme-style/src/img/pdf.png +0 -0
  76. package/packages/theme-style/src/img/title_bg.png +0 -0
  77. package/packages/theme-style/src/index.scss +20 -0
  78. package/packages/theme-style/src/material-list.scss +118 -0
  79. package/packages/theme-style/src/material-panel.scss +2 -0
  80. package/packages/theme-style/src/notified-panel.scss +207 -0
  81. package/packages/theme-style/src/page-render.scss +3 -0
  82. package/packages/theme-style/src/registration-panel.scss +158 -0
  83. package/packages/theme-style/src/selector-panel.scss +86 -0
  84. package/packages/theme-style/src/student-info.scss +114 -0
  85. package/packages/theme-style/src/switch-student.scss +176 -0
  86. package/packages/theme-style/src/tips-popup.scss +60 -0
  87. package/packages/theme-style/src/user-login.scss +93 -0
  88. package/src/index.js +74 -0
  89. package/src/network/api.js +53 -0
  90. package/src/network/apiUrl.js +65 -0
  91. package/src/utils/dom.js +54 -0
  92. package/src/utils/filters.js +82 -0
  93. package/src/utils/merge.js +16 -0
  94. package/src/utils/phone.js +153 -0
  95. package/src/utils/popup/index.js +115 -0
  96. package/src/utils/popup/popup-manager.js +178 -0
  97. package/src/utils/storage.js +22 -0
  98. package/src/utils/utils.js +49 -0
@@ -0,0 +1,48 @@
1
+ <template>
2
+ <div class="material-list">
3
+ <div class="material-panel_title">
4
+ {{ title }}
5
+ </div>
6
+ <div class="material-panel_body" :class="fileList.length>3?'more':''">
7
+ <div class="material-list-box">
8
+ <div v-for="(file, index) in fileList" :key="index" class="material">
9
+ <div class="material-icon" />
10
+ <div class="material-info">
11
+ <div class="material-info_title">
12
+ {{ file.fileName }} {{ file.fileExt ? `.${file.fileExt}` : "" }}
13
+ </div>
14
+ <div class="material-info_size">
15
+ {{ file.fileSize | sizeFilter }}
16
+ </div>
17
+ </div>
18
+ </div>
19
+ </div>
20
+ <div class="material-panel-masking" />
21
+ </div>
22
+ </div>
23
+ </template>
24
+
25
+ <script>
26
+ export default {
27
+ name: "MaterialList",
28
+ filters: {
29
+ sizeFilter(value) {
30
+ if (!value) return '';
31
+ if (value > 1024 * 1024) {
32
+ return `${Number(value / 1024 / 1024).toFixed(1)}MB`;
33
+ }
34
+ return `${Number(value / 1024).toFixed(1)}KB`;
35
+ },
36
+ },
37
+ props: {
38
+ fileList: {
39
+ type: Array,
40
+ default: () => [],
41
+ },
42
+ title: {
43
+ type: String,
44
+ default: 'Content Preview',
45
+ }
46
+ },
47
+ };
48
+ </script>
@@ -0,0 +1,10 @@
1
+ import TsPopup from './src/popup.vue'
2
+
3
+ // install 是默认的方法,供按需引入
4
+ // 当外界在 use 这个组件的时候,就会调用本身的install方法,同时传一个Vue这个类的参数
5
+
6
+ TsPopup.install = (Vue) => {
7
+ Vue.component(TsPopup.name, TsPopup)
8
+ }
9
+
10
+ export default TsPopup
@@ -0,0 +1,44 @@
1
+ <template>
2
+ <transition name="popup-fade">
3
+ <div v-show="visible" class="ts-popup-wrapper">
4
+ <div class="ts-popup-content">
5
+ <div class="title-container">
6
+ <slot name="header-title">
7
+ <h1 class="title">
8
+ {{ popupTitle }}
9
+ </h1>
10
+ </slot>
11
+ </div>
12
+ <!-- 右侧按钮 -->
13
+ <div v-if="showRightIcon" class="ts-header-right-container">
14
+ <slot name="right-icon">
15
+ <div class="ts-header-icon-btn-container success-icon-container" @click="close">
16
+ <i class="iconfont icon-close-new-e658" />
17
+ </div>
18
+ </slot>
19
+ </div>
20
+
21
+ <div>
22
+ <slot />
23
+ </div>
24
+ </div>
25
+ </div>
26
+ </transition>
27
+ </template>
28
+
29
+ <script>
30
+ export default {
31
+ name: 'TsPopup',
32
+ props: {
33
+ visible: {
34
+ type: Boolean,
35
+ default: true,
36
+ },
37
+ },
38
+ methods: {
39
+ close() {
40
+ this.$emit('close')
41
+ },
42
+ },
43
+ }
44
+ </script>
@@ -0,0 +1,10 @@
1
+ import TsBasicImage from './src/basicImage.vue'
2
+
3
+ // install 是默认的方法,供按需引入
4
+ // 当外界在 use 这个组件的时候,就会调用本身的install方法,同时传一个Vue这个类的参数
5
+
6
+ TsBasicImage.install = (Vue) => {
7
+ Vue.component(TsBasicImage.name, TsBasicImage)
8
+ }
9
+
10
+ export default TsBasicImage
@@ -0,0 +1,51 @@
1
+ <template>
2
+ <div @click.capture="clickLink">
3
+ <ts-image :src="url ? url : defaultImage" width="100%" />
4
+ </div>
5
+ </template>
6
+
7
+ <script>
8
+ export default {
9
+ name: 'TsBasicImage',
10
+ props: {
11
+ url: {
12
+ default: '',
13
+ type: String,
14
+ },
15
+ // img 原生属性
16
+ width: {
17
+ default: 0,
18
+ type: Number,
19
+ },
20
+ height: {
21
+ default: 0,
22
+ type: Number,
23
+ },
24
+ jumpType: {
25
+ default: '',
26
+ type: String,
27
+ },
28
+ linkUrl: {
29
+ default: '',
30
+ type: String,
31
+ }
32
+ },
33
+ data() {
34
+ return {
35
+ defaultImage: 'https://download-pa-s3.thethinkacademy.com/static-pa/static/activity/refer/header_img.png',
36
+ }
37
+ },
38
+ methods: {
39
+ clickLink(){
40
+ console.log("this.jumpType", this.jumpType, this.linkUrl)
41
+ if (this.jumpType === 'link' && this.linkUrl) {
42
+ this.$emit('open-other-links', {
43
+ link: this.linkUrl,
44
+ target: '_self',
45
+ })
46
+ return
47
+ }
48
+ }
49
+ }
50
+ }
51
+ </script>
@@ -0,0 +1,10 @@
1
+ import TsBottomFixedButton from './src/bottomFixedButton.vue'
2
+
3
+ // install 是默认的方法,供按需引入
4
+ // 当外界在 use 这个组件的时候,就会调用本身的install方法,同时传一个Vue这个类的参数
5
+
6
+ TsBottomFixedButton.install = (Vue) => {
7
+ Vue.component(TsBottomFixedButton.name, TsBottomFixedButton)
8
+ }
9
+
10
+ export default TsBottomFixedButton
@@ -0,0 +1,66 @@
1
+ <template>
2
+ <div class="bottom-fixed-btns-wrapper">
3
+ <div class="bottom-fixed-btns-container">
4
+ <slot>
5
+ <ts-button class="bottom-btn" style-type="primary" size="small" width="100%" height="48px" @click="bottomBtnClick">
6
+ {{ title }}
7
+ </ts-button>
8
+ </slot>
9
+ </div>
10
+ </div>
11
+ </template>
12
+
13
+ <script>
14
+ export default {
15
+ name: 'TsBottomFixedButton',
16
+ props: {
17
+ title: {
18
+ default: 'SIGN UP NOW',
19
+ type: String,
20
+ },
21
+ jumpType: {
22
+ default: '',
23
+ type: String,
24
+ },
25
+ action: {
26
+ default: '',
27
+ type: String,
28
+ },
29
+ linkUrl: {
30
+ default: '',
31
+ type: String,
32
+ },
33
+ },
34
+ mounted() {
35
+ console.log("action", this.action)
36
+ this.$sensors.track('h5_bottom_button_show', {
37
+ button_name: this.title,
38
+ link_type: this.jumpType === 'link' && this.linkUrl ? 1 : 2,
39
+ link_url: this.linkUrl,
40
+ link_component: 1,
41
+ })
42
+
43
+ },
44
+ methods: {
45
+ bottomBtnClick() {
46
+ if (!this.jumpType) return
47
+ this.$sensors.track('h5_bottom_button_click', {
48
+ button_name: this.title,
49
+ link_type: this.jumpType === 'link' && this.linkUrl ? 1 : 2,
50
+ link_url: this.linkUrl,
51
+ link_component: 1,
52
+ })
53
+ if (this.jumpType === 'link' && this.linkUrl) {
54
+ this.$emit('open-other-links', {
55
+ link: this.linkUrl,
56
+ target: '_self',
57
+ })
58
+ return
59
+ }
60
+ if (this.jumpType === 'action' && this.action) {
61
+ this.$emit('btn-click', this.action)
62
+ }
63
+ },
64
+ },
65
+ }
66
+ </script>
@@ -0,0 +1,10 @@
1
+ import TsClassChoose from './src/index.vue'
2
+
3
+ // install 是默认的方法,供按需引入
4
+ // 当外界在 use 这个组件的时候,就会调用本身的install方法,同时传一个Vue这个类的参数
5
+
6
+ TsClassChoose.install = (Vue) => {
7
+ Vue.component(TsClassChoose.name, TsClassChoose)
8
+ }
9
+
10
+ export default TsClassChoose
@@ -0,0 +1,142 @@
1
+ <template>
2
+ <div class="course-card" :class="active && 'active'">
3
+ <div v-show="classNameOption" class="course-name">
4
+ {{ goodItem.title }}
5
+ </div>
6
+ <div class="date-info">
7
+ <div class="icon">
8
+ <img src="./img/icon_date.svg">
9
+ </div>
10
+ <div class="info">
11
+ <div>
12
+ {{ computedStartTime(goodItem.spec.startDate) }}
13
+ {{ computedTime(goodItem.spec.startDate) }} - {{ computedTime(goodItem.spec.endDate) }}
14
+ </div>
15
+ </div>
16
+ </div>
17
+ <div v-show="difficultyOption" class="difficulty">
18
+ <div class="font-medium text">
19
+ Difficulty
20
+ </div>
21
+ <div class="icon-wrapper">
22
+ <div v-for="(item, index) in levelDegreeList" :key="index" class="icon">
23
+ <img
24
+ v-if="goodItem.spec.levelDegree >= item"
25
+ src="./img/icon_star_selected.svg"
26
+ >
27
+ <img v-else src="./img/icon_star_unselect.svg">
28
+ </div>
29
+ <div class="diff-text">
30
+ {{ goodItem.spec.levelDegreeName }}
31
+ </div>
32
+ </div>
33
+ </div>
34
+ <div class="bottom-sub-box">
35
+ <p v-show="completeClass(goodItem.spec)" class="left-class">
36
+ {{ goodItem.spec.lessonCount }} lessons
37
+ </p>
38
+ <p v-show="!completeClass(goodItem.spec)" class="left-class">
39
+ {{ goodItem.spec.leftLesson }} lessons left
40
+ </p>
41
+ <p class="right-price">
42
+ <span class="right-price-top">{{ currency
43
+ }}{{
44
+ goodItem.sellPrice | priceUnitConvert(minorUnit, isKeepTwoDecimal)
45
+ }}</span>
46
+ <span class="right-price-bottom">
47
+ <s>{{ currency
48
+ }}{{ goodItem.orgPrice | priceUnitConvert(minorUnit, isKeepTwoDecimal) }}</s>
49
+ {{ taxName }} excluded
50
+ </span>
51
+ </p>
52
+ </div>
53
+ <div v-if="active" class="active-icon">
54
+ <img src="./img/icon_selected.svg">
55
+ </div>
56
+ <div v-if="goodItem.store - goodItem.sellStore === 0" class="course-full">
57
+ <img src="./img/icon_full_EL.svg">
58
+ </div>
59
+ </div>
60
+ </template>
61
+ <script>
62
+
63
+ export default {
64
+ props: {
65
+ goodItem: {
66
+ type: Object,
67
+ default: () => {},
68
+ },
69
+ // 是否为选中状态
70
+ active: {
71
+ type: Boolean,
72
+ default: false,
73
+ },
74
+ classNameOption: {
75
+ type: Boolean,
76
+ default: false,
77
+ },
78
+ difficultyOption: {
79
+ type: Boolean,
80
+ default: false,
81
+ },
82
+ },
83
+ data() {
84
+ return {
85
+ levelDegreeList: [1, 2, 3, 4, 5],
86
+ };
87
+ },
88
+ computed: {
89
+ //获取货币
90
+ currency() {
91
+ return this.$store.state.basicData.currency[this.$store.state.locale]
92
+ .symbol;
93
+ },
94
+ taxName() {
95
+ if (this.$store.state.locale === "us") {
96
+ return "Tax";
97
+ } else if (this.$store.state.locale === "uk") {
98
+ return "VAT";
99
+ } else {
100
+ return "GST";
101
+ }
102
+ },
103
+ minorUnit() {
104
+ return this.$store.state.basicData.currency[this.$store.state.locale]
105
+ .minorUnit;
106
+ },
107
+ isKeepTwoDecimal() {
108
+ if (this.$store.state.locale === "uk") {
109
+ return "1";
110
+ } else {
111
+ return "0";
112
+ }
113
+ },
114
+ },
115
+ methods: {
116
+ computedStartTime(time) {
117
+ if (!time) {
118
+ return;
119
+ }
120
+ let times = time.split(" ")[0];
121
+ let t = [];
122
+ if (times) {
123
+ t = times.split("-");
124
+ }
125
+ return `${t[1]}·${t[2]}·${t[0]}`;
126
+ },
127
+ computedTime(time) {
128
+ if (!time) {
129
+ return;
130
+ }
131
+ return time.slice(11, 16);
132
+ },
133
+ completeClass(spec) {
134
+ if (spec.lessonCount - spec.leftLesson > 0) {
135
+ return false;
136
+ } else {
137
+ return true;
138
+ }
139
+ },
140
+ },
141
+ };
142
+ </script>
@@ -0,0 +1,14 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="26px" height="26px" viewBox="0 0 26 26" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <title>icon_close_bottomcard@2x</title>
4
+ <g id="最终稿" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
5
+ <g id="选择课程(有优惠券)" transform="translate(-317.000000, -668.000000)" fill="#FFFFFF">
6
+ <g id="编组-2" transform="translate(16.000000, 658.000000)">
7
+ <g id="icon_close_bottomcard" transform="translate(301.000000, 10.000000)">
8
+ <circle id="椭圆形" fill-opacity="0.16" cx="13" cy="13" r="13"></circle>
9
+ <path d="M13,8 C13.6903559,8 14.25,8.55964406 14.25,9.25 L14.25,11.75 L16.75,11.75 C17.4403559,11.75 18,12.3096441 18,13 C18,13.6903559 17.4403559,14.25 16.75,14.25 L14.25,14.25 L14.25,16.75 C14.25,17.4403559 13.6903559,18 13,18 C12.3096441,18 11.75,17.4403559 11.75,16.75 L11.75,14.25 L9.25,14.25 C8.55964406,14.25 8,13.6903559 8,13 C8,12.3096441 8.55964406,11.75 9.25,11.75 L11.75,11.75 L11.75,9.25 C11.75,8.55964406 12.3096441,8 13,8 Z" id="形状结合" transform="translate(13.000000, 13.000000) rotate(45.000000) translate(-13.000000, -13.000000) "></path>
10
+ </g>
11
+ </g>
12
+ </g>
13
+ </g>
14
+ </svg>
@@ -0,0 +1,21 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <title>上课日期@2x</title>
4
+ <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
5
+ <g id="选择上课时间默认" transform="translate(-32.000000, -316.000000)">
6
+ <g id="编组-3" transform="translate(16.000000, 249.000000)">
7
+ <g id="上课时间备份-4" transform="translate(0.000000, 63.000000)">
8
+ <g id="编组" transform="translate(16.000000, 4.000000)">
9
+ <g id="上课日期" transform="translate(1.500000, 1.000000)">
10
+ <path d="M2,2 L11,2 C12.1045695,2 13,2.8954305 13,4 L13,11 C13,12.1045695 12.1045695,13 11,13 L2,13 C0.8954305,13 1.3527075e-16,12.1045695 0,11 L0,4 C-1.3527075e-16,2.8954305 0.8954305,2 2,2 Z" id="矩形" stroke="#A2AAB8" stroke-width="1.2"></path>
11
+ <path d="M3.1,6 L9.9,6 C10.2313708,6 10.5,6.26862915 10.5,6.6 C10.5,6.93137085 10.2313708,7.2 9.9,7.2 L3.1,7.2 C2.76862915,7.2 2.5,6.93137085 2.5,6.6 C2.5,6.26862915 2.76862915,6 3.1,6 Z" id="矩形" fill="#A2AAB8"></path>
12
+ <path d="M3.1,9 L9.9,9 C10.2313708,9 10.5,9.26862915 10.5,9.6 C10.5,9.93137085 10.2313708,10.2 9.9,10.2 L3.1,10.2 C2.76862915,10.2 2.5,9.93137085 2.5,9.6 C2.5,9.26862915 2.76862915,9 3.1,9 Z" id="矩形" fill="#A2AAB8"></path>
13
+ <path d="M3.6,0 C3.93137085,-6.08718376e-17 4.2,0.26862915 4.2,0.6 L4.2,3.4 C4.2,3.73137085 3.93137085,4 3.6,4 C3.26862915,4 3,3.73137085 3,3.4 L3,0.6 C3,0.26862915 3.26862915,6.08718376e-17 3.6,0 Z" id="矩形" fill="#A2AAB8"></path>
14
+ <path d="M9.2,0 C9.53137085,-6.08718376e-17 9.8,0.26862915 9.8,0.6 L9.8,3.4 C9.8,3.73137085 9.53137085,4 9.2,4 C8.86862915,4 8.6,3.73137085 8.6,3.4 L8.6,0.6 C8.6,0.26862915 8.86862915,6.08718376e-17 9.2,0 Z" id="矩形" fill="#A2AAB8"></path>
15
+ </g>
16
+ </g>
17
+ </g>
18
+ </g>
19
+ </g>
20
+ </g>
21
+ </svg>
@@ -0,0 +1,27 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="60px" height="52px" viewBox="0 0 60 52" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <title>已满员/邮戳@2x</title>
4
+ <defs>
5
+ <path d="M0,0 L50,0 C55.5228475,-1.01453063e-15 60,4.4771525 60,10 L60,52 L60,52 L0,52 L0,0 Z" id="path-1"></path>
6
+ </defs>
7
+ <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
8
+ <g id="选择上课时间默认" transform="translate(-299.000000, -512.000000)">
9
+ <g id="编组-5" transform="translate(16.000000, 512.000000)">
10
+ <g id="已满员/邮戳" transform="translate(283.000000, 0.000000)">
11
+ <mask id="mask-2" fill="white">
12
+ <use xlink:href="#path-1"></use>
13
+ </mask>
14
+ <g id="矩形"></g>
15
+ <path d="M28.25138,45.1555915 C41.5880326,48.7291368 55.2964565,40.8145745 58.8700018,27.4779219 C62.4435471,14.1412694 54.5289849,0.432845443 41.1923323,-3.14069985 C27.8556797,-6.71424514 14.1472558,1.2003171 10.5737105,14.5369697 C7.0001652,27.8736223 14.9147274,41.5820462 28.25138,45.1555915 Z" id="椭圆形" stroke-opacity="0.15" stroke="#A2AAB8" stroke-linecap="round" stroke-dasharray="2.2" mask="url(#mask-2)"></path>
16
+ <path d="M20.2218561,-4.1072909 C26.6492778,-7.8181645 34.49235,-9.07705942 42.2276085,-7.00440315 C49.962867,-4.93174688 56.1257192,0.0800241854 59.8365929,6.50744581 C63.5474665,12.9348674 64.8063614,20.7779396 62.7337051,28.5131981 C60.6610488,36.2484566 55.6492778,42.4113089 49.2218561,46.1221825 C42.7944345,49.8330561 34.9513623,51.091951 27.2161038,49.0192948 C19.4808453,46.9466385 13.317993,41.9348674 9.60711944,35.5074458 C5.89624583,29.0800242 4.63735091,21.236952 6.71000718,13.5016935 C8.78266345,5.76643501 13.7944345,-0.396417292 20.2218561,-4.1072909 Z" id="椭圆形" stroke-opacity="0.15" stroke="#A2AAB8" stroke-width="2" mask="url(#mask-2)"></path>
17
+ <path d="M48.5593593,34.0329441 C43.919583,38.9533088 36.7947418,41.2331213 29.8042943,39.3600365 C22.8138467,37.4869517 17.7834595,31.9501556 16.2254777,25.3691067" id="路径" stroke-opacity="0.15" stroke="#A2AAB8" stroke-width="1.5" stroke-linecap="round" mask="url(#mask-2)"></path>
18
+ <path d="M20.8836863,7.98265456 C25.5234468,3.06180122 32.6486356,0.78168062 39.639418,2.65485511 C46.6302004,4.5280296 51.6607346,10.0652664 53.2184584,16.6467306" id="路径" stroke-opacity="0.15" stroke="#A2AAB8" stroke-width="1.5" stroke-linecap="round" mask="url(#mask-2)"></path>
19
+ <path d="M6.14160111,4.03190393 L67.960854,20.5963228 C69.0277862,20.8822064 69.6609512,21.9788804 69.3750676,23.0458126 L65.7516009,36.5687741 C65.4657173,37.6357063 64.3690434,38.2688713 63.3021112,37.9829877 L1.4828583,21.4185688 C0.415926091,21.1326852 -0.217238888,20.0360113 0.0686447349,18.9690791 L3.69211137,5.44611749 C3.97799499,4.37918529 5.0746689,3.74602031 6.14160111,4.03190393 Z" id="矩形" fill-opacity="0.1" fill="#A2AAB8" fill-rule="nonzero" mask="url(#mask-2)"></path>
20
+ <text id="课程已满员" opacity="0.600000024" mask="url(#mask-2)" transform="translate(34.193332, 20.829371) rotate(15.000000) translate(-34.193332, -20.829371) " font-family="PingFangSC-Semibold, PingFang SC" font-size="9" font-weight="500" fill="#A2AAB8">
21
+ <tspan x="11.6933324" y="24.3293714">课程已满员</tspan>
22
+ </text>
23
+ </g>
24
+ </g>
25
+ </g>
26
+ </g>
27
+ </svg>
@@ -0,0 +1,49 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 25.4.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
4
+ viewBox="0 0 60 52" style="enable-background:new 0 0 60 52;" xml:space="preserve">
5
+ <style type="text/css">
6
+ .st0{clip-path:url(#SVGID_00000134215246869823047480000011416997203768195236_);}
7
+ .st1{fill:none;stroke:#A2AAB8;stroke-linecap:round;stroke-opacity:0.15;stroke-dasharray:2.2;}
8
+ .st2{fill:none;stroke:#A2AAB8;stroke-width:2;stroke-opacity:0.15;}
9
+ .st3{fill:none;stroke:#A2AAB8;stroke-width:1.5;stroke-linecap:round;stroke-opacity:0.15;}
10
+ .st4{fill:#A2AAB8;fill-opacity:0.1;}
11
+ .st5{fill:#A2AAB8;}
12
+ .st6{font-family:'PingFangHK-Medium-B5pc-H';}
13
+ .st7{font-size:12px;}
14
+ </style>
15
+ <g>
16
+ <g>
17
+ <defs>
18
+ <rect id="SVGID_1_" y="0" width="60" height="52"/>
19
+ </defs>
20
+ <clipPath id="SVGID_00000077307255350451753360000004912594686611766167_">
21
+ <use xlink:href="#SVGID_1_" style="overflow:visible;"/>
22
+ </clipPath>
23
+ <g id="页面-1" style="clip-path:url(#SVGID_00000077307255350451753360000004912594686611766167_);">
24
+ <g id="选择上课时间默认" transform="translate(-299.000000, -512.000000)">
25
+ <g id="编组-5" transform="translate(16.000000, 512.000000)">
26
+ <g id="已满员_x2F_邮戳" transform="translate(283.000000, 0.000000)">
27
+ <path id="椭圆形" class="st1" d="M28.3,45.2c13.3,3.6,27-4.3,30.6-17.7c3.6-13.3-4.3-27-17.7-30.6s-27,4.3-30.6,17.7
28
+ S14.9,41.6,28.3,45.2z"/>
29
+ <path id="椭圆形_00000079477094627774968830000009517479894510781576_" class="st2" d="M20.2-4.1c6.4-3.7,14.3-5,22-2.9
30
+ S56.1,0.1,59.8,6.5s5,14.3,2.9,22s-7.1,13.9-13.5,17.6c-6.4,3.7-14.3,5-22,2.9S13.3,41.9,9.6,35.5s-5-14.3-2.9-22
31
+ S13.8-0.4,20.2-4.1z"/>
32
+ <path id="路径" class="st3" d="M48.6,34c-4.6,4.9-11.8,7.2-18.8,5.3s-12-7.4-13.6-14"/>
33
+ <path id="路径_00000158013790505589448680000016728537554151227324_" class="st3" d="M20.9,8c4.6-4.9,11.8-7.2,18.8-5.3
34
+ s12,7.4,13.6,14"/>
35
+ <path id="矩形_00000063608119625026439510000011822953111616090808_" class="st4" d="M6.1,4L68,20.6
36
+ c1.1,0.3,1.7,1.4,1.4,2.4l-3.6,13.5c-0.3,1.1-1.4,1.7-2.4,1.4L1.5,21.4C0.4,21.1-0.2,20,0.1,19L3.7,5.4C4,4.4,5.1,3.7,6.1,4z"
37
+ />
38
+ <g>
39
+ <g>
40
+ <text transform="matrix(0.9659 0.2588 -0.2588 0.9659 18.2251 21.0077)" class="st5 st6 st7">FULL</text>
41
+ </g>
42
+ </g>
43
+ </g>
44
+ </g>
45
+ </g>
46
+ </g>
47
+ </g>
48
+ </g>
49
+ </svg>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="32px" height="20px" viewBox="0 0 32 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <title>选中icon</title>
4
+ <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
5
+ <g id="选择上课时间默认" transform="translate(-327.000000, -249.000000)">
6
+ <g id="编组-3" transform="translate(16.000000, 249.000000)">
7
+ <g id="选中icon" transform="translate(311.000000, 0.000000)">
8
+ <g id="icon_close_toast" fill="#FFAA0A">
9
+ <path d="M0,0 L22,0 C27.5228475,-1.01453063e-15 32,4.4771525 32,10 L32,20 L32,20 L10,20 C4.4771525,20 6.76353751e-16,15.5228475 0,10 L0,0 L0,0 Z" id="矩形"></path>
10
+ </g>
11
+ <g id="对号" transform="translate(10.000000, 6.000000)" fill="#FFFFFF" fill-rule="nonzero" stroke="#FFFFFF">
12
+ <path d="M4.61554646,8.34225599 C4.37895967,8.34225599 4.14330801,8.2515488 3.96282876,8.07106955 L0.270017534,4.36329632 C-0.0900058445,4.00140269 -0.0900058445,3.41414378 0.270017534,3.05225015 C0.630976037,2.69035652 1.21542957,2.69035652 1.57545295,3.05225015 L4.61554646,6.10450029 L10.424547,0.272121566 C10.7845704,-0.0907071888 11.369024,-0.0907071888 11.7299825,0.272121566 C12.0900058,0.634015196 12.0900058,1.22033898 11.7299825,1.58223261 L5.26826417,8.07106955 C5.08778492,8.2515488 4.85119813,8.34225599 4.61554646,8.34225599 Z" id="路径"></path>
13
+ </g>
14
+ </g>
15
+ </g>
16
+ </g>
17
+ </g>
18
+ </svg>
@@ -0,0 +1,13 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="15px" height="16px" viewBox="0 0 15 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <title>Combined Shape Copy</title>
4
+ <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
5
+ <g id="选择上课时间默认" transform="translate(-90.000000, -362.000000)" fill="#FFCF1B">
6
+ <g id="编组-3" transform="translate(16.000000, 249.000000)">
7
+ <g id="touch/课程难度" transform="translate(0.000000, 109.000000)">
8
+ <path d="M82.9149966,4.3736631 L87.5244084,6.96129051 C88.4357922,7.47292236 89,8.43668932 89,9.48186285 L89,14.5181372 C89,15.5633107 88.4357922,16.5270776 87.5244084,17.0387095 L82.9149966,19.6263369 C82.0361706,20.1196914 80.9638294,20.1196914 80.0850034,19.6263369 L75.4755916,17.0387095 C74.5642078,16.5270776 74,15.5633107 74,14.5181372 L74,9.48186285 C74,8.43668932 74.5642078,7.47292236 75.4755916,6.96129051 L80.0850034,4.3736631 C80.9638294,3.88030858 82.0361706,3.88030858 82.9149966,4.3736631 Z M82.9270587,7.4192399 C82.745187,7.27608316 82.4687441,7.29266194 82.3096063,7.45626965 L82.3096063,7.45626965 L77.7592642,12.1344234 C77.6894689,12.2061791 77.6509982,12.2982849 77.6509982,12.3936316 C77.6509982,12.6110283 77.8469067,12.7872632 78.0885721,12.7872632 L78.0885721,12.7872632 L80.4059637,12.7870218 L79.9268908,16.2356981 C79.9088684,16.3653985 79.963591,16.4946872 80.0729413,16.5807601 C80.254813,16.7239168 80.5312559,16.7073381 80.6903937,16.5437304 L80.6903937,16.5437304 L85.2407358,11.8655766 C85.3105311,11.7938209 85.3490018,11.7017151 85.3490018,11.6063684 C85.3490018,11.3889717 85.1530933,11.2127368 84.9114279,11.2127368 L84.9114279,11.2127368 L82.5938334,11.2124955 L83.0731092,7.76430185 C83.0911316,7.63460152 83.036409,7.50531284 82.9270587,7.4192399 Z" id="Combined-Shape-Copy"></path>
9
+ </g>
10
+ </g>
11
+ </g>
12
+ </g>
13
+ </svg>
@@ -0,0 +1,13 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="15px" height="16px" viewBox="0 0 15 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <title>Combined Shape Copy 4</title>
4
+ <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" fill-opacity="0.08">
5
+ <g id="选择上课时间默认" transform="translate(-150.000000, -362.000000)" fill="#172B4D">
6
+ <g id="编组-3" transform="translate(16.000000, 249.000000)">
7
+ <g id="touch/课程难度" transform="translate(0.000000, 109.000000)">
8
+ <path d="M142.914997,4.3736631 L147.524408,6.96129051 C148.435792,7.47292236 149,8.43668932 149,9.48186285 L149,14.5181372 C149,15.5633107 148.435792,16.5270776 147.524408,17.0387095 L142.914997,19.6263369 C142.036171,20.1196914 140.963829,20.1196914 140.085003,19.6263369 L135.475592,17.0387095 C134.564208,16.5270776 134,15.5633107 134,14.5181372 L134,9.48186285 C134,8.43668932 134.564208,7.47292236 135.475592,6.96129051 L140.085003,4.3736631 C140.963829,3.88030858 142.036171,3.88030858 142.914997,4.3736631 Z M142.927059,7.4192399 C142.745187,7.27608316 142.468744,7.29266194 142.309606,7.45626965 L142.309606,7.45626965 L137.759264,12.1344234 C137.689469,12.2061791 137.650998,12.2982849 137.650998,12.3936316 C137.650998,12.6110283 137.846907,12.7872632 138.088572,12.7872632 L138.088572,12.7872632 L140.405964,12.7870218 L139.926891,16.2356981 C139.908868,16.3653985 139.963591,16.4946872 140.072941,16.5807601 C140.254813,16.7239168 140.531256,16.7073381 140.690394,16.5437304 L140.690394,16.5437304 L145.240736,11.8655766 C145.310531,11.7938209 145.349002,11.7017151 145.349002,11.6063684 C145.349002,11.3889717 145.153093,11.2127368 144.911428,11.2127368 L144.911428,11.2127368 L142.593833,11.2124955 L143.073109,7.76430185 C143.091132,7.63460152 143.036409,7.50531284 142.927059,7.4192399 Z" id="Combined-Shape-Copy-4"></path>
9
+ </g>
10
+ </g>
11
+ </g>
12
+ </g>
13
+ </svg>