Forráskód Böngészése

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

Min 1 éve
szülő
commit
2bd13d3d96

+ 71 - 13
fhKeeper/formulahousekeeper/timesheet_h5/src/views/edit/index.vue

@@ -221,9 +221,32 @@
                     <van-field :value="item.weiduName" v-if="item.projectId && user.timeType.customDegreeActive == 1"
                         readonly name="id" clickable :label="user.timeType.customDegreeName" placeholder="请选择"
                         @click="clickPickers(index, item)" />
-                    <van-popup v-model="item.showPickDegree" position="bottom">
+
+                    <!-- <van-popup v-model="item.showPickDegree" position="bottom">
                         <van-picker show-toolbar :columns="item.wuduList" value-key="name" @confirm="choseProjects"
                             @cancel="item.showPickDegree = false; $forceUpdate()" />
+                    </van-popup> -->
+
+                    <van-popup v-model="item.showPickDegree" position="bottom">
+                        <div class="chooseSomeone">
+                            <div class="chooseSomeoneFlex1">
+                                <!-- 复选 -->
+                                <van-radio-group v-model="item.radioPickDegree" v-if="!user.timeType.customDegreeMultiple">
+                                    <van-radio v-for="uitem in item.wuduList" :key="uitem.id" :name="uitem" style="padding:10px">
+                                        {{ uitem.name ? uitem.name : '' }}
+                                    </van-radio>
+                                </van-radio-group>
+                                <!-- 多选 -->
+                                <van-checkbox-group v-model="item.radioPickDegree" v-else>
+                                    <van-checkbox v-for="uitem in item.wuduList" :key="uitem.id" :name="uitem" style="padding:10px">
+                                        {{ uitem.name ? uitem.name : '' }}
+                                    </van-checkbox>
+                                </van-checkbox-group>
+                            </div>
+                            <van-button @click="choseProjects(item.radioPickDegree)">
+                                确定
+                            </van-button>
+                        </div>
                     </van-popup>
 
                     <!-- 自定义数值 -->
@@ -1500,14 +1523,23 @@ export default {
                                         tname = filterList[0].taskName;
                                     }
                                 }
-                                let mmm = list[i].degreeId
+                                let mmm = !t.customDegreeMultiple ? list[i].degreeId : list[i].multiDegrIdList
                                 let sss = list[i].degreeList
+                                let radioPickDegree = ''
                                 let wuduName = ''
-                                for (var s in sss) {
-                                    if (sss[s].id == mmm) {
-                                        wuduName = sss[s].name
+                                if(!t.customDegreeMultiple) {
+                                    for (var s in sss) {
+                                        if (sss[s].id == mmm) {
+                                            wuduName = sss[s].name
+                                        }
                                     }
+                                    radioPickDegree = sss.filter(s => s.id == mmm)[0]
+                                } else {
+                                    let arr = sss.filter(s => mmm.includes(s.id)).map(s => s.name);
+                                    radioPickDegree = sss.filter(s => mmm.includes(s.id))
+                                    wuduName = arr.join(',')
                                 }
+                                
                                 let serverPicArray = [];
                                 // console.log('picArray=='+list[i].picStr);
                                 if (list[i].picStr != null && list[i].picStr != '@') {
@@ -1563,7 +1595,8 @@ export default {
                                     worktimeList: list[i].worktimeList,
                                     wuduList: list[i].degreeList,
                                     weiduName: wuduName,
-                                    degreeId: list[i].degreeId,
+                                    degreeId: !t.customDegreeMultiple ? list[i].degreeId : list[i].multiDegrIdList,
+                                    radioPickDegree: radioPickDegree,
                                     subProjectId: list[i].subProjectId,
                                     subProjectName: subProjectName,
                                     subProjectList: list[i].subProjectList,
@@ -1802,11 +1835,18 @@ export default {
             }
         },
         choseProjects(value, index) {
-            // console.log(value)
+            const { timeType } = this.user
+            console.log(value, timeType)
             if (value) {
-                this.form.domains[this.clickIndex].weiduName = value.name;
-                this.form.domains[this.clickIndex].degreeId = value.id;
-
+                if(!timeType.customDegreeMultiple) { // 单选
+                    this.form.domains[this.clickIndex].weiduName = value.name;
+                    this.form.domains[this.clickIndex].degreeId = value.id;
+                }
+                
+                if(timeType.customDegreeMultiple) { // 多选
+                    this.form.domains[this.clickIndex].weiduName = value.map(item => item.name).join(',');
+                    this.form.domains[this.clickIndex].degreeId = value.map(item => item.id).join(',');
+                }
                 this.$forceUpdate();
             }
             this.form.domains[this.clickIndex].showPickDegree = false;
@@ -2224,16 +2264,22 @@ export default {
 
 
                 if (this.user.timeType.customDegreeActive == 1) {
+                    let customDegreeMultiple = this.user.timeType.customDegreeMultiple
                     if (this.form.domains[i].degreeId) {
-                        formData.append("degreeId", this.form.domains[i].degreeId);
+                        // formData.append("degreeId", this.form.domains[i].degreeId);
+                        if(!customDegreeMultiple) { // 单选
+                            formData.append("degreeId", this.form.domains[i].degreeId);
+                        } else {
+                            let newDegreeId = this.form.domains[i].degreeId.split(',')
+                            formData.append("multiDegrId", JSON.stringify(newDegreeId).replace(/,/g, '@'))
+                        }
                     } else {
                         if (this.user.timeType.customDegreeStatus && this.form.domains[i].wuduList.length) {
                             this.$toast.fail('请选择' + this.user.timeType.customDegreeName)
                             return
                         } else {
-                            formData.append("degreeId", -1);
+                            formData.append("degreeId", !customDegreeMultiple ? -1 : "[]");
                         }
-
                     }
                 } else {
                     formData.append("degreeId", -1);
@@ -2563,6 +2609,18 @@ export default {
 </script>
 
 <style lang="less" scope>
+.chooseSomeone {
+    height: 80vh;
+    display: flex;
+    flex-direction: column;
+    .chooseSomeoneFlex1 {
+        flex: 1;
+        overflow: auto;
+    }
+    .chooseSomeoneBtn {
+        width:100%;
+    }
+}
 .my-swipe .van-swipe-item {
     color: #fff;
     font-size: 20px;