From 7fa3671f5a04f6f4943d064bf05f491cff9d5576 Mon Sep 17 00:00:00 2001 From: ali <ali9696@163.com> Date: 星期四, 23 一月 2025 15:48:02 +0800 Subject: [PATCH] 节能项目+政策法规 --- zhitan-vue/src/views/energyconservation/policyrule/policyRule.vue | 187 ++++---- zhitan-vue/src/views/energyconservation/projectmanage/projectmanage/projectManage.vue | 205 +++++----- zhitan-vue/src/components/FileUpload/index.vue | 144 +++--- zhitan-vue/src/views/energyconservation/projectmanage/projectmanage/components/EditModal.vue | 198 ++++---- zhitan-vue/src/api/policy/policy.js | 44 ++ zhitan-vue/src/utils/dict.js | 28 zhitan-vue/src/views/monitor/cache/index.vue | 137 ++++-- zhitan-vue/src/api/policy/project.js | 44 ++ zhitan-vue/src/views/energyconservation/policyrule/components/EditModal.vue | 158 ++++--- 9 files changed, 662 insertions(+), 483 deletions(-) diff --git a/zhitan-vue/src/api/policy/policy.js b/zhitan-vue/src/api/policy/policy.js new file mode 100644 index 0000000..9af2df4 --- /dev/null +++ b/zhitan-vue/src/api/policy/policy.js @@ -0,0 +1,44 @@ +import request from "@/utils/request" + +// 鑾峰彇鍒楄〃 +export function policyPage(params) { + return request({ + url: "/policiesRegulations/page", + method: "get", + params, + }) +} + +// 鏂板 +export function policyAdd(data) { + return request({ + url: "/policiesRegulations/add", + method: "post", + data, + }) +} + +// 鏌ヨ鎯� +export function policyInfo(params) { + return request({ + url: "/policiesRegulations/detail?id=" + params, + method: "get", + }) +} + +// 缂栬緫 +export function policyEdit(data) { + return request({ + url: "/policiesRegulations/edit", + method: "post", + data, + }) +} + +//鍒犻櫎 +export function policyDel(id) { + return request({ + url: "/policiesRegulations/delete/" + id, + method: "delete", + }) +} diff --git a/zhitan-vue/src/api/policy/project.js b/zhitan-vue/src/api/policy/project.js new file mode 100644 index 0000000..861a90c --- /dev/null +++ b/zhitan-vue/src/api/policy/project.js @@ -0,0 +1,44 @@ +import request from "@/utils/request" + +// 鑾峰彇鍒楄〃 +export function projectPage(params) { + return request({ + url: "/energySavingProject/page", + method: "get", + params, + }) +} + +// 鏂板 +export function projectAdd(data) { + return request({ + url: "/energySavingProject/add", + method: "post", + data, + }) +} + +// 鏌ヨ鎯� +export function projectInfo(params) { + return request({ + url: "/energySavingProject/getById?id=" + params, + method: "get", + }) +} + +// 缂栬緫 +export function projectEdit(data) { + return request({ + url: "/energySavingProject/edit", + method: "post", + data, + }) +} + +//鍒犻櫎 +export function projectDel(id) { + return request({ + url: "/energySavingProject/del/" + id, + method: "delete", + }) +} diff --git a/zhitan-vue/src/components/FileUpload/index.vue b/zhitan-vue/src/components/FileUpload/index.vue index 488d3ee..044aeda 100644 --- a/zhitan-vue/src/components/FileUpload/index.vue +++ b/zhitan-vue/src/components/FileUpload/index.vue @@ -20,8 +20,12 @@ <!-- 涓婁紶鎻愮ず --> <div class="el-upload__tip" v-if="showTip"> 璇蜂笂浼� - <template v-if="fileSize"> 澶у皬涓嶈秴杩� <b style="color: #f56c6c">{{ fileSize }}MB</b> </template> - <template v-if="fileType"> 鏍煎紡涓� <b style="color: #f56c6c">{{ fileType.join("/") }}</b> </template> + <template v-if="fileSize"> + 澶у皬涓嶈秴杩� <b style="color: #f56c6c">{{ fileSize }}MB</b> + </template> + <template v-if="fileType"> + 鏍煎紡涓� <b style="color: #f56c6c">{{ fileType.join("/") }}</b> + </template> 鐨勬枃浠� </div> <!-- 鏂囦欢鍒楄〃 --> @@ -39,7 +43,7 @@ </template> <script setup> -import { getToken } from "@/utils/auth"; +import { getToken } from "@/utils/auth" const props = defineProps({ modelValue: [String, Object, Array], // 鏁伴噺闄愬埗 @@ -55,110 +59,112 @@ // 鏂囦欢绫诲瀷, 渚嬪['png', 'jpg', 'jpeg'] fileType: { type: Array, - default: () => ["doc", "xls", "ppt", "txt", "pdf","docx"], + default: () => ["doc", "xls", "ppt", "txt", "pdf", "docx"], }, // 鏄惁鏄剧ず鎻愮ず isShowTip: { type: Boolean, - default: true - } -}); + default: true, + }, +}) -const { proxy } = getCurrentInstance(); -const emit = defineEmits(); -const number = ref(0); -const uploadList = ref([]); -const baseUrl = import.meta.env.VITE_APP_BASE_API; -const uploadFileUrl = ref(import.meta.env.VITE_APP_BASE_API + "/common/upload"); // 涓婁紶鏂囦欢鏈嶅姟鍣ㄥ湴鍧� -const headers = ref({ Authorization: "Bearer " + getToken() }); -const fileList = ref([]); -const showTip = computed( - () => props.isShowTip && (props.fileType || props.fileSize) -); +const { proxy } = getCurrentInstance() +const emit = defineEmits() +const number = ref(0) +const uploadList = ref([]) +const baseUrl = import.meta.env.VITE_APP_BASE_API +const uploadFileUrl = ref(import.meta.env.VITE_APP_BASE_API + "/common/upload") // 涓婁紶鏂囦欢鏈嶅姟鍣ㄥ湴鍧� +const headers = ref({ Authorization: "Bearer " + getToken() }) +const fileList = ref([]) +const showTip = computed(() => props.isShowTip && (props.fileType || props.fileSize)) -watch(() => props.modelValue, val => { - if (val) { - let temp = 1; - // 棣栧厛灏嗗�艰浆涓烘暟缁� - const list = Array.isArray(val) ? val : props.modelValue.split(','); - // 鐒跺悗灏嗘暟缁勮浆涓哄璞℃暟缁� - fileList.value = list.map(item => { - if (typeof item === "string") { - item = { name: item, url: item }; - } - item.uid = item.uid || new Date().getTime() + temp++; - return item; - }); - } else { - fileList.value = []; - return []; - } -},{ deep: true, immediate: true }); +watch( + () => props.modelValue, + (val) => { + if (val) { + let temp = 1 + // 棣栧厛灏嗗�艰浆涓烘暟缁� + const list = Array.isArray(val) ? val : props.modelValue.split(",") + // 鐒跺悗灏嗘暟缁勮浆涓哄璞℃暟缁� + fileList.value = list.map((item) => { + if (typeof item === "string") { + item = { name: item, url: item } + } + item.uid = item.uid || new Date().getTime() + temp++ + return item + }) + } else { + fileList.value = [] + return [] + } + }, + { deep: true, immediate: true } +) // 涓婁紶鍓嶆牎妫�鏍煎紡鍜屽ぇ灏� function handleBeforeUpload(file) { // 鏍℃鏂囦欢绫诲瀷 if (props.fileType.length) { - const fileName = file.name.split('.'); - const fileExt = fileName[fileName.length - 1]; - const isTypeOk = props.fileType.indexOf(fileExt) >= 0; + const fileName = file.name.split(".") + const fileExt = fileName[fileName.length - 1] + const isTypeOk = props.fileType.indexOf(fileExt) >= 0 if (!isTypeOk) { - proxy.$modal.msgError(`鏂囦欢鏍煎紡涓嶆纭�, 璇蜂笂浼�${props.fileType.join("/")}鏍煎紡鏂囦欢!`); - return false; + proxy.$modal.msgError(`鏂囦欢鏍煎紡涓嶆纭�, 璇蜂笂浼�${props.fileType.join("/")}鏍煎紡鏂囦欢!`) + return false } } // 鏍℃鏂囦欢澶у皬 if (props.fileSize) { - const isLt = file.size / 1024 / 1024 < props.fileSize; + const isLt = file.size / 1024 / 1024 < props.fileSize if (!isLt) { - proxy.$modal.msgError(`涓婁紶鏂囦欢澶у皬涓嶈兘瓒呰繃 ${props.fileSize} MB!`); - return false; + proxy.$modal.msgError(`涓婁紶鏂囦欢澶у皬涓嶈兘瓒呰繃 ${props.fileSize} MB!`) + return false } } - proxy.$modal.loading("姝e湪涓婁紶鏂囦欢锛岃绋嶅��..."); - number.value++; - return true; + proxy.$modal.loading("姝e湪涓婁紶鏂囦欢锛岃绋嶅��...") + number.value++ + return true } // 鏂囦欢涓暟瓒呭嚭 function handleExceed() { - proxy.$modal.msgError(`涓婁紶鏂囦欢鏁伴噺涓嶈兘瓒呰繃 ${props.limit} 涓�!`); + proxy.$modal.msgError(`涓婁紶鏂囦欢鏁伴噺涓嶈兘瓒呰繃 ${props.limit} 涓�!`) } // 涓婁紶澶辫触 function handleUploadError(err) { - proxy.$modal.msgError("涓婁紶鏂囦欢澶辫触"); + proxy.$modal.msgError("涓婁紶鏂囦欢澶辫触") } // 涓婁紶鎴愬姛鍥炶皟 function handleUploadSuccess(res, file) { if (res.code === 200) { - uploadList.value.push({ name: res.fileName, url: res.fileName }); - uploadedSuccessfully(); + uploadList.value.push({ name: res.fileName, url: res.fileName, fullUrl: res.url }) + uploadedSuccessfully() } else { - number.value--; - proxy.$modal.closeLoading(); - proxy.$modal.msgError(res.msg); - proxy.$refs.fileUpload.handleRemove(file); - uploadedSuccessfully(); + number.value-- + proxy.$modal.closeLoading() + proxy.$modal.msgError(res.msg) + proxy.$refs.fileUpload.handleRemove(file) + uploadedSuccessfully() } } // 鍒犻櫎鏂囦欢 function handleDelete(index) { - fileList.value.splice(index, 1); - emit("update:modelValue", fileList.value); + fileList.value.splice(index, 1) + emit("update:modelValue", fileList.value) } // 涓婁紶缁撴潫澶勭悊 function uploadedSuccessfully() { if (number.value > 0 && uploadList.value.length === number.value) { - fileList.value = fileList.value.filter(f => f.url !== undefined).concat(uploadList.value); - uploadList.value = []; - number.value = 0; + fileList.value = fileList.value.filter((f) => f.url !== undefined).concat(uploadList.value) + uploadList.value = [] + number.value = 0 console.log(fileList.value) - emit("update:modelValue", fileList.value); - proxy.$modal.closeLoading(); + emit("update:modelValue", fileList.value) + proxy.$modal.closeLoading() } } @@ -166,22 +172,22 @@ function getFileName(name) { // 濡傛灉鏄痷rl閭d箞鍙栨渶鍚庣殑鍚嶅瓧 濡傛灉涓嶆槸鐩存帴杩斿洖 if (name.lastIndexOf("/") > -1) { - return name.slice(name.lastIndexOf("/") + 1); + return name.slice(name.lastIndexOf("/") + 1) } else { - return name; + return name } } // 瀵硅薄杞垚鎸囧畾瀛楃涓插垎闅� function listToString(list, separator) { - let strs = ""; - separator = separator || ","; + let strs = "" + separator = separator || "," for (let i in list) { if (list[i].url) { - strs += list[i].url + separator; + strs += list[i].url + separator } } - return strs != '' ? strs.substr(0, strs.length - 1) : ''; + return strs != "" ? strs.substr(0, strs.length - 1) : "" } </script> diff --git a/zhitan-vue/src/utils/dict.js b/zhitan-vue/src/utils/dict.js index 9648f14..b86a885 100644 --- a/zhitan-vue/src/utils/dict.js +++ b/zhitan-vue/src/utils/dict.js @@ -1,24 +1,30 @@ -import useDictStore from '@/store/modules/dict' -import { getDicts } from '@/api/system/dict/data' +import useDictStore from "@/store/modules/dict" +import { getDicts } from "@/api/system/dict/data" /** * 鑾峰彇瀛楀吀鏁版嵁 */ export function useDict(...args) { - const res = ref({}); + const res = ref({}) return (() => { args.forEach((dictType, index) => { - res.value[dictType] = []; - const dicts = useDictStore().getDict(dictType); + res.value[dictType] = [] + const dicts = useDictStore().getDict(dictType) if (dicts) { - res.value[dictType] = dicts; + res.value[dictType] = dicts } else { - getDicts(dictType).then(resp => { - res.value[dictType] = resp.data.map(p => ({ label: p.dictLabel, value: p.dictValue, elTagType: p.listClass, elTagClass: p.cssClass })) - useDictStore().setDict(dictType, res.value[dictType]); + getDicts(dictType).then((resp) => { + console.log(resp) + res.value[dictType] = resp.data.map((p) => ({ + label: p.dictLabel, + value: p.dictValue, + elTagType: p.listClass, + elTagClass: p.cssClass, + })) + useDictStore().setDict(dictType, res.value[dictType]) }) } }) - return toRefs(res.value); + return toRefs(res.value) })() -} \ No newline at end of file +} diff --git a/zhitan-vue/src/views/energyconservation/policyrule/components/EditModal.vue b/zhitan-vue/src/views/energyconservation/policyrule/components/EditModal.vue index fc5f899..732084e 100644 --- a/zhitan-vue/src/views/energyconservation/policyrule/components/EditModal.vue +++ b/zhitan-vue/src/views/energyconservation/policyrule/components/EditModal.vue @@ -1,92 +1,116 @@ <template> - <el-dialog v-model="visible" :title="title" width="600" @close="handleClose"> - <el-form :model="form" ref="queryRef" :rules="formRules" label-width="120px" v-loading="loading"> - <el-form-item label="鏂囦欢鏍囬" prop="limitName"> - <el-input v-model="form.value1" placeholder="璇疯緭鍏ユ枃浠舵爣棰�" /> - </el-form-item> - <el-form-item label="鏂囦欢绫诲埆"> - <el-select v-model="form.value2" placeholder="璇烽�夋嫨"> - <el-option v-for="item in 6" :key="item" :label="item" :value="item"> - </el-option> - </el-select> - </el-form-item> - - </el-form> - <div slot="footer" class="text-right"> - <el-button type="primary" @click="submitForm" :loading="loading">纭� 瀹�</el-button> - <el-button @click="handleClose">鍙� 娑�</el-button> - </div> - </el-dialog> + <el-dialog v-model="visible" :title="title" width="600" @close="handleClose"> + <el-form :model="form" ref="queryRef" :rules="formRules" label-width="120px" v-loading="loading"> + <el-form-item label="鏂囦欢鏍囬" prop="title"> + <el-input v-model="form.title" placeholder="璇疯緭鍏ユ枃浠舵爣棰�" /> + </el-form-item> + <el-form-item label="鏂囦欢绫诲埆" prop="type"> + <el-select v-model="form.type" placeholder="鏂囦欢绫诲埆" style="width: 100%"> + <el-option v-for="dict in policy_sort" :key="dict.value" :label="dict.label" :value="dict.value" /> + </el-select> + </el-form-item> + <el-form-item label="鍗板彂閮ㄩ棬" prop="dept"> + <el-input v-model="form.dept" placeholder="璇疯緭鍏ュ嵃鍙戦儴闂�" /> + </el-form-item> + <el-form-item label="鍗板彂鏃堕棿" prop="issuingTime"> + <el-date-picker + v-model="form.issuingTime" + type="date" + placeholder="璇烽�夋嫨鍗板彂鏃堕棿" + format="YYYY-MM-DD" + date-format="YYYY/MM/DD" + /> + </el-form-item> + <el-form-item label="闄勪欢" prop="url"> + <FileUpload :limit="1" :modelValue="fileList" @update:modelValue="(val) => (fileList = val)"></FileUpload> + </el-form-item> + </el-form> + <div slot="footer" class="text-right"> + <el-button type="primary" @click="submitForm" :loading="loading">纭� 瀹�</el-button> + <el-button @click="handleClose">鍙� 娑�</el-button> + </div> + </el-dialog> </template> <script setup> -const { proxy } = getCurrentInstance(); - +import { policyAdd, policyEdit } from "@/api/policy/policy" +const { proxy } = getCurrentInstance() +const { policy_sort } = proxy.useDict("policy_sort") let visible = ref(false) -let title = ref('') +let title = ref("") let loading = ref(false) let form = ref({ - value1: '', - value2: '', + title: "", + type: "", + url: "", }) -let emit = defineEmits(['get-list']) +const fileList = ref([]) +let emit = defineEmits(["get-list"]) const formRules = { - value1: [{ required: true, trigger: "blur", message: "璇疯緭鍏ユ枃浠舵爣棰�" }], - value2: [{ required: true, trigger: "change", message: "璇烽�夋嫨鏂囦欢绫诲瀷" }], + title: [{ required: true, trigger: "blur", message: "璇疯緭鍏ユ枃浠舵爣棰�" }], + type: [{ required: true, trigger: "change", message: "璇烽�夋嫨鏂囦欢绫诲瀷" }], } function submitForm() { - proxy.$refs.queryRef.validate(valid => { - if (valid) { - // loading.value = true; - // let obj = form.value.id ? alarmEdit(form.value) : alarmAdd(form.value) - // obj.then((res) => { - // if (res.code == 200) { - // proxy.$modal.msgSuccess(res.message); - // emit('get-list') - // } else { - // proxy.$modal.msgError(res.message); - // } - - // }).catch((err) => { - - // }).finally(() => { - // handleClose() - // }); - } - }) + proxy.$refs.queryRef.validate((valid) => { + if (valid) { + loading.value = true + if (fileList.value.length > 0) { + form.value.url = fileList.value[0].fullUrl + } else { + form.value.url = "" + } + let obj = form.value.id ? policyEdit(form.value) : policyAdd(form.value) + obj + .then((res) => { + if (res.code == 200) { + proxy.$modal.msgSuccess(res.msg) + emit("get-list") + handleClose() + } else { + proxy.$modal.msgError(res.msg) + } + }) + .catch((err) => {}) + .finally(() => { + loading.value = false + }) + } + }) } - - - - function handleOpen(row) { - if (row && row.id) { - title.value = "缂栬緫鏀跨瓥娉曡" - form.value = JSON.parse(JSON.stringify(row)) - } else { - title.value = "娣诲姞鏀跨瓥娉曡" + fileList.value = [] + if (row && row.id) { + title.value = "缂栬緫鏀跨瓥娉曡" + form.value = JSON.parse(JSON.stringify(row)) + if (row.url) { + fileList.value = [ + { + url: row.url, + name: row.url, + }, + ] } - visible.value = true + } else { + title.value = "娣诲姞鏀跨瓥娉曡" + fileList.value = [] + } + visible.value = true } function handleClose(value) { - visible.value = false - loading.value = false - proxy.$refs.queryRef.resetFields() - form.value = { - value1: '', - value2: '', - - } + visible.value = false + loading.value = false + proxy.$refs.queryRef.resetFields() + form.value = { + value1: "", + value2: "", + } } defineExpose({ handleOpen }) - </script> - - -<style lang="scss" scoped></style> \ No newline at end of file +<style lang="scss" scoped></style> diff --git a/zhitan-vue/src/views/energyconservation/policyrule/policyRule.vue b/zhitan-vue/src/views/energyconservation/policyrule/policyRule.vue index f6dbeb1..558747a 100644 --- a/zhitan-vue/src/views/energyconservation/policyrule/policyRule.vue +++ b/zhitan-vue/src/views/energyconservation/policyrule/policyRule.vue @@ -1,123 +1,128 @@ <template> - <div class="page"> - <div class="form-card"> - <el-form :model="queryParams" ref="queryRef" :inline="true" label-width="120px"> - <el-form-item label="鏂囦欢绫诲埆"> - <el-select v-model="queryParams.value1" placeholder="璇烽�夋嫨"> - <el-option v-for="item in 6" :key="item" :label="item" :value="item"> - </el-option> - </el-select> - </el-form-item> - <el-form-item label="鏂囦欢鏍囬"> - <el-input v-model="queryParams.value2" placeholder="璇疯緭鍏ユ枃浠舵爣棰�" /> - </el-form-item> - <el-form-item> - <el-button type="primary" icon="Search" @click="handleQuery">鎼滅储</el-button> - <el-button icon="Refresh" @click="resetQuery">閲嶇疆</el-button> - </el-form-item> - </el-form> - </div> - <div class="table-box"> - <div class="mt20 mb20"> - <el-button type="primary" icon="plus" @click="handleAdd">鏂板</el-button> - <!-- <el-button type="primary" icon="Delete">鍒犻櫎</el-button> --> - </div> - <el-table :data="tableData" v-loading="loading"> - <el-table-column prop="value1" label="鏂囦欢鏍囬" show-overflow-tooltip align="center" /> - <el-table-column prop="value2" label="鏂囦欢绫诲埆" show-overflow-tooltip align="center" /> - <el-table-column prop="value3" label="鍗板彂鏃堕棿" show-overflow-tooltip align="center" /> - <el-table-column label="鎿嶄綔" width="300" align="center"> - <template #default="scope"> - <el-button link type="primary" icon="Edit" @click="handleAdd(scope.row)"> - 淇敼 - </el-button> - <el-button link type="primary" icon="Delete" @click="handleDel(scope.row)"> - 鍒犻櫎 - </el-button> - </template> - </el-table-column> - </el-table> - <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" - v-model:limit="queryParams.pageSize" @pagination="getList" /> - - </div> - <EditModal ref="editModalRef" @get-list="getList" /> + <div class="page"> + <div class="form-card"> + <el-form :model="queryParams" ref="queryRef" :inline="true" label-width="120px"> + <el-form-item label="鏂囦欢鏍囬"> + <el-input v-model="queryParams.title" placeholder="璇疯緭鍏ユ枃浠舵爣棰�" clearable /> + </el-form-item> + <el-form-item label="鏂囦欢绫诲埆"> + <el-select v-model="queryParams.type" placeholder="鏂囦欢绫诲埆" style="width: 100%" clearable> + <el-option v-for="dict in policy_sort" :key="dict.value" :label="dict.label" :value="dict.value" /> + </el-select> + </el-form-item> + <el-form-item> + <el-button type="primary" icon="Search" @click="handleQuery">鎼滅储</el-button> + <el-button icon="Refresh" @click="resetQuery">閲嶇疆</el-button> + </el-form-item> + </el-form> </div> + <div class="table-box"> + <div class="mt20 mb20"> + <el-button type="primary" icon="plus" @click="handleAdd">鏂板</el-button> + <!-- <el-button type="primary" icon="Delete">鍒犻櫎</el-button> --> + </div> + <el-table :data="tableData" v-loading="loading"> + <el-table-column prop="title" label="鏂囦欢鏍囬" show-overflow-tooltip align="center" /> + <el-table-column prop="typeName" label="鏂囦欢绫诲埆" show-overflow-tooltip align="center" /> + <el-table-column prop="dept" label="鍗板彂閮ㄩ棬" show-overflow-tooltip align="center" /> + <el-table-column prop="issuingTime" label="鍗板彂鏃堕棿" show-overflow-tooltip align="center" /> + <el-table-column label="鎿嶄綔" width="300" align="center"> + <template #default="scope"> + <el-button v-if="scope.row.url" link type="primary" icon="Files" @click="handleFile(scope.row.url)"> + 闄勪欢 + </el-button> + <el-button link type="primary" icon="Edit" @click="handleAdd(scope.row)"> 淇敼 </el-button> + <el-button link type="primary" icon="Delete" @click="handleDel(scope.row)"> 鍒犻櫎 </el-button> + </template> + </el-table-column> + </el-table> + <pagination + v-show="total > 0" + :total="total" + v-model:page="queryParams.pageNum" + v-model:limit="queryParams.pageSize" + @pagination="getList" + /> + </div> + <EditModal ref="editModalRef" @get-list="getList" /> + </div> </template> <script setup> -import EditModal from './components/EditModal' +import EditModal from "./components/EditModal" +import { policyPage, policyDel } from "@/api/policy/policy" +const { proxy } = getCurrentInstance() +const { policy_sort } = proxy.useDict("policy_sort") -let { proxy } = getCurrentInstance() -let loading = ref(false); -let total = ref(2); -let tableData = ref([ - { id: 1, value1: '1111', value2: 'value2', value3: '2024骞�10鏈�17鏃�11:15:39' }, - { id: 2, value1: '222', value2: '222', value3: '2024骞�10鏈�17鏃�11:16:39' }]) +let loading = ref(false) +let total = ref(2) +let tableData = ref([]) let queryParams = ref({ - value1: '', - value2: '', - pageNum: 1, - pageSize: 10, + value1: "", + value2: "", + pageNum: 1, + pageSize: 10, }) function getList() { - // loading.value = true - // alarmList(queryParams.value).then(res => { - // console.log(res.rows) - // tableData.value = res.rows - // total.value = res.total - // loading.value = false - // }) + loading.value = true + policyPage(queryParams.value).then((res) => { + console.log(res.rows) + tableData.value = res.rows + total.value = res.total + loading.value = false + }) } getList() -let editModalRef = ref('') +let editModalRef = ref("") function handleAdd(row) { - if (editModalRef.value) { - editModalRef.value.handleOpen(row) - } - + if (editModalRef.value) { + editModalRef.value.handleOpen(row) + } } function handleDel(row) { - // proxy.$modal.confirm('鏄惁纭鍒犻櫎鏁版嵁椤�?').then(function () { - // return alarmDel(row.id); - // }).then(() => { - // getList(); - // proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛"); - // }).catch(() => { }); + proxy.$modal + .confirm("鏄惁纭鍒犻櫎鏁版嵁椤�?") + .then(function () { + return policyDel(row.id) + }) + .then(() => { + getList() + proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛") + }) + .catch(() => {}) +} + +function handleFile(url) { + window.open(url) } function handleQuery() { - queryParams.value.pageNum = 1 - getList() - + queryParams.value.pageNum = 1 + getList() } function resetQuery() { - queryParams.value = { - value1: '', - value2: '', - pageNum: 1, - pageSize: 10, - } - getList() + queryParams.value = { + value1: "", + value2: "", + pageNum: 1, + pageSize: 10, + } + getList() } - - </script> <style lang="scss" scoped> @import "@/assets/styles/page.scss"; - .header-box { - :deep .el-form-item__content { - color: #fff; - font-size: 16px; - } - + :deep .el-form-item__content { + color: #fff; + font-size: 16px; + } } -</style> \ No newline at end of file +</style> diff --git a/zhitan-vue/src/views/energyconservation/projectmanage/projectmanage/components/EditModal.vue b/zhitan-vue/src/views/energyconservation/projectmanage/projectmanage/components/EditModal.vue index b0068a9..e97551a 100644 --- a/zhitan-vue/src/views/energyconservation/projectmanage/projectmanage/components/EditModal.vue +++ b/zhitan-vue/src/views/energyconservation/projectmanage/projectmanage/components/EditModal.vue @@ -1,124 +1,124 @@ <template> - <el-dialog v-model="visible" :title="title" width="600" @close="handleClose"> - <el-form :model="form" ref="queryRef" :rules="formRules" label-width="120px" v-loading="loading"> - <el-form-item label="椤圭洰鍚嶇О" prop="value1"> - <el-input v-model="form.value1" placeholder="璇疯緭鍏ラ」鐩悕绉�" /> - </el-form-item> - <el-form-item label="鑺傝兘璁″垝" prop="value2"> - <el-input v-model="form.value2" placeholder="璇疯緭鍏ヨ妭鑳借鍒�" /> - </el-form-item> - <el-form-item label="鑺傝兘鐩爣" prop="value3"> - <el-input v-model="form.value3" placeholder="璇疯緭鍏ヨ妭鑳界洰鏍�" /> - </el-form-item> - <el-form-item label="寮�濮嬫椂闂�" prop="value4"> - <el-date-picker v-model="form.value4" type="date" placeholder="璇烽�夋嫨寮�濮嬫椂闂�" format="YYYY-MM-DD" - date-format="YYYY/MM/DD" /> - </el-form-item> - <el-form-item label="缁撴潫鏃堕棿" prop="value5"> - <el-date-picker v-model="form.value5" type="date" placeholder="璇烽�夋嫨缁撴潫鏃堕棿" format="YYYY-MM-DD" - date-format="YYYY/MM/DD" /> - </el-form-item> - <el-form-item label="璐熻矗浜�" prop="value6"> - <el-input v-model="form.value6" placeholder="璇疯緭鍏ヨ礋璐d汉" /> - </el-form-item> - <el-form-item label="鍒跺畾鏃舵" prop="value7"> - <el-date-picker v-model="form.value7" type="date" placeholder="璇烽�夋嫨鍒跺畾鏃舵" format="YYYY-MM-DD" - date-format="YYYY/MM/DD" /> - </el-form-item> - </el-form> - <div slot="footer" class="text-right"> - <el-button type="primary" @click="submitForm" :loading="loading">纭� 瀹�</el-button> - <el-button @click="handleClose">鍙� 娑�</el-button> - </div> - </el-dialog> + <el-dialog v-model="visible" :title="title" width="600" @close="handleClose"> + <el-form :model="form" ref="queryRef" :rules="formRules" label-width="120px" v-loading="loading"> + <el-form-item label="鎬讳綋璁″垝" prop="plan"> + <el-input v-model="form.plan" placeholder="璇疯緭鍏ユ�讳綋璁″垝" /> + </el-form-item> + <el-form-item label="瀹炴柦璁″垝" prop="implementationPlan"> + <el-input v-model="form.implementationPlan" placeholder="璇疯緭鍏ュ疄鏂借鍒�" /> + </el-form-item> + <el-form-item label="褰撳墠宸ヤ綔" prop="currentWork"> + <el-input v-model="form.currentWork" placeholder="璇疯緭鍏ュ綋鍓嶅伐浣�" /> + </el-form-item> + <el-form-item label="鑺傜害閲�" prop="savingAmount"> + <el-input-number style="width: 100%" v-model="form.savingAmount" placeholder="璇疯緭鍏ヨ妭绾﹂噺" /> + </el-form-item> + <!-- <el-form-item label="寮�濮嬫椂闂�" prop="value4"> + <el-date-picker + v-model="form.value4" + type="date" + placeholder="璇烽�夋嫨寮�濮嬫椂闂�" + format="YYYY-MM-DD" + date-format="YYYY/MM/DD" + /> + </el-form-item> + <el-form-item label="缁撴潫鏃堕棿" prop="value5"> + <el-date-picker + v-model="form.value5" + type="date" + placeholder="璇烽�夋嫨缁撴潫鏃堕棿" + format="YYYY-MM-DD" + date-format="YYYY/MM/DD" + /> + </el-form-item> --> + <el-form-item label="璐熻矗浜�" prop="liablePerson"> + <el-input v-model="form.liablePerson" placeholder="璇疯緭鍏ヨ礋璐d汉" /> + </el-form-item> + <el-form-item label="瀹屾垚鏃堕棿" prop="completionTime"> + <el-date-picker + v-model="form.completionTime" + type="date" + placeholder="璇烽�夋嫨瀹屾垚鏃堕棿" + format="YYYY-MM-DD" + date-format="YYYY/MM/DD" + /> + </el-form-item> + <el-form-item label="澶囨敞" prop="remark"> + <el-input type="textarea" v-model="form.remark" placeholder="璇疯緭鍏ュ娉�" /> + </el-form-item> + </el-form> + <div slot="footer" class="text-right"> + <el-button type="primary" @click="submitForm" :loading="loading">纭� 瀹�</el-button> + <el-button @click="handleClose">鍙� 娑�</el-button> + </div> + </el-dialog> </template> <script setup> -import { alarmAdd, alarmEdit } from '@/api/businessConfiguration/businessConfiguration' -const { proxy } = getCurrentInstance(); -let props = defineProps(['alarmTypeList', 'operatorList']) - +import { projectEdit, projectAdd } from "@/api/policy/project" +const { proxy } = getCurrentInstance() +let props = defineProps(["alarmTypeList", "operatorList"]) let visible = ref(false) -let title = ref('') +let title = ref("") let loading = ref(false) let form = ref({ - value1: null, - value2: null, - value3: null, - value4: null, - value5: null, - value6: null, - value7: null, - + plan: null, + implementationPlan: null, + remark: null, + liablePerson: null, + currentWork: null, + completionTime: null, + savingAmount: null, }) -let emit = defineEmits(['getList']) +let emit = defineEmits(["getList"]) const formRules = { - value1: [{ required: true, trigger: "blur", message: "璇疯緭鍏ラ」鐩悕绉�" }], - value2: [{ required: true, trigger: "blur", message: "璇疯緭鍏ヨ妭鑳借鍒�" }], - value3: [{ required: true, trigger: "blur", message: "璇疯緭鍏ヨ妭鑳界洰鏍�" }], - value4: [{ required: true, trigger: "blur", message: "璇烽�夋嫨寮�濮嬫椂闂�" }], - value5: [{ required: true, trigger: "blur", message: "璇烽�夋嫨缁撴潫鏃堕棿" }], - value6: [{ required: true, trigger: "blur", message: "璇疯緭鍏ヨ礋璐d汉" }], - value7: [{ required: true, trigger: "blur", message: "璇烽�夋嫨鍒跺畾鏃舵" }], - + plan: [{ required: true, trigger: "blur", message: "璇疯緭鍏ュ繀濉」" }], + implementationPlan: [{ required: true, trigger: "blur", message: "璇疯緭鍏ュ繀濉」" }], + savingAmount: [{ required: true, trigger: "blur", message: "璇疯緭鍏ュ繀濉」" }], + liablePerson: [{ required: true, trigger: "blur", message: "璇疯緭鍏ュ繀濉」" }], + currentWork: [{ required: true, trigger: "blur", message: "璇疯緭鍏ュ繀濉」" }], } function submitForm() { - proxy.$refs.queryRef.validate(valid => { - if (valid) { - // loading.value = true; - // let obj = form.value.id ? alarmEdit(form.value) : alarmAdd(form.value) - // obj.then((res) => { - // if (res.code == 200) { - // proxy.$modal.msgSuccess(res.message); - // emit('getList') - // } else { - // proxy.$modal.msgError(res.message); - // } - - // }).catch((err) => { - - // }).finally(() => { - // handleClose() - // }); - } - }) + proxy.$refs.queryRef.validate((valid) => { + if (valid) { + loading.value = true + let obj = form.value.id ? projectEdit(form.value) : projectAdd(form.value) + obj + .then((res) => { + if (res.code == 200) { + proxy.$modal.msgSuccess(res.msg) + emit("getList") + handleClose() + } else { + proxy.$modal.msgError(res.msg) + } + }) + .catch((err) => {}) + .finally(() => {}) + } + }) } - - - - function handleOpen(row) { - if (row && row.id) { - title.value = "缂栬緫鑺傝兘椤圭洰绠$悊" - form.value = JSON.parse(JSON.stringify(row)) - } else { - title.value = "娣诲姞鑺傝兘椤圭洰绠$悊" - } - visible.value = true + if (row && row.id) { + title.value = "缂栬緫鑺傝兘椤圭洰绠$悊" + form.value = JSON.parse(JSON.stringify(row)) + } else { + title.value = "娣诲姞鑺傝兘椤圭洰绠$悊" + } + visible.value = true } function handleClose(value) { - visible.value = false - loading.value = false - proxy.$refs.queryRef.resetFields() - form.value = { - value1: null, - value2: null, - value3: null, - value4: null, - value5: null, - value6: null, - value7: null, - } + visible.value = false + loading.value = false + proxy.$refs.queryRef.resetFields() + form.value = {} } defineExpose({ handleOpen }) - </script> - - <style lang="scss" scoped></style> diff --git a/zhitan-vue/src/views/energyconservation/projectmanage/projectmanage/projectManage.vue b/zhitan-vue/src/views/energyconservation/projectmanage/projectmanage/projectManage.vue index 164cb19..0e76221 100644 --- a/zhitan-vue/src/views/energyconservation/projectmanage/projectmanage/projectManage.vue +++ b/zhitan-vue/src/views/energyconservation/projectmanage/projectmanage/projectManage.vue @@ -1,135 +1,136 @@ <template> - <div class="page"> - <div class="form-card"> - <el-form :model="queryParams" ref="queryRef" :inline="true" label-width="120px"> - <el-form-item label="椤圭洰鍚嶇О"> - <el-input v-model="queryParams.value1" placeholder="璇疯緭鍏ラ」鐩悕绉�" /> - </el-form-item> - <el-form-item label="缁熻鏃堕棿"> - <el-date-picker v-model="queryParams.value2" type="daterange" start-placeholder="閫夋嫨寮�濮嬫椂闂�" - end-placeholder="閫夋嫨缁撴潫鏃堕棿" format="YYYY-MM-DD" date-format="YYYY/MM/DD" /> - </el-form-item> - <el-form-item> - <el-button type="primary" icon="Search" @click="handleQuery">鎼滅储</el-button> - <el-button icon="Refresh" @click="resetQuery">閲嶇疆</el-button> - </el-form-item> - </el-form> - </div> - <div class="table-box"> - <div class="mt20 mb20"> - <el-button type="primary" icon="plus" @click="handleAdd">鏂板</el-button> - <el-button type="primary" icon="Download" @click="handleAdd"> 瀵煎嚭 </el-button> - </div> - <el-table :data="tableData" v-loading="loading"> - <el-table-column prop="value1" label="椤圭洰鍚嶇О" show-overflow-tooltip align="center" /> - <el-table-column prop="value2" label="鑺傝兘璁″垝" show-overflow-tooltip align="center" /> - <el-table-column prop="value3" label="鑺傝兘鐩爣" show-overflow-tooltip align="center" /> - <el-table-column prop="value4" label="寮�濮嬫椂闂�" show-overflow-tooltip align="center" /> - <el-table-column prop="value5" label="缁撴潫鏃堕棿" show-overflow-tooltip align="center" /> - <el-table-column prop="value6" label="璐熻矗浜�" show-overflow-tooltip align="center" /> - <el-table-column prop="value7" label="鍒跺畾鏃舵" show-overflow-tooltip align="center" /> - <el-table-column prop="value8" label="鍒涘缓浜�" show-overflow-tooltip align="center" /> - - <el-table-column label="鎿嶄綔" width="300" align="center"> - <template #default="scope"> - <el-button link type="primary" icon="Files" @click=" "> - 闄勪欢 - </el-button> - <el-button link type="primary" icon="Edit" @click="handleAdd(scope.row)"> - 淇敼 - </el-button> - <el-button link type="primary" icon="Delete" @click="handleDel(scope.row)"> - 鍒犻櫎 - </el-button> - </template> - </el-table-column> - </el-table> - <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" - v-model:limit="queryParams.pageSize" @pagination="getList" /> - - </div> - <edit-modal ref="EditModalRef" @getList="getList" /> + <div class="page"> + <div class="form-card"> + <el-form :model="queryParams" ref="queryRef" :inline="true" label-width="120px"> + <el-form-item label="鎬讳綋璁″垝"> + <el-input v-model="queryParams.plan" placeholder="璇疯緭鍏ユ�讳綋璁″垝" /> + </el-form-item> + <el-form-item label="璐熻矗浜�"> + <el-input v-model="queryParams.liablePerson" placeholder="璇疯緭鍏ヨ礋璐d汉" /> + </el-form-item> + <!-- <el-form-item label="缁熻鏃堕棿"> + <el-date-picker + v-model="queryParams.value2" + type="daterange" + start-placeholder="閫夋嫨寮�濮嬫椂闂�" + end-placeholder="閫夋嫨缁撴潫鏃堕棿" + format="YYYY-MM-DD" + date-format="YYYY/MM/DD" + /> + </el-form-item> --> + <el-form-item> + <el-button type="primary" icon="Search" @click="handleQuery">鎼滅储</el-button> + <el-button icon="Refresh" @click="resetQuery">閲嶇疆</el-button> + </el-form-item> + </el-form> </div> + <div class="table-box"> + <div class="mt20 mb20"> + <el-button type="primary" icon="plus" @click="handleAdd">鏂板</el-button> + <!-- <el-button type="primary" icon="Download" @click="handleAdd"> 瀵煎嚭 </el-button> --> + </div> + <el-table :data="tableData" v-loading="loading"> + <el-table-column prop="plan" label="鎬讳綋璁″垝" show-overflow-tooltip align="center" /> + <el-table-column prop="implementationPlan" label="瀹炴柦璁″垝" show-overflow-tooltip align="center" /> + <el-table-column prop="savingAmount" label="鑺傜害閲�" show-overflow-tooltip align="center" /> + <!-- <el-table-column prop="value4" label="寮�濮嬫椂闂�" show-overflow-tooltip align="center" /> + <el-table-column prop="value5" label="缁撴潫鏃堕棿" show-overflow-tooltip align="center" /> --> + <el-table-column prop="currentWork" label="褰撳墠宸ヤ綔" show-overflow-tooltip align="center" /> + <el-table-column prop="liablePerson" label="璐熻矗浜�" show-overflow-tooltip align="center" /> + <el-table-column prop="completionTime" label="瀹屾垚鏃堕棿" show-overflow-tooltip align="center" /> + <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" show-overflow-tooltip align="center" /> + <el-table-column prop="remark" label="澶囨敞" show-overflow-tooltip align="center" /> + + <el-table-column label="鎿嶄綔" width="300" align="center"> + <template #default="scope"> + <!-- <el-button link type="primary" icon="Files" @click=""> 闄勪欢 </el-button> --> + <el-button link type="primary" icon="Edit" @click="handleAdd(scope.row)"> 淇敼 </el-button> + <el-button link type="primary" icon="Delete" @click="handleDel(scope.row)"> 鍒犻櫎 </el-button> + </template> + </el-table-column> + </el-table> + <pagination + v-show="total > 0" + :total="total" + v-model:page="queryParams.pageNum" + v-model:limit="queryParams.pageSize" + @pagination="getList" + /> + </div> + <edit-modal ref="EditModalRef" @getList="getList" /> + </div> </template> <script setup> -import EditModal from './components/EditModal.vue' - +import EditModal from "./components/EditModal.vue" +import { projectPage, projectDel } from "@/api/policy/project" let { proxy } = getCurrentInstance() -let loading = ref(false); -let total = ref(0); -let tableData = ref([ - {id:1, value1: '1', value2: '2', value3: '3', value4: '4', value5: '5', value6: '6', value7: '7', value8: '8' }, - { id:2, value1: '1', value2: '2', value3: '3', value4: '4', value5: '5', value6: '6', value7: '7', value8: '8' }, - { id:3, value1: '1', value2: '2', value3: '3', value4: '4', value5: '5', value6: '6', value7: '7', value8: '8' }, - { id:4, value1: '1', value2: '2', value3: '3', value4: '4', value5: '5', value6: '6', value7: '7', value8: '8' }, -]) +let loading = ref(false) +let total = ref(0) +let tableData = ref([]) let queryParams = ref({ - value1: '', - value2: [], - pageNum: 1, - pageSize: 10, + value1: "", + value2: [], + pageNum: 1, + pageSize: 10, }) function getList() { - // loading.value = true - // alarmList(queryParams.value).then(res => { - // console.log(res.rows) - // tableData.value = res.rows - // total.value = res.total - // loading.value = false - // }) + loading.value = true + projectPage(queryParams.value).then((res) => { + console.log(res.rows) + tableData.value = res.rows + total.value = res.total + loading.value = false + }) } getList() - -let EditModalRef = ref('') +let EditModalRef = ref("") function handleAdd(row) { - if (EditModalRef.value) { - EditModalRef.value.handleOpen(row) - } - + if (EditModalRef.value) { + EditModalRef.value.handleOpen(row) + } } function handleDel(row) { - // proxy.$modal.confirm('鏄惁纭鍒犻櫎鏁版嵁椤�?').then(function () { - // return alarmDel(row.id); - // }).then(() => { - // getList(); - // proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛"); - // }).catch(() => { }); + proxy.$modal + .confirm("鏄惁纭鍒犻櫎鏁版嵁椤�?") + .then(function () { + return projectDel(row.id) + }) + .then(() => { + getList() + proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛") + }) + .catch(() => {}) } function handleQuery() { - queryParams.value.pageNum = 1 - getList() - + queryParams.value.pageNum = 1 + getList() } function resetQuery() { - queryParams.value = { - value1: '', - value2: [], - pageNum: 1, - pageSize: 10, - } - getList() + queryParams.value = { + value1: "", + value2: [], + pageNum: 1, + pageSize: 10, + } + getList() } - - </script> <style lang="scss" scoped> @import "@/assets/styles/page.scss"; - .header-box { - :deep .el-form-item__content { - color: #fff; - font-size: 16px; - } - + :deep .el-form-item__content { + color: #fff; + font-size: 16px; + } } -</style> \ No newline at end of file +</style> diff --git a/zhitan-vue/src/views/monitor/cache/index.vue b/zhitan-vue/src/views/monitor/cache/index.vue index aa46bf2..02a99b7 100644 --- a/zhitan-vue/src/views/monitor/cache/index.vue +++ b/zhitan-vue/src/views/monitor/cache/index.vue @@ -3,39 +3,72 @@ <el-row> <el-col :span="24" class="card-box"> <el-card> - <template #header><Monitor style="width: 1em; height: 1em; vertical-align: middle;" /> <span style="vertical-align: middle;">鍩烘湰淇℃伅</span></template> + <template #header + ><Monitor style="width: 1em; height: 1em; vertical-align: middle" /> + <span style="vertical-align: middle">鍩烘湰淇℃伅</span></template + > <div class="el-table el-table--enable-row-hover el-table--medium"> <table cellspacing="0" style="width: 100%"> <tbody> <tr> <td class="el-table__cell is-leaf"><div class="cell">Redis鐗堟湰</div></td> - <td class="el-table__cell is-leaf"><div class="cell" v-if="cache.info">{{ cache.info.redis_version }}</div></td> + <td class="el-table__cell is-leaf"> + <div class="cell" v-if="cache.info">{{ cache.info.redis_version }}</div> + </td> <td class="el-table__cell is-leaf"><div class="cell">杩愯妯″紡</div></td> - <td class="el-table__cell is-leaf"><div class="cell" v-if="cache.info">{{ cache.info.redis_mode == "standalone" ? "鍗曟満" : "闆嗙兢" }}</div></td> + <td class="el-table__cell is-leaf"> + <div class="cell" v-if="cache.info"> + {{ cache.info.redis_mode == "standalone" ? "鍗曟満" : "闆嗙兢" }} + </div> + </td> <td class="el-table__cell is-leaf"><div class="cell">绔彛</div></td> - <td class="el-table__cell is-leaf"><div class="cell" v-if="cache.info">{{ cache.info.tcp_port }}</div></td> + <td class="el-table__cell is-leaf"> + <div class="cell" v-if="cache.info">{{ cache.info.tcp_port }}</div> + </td> <td class="el-table__cell is-leaf"><div class="cell">瀹㈡埛绔暟</div></td> - <td class="el-table__cell is-leaf"><div class="cell" v-if="cache.info">{{ cache.info.connected_clients }}</div></td> + <td class="el-table__cell is-leaf"> + <div class="cell" v-if="cache.info">{{ cache.info.connected_clients }}</div> + </td> </tr> <tr> <td class="el-table__cell is-leaf"><div class="cell">杩愯鏃堕棿(澶�)</div></td> - <td class="el-table__cell is-leaf"><div class="cell" v-if="cache.info">{{ cache.info.uptime_in_days }}</div></td> + <td class="el-table__cell is-leaf"> + <div class="cell" v-if="cache.info">{{ cache.info.uptime_in_days }}</div> + </td> <td class="el-table__cell is-leaf"><div class="cell">浣跨敤鍐呭瓨</div></td> - <td class="el-table__cell is-leaf"><div class="cell" v-if="cache.info">{{ cache.info.used_memory_human }}</div></td> + <td class="el-table__cell is-leaf"> + <div class="cell" v-if="cache.info">{{ cache.info.used_memory_human }}</div> + </td> <td class="el-table__cell is-leaf"><div class="cell">浣跨敤CPU</div></td> - <td class="el-table__cell is-leaf"><div class="cell" v-if="cache.info">{{ parseFloat(cache.info.used_cpu_user_children).toFixed(2) }}</div></td> + <td class="el-table__cell is-leaf"> + <div class="cell" v-if="cache.info"> + {{ parseFloat(cache.info.used_cpu_user_children).toFixed(2) }} + </div> + </td> <td class="el-table__cell is-leaf"><div class="cell">鍐呭瓨閰嶇疆</div></td> - <td class="el-table__cell is-leaf"><div class="cell" v-if="cache.info">{{ cache.info.maxmemory_human }}</div></td> + <td class="el-table__cell is-leaf"> + <div class="cell" v-if="cache.info">{{ cache.info.maxmemory_human }}</div> + </td> </tr> <tr> <td class="el-table__cell is-leaf"><div class="cell">AOF鏄惁寮�鍚�</div></td> - <td class="el-table__cell is-leaf"><div class="cell" v-if="cache.info">{{ cache.info.aof_enabled == "0" ? "鍚�" : "鏄�" }}</div></td> + <td class="el-table__cell is-leaf"> + <div class="cell" v-if="cache.info">{{ cache.info.aof_enabled == "0" ? "鍚�" : "鏄�" }}</div> + </td> <td class="el-table__cell is-leaf"><div class="cell">RDB鏄惁鎴愬姛</div></td> - <td class="el-table__cell is-leaf"><div class="cell" v-if="cache.info">{{ cache.info.rdb_last_bgsave_status }}</div></td> + <td class="el-table__cell is-leaf"> + <div class="cell" v-if="cache.info">{{ cache.info.rdb_last_bgsave_status }}</div> + </td> <td class="el-table__cell is-leaf"><div class="cell">Key鏁伴噺</div></td> - <td class="el-table__cell is-leaf"><div class="cell" v-if="cache.dbSize">{{ cache.dbSize }} </div></td> + <td class="el-table__cell is-leaf"> + <div class="cell" v-if="cache.dbSize">{{ cache.dbSize }}</div> + </td> <td class="el-table__cell is-leaf"><div class="cell">缃戠粶鍏ュ彛/鍑哄彛</div></td> - <td class="el-table__cell is-leaf"><div class="cell" v-if="cache.info">{{ cache.info.instantaneous_input_kbps }}kps/{{cache.info.instantaneous_output_kbps}}kps</div></td> + <td class="el-table__cell is-leaf"> + <div class="cell" v-if="cache.info"> + {{ cache.info.instantaneous_input_kbps }}kps/{{ cache.info.instantaneous_output_kbps }}kps + </div> + </td> </tr> </tbody> </table> @@ -45,7 +78,10 @@ <el-col :span="12" class="card-box"> <el-card> - <template #header><PieChart style="width: 1em; height: 1em; vertical-align: middle;" /> <span style="vertical-align: middle;">鍛戒护缁熻</span></template> + <template #header + ><PieChart style="width: 1em; height: 1em; vertical-align: middle" /> + <span style="vertical-align: middle">鍛戒护缁熻</span></template + > <div class="el-table el-table--enable-row-hover el-table--medium"> <div ref="commandstats" style="height: 420px" /> </div> @@ -54,7 +90,10 @@ <el-col :span="12" class="card-box"> <el-card> - <template #header><Odometer style="width: 1em; height: 1em; vertical-align: middle;" /> <span style="vertical-align: middle;">鍐呭瓨淇℃伅</span></template> + <template #header + ><Odometer style="width: 1em; height: 1em; vertical-align: middle" /> + <span style="vertical-align: middle">鍐呭瓨淇℃伅</span></template + > <div class="el-table el-table--enable-row-hover el-table--medium"> <div ref="usedmemory" style="height: 420px" /> </div> @@ -65,25 +104,25 @@ </template> <script setup name="Cache"> -import { getCache } from '@/api/monitor/cache'; -import * as echarts from 'echarts'; +import { getCache } from "@/api/monitor/cache" +import * as echarts from "echarts" -const cache = ref([]); -const commandstats = ref(null); -const usedmemory = ref(null); -const { proxy } = getCurrentInstance(); +const cache = ref([]) +const commandstats = ref(null) +const usedmemory = ref(null) +const { proxy } = getCurrentInstance() function getList() { - proxy.$modal.loading("姝e湪鍔犺浇缂撳瓨鐩戞帶鏁版嵁锛岃绋嶅�欙紒"); - getCache().then(response => { - proxy.$modal.closeLoading(); - cache.value = response.data; + proxy.$modal.loading("姝e湪鍔犺浇缂撳瓨鐩戞帶鏁版嵁锛岃绋嶅�欙紒") + getCache().then((response) => { + proxy.$modal.closeLoading() + cache.value = response.data - const commandstatsIntance = echarts.init(commandstats.value, "macarons"); + const commandstatsIntance = echarts.init(commandstats.value, "macarons") commandstatsIntance.setOption({ tooltip: { trigger: "item", - formatter: "{a} <br/>{b} : {c} ({d}%)" + formatter: "{a} <br/>{b} : {c} ({d}%)", }, series: [ { @@ -94,14 +133,14 @@ center: ["50%", "38%"], data: response.data.commandStats, animationEasing: "cubicInOut", - animationDuration: 1000 - } - ] - }); - const usedmemoryInstance = echarts.init(usedmemory.value, "macarons"); + animationDuration: 1000, + }, + ], + }) + const usedmemoryInstance = echarts.init(usedmemory.value, "macarons") usedmemoryInstance.setOption({ tooltip: { - formatter: "{b} <br/>{a} : " + cache.value.info.used_memory_human + formatter: "{b} <br/>{a} : " + cache.value.info.used_memory_human, }, series: [ { @@ -110,23 +149,33 @@ min: 0, max: 1000, detail: { - formatter: cache.value.info.used_memory_human + formatter: cache.value.info.used_memory_human, }, data: [ { value: parseFloat(cache.value.info.used_memory_human), - name: "鍐呭瓨娑堣��" - } - ] - } - ] + name: "鍐呭瓨娑堣��", + }, + ], + }, + ], }) - window.addEventListener("resize", () => { - commandstatsIntance.resize(); - usedmemoryInstance.resize(); - },{passive: true}); + window.addEventListener( + "resize", + () => { + commandstatsIntance.resize() + usedmemoryInstance.resize() + }, + { passive: true } + ) }) } -getList(); +getList() </script> + +<style lang="scss" scoped> +.el-table { + color: #333; +} +</style> -- Gitblit v1.9.3