开发UI框架:【laylte】Svelte版LAYUI(表单 - 单选框)

野生程序猿-杂烧3年前案例分享2566

【laylte/LayRadio.svelte】

<script>
    //import { createEventDispatcher } from 'svelte';

    //const dispatch = createEventDispatcher();
    export let value='';
    export let skin="normal";
    export let options;







    export let change=function(result){
         console.log('change');
         console.log(result);
    };



    //选中
    function click_one(option)
    {
        if(option.disabled) return false;
        if(value == option.value) return false;
        value = option.value;
        change(option.value);
        
    }



    
</script>
<!-- svelte-ignore a11y-click-events-have-key-events -->

{#if skin=='normal'}
    {#each options as option}
        <div on:click={click_one(option)} class="layui-unselect layui-form-checkbox {value==option.value ? 'layui-form-checked' : ''} {option.disabled==true ? 'layui-checkbox-disabled layui-disabled' : ''}"><span>{option.text}</span><i class="layui-icon layui-icon-circle-dot"></i></div>
    {/each}
{/if}

<!-- svelte-ignore a11y-click-events-have-key-events -->
{#if skin=='primary'}
    {#each options as option}
        
        <div  lay-skin="primary" on:click={click_one(option)} class="layui-unselect layui-form-radio {value==option.value ? ' layui-form-radioed' : ''} {option.disabled==true ? 'layui-radio-disabled layui-disabled' : ''}">
            {#if value==option.value}
            <i class="layui-anim layui-icon layui-icon layui-icon-radio layui-anim-scaleSpring"></i>
            {:else}
            <i class="layui-anim layui-icon layui-icon-circle"></i>
            {/if}
            <div>{option.text}</div>
        </div>
    {/each}
{/if}

<style>

</style>

【App.svelte】

<script>
    import LayRadio from '../laylte/LayRadio.svelte';
    //export let name;
    let options1 = [
        { value: 1, text: '#0d0887' },
        { value: 2, text: '#6a00a8' , disabled:true },
        { value: 3, text: '#b12a90' },
        { value: 4, text: '#e16462' },
        { value: 5, text: '#fca636' }
    ];


    function options1_change(value,result)
    {
        console.error('change1--xx',value,result);
    }

    let options1_value='3';

</script>
<svelte:head>
    <title>layui - 表单 - 单选框</title>
</svelte:head>
<!-- svelte-ignore a11y-label-has-associated-control -->
<main>
  <blockquote class="layui-elem-quote layui-text">
    单选框
  </blockquote>
                
  <fieldset class="layui-elem-field layui-field-title" style="margin-top: 20px;">
    <legend>单选框* 演示</legend>
  </fieldset>
   
  <form class="layui-form" action="">
    <div class="layui-form-item">
      

      <label class="layui-form-label">单选框1</label>
      <div class="layui-input-block">
        
        <LayRadio  bind:value="{options1_value}" options={options1} change={options1_change} ></LayRadio>
      </div>
    </div>
    <div class="layui-form-item">
      

        <label class="layui-form-label">单选框2</label>
        <div class="layui-input-block">
          
            <LayRadio  bind:value="{options1_value}" options={options1} change={options1_change} skin="primary"></LayRadio>
        </div>
      </div>
    <div class="layui-form-item">
      

        <label class="layui-form-label">选项框值</label>
        <div class="layui-form-mid">{options1_value}</div>
        
    </div>  

  </form>
</main> 
<style>

</style>

image.png

相关文章

开发UI框架:【laylte】Svelte版LAYUI(表单 - 下拉选项框)

开发UI框架:【laylte】Svelte版LAYUI(表单 - 下拉选项框)

从css部分进入了js部分了,想了想还是取个名字吧。框架就叫laylte吧,layui+Svelte=laylte。于是有了专属文件夹了laylte【laylte/LaySelect.svelte】&...

推荐一个前端框架Svelte(超级轻量级)

现在的前端框架太多了,国内用得比较多的是vue,非常强大,但是个人感觉灵活性糟糕,代码比较繁琐。近期接触一个框架,顿时让我感觉非常的爽,一种似曾相似的感觉,这个框架就是Svelte。Svelte是一个...

开发UI框架:【laylte】Svelte版LAYUI(表单 - 复选框)

开发UI框架:【laylte】Svelte版LAYUI(表单 - 复选框)

【laylte/LayCheckbox.svelte】<script>     //import { createEventD...

开发UI框架:【laylte】Svelte版LAYUI(表单 - 开关)

开发UI框架:【laylte】Svelte版LAYUI(表单 - 开关)

【laylte/LaySwitch.svelte】<script>     //import { createEventDis...

开发UI框架:Svelte版LAYUI(栅格系统与后台布局)

开发UI框架:Svelte版LAYUI(栅格系统与后台布局)

跟着layui官方的思路来,先是框架的css部分,这部分基本照搬过来。先前已经研究过了直接可以加载layui.csspublic/index.html<!DOCTYPE html>...

开发UI框架:Svelte版LAYUI(准备工作)

开发UI框架:Svelte版LAYUI(准备工作)

最近开始接触Svelte,感觉发现了一个新大陆。同时考虑到国内Svelte用得非常少,这么好的框架没什么人用,主要就是因为没有ui框架,于是决定借用别人的轮子造一个。这里选择了layui,比较经典的一...