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

1 line
8.6 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=script&lang=js","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\\cache-loader\\dist\\cjs.js","mtime":1787309791955},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\babel-loader\\lib\\index.js","mtime":1787309793142},{"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:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KDQppbXBvcnQgeyBsaXN0RGF0YSB9IGZyb20gJ0AvYXBpL3N5c3RlbS9kaWN0L2RhdGEnDQoNCmV4cG9ydCBkZWZhdWx0IHsNCiAgcHJvcHM6IHsNCiAgICB2aXNpYmxlOiB7IHR5cGU6IEJvb2xlYW4sIGRlZmF1bHQ6IGZhbHNlIH0sDQogICAgcm93OiB7IHR5cGU6IE9iamVjdCwgZGVmYXVsdDogKCkgPT4gKHt9KSB9DQogIH0sDQogIGRhdGEoKSB7DQogICAgcmV0dXJuIHsNCiAgICAgIGxvY2FsVmlzaWJsZTogZmFsc2UsDQogICAgICBsb2FkaW5nOiBmYWxzZSwNCiAgICAgIGRhdGFMaXN0OiBbXQ0KICAgIH0NCiAgfSwNCiAgY29tcHV0ZWQ6IHsNCiAgICBkcmF3ZXJUaXRsZSgpIHsNCiAgICAgIHJldHVybiB0aGlzLnJvdy5kaWN0TmFtZSArICfjgIAnICsgKHRoaXMucm93LmRpY3RUeXBlIHx8ICcnKQ0KICAgIH0sDQogICAgbm9ybWFsQ291bnQoKSB7DQogICAgICByZXR1cm4gdGhpcy5kYXRhTGlzdC5maWx0ZXIociA9PiByLnN0YXR1cyA9PT0gJzAnKS5sZW5ndGgNCiAgICB9LA0KICAgIGRpc2FibGVkQ291bnQoKSB7DQogICAgICByZXR1cm4gdGhpcy5kYXRhTGlzdC5maWx0ZXIociA9PiByLnN0YXR1cyAhPT0gJzAnKS5sZW5ndGgNCiAgICB9DQogIH0sDQogIHdhdGNoOiB7DQogICAgdmlzaWJsZSh2YWwpIHsNCiAgICAgIHRoaXMubG9jYWxWaXNpYmxlID0gdmFsDQogICAgfSwNCiAgICBsb2NhbFZpc2libGUodmFsKSB7DQogICAgICB0aGlzLiRlbWl0KCd1cGRhdGU6dmlzaWJsZScsIHZhbCkNCiAgICAgIGlmICh2YWwpIHsNCiAgICAgICAgdGhpcy5sb2FkRGF0YSgpDQogICAgICB9IGVsc2Ugew0KICAgICAgICB0aGlzLmRhdGFMaXN0ID0gW10NCiAgICAgIH0NCiAgICB9DQogIH0sDQogIG1ldGhvZHM6IHsNCiAgICBsb2FkRGF0YSgpIHsNCiAgICAgIGlmICghdGhpcy5yb3cgfHwgIXRoaXMucm93LmRpY3RUeXBlKSByZXR1cm4NCiAgICAgIHRoaXMubG9hZGluZyA9IHRydWUNCiAgICAgIHRoaXMuZGF0YUxpc3QgPSBbXQ0KICAgICAgbGlzdERhdGEoeyBkaWN0VHlwZTogdGhpcy5yb3cuZGljdFR5cGUsIHBhZ2VTaXplOiAxMDAsIHBhZ2VOdW06IDEgfSkudGhlbihyZXNwb25zZSA9PiB7DQogICAgICAgIHRoaXMuZGF0YUxpc3QgPSByZXNwb25zZS5yb3dzIHx8IFtdDQogICAgICB9KS5jYXRjaCgoKSA9PiB7fSkuZmluYWxseSgoKSA9PiB7DQogICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlDQogICAgICB9KQ0KICAgIH0NCiAgfQ0KfQ0K"},{"version":3,"sources":["detail.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2DA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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"]}]}