Lijy 2 лет назад
Родитель
Сommit
41195ef23d

+ 40 - 3
fhKeeper/formulahousekeeper/timesheet/src/components/taskComponent.vue

@@ -4,10 +4,18 @@
         <el-form ref="form1" :model="addForm" :rules="taskRules" label-width="120px">
             <el-form-item label="所属项目" v-if="showOrNot" prop="projectId">
                 <el-select v-model="addForm.projectId" :placeholder="$t('defaultText.pleaseChoose')" @change="agentCreatesEvents(1)" filterable="true" style="width:100%;">
-                    <el-option v-for="item in projectList" :key="item.id" :label="item.projectName + item.projectCode" :value="item.id">
+
+                    <!-- <el-option v-for="item in projectList" :key="item.id" :label="item.projectName + item.projectCode" :value="item.id">
                         <span style="float: left;color: #8492a6;">{{ item.projectCode }}</span>
                         <span style="float: right;font-size: 13px;">{{ item.projectName }}</span>
-                    </el-option>
+                    </el-option> -->
+                    <el-option-group v-for="group in integrationProjectList" :key="group.label" :label="group.label">
+                        <el-option v-for="item in group.peojectList" :key="item.id" :label="item.projectName + '\u3000' + item.projectCode" :value="item.id">
+                            <span style="float: left; color: #8492a6; font-size: 13px;">{{ item.projectCode }}</span>
+                            <span style="float: right;">{{ item.projectName }}</span>
+                        </el-option>
+                    </el-option-group>
+
                 </el-select>
             </el-form-item>
             <el-form-item label="所属任务分组" v-if="showOrNot" prop="groupId">
@@ -817,7 +825,8 @@ export default {
         taskListTotal: 0,
         dynamicTab: true,
         dailyList: [],
-        meetingId: ''
+        meetingId: '',
+        integrationProjectList: []
     };
   },
   computed: {},
@@ -887,6 +896,7 @@ export default {
         res => {
             if (res.code == "ok") {
                 this.projectList = res.data;
+                this.getRecentlyProject()
             } else {
                 this.$message({
                     message: res.msg,
@@ -901,6 +911,33 @@ export default {
             });
         });
     },
+    // 获取最近项目列表
+    getRecentlyProject() {
+        this.http.post('/project/nearProject',{},res => {
+            if(res.code == 'ok'){
+                let topObj = {
+                    label: '最近选择项目',
+                    peojectList: res.data 
+                }
+                let botomObj = {
+                    label: '全部项目',
+                    peojectList: this.projectList
+                }
+                this.integrationProjectList = [topObj, botomObj]
+                console.log(this.integrationProjectList, '整合')
+            }else {
+                this.$message({
+                    message: res.msg,
+                    type: 'error'
+                })
+            }
+        },err => {
+            this.$message({
+                message: err,
+                type: 'error'
+            })
+        })
+    },
     // 获取任务分组
     getTaskGrouping() {
         this.http.post('/task-group/list', {projectId:this.addForm.projectId},

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

@@ -430,17 +430,17 @@
                             @change="selectProject(domain, index)"
                             :disabled="workForm.domains.length==0?true:(workForm.domains[index].state>=2?false:true)" popper-class="projectSelectPopperClass">
                             
-                                <el-option v-for="item in fillProjectList" :disabled="item.status!=1 && item.status!=4" :key="item.id" :label="item.projectName + '\u3000' + item.projectCode" :value="item.id">
+                                <!-- <el-option v-for="item in fillProjectList" :disabled="item.status!=1 && item.status!=4" :key="item.id" :label="item.projectName + '\u3000' + item.projectCode" :value="item.id">
                                     <span style="float: left; color: #8492a6; font-size: 13px;">{{ item.projectCode }}</span>
                                     <span style="float: right;">{{ item.projectName }}</span>
-                                </el-option>
+                                </el-option> -->
 
-                                <!-- <el-option-group v-for="group in integrationProjectList" :key="group.label" :label="group.label">
+                                <el-option-group v-for="group in integrationProjectList" :key="group.label" :label="group.label">
                                     <el-option v-for="item in group.peojectList" :key="item.id" :label="item.projectName  + '\u3000' + item.projectCode" :value="item.id" :disabled="item.status!=1 && item.status!=4">
                                         <span style="float: left; color: #8492a6; font-size: 13px;">{{ item.projectCode }}</span>
                                         <span style="float: right;">{{ item.projectName }}</span>
                                     </el-option>
-                                </el-option-group> -->
+                                </el-option-group>
 
                             </el-select>
                             <template v-if="user.timeType.mainProjectState != 1">
@@ -593,17 +593,17 @@
                                 <el-select v-model="domain.projectId" :placeholder="$t('defaultText.pleaseSelectSnItem')" style="width:200px;" clearable="true"  filterable="true" value-key="id"
                                 @change="selectProject(domain, index)"
                                 :disabled="workForm.domains.length==0?true:(workForm.domains[index].state>=2?false:true)" popper-class="projectSelectPopperClass">
-                                    <el-option v-for="item in fillProjectList" :disabled="item.status!=1 && item.status!=4" :key="item.id" :label="item.projectName + '\u3000' + item.projectCode" :value="item.id">
+                                    <!-- <el-option v-for="item in fillProjectList" :disabled="item.status!=1 && item.status!=4" :key="item.id" :label="item.projectName + '\u3000' + item.projectCode" :value="item.id">
                                         <span style="float: left; color: #8492a6; font-size: 13px;">{{ item.projectCode }}</span>
                                         <span style="float: right;">{{ item.projectName }}</span>
-                                    </el-option>
+                                    </el-option> -->
 
-                                    <!-- <el-option-group v-for="group in integrationProjectList" :key="group.label" :label="group.label">
+                                    <el-option-group v-for="group in integrationProjectList" :key="group.label" :label="group.label">
                                         <el-option v-for="item in group.peojectList" :key="item.id" :label="item.projectName + '\u3000' + item.projectCode" :value="item.id" :disabled="item.status!=1 && item.status!=4">
                                             <span style="float: left; color: #8492a6; font-size: 13px;">{{ item.projectCode }}</span>
                                             <span style="float: right;">{{ item.projectName }}</span>
                                         </el-option>
-                                    </el-option-group> -->
+                                    </el-option-group>
 
                                 </el-select>
                                 <template v-if="user.timeType.mainProjectState != 1">
@@ -1994,6 +1994,7 @@
                 for(let i in domains){
                     if(domains[i].projectId){
                         if(this.reportTimeType.multiWorktime == 1){
+                            console.log('进一')
                             for(let m in domains[i].worktimeList){
                                 if(domains[i].worktimeList[m].startTime && domains[i].worktimeList[m].endTime){
                                     hours += this.getHour(domains[i].worktimeList[m].startTime, domains[i].worktimeList[m].endTime)
@@ -2001,6 +2002,7 @@
                             }
                         }else{
                             if(this.user.timeType.type == 2){
+                            console.log('进2')
                                 if(domains[i].startTime && domains[i].endTime){
                                     // let selectionTime = this.getHourMinutes(domains[i].startTime, domains[i].endTime)
                                     let selectionTime = this.getHour(domains[i].startTime, domains[i].endTime)
@@ -2016,11 +2018,13 @@
                                     // hours += this.getHour(domains[i].startTime, domains[i].endTime)
                                 }
                             }else{
+                            console.log('进3')
                                 hours += domains[i].workingTime ? parseFloat(domains[i].workingTime) : 0
                             }
                         }
                     }
                 }
+                console.log(hours, '需要返回的数据')
                 return hours.toFixed(2)
             },
         },
@@ -2056,7 +2060,6 @@
                     that.dataLoading = that.$store.state.dataLoading
                 }, 1000)
             }
-            // this.getRecentlyProject() // 近期选择的项目
         },
         methods: {
             ...mapMutations(['upDataLoading']),
@@ -4472,6 +4475,7 @@
                             }
                         }
                         this.projectList = res.data;
+                        
                         // console.log("项目列表",this.projectList);
                     } else {
                         this.$message({
@@ -4500,6 +4504,7 @@
                             }
                         }
                         this.fillProjectList = res.data;
+                        this.getRecentlyProject() 
                     } else {
                         this.$message({
                             message: res.msg,
@@ -5730,6 +5735,7 @@
                                 // 关闭弹窗 并 清空
                                 this.selProjectList = []
                                 this.selCon = []
+                                this.getRecentlyProject()
                             } else {
                                 this.$message({
                                     message: res.msg,
@@ -6358,6 +6364,7 @@
                                 this.jsTime = 0
                                 this.getReportList();
                                 this.getDepartment();
+                                this.getRecentlyProject()
                             } else {
                                 this.$message({
                                     message: (this.isDraft==0?this.$t('message.SubmissionFailed') + ':':this.$t('message.Stagingfailed') + ':')+res.msg,

+ 17 - 0
fhKeeper/formulahousekeeper/timesheet_h5/src/views/edit/index.vue

@@ -384,6 +384,13 @@
             <!-- <van-search v-model="userName" placeholder="输入项目名称搜索" @clear="sea()" @blur="sea()" @search="sea()"></van-search> -->
             <van-search v-model="userName" placeholder="请输入项目名称/编号" @clear="sea()" @blur="sea()" @search="sea()" @input="sea()"/>
             <div style="minHeight:300px;">
+                <div class="ryuan" style="color: rgb(185 185 185);">近期选择项目</div>
+                <div v-for="(item, index) in integrationProjectList" :key="index" class="ryuan" @click="fZr(item, index)">
+                    <p>{{item.projectName}}</p>
+                    <p style="margin-top: 5px;color: #9697B2;">{{item.projectCode}}</p> 
+                </div>
+
+                <div class="ryuan" style="color: rgb(185 185 185);">全部项目</div>
                 <div v-for="(item, index) in projectss" :key="item.id" class="ryuan" @click="fZr(item, index)">
                     <p>{{item.projectName}}</p>
                     <p style="margin-top: 5px;color: #9697B2;">{{item.projectCode}}</p> 
@@ -398,6 +405,7 @@ import timetoolVue from '../timetool/timetool.vue';
     export default {
         data() {
             return {
+                integrationProjectList: [],
                 cardRefLoading: false,
                 today: '',
 
@@ -532,6 +540,14 @@ import timetoolVue from '../timetool/timetool.vue';
         },
 
         methods: {
+            getRecentlyProject() {
+                this.$axios.post('/project/nearProject',{})
+                .then(res => {
+                    if(res.code == 'ok'){
+                        this.integrationProjectList = res.data
+                    }
+                }).catch(err => {this.$toast.clear();this.cardRefLoading = false;})
+            },
             // 判断两个时间段是否重叠
             timeOverlap(idx, dateAr) {
                 let zhi = 0
@@ -675,6 +691,7 @@ import timetoolVue from '../timetool/timetool.vue';
                         this.project = res.data;
                         this.projectss = this.projectss.filter(p=>p.status == 1 || p.status == 4);
                         this.proads = res.data
+                        this.getRecentlyProject()
                     } else {
                         this.$toast.fail('获取失败:'+res.msg);
                     }

+ 26 - 3
fhKeeper/formulahousekeeper/timesheet_h5/src/views/edit/weekEdit.vue

@@ -347,9 +347,21 @@
         <van-popup v-model="showPickerUserddp" position="bottom" style="height: 80%">
             <van-search v-model="userName" placeholder="请输入项目名称/编号" @clear="sea()" @blur="sea()" @search="sea()" @input="sea()"/>
             <div style="minHeight:300px;">
-                <div v-for="(item, index) in projectss" :key="item.id" class="ryuan" @click="fZr(item, index)">
+                <!-- <div v-for="(item, index) in projectss" :key="item.id" class="ryuan" @click="fZr(item, index)">
                     <p>{{item.projectName}}</p> 
                     <p style="margin-top: 5px;color: #9697B2;">{{item.projectCode}}</p> 
+                </div> -->
+
+                <div class="ryuan" style="color: rgb(185 185 185);">近期选择项目</div>
+                <div v-for="(item, index) in integrationProjectList" :key="index" class="ryuan" @click="fZr(item, index)">
+                    <p>{{item.projectName}}</p>
+                    <p style="margin-top: 5px;color: #9697B2;">{{item.projectCode}}</p> 
+                </div>
+
+                <div class="ryuan" style="color: rgb(185 185 185);">全部项目</div>
+                <div v-for="(item, index) in projectss" :key="item.id" class="ryuan" @click="fZr(item, index)">
+                    <p>{{item.projectName}}</p>
+                    <p style="margin-top: 5px;color: #9697B2;">{{item.projectCode}}</p> 
                 </div>
             </div>
         </van-popup> 
@@ -448,11 +460,20 @@
                     searchText: '',
                     item: {},
                     list: [],
-                    searchList: []
-                }
+                    searchList: [],
+                },
+                integrationProjectList: []
             };
         },
         methods: {
+            getRecentlyProject() {
+                this.$axios.post('/project/nearProject',{})
+                .then(res => {
+                    if(res.code == 'ok'){
+                        this.integrationProjectList = res.data
+                    }
+                }).catch(err => {this.$toast.clear();this.cardRefLoading = false;})
+            },
             auditorClick(domainIndex,auditorIndex){
                 this.auditor.index = domainIndex
                 this.auditor.auditorIndex = auditorIndex
@@ -747,6 +768,8 @@
                         this.projectss = res.data;
                         this.projectss = this.projectss.filter(p=>p.status == 1);
                         this.proads = res.data
+
+                        this.getRecentlyProject()
                     } else {
                         this.$toast.fail('获取失败:'+res.msg);
                     }

+ 23 - 1
fhKeeper/formulahousekeeper/timesheet_h5/src/views/task/editask.vue

@@ -9,6 +9,13 @@
                         <van-search v-model.trim="select_project_show_searchText" placeholder="输入项目名称搜索" @input="onSearchProject"></van-search>
                         <div style="minHeight:300px;">
                             <van-radio-group v-model="taskform.projectId">
+                                <div class="ewProjectlist">近期选择项目</div>
+                                <van-radio v-for="(uitem, index) in integrationProjectList" :key="index" :name="uitem" style="padding:10px">
+                                    <span>{{uitem.projectName}}</span>
+                                </van-radio>
+                            </van-radio-group>
+                            <van-radio-group v-model="taskform.projectId">
+                                <div class="ewProjectlist">全部项目</div>
                                 <van-radio v-for="uitem in select_project_array" :key="uitem.id" :name="uitem" style="padding:10px">
                                     <span>{{uitem.projectName}}</span>
                                 </van-radio>
@@ -209,8 +216,9 @@ export default {
             select_project_array_tow: [], 
             select_grouping_array: [],
             select_list_array: [],
-            select_project_show_searchText: ''
+            select_project_show_searchText: '',
 
+            integrationProjectList: []
         }
     },
     mounted() {
@@ -293,11 +301,20 @@ export default {
                 if(res.code == "ok") {
                     this.select_project_array = res.data
                     this.select_project_array_tow = res.data
+                    this.getRecentlyProject()
                 } else {
                     this.$toast.fail('失败');
                 }
             }).catch(err=> {this.$toast.clear();console.log(err)});
         },
+        getRecentlyProject() {
+            this.$axios.post('/project/nearProject',{})
+            .then(res => {
+                if(res.code == 'ok'){
+                    this.integrationProjectList = res.data
+                }
+            }).catch(err => {this.$toast.clear();this.cardRefLoading = false;})
+        },
         getTaskGrouping() {
             this.$axios.post("/task-group/list", {projectId:this.taskform.projectId})
             .then(res => {
@@ -568,6 +585,11 @@ export default {
     display: inline-block;
     float: right;
 }
+.ewProjectlist {
+    padding: 10px 10px 10px 20px;
+    border-bottom: 1px solid #666;
+    color: #a5a5a5;
+}
 </style>
 <style>
     .editaskBox .van-radio__label {