|
|
|
@ -1,12 +1,9 @@ |
|
|
|
<template> |
|
|
|
<section class="page-container padding"> |
|
|
|
<el-row class="page-main "> |
|
|
|
<section> |
|
|
|
<el-row> |
|
|
|
<!--新增界面 XmTask xm_task--> |
|
|
|
<el-form :model="addForm" label-width="120px" :rules="addFormRules" ref="addForm"> |
|
|
|
|
|
|
|
<el-collapse value="1" accordion> |
|
|
|
<el-collapse-item title="基础信息" name="1"> |
|
|
|
<el-row> |
|
|
|
<el-form :model="addForm" label-width="120px" :rules="addFormRules" ref="addForm"> |
|
|
|
<el-row :gutter="10"> |
|
|
|
<el-col :span="6"> |
|
|
|
<el-form-item label="序号" prop="sortLevel" > |
|
|
|
<template slot="label"> |
|
|
|
@ -27,22 +24,18 @@ |
|
|
|
|
|
|
|
</el-row> |
|
|
|
|
|
|
|
<el-row> |
|
|
|
<el-col :span="6"> |
|
|
|
<el-form-item label="" prop="milestone"> |
|
|
|
<el-checkbox v-model="addForm.milestone" :true-label="1" :false-label="0">里程碑</el-checkbox> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="18"> |
|
|
|
<el-form-item prop="skill" label="" v-if="addForm.ntype!='1'" label-width="0"> |
|
|
|
<el-tag class="fs-ft" style="margin-right:10px" v-for="(item,i) in taskSkills" :key="i">{{item.taskSkillName}}</el-tag> |
|
|
|
<el-button type="text" @click.stop="showSkill()" icon="el-icon-plus">技能</el-button> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
<el-divider></el-divider> |
|
|
|
|
|
|
|
<el-row> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-form-item v-if="addForm.ptype==='0'" label="归属项目" prop="projectId"> |
|
|
|
{{addForm.projectName?addForm.projectName:addForm.projectId}} |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
<el-form-item v-if="addForm.ptype==='1'" label="归属产品" prop="productId"> |
|
|
|
{{addForm.productName?addForm.productName:addForm.productId}} |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-form-item label="上级计划" prop="parentTaskname"> |
|
|
|
<template slot="label"> |
|
|
|
<div class="icon" :style="{backgroundColor: '#E6A23C'}"> |
|
|
|
@ -53,14 +46,85 @@ |
|
|
|
<font v-if="addForm.parentTaskid" >{{addForm.parentTaskname?addForm.parentTaskname:addForm.parentTaskid}}</font> |
|
|
|
<font v-else>无上级(视为顶级)</font> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-form-item label="总负责人"> |
|
|
|
<el-tag v-if="addForm.createUserid" style="margin-left:10px;border-radius:30px;" >{{addForm.createUsername}}</el-tag> |
|
|
|
<el-button type="text" @click="showGroupUserSelect(addForm)" icon="el-icon-setting">设置负责人</el-button> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
<el-row> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-form-item :label="addForm.ntype=='0'?'任务状态':'计划状态'"> |
|
|
|
<el-select v-model="addForm.taskState"> |
|
|
|
<el-option value="0" label="待领取"></el-option> |
|
|
|
<el-option value="1" label="已领取执行中"></el-option> |
|
|
|
<el-option value="2" label="已完工"></el-option> |
|
|
|
<el-option value="3" label="已结算"></el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-form-item label="当前进度" prop="rate"> |
|
|
|
<el-slider |
|
|
|
v-model="addForm.rate" |
|
|
|
show-input> |
|
|
|
</el-slider> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-form-item label="预计时间"> |
|
|
|
|
|
|
|
<el-date-picker |
|
|
|
style="display:inline;" |
|
|
|
v-model="budgetDateRanger" |
|
|
|
@change="onBudgetDateRangerChange" |
|
|
|
type="daterange" |
|
|
|
align="right" |
|
|
|
unlink-panels |
|
|
|
range-separator="-" |
|
|
|
start-placeholder="开始日期" |
|
|
|
end-placeholder="完成日期" |
|
|
|
value-format="yyyy-MM-dd HH:mm:ss" |
|
|
|
:default-time="['00:00:00','23:59:59']" |
|
|
|
:picker-options="pickerOptions" |
|
|
|
></el-date-picker> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
|
|
|
|
|
|
|
|
</el-row> |
|
|
|
<el-tabs value="1" accordion> |
|
|
|
<el-tab-pane label="基础信息" name="1"> |
|
|
|
<el-row> |
|
|
|
<el-col :span="10"> |
|
|
|
<el-form-item label="" prop="milestone"> |
|
|
|
<el-checkbox v-model="addForm.milestone" :true-label="1" :false-label="0">里程碑</el-checkbox> |
|
|
|
<el-checkbox v-model="addForm.taskOut" @change="onTaskOutChange" true-label="1" false-label="0">众包</el-checkbox> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="14"> |
|
|
|
<el-form-item prop="skill" label="" v-if="addForm.ntype!='1'" label-width="0"> |
|
|
|
<el-tag class="fs-ft" style="margin-right:10px" v-for="(item,i) in taskSkills" :key="i">{{item.taskSkillName}}</el-tag> |
|
|
|
<el-button type="text" @click.stop="showSkill()" icon="el-icon-plus">技能要求</el-button> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
<el-row> |
|
|
|
|
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item label="优先级别" prop="level"> |
|
|
|
<el-select v-model="addForm.level"> |
|
|
|
<el-option v-for="i in dicts.priority" :label="i.name" :key="i.id" :value="i.id"></el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item v-if="addForm.ptype==='0'" label="归属项目" prop="projectId"> |
|
|
|
{{addForm.projectName?addForm.projectName:addForm.projectId}} |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
<el-form-item v-if="addForm.ptype==='1'" label="归属产品" prop="productId"> |
|
|
|
{{addForm.productName?addForm.productName:addForm.productId}} |
|
|
|
<el-form-item label="工期类型"> |
|
|
|
<el-select v-model=" addForm.planType"> |
|
|
|
<el-option v-for="i in this.dicts.planType" :label="i.name" :key="i.id" :value="i.id"></el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
@ -71,102 +135,98 @@ |
|
|
|
<el-tag v-if="addForm.preTaskid" @close="clearPreTask" closable >{{addForm.preTaskname}}</el-tag> |
|
|
|
<el-button type="text" @click.stop="selectTaskVisible=true" >选前置</el-button> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item :label="addForm.ntype=='0'?'任务类型':'计划类型'" prop="taskType"> |
|
|
|
<el-select v-model="addForm.taskType"> |
|
|
|
<el-option v-for="i in this.dicts.taskType" :label="i.name" :key="i.id" :value="i.id"></el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
</el-tab-pane> |
|
|
|
<el-tab-pane label="概述" name="2"> |
|
|
|
<el-form-item label="任务概述" prop="description"> |
|
|
|
<el-input type="textarea" :autosize="{ minRows: 6, maxRows: 20}" v-model="addForm.description" placeholder="什么人?做什么事?,为什么?如: 作为招聘专员,我需要统计员工半年在职/离职人数,以便我能够制定招聘计划" ></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-tab-pane> |
|
|
|
|
|
|
|
<el-tab-pane label="需求" name="3"> |
|
|
|
|
|
|
|
<el-row> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item label="归属产品" prop="productId"> |
|
|
|
{{addForm.productId}} |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item label="所属需求" prop="menuId" id="menuInfo" v-if="addForm.ntype!='1'"> |
|
|
|
<el-form-item label="用户故事" prop="menuId" id="menuInfo" v-if="addForm.ntype!='1'"> |
|
|
|
{{addForm.menuName}} <el-link @click="menuVisible=true" type="primary">{{addForm.menuName?'更改':'设置'}}</el-link> |
|
|
|
<el-link v-if="addForm.menuName" @click="toMenu" type="primary">查看需求</el-link> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
</el-tab-pane> |
|
|
|
<el-tab-pane label="子工作项" name="4"> |
|
|
|
|
|
|
|
</el-tab-pane> |
|
|
|
<el-tab-pane label="工时" name="5"> |
|
|
|
<el-row> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item label="优先级" prop="level"> |
|
|
|
<el-select v-model="addForm.level"> |
|
|
|
<el-option v-for="i in dicts.priority" :label="i.name" :key="i.id" :value="i.id"></el-option> |
|
|
|
</el-select> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item label="数据收集方式" prop="calcType"> |
|
|
|
<el-radio v-model="addForm.calcType" label="0" placeholder="不统计" :disabled="addForm.ntype==='0'">不收集</el-radio> |
|
|
|
<el-radio v-model="addForm.calcType" label="1" placeholder="下级往上级汇总" :disabled="addForm.ntype==='0'">下往上</el-radio> |
|
|
|
<el-radio v-model="addForm.calcType" label="2" placeholder="手工填报" :disabled="addForm.ntype==='1'">手工填报</el-radio> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item :label="addForm.ntype=='0'?'任务类型':'计划类型'" prop="taskType"> |
|
|
|
<el-select v-model="addForm.taskType"> |
|
|
|
<el-option v-for="i in this.dicts.taskType" :label="i.name" :key="i.id" :value="i.id"></el-option> |
|
|
|
<el-col :span="6"> |
|
|
|
<el-form-item label="报工方式" prop="wtype" > |
|
|
|
<el-select v-model="addForm.wtype"> |
|
|
|
<el-option label="无须报工" value="0"></el-option> |
|
|
|
<el-option label="强制每日报工" value="1"></el-option> |
|
|
|
<el-option label="工期内报工" value="2"></el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="6"> |
|
|
|
<el-form-item label="工时进度" prop="rate" > |
|
|
|
<el-progress style="width:60%;" :text-inside="true" :stroke-width="15" :percentage="addForm.rate?addForm.rate:0"></el-progress> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
<el-row> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item :label="addForm.ntype=='0'?'任务状态':'计划状态'"> |
|
|
|
<el-select v-model="addForm.taskState"> |
|
|
|
<el-option value="0" label="待领取"></el-option> |
|
|
|
<el-option value="1" label="已领取执行中"></el-option> |
|
|
|
<el-option value="2" label="已完工"></el-option> |
|
|
|
<el-option value="3" label="已结算"></el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-form-item label="预估工作量" prop="budgetWorkload"> |
|
|
|
<el-input type="number" style="width:150px;" v-model="addForm.budgetWorkload" @change="onBudgetWorkloadChange" :precision="2" :step="8" :min="0" placeholder="预计总工作量(人时,不包括下一级)"></el-input type="number"> <el-tag>h</el-tag> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item label="总负责人"> |
|
|
|
<el-tag v-if="addForm.createUserid" style="margin-left:10px;border-radius:30px;" >{{addForm.createUsername}}</el-tag> |
|
|
|
<el-button type="text" @click="showGroupUserSelect(addForm)" icon="el-icon-setting">设置负责人</el-button> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-form-item label="完工时间" prop="actEndTime"> |
|
|
|
<el-date-picker style="display:inline;" type="daterange" unlink-panels value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd" v-model="actDateRanger"></el-date-picker> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
</el-collapse-item> |
|
|
|
<el-collapse-item title="进度计划" name="2"> |
|
|
|
<el-form-item label="负责人"> |
|
|
|
<el-tag v-if="addForm.createUserid" style="margin-left:10px;border-radius:30px;" >{{addForm.createUsername}}</el-tag> |
|
|
|
<el-tag v-else style="margin-left:10px;border-radius:30px;" icon="el-icon-right" >未设置</el-tag> |
|
|
|
<el-button @click="showGroupUserSelect(addForm)" icon="el-icon-setting">设置负责人</el-button> |
|
|
|
</el-form-item> |
|
|
|
<!-- |
|
|
|
<el-form-item label="执行人" prop="executorUsername"> |
|
|
|
<el-tag v-if="addForm.executorUserid" style="margin-left:10px;border-radius:30px;" >{{addForm.executorUsername}}</el-tag> |
|
|
|
<el-button @click="execGroupUserSelectVisible=true" icon="el-icon-setting">设置执行人</el-button> |
|
|
|
</el-form-item> |
|
|
|
--> |
|
|
|
<el-form-item label="预计时间"> |
|
|
|
<el-tooltip content="计划类型"> |
|
|
|
<el-select v-model=" addForm.planType" style="width:20%;"> |
|
|
|
<el-option v-for="i in this.dicts.planType" :label="i.name" :key="i.id" :value="i.id"></el-option> |
|
|
|
</el-select> |
|
|
|
</el-tooltip> |
|
|
|
<el-date-picker |
|
|
|
v-model="budgetDateRanger" |
|
|
|
@change="onBudgetDateRangerChange" |
|
|
|
class="hidden-sm-and-down" |
|
|
|
type="daterange" |
|
|
|
align="right" |
|
|
|
unlink-panels |
|
|
|
range-separator="至" |
|
|
|
start-placeholder="计划开始日期" |
|
|
|
end-placeholder="计划完成日期" |
|
|
|
value-format="yyyy-MM-dd HH:mm:ss" |
|
|
|
:default-time="['00:00:00','23:59:59']" |
|
|
|
:picker-options="pickerOptions" |
|
|
|
></el-date-picker> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="预估工作量" prop="budgetWorkload"> |
|
|
|
<el-input-number style="width:200px;" v-model="addForm.budgetWorkload" @change="onBudgetWorkloadChange" :precision="2" :step="8" :min="0" placeholder="预计总工作量(人时,不包括下一级)"></el-input-number> <el-tag>人时,{{this.toFixed(addForm.budgetWorkload/8/20)}}人月</el-tag> |
|
|
|
<br/> |
|
|
|
<el-checkbox v-model="addForm.taskOut" @change="onTaskOutChange" true-label="1" false-label="0">是否为众包</el-checkbox> |
|
|
|
|
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="预估金额" prop="taskOut"> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-form-item label="实际工作量" prop="actWorkload"> |
|
|
|
<el-input type="number" style="width:150px;" v-model="addForm.actWorkload" @change="onActWorkloadChange" :precision="2" :step="8" :min="0" placeholder="实际总工作量(人时,不包括下一级)"></el-input type="number"> <el-tag>h</el-tag> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
</el-tab-pane> |
|
|
|
<el-tab-pane label="成本" name="6"> |
|
|
|
<el-form-item label="预估金额" prop="budgetCost"> |
|
|
|
<el-row v-if="addForm.taskOut!=='1'"> |
|
|
|
工时单价 <el-input-number style="width:200px;" v-model="addForm.uniInnerPrice" :precision="2" :step="10" :min="0" placeholder="工时单价"></el-input-number> 元/人时 |
|
|
|
工时单价 <el-input type="number" style="width:150px;" v-model="addForm.uniInnerPrice" :precision="2" :step="10" :min="0" placeholder="工时单价"></el-input type="number"> 元/h |
|
|
|
</el-row> |
|
|
|
<el-row v-if="addForm.taskOut==='1'"> |
|
|
|
工时单价 <el-input-number style="width:200px;" v-if="addForm.taskOut==='1'" v-model="addForm.uniOutPrice" :precision="2" :step="10" :min="0" placeholder="外发工时单价"></el-input-number> 元/人时 |
|
|
|
工时单价 <el-input type="number" style="width:150px;" v-if="addForm.taskOut==='1'" v-model="addForm.uniOutPrice" :precision="2" :step="10" :min="0" placeholder="外发工时单价"></el-input type="number"> 元/h |
|
|
|
</el-row> |
|
|
|
<el-row> |
|
|
|
预估金额 <el-input-number style="width:200px;" v-model="addForm.budgetCost" :precision="2" :step="100" :min="0" placeholder="预算金额"></el-input-number> 元 |
|
|
|
预估金额 <el-input type="number" style="width:150px;" v-model="addForm.budgetCost" :precision="2" :step="100" :min="0" placeholder="预算金额"></el-input type="number"> 元 |
|
|
|
</el-row> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
</el-collapse-item> |
|
|
|
<el-collapse-item title="结算信息" name="4" v-if="addForm.ntype!='1'"> |
|
|
|
</el-tab-pane> |
|
|
|
<el-tab-pane label="结算信息" name="7" v-if="addForm.ntype!='1'"> |
|
|
|
<el-form-item label="" prop="taskClass"> |
|
|
|
<el-checkbox v-model="addForm.taskClass" true-label="1" false-label="0">是否需要结算</el-checkbox> |
|
|
|
</el-form-item> |
|
|
|
@ -175,8 +235,8 @@ |
|
|
|
<el-option v-for="i in dicts.xmTaskSettleSchemel" :label="i.name" :key="i.id" :value="i.id"></el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-collapse-item> |
|
|
|
<el-collapse-item title="众包" name="5" v-if="addForm.ntype!='1' && addForm.taskOut=='1'"> |
|
|
|
</el-tab-pane> |
|
|
|
<el-tab-pane label="众包" name="8" v-if="addForm.ntype!='1' && addForm.taskOut=='1'"> |
|
|
|
|
|
|
|
<el-checkbox v-model="addForm.toTaskCenter" true-label="1" false-label="0" id="taskOut">发布到互联网任务大厅</el-checkbox> |
|
|
|
|
|
|
|
@ -189,8 +249,8 @@ |
|
|
|
<el-step title="企业付款" description="结算流程审批通过,自动付款到个人钱包"></el-step> |
|
|
|
<el-step title="提现" description="企业付款完成后,个人对钱包中余额进行提现"></el-step> |
|
|
|
</el-steps> |
|
|
|
</el-collapse-item> |
|
|
|
</el-collapse> |
|
|
|
</el-tab-pane> |
|
|
|
</el-tabs> |
|
|
|
</el-form> |
|
|
|
</el-row> |
|
|
|
<el-row class="page-bottom padding"> |
|
|
|
@ -312,7 +372,7 @@ |
|
|
|
addForm: { |
|
|
|
id:'',name:'',parentTaskid:'',parentTaskname:'',projectId:'',projectName:'',level:'3',sortLevel:'0',executorUserid:'',executorUsername:'', |
|
|
|
preTaskid:'',preTaskname:'',startTime:'',endTime:'',milestone:'',description:'',remarks:'',createUserid:'',createUsername:'',createTime:'',taskOut:'0', |
|
|
|
rate:0,budgetCost:'',budgetWorkload:'',actCost:'',actWorkload:'',taskState:'0',taskClass:'0',toTaskCenter:'0',actStartTime:'',actEndTime:'',taskType:'kf',planType:'w2',settleSchemel:'1',ntype:'0',childrenCnt:0 |
|
|
|
rate:0,budgetCost:'',budgetWorkload:'',actCost:'',actWorkload:'',taskState:'0',taskClass:'0',toTaskCenter:'0',actStartTime:'',actEndTime:'',taskType:'4',planType:'w2',settleSchemel:'1',ntype:'0',childrenCnt:0 |
|
|
|
|
|
|
|
}, |
|
|
|
/**begin 在下面加自定义属性,记得补上面的一个逗号**/ |
|
|
|
|