# 其他组件

# 筛选 lg-sieve

参数 说明 类型 必须 默认值
columns 配置项 Array
derive 是否显示导出按钮 Boolean true
reset 是否显示重置按钮 Boolean true

# 插槽

名称 说明 调用值
sieveLeft 筛选左边插槽
sieveRight 筛选右边插槽
sieveInline 筛选按钮后的插槽

# 可调用事件

名称 说明 回调参数
resetFields 清空筛选表单

# 回调

名称 说明 回调参数
change 重置,确定回调 筛选值
onDerive 点击了导出

# columns

类型:Array

描述:用于表头名称配置,用法同table,但该组件仅保留搜索功能

注:1.1.0新增sieveFold属性

columns:[
            {
             title: '设备类型',
             dataIndex: 'index',
              sieve:'select' //筛选类型
           //options: 'sex',//关联字典
               sieveFold:true, //是否收起
             table:'class',//关联数据表,如果页面没有进行初次获取,会自动进行获  
            deploy:{placeholder:'请输入'}//传入组件属性
			}
			 ],

# sieve

类型

//sieve:"input"//输入框
//date 日期选择框
//select 单选
//cascader 级联
//customize 自定义

# 关联筛选 (options,table)

注:同时关联字典和数据表,优先关联字典,------ 数据表关联开发中

//options:"sex"//传入对应字典名称

options:[[{ label: '阿斯顿', value: 123 }],'sex']

//传入数组,则表示在尾部插入自定义数据。如果不想关联字典则只传入一个值,但必须如上嵌套一层数组,关联数据表用法相同

# 动态插入数组 (options)

注:自定义筛选器动态(如请求表获取列表)数据源需要使用计算属性

<script setup>
import { ref, reactive, onMounted, computed } from 'vue'
import utils from '/src/utils/utils.js'
// 关联表获取自定义筛选器数据源,通过计算属性更新自定义数据源
let columns = computed(() => {
    return [{
        title: '序号',
        dataIndex: 'index',
        align: 'center',
        width: 50,
    },
    {
        title: '关联班级',
        dataIndex: 'id_class',
        sieve: 'select',
        show: true,
        options: [class_list.value],
    },

    {
        title: '操作',
        align: 'center',
        dataIndex: 'action',
        width: 100,
    },
    ]
})
const demo_list = ref([])
onMounted(() => {
    //请求表数据
    utils.setTable("demo").then(res => {
        demo_list.value = res.demo
    })
})
</script>


# 自定义插入组件 (customize)

注:如内置组件不符合业务需求可以通过传入组件的方式生成自定义组件

<template>
	  <lg-sieve :columns='columns' @change="change"></lg-sieve>
</template>

<script setup>
	import {lgSieve} from 'lg-ui-pro'
	import { reactive,markRaw } from 'vue';
	import {lgInput} from 'lg-ui'
	 let lgdemo ={
		   template: `<lgInput @change='change'></lgInput>`,
		    components: {
		    lgInput
		     },
		  setup() {
		    const change = () => {
		    console.log('触发');
		    };
		    return {
		     change
		    }
		  },	 
	 }
	let data =reactive({
			columns: [
		    {
			 title: '名称',
			 dataIndex: 'title',
			    sieve:'customize',
				 component:markRaw(lgdemo)
			},
	],
	})
</script>

案例:

<template>
  <div>
	  <lg-sieve :columns='columns' @change="change"></lg-sieve>
  </div>
</template>
<script setup>
    import {lgSieve} from 'lg-ui-pro'
import { ref } from 'vue'
const columns = ref(
  [{
    title: '设备类型',
    dataIndex: 'index',
    sieve: 'select',//筛选类型
    options: 'type',//关联字典
     deploy:{placeholder:'请选择'}
  }]
)

const change = (e, a) => {

}
</script>

# 上传图片 lg-image

参数 说明 类型 必须 默认值
v-model/modelValue 图片数据(需与类型一致) Array/String
mode 数据类型(String/Array) String String
limit 上传数量 Number 1
size 大小限制 Number 1
accept 上传类型 Array ['image/png','image/gif','image/bmp','image/jpeg']

案例

<template>
<lg-image v-model="url_list" :limit='1'></lg-image>
</template>
<script setup>
    import { ref } from 'vue'
    const url_list = ref('http://pic1.win4000.com/wallpaper/3/52c11445ac6c7.jpg')
</script>

# 上传文件 lg-file

参数 说明 类型 必须 默认值
v-model/modelValue 图片数据(需与类型一致) Array/String
mode 数据类型(String/Array) String String
limit 上传数量 Number 1
size 大小限制 Number 1
accept 上传类型 Array []
autoUpload 自动上传 Boolean true

# 插槽

名称 说明 参数
default 默认插槽,用于创建按钮

# 可调用事件

名称 说明 调用值
fileList 已经选择的文件列表(主要用于手动上传获取列表)

# 回调

名称 说明 回调参数
change 确定回调
callStatus 上传请求回调详细值

案例

<template>
<lg-file v-model="list" :limit='1'></lg-file>
</template>
<script setup>
     import { ref } from 'vue'
     const url_list = ref('http://pic1.win4000.com/wallpaper/3/52c11445ac6c7.jpg')
</script>