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

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

【laylte/LaySwitch.svelte】

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

    //const dispatch = createEventDispatcher();
    export let value='false';//兼容 字符串/布尔  0/1  true/false  存数据库可以存0/1 也可以存字符串 true/false
    export let skin='normal';
    export let text=[];
    

    export let disabled='false';//兼容 字符串/布尔


    function load_text_arr(text)
    {
        let text_arr=['',''];
        if(text.length==2)
        {
            text_arr=[text[0],text[1]];
        }
        return text_arr;
    }
    let text_arr=load_text_arr(text);


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



    //选中
    function click_one()
    {
        if(disabled=='true' || disabled==true) return false;
        let result=true;
        //适配value
        if(value==='true')
        {
            result='false';
        }else if(value==='false'){
            result='true';
        }else if(value===true){
            result=false;
        }else if(value===false){
            result=true;
        }else if(value===1){
            result=0;
        }else if(value===0){
            result=1;
        }else if(value==='1'){
            result='0';
        }else if(value==='0'){
            result='1';
        }
        value = result;
        change(value);
        
    }



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

{#if skin=='normal'}
    {#if value===1 || value==='1' || value===true || value==='true'}
        <div on:click={click_one} class="layui-unselect layui-form-switch layui-form-onswitch { (disabled==true || disabled=='true') ? 'layui-disabled' : ''}" lay-skin="_switch"><em>{text_arr[0]}</em><i></i></div>
    {:else}
        <div on:click={click_one} class="layui-unselect layui-form-switch {  (disabled==true || disabled=='true') ? 'layui-disabled' : ''}" lay-skin="_switch"><em>{text_arr[1]}</em><i></i></div>
    {/if}
{/if}

<style>

</style>


【App.svelte】

<script>
    import LaySwitch from '../laylte/LaySwitch.svelte';
    //export let name;



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

    let switch_value=1;

    let switch2_value=false;


</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">
        
        <LaySwitch  bind:value="{switch_value}" text={['true','false']}  change={switch_change} ></LaySwitch>
      </div>
    </div>
    <div class="layui-form-item">
      

        <label class="layui-form-label">开关2</label>
        <div class="layui-input-block">
          
            <LaySwitch  bind:value="{switch_value}"  text={['开','关']} change={switch_change} ></LaySwitch>
        </div>
      </div>
      <div class="layui-form-item">
      

        <label class="layui-form-label">开关3</label>
        <div class="layui-input-block">
          
            <LaySwitch  bind:value="{switch_value}"  text={['','']} change={switch_change} ></LaySwitch>
        </div>
      </div>
      <div class="layui-form-item">
      

        <label class="layui-form-label">开关4</label>
        <div class="layui-input-block">
          
            <LaySwitch  bind:value="{switch_value}"  text={[]} change={switch_change} ></LaySwitch>
        </div>
      </div>
      <div class="layui-form-item">
      

        <label class="layui-form-label">开关5</label>
        <div class="layui-input-block">
          
            <LaySwitch  bind:value="{switch_value}"  change={switch_change} ></LaySwitch>
        </div>
      </div>
      <div class="layui-form-item">
      

        <label class="layui-form-label">开关6</label>
        <div class="layui-input-block">
          
            <LaySwitch  bind:value="{switch_value}" disabled="true"  change={switch_change} ></LaySwitch>
        </div>
      </div>

      <div class="layui-form-item">
      

        <label class="layui-form-label">开关7</label>
        <div class="layui-input-block">
          
            <LaySwitch  bind:value="{switch_value}"  text={['开启','关闭']} change={switch_change} ></LaySwitch>
        </div>
      </div>

    <div class="layui-form-item">
        <label class="layui-form-label">开关值</label>
        <div class="layui-form-mid">{switch_value}</div>
    </div>  


    <div class="layui-form-item">
      

        <label class="layui-form-label">开关8</label>
        <div class="layui-input-block">
          
            <LaySwitch  bind:value="{switch2_value}"  text={['好','不好']} change={switch_change} ></LaySwitch>
        </div>
      </div>

    <div class="layui-form-item">
        <label class="layui-form-label">开关值</label>
        <div class="layui-form-mid">{switch2_value}</div>
    </div>  

  </form>
</main> 
<style>

</style>

image.png

image.png

相关文章

开发UI框架:Svelte版LAYUI(表单 - css部分)

开发UI框架:Svelte版LAYUI(表单 - css部分)

App.svelte<script>     //export let name; </script> <...

layui居然下架了,太可惜了

layui居然下架了,太可惜了

不久前,用了多年的layui框架,下架了。让我们这些老程序员有点迷茫。连前辈们都... 下面是摘自layui的公告,让我们老程序猿也感受到无比的无奈:...

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

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

【laylte/LayRadio.svelte】<script>     //import { createEventDisp...

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

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

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

开发UI框架:Svelte版LAYUI(按钮)

开发UI框架:Svelte版LAYUI(按钮)

App.svelte<script>     //export let name; </script> <...

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

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

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