dootask/public/js/build/dashboard.a79ba6ba.js
2026-09-10 13:56:21 +00:00

2 lines
46 KiB
JavaScript
Vendored

import{m as v,a as $}from"./vuex.cc7cb26e.js";import{n as d,h as C,e as b}from"./app.818b057c.js";import{u as L,i as g,a as w,b as k,c as T}from"./echarts.523e56b1.js";import{D as x}from"./DepartmentOwnerView.2b37b86c.js";import"./jquery.c87f487f.js";import"./@babel.9410f858.js";import"./dayjs.fd4aa75c.js";import"./localforage.8de7c27e.js";import"./markdown-it.0450edb4.js";import"./mdurl.ce6c1dd8.js";import"./uc.micro.8d343c98.js";import"./entities.48a44fec.js";import"./linkify-it.c5e8196e.js";import"./punycode.js.4b3f125a.js";import"./highlight.js.cbbfb885.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./@traptitech.acea8861.js";import"./vue.adba9046.js";import"./openpgp_hi.15f91b1d.js";import"./axios.37c7f908.js";import"./mitt.1ea0a2a3.js";import"./quill-hi.ca2ea0cc.js";import"./parchment.d5c5924e.js";import"./quill-delta.385a10bf.js";import"./fast-diff.f17881f3.js";import"./lodash.clonedeep.3cc09a31.js";import"./lodash.isequal.dbdc2157.js";import"./eventemitter3.78b735ad.js";import"./lodash-es.76e3a28b.js";import"./quill-mention-hi.4eeb5a2d.js";import"./view-design-hi.24419422.js";import"./html-to-md.f297036e.js";import"./lodash.8fcd6fd4.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.fd43a5bc.js";import"./clipboard.37b37361.js";import"./vuedraggable.f464b992.js";import"./sortablejs.3488b922.js";import"./vue-resize-observer.5af23a43.js";import"./element-sea.f8a64907.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.5d591c5f.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.dca2b951.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";import"./zrender.6f9469d4.js";import"./tslib.891692d0.js";var f={data(){return{nowTime:$A.dayjs().unix(),nowInter:null}},methods:{deadlineClass(t){if(!t)return"";const a=$A.dayjs(t),s=$A.daytz(this.nowTime);return a<=s?"end-overdue":a.format("YYYY-MM-DD")===s.format("YYYY-MM-DD")?"end-today":""},deadlineText(t){if(!t)return"";const a=$A.dayjs(t),s=$A.daytz(this.nowTime);if(a<=s){const e=s.startOf("day").diff(a.startOf("day"),"day");return e>0?this.$L("\u903E\u671F (*) \u5929",e):this.$L("\u903E\u671F (*) \u5C0F\u65F6",Math.max(s.diff(a,"hour"),1))}return a.format("YYYY-MM-DD")===s.format("YYYY-MM-DD")?`${this.$L("\u4ECA\u5929")} ${a.format("HH:mm")}`:a.format("YYYY-MM-DD")===s.clone().add(1,"day").format("YYYY-MM-DD")?`${this.$L("\u660E\u5929")} ${a.format("HH:mm")}`:a.year()===s.year()?a.format("MM-DD"):a.format("YYYY-MM-DD")},loadInterval(t){this.nowInter&&(clearInterval(this.nowInter),this.nowInter=null),t!==!1&&(this.nowInter=setInterval(a=>{this.nowTime=$A.dayjs().unix()},10*1e3))}}},D=function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("img",{staticClass:"dashboard-icon",attrs:{src:t.$A.mainUrl(`images/dashboard/${t.name}.svg`),width:t.size,height:t.size,alt:"","aria-hidden":"true"}})},S=[];const A={props:{name:{type:String,required:!0},size:{type:Number,default:14}}},p={};var M=d(A,D,S,!1,Y,"7ff1ad89",null,null);function Y(t){for(let a in p)this[a]=p[a]}var y=function(){return M.exports}(),I=function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("div",{staticClass:"dashboard-priority-chart"},[s("div",{ref:"chart",staticClass:"priority-chart-canvas",attrs:{"aria-label":t.$L("\u4F18\u5148\u7EA7\u5206\u5E03")}}),s("div",{staticClass:"priority-chart-total"},[s("strong",{class:{"total-long":String(t.total).length>5}},[t._v(t._s(t.total))]),s("span",[t._v(t._s(t.$L("\u672A\u5B8C\u6210\u4EFB\u52A1")))])])])},j=[];L([g,w,k]);const P={props:{items:{type:Array,default:()=>[]},total:{type:Number,default:0}},watch:{items:{deep:!0,handler(){this.renderChart()}}},mounted(){this.chart=T(this.$refs.chart),this.chart.on("click",t=>{const a=this.items[t.dataIndex];a&&this.$emit("select",a)}),this.renderChart()},beforeDestroy(){this.chart&&this.chart.dispose()},methods:{renderChart(){!this.chart||this.chart.setOption({tooltip:{trigger:"item",confine:!0},series:[{type:"pie",radius:[70,90],center:["50%","50%"],startAngle:180,minAngle:3,padAngle:2.72,label:{show:!1},labelLine:{show:!1},stillShowZeroSum:!1,emptyCircleStyle:{color:"#e9ebef"},itemStyle:{borderWidth:0,borderRadius:4,shadowBlur:0},emphasis:{scaleSize:10,itemStyle:{borderWidth:0,shadowBlur:0}},data:this.items.map(t=>({name:t.name,value:t.num,itemStyle:{color:t.color||"#bbc2db",opacity:.55}}))}]})}}},h={};var F=d(P,I,j,!1,z,"104a8125",null,null);function z(t){for(let a in h)this[a]=h[a]}var E=function(){return F.exports}(),O=function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("div",{staticClass:"dashboard-team"},[s("ul",{staticClass:"dashboard-cards"},[s("li",{staticClass:"stat-uncompleted",on:{click:function(e){return t.onBlock("uncompleted")}}},[s("div",{staticClass:"card-label"},[t._v(t._s(t.$L("\u672A\u5B8C\u6210")))]),s("div",{staticClass:"card-data"},[s("span",{staticClass:"card-num"},[t._v(t._s(t.blocks.uncompleted||0))])])]),s("li",{staticClass:"stat-overdue",on:{click:function(e){return t.onBlock("overdue")}}},[s("div",{staticClass:"card-label"},[t._v(t._s(t.$L("\u5DF2\u8D85\u671F")))]),s("div",{staticClass:"card-data"},[s("span",{staticClass:"card-num num-red"},[t._v(t._s(t.blocks.overdue||0))]),t.blocks.overdue_owner_count?s("span",{staticClass:"card-sub"},[t._v(t._s(t.$L("\u6D89\u53CA (*) \u4EBA",t.blocks.overdue_owner_count)))]):t._e()])]),s("li",{staticClass:"stat-soon",on:{click:function(e){return t.onBlock("soon")}}},[s("div",{staticClass:"card-label"},[t._v(t._s(t.$L("(*) \u5929\u5185\u5230\u671F",3)))]),s("div",{staticClass:"card-data"},[s("span",{staticClass:"card-num num-orange"},[t._v(t._s(t.blocks.due_soon||0))])])]),s("li",{staticClass:"card-static stat-completed",attrs:{title:t.weekDiffText}},[s("div",{staticClass:"card-label"},[t._v(t._s(t.$L("\u672C\u5468\u5B8C\u6210")))]),s("div",{staticClass:"card-data"},[s("span",{staticClass:"card-num num-green"},[t._v(t._s(t.blocks.week_completed||0))])])])]),s("div",{staticClass:"team-duo"},[s("div",{staticClass:"dashboard-card team-members"},[s("div",{staticClass:"card-head"},[s("span",{staticClass:"head-title"},[t._v(t._s(t.$L("\u6210\u5458\u4EFB\u52A1\u5206\u914D")))]),s("span",{staticClass:"head-legend"},[s("span",[s("i",{staticStyle:{background:"#bcc1cc"}}),t._v(t._s(t.$L("\u5F85\u5904\u7406")))]),s("span",[s("i",{staticStyle:{background:"#85acff"}}),t._v(t._s(t.$L("\u8FDB\u884C\u4E2D")))]),s("span",[s("i",{staticStyle:{background:"#8bcf70"}}),t._v(t._s(t.$L("\u9A8C\u6536/\u6D4B\u8BD5")))])])]),t.showStatsLoading?s("div",{staticClass:"team-stats-loading"},[s("Loading")],1):[s("ul",{staticClass:"member-list"},[t._l(t.visibleMembers,function(e){return s("li",{key:e.userid,staticClass:"member-row",on:{click:function(r){return t.onMember(e)}}},[s("UserAvatar",{staticClass:"team-avatar",attrs:{userid:e.userid,size:24}}),s("span",{staticClass:"member-name"},[t._v(t._s(e.nickname))]),s("ETooltip",{attrs:{disabled:t.$isEEUIApp||t.$store.state.windowTouch||e.total===0,"open-delay":300,effect:"light",placement:"top","popper-class":"dashboard-member-progress-popper"}},[s("span",{staticClass:"member-track"},[s("span",{staticClass:"member-bar",style:{width:t.memberBarWidth(e)}},[e.segments.start>0?s("i",{style:{flex:e.segments.start,background:"#bcc1cc"}}):t._e(),e.segments.progress>0?s("i",{style:{flex:e.segments.progress,background:"#85acff"}}):t._e(),e.segments.test>0?s("i",{style:{flex:e.segments.test,background:"#8bcf70"}}):t._e()])]),s("div",{staticClass:"member-progress-tooltip",attrs:{slot:"content"},slot:"content"},[s("span",{staticClass:"progress-tooltip-title"},[t._v(t._s(t.$L("\u4EFB\u52A1\u6982\u51B5")))]),s("div",{staticClass:"progress-tooltip-row"},[s("span",{staticClass:"progress-tooltip-label"},[t._v(t._s(t.$L("\u672A\u5B8C\u6210\u603B\u6570")))]),s("strong",[t._v(t._s(t.$L("(*) \u9879",e.total)))])]),s("div",{staticClass:"progress-tooltip-row row-overdue"},[s("span",{staticClass:"progress-tooltip-label"},[t._v(t._s(t.$L("\u5DF2\u8D85\u671F")))]),s("strong",[t._v(t._s(t.$L("(*) \u9879",e.overdue))+" \xB7 "+t._s(t.memberOverduePercent(e))+"%")])]),s("span",{staticClass:"progress-tooltip-title title-stage"},[t._v(t._s(t.$L("\u6D41\u7A0B\u9636\u6BB5")))]),t._l(t.memberProgressDetails(e),function(r){return s("div",{key:r.type,staticClass:"progress-tooltip-row"},[s("span",{staticClass:"progress-tooltip-label"},[s("i",{style:{background:r.color}}),t._v(t._s(r.label))]),s("strong",[t._v(t._s(t.$L("(*) \u9879",r.count))+" \xB7 "+t._s(r.percent)+"%")])])})],2)]),s("span",{staticClass:"member-num",attrs:{title:t.memberSummary(e)}},[e.overdue>0?s("em",{staticClass:"num-overdue"},[t._v(t._s(t.$L("(*) \u8D85\u671F",e.overdue))+" \xB7 ")]):t._e(),t._v(t._s(t.$L("(*) \u9879",e.total))+" ")])],1)}),t.blocks.no_owner>0?s("li",{staticClass:"member-row member-noowner",on:{click:function(e){return t.onBlock("noowner")}}},[s("span",{staticClass:"mock-avatar avatar-none"},[t._v("?")]),s("span",{staticClass:"member-name"},[t._v(t._s(t.$L("\u672A\u5206\u914D")))]),s("span",{staticClass:"member-track"},[s("span",{staticClass:"member-bar bar-hatched",style:{width:t.memberBarWidth({total:t.blocks.no_owner})}})]),s("span",{staticClass:"member-num num-noowner"},[t._v(t._s(t.$L("(*) \u9879",t.blocks.no_owner)))])]):t._e()],2),t.members.length>t.memberLimit?s("div",{staticClass:"card-more",on:{click:function(e){t.memberExpand=!t.memberExpand}}},[t._v(" "+t._s(t.memberExpand?t.$L("\u6536\u8D77"):t.$L("\u67E5\u770B\u5168\u90E8 (*) \u4EBA",t.members.length)+" \u2192")+" ")]):t._e()]],2),s("div",{staticClass:"dashboard-card team-priority"},[s("div",{staticClass:"card-head"},[s("span",{staticClass:"head-title"},[t._v(t._s(t.$L("\u4F18\u5148\u7EA7\u5206\u5E03")))]),t.showStatsLoading?t._e():s("span",{staticClass:"head-note"},[t._v(t._s(t.$L("\u672A\u5B8C\u6210 (*) \u9879",t.blocks.uncompleted||0)))])]),t.showStatsLoading?s("div",{staticClass:"team-stats-loading"},[s("Loading")],1):s("div",{staticClass:"priority-distribution"},[s("DashboardPriorityChart",{attrs:{items:t.priorityList,total:t.blocks.uncompleted||0},on:{select:t.onPriority}}),s("div",{staticClass:"priority-list"},[t._l(t.visiblePriorityList,function(e){return s("button",{key:e.level,staticClass:"priority-row",attrs:{type:"button"},on:{click:function(r){return t.onPriority(e)}}},[s("div",{staticClass:"priority-head"},[s("i",{staticClass:"priority-dot",style:{backgroundColor:e.color}}),s("span",{staticClass:"priority-name"},[t._v(t._s(e.name))]),s("span",{staticClass:"priority-num"},[t._v(t._s(t.$L("(*) \u9879",e.num))+" \xB7 "+t._s(e.percent)+"%")])])])}),t.priorityList.length>t.priorityLimit?s("div",{staticClass:"priority-tip priority-more",on:{click:function(e){t.priorityExpand=!t.priorityExpand}}},[t._v(" "+t._s(t.priorityExpand?t.$L("\u6536\u8D77"):t.$L("\u67E5\u770B\u5168\u90E8 (*) \u4E2A\u4F18\u5148\u7EA7",t.priorityList.length)+" \u2192")+" ")]):t._e(),t.priorityList.length===0?s("span",{staticClass:"priority-tip"},[t._v(t._s(t.$L("\u6682\u65E0\u6570\u636E")))]):t._e()],2)],1)])]),s("div",{staticClass:"team-focus-section",class:{"focus-scroll-reserve":t.focusScrollReserved}},[s("div",{ref:"focusCard",staticClass:"dashboard-card team-focus"},[s("div",{staticClass:"card-head focus-head"},[t._l(t.chips,function(e){return s("span",{key:e.type,staticClass:"focus-chip",class:[`chip-${e.type}`,{"chip-active":!t.extraFilter&&t.focus===e.type}],on:{click:function(r){return t.setFocus(e.type)}}},[t._v(t._s(e.label)+" "+t._s(e.num))])}),t.extraFilter?s("span",{staticClass:"focus-chip chip-extra chip-active",on:{click:t.clearFilter}},[t._v(" "+t._s(t.extraFilter.label)),s("i",[t._v("\xD7")])]):t._e()],2),s("div",{staticClass:"focus-table"},[s("div",{staticClass:"focus-row focus-thead"},[s("span",[s("DashboardIcon",{attrs:{name:"task"}}),t._v(t._s(t.$L("\u4EFB\u52A1")))],1),s("span",{staticClass:"f-project"},[s("DashboardIcon",{attrs:{name:"project"}}),t._v(t._s(t.$L("\u9879\u76EE")))],1),s("span",{staticClass:"f-owner"},[s("DashboardIcon",{attrs:{name:"owner"}}),t._v(t._s(t.$L("\u8D1F\u8D23\u4EBA")))],1),s("span",{staticClass:"f-priority"},[s("DashboardIcon",{attrs:{name:"priority"}}),t._v(t._s(t.$L("\u4F18\u5148\u7EA7")))],1),s("span",{staticClass:"f-status"},[s("DashboardIcon",{attrs:{name:"status"}}),t._v(t._s(t.$L("\u72B6\u6001")))],1),s("span",{staticClass:"f-end"},[s("DashboardIcon",{attrs:{name:"calendar"}}),t._v(t._s(t.$L("\u622A\u6B62\u65F6\u95F4")))],1)]),t._l(t.currentList.list,function(e){return s("div",{key:e.id,staticClass:"focus-row",on:{click:function(r){return t.onTask(e)}}},[s("span",{staticClass:"f-name"},[t._v(t._s(e.name))]),s("span",{staticClass:"f-project"},[t._v(t._s(e.project_name))]),s("span",{staticClass:"f-owner"},[e.owner?[s("UserAvatar",{staticClass:"team-avatar",attrs:{userid:e.owner.userid,size:24}}),s("span",{staticClass:"owner-name"},[t._v(t._s(e.owner.nickname))]),e.owners.length>1?s("em",{staticClass:"owner-more"},[t._v("+"+t._s(e.owners.length-1))]):t._e()]:[s("span",{staticClass:"mock-avatar avatar-none"},[t._v("?")]),s("em",{staticClass:"owner-none"},[t._v(t._s(t.$L("\u5F85\u5206\u914D")))])]],2),s("span",{staticClass:"f-priority"},[e.p_name?[s("i",{staticClass:"priority-glyph",style:{backgroundColor:e.p_color}}),s("span",[t._v(t._s(e.p_name))])]:[t._v("\u2014")]],2),s("span",{staticClass:"f-status"},[s("em",{staticClass:"status-pill",class:e.flow_item_name?e.flow_item_status:""},[t._v(t._s(e.flow_item_name||t.$L("\u672A\u5B8C\u6210")))])]),s("span",{staticClass:"f-end",class:t.deadlineClass(e.end_at)},[t._v(t._s(t.deadlineText(e.end_at)||"\u2014"))])])}),t.currentList.loading&&!t.currentList.silent?s("div",{staticClass:"focus-loading"},[s("Loading")],1):t.currentList.list.length===0?s("div",{staticClass:"focus-empty"},[s("span",{staticClass:"focus-empty-icon"},[s("Icon",{attrs:{type:"md-checkmark"}})],1),s("strong",[t._v(t._s(t.focusEmptyTitle))]),s("span",[t._v(t._s(t.$L("\u53EF\u4EE5\u5207\u6362\u4E0A\u65B9\u6761\u4EF6\u67E5\u770B\u5176\u4ED6\u4EFB\u52A1")))])]):t.currentList.hasMore?s("div",{staticClass:"card-more",on:{click:t.loadMore}},[t._v(t._s(t.$L("\u52A0\u8F7D\u66F4\u591A"))+"\uFF08"+t._s(t.$L("\u8FD8\u6709 (*) \u9879",t.currentList.total-t.currentList.list.length))+"\uFF09")]):t.currentList.total>t.pageSize?s("div",{staticClass:"card-more more-done"},[t._v(t._s(t.$L("\u5168\u90E8\u663E\u793A\u5B8C\u6BD5")))]):t._e()],2)])])])},V=[];const B={name:"DashboardTeam",components:{DashboardIcon:y,DashboardPriorityChart:E},mixins:[f],props:{initialFocus:{type:String,default:"overdue"}},data(){return{stats:{member_count:0,blocks:{},priority:[],members:[]},statsLoading:!1,statsLoadedAt:0,statsToken:0,focus:["overdue","soon","hi","noowner"].includes(this.initialFocus)?this.initialFocus:"overdue",extraFilter:null,lists:{},listTokens:{},pageSize:20,refreshSeconds:60,memberLimit:5,memberExpand:!1,priorityLimit:6,priorityExpand:!1,focusScrollReserved:!1}},created(){this.loadAll()},activated(){this.loadInterval(!0),this.statsLoadedAt>0&&$A.dayjs().unix()-this.statsLoadedAt>=this.refreshSeconds&&this.loadAll(!0)},deactivated(){this.loadInterval(!1),this.focusScrollReserved=!1},beforeDestroy(){this.loadInterval(!1)},computed:{...v(["cacheDepartmentOwnerIds"]),scopeKey({cacheDepartmentOwnerIds:t}){const a=(t||[]).map(s=>parseInt(s)).filter(s=>s>0).sort((s,e)=>s-e);return a.length>0?a.join(","):"all"},blocks({stats:t}){return t.blocks||{}},members({stats:t}){return t.members||[]},visibleMembers({members:t,memberExpand:a,memberLimit:s}){return a?t:t.slice(0,s)},showStatsLoading({statsLoading:t,statsLoadedAt:a}){return t&&a===0},memberMax({members:t,blocks:a}){return Math.max(...t.map(s=>s.total),a.no_owner||0,1)},priorityList({stats:t,blocks:a}){const s=Math.max(a.uncompleted||0,1);return(t.priority||[]).filter(e=>e.num>0).map(e=>({...e,name:e.name||this.$L("\u672A\u8BBE\u7F6E"),percent:Math.round(e.num/s*100)}))},visiblePriorityList({priorityList:t,priorityExpand:a,priorityLimit:s}){return a?t:t.slice(0,s)},highPriorityChip({stats:t,blocks:a}){const s=(t.priority||[]).filter(e=>e.level>0).slice(0,2);return{label:s.map(e=>e.name).join(" / ")||this.$L("\u9AD8\u4F18\u5148\u7EA7"),num:s.reduce((e,r)=>e+r.num,0)}},chips({blocks:t,highPriorityChip:a}){return[{type:"overdue",label:this.$L("\u5DF2\u8D85\u671F"),num:t.overdue||0},{type:"soon",label:this.$L("(*) \u5929\u5185\u5230\u671F",3),num:t.due_soon||0},{type:"hi",label:a.label,num:a.num},{type:"noowner",label:this.$L("\u672A\u5206\u914D\u8D1F\u8D23\u4EBA"),num:t.no_owner||0}]},weekDiffText({blocks:t}){if(!t.week_completed&&!t.last_week_completed)return"";const a=(t.week_completed||0)-(t.last_week_completed||0);return a>0?this.$L("\u8F83\u4E0A\u5468")+` +${a}`:a<0?this.$L("\u8F83\u4E0A\u5468")+` ${a}`:this.$L("\u4E0E\u4E0A\u5468\u6301\u5E73")},currentKey({scopeKey:t,focus:a,extraFilter:s}){return s?`${t}|${s.kind}:${s.value}`:`${t}|type:${a}`},currentList({lists:t,currentKey:a}){return t[a]||{list:[],page:1,total:0,hasMore:!1,loading:!0,silent:!1}},focusEmptyTitle({extraFilter:t,focus:a}){if(t)return this.$L("\u5F53\u524D\u7B5B\u9009\u6761\u4EF6\u4E0B\u6682\u65E0\u4EFB\u52A1");switch(a){case"overdue":return this.$L("\u6682\u65E0\u5DF2\u8D85\u671F\u4EFB\u52A1");case"soon":return this.$L("\u672A\u6765 (*) \u5929\u5185\u6682\u65E0\u5230\u671F\u4EFB\u52A1",3);case"hi":return this.$L("\u6682\u65E0\u9AD8\u4F18\u5148\u7EA7\u4EFB\u52A1");case"noowner":return this.$L("\u6240\u6709\u4EFB\u52A1\u5747\u5DF2\u5206\u914D\u8D1F\u8D23\u4EBA");default:return this.$L("\u6682\u65E0\u4EFB\u52A1")}}},watch:{scopeKey(){this.statsToken++,this.statsLoading=!1,this.$emit("stats-loading",!1),this.stats={member_count:0,blocks:{},priority:[],members:[]},this.statsLoadedAt=0,this.lists={},this.listTokens={},this.extraFilter=null,this.memberExpand=!1,this.priorityExpand=!1,this.$emit("stats",this.stats),this.loadAll(!0)}},methods:{deptParams(){const t=(this.cacheDepartmentOwnerIds||[]).map(a=>parseInt(a)).filter(a=>a>0);return t.length>0?{department_owner_ids:t.join(",")}:{}},loadAll(t=!1){const a=this.loadStats(t);return this.loadList(1,t),a},loadStats(t=!1){if(this.statsLoading)return Promise.resolve(!1);if(!t&&this.statsLoadedAt>0&&$A.dayjs().unix()-this.statsLoadedAt<this.refreshSeconds)return Promise.resolve(!0);const a=this.scopeKey,s=++this.statsToken;return this.statsLoading=!0,this.$emit("stats-loading",!0),this.$store.dispatch("call",{url:"dashboard/team/stats",data:Object.assign(this.deptParams(),t?{refresh:1}:{})}).then(({data:e})=>a!==this.scopeKey||s!==this.statsToken?!1:(this.stats=Object.assign({member_count:0,blocks:{},priority:[],members:[]},e),this.statsLoadedAt=$A.dayjs().unix(),this.$emit("stats",this.stats),!0)).catch(({msg:e})=>(a===this.scopeKey&&s===this.statsToken&&(this.statsLoadedAt=0,e&&$A.messageWarning(e)),!1)).finally(()=>{s===this.statsToken&&(this.statsLoading=!1,this.$emit("stats-loading",!1))})},refreshAll(){return this.loadAll(!0)},listParams(t){var s,e,r;const a=Object.assign(this.deptParams(),{page:t,pagesize:this.pageSize});return((s=this.extraFilter)==null?void 0:s.kind)==="member"?a.member_id=this.extraFilter.value:((e=this.extraFilter)==null?void 0:e.kind)==="level"?a.level=this.extraFilter.value:((r=this.extraFilter)==null?void 0:r.kind)==="type"?a.type=this.extraFilter.value:a.type=this.focus,a},loadList(t=1,a=!1){const s=this.currentKey,e=this.lists[s];if(e!=null&&e.loading||t===1&&!a&&e)return;const r=e||null,i=t>1||a&&r?(r==null?void 0:r.list)||[]:[],o=this.scopeKey,l=(this.listTokens[s]||0)+1;this.$set(this.listTokens,s,l),this.$set(this.lists,s,{list:i,page:t,total:r?r.total:0,hasMore:!1,loading:!0,silent:a&&i.length>0,loadedAt:r?r.loadedAt:0}),this.$store.dispatch("call",{url:"dashboard/team/tasks",data:this.listParams(t)}).then(({data:c})=>{if(o!==this.scopeKey||l!==this.listTokens[s])return;const u=c.data||[];this.$set(this.lists,s,{list:t>1?[...i,...u]:u,page:c.current_page||t,total:c.total||0,hasMore:(c.current_page||t)<(c.last_page||1),loading:!1,silent:!1,loadedAt:$A.dayjs().unix()})}).catch(({msg:c})=>{o===this.scopeKey&&l===this.listTokens[s]&&(this.$set(this.lists,s,{list:i,page:r?r.page:1,total:r?r.total:0,hasMore:r?r.hasMore:!1,loading:!1,silent:!1,loadedAt:r?r.loadedAt:0}),c&&i.length===0&&$A.messageWarning(c))})},loadMore(){!this.currentList.loading&&this.currentList.hasMore&&this.loadList(this.currentList.page+1)},setFocus(t){this.extraFilter=null,this.focus=t,$A.IDBSave("dashboardTeamFocus",t),this.$nextTick(()=>this.loadList())},setFilter(t,a,s){this.extraFilter={kind:t,value:a,label:s},this.$nextTick(()=>{this.loadList(),this.scrollToFocus()})},clearFilter(){this.extraFilter=null,this.$nextTick(()=>this.loadList())},onBlock(t){if(t==="uncompleted"){this.setFilter("type","uncompleted",this.$L("\u672A\u5B8C\u6210"));return}this.setFocus(t),this.scrollToFocus()},onMember(t){this.setFilter("member",t.userid,`${this.$L("\u6210\u5458")}: ${t.nickname}`)},onPriority(t){this.setFilter("level",t.level,`${this.$L("\u4F18\u5148\u7EA7")}: ${t.name}`)},onTask(t){this.$store.dispatch("openTask",t)},scrollToFocus(){this.focusScrollReserved=!0,this.$nextTick(()=>{$A.scrollToView(this.$refs.focusCard,{behavior:"smooth",block:"start"})})},memberBarWidth(t){return`${Math.max(Math.round(t.total/this.memberMax*100),4)}%`},memberProgressDetails(t){const a=Math.max(t.total||0,1);return[{type:"start",label:this.$L("\u5F85\u5904\u7406"),color:"#bcc1cc",count:t.segments.start||0},{type:"progress",label:this.$L("\u8FDB\u884C\u4E2D"),color:"#85acff",count:t.segments.progress||0},{type:"test",label:this.$L("\u9A8C\u6536/\u6D4B\u8BD5"),color:"#8bcf70",count:t.segments.test||0}].filter(s=>s.count>0).map(s=>({...s,percent:Math.round(s.count/a*1e3)/10}))},memberOverduePercent(t){return t.total>0?Math.round(t.overdue/t.total*1e3)/10:0},memberSummary(t){const a=this.$L("(*) \u9879",t.total);return t.overdue>0?`${this.$L("(*) \u8D85\u671F",t.overdue)} \xB7 ${a}`:a}}},m={};var q=d(B,O,V,!1,H,null,null,null);function H(t){for(let a in m)this[a]=m[a]}var U=function(){return q.exports}(),G=function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("div",{staticClass:"page-dashboard"},[s("PageTitle",{attrs:{title:t.$L("\u4EEA\u8868\u76D8")}}),s("Scrollbar",{staticClass:"dashboard-scroller"},[t.warningMsg?s("div",{staticClass:"dashboard-warning"},[s("Alert",{attrs:{type:"warning","show-icon":""}},[s("span",{on:{click:function(e){return t.goForward({name:"manage-setting-license"})}}},[t._v(t._s(t.warningMsg))])])],1):t._e(),s("div",{staticClass:"dashboard-body"},[s("div",{staticClass:"dashboard-header"},[s("div",{staticClass:"header-left"},[t.currentView==="my"?[s("h2",{staticClass:"header-hello"},[t._v(t._s(t.dashboardHello))]),s("div",{staticClass:"header-sub"},[s("span",[t._v(t._s(t.todayText)+" \xB7 "+t._s(t.mySummary))]),s("transition",{attrs:{name:"dashboard-load"}},[t.loadDashboardTasks?s("div",{staticClass:"dashboard-load"},[s("Loading")],1):t._e()])],1)]:[s("h2",{staticClass:"header-hello"},[t._v(t._s(t.$L("\u90E8\u95E8\u4EFB\u52A1\u603B\u89C8")))]),s("div",{staticClass:"header-sub"},[s("span",[t._v(" "+t._s(t.todayText)),t.teamSummary?[t._v(" \xB7 "+t._s(t.teamSummary))]:t._e(),s("EPopover",{attrs:{placement:"bottom-start","popper-class":"dashboard-cache-popper",trigger:"click"},model:{value:t.teamCachePopoverShow,callback:function(e){t.teamCachePopoverShow=e},expression:"teamCachePopoverShow"}},[s("div",{staticClass:"dashboard-cache-popover"},[s("strong",[t._v(t._s(t.$L("\u6570\u636E\u66F4\u65B0\u8BF4\u660E")))]),s("p",[t._v(t._s(t.$L("\u9875\u9762\u7EDF\u8BA1\u6570\u636E\u5728 (*) \u79D2\u5185\u590D\u7528\uFF0C\u91CD\u70B9\u5173\u6CE8\u4EFB\u52A1\u5217\u8868\u9664\u5916\u3002",60)))]),s("span",[t._v(t._s(t.$L("\u4E0A\u6B21\u66F4\u65B0\uFF1A(*)",t.teamStatsUpdatedTime)))]),s("Button",{attrs:{type:"primary",size:"small",loading:t.teamStatsLoading},on:{click:t.refreshTeamDashboard}},[t._v(t._s(t.$L("\u7ACB\u5373\u5237\u65B0")))])],1),s("Icon",{staticClass:"team-cache-help",attrs:{slot:"reference",type:"ios-information-circle-outline"},slot:"reference"})],1)],2)])],t.systemConfig.timezoneDifference?s("div",{staticClass:"header-servertime"},[s("span",[t._v(t._s(t.$L("\u670D\u52A1\u5668\u65F6\u95F4"))+":")]),s("span",[t._v(t._s(t.$A.daytz().format("YYYY-MM-DD HH:mm:ss")))])]):t._e()],2),s("div",{staticClass:"header-right"},[s("div",{staticClass:"header-search",class:{"min-search":t.windowPortrait},on:{click:t.openSearch}},[s("Icon",{attrs:{type:"ios-search"}}),s("span",[t._v(t._s(t.$L("\u641C\u7D22"))+" ("+t._s(t.mateName)+"+F)")])],1),t.currentView==="my"?s("div",{staticClass:"header-seg"},[s("span",{class:{"seg-active":t.layout==="list"},on:{click:function(e){return t.setLayout("list")}}},[t._v(t._s(t.$L("\u5217\u8868")))]),s("span",{class:{"seg-active":t.layout==="quad"},on:{click:function(e){return t.setLayout("quad")}}},[t._v(t._s(t.$L("\u56DB\u8C61\u9650")))])]):s("div",{staticClass:"header-dept",on:{click:function(e){t.deptViewShow=!0}}},[s("Icon",{attrs:{type:"md-people"}}),s("span",[t._v(t._s(t.deptLabel))]),t.teamStats.member_count?s("em",{staticClass:"dept-badge"},[t._v(t._s(t.teamStats.member_count))]):t._e()],1),t.teamEnabled?s("div",{staticClass:"header-seg"},[s("span",{class:{"seg-active":t.currentView==="my"},on:{click:function(e){return t.setView("my")}}},[t._v(t._s(t.$L("\u4E2A\u4EBA\u89C6\u89D2")))]),s("span",{class:{"seg-active":t.currentView==="team"},on:{click:function(e){return t.setView("team")}}},[t._v(t._s(t.$L("\u90E8\u95E8\u8D1F\u8D23\u4EBA")))])]):t._e()])]),t.currentView==="my"?[t.layout==="list"?[s("ul",{staticClass:"dashboard-cards personal-panel"},[s("li",{class:{"card-off":t.dashboardTask.overdue_count===0},attrs:{title:t.overdueMaxDays>0?t.$L("\u6700\u4E45 (*) \u5929",t.overdueMaxDays):""},on:{click:function(e){return t.scrollTo("overdue")}}},[s("div",{staticClass:"card-label"},[t._v(t._s(t.getTitle("overdue")))]),s("div",{staticClass:"card-data"},[s("span",{staticClass:"card-num num-red"},[t._v(t._s(t.dashboardTask.overdue_count))])])]),s("li",{class:{"card-off":t.dashboardTask.today_count===0},attrs:{title:t.todayNearest?t.$L("\u6700\u8FD1")+" "+t.todayNearest:""},on:{click:function(e){return t.scrollTo("today")}}},[s("div",{staticClass:"card-label"},[t._v(t._s(t.getTitle("today")))]),s("div",{staticClass:"card-data"},[s("span",{staticClass:"card-num num-orange"},[t._v(t._s(t.dashboardTask.today_count))])])]),s("li",{class:{"card-off":t.dashboardTask.todo_count===0},on:{click:function(e){return t.scrollTo("todo")}}},[s("div",{staticClass:"card-label"},[t._v(t._s(t.getTitle("todo")))]),s("div",{staticClass:"card-data"},[s("span",{staticClass:"card-num"},[t._v(t._s(t.dashboardTask.todo_count))])]),t.upcomingTask.count>0?s("div",{staticClass:"duo-upcoming",on:{click:function(e){return e.stopPropagation(),t.scrollTo("upcoming")}}},[s("div",{staticClass:"side-num"},[t._v(t._s(t.upcomingTask.count))]),s("div",{staticClass:"side-label"},[t._v(t._s(t.$L("\u5F85\u5F00\u59CB")))])]):t._e()]),s("li",{class:{"card-off":t.assistTask.length===0},attrs:{title:t.assistTodayCount>0?t.$L("\u4ECA\u5929 (*) \u9879\u5230\u671F",t.assistTodayCount):""},on:{click:function(e){return t.scrollTo("assist")}}},[s("div",{staticClass:"card-label"},[t._v(t._s(t.getTitle("assist")))]),s("div",{staticClass:"card-data"},[s("span",{staticClass:"card-num"},[t._v(t._s(t.assistTask.length))])])])]),s("div",{staticClass:"dashboard-card my-table"},[t.listColumns.length===0?s("div",{staticClass:"table-all-empty"},[t.loadDashboardTasks!==!1&&t.cacheTasks.length===0?s("div",{staticClass:"empty-state-loading"},[s("Loading")],1):s("div",{staticClass:"empty-state-content"},[s("span",{staticClass:"empty-icon",class:`empty-icon-${t.emptyState}`},[s("Icon",{attrs:{type:t.emptyState==="new"?"md-hand":"md-checkmark"}})],1),s("strong",{staticClass:"empty-state-title"},[t._v(t._s(t.emptyStateTitle))]),s("span",{staticClass:"empty-state-summary"},[t._v(t._s(t.emptyStateSummary))]),t.emptyState==="new"?s("div",{staticClass:"empty-state-actions"},[s("Button",{attrs:{type:"primary",icon:"md-add"},on:{click:t.createProject}},[t._v(t._s(t.$L("\u521B\u5EFA\u7B2C\u4E00\u4E2A\u9879\u76EE")))])],1):t.emptyState==="idle"?s("div",{staticClass:"empty-state-actions"},[s("Button",{attrs:{icon:"md-add"},on:{click:t.createTask}},[t._v(t._s(t.$L("\u65B0\u5EFA\u4EFB\u52A1")))])],1):t._e(),t.emptyState==="new"?s("span",{staticClass:"empty-state-hint"},[t._v(t._s(t.$L("\u5DF2\u6709\u56E2\u961F\uFF1F\u8BF7\u540C\u4E8B\u628A\u4F60\u52A0\u5165\u9879\u76EE\u5373\u53EF")))]):t._e(),t.emptyState==="completed"?s("div",{staticClass:"recent-completed-list"},[s("div",{staticClass:"recent-completed-head"},[s("span",[t._v(t._s(t.$L("\u8FD1\u671F\u5B8C\u6210")))]),s("em",[t._v(t._s(t.$L("\u672C\u5468 (*) \u9879",t.weeklyCompletedCount)))])]),t._l(t.recentCompleted,function(e){return s("div",{key:`recent-${e.id}`,staticClass:"recent-completed-row",on:{click:function(r){return t.openTask(e)}}},[s("Icon",{staticClass:"recent-completed-check",attrs:{type:"md-checkmark-circle"}}),s("span",{staticClass:"recent-completed-name"},[t._v(t._s(e.name))]),s("span",{staticClass:"recent-completed-project"},[t._v(t._s(t.projectName(e)))]),s("span",{staticClass:"recent-completed-time"},[t._v(t._s(t.completedText(e.complete_at)))])],1)})],2):t._e()])]):t._e(),t._l(t.listColumns,function(e){return[s("div",{key:`head-${e.type}`,ref:`group_${e.type}`,refInFor:!0,staticClass:"table-group",class:[`group-${e.type}`,{"group-flash":t.flashType===e.type}],on:{click:function(r){return t.toggleGroup(e.type)}}},[s("i",{staticClass:"group-dot"}),s("span",{staticClass:"group-title"},[t._v(t._s(e.title)+"\uFF08"+t._s(e.count)+"\uFF09")]),s("DashboardIcon",{staticClass:"group-chevron",class:{"chevron-close":e.hidden},attrs:{name:"chevron",size:16}})],1),e.hidden?t._e():[e.list.length===0?s("div",{key:`empty-${e.type}`,staticClass:"table-empty-group"},[s("span",{staticClass:"empty-icon"},[s("Icon",{attrs:{type:"md-checkmark"}})],1),s("span",[t._v(t._s(t.listEmptyText(e.type)))])]):t._e(),s("div",{key:`list-${e.type}`,staticClass:"table-body"},[s("div",{staticClass:"table-row table-thead"},[s("span"),s("span",[s("DashboardIcon",{attrs:{name:"task"}}),t._v(t._s(t.$L("\u4EFB\u52A1")))],1),s("span",{staticClass:"t-project"},[s("DashboardIcon",{attrs:{name:"project"}}),t._v(t._s(t.$L("\u9879\u76EE")))],1),s("span",{staticClass:"t-status"},[s("DashboardIcon",{attrs:{name:"status"}}),t._v(t._s(t.$L("\u72B6\u6001")))],1),s("span",{staticClass:"t-priority"},[s("DashboardIcon",{attrs:{name:"priority"}}),t._v(t._s(t.$L("\u4F18\u5148\u7EA7")))],1),s("span",{staticClass:"t-sub"},[s("DashboardIcon",{attrs:{name:"subtask"}}),t._v(t._s(t.$L("\u5B50\u4EFB\u52A1")))],1),s("span",{staticClass:"t-end"},[s("DashboardIcon",{attrs:{name:"calendar"}}),t._v(t._s(t.$L("\u622A\u6B62\u65F6\u95F4")))],1)]),t._l(t.groupList(e,t.listLimit(e)),function(r){return s("div",{key:`${e.type}-${r.id}`,staticClass:"table-row",class:{complete:r.complete_at},style:t.$A.generateColorVarStyle(r.flow_item_color,[10],"flow-item-custom-color",r.color?{backgroundColor:r.color}:{}),on:{click:function(i){return t.openTask(r)}}},[s("span",{staticClass:"cell-check",on:{click:function(i){i.stopPropagation()}}},[e.type==="assist"&&t.ownerUserid(r)?s("UserAvatar",{attrs:{userid:t.ownerUserid(r),size:22}}):s("TaskMenu",{attrs:{task:r}})],1),s("span",{staticClass:"cell-name"},[s("em",{staticClass:"status-pill name-status",class:r.flow_item_name?r.flow_item_status:{end:!!r.complete_at},on:{click:function(i){return i.stopPropagation(),t.openMenu(i,r)}}},[t._v(t._s(r.flow_item_name||(r.complete_at?t.$L("\u5DF2\u5B8C\u6210"):t.$L("\u672A\u5B8C\u6210"))))]),r.sub_top===!0?s("em",{staticClass:"name-tag"},[t._v(t._s(t.$L("\u5B50\u4EFB\u52A1")))]):t._e(),r.sub_my&&r.sub_my.length>0?s("em",{staticClass:"name-tag"},[t._v("+"+t._s(r.sub_my.length))]):t._e(),t._v(" "+t._s(r.name)+" ")]),s("span",{staticClass:"t-project"},[t._v(t._s(t.projectName(r)))]),s("span",{staticClass:"t-status"},[s("em",{staticClass:"status-pill",class:r.flow_item_name?r.flow_item_status:{end:!!r.complete_at},on:{click:function(i){return i.stopPropagation(),t.openMenu(i,r)}}},[t._v(t._s(r.flow_item_name||(r.complete_at?t.$L("\u5DF2\u5B8C\u6210"):t.$L("\u672A\u5B8C\u6210"))))])]),s("span",{staticClass:"t-priority"},[r.p_name?[s("i",{staticClass:"priority-glyph",style:{backgroundColor:r.p_color}}),s("span",[t._v(t._s(r.p_name))])]:[t._v("\u2014")]],2),s("span",{staticClass:"t-sub"},[r.sub_num>0?[s("i",{staticClass:"sub-bar"},[s("b",{style:{width:`${Math.min(r.sub_complete/r.sub_num*100,100)}%`}})]),s("em",[t._v(t._s(r.sub_complete)+"/"+t._s(r.sub_num))])]:[t._v("\u2014")]],2),s("span",{staticClass:"t-end",class:t.deadlineClass(r.end_at),attrs:{title:r.end_at}},[t._v(t._s(t.deadlineText(r.end_at)||"\u2014"))])])}),e.list.length>t.listLimit(e)&&!t.expandedGroups.includes(e.type)?s("div",{key:`more-${e.type}`,staticClass:"card-more",on:{click:function(r){return t.expandedGroups.push(e.type)}}},[t._v(t._s(t.$L("\u8FD8\u6709 (*) \u9879",e.list.length-t.listLimit(e)))+" \u2192")]):t._e()],2)]]})],2)]:s("div",{staticClass:"dashboard-quad"},t._l(t.columns,function(e){return s("div",{key:e.type,staticClass:"dashboard-card quad-card",class:[`group-${e.type}`]},[s("div",{staticClass:"quad-head"},[s("i",{staticClass:"group-dot"}),s("span",{staticClass:"group-title"},[t._v(t._s(e.title))]),s("span",{staticClass:"quad-num"},[t._v("\uFF08"+t._s(e.count)+"\uFF09")])]),t._l(t.groupList(e,t.quadLimit),function(r){return s("div",{key:r.id,staticClass:"quad-row",class:{complete:r.complete_at},style:t.$A.generateColorVarStyle(r.flow_item_color,[10],"flow-item-custom-color",r.color?{backgroundColor:r.color}:{}),on:{click:function(i){return t.openTask(r)}}},[s("span",{staticClass:"cell-check",on:{click:function(i){i.stopPropagation()}}},[e.type==="assist"&&t.ownerUserid(r)?s("UserAvatar",{attrs:{userid:t.ownerUserid(r),size:22}}):s("TaskMenu",{attrs:{task:r}})],1),s("span",{staticClass:"cell-name"},[t._v(t._s(r.name))]),s("em",{staticClass:"status-pill",class:r.flow_item_name?r.flow_item_status:{end:!!r.complete_at},on:{click:function(i){return i.stopPropagation(),t.openMenu(i,r)}}},[t._v(t._s(r.flow_item_name||(r.complete_at?t.$L("\u5DF2\u5B8C\u6210"):t.$L("\u672A\u5B8C\u6210"))))]),s("span",{staticClass:"quad-priority",attrs:{title:r.p_name}},[r.p_name?s("i",{staticClass:"priority-glyph",style:{backgroundColor:r.p_color}}):t._e(),s("span",[t._v(t._s(r.p_name||"\u2014"))])]),s("span",{staticClass:"quad-sub"},[t._v(t._s(r.sub_num>0?`${r.sub_complete}/${r.sub_num}`:"\u2014"))]),s("span",{staticClass:"t-end",class:t.deadlineClass(r.end_at),attrs:{title:r.end_at}},[t._v(t._s(t.deadlineText(r.end_at)||"\u2014"))])])}),e.list.length===0?s("div",{staticClass:"quad-empty"},[s("span",{staticClass:"dashboard-empty-art"},[s("img",{staticClass:"empty-art-light",attrs:{src:t.emptyArt,width:"147",height:"123",alt:""}}),s("img",{staticClass:"empty-art-dark",attrs:{src:t.emptyDarkArt,width:"150",height:"150",alt:""}})]),s("span",[t._v(t._s(t.quadEmptyText(e.type)))])]):e.list.length<=t.quadLimit?s("div",{staticClass:"quad-filler"},[t._v(" "+t._s(e.type==="today"&&e.list.length===1?t.$L("\u4ECA\u5929\u53EA\u6709\u8FD9\u4E00\u9879\uFF0C\u5904\u7406\u5B8C\u5C31\u8F7B\u677E\u4E86"):t.$L("\u5168\u90E8\u663E\u793A\u5B8C\u6BD5"))+" ")]):e.list.length>t.quadLimit?s("div",{staticClass:"card-more",on:{click:function(r){return t.toggleExpand(e.type)}}},[t._v(" "+t._s(t.expandedGroups.includes(e.type)?t.$L("\u6536\u8D77"):t.$L("\u5C55\u5F00\u663E\u793A\u66F4\u591A"))+" "),s("DashboardIcon",{class:{"more-expanded":t.expandedGroups.includes(e.type)},attrs:{name:"chevron",size:12}})],1):t._e()],2)}),0)]:t._e(),s("keep-alive",[t.currentView==="team"?s("DashboardTeam",{ref:"dashboardTeam",attrs:{"initial-focus":t.teamFocusPref},on:{stats:function(e){t.teamStats=e},"stats-loading":function(e){t.teamStatsLoading=e}}}):t._e()],1)],2)]),s("DepartmentOwnerView",{attrs:{"scope-only":""},model:{value:t.deptViewShow,callback:function(e){t.deptViewShow=e},expression:"deptViewShow"}})],1)},N=[];const n={view:"my",layout:"list",overrides:{},focus:"overdue"},K={components:{TaskMenu:C,DashboardTeam:U,DashboardIcon:y,DepartmentOwnerView:x},mixins:[f],data(){return{emptyArt:$A.mainUrl("images/dashboard/empty.svg"),emptyDarkArt:$A.mainUrl("images/dashboard/empty-black.svg"),licenseTimer:null,view:n.view,layout:n.layout,collapsedOverrides:n.overrides,strategySnapshot:null,teamFocusPref:n.focus,expandedGroups:[],groupLimit:10,completedLimit:5,quadLimit:7,flashType:"",flashTimer:null,deptViewShow:!1,teamStats:{member_count:0,blocks:{}},teamStatsLoading:!1,teamCachePopoverShow:!1,mateName:/macintosh|mac os x/i.test(navigator.userAgent)?"\u2318":"Ctrl",warningMsg:""}},async beforeRouteEnter(t,a,s){n.view=await $A.IDBString("dashboardView","my"),n.layout=await $A.IDBString("dashboardLayout","list"),n.focus=await $A.IDBString("dashboardTeamFocus","overdue");const e=$A.jsonParse(await $A.IDBString("dashboardCollapsed",""),{});n.overrides=e.date===$A.daytz().format("YYYY-MM-DD")&&$A.isJson(e.overrides)?e.overrides:{},s(r=>{r.view=["my","team"].includes(n.view)?n.view:"my",r.layout=["list","quad"].includes(n.layout)?n.layout:"list",r.collapsedOverrides=n.overrides,r.teamFocusPref=n.focus})},activated(){this.loadInterval(!0),this.loadLicense(!0),this.takeSnapshot()},deactivated(){this.$store.dispatch("forgetTaskCompleteTemp",!0),this.loadInterval(!1),this.loadLicense(!1)},computed:{...v(["systemConfig","userInfo","userIsAdmin","cacheProjects","cacheTasks","cacheDepartmentOwnerIds","taskCompleteTemps","loadDashboardTasks"]),...$(["dashboardTask","assistTask","transforTasks"]),teamEnabled({systemConfig:t,userInfo:a}){return t.department_owner_project_view==="open"&&(a.managed_departments||[]).length>0},currentView({view:t,teamEnabled:a}){return a&&t==="team"?"team":"my"},upcomingTask({cacheTasks:t,taskCompleteTemps:a}){const s=$A.daytz(),e=(o,l=!0)=>o.archived_at||o.complete_at&&l===!0||!o.start_at||$A.dayjs(o.start_at)<=s?!1:o.owner==1;let r=t.filter(o=>e(o));const i=r.length;if(a.length>0){const o=t.filter(l=>a.includes(l.id)&&e(l,!1));o.length>0&&(r=r.concat(o))}return{count:i,list:r}},columns({dashboardTask:t,assistTask:a}){const s=[];return["overdue","today","todo"].some(e=>{let r=this.transforTasks(t[e]);s.push({type:e,title:this.getTitle(e),hidden:this.isCollapsed(e),count:t[`${e}_count`],list:r.sort((i,o)=>$A.sortDay(i.end_at||"2099-12-31 23:59:59",o.end_at||"2099-12-31 23:59:59"))})}),s.push({type:"assist",title:this.getTitle("assist"),hidden:this.isCollapsed("assist"),count:a.length,list:a.sort((e,r)=>$A.sortDay(e.end_at||"2099-12-31 23:59:59",r.end_at||"2099-12-31 23:59:59"))}),s},listAllColumns({columns:t,upcomingTask:a}){const s=[...t];return s.splice(3,0,{type:"upcoming",title:this.getTitle("upcoming"),hidden:this.isCollapsed("upcoming"),count:a.count,list:this.transforTasks(a.list).sort((e,r)=>$A.sortDay(e.start_at,r.start_at))}),s},currentListColumns({listAllColumns:t}){return t.filter(a=>a.list.length>0)},weeklyCompleted({cacheTasks:t,taskCompleteTemps:a,nowTime:s}){const e=$A.daytz(s),r=e.clone().startOf("day").subtract((e.day()+6)%7,"day"),i=r.clone().add(7,"day");return t.filter(o=>{if(o.archived_at||!o.complete_at||o.owner!=1||a.includes(o.id))return!1;const l=$A.dayjs(o.complete_at);return l.valueOf()>=r.valueOf()&&l.valueOf()<i.valueOf()}).sort((o,l)=>$A.sortDay(l.complete_at,o.complete_at))},weeklyCompletedCount({weeklyCompleted:t}){return t.length},recentCompleted({weeklyCompleted:t,completedLimit:a}){return t.slice(0,a)},completedColumn({weeklyCompleted:t,weeklyCompletedCount:a}){return{type:"completed",title:this.getTitle("completed"),hidden:this.isCollapsed("completed"),count:a,list:t}},listColumns({currentListColumns:t,completedColumn:a}){return t.length===0?[]:a.count>0?[...t,a]:t},emptyState({weeklyCompletedCount:t,cacheProjects:a,cacheTasks:s}){if(t>0)return"completed";const e=s.some(r=>!r.archived_at);return a.length===0&&!e?"new":"idle"},emptyStateTitle({emptyState:t}){return t==="completed"?this.$L("\u592A\u68D2\u4E86\uFF0C\u4EFB\u52A1\u5168\u90E8\u6E05\u7A7A"):t==="new"?this.$L("\u6B22\u8FCE\u4F7F\u7528 DooTask"):this.$L("\u5F53\u524D\u6CA1\u6709\u5F85\u5904\u7406\u4EFB\u52A1")},emptyStateSummary({emptyState:t,weeklyCompletedCount:a}){return t==="completed"?this.$L("\u672C\u5468\u5B8C\u6210\u4E86 (*) \u9879\u4EFB\u52A1",a):t==="new"?this.$L("\u9879\u76EE\u662F\u4EFB\u52A1\u4E0E\u534F\u4F5C\u7684\u8D77\u70B9\uFF0C\u521B\u5EFA\u4E00\u4E2A\u5F00\u59CB"):this.$L("\u53EF\u4EE5\u65B0\u5EFA\u4E00\u9879\u4EFB\u52A1\uFF0C\u6216\u7B49\u5F85\u65B0\u7684\u5DE5\u4F5C\u5B89\u6392")},overdueMaxDays({dashboardTask:t,nowTime:a}){const s=$A.daytz(a).startOf("day");return(t.overdue||[]).reduce((e,r)=>r.end_at?Math.max(e,s.diff($A.dayjs(r.end_at).startOf("day"),"day")):e,0)},todayNearest({dashboardTask:t}){const a=(t.today||[]).filter(e=>e.end_at);if(a.length===0)return"";const s=a.reduce((e,r)=>e===null||r.end_at<e?r.end_at:e,null);return $A.dayjs(s).format("HH:mm")},assistTodayCount({assistTask:t,nowTime:a}){const s=$A.daytz(a).format("YYYY-MM-DD");return t.filter(e=>e.end_at&&$A.dayjs(e.end_at).format("YYYY-MM-DD")===s).length},todayText({nowTime:t}){const a=$A.daytz(t),s=[this.$L("\u5468\u65E5"),this.$L("\u5468\u4E00"),this.$L("\u5468\u4E8C"),this.$L("\u5468\u4E09"),this.$L("\u5468\u56DB"),this.$L("\u5468\u4E94"),this.$L("\u5468\u516D")];return`${this.$L("(*)\u6708(*)\u65E5",a.month()+1,a.date())} ${s[a.day()]}`},mySummary({dashboardTask:t}){return t.overdue_count>0?this.$L("\u6709 (*) \u9879\u5DF2\u8D85\u671F\uFF0C\u5EFA\u8BAE\u5148\u5904\u7406",t.overdue_count):t.today_count>0?this.$L("\u6709 (*) \u9879\u4ECA\u65E5\u5230\u671F",t.today_count):this.$L("\u4ECA\u65E5\u65E0\u5230\u671F\u4EFB\u52A1")},teamSummary({teamStats:t}){const a=t.blocks||{};return a.overdue>0?a.overdue_owner_count>0?this.$L("\u56E2\u961F\u6709 (*) \u9879\u5DF2\u8D85\u671F\uFF0C\u6D89\u53CA (*) \u4EBA",a.overdue,a.overdue_owner_count):this.$L("\u56E2\u961F\u6709 (*) \u9879\u5DF2\u8D85\u671F",a.overdue):a.week_completed>0?this.$L("\u56E2\u961F\u672C\u5468\u5DF2\u5B8C\u6210 (*) \u9879",a.week_completed):""},teamStatsUpdatedTime({teamStats:t}){return t.generated_at?$A.dayjs(t.generated_at).format("HH:mm:ss"):"--"},deptLabel({userInfo:t,cacheDepartmentOwnerIds:a}){const s=(t.managed_departments||[]).map(i=>({...i,id:parseInt(i.id)})),e=(a||[]).map(i=>parseInt(i)),r=e.length>0?s.filter(i=>e.includes(i.id)):s;return r.length===0||r.length===s.length?s.length===1?s[0].name:this.$L("\u6211\u7684\u90E8\u95E8"):r.length===1?r[0].name:`${r[0].name} +${r.length-1}`},dashboardHello({systemConfig:t,userInfo:a,nowTime:s}){if(t.system_welcome)return this.$L(t.system_welcome).replace(/\{username}/g,a.nickname);const e=$A.daytz(s).hour();return e<5?this.$L("\u591C\u6DF1\u4E86\uFF0C(*)",a.nickname):e<11?this.$L("\u65E9\u4E0A\u597D\uFF0C(*)",a.nickname):e<14?this.$L("\u4E2D\u5348\u597D\uFF0C(*)",a.nickname):e<18?this.$L("\u4E0B\u5348\u597D\uFF0C(*)",a.nickname):this.$L("\u665A\u4E0A\u597D\uFF0C(*)",a.nickname)}},watch:{windowActive(t){this.routeName==="manage-dashboard"&&(this.loadInterval(t),this.loadLicense(t))}},methods:{getTitle(t){switch(t){case"today":return this.$L("\u4ECA\u65E5\u5230\u671F");case"overdue":return this.$L("\u5DF2\u8D85\u671F");case"todo":return this.$L("\u5F85\u5B8C\u6210");case"upcoming":return this.$L("\u5F85\u5F00\u59CB");case"assist":return this.$L("\u6211\u534F\u52A9\u7684");case"completed":return this.$L("\u672C\u5468\u5B8C\u6210");default:return""}},setView(t){this.view=t,t!=="team"&&(this.teamCachePopoverShow=!1),n.view=t,$A.IDBSave("dashboardView",t)},setLayout(t){this.layout=t,n.layout=t,$A.IDBSave("dashboardLayout",t)},isCollapsed(t){const a=this.collapsedOverrides[t];return a?a==="close":(this.strategySnapshot||[]).includes(t)},takeSnapshot(){const t={overdue:this.dashboardTask.overdue_count,today:this.dashboardTask.today_count,upcoming:this.upcomingTask.count,assist:this.assistTask.length},a=[];t.upcoming>0&&(t.overdue>0||t.today>0)&&a.push("upcoming"),this.strategySnapshot=a},toggleGroup(t){this.$set(this.collapsedOverrides,t,this.isCollapsed(t)?"open":"close"),n.overrides=this.collapsedOverrides,$A.IDBSave("dashboardCollapsed",JSON.stringify({date:$A.daytz().format("YYYY-MM-DD"),overrides:this.collapsedOverrides}))},toggleExpand(t){this.expandedGroups.includes(t)?this.expandedGroups=this.expandedGroups.filter(a=>a!==t):this.expandedGroups.push(t)},groupList(t,a){return this.expandedGroups.includes(t.type)?t.list:t.list.slice(0,a)},listLimit(t){return t.type==="completed"?this.completedLimit:this.groupLimit},listEmptyText(t){switch(t){case"overdue":return this.$L("\u6682\u65E0\u5DF2\u8D85\u671F\u4EFB\u52A1");case"today":return this.$L("\u6682\u65E0\u4ECA\u65E5\u5230\u671F\u4EFB\u52A1");case"todo":return this.$L("\u6682\u65E0\u5F85\u5B8C\u6210\u4EFB\u52A1");case"upcoming":return this.$L("\u6682\u65E0\u5F85\u5F00\u59CB\u4EFB\u52A1");case"assist":return this.$L("\u6682\u65E0\u534F\u52A9\u7684\u4EFB\u52A1");default:return this.$L("\u6682\u65E0\u4EFB\u52A1")}},quadEmptyText(t){switch(t){case"overdue":return this.$L("\u6CA1\u6709\u8D85\u671F\u4EFB\u52A1\uFF0C\u4FDD\u6301\u4F4F");case"today":return this.$L("\u4ECA\u65E5\u65E0\u5230\u671F\u4EFB\u52A1");case"todo":return this.$L("\u6682\u65E0\u5F85\u5B8C\u6210\u4EFB\u52A1");case"assist":return this.$L("\u6682\u65E0\u534F\u52A9\u7684\u4EFB\u52A1");default:return this.$L("\u6682\u65E0\u4EFB\u52A1")}},scrollTo(t){const a=this.listAllColumns.find(s=>s.type===t);!a||a.count===0||(this.isCollapsed(t)&&this.toggleGroup(t),this.$nextTick(s=>{const e=this.$refs[`group_${t}`];e&&e[0]&&($A.scrollToView(e[0],{behavior:"smooth",block:"start"}),this.flashType=t,this.flashTimer&&clearTimeout(this.flashTimer),this.flashTimer=setTimeout(r=>this.flashType="",1600))}))},refreshTeamDashboard(){var t;(t=this.$refs.dashboardTeam)==null||t.refreshAll().then(a=>{a&&(this.teamCachePopoverShow=!1,$A.messageSuccess("\u5237\u65B0\u6210\u529F"))})},projectName(t){const a=this.cacheProjects.find(({id:s})=>s==t.project_id);return a?a.name:""},ownerUserid(t){const a=(t.task_user||[]).find(s=>s.owner===1);return a?a.userid:0},openSearch(){b.emit("openSearch",null)},openTask(t){this.$store.dispatch("openTask",t)},createTask(){this.$emit("on-click","addTask")},createProject(){this.$emit("on-click","addProject")},completedText(t){if(!t)return"";const a=$A.dayjs(t),s=$A.daytz(this.nowTime);return a.format("YYYY-MM-DD")===s.format("YYYY-MM-DD")?`${this.$L("\u4ECA\u5929")} ${a.format("HH:mm")}`:a.format("YYYY-MM-DD")===s.clone().subtract(1,"day").format("YYYY-MM-DD")?`${this.$L("\u6628\u5929")} ${a.format("HH:mm")}`:`${this.$L("(*)\u6708(*)\u65E5",a.month()+1,a.date())} ${a.format("HH:mm")}`},openMenu(t,a){this.$store.state.taskOperation={event:t,task:a}},loadLicense(t){this.licenseTimer&&(clearTimeout(this.licenseTimer),this.licenseTimer=null),!(t===!1||!this.userIsAdmin)&&(this.licenseTimer=setTimeout(a=>{this.$store.dispatch("call",{url:"system/license",data:{type:"error"}}).then(({data:s})=>{this.warningMsg=s.error.length>0?s.error[0]:""}).catch(s=>{this.warningMsg=""})},1500))}}},_={};var R=d(K,G,N,!1,W,null,null,null);function W(t){for(let a in _)this[a]=_[a]}var Nt=function(){return R.exports}();export{Nt as default};