You can not 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
35 KiB

(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-1573d3e1"],{"0258":function(e,t,s){"use strict";s("5bd1")},"07ac":function(e,t,s){var r=s("23e7"),n=s("6f53").values;r({target:"Object",stat:!0},{values:function(e){return n(e)}})},"13d5":function(e,t,s){"use strict";var r=s("23e7"),n=s("d58f").left,a=s("a640"),o=s("ae40"),l=a("reduce"),i=o("reduce",{1:0});r({target:"Array",proto:!0,forced:!l||!i},{reduce:function(e){return n(this,e,arguments.length,arguments.length>1?arguments[1]:void 0)}})},"3c55":function(e,t,s){"use strict";s.r(t);var r=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"schedule-overview-page"},[s("lx-header",{staticStyle:{"margin-bottom":"10px",border:"0","margin-top":"15px"},attrs:{icon:"md-apps",text:e.$route.meta.title}},[s("div",{staticClass:"header-actions",attrs:{slot:"content"},slot:"content"},[s("el-date-picker",{staticStyle:{width:"120px"},attrs:{type:"year","value-format":"yyyy",format:"yyyy",placeholder:"选择年份",size:"small"},on:{change:e.handleYearChange},model:{value:e.currentYear,callback:function(t){e.currentYear=t},expression:"currentYear"}}),s("el-button",{attrs:{size:"small",plain:""},on:{click:e.openSystemCourseManager}},[e._v("体系课程管理")]),s("el-button",{attrs:{size:"small",type:"primary",plain:""},on:{click:e.openScheduleManager}},[e._v("编排管理")])],1)]),s("div",{staticClass:"summary-panel"},[s("div",{staticClass:"summary-grid"},e._l(e.summaryCards,(function(t){return s("div",{key:t.label,staticClass:"summary-card"},[s("div",{staticClass:"summary-label"},[e._v(e._s(t.label))]),s("div",{staticClass:"summary-value"},[s("span",{staticClass:"summary-number"},[e._v(e._s(t.value))]),t.unit?s("span",{staticClass:"summary-unit"},[e._v(e._s(t.unit))]):e._e()])])})),0)]),s("div",{staticClass:"panel"},[s("div",{staticClass:"panel-title"},[e._v("人员月度开班次数")]),s("div",{staticClass:"table-scroll table-scroll-y limit-rows-8"},[s("table",{staticClass:"data-table heatmap-table"},[s("thead",[s("tr",[s("th",[e._v("人员")]),e._l(e.months,(function(t){return s("th",{key:t},[e._v(e._s(t))])})),s("th",[e._v("合计")])],2)]),s("tbody",[e._l(e.monthlyStats,(function(t){return s("tr",{key:t.name},[s("td",{staticClass:"name-cell"},[e._v(e._s(t.name))]),e._l(t.months,(function(r,n){return s("td",{key:t.name+n,class:["heat-cell",e.heatClass(r)]},[e._v(" "+e._s(r||"-")+" ")])})),s("td",{staticClass:"total-cell"},[e._v(e._s(t.total))])],2)})),e.monthlyStats.length?e._e():s("tr",[s("td",{staticClass:"empty-cell",attrs:{colspan:e.months.length+2}},[e._v("暂无数据")])])],2)])])]),s("div",{staticClass:"panel"},[s("div",{staticClass:"panel-title"},[e._v("人员负载与交叉分布")]),s("div",{staticClass:"table-scroll table-scroll-y limit-rows-8"},[s("table",{staticClass:"data-table"},[e._m(0),s("tbody",[e._l(e.memberAnalysis,(function(t){return s("tr",{key:t.name},[s("td",[e._v(e._s(t.name))]),s("td",[e._v(e._s(t.total))]),s("td",[e._v(e._s(t.month))]),s("td",[e._v(e._s(t.location))]),s("td",[e._v(e._s(t.tag))])])})),e.memberAnalysis.length?e._e():s("tr",[s("td",{staticClass:"empty-cell",attrs:{colspan:"5"}},[e._v("暂无数据")])])],2)])])]),s("div",{staticClass:"panel"},[s("div",{staticClass:"table-scroll"},[s("table",{staticClass:"plan-table"},[s("thead",[s("tr",[s("th",[e._v("体系")]),s("th",[e._v("课程")]),e._l(e.planMonths,(function(t){return s("th",{key:t},[e._v(e._s(t))])}))],2)]),s("tbody",[e._l(e.planRows,(function(t){return s("tr",{key:t.rowKey},[t.showGroup?s("td",{class:["group-cell",t.groupClass],attrs:{rowspan:t.groupSpan}},[e._v(" "+e._s(t.group)+" ")]):e._e(),s("td",{class:["course-cell",t.groupClass]},[e._v(e._s(t.course))]),e._l(e.planMonths,(function(r){return s("td",{key:t.rowKey+r,staticClass:"plan-month-cell",on:{click:function(s){return e.handlePlanCellClick(t,r,t.plan[r])}}},[t.plan[r]&&t.plan[r].length?s("div",{staticClass:"plan-chip-list"},e._l(t.plan[r],(function(t){return s("div",{key:t.id,staticClass:"plan-chip"},[s("div",[e._v(e._s(t.title))]),s("div",[e._v(e._s(t.ownerLocation))]),s("div",[e._v(e._s(t.countText))])])})),0):e._e()])}))],2)})),e.planRows.length?e._e():s("tr",[s("td",{staticClass:"empty-cell",attrs:{colspan:e.planMonths.length+2}},[e._v("暂无数据")])])],2)])])]),s("el-dialog",{attrs:{title:"体系课程管理",visible:e.systemCourseDialogVisible,width:"58%","custom-class":"overview-dialog"},on:{"update:visible":function(t){e.systemCourseDialogVisible=t}}},[s("div",{staticClass:"tree-manager"},[s("div",{staticClass:"tree-panel"},[s("div",{staticClass:"manager-toolbar"},[s("div",{staticClass:"manager-title"},[e._v("体系课程树")]),s("div",{staticClass:"manager-actions"},[s("el-button",{attrs:{size:"small",type:"primary"},on:{click:function(t){return e.openSystemForm("add")}}},[e._v("新增体系")]),s("el-button",{attrs:{size:"small",disabled:!e.selectedSystem},on:{click:function(t){return e.openCourseForm("add")}}},[e._v("新增课程")])],1)]),s("div",{staticClass:"tree-wrap"},[s("el-tree",{ref:"systemCourseTree",attrs:{data:e.systemCourseTreeData,"node-key":"treeKey","highlight-current":"","default-expand-all":"","expand-on-click-node":!1},on:{"node-click":e.handleTreeNodeSelect},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.data;return s("div",{staticClass:"tree-node"},[s("div",{staticClass:"tree-node-main"},[s("span",{class:["tree-node-tag","system"===r.nodeType?"system-tag":"course-tag"]},[e._v(" "+e._s("system"===r.nodeType?"体系":"课程")+" ")]),s("span",{staticClass:"tree-node-label"},[e._v(e._s(r.name))])]),s("div",{staticClass:"tree-node-actions"},["system"===r.nodeType?s("el-button",{attrs:{type:"text",size:"mini"},on:{click:function(t){return t.stopPropagation(),e.openCourseForm("add",null,r.raw)}}},[e._v(" 新增课程 ")]):e._e(),s("el-button",{attrs:{type:"text",size:"mini"},on:{click:function(t){t.stopPropagation(),"system"===r.nodeType?e.openSystemForm("edit",r.raw):e.openCourseForm("edit",r.raw)}}},[e._v(" 编辑 ")]),s("el-button",{staticClass:"danger-text",attrs:{type:"text",size:"mini"},on:{click:function(t){t.stopPropagation(),"system"===r.nodeType?e.handleDeleteSystem(r.raw):e.handleDeleteCourse(r.raw)}}},[e._v(" 删除 ")])],1)])}}])})],1)]),s("div",{staticClass:"tree-detail-panel"},[s("div",{staticClass:"manager-toolbar"},[s("div",{staticClass:"manager-title"},[e._v("节点信息")]),s("div",{staticClass:"manager-actions"},[s("span",{staticClass:"selected-tip"},[e._v(e._s(e.selectedTreeNode?e.selectedTreeNode.name:"请在左侧选择节点"))])])]),e.selectedTreeNode?s("div",{staticClass:"node-detail-card"},[s("div",{staticClass:"node-detail-row"},[s("span",{staticClass:"node-detail-label"},[e._v("类型")]),s("span",{staticClass:"node-detail-value"},[e._v(e._s("system"===e.selectedTreeNode.nodeType?"体系":"课程"))])]),s("div",{staticClass:"node-detail-row"},[s("span",{staticClass:"node-detail-label"},[e._v("名称")]),s("span",{staticClass:"node-detail-value"},[e._v(e._s(e.selectedTreeNode.name))])]),s("div",{staticClass:"node-detail-row"},[s("span",{staticClass:"node-detail-label"},[e._v("年份")]),s("span",{staticClass:"node-detail-value"},[e._v(e._s(e.selectedTreeNode.year))])]),s("div",{staticClass:"node-detail-row"},[s("span",{staticClass:"node-detail-label"},[e._v("排序")]),s("span",{staticClass:"node-detail-value"},[e._v(e._s(e.selectedTreeNode.sort))])]),"course"===e.selectedTreeNode.nodeType?s("div",{staticClass:"node-detail-row"},[s("span",{staticClass:"node-detail-label"},[e._v("所属体系")]),s("span",{staticClass:"node-detail-value"},[e._v(e._s(e.selectedTreeNode.systemName))])]):e._e(),s("div",{staticClass:"node-detail-actions"},["system"===e.selectedTreeNode.nodeType?s("el-button",{attrs:{size:"small",type:"primary"},on:{click:function(t){return e.openCourseForm("add",null,e.selectedTreeNode.raw)}}},[e._v(" 新增课程 ")]):e._e(),s("el-button",{attrs:{size:"small"},on:{click:function(t){"system"===e.selectedTreeNode.nodeType?e.openSystemForm("edit",e.selectedTreeNode.raw):e.openCourseForm("edit",e.selectedTreeNode.raw)}}},[e._v(" 编辑 ")]),s("el-button",{attrs:{size:"small",type:"danger",plain:""},on:{click:function(t){"system"===e.selectedTreeNode.nodeType?e.handleDeleteSystem(e.selectedTreeNode.raw):e.handleDeleteCourse(e.selectedTreeNode.raw)}}},[e._v(" 删除 ")])],1)]):s("div",{staticClass:"tree-empty-state"},[e._v(" 请在左侧树中选择体系或课程 ")])])])]),s("el-dialog",{attrs:{title:"编排管理",visible:e.scheduleManagerDialogVisible,width:"68%","custom-class":"overview-dialog"},on:{"update:visible":function(t){e.scheduleManagerDialogVisible=t}}},[s("div",{staticClass:"manager-toolbar"},[s("div",{staticClass:"manager-title"},[e._v("编排列表")]),s("div",{staticClass:"manager-actions"},[s("el-button",{attrs:{size:"small",type:"primary"},on:{click:function(t){return e.openScheduleForm("add")}}},[e._v("新增编排")])],1)]),s("el-table",{attrs:{data:e.scheduleTableRows,border:""}},[s("el-table-column",{attrs:{prop:"systemName",label:"体系","min-width":"140"}}),s("el-table-column",{attrs:{prop:"courseName",label:"课程","min-width":"160"}}),s("el-table-column",{attrs:{prop:"title",label:"编排标题","min-width":"180"}}),s("el-table-column",{attrs:{prop:"monthLabel",label:"月份",width:"90",align:"center"}}),s("el-table-column",{attrs:{prop:"location",label:"地点","min-width":"120"}}),s("el-table-column",{attrs:{prop:"owner",label:"负责人","min-width":"120"}}),s("el-table-column",{attrs:{prop:"count_text",label:"显示说明","min-width":"160"}}),s("el-table-column",{attrs:{label:"操作",width:"160",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){return[s("el-button",{attrs:{type:"text",size:"small"},on:{click:function(s){return e.openScheduleForm("edit",t.row)}}},[e._v("编辑")]),s("el-button",{staticClass:"danger-text",attrs:{type:"text",size:"small"},on:{click:function(s){return e.handleDeleteSchedule(t.row)}}},[e._v("删除")])]}}])})],1)],1),s("el-dialog",{attrs:{title:"add"===e.systemFormMode?"新增体系":"编辑体系",visible:e.systemFormVisible,width:"520px","append-to-body":""},on:{"update:visible":function(t){e.systemFormVisible=t}}},[s("el-form",{ref:"systemFormRef",attrs:{model:e.systemForm,rules:e.systemRules,"label-width":"88px"}},[s("el-form-item",{attrs:{label:"年份",prop:"year"}},[s("el-date-picker",{staticStyle:{width:"100%"},attrs:{type:"year","value-format":"yyyy",format:"yyyy",placeholder:"请选择年份"},model:{value:e.systemForm.year,callback:function(t){e.$set(e.systemForm,"year",t)},expression:"systemForm.year"}})],1),s("el-form-item",{attrs:{label:"体系名称",prop:"name"}},[s("el-input",{attrs:{placeholder:"请输入体系名称"},model:{value:e.systemForm.name,callback:function(t){e.$set(e.systemForm,"name",t)},expression:"systemForm.name"}})],1),s("el-form-item",{attrs:{label:"排序",prop:"sort"}},[s("el-input-number",{staticStyle:{width:"100%"},attrs:{min:1,max:999},model:{value:e.systemForm.sort,callback:function(t){e.$set(e.systemForm,"sort",t)},expression:"systemForm.sort"}})],1)],1),s("span",{attrs:{slot:"footer"},slot:"footer"},[s("el-button",{on:{click:function(t){e.systemFormVisible=!1}}},[e._v("取消")]),s("el-button",{attrs:{type:"primary"},on:{click:e.submitSystemForm}},[e._v("保存")])],1)],1),s("el-dialog",{attrs:{title:"add"===e.courseFormMode?"新增课程":"编辑课程",visible:e.courseFormVisible,width:"520px","append-to-body":""},on:{"update:visible":function(t){e.courseFormVisible=t}}},[s("el-form",{ref:"courseFormRef",attrs:{model:e.courseForm,rules:e.courseRules,"label-width":"88px"}},[s("el-form-item",{attrs:{label:"所属体系",prop:"system_id"}},[s("el-select",{staticStyle:{width:"100%"},attrs:{filterable:"",placeholder:"请选择体系"},model:{value:e.courseForm.system_id,callback:function(t){e.$set(e.courseForm,"system_id",t)},expression:"courseForm.system_id"}},e._l(e.systems,(function(e){return s("el-option",{key:e.id,attrs:{label:e.name,value:e.id}})})),1)],1),s("el-form-item",{attrs:{label:"课程名称",prop:"name"}},[s("el-input",{attrs:{placeholder:"请输入课程名称"},model:{value:e.courseForm.name,callback:function(t){e.$set(e.courseForm,"name",t)},expression:"courseForm.name"}})],1),s("el-form-item",{attrs:{label:"排序",prop:"sort"}},[s("el-input-number",{staticStyle:{width:"100%"},attrs:{min:1,max:999},model:{value:e.courseForm.sort,callback:function(t){e.$set(e.courseForm,"sort",t)},expression:"courseForm.sort"}})],1)],1),s("span",{attrs:{slot:"footer"},slot:"footer"},[s("el-button",{on:{click:function(t){e.courseFormVisible=!1}}},[e._v("取消")]),s("el-button",{attrs:{type:"primary"},on:{click:e.submitCourseForm}},[e._v("保存")])],1)],1),s("el-dialog",{attrs:{title:"add"===e.scheduleFormMode?"新增编排":"编辑编排",visible:e.scheduleFormVisible,width:"620px","append-to-body":""},on:{"update:visible":function(t){e.scheduleFormVisible=t}}},[s("el-form",{ref:"scheduleFormRef",attrs:{model:e.scheduleForm,rules:e.scheduleRules,"label-width":"88px"}},[s("el-form-item",{attrs:{label:"年份",prop:"year"}},[s("el-date-picker",{staticStyle:{width:"100%"},attrs:{type:"year","value-format":"yyyy",format:"yyyy",placeholder:"请选择年份"},on:{change:e.handleScheduleYearChange},model:{value:e.scheduleForm.year,callback:function(t){e.$set(e.scheduleForm,"year",t)},expression:"scheduleForm.year"}})],1),s("el-form-item",{attrs:{label:"体系",prop:"system_id"}},[s("el-select",{staticStyle:{width:"100%"},attrs:{filterable:"",placeholder:"请选择体系"},on:{change:e.handleScheduleSystemChange},model:{value:e.scheduleForm.system_id,callback:function(t){e.$set(e.scheduleForm,"system_id",t)},expression:"scheduleForm.system_id"}},e._l(e.scheduleFormSystems,(function(e){return s("el-option",{key:e.id,attrs:{label:e.name,value:e.id}})})),1)],1),s("el-form-item",{attrs:{label:"课程",prop:"course_id"}},[s("el-select",{staticStyle:{width:"100%"},attrs:{filterable:"",placeholder:"请选择课程"},model:{value:e.scheduleForm.course_id,callback:function(t){e.$set(e.scheduleForm,"course_id",t)},expression:"scheduleForm.course_id"}},e._l(e.scheduleFormCourseOptions,(function(e){return s("el-option",{key:e.id,attrs:{label:e.name,value:e.id}})})),1)],1),s("el-form-item",{attrs:{label:"月份",prop:"month"}},[s("el-select",{staticStyle:{width:"100%"},attrs:{multiple:"add"===e.scheduleFormMode,placeholder:"请选择月份"},model:{value:e.scheduleForm.month,callback:function(t){e.$set(e.scheduleForm,"month",t)},expression:"scheduleForm.month"}},e._l(e.monthOptions,(function(e){return s("el-option",{key:e.value,attrs:{label:e.label,value:e.value}})})),1)],1),s("el-form-item",{attrs:{label:"编排标题",prop:"title"}},[s("el-input",{attrs:{placeholder:"请输入编排标题"},model:{value:e.scheduleForm.title,callback:function(t){e.$set(e.scheduleForm,"title",t)},expression:"scheduleForm.title"}})],1),s("el-form-item",{attrs:{label:"负责人",prop:"owner"}},[s("el-input",{attrs:{placeholder:"请输入负责人"},model:{value:e.scheduleForm.owner,callback:function(t){e.$set(e.scheduleForm,"owner",t)},expression:"scheduleForm.owner"}})],1),s("el-form-item",{attrs:{label:"地点",prop:"location"}},[s("el-input",{attrs:{placeholder:"请输入地点"},model:{value:e.scheduleForm.location,callback:function(t){e.$set(e.scheduleForm,"location",t)},expression:"scheduleForm.location"}})],1),s("el-form-item",{attrs:{label:"显示说明",prop:"count_text"}},[s("el-input",{attrs:{placeholder:"例如:招募 42人"},model:{value:e.scheduleForm.count_text,callback:function(t){e.$set(e.scheduleForm,"count_text",t)},expression:"scheduleForm.count_text"}})],1)],1),s("span",{attrs:{slot:"footer"},slot:"footer"},["edit"===e.scheduleFormMode&&e.scheduleForm.id?s("el-button",{attrs:{type:"danger",plain:""},on:{click:function(t){return e.handleDeleteSchedule(e.scheduleForm)}}},[e._v(" 删除 ")]):e._e(),s("el-button",{on:{click:e.handleScheduleDialogCancel}},[e._v("取消")]),s("el-button",{attrs:{type:"primary"},on:{click:e.submitScheduleForm}},[e._v("保存")])],1)],1)],1)},n=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("thead",[s("tr",[s("th",[e._v("人员")]),s("th",[e._v("总次数")]),s("th",[e._v("峰值月")]),s("th",[e._v("主战场地")]),s("th",[e._v("主战体系")])])])}],a=s("c14f"),o=s("1da1"),l=s("5530"),i=s("2909"),c=(s("99af"),s("cb29"),s("4de4"),s("7db0"),s("a630"),s("d81d"),s("13d5"),s("4e82"),s("b0c0"),s("a9e3"),s("b64b"),s("d3b7"),s("07ac"),s("ac1f"),s("6062"),s("3ca3"),s("5319"),s("0643"),s("2382"),s("fffc"),s("4e3e"),s("a573"),s("9d4a"),s("9a9a"),s("159b"),s("ddb0"),s("b775"));function u(e){return Object(c["a"])({method:"get",url:"/api/admin/schedule-overview/overview",params:e})}function d(e){return Object(c["a"])({method:"post",url:"/api/admin/schedule-overview/systems/save",data:e})}function m(e){return Object(c["a"])({method:"get",url:"/api/admin/schedule-overview/systems/destroy",params:e})}function h(e){return Object(c["a"])({method:"post",url:"/api/admin/schedule-overview/courses/save",data:e})}function y(e){return Object(c["a"])({method:"get",url:"/api/admin/schedule-overview/courses/destroy",params:e})}function f(e){return Object(c["a"])({method:"post",url:"/api/admin/schedule-overview/schedules/save",data:e})}function p(e){return Object(c["a"])({method:"get",url:"/api/admin/schedule-overview/schedules/destroy",params:e})}var v=function(){return String((new Date).getFullYear())},b=function(){return{id:"",year:v(),name:"",sort:1}},g=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return{id:"",system_id:e||"",name:"",sort:1}},_=function(){return{id:"",year:v(),system_id:"",course_id:"",month:[],title:"",owner:"",location:"",count_text:""}},C=["tone-green","tone-blue","tone-purple","tone-sand","tone-cyan","tone-cream"],F={name:"ScheduleOverview",data:function(){return{systems:[],courses:[],schedules:[],months:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],planMonths:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],monthOptions:Array.from({length:12},(function(e,t){return{value:t+1,label:"".concat(t+1,"月")}})),selectedSystemId:"",selectedTreeNodeKey:"",scheduleFormSystems:[],scheduleFormCourses:[],systemCourseDialogVisible:!1,scheduleManagerDialogVisible:!1,systemFormVisible:!1,courseFormVisible:!1,scheduleFormVisible:!1,systemFormMode:"add",courseFormMode:"add",scheduleFormMode:"add",systemForm:b(),courseForm:g(),scheduleForm:_(),systemRules:{year:[{required:!0,message:"请选择年份",trigger:"change"}],name:[{required:!0,message:"请输入体系名称",trigger:"blur"}],sort:[{required:!0,message:"请输入排序",trigger:"change"}]},courseRules:{system_id:[{required:!0,message:"请选择所属体系",trigger:"change"}],name:[{required:!0,message:"请输入课程名称",trigger:"blur"}],sort:[{required:!0,message:"请输入排序",trigger:"change"}]},scheduleRules:{year:[{required:!0,message:"请选择年份",trigger:"change"}],system_id:[{required:!0,message:"请选择体系",trigger:"change"}],course_id:[{required:!0,message:"请选择课程",trigger:"change"}],month:[{trigger:"change",validator:function(e,t,s){if(Array.isArray(t)){if(!t.length)return void s(new Error("请选择月份"))}else if(!t)return void s(new Error("请选择月份"));s()}}],title:[{required:!0,message:"请输入编排标题",trigger:"blur"}],owner:[{required:!0,message:"请输入负责人",trigger:"blur"}],location:[{required:!0,message:"请输入地点",trigger:"blur"}]},currentYear:v()}},computed:{selectedSystem:function(){var e=this;return this.systems.find((function(t){return String(t.id)===String(e.selectedSystemId)}))||null},selectedTreeNode:function(){var e=String(this.selectedTreeNodeKey||"");if(!e)return null;if(0===e.indexOf("system-")){var t=e.replace("system-",""),s=this.systems.find((function(e){return String(e.id)===String(t)}));return s?{treeKey:e,nodeType:"system",name:s.name,year:s.year,sort:s.sort,raw:s}:null}if(0===e.indexOf("course-")){var r=e.replace("course-",""),n=this.courses.find((function(e){return String(e.id)===String(r)})),a=n?this.systemMap[n.system_id]:null;return n?{treeKey:e,nodeType:"course",name:n.name,year:a?a.year:"-",sort:n.sort,systemName:a?a.name:"-",raw:n}:null}return null},selectedSystemCourses:function(){var e=this;return this.courses.filter((function(t){return String(t.system_id)===String(e.selectedSystemId)}))},systemCourseTreeData:function(){var e=this;return this.systems.map((function(t){return{treeKey:"system-".concat(t.id),id:t.id,year:t.year,name:t.name,sort:t.sort,nodeType:"system",raw:t,children:e.courses.filter((function(e){return String(e.system_id)===String(t.id)})).sort((function(e,t){return Number(e.sort||0)-Number(t.sort||0)})).map((function(e){return{treeKey:"course-".concat(e.id),id:e.id,name:e.name,sort:e.sort,nodeType:"course",systemName:t.name,raw:e}}))}}))},scheduleFormCourseOptions:function(){var e=this;return this.scheduleFormCourses.filter((function(t){return String(t.system_id)===String(e.scheduleForm.system_id)}))},summaryCards:function(){var e=this.schedules.length,t=Object(i["a"])(new Set(this.schedules.map((function(e){return e.owner})).filter(Boolean))),s=Object(i["a"])(new Set(this.schedules.map((function(e){return Number(e.month)})).filter(Boolean))),r=this.buildCounter(this.schedules,(function(e){return"".concat(e.month,"月")})),n=this.buildCounter(this.schedules,(function(e){return e.owner||"未分配"})),a=this.getTopCounterEntry(r),o=this.getTopCounterEntry(n);return[{label:"总开班次数(周期)",value:String(e),unit:"次"},{label:"参与人员",value:String(t.length),unit:"人"},{label:"活跃月度",value:String(s.length),unit:"个月"},{label:"峰值月度",value:a?"".concat(a.label,"/").concat(a.value):"-",unit:a?"次":""},{label:"峰值人员",value:o?"".concat(o.label,"/").concat(o.value):"-",unit:o?"次":""}]},monthlyStats:function(){var e={};return this.schedules.forEach((function(t){var s=t.owner||"未分配";e[s]||(e[s]={name:s,months:Array(12).fill(0),total:0});var r=Number(t.month)-1;r>=0&&r<12&&(e[s].months[r]+=1,e[s].total+=1)})),Object.values(e).sort((function(e,t){return t.total!==e.total?t.total-e.total:e.name.localeCompare(t.name,"zh-CN")}))},memberAnalysis:function(){var e=this,t=this.systemMap,s={};return this.schedules.forEach((function(r){var n=r.owner||"未分配";s[n]||(s[n]={total:0,monthCounter:{},locationCounter:{},systemCounter:{}}),s[n].total+=1,e.incrementCounter(s[n].monthCounter,"".concat(r.month,"月")),e.incrementCounter(s[n].locationCounter,r.location||"-"),e.incrementCounter(s[n].systemCounter,(t[r.system_id]||{}).name||"-")})),Object.keys(s).map((function(t){var r,n,a;return{name:t,total:"".concat(s[t].total,"次"),month:(null===(r=e.getTopCounterEntry(s[t].monthCounter))||void 0===r?void 0:r.label)||"-",location:(null===(n=e.getTopCounterEntry(s[t].locationCounter))||void 0===n?void 0:n.label)||"-",tag:(null===(a=e.getTopCounterEntry(s[t].systemCounter))||void 0===a?void 0:a.label)||"-"}})).sort((function(e,t){return Number(t.total.replace("次",""))-Number(e.total.replace("次",""))}))},scheduleCountRows:function(){var e=this.buildCounter(this.schedules,(function(e){return e.location||"-"}));return this.counterToRows(e)},courseTypeCountRows:function(){var e=this,t=this.buildCounter(this.schedules,(function(t){var s=e.systemMap[t.system_id];return s?s.name:"-"}));return this.counterToRows(t)},systemMap:function(){return this.systems.reduce((function(e,t){return e[t.id]=t,e}),{})},courseMap:function(){return this.courses.reduce((function(e,t){return e[t.id]=t,e}),{})},scheduleTableRows:function(){var e=this;return this.schedules.map((function(t){return Object(l["a"])(Object(l["a"])({},t),{},{systemName:(e.systemMap[t.system_id]||{}).name||"-",courseName:(e.courseMap[t.course_id]||{}).name||"-",monthLabel:"".concat(t.month,"月")})})).sort((function(e,t){var s=Number(e.month)-Number(t.month);return 0!==s?s:String(e.title||"").localeCompare(String(t.title||""),"zh-CN")}))},planRows:function(){var e=this,t=[],s=Object(i["a"])(this.systems).sort((function(e,t){return Number(e.sort||0)-Number(t.sort||0)}));return s.forEach((function(s,r){var n=e.courses.filter((function(e){return String(e.system_id)===String(s.id)})).sort((function(e,t){return Number(e.sort||0)-Number(t.sort||0)})),a=n.length?n:[{id:"empty-".concat(s.id),name:"未配置课程",system_id:s.id}],o=C[r%C.length];a.forEach((function(r,n){var l=e.schedules.filter((function(e){return String(e.course_id)===String(r.id)})),i=e.planMonths.reduce((function(e,t){var s=Number(t.replace("月",""));return e[t]=l.filter((function(e){return Number(e.month)===s})).sort((function(e,t){return String(e.title||"").localeCompare(String(t.title||""),"zh-CN")})).map((function(e){return{id:e.id,year:e.year,system_id:e.system_id,course_id:e.course_id,month:e.month,title:e.title,owner:e.owner,location:e.location,count_text:e.count_text,ownerLocation:"".concat(e.owner||"-"," / ").concat(e.location||"-"),countText:e.count_text||"-"}})),e}),{});t.push({rowKey:"".concat(s.id,"-").concat(r.id),systemId:s.id,group:s.name,groupClass:o,groupSpan:a.length,showGroup:0===n,courseId:r.id,course:r.name,plan:i})}))})),t}},created:function(){this.loadData()},methods:{loadData:function(){var e=this;return Object(o["a"])(Object(a["a"])().m((function t(){var s;return Object(a["a"])().w((function(t){while(1)switch(t.n){case 0:return t.n=1,u({year:e.currentYear});case 1:s=t.v,e.systems=s.systems||[],e.courses=s.courses||[],e.schedules=s.schedules||[],e.selectedSystemId&&e.systems.find((function(t){return String(t.id)===String(e.selectedSystemId)}))||(e.selectedSystemId=e.systems[0]?e.systems[0].id:""),e.syncSelectedTreeNode();case 2:return t.a(2)}}),t)})))()},loadScheduleFormOptions:function(e){var t=this;return Object(o["a"])(Object(a["a"])().m((function s(){var r;return Object(a["a"])().w((function(s){while(1)switch(s.n){case 0:return s.n=1,u({year:e||t.currentYear});case 1:r=s.v,t.scheduleFormSystems=r.systems||[],t.scheduleFormCourses=r.courses||[];case 2:return s.a(2)}}),s)})))()},buildCounter:function(e,t){var s=this;return e.reduce((function(e,r){var n=t(r);return s.incrementCounter(e,n),e}),{})},incrementCounter:function(e,t){var s=t||"-";e[s]=(e[s]||0)+1},getTopCounterEntry:function(e){return Object.keys(e||{}).map((function(t){return{label:t,value:e[t]}})).sort((function(e,t){return t.value!==e.value?t.value-e.value:e.label.localeCompare(t.label,"zh-CN")}))[0]},counterToRows:function(e){return Object.keys(e||{}).map((function(t){return{label:t,value:"".concat(e[t],"次")}})).sort((function(e,t){var s=Number(t.value.replace("次",""))-Number(e.value.replace("次",""));return 0!==s?s:e.label.localeCompare(t.label,"zh-CN")}))},heatClass:function(e){return e?e>=4?"heat-level-4":e>=3?"heat-level-3":e>=2?"heat-level-2":"heat-level-1":"heat-empty"},openSystemCourseManager:function(){var e=this;this.systemCourseDialogVisible=!0,!this.selectedSystemId&&this.systems[0]&&(this.selectedSystemId=this.systems[0].id),!this.selectedTreeNodeKey&&this.selectedSystemId&&(this.selectedTreeNodeKey="system-".concat(this.selectedSystemId)),this.$nextTick((function(){e.$refs.systemCourseTree&&e.selectedTreeNodeKey&&e.$refs.systemCourseTree.setCurrentKey(e.selectedTreeNodeKey)}))},openScheduleManager:function(){this.scheduleManagerDialogVisible=!0},handleYearChange:function(e){this.currentYear=e||v(),this.loadData()},openSystemForm:function(e,t){var s=this;this.systemFormMode=e,this.systemForm=t?{id:t.id,year:t.year||this.currentYear,name:t.name,sort:t.sort}:Object(l["a"])(Object(l["a"])({},b()),{},{year:this.currentYear}),this.systemFormVisible=!0,this.$nextTick((function(){s.$refs.systemFormRef&&s.$refs.systemFormRef.clearValidate()}))},submitSystemForm:function(){var e=this;this.$refs.systemFormRef.validate(function(){var t=Object(o["a"])(Object(a["a"])().m((function t(s){return Object(a["a"])().w((function(t){while(1)switch(t.n){case 0:if(s){t.n=1;break}return t.a(2);case 1:return t.n=2,d(e.systemForm);case 2:return t.n=3,e.loadData();case 3:e.systemForm.id&&(e.selectedTreeNodeKey="system-".concat(e.systemForm.id)),!e.selectedSystemId&&e.systems[0]&&(e.selectedSystemId=e.systems[0].id),!e.systemForm.id&&e.selectedSystemId&&(e.selectedTreeNodeKey="system-".concat(e.selectedSystemId)),e.systemFormVisible=!1,e.$message.success("体系保存成功");case 4:return t.a(2)}}),t)})));return function(e){return t.apply(this,arguments)}}())},handleDeleteSystem:function(e){var t=this;this.$confirm("删除体系“".concat(e.name,"”后,其下课程和编排也会一并删除,是否继续?"),"提示",{type:"warning"}).then(Object(o["a"])(Object(a["a"])().m((function s(){return Object(a["a"])().w((function(s){while(1)switch(s.n){case 0:return s.n=1,m({id:e.id});case 1:return s.n=2,t.loadData();case 2:t.selectedTreeNodeKey=t.selectedSystemId?"system-".concat(t.selectedSystemId):"",t.$message.success("体系删除成功");case 3:return s.a(2)}}),s)})))).catch((function(){}))},openCourseForm:function(e,t,s){var r=this;this.courseFormMode=e,this.courseForm=t?{id:t.id,system_id:t.system_id,name:t.name,sort:t.sort}:g(s?s.id:this.selectedSystemId),this.courseFormVisible=!0,this.$nextTick((function(){r.$refs.courseFormRef&&r.$refs.courseFormRef.clearValidate()}))},submitCourseForm:function(){var e=this;this.$refs.courseFormRef.validate(function(){var t=Object(o["a"])(Object(a["a"])().m((function t(s){return Object(a["a"])().w((function(t){while(1)switch(t.n){case 0:if(s){t.n=1;break}return t.a(2);case 1:return t.n=2,h(e.courseForm);case 2:return t.n=3,e.loadData();case 3:e.selectedSystemId=e.courseForm.system_id,e.courseForm.id&&(e.selectedTreeNodeKey="course-".concat(e.courseForm.id)),e.courseFormVisible=!1,e.$message.success("课程保存成功");case 4:return t.a(2)}}),t)})));return function(e){return t.apply(this,arguments)}}())},handleDeleteCourse:function(e){var t=this;this.$confirm("删除课程“".concat(e.name,"”后,其下编排也会一并删除,是否继续?"),"提示",{type:"warning"}).then(Object(o["a"])(Object(a["a"])().m((function s(){return Object(a["a"])().w((function(s){while(1)switch(s.n){case 0:return s.n=1,y({id:e.id});case 1:return s.n=2,t.loadData();case 2:t.selectedTreeNodeKey=t.selectedSystemId?"system-".concat(t.selectedSystemId):"",t.$message.success("课程删除成功");case 3:return s.a(2)}}),s)})))).catch((function(){}))},handleTreeNodeSelect:function(e){this.selectedTreeNodeKey=e.treeKey,"system"===e.nodeType?this.selectedSystemId=e.id:e.raw&&e.raw.system_id&&(this.selectedSystemId=e.raw.system_id)},syncSelectedTreeNode:function(){var e=this,t=this.systemCourseTreeData.some((function(t){return t.treeKey===e.selectedTreeNodeKey||(t.children||[]).some((function(t){return t.treeKey===e.selectedTreeNodeKey}))}));t||(this.selectedTreeNodeKey=this.selectedSystemId?"system-".concat(this.selectedSystemId):this.systemCourseTreeData[0]?this.systemCourseTreeData[0].treeKey:""),this.$nextTick((function(){e.$refs.systemCourseTree&&e.selectedTreeNodeKey&&e.$refs.systemCourseTree.setCurrentKey(e.selectedTreeNodeKey)}))},openScheduleForm:function(e,t){var s=arguments,r=this;return Object(o["a"])(Object(a["a"])().m((function n(){var o,i,c,u;return Object(a["a"])().w((function(n){while(1)switch(n.n){case 0:if(o=s.length>2&&void 0!==s[2]?s[2]:{},r.scheduleFormMode=e,!t){n.n=2;break}return r.scheduleForm={id:t.id,year:t.year||v(),system_id:t.system_id,course_id:t.course_id,month:t.month,title:t.title,owner:t.owner,location:t.location,count_text:t.count_text},n.n=1,r.loadScheduleFormOptions(r.scheduleForm.year);case 1:n.n=4;break;case 2:return i=o.year||r.currentYear,n.n=3,r.loadScheduleFormOptions(i);case 3:c=o.system_id||r.selectedSystemId||(r.scheduleFormSystems[0]?r.scheduleFormSystems[0].id:""),u=r.scheduleFormCourses.find((function(e){return String(e.system_id)===String(c)})),r.scheduleForm=Object(l["a"])(Object(l["a"])({},_()),{},{year:i,system_id:c,month:o.month?[o.month]:[],course_id:o.course_id||(u?u.id:"")});case 4:r.scheduleFormVisible=!0,r.$nextTick((function(){r.$refs.scheduleFormRef&&r.$refs.scheduleFormRef.clearValidate()}));case 5:return n.a(2)}}),n)})))()},handlePlanCellClick:function(e,t,s){if(s&&s.length)this.openScheduleForm("edit",s[0]);else{var r=Number(String(t).replace("月",""));this.openScheduleForm("add",null,{year:this.currentYear,system_id:e.systemId,course_id:e.courseId,month:r})}},handleScheduleYearChange:function(e){var t=this;return Object(o["a"])(Object(a["a"])().m((function s(){var r,n,o;return Object(a["a"])().w((function(s){while(1)switch(s.n){case 0:return r=e||v(),t.scheduleForm.year=r,s.n=1,t.loadScheduleFormOptions(r);case 1:n=t.scheduleFormSystems[0],o=t.scheduleFormCourses.find((function(e){return n&&String(e.system_id)===String(n.id)})),t.scheduleForm.system_id=n?n.id:"",t.scheduleForm.course_id=o?o.id:"",t.scheduleForm.month=[];case 2:return s.a(2)}}),s)})))()},handleScheduleSystemChange:function(e){var t=this,s=this.scheduleFormCourses.find((function(s){return String(s.id)===String(t.scheduleForm.course_id)&&String(s.system_id)===String(e)}));if(!s){var r=this.scheduleFormCourses.find((function(t){return String(t.system_id)===String(e)}));this.scheduleForm.course_id=r?r.id:""}},refreshAfterScheduleAction:function(e){var t=this;return Object(o["a"])(Object(a["a"])().m((function s(){return Object(a["a"])().w((function(s){while(1)switch(s.n){case 0:return t.scheduleFormVisible=!1,s.n=1,t.loadData();case 1:e&&t.$message.success(e);case 2:return s.a(2)}}),s)})))()},handleScheduleDialogCancel:function(){this.scheduleFormVisible=!1,this.loadData()},submitScheduleForm:function(){var e=this;this.$refs.scheduleFormRef.validate(function(){var t=Object(o["a"])(Object(a["a"])().m((function t(s){return Object(a["a"])().w((function(t){while(1)switch(t.n){case 0:if(s){t.n=1;break}return t.a(2);case 1:return t.n=2,f(e.scheduleForm);case 2:return t.n=3,e.refreshAfterScheduleAction("编排保存成功");case 3:return t.a(2)}}),t)})));return function(e){return t.apply(this,arguments)}}())},handleDeleteSchedule:function(e){var t=this;this.$confirm("确定删除编排“".concat(e.title,"”吗?"),"提示",{type:"warning"}).then(Object(o["a"])(Object(a["a"])().m((function s(){return Object(a["a"])().w((function(s){while(1)switch(s.n){case 0:return s.n=1,p({id:e.id});case 1:return s.n=2,t.refreshAfterScheduleAction("编排删除成功");case 2:return s.a(2)}}),s)})))).catch((function(){}))}}},w=F,S=(s("0258"),s("2877")),T=Object(S["a"])(w,r,n,!1,null,"4b04ee22",null);t["default"]=T.exports},"5bd1":function(e,t,s){},6062:function(e,t,s){"use strict";var r=s("6d61"),n=s("6566");e.exports=r("Set",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),n)},"6f53":function(e,t,s){var r=s("83ab"),n=s("df75"),a=s("fc6a"),o=s("d1e7").f,l=function(e){return function(t){var s,l=a(t),i=n(l),c=i.length,u=0,d=[];while(c>u)s=i[u++],r&&!o.call(l,s)||d.push(e?[s,l[s]]:l[s]);return d}};e.exports={entries:l(!0),values:l(!1)}},"81d5":function(e,t,s){"use strict";var r=s("7b0b"),n=s("23cb"),a=s("50c4");e.exports=function(e){var t=r(this),s=a(t.length),o=arguments.length,l=n(o>1?arguments[1]:void 0,s),i=o>2?arguments[2]:void 0,c=void 0===i?s:n(i,s);while(c>l)t[l++]=e;return t}},"9d4a":function(e,t,s){"use strict";var r=s("23e7"),n=s("2266"),a=s("1c0b"),o=s("825a");r({target:"Iterator",proto:!0,real:!0},{reduce:function(e){o(this),a(e);var t=arguments.length<2,s=t?void 0:arguments[1];if(n(this,(function(r){t?(t=!1,s=r):s=e(s,r)}),void 0,!1,!0),t)throw TypeError("Reduce of empty iterator with no initial value");return s}})},cb29:function(e,t,s){var r=s("23e7"),n=s("81d5"),a=s("44d2");r({target:"Array",proto:!0},{fill:n}),a("fill")},d58f:function(e,t,s){var r=s("1c0b"),n=s("7b0b"),a=s("44ad"),o=s("50c4"),l=function(e){return function(t,s,l,i){r(s);var c=n(t),u=a(c),d=o(c.length),m=e?d-1:0,h=e?-1:1;if(l<2)while(1){if(m in u){i=u[m],m+=h;break}if(m+=h,e?m<0:d<=m)throw TypeError("Reduce of empty array with no initial value")}for(;e?m>=0:d>m;m+=h)m in u&&(i=s(i,u[m],m,c));return i}};e.exports={left:l(!1),right:l(!0)}}}]);