更改联络方式交互样式,含三语和mock数据结构
Showing
19 changed files
with
1180 additions
and
564 deletions
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
1 | @import "@/styles/_support.scss"; | 1 | @import "@/styles/_support.scss"; |
2 | |||
3 | .list-container { | 2 | .list-container { |
4 | overflow-x: auto; | 3 | overflow-x: auto; |
5 | margin-bottom: 24px; | 4 | margin-bottom: 24px; |
6 | font-size: $fontSize-M2; | 5 | font-size: $fontSize-M2; |
7 | } | 6 | } |
8 | 7 | ||
9 | .hide { | 8 | .hide { |
10 | max-height: 0; | 9 | max-height: 0; |
11 | border-bottom: none; | 10 | border-bottom: none; |
12 | } | 11 | } |
13 | 12 | ||
14 | .table-contaner { | 13 | .table-contaner { |
15 | position: relative; | 14 | position: relative; |
16 | } | 15 | } |
17 | 16 | ||
18 | .download { | 17 | .download { |
19 | position: relative; | 18 | position: relative; |
20 | display: flex; | 19 | display: flex; |
21 | align-items: center; | 20 | align-items: center; |
22 | 21 | &-tips { | |
23 | &-tips { | 22 | display: none; |
24 | display: none; | 23 | position: absolute; |
25 | position: absolute; | 24 | top: 0px; |
26 | top: 0px; | 25 | left: 20px; |
27 | left: 20px; | 26 | z-index: 11; |
28 | z-index: 11; | 27 | padding: 2px; |
29 | padding: 2px; | 28 | @include border-tans(); |
30 | @include border-tans(); | 29 | min-width: 88px; |
31 | min-width: 88px; | 30 | padding: 4px; |
32 | padding: 4px; | 31 | } |
33 | } | 32 | .icon-download { |
34 | 33 | margin-right: 4px; | |
35 | .icon-download { | 34 | } |
36 | margin-right: 4px; | 35 | .desc { |
37 | } | 36 | padding: 0; |
38 | .desc{ | 37 | } |
39 | padding: 0; | ||
40 | } | ||
41 | } | 38 | } |
42 | 39 | ||
43 | .guide { | 40 | .guide { |
44 | position: absolute; | 41 | position: absolute; |
45 | transition: all 0.5s; | 42 | transition: all 0.5s; |
46 | cursor: pointer; | 43 | cursor: pointer; |
47 | width: 12px; | 44 | width: 12px; |
48 | height: 8px; | 45 | height: 8px; |
49 | background: url("~@/assets/images/insurance-query/triangle-down2.png") | 46 | background: url("~@/assets/images/insurance-query/triangle-down2.png") no-repeat center center; |
50 | no-repeat center center; | 47 | background-size: 100% 100%; |
51 | background-size: 100% 100%; | 48 | top: 16px; |
52 | top: 16px; | 49 | right: 26px; |
53 | right: 26px; | ||
54 | } | 50 | } |
55 | 51 | ||
56 | .rotate180 { | 52 | .rotate180 { |
57 | transform: rotate(180deg); | 53 | transform: rotate(180deg); |
58 | transition: all 0.5s; | 54 | transition: all 0.5s; |
59 | } | 55 | } |
60 | 56 | ||
61 | .cell-group { | 57 | .cell-group { |
62 | margin-bottom: 12px; | 58 | margin-bottom: 12px; |
63 | 59 | &:last-child { | |
64 | &:last-child { | 60 | margin-bottom: 0; |
65 | margin-bottom: 0; | ||
66 | } | ||
67 | |||
68 | div { | ||
69 | color: #4c4948; | ||
70 | } | ||
71 | |||
72 | .td { | ||
73 | position: relative; | ||
74 | @extend .fcc; | ||
75 | text-align: center; | ||
76 | } | ||
77 | |||
78 | .w1 { | ||
79 | width: 180px; | ||
80 | } | ||
81 | |||
82 | .w2 { | ||
83 | width: 240px; | ||
84 | } | ||
85 | |||
86 | .w3 { | ||
87 | width: 140px; | ||
88 | } | ||
89 | .w4 { | ||
90 | width: 120px; | ||
91 | } | ||
92 | .w5 { | ||
93 | width: 100px; | ||
94 | } | ||
95 | |||
96 | .table-header { | ||
97 | height: 50px; | ||
98 | border-top-left-radius: 8px; | ||
99 | border-top-right-radius: 8px; | ||
100 | background-color: #f2f2f2; | ||
101 | display: flex; | ||
102 | align-items: center; | ||
103 | |||
104 | .normal-header { | ||
105 | // width: 706px; | ||
106 | @extend .bb; | ||
107 | padding: 0 32px; | ||
108 | width: 100%; | ||
109 | margin: auto; | ||
110 | display: flex; | ||
111 | justify-content: space-between; | ||
112 | align-items: center; | ||
113 | |||
114 | .title { | ||
115 | font-weight: bold; | ||
116 | color: #575453; | ||
117 | } | ||
118 | |||
119 | .guide { | ||
120 | transition: all 0.5s; | ||
121 | cursor: pointer; | ||
122 | width: 12px; | ||
123 | height: 8px; | ||
124 | background: url("~@/assets/images/insurance-query/triangle-down.png") | ||
125 | no-repeat center center; | ||
126 | background-size: 100% 100%; | ||
127 | } | ||
128 | |||
129 | .rotate180 { | ||
130 | transform: rotate(180deg); | ||
131 | transition: all 0.5s; | ||
132 | } | ||
133 | } | 61 | } |
134 | } | 62 | div { |
135 | 63 | color: #4c4948; | |
136 | .table-content { | 64 | } |
137 | // width: 770px; | 65 | .td { |
138 | |||
139 | height: auto; | ||
140 | max-height: 600px; | ||
141 | // display: inline-block; | ||
142 | border-bottom-left-radius: 8px; | ||
143 | border-bottom-right-radius: 8px; | ||
144 | border-left: solid 1px #f2f2f2; | ||
145 | border-right: solid 1px #f2f2f2; | ||
146 | border-bottom: solid 1px #f2f2f2; | ||
147 | padding: 0 32px; | ||
148 | transition: max-height ease-out 0.3s !important; | ||
149 | overflow: auto; | ||
150 | |||
151 | .data-line { | ||
152 | // padding: 0 32px; | ||
153 | height: 50px; | ||
154 | margin: auto; | ||
155 | display: flex; | ||
156 | justify-content: space-between; | ||
157 | align-items: center; | ||
158 | |||
159 | .td { | ||
160 | position: relative; | 66 | position: relative; |
67 | @extend .fcc; | ||
68 | text-align: center; | ||
69 | } | ||
70 | .w1 { | ||
71 | width: 180px; | ||
72 | } | ||
73 | .w2 { | ||
74 | width: 240px; | ||
75 | } | ||
76 | .w3 { | ||
77 | width: 140px; | ||
78 | } | ||
79 | .w4 { | ||
80 | width: 120px; | ||
81 | } | ||
82 | .w5 { | ||
83 | width: 100px; | ||
84 | } | ||
85 | .table-header { | ||
86 | height: 50px; | ||
87 | border-top-left-radius: 8px; | ||
88 | border-top-right-radius: 8px; | ||
89 | background-color: #f2f2f2; | ||
161 | display: flex; | 90 | display: flex; |
162 | justify-content: center; | ||
163 | align-items: center; | 91 | align-items: center; |
164 | } | 92 | .normal-header { |
165 | 93 | // width: 706px; | |
166 | .cell1 { | 94 | @extend .bb; |
167 | width: 98%; | 95 | padding: 0 32px; |
168 | display: flex; | 96 | width: 100%; |
169 | justify-content: space-between; | 97 | margin: auto; |
170 | margin: auto; | 98 | display: flex; |
171 | } | 99 | justify-content: space-between; |
172 | 100 | align-items: center; | |
173 | .separator-v { | 101 | .title { |
174 | height: 30px; | 102 | font-weight: bold; |
175 | width: 2px; | 103 | color: #575453; |
176 | background-color: #f2f2f2; | 104 | } |
177 | margin: 0 11px; | 105 | .guide { |
178 | } | 106 | transition: all 0.5s; |
107 | cursor: pointer; | ||
108 | width: 12px; | ||
109 | height: 8px; | ||
110 | background: url("~@/assets/images/insurance-query/triangle-down.png") no-repeat center center; | ||
111 | background-size: 100% 100%; | ||
112 | } | ||
113 | .rotate180 { | ||
114 | transform: rotate(180deg); | ||
115 | transition: all 0.5s; | ||
116 | } | ||
117 | } | ||
179 | } | 118 | } |
180 | 119 | .table-content { | |
181 | .label span { | 120 | // width: 770px; |
182 | color: $cOrange; | 121 | height: auto; |
183 | margin-left: 7px; | 122 | max-height: 600px; |
184 | cursor: pointer; | 123 | // display: inline-block; |
185 | text-decoration: underline; | 124 | border-bottom-left-radius: 8px; |
125 | border-bottom-right-radius: 8px; | ||
126 | border-left: solid 1px #f2f2f2; | ||
127 | border-right: solid 1px #f2f2f2; | ||
128 | border-bottom: solid 1px #f2f2f2; | ||
129 | padding: 0 32px; | ||
130 | transition: max-height ease-out 0.3s !important; | ||
131 | overflow: auto; | ||
132 | .data-line { | ||
133 | // padding: 0 32px; | ||
134 | height: 58px; | ||
135 | margin: auto; | ||
136 | display: flex; | ||
137 | justify-content: space-between; | ||
138 | align-items: center; | ||
139 | .td { | ||
140 | position: relative; | ||
141 | display: flex; | ||
142 | justify-content: center; | ||
143 | align-items: center; | ||
144 | } | ||
145 | .cell1 { | ||
146 | width: 98%; | ||
147 | display: flex; | ||
148 | justify-content: space-between; | ||
149 | margin: auto; | ||
150 | } | ||
151 | .separator-v { | ||
152 | height: 30px; | ||
153 | width: 2px; | ||
154 | background-color: #f2f2f2; | ||
155 | margin: 0 11px; | ||
156 | } | ||
157 | } | ||
158 | .label span { | ||
159 | color: $cOrange; | ||
160 | margin-left: 7px; | ||
161 | cursor: pointer; | ||
162 | text-decoration: underline; | ||
163 | } | ||
164 | .separator-h { | ||
165 | width: 100%; | ||
166 | height: 2px; | ||
167 | background-color: #f2f2f2; | ||
168 | } | ||
186 | } | 169 | } |
187 | 170 | .orange { | |
188 | .separator-h { | 171 | background-color: $cOrange; |
189 | width: 100%; | 172 | div { |
190 | height: 1px; | 173 | color: #ffffff; |
191 | background-color: #f2f2f2; | 174 | } |
192 | } | 175 | } |
193 | } | 176 | .new { |
194 | 177 | @include linear-bg; | |
195 | .orange { | 178 | } |
196 | background-color: $cOrange; | 179 | .hide { |
197 | 180 | max-height: 0; | |
198 | div { | 181 | border-bottom: none; |
199 | color: #ffffff; | 182 | } |
183 | .sp { | ||
184 | text-decoration: underline; | ||
185 | padding: 0 4.8px; | ||
186 | } | ||
187 | .ac { | ||
188 | color: $cOrange !important; | ||
200 | } | 189 | } |
201 | } | ||
202 | |||
203 | .new { | ||
204 | @include linear-bg; | ||
205 | } | ||
206 | |||
207 | .hide { | ||
208 | max-height: 0; | ||
209 | border-bottom: none; | ||
210 | } | ||
211 | |||
212 | .sp { | ||
213 | text-decoration: underline; | ||
214 | padding: 0 4.8px; | ||
215 | } | ||
216 | |||
217 | .ac { | ||
218 | color: $cOrange !important; | ||
219 | } | ||
220 | } | 190 | } |
221 | 191 | ||
222 | .show-more-btn { | 192 | .show-more-btn { |
223 | width: 100%; | 193 | width: 100%; |
224 | color: $cOrange !important; | 194 | color: $cOrange !important; |
225 | text-decoration: underline; | 195 | text-decoration: underline; |
226 | cursor: pointer; | 196 | cursor: pointer; |
227 | justify-content: center !important; | 197 | justify-content: center !important; |
228 | } | 198 | } |
229 | 199 | ||
230 | .pointer { | 200 | .pointer { |
231 | cursor: pointer; | 201 | cursor: pointer; |
232 | } | 202 | } |
233 | 203 | ||
234 | .activity { | 204 | .activity { |
235 | background-color: $cOrange !important; | 205 | background-color: $cOrange !important; |
236 | opacity: 0.5; | 206 | opacity: 0.5; |
237 | 207 | div { | |
238 | div { | 208 | color: #ffffff !important; |
239 | color: #ffffff !important; | 209 | } |
240 | } | ||
241 | } | 210 | } |
242 | 211 | ||
243 | .empty { | 212 | .empty { |
244 | height: 500px; | 213 | height: 500px; |
245 | display: flex; | ||
246 | align-items: center; | ||
247 | justify-content: center; | ||
248 | |||
249 | .tips { | ||
250 | align-items: center; | ||
251 | display: flex; | 214 | display: flex; |
252 | 215 | align-items: center; | |
253 | .icon { | 216 | justify-content: center; |
254 | margin-right: 5px; | 217 | .tips { |
255 | display: inline-block; | 218 | align-items: center; |
256 | } | 219 | display: flex; |
257 | 220 | .icon { | |
258 | .btn { | 221 | margin-right: 5px; |
259 | color: $cOrange; | 222 | display: inline-block; |
223 | } | ||
224 | .btn { | ||
225 | color: $cOrange; | ||
226 | } | ||
260 | } | 227 | } |
261 | } | ||
262 | } | 228 | } |
263 | 229 | ||
264 | .down-arrow { | 230 | .down-arrow { |
265 | background-image: url("~@/assets/images/common/down-arrow-white.png"); | 231 | background-image: url("~@/assets/images/common/down-arrow-white.png"); |
266 | width: 16px; | 232 | width: 16px; |
267 | height: 12px; | 233 | height: 12px; |
268 | background-repeat: no-repeat; | 234 | background-repeat: no-repeat; |
269 | background-position: center; | 235 | background-position: center; |
270 | background-size: 100% 100%; | 236 | background-size: 100% 100%; |
271 | margin-left: 7px; | 237 | margin-left: 7px; |
272 | cursor: pointer; | 238 | cursor: pointer; |
273 | } | 239 | } |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
1 | import api from '@/api/api' | 1 | import api from "@/api/api"; |
2 | import { | 2 | import { httpGet, httpPost } from "@/api/fetch-api.js"; |
3 | httpGet, | ||
4 | httpPost | ||
5 | } from '@/api/fetch-api.js' | ||
6 | 3 | ||
7 | import { contactMethodCheck } from '@utils/utils.js'; | 4 | import { contactMethodCheck } from "@utils/utils.js"; |
8 | import { setTitle } from '@/utils/utils.js'; | 5 | import { setTitle } from "@/utils/utils.js"; |
9 | 6 | ||
10 | import Auth from '@components/auth/auth.vue'; | 7 | import Auth from "@components/auth/auth.vue"; |
11 | import modalComp from '@/components/modal-comp/modal-comp.vue'; | 8 | import modalComp from "@/components/modal-comp/modal-comp.vue"; |
12 | import PolicyHeadList from "./policy-head-list.vue"; | 9 | import PolicyHeadList from "./policy-head-list.vue"; |
13 | import Vue from 'vue'; | 10 | import Vue from "vue"; |
14 | import { Loading } from 'vant'; | 11 | import { Loading } from "vant"; |
15 | Vue.use(Loading); | 12 | Vue.use(Loading); |
16 | 13 | ||
17 | export default { | 14 | export default { |
... | @@ -19,7 +16,7 @@ export default { | ... | @@ -19,7 +16,7 @@ export default { |
19 | return { | 16 | return { |
20 | loading: false, | 17 | loading: false, |
21 | showForm: false, | 18 | showForm: false, |
22 | key: 'value', | 19 | key: "value", |
23 | checked1: false, | 20 | checked1: false, |
24 | checked2: false, | 21 | checked2: false, |
25 | checked3: false, | 22 | checked3: false, |
... | @@ -30,6 +27,8 @@ export default { | ... | @@ -30,6 +27,8 @@ export default { |
30 | mobile: "", | 27 | mobile: "", |
31 | email: "", | 28 | email: "", |
32 | address: "", | 29 | address: "", |
30 | |||
31 | areaCode: "" | ||
33 | }, | 32 | }, |
34 | errorTips: { | 33 | errorTips: { |
35 | e1: "", | 34 | e1: "", |
... | @@ -42,7 +41,30 @@ export default { | ... | @@ -42,7 +41,30 @@ export default { |
42 | targetPath: "", | 41 | targetPath: "", |
43 | modalIcon: "succ", | 42 | modalIcon: "succ", |
44 | modalContent: "", | 43 | modalContent: "", |
45 | } | 44 | |
45 | // 新增 | ||
46 | // 国际号码区号列表 | ||
47 | areaCodeList: [ | ||
48 | { | ||
49 | v: "abc", | ||
50 | n: "abc" | ||
51 | }, | ||
52 | { | ||
53 | v: "efg", | ||
54 | n: "efg" | ||
55 | } | ||
56 | ], | ||
57 | countryList:[ | ||
58 | { | ||
59 | v: "cn", | ||
60 | n: "中国" | ||
61 | }, | ||
62 | { | ||
63 | v: "en", | ||
64 | n: "美国" | ||
65 | } | ||
66 | ] | ||
67 | }; | ||
46 | }, | 68 | }, |
47 | components: { | 69 | components: { |
48 | Auth, | 70 | Auth, |
... | @@ -51,10 +73,12 @@ export default { | ... | @@ -51,10 +73,12 @@ export default { |
51 | }, | 73 | }, |
52 | computed: { | 74 | computed: { |
53 | locale() { | 75 | locale() { |
54 | return this.$i18n.locale || 'tc'; | 76 | return this.$i18n.locale || "tc"; |
55 | }, | 77 | }, |
56 | i18n() { | 78 | i18n() { |
57 | return this.$i18n.messages && this.$i18n.locale ? this.$i18n.messages[this.$i18n.locale] : {}; | 79 | return this.$i18n.messages && this.$i18n.locale |
80 | ? this.$i18n.messages[this.$i18n.locale] | ||
81 | : {}; | ||
58 | }, | 82 | }, |
59 | submitBtnDisabled() { | 83 | submitBtnDisabled() { |
60 | let b1 = !this.selectedPolicies || this.selectedPolicies.length == 0; | 84 | let b1 = !this.selectedPolicies || this.selectedPolicies.length == 0; |
... | @@ -100,27 +124,29 @@ export default { | ... | @@ -100,27 +124,29 @@ export default { |
100 | addressAcceptMsg: this.checked2 ? 1 : 0, | 124 | addressAcceptMsg: this.checked2 ? 1 : 0, |
101 | emailAcceptMsg: this.checked3 ? 1 : 0, | 125 | emailAcceptMsg: this.checked3 ? 1 : 0, |
102 | policies: policies | 126 | policies: policies |
103 | } | 127 | }; |
104 | this.loading = true; | 128 | this.loading = true; |
105 | httpPost({ | 129 | httpPost({ |
106 | url: api.updatePolicyContanct, | 130 | url: api.updatePolicyContanct, |
107 | data: data, | 131 | data: data, |
108 | sid: true | 132 | sid: true |
109 | }).then(() => { | ||
110 | this.loading = false; | ||
111 | this.showSuccess(); | ||
112 | }).catch(err => { | ||
113 | this.loading = false; | ||
114 | if (err.code == 404) { | ||
115 | this.$refs.auth.noAuth(); | ||
116 | } | ||
117 | }) | 133 | }) |
134 | .then(() => { | ||
135 | this.loading = false; | ||
136 | this.showSuccess(); | ||
137 | }) | ||
138 | .catch(err => { | ||
139 | this.loading = false; | ||
140 | if (err.code == 404) { | ||
141 | this.$refs.auth.noAuth(); | ||
142 | } | ||
143 | }); | ||
118 | } | 144 | } |
119 | }, | 145 | }, |
120 | checkMobile() { | 146 | checkMobile() { |
121 | if (this.data.mobile) { | 147 | if (this.data.mobile) { |
122 | let hkMobile = contactMethodCheck('hkmobile', this.data.mobile); | 148 | let hkMobile = contactMethodCheck("hkmobile", this.data.mobile); |
123 | let zhMobile = contactMethodCheck('mobile', this.data.mobile); | 149 | let zhMobile = contactMethodCheck("mobile", this.data.mobile); |
124 | if (!hkMobile && !zhMobile) { | 150 | if (!hkMobile && !zhMobile) { |
125 | this.errorTips.e1 = this.i18n.policyChangeContact.errorTips.e1; | 151 | this.errorTips.e1 = this.i18n.policyChangeContact.errorTips.e1; |
126 | return false; | 152 | return false; |
... | @@ -132,7 +158,7 @@ export default { | ... | @@ -132,7 +158,7 @@ export default { |
132 | return true; | 158 | return true; |
133 | }, | 159 | }, |
134 | checkEmail() { | 160 | checkEmail() { |
135 | if (this.data.email && !contactMethodCheck('email', this.data.email)) { | 161 | if (this.data.email && !contactMethodCheck("email", this.data.email)) { |
136 | this.errorTips.e3 = this.i18n.policyChangeContact.errorTips.e3; | 162 | this.errorTips.e3 = this.i18n.policyChangeContact.errorTips.e3; |
137 | return false; | 163 | return false; |
138 | } | 164 | } |
... | @@ -155,23 +181,25 @@ export default { | ... | @@ -155,23 +181,25 @@ export default { |
155 | url: api.policyDetail, | 181 | url: api.policyDetail, |
156 | data: param, | 182 | data: param, |
157 | sid: true | 183 | sid: true |
158 | }).then(response => { | 184 | }) |
159 | this.data = {}; | 185 | .then(response => { |
160 | if (response) { | 186 | this.data = {}; |
161 | this.loading = false; | 187 | if (response) { |
162 | this.dataInit = true; | 188 | this.loading = false; |
163 | this.data.mobile = response.clientMobileNo; | 189 | this.dataInit = true; |
164 | this.checked1 = "1" == response.clientMobileAcceptMessage; | 190 | this.data.mobile = response.clientMobileNo; |
165 | this.data.address = response.clientContactAddress; | 191 | this.checked1 = "1" == response.clientMobileAcceptMessage; |
166 | this.checked2 = "1" == response.clientAddressAcceptMessage; | 192 | this.data.address = response.clientContactAddress; |
167 | this.data.email = response.clientEmail; | 193 | this.checked2 = "1" == response.clientAddressAcceptMessage; |
168 | this.checked3 = "1" == response.clientEmailAcceptMessage; | 194 | this.data.email = response.clientEmail; |
169 | } | 195 | this.checked3 = "1" == response.clientEmailAcceptMessage; |
170 | }).catch(res => { | 196 | } |
171 | if (res.code == "404") { | 197 | }) |
172 | this.$refs.auth.noAuth(); | 198 | .catch(res => { |
173 | } | 199 | if (res.code == "404") { |
174 | }); | 200 | this.$refs.auth.noAuth(); |
201 | } | ||
202 | }); | ||
175 | }, | 203 | }, |
176 | handlePolicySelect(data) { | 204 | handlePolicySelect(data) { |
177 | this.selectedPolicies = data; | 205 | this.selectedPolicies = data; |
... | @@ -193,17 +221,17 @@ export default { | ... | @@ -193,17 +221,17 @@ export default { |
193 | } | 221 | } |
194 | }, | 222 | }, |
195 | watch: { | 223 | watch: { |
196 | 'data.mobile': function () { | 224 | "data.mobile": function() { |
197 | this.errorTips.e1 = ""; | 225 | this.errorTips.e1 = ""; |
198 | }, | 226 | }, |
199 | 'data.address': function () { | 227 | "data.address": function() { |
200 | this.errorTips.e2 = ""; | 228 | this.errorTips.e2 = ""; |
201 | }, | 229 | }, |
202 | 'data.email': function () { | 230 | "data.email": function() { |
203 | this.errorTips.e3 = ""; | 231 | this.errorTips.e3 = ""; |
204 | } | 232 | } |
205 | }, | 233 | }, |
206 | mounted() { | 234 | mounted() { |
207 | this.initTitle(); | 235 | this.initTitle(); |
208 | } | 236 | } |
209 | } | 237 | }; | ... | ... |
1 | @import '@/styles/_support.scss'; | 1 | @import "@/styles/_support.scss"; |
2 | .comp { | ||
3 | font-size: $fontSize-M2; | ||
4 | } | ||
2 | 5 | ||
3 | .container { | 6 | .container { |
4 | @extend .bb; | 7 | @extend .bb; |
5 | padding: 22px 36px 30px 26px; | 8 | padding: 24px 32px; |
6 | |||
7 | } | 9 | } |
8 | 10 | ||
9 | .border { | 11 | .border { |
... | @@ -15,29 +17,47 @@ | ... | @@ -15,29 +17,47 @@ |
15 | .form { | 17 | .form { |
16 | display: flex; | 18 | display: flex; |
17 | flex-wrap: wrap; | 19 | flex-wrap: wrap; |
18 | |||
19 | &-item { | 20 | &-item { |
20 | position: relative; | 21 | position: relative; |
21 | margin-bottom: 28px; | ||
22 | width: 100%; | 22 | width: 100%; |
23 | |||
24 | &:last-child { | 23 | &:last-child { |
25 | margin-bottom: 0; | 24 | margin-bottom: 0; |
26 | } | 25 | } |
27 | |||
28 | .label { | 26 | .label { |
29 | color: #f05a23; | ||
30 | display: flex; | 27 | display: flex; |
31 | align-items: center; | 28 | align-items: center; |
32 | margin-bottom: 8.4px; | 29 | margin-bottom: 8.4px; |
33 | |||
34 | .icon { | 30 | .icon { |
35 | width: 26px; | 31 | margin-right: 14px; |
36 | display: flex; | ||
37 | } | 32 | } |
38 | |||
39 | img { | 33 | img { |
40 | height: 12px; | 34 | } |
35 | } | ||
36 | |||
37 | .ipt-gird { | ||
38 | &-item { | ||
39 | margin: 0 auto 48px; | ||
40 | padding-left: 18px; | ||
41 | padding-right: 18px; | ||
42 | |||
43 | &:first-child { | ||
44 | margin-right: 0; | ||
45 | padding-left: 0; | ||
46 | } | ||
47 | &:last-child { | ||
48 | margin-right: 0; | ||
49 | padding-right: 0; | ||
50 | } | ||
51 | } | ||
52 | |||
53 | .w1 { | ||
54 | width: 210px; | ||
55 | } | ||
56 | .w2 { | ||
57 | width: 300px; | ||
58 | } | ||
59 | .w3 { | ||
60 | width: 360px; | ||
41 | } | 61 | } |
42 | } | 62 | } |
43 | 63 | ||
... | @@ -46,26 +66,18 @@ | ... | @@ -46,26 +66,18 @@ |
46 | justify-content: space-between; | 66 | justify-content: space-between; |
47 | align-items: center; | 67 | align-items: center; |
48 | position: relative; | 68 | position: relative; |
49 | |||
50 | // input和下拉 | 69 | // input和下拉 |
51 | .ipt { | 70 | .ipt { |
52 | flex: 1; | 71 | flex: 1; |
53 | } | 72 | } |
54 | |||
55 | .agree { | ||
56 | cursor: pointer; | ||
57 | } | ||
58 | |||
59 | .name-ipt { | 73 | .name-ipt { |
60 | width: 164px; | 74 | width: 164px; |
61 | } | 75 | } |
62 | |||
63 | .phone-ipt { | 76 | .phone-ipt { |
64 | width: 164px; | 77 | width: 164px; |
65 | } | 78 | } |
66 | 79 | .mail-ipt { | |
67 | .mail-ipt {} | 80 | } |
68 | |||
69 | // 长文本 | 81 | // 长文本 |
70 | .textarea { | 82 | .textarea { |
71 | min-height: 105px; | 83 | min-height: 105px; |
... | @@ -73,62 +85,58 @@ | ... | @@ -73,62 +85,58 @@ |
73 | @extend .bb; | 85 | @extend .bb; |
74 | padding: 9px; | 86 | padding: 9px; |
75 | } | 87 | } |
76 | |||
77 | .down-arrow { | 88 | .down-arrow { |
78 | position: absolute; | 89 | position: absolute; |
79 | top: 26.4px; | 90 | top: 26.4px; |
80 | right: 24px; | 91 | right: 24px; |
81 | background-image: url('~@/assets/images/reservation/re-down-arrow.png'); | 92 | background-image: url("~@/assets/images/reservation/re-down-arrow.png"); |
82 | width: 12px; | 93 | width: 12px; |
83 | height: 8px; | 94 | height: 8px; |
84 | pointer-events: none; | 95 | pointer-events: none; |
85 | cursor: default; | 96 | cursor: default; |
86 | } | 97 | } |
87 | |||
88 | .check-icon { | 98 | .check-icon { |
89 | display: inline-block; | 99 | display: inline-block; |
90 | margin-left: 26px; | 100 | margin-left: 26px; |
91 | margin-right: 8px; | 101 | margin-right: 8px; |
92 | } | 102 | } |
93 | } | 103 | } |
94 | |||
95 | .validator { | 104 | .validator { |
96 | color: $cOrange; | 105 | color: $cOrange2; |
97 | margin-top: 6px; | 106 | margin-top: 6px; |
98 | position: absolute; | 107 | position: absolute; |
99 | right: 192px; | 108 | // right: 0; |
109 | left: 0; | ||
100 | display: flex; | 110 | display: flex; |
101 | align-items: center; | 111 | align-items: center; |
102 | // bottom: 0; | 112 | // bottom: 0; |
103 | |||
104 | img { | 113 | img { |
105 | display: inline-block; | 114 | display: inline-block; |
106 | margin-right: 4.8px; | 115 | margin-right: 4.8px; |
107 | } | 116 | } |
108 | } | 117 | } |
109 | } | 118 | } |
119 | } | ||
110 | 120 | ||
121 | .agree { | ||
122 | width: 100%; | ||
123 | display: flex; | ||
124 | align-items: center; | ||
125 | // margin-top: 48px; | ||
126 | font-size: $fontSizeSmall-M2; | ||
127 | .check-icon { | ||
128 | margin-right: 8px; | ||
129 | width: 18px; | ||
130 | height: 18px; | ||
131 | } | ||
111 | } | 132 | } |
112 | 133 | ||
113 | .submit-btn { | 134 | .submit-btn { |
114 | width: 163px; | 135 | @include btc4(300px, 50px, 18px); |
115 | height: 49px; | 136 | width: 300px; |
116 | margin: 0 auto 0; | 137 | height: 50px; |
117 | line-height: 49px; | 138 | border-radius: 25px; |
118 | box-shadow: 0px 10px 13px 0 rgba(236, 100, 41, 0.2); | 139 | margin: 40px auto 0; |
119 | background-blend-mode: soft-light, ; | ||
120 | background-image: linear-gradient(to top, #000000, #ffffff), linear-gradient(to bottom, #ec6429, #ec6429); | ||
121 | text-align: center; | ||
122 | font-size: 15.5px; | ||
123 | color: #ffffff; | ||
124 | border-radius: 42px; | ||
125 | cursor: pointer; | ||
126 | border: none; | ||
127 | color: #ffffff; | ||
128 | background-color: #f05a23; | ||
129 | box-shadow: 0px 10px 13px 0 rgba(236, 100, 41, 0.2); | ||
130 | background-blend-mode: soft-light, ; | ||
131 | background-image: linear-gradient(to top, #000000, #ffffff), linear-gradient(to bottom, #ec6429, #ec6429); | ||
132 | } | 140 | } |
133 | 141 | ||
134 | .submit-btn:lang(zh) { | 142 | .submit-btn:lang(zh) { |
... | @@ -141,27 +149,23 @@ | ... | @@ -141,27 +149,23 @@ |
141 | overflow-x: auto; | 149 | overflow-x: auto; |
142 | -webkit-overflow-scrolling: touch; | 150 | -webkit-overflow-scrolling: touch; |
143 | width: 92vw; | 151 | width: 92vw; |
144 | |||
145 | } | 152 | } |
146 | } | 153 | } |
147 | 154 | ||
148 | |||
149 | @media (max-width: 768px) { | 155 | @media (max-width: 768px) { |
156 | .container { | ||
157 | padding: 24px 16px; | ||
158 | } | ||
150 | .form { | 159 | .form { |
151 | &-item { | 160 | &-item { |
152 | .ipt-wrap { | 161 | .ipt-wrap { |
153 | display: block; | 162 | display: block; |
154 | } | 163 | } |
155 | 164 | .ipt-gird { | |
156 | .agree { | 165 | &-item { |
157 | margin-top: $marginSmall-M; | 166 | padding: 0; |
158 | |||
159 | .check-icon { | ||
160 | margin-left: 0; | ||
161 | } | 167 | } |
162 | } | 168 | } |
163 | |||
164 | |||
165 | } | 169 | } |
166 | } | 170 | } |
167 | } | 171 | } | ... | ... |
1 | 1 | ||
2 | <template> | 2 | <template> |
3 | <div> | 3 | <div class="policy-change-contact"> |
4 | <auth @onLogin="userLogin" @onLogout="userLogout" :checkProfile="true" ref="auth" :tipModel="'m2'"></auth> | 4 | <!-- 该input用于防止chrome自动填充 --> |
5 | <modal-comp :visible="modalVisiable" :show-confirm="false" :icon="modalIcon" :content="modalContent" :confirm="modalCallback" :overlay="modalCallback"></modal-comp> | 5 | <input type="password" style="display: none;" /> |
6 | <template v-if="showForm"> | 6 | <auth @onLogin="userLogin" @onLogout="userLogout" :checkProfile="true" ref="auth" :tipModel="'m2'"></auth> |
7 | <policy-head-list :multiSelectable="true" @onSelect="handlePolicySelect"></policy-head-list> | 7 | <modal-comp :visible="modalVisiable" :show-confirm="false" :icon="modalIcon" :content="modalContent" :confirm="modalCallback" :overlay="modalCallback"></modal-comp> |
8 | <div class="container border" v-if="selectedPolicies.length > 0 && data"> | 8 | <template v-if="showForm"> |
9 | <div class="form"> | 9 | <policy-head-list :multiSelectable="true" @onSelect="handlePolicySelect"></policy-head-list> |
10 | <div class="form-item"> | ||
11 | <div class="label"> | ||
12 | <div class="icon"><img src="@/assets/images/policy-change-contact/icon-pcc-phone.png"></div>{{$t('policyChangeContact.phone')}} | ||
13 | </div> | ||
14 | <div class="ipt-wrap"> | ||
15 | <input class="ipt mail-ipt" :class="{err : errorTips.e1.length > 0}" type="text" v-model="data.mobile"> | ||
16 | <div class="agree" @click="checked1 = !checked1"> | ||
17 | <img v-if="!checked1" class="check-icon pointer" src="@/assets/images/reservation/un-check.png"> | ||
18 | <img v-else class="check-icon pointer" src="@/assets/images/reservation/check.png"> | ||
19 | <span>{{$t("policyChangeContact.checkTips")}}</span> | ||
20 | </div> | ||
21 | 10 | ||
22 | </div> | 11 | <div class="container border" v-if="selectedPolicies.length > 0 && data"> |
23 | <div class="validator" v-if="errorTips.e1.length > 0"> | 12 | <!-- 表单 --> |
24 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.e1}} | 13 | <div class="form"> |
25 | </div> | 14 | <!-- 1 --> |
26 | </div> | 15 | <div class="form-item"> |
27 | <div class="form-item"> | 16 | <div class="label"> |
28 | <div class="label"> | 17 | <div class="icon"><img src="@/assets/images/policy-change-contact/icon-pcc-phone.png"></div>{{$t('policyChangeContact.phone')}} |
29 | <div class="icon"><img src="@/assets/images/policy-change-contact/icon-pcc-location.png"></div>{{$t('policyChangeContact.address')}} | 18 | </div> |
30 | </div> | ||
31 | <div class="ipt-wrap"> | ||
32 | <input class="ipt mail-ipt" type="text" :class="{err : errorTips.e2.length > 0}" v-model="data.address"> | ||
33 | <div class="agree" @click="checked2 = !checked2"> | ||
34 | <img v-if="!checked2" class="check-icon pointer" src="@/assets/images/reservation/un-check.png"> | ||
35 | <img v-else class="check-icon pointer" src="@/assets/images/reservation/check.png"> | ||
36 | <span>{{$t("policyChangeContact.checkTips")}}</span> | ||
37 | </div> | ||
38 | </div> | ||
39 | <div class="validator" v-if="errorTips.e2.length > 0"> | ||
40 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.e2}} | ||
41 | </div> | ||
42 | </div> | ||
43 | <div class="form-item"> | ||
44 | <div class="label"> | ||
45 | <div class="icon"><img src="@/assets/images/policy-change-contact/icon-pcc-mail.png"></div>{{$t('policyChangeContact.email')}} | ||
46 | </div> | ||
47 | <div class="ipt-wrap"> | ||
48 | <input class="ipt mail-ipt" type="text" :class="{err : errorTips.e3.length > 0}" v-model="data.email"> | ||
49 | <div class="agree" @click="checked3 = !checked3"> | ||
50 | <img v-if="!checked3" class="check-icon pointer" src="@/assets/images/reservation/un-check.png"> | ||
51 | <img v-else class="check-icon pointer" src="@/assets/images/reservation/check.png"> | ||
52 | <span>{{$t("policyChangeContact.checkTips")}}</span> | ||
53 | </div> | ||
54 | </div> | ||
55 | 19 | ||
56 | <div class="validator" v-if="errorTips.e3.length > 0"> | 20 | <div class="gird-g ipt-gird"> |
57 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.e3}} | 21 | <div class="pure-u-1 pure-u-md-6-24 ipt-gird-item"> |
58 | </div> | 22 | <div class="ipt-wrap-linear"> |
59 | </div> | 23 | <div class="down-arrow"></div> |
60 | <div class="submit-btn flex-center" @click="updateContactsHandler" :class="{disabled: submitBtnDisabled}"> | 24 | <div class="cont"> |
61 | <van-loading v-if="loading" /> | 25 | <el-select class="ipt" v-model="data.areaCode" :placeholder="$t('policyChangeContact.form.InternationalArea')"> |
62 | <span>{{$t('policyChangeContact.submit')}}</span> | 26 | <el-option v-for="(item, index) in areaCodeList" :key="index" :label="item.n" :value="item.v"></el-option> |
63 | </div> | 27 | </el-select> |
64 | </div> | 28 | </div> |
29 | </div> | ||
30 | <div class="validator" v-if="errorTips.e1.length > 0"> | ||
31 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.e1}} | ||
32 | </div> | ||
33 | </div> | ||
65 | 34 | ||
66 | </div> | 35 | <div class="pure-u-1 pure-u-md-8-24 ipt-gird-item"> |
67 | <!-- <div v-else style="height:400px"></div> --> | 36 | <div class="ipt-wrap-linear"> |
68 | </template> | 37 | <input class="ipt mail-ipt" :class="{err : errorTips.e1.length > 0}" type="text" v-model="data.mobile" autocomplete="new-password" :placeholder="$t('policyChangeContact.form.Mobile')"> |
69 | </div> | 38 | </div> |
39 | <div class="validator" v-if="errorTips.e1.length > 0"> | ||
40 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.e1}} | ||
41 | </div> | ||
42 | </div> | ||
43 | </div> | ||
44 | </div> | ||
45 | |||
46 | <!-- 2 --> | ||
47 | <div class="form-item"> | ||
48 | <div class="label"> | ||
49 | <div class="icon"><img src="@/assets/images/policy-change-contact/icon-pcc-location.png"></div>{{$t('policyChangeContact.address')}} | ||
50 | </div> | ||
51 | <div class="gird-g ipt-gird"> | ||
52 | <div class="pure-u-1 pure-u-md-6-24 ipt-gird-item"> | ||
53 | <div class="ipt-wrap-linear"> | ||
54 | <div class="down-arrow"></div> | ||
55 | <div class="cont"> | ||
56 | <el-select class="ipt" v-model="data.countryCode" :placeholder="$t('policyChangeContact.form.Nation')"> | ||
57 | <el-option v-for="(item, index) in countryList" :key="index" :label="item.n" :value="item.v"></el-option> | ||
58 | </el-select> | ||
59 | </div> | ||
60 | </div> | ||
61 | <div class="validator" v-if="errorTips.e2.length > 0"> | ||
62 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.e2}} | ||
63 | </div> | ||
64 | </div> | ||
65 | |||
66 | <div class="pure-u-1 pure-u-md-6-24 ipt-gird-item"> | ||
67 | <div class="ipt-wrap-linear"> | ||
68 | <input class="ipt" type="text" :class="{err : errorTips.e2.length > 0}" v-model="data.address" autocomplete="new-password" :placeholder="$t('policyChangeContact.form.District')"> | ||
69 | </div> | ||
70 | <div class="validator" v-if="errorTips.e2.length > 0"> | ||
71 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.e2}} | ||
72 | </div> | ||
73 | </div> | ||
74 | |||
75 | <div class="pure-u-1 pure-u-md-12-24 ipt-gird-item"> | ||
76 | <div class="ipt-wrap-linear"> | ||
77 | <input class="ipt" type="text" :class="{err : errorTips.e2.length > 0}" v-model="data.address" autocomplete="new-password" :placeholder="$t('policyChangeContact.form.Address')"> | ||
78 | </div> | ||
79 | <div class="validator" v-if="errorTips.e2.length > 0"> | ||
80 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.e2}} | ||
81 | </div> | ||
82 | </div> | ||
83 | |||
84 | </div> | ||
85 | </div> | ||
86 | |||
87 | <!-- 3 --> | ||
88 | <div class="form-item"> | ||
89 | <div class="label"> | ||
90 | <div class="icon"><img src="@/assets/images/policy-change-contact/icon-pcc-mail.png"></div>{{$t('policyChangeContact.email')}} | ||
91 | </div> | ||
92 | <div class="gird-g ipt-gird"> | ||
93 | <div class="pure-u-1 ipt-gird-item"> | ||
94 | <div class="pure-u-1 pure-u-md-12-24 ipt-wrap-linear"> | ||
95 | <input class="ipt" type="text" :class="{err : errorTips.e3.length > 0}" v-model="data.email" autocomplete="new-password" :placeholder="$t('policyChangeContact.form.Mail')"> | ||
96 | </div> | ||
97 | <div class="validator" v-if="errorTips.e3.length > 0"> | ||
98 | <img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.e3}} | ||
99 | </div> | ||
100 | </div> | ||
101 | </div> | ||
102 | |||
103 | </div> | ||
104 | <div class="agree" @click="checked1 = !checked1"> | ||
105 | <img v-if="!checked1" class="check-icon pointer" src="@/assets/images/reservation/un-check.png"> | ||
106 | <img v-else class="check-icon pointer" src="@/assets/images/reservation/check.png"> | ||
107 | <span>{{$t("policyChangeContact.checkTips")}}</span> | ||
108 | </div> | ||
109 | |||
110 | <div class="submit-btn" @click="updateContactsHandler" :class="{disabled: submitBtnDisabled}"> | ||
111 | <van-loading v-if="loading" /> | ||
112 | <span>{{$t('policyChangeContact.submit')}}</span> | ||
113 | </div> | ||
114 | </div> | ||
115 | |||
116 | </div> | ||
117 | </template> | ||
118 | </div> | ||
70 | </template> | 119 | </template> |
71 | 120 | ||
72 | <script src="./policy-change-contact.js"></script> | 121 | <script src="./policy-change-contact.js"></script> | ... | ... |
1 | /** | ||
2 | * 组件描述:保单查询列表 | ||
3 | */ | ||
4 | |||
5 | import api from '@/api/api'; | ||
6 | import { | ||
7 | httpPost, | ||
8 | requestDomain | ||
9 | } from '@/api/fetch-api.js'; | ||
10 | |||
11 | import { | ||
12 | mapState | ||
13 | } from 'vuex'; | ||
14 | import { | ||
15 | formatMoney, | ||
16 | getInsuredPeriod, | ||
17 | getInsuredState, | ||
18 | getPolicyName | ||
19 | } from "@/utils/biz.js"; | ||
20 | import Modal2Comp from '@/components/modal2-comp/modal2-comp.vue'; | ||
21 | |||
22 | export default { | ||
23 | props: { | ||
24 | multiSelectable: { | ||
25 | type: Boolean, | ||
26 | default: false | ||
27 | }, | ||
28 | model: { | ||
29 | type: String, | ||
30 | default: "download" | ||
31 | }, | ||
32 | }, | ||
33 | name: "PolicyHeadList", | ||
34 | data() { | ||
35 | return { | ||
36 | myPolicyList: [], | ||
37 | maxShow: 2, | ||
38 | selectPolicyCode: "", | ||
39 | selectPolicyCodes: {}, | ||
40 | hide: false, | ||
41 | showDownloadError: false | ||
42 | } | ||
43 | }, | ||
44 | computed: { | ||
45 | ...mapState({ | ||
46 | policyList: state => state.policyList | ||
47 | }), | ||
48 | lan() { | ||
49 | return this.$i18n.locale; | ||
50 | }, | ||
51 | i18n() { | ||
52 | return this.$i18n.messages && this.$i18n.locale ? this.$i18n.messages[this.$i18n.locale] : {}; | ||
53 | }, | ||
54 | }, | ||
55 | methods: { | ||
56 | onShowTipsOverHandler(event, item, index) { | ||
57 | let child = event.currentTarget.childNodes[0]; | ||
58 | child.style.display = "block"; | ||
59 | }, | ||
60 | onShowTipsOutHandler(event, item, index) { | ||
61 | let child = event.currentTarget.childNodes[0]; | ||
62 | child.style.display = "none"; | ||
63 | }, | ||
64 | toContactUs() { | ||
65 | this.$router.push({ | ||
66 | path: "/custom/service", | ||
67 | query: { | ||
68 | q: "m1" | ||
69 | } | ||
70 | }); | ||
71 | }, | ||
72 | queryList() { | ||
73 | if (this.policyList && this.policyList.length > 0) { | ||
74 | this.myPolicyList = this.policyList; | ||
75 | this.myPolicyList.forEach(element => { | ||
76 | element.activity = false; | ||
77 | }) | ||
78 | this.initSelected(); | ||
79 | } else { | ||
80 | this.checkCustomer().then(() => { | ||
81 | httpPost({ | ||
82 | url: api.policyList, | ||
83 | sid: true | ||
84 | }).then(res => { | ||
85 | if (!res || res.length == 0) { | ||
86 | this.myPolicyList = null; | ||
87 | } else { | ||
88 | res.forEach(element => { | ||
89 | element.activity = false; | ||
90 | // let len = element.policyCode.length; | ||
91 | // element.policyCodeStr = element.policyCode && len > 5 ? | ||
92 | // element.policyCode.substring(0, 2) + "**********" | ||
93 | // + element.policyCode.substring(len - 4, len) : element.policyCode; | ||
94 | }); | ||
95 | this.$store.commit("CACHE_POLICY_LIST", res); | ||
96 | this.myPolicyList = res; | ||
97 | } | ||
98 | this.initSelected(); | ||
99 | }).catch(e => { | ||
100 | this.myPolicyList = null; | ||
101 | switch (e.code) { | ||
102 | case "2002": | ||
103 | // 不是客户,没有购买保单 | ||
104 | break; | ||
105 | } | ||
106 | }); | ||
107 | }); | ||
108 | |||
109 | } | ||
110 | }, | ||
111 | initSelected() { | ||
112 | let selectPolicy = null; | ||
113 | try { | ||
114 | let data = sessionStorage.getItem("_hklife_policy"); | ||
115 | if (data) { | ||
116 | sessionStorage.removeItem("_hklife_policy"); | ||
117 | selectPolicy = JSON.parse(decodeURIComponent(data)); | ||
118 | if (selectPolicy) { | ||
119 | if (this.multiSelectable) { | ||
120 | this.selectPolicyCodes[selectPolicy.code] = selectPolicy; | ||
121 | } else { | ||
122 | this.selectPolicyCode = selectPolicy.code; | ||
123 | } | ||
124 | this.$emit("onSelect", [selectPolicy]); | ||
125 | |||
126 | // 判断最大显示 | ||
127 | let index = -1; | ||
128 | for (let i = 0; i < this.myPolicyList.length; i++) { | ||
129 | if (selectPolicy.code == this.myPolicyList[i].policyCode) { | ||
130 | this.myPolicyList[i].activity = true; | ||
131 | index = i; | ||
132 | } | ||
133 | } | ||
134 | this.$set(this, "myPolicyList", this.myPolicyList); | ||
135 | if (index > 2) { | ||
136 | this.maxShow = this.myPolicyList.length; | ||
137 | } | ||
138 | } | ||
139 | } | ||
140 | } catch (e) { | ||
141 | |||
142 | } | ||
143 | if (!selectPolicy) { | ||
144 | let firstPolicy = this.myPolicyList[0]; | ||
145 | this.myPolicyList[0].activity = true; | ||
146 | selectPolicy = { | ||
147 | id: firstPolicy.policyId, | ||
148 | code: firstPolicy.policyCode | ||
149 | }; | ||
150 | if (this.multiSelectable) { | ||
151 | this.selectPolicyCodes[selectPolicy.code] = selectPolicy; | ||
152 | } else { | ||
153 | this.selectPolicyCode = selectPolicy.code; | ||
154 | } | ||
155 | this.$emit("onSelect", [selectPolicy]); | ||
156 | } | ||
157 | }, | ||
158 | handlePolicySelect(item, index) { | ||
159 | let code = item.policyCode; | ||
160 | if (this.multiSelectable) { | ||
161 | let c = this.selectPolicyCodes[code]; | ||
162 | if (!c || typeof c == "undefined") { | ||
163 | item.activity = true; | ||
164 | this.selectPolicyCodes[code] = { | ||
165 | code: code, | ||
166 | id: item.policyId | ||
167 | }; | ||
168 | } else { | ||
169 | item.activity = false; | ||
170 | delete this.selectPolicyCodes[code]; | ||
171 | } | ||
172 | // this.$set(this, 'myPolicyList', this.myPolicyList); | ||
173 | let data = []; | ||
174 | for (let key in this.selectPolicyCodes) { | ||
175 | data.push(this.selectPolicyCodes[key]); | ||
176 | } | ||
177 | this.$emit("onSelect", data); | ||
178 | } else { | ||
179 | if (code != this.selectPolicyCode) { | ||
180 | this.selectPolicyCode = code; | ||
181 | this.$emit("onSelect", [{ | ||
182 | code: code, | ||
183 | id: item.policyId | ||
184 | }]); | ||
185 | } | ||
186 | } | ||
187 | }, | ||
188 | isPolicySelect(item, index) { | ||
189 | let code = item.policyCode; | ||
190 | if (this.multiSelectable) { | ||
191 | let c = this.selectPolicyCodes[code]; | ||
192 | if (!c || typeof c == "undefined") { | ||
193 | return false; | ||
194 | } else { | ||
195 | return true; | ||
196 | } | ||
197 | } | ||
198 | return false; | ||
199 | }, | ||
200 | checkCustomer() { | ||
201 | return new Promise(resolve => { | ||
202 | resolve(); | ||
203 | // httpPost({ url: api.profile, sid: true }).then(res => { | ||
204 | // if (res.isCustomer == 1) { | ||
205 | // resolve(); | ||
206 | // } else { | ||
207 | // this.gotoCustomerAuthPage(); | ||
208 | // } | ||
209 | // }).catch(res => { | ||
210 | |||
211 | // }); | ||
212 | }); | ||
213 | }, | ||
214 | gotoCustomerAuthPage() { | ||
215 | let c = this.$route.fullPath; | ||
216 | this.$router.push({ | ||
217 | name: "customerAuth", | ||
218 | query: { | ||
219 | c: c | ||
220 | } | ||
221 | }); | ||
222 | }, | ||
223 | formatMoney(s, t) { | ||
224 | if (typeof t == "undefined") { | ||
225 | t = 1; | ||
226 | } | ||
227 | return formatMoney(s, t); | ||
228 | }, | ||
229 | // 保障年限,保n年 | ||
230 | formatInsuredPeriod(t, v) { | ||
231 | return getInsuredPeriod(this.$i18n.locale, t, v); | ||
232 | }, | ||
233 | formatInsuredState(c) { | ||
234 | return getInsuredState(this.$i18n.locale, c); | ||
235 | }, | ||
236 | formatPolicyName(c, n) { | ||
237 | return getPolicyName(this.$i18n.locale, c, n); | ||
238 | }, | ||
239 | downloadPolicy(policy) { | ||
240 | if (policy) { | ||
241 | httpPost({ | ||
242 | url: api.getDownloadPath, | ||
243 | sid: true, | ||
244 | data: { | ||
245 | policyCode: policy.policyCode | ||
246 | } | ||
247 | }).then(res => { | ||
248 | if (res) { | ||
249 | let url = requestDomain() + api.downloadPolicy + "/" + res; | ||
250 | window.open(url); | ||
251 | } else { | ||
252 | this.showDownloadError = true; | ||
253 | } | ||
254 | }); | ||
255 | } | ||
256 | } | ||
257 | }, | ||
258 | components: { | ||
259 | Modal2Comp | ||
260 | }, | ||
261 | mounted() { | ||
262 | this.queryList(); | ||
263 | }, | ||
264 | } |
1 | @import '@/styles/_support.scss'; | ||
2 | |||
3 | .list-container { | ||
4 | overflow-x: auto; | ||
5 | margin-bottom: 24px; | ||
6 | } | ||
7 | |||
8 | .hide { | ||
9 | max-height: 0; | ||
10 | border-bottom: none; | ||
11 | } | ||
12 | |||
13 | .table-contaner { | ||
14 | position: relative; | ||
15 | } | ||
16 | |||
17 | .download { | ||
18 | position: relative; | ||
19 | |||
20 | &-tips { | ||
21 | display: none; | ||
22 | position: absolute; | ||
23 | top: -3px; | ||
24 | left: 20px; | ||
25 | z-index: 11; | ||
26 | padding: 2px; | ||
27 | @include border-tans(); | ||
28 | min-width: 80px; | ||
29 | } | ||
30 | } | ||
31 | |||
32 | .guide { | ||
33 | position: absolute; | ||
34 | transition: all 0.5s; | ||
35 | cursor: pointer; | ||
36 | width: 12px; | ||
37 | height: 8px; | ||
38 | background: url("~@/assets/images/insurance-query/triangle-down2.png") no-repeat center center; | ||
39 | background-size: 100% 100%; | ||
40 | top: 16px; | ||
41 | right: 26px; | ||
42 | } | ||
43 | |||
44 | .rotate180 { | ||
45 | transform: rotate(180deg); | ||
46 | transition: all 0.5s; | ||
47 | } | ||
48 | |||
49 | .cell-group { | ||
50 | margin-bottom: 12px; | ||
51 | |||
52 | &:last-child { | ||
53 | margin-bottom: 0; | ||
54 | } | ||
55 | |||
56 | div { | ||
57 | color: #4c4948; | ||
58 | } | ||
59 | |||
60 | .w1 { | ||
61 | // width: 120px; | ||
62 | width: 240px; | ||
63 | text-align: center; | ||
64 | } | ||
65 | |||
66 | .w2 { | ||
67 | // width: 75px; | ||
68 | width: 150px; | ||
69 | text-align: center; | ||
70 | } | ||
71 | |||
72 | .table-header { | ||
73 | // width: 770px; | ||
74 | height: 39px; | ||
75 | border-top-left-radius: 8px; | ||
76 | border-top-right-radius: 8px; | ||
77 | background-color: #f2f2f2; | ||
78 | display: flex; | ||
79 | align-items: center; | ||
80 | |||
81 | .normal-header { | ||
82 | // width: 706px; | ||
83 | @extend .bb; | ||
84 | padding: 0 32px; | ||
85 | width: 100%; | ||
86 | margin: auto; | ||
87 | display: flex; | ||
88 | justify-content: space-between; | ||
89 | align-items: center; | ||
90 | |||
91 | .title { | ||
92 | font-weight: bold; | ||
93 | color: #575453; | ||
94 | } | ||
95 | |||
96 | .guide { | ||
97 | transition: all 0.5s; | ||
98 | cursor: pointer; | ||
99 | width: 12px; | ||
100 | height: 8px; | ||
101 | background: url("~@/assets/images/insurance-query/triangle-down.png") no-repeat center center; | ||
102 | background-size: 100% 100%; | ||
103 | } | ||
104 | |||
105 | .rotate180 { | ||
106 | transform: rotate(180deg); | ||
107 | transition: all 0.5s; | ||
108 | } | ||
109 | } | ||
110 | } | ||
111 | |||
112 | .table-content { | ||
113 | // width: 770px; | ||
114 | |||
115 | height: auto; | ||
116 | max-height: 600px; | ||
117 | // display: inline-block; | ||
118 | border-bottom-left-radius: 8px; | ||
119 | border-bottom-right-radius: 8px; | ||
120 | border-left: solid 1px #f2f2f2; | ||
121 | border-right: solid 1px #f2f2f2; | ||
122 | border-bottom: solid 1px #f2f2f2; | ||
123 | padding: 0 32px; | ||
124 | transition: max-height ease-out 0.3s !important; | ||
125 | overflow: auto; | ||
126 | |||
127 | .data-line { | ||
128 | // padding: 0 32px; | ||
129 | height: 50px; | ||
130 | margin: auto; | ||
131 | display: flex; | ||
132 | justify-content: space-between; | ||
133 | align-items: center; | ||
134 | |||
135 | .td { | ||
136 | display: flex; | ||
137 | justify-content: center; | ||
138 | align-items: center; | ||
139 | |||
140 | |||
141 | } | ||
142 | |||
143 | .cell1 { | ||
144 | width: 98%; | ||
145 | display: flex; | ||
146 | justify-content: space-between; | ||
147 | margin: auto; | ||
148 | } | ||
149 | |||
150 | .separator-v { | ||
151 | height: 30px; | ||
152 | width: 2px; | ||
153 | background-color: #f2f2f2; | ||
154 | margin: 0 11px; | ||
155 | } | ||
156 | } | ||
157 | |||
158 | .label span { | ||
159 | color: $cOrange; | ||
160 | margin-left: 7px; | ||
161 | cursor: pointer; | ||
162 | text-decoration: underline; | ||
163 | } | ||
164 | |||
165 | .separator-h { | ||
166 | width: 100%; | ||
167 | height: 1px; | ||
168 | background-color: #f2f2f2; | ||
169 | } | ||
170 | } | ||
171 | |||
172 | .orange { | ||
173 | background-color: $cOrange; | ||
174 | |||
175 | div { | ||
176 | color: #ffffff; | ||
177 | } | ||
178 | } | ||
179 | |||
180 | .hide { | ||
181 | max-height: 0; | ||
182 | border-bottom: none; | ||
183 | } | ||
184 | |||
185 | .sp { | ||
186 | text-decoration: underline; | ||
187 | padding: 0 4.8px; | ||
188 | } | ||
189 | |||
190 | .ac { | ||
191 | color: $cOrange !important; | ||
192 | } | ||
193 | } | ||
194 | |||
195 | .show-more-btn { | ||
196 | width: 100%; | ||
197 | color: $cOrange !important; | ||
198 | text-decoration: underline; | ||
199 | cursor: pointer; | ||
200 | justify-content: center !important; | ||
201 | } | ||
202 | |||
203 | .pointer { | ||
204 | cursor: pointer; | ||
205 | } | ||
206 | |||
207 | .activity { | ||
208 | background-color: $cOrange !important; | ||
209 | opacity: .5; | ||
210 | |||
211 | div { | ||
212 | color: #FFFFFF !important; | ||
213 | } | ||
214 | } | ||
215 | |||
216 | .empty { | ||
217 | height: 500px; | ||
218 | display: flex; | ||
219 | align-items: center; | ||
220 | justify-content: center; | ||
221 | |||
222 | .tips { | ||
223 | align-items: center; | ||
224 | display: flex; | ||
225 | |||
226 | .icon { | ||
227 | margin-right: 5px; | ||
228 | display: inline-block; | ||
229 | } | ||
230 | |||
231 | .btn { | ||
232 | color: $cOrange; | ||
233 | } | ||
234 | } | ||
235 | } | ||
236 |
1 | <template> | ||
2 | <div class="list-container"> | ||
3 | <modal2-comp :visible="showDownloadError" :close="()=>{showDownloadError = false}" :content="$t('glbalTips.sysError')"></modal2-comp> | ||
4 | <div class="cell-group"> | ||
5 | <div class="table-contaner"> | ||
6 | <div class="table-header orange" > | ||
7 | <div class="normal-header"> | ||
8 | <div class="td w1">{{$t('customService.insuranceQuery.InsurantNumber')}}</div> | ||
9 | <div class="td w2">{{$t('customService.insuranceQuery.policyState')}}</div> | ||
10 | <div class="td w2">{{$t('customService.insuranceQuery.activeDate')}}</div> | ||
11 | <div class="td w2">{{$t('customService.insuranceQuery.Insurant')}}</div> | ||
12 | <div class="td w1">{{$t('customService.insuranceQuery.InsurantName')}}</div> | ||
13 | <div class="td w2">{{$t('customService.insuranceQuery.InsurantAmount')}}</div> | ||
14 | <div class="td w2">{{$t('customService.insuranceQuery.effectiveDate')}}</div> | ||
15 | <div class="td w2">{{$t('customService.insuranceQuery.period')}}</div> | ||
16 | </div> | ||
17 | </div> | ||
18 | <div class="guide" :class="{rotate180 : hide}" @click="hide = !hide"></div> | ||
19 | </div> | ||
20 | <div class="table-content" :class="{hide : hide}"> | ||
21 | <template v-if="myPolicyList"> | ||
22 | <div v-for="(item,index) in myPolicyList" :key="index"> | ||
23 | <template v-if="index < maxShow"> | ||
24 | <div class="data-line" @click="handlePolicySelect(item,index)"> | ||
25 | <div class="td w1 pointer"> | ||
26 | <template v-if="multiSelectable"> | ||
27 | <img v-if="item.activity" class="icon-check pointer" src="@/assets/images/insurance-query/check.png"> | ||
28 | <img v-else class="icon-check pointer" src="@/assets/images/insurance-query/un-check.png"> | ||
29 | <span class="sp" :class="{ac: item.activity}">{{item.policyCode}}</span> | ||
30 | </template> | ||
31 | <template v-else> | ||
32 | <template v-if="model != 'download'"> | ||
33 | <img v-if="selectPolicyCode == item.policyCode" class="icon-check pointer" src="@/assets/images/insurance-query/check.png"> | ||
34 | <img v-else class="icon-check pointer" src="@/assets/images/insurance-query/un-check.png"> | ||
35 | </template> | ||
36 | <span class="sp" :class="{ac: selectPolicyCode == item.policyCode}">{{item.policyCode}}</span> | ||
37 | <template v-if="model == 'download'"> | ||
38 | <div class="download" @mouseover="onShowTipsOverHandler($event,item,index)" @mouseout="onShowTipsOutHandler($event,item,index)" @click="downloadPolicy(item)"> | ||
39 | <div class="download-tips"> | ||
40 | <div class="cont">{{$t('customService.insuranceQuery.downloadClick')}}</div> | ||
41 | </div> | ||
42 | <img class="icon-download" src="@/assets/images/insurance-query/icon-down-load.png" alt=""> | ||
43 | </div> | ||
44 | </template> | ||
45 | </template> | ||
46 | </div> | ||
47 | |||
48 | <div class="td w2">{{formatInsuredState(item.policyState)}}</div> | ||
49 | <div class="td w2">{{item.activeDate?item.activeDate.split(" ")[0]:""}}</div> | ||
50 | <div class="td w2">{{lan == 'en' ? (item.insuredNameEn ? item.insuredNameEn : item.insuredNameCn) : (item.insuredNameCn ? item.insuredNameCn : item.insuredNameEn)}}</div> | ||
51 | <div class="td w1">{{formatPolicyName(item.productCode, item.productName)}}</div> | ||
52 | <div class="td w2">{{item.moneyCode}} {{formatMoney(item.amount,0)}}</div> | ||
53 | <div class="td w2">{{item.expireAt?item.expireAt.split(" ")[0]:""}}</div> | ||
54 | <!-- <div class="td w2">{{item.guaranteeAge?item.guaranteeAge.split(" ")[0]:""}}</div> --> | ||
55 | <div class="td w2">{{formatInsuredPeriod(item.insuredPeriodType,item.insuredPeriodValue)}}</div> | ||
56 | |||
57 | </div> | ||
58 | <div class="separator-h" v-if="index < myPolicyList.length - 1 && index < maxShow - 1"></div> | ||
59 | </template> | ||
60 | </div> | ||
61 | <template v-if="!policyList || maxShow < policyList.length"> | ||
62 | <div class="separator-h"></div> | ||
63 | <div class="data-line show-more-btn" @click="maxShow = policyList.length">{{$t('customService.insuranceQuery.showMore')}}</div> | ||
64 | </template> | ||
65 | </template> | ||
66 | |||
67 | <template v-else> | ||
68 | <div class="empty"> | ||
69 | <div class="tips"> | ||
70 | <img class="icon" src="@/assets/images/common/icon-alert-i.png" alt=""> | ||
71 | <div class="txt"> | ||
72 | {{$t('customService.insuranceQuery.noPolicy')}} | ||
73 | <span class="pointer btn" @click="toContactUs">{{$t('customService.insuranceQuery.customService')}}</span> | ||
74 | </div> | ||
75 | </div> | ||
76 | </div> | ||
77 | </template> | ||
78 | </div> | ||
79 | </div> | ||
80 | </div> | ||
81 | </template> | ||
82 | |||
83 | |||
84 | <script src="./policy-head-list.js"></script> | ||
85 | <style lang="scss" scoped> | ||
86 | @import "./policy-head-list.scss"; | ||
87 | </style> |
1 | @import '@/styles/_support.scss'; | 1 | @import "@/styles/_support.scss"; |
2 | |||
3 | .list-container { | 2 | .list-container { |
4 | overflow-x: auto; | 3 | overflow-x: auto; |
5 | margin-bottom: 24px; | 4 | margin-bottom: 24px; |
5 | font-size: $fontSize-M2; | ||
6 | } | 6 | } |
7 | 7 | ||
8 | .hide { | 8 | .hide { |
... | @@ -16,7 +16,6 @@ | ... | @@ -16,7 +16,6 @@ |
16 | 16 | ||
17 | .download { | 17 | .download { |
18 | position: relative; | 18 | position: relative; |
19 | |||
20 | &-tips { | 19 | &-tips { |
21 | display: none; | 20 | display: none; |
22 | position: absolute; | 21 | position: absolute; |
... | @@ -35,7 +34,8 @@ | ... | @@ -35,7 +34,8 @@ |
35 | cursor: pointer; | 34 | cursor: pointer; |
36 | width: 12px; | 35 | width: 12px; |
37 | height: 8px; | 36 | height: 8px; |
38 | background: url("~@/assets/images/insurance-query/triangle-down2.png") no-repeat center center; | 37 | background: url("~@/assets/images/insurance-query/triangle-down2.png") |
38 | no-repeat center center; | ||
39 | background-size: 100% 100%; | 39 | background-size: 100% 100%; |
40 | top: 16px; | 40 | top: 16px; |
41 | right: 26px; | 41 | right: 26px; |
... | @@ -48,36 +48,30 @@ | ... | @@ -48,36 +48,30 @@ |
48 | 48 | ||
49 | .cell-group { | 49 | .cell-group { |
50 | margin-bottom: 12px; | 50 | margin-bottom: 12px; |
51 | |||
52 | &:last-child { | 51 | &:last-child { |
53 | margin-bottom: 0; | 52 | margin-bottom: 0; |
54 | } | 53 | } |
55 | |||
56 | div { | 54 | div { |
57 | color: #4c4948; | 55 | color: #4c4948; |
58 | } | 56 | } |
59 | |||
60 | .w1 { | 57 | .w1 { |
61 | // width: 120px; | 58 | // width: 120px; |
62 | width: 240px; | 59 | width: 240px; |
63 | text-align: center; | 60 | text-align: center; |
64 | } | 61 | } |
65 | |||
66 | .w2 { | 62 | .w2 { |
67 | // width: 75px; | 63 | // width: 75px; |
68 | width: 150px; | 64 | width: 150px; |
69 | text-align: center; | 65 | text-align: center; |
70 | } | 66 | } |
71 | |||
72 | .table-header { | 67 | .table-header { |
73 | // width: 770px; | 68 | // width: 770px; |
74 | height: 39px; | 69 | height: 50px; |
75 | border-top-left-radius: 8px; | 70 | border-top-left-radius: 8px; |
76 | border-top-right-radius: 8px; | 71 | border-top-right-radius: 8px; |
77 | background-color: #f2f2f2; | 72 | background-color: #f2f2f2; |
78 | display: flex; | 73 | display: flex; |
79 | align-items: center; | 74 | align-items: center; |
80 | |||
81 | .normal-header { | 75 | .normal-header { |
82 | // width: 706px; | 76 | // width: 706px; |
83 | @extend .bb; | 77 | @extend .bb; |
... | @@ -87,31 +81,27 @@ | ... | @@ -87,31 +81,27 @@ |
87 | display: flex; | 81 | display: flex; |
88 | justify-content: space-between; | 82 | justify-content: space-between; |
89 | align-items: center; | 83 | align-items: center; |
90 | |||
91 | .title { | 84 | .title { |
92 | font-weight: bold; | 85 | font-weight: bold; |
93 | color: #575453; | 86 | color: #575453; |
94 | } | 87 | } |
95 | |||
96 | .guide { | 88 | .guide { |
97 | transition: all 0.5s; | 89 | transition: all 0.5s; |
98 | cursor: pointer; | 90 | cursor: pointer; |
99 | width: 12px; | 91 | width: 12px; |
100 | height: 8px; | 92 | height: 8px; |
101 | background: url("~@/assets/images/insurance-query/triangle-down.png") no-repeat center center; | 93 | background: url("~@/assets/images/insurance-query/triangle-down.png") |
94 | no-repeat center center; | ||
102 | background-size: 100% 100%; | 95 | background-size: 100% 100%; |
103 | } | 96 | } |
104 | |||
105 | .rotate180 { | 97 | .rotate180 { |
106 | transform: rotate(180deg); | 98 | transform: rotate(180deg); |
107 | transition: all 0.5s; | 99 | transition: all 0.5s; |
108 | } | 100 | } |
109 | } | 101 | } |
110 | } | 102 | } |
111 | |||
112 | .table-content { | 103 | .table-content { |
113 | // width: 770px; | 104 | // width: 770px; |
114 | |||
115 | height: auto; | 105 | height: auto; |
116 | max-height: 600px; | 106 | max-height: 600px; |
117 | // display: inline-block; | 107 | // display: inline-block; |
... | @@ -123,30 +113,24 @@ | ... | @@ -123,30 +113,24 @@ |
123 | padding: 0 32px; | 113 | padding: 0 32px; |
124 | transition: max-height ease-out 0.3s !important; | 114 | transition: max-height ease-out 0.3s !important; |
125 | overflow: auto; | 115 | overflow: auto; |
126 | |||
127 | .data-line { | 116 | .data-line { |
128 | // padding: 0 32px; | 117 | // padding: 0 32px; |
129 | height: 50px; | 118 | height: 58px; |
130 | margin: auto; | 119 | margin: auto; |
131 | display: flex; | 120 | display: flex; |
132 | justify-content: space-between; | 121 | justify-content: space-between; |
133 | align-items: center; | 122 | align-items: center; |
134 | |||
135 | .td { | 123 | .td { |
136 | display: flex; | 124 | display: flex; |
137 | justify-content: center; | 125 | justify-content: center; |
138 | align-items: center; | 126 | align-items: center; |
139 | |||
140 | |||
141 | } | 127 | } |
142 | |||
143 | .cell1 { | 128 | .cell1 { |
144 | width: 98%; | 129 | width: 98%; |
145 | display: flex; | 130 | display: flex; |
146 | justify-content: space-between; | 131 | justify-content: space-between; |
147 | margin: auto; | 132 | margin: auto; |
148 | } | 133 | } |
149 | |||
150 | .separator-v { | 134 | .separator-v { |
151 | height: 30px; | 135 | height: 30px; |
152 | width: 2px; | 136 | width: 2px; |
... | @@ -154,39 +138,35 @@ | ... | @@ -154,39 +138,35 @@ |
154 | margin: 0 11px; | 138 | margin: 0 11px; |
155 | } | 139 | } |
156 | } | 140 | } |
157 | |||
158 | .label span { | 141 | .label span { |
159 | color: $cOrange; | 142 | color: $cOrange; |
160 | margin-left: 7px; | 143 | margin-left: 7px; |
161 | cursor: pointer; | 144 | cursor: pointer; |
162 | text-decoration: underline; | 145 | text-decoration: underline; |
163 | } | 146 | } |
164 | |||
165 | .separator-h { | 147 | .separator-h { |
166 | width: 100%; | 148 | width: 100%; |
167 | height: 1px; | 149 | height: 2px; |
168 | background-color: #f2f2f2; | 150 | background-color: #f2f2f2; |
169 | } | 151 | } |
170 | } | 152 | } |
171 | |||
172 | .orange { | 153 | .orange { |
173 | background-color: $cOrange; | 154 | background-color: $cOrange; |
174 | |||
175 | div { | 155 | div { |
176 | color: #ffffff; | 156 | color: #ffffff; |
177 | } | 157 | } |
178 | } | 158 | } |
179 | 159 | .new { | |
160 | @include linear-bg; | ||
161 | } | ||
180 | .hide { | 162 | .hide { |
181 | max-height: 0; | 163 | max-height: 0; |
182 | border-bottom: none; | 164 | border-bottom: none; |
183 | } | 165 | } |
184 | |||
185 | .sp { | 166 | .sp { |
186 | text-decoration: underline; | 167 | text-decoration: underline; |
187 | padding: 0 4.8px; | 168 | padding: 0 4.8px; |
188 | } | 169 | } |
189 | |||
190 | .ac { | 170 | .ac { |
191 | color: $cOrange !important; | 171 | color: $cOrange !important; |
192 | } | 172 | } |
... | @@ -206,10 +186,9 @@ | ... | @@ -206,10 +186,9 @@ |
206 | 186 | ||
207 | .activity { | 187 | .activity { |
208 | background-color: $cOrange !important; | 188 | background-color: $cOrange !important; |
209 | opacity: .5; | 189 | opacity: 0.5; |
210 | |||
211 | div { | 190 | div { |
212 | color: #FFFFFF !important; | 191 | color: #ffffff !important; |
213 | } | 192 | } |
214 | } | 193 | } |
215 | 194 | ||
... | @@ -218,19 +197,24 @@ | ... | @@ -218,19 +197,24 @@ |
218 | display: flex; | 197 | display: flex; |
219 | align-items: center; | 198 | align-items: center; |
220 | justify-content: center; | 199 | justify-content: center; |
221 | |||
222 | .tips { | 200 | .tips { |
223 | align-items: center; | 201 | align-items: center; |
224 | display: flex; | 202 | display: flex; |
225 | |||
226 | .icon { | 203 | .icon { |
227 | margin-right: 5px; | 204 | margin-right: 5px; |
228 | display: inline-block; | 205 | display: inline-block; |
229 | } | 206 | } |
230 | |||
231 | .btn { | 207 | .btn { |
232 | color: $cOrange; | 208 | color: $cOrange; |
233 | } | 209 | } |
234 | } | 210 | } |
235 | } | 211 | } |
236 | 212 | ||
213 | @media (max-width: 1200px) { | ||
214 | .list-container { | ||
215 | display: -webkit-box; | ||
216 | overflow-x: auto; | ||
217 | -webkit-overflow-scrolling: touch; | ||
218 | width: 92vw; | ||
219 | } | ||
220 | } | ||
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -3,11 +3,11 @@ | ... | @@ -3,11 +3,11 @@ |
3 | <modal2-comp :visible="showDownloadError" :close="()=>{showDownloadError = false}" :content="$t('glbalTips.sysError')"></modal2-comp> | 3 | <modal2-comp :visible="showDownloadError" :close="()=>{showDownloadError = false}" :content="$t('glbalTips.sysError')"></modal2-comp> |
4 | <div class="cell-group"> | 4 | <div class="cell-group"> |
5 | <div class="table-contaner"> | 5 | <div class="table-contaner"> |
6 | <div class="table-header orange" > | 6 | <div class="table-header orange new" > |
7 | <div class="normal-header"> | 7 | <div class="normal-header"> |
8 | <div class="td w1">{{$t('customService.insuranceQuery.InsurantNumber')}}</div> | 8 | <div class="td w1">{{$t('customService.insuranceQuery.InsurantNumber')}}</div> |
9 | <div class="td w2">{{$t('customService.insuranceQuery.policyState')}}</div> | 9 | <!-- <div class="td w2">{{$t('customService.insuranceQuery.policyState')}}</div> |
10 | <div class="td w2">{{$t('customService.insuranceQuery.activeDate')}}</div> | 10 | <div class="td w2">{{$t('customService.insuranceQuery.activeDate')}}</div> --> |
11 | <div class="td w2">{{$t('customService.insuranceQuery.Insurant')}}</div> | 11 | <div class="td w2">{{$t('customService.insuranceQuery.Insurant')}}</div> |
12 | <div class="td w1">{{$t('customService.insuranceQuery.InsurantName')}}</div> | 12 | <div class="td w1">{{$t('customService.insuranceQuery.InsurantName')}}</div> |
13 | <div class="td w2">{{$t('customService.insuranceQuery.InsurantAmount')}}</div> | 13 | <div class="td w2">{{$t('customService.insuranceQuery.InsurantAmount')}}</div> |
... | @@ -45,8 +45,8 @@ | ... | @@ -45,8 +45,8 @@ |
45 | </template> | 45 | </template> |
46 | </div> | 46 | </div> |
47 | 47 | ||
48 | <div class="td w2">{{formatInsuredState(item.policyState)}}</div> | 48 | <!-- <div class="td w2">{{formatInsuredState(item.policyState)}}</div> --> |
49 | <div class="td w2">{{item.activeDate?item.activeDate.split(" ")[0]:""}}</div> | 49 | <!-- <div class="td w2">{{item.activeDate?item.activeDate.split(" ")[0]:""}}</div> --> |
50 | <div class="td w2">{{lan == 'en' ? (item.insuredNameEn ? item.insuredNameEn : item.insuredNameCn) : (item.insuredNameCn ? item.insuredNameCn : item.insuredNameEn)}}</div> | 50 | <div class="td w2">{{lan == 'en' ? (item.insuredNameEn ? item.insuredNameEn : item.insuredNameCn) : (item.insuredNameCn ? item.insuredNameCn : item.insuredNameEn)}}</div> |
51 | <div class="td w1">{{formatPolicyName(item.productCode, item.productName)}}</div> | 51 | <div class="td w1">{{formatPolicyName(item.productCode, item.productName)}}</div> |
52 | <div class="td w2">{{item.moneyCode}} {{formatMoney(item.amount,0)}}</div> | 52 | <div class="td w2">{{item.moneyCode}} {{formatMoney(item.amount,0)}}</div> | ... | ... |
This diff is collapsed.
Click to expand it.
... | @@ -87,20 +87,20 @@ | ... | @@ -87,20 +87,20 @@ |
87 | .eye-act { | 87 | .eye-act { |
88 | background-image: url("~@/assets/images/common/icon-eyes-on.png"); | 88 | background-image: url("~@/assets/images/common/icon-eyes-on.png"); |
89 | } | 89 | } |
90 | } | ||
91 | |||
92 | .ipt:focus { | ||
93 | border-color: $cOrange !important; | ||
94 | } | ||
95 | 90 | ||
96 | .ipt.err { | 91 | .ipt:focus { |
97 | border-color: $cOrange !important; | 92 | border-color: $cOrange !important; |
98 | } | 93 | } |
99 | 94 | ||
100 | .err { | 95 | .ipt.err { |
101 | .ipt { | ||
102 | border-color: $cOrange !important; | 96 | border-color: $cOrange !important; |
103 | } | 97 | } |
98 | |||
99 | .err { | ||
100 | .ipt { | ||
101 | border-color: $cOrange !important; | ||
102 | } | ||
103 | } | ||
104 | } | 104 | } |
105 | 105 | ||
106 | // 输入框 | 106 | // 输入框 |
... | @@ -115,14 +115,14 @@ | ... | @@ -115,14 +115,14 @@ |
115 | background-clip: padding-box, border-box; | 115 | background-clip: padding-box, border-box; |
116 | background-origin: padding-box, border-box; | 116 | background-origin: padding-box, border-box; |
117 | background-image: linear-gradient(90deg, #fff, #fff), | 117 | background-image: linear-gradient(90deg, #fff, #fff), |
118 | linear-gradient(90deg, #feab1b, #f15a08); | 118 | linear-gradient(90deg, #feab1b, #f15a08); |
119 | 119 | ||
120 | background-color: #ffffff; | 120 | background-color: #ffffff; |
121 | padding: 0 24px; | 121 | padding: 0 24px; |
122 | flex: 1; | 122 | flex: 1; |
123 | display: flex; | 123 | display: flex; |
124 | align-items: center; | 124 | align-items: center; |
125 | font-size: 22px; | 125 | font-size: 18px; |
126 | color: $cFontGray2; | 126 | color: $cFontGray2; |
127 | 127 | ||
128 | &:lang(zh) { | 128 | &:lang(zh) { | ... | ... |
... | @@ -10,160 +10,153 @@ | ... | @@ -10,160 +10,153 @@ |
10 | 10 | ||
11 | // 居中按钮样式 | 11 | // 居中按钮样式 |
12 | @mixin btn-center($width, $height) { | 12 | @mixin btn-center($width, $height) { |
13 | width: $width; | 13 | width: $width; |
14 | height: $height; | 14 | height: $height; |
15 | line-height: $height; | 15 | line-height: $height; |
16 | text-align: center; | 16 | text-align: center; |
17 | } | 17 | } |
18 | 18 | ||
19 | // 超过多少行自动省略 默认一行 | 19 | // 超过多少行自动省略 默认一行 |
20 | @mixin ellipsis($line:1) { | 20 | @mixin ellipsis($line: 1) { |
21 | display: -webkit-box; | 21 | display: -webkit-box; |
22 | word-break: break-all; | 22 | word-break: break-all; |
23 | -webkit-box-orient: vertical; | 23 | -webkit-box-orient: vertical; |
24 | -webkit-line-clamp: $line; | 24 | -webkit-line-clamp: $line; |
25 | overflow: hidden; | 25 | overflow: hidden; |
26 | text-overflow: ellipsis; | 26 | text-overflow: ellipsis; |
27 | } | 27 | } |
28 | 28 | ||
29 | // 文字截取 | 29 | // 文字截取 |
30 | @mixin text-overflow() { | 30 | @mixin text-overflow() { |
31 | overflow: hidden; | 31 | overflow: hidden; |
32 | white-space: normal; | 32 | white-space: normal; |
33 | text-overflow: ellipsis; | 33 | text-overflow: ellipsis; |
34 | word-break: break-all; | 34 | word-break: break-all; |
35 | word-wrap: normal; | 35 | word-wrap: normal; |
36 | } | 36 | } |
37 | 37 | ||
38 | @mixin word-break() { | 38 | @mixin word-break() { |
39 | word-break: break-all; | 39 | word-break: break-all; |
40 | word-wrap: break-word; | 40 | word-wrap: break-word; |
41 | white-space: normal; | 41 | white-space: normal; |
42 | } | 42 | } |
43 | 43 | ||
44 | // No wrap | 44 | // No wrap |
45 | @mixin no-wrap() { | 45 | @mixin no-wrap() { |
46 | word-break: normal; | 46 | word-break: normal; |
47 | word-wrap: normal; | 47 | word-wrap: normal; |
48 | white-space: nowrap; | 48 | white-space: nowrap; |
49 | } | 49 | } |
50 | 50 | ||
51 | // 清除浮动 | 51 | // 清除浮动 |
52 | @mixin clearfix() { | 52 | @mixin clearfix() { |
53 | 53 | &:before, | |
54 | &:before, | 54 | &:after { |
55 | &:after { | 55 | content: " "; // 1 |
56 | content: " "; // 1 | 56 | display: table; // 2 |
57 | display: table; // 2 | 57 | } |
58 | } | 58 | &:after { |
59 | 59 | clear: both; | |
60 | &:after { | 60 | } |
61 | clear: both; | ||
62 | } | ||
63 | } | 61 | } |
64 | 62 | ||
65 | // Single side border-radius | 63 | // Single side border-radius |
66 | @mixin border-top-radius($radius) { | 64 | @mixin border-top-radius($radius) { |
67 | border-top-right-radius: $radius; | 65 | border-top-right-radius: $radius; |
68 | border-top-left-radius: $radius; | 66 | border-top-left-radius: $radius; |
69 | } | 67 | } |
70 | 68 | ||
71 | @mixin border-right-radius($radius) { | 69 | @mixin border-right-radius($radius) { |
72 | border-bottom-right-radius: $radius; | 70 | border-bottom-right-radius: $radius; |
73 | border-top-right-radius: $radius; | 71 | border-top-right-radius: $radius; |
74 | } | 72 | } |
75 | 73 | ||
76 | @mixin border-bottom-radius($radius) { | 74 | @mixin border-bottom-radius($radius) { |
77 | border-bottom-right-radius: $radius; | 75 | border-bottom-right-radius: $radius; |
78 | border-bottom-left-radius: $radius; | 76 | border-bottom-left-radius: $radius; |
79 | } | 77 | } |
80 | 78 | ||
81 | @mixin border-left-radius($radius) { | 79 | @mixin border-left-radius($radius) { |
82 | border-bottom-left-radius: $radius; | 80 | border-bottom-left-radius: $radius; |
83 | border-top-left-radius: $radius; | 81 | border-top-left-radius: $radius; |
84 | } | 82 | } |
85 | 83 | ||
86 | // Center-align a block level element | 84 | // Center-align a block level element |
87 | @mixin center-block() { | 85 | @mixin center-block() { |
88 | display: block; | 86 | display: block; |
89 | margin-left: auto; | 87 | margin-left: auto; |
90 | margin-right: auto; | 88 | margin-right: auto; |
91 | } | 89 | } |
92 | 90 | ||
93 | // CSS image replacement | 91 | // CSS image replacement |
94 | // Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757 | 92 | // Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757 |
95 | @mixin hide-text() { | 93 | @mixin hide-text() { |
96 | font-size: 0; | 94 | font-size: 0; |
97 | line-height: 0; | 95 | line-height: 0; |
98 | color: transparent; | 96 | color: transparent; |
99 | text-shadow: none; | 97 | text-shadow: none; |
100 | background-color: transparent; | 98 | background-color: transparent; |
101 | border: 0; | 99 | border: 0; |
102 | } | 100 | } |
103 | 101 | ||
104 | |||
105 | // 橙色按钮 | 102 | // 橙色按钮 |
106 | @mixin btc2($wid:63px, $hei:30px, $fontSize:12px) { | 103 | @mixin btc2($wid: 63px, $hei: 30px, $fontSize: 12px) { |
107 | width: $wid; | 104 | width: $wid; |
108 | height: $hei; | 105 | height: $hei; |
109 | line-height: $hei; | 106 | line-height: $hei; |
110 | font-size: $fontSize; | 107 | font-size: $fontSize; |
111 | border-radius: $hei; | 108 | border-radius: $hei; |
112 | text-align: center; | 109 | text-align: center; |
113 | color: #ffffff; | 110 | color: #ffffff; |
114 | background-color: #f05a23; | 111 | background-color: #f05a23; |
115 | // box-shadow: 0px 10px 13px 0 rgba(236, 100, 41, 0.2); | 112 | // box-shadow: 0px 10px 13px 0 rgba(236, 100, 41, 0.2); |
116 | // background-blend-mode: soft-light, ; | 113 | // background-blend-mode: soft-light, ; |
117 | // background-image: linear-gradient(to bottom, #f05f28, #f05021); | 114 | // background-image: linear-gradient(to bottom, #f05f28, #f05021); |
118 | box-shadow: 0px 10px 13px 0 rgba(236, 100, 41, 0.2); | 115 | box-shadow: 0px 10px 13px 0 rgba(236, 100, 41, 0.2); |
119 | background-blend-mode: soft-light; | 116 | background-blend-mode: soft-light; |
120 | background-image: linear-gradient(to bottom, #ec6429, #ec6429), linear-gradient(to top, #000000, #ffffff); | 117 | background-image: linear-gradient(to bottom, #ec6429, #ec6429), linear-gradient(to top, #000000, #ffffff); |
121 | // background-image: linear-gradient(to top, #000000, #ffffff), linear-gradient(to bottom, #ec6429, #ec6429); | 118 | // background-image: linear-gradient(to top, #000000, #ffffff), linear-gradient(to bottom, #ec6429, #ec6429); |
122 | 119 | } | |
123 | } | 120 | |
124 | 121 | @mixin btc3($wid: 63px, $hei: 30px, $fontSize: 12px) { | |
125 | 122 | width: $wid; | |
126 | @mixin btc3($wid:63px, $hei:30px, $fontSize:12px) { | 123 | height: $hei; |
127 | width: $wid; | 124 | line-height: $hei; |
128 | height: $hei; | 125 | font-size: $fontSize; |
129 | line-height: $hei; | 126 | border-radius: $hei; |
130 | font-size: $fontSize; | 127 | text-align: center; |
131 | border-radius: $hei; | 128 | color: #006441; |
132 | text-align: center; | 129 | border: solid 1px #006441; |
133 | color: #006441; | 130 | } |
134 | border: solid 1px #006441; | 131 | |
135 | } | 132 | @mixin btc4($wid: 288px, $hei: 60px, $fontSize: 18px) { |
136 | 133 | width: $wid; | |
137 | @mixin btc4($wid:288px, $hei:60px, $fontSize:12px) { | 134 | height: $hei; |
138 | width: $wid; | 135 | line-height: $hei; |
139 | height: $hei; | 136 | font-size: $fontSize; |
140 | line-height: $hei; | 137 | border-radius: $hei; |
141 | font-size: $fontSize; | 138 | text-align: center; |
142 | border-radius: $hei; | 139 | background-image: linear-gradient(135deg, #f15a08, #feab1b), linear-gradient(90deg, #fff, #fff); |
143 | text-align: center; | 140 | color: white; |
144 | background-image: linear-gradient(135deg, #f15a08, #feab1b), linear-gradient(90deg, #fff, #fff); | 141 | font-weight: 600; |
145 | color: white; | 142 | cursor: pointer; |
146 | font-weight: 600; | 143 | letter-spacing: 1.4px; |
147 | cursor: pointer; | 144 | } |
148 | letter-spacing: 1.4px; | 145 | |
149 | } | 146 | @mixin content-percent($percent: 4%) { |
150 | 147 | box-sizing: border-box; | |
151 | 148 | padding: 0 $percent; | |
152 | @mixin content-percent($percent:4%) { | 149 | } |
153 | box-sizing: border-box; | 150 | |
154 | padding: 0 $percent; | 151 | @mixin border-tans($borderRadius: 1px, $borderSize: 2px) { |
155 | 152 | border: $borderSize solid transparent; | |
156 | } | 153 | background-clip: padding-box, border-box; |
157 | 154 | background-origin: padding-box, border-box; | |
158 | @mixin border-tans($borderRadius:1px, $borderSize:2px) { | 155 | background-image: linear-gradient(90deg, #fff, #fff), linear-gradient(90deg, #feab1b, #f15a08); |
159 | border: $borderSize solid transparent; | 156 | border-radius: $borderRadius; |
160 | background-clip: padding-box, border-box; | ||
161 | background-origin: padding-box, border-box; | ||
162 | background-image: linear-gradient(90deg, #fff, #fff), linear-gradient(90deg, #feab1b, #f15a08); | ||
163 | border-radius: $borderRadius; | ||
164 | } | 157 | } |
165 | 158 | ||
166 | @mixin linear-bg() { | 159 | @mixin linear-bg() { |
167 | background-color: transparent; | 160 | background-color: transparent; |
168 | background-image: linear-gradient(135deg, #f15a08, #feab1b), linear-gradient(90deg, #fff, #fff); | 161 | background-image: linear-gradient(135deg, #f15a08, #feab1b), linear-gradient(90deg, #fff, #fff); |
169 | } | 162 | } |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -60,3 +60,8 @@ $--font-path: "~element-ui/lib/theme-chalk/fonts"; | ... | @@ -60,3 +60,8 @@ $--font-path: "~element-ui/lib/theme-chalk/fonts"; |
60 | font-size: 22px; | 60 | font-size: 22px; |
61 | font-weight: bold; | 61 | font-weight: bold; |
62 | } | 62 | } |
63 | |||
64 | .policy-change-contact .el-input__inner { | ||
65 | font-size: 18px; | ||
66 | color: $cFontGray2; | ||
67 | } | ... | ... |
-
Please register or sign in to post a comment