c078a97e by simon

修改,除 #5和#10

1 parent ef5dba28
...@@ -109,8 +109,8 @@ npm run sandbox ...@@ -109,8 +109,8 @@ npm run sandbox
109 109
110 #### z-index 权重划分 110 #### z-index 权重划分
111 111
112 - 遮罩蒙层:5000 112 - 遮罩蒙层:5000
113 - 导航栏:1000 113 - 导航栏:4000
114 - element-ui:2000+ 114 - element-ui:2000+
115 - 自定义交互组件 如 date-picker: 800-900 115 - 自定义交互组件 如 date-picker: 800-900
116 - 一般业务级:小于 100 116 - 一般业务级:小于 100
......
...@@ -286,7 +286,9 @@ module.exports = { ...@@ -286,7 +286,9 @@ module.exports = {
286 e12: "Success", 286 e12: "Success",
287 e13: "The name can't not contain numbers, special numbers", 287 e13: "The name can't not contain numbers, special numbers",
288 e14: "Please enter your name" 288 e14: "Please enter your name"
289 } 289 },
290 account:"Account",
291 accountPlaceholder:"please enter user name",
290 }, 292 },
291 passwordCheck: { 293 passwordCheck: {
292 error1: "Password length cannot be less than 8 bits", 294 error1: "Password length cannot be less than 8 bits",
...@@ -988,7 +990,8 @@ module.exports = { ...@@ -988,7 +990,8 @@ module.exports = {
988 tip6: "The policy acknowledgement has been done, to inquire about the policy information or download ePolicy, please click ", 990 tip6: "The policy acknowledgement has been done, to inquire about the policy information or download ePolicy, please click ",
989 tip7: "Policy Enquiry", 991 tip7: "Policy Enquiry",
990 notice: "I / We hereby acknowledge that I / We have received the Ping An Life Insurance Company of China (HK), Ltd. Policy and have read the details (including but are not limited to the cooling off right) of the Policy.", 992 notice: "I / We hereby acknowledge that I / We have received the Ping An Life Insurance Company of China (HK), Ltd. Policy and have read the details (including but are not limited to the cooling off right) of the Policy.",
991 agreeTips: "Please download and read the “Notice of Policy Issuance and Cooling-off Period” and the “e-policy”" 993 agreeTips: "Please download and read the “Notice of Policy Issuance and Cooling-off Period” and the “e-policy”",
994 confirmNow:"Confirm now"
992 }, 995 },
993 clarms: { 996 clarms: {
994 title: "File a claim", 997 title: "File a claim",
......
...@@ -287,7 +287,8 @@ module.exports = { ...@@ -287,7 +287,8 @@ module.exports = {
287 e13: "姓名不能包含數字、特殊號碼", 287 e13: "姓名不能包含數字、特殊號碼",
288 e14: "請輸入您的姓名" 288 e14: "請輸入您的姓名"
289 }, 289 },
290 accountPlaceholder:"請設置用戶名稱", 290 account:"賬號",
291 accountPlaceholder:"請設置用戶名",
291 }, 292 },
292 session: { 293 session: {
293 sidExpire: "長時間未操作,為了您賬戶的安全,請登入後再操作" 294 sidExpire: "長時間未操作,為了您賬戶的安全,請登入後再操作"
...@@ -994,7 +995,8 @@ module.exports = { ...@@ -994,7 +995,8 @@ module.exports = {
994 tip6: "保單已簽收,如需查詢保單資訊或下載電子保單可點擊", 995 tip6: "保單已簽收,如需查詢保單資訊或下載電子保單可點擊",
995 tip7: "保單查詢", 996 tip7: "保單查詢",
996 notice: "謹此確認本人/我們已收到中國平安人壽保險(香港)有限公司的保單,並已細閱保單細節內容(包括但不限於保單冷静期權益)。", 997 notice: "謹此確認本人/我們已收到中國平安人壽保險(香港)有限公司的保單,並已細閱保單細節內容(包括但不限於保單冷静期權益)。",
997 agreeTips: "請下載並细閱“保單繕發及冷靜期通知書”及“電子保單”" 998 agreeTips: "請下載並细閱“保單繕發及冷靜期通知書”及“電子保單”",
999 confirmNow:"立即確認"
998 }, 1000 },
999 clarms: { 1001 clarms: {
1000 title: "索償申請", 1002 title: "索償申請",
......
...@@ -294,7 +294,8 @@ module.exports = { ...@@ -294,7 +294,8 @@ module.exports = {
294 e13: "姓名不能包含数字、特殊字符", 294 e13: "姓名不能包含数字、特殊字符",
295 e14: "請輸入您的姓名" 295 e14: "請輸入您的姓名"
296 }, 296 },
297 accountPlaceholder:"请设置用户名称", 297 account:"账号",
298 accountPlaceholder:"请设置用户名",
298 }, 299 },
299 passwordCheck: { 300 passwordCheck: {
300 error1: "密码长度不少于8位", 301 error1: "密码长度不少于8位",
...@@ -997,7 +998,8 @@ module.exports = { ...@@ -997,7 +998,8 @@ module.exports = {
997 tip6: "保单已签收,如需查询保单信息或下载电子保单可点击", 998 tip6: "保单已签收,如需查询保单信息或下载电子保单可点击",
998 tip7: "保单查询", 999 tip7: "保单查询",
999 notice: "谨此确认本人已收到中国平安人寿保险(香港)有限公司的保单,并已细阅保单细节内容(包括但不限于保单冷静期权益)", 1000 notice: "谨此确认本人已收到中国平安人寿保险(香港)有限公司的保单,并已细阅保单细节内容(包括但不限于保单冷静期权益)",
1000 agreeTips: "请下载并细阅“保单缮发及冷静期通知书”及“电子保单”" 1001 agreeTips: "请下载并细阅“保单缮发及冷静期通知书”及“电子保单”",
1002 confirmNow:"立即确认"
1001 }, 1003 },
1002 clarms: { 1004 clarms: {
1003 title: "索偿申请", 1005 title: "索偿申请",
......
...@@ -63,7 +63,6 @@ export default { ...@@ -63,7 +63,6 @@ export default {
63 }, 63 },
64 methods: { 64 methods: {
65 onNavHandler() { 65 onNavHandler() {
66 console.log("this.dataObj:", this.dataObj);
67 let path = this.dataObj && this.dataObj.path || ""; 66 let path = this.dataObj && this.dataObj.path || "";
68 if (path) { 67 if (path) {
69 this.$router.push({ 68 this.$router.push({
......
...@@ -8,7 +8,7 @@ $navHeiM: 72px; ...@@ -8,7 +8,7 @@ $navHeiM: 72px;
8 background-color: #fff; 8 background-color: #fff;
9 color: $cFontGray; 9 color: $cFontGray;
10 position: relative; 10 position: relative;
11 z-index: 9000; 11 z-index: 4000;
12 font-size: $fontSize; 12 font-size: $fontSize;
13 13
14 .header-container { 14 .header-container {
......
...@@ -185,6 +185,7 @@ export default { ...@@ -185,6 +185,7 @@ export default {
185 }, 185 },
186 // 确认保单按钮 186 // 确认保单按钮
187 handleConfirmPolicy() { 187 handleConfirmPolicy() {
188 if(!this.checked) return;
188 if (this.policyDetail) { 189 if (this.policyDetail) {
189 if (this.loading) { 190 if (this.loading) {
190 return; 191 return;
......
...@@ -123,7 +123,7 @@ ...@@ -123,7 +123,7 @@
123 123
124 <div class="btn-wrap"> 124 <div class="btn-wrap">
125 <div class="submit-btn flex-center" :class="{'disable':!checked}" @click="handleConfirmPolicy"> 125 <div class="submit-btn flex-center" :class="{'disable':!checked}" @click="handleConfirmPolicy">
126 <van-loading v-if="loading" /> {{$t('vhis.btn2')}} 126 <van-loading v-if="loading" /> {{$t('vhis.confirmNow')}}
127 </div> 127 </div>
128 <!-- <div class="submit-btn " @click="handleIgnorePolicy">{{$t('vhis.btn3')}}</div> --> 128 <!-- <div class="submit-btn " @click="handleIgnorePolicy">{{$t('vhis.btn3')}}</div> -->
129 </div> 129 </div>
......
1 @import '@/styles/_support.scss'; 1 @import '@/styles/_support.scss';
2 2
3 .container{ 3 .container{
4 font-size: $fontSize-M2; 4 // font-size: $fontSize-M2;
5 width: 100%; 5 width: 100%;
6 } 6 }
7 7
......
...@@ -87,6 +87,7 @@ export default { ...@@ -87,6 +87,7 @@ export default {
87 }, 87 },
88 // 过滤筛选 88 // 过滤筛选
89 onFilterHandler(key) { 89 onFilterHandler(key) {
90 if (this.originalList.length <= 0) return;
90 let filter = []; 91 let filter = [];
91 this.checkList = []; 92 this.checkList = [];
92 this.filterKey = key; 93 this.filterKey = key;
...@@ -102,12 +103,12 @@ export default { ...@@ -102,12 +103,12 @@ export default {
102 case "letterType": 103 case "letterType":
103 name = this.i18n.eCorrespondenceEnquiry.letterName; 104 name = this.i18n.eCorrespondenceEnquiry.letterName;
104 break; 105 break;
105 // 发出时间 106 // 发出时间
106 case "printTime": 107 case "printTime":
107 value = value.split(" ")[0]; 108 value = value.split(" ")[0];
108 name = value; 109 name = value;
109 break; 110 break;
110 // 状况 111 // 状况
111 case "isRead": 112 case "isRead":
112 name = value == "N" ? this.i18n.eCorrespondenceEnquiry.UnRead : this.i18n.eCorrespondenceEnquiry.Read; 113 name = value == "N" ? this.i18n.eCorrespondenceEnquiry.UnRead : this.i18n.eCorrespondenceEnquiry.Read;
113 break; 114 break;
...@@ -120,7 +121,10 @@ export default { ...@@ -120,7 +121,10 @@ export default {
120 continue; 121 continue;
121 } 122 }
122 filter.push(value); 123 filter.push(value);
123 this.checkList.push({ value: value, label: name }); 124 this.checkList.push({
125 value: value,
126 label: name
127 });
124 } 128 }
125 129
126 // 显示模态窗 130 // 显示模态窗
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
22 22
23 height: 57px; 23 height: 57px;
24 background-color: #f2f2f2; 24 background-color: #f2f2f2;
25 padding: 0 20px; 25 padding: 0 18px;
26 margin-right: $marginSmall; 26 margin-right: $marginSmall;
27 min-width: 120px; 27 min-width: 120px;
28 28
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
8 <modal2-comp :visible="uploadErrorVisible" :close="()=>{uploadErrorVisible = false}" :content="$t('glbalTips.sysError')"></modal2-comp> 8 <modal2-comp :visible="uploadErrorVisible" :close="()=>{uploadErrorVisible = false}" :content="$t('glbalTips.sysError')"></modal2-comp>
9 <us-tax-form-upload-comp :visible="usTaxFormUploadCompVisible" @close="usTaxFormUploadCompVisible = false" @submit="onUsTaxSubmit" @uploadsuccess="showUploadSuccess" @uploaderr="uploadErrorVisible = true"></us-tax-form-upload-comp> 9 <us-tax-form-upload-comp :visible="usTaxFormUploadCompVisible" @close="usTaxFormUploadCompVisible = false" @submit="onUsTaxSubmit" @uploadsuccess="showUploadSuccess" @uploaderr="uploadErrorVisible = true"></us-tax-form-upload-comp>
10 <template v-if="showForm"> 10 <template v-if="showForm">
11 <policy-head-list :multiSelectable="true" @onSelect="handlePolicySelect"></policy-head-list> 11 <policy-head-list :multiSelectable="true" @onSelect="handlePolicySelect" :type="2"></policy-head-list>
12 12
13 <div class="container border" v-if="selectedPolicies.length > 0 && data"> 13 <div class="container border" v-if="selectedPolicies.length > 0 && data">
14 <!-- 表单 --> 14 <!-- 表单 -->
......
...@@ -21,6 +21,15 @@ import Modal2Comp from '@/components/modal2-comp/modal2-comp.vue'; ...@@ -21,6 +21,15 @@ import Modal2Comp from '@/components/modal2-comp/modal2-comp.vue';
21 21
22 export default { 22 export default {
23 props: { 23 props: {
24 type:{
25 /**
26 * 1.保单查询
27 * 2.更改联系方式
28 * 不显示保单状态 和 生效日期 这两项
29 */
30 type:Number,
31 default:1,
32 },
24 multiSelectable: { 33 multiSelectable: {
25 type: Boolean, 34 type: Boolean,
26 default: false 35 default: false
......
...@@ -2,9 +2,22 @@ ...@@ -2,9 +2,22 @@
2 .list-container { 2 .list-container {
3 overflow-x: auto; 3 overflow-x: auto;
4 margin-bottom: 24px; 4 margin-bottom: 24px;
5 }
6
7 // 兼容样式 18px 字体和 14px字体样式字体过度阶段
8 .new-style {
5 font-size: $fontSize-M2; 9 font-size: $fontSize-M2;
6 } 10 }
7 11
12 .new-style .cell-group {
13 .w1 {
14 width: 240px;
15 }
16 .w2 {
17 width: 150px;
18 }
19 }
20
8 .hide { 21 .hide {
9 max-height: 0; 22 max-height: 0;
10 border-bottom: none; 23 border-bottom: none;
...@@ -55,13 +68,13 @@ ...@@ -55,13 +68,13 @@
55 color: #4c4948; 68 color: #4c4948;
56 } 69 }
57 .w1 { 70 .w1 {
58 // width: 120px; 71 width: 120px;
59 width: 240px; 72 // width: 240px;
60 text-align: center; 73 text-align: center;
61 } 74 }
62 .w2 { 75 .w2 {
63 // width: 75px; 76 width: 75px;
64 width: 150px; 77 // width: 150px;
65 text-align: center; 78 text-align: center;
66 } 79 }
67 .table-header { 80 .table-header {
...@@ -218,4 +231,4 @@ ...@@ -218,4 +231,4 @@
218 -webkit-overflow-scrolling: touch; 231 -webkit-overflow-scrolling: touch;
219 width: 92vw; 232 width: 92vw;
220 } 233 }
221 }
...\ No newline at end of file ...\ No newline at end of file
234 }
......
1 <template> 1 <template>
2 <div class="list-container"> 2 <div class="list-container" :class="{'new-style':type == 2}">
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 new" > 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 v-if="type == 1" class="td w2">{{$t('customService.insuranceQuery.policyState')}}</div>
10 <div class="td w2">{{$t('customService.insuranceQuery.activeDate')}}</div> --> 10 <div v-if="type == 1" 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>
14 <div class="td w2">{{$t('customService.insuranceQuery.effectiveDate')}}</div> 14 <div class="td w2">{{$t('customService.insuranceQuery.effectiveDate')}}</div>
15 <div class="td w2">{{$t('customService.insuranceQuery.period')}}</div> 15 <div class="td w2">{{$t('customService.insuranceQuery.period')}}</div>
16 </div> 16 </div>
17 </div> 17 </div>
18 <div class="guide" :class="{rotate180 : hide}" @click="hide = !hide"></div> 18 <div class="guide" :class="{rotate180 : hide}" @click="hide = !hide"></div>
19 </div> 19 </div>
20 <div class="table-content" :class="{hide : hide}"> 20 <div class="table-content" :class="{hide : hide}">
21 <template v-if="myPolicyList"> 21 <template v-if="myPolicyList">
22 <div v-for="(item,index) in myPolicyList" :key="index"> 22 <div v-for="(item,index) in myPolicyList" :key="index">
23 <template v-if="index < maxShow"> 23 <template v-if="index < maxShow">
24 <div class="data-line" @click="handlePolicySelect(item,index)"> 24 <div class="data-line" @click="handlePolicySelect(item,index)">
25 <div class="td w1 pointer"> 25 <div class="td w1 pointer">
26 <template v-if="multiSelectable"> 26 <template v-if="multiSelectable">
27 <img v-if="item.activity" class="icon-check pointer" src="@/assets/images/insurance-query/check.png"> 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"> 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> 29 <span class="sp" :class="{ac: item.activity}">{{item.policyCode}}</span>
30 </template> 30 </template>
31 <template v-else> 31 <template v-else>
32 <template v-if="model != 'download'"> 32 <template v-if="model != 'download'">
33 <img v-if="selectPolicyCode == item.policyCode" class="icon-check pointer" src="@/assets/images/insurance-query/check.png"> 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"> 34 <img v-else class="icon-check pointer" src="@/assets/images/insurance-query/un-check.png">
35 </template> 35 </template>
36 <span class="sp" :class="{ac: selectPolicyCode == item.policyCode}">{{item.policyCode}}</span> 36 <span class="sp" :class="{ac: selectPolicyCode == item.policyCode}">{{item.policyCode}}</span>
37 <template v-if="model == 'download'"> 37 <template v-if="model == 'download'">
38 <div class="download" @mouseover="onShowTipsOverHandler($event,item,index)" @mouseout="onShowTipsOutHandler($event,item,index)" @click="downloadPolicy(item)"> 38 <div class="download" @mouseover="onShowTipsOverHandler($event,item,index)" @mouseout="onShowTipsOutHandler($event,item,index)" @click="downloadPolicy(item)">
39 <div class="download-tips"> 39 <div class="download-tips">
40 <div class="cont">{{$t('customService.insuranceQuery.downloadClick')}}</div> 40 <div class="cont">{{$t('customService.insuranceQuery.downloadClick')}}</div>
41 </div> 41 </div>
42 <img class="icon-download" src="@/assets/images/insurance-query/icon-down-load.png" alt=""> 42 <img class="icon-download" src="@/assets/images/insurance-query/icon-down-load.png" alt="">
43 </div> 43 </div>
44 </template> 44 </template>
45 </template> 45 </template>
46 </div> 46 </div>
47 47
48 <!-- <div class="td w2">{{formatInsuredState(item.policyState)}}</div> --> 48 <div v-if="type == 1" class="td w2">{{formatInsuredState(item.policyState)}}</div>
49 <!-- <div class="td w2">{{item.activeDate?item.activeDate.split(" ")[0]:""}}</div> --> 49 <div v-if="type == 1" 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>
53 <div class="td w2">{{item.expireAt?item.expireAt.split(" ")[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> --> 54 <!-- <div class="td w2">{{item.guaranteeAge?item.guaranteeAge.split(" ")[0]:""}}</div> -->
55 <div class="td w2">{{formatInsuredPeriod(item.insuredPeriodType,item.insuredPeriodValue)}}</div> 55 <div class="td w2">{{formatInsuredPeriod(item.insuredPeriodType,item.insuredPeriodValue)}}</div>
56 56
57 </div> 57 </div>
58 <div class="separator-h" v-if="index < myPolicyList.length - 1 && index < maxShow - 1"></div> 58 <div class="separator-h" v-if="index < myPolicyList.length - 1 && index < maxShow - 1"></div>
59 </template> 59 </template>
60 </div> 60 </div>
61 <template v-if="!policyList || maxShow < policyList.length"> 61 <template v-if="!policyList || maxShow < policyList.length">
62 <div class="separator-h"></div> 62 <div class="separator-h"></div>
63 <div class="data-line show-more-btn" @click="maxShow = policyList.length">{{$t('customService.insuranceQuery.showMore')}}</div> 63 <div class="data-line show-more-btn" @click="maxShow = policyList.length">{{$t('customService.insuranceQuery.showMore')}}</div>
64 </template> 64 </template>
65 </template> 65 </template>
66 66
67 <template v-else> 67 <template v-else>
68 <div class="empty"> 68 <div class="empty">
69 <div class="tips"> 69 <div class="tips">
70 <img class="icon" src="@/assets/images/common/icon-alert-i.png" alt=""> 70 <img class="icon" src="@/assets/images/common/icon-alert-i.png" alt="">
71 <div class="txt"> 71 <div class="txt">
72 {{$t('customService.insuranceQuery.noPolicy')}} 72 {{$t('customService.insuranceQuery.noPolicy')}}
73 <span class="pointer btn" @click="toContactUs">{{$t('customService.insuranceQuery.customService')}}</span> 73 <span class="pointer btn" @click="toContactUs">{{$t('customService.insuranceQuery.customService')}}</span>
74 </div> 74 </div>
75 </div> 75 </div>
76 </div> 76 </div>
77 </template> 77 </template>
78 </div> 78 </div>
79 </div> 79 </div>
80 </div> 80 </div>
81 </template> 81 </template>
82 82
83 83
......
...@@ -139,7 +139,7 @@ ...@@ -139,7 +139,7 @@
139 <!-- 账号 --> 139 <!-- 账号 -->
140 <div class="pure-u-1 form-item"> 140 <div class="pure-u-1 form-item">
141 <div class="label"> 141 <div class="label">
142 <img src="@/assets/images/login/icon-login-user.png"> {{$t('infomationImprove.t1')}} 142 <img src="@/assets/images/login/icon-login-user.png"> {{$t('register.account')}}
143 </div> 143 </div>
144 <div class="ipt-wrap"> 144 <div class="ipt-wrap">
145 <!-- <input v-model="registerForm.userId" :placeholder="$t('register.accountPlaceholder')" class="ipt" :class="{ err : errorTips.e1.length > 0 }" type="text" @blur="userIdLegalCheck"> --> 145 <!-- <input v-model="registerForm.userId" :placeholder="$t('register.accountPlaceholder')" class="ipt" :class="{ err : errorTips.e1.length > 0 }" type="text" @blur="userIdLegalCheck"> -->
......