UNPKG

vxe-design

Version:

A PC-based visual designer based on Vxe UI, used for building zero-code and low-code platforms

1 lines 11.9 kB
Object.defineProperty(exports,"__esModule",{value:!0}),exports.DefaultParameterSettingFormComponent=exports.DefaultFieldSettingFormComponent=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_core=require("@vxe-ui/core"),_util=require("../render/util"),_xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let refWidgetReactConfigMaps=(0,_vue.ref)({}),DefaultFieldSettingFormComponent=exports.DefaultFieldSettingFormComponent=(0,_comp.defineVxeComponent)({name:"DefaultFieldSettingForm",props:{},emits:[],setup(){let e=_core.VxeUI.getComponent("VxeForm"),t=_core.VxeUI.getComponent("VxeFormItem"),o=_core.VxeUI.getComponent("VxeButton"),i=(0,_vue.inject)("$xeListDesign",null);if(!i)return()=>[];let u=i.reactData,v=(0,_vue.ref)(!1),d=(0,_vue.ref)(!1),l=e=>{e.visible=!e.visible,u.listTableColumns=u.listTableColumns.slice(0)},s=()=>{let{listTableColumns:e,searchFormItems:s}=u,n=refWidgetReactConfigMaps.value,a=[],o=(e.forEach(t=>{var i=t.cellRender;if(i){var o,l=s.find(e=>e.field===t.field),i=i.name||"";let e=n[i];e||(o=_core.renderer.get(i))&&(o=o.createFormDesignWidgetConfig)&&(e=o({name:i,$formDesign:null})||{},n[i]=e),e.query&&a.push(Object.assign(Object.assign({},t),{checked:!!l,isHalf:!1,folding:!!l&&!!l.folding}))}}),refWidgetReactConfigMaps.value=Object.assign({},n),(0,_vue.ref)(a)),l=()=>{var e=o.value;v.value=e.every(e=>e.checked),d.value=!v.value&&e.some(e=>e.checked||e.isHalf)},r=t=>{var e=o.value,e=_xeUtils.default.findTree(e,e=>e===t);e&&e.parent&&(e=e.parent,e.children)&&e.children.length&&(e.checked=e.children.every(e=>e.checked),e.isHalf=!e.checked&&e.children.some(e=>e.checked||e.isHalf),r(e))},c=()=>{var e=o.value;let t=!v.value;_xeUtils.default.eachTree(e,e=>{e.checked=t,e.isHalf=!1}),v.value=t,l()};_core.VxeUI.modal.open({title:(0,_core.getI18n)("vxe.listDesign.search.editPopupTitle"),width:680,height:500,showFooter:!0,escClosable:!0,showCancelButton:!0,showConfirmButton:!0,confirmButtonText:(0,_core.getI18n)("vxe.listDesign.searchPopup.saveBtn"),showZoom:!0,resize:!0,onConfirm:()=>{var e=o.value;let t=[];e.forEach(e=>{e.checked&&t.push({field:e.field,title:e.title,folding:e.folding,itemRender:Object.assign({},e.cellRender)})}),i.setSearchItems(t)},slots:{default(){var e=v.value,t=d.value,i=o.value;return(0,_vue.h)("div",{class:"vxe-list-design--field-search-popup"},[(0,_vue.h)("table",{},[(0,_vue.h)("colgroup",{},[(0,_vue.h)("col",{style:{width:"80px"}}),(0,_vue.h)("col")]),(0,_vue.h)("thead",{},[(0,_vue.h)("th",{},[(0,_vue.h)("div",{class:["vxe-list-design--field-search-checkbox-option",{"is--checked":e,"is--indeterminate":t}],title:(0,_core.getI18n)("vxe.table.allTitle"),onClick:c},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",t?(0,_core.getIcon)().CHECKBOX_INDETERMINATE:e?(0,_core.getIcon)().CHECKBOX_CHECKED:(0,_core.getIcon)().CHECKBOX_UNCHECKED]}),(0,_vue.h)("span",{class:"vxe-checkbox--label"},(0,_core.getI18n)("vxe.toolbar.customAll"))])]),(0,_vue.h)("th",{},(0,_core.getI18n)("vxe.listDesign.searchPopup.colTitle"))]),(0,_vue.h)("tbody",{},i.map(e=>{var t=e.checked,i=e.isHalf;return(0,_vue.h)("tr",{},[(0,_vue.h)("td",{class:"vxe-list-design--field-search-option-item col--visible"},[(0,_vue.h)("div",{class:["vxe-list-design--field-search-checkbox-option",{"is--checked":t,"is--indeterminate":i}],title:(0,_core.getI18n)("vxe.custom.setting.colVisible"),onClick:()=>{(e=>{let t=!e.checked;_xeUtils.default.eachTree([e],e=>{e.checked=t,e.isHalf=!1}),r(e),l()})(e)}},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",i?(0,_core.getIcon)().CHECKBOX_INDETERMINATE:t?(0,_core.getIcon)().CHECKBOX_CHECKED:(0,_core.getIcon)().CHECKBOX_UNCHECKED]})])]),(0,_vue.h)("td",{class:"vxe-list-design--field-search-option-item"},""+(e.title||""))])}))])])}}})},n=()=>{var e=u.listTableColumns;return e.map(e=>{var t,{title:i,visible:o}=e;return(0,_vue.h)("div",{class:"vxe-list-design--field-option"},[(0,_vue.h)("div",{class:"vxe-list-design--field-option-inner"},[(0,_vue.h)("div",{class:["vxe-list-design--field-checkbox-option",{"is--checked":o}],onClick(){l(e)}},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",o?(0,_core.getIcon)().CHECKBOX_CHECKED:(0,_core.getIcon)().CHECKBOX_UNCHECKED]}),(0,_vue.h)("span",{class:"vxe-checkbox--label"},""+i)])]),(o=(t=e).children)&&o.length?(0,_vue.h)("div",{class:"vxe-list-design--field-option-inner"},[(0,_vue.h)("div",{class:"vxe-list-design--field-sub-option",onClick(){l(t)}},o.map(e=>{var{title:t,visible:i}=e;return(0,_vue.h)("div",{class:["vxe-list-design--field-checkbox-option",{"is--checked":i}],onClick(){l(e)}},[(0,_vue.h)("span",{class:["vxe-checkbox--icon",i?(0,_core.getIcon)().CHECKBOX_CHECKED:(0,_core.getIcon)().CHECKBOX_UNCHECKED]}),(0,_vue.h)("span",{class:"vxe-checkbox--label"},""+t)])}))]):(0,_vue.createCommentVNode)()])})};return()=>(0,_vue.h)(e,{span:24,vertical:!0,titleBold:!0},{default(){return[(0,_vue.h)(t,{title:(0,_core.getI18n)("vxe.listDesign.searchField")},{extra(){return(0,_vue.h)(o,{mode:"text",status:"primary",icon:(0,_core.getIcon)().FORM_DESIGN_PROPS_EDIT,content:(0,_core.getI18n)("vxe.listDesign.search.addBtn"),onClick:s})},default(){var e=u.searchFormItems;return[e.length?(0,_vue.h)("div",{class:"vxe-list-design--search-item-wrapper"},[(0,_vue.h)("div",{class:"vxe-list-design--search-item-list"},e.map(i=>(0,_vue.h)("div",{key:i.field,class:"vxe-list-design--search-item"},[(0,_vue.h)("div",{class:"vxe-list-design--search-item-title"},""+(i.title||"")),(0,_vue.h)("div",{class:"vxe-list-design--search-item-btn"},[(0,_vue.h)(o,{icon:(0,_core.getIcon)().LIST_DESIGN_LIST_SETTING_SEARCH_DELETE,mode:"text",status:"error",onClick(){var t,e;t=i,e=u.searchFormItems,u.searchFormItems=e.filter(e=>e.field!==t.field)}})])])))]):(0,_vue.h)("div",{class:"vxe-list-design--field-configs-empty-data"},[(0,_vue.h)("span",{},(0,_core.getI18n)("vxe.listDesign.search.emptyText"))])]}}),(0,_vue.h)(t,{title:(0,_core.getI18n)("vxe.listDesign.listField")},{default(){return n()}})]}})}}),DefaultParameterSettingFormComponent=exports.DefaultParameterSettingFormComponent=(0,_comp.defineVxeComponent)({name:"DefaultListSettingTabComponent",props:{},emits:[],setup(){let c=_core.VxeUI.getComponent("vxe-form"),u=_core.VxeUI.getComponent("vxe-form-item"),o=_core.VxeUI.getComponent("vxe-text"),v=_core.VxeUI.getComponent("vxe-select"),l=_core.VxeUI.getComponent("vxe-switch"),s=_core.VxeUI.getComponent("vxe-radio-group"),a=_core.VxeUI.getComponent("vxe-button");var e=(0,_vue.inject)("$xeListDesign",null);if(!e)return()=>[];let{props:d,reactData:_}=e,m=[],h=[],n=(_core.renderer.forEach((e,t)=>{var i,e=e.createListDesignSettingActionButtonConfig;e&&(i={name:t},("custom"===(t=Object.assign((0,_util.createListDesignActionButton)({code:t}),e(i))).type?h:m).push(t))}),(0,_vue.ref)([{label:"列表视图",value:"list",isExpand:!1}])),r=(0,_vue.ref)([{label:"显示",value:!0},{label:"隐藏",value:!1}]),g=(0,_vue.ref)([{label:"默认",value:"auto"},{label:"允许",value:!0},{label:"不允许",value:!1}]),f=(0,_vue.computed)(()=>{var e=_.formData;return[e.listView.enabled,e.ganttView.enabled,e.chartView.enabled].filter(e=>e).length<=1}),p=()=>(0,_vue.h)(u,{title:"功能按钮"},{extra(){return(0,_vue.h)(a,{mode:"text",status:"primary",icon:(0,_core.getIcon)().FORM_DESIGN_PROPS_ADD,content:"新增",onClick(){(e=>{let t=_.formData,i=d.actionCodes,o=t.actionButtonList,l=(o=o||[],(0,_vue.reactive)((0,_util.createListDesignActionButton)(e))),s=m.filter(t=>!(i&&i.length&&!i.some(e=>_xeUtils.default.isString(e)?t.code===e:e.code===t.code)||o.some(e=>e.code===t.code)));var e=h.filter(t=>!o.some(e=>e.code===t.code)),n=[];s.length&&(l.type||(l.type=""),n.push({value:"",label:"系统按钮"})),e.length&&(l.type||(l.type="custom"),n.push({value:"custom",label:"自定义按钮"}));let a=(0,_vue.computed)(()=>s.map(e=>{var t=e.name;return{label:_xeUtils.default.toValueString(_xeUtils.default.isFunction(t)?t({name:e.code||""}):t),value:e.code}})),r=(0,_vue.ref)(n);_core.VxeUI.modal.open({title:"添加按钮",width:600,height:400,showFooter:!0,showCancelButton:!0,showConfirmButton:!0,confirmButtonText:"保存",onConfirm(){l.type,o.push(l),t.actionButtonList=[...o]},slots:{default(){return(0,_vue.h)(c,{vertical:!0,titleBold:!0},{default(){return[(0,_vue.h)(u,{title:"按钮类型",span:24},{default(){return(0,_vue.h)(v,{modelValue:l.type,options:r.value,"onUpdate:modelValue"(e){l.type=e}})}}),(0,_vue.h)(u,{title:"选择系统按钮",span:24},{default(){return(0,_vue.h)(v,{modelValue:l.code,options:a.value,"onUpdate:modelValue"(e){l.code=e}})}})]}})}}})})()}})},default(){let s=_.formData,n=s.actionButtonList;return n&&n.length?(0,_vue.h)("div",{class:"vxe-list-design--field-configs-wrapper"},n.map(t=>{let e="",i="";var o,l;return"custom"===t.type?(e=t.icon,i=t.name):(o=m.find(e=>e.code===t.code))&&(l=o.name,e=o.icon||"",i=_xeUtils.default.toValueString(_xeUtils.default.isFunction(l)?l({name:o.code||""}):l)),(0,_vue.h)("div",{class:"vxe-list-design--field-configs-item"},[e?(0,_vue.h)("div",{class:"vxe-list-design--field-configs-item-icon"},[(0,_vue.h)("i",{class:e})]):(0,_vue.createCommentVNode)(),(0,_vue.h)("div",{class:"vxe-list-design--field-configs-item-title"},""+(i||"")),(0,_vue.h)("div",{class:"vxe-list-design--field-configs-item-btn"},[(0,_vue.h)(a,{icon:(0,_core.getIcon)().LIST_DESIGN_LIST_SETTING_ACTIVE_DELETE,mode:"text",status:"error",onClick(){s.actionButtonList=n.filter(e=>e!==t)}})])])})):(0,_vue.h)("div",{class:"vxe-list-design--field-configs-empty-data"},[(0,_vue.h)("span",{},"无操作按钮")])}});return()=>{let{showPc:e,showMobile:t}=d,i=_.formData;return(0,_vue.h)(c,{span:24,vertical:!0,titleBold:!0},{default(){return[(0,_vue.h)(u,{title:"视图配置"},{default(){return(0,_vue.h)("div",{class:"vxe-form-design--widget-form-item-render-view"},n.value.map(e=>(0,_vue.h)("div",{key:e.value,class:"vxe-form-design--widget-form-item-render-view-item"},[(0,_vue.h)(l,{modelValue:i.listView.enabled,disabled:f.value,"onUpdate:modelValue"(e){i.listView.enabled=e}}),(0,_vue.h)(o,{content:e.label,icon:"vxe-icon-table"})])))}}),(0,_vue.h)(u,{title:"默认视图"},{default(){return[(0,_vue.h)("div",{class:"vxe-form-design--widget-form-item-devices"},[e?(0,_vue.h)("div",{class:"vxe-form-design--widget-form-item-devices-item"},[(0,_vue.h)("div",{class:"vxe-form-design--widget-form-item-devices-left"},[(0,_vue.h)(o,{icon:(0,_core.getIcon)().FORM_DESIGN_PROPS_PC,content:(0,_core.getI18n)("vxe.formDesign.widgetProp.displaySetting.pc")})]),(0,_vue.h)(v,{modelValue:i.pcDefaultView,className:"vxe-form-design--widget-form-item-devices-select",options:n.value,"onUpdate:modelValue"(e){i.pcDefaultView=e}})]):(0,_vue.createCommentVNode)(),t?(0,_vue.h)("div",{class:"vxe-form-design--widget-form-item-devices-item"},[(0,_vue.h)("div",{class:"vxe-form-design--widget-form-item-devices-left"},[(0,_vue.h)(o,{icon:(0,_core.getIcon)().FORM_DESIGN_PROPS_MOBILE,content:(0,_core.getI18n)("vxe.formDesign.widgetProp.displaySetting.mobile")})]),(0,_vue.h)(v,{modelValue:i.mobileDefaultView,className:"vxe-form-design--widget-form-item-devices-select",options:n.value,"onUpdate:modelValue"(e){i.mobileDefaultView=e}})]):(0,_vue.createCommentVNode)()])]}}),(0,_vue.h)(u,{title:"列配置"},{default(){let t=_.formData;return[(0,_vue.h)("div",{class:"vxe-list-design--widget-form-item-prop-list"},[(0,_vue.h)("span",{},"显示序号"),(0,_vue.h)(s,{modelValue:t.showSeq,options:r.value,"onUpdate:modelValue"(e){t.showSeq=e}})]),(0,_vue.h)("div",{class:"vxe-list-design--widget-form-item-prop-list"},[(0,_vue.h)("span",{},"表尾统计"),(0,_vue.h)(s,{modelValue:t.showStatistics,options:r.value,"onUpdate:modelValue"(e){t.showStatistics=e}})])]}}),(0,_vue.h)(u,{title:"批量操作"},{default(){let t=_.formData;return(0,_vue.h)(s,{modelValue:t.showCheckbox,options:g.value,"onUpdate:modelValue"(e){t.showCheckbox=e}})}}),(m.length||h.length?p:(0,_vue.createCommentVNode))()]}})}}});