vxe-design
Version:
A PC-based visual designer based on Vxe UI, used for building zero-code and low-code platforms
1 lines • 12 kB
JavaScript
;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}}const refWidgetReactConfigMaps=(0,_vue.ref)({}),DefaultFieldSettingFormComponent=exports.DefaultFieldSettingFormComponent=(0,_comp.defineVxeComponent)({name:"DefaultFieldSettingForm",props:{},emits:[],setup(){const e=_core.VxeUI.getComponent("vxe-form"),t=_core.VxeUI.getComponent("vxe-form-item"),o=_core.VxeUI.getComponent("vxe-button"),i=(0,_vue.inject)("$xeListDesign",null);if(!i)return()=>[];const 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=()=>{const{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)},c=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),c(e))},r=()=>{var e=o.value;const 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;const 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:r},[(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(i=>{var e=i.checked,t=i.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":e,"is--indeterminate":t}],title:(0,_core.getI18n)("vxe.custom.setting.colVisible"),onClick:()=>{{var e=i;const t=!e.checked;_xeUtils.default.eachTree([e],e=>{e.checked=t,e.isHalf=!1}),c(e),l()}}},[(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)("td",{class:"vxe-list-design--field-search-option-item"},""+(i.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(){const r=_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()=>[];const{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}])),c=(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(){{var t=void 0;const o=_["formData"],l=d["actionCodes"];let e=o.actionButtonList;e=e||[];const s=(0,_vue.reactive)((0,_util.createListDesignActionButton)(t)),n=m.filter(t=>!(l&&l.length&&!l.some(e=>_xeUtils.default.isString(e)?t.code===e:e.code===t.code)||e.some(e=>e.code===t.code)));var t=h.filter(t=>!e.some(e=>e.code===t.code)),i=[];n.length&&(s.type||(s.type=""),i.push({value:"",label:"系统按钮"})),t.length&&(s.type||(s.type="custom"),i.push({value:"custom",label:"自定义按钮"}));const a=(0,_vue.computed)(()=>n.map(e=>{var t=e.name;return{label:_xeUtils.default.toValueString(_xeUtils.default.isFunction(t)?t({name:e.code||""}):t),value:e.code}})),c=(0,_vue.ref)(i);_core.VxeUI.modal.open({title:"添加按钮",width:600,height:400,showFooter:!0,showCancelButton:!0,showConfirmButton:!0,confirmButtonText:"保存",onConfirm(){s.type,e.push(s),o.actionButtonList=[...e]},slots:{default(){return(0,_vue.h)(r,{vertical:!0,titleBold:!0},{default(){return[(0,_vue.h)(u,{title:"按钮类型",span:24},{default(){return(0,_vue.h)(v,{modelValue:s.type,options:c.value,"onUpdate:modelValue"(e){s.type=e}})}}),(0,_vue.h)(u,{title:"选择系统按钮",span:24},{default(){return(0,_vue.h)(v,{modelValue:s.code,options:a.value,"onUpdate:modelValue"(e){s.code=e}})}})]}})}}})}}})},default(){const 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()=>{const{showPc:e,showMobile:t}=d,i=_["formData"];return(0,_vue.h)(r,{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(){const 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:c.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:c.value,"onUpdate:modelValue"(e){t.showStatistics=e}})])]}}),(0,_vue.h)(u,{title:"批量操作"},{default(){const 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))()]}})}}});