Browse Source

提交的东西比较杂

Lijy 2 years ago
parent
commit
fb8d1abaff

+ 3 - 0
fhKeeper/formulahousekeeper/timesheet/src/http.js

@@ -57,6 +57,9 @@ export default {
             token = JSON.parse(user).id
             // data.token = token
         }
+        if(localStorage.getItem('lang') == 'en') {
+            data.lang = 'english'
+        }
         axios({
             method: 'post',
             url: handleUrl(url),

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

@@ -1423,5 +1423,22 @@
   "shen-pi-ceng-ji-she-zhi": "Approval level Setting",
   "onelayer": "1 layer",
   "threelayer": "3 layer",
-  "twolayer": "2 layer"
+  "twolayer": "2 layer",
+  "an-ren-yuan-cha-kan": "According to personnel needs",
+  "an-xiang-mu-cha-kan": "View by project",
+  "zi-yuan-xu-qiu": "resource requirements",
+  "zi-yuan-xu-qiu-dao-ru-mo-ban": "Import a template for resource requirements",
+  "dao-ru-xu-qiu": "Import demand",
+  "dao-chu-xu-qiu": "Export demand",
+  "jin-qi-ri-huo-yue-ren-yuan": "Active staff for seven days",
+  "he-tong-yao-qiu": "contract requirements",
+  "li-cheng-bei-jin-du": "Milestone progress",
+  "ren-yuan-xu-qiu": "Personnel requirements",
+  "ren-wu-xu-qiu": "Mission requirements",
+  "can-yu-bu-men-jin-du": "Participate in department progress",
+  "bu-men-jin-du": "Department of progress",
+  "chu-cha": "evection",
+  "xuan-xiang-1": "Option 1",
+  "xuan-xiang-2": "Option 2",
+  "zi-yuan-xu-qiu-dao-chu": "Exporting Resource Requirements"
 }

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

@@ -1423,5 +1423,22 @@
   "shen-pi-ceng-ji-she-zhi": "审批层级设置",
   "onelayer": "1层",
   "twolayer": "2层",
-  "threelayer": "3层"
+  "threelayer": "3层",
+  "an-ren-yuan-cha-kan": "按人员查看",
+  "an-xiang-mu-cha-kan": "按项目查看",
+  "zi-yuan-xu-qiu": "资源需求",
+  "zi-yuan-xu-qiu-dao-ru-mo-ban": "资源需求导入模板",
+  "dao-ru-xu-qiu": "导入需求",
+  "dao-chu-xu-qiu": "导出需求",
+  "jin-qi-ri-huo-yue-ren-yuan": "近七日活跃人员",
+  "he-tong-yao-qiu": "合同要求",
+  "li-cheng-bei-jin-du": "里程碑进度",
+  "ren-yuan-xu-qiu": "人员需求",
+  "ren-wu-xu-qiu": "任务需求",
+  "can-yu-bu-men-jin-du": "参与部门进度",
+  "bu-men-jin-du": "部门进度",
+  "xuan-xiang-1": "选项1",
+  "xuan-xiang-2": "选项2",
+  "zi-yuan-xu-qiu-dao-chu": "资源需求导出",
+  "chu-cha": "出差"
 }

+ 20 - 0
fhKeeper/formulahousekeeper/timesheet/src/views/Login.vue

@@ -49,6 +49,7 @@
     import * as dd from 'dingtalk-jsapi';
     import "../permissions.js"
     export default {
+        inject:['reloads'],
         data() {
             return {
                 isCorpWX: false,
@@ -66,6 +67,7 @@
             };
         },
         created() {
+            this.langChange()
             if (localStorage.userInfo != null) {
                 var user = JSON.parse(localStorage.userInfo);
                 if(user.moduleList.length > 0) {
@@ -141,6 +143,24 @@
             }
         },
         methods: {
+            langChange() {
+                let jsSrc =(navigator.language || navigator.browserLanguage).toLowerCase();
+                let str =  localStorage.getItem("lang")
+                if(jsSrc.indexOf('zh')!=-1){
+                    // 浏览器语言是中文
+                    localStorage.setItem("lang", 'zh')
+                    // localStorage.setItem("lang", 'en')
+                } else {
+                    // 浏览器语言是英文
+                    localStorage.setItem("lang", 'en')
+                    // localStorage.setItem("lang", 'zh')
+                }
+                if(str != localStorage.getItem("lang")) {
+                    // this.reloads()
+                    location. reload()
+                }
+                console.log(str, localStorage.getItem("lang"))
+            },
             isDingchg() {
                 this.$store.commit('isDingFun')
             },

+ 0 - 4
fhKeeper/formulahousekeeper/timesheet/src/views/project/list.vue

@@ -3253,10 +3253,6 @@ a {
                 })
             },
             getUsers() {
-
-
-
-
                 // this.http.post(this.port.manage.list, {
                 //     departmentId: -1,
                 //     pageIndex: 1,

+ 81 - 103
fhKeeper/formulahousekeeper/timesheet/src/views/project/project_gantt.vue

@@ -1,43 +1,42 @@
-{{ src/App.vue }}
 <template>
   <div class="container">
     <div class="gantt_head">
       <div class="head_RorX">
         
       <el-radio-group v-model="radio1" @change="selChange()" size="small" style="margin-right:9px;width:280px">
-        <el-radio-button label="按人员查看" value="renyuan"></el-radio-button>
-        <el-radio-button label="按项目查看" value="xiangmu"></el-radio-button>
-        <el-radio-button label="资源需求" value="demand"></el-radio-button>
+        <el-radio-button :label="$t('an-ren-yuan-cha-kan')" value="renyuan"></el-radio-button>
+        <el-radio-button :label="$t('an-xiang-mu-cha-kan')" value="xiangmu"></el-radio-button>
+        <el-radio-button :label="$t('zi-yuan-xu-qiu')" value="demand"></el-radio-button>
       </el-radio-group>
       
       </div>
       <!-- 时间段筛选  -->
       <div class="head_date" v-if="isDataLoaded">
-      <span>时间段</span>
+      <span>{{ $t('message.period') }}</span>
       <el-date-picker
         style="margin-left:9px;width:17vw"
         size="small"
         v-model="valueDate"
         type="daterange"
-        range-separator="至"
-        start-placeholder="开始日期"
-        end-placeholder="结束日期"
+        :range-separator="$t('other.to')"
+        :start-placeholder="$t('time.startDate')"
+        :end-placeholder="$t('time.endDate')"
         value-format="yyyy-MM-dd"
         @change="dateupdata()">
       </el-date-picker>
       </div>
       <!-- 任务类型筛选 -->
-      <div v-if="radio1 == '按项目查看'" class="head_taskType">
-        <span>任务类型</span>
-        <el-select clearable filterable v-model="taskType" placeholder="请选择" size="small" style="margin-left:9px;width:10vw" @change="taskTypeSel()">
-        <el-option label="任务" :value="0"></el-option>
-        <el-option label="里程碑" :value="1"></el-option>
+      <div v-if="radio1 == $t('an-xiang-mu-cha-kan')" class="head_taskType">
+        <span>{{ $t('ren-wu-lei-xing') }}</span>
+        <el-select clearable filterable v-model="taskType" :placeholder="$t('defaultText.pleaseChoose')" size="small" style="margin-left:9px;width:10vw" @change="taskTypeSel()">
+        <el-option :label="$t('other.task')" :value="0"></el-option>
+        <el-option :label="$t('other.milestone')" :value="1"></el-option>
       </el-select>
       </div>
       <!-- 任务分组筛选 -->
       <div v-if="reqpar1" class="head_taskgroup">
-        <span>任务分组</span>
-        <el-select clearable filterable v-model="valuex2" placeholder="请选择" size="small" style="margin-left:9px;width:10vw" @change="taskgroupSel()">
+        <span>{{ $t('other.taskGroup') }}</span>
+        <el-select clearable filterable v-model="valuex2" :placeholder="$t('defaultText.pleaseChoose')" size="small" style="margin-left:9px;width:10vw" @change="taskgroupSel()">
         <el-option
           v-for="item in taskgroupList"
           :key="item.name"
@@ -49,8 +48,8 @@
       </div>
       <!-- 人员/项目筛选 -->
       <div class="head_select">
-        <span>{{(this.radio1 == "按人员查看" ? "人员" : "项目")}}</span>
-      <el-select clearable filterable v-model="valuex" placeholder="请选择" size="small" style="margin-left:9px;width:10vw" @change="optupdata()">
+        <span>{{(this.radio1 == $t('an-ren-yuan-cha-kan') ? $t('ren-yuan') : $t('other.project'))}}</span>
+      <el-select clearable filterable v-model="valuex" :placeholder="$t('defaultText.pleaseChoose')" size="small" style="margin-left:9px;width:10vw" @change="optupdata()">
         <el-option
           v-for="item in screenList"
           :key="item.id"
@@ -65,13 +64,13 @@
       <!-- 资源需求导入/导出 -->
       <div class="head_files" v-if="!isDataLoaded">
         <div style="margin-left:10px;float:left;">
-        <el-link type="primary" :underline="false" href="./upload/资源需求导入模板.xlsx" download="资源需求导入模板.xlsx">模板下载</el-link>
+          <el-link type="primary" :underline="false" :href="'./upload/'+$t('zi-yuan-xu-qiu-dao-ru-mo-ban')+'.xlsx'" download="资源需求导入模板.xlsx">{{ $t('Downloadthetemplate') }}</el-link>
         </div>
         <el-upload ref="upload" style="margin-left:10px;float:left;" action="#" :limit="1" :http-request="importProject" :show-file-list="false">
-          <el-link type="primary" :underline="false" >导入需求</el-link>
+          <el-link type="primary" :underline="false" >{{ $t('dao-ru-xu-qiu') }}</el-link>
         </el-upload>
         <div style="margin-left:10px;float:left;">
-        <el-link type="primary" :underline="false" @click="exportProjectData" download="资源需求导出.xlsx">导出需求</el-link>
+        <el-link type="primary" :underline="false" @click="exportProjectData" download="资源需求导出.xlsx">{{ $t('dao-chu-xu-qiu') }}</el-link>
         </div>
       </div>
     </div>
@@ -83,9 +82,9 @@
 
   <div class="demand-container" v-if="!isDataLoaded">
     <el-table height="90%" :loading="demandListLoading" :data="demandList">
-      <el-table-column label="项目编号" prop="projectCode" width="160"></el-table-column>
-      <el-table-column label="项目名称" prop="projectName" min-width="240"></el-table-column>
-      <el-table-column label="近七日活跃人员" prop="activeUsers" min-width="240">
+      <el-table-column :label="$t('Itemno')" prop="projectCode" width="160"></el-table-column>
+      <el-table-column :label="$t('headerTop.projectName')" prop="projectName" min-width="240"></el-table-column>
+      <el-table-column :label="$t('jin-qi-ri-huo-yue-ren-yuan')" prop="activeUsers" min-width="240">
         <template slot-scope="scope">
           <div>
             <span v-if="user.userNameNeedTranslate == 1">
@@ -100,23 +99,23 @@
           </div>
         </template>
       </el-table-column>
-      <el-table-column label="开始时间 - 结束时间" min-width="240">
+      <el-table-column :label="$t('starttimes') - $t('time.endTime')" min-width="240">
         <template slot-scope="scope">
           <span>{{scope.row.startDate ? scope.row.startDate + ' ~ ' + scope.row.endDate : ''}}</span>
         </template>
       </el-table-column>
-      <el-table-column label="合同要求" prop="contractReq" min-width="240" show-overflow-tooltip></el-table-column>
-      <el-table-column label="里程碑进度" prop="milepost" min-width="280">
+      <el-table-column :label="$t('he-tong-yao-qiu')" prop="contractReq" min-width="240" show-overflow-tooltip></el-table-column>
+      <el-table-column :label="$t('li-cheng-bei-jin-du')" prop="milepost" min-width="280">
         <template slot-scope="scope">
-          <span>{{scope.row.milepost ? scope.row.milepost.name + '\u3000完成时间:' + scope.row.milepost.finishDate : ''}}</span>
+           <span>{{scope.row.milepost ? scope.row.milepost.name + '\u3000'+$t('wan-cheng-shi-jian')+':' + scope.row.milepost.finishDate : ''}}</span>
         </template>
       </el-table-column>
-      <el-table-column label="人员需求" prop="membReq" min-width="280"></el-table-column>
-      <el-table-column label="任务需求" prop="taskReq" min-width="280"></el-table-column>
-      <el-table-column label="参与部门进度" prop="departmentSpeed" min-width="280"></el-table-column>
-      <el-table-column label="操作" width="120" align="center" fixed="right">
+      <el-table-column :label="$t('ren-yuan-xu-qiu')" prop="membReq" min-width="280"></el-table-column>
+      <el-table-column :label="$t('ren-wu-xu-qiu')" prop="taskReq" min-width="280"></el-table-column>
+      <el-table-column :label="$t('can-yu-bu-men-jin-du')" prop="departmentSpeed" min-width="280"></el-table-column>
+      <el-table-column :label="$t('operation')" width="120" align="center" fixed="right">
         <template slot-scope="scope">
-          <el-button @click="demandEdit(scope.row)" size="small">修改</el-button>
+          <el-button @click="demandEdit(scope.row)" size="small">{{ $t('xiu-gai') }}</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -133,55 +132,56 @@
     </div>
 
     <!-- 资源需求修改 -->
-  <el-dialog v-if="demandEditDialog" width="500px" append-to-body :visible.sync="demandEditDialog" :title="'修改 - ' + editParameter.projectName">
+  <el-dialog v-if="demandEditDialog" width="500px" append-to-body :visible.sync="demandEditDialog" :title="$t('xiu-gai') +' - ' + editParameter.projectName">
     <el-form label-width="150">
-      <el-form-item label="开始时间">
+      <el-form-item :label="$t('starttimes')">
         <el-date-picker
         style="width:350px"
         v-model="editDate1"
         type="date"
-        placeholder="请选择开始时间"
+        :placeholder="$t('defaultText.pleaseChoose')"
         value-format="yyyy-MM-dd"></el-date-picker>
       </el-form-item>
-      <el-form-item label="结束时间">
+      <el-form-item :label="$t('time.endTime')">
         <el-date-picker
         style="width:350px"
         v-model="editDate2"
         type="date"
-        placeholder="请选择结束时间"
+        :placeholder="$t('defaultText.pleaseChoose')"
         value-format="yyyy-MM-dd"></el-date-picker>
       </el-form-item>
-      <el-form-item label="人员需求">
+      <el-form-item :label="$t('ren-yuan-xu-qiu')">
         <el-input style="width:350px" v-model="editParameter.membReq" clearable></el-input>
       </el-form-item>
-      <el-form-item label="任务需求">
+      <el-form-item :label="$t('ren-wu-xu-qiu')">
         <el-input style="width:350px" v-model="editParameter.taskReq" clearable></el-input>
       </el-form-item>
-      <el-form-item label="合同要求">
+      <el-form-item :label="$t('he-tong-yao-qiu')">
         <el-input style="width:350px" v-model="editParameter.contractReq" clearable></el-input>
       </el-form-item>
-      <el-form-item label="部门进度">
+      <el-form-item :label="$t('bu-men-jin-du')">
         <el-input style="width:350px" v-model="editParameter.departmentSpeed" clearable></el-input>
       </el-form-item>
     </el-form>
     <div slot="footer" class="dialog-footer">
-              <el-button type="default" @click="demandEditDialog = false">取消</el-button>
-              <el-button type="primary" @click="demandEditSure" >确定</el-button>
+              <el-button type="default" @click="demandEditDialog = false">{{ $t('btn.cancel') }}</el-button>
+              <el-button type="primary" @click="demandEditSure" >{{ $t('btn.determine') }}</el-button>
             </div>
   </el-dialog>
   </div>
   
   </div>
 </template>
- 
+
 <script>
 import { error } from 'dingtalk-jsapi';
 import Gantt from './gantt.vue';
- 
+
 export default {
   name: 'project_gantt',
+  props: {},
   components: {Gantt},
-  data () {
+  data() {
     return {
       taskType: '',
       isDataLoaded:false,
@@ -192,9 +192,9 @@ export default {
       tasks1: {links:[]},
       updatakey1: 1,
       updatakey2: -1,
-      radio1:"按人员查看",
+      radio1:this.$t('an-ren-yuan-cha-kan'),
       valueDate:[],
-      options:[{value:"选项1",label:"全部"},{value:"选项2",label:"人员1"}],
+      options:[{value:this.$t('xuan-xiang-1'),label:this.$t('all')},{value:this.$t('xuan-xiang-2'),label:this.$t('ren-yuan')+"1"}],
       valuex:'',
       screenList:[],
 
@@ -214,13 +214,29 @@ export default {
       valuex2: '',
 
       user: JSON.parse(sessionStorage.getItem("user")),
-
-    }
+    };
+  },
+  computed: {},
+  watch: {},
+  created() {},
+  mounted() {
+    let nowdate = new Date()
+    let nowmonth = nowdate.getMonth() + 1
+    let startdate = nowdate.getFullYear() + "-" + (nowmonth < 10 ? "0" + nowmonth : nowmonth) + "-" + (nowdate.getDate() < 10 ? "0" + nowdate.getDate() : nowdate.getDate())
+    let udate = new Date(nowdate.getFullYear(),nowdate.getMonth(),nowdate.getDate() + 31)
+    let endmonth = udate.getMonth() + 1
+    let enddate = udate.getFullYear() + "-" + (endmonth < 10 ? "0" + endmonth : endmonth) + "-" + (udate.getDate() < 10 ? "0" + udate.getDate() : udate.getDate())
+    this.valueDate = [startdate,enddate]
+    this.valueDate2 = this.valueDate
+    this.reqpar2 = this.valueDate
+    // console.log("date",this.valueDate);
+    this.getList();
+    this.getScreen()
+    // this.tasks1 = this.tasks
+    this.isDataLoaded = true
   },
-
-  
   methods: {
-      setGroup() {
+    setGroup() {
           this.$refs.ganttTable1.setGroup();
           // this.$refs.ganttTable2.setGroup();
       },
@@ -243,7 +259,7 @@ export default {
                     if (res.code == "ok") {
                         let filePath = res.data;
                         const a = document.createElement('a'); // 创建a标签
-                        a.setAttribute('download', '资源需求导出.xls');// download属性
+                        a.setAttribute('download', this.$t('zi-yuan-xu-qiu-dao-chu')+'.xls');// download属性
                         a.setAttribute('href', filePath);// href链接
                         a.click(); //自执行点击事件
                         a.remove();
@@ -264,7 +280,7 @@ export default {
                 let format = str[str.length - 1];
                 if (format != "xls" && format != "xlsx") {
                     this.$message({
-                        message: "请选择.xls或.xlsx文件",
+                        message: this.$t('other.PleaseselecttheXLSorXLSXfile'),
                         type: "error"
                     });
                 } else {
@@ -275,7 +291,7 @@ export default {
                         this.$refs.upload.clearFiles();
                         if (res.code == "ok") {
                             this.$message({
-                                message: "导入成功",
+                                message: this.$t('other.importSuccess'),
                                 type: "success"
                             });
                             this.getDemandList();
@@ -299,12 +315,12 @@ export default {
       selChange(){
         this.valuex = null
         // console.log("切换按钮",this.radio1);
-        if (this.radio1 == "按人员查看") {
+        if (this.radio1 == this.$t('an-ren-yuan-cha-kan')) {
           this.isDataLoaded = true
           this.reqpar1 = 0
           this.getList()
           this.getScreen()
-        }else if(this.radio1 == "按项目查看"){
+        }else if(this.radio1 == this.$t('an-xiang-mu-cha-kan')){
           this.isDataLoaded = true
           this.reqpar1 = 1
           this.getList()
@@ -380,7 +396,7 @@ export default {
         res => {
           if(res.code == 'ok'){
             this.$message({
-              message: '修改成功',
+              message: this.$t('message.modifyTheSuccess'),
               type: 'success'
             })
             this.demandEditDialog = false
@@ -482,10 +498,10 @@ export default {
                         res => {
                             if (res.code == "ok") {
                                 for(var i in res.data) {
-                                  if(res.data[i].id.indexOf('出差') != '-1') {
+                                  if(res.data[i].id.indexOf(this.$t('chu-cha')) != '-1') {
                                     res.data[i].color = '#E6A23C'
                                   }
-                                  if(res.data[i].id.indexOf('请假') != '-1') {
+                                  if(res.data[i].id.indexOf(this.$t('other.AskForLeave')) != '-1') {
                                     res.data[i].color = '#F56C6C'
                                   }
                                 }
@@ -583,50 +599,12 @@ export default {
             })
         })
       },
-
-
-
-      // tasksEdit(){
-      //   let etasks = JSON.parse(JSON.stringify(this.tasks.data))
-      //   for(let i=0;i<etasks.length;i++){
-      //     if(etasks[i].parent != null){
-      //       let edate = new Date(etasks[i].end_date)
-      //       edate = new Date(edate.setDate(edate.getDate() + 1))
-      //       let edatemonth = edate.getMonth() + 1
-      //       let edateday = edate.getDate()
-      //       edate = edate.getFullYear() + '-' + (edatemonth < 10 ? '0' + edatemonth : edatemonth) + '-' + (edateday < 10 ? '0' + edateday : edateday)
-      //       etasks[i].end_date = edate
-      //     }
-      //   }
-      //   this.tasks = {data:etasks}
-      // }
   },
-  mounted: function () {
-    let nowdate = new Date()
-    let nowmonth = nowdate.getMonth() + 1
-    let startdate = nowdate.getFullYear() + "-" + (nowmonth < 10 ? "0" + nowmonth : nowmonth) + "-" + (nowdate.getDate() < 10 ? "0" + nowdate.getDate() : nowdate.getDate())
-    let udate = new Date(nowdate.getFullYear(),nowdate.getMonth(),nowdate.getDate() + 31)
-    let endmonth = udate.getMonth() + 1
-    let enddate = udate.getFullYear() + "-" + (endmonth < 10 ? "0" + endmonth : endmonth) + "-" + (udate.getDate() < 10 ? "0" + udate.getDate() : udate.getDate())
-    this.valueDate = [startdate,enddate]
-    this.valueDate2 = this.valueDate
-    this.reqpar2 = this.valueDate
-    // console.log("date",this.valueDate);
-    this.getList();
-    this.getScreen()
-    // this.tasks1 = this.tasks
-    this.isDataLoaded = true
-  }
-}
+};
 </script>
 
-<style>
-  /* html, body {
-    height: 100%;
-    margin: 0;
-    padding: 0;
-  } */
-  .container {
+<style scoped lang="scss">
+.container {
     height: 100%;
     width: 100%;
   }
@@ -671,4 +649,4 @@ export default {
     float: right;
     padding-top: 5px;
 }
-</style>
+</style>

+ 7 - 2
fhKeeper/formulahousekeeper/timesheet/src/views/team/index.vue

@@ -2121,7 +2121,7 @@ export default {
           if (res.code == "ok") {
             this.list = res.data.records;
             this.total = res.data.total;
-            this.nextCursor = this.data.nextCursor
+            this.nextCursor = res.data.nextCursor
           } else {
             this.$message({
               message: res.msg,
@@ -2929,6 +2929,7 @@ export default {
     // 关键搜索
     searchList() {
       // console.log(this.keyword)
+      console.log(this.nextCursor, '游标')
       this.listLoading = true;
       this.http.post(
         this.port.manage.list,
@@ -2937,13 +2938,17 @@ export default {
           pageIndex: this.page,
           pageSize: this.size,
           keyword: this.keyword,
-          status: this.status
+          status: this.status,
+          roleId: this.roleId,
+          cursor: this.nextCursor,
+          onlyDirect: this.onlyDirect ? "1" : "0"
         },
         (res) => {
           this.listLoading = false;
           if (res.code == "ok") {
             this.list = res.data.records;
             this.total = res.data.total;
+            this.nextCursor = res.data.nextCursor
           } else {
             this.$message({
               message: res.msg,

+ 1 - 0
fhKeeper/formulahousekeeper/timesheet/src/views/workReport/list.vue

@@ -20,6 +20,7 @@
                     </el-select>
 
                     <selectCat v-if="user.userNameNeedTranslate == '1'" :size="'size'" :subject="searchUsersList" :clearable="true" :multiSelect="true" @selectCal="selectCal"></selectCat>
+                    <!-- <selectCat :size="'size'" :subject="searchUsersList" :clearable="true" :filterable="true" @selectCal="selectCal"></selectCat> -->
                 </el-form-item>
 
                 <el-form-item :label="$t('other.project')" style="width: 215px">