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