@ -1,131 +1,131 @@
< template >
< section class = "padding" >
< el -row class = "padding-left padding-right" >
< xm -product -select class = "hidden-md-and-down" :auto-select ="false" @row-click ="onProductSelected" @clear ="onProductClose" > < / xm -product -select >
< section class = "padding" >
< el -row class = "padding-left padding-right" >
< xm -product -select class = "hidden-md-and-down" :auto-select ="false" @row-click ="onProductSelected" @clear ="onProductClose" > < / xm -product -select >
< el -select v-model ="menukey" @change="handleSelect" clearable style="width:10em;" >
< el -option value = "all" label = "全部" > < / e l - o p t i o n >
< el -option value = "compete" label = "我参与" > < / e l - o p t i o n >
< el -option value = "leader" label = "我管理" > < / e l - o p t i o n >
< el -option value = "leader" label = "我管理" > < / e l - o p t i o n >
< el -option value = "approver" label = "我审核" > < / e l - o p t i o n >
< el -option value = "create" label = "我创建" > < / e l - o p t i o n >
< el -option value = "myFocus" label = "我关注" > < / e l - o p t i o n >
< el -option value = "myExecuserStatus0" label = "我排队" > < / e l - o p t i o n >
< el -option value = "myExecuserStatus1" label = "我执行" > < / e l - o p t i o n >
< el -option value = "myExecuserStatus7" label = "我放弃" > < / e l - o p t i o n >
< / e l - s e l e c t >
< mdp -select label = "项目状态" placeholder = "状态" style = "width:10em;" :dict ="dicts['projectStatus'] " v-model ="filters.status" > < / mdp -select >
< el -option value = "myExecuserStatus1" label = "我执行" > < / e l - o p t i o n >
< el -option value = "myExecuserStatus7" label = "我放弃" > < / e l - o p t i o n >
< / e l - s e l e c t >
< mdp -select label = "项目状态" placeholder = "状态" style = "width:10em;" item -code = " projectStatus " v-model ="filters.status" > < / mdp -select >
< el -input v -model = " filters.key " style = "width:10em;" placeholder = "名称查询" clearable >
< / e l - i n p u t >
< el -button type = "primary" icon = "el-icon-search" @click ="searchXmProjects" > 查询 < / el -button >
< el -button type = "primary" icon = "el-icon-search" @click ="searchXmProjects" > 查询 < / el -button >
< el -popover
placement = "top-start"
title = "更多条件、操作"
width = "600"
trigger = "click" >
trigger = "click" >
< el -descriptions class = "margin-top" size = "mini" :column ="1" border >
< template slot = "extra" >
< template slot = "extra" >
< el -button type = "text" @click ="templateVisible=!templateVisible" > {{ templateVisible ? ' 隐藏模板 ' : ' 显示模板 ' }} < / el -button >
< el -button type = "text" @click ="guiderStart(true)" icon = "el-icon-help" > 新手导航 < / e l - b u t t o n >
< / template >
< / template >
< el -descriptions -item >
< template slot = "label" >
< i class = "el-icon-time" > < / i >
显示方式
< / template >
< / template >
< el -radio v-model ="showType" :label ="false" > 表格 < / el -radio >
< el -radio v-model ="showType" :label ="true" > 卡片 < / el -radio >
< / e l - d e s c r i p t i o n s - i t e m >
< el -radio v-model ="showType" :label ="true" > 卡片 < / el -radio >
< / e l - d e s c r i p t i o n s - i t e m >
< el -descriptions -item >
< template slot = "label" >
< i class = "el-icon-document" > < / i >
选择产品
< / template >
< xm -product -select style = "display:inline;" :auto-select ="false" @row-click ="onProductSelected" @clear ="onProductClose" > < / xm -product -select >
< xm -product -select style = "display:inline;" :auto-select ="false" @row-click ="onProductSelected" @clear ="onProductClose" > < / xm -product -select >
< / e l - d e s c r i p t i o n s - i t e m >
< / e l - d e s c r i p t i o n s - i t e m >
< el -descriptions -item :span ="2" >
< template slot = "label" >
< i class = "el-icon-watch-1" > < / i >
创建时间
< / template >
< mdp -date -range
v - model = "filters"
type = "daterange"
type = "daterange"
start - key = "createTimeStart"
end - key = "createTimeEnd"
unlink - panels
range - separator = "至"
start - placeholder = "开始日期"
end - placeholder = "完成日期"
value - format = "yyyy-MM-dd HH:mm:ss"
: default - time = "['00:00:00', '23:59:59']"
: auto - default = "false"
value - format = "yyyy-MM-dd HH:mm:ss"
: default - time = "['00:00:00', '23:59:59']"
: auto - default = "false"
key = "planEndTime"
> < / m d p - d a t e - r a n g e >
< / e l - d e s c r i p t i o n s - i t e m >
< / e l - d e s c r i p t i o n s - i t e m >
< el -descriptions -item >
< template slot = "label" >
< i class = "el-icon-document" > < / i >
项目编号
< / template >
< el -input v-model ="filters.id" clearable style="width:100%;" > < / el -input >
< / template >
< el -input v-model ="filters.id" clearable style="width:100%;" > < / el -input >
< / e l - d e s c r i p t i o n s - i t e m >
< el -descriptions -item >
< el -button type = "primary" style = "float:right;" @click ="searchXmProjects" icon = "el-icon-search" > 查询 < / e l - b u t t o n >
< el -button type = "primary" style = "float:right;" @click ="searchXmProjects" icon = "el-icon-search" > 查询 < / e l - b u t t o n >
< / e l - d e s c r i p t i o n s - i t e m >
< / e l - d e s c r i p t i o n s >
< el -button slot = "reference" icon = "el-icon-more" id = "prj-more-btn" > < / e l - b u t t o n >
< / e l - p o p o v e r >
< span style = "float:right;" >
< el -popover style = "padding-left:10px;"
< el -popover style = "padding-left:10px;"
placement = "top-start"
width = "450"
trigger = "click" >
< el -row >
width = "450"
trigger = "click" >
< el -row >
< el -row >
< el -badge value = "都适用" >
< el -button @click ="showAdd" icon = "el-icon-plus" > 直接添加新项目 < / e l - b u t t o n >
< el -button @click ="showAdd" icon = "el-icon-plus" > 直接添加新项目 < / e l - b u t t o n >
< / e l - b a d g e >
< / e l - r o w >
< / e l - r o w >
< el -row >
< el -badge value = "进阶" >
< el -button type = "primary" icon = "el-icon-plus" > 通过 【 项目 - 复制 】 一键创建新的项目 < / e l - b u t t o n >
< el -button type = "primary" icon = "el-icon-plus" > 通过 【 项目 - 复制 】 一键创建新的项目 < / e l - b u t t o n >
< / e l - b a d g e >
< / e l - r o w >
< / e l - r o w >
< el -row >
< el -badge value = "新手" >
< el -button type = "warning" @click ="templateVisible=!templateVisible" icon = "el-icon-plus" > 通过 【 模板 - 复制 】 一键创建新的项目 < / e l - b u t t o n >
< el -button type = "warning" @click ="templateVisible=!templateVisible" icon = "el-icon-plus" > 通过 【 模板 - 复制 】 一键创建新的项目 < / e l - b u t t o n >
< / e l - b a d g e >
< / e l - r o w >
< / e l - r o w >
< / e l - r o w >
< / e l - r o w >
< el -button id = "prj-plus-btn" type = "primary" slot = "reference" icon = "el-icon-plus" round > 项目 < / e l - b u t t o n >
< / e l - p o p o v e r >
< / e l - p o p o v e r >
< / span >
< / e l - r o w >
< el -row ref = "table1" >
< / e l - r o w >
< el -row ref = "table1" >
<!-- 列表 XmProject xm_project -- >
< el -row v -show = " showType " v -loading = " load.list " :style ="{overflowX:'hidden',height:maxTableHeight+'px'}" >
< el -row >
< el -col v -cloak v-for ="(p,i) in ScreenData" :key="i" :xl="6" :lg="8" :md="8" :sm="12" :xs="24" class="project-card" >
< el -card @click.native ="intoInfo(p,i)" shadow = "always" id = "prj-view-box" >
< div slot = "header" style = "display:flex;justify-content: space-between;" >
< div class = "project-name" >
< el -tag title = "项目状态" v-for ="(item,index) in formatDictsWithClass(dicts,'projectStatus',p.status)" :key="index" :type="item.className" > {{ item.name }} < / el -tag >
{ { p . name } }
< / div >
< / div >
< el -popover
placement = "top-start"
title = "更多操作"
width = "200"
trigger = "hover" >
< div class = "project-id" >
< el -link id = "prj-copy-btn" type = "primary" title = "通过复制快速创建新项目" @click.stop ="onCopyToBtnClick(p)" v-loading ="load.add" > 复制 & nbsp ; < / el -link >
< el -link v -if = " menukey = = ' myFocus ' " type = "primary" @click.stop ="focusOrUnfocus(p)" > 取消关注 < / e l - l i n k >
< el -link v -else type = "primary" @click.stop ="focusOrUnfocus(p)" > 关注 < / e l - l i n k >
< div class = "project-id" >
< el -link id = "prj-copy-btn" type = "primary" title = "通过复制快速创建新项目" @click.stop ="onCopyToBtnClick(p)" v-loading ="load.add" > 复制 & nbsp ; < / el -link >
< el -link v -if = " menukey = = ' myFocus ' " type = "primary" @click.stop ="focusOrUnfocus(p)" > 取消关注 < / e l - l i n k >
< el -link v -else type = "primary" @click.stop ="focusOrUnfocus(p)" > 关注 < / e l - l i n k >
< el -link type = "danger" title = "删除项目" @click.stop ="handleDel(p)" v-loading ="load.del" > 删除 < / el -link >
<!-- < el -link id = "prj-calc-btn" type = "warning" style = "font-size:14px;float:right;margin-left:2px;" title = "统计项目的工作量、进度、需求、bugs等数据" @click.stop ="loadTasksToXmProjectState(p)" v-loading ="load.add" > 统计 < / el -link > -- >
@ -134,9 +134,9 @@
< el -button size = "mini" slot = "reference" icon = "el-icon-setting" circle plain > < / e l - b u t t o n >
< / e l - p o p o v e r >
< / div >
< div class = "project-info" >
< div class = "project-info" >
< div class = "info-task" title = "已完成需求数 / 总需求数 " >
< span >
< span class = "item-total finish-task" > { { menuFinishCntCalc ( p ) } } < / span >
@ -174,7 +174,7 @@
< / div >
< div class = "project-rate" >
< el -progress :percentage ="(p.finishRate==null?0:p.finishRate)" > < / e l - p r o g r e s s >
< el -tag v-if ="getPlanRealProgress(p)>0" type="warning" effect="dark" > 超前 {{ getPlanRealProgress ( p ) }} % < / el -tag >
< el -tag v -else -if = " getPlanRealProgress ( p ) < 0 " type = "danger" effect = "dark" > 落后 { { 0 - getPlanRealProgress ( p ) } } % < / e l - t a g >
< el -tag v -else -if = " getProgress ( p ) > 0 " effect=" dark " type=" success " class=" el - icon - check " > < / e l - t a g >
@ -182,15 +182,15 @@
< / div >
< div class = "project-footer" >
< div class = "project-type" title = "项目经理" >
< mdp -select -user -xm v-if ="p.pmUserid" :value="p" userid-key="pmUserid" username-key="pmUsername" :disabled ="true" > < / mdp -select -user -xm >
< mdp -select -user -xm v -else -if = " p.createUserid " :value ="p" userid -key = " createUserid " username -key = " createUsername " :disabled ="true" > < / m d p - s e l e c t - u s e r - x m >
< mdp -select -user -xm v-if ="p.pmUserid" :value="p" userid-key="pmUserid" username-key="pmUsername" :disabled ="true" > < / mdp -select -user -xm >
< mdp -select -user -xm v -else -if = " p.createUserid " :value ="p" userid -key = " createUserid " username -key = " createUsername " :disabled ="true" > < / m d p - s e l e c t - u s e r - x m >
< / div >
< / div >
< div class = "project-period" > { { p . startTime ? p . startTime . substr ( 0 , 10 ) : '' } } ~ { { p . endTime ? p . endTime . substr ( 0 , 10 ) : '' } } < / div >
< / div >
< / e l - c a r d >
< / e l - c o l >
< / e l - r o w >
< el -row v-if ="!load.list && xmProjects.length<=0" >
< el -result icon = "info" title = "信息提示" subTitle = "没有查到相关项目,有可能是您暂时还没有项目,有可能是您无权限查询项目。" >
@ -199,17 +199,17 @@
< el -row >
您可以通过 & nbsp ; < el -button @click ="showAdd" icon = "el-icon-plus" type = "primary" plain > 项目 < / e l - b u t t o n > & n b s p ; 创 建 一 个 新 项 目
< / e l - r o w >
< el -row >
< el -row >
通过 & nbsp ; < el -button @click ="templateVisible=true" type = "primary" plain style = "margin-bottom:5px;" > 公共模板 < /el-button> 体验项目的过程。<br/ >
< / e l - r o w >
< el -row >
< el -row >
通过 & nbsp ; < el -button @click ="templateVisible=true" type = "primary" plain style = "margin-bottom:5px;" > 拷贝模板 < /el-button> 快速创建新项目。<br/ >
< / e l - r o w >
< / e l - r o w >
< / template >
< / e l - r e s u l t >
< / e l - r o w >
< / e l - r o w >
< / e l - r o w >
< el -row class = "padding-top" >
< el -table ref = "table" :height ="maxTableHeight" v -cloak v-show ="!showType" fit stripe :data="ScreenData" @sort-change="sortChange" highlight-current-row v-loading="load.list" @selection-change="selsChange" @row-click="rowClick" style="width: 100%;" :border ="true" >
< el -row slot = "empty" >
@ -219,10 +219,10 @@
< el -row >
您可以通过 & nbsp ; < el -button @click ="showAdd" icon = "el-icon-plus" type = "primary" plain > 项目 < / e l - b u t t o n > & n b s p ; 创 建 一 个 新 项 目
< / e l - r o w >
< el -row >
< el -row >
通过 & nbsp ; < el -button @click ="templateVisible=true" type = "primary" plain style = "margin-bottom:5px;" > 公共模板 < /el-button> 体验项目的过程。<br/ >
< / e l - r o w >
< el -row >
< el -row >
通过 & nbsp ; < el -button @click ="templateVisible=true" type = "primary" plain style = "margin-bottom:5px;" > 拷贝模板 < /el-button> 快速创建新项目。<br/ >
< / e l - r o w >
< / e l - r o w >
@ -233,54 +233,54 @@
< template slot -scope = " scope " >
< el -link type = "primary" @click.stop ="intoInfo(scope.row)" > { { scope . row . name } } < / e l - l i n k >
< / template >
< / e l - t a b l e - c o l u m n >
< el -table -column prop = "id" label = "项目编码" sortable min -width = " 180 " fixed = "left" show -overflow -tooltip >
< / e l - t a b l e - c o l u m n >
< el -table -column prop = "status" label = "状态" width = "100" sortable fixed = "left" >
< template slot -scope = " scope " >
< mdp -select -tag :dict ="dicts['projectStatus'] " :disabled ="true" v-model ="scope.row.status" > < / mdp -select -tag >
< / e l - t a b l e - c o l u m n >
< el -table -column prop = "id" label = "项目编码" sortable min -width = " 180 " fixed = "left" show -overflow -tooltip >
< / e l - t a b l e - c o l u m n >
< el -table -column prop = "status" label = "状态" width = "100" sortable fixed = "left" >
< template slot -scope = " scope " >
< mdp -select -tag item -code = " projectStatus " :disabled ="true" v-model ="scope.row.status" > < / mdp -select -tag >
< / template >
< / e l - t a b l e - c o l u m n >
< / e l - t a b l e - c o l u m n >
< el -table -column prop = "bizFlowState" label = "审批状态" min -width = " 120 " >
< template slot -scope = " scope " >
< mdp -select -tag :dict ="dicts['bizFlowState'] " :disabled ="true" v-model ="scope.row.bizFlowState" > < / mdp -select -tag >
< mdp -select -tag item -code = " bizFlowState " :disabled ="true" v-model ="scope.row.bizFlowState" > < / mdp -select -tag >
< / template >
< / e l - t a b l e - c o l u m n >
< el -table -column prop = "finishRate" label = "进度" width = "180" sortable >
< template slot -scope = " scope " >
< div style = "display:flex;" >
< template slot -scope = " scope " >
< div style = "display:flex;" >
< div style = "width:3em;" >
{ { getProgress ( scope . row ) } } %
< / div >
< el -button id = "guider-four" type = "text" circle plain icon = "el-icon-video-play" title = "统计项目的工作量、进度、需求、bugs等数据" @ click.stop = " loadTasksToXmProjectState ( scope.row ) " > < / e l - b u t t o n >
< el -button id = "guider-four" type = "text" circle plain icon = "el-icon-video-play" title = "统计项目的工作量、进度、需求、bugs等数据" @ click.stop = " loadTasksToXmProjectState ( scope.row ) " > < / e l - b u t t o n >
< el -tag v-if ="getPlanRealProgress(scope.row)>0" type="warning" effect="dark" > 超前 {{ getPlanRealProgress ( scope.row ) }} % < / el -tag >
< el -tag v -else -if = " getPlanRealProgress ( scope.row ) < 0 " type = "danger" effect = "dark" > 落后 { { 0 - getPlanRealProgress ( scope . row ) } } % < / e l - t a g >
< el -tag v -else -if = " getProgress ( scope.row ) > 0 " effect=" dark " type=" success " class=" el - icon - check " > < / e l - t a g >
< el -tag v -else -if = " getProgress ( scope.row ) = = 0 " effect = "dark" type = "info" > 未开始 < / e l - t a g >
< el -tag v -else -if = " getProgress ( scope.row ) = = 0 " effect = "dark" type = "info" > 未开始 < / e l - t a g >
< / div >
< / template >
< / e l - t a b l e - c o l u m n >
< el -table -column prop = "productCnt" label = "项目数" sortable min -width = " 120 " >
< / e l - t a b l e - c o l u m n >
< el -table -column prop = "iterationCnt" label = "迭代数" sortable min -width = " 120 " >
< / e l - t a b l e - c o l u m n >
< el -table -column prop = "menuCnt" label = "需求数" sortable min -width = " 120 " >
< / e l - t a b l e - c o l u m n >
< el -table -column prop = "productCnt" label = "项目数" sortable min -width = " 120 " >
< / e l - t a b l e - c o l u m n >
< el -table -column prop = "iterationCnt" label = "迭代数" sortable min -width = " 120 " >
< / e l - t a b l e - c o l u m n >
< el -table -column prop = "menuCnt" label = "需求数" sortable min -width = " 120 " >
< template slot -scope = " scope " >
< span title = "完成的需求数 / 需求总数 " > { { scope . row . menuCnt > 0 ? scope . row . menuFinishCnt + ' / ' + scope . row . menuCnt : '' } } < / span >
< / template >
< / e l - t a b l e - c o l u m n >
< el -table -column prop = "taskCnt" label = "任务数" sortable min -width = " 120 " >
< / e l - t a b l e - c o l u m n >
< el -table -column prop = "taskCnt" label = "任务数" sortable min -width = " 120 " >
< template slot -scope = " scope " >
< span title = "完成的任务数 / 任务总数 " > { { ( ( scope . row . taskFinishCnt || 0 ) + ( scope . row . taskSetCnt || 0 ) + ( scope . row . taskCloseCnt || 0 ) ) + ' / ' + ( scope . row . taskCnt || 0 ) } } < / span >
< / template >
< / e l - t a b l e - c o l u m n >
< / e l - t a b l e - c o l u m n >
< el -table -column prop = "bugCnt" label = "缺陷" sortable min -width = " 120 " >
< template slot -scope = " scope " >
< span title = "关闭的缺陷数 / 缺陷总数 " > { { scope . row . bugCnt > 0 ? scope . row . closedBugs + ' / ' + scope . row . bugCnt : '' } } < / span >
< / template >
< / template >
< / e l - t a b l e - c o l u m n >
< el -table -column prop = "startTime" label = "起止时间" sortable min -width = " 150 " show -overflow -tooltip >
< template slot -scope = " scope " >
@ -292,44 +292,44 @@
<!-- < el -popover
placement = "left"
trigger = "hover" > -- >
< el -button v -if = " menukey = = ' myFocus ' " type = "text" @click.stop ="focusOrUnfocus(scope.row)" > 取消关注 < / e l - b u t t o n >
< el -button v -else type = "text" @click.stop ="focusOrUnfocus(scope.row)" > 关注 < / e l - b u t t o n >
< el -button v -if = " menukey = = ' myFocus ' " type = "text" @click.stop ="focusOrUnfocus(scope.row)" > 取消关注 < / e l - b u t t o n >
< el -button v -else type = "text" @click.stop ="focusOrUnfocus(scope.row)" > 关注 < / e l - b u t t o n >
< el -button type = "text" title = "通过复制快速创建新项目" @click.stop ="onCopyToBtnClick(scope.row)" v-loading ="load.add" > 复制 < / el -button >
< el -button type = "text" title = "删除项目" @click.stop ="handleDel(scope.row)" v-loading ="load.del" > 删除 < / el -button >
<!--
<!--
< el -button type = "primary" @click.stop ="statusChange(scope,'1')" v-if ="scope.row.status==0 || scope.row.status == 2" > 提交审核 < / el -button >
< el -button type = "primary" @click.stop ="statusChange(scope,'3')" v-if ="scope.row.status==1" > 批准 < / el -button >
< el -button type = "primary" @click.stop ="statusChange(scope,'2')" v-if ="scope.row.status==1" > 退回 < / el -button >
< el -button type = "primary" @click.stop ="statusChange(scope,'4')" v-if ="scope.row.status==3" > 结束 < / el -button >
< el -button type = "primary" @click.stop ="statusChange(scope,'3')" v-if ="scope.row.status==4" > 重新启动 < / el -button >
< el -button type = "primary" @click.stop ="handleDel(scope.row,scope.$index)" v-if ="isLeader(scope.row.leader)" > 删除 < / el -button >
< el -dropdown @command ="handleCommand" :hide-on-click ="false" >
< span class = "el-dropdown-link" >
更多 < i class = "el-icon-arrow-down el-icon--right" > < / i >
< / span >
< el -dropdown -menu slot = "dropdown" >
< el -dropdown -item icon = "el-icon-success" :command ="{type:'sendToProcessApprova',row:scope.row,bizKey:'xm_project_start_approva'}" > 立项发审 ( 审核通过后起效 ) < / e l - d r o p d o w n - i t e m >
< el -dropdown -item icon = "el-icon-success" :command ="{type:'sendToProcessApprova',row:scope.row,bizKey:'xm_project_delete_approva'}" > 删除发审 ( 审核通过后删除 ) < / e l - d r o p d o w n - i t e m >
< el -dropdown -item icon = "el-icon-success" :command ="{type:'showEdit',row:scope.row,bizKey:'xm_project_baseinfo_change_approva'}" > 基础信息变更发审 ( 审核通过后生效 ) < / e l - d r o p d o w n - i t e m >
< el -dropdown -item icon = "el-icon-success" :command ="{type:'showEdit',row:scope.row,bizKey:'xm_project_budget_change_approva'}" > 预算变更发审 ( 审核通过后生效 ) < / e l - d r o p d o w n - i t e m >
< el -dropdown -item icon = "el-icon-success" :command ="{type:'sendToProcessApprova',row:scope.row,bizKey:'xm_project_over_approva'}" > 项目结项发审 ( 审核通过后生效 ) < / e l - d r o p d o w n - i t e m >
< el -dropdown -item icon = "el-icon-success" :command ="{type:'sendToProcessApprova',row:scope.row,bizKey:'xm_project_suspension_approva'}" > 项目暂停发审 ( 审核通过后生效 ) < / e l - d r o p d o w n - i t e m >
< el -dropdown -item icon = "el-icon-success" :command ="{type:'sendToProcessApprova',row:scope.row,bizKey:'xm_project_start_approva'}" > 立项发审 ( 审核通过后起效 ) < / e l - d r o p d o w n - i t e m >
< el -dropdown -item icon = "el-icon-success" :command ="{type:'sendToProcessApprova',row:scope.row,bizKey:'xm_project_delete_approva'}" > 删除发审 ( 审核通过后删除 ) < / e l - d r o p d o w n - i t e m >
< el -dropdown -item icon = "el-icon-success" :command ="{type:'showEdit',row:scope.row,bizKey:'xm_project_baseinfo_change_approva'}" > 基础信息变更发审 ( 审核通过后生效 ) < / e l - d r o p d o w n - i t e m >
< el -dropdown -item icon = "el-icon-success" :command ="{type:'showEdit',row:scope.row,bizKey:'xm_project_budget_change_approva'}" > 预算变更发审 ( 审核通过后生效 ) < / e l - d r o p d o w n - i t e m >
< el -dropdown -item icon = "el-icon-success" :command ="{type:'sendToProcessApprova',row:scope.row,bizKey:'xm_project_over_approva'}" > 项目结项发审 ( 审核通过后生效 ) < / e l - d r o p d o w n - i t e m >
< el -dropdown -item icon = "el-icon-success" :command ="{type:'sendToProcessApprova',row:scope.row,bizKey:'xm_project_suspension_approva'}" > 项目暂停发审 ( 审核通过后生效 ) < / e l - d r o p d o w n - i t e m >
< el -dropdown -item icon = "el-icon-success" :command ="{type:'sendToProcessApprova',row:scope.row,bizKey:'xm_project_restart_approva'}" > 项目重新启动发审 ( 审核通过后生效 ) < / e l - d r o p d o w n - i t e m >
< / e l - d r o p d o w n - m e n u >
< / e l - d r o p d o w n >
-- >
< / e l - d r o p d o w n >
-- >
<!-- < el -button style = "width:100%;" slot = "reference" class = "see-more" type = "text" icon = "el-icon-more" > < / e l - b u t t o n >
< / e l - p o p o v e r > - - >
< / template >
< / e l - t a b l e - c o l u m n >
< / e l - t a b l e >
< / e l - r o w >
< / e l - r o w >
< el -pagination layout = "total, sizes, prev, pager, next" @current-change ="handleCurrentChange" @size-change ="handleSizeChange" : page -sizes = " [ 12 , 20 , 50 , 100 , 500 ] " :current-page ="pageInfo.pageNum" :page-size ="pageInfo.pageSize" :total ="pageInfo.total" style = "float:right;" > < / e l - p a g i n a t i o n >
< / e l - r o w >
< el -pagination layout = "total, sizes, prev, pager, next" @current-change ="handleCurrentChange" @size-change ="handleSizeChange" : page -sizes = " [ 12 , 20 , 50 , 100 , 500 ] " :current-page ="pageInfo.pageNum" :page-size ="pageInfo.pageSize" :total ="pageInfo.total" style = "float:right;" > < / e l - p a g i n a t i o n >
< el -dialog title = "项目新增" :visible.sync ="addFormVisible" :with-header ="false" width = "80%" top = "20px" :close-on-click-modal ="false" append -to -body >
< xm -project -add :sel-project ="addForm" op -type = " add " :visible ="addFormVisible" @cancel ="addFormVisible=false" @submit ="afterAddSubmit" > < / xm -project -add >
@ -340,53 +340,53 @@
< el -drawer :title ="selectProject==null?'项目明细':selectProject.name" center :fullscreen ="true" :visible.sync ="showInfo" size = "50%" :close-on-click-modal ="false" append -to -body >
< xm -project -info :sel-project ="selectProject" :visible ="showInfo" @changeShowInfo ="changeShowInfo" @submit ="changeShowInfo" > < / xm -project -info >
< / e l - d r a w e r >
< el -drawer v -if = " selectProject " :title ="selectProject==null?'操作日志':selectProject.name+'操作日志'" center :visible.sync ="xmRecordVisible" size = "50%" :close-on-click-modal ="false" append -to -body >
< xm -record :obj-type ="'project'" :project-id ="selectProject.id" :visible ="xmRecordVisible" :simple ="1" > < / x m - r e c o r d >
< / e l - d r a w e r >
< el -dialog
title = "通过复制创建新的模板或者新的项目"
: visible . sync = "copyToVisible"
width = "500" >
width = "500" >
< el -form >
< el -form -item label = "项目名称" >
< el -input v-model ="xmProjectCopy.name" placeholder="新的项目名称" > < / el -input >
< el -input v-model ="xmProjectCopy.name" placeholder="新的项目名称" > < / el -input >
< / e l - f o r m - i t e m >
< el -form -item label = "项目代号" >
< el -form -item label = "项目代号" >
< el -input v-model ="xmProjectCopy.code" placeholder="新的项目代号" >
< template slot = "append" >
< el -button type = "text" @click ="createProjectCode" > 自动生成 < / el -button >
< / template >
< / e l - i n p u t >
< font color = "blue" style = "font-size:10px;" > 项目代号为合同上的项目代号 , 甲乙方共享 ; 项目内部编号为 & nbsp ; 代号 - 四位随机码 < / font >
< / e l - f o r m - i t e m >
< el -form -item label = "目标" >
< el -radio v-model ="xmProjectCopy.isTpl" label="1" > 复制为新的模板 < / el -radio >
< el -radio v-model ="xmProjectCopy.isTpl" label="0" > 复制为新的项目 < / el -radio >
< / e l - f o r m - i t e m >
< / e l - f o r m - i t e m >
< el -form -item label = "公开范围" v-if ="xmProjectCopy.isTpl=='1'" >
< el -radio v-model ="xmProjectCopy.tplType" label="1" > 向全网公开 < / el -radio >
< el -radio v-model ="xmProjectCopy.tplType" label="2" > 只向本企业公开 < / el -radio >
< / e l - f o r m - i t e m >
< el -form -item label = "附加任务" >
< el -checkbox v-model ="xmProjectCopy.copyPhase" true-label="1" false-label="0" > 拷贝计划 < / el -checkbox >
< el -checkbox v-model ="xmProjectCopy.copyTask" true-label="1" false-label="0" > 拷贝任务 < / el -checkbox >
< el -checkbox v-model ="xmProjectCopy.copyGroup" true-label="1" false-label="0" > 拷贝项目组织架构 < / el -checkbox >
< el -checkbox v-model ="xmProjectCopy.copyGroupUser" true-label="1" false-label="0" > 拷贝项目组成员 < / el -checkbox >
< el -checkbox v-model ="xmProjectCopy.copyProduct" true-label="1" false-label="0" > 拷贝关联产品及需求明细 < / el -checkbox >
< el -checkbox v-model ="xmProjectCopy.copyPhase" true-label="1" false-label="0" > 拷贝计划 < / el -checkbox >
< el -checkbox v-model ="xmProjectCopy.copyTask" true-label="1" false-label="0" > 拷贝任务 < / el -checkbox >
< el -checkbox v-model ="xmProjectCopy.copyGroup" true-label="1" false-label="0" > 拷贝项目组织架构 < / el -checkbox >
< el -checkbox v-model ="xmProjectCopy.copyGroupUser" true-label="1" false-label="0" > 拷贝项目组成员 < / el -checkbox >
< el -checkbox v-model ="xmProjectCopy.copyProduct" true-label="1" false-label="0" > 拷贝关联产品及需求明细 < / el -checkbox >
< / e l - f o r m - i t e m >
< / e l - f o r m >
< span slot = "footer" class = "dialog-footer" >
< el -button @ click = "copyToVisible = false;load.add=false" > 取 消 < / e l - b u t t o n >
< el -button type = "primary" @click ="onCopyToConfirm" :disabled ="load.add" v-loading ="load.add" > 确 定 < / el -button >
< / span >
< / e l - d i a l o g >
< / e l - d i a l o g >
< el -dialog :visible.sync ="templateVisible" append -to -body width = "60%" top = "20px" >
< xm -project -tpl -mng @copy ="searchXmProjects" :show-type ="'simple'" ref = "xmProjectTplMngRef" > < / x m - p r o j e c t - t p l - m n g >
< / e l - d i a l o g >
< / section >
< / section >
< / template >
@ -396,23 +396,23 @@
/ / i m p o r t S t i c k y f r o m ' @ / c o m p o n e n t s / S t i c k y ' / / 粘 性 h e a d e r 组 件
import config from "@/common/config" ; / / 全 局 公 共 库
import { initSimpleDicts } from '@/api/mdp/meta/item' ; / / 下 拉 框 数 据 查 询
import { listXmProject , editStatus , delXmProject , batchDelXmProject , copyTo , createProjectCode , getDefOptions } from '@/api/xm/core/xmProject' ;
import { listXmProject , editStatus , delXmProject , batchDelXmProject , copyTo , createProjectCode , getDefOptions } from '@/api/xm/core/xmProject' ;
import { loadTasksToXmProjectState , loadTasksSettleToXmProjectState } from '@/api/xm/core/xmProjectState' ;
import { addUserFocus , delUserFocus } from '@/api/mdp/sys/userFocus' ;
import XmProjectAdd from './XmProjectEdit' ; / / 新 增 界 面
import XmProjectEdit from './XmProjectEdit' ; / / 修 改 界 面
import { mapGetters } from 'vuex'
import xmTaskMng from '../xmTask/XmTaskMng' ;
import XmProjectTplMng from './XmProjectTplMng' ;
import xmTaskMng from '../xmTask/XmTaskMng' ;
import XmProjectTplMng from './XmProjectTplMng' ;
import XmProductSelect from '@/views/xm/core/components/XmProductSelect' ;
import MdpSelectUserXm from "@/views/xm/core/components/MdpSelectUserXm/index" ;
import store from '@/store'
import store from '@/store'
import Guider from '@/components/Guider/Index.js' ;
export default {
export default {
props : [ 'dataScope' , 'source' ] ,
computed : {
... mapGetters ( [
@ -422,7 +422,7 @@
const key = this . menukey ;
const userid = this . userInfo . userid ;
return this . xmProjects ;
} ,
} ,
watch : {
@ -435,7 +435,7 @@
this . searchXmProjects ( ) ;
}
} ,
data ( ) {
data ( ) {
return {
filters : {
key : '' ,
@ -456,14 +456,14 @@
} ,
load : { list : false , edit : false , del : false , add : false } , / / 查 询 中 . . .
sels : [ ] , / / 列 表 选 中 数 据
dicts : getDefOptions ( ) , / / 下 拉 选 择 框 的 所 有 静 态 数 据 p a r a m s = [ { c a t e g o r y I d : ' 0 0 0 1 ' , i t e m C o d e : ' s e x ' } ] 返 回 结 果 { ' s e x ' : [ { o p t i o n V a l u e : ' 1 ' , o p t i o n N a m e : ' 男 ' , s e q O r d e r : ' 1 ' , f p : ' ' , i s D e f a u l t : ' 0 ' } , { o p t i o n V a l u e : ' 2 ' , o p t i o n N a m e : ' 女 ' , s e q O r d e r : ' 2 ' , f p : ' ' , i s D e f a u l t : ' 0 ' } ] }
dicts : getDefOptions ( ) , / / 下 拉 选 择 框 的 所 有 静 态 数 据 p a r a m s = [ { c a t e g o r y I d : ' 0 0 0 1 ' , i t e m C o d e : ' s e x ' } ] 返 回 结 果 { ' s e x ' : [ { o p t i o n V a l u e : ' 1 ' , o p t i o n N a m e : ' 男 ' , s e q O r d e r : ' 1 ' , f p : ' ' , i s D e f a u l t : ' 0 ' } , { o p t i o n V a l u e : ' 2 ' , o p t i o n N a m e : ' 女 ' , s e q O r d e r : ' 2 ' , f p : ' ' , i s D e f a u l t : ' 0 ' } ] }
addFormVisible : false , / / 新 增 x m P r o j e c t 界 面 是 否 显 示
/ / 新 增 x m P r o j e c t 界 面 初 始 化 数 据
addForm : {
id : '' , code : '' , name : '' , xmType : '' , startTime : '' , endTime : '' , urgent : '' , priority : '' , description : '' , createUserid : '' , createUsername : '' , createTime : '' , assess : '' , assessRemarks : '' , status : '' , branchId : '' , planTotalCost : '' , bizProcInstId : '' , bizFlowState : '' , planNouserAt : '' , planIuserAt : '' , planOuserAt : '' , locked : '' , baseTime : '' , baseRemark : '' , baselineId : '' , planWorkload : '0' , totalReceivables : '0' , budgetMarginRate : 13 , contractAmt : 0 , planIuserPrice : 85 , planOuserPrice : 100 , planOuserCnt : 0 , planIuserCnt : 0 , planWorkingHours : 0 , taxRate : 3 , planIuserWorkload : 0 , planOuserWorkload : 0 , fromTplId : '' , budgetCtrl : '0' , deptid : '' , showOut : '0' , isTpl : '0' , pmUserid : '' , pmUsername : '' , assUserid : '' , assUsername : '' , admUserid : '' , admUsername : '' , budgetEarly : '' , phaseActCtrl : '' , del : '0' , ltime : '' , ostatus : '0' , workType : '' , wtype : '' , earlyAmt : 0 , maxTaskAmt : 0 , menuLink : '0' , phaseLink : '0' , tplType : '' , qxCode : ''
} ,
editFormVisible : false , / / 编 辑 界 面 是 否 显 示
/ / 编 辑 x m P r o j e c t 界 面 初 始 化 数 据
editForm : {
@ -477,7 +477,7 @@
finishFlag : false ,
xmRecordVisible : false ,
productSelectVisible : false ,
maxTableHeight : 300 ,
maxTableHeight : 300 ,
xmProjectCopy : {
id : '' , name : '' , code : '' , isTpl : '' , copyPhase : '1' , copyTask : '1' , copyGroup : '1' , copyGroupUser : '0' , copyProduct : '1' , tplType : '2' ,
} ,
@ -488,8 +488,8 @@
} , / / e n d d a t a
methods : {
... util ,
handleSizeChange ( pageSize ) {
this . pageInfo . pageSize = pageSize ;
handleSizeChange ( pageSize ) {
this . pageInfo . pageSize = pageSize ;
this . getXmProjects ( ) ;
} ,
handleCurrentChange ( pageNum ) {
@ -511,7 +511,7 @@
this . getXmProjects ( ) ;
} ,
searchXmProjects ( ) {
this . pageInfo . count = true ;
this . pageInfo . count = true ;
this . getXmProjects ( ) ;
} ,
/ / 获 取 列 表 X m P r o j e c t x m _ p r o j e c t
@ -526,13 +526,13 @@
/ / p a r a m s . x x x = t h i s . f i l t e r s . k e y
} else {
/ / p a r a m s . x x x = x x x x x
}
this . load . list = true ;
}
this . load . list = true ;
if ( this . pageInfo . orderFields != null && this . pageInfo . orderFields . length > 0 ) {
let orderBys = [ ] ;
for ( var i = 0 ; i < this .pageInfo.orderFields.length ; i + + ) {
for ( var i = 0 ; i < this .pageInfo.orderFields.length ; i + + ) {
orderBys . push ( this . pageInfo . orderFields [ i ] + " " + this . pageInfo . orderDirs [ i ] )
}
}
params . orderBy = orderBys . join ( "," )
}
if ( this . finishFlag ) {
@ -542,25 +542,25 @@
params = this . menuFilter ( params ) ;
if ( this . filters . productId ) {
params . linkProductId = this . filters . productId
}
}
if ( this . filters . status ) {
params . status = this . filters . status
}
}
params . createTimeStart = this . filters . createTimeStart
params . createTimeEnd = this . filters . createTimeEnd
listXmProject ( params ) . then ( ( res ) => {
var tips = res . data . tips ;
if ( tips . isOk ) {
if ( tips . isOk ) {
console . log ( res . data ) ;
this . pageInfo . total = res . data . total ;
this . pageInfo . count = false ;
this . xmProjects = res . data . data ;
this . pageInfo . count = false ;
this . xmProjects = res . data . data ;
} else {
this . $notify ( { position : 'bottom-left' , showClose : true , message : tips . msg , type : 'error' } ) ;
}
}
if ( callBack ) {
this . $nextTick ( ( ) => {
callBack ( ) ;
callBack ( ) ;
} )
}
this . load . list = false ;
@ -570,10 +570,10 @@
menuFilter ( params ) {
const key = this . menukey ;
const userid = this . userInfo . userid ;
if ( this . dataScope == 'all' && key == "compete" ) {
params . compete = userid ;
if ( this . dataScope == 'all' && key == "compete" ) {
params . compete = userid ;
} else if ( this . dataScope != 'all' && ( key == "compete" || key == "all" ) ) {
params . compete = userid ;
params . compete = userid ;
} else if ( key == "leader" ) { / / 负 责 人
params . pgTypeIds = [ 'nbxmjl' ]
params . userid = userid
@ -630,9 +630,9 @@
/ / 选 择 行 x m P r o j e c t
selsChange : function ( sels ) {
this . sels = sels ;
} ,
} ,
/ / 删 除 x m P r o j e c t
handleDel : function ( row , index ) {
handleDel : function ( row , index ) {
this . $prompt ( '将同步删除计划、组织、任务等,慎重起见,请输入项目代号:' + row . code , '提示' , {
confirmButtonText : '确定' ,
cancelButtonText : '取消' ,
@ -643,40 +643,40 @@
delXmProject ( params ) . then ( ( res ) => {
this . load . del = false ;
var tips = res . data . tips ;
if ( tips . isOk ) {
if ( tips . isOk ) {
this . pageInfo . count = true ;
this . getXmProjects ( ) ;
}
this . $notify ( { position : 'bottom-left' , showClose : true , message : tips . msg , type : tips . isOk ? 'success' : 'error' } ) ;
} ) . catch ( err => this . load . del = false ) ;
this . $notify ( { position : 'bottom-left' , showClose : true , message : tips . msg , type : tips . isOk ? 'success' : 'error' } ) ;
} ) . catch ( err => this . load . del = false ) ;
} else {
this . $notify ( { position : 'bottom-left' , showClose : true , message : "项目代号不正确" , type : 'error' } ) ;
this . $notify ( { position : 'bottom-left' , showClose : true , message : "项目代号不正确" , type : 'error' } ) ;
}
} ) . catch ( ( ) => {
return ;
} ) . catch ( ( ) => {
return ;
} ) ;
} ,
/ / 批 量 删 除 x m P r o j e c t
batchDel : function ( ) {
this . $confirm ( '确认删除选中记录吗?' , '提示' , {
type : 'warning'
} ) . then ( ( ) => {
} ) . then ( ( ) => {
this . load . del = true ;
batchDelXmProject ( this . sels ) . then ( ( res ) => {
this . load . del = false ;
var tips = res . data . tips ;
if ( tips . isOk ) {
if ( tips . isOk ) {
this . pageInfo . count = true ;
this . getXmProjects ( ) ;
this . getXmProjects ( ) ;
}
this . $notify ( { position : 'bottom-left' , showClose : true , message : tips . msg , type : tips . isOk ? 'success' : 'error' } ) ;
} ) . catch ( err => this . load . del = false ) ;
} ) ;
} ,
rowClick : function ( row , event , column ) {
const that = this ;
const that = this ;
this . selectProject = row ;
this . editform = row ;
} ,
@ -691,7 +691,7 @@
this . selectProject = row ;
store . dispatch ( "setProjectInfo" , row ) . then ( res => {
this . $router . push ( { name : 'projectOverview' , query : { projectId : row . id } } )
} )
} )
} ,
/ / 筛 选 项 目
@ -712,7 +712,7 @@
this . ScreenData [ scope . $index ] . status = val ;
this . status = val ;
}
this . $notify ( { position : 'bottom-left' , showClose : true , message : tips . msg , type : tips . isOk ? 'success' : 'error' } ) ;
this . $notify ( { position : 'bottom-left' , showClose : true , message : tips . msg , type : tips . isOk ? 'success' : 'error' } ) ;
this . load . edit = false ;
} ) . catch ( err => this . load . edut = false ) ;
} ,
@ -721,41 +721,41 @@
this . xmProjects = [ ] ;
this . getXmProjects ( ) ;
this . showInfo = false ;
} ,
} ,
showApprovaInfo : function ( row ) {
var msgFields = [ ] ;
if ( row . mainTitle != null && row . mainTitle != "" ) {
msgFields . push ( "流程【" + row . mainTitle + "】" ) ;
}
if ( row . taskName != null && row . taskName != "" ) {
msgFields . push ( "当前环节【" + row . taskName + "】" ) ;
}
if ( row . assigneeName != null && row . assigneeName != "" ) {
msgFields . push ( "执行人【" + row . assigneeName + "】" ) ;
}
if ( row . commentMsg != null && row . commentMsg != "" ) {
msgFields . push ( "审批意见【" + row . commentMsg + "】" ) ;
}
var msg = msgFields . join ( "," ) ;
return msg ;
} ,
sendToProcessApprova : function ( row , bizKey ) {
sendToProcessApprova : function ( row , bizKey ) {
if ( row . bizFlowState == '1' ) {
this . $notify . error ( "审核中,不允许重新发起" ) ;
return ;
}
let extVars = { projectId : row . id }
let jsonExtVars = JSON . stringify ( extVars ) ;
let jsonExtVars = JSON . stringify ( extVars ) ;
var currDomain = window . location . protocol + "//" + window . location . host ;
var fullPath = this . $route . fullPath ;
var fullPath = this . $route . fullPath ;
var bizUrl = currDomain + '/' + process . env . CONTEXT + '/' + process . env . VERSION + '/#' + fullPath + '?extVars=' + jsonExtVars
var titleNames = row . name
var mainTitle = ''
var mainContext = ''
@ -775,7 +775,7 @@
}
mainTitle = '关于项目【' + titleNames + "】结项的审批"
mainContext = mainTitle ;
} else if ( bizKey == 'xm_project_restart_approva' ) {
if ( row . status != '3' ) {
this . $notify . error ( "只有状态为暂停的项目可以进行重新启动操作" ) ;
@ -807,9 +807,9 @@
} else {
this . $notify . error ( "暂不支持的业务审批" ) ;
return ;
}
}
let params = {
let params = {
mainContext : mainContext ,
mainTitle : mainTitle ,
bizKey : bizKey ,
@ -823,9 +823,9 @@
} ,
}
let jsonParmas = encodeURIComponent ( JSON . stringify ( params ) ) ; / / 对 方 要 d e c o d e U R I C o m p o n e n t
this . $router . push ( { name : 'ProcdefListForBizStart' , params : jsonParmas } ) ;
} ,
handleCommand ( command ) {
this . $router . push ( { name : 'ProcdefListForBizStart' , params : jsonParmas } ) ;
} ,
handleCommand ( command ) {
if ( command . type == 'sendToProcessApprova' ) {
this . sendToProcessApprova ( command . row , command . bizKey ) ;
} else if ( command . type == 'showEdit' ) {
@ -837,50 +837,50 @@
delUserFocus ( { pbizId : row . id , focusType : '1' , bizId : row . id , bizName : row . name } ) . then ( res => {
var tips = res . data . tips ;
if ( tips . isOk ) {
this . getXmProjects ( ) ;
}
this . $notify ( { position : 'bottom-left' , showClose : true , message : tips . msg , type : tips . isOk ? 'success' : 'error' } ) ;
this . getXmProjects ( ) ;
}
this . $notify ( { position : 'bottom-left' , showClose : true , message : tips . msg , type : tips . isOk ? 'success' : 'error' } ) ;
} )
} else {
addUserFocus ( { pbizId : row . id , focusType : '1' , bizId : row . id , bizName : row . name } ) . then ( res => {
var tips = res . data . tips ;
this . $notify ( { position : 'bottom-left' , showClose : true , message : tips . msg , type : tips . isOk ? 'success' : 'error' } ) ;
this . $notify ( { position : 'bottom-left' , showClose : true , message : tips . msg , type : tips . isOk ? 'success' : 'error' } ) ;
} )
}
} ,
onProductSelected : function ( product ) {
this . filters . productId = product . id
this . filters . productName = product . productName
this . filters . productName = product . productName
this . productSelectVisible = false ;
} ,
onProductClose : function ( ) {
this . filters . productId = ''
this . filters . productName = ''
this . filters . productName = ''
} ,
onCopyToBtnClick ( row ) {
this . xmProjectCopy . id = row . id ;
this . xmProjectCopy . name = row . name + "(复制)" ;
this . xmProjectCopy . isTpl = row . isTpl ;
this . xmProjectCopy . isTpl = row . isTpl ;
this . copyToVisible = true ;
} ,
onCopyToConfirm ( ) {
if ( ! this . xmProjectCopy . code ) {
this . $notify ( { position : 'bottom-left' , showClose : true , message : '项目代号不能为空' , type : 'error' } ) ;
return ;
}
}
copyTo ( this . xmProjectCopy ) ;
this . $notify ( { position : 'bottom-left' , showClose : true , message : "已提交拷贝任务,执行需要1-5分钟,请稍后刷新项目列表" , type : 'success' } ) ;
} ,
} ,
createProjectCode ( ) {
createProjectCode ( { } ) . then ( res => {
var tips = res . data . tips ;
if ( tips . isOk ) {
this . xmProjectCopy . code = res . data . data
}
this . $notify ( { position : 'bottom-left' , showClose : true , message : tips . msg , type : tips . isOk ? 'success' : 'error' } ) ;
this . $notify ( { position : 'bottom-left' , showClose : true , message : tips . msg , type : tips . isOk ? 'success' : 'error' } ) ;
} )
} ,
formatProjectStatus ( status ) {
@ -895,27 +895,27 @@
return status ;
}
} ,
formatterByDicts ( row , column , cellValue ) {
formatterByDicts ( row , column , cellValue ) {
if ( column . property == 'status' ) {
return this . formatProjectStatus ( cellValue ) ;
}
}
} ,
loadTasksToXmProjectState ( row ) {
var params = { projectId : row . id }
loadTasksToXmProjectState ( params ) . then ( ( res ) => {
this . load . edit = false ;
var tips = res . data . tips ;
if ( tips . isOk ) {
if ( tips . isOk ) {
this . pageInfo . count = true ;
this . searchXmProjects ( ) ;
this . searchXmProjects ( ) ;
}
this . $notify ( { position : 'bottom-left' , showClose : true , message : tips . msg , type : tips . isOk ? 'success' : 'error' } ) ;
} ) . catch ( err => this . load . edit = false ) ;
} ) . catch ( err => this . load . edit = false ) ;
} ,
guiderStart ( forceDisplayWhileClosed ) { / / 初 始 化 引 导 页
Guider . startByName ( 'xmProjectMng' , forceDisplayWhileClosed ) ;
Guider . startByName ( 'xmProjectMng' , forceDisplayWhileClosed ) ;
} ,
menuFinishCntCalc ( project ) {
var allFinishCnt = ( project . menuFinishCnt || 0 ) + ( project . menuCloseCnt || 0 )
@ -940,36 +940,36 @@
return Math . round ( ( project . finishRate || 0 ) - planRate )
}
/**end 自定义函数请在上面加**/
} , / / e n d m e t h o d s
components : {
components : {
'xm-project-add' : XmProjectAdd ,
'xm-project-edit' : XmProjectEdit ,
'xm-project-edit' : XmProjectEdit ,
XmProductSelect ,
xmTaskMng ,
XmProjectTplMng , MdpSelectUserXm
/ / 在 下 面 添 加 其 它 组 件
} ,
mounted ( ) {
mounted ( ) {
if ( this . $route . params ) {
this . filters . productId = this . $route . params . productId ;
this . filters . productName = this . $route . params . productName ;
}
this . $nextTick ( ( ) => {
this . $nextTick ( ( ) => {
initSimpleDicts ( 'all' , [ 'projectType' , 'priority' , 'projectStatus' , 'bizFlowState' ] ) . then ( res => {
this . dicts = res . data . data ;
} )
this . maxTableHeight = this . source == 'GZT' ? this . maxTableHeight : util . calcTableMaxHeight ( this . $refs . table1 . $el ) ;
this . showInfo = false ;
this . getXmProjects ( this . guiderStart ) ;
} ) ;
} ,
} ) ;
} ,
}
< / script >
< style lang = "scss" scoped >
< style lang = "scss" scoped >
. changebtn {
float : right ;
padding : 2 px 10 px ;
@ -1009,11 +1009,11 @@
. el - menu -- horizontal > . el - submenu . el - submenu__title : hover {
background - color : transparent ;
}
. project - card {
. project - card {
cursor : pointer ;
font - size : 12 px ;
color : # 999 ;
padding : 10 px ;
padding : 10 px ;
}
. project - card : hover {
border - color : # 00 abfc ;
@ -1052,7 +1052,7 @@
color : # 666 ;
}
. info - task {
. info - task {
span {
display : flex ;
justify - content : center ;
@ -1110,7 +1110,7 @@
}
. right - btn {
margin - top : 12 px ;
}
}
@ media only screen and ( max - height : 2400 px ) {
. project - box {
max - height : 1600 x ;
@ -1135,5 +1135,5 @@
overflow - y : auto ;
}
}
< / style >
< / style >