数通智联化工云平台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

1 lines
18 KiB

import{d as Fe,v as Ee,r as ce,h as je,I as M,e as de,o as Ne,B as P,a as i,c as g,z as Q,b as c,l as o,w as n,x as d,F as C,f as R,t as x,g as f,u as K,U as ze,j as L,a4 as W,ab as Ae,Q as Me,a3 as Pe,A as ue,R as Qe,ac as Ke,W as pe,X as be,D as q,V as fe,S as O,ad as We,q as S,m as b,E as He,C as Je,Y as Xe,Z as Ye}from"./index-ea7eee8a.js";import{_ as Ze,a as Ge}from"./vueFile.vue_vue_type_script_setup_true_lang-db7b0571.js";import{_ as et}from"./aceDrawer.vue_vue_type_script_setup_true_lang-74ddf302.js";const tt={class:"main-body"},at={class:"header"},lt={class:"field"},ot={class:"table-field-list"},nt={class:"list"},st={class:"main-form main-table"},rt={key:1,class:"tip"},it={class:"control-btn"},ct={key:0,class:"tip"},dt={class:"control-other"},ut={key:0,class:"tip"},pt=["onClick"],bt=["innerHTML"],ft=c("i",{class:"icon-help"},null,-1),mt=["onClick"],gt=c("div",{class:"table-tip"},[d(" 操作提示:"),c("br"),d(" *从数据列表配置中选择 所属表单"),c("br"),d(" *从左上角 添加表格字段 选择预设字段"),c("br"),d(" *可拖动表头字段移动调整表头字段排列顺序"),c("br"),d(" *可通过顶部工具栏 生成脚本预览 查看或编辑添加自定义字段 ")],-1),_t={class:"sidebar-tools"},ht={class:"h3"},vt=["onClick"],yt=c("div",{class:"h3"},[c("h3",null,"接口数据事件")],-1),Rt=Fe({__name:"index",setup(kt){Ee().changeBreadcrumb([{label:"设计管理"},{label:"列表页设计"}]);const H=ce(),J=ce(),h=je().query,X=Je(),e=M({tableData:{columns:[],config:{}},searchData:{},loading:!1,attrObj:{},config:{},tagList:{},formId:h.form||"",formList:[],name:"",treeData:{},previewVisible:!1,tabsName:"second",formFieldList:[],dict:{},refreshTable:!0}),m=M({visible:!1,title:"",direction:"",content:"",codeType:""}),I=M({dict:'数据字典,用于匹配多选组、下拉选择等,提供动态获取Options接口字典数据,一般不设置,从接口dict获取。格式JSON:"sex":{"0":"男","1":"女"}',afterResponse:'提示:获取列表初始数据后事件,可对请求返回数据进行处理,也可为字符串,如opt="formatTest"',beforeRequest:"提示:获取列表初始数据前事件,可修改请求参数",beforeDelete:"提示:可对删除前提交参数处理"}),Y=()=>{m.visible=!1,m.content="",m.codeType="",m.title=""},me=de(()=>{var a,t,l,u,D,B,w,U;return[{label:"所属表单",placeholder:"请选择所属表单",value:parseInt(e.formId)||"",key:"formId",type:"select",options:e.formList,clearable:!0},{label:"数据列表名称",placeholder:"保存的数据列表名称",value:e.name,key:"name"},{label:"数据添加编辑打开方式",placeholder:"默认新页面打开",value:(a=e.tableData.config)==null?void 0:a.openType,type:"select",options:[{label:"弹窗",value:"dialog"},{label:"新页面",value:"page"}],key:"openType",path:"config",clearable:!0},{label:"窗口宽度",placeholder:"弹窗宽度",value:(t=e.tableData.config)==null?void 0:t.dialogWidth,type:"input",key:"dialogWidth",path:"config",hide:((l=e.tableData.config)==null?void 0:l.openType)!=="dialog"},{label:"横向滚动固定在底部",value:(u=e.tableData.config)==null?void 0:u.fixedBottomScroll,key:"fixedBottomScroll",type:"select",placeholder:"默认开启",path:"config",options:[{label:"启用",value:!0},{label:"禁用",value:!1}],clearable:!0},{label:"列显示隐藏设置",value:(D=e.tableData.config)==null?void 0:D.columnsSetting,key:"columnsSetting",type:"select",placeholder:"默认开启",path:"config",options:[{label:"启用",value:!0},{label:"禁用",value:!1}],clearable:!0},{label:"可折叠查询表单",value:(B=e.tableData.config)==null?void 0:B.expand,key:"expand",type:"switch",path:"config"},{label:"操作列按钮下拉",value:(w=e.tableData.config)==null?void 0:w.operateDropdown,key:"operateDropdown",type:"switch",path:"config"},{label:"开启侧栏树",value:(U=e.tableData.treeData)==null?void 0:U.show,key:"tree",type:"switch"}]}),ge=de(()=>{var l;const a={label:"表单字段",options:e.formFieldList},t=[{label:"其他字段",options:[{label:"多选",type:"selection"},{label:"序号",type:"index",width:"70px"},{label:"操作",prop:"__control"}]}];return(l=e.formFieldList)!=null&&l.length&&t.unshift(a),t}),$=(a,t)=>{var l;if(a.key==="tree"){e.tableData.treeData||(e.tableData.treeData={}),e.tableData.treeData.show=t;return}a.path==="config"?e.tableData.config[a.key]=a.value:e[a.key]=a.value,a.key==="formId"&&(!t&&((l=e.tableData.config)==null?void 0:l.openType)==="dialog"&&delete e.tableData.config.openType,j(a.value))},_e=a=>{e.tableData.columns.forEach((t,l)=>{t.prop===a.prop&&e.tableData.columns.splice(l,1)})},he=(a,t)=>{if(t){let l=!1;e.tableData.columns.forEach(u=>{(u.prop&&u.prop===a.prop||u.type&&u.type===a.type)&&(l=!0)}),l||e.tableData.columns.push(a)}else e.tableData.columns.forEach((l,u)=>{l.prop===a.prop&&e.tableData.columns.splice(u,1)})},ve=a=>{switch(a){case"del":e.tableData.columns=[],e.selectField=[];break;case"eye":e.previewVisible=!0;break;case"json":k(e.tableData,{direction:"rtl",type:"json"});break;case"vue":H.value.openTable(e.tableData);break;case"save":Be();break}},ye=()=>{e.tagList.push({value:"",type:"success"})},F=()=>{const a={};e.tagList.forEach(t=>{a[t.value]=t.type}),Object.keys(a).length?e.config.tagList=a:delete e.config.tagList,E()},E=()=>{Object.assign(e.attrObj,{config:e.config})},ke=a=>{e.tagList.splice(a,1),F()},De=()=>{k(e.attrObj,{type:"attr",title:"组件el-table-column属性"})},y=a=>{var t,l;switch(a){case"dict":k(e.dict||{},{type:a,title:I.dict});break;case"tableConfig":k(e.tableData.tableProps||{},{type:a,title:"el-table的相关属性"});break;case"beforeRequest":case"afterResponse":case"beforeDelete":const u=e.tableData.events||{};k(u[a],{type:a,title:I[a]});break;case"tree":let D=e.tableData.treeData||{};Object.keys(D).length===1&&(D={show:!0,treeProps:{},name:"唯一标识",method:"post",requestUrl:""}),k(D,{title:"更多参数详见ak-list组件",type:a});break;case"treeBeforeRequest":const B=(t=e.tableData.treeData)==null?void 0:t.beforeRequest;k(B,{type:a,title:"侧栏树请求前处理事件,可对参数作处理"});break;case"treeAfterResponse":const w=(l=e.tableData.treeData)==null?void 0:l.afterResponse;k(w,{type:a,title:'侧栏树请求返回事件,可对返回数据处理;也可为字符串,如opt="formatTest"'});break;case"operateBtn":const U=[{label:"编辑",key:"edit"},{label:"删除",key:"del"}];k(e.tableData.operateBtn||U,{type:a,title:"可设置多个操作按钮,其中key=edit/del有内置处理事件,还可根据条件显示与隐藏"});break;case"controlBtn":const z=[{label:"新增",key:"add",type:"primary",size:"small",icon:"plus"},{label:"批量删除",key:"del",type:"danger",size:"small",icon:"delete"}];k(e.tableData.controlBtn||z,{type:a,title:"可设置多个操作按钮,其中key=add/del有内置处理事件",direction:"rtl"});break}},k=(a,t={})=>{m.visible=!0,Object.assign(m,{direction:"ltr"},t);let l=pe(a,!0);switch(t.type){case"dict":l=be(a,!0);break;case"beforeRequest":case"beforeDelete":case"treeBeforeRequest":a||(l=Ye);break;case"afterResponse":case"treeAfterResponse":a||(l=Xe);break}m.content=l},Ve=a=>{const t=q(a);switch(m.type){case"json":e.tableData=t;break;case"tree":console.log(t),e.tableData.treeData=t;break;case"operateBtn":e.tableData.operateBtn=t;break;case"controlBtn":e.tableData.controlBtn=t;break;case"dict":e.dict=fe(a);break;case"beforeRequest":case"afterResponse":case"beforeDelete":e.tableData.events||(e.tableData.events={}),e.tableData.events[m.type]=t;break;case"tableConfig":e.tableData.tableProps=t;break;case"treeBeforeRequest":e.tableData.treeData.beforeRequest=t;break;case"treeAfterResponse":e.tableData.treeData.afterResponse=t;break}Y()},Ce=a=>{e.attrObj=a,e.config=a.config||{};const t=e.config.tagList;if(e.tagList=[],t)for(const l in t)e.tagList.push({value:l,type:t[l]});e.tabsName="first"},we=()=>{if(!h.id){O.error("请先保存设计的列表");return}X.push({path:"/design/form",query:{id:h.id,type:"search",redirect:`/design/dataList?id=${h.id}`}})},Z=()=>{const a=J.value.querySelector(".el-table__header-wrapper tr");We.create(a,{animation:180,delay:0,onEnd:t=>{const l=e.tableData.columns[t.oldIndex];e.tableData.columns.splice(t.oldIndex,1),e.tableData.columns.splice(t.newIndex,0,l),e.refreshTable=!1,P(()=>{e.refreshTable=!0,P(()=>{Z()})})}})},Re=()=>{S("designList",{pageInfo:{pageSize:100},type:1}).then(t=>{console.log("获取列表数据源",t),e.formList=t.data.list})},j=a=>{S("designById",{id:a}).then(t=>{console.log("获取当前数据下所有字段");const l=q(t.data.data);console.log("content",l),N(l)})},Le=["txt","title","table","component","upload","button","tinymce"],N=a=>{a==null||a.list.forEach(t=>{var l;t.type==="grid"||t.type==="tabs"?t.columns.forEach(u=>{N(u)}):["card","div"].includes(t.type)?N(t):Le.indexOf(t.type)===-1&&t.name&&e.formFieldList.push({prop:t.name,label:(l=t.item)==null?void 0:l.label,help:t.config.help||""})})},Be=()=>{const{requestUrl:a,deleteUrl:t}=e.tableData.config;if(!e.formId&&(!a||!t))return O.error("请选择所属表单或配置接口url");const l={listData:pe(e.tableData),source:e.formId,name:e.name||"未命名列表",type:2,dict:be(e.dict)};let u="designSave";h.id&&(Object.assign(l,{id:h.id}),u="designEdit"),e.loading=!0,S(u,l).then(()=>{O({message:"保存成功!",type:"success"}),X.push({path:"/design/dataList/list"}),e.loading=!1,window.sessionStorage.removeItem("formMenuList")}).catch(D=>{O.error(D.message||"保存异常"),e.loading=!1}),h.id||window.sessionStorage.removeItem("formMenuList")},Ue=a=>{S("designById",{id:a}).then(t=>{const l=t.data;e.tableData=q(l.listData),e.searchData=q(l.data),e.name=l.name,e.formId=l.source,e.dict=fe(l.dict),l.source&&j(l.source)})};return Ne(()=>{P(()=>{Z()}),Re(),h.id&&Ue(h.id),h.form&&j(h.form)}),(a,t)=>{var ee,te,ae,le,oe,ne,se,re,ie;const l=b("el-button"),u=b("el-checkbox"),D=b("el-popover"),B=b("el-divider"),w=b("el-tooltip"),U=b("el-table-column"),z=b("el-table"),_=b("el-form-item"),V=b("el-option"),A=b("el-select"),T=b("el-input"),G=b("el-tab-pane"),Te=b("el-switch"),xe=b("QuestionFilled"),qe=b("el-icon"),Oe=b("el-tabs"),Se=b("el-form"),Ie=b("el-dialog"),$e=He("loading");return i(),g("div",null,[Q((i(),g("div",{class:"design-container design-table",ref_key:"container",ref:J},[c("div",tt,[c("div",at,[c("div",lt,[o(D,{placement:"bottom",width:420,trigger:"hover"},{reference:n(()=>[o(l,{type:"primary",plain:"",size:"small"},{default:n(()=>[d("添加表格列字段")]),_:1})]),default:n(()=>[c("div",ot,[(i(!0),g(C,null,R(K(ge),(r,s)=>(i(),g("div",{class:"item",key:s},[c("h3",null,x(r.label),1),c("div",nt,[(i(!0),g(C,null,R(r.options,v=>(i(),f(u,{label:v.label,key:v.prop,onChange:p=>he(v,p)},null,8,["label","onChange"]))),128))])]))),128))])]),_:1})]),o(Ze,{onClick:ve})]),c("div",st,[c("div",{class:"search-box",onClick:we,title:"条件查询搜索区域,单击可编辑"},[(te=(ee=e.searchData)==null?void 0:ee.list)!=null&&te.length?(i(),f(ze,{key:0,"is-search":"","form-data":e.searchData,dict:e.dict,requestUrl:""},null,8,["form-data","dict"])):(i(),g("div",rt,"条件查询搜索区域,单击可编辑"))]),o(B,{"border-style":"dashed"}),c("div",it,[c("div",{class:"btn-group",onClick:t[0]||(t[0]=r=>y("controlBtn")),title:"单击可编辑"},[((le=(ae=e.tableData)==null?void 0:ae.controlBtn)==null?void 0:le.length)===0||!((oe=e.tableData)!=null&&oe.controlBtn)?(i(),g("div",ct,"操作按钮区域,点击可添加如新增、删除")):L("",!0),(i(!0),g(C,null,R((ne=e.tableData)==null?void 0:ne.controlBtn,r=>(i(),f(l,W(r,{key:r.label}),{default:n(()=>[d(x(r.label),1)]),_:2},1040))),128))]),c("div",dt,[(se=e.tableData.config)!=null&&se.expand?(i(),f(l,{key:0,size:"small",circle:"",icon:"Search"})):L("",!0),((re=e.tableData.config)==null?void 0:re.columnsSetting)!==!1?(i(),f(l,{key:1,size:"small",circle:"",icon:"SetUp"})):L("",!0)])]),(ie=e.tableData.columns)!=null&&ie.length?L("",!0):(i(),g("div",ut,"表格列设置区域,可从左上角 添加表格列字段 选择已有列或直接从上方工具栏 生成脚本预览 编辑")),e.refreshTable?(i(),f(z,W({key:1,data:[{}]},e.tableData.tableProps||{},{ref:"tableEl"}),{default:n(()=>[(i(!0),g(C,null,R(e.tableData.columns,r=>(i(),f(U,Ae(W({key:r.prop||r.label},r)),Me({header:n(s=>[d(x(s.column.label)+" ",1),c("i",{class:"icon-close",onClick:v=>_e(r)},null,8,pt),r.help?(i(),f(w,{key:0,placement:"top"},{content:n(()=>[c("span",{innerHTML:r.help},null,8,bt)]),default:n(()=>[ft]),_:2},1024)):L("",!0)]),_:2},[r.type!=="index"?{name:"default",fn:n(()=>[r.type==="selection"?(i(),f(u,{key:0})):(i(),g("span",{key:1,onClick:Pe(s=>Ce(r),["stop"])},"设置",8,mt))]),key:"0"}:void 0]),1040))),128))]),_:1},16)):L("",!0),gt])]),c("div",_t,[o(Se,{size:"small",class:"form"},{default:n(()=>[o(Oe,{modelValue:e.tabsName,"onUpdate:modelValue":t[14]||(t[14]=r=>e.tabsName=r)},{default:n(()=>[o(G,{label:"字段属性",name:"first"},{default:n(()=>[Q(c("div",null,[c("div",ht,[c("h3",null,x(e.attrObj.label),1),d(" 个性化设置")]),e.attrObj.prop==="__control"?(i(),f(_,{key:0},{default:n(()=>[o(l,{onClick:t[1]||(t[1]=r=>y("operateBtn"))},{default:n(()=>[d("操作按钮设置")]),_:1})]),_:1})):(i(),g(C,{key:1},[o(_,{label:"时间格式化"},{default:n(()=>[o(A,{modelValue:e.config.formatter,"onUpdate:modelValue":t[2]||(t[2]=r=>e.config.formatter=r),onChange:E},{default:n(()=>[o(V,{label:"{y}-{m}-{d} {h}:{i}:{s}",value:"{y}-{m}-{d} {h}:{i}:{s}"}),o(V,{label:"{y}-{m}-{d}",value:"{y}-{m}-{d}"}),o(V,{label:"{h}:{i}:{s}",value:"{h}:{i}:{s}"})]),_:1},8,["modelValue"])]),_:1}),o(_,{label:"值匹配字典"},{default:n(()=>[o(T,{placeholder:"字典对应的key",modelValue:e.config.dictKey,"onUpdate:modelValue":t[3]||(t[3]=r=>e.config.dictKey=r),onChange:E},null,8,["modelValue"])]),_:1}),(i(!0),g(C,null,R(e.tagList,(r,s)=>(i(),f(_,{key:s,class:"table-tag"},{default:n(()=>[o(T,{placeholder:"值对应的类型",modelValue:r.value,"onUpdate:modelValue":v=>r.value=v,onChange:F},{append:n(()=>[o(A,{style:{width:"80px"},modelValue:r.type,"onUpdate:modelValue":v=>r.type=v,onChange:F},{default:n(()=>[o(V,{label:"success",value:"success"}),o(V,{label:"info",value:"info"}),o(V,{label:"warning",value:"warning"}),o(V,{label:"danger",value:"danger"})]),_:2},1032,["modelValue","onUpdate:modelValue"])]),_:2},1032,["modelValue","onUpdate:modelValue"]),c("i",{class:"icon-del",onClick:v=>ke(s)},null,8,vt)]),_:2},1024))),128)),o(_,null,{default:n(()=>[o(l,{onClick:ye},{default:n(()=>[d("新增Tag标签显示")]),_:1})]),_:1}),o(_,null,{default:n(()=>[o(l,{onClick:De},{default:n(()=>[d("编辑"+x(e.attrObj.label)+"属性 ",1)]),_:1})]),_:1})],64))],512),[[ue,Object.keys(e.attrObj).length]])]),_:1}),o(G,{label:"数据列表配置",name:"second"},{default:n(()=>{var r;return[(i(!0),g(C,null,R(K(me).filter(s=>!s.hide),(s,v)=>(i(),f(_,{label:s.label,key:v},{default:n(()=>[s.type==="select"?(i(),f(A,{key:0,modelValue:s.value,"onUpdate:modelValue":p=>s.value=p,placeholder:s.placeholder,clearable:!0,onChange:p=>$(s)},{default:n(()=>[(i(!0),g(C,null,R(s.options,p=>(i(),f(V,{label:p.label||p.name,key:p.label||p.name,value:K(Qe)(p.value??p.id)},null,8,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue","placeholder","onChange"])):s.type==="switch"?(i(),f(Te,{key:1,modelValue:s.value,"onUpdate:modelValue":p=>s.value=p,onInput:p=>$(s,p)},null,8,["modelValue","onUpdate:modelValue","onInput"])):(i(),f(T,{key:2,modelValue:s.value,"onUpdate:modelValue":p=>s.value=p,placeholder:s.placeholder,onInput:p=>$(s)},null,8,["modelValue","onUpdate:modelValue","placeholder","onInput"]))]),_:2},1032,["label"]))),128)),Q(o(_,{class:"event-btn"},{default:n(()=>[o(l,{onClick:t[4]||(t[4]=s=>y("tree"))},{default:n(()=>[d("编辑侧栏树属性 ")]),_:1}),o(l,{onClick:t[5]||(t[5]=s=>y("treeBeforeRequest"))},{default:n(()=>[d("beforeRequest ")]),_:1}),o(l,{onClick:t[6]||(t[6]=s=>y("treeAfterResponse"))},{default:n(()=>[d("afterResponse ")]),_:1})]),_:1},512),[[ue,(r=e.tableData.treeData)==null?void 0:r.show]]),o(_,{class:"event-btn"},{default:n(()=>[o(l,{onClick:t[7]||(t[7]=s=>y("tableConfig"))},{default:n(()=>[d("编辑表格属性 ")]),_:1}),o(l,{onClick:t[8]||(t[8]=s=>y("dict"))},{default:n(()=>[d("设置数据字典 "),o(w,{content:I.dict,placement:"top"},{default:n(()=>[o(qe,null,{default:n(()=>[o(xe)]),_:1})]),_:1},8,["content"])]),_:1})]),_:1}),yt,o(_,{label:"列表数据请求URL"},{default:n(()=>[o(T,{placeholder:"一般不需要填写,使用默认值",modelValue:e.tableData.config.requestUrl,"onUpdate:modelValue":t[9]||(t[9]=s=>e.tableData.config.requestUrl=s)},null,8,["modelValue"])]),_:1}),o(_,{label:"删除列表数据URL"},{default:n(()=>[o(T,{placeholder:"一般不需要填写,使用默认值",modelValue:e.tableData.config.deleteUrl,"onUpdate:modelValue":t[10]||(t[10]=s=>e.tableData.config.deleteUrl=s)},null,8,["modelValue"])]),_:1}),o(_,{class:"event-btn"},{default:n(()=>[o(l,{onClick:t[11]||(t[11]=s=>y("beforeRequest"))},{default:n(()=>[d("beforeRequest ")]),_:1}),o(l,{onClick:t[12]||(t[12]=s=>y("afterResponse"))},{default:n(()=>[d("afterResponse ")]),_:1}),o(l,{onClick:t[13]||(t[13]=s=>y("beforeDelete"))},{default:n(()=>[d("beforeDelete ")]),_:1})]),_:1})]}),_:1})]),_:1},8,["modelValue"])]),_:1})])])),[[$e,e.loading]]),o(et,{modelValue:m.visible,"onUpdate:modelValue":t[15]||(t[15]=r=>m.visible=r),title:m.title,direction:m.direction,content:m.content,"code-type":m.codeType,onBeforeClose:Y,onConfirm:Ve},null,8,["modelValue","title","direction","content","code-type"]),o(Ge,{ref_key:"vueFileEl",ref:H},null,512),o(Ie,{modelValue:e.previewVisible,"onUpdate:modelValue":t[16]||(t[16]=r=>e.previewVisible=r),title:"预览",fullscreen:!0},{default:n(()=>[e.previewVisible?(i(),f(Ke,{key:0,tableData:e.tableData,searchData:e.searchData},null,8,["tableData","searchData"])):L("",!0)]),_:1},8,["modelValue"])])}}});export{Rt as default};