From 0d3db253cad1fb49c4fae9b9a537c8c318c7172f Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期三, 29 十一月 2023 10:23:59 +0800 Subject: [PATCH] 优化应用中心卸载 --- src/pages/syslog/views/operationLog.vue | 366 ++++++++++++++++++++++++++++++--------------------- 1 files changed, 215 insertions(+), 151 deletions(-) diff --git a/src/pages/syslog/views/operationLog.vue b/src/pages/syslog/views/operationLog.vue index 523cf69..639d73e 100644 --- a/src/pages/syslog/views/operationLog.vue +++ b/src/pages/syslog/views/operationLog.vue @@ -23,12 +23,20 @@ v-model="fuzzySearch" size="small" class="input-with-select" + @keyup.enter.native="getOperationLog(1)" > - <el-button + <span class="icon iconfont icon_clear" @click="clearSearch" slot="append" v-if="fuzzySearch"> +  + </span> + <span class="icon iconfont icon_search" @click="getOperationLog(1)" slot="append"> +  + </span> + + <!-- <el-button slot="append" icon="el-icon-search" - @click="getOperationLog" - ></el-button> + @click="getOperationLog(1)" + ></el-button> --> </el-input> </div> </div> @@ -36,20 +44,9 @@ <div class="bar"> <div class="name">鎿嶄綔妯″潡锛�</div> - <el-select - v-model="curModule" - placeholder="璇烽�夋嫨" - size="small" - @change="moduleChange" - > + <el-select v-model="curModule" placeholder="璇烽�夋嫨" size="small" @change="moduleChange" value-key="proc_name"> <el-option label="鍏ㄩ儴" :value="''"> </el-option> - <el-option - v-for="item in moduleOptions" - :key="item.proc_name" - :label="item.proc_name" - :value="item.proc_name" - > - </el-option> + <el-option v-for="(item, i) in moduleOptions" :key="i" :label="item.name_zh" :value="item"> </el-option> </el-select> </div> <div class="bar"> @@ -59,33 +56,16 @@ placeholder="璇烽�夋嫨" size="small" :disabled="curModule == ''" - @change="getOperationLog" + @change="getOperationLog(1)" > <!-- :disabled="gongnengOptions.length==0" --> - <el-option - v-for="item in gongnengOptions" - :key="item.name" - :label="item.name" - :value="item.name" - > - </el-option> + <el-option v-for="(item, i) in gongnengOptions" :key="i" :label="item.name" :value="item.name"> </el-option> </el-select> </div> <div class="bar"> <div class="name">鎿嶄綔缁撴灉锛�</div> - <el-select - v-model="result" - placeholder="璇烽�夋嫨" - size="small" - @change="getOperationLog" - > - <el-option - v-for="item in resultOptions" - :key="item.value" - :label="item.label" - :value="item.value" - > - </el-option> + <el-select v-model="result" placeholder="璇烽�夋嫨" size="small" @change="getOperationLog(1)"> + <el-option v-for="(item, i) in resultOptions" :key="i" :label="item.label" :value="item.value"> </el-option> </el-select> </div> </div> @@ -97,11 +77,13 @@ highlight-current-row :data="tableData" :header-cell-style="{ background: '#f8f8f8', color: '#222222' }" - @selection-change="handleSelectionChange" style="width: 100%" + border > - <el-table-column :align="'center'" label="搴忓彿" type="index" width="50"> - </el-table-column> + <template slot="empty"> + <img :src="png" class="empty_img" alt="" /> + </template> + <el-table-column :align="'center'" label="搴忓彿" type="index" width="50"> </el-table-column> <el-table-column :align="'center'" sortable @@ -109,41 +91,12 @@ prop="add_time" label="鎿嶄綔鏃堕棿" ></el-table-column> - <el-table-column - sortable - :align="'center'" - prop="userName" - label="鐢ㄦ埛鍚�" - ></el-table-column> - <el-table-column - :align="'center'" - sortable - prop="module" - label="鎿嶄綔妯″潡" - ></el-table-column> - <el-table-column - :align="'center'" - prop="procName" - label="鎿嶄綔鍔熻兘" - ></el-table-column> - <el-table-column - :align="'center'" - sortable - prop="result" - label="鎿嶄綔缁撴灉" - ></el-table-column> - <el-table-column - :align="'center'" - prop="msg" - min-width="100px" - label="璇︾粏淇℃伅" - ></el-table-column> - <el-table-column - :align="'center'" - sortable - prop="ip" - label="IP" - ></el-table-column> + <el-table-column sortable :align="'center'" prop="userName" label="鐢ㄦ埛鍚�"></el-table-column> + <el-table-column :align="'center'" sortable prop="module" label="鎿嶄綔妯″潡"></el-table-column> + <el-table-column :align="'center'" prop="function" label="鎿嶄綔鍔熻兘"></el-table-column> + <el-table-column :align="'center'" sortable prop="result" label="鎿嶄綔缁撴灉"></el-table-column> + <el-table-column :align="'center'" prop="msg" min-width="100px" label="璇︾粏淇℃伅"></el-table-column> + <el-table-column :align="'center'" sortable prop="ip" label="IP"></el-table-column> </el-table> </div> @@ -161,13 +114,15 @@ </template> <script> -import { deleteDate } from "@/api/system"; -import { pad0 } from "@/api/utils"; -import { queryOperationLog, getOperations, getModules } from "@/api/log"; +import { deleteDate } from "@/api/system" +import { pad0 } from "@/api/utils" +import { queryOperationLog, getOperations, getModules } from "@/api/log" export default { + name: "operationLog", data() { return { + png: require("../../../../public/images/syslog/娌℃暟鎹�.png"), loading: false, loadingText: "", input3: "", @@ -178,16 +133,16 @@ resultOptions: [ { value: "", - label: "鍏ㄩ儴", + label: "鍏ㄩ儴" }, { value: "鎴愬姛", - label: "鎴愬姛", + label: "鎴愬姛" }, { value: "澶辫触", - label: "澶辫触", - }, + label: "澶辫触" + } ], value: "", page: 1, @@ -199,111 +154,127 @@ timeStart: "", timeEnd: "", fuzzySearch: "", - total: 0, - }; + total: 0 + } }, mounted() { - this.getTimeRange(24 * 60 * 60 * 1000); - this.getOperationLog(); - this.getOptions(); + this.getTimeRange() + this.getOperationLog() + this.getOptions() }, methods: { handleSizeChange(val) { - this.pageSize = val; - this.getOperationLog(); + this.pageSize = val + this.getOperationLog() }, handleCurrentChange(val) { - this.page = val; - this.getOperationLog(); + this.page = val + this.getOperationLog() }, moduleChange(val) { - this.getOperationLog(); - this.gongneng = ""; + this.getOperationLog(1) + this.gongneng = "" getOperations({ - module: this.curModule, + module: val.proc_name }).then((res) => { - this.gongnengOptions = res.data; - }); + this.gongnengOptions = res.data + }) }, getOptions() { getModules().then((res) => { - this.moduleOptions = res.data; - }); + const indexArr = [] + res.data.forEach((item, index) => { + if (item.proc_name == "") { + indexArr.push(index) + } + }) + if (indexArr.length != 0) { + indexArr.forEach((i) => { + res.data.splice(i) + }) + } + this.moduleOptions = res.data + }) }, choseRange(item, i) { switch (item) { case "浠婃棩": - this.getTimeRange(24 * 60 * 60 * 1000); - break; + this.getTimeRange(24 * 60 * 60 * 1000) + break case "杩戜笁澶�": - this.getTimeRange(24 * 60 * 60 * 1000 * 3); - break; + this.getTimeRange(24 * 60 * 60 * 1000 * 3) + break case "杩戜竷澶�": - this.getTimeRange(24 * 60 * 60 * 1000 * 7); - break; + this.getTimeRange(24 * 60 * 60 * 1000 * 7) + break case "杩戜竴涓湀": - this.getTimeRange(24 * 60 * 60 * 1000 * 30); - break; + this.getTimeRange(24 * 60 * 60 * 1000 * 30) + break case "杩戝叚涓湀": - this.getTimeRange(24 * 60 * 60 * 1000 * 30 * 6); - break; + this.getTimeRange(24 * 60 * 60 * 1000 * 30 * 6) + break default: - break; + break } - this.getOperationLog(); - this.activeDateChoise = i; + this.getOperationLog(1) + this.activeDateChoise = i }, - getOperationLog(timeStart, timeEnd) { - const data = { + getOperationLog(typ) { + if (typ == 1) { + this.page = 1 + } + queryOperationLog({ timeStart: this.timeStart, timeEnd: this.timeEnd, page: this.page, pageSize: this.pageSize, - module: this.curModule, + module: this.curModule.name_zh, function: this.gongneng, result: this.result, - fuzzySearch: this.fuzzySearch, - }; - queryOperationLog(data).then((res) => { - this.tableData = res.data.logs; - this.total = res.data.total; - }); + fuzzySearch: this.fuzzySearch + }).then((res) => { + this.tableData = res.data.logs + this.total = res.data.total + }) }, getTimeStr(date) { - var month = pad0(date.getMonth() + 1); //鏈� - var day = pad0(date.getDate()); //鏃� - var hour = pad0(date.getHours()); //鏃� - var minute = pad0(date.getMinutes()); //鍒� - var second = pad0(date.getSeconds()); //绉� - return `${date.getFullYear()}-${month}-${day} ${hour}:${minute}:${second}`; + var month = pad0(date.getMonth() + 1) //鏈� + var day = pad0(date.getDate()) //鏃� + return `${date.getFullYear()}-${month}-${day}` }, getTimeRange(gap) { - var date = new Date(); //褰撳墠鏃堕棿 - var preDay = new Date(new Date().getTime() - gap); - this.timeStart = this.getTimeStr(preDay); - this.timeEnd = this.getTimeStr(date); + var date = new Date() + var preDay = new Date(new Date().getTime() - gap + 24 * 60 * 60 * 1000) + this.timeStart = this.getTimeStr(preDay) + " 00:00:00" + this.timeEnd = this.getTimeStr(date) + " 23:59:59" }, - }, -}; + clearSearch() { + this.fuzzySearch = "" + this.getOperationLog(1) + } + } +} </script> <style lang="scss"> .op-log { margin: 0 auto; - padding: 10px 8px 10px 5px; - background-color: rgba(248, 248, 248, 1); + padding: 0px 8px 10px 5px; + border-top: 1px solid #e1e0e6; + background-color: rgba(242, 242, 247, 1); width: 100%; display: flex; flex-direction: column; overflow: auto; .top { - height: 100px; + height: 132px; background: #fff; border-radius: 5px; .first { display: flex; justify-content: space-between; + align-items: center; height: 45px; - padding: 0 20px; + padding: 20px 20px 0 20px; .time-option { display: flex; justify-content: space-between; @@ -311,50 +282,111 @@ .title { margin-right: 10px; min-width: fit-content; - font-size: 14px; + font-weight: bold; + font-size: 12px; } .opts { display: flex; justify-content: space-between; .opt { + box-sizing: border-box; + border: 2px solid #efeff6; min-width: fit-content; - width: 50px; - height: 32px; + width: 100px; + height: 36px; padding: 0 15px; border-radius: 4px; cursor: pointer; - margin-right: 10px; + margin-right: 2px; line-height: 32px; - font-size: 14px; + font-size: 12px; + color: #333; } .opt:hover { - background-color: rgba(61, 104, 225, 1); - color: #fff; + border-color: #4e94ff; } .opt-active { color: #fff; - background-color: rgba(61, 104, 225, 1); + background-color: #4e94ff; + border-color: #4e94ff; } } } .search { + width: 280px; + height: 36px; display: flex; align-items: center; + + .icon_clear:hover { + color: #4e94ff; + } + + .input-with-select { + width: 100%; + height: 100%; + + input { + height: 100%; + border-radius: 18px 0 0 18px; + border: 2px solid #f2f2f7; + border-right: none; + + &:focus, + &:focus + .el-input-group__append { + border-color: #409eff; + } + } + + .el-input-group__append { + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); + background-color: #fff; + border: 2px solid #f2f2f7; + border-radius: 0 18px 18px 0; + border-left: none; + } + } + + span { + cursor: pointer; + color: rgb(47, 45, 61); + font-weight: 700; + font-size: 19px; + } } } .second { display: flex; - margin: 10px 0; + margin: 15px 0 20px 0; padding: 0 20px; .bar { display: flex; align-items: baseline; width: fit-content; - margin-right: 20px; min-width: 120px; + margin-right: 30px; + min-width: 120px; + + .el-select { + width: 200px; + height: 36px; + + .el-input { + width: 100%; + height: 100%; + + input { + width: 100%; + height: 100%; + border: 2px solid #f2f2f7; + border-radius: 20px; + } + } + } .name { - margin-right: 5px; + margin-right: 15px; min-width: fit-content; - font-size: 14px; + font-weight: bold; + font-size: 12px; } } } @@ -364,23 +396,55 @@ border-radius: 5px; padding: 12px; background-color: white; + .empty_img { + margin: 80px auto; + width: 164px; + } .tableBox { + border: none; + &::before, + &::after { + display: none; + } + tr { + td:first-child { + border-radius: 4px 0 0 4px; + } + td:last-child { + border-radius: 0 4px 4px 0; + } + &.current-row td { + background-color: #4e94ff !important; + color: #fff; + } + &:hover td { + background-color: rgb(242, 242, 247); + } + } th { padding: 0 !important; height: 40px; line-height: 40px; + border-color: #fff !important; + border-right: 2px solid #fff; + border-radius: 4px; + font-size: 12px; + background: #f2f2f7; } td { padding: 0 !important; height: 34px; line-height: 34px; + border: none; + font-size: 12px; } } } .el-pagination { - padding: 20px 5px; height: 100%; - box-sizing: border-box; background-color: white; - + padding: 20px 5px; + height: 100%; + box-sizing: border-box; + background-color: white; } } </style> -- Gitblit v1.8.0