mi-assessment/server/MiAssessment/src/MiAssessment.Admin/wwwroot/assets/index-DH-RR_B4.js
2026-02-21 18:21:13 +08:00

2 lines
5.3 KiB
JavaScript

import{R as x,d as q,a as H,o as I,g as r,B as j,c as f,k as c,e as o,C as A,w as a,b as u,z as _,G as b,F as E,y as J,x as p,f as w,t as y,l as N,H as O,S as Q,E as V,_ as W}from"./index-IVLVjSAe.js";function X(){return x({url:"/admin/config/getList",method:"get"})}function Y(h){return x({url:"/admin/config/update",method:"post",data:h})}const Z={class:"config-container"},ee={class:"group-title"},te={class:"config-key"},ne={class:"config-description"},ie={key:0,class:"edit-form"},ae={key:0,class:"validation-error"},oe={key:1,class:"config-value"},le=q({__name:"index",setup(h){const t=H({loading:!1,configGroups:[],activeGroups:[],editingKey:null,editValue:"",saving:!1,validationError:""});function G(n){const e=parseFloat(n);return isNaN(e)?{valid:!1,error:"请输入有效的数字"}:e<=0?{valid:!1,error:"价格必须为正数"}:{valid:!0,error:""}}function F(n){const e=parseFloat(n);return isNaN(e)?{valid:!1,error:"请输入有效的数字"}:e<0||e>1?{valid:!1,error:"佣金率必须在 0 到 1 之间"}:{valid:!0,error:""}}function L(n,e){if(!e||e.trim()==="")return{valid:!1,error:"配置值不能为空"};const i=n.toLowerCase();return i.includes("price")||i.includes("amount")||i.includes("fee")?G(e):i.includes("commission")||i.includes("rate")||i.includes("ratio")?F(e):{valid:!0,error:""}}function T(n){const e=n.toLowerCase();return e.includes("price")||e.includes("amount")||e.includes("fee")?"请输入正数金额":e.includes("commission")||e.includes("rate")||e.includes("ratio")?"请输入 0-1 之间的数值":"请输入配置值"}function z(n){const e=n.configType.toLowerCase(),i=n.configValue;if(e.includes("price")||e.includes("amount")||e.includes("fee")){const s=parseFloat(i);if(!isNaN(s))return`¥${s.toFixed(2)}`}if(e.includes("commission")||e.includes("rate")||e.includes("ratio")){const s=parseFloat(i);if(!isNaN(s))return`${(s*100).toFixed(1)}%`}return i||"-"}async function C(){t.loading=!0;try{const n=await X();if(n.code===0)t.configGroups=n.data||[],t.activeGroups=t.configGroups.map(e=>e.configType);else throw new Error(n.message||"获取配置列表失败")}catch(n){const e=n instanceof Error?n.message:"获取配置列表失败";V.error(e)}finally{t.loading=!1}}function B(n){t.editingKey=n.configKey,t.editValue=n.configValue,t.validationError=""}function k(){t.editingKey=null,t.editValue="",t.validationError=""}async function K(n){const e=L(n.configType,t.editValue);if(!e.valid){t.validationError=e.error;return}t.saving=!0,t.validationError="";try{const i=await Y({configKey:n.configKey,configValue:t.editValue.trim()});if(i.code===0)V.success("配置更新成功"),t.editingKey=null,t.editValue="",await C();else throw new Error(i.message||"更新配置失败")}catch(i){const s=i instanceof Error?i.message:"更新配置失败";V.error(s)}finally{t.saving=!1}}return I(()=>{C()}),(n,e)=>{const i=r("el-card"),s=r("el-icon"),$=r("el-tag"),g=r("el-table-column"),D=r("el-input"),v=r("el-button"),S=r("el-table"),M=r("el-collapse-item"),P=r("el-collapse"),R=r("el-empty"),U=j("loading");return c(),f("div",Z,[o(i,{class:"page-header"},{default:a(()=>[...e[2]||(e[2]=[u("div",{class:"header-content"},[u("h2",{class:"page-title"},"系统配置"),u("span",{class:"page-description"},"管理系统配置项,按配置类型分组显示")],-1)])]),_:1}),A((c(),_(i,{class:"config-list"},{default:a(()=>[o(P,{modelValue:t.activeGroups,"onUpdate:modelValue":e[1]||(e[1]=d=>t.activeGroups=d)},{default:a(()=>[(c(!0),f(E,null,J(t.configGroups,d=>(c(),_(M,{key:d.configType,name:d.configType},{title:a(()=>[u("div",ee,[o(s,null,{default:a(()=>[o(N(Q))]),_:1}),u("span",null,p(d.typeName),1),o($,{size:"small",type:"info"},{default:a(()=>[y(p(d.items.length)+" 项",1)]),_:2},1024)])]),default:a(()=>[o(S,{data:d.items,stripe:"",style:{width:"100%"}},{default:a(()=>[o(g,{prop:"configKey",label:"配置键","min-width":"180"},{default:a(({row:l})=>[u("span",te,p(l.configKey),1)]),_:1}),o(g,{prop:"description",label:"描述","min-width":"200"},{default:a(({row:l})=>[u("span",ne,p(l.description||"-"),1)]),_:1}),o(g,{label:"配置值","min-width":"250"},{default:a(({row:l})=>[t.editingKey===l.configKey?(c(),f("div",ie,[o(D,{modelValue:t.editValue,"onUpdate:modelValue":e[0]||(e[0]=m=>t.editValue=m),placeholder:T(l.configType),size:"default",clearable:"",onKeyup:[w(m=>K(l),["enter"]),w(k,["escape"])]},null,8,["modelValue","placeholder","onKeyup"]),t.validationError?(c(),f("span",ae,p(t.validationError),1)):b("",!0)])):(c(),f("span",oe,p(z(l)),1))]),_:1}),o(g,{label:"操作",width:"180",fixed:"right"},{default:a(({row:l})=>[t.editingKey===l.configKey?(c(),f(E,{key:0},[o(v,{type:"primary",size:"small",loading:t.saving,onClick:m=>K(l)},{default:a(()=>[...e[3]||(e[3]=[y(" 保存 ",-1)])]),_:1},8,["loading","onClick"]),o(v,{size:"small",disabled:t.saving,onClick:k},{default:a(()=>[...e[4]||(e[4]=[y(" 取消 ",-1)])]),_:1},8,["disabled"])],64)):(c(),_(v,{key:1,type:"primary",size:"small",disabled:t.editingKey!==null,onClick:m=>B(l)},{default:a(()=>[o(s,null,{default:a(()=>[o(N(O))]),_:1}),e[5]||(e[5]=y(" 编辑 ",-1))]),_:1},8,["disabled","onClick"]))]),_:1})]),_:1},8,["data"])]),_:2},1032,["name"]))),128))]),_:1},8,["modelValue"]),!t.loading&&t.configGroups.length===0?(c(),_(R,{key:0,description:"暂无配置数据"})):b("",!0)]),_:1})),[[U,t.loading]])])}}}),re=W(le,[["__scopeId","data-v-88849315"]]);export{re as default};