Quellcode durchsuchen

调整移动端填写日报选择任务分组、(pc、移动端)加上任务是否必填

Lijy vor 1 Jahr
Ursprung
Commit
db4df36d25

+ 8 - 0
fhKeeper/formulahousekeeper/timesheet/src/views/settings/timetype.vue

@@ -422,6 +422,11 @@
                 </div>
             </el-col>
         </el-row>
+        <div class="yanjiu" v-if="user.company.packageProject==1">
+            <span style="margin:0px 0 10px 10px;color:#666;">任务是否必填</span>
+            <el-switch style="margin:0px 0 10px 81px;" v-model="timeType.taskRequired" active-color="#20a0ff"></el-switch>
+            <span style="margin:0px 0 10px 10px;color:#999;">{{ $t('parametermandatory') }}</span>
+        </div>
         <div class="yanjiu">
             <span style="margin-left:10px;color:#666;">{{user.companyId==781?$t('other.specificcontentandresults'):$t('other.workMatters')}}</span>
             <el-switch :style="user.companyId==781?'margin-left:66px;':'margin-left:108px;'" v-model="timeType.workContentState" active-color="#20a0ff" > </el-switch>
@@ -1333,6 +1338,8 @@
 
                         param.workContentState = param.workContentState ? 1 : 0
 
+                        param.taskRequired = param.taskRequired ? 1 : 0
+
                         var oneseet = 0
                         var twoset = 0
                         var threeset = 0
@@ -1398,6 +1405,7 @@
                             this.timeType.stopReport = this.timeType.stopReport? true: false;
                             this.timeType.notAllowedOnNonWorkday = this.timeType.notAllowedOnNonWorkday? true: false;
                             this.timeType.notAllowedExpiredProject = this.timeType.notAllowedExpiredProject? true: false;
+                            this.timeType.taskRequired = this.timeType.taskRequired? true: false;
                             // this.timeType.alertNonWorkday = this.timeType.alertNonWorkday ? true : false
 
                             if(this.timeType.alertNonWorkday) {

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

@@ -680,6 +680,10 @@
                                 <span style="color:#FF0000;">*</span>
                                 <span >任务</span>
                             </template>
+                            <template slot="label" v-if="user.companyId != 3092 && user.timeType.taskRequired == 1">
+                                <span style="color:#FF0000;">*</span>
+                                <span >任务/里程碑</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)">
                                 <el-option v-for="item in domain.taskList" :key="item.taskId" :label="item.taskName" :value="item.taskId"></el-option>
@@ -7406,6 +7410,18 @@
                             }
                         }
                         for(var i in this.workForm.domains) {
+                            // 检查任务/里程碑是否为必填
+                            let taskRequired = this.user.timeType.taskRequired
+                            if(taskRequired == 1) {
+                                if(!this.workForm.domains[i].taskId) {
+                                    this.$message({
+                                        message: `【${this.workForm.domains[i].projectName}】请选择 任务/里程碑`,
+                                        type: "error"
+                                    });
+                                    return
+                                }
+                            }
+
                             if(this.user.timeType.reportAuditType == 3){
                                 let audItem = {}
                                 let auditRule = ''

+ 30 - 4
fhKeeper/formulahousekeeper/timesheet_h5/src/views/edit/index.vue

@@ -99,10 +99,19 @@
                         clickable :rules="[{ required: user.companyId == 3092 ? true : false, message: '请选择任务分组' }]"
                         :value="item.groupName" label="任务分组" placeholder="请选择任务分组"
                         @click="clickPickTaskGroup(index, item)" />
-                    <van-popup v-model="item.showPickerTaskGroup" position="bottom">
+                    <!-- <van-popup v-model="item.showPickerTaskGroup" position="bottom">
                         <van-picker show-toolbar :columns="item.taskGroups" value-key="name" @confirm="choseTaskGroup"
                             @cancel="item.showPickerTaskGroup = false; $forceUpdate();" />
+                    </van-popup> -->
+
+                    <van-popup v-model="item.showPickerTaskGroup" position="bottom" :style="{ height: '80vh' }" @click-overlay="item.showPickerTaskGroup = false;$forceUpdate();">
+                        <div class="groupingSelection">
+                            <div v-for="(taskItem, taskIndex) in item.taskGroups" :key="taskIndex" class="groupingSelectionItem" @click="choseTaskGroup(taskItem, taskIndex)">
+                                {{ taskItem.name }}
+                            </div>
+                        </div>
                     </van-popup>
+
                     <!--工作职责-->
                     <van-field readonly name="extraField2" v-if="user.companyId == yuzhongCompId" clickable
                         :value="item.extraField2Name" label="工作职责" placeholder="请选择工作职责"
@@ -2089,9 +2098,8 @@ export default {
                             this.submitReportSon()
                         }
                     }
-                }).catch(() => {
-                    //验证失败
-                    console.log('验证失败');
+                }).catch((err) => {
+                    console.log('验证失败', err);
                     return
                 })
 
@@ -2234,6 +2242,15 @@ export default {
             }
             //填字段
             for (var i in this.form.domains) {
+                // 检查任务/里程碑是否为必填
+                let taskRequired = this.user.timeType.taskRequired
+                if(taskRequired == 1) {
+                    if(!this.form.domains[i].taskId) {
+                        this.$toast.fail(`【${this.form.domains[i].projectName}】请选择 任务/里程碑`);
+                        return
+                    }
+                }
+
                 if (this.user.timeType.reportAuditType == 3) {
                     let audItem = {}
                     let auditRule = ''
@@ -2609,6 +2626,15 @@ export default {
 </script>
 
 <style lang="less" scope>
+.groupingSelection {
+    height: 100%;
+    overflow-y: auto;
+    padding: 10px 0;
+    .groupingSelectionItem { 
+        padding: 15px 15px;
+        border-bottom: 1px solid #c2c2c2;
+    }
+}
 .chooseSomeone {
     height: 80vh;
     display: flex;

+ 17 - 1
fhKeeper/formulahousekeeper/timesheet_h5/src/views/edit/weekEdit.vue

@@ -81,9 +81,16 @@
                         <van-field  readonly  name="groupId" v-if="user.company.packageProject==1&&item.taskGroups != null && item.taskGroups.length > 0" clickable 
                             :value="item.groupName" :label="user.timeType.enableNewWeeklyfill == 1 ? '分组' : '任务分组'" :placeholder="user.timeType.enableNewWeeklyfill == 1 ? '请选择分组' : '请选择任务分组'" 
                         @click="clickPickTaskGroup(index, item)" :disabled="item.state<=1" />
-                        <van-popup v-model="item.showPickerTaskGroup" position="bottom">
+                        <!-- <van-popup v-model="item.showPickerTaskGroup" position="bottom">
                             <van-picker show-toolbar :columns="item.taskGroups" value-key="name" @confirm="choseTaskGroup" 
                                 @cancel="item.showPickerTaskGroup = false;$forceUpdate();" />
+                        </van-popup> -->
+                        <van-popup v-model="item.showPickerTaskGroup" position="bottom" :style="{ height: '80vh' }" @click-overlay="item.showPickerTaskGroup = false;$forceUpdate();">
+                            <div class="groupingSelection">
+                                <div v-for="(taskItem, taskIndex) in item.taskGroups" :key="taskIndex" class="groupingSelectionItem" @click="choseTaskGroup(taskItem, taskIndex)">
+                                    {{ taskItem.name }}
+                                </div>
+                            </div>
                         </van-popup>
                         <!--任务阶段 -->
                         <van-field  readonly  name="stage" v-if="user.company.packageProject==1&&item.stages != null && item.stages.length > 0 && user.timeType.enableNewWeeklyfill != 1" clickable 
@@ -2781,6 +2788,15 @@
 </script>
 
 <style lang="less" scope>
+.groupingSelection {
+    height: 100%;
+    overflow-y: auto;
+    padding: 10px 0;
+    .groupingSelectionItem { 
+        padding: 15px 15px;
+        border-bottom: 1px solid #c2c2c2;
+    }
+}
 .chooseSomeone {
     height: 80vh;
     display: flex;