2 lines
9.3 KiB
JavaScript
2 lines
9.3 KiB
JavaScript
import{d as ie,r as h,a as re,v as ce,o as de,g as s,B as ue,c as g,k as i,e as l,w as n,b as r,t as m,l as k,D as me,F as fe,y as pe,z as f,C as S,G as b,x as T,H as ge,I as _e,J as ye,E as p,_ as ve}from"./index-Cz1Ax9N2.js";import{g as he,a as be,b as Te,e as we,f as Ce,h as Le}from"./assessment-CyN1iwMr.js";const ke={class:"conclusion-container"},Ve={class:"header-content"},De={class:"header-right"},xe={class:"tree-panel"},Ee={class:"tree-content"},Ne={class:"tree-node"},Ie={class:"node-label"},Ae={class:"list-panel"},ze={class:"panel-header"},Me={class:"panel-title"},Ue={key:0,class:"category-name"},Pe={key:0,class:"conclusion-count"},Se={class:"list-content"},Be=["innerHTML"],Fe=ie({__name:"index",setup(Re){const B={1:"最强",2:"较强",3:"较弱",4:"最弱"},F={1:"success",2:"primary",3:"warning",4:"danger"},R={label:"name",children:"children"},q=h(),w=h(),u=h(void 0),d=h(void 0),_=h(""),e=re({treeLoading:!1,listLoading:!1,assessmentTypes:[],categoryTree:[],conclusionList:[],dialogVisible:!1,dialogTitle:"新增结论",formData:V(),formLoading:!1,isEdit:!1}),H=ce(()=>({conclusionType:[{required:!0,message:"请选择结论类型",trigger:"change"}],title:[{required:!0,message:"请输入结论标题",trigger:"blur"},{max:100,message:"标题不能超过100个字符",trigger:"blur"}],content:[{required:!0,message:"请输入结论内容",trigger:"blur"},{max:5e3,message:"内容不能超过5000个字符",trigger:"blur"}]}));function V(){return{categoryId:void 0,conclusionType:void 0,title:"",content:""}}function O(o){return B[o]||"未知"}function $(o){return F[o]||"info"}function G(o){if(!o)return"-";const t=o.replace(/<[^>]*>/g,"").trim();return t.length>100?t.substring(0,100)+"...":t||"-"}async function Y(){var o;try{const t=await he({page:1,pageSize:100});t.code===0&&(e.assessmentTypes=((o=t.data)==null?void 0:o.list)||[],e.assessmentTypes.length>0&&!u.value&&(u.value=e.assessmentTypes[0].id,await N()))}catch(t){console.error("Failed to load assessment types:",t)}}async function N(){if(!u.value){e.categoryTree=[];return}e.treeLoading=!0,d.value=void 0,_.value="",e.conclusionList=[];try{const o=await be(u.value);if(o.code===0)e.categoryTree=o.data||[];else throw new Error(o.message||"获取分类树失败")}catch(o){const t=o instanceof Error?o.message:"获取分类树失败";p.error(t),e.categoryTree=[]}finally{e.treeLoading=!1}}async function D(){if(!d.value){e.conclusionList=[];return}e.listLoading=!0;try{const o=await Le(d.value);if(o.code===0)e.conclusionList=o.data||[];else throw new Error(o.message||"获取结论列表失败")}catch(o){const t=o instanceof Error?o.message:"获取结论列表失败";p.error(t),e.conclusionList=[]}finally{e.listLoading=!1}}function J(){N()}function j(o){d.value=o.id,_.value=o.name,D()}function K(){if(!d.value){p.warning("请先从左侧选择一个分类");return}e.isEdit=!1,e.dialogTitle="新增结论",e.formData={...V(),categoryId:d.value},e.dialogVisible=!0}function Q(o){e.isEdit=!0,e.dialogTitle="编辑结论",e.formData={id:o.id,categoryId:o.categoryId,conclusionType:String(o.conclusionType),title:o.title,content:o.content},e.dialogVisible=!0}async function W(o){try{const t=await Te(o.id);if(t.code===0)p.success("删除成功"),await D();else throw new Error(t.message||"删除失败")}catch(t){const c=t instanceof Error?t.message:"删除失败";p.error(c)}}async function X(){if(w.value){try{await w.value.validate()}catch{return}e.formLoading=!0;try{const o=e.formData,t={categoryId:o.categoryId,conclusionType:Number(o.conclusionType),title:o.title,content:o.content};let c;if(e.isEdit&&o.id?c=await we({...t,id:o.id}):c=await Ce(t),c.code===0)p.success(e.isEdit?"更新成功":"创建成功"),e.dialogVisible=!1,await D();else throw new Error(c.message||(e.isEdit?"更新失败":"创建失败"))}catch(o){const t=o instanceof Error?o.message:e.isEdit?"更新失败":"创建失败";p.error(t)}finally{e.formLoading=!1}}}function Z(){var o;(o=w.value)==null||o.resetFields(),e.formData=V()}return de(async()=>{await Y()}),(o,t)=>{const c=s("el-icon"),y=s("el-button"),x=s("el-card"),ee=s("el-option"),te=s("el-select"),v=s("el-form-item"),I=s("el-form"),A=s("el-alert"),z=s("el-tag"),oe=s("el-tree"),M=s("el-empty"),U=s("el-col"),C=s("el-table-column"),le=s("el-popconfirm"),ne=s("el-table"),ae=s("el-row"),E=s("el-input"),se=s("el-dialog"),P=ue("loading");return i(),g("div",ke,[l(x,{class:"page-header"},{default:n(()=>[r("div",Ve,[t[7]||(t[7]=r("div",{class:"header-left"},[r("h2",{class:"page-title"},"报告结论管理"),r("span",{class:"page-description"},"管理测评报告的结论内容,配置不同分数段的结论文案")],-1)),r("div",De,[l(y,{type:"primary",disabled:!d.value,onClick:K},{default:n(()=>[l(c,null,{default:n(()=>[l(k(me))]),_:1}),t[6]||(t[6]=m(" 新增结论 ",-1))]),_:1},8,["disabled"])])])]),_:1}),l(x,{class:"filter-card"},{default:n(()=>[l(I,{inline:""},{default:n(()=>[l(v,{label:"测评类型"},{default:n(()=>[l(te,{modelValue:u.value,"onUpdate:modelValue":t[0]||(t[0]=a=>u.value=a),placeholder:"请选择测评类型",style:{width:"280px"},onChange:J},{default:n(()=>[(i(!0),g(fe,null,pe(e.assessmentTypes,a=>(i(),f(ee,{key:a.id,label:a.name,value:a.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),l(x,{class:"main-content-card"},{default:n(()=>[l(ae,{gutter:16},{default:n(()=>[l(U,{span:8},{default:n(()=>[r("div",xe,[t[8]||(t[8]=r("div",{class:"panel-header"},[r("span",{class:"panel-title"},"分类列表")],-1)),S((i(),g("div",Ee,[u.value?e.categoryTree.length>0?(i(),f(oe,{key:1,ref_key:"treeRef",ref:q,data:e.categoryTree,props:R,"node-key":"id","highlight-current":"","default-expand-all":"",onNodeClick:j},{default:n(({node:a,data:L})=>[r("span",Ne,[r("span",Ie,T(a.label),1),L.categoryTypeName?(i(),f(z,{key:0,size:"small",type:"info"},{default:n(()=>[m(T(L.categoryTypeName),1)]),_:2},1024)):b("",!0)])]),_:1},8,["data"])):u.value&&!e.treeLoading?(i(),f(M,{key:2,description:"暂无分类数据","image-size":80})):b("",!0):(i(),f(A,{key:0,title:"请先选择测评类型",type:"info",closable:!1,"show-icon":""}))])),[[P,e.treeLoading]])])]),_:1}),l(U,{span:16},{default:n(()=>[r("div",Ae,[r("div",ze,[r("span",Me,[t[9]||(t[9]=m(" 结论列表 ",-1)),_.value?(i(),g("span",Ue," - "+T(_.value),1)):b("",!0)]),e.conclusionList.length>0?(i(),g("span",Pe," 共 "+T(e.conclusionList.length)+" 条 ",1)):b("",!0)]),S((i(),g("div",Se,[d.value?e.conclusionList.length>0?(i(),f(ne,{key:1,data:e.conclusionList,border:"",stripe:""},{default:n(()=>[l(C,{label:"结论类型",width:"120",align:"center"},{default:n(({row:a})=>[l(z,{type:$(a.conclusionType)},{default:n(()=>[m(T(a.conclusionTypeName||O(a.conclusionType)),1)]),_:2},1032,["type"])]),_:1}),l(C,{prop:"title",label:"标题","min-width":"180","show-overflow-tooltip":""}),l(C,{label:"内容预览","min-width":"250"},{default:n(({row:a})=>[r("div",{class:"content-preview",innerHTML:G(a.content)},null,8,Be)]),_:1}),l(C,{label:"操作",width:"150",fixed:"right",align:"center"},{default:n(({row:a})=>[l(y,{type:"primary",link:"",size:"small",onClick:L=>Q(a)},{default:n(()=>[l(c,null,{default:n(()=>[l(k(ge))]),_:1}),t[10]||(t[10]=m(" 编辑 ",-1))]),_:1},8,["onClick"]),l(le,{title:"确定要删除这条结论吗?","confirm-button-text":"确定","cancel-button-text":"取消",onConfirm:L=>W(a)},{reference:n(()=>[l(y,{type:"danger",link:"",size:"small"},{default:n(()=>[l(c,null,{default:n(()=>[l(k(_e))]),_:1}),t[11]||(t[11]=m(" 删除 ",-1))]),_:1})]),_:1},8,["onConfirm"])]),_:1})]),_:1},8,["data"])):d.value&&!e.listLoading?(i(),f(M,{key:2,description:"该分类下暂无结论,请点击新增结论按钮添加","image-size":80})):b("",!0):(i(),f(A,{key:0,title:"请从左侧选择一个分类以查看结论",type:"info",closable:!1,"show-icon":""}))])),[[P,e.listLoading]])])]),_:1})]),_:1})]),_:1}),l(se,{modelValue:e.dialogVisible,"onUpdate:modelValue":t[5]||(t[5]=a=>e.dialogVisible=a),title:e.dialogTitle,width:"700px","close-on-click-modal":!1,onClosed:Z},{footer:n(()=>[l(y,{onClick:t[4]||(t[4]=a=>e.dialogVisible=!1)},{default:n(()=>[...t[12]||(t[12]=[m("取消",-1)])]),_:1}),l(y,{type:"primary",loading:e.formLoading,onClick:X},{default:n(()=>[...t[13]||(t[13]=[m(" 确定 ",-1)])]),_:1},8,["loading"])]),default:n(()=>[l(I,{ref_key:"formRef",ref:w,model:e.formData,rules:H.value,"label-width":"100px","label-position":"right"},{default:n(()=>[l(v,{label:"所属分类"},{default:n(()=>[l(E,{value:_.value,disabled:""},null,8,["value"])]),_:1}),l(v,{label:"结论类型",prop:"conclusionType"},{default:n(()=>[l(k(ye),{modelValue:e.formData.conclusionType,"onUpdate:modelValue":t[1]||(t[1]=a=>e.formData.conclusionType=a),type:"conclusion_type",placeholder:"请选择结论类型",style:{width:"100%"}},null,8,["modelValue"])]),_:1}),l(v,{label:"标题",prop:"title"},{default:n(()=>[l(E,{modelValue:e.formData.title,"onUpdate:modelValue":t[2]||(t[2]=a=>e.formData.title=a),placeholder:"请输入结论标题",maxlength:"100","show-word-limit":""},null,8,["modelValue"])]),_:1}),l(v,{label:"内容",prop:"content"},{default:n(()=>[l(E,{modelValue:e.formData.content,"onUpdate:modelValue":t[3]||(t[3]=a=>e.formData.content=a),type:"textarea",placeholder:"请输入结论内容(支持HTML格式)",rows:8,maxlength:"5000","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1},8,["model","rules"])]),_:1},8,["modelValue","title"])])}}}),Oe=ve(Fe,[["__scopeId","data-v-40868159"]]);export{Oe as default};
|