import{d as ge,n as be,o as v,c as k,a as d,b as l,w as a,D as Ve,q as D,k as m,E as p,r as i,G as we,F as T,s as B,g as O,H as Q,j as r,x as _,P as K,t as W,m as X,J as Y,Q as ke,_ as Ce}from"./index-DIl-pxgT.js";import{g as xe,a as Re,b as Ue,c as ze,u as he,d as Ee,e as De,f as Fe,h as Se,i as qe}from"./classification-CUKwOuh8.js";const Le={class:"page-container"},$e={class:"section"},Te={class:"level-header"},Be={class:"level-name"},Ne={class:"level-desc"},Me={key:0,class:"level-ctrl"},Pe={class:"ctrl-key"},Ae={class:"ctrl-val"},Ie={class:"section"},je={class:"section-header"},Ge={class:"category-tree card-shadow"},He={class:"custom-tree-node"},Je={class:"node-label"},Oe={class:"node-actions"},Qe={class:"section"},Ke={class:"section-header"},We={class:"table-card card-shadow"},Xe=ge({__name:"Category",setup(Ye){const F=m([]),x=m([]),N=m([]),S=m(!1),q=m([]),b=m(!1),R=m(!1),U=m(null),M=m(),s=X({parent_id:void 0,code:"",name:"",description:"",sort_order:0}),Z={code:[{required:!0,message:"请输入编码",trigger:"blur"}],name:[{required:!0,message:"请输入名称",trigger:"blur"}]},V=m(!1),z=m(!1),h=m(null),P=m(),n=X({template_id:void 0,rule_name:"",rule_type:"keyword",category_id:void 0,level_id:void 0,target_field:"column_name",rule_content:"",priority:100}),ee={rule_type:[{required:!0,message:"请选择类型",trigger:"change"}],rule_content:[{required:!0,message:"请输入规则内容",trigger:"blur"}]};async function le(){try{const o=await xe();F.value=o||[]}catch(o){p.error((o==null?void 0:o.message)||"加载分级失败")}}async function L(){try{const o=await Re();x.value=o||[]}catch(o){p.error((o==null?void 0:o.message)||"加载分类失败")}}async function $(){S.value=!0;try{const o=q.value[0],e=await Ue({template_id:o==null?void 0:o.id,page:1,page_size:100});N.value=e.data||[]}catch(o){p.error((o==null?void 0:o.message)||"加载规则失败")}finally{S.value=!1}}async function te(){try{const o=await ze();q.value=o||[]}catch{}}function ae(){R.value=!1,U.value=null,s.parent_id=void 0,s.code="",s.name="",s.description="",s.sort_order=0,b.value=!0}function oe(o){R.value=!0,U.value=o.id,s.parent_id=o.parent_id,s.code=o.code,s.name=o.name,s.description=o.description||"",s.sort_order=o.sort_order,b.value=!0}async function ne(){var e;if(await((e=M.value)==null?void 0:e.validate().catch(()=>!1)))try{R.value&&U.value?(await he(U.value,{...s}),p.success("更新成功")):(await Ee({...s,level:s.parent_id?2:1}),p.success("创建成功")),b.value=!1,L()}catch(u){p.error((u==null?void 0:u.message)||"操作失败")}}async function se(o){try{await Y.confirm("确认删除该分类?","提示",{type:"warning"}),await qe(o.id),p.success("删除成功"),L()}catch(e){e!=="cancel"&&p.error((e==null?void 0:e.message)||"删除失败")}}function re(){var o;z.value=!1,h.value=null,n.template_id=(o=q.value[0])==null?void 0:o.id,n.rule_name="",n.rule_type="keyword",n.category_id=void 0,n.level_id=void 0,n.target_field="column_name",n.rule_content="",n.priority=100,V.value=!0}function de(o){z.value=!0,h.value=o.id,n.template_id=o.template_id,n.rule_name=o.rule_name||"",n.rule_type=o.rule_type,n.category_id=o.category_id,n.level_id=o.level_id,n.target_field=o.target_field,n.rule_content=o.rule_content,n.priority=o.priority,V.value=!0}async function ie(){var e;if(await((e=P.value)==null?void 0:e.validate().catch(()=>!1)))try{z.value&&h.value?(await De(h.value,{...n}),p.success("更新成功")):(await Fe({...n}),p.success("创建成功")),V.value=!1,$()}catch(u){p.error((u==null?void 0:u.message)||"操作失败")}}async function ue(o){try{await Y.confirm("确认删除该规则?","提示",{type:"warning"}),await Se(o.id),p.success("删除成功"),$()}catch(e){e!=="cancel"&&p.error((e==null?void 0:e.message)||"删除失败")}}return be(async()=>{await te(),await le(),await L(),await $()}),(o,e)=>{const u=i("el-tag"),me=i("el-col"),pe=i("el-row"),A=i("el-icon"),f=i("el-button"),ce=i("el-tree"),y=i("el-table-column"),_e=i("el-table"),I=i("el-cascader"),c=i("el-form-item"),C=i("el-input"),j=i("el-input-number"),G=i("el-form"),H=i("el-dialog"),w=i("el-radio-button"),J=i("el-radio-group"),fe=i("el-option"),ve=i("el-select"),ye=we("loading");return v(),k("div",Le,[e[35]||(e[35]=d("h2",{class:"page-title"},"分类分级标准",-1)),d("div",$e,[e[16]||(e[16]=d("div",{class:"section-title"},"数据分级定义",-1)),l(pe,{gutter:12},{default:a(()=>[(v(!0),k(T,null,B(F.value,t=>(v(),D(me,{key:t.id,xs:24,sm:12,md:8,lg:5},{default:a(()=>[d("div",{class:"level-card card-shadow",style:ke({borderLeft:`4px solid ${t.color}`})},[d("div",Te,[l(u,{color:t.color,effect:"dark",size:"small"},{default:a(()=>[r(_(t.code),1)]),_:2},1032,["color"]),d("span",Be,_(t.name),1)]),d("p",Ne,_(t.description),1),t.control_requirements?(v(),k("div",Me,[(v(!0),k(T,null,B(t.control_requirements,(g,E)=>(v(),k("div",{key:E,class:"ctrl-item"},[d("span",Pe,_(E)+":",1),d("span",Ae,_(g),1)]))),128))])):W("",!0)],4)]),_:2},1024))),128))]),_:1})]),d("div",Ie,[d("div",je,[e[18]||(e[18]=d("span",{class:"section-title"},"数据分类目录",-1)),l(f,{type:"primary",size:"small",onClick:ae},{default:a(()=>[l(A,null,{default:a(()=>[l(O(Q))]),_:1}),e[17]||(e[17]=r("新增分类 ",-1))]),_:1})]),d("div",Ge,[l(ce,{data:x.value,props:{children:"children",label:"name"},"node-key":"id","default-expand-all":""},{default:a(({node:t,data:g})=>[d("span",He,[d("span",Je,[l(u,{size:"small",type:"info",class:"code-tag"},{default:a(()=>[r(_(g.code),1)]),_:2},1024),r(" "+_(t.label),1)]),d("span",Oe,[l(f,{type:"primary",link:"",size:"small",onClick:K(E=>oe(g),["stop"])},{default:a(()=>[...e[19]||(e[19]=[r("编辑",-1)])]),_:1},8,["onClick"]),l(f,{type:"danger",link:"",size:"small",onClick:K(E=>se(g),["stop"])},{default:a(()=>[...e[20]||(e[20]=[r("删除",-1)])]),_:1},8,["onClick"])])])]),_:1},8,["data"])])]),d("div",Qe,[d("div",Ke,[e[22]||(e[22]=d("span",{class:"section-title"},"识别规则",-1)),l(f,{type:"primary",size:"small",onClick:re},{default:a(()=>[l(A,null,{default:a(()=>[l(O(Q))]),_:1}),e[21]||(e[21]=r("新增规则 ",-1))]),_:1})]),d("div",We,[Ve((v(),D(_e,{data:N.value,stripe:"",size:"default"},{default:a(()=>[l(y,{prop:"rule_name",label:"规则名称","min-width":"140"}),l(y,{prop:"rule_type",label:"类型",width:"90"},{default:a(({row:t})=>[l(u,{size:"small",type:t.rule_type==="regex"?"warning":"info"},{default:a(()=>[r(_(t.rule_type==="regex"?"正则":"关键词"),1)]),_:2},1032,["type"])]),_:1}),l(y,{prop:"category_name",label:"分类","min-width":"120"}),l(y,{prop:"level_name",label:"分级",width:"100"},{default:a(({row:t})=>[t.level_name?(v(),D(u,{key:0,size:"small",color:t.level_color,effect:"dark"},{default:a(()=>[r(_(t.level_name),1)]),_:2},1032,["color"])):W("",!0)]),_:1}),l(y,{prop:"target_field",label:"匹配目标",width:"100"}),l(y,{prop:"rule_content",label:"规则内容","min-width":"200","show-overflow-tooltip":""}),l(y,{prop:"priority",label:"优先级",width:"80"}),l(y,{label:"操作",width:"140",fixed:"right"},{default:a(({row:t})=>[l(f,{type:"primary",link:"",size:"small",onClick:g=>de(t)},{default:a(()=>[...e[23]||(e[23]=[r("编辑",-1)])]),_:1},8,["onClick"]),l(f,{type:"danger",link:"",size:"small",onClick:g=>ue(t)},{default:a(()=>[...e[24]||(e[24]=[r("删除",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[ye,S.value]])])]),l(H,{modelValue:b.value,"onUpdate:modelValue":e[6]||(e[6]=t=>b.value=t),title:R.value?"编辑分类":"新增分类",width:"480px","destroy-on-close":""},{footer:a(()=>[l(f,{onClick:e[5]||(e[5]=t=>b.value=!1)},{default:a(()=>[...e[25]||(e[25]=[r("取消",-1)])]),_:1}),l(f,{type:"primary",onClick:ne},{default:a(()=>[...e[26]||(e[26]=[r("确定",-1)])]),_:1})]),default:a(()=>[l(G,{ref_key:"catFormRef",ref:M,model:s,rules:Z,"label-width":"100px"},{default:a(()=>[l(c,{label:"父分类"},{default:a(()=>[l(I,{modelValue:s.parent_id,"onUpdate:modelValue":e[0]||(e[0]=t=>s.parent_id=t),options:x.value,props:{value:"id",label:"name",checkStrictly:!0,emitPath:!1},clearable:"",placeholder:"不选则为一级分类",style:{width:"100%"}},null,8,["modelValue","options"])]),_:1}),l(c,{label:"编码",prop:"code"},{default:a(()=>[l(C,{modelValue:s.code,"onUpdate:modelValue":e[1]||(e[1]=t=>s.code=t),placeholder:"分类编码,如 CUST_PERSONAL"},null,8,["modelValue"])]),_:1}),l(c,{label:"名称",prop:"name"},{default:a(()=>[l(C,{modelValue:s.name,"onUpdate:modelValue":e[2]||(e[2]=t=>s.name=t),placeholder:"分类名称"},null,8,["modelValue"])]),_:1}),l(c,{label:"描述"},{default:a(()=>[l(C,{modelValue:s.description,"onUpdate:modelValue":e[3]||(e[3]=t=>s.description=t),type:"textarea",rows:2},null,8,["modelValue"])]),_:1}),l(c,{label:"排序"},{default:a(()=>[l(j,{modelValue:s.sort_order,"onUpdate:modelValue":e[4]||(e[4]=t=>s.sort_order=t),min:0,style:{width:"100%"}},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),l(H,{modelValue:V.value,"onUpdate:modelValue":e[15]||(e[15]=t=>V.value=t),title:z.value?"编辑规则":"新增规则",width:"560px","destroy-on-close":""},{footer:a(()=>[l(f,{onClick:e[14]||(e[14]=t=>V.value=!1)},{default:a(()=>[...e[33]||(e[33]=[r("取消",-1)])]),_:1}),l(f,{type:"primary",onClick:ie},{default:a(()=>[...e[34]||(e[34]=[r("确定",-1)])]),_:1})]),default:a(()=>[l(G,{ref_key:"ruleFormRef",ref:P,model:n,rules:ee,"label-width":"100px"},{default:a(()=>[l(c,{label:"规则名称"},{default:a(()=>[l(C,{modelValue:n.rule_name,"onUpdate:modelValue":e[7]||(e[7]=t=>n.rule_name=t),placeholder:"规则名称"},null,8,["modelValue"])]),_:1}),l(c,{label:"规则类型",prop:"rule_type"},{default:a(()=>[l(J,{modelValue:n.rule_type,"onUpdate:modelValue":e[8]||(e[8]=t=>n.rule_type=t)},{default:a(()=>[l(w,{label:"regex"},{default:a(()=>[...e[27]||(e[27]=[r("正则匹配",-1)])]),_:1}),l(w,{label:"keyword"},{default:a(()=>[...e[28]||(e[28]=[r("关键词",-1)])]),_:1}),l(w,{label:"enum"},{default:a(()=>[...e[29]||(e[29]=[r("枚举",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(c,{label:"所属分类",prop:"category_id"},{default:a(()=>[l(I,{modelValue:n.category_id,"onUpdate:modelValue":e[9]||(e[9]=t=>n.category_id=t),options:x.value,props:{value:"id",label:"name",checkStrictly:!0,emitPath:!1},clearable:"",placeholder:"选择分类",style:{width:"100%"}},null,8,["modelValue","options"])]),_:1}),l(c,{label:"数据分级",prop:"level_id"},{default:a(()=>[l(ve,{modelValue:n.level_id,"onUpdate:modelValue":e[10]||(e[10]=t=>n.level_id=t),placeholder:"选择分级",style:{width:"100%"}},{default:a(()=>[(v(!0),k(T,null,B(F.value,t=>(v(),D(fe,{key:t.id,label:t.name,value:t.id},{default:a(()=>[l(u,{size:"small",color:t.color,effect:"dark"},{default:a(()=>[r(_(t.code),1)]),_:2},1032,["color"]),r(" "+_(t.name),1)]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(c,{label:"匹配目标",prop:"target_field"},{default:a(()=>[l(J,{modelValue:n.target_field,"onUpdate:modelValue":e[11]||(e[11]=t=>n.target_field=t)},{default:a(()=>[l(w,{label:"column_name"},{default:a(()=>[...e[30]||(e[30]=[r("字段名",-1)])]),_:1}),l(w,{label:"comment"},{default:a(()=>[...e[31]||(e[31]=[r("注释",-1)])]),_:1}),l(w,{label:"sample_data"},{default:a(()=>[...e[32]||(e[32]=[r("采样数据",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(c,{label:"规则内容",prop:"rule_content"},{default:a(()=>[l(C,{modelValue:n.rule_content,"onUpdate:modelValue":e[12]||(e[12]=t=>n.rule_content=t),type:"textarea",rows:3,placeholder:"正则表达式或关键词列表(逗号分隔)"},null,8,["modelValue"])]),_:1}),l(c,{label:"优先级"},{default:a(()=>[l(j,{modelValue:n.priority,"onUpdate:modelValue":e[13]||(e[13]=t=>n.priority=t),min:1,max:999,style:{width:"100%"}},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])])}}}),ll=Ce(Xe,[["__scopeId","data-v-0ac8aaa8"]]);export{ll as default}; //# sourceMappingURL=Category-Can-bbhN.js.map