|
@@ -261,406 +261,6 @@
|
|
<div slot="title" v-if="addForm.parentTid != null">
|
|
<div slot="title" v-if="addForm.parentTid != null">
|
|
<el-page-header @back="backToParentTask" :title="$t('parenttask')" :content="addForm.parentTname"></el-page-header>
|
|
<el-page-header @back="backToParentTask" :title="$t('parenttask')" :content="addForm.parentTname"></el-page-header>
|
|
</div>
|
|
</div>
|
|
- <!-- 未整合 -->
|
|
|
|
- <div v-if="false">
|
|
|
|
- <div style="height: 72vh;overflow: auto;">
|
|
|
|
- <el-form ref="form1" :model="addForm" :rules="taskRules" label-width="100px">
|
|
|
|
- <!--子任务需要选择任务列表 -->
|
|
|
|
- <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('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">
|
|
|
|
- <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="$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" :placeholder="$t('enterthetaskcontent')" clearable></el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
-
|
|
|
|
- <el-form-item :label="addForm.taskType == 1 ? $t('deadline') : $t('starttimes')" :prop="addForm.taskType == 1 ? 'endDate' : 'startDate'">
|
|
|
|
- <el-date-picker v-model="addForm.startDate" type="date" style="width:40%;" value-format="yyyy-MM-dd"
|
|
|
|
- :placeholder="$t('pleaseselectadate')" :disabled="(this.addForm.id != null && user.id != this.addForm.createrId && currentProject.inchargerId != user.id) && !permissions.projectManagement" v-if="addForm.taskType != 1"></el-date-picker>
|
|
|
|
- <span style="margin-left:30px;margin-right:10px;" v-if="addForm.taskType != 1">{{ $t('deadline') }}</span>
|
|
|
|
- <el-date-picker v-model="addForm.endDate" type="date" value-format="yyyy-MM-dd"
|
|
|
|
- :placeholder="$t('pleaseselectadate')" :disabled="(this.addForm.id != null && user.id != this.addForm.createrId && currentProject.inchargerId != user.id) && !permissions.projectManagement"></el-date-picker>
|
|
|
|
- </el-form-item>
|
|
|
|
- <div style="border: 1px solid #ddd;margin:5px 0;padding:5px 0;">
|
|
|
|
- <el-form-item :label="$t('zhi-hang-ren')+(index+1)" v-for="(executorItem, index) in addForm.executorListFront" :key="index">
|
|
|
|
-
|
|
|
|
- <el-select v-if="user.userNameNeedTranslate != '1'" v-model="executorItem.executorId" :disabled="(addForm.id != null && user.id != addForm.createrId && currentProject.inchargerId != user.id) && !permissions.projectManagement" size="small" filterable clearable :placeholder="$t('pleaseselectanexecutor')" style="width:40%;" @change="$forceUpdate()">
|
|
|
|
- <el-option v-for="item in users" :key="item.id" :label="item.name" :value="item.id">
|
|
|
|
- <span style="float: left">{{ item.name }}</span>
|
|
|
|
- <span style="float: right; color: #8492a6; font-size: 13px;margin-left: 20px" v-if="item.jobNumber">{{ item.jobNumber }}</span>
|
|
|
|
- </el-option>
|
|
|
|
- </el-select>
|
|
|
|
-
|
|
|
|
- <selectCat :subject="users" :subjectId="executorItem.executorId" :filterable="true" :index="index" @selectCal="selectCal" :size="'mini'" v-if="user.userNameNeedTranslate == '1'"></selectCat>
|
|
|
|
-
|
|
|
|
- <span style="margin-left:30px;margin-right:10px;">{{ $t('plantime') }}</span>
|
|
|
|
- <el-input-number size="small" :disabled="(addForm.id != null && user.id != addForm.createrId && currentProject.inchargerId != user.id) && !permissions.projectManagement" v-model="executorItem.planHours" style="width:30%;" :min="1" :max="100" :placeholder="$t('pleaseentertheplannedworking')" ></el-input-number ><span style="margin-left:10px;">{{ $t('time.hour') }}</span>
|
|
|
|
- <!--移除执行人 -->
|
|
|
|
- <i class="el-icon-delete" v-if="index>0 && (addForm.id == null|| user.id == addForm.createrId || currentProject.inchargerId == user.id|| permissions.projectManagement)" style="margin-left:5px" @click="removeExecutorLine(index)"></i>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-link type="primary" v-if="(addForm.executorListFront == null || addForm.executorListFront.length<10)&& (addForm.id == null|| user.id == addForm.createrId || currentProject.inchargerId == user.id || permissions.projectManagement)" style="margin-left:35px;" @click="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>
|
|
|
|
- <!-- 任务进展 -->
|
|
|
|
- <p ><i class="iconfont firerock-icontree" style="color:#20A0ff;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('whotoremindtocheck') +':'}}{{checkLists.length}}</h4>
|
|
|
|
-
|
|
|
|
- <i class="el-icon-circle-plus pron_i" style="font-size: 28px;color: #409EFF;" @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'">
|
|
|
|
- <ww-open-data type='userName' :openid='item.name'></ww-open-data>
|
|
|
|
- </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>
|
|
|
|
- </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">
|
|
|
|
- <span>
|
|
|
|
- <span v-if="user.userNameNeedTranslate != '1'">
|
|
|
|
- {{recentProgressInfo.creatorName}}
|
|
|
|
- </span>
|
|
|
|
- <span v-if="user.userNameNeedTranslate == '1'">
|
|
|
|
- <ww-open-data type='userName' :openid='recentProgressInfo.creatorName'></ww-open-data>
|
|
|
|
- </span>
|
|
|
|
- </span>
|
|
|
|
- {{ $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>
|
|
|
|
- </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>
|
|
|
|
- <p style="color: #8C8C8C">{{activity.content}}</p>
|
|
|
|
-
|
|
|
|
- </div>
|
|
|
|
- </el-timeline-item>
|
|
|
|
- </el-timeline>
|
|
|
|
- </div>
|
|
|
|
- <!-- -->
|
|
|
|
- </div>
|
|
|
|
- <span slot="footer" class="dialog-footer">
|
|
|
|
- <el-button type="primary" @click="innerVisibless = false">{{ $t('Shutdown') }}</el-button>
|
|
|
|
- </span>
|
|
|
|
- </el-dialog>
|
|
|
|
- </div>
|
|
|
|
- </el-form>
|
|
|
|
- </div>
|
|
|
|
- <div slot="footer" class="dialog-footer">
|
|
|
|
- <el-button v-if="user.id == addForm.createrId || currentProject.inchargerId == user.id || currentProject.creatorId == user.id || permissions.projectManagement" @click.native="deleteTask" style="float:left;">{{ $t('btn.delete') }}</el-button>
|
|
|
|
- <el-button @click.native="addFormVisible = false">{{ $t('btn.cancel') }}</el-button>
|
|
|
|
- <el-button type="primary" @click="submitInsert" :loading="addLoading">{{ $t('btn.submit') }}</el-button>
|
|
|
|
- </div>
|
|
|
|
- <div slot="title" v-if="addForm.parentTid != null" >
|
|
|
|
- <!-- <el-link @click="backToParentTask"><i class="el-icon-arrow-left single_line">返回父级任务</i> | {{addForm.parentTname}}</el-link> -->
|
|
|
|
- <el-page-header @back="backToParentTask" :title="$t('parenttask')" :content="addForm.parentTname"></el-page-header>
|
|
|
|
- </div>
|
|
|
|
- <!-- 评论 -->
|
|
|
|
- <div class="remark" v-show="addForm.id != null">
|
|
|
|
- <span class="zh">
|
|
|
|
- <!-- <span v-for="(pl, i) in critic" :key="i"> -->
|
|
|
|
- <!-- <div class="player" v-if="pl"> -->
|
|
|
|
- <div class="player">
|
|
|
|
- <p @click="chan">{{ $t('participantin') }}</p>
|
|
|
|
- <span v-for="(pl, i) in critic" :key="i">
|
|
|
|
- <div class="bj" style="width: 14%;overflow: hidden;">
|
|
|
|
- <span style="background: #778899" v-if="user.userNameNeedTranslate != '1'">{{pl.length > 2 ? pl.substring(pl.length - 2, pl.length) : pl}}</span>
|
|
|
|
- <span style="background: #778899" v-if="user.userNameNeedTranslate == '1'"><ww-open-data type='userName' :openid='pl'></ww-open-data></span>
|
|
|
|
- </div>
|
|
|
|
- </span>
|
|
|
|
- </div>
|
|
|
|
- <!-- </span> -->
|
|
|
|
- <div class="subject">
|
|
|
|
- <div class="sub-all">
|
|
|
|
- <div :class="dynamicTab ? 'subOn' : ''" @click="dynamicTab = true">{{ $t('alldynamic') }}</div>
|
|
|
|
- <div :class="dynamicTab ? '' : 'subOn'" @click="dynamicTab = false">{{ $t('xiang-guan-ri-bao') }}</div>
|
|
|
|
- </div>
|
|
|
|
- <div class="sub-details" ref="main" v-if="dynamicTab">
|
|
|
|
- <ul class="infinite-list" v-infinite-scroll="load" ref="contRoll">
|
|
|
|
- <div style="width: 100%" v-if="commentList.length <= 0">
|
|
|
|
- <img src="../../assets/image/xiao.png" alt="">
|
|
|
|
- </div>
|
|
|
|
- <li v-for="i in count" class="infinite-list-item counli" :key="i">
|
|
|
|
- <p><i class="el-icon-s-fold"></i> <em>{{ $t('managerQucompletedthedependencytask') }}</em><span>{{ $t('onApril20') }}</span></p>
|
|
|
|
- </li>
|
|
|
|
- <li class="carts" v-for="item in commentList" :key="item.id">
|
|
|
|
- <!-- <el-image style="width: 30px; height: 30px" :src="url" :fit="fit"></el-image> -->
|
|
|
|
- <!-- <i :style="'background' + item.userColor"> -->
|
|
|
|
- <i :style="'background' + item.userColor">
|
|
|
|
- <i v-if="user.userNameNeedTranslate != '1'">
|
|
|
|
- {{item.userName.length > 2 ? item.userName.substring(item.userName.length - 2, item.userName.length) : item.userName}}
|
|
|
|
- </i>
|
|
|
|
- <i v-if="user.userNameNeedTranslate == '1'">
|
|
|
|
- <ww-open-data type='userName' :openid='item.userName'></ww-open-data>
|
|
|
|
- </i>
|
|
|
|
- </i>
|
|
|
|
- <div>
|
|
|
|
- <!-- <p>{{item.userName}}</p> -->
|
|
|
|
- <p v-if="user.userNameNeedTranslate != '1'">{{item.userName}}</p>
|
|
|
|
- <p v-if="user.userNameNeedTranslate == '1'"><ww-open-data type='userName' :openid='item.userName'></ww-open-data></p>
|
|
|
|
- <em>
|
|
|
|
- <!-- {{item.content}} -->
|
|
|
|
- <p style="display: inline-block;padding: 0;margin: 0;" v-if="user.userNameNeedTranslate == 1">
|
|
|
|
- {{item.content.msg1}}
|
|
|
|
- <ww-open-data type='userName' :openid='item.content.msg2'></ww-open-data>
|
|
|
|
- {{item.content.msg3}}
|
|
|
|
- </p>
|
|
|
|
- <p style="display: inline-block;padding: 0;margin: 0;" v-if="user.userNameNeedTranslate != 1">{{item.content}}</p>
|
|
|
|
- </em>
|
|
|
|
- </div>
|
|
|
|
- <span>{{item.createTime | relativeTime}}</span>
|
|
|
|
- </li>
|
|
|
|
- </ul>
|
|
|
|
- </div>
|
|
|
|
-
|
|
|
|
- <div class="Daily" v-if="!dynamicTab">
|
|
|
|
- <div class="one_daily_body DailyBody">
|
|
|
|
- <el-card shadow="never" v-for="(item2,index2) in dailyList" :key="index2" style="margin-bottom: 20px;">
|
|
|
|
- <p>
|
|
|
|
- {{ $t('tian-bao-ren') }}: <span v-if="user.userNameNeedTranslate != 1">{{item2.userName}}</span>
|
|
|
|
- <span v-if="user.userNameNeedTranslate == 1">
|
|
|
|
- <ww-open-data type='userName' :openid='item2.userName'></ww-open-data>
|
|
|
|
- </span>
|
|
|
|
- <span style="float: right;">{{item2.createDate}}</span>
|
|
|
|
- </p>
|
|
|
|
- <p>{{ $t('other.approvalStatus') }}:
|
|
|
|
- <span v-if="user.company.packageEngineering == 0">
|
|
|
|
- <span style="margin-left:15px;color:#DAA520;" v-if="item2.state == 0">
|
|
|
|
- <span v-if="item2.isDeptAudit==0">
|
|
|
|
- <span v-if="item2.projectAuditState==0">
|
|
|
|
- <!-- 待项目审核人 --> {{$t('other.waitForTheProjectReviewer')}}
|
|
|
|
- <span v-if="item2.projectAuditorName != null">(
|
|
|
|
- <span v-if="user.userNameNeedTranslate == '1'">
|
|
|
|
- <ww-open-data type='userName' :openid='item2.projectAuditorName'></ww-open-data>
|
|
|
|
- </span>
|
|
|
|
- <span v-if="user.userNameNeedTranslate != '1'">{{item2.projectAuditorName}}</span>
|
|
|
|
- )</span>
|
|
|
|
- <!-- 审核 --> {{$t('other.audit')}}
|
|
|
|
- </span>
|
|
|
|
- <span style="color:#32CD32;" v-else-if="item2.projectAuditState==1">
|
|
|
|
- <!-- 项目审核人 --> {{$t('other.projectAuditor')}}
|
|
|
|
- <span v-if="item2.projectAuditorName != null">(
|
|
|
|
- <!-- {{item2.projectAuditorName}} -->
|
|
|
|
- <span v-if="user.userNameNeedTranslate == '1'">
|
|
|
|
- <ww-open-data type='userName' :openid='item2.projectAuditorName'></ww-open-data>
|
|
|
|
- </span>
|
|
|
|
- <span v-if="user.userNameNeedTranslate != '1'">{{item2.projectAuditorName}}</span>
|
|
|
|
- )</span>
|
|
|
|
- <!-- 审核通过 --> {{$t('state.approved')}}
|
|
|
|
- </span>
|
|
|
|
- </span>
|
|
|
|
- <span v-else-if="item2.isDeptAudit==1">
|
|
|
|
- ({{$t('other.await')}}
|
|
|
|
- <span v-if="user.userNameNeedTranslate == '1'">
|
|
|
|
- <ww-open-data type='departmentName' :openid='item2.auditDeptName'></ww-open-data>
|
|
|
|
- </span>
|
|
|
|
- <span v-if="user.userNameNeedTranslate != '1'">{{item2.auditDeptName}}</span>
|
|
|
|
- {{$t('other.audit')}})
|
|
|
|
- </span>
|
|
|
|
- </span>
|
|
|
|
- <span style="margin-left:15px;color:#DAA520;" v-else-if="item2.state == -1">{{$t('other.importWaitingForReview')}}</span>
|
|
|
|
- <span style="margin-left:15px;color:#32CD32;" v-else-if="item2.state == 1">{{$t('state.alreadyPassed')}}
|
|
|
|
- <span style="color:#c7e944" v-if="item2.reportAutoApprove == 1">{{$t('other.automaticReview')}}</span>
|
|
|
|
- </span>
|
|
|
|
-
|
|
|
|
- <span style="margin-left:15px;color:#FF0000;" v-else-if="item2.state == 2">{{$t('state.rejected')}} {{$t('other.reason')}}:{{item2.rejectReason}}</span>
|
|
|
|
- <span style="margin-left:15px;color:#FF0000;" v-else-if="item2.state == 3">{{$t('state.waitingsubmit')}}</span>
|
|
|
|
- </span>
|
|
|
|
- <span v-if="user.company.packageEngineering == 1">
|
|
|
|
- <span style="margin-left:15px;color:#DAA520;" v-if="item2.state == -1">{{$t('other.importWaitingForReview')}}</span>
|
|
|
|
- <span style="margin-left:15px;color:#DAA520;" v-if="item2.state == 0 && item2.departmentAuditState == -1">{{$t('other.waitingForProfessionalReview')}}</span>
|
|
|
|
- <span style="margin-left:15px;color:#DAA520;" v-if="item2.state == 0 && item2.departmentAuditState == 0">{{$t('other.waitingForDepartmentReview')}}</span>
|
|
|
|
- <span style="margin-left:15px;color:#DAA520;" v-if="item2.state == 0 && item2.departmentAuditState == 1">{{$t('other.waitForTheProjectReviewer')}}<span v-if="item2.projectAuditorName != null">
|
|
|
|
- (
|
|
|
|
- <span v-if="user.userNameNeedTranslate != 1">
|
|
|
|
- {{item2.projectAuditorName}}
|
|
|
|
- </span>
|
|
|
|
- <span v-if="user.userNameNeedTranslate == 1">
|
|
|
|
- <ww-open-data type='userName' :openid='item2.projectAuditorName'></ww-open-data>
|
|
|
|
- </span>
|
|
|
|
- )
|
|
|
|
- </span>{{$t('other.audit')}}</span>
|
|
|
|
- <span style="margin-left:15px;color:#32CD32;" v-else-if="item2.state == 1">{{$t('state.alreadyPassed')}}</span>
|
|
|
|
- <span style="margin-left:15px;color:#FF0000;" v-else-if="item2.state == 2">{{$t('state.rejected')}} {{$t('other.reason')}}:{{item2.rejectReason}}</span>
|
|
|
|
- <span style="margin-left:15px;color:#FF0000;" v-else-if="item2.state == 3">{{$t('state.waitingsubmit')}}</span>
|
|
|
|
- </span>
|
|
|
|
- </p>
|
|
|
|
- <p v-if="user.timeType.customDegreeActive==1 && item2.degree_id != null && item2.degree_id != -1">{{user.timeType.customDegreeName}}:{{item2.degreeName}}</p>
|
|
|
|
- <p v-if="user.timeType.customDataActive==1">{{user.timeType.customDataName}}:{{item2.customData}}</p>
|
|
|
|
- <!-- 自定义日报文本 -->
|
|
|
|
- <p v-if="user.timeType.customTextActive==1">{{user.timeType.customTextName}}:{{item2.customText}}</p>
|
|
|
|
- <p v-if="user.company.packageEngineering == 1">
|
|
|
|
- {{$t('other.professionalProgress')}}:
|
|
|
|
- <span style="margin-right:10px;" v-for="progressItem in item2.professionProgress" :key="progressItem.id">{{progressItem.professionName}}({{progressItem.progress}}%)
|
|
|
|
- <el-tooltip v-if="progressItem.auditState == 0" :content="$t('state.WaitingAudit')" effect="light" placement="top">
|
|
|
|
- <i class="iconfont firerock-icondaibandengdaishenhe"></i>
|
|
|
|
- </el-tooltip>
|
|
|
|
- <el-tooltip v-if="progressItem.auditState == 1" :content="$t('state.alreadyPassed')" effect="light" placement="top">
|
|
|
|
- <i class="iconfont firerock-iconshenhetongguo"></i>
|
|
|
|
- </el-tooltip>
|
|
|
|
- <el-tooltip v-if="progressItem.auditState == 2" :content="$t('state.notThrough')" effect="light" placement="top">
|
|
|
|
- <i class="iconfont firerock-iconshenhebohui"></i>
|
|
|
|
- </el-tooltip>
|
|
|
|
- </span>
|
|
|
|
- </p>
|
|
|
|
- <div v-if="item2.multiWorktime==0">
|
|
|
|
- <p style="display: inline-block;">{{$t('time.duration')}}:
|
|
|
|
- <span v-if="item2.reportTimeType == 0" style="margin-right:10px;">{{typeList[item2.timeType]}}</span>
|
|
|
|
- <span v-if="item2.reportTimeType == 2" style="margin-right:10px;">{{item2.startTime+'-'+item2.endTime}}</span>
|
|
|
|
- {{item2.time.toFixed(1)}}h
|
|
|
|
- <el-tag type="danger" size="mini" style="margin-left: 65px" v-if="item2.isOvertime === 1">{{$t('other.WorkOvertime')}}<span v-if="item2.overtimeHours">{{item2.overtimeHours.toFixed(1)}}h</span></el-tag>
|
|
|
|
- </p>
|
|
|
|
- <p>{{$t('other.matters')}}:<span v-html="item2.content"></span></p>
|
|
|
|
- </div>
|
|
|
|
- <div v-if="item2.multiWorktime==1" >
|
|
|
|
- <p>{{$t('other.projectDuration')}}:{{item2.time.toFixed(1)}}h <el-tag type="danger" size="mini" style="margin-left: 65px" v-if="item2.isOvertime === 1">{{ $t('other.WorkOvertime') }}<span v-if="item2.overtimeHours">{{item2.overtimeHours.toFixed(1)}}h</span></el-tag></p>
|
|
|
|
- <div v-for="(timeItem, tIndex) in item2.worktimeList" :key="tIndex"
|
|
|
|
- style="border: 0.5px #ddd solid;margin-bottom:5px;padding:5px;">
|
|
|
|
- <p style="display: inline-block;">{{$t('time.duration')}}:
|
|
|
|
- <span v-if="item2.reportTimeType == 2" style="margin-right:10px;">{{timeItem.startTime+'-'+timeItem.endTime}}</span>
|
|
|
|
- {{timeItem.time.toFixed(1)}}h
|
|
|
|
- </p>
|
|
|
|
- <p>{{$t('other.matters')}}:<span v-html="timeItem.content"></span></p>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <p v-if="item2.state == 1 && user.timeType.needEvaluate == 1">{{$t('other.evaluation')}}:<span v-html="item2.evaluate"></span></p>
|
|
|
|
-
|
|
|
|
- <!--照片的显示 -->
|
|
|
|
- <p v-if="item2.pics != null && item2.pics.length > 0">
|
|
|
|
- <el-image v-for="(pic, index) in item2.pics" :key="index"
|
|
|
|
- style="width: 100px; height: 100px; margin-right:10px;"
|
|
|
|
- :src="pic"
|
|
|
|
- :preview-src-list="item2.pics">
|
|
|
|
- </el-image>
|
|
|
|
- </p>
|
|
|
|
- </el-card>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="issue" v-if="dynamicTab">
|
|
|
|
- <!-- <el-input type="textarea" class="textareays" label-width="100%" label-height="140px"></el-input> -->
|
|
|
|
- <div class="issue_fixation">
|
|
|
|
- <div class="inputDeep"><el-input
|
|
|
|
- type="textarea"
|
|
|
|
- :placeholder="$t('pleaseentercontent')"
|
|
|
|
- :autosize="{ minRows: 6, maxRows: 6}"
|
|
|
|
- v-model="textarea2"
|
|
|
|
- class="inputDeeps"
|
|
|
|
- >
|
|
|
|
- </el-input></div>
|
|
|
|
- <el-button class="issue-button" type="primary" @click="release()">{{ $t('fa-bu') }}</el-button>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </span>
|
|
|
|
- </div>
|
|
|
|
- <!-- /评论 -->
|
|
|
|
- </div>
|
|
|
|
</el-dialog>
|
|
</el-dialog>
|
|
|
|
|
|
<!-- 发起会议 -->
|
|
<!-- 发起会议 -->
|
|
@@ -900,7 +500,7 @@ import { error } from 'dingtalk-jsapi';
|
|
cause: '',
|
|
cause: '',
|
|
responsible: []
|
|
responsible: []
|
|
},
|
|
},
|
|
-
|
|
|
|
|
|
+ isDeleting: true,
|
|
showOrNot: false,
|
|
showOrNot: false,
|
|
typeField: null,
|
|
typeField: null,
|
|
searchField: '0',
|
|
searchField: '0',
|
|
@@ -1592,7 +1192,6 @@ import { error } from 'dingtalk-jsapi';
|
|
},
|
|
},
|
|
// 点击任务事件
|
|
// 点击任务事件
|
|
editTask(task) {
|
|
editTask(task) {
|
|
- console.log(task, 12345, this.addForm)
|
|
|
|
this.addFormVisible = true;
|
|
this.addFormVisible = true;
|
|
// this.addLoading = false;
|
|
// this.addLoading = false;
|
|
this.title = this.$t('editingtasks');
|
|
this.title = this.$t('editingtasks');
|
|
@@ -2108,8 +1707,10 @@ import { error } from 'dingtalk-jsapi';
|
|
this.$confirm(warning, this.$t('other.prompts'), {
|
|
this.$confirm(warning, this.$t('other.prompts'), {
|
|
//type: 'warning'
|
|
//type: 'warning'
|
|
}).then(() => {
|
|
}).then(() => {
|
|
|
|
+ this.isDeleting = true;
|
|
this.http.post('/task/delete',{id: this.addForm.id},
|
|
this.http.post('/task/delete',{id: this.addForm.id},
|
|
res => {
|
|
res => {
|
|
|
|
+ this.isDeleting = false;
|
|
if (res.code == "ok") {
|
|
if (res.code == "ok") {
|
|
this.addFormVisible = false;
|
|
this.addFormVisible = false;
|
|
// this.getStageList();
|
|
// this.getStageList();
|
|
@@ -2122,6 +1723,7 @@ import { error } from 'dingtalk-jsapi';
|
|
}
|
|
}
|
|
},
|
|
},
|
|
error => {
|
|
error => {
|
|
|
|
+ this.isDeleting = false;
|
|
this.$message({
|
|
this.$message({
|
|
message: error,
|
|
message: error,
|
|
type: "error"
|
|
type: "error"
|