page-content.2ff769ff.js 10 KB

1
  1. import{_ as G,z as S,bp as H,B as i,w as c,x as U,R as z,Q as D,T as C,P as V,C as d,Y as P,D as f,a1 as N,X as E,aX as A,a0 as W,bq as Y,y as X,J as I,at as T,ai as Z,br as ee,ad as te,I as oe,K as ae,bs as ne,bt as le}from"./index.228f4553.js";import{T as re}from"./index.2d3ff703.js";import{r as Q}from"./responseHandle.4e3db878.js";import{u as j}from"./hooks.cbe88ee0.js";import{u as J}from"./use-response-handle.49bd2e23.js";const $={formItems:{type:Array,default:()=>[]},formGroup:{type:Array,default:()=>[]},itemStyle:{type:Object,default:()=>({paddingRight:"20px"})},disabled:{type:Boolean,default:!1},colLayout:{type:Object,default:()=>({xl:6,lg:8,md:12,sm:24,xs:24})},formData:{type:Object,required:!0}},se={key:7,flex:"","gap-2":"","w-full":""},ue=X("span",null,"\u81F3",-1),ce=S({__name:"form-items",props:$,setup(o){const t=H(o,"formData");return(a,n)=>{const m=i("el-input"),r=i("el-option"),s=i("el-select"),y=i("el-radio"),v=i("el-radio-group"),g=i("el-image"),O=i("el-upload"),R=i("el-checkbox"),w=i("el-checkbox-group"),p=i("el-date-picker"),h=i("el-form-item"),k=i("el-col");return c(!0),U(D,null,z(a.formItems,(e,_)=>(c(),U(D,{key:_},[e.isHidden?P("v-if",!0):(c(),C(k,Y(A({key:0},a.colLayout)),{default:V(()=>[d(h,{label:e.label,prop:e.field,rules:e.rules,"label-width":e.labelWidth,style:W(a.itemStyle)},{default:V(()=>{var b,B;return[P(" \u8F93\u5165\u6846 "),e.type==="input"?(c(),C(m,{key:0,modelValue:f(t)[e.field],"onUpdate:modelValue":u=>f(t)[e.field]=u,placeholder:e.placeholder,clearable:""},null,8,["modelValue","onUpdate:modelValue","placeholder"])):P("v-if",!0),P(" \u9009\u62E9\u6846 "),e.type==="select"?(c(),C(s,{key:1,modelValue:f(t)[e.field],"onUpdate:modelValue":u=>f(t)[e.field]=u,placeholder:e.placeholder,clearable:""},{default:V(()=>[(c(!0),U(D,null,z(e.options,(u,F)=>(c(),C(r,{key:F,label:u.label,value:u.value},null,8,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue","placeholder"])):P("v-if",!0),e.type==="radio"?(c(),C(v,{key:2,modelValue:f(t)[e.field],"onUpdate:modelValue":u=>f(t)[e.field]=u},{default:V(()=>[(c(!0),U(D,null,z(e.options,(u,F)=>(c(),C(y,{key:F,label:u.value},{default:V(()=>[N(E(u.label),1)]),_:2},1032,["label"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue"])):P("v-if",!0),e.type==="img_preview"?(c(),C(g,{key:3,src:f(t)[e.field]},null,8,["src"])):P("v-if",!0),e.type==="img_upload"?(c(),C(O,{key:4,class:"el-avatar"})):P("v-if",!0),e.type==="checkbox"?(c(),C(w,{key:5,modelValue:f(t)[e.field],"onUpdate:modelValue":u=>f(t)[e.field]=u},{default:V(()=>[(c(!0),U(D,null,z(e.options,(u,F)=>(c(),C(R,{key:F,label:u.value},{default:V(()=>[N(E(u.label),1)]),_:2},1032,["label"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue"])):P("v-if",!0),e.type==="date_picker"?(c(),C(p,A({key:6,modelValue:f(t)[e.field],"onUpdate:modelValue":u=>f(t)[e.field]=u},e.otherOptions),null,16,["modelValue","onUpdate:modelValue"])):P("v-if",!0),e.type==="range"?(c(),U("div",se,[d(m,{modelValue:f(t)[e.field][0],"onUpdate:modelValue":u=>f(t)[e.field][0]=u,placeholder:(b=e.otherOptions)==null?void 0:b.startPlaceholder},null,8,["modelValue","onUpdate:modelValue","placeholder"]),ue,d(m,{modelValue:f(t)[e.field][1],"onUpdate:modelValue":u=>f(t)[e.field][1]=u,placeholder:(B=e.otherOptions)==null?void 0:B.endPlaceholder},null,8,["modelValue","onUpdate:modelValue","placeholder"])])):P("v-if",!0)]}),_:2},1032,["label","prop","rules","label-width","style"])]),_:2},1040))],64))),128)}}});var K=G(ce,[["__file","D:/work/accout-vue3-ui/src/components/BasicForm/src/form-items.vue"]]);const ie={class:"font-500 text-lg py-2"},de=S({__name:"group-form",props:$,setup(o){const t=H(o,"formData");return(a,n)=>{const m=i("el-col");return c(!0),U(D,null,z(a.formGroup,(r,s)=>(c(),U(D,{key:s},[d(m,{span:24},{default:V(()=>[X("h1",ie,E(r.title),1)]),_:2},1024),d(K,{"form-items":r.formItems,"form-data":f(t),"col-layout":a.colLayout},null,8,["form-items","form-data","col-layout"])],64))),128)}}});var pe=G(de,[["__file","D:/work/accout-vue3-ui/src/components/BasicForm/src/group-form.vue"]]);const fe=S({__name:"basic-form",props:$,setup(o,{expose:l}){const t=o,a=I(null),n=H(t,"formData");function m(r){var s;(s=a.value)==null||s.validate(y=>{r&&r(y)})}return l({vaildate:m}),(r,s)=>{const y=i("el-form-item"),v=i("el-row");return c(),C(f(ee),{ref_key:"formRef",ref:a,modelValue:f(n),"onUpdate:modelValue":s[2]||(s[2]=g=>T(n)?n.value=g:null),model:f(n),disabled:r.disabled},{default:V(()=>[d(v,null,{default:V(()=>[r.formGroup.length?(c(),C(pe,{key:1,"form-group":r.formGroup,"form-data":f(n),"onUpdate:form-data":s[1]||(s[1]=g=>T(n)?n.value=g:null),"col-layout":r.colLayout},null,8,["form-group","form-data","col-layout"])):(c(),C(K,{key:0,"form-items":r.formItems,"col-layout":r.colLayout,"form-data":f(n),"onUpdate:form-data":s[0]||(s[0]=g=>T(n)?n.value=g:null)},null,8,["form-items","col-layout","form-data"])),d(y,null,{default:V(()=>[Z(r.$slots,"action",{},void 0,!0)]),_:3})]),_:3})]),_:3},8,["modelValue","model","disabled"])}}});var Ae=G(fe,[["__scopeId","data-v-7881f45b"],["__file","D:/work/accout-vue3-ui/src/components/BasicForm/src/basic-form.vue"]]);const me={contentConfig:{type:Object,required:!0},pageSize:{type:Number,default:15}},M={config:{type:Object}},x={update:"httpUpdate",create:"httpAdd",delete:"httpDelete",status:"httpStatus"};function ge(o){const l=Object.keys(x),t={};return l.forEach(a=>{t[a]=!!o[x[a]]}),t}function q(o,l){return{config:{api:l[x[o]]}}}function _e({pagination:o,basicParams:l}){if(!o)return l;const{currentPage:t,pageSize:a}=o;return{page:t,size:a,...l}}function ye(o,{onSearch:l}){const{pageSize:t,contentConfig:a}=o;if(a.notPagination)return{};const n=te({total:0,pageSize:t,currentPage:1,background:!0});async function m(v){n.currentPage=v,await l()}async function r(v){n.pageSize=v,n.currentPage=1,await l()}function s(){return n}function y(v,g){n[v]=g}return{onSizeChange:r,onCurrentChange:m,pagination:n,getPagination:s,changePagination:y}}function ve(){const o=I({});function l(a={}){o.value=a}function t(){return o.value}return{changeBasicParams:l,getBasicParams:t}}function be(o){const{logout:l}=oe(),t=I(!1),a=I([]),n=I(!o.contentConfig.notReuqiredInit),{getBasicParams:m,changeBasicParams:r}=ve(),s=ye(o,{onSearch:g}),{changePagination:y,getPagination:v}=s;async function g(){const{contentConfig:w}=o,{apis:p,isTree:h,mockData:k}=w;if(!n.value)return n.value=!0;t.value=!0;const{code:e,data:_,message:b}=await p.httpList(_e({pagination:v?v():{},basicParams:m()}));Q({code:e,message:b,logout:l,handler:()=>{const B=Array.isArray(_)?_:_.list;a.value=h?ne(B!=null?B:[]):B,k&&(a.value=k),y("total",_.count)}}),t.value=!1}function O(w={}){y&&y("currentPage",1),r&&r(w),g()}async function R(w,p={},h){const{contentConfig:k}=o,{apis:e}=k,_=x[w];t.value=!0;const{code:b,message:B}=await e[_](p);h&&h(),Q({code:b,message:B,logout:l,handler:()=>g()}),t.value=!1}return ae(()=>g()),{loading:t,dataList:a,onBeforeAction:R,paginationConfig:s,getPageData:O,onSearch:g}}const he=S({name:"ActionCreate",emits:["create"],setup(o,{emit:l}){return()=>d(i("el-button"),{onClick:()=>l("create"),icon:j("add"),type:"primary"},{default:()=>[N("\u65B0\u589E")]})}}),ke=S({name:"ActionDelete",props:{...M,row:{type:Object,required:!0},prop:{type:String}},emits:["reload"],setup(o,{emit:l}){const t=J();async function a(){const{config:n,row:m,prop:r}=o,{code:s,message:y}=await n.api({...r?{[r]:m[r]}:{id:m.id}});t({code:s,message:y,handler:()=>l("reload")})}return()=>d(i("el-popconfirm"),{title:"\u662F\u5426\u786E\u8BA4\u5220\u9664",placement:"top",onConfirm:a},{reference:()=>d(i("el-button"),{class:"reset-margin",link:!0,type:"primary",icon:j("delete")},null)})}}),Ce=S({name:"ActionUpdate",props:M,emits:["update"],setup(o,{emit:l}){return()=>d(i("el-button"),{class:"reset-margin",onClick:()=>l("update"),link:!0,type:"primary",icon:j("edits")},null)}}),Pe=S({name:"ActionCreate",emits:["preview"],setup(o,{emit:l}){return()=>d(i("el-button"),{class:"reset-margin",link:!0,type:"primary",onClick:()=>l("preview"),icon:j("eye-view")},null)}}),Ve=S({name:"ActionDelete",props:{...M,row:{type:Object,required:!0},prop:{type:String}},emits:["reload"],setup(o,{emit:l}){const t=J();async function a(){const{config:n,row:m}=o,{status:r,id:s}=m,y=String(r)==="1"?"0":"1",{code:v,message:g}=await n.api({...o.prop?{[o.prop]:m[o.prop]}:{id:s},status:y});t({code:v,message:g,handler:()=>l("reload")})}return()=>d(i("el-popconfirm"),{title:String(o.row.status)==="1"?"\u6539\u4E3A\u7981\u7528\uFF1F":"\u6539\u4E3A\u542F\u7528\uFF1F",onConfirm:a},{reference:()=>d(i("el-button"),{class:"reset-margin",link:!0,type:"primary",icon:j(o.row.status==="1"?"close-circle-line":"checkbox-circle-line")},null)})}}),L={Create:he,Update:Ce,Delete:ke,Preview:Pe,Status:Ve},Oe=S({name:"PageContent",props:me,emits:["createBtnClick","updateBtnClick","previewBtnClick","statusBtnClick","selectionChange"],setup(o,{expose:l,emit:t,slots:a}){const n=ge(o.contentConfig.apis),{loading:m,dataList:r,onSearch:s,getPageData:y,onBeforeAction:v,paginationConfig:g}=be(o);function O(p){t("selectionChange",p)}function R(p){const{contentConfig:h}=o,{apis:k,notPreview:e,powers:_}=h;return d(D,null,[a.custom&&a.custom(p),!e&&_.some(b=>b=="007")&&d(L.Preview,{onPreview:()=>t("previewBtnClick",p)},null),n.update&&_.some(b=>b=="005")&&d(L.Update,A({onUpdate:()=>t("updateBtnClick",p)},q("update",k)),null),n.status&&(_.some(b=>b=="003")&&p.status+""=="0"||_.some(b=>b=="004")&&p.status+""=="1")&&d(L.Status,A({row:p,prop:h.statusProp,onReload:()=>s()},q("status",k)),null),n.delete&&_.some(b=>b=="006")&&d(L.Delete,A({row:p,prop:h.deleteProp,onReload:()=>s()},q("delete",k)),null)])}function w(p,h){const{contentConfig:k}=o,{columns:e}=k;return d(le,A({border:!0,align:"left",showOverflowTooltip:!0,"table-layout":"auto",size:p,data:r.value,columns:e,checkList:h,paginationSmall:p==="small",headerCellStyle:{background:"#fafafa",color:"#606266"},onSelectionChange:O},g),{operation:({row:_})=>R(_)})}return l({onSearch:s,getPageData:y,onBeforeAction:v}),()=>{const{contentConfig:p}=o,{title:h,powers:k}=p;return d(re,{title:h,dataList:r.value,onRefresh:s,loading:m.value},{buttons:()=>a.create&&a.create()||n.create&&k.some(e=>e=="002")&&d(L.Create,A(q("create",p.apis),{onCreate:()=>t("createBtnClick")}),null),default:({size:e,checkList:_})=>w(e,_)})}}});export{Ae as B,Oe as P};