Files
education/frontend/node_modules/.cache/vue-loader/aeef2a2e8945211de82eb4d5e28c45ec.json
T

1 line
9.2 KiB
JSON
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{"remainingRequest":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!C:\\Users\\Admin\\Desktop\\education\\frontend\\src\\views\\system\\dict\\detail.vue?vue&type=style&index=0&id=0d583384&scoped=true&lang=css","dependencies":[{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\src\\views\\system\\dict\\detail.vue","mtime":1787567871658},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\css-loader\\dist\\cjs.js","mtime":1787309792478},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\vue-loader\\lib\\loaders\\stylePostLoader.js","mtime":1787309794547},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\postcss-loader\\src\\index.js","mtime":1787309793084},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1787309791955},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\vue-loader\\lib\\index.js","mtime":1787309793790}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCg0KLmRyYXdlci13cmFwIHsNCiAgcGFkZGluZzogMCAyMHB4IDIwcHg7DQp9DQoNCi5kcmF3ZXItbG9hZGluZyB7DQogIGRpc3BsYXk6IGZsZXg7DQogIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogIGp1c3RpZnktY29udGVudDogY2VudGVyOw0KICBoZWlnaHQ6IDEyMHB4Ow0KICBjb2xvcjogI2FhYTsNCiAgZm9udC1zaXplOiAxM3B4Ow0KICBnYXA6IDhweDsNCn0NCg0KLmRyYXdlci1lbXB0eSB7DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCiAgY29sb3I6ICNiYmI7DQogIHBhZGRpbmc6IDYwcHggMDsNCiAgZm9udC1zaXplOiAxM3B4Ow0KfQ0KDQouZHJhd2VyLWVtcHR5IGkgew0KICBmb250LXNpemU6IDM2cHg7DQogIGRpc3BsYXk6IGJsb2NrOw0KICBtYXJnaW4tYm90dG9tOiA4cHg7DQp9DQoNCi5zdGF0LXJvdyB7DQogIG1hcmdpbi1ib3R0b206IDE2cHg7DQp9DQoNCi5zdGF0LWNhcmQgew0KICBiYWNrZ3JvdW5kOiAjZjdmOWZiOw0KICBib3JkZXI6IDFweCBzb2xpZCAjZThlY2YwOw0KICBib3JkZXItcmFkaXVzOiA2cHg7DQogIHBhZGRpbmc6IDEwcHggMTRweDsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQouc3RhdC1udW0gew0KICBmb250LXNpemU6IDIycHg7DQogIGZvbnQtd2VpZ2h0OiA3MDA7DQogIGNvbG9yOiAjMmMzZTUwOw0KfQ0KDQouc3RhdC1udW0uc3VjY2VzcyB7IGNvbG9yOiAjMjdhZTYwOyB9DQouc3RhdC1udW0uZGFuZ2VyICB7IGNvbG9yOiAjZTc0YzNjOyB9DQoNCi5zdGF0LWxhYmVsIHsNCiAgZm9udC1zaXplOiAxMXB4Ow0KICBjb2xvcjogIzk1YTVhNjsNCiAgbWFyZ2luLXRvcDogNHB4Ow0KfQ0KDQouZGljdC1pdGVtIHsNCiAgZGlzcGxheTogZ3JpZDsNCiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyIDFmcjsNCiAgYm9yZGVyOiAxcHggc29saWQgI2U4ZWNmMDsNCiAgYm9yZGVyLXJhZGl1czogNnB4Ow0KICBvdmVyZmxvdzogaGlkZGVuOw0KICBtYXJnaW4tYm90dG9tOiA4cHg7DQp9DQoNCi5kaWN0LWNlbGwgew0KICBkaXNwbGF5OiBncmlkOw0KICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDcwcHggMWZyOw0KICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZjBmNGY4Ow0KfQ0KDQouZGljdC1jZWxsOmxhc3QtY2hpbGQgew0KICBib3JkZXItcmlnaHQ6IDA7DQp9DQoNCi5kaWN0LWNlbGwta2V5IHsNCiAgcGFkZGluZzogOXB4IDE0cHg7DQogIGZvbnQtc2l6ZTogMTJweDsNCiAgY29sb3I6ICM4ODg7DQogIGJhY2tncm91bmQ6ICNmN2Y5ZmI7DQogIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNmMGY0Zjg7DQp9DQoNCi5kaWN0LWNlbGwtdmFsIHsNCiAgcGFkZGluZzogOXB4IDE0cHg7DQogIGZvbnQtc2l6ZTogMTNweDsNCiAgY29sb3I6ICMyYzNlNTA7DQogIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsNCiAgZGlzcGxheTogZmxleDsNCiAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCn0NCg=="},{"version":3,"sources":["detail.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiHA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"detail.vue","sourceRoot":"src/views/system/dict","sourcesContent":["<template>\r\n <el-drawer :title=\"drawerTitle\" :visible.sync=\"localVisible\" direction=\"rtl\" size=\"700px\" append-to-body>\r\n <div class=\"drawer-wrap\">\r\n <div v-if=\"loading\" class=\"drawer-loading\">\r\n <i class=\"el-icon-loading\"></i>\r\n <span>加载中...</span>\r\n </div>\r\n <div v-else-if=\"!dataList.length\" class=\"drawer-empty\">\r\n <i class=\"el-icon-document\"></i>\r\n <div>暂无字典数据</div>\r\n </div>\r\n <template v-else>\r\n <el-row :gutter=\"12\" class=\"stat-row\">\r\n <el-col :span=\"disabledCount > 0 ? 8 : 12\">\r\n <div class=\"stat-card\">\r\n <div class=\"stat-num\">{{ dataList.length }}</div>\r\n <div class=\"stat-label\">共计条目</div>\r\n </div>\r\n </el-col>\r\n <el-col :span=\"disabledCount > 0 ? 8 : 12\">\r\n <div class=\"stat-card\">\r\n <div class=\"stat-num success\">{{ normalCount }}</div>\r\n <div class=\"stat-label\">正常</div>\r\n </div>\r\n </el-col>\r\n <el-col :span=\"8\" v-if=\"disabledCount > 0\">\r\n <div class=\"stat-card\">\r\n <div class=\"stat-num danger\">{{ disabledCount }}</div>\r\n <div class=\"stat-label\">停用</div>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n <div v-for=\"item in dataList\" :key=\"item.dictCode\" class=\"dict-item\">\r\n <div class=\"dict-cell\">\r\n <div class=\"dict-cell-key\">标签</div>\r\n <div class=\"dict-cell-val\">\r\n <el-tag v-if=\"item.listClass && item.listClass !== 'default'\" :type=\"item.listClass === 'primary' ? '' : item.listClass\" size=\"small\">{{ item.dictLabel }}</el-tag>\r\n <span v-else>{{ item.dictLabel }}</span>\r\n </div>\r\n </div>\r\n <div class=\"dict-cell\">\r\n <div class=\"dict-cell-key\">键值</div>\r\n <div class=\"dict-cell-val\">{{ item.dictValue }}</div>\r\n </div>\r\n <div class=\"dict-cell\">\r\n <div class=\"dict-cell-key\">状态</div>\r\n <div class=\"dict-cell-val\">\r\n <el-tag :type=\"item.status === '0' ? 'success' : 'danger'\" size=\"small\">\r\n {{ item.status === '0' ? '正常' : '停用' }}\r\n </el-tag>\r\n </div>\r\n </div>\r\n </div>\r\n </template>\r\n </div>\r\n </el-drawer>\r\n</template>\r\n\r\n<script>\r\nimport { listData } from '@/api/system/dict/data'\r\n\r\nexport default {\r\n props: {\r\n visible: { type: Boolean, default: false },\r\n row: { type: Object, default: () => ({}) }\r\n },\r\n data() {\r\n return {\r\n localVisible: false,\r\n loading: false,\r\n dataList: []\r\n }\r\n },\r\n computed: {\r\n drawerTitle() {\r\n return this.row.dictName + ' ' + (this.row.dictType || '')\r\n },\r\n normalCount() {\r\n return this.dataList.filter(r => r.status === '0').length\r\n },\r\n disabledCount() {\r\n return this.dataList.filter(r => r.status !== '0').length\r\n }\r\n },\r\n watch: {\r\n visible(val) {\r\n this.localVisible = val\r\n },\r\n localVisible(val) {\r\n this.$emit('update:visible', val)\r\n if (val) {\r\n this.loadData()\r\n } else {\r\n this.dataList = []\r\n }\r\n }\r\n },\r\n methods: {\r\n loadData() {\r\n if (!this.row || !this.row.dictType) return\r\n this.loading = true\r\n this.dataList = []\r\n listData({ dictType: this.row.dictType, pageSize: 100, pageNum: 1 }).then(response => {\r\n this.dataList = response.rows || []\r\n }).catch(() => {}).finally(() => {\r\n this.loading = false\r\n })\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n.drawer-wrap {\r\n padding: 0 20px 20px;\r\n}\r\n\r\n.drawer-loading {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n height: 120px;\r\n color: #aaa;\r\n font-size: 13px;\r\n gap: 8px;\r\n}\r\n\r\n.drawer-empty {\r\n text-align: center;\r\n color: #bbb;\r\n padding: 60px 0;\r\n font-size: 13px;\r\n}\r\n\r\n.drawer-empty i {\r\n font-size: 36px;\r\n display: block;\r\n margin-bottom: 8px;\r\n}\r\n\r\n.stat-row {\r\n margin-bottom: 16px;\r\n}\r\n\r\n.stat-card {\r\n background: #f7f9fb;\r\n border: 1px solid #e8ecf0;\r\n border-radius: 6px;\r\n padding: 10px 14px;\r\n text-align: center;\r\n}\r\n\r\n.stat-num {\r\n font-size: 22px;\r\n font-weight: 700;\r\n color: #2c3e50;\r\n}\r\n\r\n.stat-num.success { color: #27ae60; }\r\n.stat-num.danger { color: #e74c3c; }\r\n\r\n.stat-label {\r\n font-size: 11px;\r\n color: #95a5a6;\r\n margin-top: 4px;\r\n}\r\n\r\n.dict-item {\r\n display: grid;\r\n grid-template-columns: 1fr 1fr 1fr;\r\n border: 1px solid #e8ecf0;\r\n border-radius: 6px;\r\n overflow: hidden;\r\n margin-bottom: 8px;\r\n}\r\n\r\n.dict-cell {\r\n display: grid;\r\n grid-template-columns: 70px 1fr;\r\n border-right: 1px solid #f0f4f8;\r\n}\r\n\r\n.dict-cell:last-child {\r\n border-right: 0;\r\n}\r\n\r\n.dict-cell-key {\r\n padding: 9px 14px;\r\n font-size: 12px;\r\n color: #888;\r\n background: #f7f9fb;\r\n border-right: 1px solid #f0f4f8;\r\n}\r\n\r\n.dict-cell-val {\r\n padding: 9px 14px;\r\n font-size: 13px;\r\n color: #2c3e50;\r\n word-break: break-all;\r\n display: flex;\r\n align-items: center;\r\n}\r\n</style>\r\n"]}]}