From feaf0a9778879ef211c5587a513ba4cbdabb52d0 Mon Sep 17 00:00:00 2001 From: ZZJ <10913410+zzj2100@user.noreply.gitee.com> Date: 星期四, 23 六月 2022 17:42:58 +0800 Subject: [PATCH] bug修复 --- src/pages/vindicate/views/systemClean.vue | 446 ++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 324 insertions(+), 122 deletions(-) diff --git a/src/pages/vindicate/views/systemClean.vue b/src/pages/vindicate/views/systemClean.vue index 923b54c..e337b66 100644 --- a/src/pages/vindicate/views/systemClean.vue +++ b/src/pages/vindicate/views/systemClean.vue @@ -1,12 +1,46 @@ <template> <div class="clear" v-loading="loading" :element-loading-text="loadingText"> - <div class="head"> + <div class="clear-list"> + <div class="cap"> + <div class="cap-bar"> + <!-- <div class="inner-bar" :style="`width: ${100-percent}%;`"></div> --> + <el-progress + v-if="percent > 25" + type="circle" + :percentage="100 - percent" + stroke-width="10" + ></el-progress> + <el-progress + v-if="percent <= 25 && percent > 0" + type="circle" + :percentage="100 - percent" + status="warning" + stroke-width="10" + ></el-progress> + <el-progress + v-if="percent == 0" + type="circle" + :percentage="100 - percent" + status="exception" + stroke-width="10" + ></el-progress> + </div> + <div class="cap-text"> + <span class="useable">纾佺洏鍙敤: {{ percent }}%</span> + </div> + </div> + + <el-button type="primary" @click="deleteData">鏁版嵁娓呯悊</el-button> + </div> + + <div class="clear-list"> <span class="t">璇烽�夋嫨瑕佹竻鐞嗙殑鏁版嵁鑼冨洿</span> <el-date-picker + popper-class="clean-time-picker" style="width: 100%" v-model="dataRange" - value-format="yyyy-MM-dd" - type="daterange" + value-format="yyyy-MM-dd" + type="daterange" align="right" size="small" range-separator="鑷�" @@ -16,26 +50,11 @@ ></el-date-picker> </div> - <div class="desc"> - <div class="disk-img"> - <span class="icon iconfont">{{"\ue8b1"}}</span> - - </div> - <div class="cap"> - <div class="cap-text"> - <span>纾佺洏鍙敤: {{ percent }}%</span> - </div> - <div class="cap-bar"> - <div class="inner-bar" :style="`width: ${100-percent}%;`"></div> - </div> - </div> - - <el-button type="primary" @click="deleteData">鏁版嵁娓呯悊</el-button> - - <div class="warm"> - <i class="iconfont icontishi-zhuyi"></i> - <span class="text">璇锋敞鎰忥紝鎸変互涓婃棩鏈熻寖鍥村垹闄ょ殑鏁版嵁涓嶅彲鎭㈠锛岀珛鍗崇敓鏁堬紝璇疯皑鎱庢搷浣�!</span> - </div> + <div class="warm"> + <i class="iconfont icontishi-zhuyi"></i> + <span class="text" + >璇锋敞鎰忥紝鎸変互涓婃棩鏈熻寖鍥村垹闄ょ殑鏁版嵁涓嶅彲鎭㈠锛岀珛鍗崇敓鏁堬紝璇疯皑鎱庢搷浣�!</span + > </div> </div> </template> @@ -43,6 +62,25 @@ <script> import { deleteData } from "@/api/system"; export default { + created() { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); + var year = end.getFullYear(); + var month = end.getMonth() + 1; + var day = end.getDate(); + month = month < 10 ? "0" + month : month; + day = day < 10 ? "0" + day : day; + const endTime = year + "-" + month + "-" + day; + + var year2 = start.getFullYear(); + var month2 = start.getMonth() + 1; + var day2 = start.getDate(); + month2 = month2 < 10 ? "0" + month2 : month2; + day2 = day2 < 10 ? "0" + day2 : day2; + const startTime = year2 + "-" + month2 + "-" + day2; + this.dataRange = [startTime, endTime]; + }, data() { return { pickerOptions: { @@ -51,51 +89,98 @@ day.setTime(day.getTime() - 24 * 60 * 60 * 1000); return time.getTime() > day; }, + shortcuts: [ + { + text: "鏈�杩戜竴鍛�", + onClick(picker) { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); + picker.$emit("pick", [start, end]); + }, + }, + { + text: "鏈�杩戜竴涓湀", + onClick(picker) { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); + picker.$emit("pick", [start, end]); + }, + }, + { + text: "鏈�杩戜笁涓湀", + onClick(picker) { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); + picker.$emit("pick", [start, end]); + }, + }, + ], }, loading: false, - loadingText: '', - dataRange: [] + loadingText: "", + dataRange: [], }; }, - props:["free","full"], + props: ["free", "full"], computed: { - percent(){ - return Math.round(this.free/this.full *100) - } + percent() { + return Math.round((this.free / this.full) * 100); + }, }, methods: { deleteData() { - if (this.dataRange.length==0) { - this.$message.warning("璇峰厛閫夋嫨鏃ユ湡") - return + if (!this.dataRange || this.dataRange.length == 0) { + this.$message.warning("璇峰厛閫夋嫨鏃ユ湡"); + return; } - const [showStartTime, showEndTime] = this.dataRange - this.$confirm(`${showStartTime} 鑷� ${showEndTime} 浜х敓鐨勫叏閮ㄦ暟鎹皢琚垹闄わ紝姝ゆ搷浣滅珛鍗崇敓鏁堬紝涓嶅彲鎭㈠锛屾槸鍚﹀垹闄わ紵`, "鎻愮ず",{ - type:"warning", - cancelButtonClass: "comfirm-class-cancle", - confirmButtonClass: "comfirm-class-sure", - } - ) + const [showStartTime, showEndTime] = this.dataRange; + const h = this.$createElement; + const icon = this.$msgbox({ + title: "", + message: h( + "div", + { + style: + "display: flex; flex-direction: column; justify-content: center; align-items: center;", + }, + [ + h("span", { class: "icon iconfont warn-icon" }, "\ue71c"), + h("span", { class: "warn-title" }, "鎻愮ず "), + h( + "span", + { class: "warn-dec" }, + `${showStartTime} 鑷� ${showEndTime} 浜х敓鐨勫叏閮ㄦ暟鎹皢琚垹闄わ紝姝ゆ搷浣滅珛鍗崇敓鏁堬紝涓嶅彲鎭㈠锛屾槸鍚﹀垹闄わ紵` + ), + ] + ), + showCancelButton: true, + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + }) + .then(() => { - this.loading = true - this.loadingText = "姝e湪鍒犻櫎鏁版嵁锛岃绋嶅�欙紒" + this.loading = true; + this.loadingText = "姝e湪鍒犻櫎鏁版嵁锛岃绋嶅�欙紒"; deleteData({ startTime: showStartTime, endTime: showEndTime, }) .then((resp) => { if (resp.success) { - this.loading = false + this.loading = false; this.$message.success(`娓呯悊鎴愬姛锛屽凡娓呯悊 ${resp.data} 鏉℃暟鎹甡); - this.$emit("refreshPercent") + this.$emit("refreshPercent"); } }) .catch((err) => { - this.$message.error("鍒犻櫎澶辫触锛�"+err.msg); - this.loading = false + this.$message.error("鍒犻櫎澶辫触锛�" + err.msg); + this.loading = false; }); }) - .catch(() => { }); + .catch(() => {}); }, }, }; @@ -103,95 +188,212 @@ <style lang="scss"> .all { width: 100%; + background-color: #fbfaff; } +.container { + background-color: #fbfaff; +} + .clear { - margin: 0 auto; - padding: 20px; - .head { - height: 50px; - background-color: rgba(248, 248, 248, 1); - border-radius: 10px; + position: relative; + padding: 10px; + border-top: 4px solid #f2f2f7; + border-left: 4px solid #f2f2f7; + + .clear-list { + background: #f2f2f7; + border-radius: 8px; + height: 114px; display: flex; align-items: center; - justify-content: space-around; - box-sizing: border-box; - padding: 0 20px; - width: 560px; - margin: 0 auto; - .t { - font-size: 14px; - min-width: 175px; - text-align: left; + justify-content: space-between; + padding: 0 45px; + color: #333333; + font-weight: bold; + font-size: 16px; + + &:first-child { + border-bottom: 1px solid #e1e0e6; } - .el-range-editor--small.el-input__inner { - border: none; - } - .el-range-editor--small .el-range-separator { - line-height: 26px; - } - } - .desc { - margin-top: 50px; - .disk-img { - height: 100px; - width: 100px; - margin: 0 auto; - margin-bottom: 10px; - // background-color: aquamarine; - .iconfont{ - font-size: 82px; - color: #3a8120; - } - } .cap { - height: 50px; - margin: 0 auto; - width: 160px; - margin-bottom: 20px; - .cap-bar { - height: 10px; - background: rgb(239, 240, 236); - // - margin: 0 auto; - border-radius: 2px; - - .inner-bar { - background: #3a8120; - height: 100%; - border-radius: 2px; - } - } - .cap-text { - text-align: right; - height: 25px; - text-align: right; - line-height: 25px; - font-size: 12px; - } - } - .el-button--primary { - width: 200px; - font-size: 15px; - } - .warm { - line-height: 30px; - height: 30px; - margin-top: 10px; display: flex; align-items: center; - justify-content: center; - .iconfont { - font-size: 16px; - color: #e99038; - margin-right: 5px; + .cap-bar { + width: 70px; + height: 70px; + div { + width: 100%; + height: 100%; + .el-progress-circle { + width: 100% !important; + height: 100% !important; + } + &::after { + position: relative; + top: -77%; + background-image: url(/images/vindicate/鍐呭瓨.png); + width: 38px; + height: 35px; + background-size: cover; + display: inline-block; + margin: auto; + content: ""; + } + } + svg { + width: 70px; + height: 70px; + } + .el-progress__text { + display: none !important; + } } - .text { - color: rgb(175, 175, 175); - font-size: 14px; + + .cap-text { + color: #333333; + font-weight: bold; + font-size: 16px; + .useable { + margin-left: 20px; + } } } + .el-button.el-button--primary { + width: 150px !important; + height: 30px !important; + line-height: 7px !important; + font-size: 14px !important; + color: #fff !important; + background: var(--colorCard) !important; + border-radius: 25px !important; + border: none !important; + } + + .el-date-editor.el-range-editor { + height: 48px; + width: 361px !important; + border-radius: 8px; + .el-input__icon.el-range__icon.el-icon-date { + margin: 0 15px; + &::before { + line-height: 40px; + font-size: 20px; + color: #333; + } + } + .el-range-separator { + line-height: 41px; + } + input { + width: 127px; + height: 32px; + font-size: 12px; + background: #f2f2f7; + border-radius: 20px; + } + } + + .t { + height: 22px; + width: 242px; + } + } + + .warm { + position: absolute; + bottom: 60px; + left: 50%; + width: 420px; + transform: translateX(-50%); + .icontishi-zhuyi { + margin-right: 10px; + color: red; + } + } +} +</style> + +<style scoped lang="scss"> +.warn-icon { + color: var(--colorCard); + font-size: 40px; + margin-top: 11px; +} +.warn-title { + font-weight: bold; + font-size: 16px; + margin: 6px; + line-height: 22px; +} +.warn-dec { + font-weight: bold; + font-size: 14px; + color: #828282; + line-height: 20px; +} +.el-message-box__headerbtn { + top: 12px; +} +.el-message-box__headerbtn .el-message-box__close { + color: #333333; + font-weight: bold; +} +.el-message-box__btns { + display: flex; + justify-content: center; + margin: 20px; + .el-button:focus, + .el-button:hover { + background-color: none; + border: none; + } + button { + width: 175px; + height: 40px; + border-radius: 25px; + span { + font-size: 16px; + font-weight: 700; + } + &:hover { + border: 1px solid var(--colorCard) !important; + } + } + button:first-child { + background-color: #e0e0e0; + span { + color: #333333; + } + } + button:last-child { + background-color: var(--colorCard) !important; + border: 1px solid var(--colorCard) !important; + span { + color: #fff; + } + } +} +</style> + +<style lang="scss"> +.clean-time-picker { + top: 208px !important; + left: 343px !important; + width: 624px !important; + + .el-picker-panel__sidebar { + background: #eef5ff; + button { + margin: 10px 0; + } + } + + tbody { + tr:first-child { + background: #eef5ff; + } } } </style> -- Gitblit v1.8.0