2 lines
9.4 KiB
JavaScript
2 lines
9.4 KiB
JavaScript
import{d as ne,r as V,a as se,v as R,o as ie,g as n,B as de,c as I,k as u,e as l,C as ue,w as o,b as _,t as c,l as p,D as N,F as ce,y as me,z as f,G as pe,x as A,H as fe,I as U,J as L,E as g,_ as ge}from"./index-CcDqJDLV.js";import{g as ye,a as _e,d as be,u as ve,c as Te}from"./assessment-D4Dn5X1l.js";const he={class:"category-container"},Ve={class:"header-content"},Ce={class:"header-right"},we=ne({__name:"index",setup(De){const z={1:"八大智能",2:"个人特质",3:"细分能力",4:"先天学习",5:"学习能力",6:"大脑类型",7:"性格类型",8:"未来能力"},$={1:"累加(1-10)",2:"二值(0/1)"},q=V(),b=V(),d=V(void 0),t=se({loading:!1,assessmentTypes:[],categoryTree:[],dialogVisible:!1,dialogTitle:"新增分类",formData:T(),formLoading:!1,isEdit:!1}),B=R(()=>{if(!t.isEdit)return t.categoryTree;const a=t.formData.id;if(!a)return t.categoryTree;const e=s=>s.filter(i=>i.id!==a).map(i=>({...i,children:i.children?e(i.children):[]}));return e(t.categoryTree)}),F=R(()=>({name:[{required:!0,message:"请输入分类名称",trigger:"blur"},{max:50,message:"名称不能超过50个字符",trigger:"blur"}],code:[{required:!0,message:"请输入分类编码",trigger:"blur"},{max:50,message:"编码不能超过50个字符",trigger:"blur"}],categoryType:[{required:!0,message:"请选择分类类型",trigger:"change"}],scoreRule:[{required:!0,message:"请选择计分规则",trigger:"change"}]}));function T(){return{assessmentTypeId:void 0,parentId:void 0,name:"",code:"",categoryType:void 0,scoreRule:void 0,sort:0}}function S(a){return z[a]||"未知"}function M(a){return $[a]||"未知"}function C(a){return a.children&&a.children.length>0}async function O(){var a;try{const e=await ye({page:1,pageSize:100});e.code===0&&(t.assessmentTypes=((a=e.data)==null?void 0:a.list)||[],t.assessmentTypes.length>0&&!d.value&&(d.value=t.assessmentTypes[0].id,await v()))}catch(e){console.error("Failed to load assessment types:",e)}}async function v(){if(!d.value){t.categoryTree=[];return}t.loading=!0;try{const a=await _e(d.value);if(a.code===0)t.categoryTree=a.data||[];else throw new Error(a.message||"获取分类树失败")}catch(a){const e=a instanceof Error?a.message:"获取分类树失败";g.error(e),t.categoryTree=[]}finally{t.loading=!1}}function P(){v()}function w(a){if(!d.value){g.warning("请先选择测评类型");return}t.isEdit=!1,t.dialogTitle="新增分类",t.formData={...T(),assessmentTypeId:d.value,parentId:a},t.dialogVisible=!0}function G(a){w(a.id)}function Y(a){t.isEdit=!0,t.dialogTitle="编辑分类",t.formData={id:a.id,assessmentTypeId:d.value,parentId:a.parentId||void 0,name:a.name,code:a.code,categoryType:a.categoryType,scoreRule:a.scoreRule,sort:a.sort},t.dialogVisible=!0}async function H(a){if(C(a)){g.error("该分类下有子分类,无法删除");return}try{const e=await be(a.id);if(e.code===0)g.success("删除成功"),await v();else throw new Error(e.message||"删除失败")}catch(e){const s=e instanceof Error?e.message:"删除失败";g.error(s)}}async function J(){if(b.value){try{await b.value.validate()}catch{return}t.formLoading=!0;try{const a=t.formData,e={assessmentTypeId:a.assessmentTypeId,parentId:a.parentId||void 0,name:a.name,code:a.code,categoryType:Number(a.categoryType),scoreRule:Number(a.scoreRule),sort:a.sort};let s;if(t.isEdit&&a.id?s=await ve({...e,id:a.id}):s=await Te(e),s.code===0)g.success(t.isEdit?"更新成功":"创建成功"),t.dialogVisible=!1,await v();else throw new Error(s.message||(t.isEdit?"更新失败":"创建失败"))}catch(a){const e=a instanceof Error?a.message:t.isEdit?"更新失败":"创建失败";g.error(e)}finally{t.formLoading=!1}}}function j(){var a;(a=b.value)==null||a.resetFields(),t.formData=T()}return ie(async()=>{await O()}),(a,e)=>{const s=n("el-icon"),i=n("el-button"),h=n("el-card"),K=n("el-option"),Q=n("el-select"),m=n("el-form-item"),D=n("el-form"),W=n("el-alert"),y=n("el-table-column"),k=n("el-tag"),X=n("el-popconfirm"),Z=n("el-tooltip"),ee=n("el-table"),te=n("el-empty"),ae=n("el-tree-select"),x=n("el-input"),le=n("el-input-number"),oe=n("el-dialog"),re=de("loading");return u(),I("div",he,[l(h,{class:"page-header"},{default:o(()=>[_("div",Ve,[e[11]||(e[11]=_("div",{class:"header-left"},[_("h2",{class:"page-title"},"报告分类管理"),_("span",{class:"page-description"},"管理测评报告的分类层级结构,配置计分维度")],-1)),_("div",Ce,[l(i,{type:"primary",disabled:!d.value,onClick:e[0]||(e[0]=r=>w())},{default:o(()=>[l(s,null,{default:o(()=>[l(p(N))]),_:1}),e[10]||(e[10]=c(" 新增分类 ",-1))]),_:1},8,["disabled"])])])]),_:1}),l(h,{class:"filter-card"},{default:o(()=>[l(D,{inline:""},{default:o(()=>[l(m,{label:"测评类型"},{default:o(()=>[l(Q,{modelValue:d.value,"onUpdate:modelValue":e[1]||(e[1]=r=>d.value=r),placeholder:"请选择测评类型",style:{width:"280px"},onChange:P},{default:o(()=>[(u(!0),I(ce,null,me(t.assessmentTypes,r=>(u(),f(K,{key:r.id,label:r.name,value:r.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),ue((u(),f(h,{class:"table-card"},{default:o(()=>[d.value?(u(),f(ee,{key:1,ref_key:"tableRef",ref:q,data:t.categoryTree,"row-key":"id",border:"","default-expand-all":"","tree-props":{children:"children",hasChildren:"hasChildren"}},{default:o(()=>[l(y,{prop:"name",label:"分类名称","min-width":"200","show-overflow-tooltip":""}),l(y,{prop:"code",label:"分类编码",width:"150","show-overflow-tooltip":""}),l(y,{label:"分类类型",width:"140",align:"center"},{default:o(({row:r})=>[l(k,{type:"info"},{default:o(()=>[c(A(r.categoryTypeName||S(r.categoryType)),1)]),_:2},1024)]),_:1}),l(y,{label:"计分规则",width:"140",align:"center"},{default:o(({row:r})=>[l(k,{type:r.scoreRule===1?"success":"warning"},{default:o(()=>[c(A(r.scoreRuleName||M(r.scoreRule)),1)]),_:2},1032,["type"])]),_:1}),l(y,{prop:"sort",label:"排序",width:"80",align:"center"}),l(y,{label:"操作",width:"220",fixed:"right",align:"center"},{default:o(({row:r})=>[l(i,{type:"primary",link:"",size:"small",onClick:E=>G(r)},{default:o(()=>[l(s,null,{default:o(()=>[l(p(N))]),_:1}),e[12]||(e[12]=c(" 添加子分类 ",-1))]),_:1},8,["onClick"]),l(i,{type:"primary",link:"",size:"small",onClick:E=>Y(r)},{default:o(()=>[l(s,null,{default:o(()=>[l(p(fe))]),_:1}),e[13]||(e[13]=c(" 编辑 ",-1))]),_:1},8,["onClick"]),C(r)?(u(),f(Z,{key:1,content:"该分类下有子分类,无法删除",placement:"top"},{default:o(()=>[l(i,{type:"danger",link:"",size:"small",disabled:""},{default:o(()=>[l(s,null,{default:o(()=>[l(p(U))]),_:1}),e[15]||(e[15]=c(" 删除 ",-1))]),_:1})]),_:1})):(u(),f(X,{key:0,title:"确定要删除这个分类吗?","confirm-button-text":"确定","cancel-button-text":"取消",onConfirm:E=>H(r)},{reference:o(()=>[l(i,{type:"danger",link:"",size:"small"},{default:o(()=>[l(s,null,{default:o(()=>[l(p(U))]),_:1}),e[14]||(e[14]=c(" 删除 ",-1))]),_:1})]),_:1},8,["onConfirm"]))]),_:1})]),_:1},8,["data"])):(u(),f(W,{key:0,title:"请先选择测评类型以查看分类数据",type:"info",closable:!1,"show-icon":"",style:{"margin-bottom":"16px"}})),d.value&&t.categoryTree.length===0&&!t.loading?(u(),f(te,{key:2,description:"暂无分类数据,请点击新增分类按钮添加"})):pe("",!0)]),_:1})),[[re,t.loading]]),l(oe,{modelValue:t.dialogVisible,"onUpdate:modelValue":e[9]||(e[9]=r=>t.dialogVisible=r),title:t.dialogTitle,width:"600px","close-on-click-modal":!1,onClosed:j},{footer:o(()=>[l(i,{onClick:e[8]||(e[8]=r=>t.dialogVisible=!1)},{default:o(()=>[...e[16]||(e[16]=[c("取消",-1)])]),_:1}),l(i,{type:"primary",loading:t.formLoading,onClick:J},{default:o(()=>[...e[17]||(e[17]=[c(" 确定 ",-1)])]),_:1},8,["loading"])]),default:o(()=>[l(D,{ref_key:"formRef",ref:b,model:t.formData,rules:F.value,"label-width":"100px","label-position":"right"},{default:o(()=>[l(m,{label:"父分类",prop:"parentId"},{default:o(()=>[l(ae,{modelValue:t.formData.parentId,"onUpdate:modelValue":e[2]||(e[2]=r=>t.formData.parentId=r),data:B.value,props:{label:"name",value:"id",children:"children"},placeholder:"请选择父分类(不选则为顶级分类)",clearable:"","check-strictly":"","render-after-expand":!1,style:{width:"100%"}},null,8,["modelValue","data"])]),_:1}),l(m,{label:"分类名称",prop:"name"},{default:o(()=>[l(x,{modelValue:t.formData.name,"onUpdate:modelValue":e[3]||(e[3]=r=>t.formData.name=r),placeholder:"请输入分类名称",maxlength:"50","show-word-limit":""},null,8,["modelValue"])]),_:1}),l(m,{label:"分类编码",prop:"code"},{default:o(()=>[l(x,{modelValue:t.formData.code,"onUpdate:modelValue":e[4]||(e[4]=r=>t.formData.code=r),placeholder:"请输入分类编码",maxlength:"50","show-word-limit":""},null,8,["modelValue"])]),_:1}),l(m,{label:"分类类型",prop:"categoryType"},{default:o(()=>[l(p(L),{modelValue:t.formData.categoryType,"onUpdate:modelValue":e[5]||(e[5]=r=>t.formData.categoryType=r),type:"category_type",placeholder:"请选择分类类型",style:{width:"100%"}},null,8,["modelValue"])]),_:1}),l(m,{label:"计分规则",prop:"scoreRule"},{default:o(()=>[l(p(L),{modelValue:t.formData.scoreRule,"onUpdate:modelValue":e[6]||(e[6]=r=>t.formData.scoreRule=r),type:"score_rule",placeholder:"请选择计分规则",style:{width:"100%"}},null,8,["modelValue"])]),_:1}),l(m,{label:"排序",prop:"sort"},{default:o(()=>[l(le,{modelValue:t.formData.sort,"onUpdate:modelValue":e[7]||(e[7]=r=>t.formData.sort=r),min:0,max:9999,placeholder:"数值越小越靠前"},null,8,["modelValue"])]),_:1})]),_:1},8,["model","rules"])]),_:1},8,["modelValue","title"])])}}}),Ee=ge(we,[["__scopeId","data-v-ff69e995"]]);export{Ee as default};
|