UNPKG

vxe-table-demonic

Version:

一个基于 vue 的 PC 端表单/表格组件,支持增删改查、虚拟列表、虚拟树、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、弹窗、自定义模板、渲染器、JSON 配置式...

1 lines 3.02 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=require("xe-utils"),__assign=function(){return(__assign=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var a in t=arguments[n])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e}).apply(this,arguments)},__spreadArray=function(e,t,n){if(n||2===arguments.length)for(var r,a=0,u=t.length;a<u;a++)!r&&a in t||((r=r||Array.prototype.slice.call(t,0,a))[a]=t[a]);return e.concat(r||Array.prototype.slice.call(t))},_default=(0,_vue.defineComponent)({name:"vxeTags",props:{modelValue:{type:Array,default:function(){return[]}},color:{type:String,default:"default"},size:{type:String,default:"medium"},closable:{type:Boolean,default:!1},round:{type:Boolean,default:!1},tagStyle:{type:String,default:"default"},icon:{type:String},iconSet:{type:String,default:""},align:{type:String,default:"middle"},creator:{type:[Function,Boolean]}},emits:["update:modelValue","close","edit","icon-click","tag-created"],setup:function(n,e){var t=e.slots,a=e.emit,r=(0,_xeUtils.uniqueId)(),u=(0,_vue.reactive)({inited:!1,innerTags:n.modelValue}),l=(0,_vue.ref)(),i=(0,_vue.ref)([]),o=(0,_vue.ref)(),s={refElem:l,refTags:i,activeTag:o},r={xID:r,props:n,context:e,reactData:u,getRefMaps:function(){return s}},c=(0,_vue.computed)(function(){var e=(0,_xeUtils.pick)(__assign({},n),["color","size","closable","editable","round","tagStyle","icon","iconSet","align"]);return n.creator&&(e.editable=!0),e}),d=(0,_vue.computed)(function(){return n.modelValue.every(function(e){return!(0,_xeUtils.isObject)(e)})}),p=function(e){var t=u.innerTags;t.splice(e,1),a("update:modelValue",t)},v=function(e,t){return e.flatMap(function(e){return[e,t]}).slice(0,-1)},f=function(){var e;return null!=(e=null==(e=null==t?void 0:t.separator)?void 0:e.call(t))?e:null};return r.renderVN=function(){return(0,_vue.h)("span",{ref:l,class:["vxe-tags-wrapper"]},__spreadArray(__spreadArray([],(r=u.innerTags,e=r.map(function(t,n){return(0,_vue.h)((0,_vue.resolveComponent)("vxe-tag"),__assign({key:(0,_xeUtils.uniqueId)(),ref:i.value[n],onClose:function(){return p(n)},onEdit:function(e){(0,_xeUtils.isString)(r[n])?r[n]=e:r[n].content=e,a("update:modelValue",r),a("edit",{$event:{index:n,tag:t}})},content:d.value?t:t.content},d.value?c.value:__assign(__assign({},c.value),t)))}),t=f(),v(e,t)),!0),[n.creator?(0,_vue.h)((0,_vue.resolveComponent)("vxe-button"),{icon:"vxe-icon-square-plus-square",type:"text",status:"primary",onClick:function(){var e;n.creator&&(e=(0,_xeUtils.isFunction)(n.creator)?n.creator(n.modelValue):"",e=d.value?(0,_xeUtils.isString)(e)?e:null==e?void 0:e.content:""===e?__assign(__assign({},(0,_vue.unref)(c)),{content:""}):e,u.innerTags.push(e),a("update:modelValue",u.innerTags),a("tag-created",{$event:{tag:e}}),o.value=i.value[i.value.length-1],null!=(e=o.value))&&e.startEditing()}}):null],!1));var r,e,t},r},render:function(){return this.renderVN()}});exports.default=_default;