|
@@ -2,54 +2,76 @@
|
|
|
<div>
|
|
|
<div style="height: 72vh;overflow: auto;">
|
|
|
<el-form ref="form1" :model="addForm" :rules="taskRules" label-width="120px">
|
|
|
- <el-form-item :label="$t('subordinatetotheproject')" v-if="showOrNot" prop="projectId">
|
|
|
- <el-select v-model="addForm.projectId" :placeholder="$t('defaultText.pleaseChoose')" @change="agentCreatesEvents(1)" filterable="true" style="width:100%;">
|
|
|
- <el-option-group v-for="group in integrationProjectList" :key="group.label" :label="group.label">
|
|
|
- <el-option v-for="item in group.peojectList" :key="item.id" :label="item.projectName + '\u3000' + item.projectCode" :value="item.id">
|
|
|
- <span style="float: left; color: #8492a6; font-size: 13px;">{{ item.projectCode }}</span>
|
|
|
- <span style="float: right;">{{ item.projectName }}</span>
|
|
|
- </el-option>
|
|
|
- </el-option-group>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item :label="$t('suoShuRenWuFenZu')" v-if="showOrNot" prop="groupId">
|
|
|
- <el-select v-model="addForm.groupId" :placeholder="$t('defaultText.pleaseChoose')" @change="agentCreatesEvents(2)" filterable="true" style="width:100%;">
|
|
|
- <el-option v-for="item in groupList" :key="item.id" :label="item.name" :value="item.id"></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item :label="$t('suoShuRenWuLieBiao')" v-if="showOrNot" prop="stagesId">
|
|
|
- <el-select v-model="addForm.stagesId" :placeholder="$t('defaultText.pleaseChoose')" filterable="true" style="width:100%;">
|
|
|
- <el-option v-for="item in stageList" :key="item.id" :label="item.stagesName" :value="item.id"></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <!--子任务需要选择任务列表 -->
|
|
|
- <el-form-item :label="$t('tasklist')" prop="stages" v-if="addForm.parentTid != null">
|
|
|
- <el-select v-model="addForm.stagesId" style="width:100%;" >
|
|
|
- <el-option v-for="item in stageList" :key="item.id" :label="item.stagesName" :value="item.id"></el-option>
|
|
|
+ <el-form-item :label="'类型'" v-if="showMmeiLaiDe" prop="taskPlanType">
|
|
|
+ <el-select v-model="addForm.taskPlanType" :placeholder="$t('defaultText.pleaseChoose')" style="width:100%;" :disabled="doYouWantToDisableAll">
|
|
|
+ <el-option label="出差" :value="1"></el-option>
|
|
|
+ <el-option label="在办公事处" :value="2"></el-option>
|
|
|
+ <el-option label="请假" :value="3"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item :label="$t('qianZhiRenWu')" prop="aheadTidList" >
|
|
|
- <el-select v-model="addForm.aheadTidList" style="width:100%;" multiple filterable @change="$forceUpdate()">
|
|
|
- <el-option v-for="item in relationdata" :key="item.id" :label="item.name" :value="item.id"></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item :label="$t('types')">
|
|
|
- <el-select v-model="addForm.taskType" style="width:100%;" :disabled="((this.addForm.id != null && user.id != this.addForm.createrId && currentProject.inchargerId != user.id) && !permissions.projectManagement && !permissions.editAnyTask) && !(groupResponsibleId == user.id)" @change="selchg()">
|
|
|
- <el-option v-for="item in taskTypeList" :key="item.id" :label="item.name" :value="item.id">
|
|
|
- <i :class="item.icon" ></i>
|
|
|
- <span>{{item.name}}</span>
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="任务完成校验" v-if="user.timeType.taskFileCharge">
|
|
|
- <el-checkbox v-model="addForm.attachFileRequired" >是否必须上传成果文件</el-checkbox>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item :label="$t('taskdefinition')" prop="name">
|
|
|
- <el-input v-model="addForm.name" :maxlength="40" :disabled="(this.addForm.id != null && user.id != this.addForm.createrId && currentProject.inchargerId != user.id) && !permissions.projectManagement && !permissions.editAnyTask && !(groupResponsibleId == user.id)" :placeholder="$t('enterthetaskcontent')" clearable></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item :label="$t('planCost')" prop="planCost" v-if="user.timeType.taskPlanCost">
|
|
|
- <el-input v-model.number="addForm.planCost" :maxlength="40" :disabled="(this.addForm.id != null && user.id != this.addForm.createrId && currentProject.inchargerId != user.id) && !permissions.projectManagement && !permissions.editAnyTask && !(groupResponsibleId == user.id)" :placeholder="$t('planCostHint')" clearable></el-input>
|
|
|
- </el-form-item>
|
|
|
+ <template v-if="addForm.taskPlanType != 3">
|
|
|
+ <el-form-item :label="$t('subordinatetotheproject')" v-if="showOrNot" prop="projectId">
|
|
|
+ <el-select v-model="addForm.projectId" :placeholder="$t('defaultText.pleaseChoose')" @change="agentCreatesEvents(1)" filterable="true" style="width:100%;" :disabled="doYouWantToDisableAll">
|
|
|
+ <el-option-group v-for="group in integrationProjectList" :key="group.label" :label="group.label">
|
|
|
+ <el-option v-for="item in group.peojectList" :key="item.id" :label="item.projectName + '\u3000' + item.projectCode" :value="item.id">
|
|
|
+ <span style="float: left; color: #8492a6; font-size: 13px;">{{ item.projectCode }}</span>
|
|
|
+ <span style="float: right;">{{ item.projectName }}</span>
|
|
|
+ </el-option>
|
|
|
+ </el-option-group>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item :label="$t('suoShuRenWuFenZu')" v-if="showOrNot" prop="groupId">
|
|
|
+ <el-select v-model="addForm.groupId" :placeholder="$t('defaultText.pleaseChoose')" @change="agentCreatesEvents(2)" filterable="true" style="width:100%;" :disabled="doYouWantToDisableAll">
|
|
|
+ <el-option v-for="item in groupList" :key="item.id" :label="item.name" :value="item.id"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item :label="$t('suoShuRenWuLieBiao')" v-if="showOrNot" prop="stagesId">
|
|
|
+ <el-select v-model="addForm.stagesId" :placeholder="$t('defaultText.pleaseChoose')" filterable="true" style="width:100%;" :disabled="doYouWantToDisableAll">
|
|
|
+ <el-option v-for="item in stageList" :key="item.id" :label="item.stagesName" :value="item.id"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <!--子任务需要选择任务列表 -->
|
|
|
+ <el-form-item :label="$t('tasklist')" prop="stages" v-if="addForm.parentTid != null">
|
|
|
+ <el-select v-model="addForm.stagesId" style="width:100%;" >
|
|
|
+ <el-option v-for="item in stageList" :key="item.id" :label="item.stagesName" :value="item.id"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item :label="$t('qianZhiRenWu')" prop="aheadTidList" >
|
|
|
+ <el-select v-model="addForm.aheadTidList" style="width:100%;" multiple filterable @change="$forceUpdate()" :disabled="doYouWantToDisableAll">
|
|
|
+ <el-option v-for="item in relationdata" :key="item.id" :label="item.name" :value="item.id"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item :label="$t('types')" v-if="!showMmeiLaiDe">
|
|
|
+ <el-select v-model="addForm.taskType" style="width:100%;" :disabled="((this.addForm.id != null && user.id != this.addForm.createrId && currentProject.inchargerId != user.id) && !permissions.projectManagement && !permissions.editAnyTask) && !(groupResponsibleId == user.id)" @change="selchg()">
|
|
|
+ <el-option v-for="item in taskTypeList" :key="item.id" :label="item.name" :value="item.id">
|
|
|
+ <i :class="item.icon" ></i>
|
|
|
+ <span>{{item.name}}</span>
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="任务完成校验" v-if="user.timeType.taskFileCharge">
|
|
|
+ <el-checkbox v-model="addForm.attachFileRequired" >是否必须上传成果文件</el-checkbox>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="审核人" v-if="showMmeiLaiDe && user.roleId != 2283" prop="checkSecondId">
|
|
|
+ <div class="customizedReviewer">
|
|
|
+ <el-select v-model="addForm.checkFirstId" :disabled="true" size="small">
|
|
|
+ <el-option v-for="item in users" :key="item.id" :label="item.name" :value="item.id"></el-option>
|
|
|
+ </el-select>
|
|
|
+ <div style="margin: 0 20px;"> ------------------ > </div>
|
|
|
+ <el-select v-model="addForm.checkSecondId" :disabled="!addForm.checkFirstId || doYouWantToDisableAll" size="small">
|
|
|
+ <el-option v-for="item in pmUserList" :key="item.id" :label="item.name" :value="item.id"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item :label="$t('taskdefinition')" prop="name">
|
|
|
+ <el-input v-model="addForm.name" :maxlength="40" :disabled="(this.addForm.id != null && user.id != this.addForm.createrId && currentProject.inchargerId != user.id) && !permissions.projectManagement && !permissions.editAnyTask && !(groupResponsibleId == user.id)" :placeholder="$t('enterthetaskcontent')" clearable></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item :label="$t('planCost')" prop="planCost" v-if="user.timeType.taskPlanCost">
|
|
|
+ <el-input v-model.number="addForm.planCost" :maxlength="40" :disabled="(this.addForm.id != null && user.id != this.addForm.createrId && currentProject.inchargerId != user.id) && !permissions.projectManagement && !permissions.editAnyTask && !(groupResponsibleId == user.id)" :placeholder="$t('planCostHint')" clearable></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </template>
|
|
|
+
|
|
|
<!-- {{timelabel}}{{mileageCup}} -->
|
|
|
<el-form-item :label="!timelabel ? $t('starttimes') : $t('jie-zhi-shi-jian')" prop="startDate">
|
|
|
<el-date-picker v-model="addForm.startDate" type="date" style="width:40%;" value-format="yyyy-MM-dd"
|
|
@@ -137,216 +159,220 @@
|
|
|
groupResponsibleId == user.id)"
|
|
|
style="margin:0 0 10px 35px;position: relative;z-index: 999;" @click.stop="addExecutorLine">{{ $t('addinganexecutor') }}</el-link>
|
|
|
</div>
|
|
|
- <el-form-item :label="$t('priority')">
|
|
|
- <el-select v-model="addForm.taskLevel" style="width:100%;" >
|
|
|
- <el-option v-for="item in importanceList" :key="item.id" :label="item.name" :value="item.id"></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <!-- 富文本 -->
|
|
|
- <el-form-item :label="$t('detaileddescription')" style="height: 200px">
|
|
|
- <!-- <Editor id="tinymce" v-model="tinymceHtml" :init="editorInit"></Editor> -->
|
|
|
- <!-- <el-input type="textarea" v-model="addForm.taskDesc" :rows="3"></el-input> -->
|
|
|
- <!-- <quill-edito v-model="addForm.taskDesc"></quill-edito> -->
|
|
|
- <quill-editor style="height: 150px" ref="text" v-model="addForm.taskDesc" class="myQuillEditor" :options="editorOption" @blur="onEditorBlur($event)" @focus="onEditorFocus($event)"/>
|
|
|
- </el-form-item>
|
|
|
- <!-- 富文本 -->
|
|
|
- <div v-if="addForm.id != null">
|
|
|
- <el-divider ></el-divider>
|
|
|
- <!-- 任务进展 -->
|
|
|
- <template v-if="!timelabel || isRelationItem">
|
|
|
-
|
|
|
- <p ><i class="iconfont firerock-icontree themeFontColor" style="margin-left:10px;">{{ $t('taskprogress') }}</i>
|
|
|
- <span ref="addPro" style="display: block; float:right;"><el-link @click="addprogress">{{ $t('addtaskprogress') }}</el-link></span>
|
|
|
- </p>
|
|
|
- <!-- 任务进展展示 -->
|
|
|
- <div style="display: none;" ref="proBox" class="progress">
|
|
|
- <!-- <el-form :model="> -->
|
|
|
- <el-radio-group v-model="radio">
|
|
|
- <el-radio :label="0" class="rala1">{{ $t('normals') }}</el-radio>
|
|
|
- <el-radio :label="1" class="rala2">{{ $t('atrisk') }}</el-radio>
|
|
|
- <el-radio :label="2" class="rala3">{{ $t('withinthetimelimit') }}</el-radio>
|
|
|
- </el-radio-group>
|
|
|
- <el-input
|
|
|
- type="textarea"
|
|
|
- border="0"
|
|
|
- :autosize="{ minRows: 2, maxRows: 6}"
|
|
|
- :placeholder="$t('detailedprogressdescription')"
|
|
|
- v-model="text2"
|
|
|
- style="margin:10px 0 0 0">
|
|
|
- </el-input>
|
|
|
- <h4 style="font-weight: normal;">{{ $t('tixiang') }}{{checkLists.length}}</h4>
|
|
|
- <i class="el-icon-circle-plus pron_i themeFontColor" style="font-size: 28px;" @click="addI(0)"></i>
|
|
|
- <div class="remind" ref="addRem" style="display: none">
|
|
|
- <el-checkbox-group v-model="checkboxGrounp" v-for="item in users" :key="item.id">
|
|
|
- <p>
|
|
|
- <el-checkbox :label="item.name" @change="kkk(item)">
|
|
|
- <span>
|
|
|
- <span v-if="user.userNameNeedTranslate != '1'">
|
|
|
- {{item.name}}
|
|
|
- </span>
|
|
|
- <span v-if="user.userNameNeedTranslate == '1'">
|
|
|
- <TranslationOpenDataText type='userName' :openid='item.name'></TranslationOpenDataText>
|
|
|
+
|
|
|
+ <template v-if="addForm.taskPlanType != 3">
|
|
|
+ <el-form-item :label="$t('priority')">
|
|
|
+ <el-select v-model="addForm.taskLevel" style="width:100%;" :disabled="doYouWantToDisableAll">
|
|
|
+ <el-option v-for="item in importanceList" :key="item.id" :label="item.name" :value="item.id"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <!-- 富文本 -->
|
|
|
+ <el-form-item :label="$t('detaileddescription')" style="height: 200px">
|
|
|
+ <!-- <Editor id="tinymce" v-model="tinymceHtml" :init="editorInit"></Editor> -->
|
|
|
+ <!-- <el-input type="textarea" v-model="addForm.taskDesc" :rows="3"></el-input> -->
|
|
|
+ <!-- <quill-edito v-model="addForm.taskDesc"></quill-edito> -->
|
|
|
+ <quill-editor style="height: 150px" ref="text" v-model="addForm.taskDesc" class="myQuillEditor" :options="editorOption" @blur="onEditorBlur($event)" @focus="onEditorFocus($event)" :disabled="doYouWantToDisableAll"/>
|
|
|
+ </el-form-item>
|
|
|
+ <!-- 富文本 -->
|
|
|
+ <div v-if="addForm.id != null">
|
|
|
+ <el-divider ></el-divider>
|
|
|
+ <!-- 任务进展 -->
|
|
|
+ <template v-if="!timelabel || isRelationItem">
|
|
|
+
|
|
|
+ <p ><i class="iconfont firerock-icontree themeFontColor" style="margin-left:10px;">{{ $t('taskprogress') }}</i>
|
|
|
+ <span ref="addPro" style="display: block; float:right;"><el-link @click="addprogress">{{ $t('addtaskprogress') }}</el-link></span>
|
|
|
+ </p>
|
|
|
+ <!-- 任务进展展示 -->
|
|
|
+ <div style="display: none;" ref="proBox" class="progress">
|
|
|
+ <!-- <el-form :model="> -->
|
|
|
+ <el-radio-group v-model="radio">
|
|
|
+ <el-radio :label="0" class="rala1">{{ $t('normals') }}</el-radio>
|
|
|
+ <el-radio :label="1" class="rala2">{{ $t('atrisk') }}</el-radio>
|
|
|
+ <el-radio :label="2" class="rala3">{{ $t('withinthetimelimit') }}</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ <el-input
|
|
|
+ type="textarea"
|
|
|
+ border="0"
|
|
|
+ :autosize="{ minRows: 2, maxRows: 6}"
|
|
|
+ :placeholder="$t('detailedprogressdescription')"
|
|
|
+ v-model="text2"
|
|
|
+ style="margin:10px 0 0 0">
|
|
|
+ </el-input>
|
|
|
+ <h4 style="font-weight: normal;">{{ $t('tixiang') }}{{checkLists.length}}</h4>
|
|
|
+ <i class="el-icon-circle-plus pron_i themeFontColor" style="font-size: 28px;" @click="addI(0)"></i>
|
|
|
+ <div class="remind" ref="addRem" style="display: none">
|
|
|
+ <el-checkbox-group v-model="checkboxGrounp" v-for="item in users" :key="item.id">
|
|
|
+ <p>
|
|
|
+ <el-checkbox :label="item.name" @change="kkk(item)">
|
|
|
+ <span>
|
|
|
+ <span v-if="user.userNameNeedTranslate != '1'">
|
|
|
+ {{item.name}}
|
|
|
+ </span>
|
|
|
+ <span v-if="user.userNameNeedTranslate == '1'">
|
|
|
+ <TranslationOpenDataText type='userName' :openid='item.name'></TranslationOpenDataText>
|
|
|
+ </span>
|
|
|
</span>
|
|
|
- </span>
|
|
|
- </el-checkbox>
|
|
|
- </p>
|
|
|
- </el-checkbox-group>
|
|
|
- </div>
|
|
|
- <div class="ssp" @click="sss"></div>
|
|
|
- <!-- </el-form> -->
|
|
|
- <div class="pro_btn">
|
|
|
- <el-button size="mini" @click="shutPro">{{ $t('btn.cancel') }}</el-button>
|
|
|
- <el-button size="mini" type="primary" @click="addTaskProgress">{{ $t('fa-bu') }}</el-button>
|
|
|
+ </el-checkbox>
|
|
|
+ </p>
|
|
|
+ </el-checkbox-group>
|
|
|
+ </div>
|
|
|
+ <div class="ssp" @click="sss"></div>
|
|
|
+ <!-- </el-form> -->
|
|
|
+ <div class="pro_btn">
|
|
|
+ <el-button size="mini" @click="shutPro">{{ $t('btn.cancel') }}</el-button>
|
|
|
+ <el-button size="mini" type="primary" @click="addTaskProgress">{{ $t('fa-bu') }}</el-button>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="ddl" v-if="recentProgressInfo != null && recentProgressInfo.id != null">
|
|
|
- <div class="elCard" style="margin-bottom: 10px; height:" >
|
|
|
- <i class="el-icon-success" style="color: #43d14f;" v-if="recentProgressInfo.status == 0"></i>
|
|
|
- <i class="el-icon-success" style="color: #fd7624;" v-else-if="recentProgressInfo.status == 1"></i>
|
|
|
- <i class="el-icon-success" style="color: #fd4d47;" v-else></i>
|
|
|
- <span v-if="recentProgressInfo.status == 0">{{ $t('normals') }}</span>
|
|
|
- <span v-else-if="recentProgressInfo.status == 1">{{ $t('normals') }}</span>
|
|
|
- <span v-else>{{ $t('withinthetimelimit') }}</span>
|
|
|
- <el-dropdown trigger="click" style="float:right;cursor:pointer; float: right;">
|
|
|
- <i class="el-icon-more" ></i>
|
|
|
- <el-dropdown-menu slot="dropdown">
|
|
|
- <el-dropdown-item divided>
|
|
|
- <span @click="deleteTaskProgress(recentProgressInfo.id)"><i class="el-icon-delete"></i>{{ $t('deleteList ') }}</span></el-dropdown-item>
|
|
|
- </el-dropdown-menu>
|
|
|
- </el-dropdown>
|
|
|
- <!-- <div class="elCard_qu">{{recentProgressInfo.creatorName}}{{ $t('geng-xin-yu') }}{{recentProgressInfo.indate | relativeTime}}</div> -->
|
|
|
- <div class="elCard_qu">
|
|
|
- <span>
|
|
|
- <span v-if="user.userNameNeedTranslate != '1'">
|
|
|
- {{recentProgressInfo.creatorName}}
|
|
|
- </span>
|
|
|
- <span v-if="user.userNameNeedTranslate == '1'">
|
|
|
- <TranslationOpenDataText type='userName' :openid='recentProgressInfo.creatorName'></TranslationOpenDataText>
|
|
|
+
|
|
|
+ <div class="ddl" v-if="recentProgressInfo != null && recentProgressInfo.id != null">
|
|
|
+ <div class="elCard" style="margin-bottom: 10px; height:" >
|
|
|
+ <i class="el-icon-success" style="color: #43d14f;" v-if="recentProgressInfo.status == 0"></i>
|
|
|
+ <i class="el-icon-success" style="color: #fd7624;" v-else-if="recentProgressInfo.status == 1"></i>
|
|
|
+ <i class="el-icon-success" style="color: #fd4d47;" v-else></i>
|
|
|
+ <span v-if="recentProgressInfo.status == 0">{{ $t('normals') }}</span>
|
|
|
+ <span v-else-if="recentProgressInfo.status == 1">{{ $t('normals') }}</span>
|
|
|
+ <span v-else>{{ $t('withinthetimelimit') }}</span>
|
|
|
+ <el-dropdown trigger="click" style="float:right;cursor:pointer; float: right;">
|
|
|
+ <i class="el-icon-more" ></i>
|
|
|
+ <el-dropdown-menu slot="dropdown">
|
|
|
+ <el-dropdown-item divided>
|
|
|
+ <span @click="deleteTaskProgress(recentProgressInfo.id)"><i class="el-icon-delete"></i>{{ $t('deleteList ') }}</span></el-dropdown-item>
|
|
|
+ </el-dropdown-menu>
|
|
|
+ </el-dropdown>
|
|
|
+ <!-- <div class="elCard_qu">{{recentProgressInfo.creatorName}}{{ $t('geng-xin-yu') }}{{recentProgressInfo.indate | relativeTime}}</div> -->
|
|
|
+ <div class="elCard_qu">
|
|
|
+ <span>
|
|
|
+ <span v-if="user.userNameNeedTranslate != '1'">
|
|
|
+ {{recentProgressInfo.creatorName}}
|
|
|
+ </span>
|
|
|
+ <span v-if="user.userNameNeedTranslate == '1'">
|
|
|
+ <TranslationOpenDataText type='userName' :openid='recentProgressInfo.creatorName'></TranslationOpenDataText>
|
|
|
+ </span>
|
|
|
</span>
|
|
|
- </span>
|
|
|
- {{ $t('geng-xin-yu') }}{{recentProgressInfo.indate | relativeTime}}
|
|
|
+ {{ $t('geng-xin-yu') }}{{recentProgressInfo.indate | relativeTime}}
|
|
|
+ </div>
|
|
|
+ <p style="padding-left: 20px;">{{recentProgressInfo.content}}</p>
|
|
|
+ <div class="examine"><el-button type="text" @click="innerVisibless = true" style="color: #8F87A3;">{{ $t('viewingHistory') }}</el-button></div>
|
|
|
</div>
|
|
|
- <p style="padding-left: 20px;">{{recentProgressInfo.content}}</p>
|
|
|
- <div class="examine"><el-button type="text" @click="innerVisibless = true" style="color: #8F87A3;">{{ $t('viewingHistory') }}</el-button></div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <!-- 任务列表没有数据的时候展示 -->
|
|
|
- <div class="nones" v-if="ProgressList.length <= 0">
|
|
|
- {{ $t('nodata') }}
|
|
|
- </div>
|
|
|
- <!-- 任务进展完整状态 -->
|
|
|
- <el-dialog :title="$t('other.prompts')" :visible.sync="innerVisibless" append-to-body width="500px">
|
|
|
- <div class="integrity">
|
|
|
- <h3 style="font-weight: normal;display: inline-block;margin: 0 0 20px 0;">{{ $t('taskprogress') }} :{{ProgressList.length}}</h3>
|
|
|
- <!-- <span class="write"><i class="el-icon-circle-plus"></i>填写进展</span> -->
|
|
|
- <el-divider></el-divider>
|
|
|
- <!-- -->
|
|
|
- <div class="block" style="height: 200px;">
|
|
|
- <el-timeline style="padding:20px 0 0 0;">
|
|
|
- <el-timeline-item
|
|
|
- v-for="(activity, index) in ProgressList"
|
|
|
- :key="index">
|
|
|
- <div class="tb">
|
|
|
- <span v-if="activity.status == 0" style="color: #43D14F" class="icon"></span>
|
|
|
- <span v-if="activity.status == 1" style="color: #FD7624" class="icon"></span>
|
|
|
- <span v-if="activity.status == 2" style="color: red" class="icon"></span>
|
|
|
- <div>
|
|
|
- <span v-if="activity.status == 0" style="color: #43D14F">{{ $t('normals') }}</span>
|
|
|
- <span v-if="activity.status == 1" style="color: #FD7624">{{ $t('atrisk') }}</span>
|
|
|
- <span v-if="activity.status == 2" style="color: red">{{ $t('withinthetimelimit') }}</span>
|
|
|
- <span style="display: inline-block; float: right; color: #8C8C8C">{{activity.indate | relativeTime}}</span>
|
|
|
+ <!-- 任务列表没有数据的时候展示 -->
|
|
|
+ <div class="nones" v-if="ProgressList.length <= 0">
|
|
|
+ {{ $t('nodata') }}
|
|
|
+ </div>
|
|
|
+ <!-- 任务进展完整状态 -->
|
|
|
+ <el-dialog :title="$t('other.prompts')" :visible.sync="innerVisibless" append-to-body width="500px">
|
|
|
+ <div class="integrity">
|
|
|
+ <h3 style="font-weight: normal;display: inline-block;margin: 0 0 20px 0;">{{ $t('taskprogress') }} :{{ProgressList.length}}</h3>
|
|
|
+ <!-- <span class="write"><i class="el-icon-circle-plus"></i>填写进展</span> -->
|
|
|
+ <el-divider></el-divider>
|
|
|
+ <!-- -->
|
|
|
+ <div class="block" style="height: 200px;">
|
|
|
+ <el-timeline style="padding:20px 0 0 0;">
|
|
|
+ <el-timeline-item
|
|
|
+ v-for="(activity, index) in ProgressList"
|
|
|
+ :key="index">
|
|
|
+ <div class="tb">
|
|
|
+ <span v-if="activity.status == 0" style="color: #43D14F" class="icon"></span>
|
|
|
+ <span v-if="activity.status == 1" style="color: #FD7624" class="icon"></span>
|
|
|
+ <span v-if="activity.status == 2" style="color: red" class="icon"></span>
|
|
|
+ <div>
|
|
|
+ <span v-if="activity.status == 0" style="color: #43D14F">{{ $t('normals') }}</span>
|
|
|
+ <span v-if="activity.status == 1" style="color: #FD7624">{{ $t('atrisk') }}</span>
|
|
|
+ <span v-if="activity.status == 2" style="color: red">{{ $t('withinthetimelimit') }}</span>
|
|
|
+ <span style="display: inline-block; float: right; color: #8C8C8C">{{activity.indate | relativeTime}}</span>
|
|
|
+ </div>
|
|
|
+ <p style="color: #8C8C8C">{{activity.content}}</p>
|
|
|
+
|
|
|
</div>
|
|
|
- <p style="color: #8C8C8C">{{activity.content}}</p>
|
|
|
-
|
|
|
- </div>
|
|
|
- </el-timeline-item>
|
|
|
- </el-timeline>
|
|
|
- </div>
|
|
|
- <!-- -->
|
|
|
- </div>
|
|
|
- <span slot="footer" class="dialog-footer foooot">
|
|
|
- <el-button type="primary" @click="innerVisibless = false">{{ $t('Shutdown') }}</el-button>
|
|
|
- </span>
|
|
|
- </el-dialog>
|
|
|
- </template>
|
|
|
- <!-- 子任务/关联任务 -->
|
|
|
- <p ><i class="iconfont firerock-icontree themeFontColor" style="margin-left:10px;">{{timelabel && !isRelationItem ? $t('guanlian') : $t('zirwu')}}</i>
|
|
|
- <el-link style="float:right;" @click="addRelation" v-if="timelabel && !isRelationItem">{{ $t('associatedTask') }}</el-link>
|
|
|
- <el-link style="float:right;" @click="addSubTask" v-else>{{ $t('addingsubtask') }}</el-link>
|
|
|
- </p>
|
|
|
- <!-- 关联任务列表 -->
|
|
|
- <el-table key="guanlian" :data="relationSubTaskList" v-if="timelabel && !isRelationItem"
|
|
|
- :header-cell-style="{'font-weight':'normal'}"
|
|
|
- highlight-current-row
|
|
|
- v-loading="listLoading"
|
|
|
- style="width: 100%;margin-top:10px;"
|
|
|
- @row-click="relationTaskClick">
|
|
|
- <el-table-column prop="taskStatus" :label="$t('wan-cheng')" width="50" >
|
|
|
- <template slot-scope="scope">
|
|
|
- <el-checkbox :disabled="scope.row.taskStatus==2" :checked="scope.row.taskStatus==1?true:false" size="large" class="cb" @change="relationFinishTask(scope.row)"></el-checkbox>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop="taskName" :label="$t('biao-ti')" >
|
|
|
- <template slot-scope="scope">
|
|
|
- <el-tooltip class="item themeFontColor" effect="dark" :content="scope.row.taskName" placement="top" style="cursor:pointer;">
|
|
|
- <span style="overflow: hidden;text-overflow:ellipsis;white-space: nowrap;" > {{scope.row.taskName}}</span>
|
|
|
- </el-tooltip>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column :label="$t('operation')" width="130" align="left">
|
|
|
- <template slot-scope="scope">
|
|
|
- <el-button @click.stop.native="deleteRelationItem(scope.row.id)" size="mini">{{ $t('dissociated') }}</el-button>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- <!--子任务列表 -->
|
|
|
- <el-table key="zi" :data="addForm.subTaskList" v-else
|
|
|
- :header-cell-style="{'font-weight':'normal'}"
|
|
|
- highlight-current-row v-loading="listLoading" style="width: 100%;margin-top:10px;" @row-click="taskLineClick">
|
|
|
- <el-table-column prop="taskStatus" :label="$t('wan-cheng')" width="50" >
|
|
|
+ </el-timeline-item>
|
|
|
+ </el-timeline>
|
|
|
+ </div>
|
|
|
+ <!-- -->
|
|
|
+ </div>
|
|
|
+ <span slot="footer" class="dialog-footer foooot">
|
|
|
+ <el-button type="primary" @click="innerVisibless = false">{{ $t('Shutdown') }}</el-button>
|
|
|
+ </span>
|
|
|
+ </el-dialog>
|
|
|
+ </template>
|
|
|
+ <!-- 子任务/关联任务 -->
|
|
|
+ <p ><i class="iconfont firerock-icontree themeFontColor" style="margin-left:10px;">{{timelabel && !isRelationItem ? $t('guanlian') : $t('zirwu')}}</i>
|
|
|
+ <el-link style="float:right;" @click="addRelation" v-if="timelabel && !isRelationItem">{{ $t('associatedTask') }}</el-link>
|
|
|
+ <el-link style="float:right;" @click="addSubTask" v-else>{{ $t('addingsubtask') }}</el-link>
|
|
|
+ </p>
|
|
|
+ <!-- 关联任务列表 -->
|
|
|
+ <el-table key="guanlian" :data="relationSubTaskList" v-if="timelabel && !isRelationItem"
|
|
|
+ :header-cell-style="{'font-weight':'normal'}"
|
|
|
+ highlight-current-row
|
|
|
+ v-loading="listLoading"
|
|
|
+ style="width: 100%;margin-top:10px;"
|
|
|
+ @row-click="relationTaskClick">
|
|
|
+ <el-table-column prop="taskStatus" :label="$t('wan-cheng')" width="50" >
|
|
|
<template slot-scope="scope">
|
|
|
- <el-checkbox :disabled="scope.row.taskStatus==2" :checked="scope.row.taskStatus==1?true:false" size="large" class="cb"
|
|
|
- @change="finishTask(scope.row)"
|
|
|
- ></el-checkbox>
|
|
|
+ <el-checkbox :disabled="scope.row.taskStatus==2" :checked="scope.row.taskStatus==1?true:false" size="large" class="cb" @change="relationFinishTask(scope.row)"></el-checkbox>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="name" :label="$t('biao-ti')" >
|
|
|
+ <el-table-column prop="taskName" :label="$t('biao-ti')" >
|
|
|
<template slot-scope="scope">
|
|
|
- <el-tooltip class="item" effect="dark" :content="scope.row.name" placement="top">
|
|
|
- <span style="overflow: hidden;text-overflow:ellipsis;white-space: nowrap;" > {{scope.row.name}}</span>
|
|
|
+ <el-tooltip class="item themeFontColor" effect="dark" :content="scope.row.taskName" placement="top" style="cursor:pointer;">
|
|
|
+ <span style="overflow: hidden;text-overflow:ellipsis;white-space: nowrap;" > {{scope.row.taskName}}</span>
|
|
|
</el-tooltip>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="executorName" :label="$t('zhi-hang-ren')" width="100" >
|
|
|
+ <el-table-column :label="$t('operation')" width="130" align="left">
|
|
|
<template slot-scope="scope">
|
|
|
- <span v-if="user.userNameNeedTranslate != 1">
|
|
|
- {{scope.row.executorName == null?$t('dai-fen-pei'):scope.row.executorName}}
|
|
|
- </span>
|
|
|
- <span v-if="user.userNameNeedTranslate == 1">
|
|
|
- <span v-if="scope.row.executorName == null">
|
|
|
- {{$t('dai-fen-pei')}}
|
|
|
+ <el-button @click.stop.native="deleteRelationItem(scope.row.id)" size="mini">{{ $t('dissociated') }}</el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <!--子任务列表 -->
|
|
|
+ <el-table key="zi" :data="addForm.subTaskList" v-else
|
|
|
+ :header-cell-style="{'font-weight':'normal'}"
|
|
|
+ highlight-current-row v-loading="listLoading" style="width: 100%;margin-top:10px;" @row-click="taskLineClick">
|
|
|
+ <el-table-column prop="taskStatus" :label="$t('wan-cheng')" width="50" >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-checkbox :disabled="scope.row.taskStatus==2" :checked="scope.row.taskStatus==1?true:false" size="large" class="cb"
|
|
|
+ @change="finishTask(scope.row)"
|
|
|
+ ></el-checkbox>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="name" :label="$t('biao-ti')" >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-tooltip class="item" effect="dark" :content="scope.row.name" placement="top">
|
|
|
+ <span style="overflow: hidden;text-overflow:ellipsis;white-space: nowrap;" > {{scope.row.name}}</span>
|
|
|
+ </el-tooltip>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="executorName" :label="$t('zhi-hang-ren')" width="100" >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span v-if="user.userNameNeedTranslate != 1">
|
|
|
+ {{scope.row.executorName == null?$t('dai-fen-pei'):scope.row.executorName}}
|
|
|
</span>
|
|
|
- <span v-else>
|
|
|
- <span v-for="item,index in scope.row.executorName" :key="index">
|
|
|
- <TranslationOpenDataText type='userName' :openid='item'></TranslationOpenDataText>
|
|
|
- <span v-if="index < scope.row.executorName.length - 1">,</span>
|
|
|
+ <span v-if="user.userNameNeedTranslate == 1">
|
|
|
+ <span v-if="scope.row.executorName == null">
|
|
|
+ {{$t('dai-fen-pei')}}
|
|
|
+ </span>
|
|
|
+ <span v-else>
|
|
|
+ <span v-for="item,index in scope.row.executorName" :key="index">
|
|
|
+ <TranslationOpenDataText type='userName' :openid='item'></TranslationOpenDataText>
|
|
|
+ <span v-if="index < scope.row.executorName.length - 1">,</span>
|
|
|
+ </span>
|
|
|
</span>
|
|
|
</span>
|
|
|
- </span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop="endDate" :label="$t('deadline')" width="100" >
|
|
|
- <template slot-scope="scope">
|
|
|
- <p v-if="scope.row.endDate >= times">{{scope.row.endDate}}</p>
|
|
|
- <p v-else style="background: #e62412; color: #fff;text-align: center; border-radius: 3px;">{{scope.row.endDate}}</p>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- </div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="endDate" :label="$t('deadline')" width="100" >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <p v-if="scope.row.endDate >= times">{{scope.row.endDate}}</p>
|
|
|
+ <p v-else style="background: #e62412; color: #fff;text-align: center; border-radius: 3px;">{{scope.row.endDate}}</p>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+
|
|
|
</el-form>
|
|
|
<!-- 关联文件列表 -->
|
|
|
- <template v-if="isEditFile">
|
|
|
+ <template v-if="isEditFile && addForm.taskPlanType != 3">
|
|
|
<div style="width:100%;margin:1em 0;">
|
|
|
<i class="iconfont firerock-icontree themeFontColor" style="margin-left:10px;">{{ $t('jiafuchengguo') }}</i>
|
|
|
<el-link @click="relationFileClick()" style="float:right;margin-left:10px">{{ $t('associatedfiles') }}</el-link>
|
|
@@ -465,9 +491,20 @@
|
|
|
</el-dialog>
|
|
|
</div>
|
|
|
<div slot="footer" class="dialog-footer foooot">
|
|
|
- <el-button v-if="(user.id == addForm.createrId || currentProject.inchargerId == user.id || currentProject.creatorId == user.id || permissions.projectManagement) && canAddTask" @click.native="deleteTask()" style="float:left;">{{ $t('btn.delete') }}</el-button>
|
|
|
+ <template v-if="!showMmeiLaiDe">
|
|
|
+ <el-button v-if="(user.id == addForm.createrId || currentProject.inchargerId == user.id || currentProject.creatorId == user.id || permissions.projectManagement) && canAddTask" @click.native="deleteTask()" style="float:left;">{{ $t('btn.delete') }}</el-button>
|
|
|
+ </template>
|
|
|
+ <template v-if="showMmeiLaiDe">
|
|
|
+ <el-button v-if="[0, 1, 2, 3, 5, 6].includes(showMmeiLaiDeData.taskStatus)" @click.native="deleteTask()" style="float:left;">{{ $t('btn.delete') }}</el-button>
|
|
|
+ </template>
|
|
|
<el-button type="primary" v-if="user.userNameNeedTranslate == 1 && !meetingId && !integrationTask.stage && addForm.executorListFront[0].executorId" @click="meetingCli()">{{ $t('faQiHuiYi') }}</el-button>
|
|
|
<el-button @click.native="closeBounceds()">{{ $t('btn.cancel') }}</el-button>
|
|
|
+ <template v-if="showMmeiLaiDe && addForm.id && millerSReviewer.includes(user.id) && [3, 4].includes(showMmeiLaiDeData.taskStatus) && showMmeiLaiDeData.leaderOrManager == 2">
|
|
|
+ <template v-if="(showMmeiLaiDeData.taskStatus == 3 && user.id == showMmeiLaiDeData.checkFirstId) || (showMmeiLaiDeData.taskStatus == 4 && user.id == showMmeiLaiDeData.checkSecondId)">
|
|
|
+ <el-button type="danger" @click="planOperation(false)" :loading="addLoading">驳回</el-button>
|
|
|
+ <el-button type="success" @click="planOperation(true)" :loading="addLoading">通过</el-button>
|
|
|
+ </template>
|
|
|
+ </template>
|
|
|
<el-button type="primary" @click="submitInsert" :loading="addLoading">{{ $t('btn.submit') }}</el-button>
|
|
|
</div>
|
|
|
|
|
@@ -475,7 +512,7 @@
|
|
|
<el-page-header @back="backToParentTask" :title="timelabel ? $t('returnmilestone') : $t('parenttask')" :content="timelabel ? relationPar.name : addForm.parentTname"></el-page-header>
|
|
|
</div> -->
|
|
|
<!-- 评论 -->
|
|
|
- <div class="remark" v-show="addForm.id != null">
|
|
|
+ <div class="remark" v-show="addForm.id != null && !showMmeiLaiDe">
|
|
|
<span class="zh">
|
|
|
<div class="player">
|
|
|
<p>{{ $t('participantin') }}</p>
|
|
@@ -746,6 +783,15 @@ export default {
|
|
|
showOrNot: {
|
|
|
type: Boolean,
|
|
|
default: false
|
|
|
+ },
|
|
|
+ // 是否属于美莱得定制化的工作计划
|
|
|
+ showMmeiLaiDe: {
|
|
|
+ type: Boolean,
|
|
|
+ default: false
|
|
|
+ },
|
|
|
+ showMmeiLaiDeData: {
|
|
|
+ type: Object,
|
|
|
+ default: {}
|
|
|
}
|
|
|
},
|
|
|
components: {
|
|
@@ -755,6 +801,7 @@ export default {
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
+ doYouWantToDisableAll: false,
|
|
|
startNum: 0,
|
|
|
endNum: 5,
|
|
|
shownumber: 5,
|
|
@@ -854,6 +901,8 @@ export default {
|
|
|
groupId: [{ required: true, message: this.$t('qingXuanZeSuoShuRenWuFenZu'), trigger: "blur" }],
|
|
|
stagesId: [{ required: true, message: this.$t('qingXuanZeSuoShuRenWuLieBiao'), trigger: "blur" }],
|
|
|
planCost: [{ required: true, message: this.$t('planCostHint'), trigger: "blur" }],
|
|
|
+ taskPlanType: [{ required: true, message: '请选择类型', trigger: "blur" }],
|
|
|
+ checkSecondId: [{ required: true, message: '请选择审核人', trigger: "blur" }]
|
|
|
},
|
|
|
formGrouping: {
|
|
|
name: [{ required: true, message: this.$t('pleaseenteragroupname'), trigger: "blur" }],
|
|
@@ -972,7 +1021,9 @@ export default {
|
|
|
startTime: '',
|
|
|
endTime: '',
|
|
|
taskId: ''
|
|
|
- }
|
|
|
+ },
|
|
|
+ pmUserList: [],
|
|
|
+ millerSReviewer: [],
|
|
|
};
|
|
|
},
|
|
|
computed: {
|
|
@@ -1009,8 +1060,20 @@ export default {
|
|
|
this.getSapServiceList()
|
|
|
|
|
|
this.timess();
|
|
|
+
|
|
|
+ if(this.showMmeiLaiDe) {
|
|
|
+ this.getPmUserList()
|
|
|
+ this.setDisabledPermission()
|
|
|
+ }
|
|
|
},
|
|
|
methods: {
|
|
|
+ setDisabledPermission() {
|
|
|
+ const { taskStatus } = this.showMmeiLaiDeData
|
|
|
+ this.doYouWantToDisableAll = taskStatus == 3 || taskStatus == 4
|
|
|
+ if(this.millerSReviewer.includes(this.user.id)) {
|
|
|
+ this.doYouWantToDisableAll = false
|
|
|
+ }
|
|
|
+ },
|
|
|
viewOnline(row) {
|
|
|
sessionStorage.setItem("fileName",row.documentName);
|
|
|
sessionStorage.setItem("fileUrl",row.url);
|
|
@@ -1056,7 +1119,7 @@ export default {
|
|
|
this.refreshData()
|
|
|
},
|
|
|
confirmMeeting() {
|
|
|
- this.http.post('/task//operateMeeting',{...this.initiateAMeetingForm},
|
|
|
+ this.http.post('/task/operateMeeting',{...this.initiateAMeetingForm},
|
|
|
res => {
|
|
|
if (res.code == "ok") {
|
|
|
this.meetingVisable=false,
|
|
@@ -1080,6 +1143,35 @@ export default {
|
|
|
});
|
|
|
});
|
|
|
},
|
|
|
+ planOperation(type) {
|
|
|
+ this.http.post('/task/taskPlanPassOrReject', {
|
|
|
+ taskId: this.addForm.id, type
|
|
|
+ },
|
|
|
+ res => {
|
|
|
+ if (res.code == "ok") {
|
|
|
+ this.$message({
|
|
|
+ message: '操作成功',
|
|
|
+ type: "success"
|
|
|
+ });
|
|
|
+ let obj = {
|
|
|
+ submitInsert: true,
|
|
|
+ showOrNot: this.showOrNot
|
|
|
+ }
|
|
|
+ this.$emit('closeBounced', obj)
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ message: res.msg,
|
|
|
+ type: "error"
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ error => {
|
|
|
+ this.$message({
|
|
|
+ message: error,
|
|
|
+ type: "error"
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
// 触发外层的会议
|
|
|
meetingCli() {
|
|
|
// this.$parent.$parent.parentMeetingCli(this.integrationTask.id)
|
|
@@ -1095,17 +1187,38 @@ export default {
|
|
|
triggerEvent(obj) {
|
|
|
console.log(obj, '触发事件')
|
|
|
this.curProjectId = obj.curProjectId
|
|
|
- this.getProjectList()
|
|
|
+ if(!this.showMmeiLaiDe) {
|
|
|
+ this.getProjectList()
|
|
|
+ } else {
|
|
|
+ this.getProjectListTwo()
|
|
|
+ }
|
|
|
if(!obj.taskVue) {
|
|
|
this.getStageList(obj.integrationTaskNingwai)
|
|
|
}
|
|
|
if(obj.create) {
|
|
|
+ console.log(obj, '<=== 双击获取的')
|
|
|
this.getUsers(); // 获取名单数据
|
|
|
this.mileageCup = false
|
|
|
this.addFormVisible = true;
|
|
|
this.curProjectId = obj.stage.projectId;
|
|
|
- this.addForm = {projectId: obj.stage.projectId, groupId: obj.stage.groupId, stagesId: obj.stage.id, taskLevel:0, planHours: 8, taskType: 0};
|
|
|
- this.addForm.executorListFront = [{executorId:null, planHours:this.user.timeType.allday}];
|
|
|
+ this.addForm = {
|
|
|
+ projectId: obj.stage.projectId,
|
|
|
+ groupId: obj.stage.groupId,
|
|
|
+ stagesId: obj.stage.id,
|
|
|
+ startDate: obj.addForm.startDate,
|
|
|
+ taskLevel:0,
|
|
|
+ planHours: 8,
|
|
|
+ taskType: 0
|
|
|
+ };
|
|
|
+ // this.addForm.executorListFront = [
|
|
|
+ // {executorId:obj.executorListFront[0] && obj.executorListFront[0].executorId, planHours:this.user.timeType.allday}
|
|
|
+ // ];
|
|
|
+ this.addForm.executorListFront = (obj.executorListFront || []).map(em => {
|
|
|
+ return {
|
|
|
+ executorId: em.executorId,
|
|
|
+ planHours: this.user.timeType.allday
|
|
|
+ }
|
|
|
+ })
|
|
|
this.gstimhour = [this.user.timeType.allday]
|
|
|
this.gstimday = [1]
|
|
|
this.addLoading = false;
|
|
@@ -1113,6 +1226,7 @@ export default {
|
|
|
this.title=this.$t('createtask ');
|
|
|
this.commentList = [];
|
|
|
this.timelabel = false
|
|
|
+ console.log(this.addForm, '<====== this.addForm')
|
|
|
} else {
|
|
|
if(!obj.taskVue) {
|
|
|
this.isEditFile = true;
|
|
@@ -1125,6 +1239,10 @@ export default {
|
|
|
this.getDailyList(obj.id) // 获取来自日报
|
|
|
this.getRelationTaskList(obj.num, obj.id)
|
|
|
this.getTaskFileList(obj.num,obj.id)
|
|
|
+ const { integrationTaskNingwai = {} } = obj
|
|
|
+ if(integrationTaskNingwai.groupId) {
|
|
|
+ this.getTaskGrouping(obj.curProjectId)
|
|
|
+ }
|
|
|
setTimeout(() => {
|
|
|
this.getTaskDetail(obj.id);
|
|
|
}, 200)
|
|
@@ -1138,11 +1256,60 @@ export default {
|
|
|
this.addForm.stagesId = ''
|
|
|
this.getTaskGrouping()
|
|
|
this.getrelation();
|
|
|
+ if(this.showMmeiLaiDe) {
|
|
|
+ this.getProjectManager()
|
|
|
+ }
|
|
|
} else if(num == 2) {
|
|
|
this.addForm.stagesId = ''
|
|
|
this.getTaskList()
|
|
|
}
|
|
|
},
|
|
|
+ getProjectManager() {
|
|
|
+ const { projectId } = this.addForm
|
|
|
+ this.http.post('/user/getChargeUserByProjectId', { projectId },
|
|
|
+ res => {
|
|
|
+ if (res.code == "ok") {
|
|
|
+ if(!res.data.id) {
|
|
|
+ this.$message({
|
|
|
+ message: '当前项目没有项目经理',
|
|
|
+ type: "warning"
|
|
|
+ });
|
|
|
+ return
|
|
|
+ }
|
|
|
+ this.addForm.checkFirstId = res.data.id || '';
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ message: res.msg,
|
|
|
+ type: "error"
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ error => {
|
|
|
+ this.$message({
|
|
|
+ message: error,
|
|
|
+ type: "error"
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
+ getPmUserList() {
|
|
|
+ this.http.post('/user/getSecondCheckUser', { },
|
|
|
+ res => {
|
|
|
+ if (res.code == "ok") {
|
|
|
+ this.pmUserList = res.data || [];
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ message: res.msg,
|
|
|
+ type: "error"
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ error => {
|
|
|
+ this.$message({
|
|
|
+ message: error,
|
|
|
+ type: "error"
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
//获取项目列表
|
|
|
getProjectList() {
|
|
|
this.http.post(this.port.project.list, {},
|
|
@@ -1164,6 +1331,34 @@ export default {
|
|
|
});
|
|
|
});
|
|
|
},
|
|
|
+ getProjectListTwo() {
|
|
|
+ let obj = {}
|
|
|
+ if(this.curProjectId) {
|
|
|
+ obj.projectId = this.curProjectId
|
|
|
+ }
|
|
|
+ this.http.post(`/project/getProjectByLeader`, {
|
|
|
+ ...obj
|
|
|
+ },
|
|
|
+ res => {
|
|
|
+ if (res.code == "ok") {
|
|
|
+ this.projectList = res.data;
|
|
|
+ this.integrationProjectList = [
|
|
|
+ { label: '相关项目', peojectList: res.data }
|
|
|
+ ]
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ message: res.msg,
|
|
|
+ type: "error"
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ error => {
|
|
|
+ this.$message({
|
|
|
+ message: error,
|
|
|
+ type: "error"
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
// 获取最近项目列表
|
|
|
getRecentlyProject() {
|
|
|
this.http.post('/project/nearProject',{},res => {
|
|
@@ -1192,8 +1387,8 @@ export default {
|
|
|
})
|
|
|
},
|
|
|
// 获取任务分组
|
|
|
- getTaskGrouping() {
|
|
|
- this.http.post('/task-group/list', {projectId:this.addForm.projectId},
|
|
|
+ getTaskGrouping(projectId) {
|
|
|
+ this.http.post('/task-group/list', {projectId: projectId ? projectId : this.addForm.projectId},
|
|
|
res => {
|
|
|
if (res.code == "ok") {
|
|
|
this.groupList = res.data;
|
|
@@ -1301,6 +1496,10 @@ export default {
|
|
|
this.http.post('/task/getTask',{id: id},
|
|
|
res => {
|
|
|
if (res.code == "ok") {
|
|
|
+ this.millerSReviewer = [res.data.checkFirstId, res.data.checkSecondId]
|
|
|
+ if(this.showMmeiLaiDe) {
|
|
|
+ this.setDisabledPermission()
|
|
|
+ }
|
|
|
this.meetingId = res.data.meetingId
|
|
|
console.log(this.meetingId, '看看打印纸')
|
|
|
if(this.user.userNameNeedTranslate == 1) {
|
|
@@ -1708,6 +1907,14 @@ export default {
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ if(this.showMmeiLaiDe && !this.addForm.endDate) {
|
|
|
+ return this.$message({
|
|
|
+ showClose: true,
|
|
|
+ message: '请选择截止时间',
|
|
|
+ type: 'warning'
|
|
|
+ });
|
|
|
+ }
|
|
|
this.$refs.form1.validate(valid => {
|
|
|
if (valid) {
|
|
|
delete this.addForm.subTaskList;
|
|
@@ -1720,9 +1927,20 @@ export default {
|
|
|
this.addForm.executorListFront.serviceId= this.addForm.executorListFront.serviceId;
|
|
|
}
|
|
|
this.addForm.executorListStr = JSON.stringify(this.addForm.executorListFront);
|
|
|
+ // this.addForm.executorList = this.addForm.aheadTidList;
|
|
|
this.addForm.aheadTid = JSON.stringify(this.addForm.aheadTidList);
|
|
|
+
|
|
|
+ let addFormData = { ...this.addForm }
|
|
|
+ if(this.addForm.taskPlanType == 3) {
|
|
|
+ addFormData = {
|
|
|
+ taskPlanType: 3,
|
|
|
+ startDate: this.addForm.startDate,
|
|
|
+ endDate: this.addForm.endDate,
|
|
|
+ executorListStr: this.addForm.executorListStr
|
|
|
+ }
|
|
|
+ }
|
|
|
this.addLoading = true;
|
|
|
- this.http.post('/task/save',this.addForm,
|
|
|
+ this.http.post('/task/save',{ ...addFormData, isTaskPlan: this.showMmeiLaiDe ? 1 : 0},
|
|
|
res => {
|
|
|
this.addLoading = false;
|
|
|
if (res.code == "ok") {
|
|
@@ -1814,6 +2032,10 @@ export default {
|
|
|
this.http.post('/task/delete',{id: this.addForm.id},
|
|
|
res => {
|
|
|
if (res.code == "ok") {
|
|
|
+ this.$message({
|
|
|
+ message: '删除成功',
|
|
|
+ type: 'success'
|
|
|
+ });
|
|
|
this.$emit('closeBounced', {deleteTask: true})
|
|
|
} else {
|
|
|
this.$message({
|
|
@@ -2402,6 +2624,10 @@ export default {
|
|
|
.themeFontColor {
|
|
|
@include font_color("color");
|
|
|
}
|
|
|
+.customizedReviewer {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+}
|
|
|
.editingTask {
|
|
|
display: flex;
|
|
|
flex-wrap: wrap;
|