From caba724b7025dd8801ed590bed3d8d56579d6a8c Mon Sep 17 00:00:00 2001 From: licp <lichunping@guanfang.com.cn> Date: 星期四, 18 四月 2024 17:14:45 +0800 Subject: [PATCH] 完成实验室资质页面编写 --- src/components/view/index-index.vue | 188 ++++++++++++++++++++++++++++++++++++----------- 1 files changed, 144 insertions(+), 44 deletions(-) diff --git a/src/components/view/index-index.vue b/src/components/view/index-index.vue index 4743c4e..63d5312 100644 --- a/src/components/view/index-index.vue +++ b/src/components/view/index-index.vue @@ -3,7 +3,7 @@ width: 100%; height: calc(100% - 50px); overflow-y: auto; - padding: 25px 0; + padding: 25px 0 10px; } .left-1 { @@ -52,7 +52,7 @@ } .right-1{ - padding: 14px 10px 4px; + padding: 10px 10px 4px; display: flex; align-items: center; justify-content: space-between; @@ -72,7 +72,7 @@ } .right-2{ - padding: 13px 20px; + padding: 13px 14px 8px; margin-bottom: 16px; } @@ -129,21 +129,19 @@ .list2-item{ line-height: 22px; display: flex; - margin-bottom: 13px; + margin-bottom: 12px; font-size: 14px; - } - .right-3{ } .right-3-tab{ display: flex; align-items: center; - margin-bottom: 16px; + margin-bottom: 12px; } .tab-item{ width: 50%; box-sizing: border-box; text-align: center; - padding: 16px 0; + padding: 14px 0; font-size: 20px; background: #F5F7FB; color: #333333; @@ -153,7 +151,10 @@ color: #FF3838; } .right-3-list{ - padding: 0 12px 16px; + padding: 0 12px 8px; + box-sizing: border-box; + height: 390px; + overflow-y: auto; } .list3-item{ padding: 6px 4px; @@ -175,12 +176,11 @@ font-size: 14px; } .left-2{ - display: flex; - align-items: flex-start; - margin-bottom: 16px; + display: grid; + grid-template-columns: repeat(7, 1fr); + height: 777px; } .left-2-item{ - width: 14.1%; border-right: 1px solid #F1F1F1; } .left-2-item:nth-last-child(1){ @@ -203,7 +203,7 @@ .left-item-body{ box-sizing: border-box; padding: 5px; - max-height: 711px; + height: 693px; overflow-y: auto; } .body-item{ @@ -211,6 +211,15 @@ border-radius: 16px; overflow: hidden; margin-bottom: 8px; + } + .body-item.color0{ + background: #70A090; + } + .body-item.color1{ + background: #EBD476; + } + .body-item.color2{ + background: #FF3838; } .body-item>div{ height: calc(100% - 16px); @@ -246,21 +255,17 @@ </div> </div> </div> - <div class="left-2 card"> - <div class="left-2-item" v-for="(item,index) in 7" :key="index"> + <div class="left-2 card" v-loading="workLoading"> + <div class="left-2-item" v-for="(item,index) in workDay" :key="index"> <div class="left-item-title"> - <span style="font-size: 18px;">25</span> - <span style="font-size: 14px;color: #999999;">鏄熸湡鍥�</span> + <span style="font-size: 18px;">{{ item }}</span> + <span style="font-size: 14px;color: #999999;">{{ weekdays[index] }}</span> </div> <div class="left-item-body"> - <div class="body-item" v-for="(m,i) in 8" :key="i"> + <div class="body-item" v-for="(m,i) in workList[index]" :key="i" :class="{color0:m.type==0,color1:m.type==1,color2:m.type==2}"> <div> - <span style="font-size: 12px;margin-bottom: 17px;">濮旀墭璁㈠崟WT20230101 -001妫�娴�</span> - <el-image style="height: 24px;width: 24px;border-radius: 50%;"> - <div slot="error" class="image-slot"> - <i class="el-icon-picture-outline"></i> - </div> - </el-image> + <span style="font-size: 12px;margin-bottom: 17px;">{{ m.text }}</span> + <span style="display: inline-block;height: 24px;width: 24px;border-radius: 50%;line-height: 24px;text-align: center;background: #C0C4CC;color: #fff;">{{ m.name.charAt(0) }}</span> </div> </div> </div> @@ -331,13 +336,14 @@ </template> </el-calendar> </div> - <div class="right-2-list" style="width: 49%;"> - <div class="list2-item" v-for="(m,i) in 5" :key="i"> - <span>14:00</span> - <el-tooltip style="margin-left: 10px;" effect="dark" content="鍙傚姞LIMS绯荤粺鍩硅浼氳锛屽苟绛句笂绾夸笂绾夸笂绾夸笂绾夸笂绾夸笂绾�" placement="top"> - <p class="ellipsis-multiline" >鍙傚姞LIMS绯荤粺鍩硅浼氳锛屽苟绛句笂绾夸笂绾夸笂绾夸笂绾夸笂绾夸笂绾�</p> + <div class="right-2-list" style="width: 49%;height: 286px;" v-loading="scheduleLoading"> + <div class="list2-item" v-for="(m,i) in listScheduleByMe" :key="i"> + <span>{{ m.scheduleTimes }}</span> + <el-tooltip style="margin-left: 10px;" effect="dark" :content="m.text" placement="top"> + <p class="ellipsis-multiline" >{{ m.text }}</p> </el-tooltip> </div> + <span style="color:rgb(153, 153, 153);font-size: 12px;text-align: center;margin: 120px 0;display: inline-block;width: 100%;" v-if="listScheduleByMe.length==0">鏆傛棤</span> </div> </div> </div> @@ -353,7 +359,7 @@ <p>璁惧鍒版湡鎻愰啋</p> </div> <div class="list3-item-info"> - <p>缂栧彿<span style="color:#3A7BFA;"> SB20240101-001 </span>鐨勮澶囧皢浜�2023-09-09 11:11:11杩囨湡</p> + <p style="width: 73%;-webkit-line-clamp: 1;" class="ellipsis-multiline">缂栧彿<span style="color:#3A7BFA;"> SB20240101-001 </span>鐨勮澶囧皢浜�2023-09-09 11:11:11杩囨湡</p> <p>2023-09-09 09:09:09</p> </div> </div> @@ -372,14 +378,14 @@ type="datetime" placeholder="閫夋嫨鏃ユ湡鏃堕棿" size="small" - style="width:100%"> + value-format="yyyy-MM-dd HH:mm:ss" style="width: 100%;" format="yyyy-MM-dd HH:mm:ss"> </el-date-picker> </div> </el-col> <el-col class="search_thing" :span="22"> <div class="search_label">鍐呭锛�</div> <div class="search_input"> - <el-input v-model="query.content" size="small" placeholder="璇疯緭鍏ュ唴瀹�"></el-input> + <el-input v-model="query.text" size="small" placeholder="璇疯緭鍏ュ唴瀹�"></el-input> </div> </el-col> </el-row> @@ -395,6 +401,9 @@ </template> <script> + import { + getYearAndMonthAndDays + } from '../../util/date' export default { data() { return { @@ -405,18 +414,31 @@ dialogVisible:false, query:{ time:'', - content:'' + text:'' }, - loading:false + loading:false, + workLoading:false, + workList:[], + workDay:[], + weekdays:[], + listScheduleByMe:[], + scheduleLoading:false, } }, + watch:{ + calendarValue(val){ + this.getScheduleByMe() + } + }, mounted() { this.user = JSON.parse(localStorage.getItem('user')) this.nowTime() - // this.getDataList() setInterval(() => { this.nowTime() }, 1000) + this.init(); + this.weekdays = this.getWeekdaysForNextWeek() + this.getScheduleByMe() }, methods: { nowTime() { @@ -444,11 +466,6 @@ m = "0" + m; } this.now = y + "-" + m + "-" + d + " " + h + ":" + min + ":" + s; - }, - getDataList() { - this.$axios.get(this.$api.dataReporting.getDataList).then(res => { - this.data = res.data - }) }, nextMonth(value) { let year = this.calendarValue.getFullYear();// 褰撳墠骞翠唤 @@ -510,7 +527,7 @@ this.dialogVisible = false; this.query = { time:'', - content:'' + text:'' } }, submit(){ @@ -518,11 +535,94 @@ this.$message.error('鏃堕棿鏈~鍐�') return } - if(!this.query.content){ + if(!this.query.text){ this.$message.error('鍐呭鏈~鍐�') return } - } + this.loading = true; + this.$axios.post(this.$api.report.addSchedule, this.query).then(res => { + this.loading = false; + if (res.code == 201) { + this.$message.error('鎿嶄綔澶辫触') + return + } + this.$message.success('淇濆瓨鎴愬姛') + this.handleCancel() + this.getScheduleByMe() + }) + }, + init(){ + this.workLoading = true; + this.$axios.get(this.$api.report.calendarWorkByWeek).then(res => { + if (res.code == 201) return + this.workLoading = false; + this.workList = []; + for(let i=0;i<7;i++){ + this.workList.push(res.data[`work${i}`]) + } + this.workDay = res.data.weekDays.map(m=>{ + return m[2] + }) + }) + }, + getWeekdaysForNextWeek() { + let weekdays = []; + for (let i = 0; i < 7; i++) { + let date = new Date(); + date.setDate(date.getDate() + i); // 浠婂ぉ涔嬪悗鐨勬棩瀛� + let day = date.getDay(); // 0-6 浠h〃鏄熸湡鏃ュ埌鏄熸湡鍏� + weekdays.push(day); + } + weekdays = weekdays.map(m=>{ + let day ='' + switch (m) { + case 0: + day = '鏄熸湡澶�' + break; + case 1: + day = '鏄熸湡涓�' + break; + case 2: + day = '鏄熸湡浜�' + break; + case 3: + day = '鏄熸湡涓�' + break; + case 4: + day = '鏄熸湡鍥�' + break; + case 5: + day = '鏄熸湡浜�' + break; + case 6: + day = '鏄熸湡鍏�' + break; + } + return day + }) + return weekdays; + }, + getScheduleByMe(){ + this.scheduleLoading = true; + this.$axios.post(this.$api.report.ScheduleByMe, { + date:getYearAndMonthAndDays(this.calendarValue) + }).then(res => { + this.loading = false; + this.scheduleLoading = false; + if (res.code == 201) { + return + } + this.listScheduleByMe = res.data.map(m=>{ + if(m.scheduleTime){ + let time = m.scheduleTime.split(' ')[1].split(':') + m.scheduleTimes = time[0] + ':' + time[1] + }else{ + m.scheduleTimes = '' + } + return m + }) + }) + }, } } </script> -- Gitblit v1.9.3