1e41f4b71Sopenharmony_ci# \<stepper> Development 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ciWhen multiple steps are required to complete a task, you can use the **\<stepper>** component to navigate your users through the whole process. For details, see [stepper](../reference/apis-arkui/arkui-js/js-components-container-stepper.md). 4e41f4b71Sopenharmony_ci 5e41f4b71Sopenharmony_ci 6e41f4b71Sopenharmony_ci## Creating a \<stepper> Component 7e41f4b71Sopenharmony_ci 8e41f4b71Sopenharmony_ciCreate a **\<stepper>** component in the .hml file under **pages/index**. 9e41f4b71Sopenharmony_ci 10e41f4b71Sopenharmony_ci```html 11e41f4b71Sopenharmony_ci<!-- xxx.hml --> 12e41f4b71Sopenharmony_ci<div class="container"> 13e41f4b71Sopenharmony_ci <stepper> 14e41f4b71Sopenharmony_ci <stepper-item> 15e41f4b71Sopenharmony_ci <text>Step 1</text> 16e41f4b71Sopenharmony_ci </stepper-item> 17e41f4b71Sopenharmony_ci <stepper-item> 18e41f4b71Sopenharmony_ci <text>Step 2</text> 19e41f4b71Sopenharmony_ci </stepper-item> 20e41f4b71Sopenharmony_ci </stepper> 21e41f4b71Sopenharmony_ci</div> 22e41f4b71Sopenharmony_ci``` 23e41f4b71Sopenharmony_ci 24e41f4b71Sopenharmony_ci```css 25e41f4b71Sopenharmony_ci/* xxx.css */ 26e41f4b71Sopenharmony_ci.container { 27e41f4b71Sopenharmony_ci width:100%; 28e41f4b71Sopenharmony_ci height:100%; 29e41f4b71Sopenharmony_ci flex-direction: column; 30e41f4b71Sopenharmony_ci justify-content: center; 31e41f4b71Sopenharmony_ci align-items: center; 32e41f4b71Sopenharmony_ci background-color: #F1F3F5; 33e41f4b71Sopenharmony_ci} 34e41f4b71Sopenharmony_citext{ 35e41f4b71Sopenharmony_ci width: 100%; 36e41f4b71Sopenharmony_ci height: 100%; 37e41f4b71Sopenharmony_ci text-align: center; 38e41f4b71Sopenharmony_ci} 39e41f4b71Sopenharmony_ci``` 40e41f4b71Sopenharmony_ci 41e41f4b71Sopenharmony_ci 42e41f4b71Sopenharmony_ci 43e41f4b71Sopenharmony_ci 44e41f4b71Sopenharmony_ci## Setting the Index 45e41f4b71Sopenharmony_ci 46e41f4b71Sopenharmony_ciSet **index** to the index value of the step that you want to display by default. 47e41f4b71Sopenharmony_ci 48e41f4b71Sopenharmony_ci```html 49e41f4b71Sopenharmony_ci<!-- xxx.hml --> 50e41f4b71Sopenharmony_ci<div class="container"> 51e41f4b71Sopenharmony_ci <stepper index="2"> 52e41f4b71Sopenharmony_ci <stepper-item> 53e41f4b71Sopenharmony_ci <text>stepper-item1</text> 54e41f4b71Sopenharmony_ci </stepper-item> 55e41f4b71Sopenharmony_ci <stepper-item> 56e41f4b71Sopenharmony_ci <text>stepper-item2</text> 57e41f4b71Sopenharmony_ci </stepper-item> 58e41f4b71Sopenharmony_ci <stepper-item> 59e41f4b71Sopenharmony_ci <text>stepper-item3</text> 60e41f4b71Sopenharmony_ci </stepper-item> 61e41f4b71Sopenharmony_ci </stepper> 62e41f4b71Sopenharmony_ci</div> 63e41f4b71Sopenharmony_ci``` 64e41f4b71Sopenharmony_ci 65e41f4b71Sopenharmony_ci```css 66e41f4b71Sopenharmony_ci/* xxx.css */ 67e41f4b71Sopenharmony_ci.container { 68e41f4b71Sopenharmony_ci width:100%; 69e41f4b71Sopenharmony_ci height:100%; 70e41f4b71Sopenharmony_ci flex-direction: column; 71e41f4b71Sopenharmony_ci background-color: #F1F3F5; 72e41f4b71Sopenharmony_ci} 73e41f4b71Sopenharmony_citext{ 74e41f4b71Sopenharmony_ci width: 100%; 75e41f4b71Sopenharmony_ci height: 100%; 76e41f4b71Sopenharmony_ci text-align: center; 77e41f4b71Sopenharmony_ci} 78e41f4b71Sopenharmony_ci``` 79e41f4b71Sopenharmony_ci 80e41f4b71Sopenharmony_ci 81e41f4b71Sopenharmony_ci 82e41f4b71Sopenharmony_ciSet the **label** attribute to customize the label for the **\<stepper-item>**. 83e41f4b71Sopenharmony_ci 84e41f4b71Sopenharmony_ci```html 85e41f4b71Sopenharmony_ci<!-- xxx.hml --> 86e41f4b71Sopenharmony_ci<div class="container"> 87e41f4b71Sopenharmony_ci <stepper index="1"> 88e41f4b71Sopenharmony_ci <stepper-item label="{{label_1}}"> 89e41f4b71Sopenharmony_ci <text>stepper-item1</text> 90e41f4b71Sopenharmony_ci </stepper-item> 91e41f4b71Sopenharmony_ci <stepper-item label="{{label_2}}"> 92e41f4b71Sopenharmony_ci <text>stepper-item2</text> 93e41f4b71Sopenharmony_ci </stepper-item> 94e41f4b71Sopenharmony_ci <stepper-item label="{{label_3}}"> 95e41f4b71Sopenharmony_ci <text>stepper-item3</text> 96e41f4b71Sopenharmony_ci </stepper-item> 97e41f4b71Sopenharmony_ci <stepper-item> 98e41f4b71Sopenharmony_ci <text>stepper-item4</text> 99e41f4b71Sopenharmony_ci </stepper-item> 100e41f4b71Sopenharmony_ci </stepper> 101e41f4b71Sopenharmony_ci</div> 102e41f4b71Sopenharmony_ci``` 103e41f4b71Sopenharmony_ci 104e41f4b71Sopenharmony_ci```css 105e41f4b71Sopenharmony_ci/* xxx.css */ 106e41f4b71Sopenharmony_ci.container { 107e41f4b71Sopenharmony_ci width:100%; 108e41f4b71Sopenharmony_ci height:100%; 109e41f4b71Sopenharmony_ci flex-direction: column; 110e41f4b71Sopenharmony_ci background-color: #F1F3F5; 111e41f4b71Sopenharmony_ci} 112e41f4b71Sopenharmony_citext{ 113e41f4b71Sopenharmony_ci width: 100%; 114e41f4b71Sopenharmony_ci height: 100%; 115e41f4b71Sopenharmony_ci text-align: center; 116e41f4b71Sopenharmony_ci} 117e41f4b71Sopenharmony_ci``` 118e41f4b71Sopenharmony_ci 119e41f4b71Sopenharmony_ci```js 120e41f4b71Sopenharmony_ci// xxx.js 121e41f4b71Sopenharmony_ciexport default { 122e41f4b71Sopenharmony_ci data: { 123e41f4b71Sopenharmony_ci label_1:{ 124e41f4b71Sopenharmony_ci nextLabel: 'NEXT', 125e41f4b71Sopenharmony_ci status: 'normal' 126e41f4b71Sopenharmony_ci }, 127e41f4b71Sopenharmony_ci label_2:{ 128e41f4b71Sopenharmony_ci prevLabel: 'BACK', 129e41f4b71Sopenharmony_ci nextLabel: 'NEXT', 130e41f4b71Sopenharmony_ci status: 'normal' 131e41f4b71Sopenharmony_ci }, 132e41f4b71Sopenharmony_ci label_3:{ 133e41f4b71Sopenharmony_ci prevLabel: 'BACK', 134e41f4b71Sopenharmony_ci nextLabel: 'END', 135e41f4b71Sopenharmony_ci status: 'disabled' 136e41f4b71Sopenharmony_ci }, 137e41f4b71Sopenharmony_ci }, 138e41f4b71Sopenharmony_ci} 139e41f4b71Sopenharmony_ci``` 140e41f4b71Sopenharmony_ci 141e41f4b71Sopenharmony_ci 142e41f4b71Sopenharmony_ci 143e41f4b71Sopenharmony_ci 144e41f4b71Sopenharmony_ci## Setting Styles 145e41f4b71Sopenharmony_ci 146e41f4b71Sopenharmony_ciBy default, the **\<stepper>** component fills entire space of its container. The sample code below shows how to set the border and background color using the **border** and **background-color** attributes. 147e41f4b71Sopenharmony_ci```html 148e41f4b71Sopenharmony_ci<!-- xxx.hml --> 149e41f4b71Sopenharmony_ci<div class="container" > 150e41f4b71Sopenharmony_ci <div class="stepperContent"> 151e41f4b71Sopenharmony_ci <stepper class="stepperClass"> 152e41f4b71Sopenharmony_ci <stepper-item> 153e41f4b71Sopenharmony_ci <text>stepper-item1</text> 154e41f4b71Sopenharmony_ci </stepper-item> 155e41f4b71Sopenharmony_ci </stepper> 156e41f4b71Sopenharmony_ci </div> 157e41f4b71Sopenharmony_ci</div> 158e41f4b71Sopenharmony_ci``` 159e41f4b71Sopenharmony_ci 160e41f4b71Sopenharmony_ci```css 161e41f4b71Sopenharmony_ci/* xxx.css */ 162e41f4b71Sopenharmony_ci.container { 163e41f4b71Sopenharmony_ci width:100%; 164e41f4b71Sopenharmony_ci height:100%; 165e41f4b71Sopenharmony_ci flex-direction: column; 166e41f4b71Sopenharmony_ci align-items: center; 167e41f4b71Sopenharmony_ci justify-content: center; 168e41f4b71Sopenharmony_ci background-color:#F1F3F5; 169e41f4b71Sopenharmony_ci} 170e41f4b71Sopenharmony_ci.stepperContent{ 171e41f4b71Sopenharmony_ci width: 300px; 172e41f4b71Sopenharmony_ci height: 300px; 173e41f4b71Sopenharmony_ci} 174e41f4b71Sopenharmony_ci.stepperClass{ 175e41f4b71Sopenharmony_ci border:1px solid silver ; 176e41f4b71Sopenharmony_ci background-color: white; 177e41f4b71Sopenharmony_ci} 178e41f4b71Sopenharmony_citext{ 179e41f4b71Sopenharmony_ci width: 100%; 180e41f4b71Sopenharmony_ci height: 100%; 181e41f4b71Sopenharmony_ci text-align: center; 182e41f4b71Sopenharmony_ci} 183e41f4b71Sopenharmony_ci``` 184e41f4b71Sopenharmony_ci 185e41f4b71Sopenharmony_ci 186e41f4b71Sopenharmony_ci 187e41f4b71Sopenharmony_ci 188e41f4b71Sopenharmony_ci## Adding Events 189e41f4b71Sopenharmony_ci 190e41f4b71Sopenharmony_ciThe **\<stepper>** component supports the **finish**, **change**, **next**, **back**, and **skip** events. 191e41f4b71Sopenharmony_ci 192e41f4b71Sopenharmony_ci- When the **change** and **next** or **back** events exist at the same time, the **next** or **back** event is executed before the **change** event. 193e41f4b71Sopenharmony_ci 194e41f4b71Sopenharmony_ci- Before resetting the **index** attribute, you must remove the current value. Otherwise, the value change cannot be detected. 195e41f4b71Sopenharmony_ci 196e41f4b71Sopenharmony_ci```html 197e41f4b71Sopenharmony_ci<!-- xxx.hml --> 198e41f4b71Sopenharmony_ci<div class="container" style="background-color:#F1F3F5;"> 199e41f4b71Sopenharmony_ci <div > 200e41f4b71Sopenharmony_ci <stepper onfinish="stepperFinish" onchange="stepperChange" onnext="stepperNext" onback="stepperBack" onskip="stepperSkip" id="stepperId" index="{{index}}"> 201e41f4b71Sopenharmony_ci <stepper-item> 202e41f4b71Sopenharmony_ci <text>stepper-item1</text> 203e41f4b71Sopenharmony_ci <button value="skip" onclick="skipClick"></button> 204e41f4b71Sopenharmony_ci </stepper-item> 205e41f4b71Sopenharmony_ci <stepper-item> 206e41f4b71Sopenharmony_ci <text>stepper-item2</text> 207e41f4b71Sopenharmony_ci <button value="skip" onclick="skipClick"></button> 208e41f4b71Sopenharmony_ci </stepper-item> 209e41f4b71Sopenharmony_ci <stepper-item> 210e41f4b71Sopenharmony_ci <text>stepper-item3</text> 211e41f4b71Sopenharmony_ci </stepper-item> 212e41f4b71Sopenharmony_ci </stepper> 213e41f4b71Sopenharmony_ci </div> 214e41f4b71Sopenharmony_ci</div> 215e41f4b71Sopenharmony_ci``` 216e41f4b71Sopenharmony_ci 217e41f4b71Sopenharmony_ci```css 218e41f4b71Sopenharmony_ci/* xxx.css */ 219e41f4b71Sopenharmony_ci.doc-page { 220e41f4b71Sopenharmony_ci width:100%; 221e41f4b71Sopenharmony_ci height:100%; 222e41f4b71Sopenharmony_ci flex-direction: column; 223e41f4b71Sopenharmony_ci align-items: center; 224e41f4b71Sopenharmony_ci justify-content: center; 225e41f4b71Sopenharmony_ci} 226e41f4b71Sopenharmony_cistepper-item{ 227e41f4b71Sopenharmony_ci width: 100%; 228e41f4b71Sopenharmony_ci flex-direction: column; 229e41f4b71Sopenharmony_ci align-self: center; 230e41f4b71Sopenharmony_ci justify-content: center; 231e41f4b71Sopenharmony_ci} 232e41f4b71Sopenharmony_citext{ 233e41f4b71Sopenharmony_ci margin-top: 45%; 234e41f4b71Sopenharmony_ci justify-content: center; 235e41f4b71Sopenharmony_ci align-self: center; 236e41f4b71Sopenharmony_ci margin-bottom: 50px; 237e41f4b71Sopenharmony_ci} 238e41f4b71Sopenharmony_cibutton{ 239e41f4b71Sopenharmony_ci width: 80%; 240e41f4b71Sopenharmony_ci height: 60px; 241e41f4b71Sopenharmony_ci margin-top: 20px; 242e41f4b71Sopenharmony_ci} 243e41f4b71Sopenharmony_ci``` 244e41f4b71Sopenharmony_ci 245e41f4b71Sopenharmony_ci```js 246e41f4b71Sopenharmony_ci// xxx.js 247e41f4b71Sopenharmony_ciimport promptAction from '@ohos.promptAction'; 248e41f4b71Sopenharmony_ciexport default { 249e41f4b71Sopenharmony_ci data: { 250e41f4b71Sopenharmony_ci index:0, 251e41f4b71Sopenharmony_ci }, 252e41f4b71Sopenharmony_ci stepperSkip(){ 253e41f4b71Sopenharmony_ci this.index = null; 254e41f4b71Sopenharmony_ci this.index=2; 255e41f4b71Sopenharmony_ci }, 256e41f4b71Sopenharmony_ci skipClick(){ 257e41f4b71Sopenharmony_ci this.$element('stepperId').setNextButtonStatus({status: 'skip', label: 'SKIP'}); 258e41f4b71Sopenharmony_ci }, 259e41f4b71Sopenharmony_ci stepperFinish(){ 260e41f4b71Sopenharmony_ci promptAction.showToast({ 261e41f4b71Sopenharmony_ci message: 'All Finished' 262e41f4b71Sopenharmony_ci }) 263e41f4b71Sopenharmony_ci }, 264e41f4b71Sopenharmony_ci stepperChange(e){ 265e41f4b71Sopenharmony_ci console.log("stepperChange"+e.index) 266e41f4b71Sopenharmony_ci promptAction.showToast({ 267e41f4b71Sopenharmony_ci // index indicates the sequence number of the current step. 268e41f4b71Sopenharmony_ci message: 'Previous step: '+e.prevIndex+"-------Current step:"+e.index 269e41f4b71Sopenharmony_ci }) 270e41f4b71Sopenharmony_ci }, 271e41f4b71Sopenharmony_ci stepperNext(e){ 272e41f4b71Sopenharmony_ci console.log("stepperNext"+e.index) 273e41f4b71Sopenharmony_ci promptAction.showToast({ 274e41f4b71Sopenharmony_ci // pendingIndex indicates the sequence number of the step to be redirected to. 275e41f4b71Sopenharmony_ci message: 'Current step:'+e.index+"-------Next step:"+e.pendingIndex 276e41f4b71Sopenharmony_ci }) 277e41f4b71Sopenharmony_ci var index = {pendingIndex:e.pendingIndex } 278e41f4b71Sopenharmony_ci return index; 279e41f4b71Sopenharmony_ci }, 280e41f4b71Sopenharmony_ci stepperBack(e){ 281e41f4b71Sopenharmony_ci console.log("stepperBack"+e.index) 282e41f4b71Sopenharmony_ci var index = {pendingIndex: e.pendingIndex } 283e41f4b71Sopenharmony_ci return index; 284e41f4b71Sopenharmony_ci } 285e41f4b71Sopenharmony_ci} 286e41f4b71Sopenharmony_ci``` 287e41f4b71Sopenharmony_ci 288e41f4b71Sopenharmony_ci 289e41f4b71Sopenharmony_ci 290e41f4b71Sopenharmony_ci 291e41f4b71Sopenharmony_ci## Example Scenario 292e41f4b71Sopenharmony_ci 293e41f4b71Sopenharmony_ciIn this example, you can select the options displayed on the page and see how your selection takes effect in real time. Clicking the next button will dynamically change the font color and font size of the selected option. 294e41f4b71Sopenharmony_ci 295e41f4b71Sopenharmony_ciUse a **\<stepper>** component to navigate through the steps. Create a [\<toggle>](../reference/apis-arkui/arkui-js/js-components-basic-toggle.md) component to implement the functions of selecting an option and displaying the selection result. Then use the [\<select>](../reference/apis-arkui/arkui-js/js-components-basic-select.md) component to dynamically change the font color or size of the selected option. 296e41f4b71Sopenharmony_ci 297e41f4b71Sopenharmony_ci```html 298e41f4b71Sopenharmony_ci<!-- xxx.hml --> 299e41f4b71Sopenharmony_ci<div class="container"> 300e41f4b71Sopenharmony_ci <stepper id="mystep" index="0" onfinish="back" style="text-color: indigo;"> 301e41f4b71Sopenharmony_ci <stepper-item label="{{label1}}"> 302e41f4b71Sopenharmony_ci <div style="flex-direction: column;padding: 0px 10px;"> 303e41f4b71Sopenharmony_ci <text class="text" style="margin-top: 10%;text-align: center;width: 100%;">Select error types:</text> 304e41f4b71Sopenharmony_ci <text style="margin-top: 20px;padding: 10px"> 305e41f4b71Sopenharmony_ci <span>{{error}}</span> 306e41f4b71Sopenharmony_ci </text> 307e41f4b71Sopenharmony_ci <div style="justify-content: space-around;flex-wrap: wrap;"> 308e41f4b71Sopenharmony_ci <toggle for="{{togglelist1}}" value="{{$item}}" class="tog" onchange="multiTog({{$item}})"></toggle> 309e41f4b71Sopenharmony_ci </div> 310e41f4b71Sopenharmony_ci </div> 311e41f4b71Sopenharmony_ci </stepper-item> 312e41f4b71Sopenharmony_ci <stepper-item label="{{label2}}"> 313e41f4b71Sopenharmony_ci <div style="flex-direction: column;align-items: center;"> 314e41f4b71Sopenharmony_ci <text class="txt" style="margin-top: 10%;">Toggle</text> 315e41f4b71Sopenharmony_ci <div style="justify-content: space-around;flex-wrap: wrap;;margin-top:10%"> 316e41f4b71Sopenharmony_ci <toggle class="tog" for="{{togglelist1}}" value="{{$item}}" style="text-color: {{tcolor}};font-size: {{tsize}}; font-style: {{tstyle}};font-weight: {{tweight}};font-family: {{tfamily}};"> 317e41f4b71Sopenharmony_ci </toggle> 318e41f4b71Sopenharmony_ci </div> 319e41f4b71Sopenharmony_ci <div style="flex-wrap: wrap;width: 700px;margin-top:10%"> 320e41f4b71Sopenharmony_ci <div style="flex-direction: column;width: 350px;height: 185px;align-items: center;"> 321e41f4b71Sopenharmony_ci <text class="txt">text-color</text> 322e41f4b71Sopenharmony_ci <select onchange="settcolor"> 323e41f4b71Sopenharmony_ci <option for="{{color_list}}" value="{{$item}}">{{$item}}</option> 324e41f4b71Sopenharmony_ci </select> 325e41f4b71Sopenharmony_ci </div> 326e41f4b71Sopenharmony_ci <div style="flex-direction: column;width: 350px;height: 185px;align-items: center;"> 327e41f4b71Sopenharmony_ci <text class="txt">font-size</text> 328e41f4b71Sopenharmony_ci <select onchange="settsize"> 329e41f4b71Sopenharmony_ci <option for="{{size_list}}" value="{{$item}}">{{$item}}</option> 330e41f4b71Sopenharmony_ci </select> 331e41f4b71Sopenharmony_ci </div> 332e41f4b71Sopenharmony_ci </div> 333e41f4b71Sopenharmony_ci </div> 334e41f4b71Sopenharmony_ci </stepper-item> 335e41f4b71Sopenharmony_ci </stepper> 336e41f4b71Sopenharmony_ci</div> 337e41f4b71Sopenharmony_ci``` 338e41f4b71Sopenharmony_ci 339e41f4b71Sopenharmony_ci```css 340e41f4b71Sopenharmony_ci/* xxx.css */ 341e41f4b71Sopenharmony_ci.container { 342e41f4b71Sopenharmony_ci width:100%; 343e41f4b71Sopenharmony_ci height:100%; 344e41f4b71Sopenharmony_ci flex-direction: column; 345e41f4b71Sopenharmony_ci align-items: center; 346e41f4b71Sopenharmony_ci justify-content: center; 347e41f4b71Sopenharmony_ci background-color:#F1F3F5; 348e41f4b71Sopenharmony_ci} 349e41f4b71Sopenharmony_ci.dvd { 350e41f4b71Sopenharmony_ci stroke-width: 8px; 351e41f4b71Sopenharmony_ci color: orangered; 352e41f4b71Sopenharmony_ci margin: 65px; 353e41f4b71Sopenharmony_ci} 354e41f4b71Sopenharmony_ci.tog{ 355e41f4b71Sopenharmony_ci margin-right: 20px; 356e41f4b71Sopenharmony_ci margin-top: 30px; 357e41f4b71Sopenharmony_ci} 358e41f4b71Sopenharmony_ci``` 359e41f4b71Sopenharmony_ci 360e41f4b71Sopenharmony_ci```js 361e41f4b71Sopenharmony_ci// xxx.js 362e41f4b71Sopenharmony_ciimport promptAction from '@ohos.promptAction'; 363e41f4b71Sopenharmony_ciimport router from '@ohos.router'; 364e41f4b71Sopenharmony_cilet myset = new Set(); 365e41f4b71Sopenharmony_ciexport default { 366e41f4b71Sopenharmony_ci data: { 367e41f4b71Sopenharmony_ci error: '', 368e41f4b71Sopenharmony_ci tcolor:'#FF4500', 369e41f4b71Sopenharmony_ci color_list:['#FF4500','#5F9EA0','#0000FF'], 370e41f4b71Sopenharmony_ci tsize: '12px', 371e41f4b71Sopenharmony_ci size_list: ['12px', '30px', '8px', '50px'], 372e41f4b71Sopenharmony_ci label1: { 373e41f4b71Sopenharmony_ci prevLabel: 'The text on the left of the starting step is invalid.', 374e41f4b71Sopenharmony_ci nextLabel: 'Toggle' 375e41f4b71Sopenharmony_ci }, 376e41f4b71Sopenharmony_ci label2: { 377e41f4b71Sopenharmony_ci prevLabel: 'toggle', 378e41f4b71Sopenharmony_ci nextLabel: 'END' 379e41f4b71Sopenharmony_ci }, 380e41f4b71Sopenharmony_ci togglelist1:['Program error', 'Software', 'System', 'Application'], 381e41f4b71Sopenharmony_ci }, 382e41f4b71Sopenharmony_ci multiTog(arg, e) { 383e41f4b71Sopenharmony_ci this.error = ' ' 384e41f4b71Sopenharmony_ci if (e.checked) { 385e41f4b71Sopenharmony_ci myset.add(arg) 386e41f4b71Sopenharmony_ci } else { 387e41f4b71Sopenharmony_ci myset.delete(arg) 388e41f4b71Sopenharmony_ci } 389e41f4b71Sopenharmony_ci for (let item of myset) { 390e41f4b71Sopenharmony_ci this.error += item + ' ' 391e41f4b71Sopenharmony_ci } 392e41f4b71Sopenharmony_ci }, 393e41f4b71Sopenharmony_ci settcolor(e) { 394e41f4b71Sopenharmony_ci this.tcolor = e.newValue 395e41f4b71Sopenharmony_ci }, 396e41f4b71Sopenharmony_ci settsize(e) { 397e41f4b71Sopenharmony_ci this.tsize = e.newValue 398e41f4b71Sopenharmony_ci } 399e41f4b71Sopenharmony_ci} 400e41f4b71Sopenharmony_ci``` 401e41f4b71Sopenharmony_ci 402e41f4b71Sopenharmony_ci 403