|
|
@ -1,57 +1,76 @@ |
|
|
<template> |
|
|
<template> |
|
|
<section class="page-container page-full-height padding border"> |
|
|
|
|
|
<el-row> |
|
|
|
|
|
|
|
|
<section class="page-container padding"> |
|
|
|
|
|
<el-row class="page-header padding"> |
|
|
|
|
|
<el-button type="text" @click="goAnchor('baseInfoAdd')">基础信息</el-button> |
|
|
|
|
|
<el-button type="text" @click="goAnchor('planInfoAdd')">进度计划</el-button> |
|
|
|
|
|
<el-button type="text" @click="goAnchor('costInfoAdd')">工作量与成本</el-button> |
|
|
|
|
|
<el-button type="text" @click="goAnchor('settleInfoAdd')">结算信息</el-button> |
|
|
|
|
|
<el-button type="text" @click="goAnchor('menuInfoAdd')">故事明细</el-button> |
|
|
|
|
|
<el-button type="text" @click="goAnchor('taskOutAdd')">众包</el-button> |
|
|
|
|
|
</el-row> |
|
|
|
|
|
<el-row class="page-main page-height-80"> |
|
|
<!--新增界面 XmTask xm_task--> |
|
|
<!--新增界面 XmTask xm_task--> |
|
|
<el-form :model="addForm" label-width="120px" :rules="addFormRules" ref="addForm"> |
|
|
|
|
|
<el-form-item label="项目名称"> |
|
|
|
|
|
<span>{{addForm.projectName}}</span> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item v-if="parentTask!=null" label="父任务名称"> |
|
|
|
|
|
<span>{{parentTask.sortLevel}}</span> <span>{{parentTask.name}}</span> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
|
|
|
<el-form-item v-else label="父任务名称"> |
|
|
|
|
|
无上级 |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
<el-form :model="addForm" label-width="100px" :rules="addFormRules" ref="addForm"> |
|
|
|
|
|
<el-card class="box-card" header="基础信息" id="baseInfoAdd" shadow="hover"> |
|
|
|
|
|
<el-steps :active="calcTaskStep" align-center finish-status="success"> |
|
|
|
|
|
<el-step title="待领取"></el-step> |
|
|
|
|
|
<el-step title="执行中"></el-step> |
|
|
|
|
|
<el-step title="已完工待结算"></el-step> |
|
|
|
|
|
<el-step title="已结算"></el-step> |
|
|
|
|
|
</el-steps> |
|
|
<el-form-item label="任务名称" prop="name"> |
|
|
<el-form-item label="任务名称" prop="name"> |
|
|
|
|
|
<el-row> |
|
|
|
|
|
<el-col :span="24" style="padding-left:10px;"> |
|
|
<el-input v-model="addForm.name" placeholder="任务名称" ></el-input> |
|
|
<el-input v-model="addForm.name" placeholder="任务名称" ></el-input> |
|
|
|
|
|
<el-tooltip content="归属项目"><el-tag>{{addForm.projectName}}</el-tag></el-tooltip> |
|
|
|
|
|
<el-divider direction="vertical"></el-divider> |
|
|
|
|
|
<el-tooltip content="上级" > |
|
|
|
|
|
<el-tag v-if="parentTask!=null"><span >{{parentTask.sortLevel}}</span> <span>{{parentTask.name}}</span></el-tag> |
|
|
|
|
|
<el-tag v-else>无上级</el-tag> |
|
|
|
|
|
</el-tooltip> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
</el-row> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
<el-form-item label="排序号" prop="sortLevel"> |
|
|
<el-form-item label="排序号" prop="sortLevel"> |
|
|
<el-input v-model="addForm.sortLevel" placeholder="如1.0或者1.2.3等" ></el-input><span v-if="parentTask" style="color:red">建议:{{parentTask.sortLevel}}.1</span> |
|
|
|
|
|
|
|
|
<el-input v-model="addForm.sortLevel" style="width:30%;" placeholder="如1.0或者1.2.3等" ></el-input> <font style="color:red;">如1.0或者1.2.3等</font> |
|
|
|
|
|
<el-checkbox v-model="addForm.milestone" :true-label="1" :false-label="0">标记为里程碑</el-checkbox> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="计划类型" prop="planType"> |
|
|
|
|
|
<el-select v-model=" addForm.planType"> |
|
|
|
|
|
<el-option v-for="i in this.options.planType" :label="i.optionName" :key="i.optionValue" :value="i.optionValue"></el-option> |
|
|
|
|
|
</el-select> |
|
|
|
|
|
|
|
|
<el-form-item label="前置任务"> |
|
|
|
|
|
<el-tag v-if="addForm.preTaskid" @close="clearPreTask" closable >{{addForm.preTaskname}}</el-tag> |
|
|
|
|
|
<el-button @click.stop="selectTaskVisible=true" >选前置任务</el-button> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="任务类型" prop="taskType"> |
|
|
|
|
|
<el-select v-model=" addForm.taskType"> |
|
|
|
|
|
|
|
|
<el-form-item label="紧急程度" prop="planType"> |
|
|
|
|
|
<el-select v-model="addForm.level"> |
|
|
|
|
|
<el-option v-for="i in options.urgencyLevel" :label="i.optionName" :key="i.optionValue" :value="i.optionValue"></el-option> |
|
|
|
|
|
</el-select> |
|
|
|
|
|
<el-tooltip content="任务类型"><el-select v-model=" addForm.taskType"> |
|
|
<el-option v-for="i in this.options.taskType" :label="i.optionName" :key="i.optionValue" :value="i.optionValue"></el-option> |
|
|
<el-option v-for="i in this.options.taskType" :label="i.optionName" :key="i.optionValue" :value="i.optionValue"></el-option> |
|
|
</el-select> |
|
|
</el-select> |
|
|
|
|
|
</el-tooltip> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="所属故事" prop="menuId"> |
|
|
|
|
|
{{addForm.menuId}}:{{addForm.menuName}} <el-button @click="menuVisible=true" round>选择归属故事</el-button> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
|
|
|
<el-form-item label="紧急程度" prop="level"> |
|
|
|
|
|
<el-radio-group v-model="addForm.level"> |
|
|
|
|
|
<el-radio v-for="i in options.urgencyLevel" :label="i.optionValue" :key="i.optionValue">{{i.optionName}}</el-radio> |
|
|
|
|
|
</el-radio-group> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="里程碑" prop="milestone"> |
|
|
|
|
|
<el-checkbox v-model="addForm.milestone" :true-label="1" :false-label="0">标记为里程碑</el-checkbox> |
|
|
|
|
|
|
|
|
<el-form-item label="所属故事" prop="menuId" id="menuInfoAdd"> |
|
|
|
|
|
{{addForm.menuName}} <el-button @click="menuVisible=true" round>选择归属故事</el-button> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item prop="skill" label="技能要求"> |
|
|
<el-form-item prop="skill" label="技能要求"> |
|
|
<el-button class="useradd-icon" type="text" @click.stop="showSkill()" icon="el-icon-circle-plus-outline">增加</el-button> |
|
|
<el-button class="useradd-icon" type="text" @click.stop="showSkill()" icon="el-icon-circle-plus-outline">增加</el-button> |
|
|
<el-tag class="fs-ft" style="margin-right:10px" v-for="(item,i) in taskSkills" :key="i">{{item.taskSkillName}}</el-tag> |
|
|
<el-tag class="fs-ft" style="margin-right:10px" v-for="(item,i) in taskSkills" :key="i">{{item.taskSkillName}}</el-tag> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="前置任务名称"> |
|
|
|
|
|
<el-tag v-if="addForm.preTaskid" @close="clearPreTask" closable >{{addForm.preTaskname}}</el-tag> |
|
|
|
|
|
<el-button @click.stop="selectTaskVisible=true" >选前置任务</el-button> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<el-form-item label="任务描述" prop="description"> |
|
|
|
|
|
<el-input type="textarea" :autosize="{ minRows: 4, maxRows: 10}" v-model="addForm.description" placeholder="任务描述" ></el-input> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</el-card> |
|
|
|
|
|
<el-card class="box-card" id="planInfoAdd" header="进度计划" shadow="hover"> |
|
|
|
|
|
<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> |
|
|
<el-form-item label="预计时间"> |
|
|
<el-form-item label="预计时间"> |
|
|
|
|
|
<el-tooltip content="计划类型"> |
|
|
|
|
|
<el-select v-model=" addForm.planType" style="width:20%;"> |
|
|
|
|
|
<el-option v-for="i in this.options.planType" :label="i.optionName" :key="i.optionValue" :value="i.optionValue"></el-option> |
|
|
|
|
|
</el-select> |
|
|
|
|
|
</el-tooltip> |
|
|
<el-date-picker |
|
|
<el-date-picker |
|
|
v-model="budgetDateRanger" |
|
|
v-model="budgetDateRanger" |
|
|
@change="onBudgetDateRangerChange" |
|
|
@change="onBudgetDateRangerChange" |
|
|
@ -67,15 +86,6 @@ |
|
|
:picker-options="pickerOptions" |
|
|
:picker-options="pickerOptions" |
|
|
></el-date-picker> |
|
|
></el-date-picker> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
<el-form-item label="预估工作量" prop="budgetWorkload"> |
|
|
|
|
|
<el-input-number 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> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="预估金额" prop="taskOut"> |
|
|
|
|
|
<el-checkbox v-model="addForm.taskOut" @change="onTaskOutChange" true-label="1" false-label="0">外包任务</el-checkbox> |
|
|
|
|
|
<el-input-number v-model="addForm.budgetCost" :precision="2" :step="1000" :min="0" placeholder="预算金额"></el-input-number> 元 |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
<!-- |
|
|
|
|
|
<el-form-item label="实际时间" prop="actStartTime"> |
|
|
<el-form-item label="实际时间" prop="actStartTime"> |
|
|
<el-date-picker |
|
|
<el-date-picker |
|
|
v-model="actDateRanger" |
|
|
v-model="actDateRanger" |
|
|
@ -91,60 +101,72 @@ |
|
|
:picker-options="pickerOptions" |
|
|
:picker-options="pickerOptions" |
|
|
></el-date-picker> |
|
|
></el-date-picker> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
|
|
|
<el-form-item label="实际进度" prop="rate"> |
|
|
|
|
|
<el-slider |
|
|
|
|
|
v-model="addForm.rate" |
|
|
|
|
|
show-input> |
|
|
|
|
|
</el-slider> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
|
---> |
|
|
|
|
|
<el-form-item label="任务描述" prop="description"> |
|
|
|
|
|
<el-input type="textarea" :autosize="{ minRows: 4, maxRows: 10}" v-model="addForm.description" placeholder="任务描述" ></el-input> |
|
|
|
|
|
|
|
|
</el-card> |
|
|
|
|
|
|
|
|
|
|
|
<el-card class="box-card" header="工作量、成本" id="costInfoAdd"> |
|
|
|
|
|
<el-form-item label="预估工作量" prop="budgetWorkload"> |
|
|
|
|
|
<el-input-number 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> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="备注" prop="remarks"> |
|
|
|
|
|
<el-input type="textarea" :autosize="{ minRows: 4, maxRows: 10}" v-model="addForm.remarks" placeholder="备注" ></el-input> |
|
|
|
|
|
|
|
|
<el-form-item label="预估金额" prop="taskOut"> |
|
|
|
|
|
<el-checkbox v-model="addForm.taskOut" @change="onTaskOutChange" true-label="1" false-label="0">是否为众包任务</el-checkbox> |
|
|
|
|
|
<el-input-number v-model="addForm.budgetCost" :precision="2" :step="1000" :min="0" placeholder="预算金额"></el-input-number> 元 |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<!-- |
|
|
|
|
|
<el-form-item label="实际工作量" prop="actWorkload"> |
|
|
|
|
|
<el-input-number v-model="addForm.actWorkload" :precision="2" :step="8" :min="0" placeholder="实际工作量"></el-input-number> <el-tag>参考{{refActWorkload}}人时,{{this.toFixed(refActWorkload/8/20)}}人月</el-tag> |
|
|
|
|
|
|
|
|
<el-form-item label="实际工作量" prop="actWorkload" shadow="hover"> |
|
|
|
|
|
<el-input-number v-model="addForm.actWorkload" :precision="2" :step="8" :min="0" placeholder="实际工作量"></el-input-number> <el-tag>由后台自动计算,无需填写</el-tag> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="实际金额" prop="actCost"> |
|
|
<el-form-item label="实际金额" prop="actCost"> |
|
|
<el-input-number v-model="addForm.actCost" :precision="2" :step="1000" :min="0" placeholder="实际金额"></el-input-number> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
--> |
|
|
|
|
|
<!-- |
|
|
|
|
|
<el-form-item label="任务状态" prop="taskState"> |
|
|
|
|
|
<el-radio-group v-model="addForm.taskState"> |
|
|
|
|
|
<el-radio label="0">待领取</el-radio> |
|
|
|
|
|
<el-radio label="1">已领取执行中</el-radio> |
|
|
|
|
|
<el-radio label="2">已完工</el-radio> |
|
|
|
|
|
<el-radio label="3">已结算</el-radio> |
|
|
|
|
|
</el-radio-group> |
|
|
|
|
|
|
|
|
<el-input-number v-model="addForm.actCost" :precision="2" :step="1000" :min="0" placeholder="实际金额"></el-input-number> <el-tag>由后台自动计算,无需填写</el-tag> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
--> |
|
|
|
|
|
<el-form-item label="其它配置" prop="taskClass"> |
|
|
|
|
|
|
|
|
</el-card> |
|
|
|
|
|
<el-card class="box-card" header="结算信息" id="settleInfoAdd" shadow="hover"> |
|
|
|
|
|
<el-form-item label="是否结算" prop="taskClass"> |
|
|
<el-checkbox v-model="addForm.taskClass" true-label="1" false-label="0">是否需要结算</el-checkbox> |
|
|
<el-checkbox v-model="addForm.taskClass" true-label="1" false-label="0">是否需要结算</el-checkbox> |
|
|
<el-checkbox v-model="addForm.toTaskCenter" true-label="1" false-label="0">发布到互联网任务大厅</el-checkbox> |
|
|
|
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item v-if="addForm.taskClass=='1'" label="结算方案" prop="settlSchemel"> |
|
|
<el-form-item v-if="addForm.taskClass=='1'" label="结算方案" prop="settlSchemel"> |
|
|
<el-select v-model=" addForm.settleSchemel"> |
|
|
<el-select v-model=" addForm.settleSchemel"> |
|
|
<el-option v-for="i in options.xmTaskSettleSchemel" :label="i.optionName" :key="i.optionValue" :value="i.optionValue"></el-option> |
|
|
<el-option v-for="i in options.xmTaskSettleSchemel" :label="i.optionName" :key="i.optionValue" :value="i.optionValue"></el-option> |
|
|
</el-select> |
|
|
</el-select> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<!-- |
|
|
|
|
|
<el-form-item label="任务创建人"> |
|
|
|
|
|
<span>{{userInfo.username}}</span> |
|
|
|
|
|
|
|
|
</el-card> |
|
|
|
|
|
|
|
|
|
|
|
<el-card class="box-card" header="众包" id="taskOutAdd"> |
|
|
|
|
|
<el-form-item label="众包配置" prop="taskOut"> |
|
|
|
|
|
<el-checkbox v-model="addForm.taskOut" @change="onTaskOutChange" true-label="1" false-label="0">外包任务</el-checkbox> |
|
|
|
|
|
<el-checkbox v-model="addForm.toTaskCenter" true-label="1" false-label="0" id="taskOut">发布到互联网任务大厅</el-checkbox> |
|
|
|
|
|
|
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
--> |
|
|
|
|
|
<el-form-item> |
|
|
|
|
|
<el-col :span="24" :offset="8"> |
|
|
|
|
|
<el-button @click.native="handleCancel">取消</el-button> |
|
|
|
|
|
<el-button v-loading="load.add" type="primary" @click.native="addSubmit" :disabled="load.add==true">提交</el-button> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
|
|
|
<el-form-item label="众包流程" prop="taskOut"> |
|
|
|
|
|
<el-steps :active="calcTaskStep" align-center> |
|
|
|
|
|
<el-step title="发布" description="任务创建成功后即发布"></el-step> |
|
|
|
|
|
<el-step title="竞标" description="候选人参与竞标,或者由责任人主动设置候选人"></el-step> |
|
|
|
|
|
<el-step title="执行" description="候选人中标后,成为执行人,执行任务"></el-step> |
|
|
|
|
|
<el-step title="验收" description="任务完成后提交验收,验收通过,即可进行结算"></el-step> |
|
|
|
|
|
<el-step title="结算" description="提交结算申请审批流程,审批过程自动根据审批结果进行结算"></el-step> |
|
|
|
|
|
<el-step title="企业付款" description="结算流程审批通过,自动付款到个人钱包"></el-step> |
|
|
|
|
|
<el-step title="提现" description="企业付款完成后,个人对钱包中余额进行提现"></el-step> |
|
|
|
|
|
</el-steps> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
|
|
|
</el-card> |
|
|
</el-form> |
|
|
</el-form> |
|
|
</el-row> |
|
|
</el-row> |
|
|
|
|
|
|
|
|
|
|
|
<el-row class="page-bottom padding"> |
|
|
|
|
|
<el-button @click.native="handleCancel">取消</el-button> |
|
|
|
|
|
<el-button v-loading="load.add" type="primary" @click.native="addSubmit" :disabled="load.add==true">提交</el-button> |
|
|
|
|
|
</el-row> |
|
|
|
|
|
|
|
|
<!-- <el-drawer append-to-body :title="'技能要求'" :visible.sync="skillVisible" size="80%" append-to-body :close-on-click-modal="false"> |
|
|
<!-- <el-drawer append-to-body :title="'技能要求'" :visible.sync="skillVisible" size="80%" append-to-body :close-on-click-modal="false"> |
|
|
<xm-skill-mng :visible="skillVisible" :task-id="addForm.id" @cancel="skillVisible=false" @getSkill="getSkill"></xm-skill-mng> |
|
|
<xm-skill-mng :visible="skillVisible" :task-id="addForm.id" @cancel="skillVisible=false" @getSkill="getSkill"></xm-skill-mng> |
|
|
</el-drawer> --> |
|
|
</el-drawer> --> |
|
|
|
|
|
|
|
|
|
|
|
<el-drawer append-to-body title="选择负责人" :visible.sync="groupUserSelectVisible" size="80%" :close-on-click-modal="false"> |
|
|
|
|
|
<xm-project-group-select :visible="groupUserSelectVisible" :sel-project="xmProject" :isSelectSingleUser="1" @user-confirm="groupUserSelectConfirm"></xm-project-group-select> |
|
|
|
|
|
</el-drawer> |
|
|
<el-drawer append-to-body title="新增技能" :visible.sync="skillVisible" size="50%" :close-on-click-modal="false"> |
|
|
<el-drawer append-to-body title="新增技能" :visible.sync="skillVisible" size="50%" :close-on-click-modal="false"> |
|
|
<skill-mng :task-skills="taskSkills" :jump="true" @select-confirm="onTaskSkillsSelected"></skill-mng> |
|
|
<skill-mng :task-skills="taskSkills" :jump="true" @select-confirm="onTaskSkillsSelected"></skill-mng> |
|
|
</el-drawer> |
|
|
</el-drawer> |
|
|
@ -156,13 +178,17 @@ |
|
|
<el-drawer title="选中任务" :visible.sync="selectTaskVisible" size="80%" append-to-body :close-on-click-modal="false"> |
|
|
<el-drawer title="选中任务" :visible.sync="selectTaskVisible" size="80%" append-to-body :close-on-click-modal="false"> |
|
|
<xm-task-list :sel-project="xmProject" @task-selected="onSelectedTask"></xm-task-list> |
|
|
<xm-task-list :sel-project="xmProject" @task-selected="onSelectedTask"></xm-task-list> |
|
|
</el-drawer> |
|
|
</el-drawer> |
|
|
|
|
|
|
|
|
|
|
|
<el-drawer append-to-body title="故事明细" :visible.sync="menuDetailVisible" size="80%" :close-on-click-modal="false"> |
|
|
|
|
|
<xm-menu-rich-detail :visible="menuDetailVisible" :reload="true" :xm-menu="{menuId:addForm.menuId,menuName:addForm.menuName}" ></xm-menu-rich-detail> |
|
|
|
|
|
</el-drawer> |
|
|
</section> |
|
|
</section> |
|
|
</template> |
|
|
</template> |
|
|
|
|
|
|
|
|
<script> |
|
|
<script> |
|
|
import util from '@/common/js/util';//全局公共库 |
|
|
import util from '@/common/js/util';//全局公共库 |
|
|
import { listOption } from '@/api/mdp/meta/itemOption';//下拉框数据查询 |
|
|
import { listOption } from '@/api/mdp/meta/itemOption';//下拉框数据查询 |
|
|
import {addTask, addXmTask } from '@/api/xm/core/xmTask'; |
|
|
|
|
|
|
|
|
import {addTask,addXmTask } from '@/api/xm/core/xmTask'; |
|
|
import { mapGetters } from 'vuex'; |
|
|
import { mapGetters } from 'vuex'; |
|
|
import {sn} from '@/common/js/sequence'; |
|
|
import {sn} from '@/common/js/sequence'; |
|
|
import xmSkillMng from '../xmTaskSkill/XmTaskSkillMng'; |
|
|
import xmSkillMng from '../xmTaskSkill/XmTaskSkillMng'; |
|
|
@ -170,12 +196,28 @@ |
|
|
import {batchAddSkill } from '@/api/xm/core/xmTaskSkill'; |
|
|
import {batchAddSkill } from '@/api/xm/core/xmTaskSkill'; |
|
|
import xmMenuSelect from '../xmMenu/XmMenuSelect'; |
|
|
import xmMenuSelect from '../xmMenu/XmMenuSelect'; |
|
|
import XmTaskList from '../xmTask/XmTaskList'; |
|
|
import XmTaskList from '../xmTask/XmTaskList'; |
|
|
|
|
|
import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue'; |
|
|
|
|
|
|
|
|
export default { |
|
|
export default { |
|
|
computed: { |
|
|
computed: { |
|
|
...mapGetters([ |
|
|
...mapGetters([ |
|
|
'userInfo','roles' |
|
|
'userInfo','roles' |
|
|
]), |
|
|
]), |
|
|
|
|
|
calcTaskStep(){ |
|
|
|
|
|
if(!this.addForm.executorUserid){ |
|
|
|
|
|
return 1 |
|
|
|
|
|
}else if(this.addForm.exeUsernames.indexOf('执行中')>=0){ |
|
|
|
|
|
return 2 |
|
|
|
|
|
}else if(this.addForm.exeUsernames.indexOf('已验收')>=0){ |
|
|
|
|
|
return 3 |
|
|
|
|
|
}else if(this.addForm.exeUsernames.indexOf('已验收')>=0){ |
|
|
|
|
|
return 3 |
|
|
|
|
|
}else if(this.addForm.exeUsernames.indexOf('已验收')>=0){ |
|
|
|
|
|
return 3 |
|
|
|
|
|
} if(this.addForm.exeUsernames.indexOf('已结算')>=0){ |
|
|
|
|
|
return 4 |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
}, |
|
|
}, |
|
|
props:['xmTask','visible','xmProject','projectPhase',"parentTask"], |
|
|
props:['xmTask','visible','xmProject','projectPhase',"parentTask"], |
|
|
watch: { |
|
|
watch: { |
|
|
@ -247,15 +289,17 @@ |
|
|
addForm: { |
|
|
addForm: { |
|
|
id:'',name:'',parentTaskid:'',parentTaskname:'',projectId:'',projectName:'',level:'3',sortLevel:'0',executorUserid:'',executorUsername:'', |
|
|
id:'',name:'',parentTaskid:'',parentTaskname:'',projectId:'',projectName:'',level:'3',sortLevel:'0',executorUserid:'',executorUsername:'', |
|
|
preTaskid:'',preTaskname:'',startTime:'',endTime:'',milestone:'',description:'',remarks:'',createUserid:'',createUsername:'',createTime:'',taskOut:'0', |
|
|
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:'quotePrice', |
|
|
|
|
|
|
|
|
rate:0,budgetCost:'',budgetWorkload:'',actCost:'',actWorkload:'',taskState:'0',taskClass:'0',toTaskCenter:'0',actStartTime:'',actEndTime:'',taskType:'kf',planType:'w2',settleSchemel:'quotePrice', |
|
|
|
|
|
|
|
|
skill: [], |
|
|
|
|
|
}, |
|
|
}, |
|
|
/**begin 在下面加自定义属性,记得补上面的一个逗号**/ |
|
|
/**begin 在下面加自定义属性,记得补上面的一个逗号**/ |
|
|
menuVisible:false, |
|
|
menuVisible:false, |
|
|
|
|
|
menuDetailVisible:false, |
|
|
skillVisible: false, |
|
|
skillVisible: false, |
|
|
taskSkills: [], |
|
|
taskSkills: [], |
|
|
selectTaskVisible:false, |
|
|
selectTaskVisible:false, |
|
|
|
|
|
execUserVisible:false, |
|
|
|
|
|
groupUserSelectVisible:false, |
|
|
budgetDateRanger: [ |
|
|
budgetDateRanger: [ |
|
|
util.formatDate.format(beginDate, "yyyy-MM-dd HH:mm:ss"), |
|
|
util.formatDate.format(beginDate, "yyyy-MM-dd HH:mm:ss"), |
|
|
util.formatDate.format(endDate, "yyyy-MM-dd HH:mm:ss") |
|
|
util.formatDate.format(endDate, "yyyy-MM-dd HH:mm:ss") |
|
|
@ -412,13 +456,60 @@ |
|
|
clearPreTask(){ |
|
|
clearPreTask(){ |
|
|
this.addForm.preTaskid='' |
|
|
this.addForm.preTaskid='' |
|
|
this.addForm.preTaskname='' |
|
|
this.addForm.preTaskname='' |
|
|
|
|
|
}, |
|
|
|
|
|
goAnchor :function(id){ |
|
|
|
|
|
document.querySelector("#"+id).scrollIntoView(true); |
|
|
|
|
|
}, |
|
|
|
|
|
setSkills(){ |
|
|
|
|
|
if(this.addForm.taskSkillIds && this.addForm.taskSkillNames){ |
|
|
|
|
|
var skillNames=this.addForm.taskSkillNames.split(","); |
|
|
|
|
|
this.taskSkills=this.addForm.taskSkillIds.split(",").map((item,index)=>{ |
|
|
|
|
|
return { |
|
|
|
|
|
taskId:this.addForm.id, |
|
|
|
|
|
taskSkillId:item, |
|
|
|
|
|
taskSkillName:skillNames[index] |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
showExecusers() { |
|
|
|
|
|
this.execUserVisible = true; |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
toJoin(){ |
|
|
|
|
|
if(this.addForm.exeUserids && this.addForm.exeUserids.indexOf(this.userInfo.userid)>=0){ |
|
|
|
|
|
this.$message.success("你已经加入该任务了"); |
|
|
|
|
|
return; |
|
|
} |
|
|
} |
|
|
|
|
|
this.execUserVisible=true; |
|
|
|
|
|
this.$nextTick(()=>{ |
|
|
|
|
|
this.$refs.execuserMng.toJoin(); |
|
|
|
|
|
|
|
|
|
|
|
}) |
|
|
|
|
|
}, |
|
|
/**end 在上面加自定义方法**/ |
|
|
/**end 在上面加自定义方法**/ |
|
|
|
|
|
|
|
|
|
|
|
showGroupUserSelect:function(){ |
|
|
|
|
|
this.groupUserSelectVisible=true; |
|
|
|
|
|
}, |
|
|
|
|
|
groupUserSelectConfirm:function(users){ |
|
|
|
|
|
if( users==null || users.length==0 ){ |
|
|
|
|
|
this.groupUserSelectVisible=false; |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
this.addForm.createUserid=users[0].userid |
|
|
|
|
|
this.addForm.createUsername=users[0].username |
|
|
|
|
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
toMenu(){ |
|
|
|
|
|
this.menuDetailVisible=true |
|
|
|
|
|
}, |
|
|
},//end method |
|
|
},//end method |
|
|
components: { |
|
|
components: { |
|
|
xmSkillMng, |
|
|
xmSkillMng, |
|
|
skillMng,xmMenuSelect,XmTaskList |
|
|
|
|
|
|
|
|
skillMng,xmMenuSelect,XmTaskList,XmProjectGroupSelect |
|
|
//在下面添加其它组件 'xm-task-edit':XmTaskEdit |
|
|
//在下面添加其它组件 'xm-task-edit':XmTaskEdit |
|
|
}, |
|
|
}, |
|
|
mounted() { |
|
|
mounted() { |
|
|
|