Browse Source

优化

master
陈裕财 4 years ago
parent
commit
d3de687470
  1. 2
      src/views/xm/core/xmGroup/XmGroupAllMng.vue
  2. 12
      src/views/xm/core/xmGroup/XmGroupMng.vue
  3. 2
      src/views/xm/core/xmGroupState/XmGroupStateMng.vue
  4. 4
      src/views/xm/core/xmGroupUser/XmGroupUserMng.vue
  5. 2
      src/views/xm/core/xmIteration/XmIterationInfo.vue
  6. 2
      src/views/xm/core/xmProduct/XmProductInfo.vue
  7. 2
      src/views/xm/core/xmProject/XmProjectInfo.vue
  8. 2
      src/views/xm/core/xmProjectPhase/XmProjectPhaseForProduct.vue
  9. 2
      src/views/xm/core/xmProjectPhase/XmProjectPhaseMng.vue
  10. 243
      src/views/xm/core/xmTask/XmTaskAdd.vue
  11. 36
      src/views/xm/core/xmTask/XmTaskEdit.vue
  12. 57
      src/views/xm/core/xmTask/XmTaskMng.vue

2
src/views/xm/core/xmGroup/XmGroupAllMng.vue

@ -1,6 +1,6 @@
<template>
<section>
<xm-project-group-mng :data-scope="'all'"></xm-project-group-mng>
<xm-group-mng :data-scope="'all'"></xm-group-mng>
</section>
</template>

12
src/views/xm/core/xmGroup/XmGroupMng.vue

@ -25,12 +25,12 @@
<el-row>
<!--编辑 XmGroup xm_group界面-->
<el-drawer title="编辑小组信息" :visible.sync="editFormVisible" size="60%" append-to-body :close-on-click-modal="false">
<xm-project-group-edit op-type="edit" :xm-project-group="editForm" :visible="editFormVisible" @cancel="editFormVisible=false" @submit="afterEditSubmit"></xm-project-group-edit>
<xm-group-edit op-type="edit" :xm-group="editForm" :visible="editFormVisible" @cancel="editFormVisible=false" @submit="afterEditSubmit"></xm-group-edit>
</el-drawer>
<!--新增 XmGroup xm_group界面-->
<el-drawer title="新增小组信息" :visible.sync="addFormVisible" size="60%" append-to-body :close-on-click-modal="false">
<xm-project-group-edit op-type="add" :xm-project-group="addForm" :visible="addFormVisible" @cancel="addFormVisible=false" @submit="afterAddSubmit"></xm-project-group-edit>
<xm-group-edit op-type="add" :xm-group="addForm" :visible="addFormVisible" @cancel="addFormVisible=false" @submit="afterAddSubmit"></xm-group-edit>
</el-drawer>
<el-dialog
@ -163,17 +163,17 @@
</el-drawer>
<el-drawer v-if="currNodeType=='group'&&editForm.groupName" :title="editForm.groupName+'小组进度数据查看'" center :visible.sync="xmGroupStateVisible" size="80%" :close-on-click-modal="false" append-to-body>
<xm-project-group-state-mng :xm-project-group="editForm" :visible="xmGroupStateVisible" ></xm-project-group-state-mng>
<xm-group-state-mng :xm-group="editForm" :visible="xmGroupStateVisible" ></xm-group-state-mng>
</el-drawer>
<el-drawer v-else-if="selProject" :title="selProject.name+'小组进度数据查看'" center :visible.sync="xmGroupStateVisible" size="80%" :close-on-click-modal="false" append-to-body>
<xm-project-group-state-mng :sel-project="selProject" :visible="xmGroupStateVisible" ></xm-project-group-state-mng>
<xm-group-state-mng :sel-project="selProject" :visible="xmGroupStateVisible" ></xm-group-state-mng>
</el-drawer>
<el-drawer v-else-if="!selProject && xmProduct" :title="xmProduct.productName+'小组进度数据查看'" center :visible.sync="xmGroupStateVisible" size="80%" :close-on-click-modal="false" append-to-body>
<xm-project-group-state-mng :xm-product="xmProduct" :visible="xmGroupStateVisible" ></xm-project-group-state-mng>
<xm-group-state-mng :xm-product="xmProduct" :visible="xmGroupStateVisible" ></xm-group-state-mng>
</el-drawer>
<el-drawer v-if="currNodeType=='group'&&editForm.groupName" center :title="(editForm==null?editForm.groupName:'')+'小组成员管理'" :visible.sync="groupUserVisible" size="80%" :close-on-click-modal="false" append-to-body>
<xm-project-group-user-mng :xm-project-group="editForm" :visible="groupUserVisible" ></xm-project-group-user-mng>
<xm-group-user-mng :xm-group="editForm" :visible="groupUserVisible" ></xm-group-user-mng>
</el-drawer>
<el-drawer title="选中项目" :visible.sync="selectProjectVisible" size="80%" append-to-body :close-on-click-modal="false">
<xm-project-list @project-confirm="onPorjectConfirm"></xm-project-list>

2
src/views/xm/core/xmGroupState/XmGroupStateMng.vue

@ -44,7 +44,7 @@
:visible.sync="overviewVisible"
size="60%"
>
<xm-project-group-state-overview :xm-project-group-state="editForm"></xm-project-group-state-overview>
<xm-group-state-overview :xm-group-state="editForm"></xm-group-state-overview>
</el-drawer>
</section>

4
src/views/xm/core/xmGroupUser/XmGroupUserMng.vue

@ -44,12 +44,12 @@
<el-row>
<!--编辑 XmGroupUser xm_group_user界面-->
<el-drawer title="编辑组员信息" :visible.sync="editFormVisible" size="60%" append-to-body :close-on-click-modal="false">
<xm-project-group-user-edit op-type="edit" :xm-project-group-user="editForm" :visible="editFormVisible" @cancel="editFormVisible=false" @submit="afterEditSubmit"></xm-project-group-user-edit>
<xm-group-user-edit op-type="edit" :xm-group-user="editForm" :visible="editFormVisible" @cancel="editFormVisible=false" @submit="afterEditSubmit"></xm-group-user-edit>
</el-drawer>
<!--新增 XmGroupUser xm_group_user界面-->
<el-drawer title="新增组员信息" :visible.sync="addFormVisible" size="60%" append-to-body :close-on-click-modal="false">
<xm-project-group-user-edit op-type="add" :visible="addFormVisible" @cancel="addFormVisible=false" @submit="afterAddSubmit"></xm-project-group-user-edit>
<xm-group-user-edit op-type="add" :visible="addFormVisible" @cancel="addFormVisible=false" @submit="afterAddSubmit"></xm-group-user-edit>
</el-drawer>
</el-row>
</section>

2
src/views/xm/core/xmIteration/XmIterationInfo.vue

@ -41,7 +41,7 @@
<xm-question v-if="infotype=='缺陷'" :qtype="'bug'" :xm-iteration='xmIteration' ref="xmQuestion"></xm-question>
<xm-group-mng v-if="infotype=='团队'" :xm-iteration="xmIteration"></xm-group-mng>
<el-drawer title="选中团队成员" :visible.sync="groupUserVisible" size="50%" append-to-body :close-on-click-modal="false">
<xm-project-group-select :xm-iteration="xmIteration" :visible="groupUserVisible" is-select-multi-user="1" @user-confirm="onUserSelected"></xm-project-group-select>
<xm-group-select :xm-iteration="xmIteration" :visible="groupUserVisible" is-select-multi-user="1" @user-confirm="onUserSelected"></xm-group-select>
</el-drawer>
</el-row>
</section>

2
src/views/xm/core/xmProduct/XmProductInfo.vue

@ -158,7 +158,7 @@
<xm-env-list v-if="infotype=='环境清单'" :xm-product="xmProduct"></xm-env-list>
<xm-question v-if="infotype=='风险'" :qtype="'risk'" :xm-product='xmProduct' ref="xmRisk"></xm-question>
<el-drawer title="选中团队成员" :visible.sync="groupUserVisible" size="50%" append-to-body :close-on-click-modal="false">
<xm-project-group-select :xm-product="xmProduct" :visible="groupUserVisible" is-select-multi-user="1" @user-confirm="onUserSelected"></xm-project-group-select>
<xm-group-select :xm-product="xmProduct" :visible="groupUserVisible" is-select-multi-user="1" @user-confirm="onUserSelected"></xm-group-select>
</el-drawer>
</el-row>
</section>

2
src/views/xm/core/xmProject/XmProjectInfo.vue

@ -157,7 +157,7 @@
<xm-env-list v-if="infotype=='环境清单'" :sel-project="selProject"></xm-env-list>
<xm-question v-if="infotype=='风险'" :qtype="'risk'" :sel-project='selProject' ref="xmRisk"></xm-question>
<el-drawer title="选中团队成员" :visible.sync="groupUserVisible" size="50%" append-to-body :close-on-click-modal="false">
<xm-project-group-select :sel-project="selProject" :visible="groupUserVisible" is-select-multi-user="1" @user-confirm="onUserSelected"></xm-project-group-select>
<xm-group-select :sel-project="selProject" :visible="groupUserVisible" is-select-multi-user="1" @user-confirm="onUserSelected"></xm-group-select>
</el-drawer>
</el-row>
</section>

2
src/views/xm/core/xmProjectPhase/XmProjectPhaseForProduct.vue

@ -169,7 +169,7 @@
<xm-record :obj-type="'phase'" :visible="xmRecordVisible" :product-id="xmProduct?xmProduct.id:null" :obj-id="editForm.id" :simple="1"></xm-record>
</el-drawer>
<el-drawer append-to-body title="选择负责人" :visible.sync="groupUserSelectVisible" size="60%" :close-on-click-modal="false">
<xm-project-group-select :visible="groupUserSelectVisible" :xm-product="xmProduct" :isSelectSingleUser="1" @user-confirm="groupUserSelectConfirm"></xm-project-group-select>
<xm-group-select :visible="groupUserSelectVisible" :xm-product="xmProduct" :isSelectSingleUser="1" @user-confirm="groupUserSelectConfirm"></xm-group-select>
</el-drawer>
<el-drawer append-to-body title="需求选择" :visible.sync="menuVisible" size="60%" :close-on-click-modal="false">

2
src/views/xm/core/xmProjectPhase/XmProjectPhaseMng.vue

@ -186,7 +186,7 @@
<xm-record :obj-type="'phase'" :visible="xmRecordVisible" :project-id="selProject?selProject.id:null" :obj-id="editForm.id" :simple="1"></xm-record>
</el-drawer>
<el-drawer append-to-body title="选择负责人" :visible.sync="groupUserSelectVisible" size="60%" :close-on-click-modal="false">
<xm-project-group-select :visible="groupUserSelectVisible" :sel-project="selProject" :isSelectSingleUser="1" @user-confirm="groupUserSelectConfirm"></xm-project-group-select>
<xm-group-select :visible="groupUserSelectVisible" :sel-project="selProject" :isSelectSingleUser="1" @user-confirm="groupUserSelectConfirm"></xm-group-select>
</el-drawer>
<el-drawer append-to-body title="需求选择" :visible.sync="menuVisible" size="60%" :close-on-click-modal="false">

243
src/views/xm/core/xmTask/XmTaskAdd.vue

@ -1,14 +1,5 @@
<template>
<section class="page-container padding">
<el-row class="padding">
快速导航
<el-link type="text" @click="goAnchor('baseInfo')">&nbsp;&nbsp;&nbsp;基础信息&nbsp;&nbsp;&nbsp;</el-link>
<el-link type="text" @click="goAnchor('planInfo')">&nbsp;&nbsp;&nbsp;进度计划&nbsp;&nbsp;&nbsp;</el-link>
<el-link type="text" @click="goAnchor('costInfo')">&nbsp;&nbsp;&nbsp;工作量与成本&nbsp;&nbsp;&nbsp;</el-link>
<el-link type="text" @click="goAnchor('settleInfo')">&nbsp;&nbsp;&nbsp;结算信息&nbsp;&nbsp;&nbsp;</el-link>
<el-link type="text" @click="goAnchor('menuInfo')">&nbsp;&nbsp;&nbsp;需求明细&nbsp;&nbsp;&nbsp;</el-link>
<el-link type="text" @click="goAnchor('taskOut')">&nbsp;&nbsp;&nbsp;众包&nbsp;&nbsp;&nbsp;</el-link>
</el-row>
<section class="page-container padding">
<el-row>
<el-steps :active="calcTaskStep" finish-status="success" simple>
<el-step title="发布" description="任务创建成功后即发布"></el-step>
@ -24,24 +15,29 @@
<!--新增界面 XmTask xm_task-->
<el-form :model="addForm" label-width="100px" :rules="addFormRules" ref="addForm">
<el-card class="box-card" header="基础信息" id="baseInfoAdd" shadow="hover">
<el-form-item label="类型" prop="ntype">
<el-radio :disabled="parentTask&&parentTask.id&&parentTask.ntype==='0'" v-model="addForm.ntype" label="1">计划项</el-radio>
<el-radio v-model="addForm.ntype" label="0">任务</el-radio>
</el-form-item>
<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-col :span="24" style="padding-left:10px;">
<el-input style="width:100%;" v-model="addForm.name" placeholder="名称" ></el-input>
<br>
<el-divider direction="vertical"></el-divider>
<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>&nbsp;&nbsp;<span>{{parentTask.name}}</span></el-tag>
<el-tag v-else>无上级</el-tag>
</el-tooltip>
<el-tag v-if="parentTask!=null"><span >{{parentTask.sortLevel}}</span>&nbsp;&nbsp;<span>{{parentTask.name}}</span></el-tag>
<el-tag v-else>无上级</el-tag>
</el-tooltip>
</el-col>
</el-row>
</el-form-item>
<el-form-item label="排序号" prop="sortLevel">
<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 label="序号" prop="sortLevel">
<el-input v-model="addForm.sortLevel" style="width:30%;" placeholder="如1.0或者1.2.3等" ></el-input> <el-checkbox v-model="addForm.milestone" :true-label="1" :false-label="0">里程碑</el-checkbox>
</el-form-item>
<div v-if="addForm.ntype!='1'">
<div>
<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>
@ -94,48 +90,30 @@
:default-time="['00:00:00','23:59:59']"
:picker-options="pickerOptions"
></el-date-picker>
</el-form-item>
<el-form-item label="实际时间" prop="actStartTime">
<el-date-picker
v-model="actDateRanger"
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="rate">
<el-slider
v-model="addForm.rate"
show-input>
</el-slider>
</el-form-item>
</el-form-item>
</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 label="预估金额" prop="taskOut">
<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-input-number v-model="addForm.budgetCost" :precision="2" :step="1000" :min="0" placeholder="预算金额"></el-input-number>
</el-form-item>
<el-form-item label="实际工作量" prop="actWorkload" shadow="hover">
<el-input-number disabled v-model="addForm.actWorkload" :precision="2" :step="8" :min="0" placeholder="实际工作量"></el-input-number> <el-tag>由后台自动计算无需填写</el-tag>
</el-form-item>
<el-form-item label="实际金额" prop="actCost">
<el-input-number disabled 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="taskOut">
<el-row v-if="addForm.taskOut!=='1'">
工时单价&nbsp;<el-input-number style="width:200px;" v-model="addForm.uniInnerPrice" :precision="2" :step="10" :min="0" placeholder="工时单价"></el-input-number> /人时
</el-row>
<el-row v-if="addForm.taskOut==='1'">
工时单价&nbsp;<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-row>
<el-row>
预估金额&nbsp;<el-input-number style="width:200px;" v-model="addForm.budgetCost" :precision="2" :step="100" :min="0" placeholder="预算金额"></el-input-number>
</el-row>
</el-form-item>
</el-card>
<el-card class="box-card" header="结算信息" id="settleInfoAdd" shadow="hover" v-if="addForm.ntype!='1'">
<el-form-item label="是否结算" prop="taskClass">
<el-form-item label="" prop="taskClass">
<el-checkbox v-model="addForm.taskClass" true-label="1" false-label="0">是否需要结算</el-checkbox>
</el-form-item>
<el-form-item v-if="addForm.taskClass=='1'" label="结算方案" prop="settlSchemel">
@ -146,11 +124,8 @@
</el-card>
<el-card class="box-card" header="众包" id="taskOutAdd" v-if="addForm.ntype!='1'">
<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-checkbox v-model="addForm.toTaskCenter" true-label="1" false-label="0" id="taskOut">发布到互联网任务大厅</el-checkbox>
<el-form-item label="众包流程" prop="taskOut">
<el-steps :active="calcTaskStep" align-center>
<el-step title="发布" description="任务创建成功后即发布"></el-step>
@ -168,13 +143,9 @@
<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">
<xm-skill-mng :visible="skillVisible" :task-id="addForm.id" @cancel="skillVisible=false" @getSkill="getSkill"></xm-skill-mng>
</el-drawer> -->
</el-row>
<el-drawer append-to-body title="选择负责人" :visible.sync="groupUserSelectVisible" size="60%" :close-on-click-modal="false">
<xm-project-group-select :visible="groupUserSelectVisible" :sel-project="xmProject" :isSelectSingleUser="1" @user-confirm="groupUserSelectConfirm"></xm-project-group-select>
<xm-group-select :visible="groupUserSelectVisible" :sel-project="xmProject" :isSelectSingleUser="1" @user-confirm="groupUserSelectConfirm"></xm-group-select>
</el-drawer>
<el-drawer append-to-body title="新增技能" :visible.sync="skillVisible" size="60%" :close-on-click-modal="false">
<skill-mng :task-skills="taskSkills" :jump="true" @select-confirm="onTaskSkillsSelected"></skill-mng>
@ -238,26 +209,7 @@
'visible':function(visible) {
this.fileVisible = visible;
if(visible==true){
if(this.parentTask){
this.addForm=Object.assign(this.addForm, this.parentTask);
this.addForm.parentTaskid=this.parentTask.id
this.addForm.parentTaskname=this.parentTask.name;
} else{
this.addForm.taskType=this.projectPhase.taskType
}
this.addForm.projectId=this.xmProject.id
this.addForm.projectName=this.xmProject.name
this.addForm.projectPhaseId=this.projectPhase.id
this.addForm.projectPhaseName=this.projectPhase.phaseName
if(this.parentTask ){
if(this.parentTask.children){
this.addForm.sortLevel=this.parentTask.sortLevel+"."+(this.parentTask.children.length+1)
}else{
this.addForm.sortLevel=this.parentTask.sortLevel+"."+1
}
}
this.addForm.id = sn();
//
this.initData();
}
},
},
@ -276,22 +228,22 @@
load:{ list: false, edit: false, del: false, add: false },//...
addFormRules: {
name: [
{ required: true, message: '任务名称不能为空', trigger: 'blur' }
{ required: true, message: '任务名称不能为空', trigger: 'change' }
],
taskState: [
{ required: true, message: '请选择任务状态', trigger: 'blur' }
{ required: true, message: '请选择任务状态', trigger: 'change' }
],
taskType: [
{ required: true, message: '请选择任务类型', trigger: 'blur' }
{ required: true, message: '请选择任务类型', trigger: 'change' }
],
taskClass: [
{ required: true, message: '请选择是否结算', trigger: 'blur' }
{ required: true, message: '请选择是否结算', trigger: 'change' }
],
toTaskCenter: [
{ required: true, message: '请选择是否发布', trigger: 'blur' }
{ required: true, message: '请选择是否发布', trigger: 'change' }
],
sortLevel: [
{ required: true, message: '排序号不能为空', trigger: 'blur' }
{ required: true, message: '排序号不能为空', trigger: 'change' }
],
// execuser:[{
// validator: validateExec, trigger: 'blur'
@ -332,9 +284,7 @@
this.$refs.addForm.validate((valid) => {
if (valid) {
this.$confirm('确认提交吗?', '提示', {}).then(() => {
let params = Object.assign({}, this.addForm);
params.projectPhaseId=this.projectPhase.id
params.projectPhaseName=this.projectPhase.phaseName
let params = Object.assign({}, this.addForm);
if(this.budgetDateRanger.length>=2){
params.startTime=this.budgetDateRanger[0]
params.endTime=this.budgetDateRanger[1]
@ -346,13 +296,14 @@
addTask(params).then((res) => {
this.load.add=false
var tips=res.data.tips;
if(tips.isOk){
//this.$refs['addForm'].resetFields();
if(tips.isOk){
this.$emit('submit',res.data.data);// @submit="afterAddSubmit"
}
this.$notify({showClose: true, message: tips.msg, type: tips.isOk?'success':'error' });
}).catch( err => this.load.add=false);
});
}else{
this.$notify({showClose: true, message:"表单检查不通过,请修改后提交", type: 'error' });
}
});
},
@ -376,24 +327,15 @@
onTaskSkillsSelected(skills) {
let taskSkill = [];
skills.forEach(i=>{
let obj = {
taskId: this.addForm.id,
let obj = {
taskSkillId: i.skillId,
taskSkillName: i.skillName,
skillRemarks: '',
};
taskSkill.push(obj);
});
this.taskSkills = taskSkill;
batchAddSkill(taskSkill).then((res) => {
this.load.add=false
var tips=res.data.tips;
if(tips.isOk){
this.skillVisible = false;
// this.getXmTasks();
}
this.$notify({showClose: true, message: tips.msg, type: tips.isOk?'success':'error' });
}).catch( err => this.load.add=false);
this.taskSkills = taskSkill;
this.skillVisible=false;
},
getWeekday(first, last) {
@ -439,20 +381,11 @@
this.addForm.budgetCost=this.addForm.budgetWorkload * price
},
onBudgetWorkloadChange(){
var price=80;
if(this.addForm.taskOut=='1'){
if( this.projectPhase && this.projectPhase.phaseBudgetOutUserPrice){
price=this.projectPhase.phaseBudgetOutUserPrice
}else if( this.xmProject && this.xmProject.planOutUserPrice){
price=this.xmProject.planOutUserPrice
}
}else{
if( this.projectPhase && this.projectPhase.phaseBudgetInnerUserPrice){
price=this.projectPhase.phaseBudgetInnerUserPrice
}else if( this.xmProject && this.xmProject.planInnerUserPrice){
price=this.xmProject.planInnerUserPrice
}
}
var price=this.addForm.uniInnerPrice?this.addForm.uniInnerPrice:80;
if(this.addForm.taskOut=='1'){
price=this.addForm.uniOutPrice? this.addForm.uniOutPrice:80;
}
this.addForm.budgetCost=this.addForm.budgetWorkload * price
},
onTaskOutChange(){
@ -517,7 +450,37 @@
this.groupUserSelectVisible=false;
},
initData(){
if(this.parentTask){
this.addForm=Object.assign(this.addForm, this.parentTask);
this.addForm.parentTaskid=this.parentTask.id
this.addForm.parentTaskname=this.parentTask.name;
this.addForm.taskType=this.parentTask.taskType
this.addForm.planType=this.parentTask.planType
}
if(this.xmProject){
this.addForm.projectId=this.xmProject.id
this.addForm.projectName=this.xmProject.name
}
if(this.parentTask ){
if(this.parentTask.childrenCnt){
this.addForm.sortLevel=this.parentTask.sortLevel+"."+(this.parentTask.childrenCnt+1)
}else{
this.addForm.sortLevel=this.parentTask.sortLevel+"."+1
}
}
if(!this.addForm.uniInnerPrice){
this.addForm.uniInnerPrice=80
}
if(this.addForm.taskOut!='1'){
this.addForm.taskOut='0'
}
if(!this.addForm.uniOutPrice){
this.addForm.uniOutPrice=100
}
this.addForm.id=null;
},
toMenu(){
this.menuDetailVisible=true
},
@ -527,37 +490,9 @@
skillMng,xmMenuSelect,XmTaskList,XmGroupSelect
// 'xm-task-edit':XmTaskEdit
},
mounted() {
console.log("taskAdd_mount");
if(this.parentTask){
this.addForm=Object.assign(this.addForm, this.parentTask);
this.addForm.parentTaskid=this.parentTask.id
this.addForm.parentTaskname=this.parentTask.name;
this.addForm.taskType=this.parentTask.taskType
this.addForm.planType=this.parentTask.planType
}else{
if(this.projectPhase){
this.addForm.taskType=this.projectPhase.taskType
}
}
if(this.xmProject){
this.addForm.projectId=this.xmProject.id
this.addForm.projectName=this.xmProject.name
}
if(this.projectPhase){
this.addForm.projectPhaseId=this.projectPhase.id
this.addForm.projectPhaseName=this.projectPhase.phaseName
}
if(this.parentTask ){
if(this.parentTask.childrenCnt){
this.addForm.sortLevel=this.parentTask.sortLevel+"."+(this.parentTask.childrenCnt.length+1)
}else{
this.addForm.sortLevel=this.parentTask.sortLevel+"."+1
}
}
this.addForm.id = sn();
listOption([{categoryId:'all',itemCode:'planType'},{categoryId:'all',itemCode:'taskType'},{categoryId:'all',itemCode:'urgencyLevel'},{categoryId:'all',itemCode:'priority'},{categoryId:'all',itemCode:'xmTaskSettleSchemel'}]).then(res=>{
mounted() {
this.initData();
listOption([{categoryId:'all',itemCode:'planType'},{categoryId:'all',itemCode:'taskType'},{categoryId:'all',itemCode:'urgencyLevel'},{categoryId:'all',itemCode:'priority'},{categoryId:'all',itemCode:'xmTaskSettleSchemel'}]).then(res=>{
this.options=res.data.data;
})
/**在下面写其它函数***/

36
src/views/xm/core/xmTask/XmTaskEdit.vue

@ -24,6 +24,10 @@
<!--新增界面 XmTask xm_task-->
<el-form :model="editForm" label-width="100px" :rules="editFormRules" ref="editForm">
<el-card class="box-card" header="基础信息" id="baseInfo" shadow="hover">
<el-form-item label="类型" prop="ntype">
<el-radio v-model="editForm.ntype" label="1">计划项</el-radio>
<el-radio v-model="editForm.ntype" label="0">任务</el-radio>
</el-form-item>
<el-form-item label="名称" prop="name">
<el-row>
<el-col :span="24" style="padding-left:10px;">
@ -34,7 +38,7 @@
</el-col>
</el-row>
</el-form-item>
<el-form-item label="序号" prop="sortLevel">
<el-form-item label="序号" prop="sortLevel">
<el-input v-model="editForm.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="editForm.milestone" :true-label="1" :false-label="0">标记为里程碑</el-checkbox>
</el-form-item>
@ -73,7 +77,7 @@
<el-button @click="showGroupUserSelect(editForm)" icon="el-icon-setting">设置负责人</el-button>
</el-form-item>
<el-form-item label="任务执行人">
<el-tag style="margin-left:10px;border-radius:30px;" >{{editForm.exeUsernames}}</el-tag>
<el-tag v-if="editForm.exeUsernames" style="margin-left:10px;border-radius:30px;" >{{editForm.exeUsernames}}</el-tag>
<el-button @click="showExecusers(editForm)" icon="el-icon-s-data">候选人管理</el-button>
<el-button type="primary" @click="toJoin" icon="el-icon-plus">我要加入</el-button>
</el-form-item>
@ -124,22 +128,29 @@
<el-card class="box-card" header="工作量、成本" id="costInfo">
<el-form-item label="预估工作量" prop="budgetWorkload">
<el-input-number v-model="editForm.budgetWorkload" @change="onBudgetWorkloadChange" :precision="2" :step="8" :min="0" placeholder="预计总工作量(人时,不包括下一级)"></el-input-number> <el-tag>人时{{this.toFixed(editForm.budgetWorkload/8/20)}}人月</el-tag>
<font color="red">人月单价内购: {{projectPhase.phaseBudgetInnerUserPrice}} &nbsp;&nbsp; 外购: {{projectPhase.phaseBudgetOutUserPrice}}</font>
<el-input-number style="width:200px;" v-model="editForm.budgetWorkload" @change="onBudgetWorkloadChange" :precision="2" :step="8" :min="0" placeholder="预计总工作量(人时,不包括下一级)"></el-input-number> <el-tag>人时{{this.toFixed(editForm.budgetWorkload/8/20)}}人月</el-tag>
<br>
<el-checkbox v-model="editForm.taskOut" @change="onTaskOutChange" true-label="1" false-label="0">是否为众包任务</el-checkbox>
</el-form-item>
<el-form-item label="预估金额" prop="taskOut">
<el-checkbox v-model="editForm.taskOut" @change="onTaskOutChange" true-label="1" false-label="0">是否为众包任务</el-checkbox>
<el-input-number v-model="editForm.budgetCost" :precision="2" :step="1000" :min="0" placeholder="预算金额"></el-input-number>
<el-row v-if="editForm.taskOut!=='1'">
工时单价&nbsp;<el-input-number style="width:200px;" v-model="editForm.uniInnerPrice" :precision="2" :step="10" :min="0" placeholder="工时单价"></el-input-number> /人时
</el-row>
<el-row v-if="editForm.taskOut==='1'">
工时单价&nbsp;<el-input-number style="width:200px;" v-if="editForm.taskOut==='1'" v-model="editForm.uniOutPrice" :precision="2" :step="10" :min="0" placeholder="外发工时单价"></el-input-number> /人时
</el-row>
预估金额&nbsp;<el-input-number style="width:200px;" v-model="editForm.budgetCost" :precision="2" :step="1000" :min="0" placeholder="预算金额"></el-input-number>
</el-form-item>
<el-form-item label="实际工作量" prop="actWorkload" shadow="hover">
<el-input-number disabled v-model="editForm.actWorkload" :precision="2" :step="8" :min="0" placeholder="实际工作量"></el-input-number> <el-tag>由后台自动计算无需填写</el-tag>
<el-input-number style="width:200px;" disabled v-model="editForm.actWorkload" :precision="2" :step="8" :min="0" placeholder="实际工作量"></el-input-number> <el-tag>由后台自动计算无需填写</el-tag>
</el-form-item>
<el-form-item label="实际金额" prop="actCost">
<el-input-number disabled v-model="editForm.actCost" :precision="2" :step="1000" :min="0" placeholder="实际金额"></el-input-number> <el-tag>由后台自动计算无需填写</el-tag>
<el-input-number style="width:200px;" disabled v-model="editForm.actCost" :precision="2" :step="1000" :min="0" placeholder="实际金额"></el-input-number> <el-tag>由后台自动计算无需填写</el-tag>
</el-form-item>
</el-card>
<el-card class="box-card" header="结算信息" id="settleInfo" shadow="hover" v-if="editForm.ntype!='1'">
<el-form-item label="是否结算" prop="taskClass">
<el-form-item label="" prop="taskClass">
<el-checkbox v-model="editForm.taskClass" true-label="1" false-label="0">是否需要结算</el-checkbox>
</el-form-item>
<el-form-item v-if="editForm.taskClass=='1'" label="结算方案" prop="settlSchemel">
@ -150,9 +161,8 @@
</el-card>
<el-card class="box-card" header="众包" id="taskOut" v-if="editForm.ntype!='1'">
<el-form-item label="众包配置" prop="taskOut">
<el-checkbox v-model="editForm.taskOut" @change="onTaskOutChange" true-label="1" false-label="0">外包任务</el-checkbox>
<el-checkbox v-model="editForm.toTaskCenter" true-label="1" false-label="0" id="taskOut">发布到互联网任务大厅</el-checkbox>
<el-form-item label="众包配置" prop="toTaskCenter">
<el-checkbox v-model="editForm.toTaskCenter" true-label="1" false-label="0" id="toTaskCenter">发布到互联网任务大厅</el-checkbox>
</el-form-item>
<el-form-item label="众包流程" prop="taskOut">
@ -178,7 +188,7 @@
<xm-skill-mng :visible="skillVisible" :task-id="editForm.id" @cancel="skillVisible=false" @getSkill="getSkill"></xm-skill-mng>
</el-drawer> -->
<el-drawer append-to-body title="选择负责人" :visible.sync="groupUserSelectVisible" size="60%" :close-on-click-modal="false">
<xm-project-group-select :visible="groupUserSelectVisible" :sel-project="xmProject" :isSelectSingleUser="1" @user-confirm="groupUserSelectConfirm"></xm-project-group-select>
<xm-group-select :visible="groupUserSelectVisible" :sel-project="xmProject" :isSelectSingleUser="1" @user-confirm="groupUserSelectConfirm"></xm-group-select>
</el-drawer>
<el-drawer append-to-body title="新增技能" :visible.sync="skillVisible" size="60%" :close-on-click-modal="false">
<skill-mng :task-skills="taskSkills" :jump="true" @select-confirm="onTaskSkillsSelected"></skill-mng>

57
src/views/xm/core/xmTask/XmTaskMng.vue

@ -1,17 +1,8 @@
<template>
<section class="padding">
<el-row v-show="batchEditVisible == false">
<el-col v-if="isTaskCenter != '1' && currentProject" :span="4">
<xm-project-phase-mng
:sel-project="currentProject"
:xm-iteration="xmIteration"
:simple="true"
@row-click="projectPhaseRowClick"
@clear-select="clearSelectPhase"
></xm-project-phase-mng>
</el-col>
<el-row v-show="batchEditVisible == false">
<el-col
:span="isTaskCenter != '1' && currentProject ? 20 : 24"
:span="24"
class="padding-left"
:class="{ 'flex-box': displayType == 'agil' }"
>
@ -908,12 +899,12 @@
:size="650"
:close-on-click-modal="false"
>
<xm-project-group-select
<xm-group-select
:visible="menuGroupUser"
:sel-project="selProject"
:isSelectSingleUser="1"
@user-confirm="seleConfirm"
></xm-project-group-select>
></xm-group-select>
</el-drawer>
<el-drawer
append-to-body
@ -922,12 +913,12 @@
:size="650"
:close-on-click-modal="false"
>
<xm-project-group-select
<xm-group-select
:visible="menuExecutor"
:sel-project="selProject"
:isSelectSingleUser="1"
@user-confirm="seleExecutor"
></xm-project-group-select>
></xm-group-select>
</el-drawer>
<el-drawer
append-to-body
@ -949,12 +940,12 @@
size="60%"
:close-on-click-modal="false"
>
<xm-project-group-select
<xm-group-select
:visible="groupUserSelectVisible"
:sel-project="selProject"
:isSelectSingleUser="1"
@user-confirm="groupUserSelectConfirm"
></xm-project-group-select>
></xm-group-select>
</el-drawer>
<el-drawer
@ -1594,29 +1585,19 @@ export default {
},
checkCanAdd( parentTask){
if(parentTask && parentTask.projectPhaseId){
return true;
}
if(!parentTask||!parentTask.id){
if(this.projectPhase && this.projectPhase.ntype!='1'){
return true;
if(parentTask && parentTask.id){
if(parentTask.ntype=='0'){
this.$notify({
showClose: true,
message: "当前为任务节点,任务节点下不能再创建新的子项",
type: "error",
});
return false;
}
return true;
}
if (!this.projectPhase||!this.projectPhase.id) {
this.$notify({
showClose: true,
message: "请在左边计划树中选择一个项目计划(不包括计划集)",
type: "error",
});
return false;
}else if(this.projectPhase.ntype=='1'){
this.$notify({
showClose: true,
message: "您当前选中的计划【"+this.projectPhase.phaseName+"】是计划集,计划集下不能创建任务,请重新在右边计划树中选择一个计划",
type: "error",
});
return false;
}
return true;
},
showSubAdd(row) {

Loading…
Cancel
Save