import request from '@/utils/request' import dayjs from 'dayjs' const magList=()=>{ return request({ url:`base/mag/list?pageSize=1000&pageNum=1`, method:'get' }) } const magDetailList=(data)=>{ return request({ url:'base/magDetail/list', method:'get', params:data }) } const magGroupByTopic=()=>{ return new Promise((resolve) => { request({ url: `base/magDetail/groupByTopic`, method: 'get' }).then(d=>{ let total=0; let tmps=(d.data||[]).map(it=>{ total+=it.id||0; return { magid:it.magid, mag:it.title, magOrd:it.ord, magDate:+dayjs(it.createTime).$d, topicId:it.topic, topic:it.authorName, cnt:it.id }; }); let datas=[]; tmps.forEach(it=>{ let objs=datas.filter(item=>item.mag==it.mag); let obj={}; if(objs.length==0){ obj={ magid:it.magid, mag:it.mag, ord:it.magOrd, date:it.magDate, list:[] } datas.push(obj); }else{ obj=objs[0]; } obj.list.push({id:it.topicId,topic:it.topic,cnt:it.cnt}) }); datas.sort((a,b)=>{ if(a.ord==b.ord){ return b.date-a.date; } return b.ord-a.ord; }) datas.forEach(item=>{ item.list.sort((a,b)=>a.id-b.id); }) let titles=datas.length>0?datas[0].list.map(it=>it.topic):[]; resolve({ titles:titles, datas:datas, total:total, }) }) }); } const groupByMag=(magId)=>{ return new Promise((resolve) => { request({ url:'base/magDetail/groupByMag', data:{ magid:magId }, method: 'post', }).then(d=>{ let tmps=d.data||[]; let max=0; tmps.forEach(it=>{ max=it.id>max?it.id:max; }); tmps.forEach(it=>{ let t=(max-(it.id||0))*100.0/max+"%"; it.ord=`width:calc((100% - ${t}) - 40px)`; }); resolve(tmps); }) }); } const committeeList=()=>{ return request({ url:`base/committee/list?pageSize=1000&pageNum=1`, method:'get' }) } const committeeSumGroupByType=(data)=>{ return new Promise((resolve) => { request({ url:'project/projectCommittee/sumGroupByType', data:data, method: 'post', }).then(d=>{ let tmps=d.data||[]; let sum=0; tmps.forEach(it=>{ sum+=(it.id||0)/10000.0; it.id=(it.id||0)/10000.0; }) resolve({ total:sum, data:tmps }) }) }); } const selectByWorkingType=(data)=>{ return request({ url:'project/projectCommittee/selectByWorkingType', method:"post", data:data }) } export default { magGroupByTopic, magList, groupByMag, committeeList, committeeSumGroupByType, selectByWorkingType, magDetailList }