Pārlūkot izejas kodu

提交daily文件翻译

Lijy 10 mēneši atpakaļ
vecāks
revīzija
e5f662c6f7

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

@@ -2005,5 +2005,88 @@
   "zhuanYiDao": "Transfer to",
   "caoZuoChengGong-0": "Operation successful!",
   "dangQianBuMenCunZaiDaiShenHeBaoGao": "There are pending reports in the current department for review",
-  "dangQianBuMenCunZaiDaiShenHeBaoGaoShiFouQuanBuZhuanWeiTongGuo": "Are all pending reports in the current department approved?"
+  "dangQianBuMenCunZaiDaiShenHeBaoGaoShiFouQuanBuZhuanWeiTongGuo": "Are all pending reports in the current department approved?",
+  "bianGengTiXing": "Change Reminder",
+  "buKeChaoQianTianBao": "Cannot be filled in advance",
+  "chengGongDaoRu": "Successfully imported",
+  "cuiBan": "Urgent processing",
+  "daiShenHeZhuangTaiBuKeXiuGaiQingFanHuiDaoChaKanRiBaoZhongXianCheHui": "Pending review status cannot be modified. Please return to the daily report for review and withdraw first",
+  "daiTian": "Fill in on behalf of others",
+  "dangRiGongShiBuZu": "Insufficient working hours on the day",
+  "daoChuFangShi": "Export method",
+  "daoChuRiBaoShenHeJiLuShuJu": "Export daily audit record data",
+  "daoChuYuanGongTianBaoGongShiZhanBi": "Export the proportion of employee reported working hours",
+  "daoRuKaoQinShiChang": "Import attendance duration",
+  "daoRuKaoQinShiChangChengGong": "Successfully imported attendance duration",
+  "daoRuRiBaoShenHeJiLuXiuGaiShuJu": "Import daily audit records and modify data",
+  "deGongShi": "The working hours?",
+  "fuWu": "service",
+  "gongShiTuiSongRiZhi": "Work hour push log",
+  "gongShiYiChangMingXi": "Details of abnormal working hours",
+  "gongZuoNeiRongBiTianQingJianCha": "Job responsibilities are mandatory, please check",
+  "gongZuoZhiZeBiTianQingJianCha": "Job responsibilities are required, please check",
+  "heJiGongShi": "Total working hours",
+  "huLveBingTiJiao": "Ignore and submit",
+  "jiaZaiGengDuoRiBao": "Load more daily reports",
+  "jiaoSeBiTianQingJianCha": "Role required, please check",
+  "jiaoSeXuanZe": "Role selection",
+  "jingJianDaoChu": "Refine export",
+  "jingJianRiBaoBuHanGongZuoShiXiangHeShenPiXinXiShuJuLiangGengXiaoDaoChuGengKuai": "The streamlined daily report does not include work items and approval information, resulting in smaller data volume and faster export.",
+  "kaiShiRiQiBuNengDaYuJieShuRiQi": "The start date cannot be greater than the end date",
+  "kaiShiShanChu": "Start deleting",
+  "kaoQinGongShi": "Attendance hours",
+  "meiCiJinZhiChiDaiTianYiGeRen": "Only one person is supported to fill in at a time",
+  "meiYouGengDuoShuJuLe": "There's no more data left",
+  "ninQueDingYaoShanChuGaiShiJianDuanNeiDeRiBaoMaShanChuHouJiangBuKeHuiFu": "Are you sure you want to delete the daily report within this time period? Deleting it will be irreversible",
+  "ninQueDingYaoShanChuGaiTiaoJiLuMa": "Are you sure you want to delete this record?",
+  "ninQueDingYaoShenHeTongGuoGaiShiJianDuanNeiQuanBuDeRiBaoMa": "Are you sure you want to approve all daily reports within this time period?",
+  "piLiangShanChuRiBao": "Batch delete daily reports",
+  "piLiangShenHeRiBao": "Batch audit daily report",
+  "qingTianXieRenWuFenZu": "Please fill in the task grouping",
+  "qingXuanZeBuMenHuoRenYuan": "Please select department or personnel",
+  "qingXuanZeDaiTianDeYuanGong": "Please select the employee to fill in on behalf of",
+  "qingXuanZeFuWu": "Please choose a service",
+  "qingXuanZeNianYue": "Please select year and month:",
+  "qingXuanZeRenWuLiChengBei": "Please select task/milestone",
+  "qingXuanZeRiQiFanWei": "Please select a date range",
+  "qingXuanZeYuanGong": "Please select employee",
+  "quXiaoYiChang": "Cancel Exception",
+  "queRen": "confirm",
+  "queRenTuiSong": "Confirm push",
+  "queRenTuiSongDangQianGongShi": "Confirm the current working hours for push notifications?",
+  "renWuFenZuBiTianQingJianCha": "Task grouping is required, please check",
+  "renWuFenZuHeJieDuanBiTianQingJianCha": "Task grouping and stages are required, please check",
+  "renWuLiChengBei": "Tasks/Milestones",
+  "riBaoShenHeXiuGai": "Daily report review and modification",
+  "shenPiTongGuo": "Approved",
+  "shiBai": "fail",
+  "shiFouYiChang": "Is it abnormal",
+  "tTuisongshijian": "$t('tuiSongShiJian')",
+  "tianBaoBuMen": "Reporting department",
+  "tianBaoGongShi": "Fill in working hours",
+  "tuPianShangChuan": "Image upload",
+  "tuiSongChengGong": "Push successful!",
+  "tuiSongFangShi": "Push method",
+  "tuiSongGongShi": "Push working hours",
+  "tuiSongJieGuo": "Push results",
+  "tuiSongMingCheng": "Push name",
+  "tuiSongShiJian": "Push time",
+  "wanZhengDaoChu": "Complete export",
+  "weiTiJiao": "Unsubmitted",
+  "weiTiJiaoRenYuanLieBiao": "List of personnel not submitted",
+  "xiaZaiTianBaoGongShiZhanBiBiao": "Download and fill in the proportion of working hours table",
+  "xiangMuXiaDeRenWuFenZu": "Task grouping under the project",
+  "xiaoShiShiFouQueDingTiJiao": "Hour, are you sure to submit?",
+  "xiuGaiDaoRuJiLu": "Modify import records",
+  "xuanZeDaoRuRenYuan": "Select import personnel:",
+  "yiBoHuiLouTian": "Rejected/Omitted",
+  "yiTongGuoZhuangTaiBuKeXiuGai": "Passed status cannot be modified",
+  "yueDeGongShi": "Monthly working hours?",
+  "zhengZaiDaoRuXiuGaiZhongQingNaiXinDengDai": "Importing modifications, please be patient.",
+  "zhengZaiTuiSongZhongQingNaiXinDengDai": "Pushing, please be patient.",
+  "zhengZaiWei": "*Currently working for",
+  "zhiNengTianBao": "Intelligent filling",
+  "zhongDe": "Middle",
+  "ziXiangMuBiTianQingJianCha": "Subitem is required, please check",
+  "zuiJinXuanZeXiangMu": "Recently selected project"
 }

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

@@ -2043,5 +2043,50 @@
   "kaoQinGongShi": "考勤工时",
   "cuiBan": "催办",
   "quXiaoYiChang": "取消异常",
-  "xiuGaiDaoRuJiLu": "修改导入记录"
+  "xiuGaiDaoRuJiLu": "修改导入记录",
+  "xiaZaiTianBaoGongShiZhanBiBiao": "下载填报工时占比表",
+  "daoRuKaoQinShiChang": "导入考勤时长",
+  "piLiangShanChuRiBao": "批量删除日报",
+  "piLiangShenHeRiBao": "批量审核日报",
+  "qingXuanZeYuanGong": "请选择员工",
+  "kaiShiShanChu": "开始删除",
+  "shenPiTongGuo": "审批通过",
+  "xuanZeDaoRuRenYuan": "选择导入人员:",
+  "queRen": "确认",
+  "daoChuYuanGongTianBaoGongShiZhanBi": "导出员工填报工时占比",
+  "qingXuanZeNianYue": "请选择年月:",
+  "ninQueDingYaoShanChuGaiTiaoJiLuMa": "您确定要删除该条记录吗?",
+  "qingXuanZeRiQiFanWei": "请选择日期范围",
+  "ninQueDingYaoShenHeTongGuoGaiShiJianDuanNeiQuanBuDeRiBaoMa": "您确定要审核通过该时间段内全部的日报吗?",
+  "qingXuanZeBuMenHuoRenYuan": "请选择部门或人员",
+  "ninQueDingYaoShanChuGaiShiJianDuanNeiDeRiBaoMaShanChuHouJiangBuKeHuiFu": "您确定要删除该时间段内的日报吗,删除后将不可恢复",
+  "zuiJinXuanZeXiangMu": "最近选择项目",
+  "daoRuKaoQinShiChangChengGong": "导入考勤时长成功",
+  "chengGongDaoRu": "成功导入",
+  "queRenTuiSongDangQianGongShi": "确认推送当前工时?",
+  "queRenTuiSong": "确认推送",
+  "deGongShi": "的工时?",
+  "zhengZaiTuiSongZhongQingNaiXinDengDai": "正在推送中,请耐心等待。",
+  "yueDeGongShi": "月的工时?",
+  "tuiSongChengGong": "推送成功!",
+  "meiCiJinZhiChiDaiTianYiGeRen": "每次仅支持代填一个人",
+  "qingXuanZeDaiTianDeYuanGong": "请选择代填的员工",
+  "meiYouGengDuoShuJuLe": "没有更多数据了",
+  "zhengZaiDaoRuXiuGaiZhongQingNaiXinDengDai": "正在导入修改中,请耐心等待。",
+  "daiShenHeZhuangTaiBuKeXiuGaiQingFanHuiDaoChaKanRiBaoZhongXianCheHui": "待审核状态不可修改,请返回到查看日报中先撤回",
+  "yiTongGuoZhuangTaiBuKeXiuGai": "已通过状态不可修改",
+  "renWuFenZuHeJieDuanBiTianQingJianCha": "任务分组和阶段必填,请检查",
+  "renWuFenZuBiTianQingJianCha": "任务分组必填,请检查",
+  "ziXiangMuBiTianQingJianCha": "子项目必填,请检查",
+  "huLveBingTiJiao": "忽略并提交",
+  "qingTianXieRenWuFenZu": "请填写任务分组",
+  "kaiShiRiQiBuNengDaYuJieShuRiQi": "开始日期不能大于结束日期",
+  "dangRiGongShiBuZu": "当日工时不足",
+  "xiaoShiShiFouQueDingTiJiao": "小时,是否确定提交?",
+  "jiaoSeBiTianQingJianCha": "角色必填,请检查",
+  "gongZuoZhiZeBiTianQingJianCha": "工作职责必填,请检查",
+  "gongZuoNeiRongBiTianQingJianCha": "工作内容必填,请检查",
+  "qingXuanZeRenWuLiChengBei": "请选择 任务/里程碑",
+  "xiangMuXiaDeRenWuFenZu": "项目下的任务分组",
+  "zhongDe": "中的"
 }

+ 155 - 155
fhKeeper/formulahousekeeper/timesheet/src/views/workReport/daily.vue

@@ -127,16 +127,16 @@
                                     <el-link :underline="false" @click="showMembList(2)"><span style="margin-left:5px;margin-right:5px;color:green;">{{fillList.filter(item => item.state == 3).length}}</span></el-link>{{$t('other.people')}},
                                     <!-- 漏填 -->
                                     <!-- {{$t('state.missFillReport')}} -->
-                                    未填
+                                    {{ $t('other.unfilled') }}
                                     <el-link :underline="false" @click="showMembList(0)"><span style="margin-left:5px;margin-right:5px;color:red;">{{(unFillList.length - leaveAllNum) | numbers}}</span>{{$t('other.people')}}
-                                    <span v-if="leaveAllNum">{{', 全天请假' + leaveAllNum + '人'}}</span></el-link>
+                                    <span v-if="leaveAllNum">{{','+ $t('other.takeDayOff') + leaveAllNum + $t('other.people')}}</span></el-link>
                                     </span>
                                     </span>
                                 </span>
                                 <span style="float:right;">
                                     <el-link type="primary" v-if="user.timeType.enableNewWeeklyfill != 1" style="margin-right:10px;" :underline="false" @click="isSubstitude=false;fillInReport(-1,0)">{{$t('textLink.fillInTheWork')}}</el-link>
                                     <el-link v-if="reportTimeType.type != 0 && user.companyId != yuzhongCompId && user.timeType.enableNewWeeklyfill != 1 && user.companyId != 3092" type="primary" style="margin-right:10px;" :underline="false" @click="isSubstitude=false;fillInReportss()">{{$t('textLink.fillInAWeek')}}</el-link>
-                                    <el-link v-if="user.timeType.enableNewWeeklyfill == 1" type="primary" style="margin-right:10px;" :underline="false" @click="isSubstitude=false;fillInReportCustom()">按周填报</el-link>
+                                    <el-link v-if="user.timeType.enableNewWeeklyfill == 1" type="primary" style="margin-right:10px;" :underline="false" @click="isSubstitude=false;fillInReportCustom()">{{ $t('textLink.fillInAWeek') }}</el-link>
                                     <!-- <el-link type="primary" style="margin-right:10px;" :underline="false" @click="isSubstitude=false;fillInReportCustom()">按周填报</el-link> -->
                                     <el-link type="primary" v-if="user.companyId != 5978 && permissions.reportsFillOut && user.timeType.enableNewWeeklyfill != 1" style="margin-right:10px;" :underline="false" @click="isSubstitude=true; fillInReport(-1,2)">{{$t('textLink.helpToFillIn')}}</el-link>
                                     <!-- 苏州景昱,按周填报的模式进行代填日报 -->
@@ -147,9 +147,9 @@
                                     <el-link type="primary" style="margin-right:10px;" :underline="false" @click="showExportDialog" v-if="permissions.reportExport">{{$t('textLink.exportWork')}}</el-link>
                                     <!--部门负责人给个导出工时的功能 -->
                                     <el-link type="primary" v-if="user.manageDeptId != 0" style="margin-right:10px;" :underline="false" @click="showExportTimeDialog">{{$t('textLink.exportingTimeStatistics')}}</el-link>
-                                    <el-link type="primary" v-if="user.timeType.pushReportData == 1 && permissions.reportPush" :underline="false" @click="pushWorkTime">推送工时</el-link>
-                                    <el-link type="primary" v-if="user.timeType.pushReportData == 1 && user.companyId==3092 && permissions.reportPush" :underline="false" @click="pushWorkTimeLogDig=true,getPushWorkLogData()">工时推送日志</el-link>
-                                    <el-link type="primary" v-if="user.roleName == '超级管理员' && user.companyId==839" :underline="false" @click="reportLogCheckDialog=true">日报审核修改</el-link>
+                                    <el-link type="primary" v-if="user.timeType.pushReportData == 1 && permissions.reportPush" :underline="false" @click="pushWorkTime">{{ $t('tuiSongGongShi') }}</el-link>
+                                    <el-link type="primary" v-if="user.timeType.pushReportData == 1 && user.companyId==3092 && permissions.reportPush" :underline="false" @click="pushWorkTimeLogDig=true,getPushWorkLogData()">{{ $t('gongShiTuiSongRiZhi') }}</el-link>
+                                    <el-link type="primary" v-if="user.roleName == $t('role.superAdministrator') && user.companyId==839" :underline="false" @click="reportLogCheckDialog=true">{{ $t('riBaoShenHeXiuGai') }}</el-link>
                                     <!-- <el-button v-if="user.timeType.pushReportData == 1 && permissions.reportPush" style="margin-left:10px;" icon="iconfont firerock-icontuisong" size="mini" @click="pushWorkTime"></el-button> -->
                                 </span>
                             </div>
@@ -272,9 +272,9 @@
                                                     </span>
                                                     </p>
                                                     <p v-if="user.companyId == yuzhongCompId">
-                                                        <span>角色:{{item2.extraField1? roleList.filter(r=>r.value == item2.extraField1)[0].label:''}}</span>
-                                                    <span style="margin-left:10px;">工作职责:{{ item2.extraField2? item2.extraField2Name:''}}</span>
-                                                    <span style="margin-left:10px;">工作内容:{{ item2.extraField3? item2.extraField3Name:''}}</span></p>
+                                                        <span>{{ $t('jiao-se') }} :{{item2.extraField1? roleList.filter(r=>r.value == item2.extraField1)[0].label:''}}</span>
+                                                    <span style="margin-left:10px;">{{ $t('gongZuoZhiZe') }} :{{ item2.extraField2? item2.extraField2Name:''}}</span>
+                                                    <span style="margin-left:10px;">{{ $t('gongZuoNeiRong') }} :{{ item2.extraField3? item2.extraField3Name:''}}</span></p>
                                                     <!--任务分组和阶段 -->
                                                     <p v-if="item2.groupId != 0">
                                                         {{$t('other.taskGroup')}}:{{item2.groupName}}
@@ -300,7 +300,7 @@
                                                             </span>
                                                     </p>
                                                     <p v-if="item2.taskId != null">{{$t('other.task')}}:{{item2.taskName}}
-                                                        <span style="margin-left:10px;" v-if="user.companyId==3092">-- 服务:{{ item2.sapServiceName }}</span>
+                                                        <span style="margin-left:10px;" v-if="user.companyId==3092">-- {{ $t('fuWu') }} :{{ item2.sapServiceName }}</span>
                                                     </p>
                                                     <div v-if="item2.multiWorktime==0">
                                                     <p style="display: inline-block;">{{$t('time.duration')}}:
@@ -337,7 +337,7 @@
                                         </el-timeline>
                                     </div>
                                 </div>
-                                <div v-if="hasMore && !listLoading" style="width:100%;font-size:17px;text-align:center;padding-bottom:15px;"><el-link @click="reqMore" :underline=false style="color:#20a0ff;">加载更多日报</el-link></div>
+                                <div v-if="hasMore && !listLoading" style="width:100%;font-size:17px;text-align:center;padding-bottom:15px;"><el-link @click="reqMore" :underline=false style="color:#20a0ff;">{{ $t('jiaZaiGengDuoRiBao') }}</el-link></div>
                                 <!-- 简陋的无报告提示 -->
                                 <div v-if="reportList.length==0" style="width:100%;font-size:17px;text-align:center;color:#aaa;">{{curDate}}{{$t('other.noReportYet')}}</div>
                             </div>
@@ -349,27 +349,27 @@
         </div>
 
         <!-- 工时推送日志弹窗 -->
-        <el-dialog title="工时推送日志" :visible.sync="pushWorkTimeLogDig"  width="70%" :before-close="handleClose">
+        <el-dialog :title="$t('gongShiTuiSongRiZhi')" :visible.sync="pushWorkTimeLogDig"  width="70%" :before-close="handleClose">
               <template>
-                <el-button type="primary" size="small" style="float: right" @click="exportPushLog">导出</el-button>
+                <el-button type="primary" size="small" style="float: right" @click="exportPushLog">{{ $t('export.export') }}</el-button>
               </template>  
               <template>
                 <el-table :data="pushWorkTimeLogData" style="width: 100%" height="500" >
-                    <el-table-column prop="syncTime" label="推送时间" width="150"></el-table-column>
-                    <el-table-column prop="remark" label="推送名称" width="180"></el-table-column>
-                    <el-table-column prop="operator" label="操作人员" width="150"></el-table-column>
-                    <el-table-column prop="syncType" label="推送方式" width="150"></el-table-column>
-                    <el-table-column prop="result" label="推送结果" width="250">
+                    <el-table-column prop="syncTime" :label="$t('tuiSongShiJian')" width="150"></el-table-column>
+                    <el-table-column prop="remark" :label="$t('tuiSongMingCheng')" width="180"></el-table-column>
+                    <el-table-column prop="operator" :label="$t('caozuo')" width="150"></el-table-column>
+                    <el-table-column prop="syncType" :label="$t('tuiSongFangShi')" width="150"></el-table-column>
+                    <el-table-column prop="result" :label="$t('tuiSongJieGuo')" width="250">
                         <template slot-scope="scope">
-                            <span style="color:green;" v-if="scope.row.result.includes('成功')">{{scope.row.result}}</span>
-                            <span style="color:red;" v-if="scope.row.result.includes('失败')">{{scope.row.result}}</span>
+                            <span style="color:green;" v-if="scope.row.result.includes($t('other.successful'))">{{scope.row.result}}</span>
+                            <span style="color:red;" v-if="scope.row.result.includes($t('shiBai'))">{{scope.row.result}}</span>
                         </template>
                     </el-table-column>
-                    <el-table-column prop="resultRemark" label="备注" width="400"></el-table-column>
+                    <el-table-column prop="resultRemark" :label="$t('bei-zhu')" width="400"></el-table-column>
                 </el-table>
             </template>
             <span slot="footer" class="dialog-footer">
-                <el-button type="primary" @click="pushWorkTimeLogDig = false">关 闭</el-button>
+                <el-button type="primary" @click="pushWorkTimeLogDig = false">{{ $t('guanBi') }}</el-button>
             </span>
         </el-dialog>
 
@@ -406,17 +406,17 @@
                         <span v-if="isBatch && user.company.companyName != mingyiName">, {{$t('other.fillInTheTotal')}} <el-input v-model="jsTime" @change="onBatchTimeChange" style="width:80px;"/> {{$t('time.hour')}}</span>
 
                         <!-- AI智能填报 -->
-                        <el-button type="primary" @click="getAIReport()" v-if="!hasWrittenReport" style="margin-left:5px;" >智能填报</el-button>
+                        <el-button type="primary" @click="getAIReport()" v-if="!hasWrittenReport" style="margin-left:5px;" >{{ $t('zhiNengTianBao') }}</el-button>
                     </el-form-item>
                     <!--考勤时长显示-->
                     <el-form-item :label="$t('other.attendancePunch')" v-if="workForm.showRefresh || user.companyId == 5978">
                         <span v-if="workForm.time">{{workForm.time.startTime}}-{{workForm.time.endTime}}, 工作{{workForm.time.workHours}}{{$t('time.hour')}}
-                        <span v-if="workForm.time.askLeaveTime">|&nbsp;请假{{ workForm.time.askLeaveTime }}小时</span>
+                        <span v-if="workForm.time.askLeaveTime">|&nbsp;{{ $t('other.AskForLeave') }}{{ workForm.time.askLeaveTime }}{{$t('time.hour')}}</span>
                         </span>
                         <!--批量填报和批量代填不显示考勤记录-->
                         <span v-if="!isBatch && (user.timeType.syncDingding==1 || user.timeType.syncCorpwxTime==1)&&!workForm.time" >{{$t('other.noAttendanceRecord')}}</span>
                         <!--针对明夷,批量填报(不含代填)情况下显示考勤时长-->
-                        <span v-if="!isSubstitude && isBatch && user.company.companyName === mingyiName">{{',考勤时长'}}:{{this.workTimeForMinYi}}{{$t('time.hour')}}</span>
+                        <span v-if="!isSubstitude && isBatch && user.company.companyName === mingyiName">,{{ $t('workAttendance') }}:{{this.workTimeForMinYi}}{{$t('time.hour')}}</span>
                         <el-button type="default" style="margin-left:5px;" size="small" :loading="syncTimeLoading" 
                         v-if="!isBatch && user.timeType.syncCorpwxTime==1" icon="el-icon-refresh" 
                                 @click="refreshWXCardTime(workForm.createDate)"></el-button>
@@ -491,10 +491,10 @@
                             </div>
                         </el-form-item>
 
-                        <el-form-item label="填报部门" v-if="user.timeType.userWithMultiDept == 1 && userReportDeptList.length > 0"
+                        <el-form-item :label="$t('tianBaoBuMen')" v-if="user.timeType.userWithMultiDept == 1 && userReportDeptList.length > 0"
                             :prop="'domains.' + index + '.reportTargetDeptId'"
-                            :rules="{ required: true, message: '请选择部门', trigger: ['change','blur'] }">
-                            <el-select v-model="domain.reportTargetDeptId" :placeholder="'请选择部门'" style="width:200px;" :clearable="true" v-if="user.userNameNeedTranslate == 0">
+                            :rules="{ required: true, message: $t('qing-xuan-ze-bu-men'), trigger: ['change','blur'] }">
+                            <el-select v-model="domain.reportTargetDeptId" :placeholder="$t('qing-xuan-ze-bu-men')" style="width:200px;" :clearable="true" v-if="user.userNameNeedTranslate == 0">
                                 <el-option v-for="depts in userReportDeptList" :key="depts.departmentId" :value="depts.departmentId" :label="depts.departmentName">
                                     <span style="float: left">
                                         <TranslationOpenDataText type='departmentName' :openid='depts.departmentName'></TranslationOpenDataText>
@@ -528,7 +528,7 @@
                                 </el-select>
                             </template>
                             <template v-if="user.companyId == yuzhongCompId">
-                                <span style="color:#FF0000;margin-left:45px;">*</span><span style="margin-left:3px;">角色选择</span>
+                                <span style="color:#FF0000;margin-left:45px;">*</span><span style="margin-left:3px;">{{ $t('jiaoSeXuanZe') }}</span>
                                 <!--角色选择 -->
                                 <el-select v-model="domain.extraField1" style="width:200px;margin-left:10px;" placeHolder="请选择"
                                 :disabled="(workForm.domains[index].state>=2?false:true)" @change="updateResponse(domain)">
@@ -568,8 +568,8 @@
                                 <el-option v-for="item in domain.taskGroups" :key="item.id" :label="item.name" :value="item.id"></el-option>
                             </el-select>
                             <template v-if="user.companyId == yuzhongCompId">
-                                <span style="margin-left:45px;"><span style="color:#FF0000;">*</span>工作职责</span>
-                                <el-select v-model="domain.extraField2" style="width:200px;margin-left:10px;" placeHolder="请选择"
+                                <span style="margin-left:45px;"><span style="color:#FF0000;">*</span>{{ $t('gongZuoZhiZe') }}</span>
+                                <el-select v-model="domain.extraField2" style="width:200px;margin-left:10px;" :placeHolder="$t('defaultText.pleaseChoose')"
                                 :disabled="(workForm.domains[index].state>=2?false:true)" @change="updateJobContent(domain)">
                                     <el-option
                                         v-for="item in domain.filteredRespList"
@@ -608,9 +608,9 @@
                         <el-form-item v-if="user.companyId == yuzhongCompId">
                             <template slot="label">
                                 <span style="color:#FF0000;">*</span>
-                                <span >工作内容</span>
+                                <span >{{ $t('gongZuoNeiRong') }}</span>
                             </template>
-                            <el-select v-model="domain.extraField3" style="width:200px;" placeHolder="请选择" @change="$forceUpdate()"
+                            <el-select v-model="domain.extraField3" style="width:200px;" :placeHolder="$t('defaultText.pleaseChoose')" @change="$forceUpdate()"
                             :disabled="(workForm.domains[index].state>=2?false:true)" >
                                 <el-option
                                     v-for="item in domain.workContentList"
@@ -704,7 +704,7 @@
                         <el-form-item :label="$t('other.task')+' / '+$t('other.milestone')" :prop="'domains.' + index + '.taskId'" v-if="user.company.packageProject==1&& !user.timeType.hideTask && (user.company.nonProjectSimple==0 || (user.company.nonProjectSimple==1&&domain.isPublic!=1))" >
                             <template slot="label" v-if="user.timeType.taskRequired == 1">
                                 <span style="color:#FF0000;">*</span>
-                                <span >任务</span>
+                                <span >{{ $t('other.task') }}</span>
                             </template>
                             <el-select v-model="domain.taskId" :placeholder="$t('defaultText.pleaseChoose')" style="width:75%;margin-right:7%" filterable="true" 
                             :disabled="workForm.domains.length==0?true:(workForm.domains[index].state>=2?false:true)" @change="onTaskSelected(domain)">
@@ -713,9 +713,9 @@
                             <el-checkbox v-model="domain.taskFinish" v-if="domain.taskId != undefined && user.companyId != '5608'">{{$t('state.completed')}}</el-checkbox>
                         </el-form-item>
                         <!--针对依斯贝的SAP服务-->
-                        <el-form-item v-if="user.companyId==3092" label="服务" :prop="'domains.' + index + '.sapServiceId'" 
-                        :rules=" { required: true, message: '请选择服务', trigger: 'blur' }">
-                        <el-select v-model="domain.sapServiceId" placeholder="请选择服务" style="width:75%;margin-right:7%" filterable="true" 
+                        <el-form-item v-if="user.companyId==3092" :label="$t('fuWu')" :prop="'domains.' + index + '.sapServiceId'" 
+                        :rules=" { required: true, message: $t('qingXuanZeFuWu'), trigger: 'blur' }">
+                        <el-select v-model="domain.sapServiceId" :placeholder="$t('qingXuanZeFuWu')" style="width:75%;margin-right:7%" filterable="true" 
                             :disabled="workForm.domains.length==0?true:(workForm.domains[index].state>=2?false:true)" >
                                 <el-option v-for="item in domain.serviceList" :key="item.id" :label="item.serviceName" :value="item.id"></el-option>
                             </el-select>
@@ -728,8 +728,8 @@
                         </el-form-item>
 
                         <!-- 拍照上传 -->
-                        <el-form-item label="图片上传" v-if="user.timeType.choseFromAlbum == 1" :prop="'domains.' + index + '.imgListUrl'" 
-                        :rules="isCustomization(user, reportPictureRequired) ? { required: true, message: '请选择图片', trigger: 'blur' } : null">
+                        <el-form-item :label="$t('tuPianShangChuan')" v-if="user.timeType.choseFromAlbum == 1" :prop="'domains.' + index + '.imgListUrl'" 
+                        :rules="isCustomization(user, reportPictureRequired) ? { required: true, message: $t('pleaseselectpictures'), trigger: 'blur' } : null">
                             <div class="photos">
                                 <div>
                                     <el-upload
@@ -930,7 +930,7 @@
             <span slot="footer" class="dialog-footer">
                 <el-button @click="cancel(workForm.domains,true)" v-if="canCancelInDialog" style="float:left;">{{$t('btn.withdraw')}}</el-button>
 
-                <span style="margin-right:20px" v-if="!(user.company.companyName == mingyiName && isSubstitude)">合计工时:{{totalReportHours}}小时</span>
+                <span style="margin-right:20px" v-if="!(user.company.companyName == mingyiName && isSubstitude)">{{ $t('heJiGongShi') }}:{{totalReportHours}}{{ $t('time.hour') }}</span>
 
                 <el-button @click="deleteReport"  v-if="workForm.domains[0].id != null && canEdit && reportCanDelete">{{$t('btn.delete')}}</el-button>
                 <el-button @click="dialogVisible = false">{{$t('btn.cancel')}}</el-button>
@@ -970,7 +970,7 @@
                         {{$t('defaultText.pleaseSelectAsubstitute')}}
                     </span>
                 </div>
-                <el-button @click="substitudeStep = 2; getCurrentWeek();" style="margin-top:10px;margin-left:100px" type="primary">下一步</el-button>    
+                <el-button @click="substitudeStep = 2; getCurrentWeek();" style="margin-top:10px;margin-left:100px" type="primary">{{ $t('btn.nextStep') }}</el-button>    
             </div>
             <el-form ref="WeekWorkForm" :model="workForm" :rules="workRules" label-width="100px" v-if="!isSubstitude || (substitudeStep == 2 && isSubstitude && workForm.userNames && workForm.userNames.length>0)">
                 <el-form-item style="height:30px;margin-top:-72px;">
@@ -989,7 +989,7 @@
                         <span style="float: right">{{ item.projectName }}</span>
                         </el-option>
                     </el-select>
-                    <span style="float:right;margin-right:10px;">选择项目</span>
+                    <span style="float:right;margin-right:10px;">{{ $t('defaultText.selectProject') }}</span>
                 </el-form-item>
 
                 <el-table ref="weekTable" :data="zhoData" style="width: 100%" v-loading="weekDataLoading" max-height="620" stripe>
@@ -1019,7 +1019,7 @@
                                 </div>
                             </div>
                             <div v-else >
-                                <span style="color:#999999;">不可超前填报</span>
+                                <span style="color:#999999;">{{ $t('buKeChaoQianTianBao') }}</span>
                             </div>
                         </template>
                     </el-table-column>
@@ -1042,7 +1042,7 @@
             </el-form>
 
             <span slot="footer" class="dialog-footer" v-if="!isSubstitude || substitudeStep == 2">
-                <span v-if="isSubstitude" style="float:left;color:orange;">*正在为【{{workForm.userNames}}】代填</span>
+                <span v-if="isSubstitude" style="float:left;color:orange;">{{ $t('zhengZaiWei') }}【{{workForm.userNames}}】{{ $t('daiTian') }}</span>
                 <!-- <el-button @click="zhoAddlast()" style="float:left;" class="el-icon-back">{{$t('defaultText.selectProject')}}</el-button> -->
                 <el-button @click="closeAddWeeklyReport()" :loading="submitingReport">{{$t('btn.cancel')}}</el-button>
                 <el-button @click="submitWeekReport(1)" :loading="submitingReport" >{{$t('btn.temporaryStorage')}}</el-button>
@@ -1052,7 +1052,7 @@
             </span>
         </el-dialog>
         <!-- 重庆物奇私人定制的按周填报 -->
-        <el-dialog :title="'按周填报'" class="fillWeekCustom" :visible.sync="fillWeekDialogVisiCustom" width="1400px" :before-close="handleClose" top="7.5vh">
+        <el-dialog :title="$t('textLink.fillInAWeek')" class="fillWeekCustom" :visible.sync="fillWeekDialogVisiCustom" width="1400px" :before-close="handleClose" top="7.5vh">
             <div class="fillWeekDialogVisiCustom">
                 <WeeklyCustomization @weekClose="fillWeekCustomClne" @weekSubmit="fillWeekCustomSubmit" :key="weekIndex" :weekParentData="weekParentData"></WeeklyCustomization>
             </div>
@@ -1160,8 +1160,8 @@
                 </div>
                 <!-- 选择任务 -->
                 <div class="zhoFel" v-if="user.company.packageProject==1 && !user.timeType.hideTask && user.company.nonProjectSimple==0">
-                    <p>任务 / 里程碑</p>
-                    <el-select v-model="zhoBao.taskId" :placeholder="'请选择'" clearable="true" style="width: 355px" filterable @change="$forceUpdate()">
+                    <p>{{ $t('renWuLiChengBei') }}</p>
+                    <el-select v-model="zhoBao.taskId" :placeholder="$t('defaultText.pleaseChoose')" clearable="true" style="width: 355px" filterable @change="$forceUpdate()">
                         <el-option v-for="item in zhoBao.taskList" :key="item.taskId" :label="item.taskName" :value="item.taskId"></el-option>
                     </el-select>
                 </div>
@@ -1223,11 +1223,11 @@
                         <el-option :label="$t('state.alreadyPassedAndWaitingAudit')" value="1"></el-option>
                     </el-select>
                 </el-form-item>
-                <el-form-item prop="exportType" :label="'导出方式'" v-if="user.companyId == '936'">
+                <el-form-item prop="exportType" :label="$t('daoChuFangShi')" v-if="user.companyId == '936'">
                     <div class="exportReportRadio">
-                        <el-radio v-model="exportType" :label="0">完整导出</el-radio>
-                        <el-radio v-model="exportType" :label="1">精简导出</el-radio>
-                        <el-tooltip effect="dark" :content="'精简日报不含工作事项和审批信息,数据量更小导出更快。'" placement="top-start">
+                        <el-radio v-model="exportType" :label="0">{{ $t('wanZhengDaoChu') }}</el-radio>
+                        <el-radio v-model="exportType" :label="1">{{ $t('jingJianDaoChu') }}</el-radio>
+                        <el-tooltip effect="dark" :content="$t('jingJianRiBaoBuHanGongZuoShiXiangHeShenPiXinXiShuJuLiangGengXiaoDaoChuGengKuai')" placement="top-start">
                             <i class="el-icon-question"></i>
                         </el-tooltip>
                     </div>
@@ -1347,7 +1347,7 @@
 
         <!-- 日报审核修改 -->
         <el-dialog
-        title="日报审核修改"
+        :title="$t('riBaoShenHeXiuGai')"
         :visible.sync="reportLogCheckDialog"
         width="30%"
         :before-close="handleClose">
@@ -1363,12 +1363,12 @@
                     ></el-date-picker>
                 </el-form-item>
         </el-form>
-        <el-link type="primary" @click="exportReportLog">导出日报审核记录数据</el-link>
+        <el-link type="primary" @click="exportReportLog">{{ $t('daoChuRiBaoShenHeJiLuShuJu') }}</el-link>
         <br>
         <el-upload ref="upload"  action="#" :limit="1" :http-request="importReportLog" :show-file-list="false">
-        <el-link type="primary" @click="importReportLog">导入日报审核记录修改数据</el-link></el-upload>
+        <el-link type="primary" @click="importReportLog">{{ $t('daoRuRiBaoShenHeJiLuXiuGaiShuJu') }}</el-link></el-upload>
         <span slot="footer" class="dialog-footer">
-            <el-button  type="primary" @click="reportLogCheckDialog = false">关闭</el-button>
+            <el-button  type="primary" @click="reportLogCheckDialog = false">{{ $t('Shutdown') }}</el-button>
         </span>
         </el-dialog>
 
@@ -1376,7 +1376,7 @@
         <!-- 按部门选择人员 -->
         <el-dialog :title="$t('defaultText.selectthepersonwhneedstofillinthereport')"  v-if="chooseParticipVisible" :visible.sync="chooseParticipVisible" :close-on-click-modal="false" customClass="customWidth" width="500px">
             <el-input v-if="user.userNameNeedTranslate != 1" style="width:100%" v-model="deptMembDataText" :placeholder="$t('defaultText.pleaseEnterNametoSearch')"></el-input>
-            <el-input v-if="user.userNameNeedTranslate == 1" placeholder="请输入姓名搜索" v-model.trim="nameAearch" @keyup.enter.native="nameAearchSeek(true)" class="input-with-select" clearable @input="nameAearchSeek(false)">
+            <el-input v-if="user.userNameNeedTranslate == 1" :placeholder="$t('defaultText.pleaseEnterNametoSearch')" v-model.trim="nameAearch" @keyup.enter.native="nameAearchSeek(true)" class="input-with-select" clearable @input="nameAearchSeek(false)">
                 <el-button slot="append" icon="el-icon-search" @click="nameAearchSeek(true)"></el-button>
             </el-input>
             <div class="tree" style="height:400px">
@@ -1444,7 +1444,7 @@
               <!-- 222 -->
             </div>
             <div>
-                <el-cascader v-if="user.userNameNeedTranslate != 1" :size="'small'" v-model="deptIdForHasReport" placeholder="请选择部门" :options="departmentList" :props="{ checkStrictly: true, value: 'id' }" clearable style="width: 200px;" @change="showMonthWorkTime()"></el-cascader>
+                <el-cascader v-if="user.userNameNeedTranslate != 1" :size="'small'" v-model="deptIdForHasReport" :placeholder="$t('qing-xuan-ze-bu-men')" :options="departmentList" :props="{ checkStrictly: true, value: 'id' }" clearable style="width: 200px;" @change="showMonthWorkTime()"></el-cascader>
                 <vueCascader :subjectId="deptIdForHasReport" :size="'small'" :widthStr="'200'" :clearable="true" :subject="trandepartmentList" :radios="true" :distinction="'14'" @vueCasader="vueCasader" v-if="user.userNameNeedTranslate == 1" :selectNameChuan="$t('other.allDepartments')"></vueCascader>
                 <el-input style="float:left;width:22%" v-if="user.userNameNeedTranslate != '1'" v-model="searchKeyword" @keyup.enter.native="searchScreen(0)" class="input-with-select" :placeholder="$t('defaultText.pleaseEnterNametoSearch')" clearable="true" size="small">
                     <el-button slot="append" @click="searchScreen(0)" icon="el-icon-search"></el-button>
@@ -1452,10 +1452,10 @@
                 <selectCat v-if="user.userNameNeedTranslate == '1'" :filterable="true"  :searchBoxTop="'1'" :size="'small'" :subject="usersList" :subjectId="usersListId" :distinction="'12'" :clearable="true" @selectCal="selectCal"></selectCat>
             </div>
             <div style="float: left; height:32px; padding-top:10px;">
-              <span style="width:20px;height:20px;background-color: orange;padding:5px 8px;">待审核</span>
-              <span style="width:20px;height:20px;background-color: #32CD32;padding:5px 8px;margin-left:10px;">已通过</span>
-              <span style="width:20px;height:20px;background-color: red;padding:5px 8px;margin-left:10px;">已驳回/漏填</span>
-              <span style="width:20px;height:20px;background-color: #E0E0E0;padding:5px 8px;margin-left:10px;">未提交</span>
+              <span style="width:20px;height:20px;background-color: orange;padding:5px 8px;">{{ $t('state.WaitingAudit') }}</span>
+              <span style="width:20px;height:20px;background-color: #32CD32;padding:5px 8px;margin-left:10px;">{{ $t('state.alreadyPassed') }}</span>
+              <span style="width:20px;height:20px;background-color: red;padding:5px 8px;margin-left:10px;">{{ $t('yiBoHuiLouTian') }}</span>
+              <span style="width:20px;height:20px;background-color: #E0E0E0;padding:5px 8px;margin-left:10px;">{{ $t('weiTiJiao') }}</span>
             </div>
             <div style="float: right; vertical-align: middle;height:32px">
               <el-link
@@ -1604,7 +1604,7 @@
           <!-- </div> -->
         </el-tab-pane>
 
-        <el-tab-pane label="未提交人员列表" name="second" >
+        <el-tab-pane :label="$t('weiTiJiaoRenYuanLieBiao')" name="second" >
           <div class="selectworktime_export" style="margin-top:10px">
             <div class="selectworktime_export_l">
               <el-date-picker
@@ -1630,7 +1630,7 @@
             </div>
             <div>
                 <div style="margin-top:10px;">
-                    <el-cascader v-if="user.userNameNeedTranslate != 1" :size="'small'" v-model="deptIdForNoReport" placeholder="请选择部门" :options="departmentList" :props="{ checkStrictly: true, value: 'id' }" clearable style="width: 200px;" @change="showMonthNotWorkTime()"></el-cascader>
+                    <el-cascader v-if="user.userNameNeedTranslate != 1" :size="'small'" v-model="deptIdForNoReport" :placeholder="$t('qing-xuan-ze-bu-men')" :options="departmentList" :props="{ checkStrictly: true, value: 'id' }" clearable style="width: 200px;" @change="showMonthNotWorkTime()"></el-cascader>
                     <vueCascader :size="'small'" :widthStr="'200'" :clearable="true" :subject="trandepartmentList" :radios="true" :distinction="'15'" @vueCasader="vueCasader" v-if="user.userNameNeedTranslate == 1" :selectNameChuan="$t('other.allDepartments')"></vueCascader>
                     <el-input style="width:200px;margin-left: 15px" v-if="user.userNameNeedTranslate != '1'" @keyup.enter.native="searchScreen(1)" v-model="searchKeyword" class="input-with-select" :placeholder="$t('defaultText.pleaseEnterNametoSearch')" clearable="true" size="small">
                         <el-button slot="append" @click="searchScreen(1)" icon="el-icon-search"></el-button>
@@ -1694,7 +1694,7 @@
           <el-alert style="position:absolute;bottom:0;z-index:10;" v-if="isMore" :title="$t('message.noMoreData')" type="success" center show-icon></el-alert>
         </el-tab-pane>
 
-        <el-tab-pane v-if="user.companyId==5978" :label="'工时异常明细'" name="third">
+        <el-tab-pane v-if="user.companyId==5978" :label="$t('gongShiYiChangMingXi')" name="third">
           <div class="selectworktime_export" style="margin-top:10px;">
             <div class="selectworktime_export_l">
               <el-date-picker
@@ -1719,20 +1719,20 @@
             </div>
             <div>
                 <div style="margin-top:10px;">
-                    <el-cascader v-if="user.userNameNeedTranslate != 1" :size="'small'" v-model="deptIdForReminder" placeholder="请选择部门" :options="departmentList" :props="{ checkStrictly: true, value: 'id' }" clearable style="width: 200px;" @change="showMonthWorkTimeReminder()"></el-cascader>
+                    <el-cascader v-if="user.userNameNeedTranslate != 1" :size="'small'" v-model="deptIdForReminder" :placeholder="$t('qing-xuan-ze-bu-men')" :options="departmentList" :props="{ checkStrictly: true, value: 'id' }" clearable style="width: 200px;" @change="showMonthWorkTimeReminder()"></el-cascader>
                     <vueCascader :size="'small'" :widthStr="'200'" :clearable="true" :subject="trandepartmentList" :radios="true" :distinction="'16'" @vueCasader="vueCasader" v-if="user.userNameNeedTranslate == 1" :selectNameChuan="$t('other.allDepartments')"></vueCascader>
                     <el-input style="float:left;width:18%" v-if="user.userNameNeedTranslate != '1'" @keyup.enter.native="searchScreen(0)" v-model="searchKeyword" class="input-with-select" :placeholder="$t('defaultText.pleaseEnterNametoSearch')" clearable="true" size="small">
                         <el-button slot="append" @click="searchScreen(0)" icon="el-icon-search"></el-button>
                     </el-input>
                     <selectCat v-if="user.userNameNeedTranslate == '1'" :filterable="true"  :searchBoxTop="'1'" :size="'small'" :subject="usersList" :subjectId="usersListId" :distinction="'12'" :clearable="true" @selectCal="selectCal"></selectCat>
-                    <el-checkbox v-model="isReminder" @change="showMonthWorkTimeReminder()">是否异常</el-checkbox>
+                    <el-checkbox v-model="isReminder" @change="showMonthWorkTimeReminder()">{{ $t('shiFouYiChang') }}</el-checkbox>
                 </div>
             </div>
             <div style="float: right; vertical-align: middle;height:32px">
               <el-link
               type="primary"
               @click="changeReminder()"
-              >{{'变更提醒'}}</el-link
+              >{{ $t('bianGengTiXing') }}</el-link
               >
               <el-link
               type="primary"
@@ -1753,7 +1753,7 @@
             v-loading="tbload"
             :lazy="true"
           >
-            <el-table-column width="120" type="index" fixed="left" :label="'日期'">
+            <el-table-column width="120" type="index" fixed="left" :label="$t('weekDay.date')">
               <template slot-scope="scope">
                 {{ scope.row.createDate}}
               </template>
@@ -1766,7 +1766,7 @@
                         <!-- {{scope.row.name}} -->
                 </template>
             </el-table-column>
-            <el-table-column width="100" prop="invokeValue" fixed="left" :label="'费用类型'">
+            <el-table-column width="100" prop="invokeValue" fixed="left" :label="$t('costtype')">
                 <template slot-scope="scope">
                         {{scope.row.invokeValue}}
                 </template>
@@ -1778,29 +1778,29 @@
                 </template>
             </el-table-column>
 
-            <el-table-column width="160" type="index" fixed="left" :label="'填报工时'">
+            <el-table-column width="160" type="index" fixed="left" :label="$t('tianBaoGongShi')">
               <template slot-scope="scope">
                 {{ scope.row.workingTime}}
               </template>
             </el-table-column>
 
-            <el-table-column width="160" type="index" fixed="left" :label="'考勤工时'">
+            <el-table-column width="160" type="index" fixed="left" :label="$t('kaoQinGongShi')">
               <template slot-scope="scope">
                 {{ scope.row.cardTime}}
                 <i class="el-icon-refresh" @click="restUserCardTime(scope.row)"></i>
               </template>
             </el-table-column>
 
-            <el-table-column width="160" type="index" fixed="left" :label="'是否异常'">
+            <el-table-column width="160" type="index" fixed="left" :label="$t('shiFouYiChang')">
               <template slot-scope="scope">
-                {{ scope.row.exceedCardTime==0?'否':'是'}}
+                {{ scope.row.exceedCardTime==0?$t('state.no'):$t('state.yes')}}
               </template>
             </el-table-column>
 
-            <el-table-column width="160" type="index" fixed="left" :label="'催办'">
+            <el-table-column width="160" type="index" fixed="left" :label="$t('cuiBan')">
               <template slot-scope="scope">
-                <el-link v-if="scope.row.exceedCardTime==1" type="primary" @click="changeReminder(scope.row)">{{'变更提醒'}}</el-link>
-                <el-link v-if="scope.row.exceedCardTime==1" type="primary" @click="cancelReminder(scope.row)">{{'取消异常'}}</el-link>
+                <el-link v-if="scope.row.exceedCardTime==1" type="primary" @click="changeReminder(scope.row)">{{ $t('bianGengTiXing') }}</el-link>
+                <el-link v-if="scope.row.exceedCardTime==1" type="primary" @click="cancelReminder(scope.row)">{{ $t('quXiaoYiChang') }}</el-link>
               </template>
             </el-table-column>
 
@@ -1878,11 +1878,11 @@
                             </div>
                         </template>
                     </el-table-column>
-                    <el-table-column  label="操作" v-if="showHidden && user.companyId == 469 && user.roleName=='超级管理员'">
+                    <el-table-column  :label="$t('operation')" v-if="showHidden && user.companyId == 469 && user.roleName=='超级管理员'">
                         <template slot-scope="scope">
                             <div>
-                                <el-button type="default" size="small" @click="openModImportTime(scope.row)">修改导入记录</el-button>
-                                <el-button type="primary" size="small" @click="delImportTime(scope.row)">删除记录</el-button>
+                                <el-button type="default" size="small" @click="openModImportTime(scope.row)">{{ $t('xiuGaiDaoRuJiLu') }}</el-button>
+                                <el-button type="primary" size="small" @click="delImportTime(scope.row)">{{ $t('shan-chu-ji-lu') }}</el-button>
                             </div>
                         </template>
                     </el-table-column>
@@ -1947,7 +1947,7 @@
                         </div>
                     </template>
                 </el-table-column>
-                <el-table-column prop="departmentName" label="部门"  >
+                <el-table-column prop="departmentName" :label="$t('lable.department')"  >
                     <template slot-scope="scope">
                         <div>
                             <span v-if="user.userNameNeedTranslate == 1"><TranslationOpenDataText type='departmentName' :openid='scope.row.departmentName'></TranslationOpenDataText></span>
@@ -1974,10 +1974,10 @@
             <div  slot="title">
                 <span style="font-size:16px;" @click="showHiddenFunction">{{$t('other.Batchimportofworkinghours')}}</span>
                 <el-link v-if="active==0"  style="float:right;margin-right:100px;" type="primary" @click="toView()">{{$t('other.viewLaborImportRecords')}}</el-link>
-                <el-link v-if="active==0"  style="float:right;margin-right:100px;" type="primary" @click="downloadProjectRatio">下载填报工时占比表</el-link>
-                <el-link v-if="active==0 && showHidden && user.companyId == 469 && user.roleName.indexOf('管理员') > 0"  style="float:right;margin-right:100px;" type="primary" @click="importCardTimeVisi = true">导入考勤时长</el-link>
-                <el-link v-if="active==0 && showHidden && user.companyId == 469 && user.roleName == '超级管理员'"  style="float:right;margin-right:50px;" type="primary" @click="showBatchDeleteReport = true; startDeleting = false;">批量删除日报</el-link>
-                <el-link v-if="active==0 && showHidden && user.companyId == 469 && user.roleName == '超级管理员'"  style="float:right;margin-right:50px;" type="primary" @click="showBatchSimpleApproveReport = true; startDeleting = false;getDepartmentForApprove();">批量审核日报</el-link>
+                <el-link v-if="active==0"  style="float:right;margin-right:100px;" type="primary" @click="downloadProjectRatio">{{ $t('xiaZaiTianBaoGongShiZhanBiBiao') }}</el-link>
+                <el-link v-if="active==0 && showHidden && user.companyId == 469 && user.roleName.indexOf('管理员') > 0"  style="float:right;margin-right:100px;" type="primary" @click="importCardTimeVisi = true">{{ $t('daoRuKaoQinShiChang') }}</el-link>
+                <el-link v-if="active==0 && showHidden && user.companyId == 469 && user.roleName == '超级管理员'"  style="float:right;margin-right:50px;" type="primary" @click="showBatchDeleteReport = true; startDeleting = false;">{{ $t('piLiangShanChuRiBao') }}</el-link>
+                <el-link v-if="active==0 && showHidden && user.companyId == 469 && user.roleName == '超级管理员'"  style="float:right;margin-right:50px;" type="primary" @click="showBatchSimpleApproveReport = true; startDeleting = false;getDepartmentForApprove();">{{ $t('piLiangShenHeRiBao') }}</el-link>
             </div>
             
             <span slot="footer">
@@ -1989,14 +1989,14 @@
             
             </span>
         </el-dialog>
-        <el-dialog title="导入考勤时长" v-if="importCardTimeVisi" :visible.sync="importCardTimeVisi"  width="200">
+        <el-dialog :title="$t('daoRuKaoQinShiChang')" v-if="importCardTimeVisi" :visible.sync="importCardTimeVisi"  width="200">
             <p style="display: flex;justify-content: center;height:100px;">
                 <el-upload style="margin-top:10px;" ref="uploadCardTime"  action="#" :limit="1" :http-request="importCardTime" :show-file-list="false">
                     <el-button type="primary" :underline="false" :loading="importingData">{{$t('other.chooseFileAndUpload')}}</el-button>
                 </el-upload>
             </p>
         </el-dialog>
-        <el-dialog title="批量删除日报" v-if="showBatchDeleteReport" :visible.sync="showBatchDeleteReport"  width="200">
+        <el-dialog :title="$t('piLiangShanChuRiBao')" v-if="showBatchDeleteReport" :visible.sync="showBatchDeleteReport"  width="200">
             <div>
                 <span>{{$t('time.selectdaterange')}}:</span><el-date-picker 
                     v-model="deleteReportParam.date" :editable="false" 
@@ -2009,13 +2009,13 @@
                     ></el-date-picker>
             </div>
             <div style="margin-top:10px;">
-                <span>请选择部门:</span>
-                <el-cascader v-if="user.userNameNeedTranslate != 1" v-model="deleteReportParam.deptId" placeholder="请选择部门" :options="departmentList" :props="{ checkStrictly: true, value: 'id' }" clearable style="width: 350px;"></el-cascader>
+                <span>{{ $t('qing-xuan-ze-bu-men') }}:</span>
+                <el-cascader v-if="user.userNameNeedTranslate != 1" v-model="deleteReportParam.deptId" :placeholder="$t('qing-xuan-ze-bu-men')" :options="departmentList" :props="{ checkStrictly: true, value: 'id' }" clearable style="width: 350px;"></el-cascader>
                 <vueCascader :size="'medium'" :widthStr="'350'" :clearable="true" :subject="departmentList" :radios="true" :distinction="'1'" @vueCasader="vueCasader" v-if="user.userNameNeedTranslate == 1" :selectNameChuan="$t('other.allDepartments')"></vueCascader>
             </div>
             <div style="margin-top:10px;">
-                <span>请选择员工:</span>
-                <el-select v-model="deleteReportParam.userIds" placeholder="请选择" style="width:500px;" filterable multiple>
+                <span>{{ $t('qingXuanZeYuanGong') }}:</span>
+                <el-select v-model="deleteReportParam.userIds" :placeholder="$t('defaultText.pleaseChoose')" style="width:500px;" filterable multiple>
                     <el-option v-for="item in usersList" :key="item.id" :label="item.name" :value="item.id">
                         <span v-if="user.userNameNeedTranslate == 1"><TranslationOpenDataText type='userName' :openid='item.name'></TranslationOpenDataText></span>
                         <span v-else>{{item.name}}</span>
@@ -2023,11 +2023,11 @@
                 </el-select>
             </div>
             <span slot="footer">
-            <el-button @click="confirmBatchDelReport" :loading="startDeleting" >开始删除</el-button>
+            <el-button @click="confirmBatchDelReport" :loading="startDeleting" >{{ $t('kaiShiShanChu') }}</el-button>
             </span>
         </el-dialog>
 
-        <el-dialog title="批量审核日报" v-if="showBatchSimpleApproveReport" :visible.sync="showBatchSimpleApproveReport"  width="200">
+        <el-dialog :title="$t('piLiangShenHeRiBao')" v-if="showBatchSimpleApproveReport" :visible.sync="showBatchSimpleApproveReport"  width="200">
             <div>
                 <span>{{$t('time.selectdaterange')}}:</span><el-date-picker 
                     v-model="deleteReportParam.date" :editable="false" 
@@ -2040,8 +2040,8 @@
                     ></el-date-picker>
             </div>
             <div style="margin-top:15px;">
-                <span>选择部门:</span>
-                <el-cascader v-model="deleteReportParam.departmentId" placeholder="全部部门" style="width: 350px;margin-left:25px;"
+                <span>{{ $t('other.selectdepartment') }}:</span>
+                <el-cascader v-model="deleteReportParam.departmentId" :placeholder="$t('other.allDepartments')" style="width: 350px;margin-left:25px;"
                     :options="deptOptionList" :props="{ checkStrictly: false,expandTrigger: 'hover' }" :show-all-levels="false" clearable
                      size="small" v-if="user.userNameNeedTranslate != 1"
                     ></el-cascader>
@@ -2050,18 +2050,18 @@
             </div>
             
             <span slot="footer">
-            <el-button @click="confirmBatchApproveReport" :loading="startDeleting" >审批通过</el-button>
+            <el-button @click="confirmBatchApproveReport" :loading="startDeleting" >{{ $t('shenPiTongGuo') }}</el-button>
             </span>
         </el-dialog>
-        <el-dialog title="修改导入记录" v-if="showModImportTimeDialog" :visible.sync="showModImportTimeDialog"  width="200">
+        <el-dialog :title="$t('xiuGaiDaoRuJiLu')" v-if="showModImportTimeDialog" :visible.sync="showModImportTimeDialog"  width="200">
             <div>
-                <span>选择时间:</span><el-date-picker 
+                <span>{{ $t('other.timeSelection') }}:</span><el-date-picker 
                     v-model="modImportTime" 
                     format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" 
                     :clearable="true" 
                     type="datetime" 
                     ></el-date-picker>
-                <span>选择导入人员:</span><el-select
+                <span>{{ $t('xuanZeDaoRuRenYuan') }}</span><el-select
                     v-model="modImportUserId"
                     >
                     <el-option v-for="item in usersList" :key="item.id" :label="item.name" :value="item.id">
@@ -2071,14 +2071,14 @@
                 </el-select>    
             </div>
             <span slot="footer">
-            <el-button @click="confirmChangeModTime" >确认</el-button>
+            <el-button @click="confirmChangeModTime" >{{ $t('queRen') }}</el-button>
             </span>
         </el-dialog>
         
         
-        <el-dialog title="导出员工填报工时占比" v-if="exportUserRatio" :visible.sync="exportUserRatio"  width="200">
+        <el-dialog :title="$t('daoChuYuanGongTianBaoGongShiZhanBi')" v-if="exportUserRatio" :visible.sync="exportUserRatio"  width="200">
             <div>
-                <span>请选择年月:</span>
+                <span>{{ $t('qingXuanZeNianYue') }}</span>
                 <el-date-picker 
                     v-model="ratioYmonth" :editable="false" 
                     format="yyyyMM" value-format="yyyyMM" 
@@ -2086,7 +2086,7 @@
                     ></el-date-picker>
             </div>
             <span slot="footer">
-            <el-button @click="confirmDownloadRatio" :loading="startRatioExporting" :disabled="startRatioExporting">导出</el-button>
+            <el-button @click="confirmDownloadRatio" :loading="startRatioExporting" :disabled="startRatioExporting">{{ $t('export.export') }}</el-button>
             </span>
         </el-dialog>
         <!--工时批量代填 -->
@@ -2728,7 +2728,7 @@
                     //是否非项目
                     var isPublic = domainItem.isPublic;//this.fillProjectList.filter(p=>p.id == selectPid)[0].isPublic;
                     console.log('==========','isPublic=='+isPublic);
-                    var filteredRespList = this.jobResponseList.filter(j=>j.timeType == (isPublic?'非项目工时':'项目工时') && j.role == (this.roleList.filter(r=>r.value==domainItem.extraField1)[0].label));
+                    var filteredRespList = this.jobResponseList.filter(j=>j.timeType == (isPublic?this.$t('fei-xiang-mu-gong-shi'):this.$t('xiangMuGongShi')) && j.role == (this.roleList.filter(r=>r.value==domainItem.extraField1)[0].label));
                     console.log(filteredRespList);
                     domainItem.filteredRespList = filteredRespList;
                 }
@@ -2758,7 +2758,7 @@
             },
             delImportTime(row) {
                 let rowId = row.id;
-                this.$confirm('您确定要删除该条记录吗?',this.$t('other.prompts'), {
+                this.$confirm(this.$t('ninQueDingYaoShanChuGaiTiaoJiLuMa'),this.$t('other.prompts'), {
                     confirmButtonText: this.$t('btn.determine'),
                     cancelButtonText: this.$t('btn.cancel'),
                     type: "warning"
@@ -2769,7 +2769,7 @@
                     },res => {
                         if (res.code == "ok") {
                             this.$message({
-                                message: '删除成功',
+                                message: this.$t('message.successfullyDeleted'),
                                 type: "success"
                             });
                             this.getToView();
@@ -2791,7 +2791,7 @@
             confirmChangeModTime() {
                 if (this.modImportTime == null || this.modImportTime.length == 0) {
                     this.$message({
-                                message: '请选择时间',
+                                message: this.$t('message.Pleaseselectatime'),
                                 type: "error"
                             });
                     return;
@@ -2803,7 +2803,7 @@
                     },res => {
                         if (res.code == "ok") {
                             this.$message({
-                                message: '修改成功',
+                                message: this.$t('message.modifyTheSuccess'),
                                 type: "success"
                             });
                             this.getToView();
@@ -2825,13 +2825,13 @@
             confirmBatchApproveReport() {
                 if (this.deleteReportParam.date == null || this.deleteReportParam.date.length == 0) {
                     this.$message({
-                                message: '请选择日期范围',
+                                message: this.$t('qingXuanZeRiQiFanWei'),
                                 type: "error"
                             });
                     return;
                 }
                 
-                this.$confirm('您确定要审核通过该时间段内全部的日报吗?',this.$t('other.prompts'), {
+                this.$confirm(this.$t('ninQueDingYaoShenHeTongGuoGaiShiJianDuanNeiQuanBuDeRiBaoMa'),this.$t('other.prompts'), {
                     confirmButtonText: this.$t('btn.determine'),
                     cancelButtonText: this.$t('btn.cancel'),
                     type: "warning"
@@ -2851,7 +2851,7 @@
                     this.http.post('/report/batchApproveByDate',obj,res => {
                         if (res.code == "ok") {
                             this.$message({
-                                message: '审核通过',
+                                message: this.$t('state.approved'),
                                 type: "success"
                             });
                             this.getReportList();
@@ -2875,20 +2875,20 @@
             confirmBatchDelReport() {
                 if (this.deleteReportParam.userIds.length == 0 && !this.deleteReportParam.deptId) {
                     this.$message({
-                                message: '请选择部门或人员',
+                                message: this.$t('qingXuanZeBuMenHuoRenYuan'),
                                 type: "error"
                             });
                     return;
                 }
                 if (this.deleteReportParam.date == null || this.deleteReportParam.date.length == 0) {
                     this.$message({
-                                message: '请选择日期范围',
+                                message: this.$t('qingXuanZeRiQiFanWei'),
                                 type: "error"
                             });
                     return;
                 }
                 
-                this.$confirm('您确定要删除该时间段内的日报吗,删除后将不可恢复',this.$t('other.prompts'), {
+                this.$confirm(this.$t('ninQueDingYaoShanChuGaiShiJianDuanNeiDeRiBaoMaShanChuHouJiangBuKeHuiFu'),this.$t('other.prompts'), {
                     confirmButtonText: this.$t('btn.determine'),
                     cancelButtonText: this.$t('btn.cancel'),
                     type: "warning"
@@ -2928,11 +2928,11 @@
                 this.http.post('/project/nearProject',{},res => {
                     if(res.code == 'ok'){
                         let topObj = {
-                            label: '最近选择项目',
+                            label: this.$t('zuiJinXuanZeXiangMu'),
                             peojectList: res.data 
                         }
                         let botomObj = {
-                            label: '全部项目',
+                            label: this.$t('other.allProject'),
                             peojectList: this.fillProjectList
                         }
                         //最近项目如果在fillProjectList中不存在,需要移除
@@ -3469,7 +3469,7 @@
                         if (res.code == "ok") {
                             //换成弹出框,以免有人等了半天回来啥也没看到
                             this.$message({
-                            message: '导入考勤时长成功',
+                            message: this.$t('daoRuKaoQinShiChangChengGong'),
                             type: "success"
                             });
                         } else {
@@ -3511,7 +3511,7 @@
                         this.importingData = false;
                         if (res.code == "ok") {
                             //换成弹出框,以免有人等了半天回来啥也没看到
-                            this.importResultMsg = '成功导入' +res.data+this.$t('other.workHourData')+(res.msg?res.msg:"");
+                            this.importResultMsg = this.$t('chengGongDaoRu') +res.data+this.$t('other.workHourData')+(res.msg?res.msg:"");
                             this.getReportList();
                             this.importWxDialog = false;
                         } else {
@@ -3550,7 +3550,7 @@
                         this.showImportResult = true;
                         if (res.code == "ok") {
                             //换成弹出框,以免有人等了半天回来啥也没看到
-                            this.importResultMsg = "成功导入"+res.data+this.$t('other.workHourData')+(res.msg?res.msg:"");;
+                            this.importResultMsg = this.$t('chengGongDaoRu')+res.data+this.$t('other.workHourData')+(res.msg?res.msg:"");;
                             this.getReportList();
                             this.importWXDialog = false;
                         } else {
@@ -3873,14 +3873,14 @@
             url='/report/pushProjectReportToSap'
             let day = (this.choseDay+1) > 9 ? "-" + (this.choseDay + 1) : "-0" + (this.choseDay + 1);
             var pushDate = this.date + day;
-            this.$confirm(reportId?'确认推送当前工时?':('确认推送'+pushDate+'的工时?'), '提示', {
-          confirmButtonText: '确定',
-          cancelButtonText: '取消',
+            this.$confirm(reportId?this.$t('queRenTuiSongDangQianGongShi'):(this.$t('queRenTuiSong')+pushDate+this.$t('deGongShi')), this.$t('other.prompts'), {
+          confirmButtonText: this.$t('btn.determine'),
+          cancelButtonText: this.$t('btn.cancel'),
           type: 'info'
         }).then(() => {
             const loading = this.$loading({
                 lock: true,
-                text: '正在推送中,请耐心等待。',
+                text: this.$t('zhengZaiTuiSongZhongQingNaiXinDengDai'),
                 spinner: 'el-icon-loading',
                 background: 'rgba(0, 0, 0, 0.7)'
             });
@@ -3912,14 +3912,14 @@
         });
         }else{
             url='/report/pushReportDataToThird'
-            this.$confirm('确认推送'+this.date+'月的工时?', '提示', {
-          confirmButtonText: '确定',
-          cancelButtonText: '取消',
+            this.$confirm(this.$t('queRenTuiSong')+this.date+this.$t('yueDeGongShi'), this.$t('other.prompts'), {
+          confirmButtonText: this.$t('btn.determine'),
+          cancelButtonText: this.$t('btn.cancel'),
           type: 'info'
         }).then(() => {
             const loading = this.$loading({
                 lock: true,
-                text: '正在推送中,请耐心等待。',
+                text: this.$t('zhengZaiTuiSongZhongQingNaiXinDengDai'),
                 spinner: 'el-icon-loading',
                 background: 'rgba(0, 0, 0, 0.7)'
             });
@@ -3930,7 +3930,7 @@
                 if(res.code == 'ok'){
                     this.$message({
                         type: 'success',
-                        message: '推送成功!'
+                        message: this.$t('tuiSongChengGong')
                     });
                 }else{
                     this.$message({
@@ -4435,7 +4435,7 @@
                 if (this.user.company.packageProject == 1) {
                     if (this.chosenMembList.length > 1) {
                         this.$message({
-                            message: '每次仅支持代填一个人',
+                            message: this.$t('meiCiJinZhiChiDaiTianYiGeRen'),
                             type: "error",
                         });
                         return;
@@ -4756,7 +4756,7 @@
                 if (this.user.company.packageProject==1 && this.isSubstitude) {
                     if (!this.workForm.userId || this.workForm.userId.length == 0) {
                         this.$message({
-                            message: '请选择代填的员工',
+                            message: this.$t('qingXuanZeDaiTianDeYuanGong'),
                             type: "error"
                         });
                         return;
@@ -5713,7 +5713,7 @@
                             this.reportList = this.reportList.concat(res.data.data);
                         } else if (this.pageIndex > 1){
                             this.$message({
-                            message: '没有更多数据了',
+                            message: this.$t('meiYouGengDuoShuJuLe'),
                             type: "info"
                         });
                         }
@@ -5927,7 +5927,7 @@
                 } else {
                     const loading = this.$loading({
                         lock: true,
-                        text: '正在导入修改中,请耐心等待。',
+                        text: this.$t('zhengZaiDaoRuXiuGaiZhongQingNaiXinDengDai'),
                         spinner: 'el-icon-loading',
                         background: 'rgba(0, 0, 0, 0.7)'
                     });
@@ -6147,7 +6147,7 @@
                                 var filteredRespList = null
                                 if (targetP.length > 0) {
                                     var isPublic = targetP[0].isPublic;
-                                    filteredRespList = this.jobResponseList.filter(j=>j.timeType == (isPublic?'非项目工时':'项目工时') && j.role == this.roleList.filter(r=>r.value == list.report[i].extraField1)[0].label);
+                                    filteredRespList = this.jobResponseList.filter(j=>j.timeType == (isPublic?this.$t('fei-xiang-mu-gong-shi'):this.$t('xiangMuGongShi')) && j.role == this.roleList.filter(r=>r.value == list.report[i].extraField1)[0].label);
                                 }
                                 arr.push({
                                     id: list.report[i].id,
@@ -6398,14 +6398,14 @@
             showWeekItemEdit(item, i, projectId,names, row) {
                 if (item.state == 0) {
                     this.$message({
-                        message: '待审核状态不可修改,请返回到查看日报中先撤回',
+                        message: this.$t('daiShenHeZhuangTaiBuKeXiuGaiQingFanHuiDaoChaKanRiBaoZhongXianCheHui'),
                         type: "error"
                     });
                     return;
                 }
                 if (item.state == 1) {
                     this.$message({
-                        message: '已通过状态不可修改',
+                        message: this.$t('yiTongGuoZhuangTaiBuKeXiuGai'),
                         type: "error"
                     });
                     return;
@@ -6550,7 +6550,7 @@
                 if (this.user.company.packageProject == 1 && this.user.companyId === 3917) {
                     if (!this.zhoBao.groupId || !this.zhoBao.stage) {
                         this.$message({
-                            message: '任务分组和阶段必填,请检查',
+                            message: this.$t('renWuFenZuHeJieDuanBiTianQingJianCha'),
                             type: "error"
                         });
                         return;
@@ -6559,7 +6559,7 @@
                 // 检查任务分组
                 if(this.user.timeType.taskGroupRequired == 1 && !this.zhoBao.groupId){
                     this.$message({
-                        message: '任务分组必填,请检查',
+                        message: this.$t('renWuFenZuBiTianQingJianCha'),
                         type: "error"
                     });
                     return
@@ -6567,7 +6567,7 @@
                 //检查子项目是否必填
                 if (this.user.timeType.subProMustFill == 1 && this.zhoBao.subProjectList && this.zhoBao.subProjectList.length > 0 && !this.zhoBao.subProjectId) {
                     this.$message({
-                        message: '子项目必填,请检查',
+                        message: this.$t('ziXiangMuBiTianQingJianCha'),
                         type: "error"
                     });
                     return;
@@ -7118,9 +7118,9 @@
                         if (res.code == "ok") {
                             this.submitWeekReport(0)
                         } else {
-                            this.$confirm(res.msg, '提示', {
-                                confirmButtonText: '忽略并提交',
-                                cancelButtonText: '取消',
+                            this.$confirm(res.msg, this.$t('other.prompts'), {
+                                confirmButtonText: this.$t('huLveBingTiJiao'),
+                                cancelButtonText: this.$t('btn.cancel'),
                                 type: 'error'
                             }).then(() => {
                                 this.submitWeekReport(0)
@@ -7520,7 +7520,7 @@
                     let { next, error } = this.handleGroupAuditorData(this.zhoData)
                     if(!next) {
                         this.$message({
-                            message: `【${error.join('、')}】请填写任务分组`,
+                            message: `【${error.join('、')}】` + this.$t('qingTianXieRenWuFenZu'),
                             type: 'error'
                         })
                         return
@@ -7584,7 +7584,7 @@
                 if(arrList.length > 0) {
                     return {
                         next: false,
-                        error: arrList.map(item => `【${item.date} ${item.dateText} 中的 (${item.projectName})项目】`),
+                        error: arrList.map(item => `【${item.date} ${item.dateText} `+ this.$t('zhongDe')+ `(${item.projectName})` + this.$t('other.project')+ `】`),
                     }
                 } else {
                     return {
@@ -7815,7 +7815,7 @@
                                     var endDate = new Date(this.workForm.createDate[1]);
                                     if (startDate > endDate) {
                                         this.$message({
-                                            message: '开始日期不能大于结束日期',
+                                            message: this.$t('kaiShiRiQiBuNengDaYuJieShuRiQi'),
                                             type: "error"
                                         });
                                         return
@@ -7844,9 +7844,9 @@
                                     if (res.code == "ok") {
                                         this.submitReportSon()
                                     } else {
-                                        this.$confirm(res.msg, '提示', {
-                                            confirmButtonText: '忽略并提交',
-                                            cancelButtonText: '取消',
+                                        this.$confirm(res.msg, this.$t('other.prompts'), {
+                                            confirmButtonText: this.$t('huLveBingTiJiao'),
+                                            cancelButtonText: this.$t('btn.cancel'),
                                             type: 'error'
                                         }).then(() => {
                                             this.submitReportSon()
@@ -7862,9 +7862,9 @@
                                 });
                             } else {
                                 if(this.totalReportHours < this.user.timeType.allday){
-                                    this.$confirm('当日工时不足' + this.user.timeType.allday.toFixed(1) + '小时,是否确定提交?', '提示', {
-                                        confirmButtonText: '确定',
-                                        cancelButtonText: '取消',
+                                    this.$confirm(this.$t('dangRiGongShiBuZu') + this.user.timeType.allday.toFixed(1) + this.$t('xiaoShiShiFouQueDingTiJiao'), this.$t('other.prompts'), {
+                                        confirmButtonText: this.$t('btn.determine'),
+                                        cancelButtonText: this.$t('btn.cancel'),
                                         type: 'warning'
                                     }).then(() => {
                                         this.submitReportSon()
@@ -7939,7 +7939,7 @@
                                 if (oneProItem.subProjectList.length > 0 && !oneProItem.subProjectId) {
                                     //没有选择子项目
                                     this.$message({
-                                        message: '子项目必填,请检查',
+                                        message: this.$t('ziXiangMuBiTianQingJianCha'),
                                         type: "error"
                                     });
                                     return
@@ -7953,21 +7953,21 @@
                                 var oneProItem = this.workForm.domains[p]
                                 if (!oneProItem.extraField1) {
                                     this.$message({
-                                        message: '角色必填,请检查',
+                                        message: this.$t('jiaoSeBiTianQingJianCha'),
                                         type: "error"
                                     });
                                     return
                                 }
                                 if (!oneProItem.extraField2) {
                                     this.$message({
-                                        message: '工作职责必填,请检查',
+                                        message: this.$t('gongZuoZhiZeBiTianQingJianCha'),
                                         type: "error"
                                     });
                                     return
                                 }
                                 if (!oneProItem.extraField3) {
                                     this.$message({
-                                        message: '工作内容必填,请检查',
+                                        message: this.$t('gongZuoNeiRongBiTianQingJianCha'),
                                         type: "error"
                                     });
                                     return
@@ -8093,7 +8093,7 @@
                             if(taskRequired == 1) {
                                 if(!this.workForm.domains[i].taskId) {
                                     this.$message({
-                                        message: `【${this.workForm.domains[i].projectName}】请选择 任务/里程碑`,
+                                        message: `【${this.workForm.domains[i].projectName}】`+this.$t('qingXuanZeRenWuLiChengBei'),
                                         type: "error"
                                     });
                                     return
@@ -8362,7 +8362,7 @@
                             }
                             if(this.user.timeType.taskGroupRequired == 1 && !this.workForm.domains[i].groupId) {
                                 this.$message({
-                                    message: `请选择【${this.workForm.domains[i].projectName}】项目下的任务分组`,
+                                    message: this.$t('defaultText.pleaseChoose') + `【${this.workForm.domains[i].projectName}】`+ this.$t('xiangMuXiaDeRenWuFenZu'),
                                     type: "error"
                                 });
                                 return