You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
haoliang-net/deploy-web/admin/assets/ScreenConfigPage-CYPaLfFY.js

1 line
12 KiB
JavaScript

import{A as e,E as t,F as n,M as r,N as i,P as a,_ as o,a as s,b as c,d as l,g as u,h as d,i as f,k as p,m,o as h,p as g,w as _,x as v,y,z as b}from"./index-yNQwsZKK.js";import{t as x}from"./request-CbM-LIzp.js";var ee={style:{"margin-bottom":`12px`}},te=[`onDragstart`,`onDrop`],ne={style:{"margin-bottom":`12px`}},S=f(v({__name:`ScreenConfigPage`,setup(f){let v=n(!1),S=n([]),C=n(!1),w=n(!1),T=n(null),E=n(),D=a({title:``,cardKey:``,cardType:`stat_number`,metric:``,dimension:``,sortOrder:1,chartConfig:``}),O=g(()=>[`bar_chart`,`rank_list`].includes(D.cardType)),k=g(()=>[`bar_chart`,`line_chart`,`pie_chart`].includes(D.cardType)),A={title:[{required:!0,message:`请输入卡片名称`,trigger:`blur`}],cardKey:[{required:!0,message:`请输入卡片标识`,trigger:`blur`}],cardType:[{required:!0,message:`请选择卡片类型`,trigger:`change`}],metric:[{required:!0,message:`请选择指标`,trigger:`change`}],sortOrder:[{required:!0,message:`请输入排序号`,trigger:`blur`}]};function j(e){return{stat_number:`统计数字`,bar_chart:`柱状图`,line_chart:`折线图`,pie_chart:`饼图`,status_grid:`状态网格`,rank_list:`排行榜`}[e]||e}function M(e){return e?{online_count:`在线数量`,part_count:`零件计数`}[e]||e:`-`}function N(e){return{workshop:`车间`,brand:`品牌`}[e]||e}function P(){O.value||(D.dimension=``),k.value||(D.chartConfig=``)}async function F(){v.value=!0;try{S.value=(await x.get(`/admin/screen-config`)).data?.items||[]}finally{v.value=!1}}let I=n(null),L=n(null);function re(e,t){I.value=t,e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`,e.dataTransfer.setData(`text/plain`,String(t)))}function ie(e,t){let n=I.value;if(n==null||n===t){I.value=null,L.value=null;return}let r=S.value.splice(n,1)[0];S.value.splice(t,0,r);let i=S.value.map((e,t)=>({id:e.id,sortOrder:t+1}));x.post(`/admin/screen-config/sort`,i).then(()=>{F()}).finally(()=>{I.value=null,L.value=null})}function ae(e){return L.value===e.rowIndex?`drag-over`:``}function oe(){T.value=null,Object.assign(D,{title:``,cardKey:``,cardType:`stat_number`,metric:``,dimension:``,sortOrder:S.value.length+1,chartConfig:``}),C.value=!0}function R(e){T.value=e.id,Object.assign(D,{title:e.title,cardKey:e.cardKey,cardType:e.cardType,metric:e.metric||``,dimension:e.dimension||``,sortOrder:e.sortOrder,chartConfig:e.chartConfig||``}),C.value=!0}async function z(){if(await E.value?.validate().catch(()=>!1)){if(k.value&&D.chartConfig)try{JSON.parse(D.chartConfig)}catch{h.error(`图表配置必须是有效的JSON格式`);return}w.value=!0;try{let e={...D,isDefault:!1,isEnabled:1};T.value?await x.put(`/admin/screen-config/${T.value}`,{...e}):await x.post(`/admin/screen-config`,e),h.success(`保存成功`),C.value=!1,F()}finally{w.value=!1}}}async function B(e){await s.confirm(`确定${e.isEnabled?`禁用`:`启用`}卡片【${e.title}】?`,`提示`,{type:`warning`}),await x.put(`/admin/screen-config/${e.id}/toggle`),h.success(`操作成功`),F()}async function V(e){await s.confirm(`确定删除卡片【${e.title}】?此操作不可恢复。`,`提示`,{type:`warning`}),await x.delete(`/admin/screen-config/${e.id}`),h.success(`已删除`),F()}let H=n(!1),U=n([]),W=n(!1),G=n(!1),K=n(null),q=n(),J=a({screenKey:``,filterType:`workshop`,filterValue:``,isDefault:!1,sortOrder:1}),se={screenKey:[{required:!0,message:`请输入筛选标识`,trigger:`blur`}],filterType:[{required:!0,message:`请选择筛选类型`,trigger:`change`}],filterValue:[{required:!0,message:`请输入筛选值`,trigger:`blur`}],sortOrder:[{required:!0,message:`请输入排序号`,trigger:`blur`}]};async function Y(){H.value=!0;try{U.value=(await x.get(`/admin/screen-filter`)).data?.items||[]}finally{H.value=!1}}function ce(){K.value=null,Object.assign(J,{screenKey:`screen_main`,filterType:`workshop`,filterValue:``,isDefault:!1,sortOrder:U.value.length+1}),W.value=!0}function X(e){K.value=e.id,Object.assign(J,{screenKey:e.screenKey,filterType:e.filterType,filterValue:e.filterValue,isDefault:!!e.isDefault,sortOrder:e.sortOrder}),W.value=!0}async function le(){if(await q.value?.validate().catch(()=>!1)){G.value=!0;try{let e={...J,isDefault:+!!J.isDefault};K.value?await x.put(`/admin/screen-filter/${K.value}`,{...e}):await x.post(`/admin/screen-filter`,e),h.success(`保存成功`),W.value=!1,Y()}finally{G.value=!1}}}async function ue(e){await s.confirm(`确定删除该筛选配置?此操作不可恢复。`,`提示`,{type:`warning`}),await x.delete(`/admin/screen-filter/${e.id}`),h.success(`已删除`),Y()}return _(()=>{F(),Y()}),(n,a)=>{let s=p(`el-button`),f=p(`el-table-column`),h=p(`el-tag`),g=p(`el-table`),_=p(`el-empty`),x=p(`el-input`),F=p(`el-form-item`),I=p(`el-option`),L=p(`el-select`),Y=p(`el-input-number`),Z=p(`el-form`),Q=p(`el-dialog`),de=p(`el-switch`),$=e(`loading`);return t(),o(`div`,null,[a[28]||=m(`h3`,{style:{"margin-bottom":`12px`}},`卡片配置`,-1),m(`div`,ee,[c(s,{type:`primary`,onClick:oe},{default:r(()=>[...a[18]||=[y(`+ 新增卡片`,-1)]]),_:1})]),i((t(),d(g,{data:S.value,border:``,stripe:``,style:{"margin-bottom":`32px`},"row-class-name":ae},{default:r(()=>[c(f,{label:`拖拽`,width:`48`,align:`center`},{default:r(({row:e,$index:t})=>[m(`i`,{class:`el-icon-rank`,draggable:`true`,onDragstart:e=>re(e,t),onDragover:a[0]||=l(()=>{},[`prevent`]),onDragenter:a[1]||=l(()=>{},[`prevent`]),onDrop:e=>ie(e,t),style:{cursor:`grab`}},null,40,te)]),_:1}),c(f,{prop:`title`,label:`卡片名称`,"min-width":`150`,"show-overflow-tooltip":``}),c(f,{label:`卡片类型`,width:`120`,align:`center`},{default:r(({row:e})=>[c(h,{size:`small`},{default:r(()=>[y(b(j(e.cardType)),1)]),_:2},1024)]),_:1}),c(f,{prop:`metric`,label:`指标`,width:`120`,"show-overflow-tooltip":``},{default:r(({row:e})=>[y(b(M(e.metric)),1)]),_:1}),c(f,{prop:`sortOrder`,label:`排序`,width:`80`,align:`center`,sortable:``}),c(f,{label:`状态`,width:`80`,align:`center`},{default:r(({row:e})=>[c(h,{type:e.isEnabled?`success`:`danger`,size:`small`},{default:r(()=>[y(b(e.isEnabled?`启用`:`停用`),1)]),_:2},1032,[`type`])]),_:1}),c(f,{label:`操作`,width:`200`,align:`center`},{default:r(({row:e})=>[c(s,{link:``,type:`primary`,onClick:t=>R(e)},{default:r(()=>[...a[19]||=[y(`编辑`,-1)]]),_:1},8,[`onClick`]),c(s,{link:``,type:`primary`,onClick:t=>B(e)},{default:r(()=>[y(b(e.isEnabled?`禁用`:`启用`),1)]),_:2},1032,[`onClick`]),c(s,{link:``,type:`danger`,onClick:t=>V(e)},{default:r(()=>[...a[20]||=[y(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`])),[[$,v.value]]),!v.value&&S.value.length===0?(t(),d(_,{key:0,description:`暂无卡片配置,点击新增卡片添加`})):u(``,!0),a[29]||=m(`h3`,{style:{"margin-bottom":`12px`}},`筛选配置`,-1),m(`div`,ne,[c(s,{type:`primary`,onClick:ce},{default:r(()=>[...a[21]||=[y(`+ 新增筛选`,-1)]]),_:1})]),i((t(),d(g,{data:U.value,border:``,stripe:``},{default:r(()=>[c(f,{prop:`screenKey`,label:`筛选标识`,width:`120`,"show-overflow-tooltip":``}),c(f,{label:`筛选类型`,width:`120`,align:`center`},{default:r(({row:e})=>[y(b(N(e.filterType)),1)]),_:1}),c(f,{prop:`filterValue`,label:`筛选值`,"min-width":`150`,"show-overflow-tooltip":``}),c(f,{label:`默认`,width:`60`,align:`center`},{default:r(({row:e})=>[c(h,{type:e.isDefault?`success`:`info`,size:`small`},{default:r(()=>[y(b(e.isDefault?``:``),1)]),_:2},1032,[`type`])]),_:1}),c(f,{prop:`sortOrder`,label:`排序`,width:`80`,align:`center`,sortable:``}),c(f,{label:`操作`,width:`120`,align:`center`},{default:r(({row:e})=>[c(s,{link:``,type:`primary`,onClick:t=>X(e)},{default:r(()=>[...a[22]||=[y(`编辑`,-1)]]),_:1},8,[`onClick`]),c(s,{link:``,type:`danger`,onClick:t=>ue(e)},{default:r(()=>[...a[23]||=[y(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`])),[[$,H.value]]),!H.value&&U.value.length===0?(t(),d(_,{key:1,description:`暂无筛选配置`})):u(``,!0),c(Q,{modelValue:C.value,"onUpdate:modelValue":a[10]||=e=>C.value=e,title:T.value?`编辑卡片`:`新增卡片`,width:`600px`,"destroy-on-close":``},{footer:r(()=>[c(s,{onClick:a[9]||=e=>C.value=!1},{default:r(()=>[...a[24]||=[y(`取消`,-1)]]),_:1}),c(s,{type:`primary`,loading:w.value,onClick:z},{default:r(()=>[...a[25]||=[y(`保存`,-1)]]),_:1},8,[`loading`])]),default:r(()=>[c(Z,{ref_key:`cardFormRef`,ref:E,model:D,rules:A,"label-width":`100px`},{default:r(()=>[c(F,{label:`卡片名称`,prop:`title`},{default:r(()=>[c(x,{modelValue:D.title,"onUpdate:modelValue":a[2]||=e=>D.title=e,maxlength:`100`},null,8,[`modelValue`])]),_:1}),c(F,{label:`卡片标识`,prop:`cardKey`},{default:r(()=>[c(x,{modelValue:D.cardKey,"onUpdate:modelValue":a[3]||=e=>D.cardKey=e,maxlength:`50`,disabled:!!T.value},null,8,[`modelValue`,`disabled`])]),_:1}),c(F,{label:`卡片类型`,prop:`cardType`},{default:r(()=>[c(L,{modelValue:D.cardType,"onUpdate:modelValue":a[4]||=e=>D.cardType=e,onChange:P},{default:r(()=>[c(I,{label:`统计数字`,value:`stat_number`}),c(I,{label:`柱状图`,value:`bar_chart`}),c(I,{label:`折线图`,value:`line_chart`}),c(I,{label:`饼图`,value:`pie_chart`}),c(I,{label:`状态网格`,value:`status_grid`}),c(I,{label:`排行榜`,value:`rank_list`})]),_:1},8,[`modelValue`])]),_:1}),c(F,{label:`指标`,prop:`metric`},{default:r(()=>[c(L,{modelValue:D.metric,"onUpdate:modelValue":a[5]||=e=>D.metric=e,clearable:``},{default:r(()=>[c(I,{label:`在线数量`,value:`online_count`}),c(I,{label:`零件计数`,value:`part_count`})]),_:1},8,[`modelValue`])]),_:1}),c(F,{label:`维度`,required:O.value,prop:O.value?`dimension`:``},{default:r(()=>[c(L,{modelValue:D.dimension,"onUpdate:modelValue":a[6]||=e=>D.dimension=e,clearable:``},{default:r(()=>[c(I,{label:`车间`,value:`workshop`}),c(I,{label:`工人`,value:`worker`}),c(I,{label:`机床`,value:`machine`})]),_:1},8,[`modelValue`])]),_:1},8,[`required`,`prop`]),c(F,{label:`排序号`,prop:`sortOrder`},{default:r(()=>[c(Y,{modelValue:D.sortOrder,"onUpdate:modelValue":a[7]||=e=>D.sortOrder=e,min:1,max:99},null,8,[`modelValue`])]),_:1}),k.value?(t(),d(F,{key:0,label:`图表配置`,prop:`chartConfig`},{default:r(()=>[c(x,{modelValue:D.chartConfig,"onUpdate:modelValue":a[8]||=e=>D.chartConfig=e,type:`textarea`,rows:4,placeholder:`{"xAxis":"workshop","yAxis":"part_count"}`},null,8,[`modelValue`])]),_:1})):u(``,!0)]),_:1},8,[`model`])]),_:1},8,[`modelValue`,`title`]),c(Q,{modelValue:W.value,"onUpdate:modelValue":a[17]||=e=>W.value=e,title:K.value?`编辑筛选`:`新增筛选`,width:`500px`,"destroy-on-close":``},{footer:r(()=>[c(s,{onClick:a[16]||=e=>W.value=!1},{default:r(()=>[...a[26]||=[y(`取消`,-1)]]),_:1}),c(s,{type:`primary`,loading:G.value,onClick:le},{default:r(()=>[...a[27]||=[y(`保存`,-1)]]),_:1},8,[`loading`])]),default:r(()=>[c(Z,{ref_key:`filterFormRef`,ref:q,model:J,rules:se,"label-width":`100px`},{default:r(()=>[c(F,{label:`筛选标识`,prop:`screenKey`},{default:r(()=>[c(x,{modelValue:J.screenKey,"onUpdate:modelValue":a[11]||=e=>J.screenKey=e,maxlength:`50`},null,8,[`modelValue`])]),_:1}),c(F,{label:`筛选类型`,prop:`filterType`},{default:r(()=>[c(L,{modelValue:J.filterType,"onUpdate:modelValue":a[12]||=e=>J.filterType=e},{default:r(()=>[c(I,{label:`车间`,value:`workshop`}),c(I,{label:`品牌`,value:`brand`})]),_:1},8,[`modelValue`])]),_:1}),c(F,{label:`筛选值`,prop:`filterValue`},{default:r(()=>[c(x,{modelValue:J.filterValue,"onUpdate:modelValue":a[13]||=e=>J.filterValue=e,maxlength:`100`},null,8,[`modelValue`])]),_:1}),c(F,{label:`默认选中`},{default:r(()=>[c(de,{modelValue:J.isDefault,"onUpdate:modelValue":a[14]||=e=>J.isDefault=e},null,8,[`modelValue`])]),_:1}),c(F,{label:`排序号`,prop:`sortOrder`},{default:r(()=>[c(Y,{modelValue:J.sortOrder,"onUpdate:modelValue":a[15]||=e=>J.sortOrder=e,min:1,max:99},null,8,[`modelValue`])]),_:1})]),_:1},8,[`model`])]),_:1},8,[`modelValue`,`title`])])}}}),[[`__scopeId`,`data-v-831f1a52`]]);export{S as default};