Преглед изворни кода

Merge branch 'master' of http://47.100.37.243:10080/wutt/manHourHousekeeper

ggooalice пре 2 година
родитељ
комит
5991c3f1a6

+ 78 - 1
fhKeeper/formulahousekeeper/timesheet/src/i18n/en.json

@@ -453,5 +453,82 @@
   "financialcoststatisticss": "Financial cost statistics",
   "waiforverification": "Import successful, please wait for review",
   "zongjia": "total price",
-  "apportionmentratiodata": "Piece of Apportionment Proportion Data"
+  "apportionmentratiodata": "Piece of Apportionment Proportion Data",
+  "tasklist": "task list",
+  "ongoing": "processing",
+  "risk": "risk",
+  "subordinatedepartments": "Department",
+  "types": "type",
+  "deadline": "deadline",
+  "starttimes": "Starting time",
+  "alltaskss": "all tasks",
+  "created": "I created",
+  "interval": "interval",
+  "perform": "I execute",
+  "addsubitems": "Add subproject",
+  "bian-ji": "edit",
+  "listofsubitems": "list of subprojects",
+  "nameofthetask": "mission name",
+  "names": "name",
+  "taskstage": "mission phase",
+  "wan-cheng": "Finish",
+  "zhi-hang-ren": "executor",
+  "zhong-qi": "reboot",
+  "enterthetaskcontent": "Please enter the task content",
+  "plantime": "Scheduled hours",
+  "pleaseselectadate": "Please select a date",
+  "pleaseselectanexecutor": "Please select an executor",
+  "taskdefinition": "Task content",
+  "addinganexecutor": "Add executor",
+  "addtaskprogress": "Add mission progress",
+  "atrisk": "There is a risk",
+  "deleteList ": "delete list",
+  "detaileddescription": "Detailed Description",
+  "detailedprogressdescription": "Please enter detailed progress description",
+  "fa-bu": "release",
+  "normals": "normal state",
+  "pleaseentertheplannedworking": "Please enter the planned working hours, in hours",
+  "priority": "priority",
+  "taskprogress": "Mission progress",
+  "viewingHistory": "View history",
+  "whotoremindtocheck": "remind who to view",
+  "withinthetimelimit": "Progress overdue",
+  "geng-xin-yu": "updated on",
+  "nodata": "No data",
+  "parenttask": "Return to parent task",
+  "participantin": "participant",
+  "alldynamic": "All updates",
+  "managerQucompletedthedependencytask": "Manager Qu completed the dependent task",
+  "onApril20": "April 20",
+  "pleaseenteragroupname": "Please enter a group name",
+  "pleaseentercontent": "Please enter content",
+  "hoursago": "7 hours ago",
+  "pleaseenteratasklistname": "Please enter a task list name",
+  "pleaseentethetext": "Please enter text...",
+  "hoursago8": "eight hours ago",
+  "missionscompleted": "completed tasks",
+  "taskinprogress": "task in progress",
+  "taskscheduled": "pending tasks",
+  "createdthetask": "Tasks I created",
+  "missionIwason": "tasks I perform",
+  "taskthatisoverdue": "overdue tasks",
+  "todaytask": "today's task",
+  "jin-ji": "urgent",
+  "yi-ban": "generally",
+  "zhong-yao": "important",
+  "makesuretodeletethesubproject": "Are you sure you want to delete the subproject",
+  "ma": "?",
+  "deletesubproject": "delete subproject",
+  "addWork": "add task",
+  "modifytheproject": "Modify an item",
+  "identifytheproject": "sure you want the project",
+  "deletetheproject": "delete item",
+  "editingtasks": "Edit tasks",
+  "releasesuccess": "Published successfully",
+  "createtask ": "Create a task",
+  "imageexceeds2MBpleaseuploaditagain": "The image exceeds 2MB, please re-upload",
+  "currenttaskanditssubtasks": "Are you sure you want to delete the current task and its subtasks?",
+  "executorhasduplication": "Executors are duplicated",
+  "pictureistoolargepleaseuploaditagain": "The image is too large, please re-upload",
+  "wanttodeletethecurrent task": "Are you sure you want to delete the current task?"
 }

+ 78 - 1
fhKeeper/formulahousekeeper/timesheet/src/i18n/zh.json

@@ -453,5 +453,82 @@
   "financialcoststatisticss": "财务成本统计",
   "zongjia": "总价",
   "waiforverification": "导入成功,请等待审核",
-  "apportionmentratiodata": "条分摊比例数据"
+  "apportionmentratiodata": "条分摊比例数据",
+  "tasklist": "任务列表",
+  "ongoing": "进行中",
+  "subordinatedepartments": "所属部门",
+  "types": "类型",
+  "risk": "风险",
+  "starttimes": "开始时间",
+  "deadline": "截止时间",
+  "interval": "区间",
+  "alltaskss": "全部任务",
+  "perform": "我执行的",
+  "created": "我创建的",
+  "taskstage": "任务阶段",
+  "nameofthetask": "任务名称",
+  "zhi-hang-ren": "执行人",
+  "wan-cheng": "完成",
+  "zhong-qi": "重启",
+  "listofsubitems": "子项目列表",
+  "names": "名称",
+  "bian-ji": "编辑",
+  "addsubitems": "新增子项目",
+  "taskdefinition": "任务内容",
+  "enterthetaskcontent": "请输入任务内容",
+  "pleaseselectadate": "请选择日期",
+  "pleaseselectanexecutor": "请选择执行人",
+  "plantime": "计划工时",
+  "pleaseentertheplannedworking": "请输入计划工作时长,单位小时",
+  "addinganexecutor": "添加执行人",
+  "priority": "优先级",
+  "detaileddescription": "详细描述",
+  "taskprogress": "任务进展",
+  "addtaskprogress": "添加任务进展",
+  "normals": "状态正常",
+  "atrisk": "存在风险",
+  "withinthetimelimit": "进展逾期",
+  "detailedprogressdescription": "请输入详细进展描述",
+  "whotoremindtocheck": "提醒谁查看",
+  "fa-bu": "发布",
+  "deleteList ": "删除列表",
+  "viewingHistory": "查看历史记录",
+  "geng-xin-yu": "更新于",
+  "nodata": "暂无数据",
+  "parenttask": "返回父任务",
+  "participantin": "参与人",
+  "alldynamic": "所有动态",
+  "managerQucompletedthedependencytask": "屈经理完成了依赖任务",
+  "onApril20": "4月20日",
+  "pleaseentercontent": "请输入内容",
+  "pleaseenteragroupname": "请输入分组名称",
+  "pleaseenteratasklistname": "请输入任务列表名称",
+  "pleaseentethetext": "请输入文本...",
+  "hoursago": "7小时前",
+  "hoursago8": "八小时前",
+  "taskinprogress": "进行中的任务",
+  "missionscompleted": "已完成的任务",
+  "taskscheduled": "待安排任务",
+  "createdthetask": "我创建的任务",
+  "missionIwason": "我执行的任务",
+  "todaytask": "今天的任务",
+  "taskthatisoverdue": "已超期的任务",
+  "yi-ban": "一般",
+  "zhong-yao": "重要",
+  "jin-ji": "紧急",
+  "makesuretodeletethesubproject": "确定要删除子项目",
+  "ma": "吗?",
+  "deletesubproject": "删除子项目",
+  "addWork": "新增任务",
+  "modifytheproject": "修改项目",
+  "identifytheproject": "确定要项目",
+  "deletetheproject": "删除项目",
+  "editingtasks": "编辑任务",
+  "releasesuccess": "发布成功",
+  "createtask ": "创建任务",
+  "imageexceeds2MBpleaseuploaditagain": "图片超过了2MB,请重新上传",
+  "pictureistoolargepleaseuploaditagain": "图片太大,请重新上传",
+  "executorhasduplication": "执行人存在重复",
+  "currenttaskanditssubtasks": "您确定要删除当前任务及其子任务吗?",
+  "wanttodeletethecurrent task": "您确定要删除当前任务吗?"
 }

+ 127 - 204
fhKeeper/formulahousekeeper/timesheet/src/views/task/list.vue

@@ -7,12 +7,12 @@
                 <el-form-item label="任务列表">
                 </el-form-item>
                 </div> -->
-                <el-form-item label="任务列表">
+                <el-form-item :label="$t('tasklist')">
                     <div style="margin-left: 8px">
                     <!-- <el-input style="float:left;" v-model="keyword" class="input-with-select" placeholder="请输入项目名称关键字" clearable="true"> -->
-                        <el-select v-model="searchField" style="width:120px;" size="small" slot="prepend" placeholder="请选择">
-                            <el-option label="进行中" value="0" @click.native="hiddens()"></el-option>
-                            <el-option label="已完成" value="1" @click.native="hiddens()"></el-option>
+                        <el-select v-model="searchField" style="width:120px;" size="small" slot="prepend" :placeholder="$t('defaultText.pleaseChoose')">
+                            <el-option :label="$t('ongoing')" value="0" @click.native="hiddens()"></el-option>
+                            <el-option :label="$t('state.completed')" value="1" @click.native="hiddens()"></el-option>
                         </el-select>
                         <!-- <el-button slot="append" @click="searchList" icon="el-icon-search"></el-button> -->
                     <!-- </el-input> -->
@@ -26,9 +26,9 @@
                     </div>
                 </el-form-item> -->
 
-                <el-form-item label="所属部门" v-if="user.timeType.projectWithDept">
+                <el-form-item :label="$t('subordinatedepartments')" v-if="user.timeType.projectWithDept">
                     <!-- <span style="margin-left:5px;margin-right:5px;color:#606266;">部门</span> -->
-                    <el-cascader v-model="deptId" :options="departmentList" size="small" placeholder="请选择部门"
+                    <el-cascader v-model="deptId" :options="departmentList" size="small" :placeholder="$t('qing-xuan-ze-bu-men')"
                         :props="{ checkStrictly: true, expandTrigger: 'hover' }" :show-all-levels="false" clearable filterable @change="hiddens"
                     ></el-cascader>
                 </el-form-item>
@@ -41,16 +41,16 @@
                 <el-form-item label="类型">
                 </el-form-item>
                 </div> -->
-                <el-form-item label="类型">
+                <el-form-item :label="$t('types')">
                     <div style="margin-left: 8px">
                     <!-- <el-input style="float:left;" v-model="keyword" class="input-with-select" placeholder="请输入项目名称关键字" clearable="true"> -->
-                        <el-select v-model="typeField" style="width:120px;" size="small" slot="prepend" placeholder="请选择" clearable @change="hiddens()">
+                        <el-select v-model="typeField" style="width:120px;" size="small" slot="prepend" :placeholder="$t('defaultText.pleaseChoose')" clearable @change="hiddens()">
                             <!-- <el-option label="任务" value="0" @click.native="hiddens()"></el-option>
                             <el-option label="里程碑" value="1" @click.native="hiddens()"></el-option>
                             <el-option label="风险" value="2" @click.native="hiddens()"></el-option> -->
-                            <el-option label="任务" value="0"></el-option>
-                            <el-option label="里程碑" value="1"></el-option>
-                            <el-option label="风险" value="2"></el-option>
+                            <el-option :label="$t('other.task')" value="0"></el-option>
+                            <el-option :label="$t('other.milestone')" value="1"></el-option>
+                            <el-option :label="$t('risk')" value="2"></el-option>
                         </el-select>
                         <!-- <el-button slot="append" @click="searchList" icon="el-icon-search"></el-button> -->
                     <!-- </el-input> -->
@@ -58,9 +58,9 @@
                 </el-form-item>
                 <el-form-item >
                     <div style="margin-left: 80px">
-                        <el-select v-model="dateType" style="width:120px;" size="small" slot="prepend" placeholder="请选择">
-                            <el-option label="开始时间" :value="0" @click.native="hiddens(1)"></el-option>
-                            <el-option label="截止时间" :value="1" @click.native="hiddens(1)"></el-option>
+                        <el-select v-model="dateType" style="width:120px;" size="small" slot="prepend" :placeholder="$t('defaultText.pleaseChoose')">
+                            <el-option :label="$t('starttimes')" :value="0" @click.native="hiddens(1)"></el-option>
+                            <el-option :label="$t('deadline')" :value="1" @click.native="hiddens(1)"></el-option>
                         </el-select>
                     </div>
                 </el-form-item>
@@ -71,8 +71,8 @@
                         type="daterange"
                         size="small"
                         range-separator="-"
-                        start-placeholder="区间"
-                        end-placeholder="区间"
+                        :start-placeholder="$t('interval')"
+                        :end-placeholder="$t('interval')"
                         value-format="yyyy-MM-dd"
                         clearable
                         @change="hiddens()">
@@ -84,9 +84,9 @@
         <div style="display: flex;width: 100%;">
             <div class="classification">
                 <div>
-                    <p :class="idx == 0 ? 'on' : ''" @click="switchs(0)" v-if="permissions.projectView || permissions.projectManagement">全部任务</p>
-                    <p :class="idx == 1 ? 'on' : ''" @click="switchs(1)">我执行的</p>
-                    <p :class="idx == 2 ? 'on' : ''" @click="switchs(2)">我创建的</p>
+                    <p :class="idx == 0 ? 'on' : ''" @click="switchs(0)" v-if="permissions.projectView || permissions.projectManagement">{{ $t('alltaskss') }}</p>
+                    <p :class="idx == 1 ? 'on' : ''" @click="switchs(1)">{{ $t('perform') }}</p>
+                    <p :class="idx == 2 ? 'on' : ''" @click="switchs(2)">{{ $t('created') }}</p>
                 </div>
             </div>
             <div style="max-width: 94%;min-width: 90%">
@@ -97,9 +97,9 @@
                             {{scope.$index+1+(page-1)*size}} 
                         </template>
                     </el-table-column>
-                    <el-table-column prop="stagesName" label="任务阶段" sortable width="180" @mouseover="mouseOver">
+                    <el-table-column prop="stagesName" :label="$t('taskstage')" sortable width="180" @mouseover="mouseOver">
                     </el-table-column>
-                    <el-table-column prop="name" label="任务名称" sortable width="330">
+                    <el-table-column prop="name" :label="$t('nameofthetask')" sortable width="330">
                         <template slot-scope="scope">
                             <div v-if="scope.row.name.length > 20">
                                 <el-popover trigger="hover" placement="top" width="330" v-if="scope.row.name">
@@ -119,28 +119,28 @@
                         </template>
                     </el-table-column>
                     <!-- <el-table-column prop="projectCategorySub" label="项目分组" sortable width="300" v-if="user.companyId == '428'"></el-table-column> -->
-                    <el-table-column prop="departmentName" label="所属部门" sortable width="300" v-if="user.timeType.projectWithDept"></el-table-column>
-                    <el-table-column prop="projectName" label="项目名称" sortable width="260" show-overflow-tooltip>
+                    <el-table-column prop="departmentName" :label="$t('subordinatedepartments')" sortable width="300" v-if="user.timeType.projectWithDept"></el-table-column>
+                    <el-table-column prop="projectName" :label="$t('headerTop.projectName')" sortable width="260" show-overflow-tooltip>
                         <template slot-scope="scope">
                             <el-link type="primary" :href="'#/projectInside/'+scope.row.projectId">{{scope.row.projectName}}</el-link>
                         </template>
                     </el-table-column>
-                    <el-table-column prop="executorName" label="执行人" sortable width="130">
+                    <el-table-column prop="executorName" :label="$t('zhi-hang-ren')" sortable width="130">
                         <template slot-scope="scope">
                             <!-- <el-link type="primary" @click="showUser(scope.row.executorId)">{{scope.row.executorName}}</el-link> -->
                             <span>{{scope.row.executorName}}</span>
                         </template>
                     </el-table-column>
                     
-                    <el-table-column prop="startDate" label="开始时间" sortable width="180"></el-table-column>
-                    <el-table-column prop="endDate" label="截止时间" width="260" fixed="right" sortable>
+                    <el-table-column prop="startDate" :label="$t('starttimes')" sortable width="180"></el-table-column>
+                    <el-table-column prop="endDate" :label="$t('deadline')" width="260" fixed="right" sortable>
                         <template slot-scope="scope">
                             <div style="display: flex;justify-content: space-between;padding-right: 40px">
                             <span style="display: inline-block;margin-right: 55px">
                                 <span  :class="judgedate(scope.row.endDate) && searchField == '0' && scope.row.taskStatus == 0 ? 'redwarningspan autodatespan' : 'autodatespan'">{{scope.row.endDate}}</span>
                             </span>
-                            <el-button v-if="searchField == 0" size="small" type="primary" @click="completes(scope.row.id, 0)">完成</el-button>
-                            <el-button v-if="searchField == 1" size="small" type="warning" @click="completes(scope.row.id, 1)">重启</el-button>
+                            <el-button v-if="searchField == 0" size="small" type="primary" @click="completes(scope.row.id, 0)">{{ $t('wan-cheng') }}</el-button>
+                            <el-button v-if="searchField == 1" size="small" type="warning" @click="completes(scope.row.id, 1)">{{ $t('zhong-qi') }}</el-button>
                             </div>
                         </template>
                     </el-table-column>
@@ -161,93 +161,52 @@
                 </el-col>
             </div>
         </div>
-        <!--新增界面-->
-        <!-- <el-dialog :title="title" v-if="addFormVisible" :visible.sync="addFormVisible" :close-on-click-modal="false" customClass="customWidth" width="600px">
-            <el-form ref="form1" :model="addForm" :rules="rules" label-width="100px">
-                <el-form-item label="任务名称" >
-                    <el-input v-model="addForm.code" :disabled="user.role==0" placeholder="请输入项目编号" clearable></el-input>
-                </el-form-item>
-                <el-form-item label="项目名称" prop="name">
-                    <el-input v-model="addForm.name" :disabled="user.role==0" placeholder="请输入项目名称" clearable></el-input>
-                </el-form-item>
-                <el-form-item label="全部参与者">
-                    <el-select v-model="addForm.userId" multiple filterable placeholder="请选择参与者" style="width:100%;" @change="changeParticipator">
-                        <el-option v-for="item in users" :key="item.id" :label="item.name" :value="item.id"></el-option>
-                    </el-select>
-                </el-form-item>
-                <el-form-item label="主要负责人" >
-                    <el-select v-model="addForm.inchargerId" :disabled="addForm.userId.length==0 ||  user.role==0" filterable placeholder="请选择负责人" style="width:100%;" @change="changeIncharger">
-                        <el-option v-for="item in participator" :key="item.id" :label="item.name" :value="item.id"></el-option>
-                    </el-select>
-                </el-form-item>
-                
-            </el-form>
-            <div slot="footer" class="dialog-footer">
-                <el-button @click.native="addFormVisible = false">取消</el-button>
-                <el-button type="primary" @click="submitInsert" :loading="addLoading">提交</el-button>
-            </div>
-        </el-dialog> -->
-
         <!--用户详细信息弹出框-->
-        <el-dialog title="查看详情" v-if="userDetailVisible" :visible.sync="userDetailVisible" :close-on-click-modal="false" customClass="customWidth" width="400px">
-            <div class="line"><span>姓名</span><span>{{userDetail.name}}</span></div>
-            <div class="line"><span>工号</span><span>{{userDetail.jobNumber}}</span></div>
-            <div class="line"><span>手机号码</span><span>{{userDetail.phone}}</span></div>
-            <div class="line"><span>部门</span><span>{{userDetail.departmentName}}</span></div>
-            <div class="line"><span>成本</span><span>{{userDetail.cost}}元/小时</span></div>
+        <el-dialog :title="$t('Checkthedetails')" v-if="userDetailVisible" :visible.sync="userDetailVisible" :close-on-click-modal="false" customClass="customWidth" width="400px">
+            <div class="line"><span>{{ $t('lable.name') }}</span><span>{{userDetail.name}}</span></div>
+            <div class="line"><span>{{ $t('Worknumber') }}</span><span>{{userDetail.jobNumber}}</span></div>
+            <div class="line"><span>{{ $t('lable.phone') }}</span><span>{{userDetail.phone}}</span></div>
+            <div class="line"><span>{{ $t('lable.department') }}</span><span>{{userDetail.departmentName}}</span></div>
+            <div class="line"><span>{{ $t('costof') }}</span><span>{{userDetail.cost}}{{ $t('Yuananhour') }}</span></div>
             <div slot="footer" class="dialog-footer">
-                <el-button type="primary" @click="userDetailVisible = false" >确定</el-button>
+                <el-button type="primary" @click="userDetailVisible = false" >{{ $t('btn.determine') }}</el-button>
             </div>
         </el-dialog>
         <!-- 子项目列表 -->
-        <el-dialog title="子项目列表" show-header="false" v-if="subProjectVisible" :visible.sync="subProjectVisible" :close-on-click-modal="false" customClass="customWidth" width="500px">
+        <el-dialog :title="$t('listofsubitems')" show-header="false" v-if="subProjectVisible" :visible.sync="subProjectVisible" :close-on-click-modal="false" customClass="customWidth" width="500px">
             <el-table :data="subProjectList" highlight-current-row  height="400" style="width: 100%;">
-            <el-table-column type="index" width="60" label="序号">
+            <el-table-column type="index" width="60" :label="$t('headerTop.serialNumber')">
                 <template slot-scope="scope" >
                         {{scope.$index+1+(page-1)*size}}
                     </template>
             </el-table-column>
-            <el-table-column prop="name" label="名称" ></el-table-column>
-            <el-table-column label="操作" width="150">
+            <el-table-column prop="name" :label="$t('names')" ></el-table-column>
+            <el-table-column :label="$t('operation')" width="150">
                 <template slot-scope="scope" >
-                    <el-button size="small" type="primary" @click="addNewSubProject(scope.row)">编辑</el-button>
-                    <el-button size="small" type="danger" @click="deleteSubPro(scope.row)">删除</el-button>
+                    <el-button size="small" type="primary" @click="addNewSubProject(scope.row)">{{ $t('bian-ji') }}</el-button>
+                    <el-button size="small" type="danger" @click="deleteSubPro(scope.row)">{{ $t('btn.delete') }}</el-button>
                 </template>
             </el-table-column>
 
             </el-table>
             <div slot="footer" class="dialog-footer">
-                <el-button type="primary" @click="subProjectVisible = false" >关闭</el-button>
-                <el-button type="primary" @click="addNewSubProject()" >新增子项目</el-button>
+                <el-button type="primary" @click="subProjectVisible = false" >{{ $t('Shutdown') }}</el-button>
+                <el-button type="primary" @click="addNewSubProject()" >{{ $t('addsubitems') }}</el-button>
             </div>
         </el-dialog>
 
-
-        <!-- 新增子项目弹出框 -->
-        <!-- <el-dialog title="新增/修改子项目" v-if="addSubProject" :visible.sync="addSubProject" :close-on-click-modal="false" customClass="customWidth" width="500px">
-            <el-form ref="form2" :model="addForm" :rules="rules" label-width="100px">
-                <el-form-item label="项目名称" prop="name">
-                    <el-input v-model="addForm.name" placeholder="请输入项目名称" clearable></el-input>
-                </el-form-item>
-            </el-form>
-            <div slot="footer" class="dialog-footer">
-                <el-button @click.native="addSubProject = false">取消</el-button>
-                <el-button type="primary" @click="submitInsertSubProject" :loading="addLoading">提交456</el-button>
-            </div>
-        </el-dialog> -->
-
         <!-- 任务详情信息弹出框 -->
         <el-dialog :class="addForm.id==null?'':'jm'" :title="title" v-if="addFormVisible" :visible.sync="addFormVisible" 
         :close-on-click-modal="false" customClass="customWidth" width="800px">
         <!-- <div style="width: 200%;height:80%;position: absolute;right:-100%;top:0;background:#000;opacity: 0;" @click="sss"></div> -->
             <el-form ref="form1" :model="addForm" :rules="taskRules" label-width="100px">
                 <!--子任务需要选择任务列表 -->
-                <el-form-item label="任务列表" prop="stages" v-if="addForm.parentTid != null">
+                <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="类型">
+                <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>
@@ -255,40 +214,40 @@
                         </el-option>
                     </el-select>
                 </el-form-item>
-                <el-form-item label="任务内容" 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="请输入任务内容" clearable></el-input>
+                <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 ? '截至时间' : '开始时间'" :prop="addForm.taskType == 1 ? 'endDate' : 'startDate'">
+                <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="请选择日期" :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">截止时间</span>
+                    :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="请选择日期" :disabled="(this.addForm.id != null && user.id != this.addForm.createrId && currentProject.inchargerId != user.id) && !permissions.projectManagement"></el-date-picker>
+                    :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="'执行人'+(index+1)" v-for="(executorItem, index) in addForm.executorListFront" :key="index">
-                    <el-select v-model="executorItem.executorId" :disabled="(addForm.id != null && user.id != addForm.createrId && currentProject.inchargerId != user.id) && !permissions.projectManagement" size="small" filterable clearable placeholder="请选择执行人" style="width:40%;" @change="$forceUpdate()">
+                <el-form-item :label="$t('zhi-hang-ren')+(index+1)" v-for="(executorItem, index) in addForm.executorListFront" :key="index">
+                    <el-select 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>
-                    <span style="margin-left:30px;margin-right:10px;">计划工时</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="请输入计划工作时长,单位小时" ></el-input-number ><span style="margin-left:10px;">小时</span>
+                    <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">添加执行人</el-link>
+                <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="优先级">
+                <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="详细描述" style="height: 200px">
+                <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> -->
@@ -298,28 +257,28 @@
                 <div v-if="addForm.id != null">
                     <el-divider ></el-divider>
                     <!-- 任务进展 -->
-                    <p ><i class="iconfont firerock-icontree" style="color:#20A0ff;margin-left:10px;">任务进展</i>
-                        <span ref="addPro" style="display: block; float:right;"><el-link @click="addprogress">添加任务进展</el-link></span>
+                    <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">状态正常</el-radio>
-                            <el-radio :label="1" class="rala2">存在风险</el-radio>
-                            <el-radio :label="2" class="rala3">进展逾期</el-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="请输入详细进展描述"
+                        :placeholder="$t('detailedprogressdescription')"
                         v-model.trim="text2"
                         style="margin:10px 0 0 0">
                         </el-input>
 
-                        <h4 style="font-weight: normal;">提醒谁查看:{{checkLists.length}}</h4>
+                        <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>
 
@@ -331,8 +290,8 @@
                         <div class="ssp" @click="sss"></div>
                         <!-- </el-form> -->
                         <div class="pro_btn">
-                            <el-button size="mini" @click="shutPro">取消</el-button>
-                            <el-button size="mini" type="primary" @click="addTaskProgress">发布</el-button>
+                            <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>
@@ -342,33 +301,33 @@
                             <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">状态正常</span>
-                            <span v-else-if="recentProgressInfo.status == 1">状态正常</span>
-                            <span v-else>进展逾期</span>
+                            <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>删除列表</span></el-dropdown-item>
+                                            <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}}更新于{{recentProgressInfo.indate | relativeTime}}</div>
+                            <div class="elCard_qu">{{recentProgressInfo.creatorName}}{{ $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;">查看历史记录</el-button></div>
+                            <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="提示" :visible.sync="innerVisibless" append-to-body width="500px">
+                    <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;">任务进展:{{ProgressList.length}}</h3>
+                        <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>
 
@@ -383,9 +342,9 @@
                                         <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">状态正常</span>
-                                            <span v-if="activity.status == 1" style="color: #FD7624">存在风险</span>
-                                            <span v-if="activity.status == 2" style="color: red">进展逾期</span>
+                                            <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>
@@ -397,55 +356,19 @@
                          <!--  -->
                     </div>
                     <span slot="footer" class="dialog-footer">
-                        <el-button type="primary" @click="innerVisibless = false">关闭</el-button>
+                        <el-button type="primary" @click="innerVisibless = false">{{ $t('Shutdown') }}</el-button>
                     </span>
                     </el-dialog>
-
-                    <!-- 子任务 -->
-                    <!-- <p ><i class="iconfont firerock-icontree" style="color:#20A0ff;margin-left:10px;">子任务</i>
-                        <el-link style="float:right;" @click="addSubTask">添加子任务</el-link>
-                    </p> -->
-                    <!--子任务列表 -->
-                    <!-- <el-table :data="addForm.subTaskList" 
-                            :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="完成" width="50" >
-                                <template slot-scope="scope">
-                                   <el-checkbox :disabled="scope.row.taskStatus==2" :checked="scope.row.taskStatus==1?true:false" size="large" class="cb"  
-                                                @click.stop.native=""
-                                                @change="finishTask(scope.row)"
-                                                ></el-checkbox>
-                                </template>
-                            </el-table-column>
-                            <el-table-column prop="name" label="标题" >
-                                <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="执行人" width="100" >
-                                <template slot-scope="scope">
-                                    {{scope.row.executorName == null?"待分配":scope.row.executorName}}
-                                </template>
-                            </el-table-column>
-                            <el-table-column prop="endDate" label="截止时间" 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>
             </el-form>
             <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;">删除</el-button>
-                <el-button @click.native="addFormVisible = false">取消</el-button>
-                <el-button type="primary" @click="submitInsert" :loading="addLoading">提交</el-button>
+                <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="返回父任务" :content="addForm.parentTname"></el-page-header>
+                <el-page-header  @back="backToParentTask" :title="$t('parenttask')" :content="addForm.parentTname"></el-page-header>
             </div>
             <!-- 评论 -->
             <div class="remark" v-show="addForm.id != null">
@@ -453,7 +376,7 @@
                     <!-- <span  v-for="(pl, i) in critic" :key="i"> -->
                         <!-- <div class="player" v-if="pl"> -->
                         <div class="player">
-                            <p @click="chan">参与人</p>
+                            <p @click="chan">{{ $t('participantin') }}</p>
                             <span  v-for="(pl, i) in critic" :key="i">
                             <div class="bj" style="width: 14%">
                                 <span style="background: #778899">{{pl.length > 2 ? pl.substring(pl.length - 2, pl.length) : pl}}</span>
@@ -463,14 +386,14 @@
                         </div>
                     <!-- </span> -->
                     <div class="subject">
-                        <div class="sub-all">所有动态</div>
+                        <div class="sub-all">{{ $t('alldynamic') }}</div>
                         <div class="sub-details" ref="main">
                             <ul class="infinite-list" v-infinite-scroll="load" style="overflow:auto" 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>屈经理完成了依赖任务</em><span>4月20日</span></p>
+                                    <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> -->
@@ -493,13 +416,13 @@
                         <div class="issue_fixation">
                             <div class="inputDeep"><el-input
                             type="textarea"
-                            placeholder="请输入内容"
+                            :placeholder="$t('pleaseentercontent')"
                             :autosize="{ minRows: 6, maxRows: 6}"
                             v-model.trim="textarea2"
                             class="inputDeeps"
                             >
                             </el-input></div>
-                            <el-button class="issue-button" type="primary" @click="release()">发布</el-button>
+                            <el-button class="issue-button" type="primary" @click="release()">{{ $t('fa-bu') }}</el-button>
                         </div>
                     </div>
                 </span>
@@ -725,7 +648,7 @@ import { error } from 'dingtalk-jsapi';
                     userId: [],
                 },
                 rules: {
-                    name: [{ required: true, message: "请输入项目名称", trigger: "blur" }],
+                    name: [{ required: true, message: this.$t('Pleaseenteraprojectname'), trigger: "blur" }],
                 },
                 idx: 1,
                 taskDetails: false,
@@ -733,13 +656,13 @@ import { error } from 'dingtalk-jsapi';
                     name: '',
                 },
                 rules: {
-                    name: [{ required: true, message: "请输入分组名称", trigger: "blur" }],
+                    name: [{ required: true, message: this.$t('pleaseenteragroupname'), trigger: "blur" }],
                 },
                 rules2: {
-                    stagesName: [{ required: true, message: "请输入任务列表名称", trigger: "blur" }],
+                    stagesName: [{ required: true, message: this.$t('pleaseenteratasklistname'), trigger: "blur" }],
                 },
                 taskRules : {
-                    name: [{ required: true, message: "请输入任务内容", trigger: "blur" }],
+                    name: [{ required: true, message: this.$t('enterthetaskcontent'), trigger: "blur" }],
                 },
                 sleectId: null,
                 sleectProjectId: null,
@@ -752,7 +675,7 @@ import { error } from 'dingtalk-jsapi';
                 radio: 0,
                 critic: [], // 评论头像的数组
                 editorOption: { // 富文本框里面的默认值
-                    placeholder: '请输入文本...',
+                    placeholder: this.$t('pleaseentethetext'),
                      modules: {
                         toolbar:[
                             ['bold', 'italic', 'underline', 'strike'],    //加粗,斜体,下划线,删除线
@@ -783,28 +706,28 @@ import { error } from 'dingtalk-jsapi';
                 text2: '',
                 innerVisibless: false, // 任务展示弹出层
                 activities: [{
-                    content: '状态正常',
-                    timestamp: '7小时前',
+                    content: this.$t('normals'),
+                    timestamp: this.$t('hoursago'),
                     size: 'large',
                     type: 'primary',
                     icon: 'el-icon-circle-check',
                     color: '#409EFF'
                     }, {
-                    content: '进展逾期',
-                    timestamp: '八小时前',
+                    content: this.$t('withinthetimelimit'),
+                    timestamp: this.$t('hoursago8'),
                     color: '#F87872'
                     }],
                 ProgressList: [],
                 checkboxGrounp: [], // 选中人的数据
                 checkLists: [], // 选中人数据的ID
                 taskIid: null,
-                viewList: [{id:1,name:"全部任务"},{id:2,name:"进行中的任务"},{id:3,name:"已完成的任务"},{id:4,name:"待安排任务"},
-                {id:5,name:"我创建的任务"},{id:6,name:"我执行的任务"},{id:7,name:"今天的任务"},{id:8,name:"已超期的任务"}],
-                importanceList:[{id:0,name:"一般"},{id:1,name:"重要"},{id:2,name:"紧急"},],
-                taskTypeList:[{id:0,name:"任务", icon:"iconfont firerock-iconrenwu"},{id:1,name:"里程碑",icon:"iconfont firerock-iconicon-"},{id:2,name:"风险",icon:"iconfont firerock-iconfengxian"}],
+                viewList: [{id:1,name:this.$t('alltaskss')},{id:2,name:this.$t('taskinprogress')},{id:3,name:this.$t('missionscompleted')},{id:4,name:this.$t('taskscheduled')},
+                {id:5,name:this.$t('createdthetask')},{id:6,name:this.$t('missionIwason')},{id:7,name:this.$t('todaytask')},{id:8,name:this.$t('taskthatisoverdue')}],
+                importanceList:[{id:0,name:this.$t('yi-ban')},{id:1,name:this.$t('zhong-yao')},{id:2,name:this.$t('jin-ji')},],
+                taskTypeList:[{id:0,name:this.$t('other.task'), icon:"iconfont firerock-iconrenwu"},{id:1,name:this.$t('other.milestone'),icon:"iconfont firerock-iconicon-"},{id:2,name:this.$t('risk'),icon:"iconfont firerock-iconfengxian"}],
                 taskTypeColor:['#20A0FF','#8613ad','#bf0404'],
                 taskTypeIcon:['iconfont firerock-iconrenwu','iconfont firerock-iconicon-','iconfont firerock-iconfengxian'],
-                taskStatusList:['进行中','已完成','已撤销'],
+                taskStatusList:[this.$t('ongoing'),this.$t('state.completed'),this.$t('state.undone')],
                 //优先级
                 taskLevelColor:['#262626','#E6A23C','#F56C6C'],
                 stageList: '',
@@ -826,9 +749,9 @@ import { error } from 'dingtalk-jsapi';
             },
 
             deleteSubPro(subProject) {
-                this.$confirm("确定要删除子项目" + subProject.name + "吗?","删除子项目", {
-                    confirmButtonText: "确定",
-                    cancelButtonText: "取消",
+                this.$confirm(this.$t('makesuretodeletethesubproject') + subProject.name + this.$t('ma'),this.$t('deletesubproject'), {
+                    confirmButtonText: this.$t('btn.determine'),
+                    cancelButtonText: this.$t('btn.cancel'),
                     type: "warning"
                 })
                 .then(() => {
@@ -840,7 +763,7 @@ import { error } from 'dingtalk-jsapi';
                         this.listLoading = false;
                         if (res.code == "ok") {
                             this.$message({
-                                message: "删除成功",
+                                message: this.$t('message.successfullyDeleted'),
                                 type: "success"
                             });
                             this.subProject(this.currentProject);
@@ -1044,7 +967,7 @@ import { error } from 'dingtalk-jsapi';
             //显示新增界面
             handleAdd(i, item) {
                 if(i == -1) {
-                    this.title = "新增任务";
+                    this.title = this.$t('addWork');
                     this.addForm = {
                         name: '',
                         userId: [],
@@ -1052,7 +975,7 @@ import { error } from 'dingtalk-jsapi';
                         inchargerId:null,
                     }
                 } else {
-                    this.title = "修改项目";
+                    this.title = this.$t('modifytheproject');
                     var list = item.participator , arr = [];
                     for(var j in list) {
                         arr.push(list[j].id)
@@ -1078,7 +1001,7 @@ import { error } from 'dingtalk-jsapi';
                         res => {
                             if (res.code == "ok") {
                                 this.$message({
-                                    message: "操作成功",
+                                    message: this.$t('operationissuccessful'),
                                     type: "success"
                                 });
                                 this.subProject(this.currentProject);
@@ -1154,9 +1077,9 @@ import { error } from 'dingtalk-jsapi';
 
             // 删除
             deletePro(i, item) {
-                this.$confirm("确定要项目" + item.projectName + "吗?","删除项目", {
-                    confirmButtonText: "确定",
-                    cancelButtonText: "取消",
+                this.$confirm(this.$t('identifytheproject') + item.projectName + this.$t('ma'),this.$t('deletetheproject'), {
+                    confirmButtonText: this.$t('btn.determine'),
+                    cancelButtonText: this.$t('btn.cancel'),
                     type: "warning"
                 })
                 .then(() => {
@@ -1168,7 +1091,7 @@ import { error } from 'dingtalk-jsapi';
                         this.listLoading = false;
                         if (res.code == "ok") {
                             this.$message({
-                                message: "删除成功",
+                                message: this.$t('message.successfullyDeleted'),
                                 type: "success"
                             });
                             this.getList();
@@ -1220,7 +1143,7 @@ import { error } from 'dingtalk-jsapi';
                 res => {
                     if (res.code == "ok") {
                         this.$message({
-                            message: "操作成功",
+                            message: this.$t('operationissuccessful'),
                             type: "success"
                         });
                         this.getList();
@@ -1245,7 +1168,7 @@ import { error } from 'dingtalk-jsapi';
                 // console.log(task)
                 this.addFormVisible = true;
                 // this.addLoading = false;
-                this.title = "编辑任务";
+                this.title = this.$t('editingtasks');
                 this.getTaskDetail(task.id);
                 this.getTaskProgressList(task.id); // 获取任务进展列表 
                 this.getUsers(); // 获取名单数据
@@ -1408,7 +1331,7 @@ import { error } from 'dingtalk-jsapi';
                             this.shutPro()
                             this.getTaskProgressList(this.taskIid)
                             this.$message({
-                                message: '发布成功',
+                                message: this.$t('releasesuccess'),
                                 type: "success"
                             });
                             this.checkboxGrounp = [],
@@ -1431,7 +1354,7 @@ import { error } from 'dingtalk-jsapi';
                         if (res.code == "ok") {
                             this.getTaskProgressList(this.taskIid)
                             this.$message({
-                                message: '删除成功',
+                                message: this.$t('message.successfullyDeleted'),
                                 type: "success"
                             });
                         } else {
@@ -1511,7 +1434,7 @@ import { error } from 'dingtalk-jsapi';
                 this.addFormVisible = true;
                 this.addForm = {projectId: stage.projectId, groupId: stage.groupId, stagesId: stage.id, taskLevel:0, planHours: 8, taskType: 0};
                 this.addLoading = false;
-                this.title="创建任务";
+                this.title=this.$t('createtask ');
                 this.commentList = [];
             },
             addStage() {
@@ -1539,7 +1462,7 @@ import { error } from 'dingtalk-jsapi';
                     this.textContent = false
                      this.$message({
                         showClose: true,
-                        message: '图片超过了2MB,请重新上传',
+                        message: this.$t('imageexceeds2MBpleaseuploaditagain'),
                         type: 'warning'
                     });
                 }
@@ -1550,7 +1473,7 @@ import { error } from 'dingtalk-jsapi';
             },
             // 点击发布
             release() {
-                if(this.textarea2.length <= 0) return this.$message({message: "请输入内容", type: "error"})
+                if(this.textarea2.length <= 0) return this.$message({message: this.$t('pleaseentercontent'), type: "error"})
                 this.http.post('/task-comment/add', {taskId: this.taskId, userId: this.user.id, content: this.textarea2},
                 res => {
                     if(res.code == "ok"){
@@ -1581,7 +1504,7 @@ import { error } from 'dingtalk-jsapi';
             submitInsert() {
                 if (this.textContent !== true) return  this.$message({
                     showClose: true,
-                    message: '图片太大,请重新上传',
+                    message: this.$t('pictureistoolargepleaseuploaditagain'),
                     type: 'warning'
                 });
                 //检查是有重名的执行人
@@ -1597,7 +1520,7 @@ import { error } from 'dingtalk-jsapi';
                     if (findSameUser) {
                         return this.$message({
                             showClose: true,
-                            message: '执行人存在重复',
+                            message: this.$t('executorhasduplication'),
                             type: 'error'
                         });
                     }
@@ -1613,7 +1536,7 @@ import { error } from 'dingtalk-jsapi';
                             res => {
                                 if (res.code == "ok") {
                                     this.$message({
-                                        message: "提交成功",
+                                        message: this.$t('message.submittedSuccessfully'),
                                         type: "success"
                                     });
                                     
@@ -1672,11 +1595,11 @@ import { error } from 'dingtalk-jsapi';
             deleteTask() {
                 var warning='';
                 if (this.addForm.subTaskList.length > 0) {
-                    warning='您确定要删除当前任务及其子任务吗?';
+                    warning=this.$t('currenttaskanditssubtasks');
                 } else {
-                    warning='您确定要删除当前任务吗?';
+                    warning=this.$t('wanttodeletethecurrent task');
                 }
-                this.$confirm(warning, "提示", {
+                this.$confirm(warning, this.$t('other.prompts'), {
                     //type: 'warning'
                 }).then(() => {
                     this.http.post('/task/delete',{id: this.addForm.id},