const comsort = { props:{ isleftcolumn:{//是否有左侧侧边 required:false, type: Boolean, default:false, }, isrightcolumn:{//是否有右侧侧边 required:false, type: Boolean, default:false, }, issort:{//是否显示排序 required:false, type: Boolean, default:false, }, defaultval:{//显示信息值 required:true, type: Object, default:{ display:[],//显示内容 other:'',//显示内容其它 sort:'',//排序方式 order:'',//升序、降序 column:[],//侧边栏 layout:''//图片布局方式 }, }, size:{ required:false, type: String, default:'default',//large,default,small }, placement:{ required:false, type: String, default:'left-start',//top/top-start/top-end/bottom/bottom-start/bottom-end/left/left-start/left-end/right/right-start/right-end }, }, template:`
`, setup(props,context){ let SortData = [ {val:'添加时间',key:'btime'}, {val:'修改时间',key:'dateline'}, {val:'创建日期',key:'mtime'}, {val:'标题',key:'name'}, {val:'文件大小',key:'filesize'}, {val:'尺寸',key:'whsize'}, {val:'评分',key:'grade'}, {val:'时长',key:'duration'}, ]; let DisplayData = [ {key:'name',val:'名称'}, {key:'extension',val:'扩展名'}, {key:'other',val:'其它信息',children:[ {key:'size',val:'尺寸'}, {key:'filesize',val:'文件大小'}, {key:'tag',val:'标签'}, {key:'grade',val:'评分'}, {key:'btime',val:'添加时间'}, {key:'dateline',val:'修改时间'}, {key:'mtime',val:'创建日期'}, ]}, ]; let DisplayDataOther = [ {key:'size',val:'尺寸'}, {key:'filesize',val:'文件大小'}, {key:'tag',val:'标签'}, {key:'grade',val:'评分'}, {key:'btime',val:'添加时间'}, {key:'dateline',val:'修改时间'}, {key:'mtime',val:'创建日期'}, ]; let LayoutData = [ {key:'waterFall',text:'瀑布流'}, {key:'rowGrid',text:'自适应'}, {key:'imageList',text:'网格'}, {key:'tabodd',text:'列表单列'}, {key:'tabeven',text:'列表双列'}, {key:'details',text:'详情'} ]; let PropDefaultVal = reactive({ display: props.defaultval.display || [],//显示内容 other: props.defaultval.other || '',//显示内容其它 order: props.defaultval.order || '',//排序方式 sort: props.defaultval.sort || '',//升序、降序 column: props.defaultval.column || [],//侧边栏 layout: props.defaultval.layout || '',//图片布局方式 }); watch(()=>props.defaultval, (newVal, oldVal)=>{//监听数据变化 PropDefaultVal.display = newVal.display || []; PropDefaultVal.other = newVal.other || ''; PropDefaultVal.order = newVal.order || ''; PropDefaultVal.sort = newVal.sort || ''; PropDefaultVal.column = newVal.column || []; PropDefaultVal.layout = newVal.layout || ''; },{ deep: true, }); function handlechange(type){//改变事件 let value = null; switch(type){ case 'display': value = PropDefaultVal.display; break; case 'other': value = PropDefaultVal.other; break; case 'sort': value = PropDefaultVal.sort; break; case 'order': value = PropDefaultVal.order; break; case 'column': value = PropDefaultVal.column; break; case 'layout': value = PropDefaultVal.layout; break; } if(value){ context.emit('change',{ type:type, value:value }); } } return { SortData, DisplayData, DisplayDataOther, LayoutData, PropDefaultVal, handlechange } } };