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.
1 line
7.7 KiB
JavaScript
1 line
7.7 KiB
JavaScript
import{A as e,E as t,F as n,M as r,N as i,P as a,R as o,_ as s,a as c,b as l,f as u,g as d,h as f,i as p,k as m,m as h,o as g,r as _,w as v,x as y,y as b,z as x}from"./index-yNQwsZKK.js";import{t as S}from"./useMockMode-CGiTg8lx.js";import{t as C}from"./request-CbM-LIzp.js";var w={class:`mb-16`},T={style:{"white-space":`nowrap`}},E={style:{"margin-top":`12px`,display:`flex`,"justify-content":`flex-end`,"align-items":`center`}},D=p(y({__name:`WorkerListPage`,setup(p){let y=_(),{isMock:D}=S(),O=n(!1),k=n([]),A=n([]),j=n({currentPage:1,pageSize:20,total:0}),M=n(!1),N=n(!1),P=n(null),F=n([]),I=a({isEnabled:void 0,keyword:``}),L=a({code:``,name:``,machineIds:[]}),R=n(null),z=a({code:[]});function B(e,t,n){let r=(t??``).toString().trim();if(!r){n(Error(`工号为必填项`));return}if(P.value===null&&k.value.some(e=>e.code===r)){n(Error(`该工号已存在`));return}n()}z.code=[{validator:B,trigger:`blur`}];function V(){I.isEnabled=void 0,I.keyword=``,U()}function H(e){y.push((D.value?`/mock/worker/`:`/worker/`)+e)}async function U(){O.value=!0;try{let e=j.value.pageSize,t=j.value.currentPage,n=await C.get(`/admin/worker`,{params:{...I,page:t,pageSize:e}});k.value=n.data?.items||[],j.value.total=n.data?.total??n.data?.items?.length??0}finally{O.value=!1}}function W(){P.value=null,Object.assign(L,{code:``,name:``,machineIds:[]}),K(),M.value=!0}async function G(e){P.value=e.id,Object.assign(L,{code:e.code,name:e.name,machineIds:[]}),await K(e.id),M.value=!0}async function K(e){try{let[t,n]=await Promise.all([C.get(`/admin/machine`,{params:{pageSize:999}}),C.get(`/admin/worker/available-machines`)]),r=t.data?.items??[],i=new Set((n.data?.items??[]).map(e=>e.id)),a=new Set;if(e)try{let t=(await C.get(`/admin/worker/${e}/machines`)).data?.items??[];a=new Set(t.map(e=>e.machineId)),L.machineIds=t.map(e=>e.machineId)}catch{}F.value=r.filter(e=>i.has(e.id)||a.has(e.id)).map(e=>({id:e.id,name:e.name,label:e.name,deviceCode:e.deviceCode,workshopName:e.workshopName,isOnline:e.isOnline,isEnabled:e.isEnabled}))}catch{}}async function q(){N.value=!0;try{if(!await(R.value?.validate?new Promise(e=>R.value.validate(t=>e(t))):Promise.resolve(!0)))return;await C[P.value?`put`:`post`](P.value?`/admin/worker/${P.value}`:`/admin/worker`,{...L}),g.success(`保存成功`),M.value=!1,U()}finally{N.value=!1}}async function J(e){await c.confirm(`确定删除【`+e.name+`】?此操作不可恢复。`,`提示`,{type:`warning`}),await C.delete(`/admin/worker/${e.id}`),g.success(`已删除`),U()}async function Y(e){await c.confirm(`确定对选中的`+A.value.length+`项操作?`,`提示`,{type:`warning`});for(let t of A.value.map(e=>e.id))await C.put(`/admin/worker/${t}/toggle`,{isEnabled:e});g.success(`操作成功`),U()}async function X(){await c.confirm(`确定删除选中的`+A.value.length+`个员工?此操作不可恢复。`,`提示`,{type:`warning`}),await C.post(`/admin/worker/batch-delete`,{ids:A.value.map(e=>e.id)}),g.success(`批量删除成功`),U()}function Z(e){j.value.currentPage=e,U()}function Q(e){j.value.pageSize=e,j.value.currentPage=1,U()}function $(e){return{display:`inline-block`,width:`8px`,height:`8px`,borderRadius:`50%`,marginRight:`6px`,verticalAlign:`middle`,backgroundColor:e.isEnabled?e.isOnline?`#67c23a`:`#c0c4cc`:`#f56c6c`}}return v(()=>{U()}),(n,a)=>{let c=m(`el-button`),p=m(`el-option`),g=m(`el-select`),_=m(`el-form-item`),v=m(`el-input`),y=m(`el-form`),S=m(`el-table-column`),C=m(`el-link`),D=m(`el-tag`),B=m(`el-table`),K=m(`el-pagination`),ee=m(`el-transfer`),te=m(`el-dialog`),ne=e(`loading`);return t(),s(`div`,null,[h(`div`,w,[l(c,{type:`primary`,onClick:W},{default:r(()=>[...a[11]||=[b(`+ 新增工人`,-1)]]),_:1}),A.value.length?(t(),f(c,{key:0,size:`default`,onClick:a[0]||=e=>Y(1)},{default:r(()=>[b(`批量启用(`+x(A.value.length)+`)`,1)]),_:1})):d(``,!0),A.value.length?(t(),f(c,{key:1,size:`default`,onClick:a[1]||=e=>Y(0)},{default:r(()=>[b(`批量停用(`+x(A.value.length)+`)`,1)]),_:1})):d(``,!0),A.value.length?(t(),f(c,{key:2,size:`default`,type:`danger`,onClick:X},{default:r(()=>[b(`批量删除(`+x(A.value.length)+`)`,1)]),_:1})):d(``,!0)]),l(y,{inline:!0,class:`mb-16`},{default:r(()=>[l(_,{label:`状态`},{default:r(()=>[l(g,{modelValue:I.isEnabled,"onUpdate:modelValue":a[2]||=e=>I.isEnabled=e,clearable:``},{default:r(()=>[l(p,{label:`启用`,value:1}),l(p,{label:`停用`,value:0})]),_:1},8,[`modelValue`])]),_:1}),l(_,null,{default:r(()=>[l(v,{modelValue:I.keyword,"onUpdate:modelValue":a[3]||=e=>I.keyword=e,placeholder:`工号/姓名`,clearable:``},null,8,[`modelValue`])]),_:1}),l(_,null,{default:r(()=>[l(c,{type:`primary`,onClick:U},{default:r(()=>[...a[12]||=[b(`查询`,-1)]]),_:1}),l(c,{onClick:V},{default:r(()=>[...a[13]||=[b(`重置`,-1)]]),_:1})]),_:1})]),_:1}),i((t(),f(B,{data:k.value,border:``,stripe:``,onSelectionChange:a[4]||=e=>A.value=e},{default:r(()=>[l(S,{type:`selection`,width:`50`}),l(S,{prop:`code`,label:`工号`}),l(S,{prop:`name`,label:`姓名`},{default:r(({row:e})=>[l(C,{type:`primary`,onClick:t=>H(e.id)},{default:r(()=>[b(x(e.name),1)]),_:2},1032,[`onClick`])]),_:1}),l(S,{label:`状态`,align:`center`},{default:r(({row:e})=>[l(D,{type:e.isEnabled?`success`:`danger`,size:`small`},{default:r(()=>[b(x(e.isEnabled?`启用`:`停用`),1)]),_:2},1032,[`type`])]),_:1}),l(S,{prop:`machineCount`,label:`绑定机床数`,align:`center`}),l(S,{prop:`machineNames`,label:`绑定机床`,"show-overflow-tooltip":``}),l(S,{label:`操作`,width:`120`,align:`center`},{default:r(({row:e})=>[h(`div`,T,[l(c,{link:``,type:`primary`,onClick:t=>G(e)},{default:r(()=>[...a[14]||=[b(`编辑`,-1)]]),_:1},8,[`onClick`]),l(c,{link:``,type:`danger`,onClick:t=>J(e),disabled:e.machineCount>0},{default:r(()=>[...a[15]||=[b(`删除`,-1)]]),_:1},8,[`onClick`,`disabled`])])]),_:1})]),_:1},8,[`data`])),[[ne,O.value]]),h(`div`,E,[l(K,{total:j.value.total,"page-size":j.value.pageSize,"page-sizes":[20,50,100],layout:`total, sizes, prev, pager, next, jumper`,"current-page":j.value.currentPage,onCurrentChange:Z,onSizeChange:Q},null,8,[`total`,`page-size`,`current-page`])]),l(te,{modelValue:M.value,"onUpdate:modelValue":a[10]||=e=>M.value=e,title:P.value?`编辑工人`:`新增工人`,width:`900px`,"destroy-on-close":``},{footer:r(()=>[l(c,{onClick:a[9]||=e=>M.value=!1},{default:r(()=>[...a[17]||=[b(`取消`,-1)]]),_:1}),l(c,{type:`primary`,loading:N.value,onClick:q},{default:r(()=>[...a[18]||=[b(`保存`,-1)]]),_:1},8,[`loading`])]),default:r(()=>[l(y,{model:L,rules:z,ref_key:`workerForm`,ref:R,"label-width":`100px`},{default:r(()=>[l(_,{label:`工号`,prop:`code`},{default:r(()=>[l(v,{modelValue:L.code,"onUpdate:modelValue":a[5]||=e=>L.code=e,maxlength:`50`,onBlur:a[6]||=()=>R.value?.validateField(`code`)},null,8,[`modelValue`])]),_:1}),l(_,{label:`姓名`,prop:`name`},{default:r(()=>[l(v,{modelValue:L.name,"onUpdate:modelValue":a[7]||=e=>L.name=e,maxlength:`50`},null,8,[`modelValue`])]),_:1}),l(_,{label:`绑定机床`},{default:r(()=>[l(ee,{modelValue:L.machineIds,"onUpdate:modelValue":a[8]||=e=>L.machineIds=e,data:F.value,titles:[`可绑定机床`,`已选择`],props:{key:`id`,label:`label`},filterable:``,"filter-placeholder":`搜索机床`},{default:r(({option:e})=>[h(`span`,null,[h(`span`,{style:o($(e))},null,4),b(` `+x(e.name)+` `,1),e.deviceCode?(t(),s(u,{key:0},[b(` (`+x(e.deviceCode)+`)`,1)],64)):d(``,!0),e.workshopName?(t(),s(u,{key:1},[b(` - `+x(e.workshopName),1)],64)):d(``,!0)])]),_:1},8,[`modelValue`,`data`]),a[16]||=h(`div`,{class:`transfer-legend`},[h(`span`,null,[h(`span`,{class:`status-dot online`}),b(`在线`)]),h(`span`,null,[h(`span`,{class:`status-dot offline`}),b(`离线`)]),h(`span`,null,[h(`span`,{class:`status-dot disabled`}),b(`停用`)])],-1)]),_:1})]),_:1},8,[`model`,`rules`])]),_:1},8,[`modelValue`,`title`])])}}}),[[`__scopeId`,`data-v-65cf3a65`]]);export{D as default}; |