Files
qhmes/web-dist/js/MesXslMixingMaterialCategorySetting-BulY77Qb.js
2026-06-16 18:19:57 +08:00

2 lines
4.0 KiB
Java

import{s as P,x as X,aH as T,aC as q,au as G}from"./index-X7Y8jykP.js";import{aq as J}from"./MesXslMixingSpec.data-IK1nvCh3.js";import"./index-DSsDi_fL.js";import{C as M}from"./Group-UHkub2tu.js";import{e as K,h as Q,y as I,A as s,r as x,u as f,K as U,z as c,f as g,Q as v,C as h,c as y,J as u,F as $,D as w,G as A,E as p}from"./vue-vendor-DNhG1Cve.js";import"./emoji-mart-vue-fast-R0uJEDq-.js";import"./JVxeTypes-C-gX5UoZ.js";import"./uuid-CODpppBC.js";import"./Checkbox-Dbxs4we4.js";import"./index-BuONesFs.js";const d="mixing-material-category-setting",W=K({__name:"MesXslMixingMaterialCategorySetting",props:{categories:{type:Array,default:()=>[]},hiddenCategoryIds:{type:Array,default:()=>[]},loading:{type:Boolean,default:!1},refreshing:{type:Boolean,default:!1}},emits:["update:hiddenCategoryIds","change","refresh"],setup(n,{emit:N}){const{createMessage:_}=P(),m=n,b=N,C=x(!1),o=x([]);function j(){return document.body}const i=y(()=>(m.categories||[]).map(a=>a.id)),k=y(()=>{const a=new Map;return(m.categories||[]).forEach(e=>{const t=e.majorId||"unknown",l=e.majorName||"其他",r=a.get(t)||{majorId:t,majorName:l,options:[]};r.options.push({label:e.name,value:e.id}),a.set(t,r)}),Array.from(a.values())}),z=y(()=>{const a=i.value;return a.length?o.value.length===a.length:!1}),B=y(()=>{const a=i.value.length,e=o.value.length;return e>0&&e<a});Q(()=>[m.hiddenCategoryIds,m.categories],()=>{S()},{deep:!0,immediate:!0});function S(){const a=new Set((m.hiddenCategoryIds||[]).map(String));o.value=i.value.filter(e=>!a.has(String(e)))}function V(a){C.value=a,a&&S()}function E(a){o.value=a.target.checked?[...i.value]:[]}function R(a){return o.value.map(String).includes(String(a))}function D(a,e){const t=new Set(o.value.map(String)),l=String(a);e?t.add(l):t.delete(l),o.value=i.value.filter(r=>t.has(String(r)))}function F(){o.value=[...i.value]}function H(){b("refresh")}function L(){const a=new Set(o.value.map(String)),e=i.value.filter(t=>!a.has(String(t)));J(e),b("update:hiddenCategoryIds",e),b("change",e),C.value=!1,_.success("小类展示设置已保存")}return(a,e)=>{const t=U("a-button");return c(),I(f(q),{open:C.value,"onUpdate:open":e[0]||(e[0]=l=>C.value=l),trigger:"click",placement:"bottomRight",getPopupContainer:j,overlayClassName:`${d}__popover`,onOpenChange:V},{title:s(()=>[v("div",{class:u(`${d}__title`)},[g(f(M),{indeterminate:B.value,checked:z.value,disabled:n.loading||!i.value.length,onChange:E},{default:s(()=>[...e[1]||(e[1]=[p(" 小类展示 ",-1)])]),_:1},8,["indeterminate","checked","disabled"])],2)]),content:s(()=>[g(f(T),{spinning:n.loading||n.refreshing},{default:s(()=>[!n.loading&&!k.value.length?(c(),h("div",{key:0,class:u(`${d}__empty`)}," 暂无物料小类,请确认分类字典 XSLMES_MATERIAL 已配置 ",2)):(c(),h("div",{key:1,class:u(`${d}__list`)},[(c(!0),h($,null,w(k.value,l=>(c(),h("div",{key:l.majorId,class:u(`${d}__group`)},[v("div",{class:u(`${d}__group-title`)},A(l.majorName),3),v("div",{class:u(`${d}__group-options`)},[(c(!0),h($,null,w(l.options,r=>(c(),I(f(M),{key:r.value,checked:R(r.value),onChange:O=>D(r.value,O.target.checked)},{default:s(()=>[p(A(r.label),1)]),_:2},1032,["checked","onChange"]))),128))],2)],2))),128))],2))]),_:1},8,["spinning"]),v("div",{class:u(`${d}__footer`)},[g(t,{size:"small",loading:n.refreshing,disabled:n.loading,onClick:H},{default:s(()=>[...e[2]||(e[2]=[p("刷新",-1)])]),_:1},8,["loading","disabled"]),v("div",{class:u(`${d}__footer-actions`)},[g(t,{size:"small",disabled:n.loading||n.refreshing||!i.value.length,onClick:F},{default:s(()=>[...e[3]||(e[3]=[p("重置",-1)])]),_:1},8,["disabled"]),g(t,{size:"small",type:"primary",disabled:n.loading||n.refreshing||!i.value.length,onClick:L},{default:s(()=>[...e[4]||(e[4]=[p("保存",-1)])]),_:1},8,["disabled"])],2)],2)]),default:s(()=>[g(t,{size:"small",class:"mixing-material-category-setting-btn",disabled:n.loading,title:"小类展示设置"},{default:s(()=>[g(f(X),{icon:"ant-design:setting-outlined"})]),_:1},8,["disabled"])]),_:1},8,["open","overlayClassName"])}}}),re=G(W,[["__scopeId","data-v-43708bcc"]]);export{re as default};