forked from liweijie/education
1 line
11 KiB
JSON
1 line
11 KiB
JSON
{"remainingRequest":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\babel-loader\\lib\\index.js!C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!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},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\babel.config.js","mtime":1787567871334},{"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:InVzZSBzdHJpY3QiOwoKT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICJfX2VzTW9kdWxlIiwgewogIHZhbHVlOiB0cnVlCn0pOwpleHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7CnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5maWx0ZXIuanMiKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5pdGVyYXRvci5jb25zdHJ1Y3Rvci5qcyIpOwpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXNuZXh0Lml0ZXJhdG9yLmZpbHRlci5qcyIpOwp2YXIgX2RhdGEgPSByZXF1aXJlKCJAL2FwaS9zeXN0ZW0vZGljdC9kYXRhIik7Ci8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCnZhciBfZGVmYXVsdDIgPSBleHBvcnRzLmRlZmF1bHQgPSB7CiAgcHJvcHM6IHsKICAgIHZpc2libGU6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogZmFsc2UKICAgIH0sCiAgICByb3c6IHsKICAgICAgdHlwZTogT2JqZWN0LAogICAgICBkZWZhdWx0OiBmdW5jdGlvbiBfZGVmYXVsdCgpIHsKICAgICAgICByZXR1cm4ge307CiAgICAgIH0KICAgIH0KICB9LAogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICBsb2NhbFZpc2libGU6IGZhbHNlLAogICAgICBsb2FkaW5nOiBmYWxzZSwKICAgICAgZGF0YUxpc3Q6IFtdCiAgICB9OwogIH0sCiAgY29tcHV0ZWQ6IHsKICAgIGRyYXdlclRpdGxlOiBmdW5jdGlvbiBkcmF3ZXJUaXRsZSgpIHsKICAgICAgcmV0dXJuIHRoaXMucm93LmRpY3ROYW1lICsgJ+OAgCcgKyAodGhpcy5yb3cuZGljdFR5cGUgfHwgJycpOwogICAgfSwKICAgIG5vcm1hbENvdW50OiBmdW5jdGlvbiBub3JtYWxDb3VudCgpIHsKICAgICAgcmV0dXJuIHRoaXMuZGF0YUxpc3QuZmlsdGVyKGZ1bmN0aW9uIChyKSB7CiAgICAgICAgcmV0dXJuIHIuc3RhdHVzID09PSAnMCc7CiAgICAgIH0pLmxlbmd0aDsKICAgIH0sCiAgICBkaXNhYmxlZENvdW50OiBmdW5jdGlvbiBkaXNhYmxlZENvdW50KCkgewogICAgICByZXR1cm4gdGhpcy5kYXRhTGlzdC5maWx0ZXIoZnVuY3Rpb24gKHIpIHsKICAgICAgICByZXR1cm4gci5zdGF0dXMgIT09ICcwJzsKICAgICAgfSkubGVuZ3RoOwogICAgfQogIH0sCiAgd2F0Y2g6IHsKICAgIHZpc2libGU6IGZ1bmN0aW9uIHZpc2libGUodmFsKSB7CiAgICAgIHRoaXMubG9jYWxWaXNpYmxlID0gdmFsOwogICAgfSwKICAgIGxvY2FsVmlzaWJsZTogZnVuY3Rpb24gbG9jYWxWaXNpYmxlKHZhbCkgewogICAgICB0aGlzLiRlbWl0KCd1cGRhdGU6dmlzaWJsZScsIHZhbCk7CiAgICAgIGlmICh2YWwpIHsKICAgICAgICB0aGlzLmxvYWREYXRhKCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5kYXRhTGlzdCA9IFtdOwogICAgICB9CiAgICB9CiAgfSwKICBtZXRob2RzOiB7CiAgICBsb2FkRGF0YTogZnVuY3Rpb24gbG9hZERhdGEoKSB7CiAgICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICAgIGlmICghdGhpcy5yb3cgfHwgIXRoaXMucm93LmRpY3RUeXBlKSByZXR1cm47CiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7CiAgICAgIHRoaXMuZGF0YUxpc3QgPSBbXTsKICAgICAgKDAsIF9kYXRhLmxpc3REYXRhKSh7CiAgICAgICAgZGljdFR5cGU6IHRoaXMucm93LmRpY3RUeXBlLAogICAgICAgIHBhZ2VTaXplOiAxMDAsCiAgICAgICAgcGFnZU51bTogMQogICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICAgIF90aGlzLmRhdGFMaXN0ID0gcmVzcG9uc2Uucm93cyB8fCBbXTsKICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkge30pLmZpbmFsbHkoZnVuY3Rpb24gKCkgewogICAgICAgIF90aGlzLmxvYWRpbmcgPSBmYWxzZTsKICAgICAgfSk7CiAgICB9CiAgfQp9Ow=="},{"version":3,"names":["_data","require","props","visible","type","Boolean","default","row","Object","data","localVisible","loading","dataList","computed","drawerTitle","dictName","dictType","normalCount","filter","r","status","length","disabledCount","watch","val","$emit","loadData","methods","_this","listData","pageSize","pageNum","then","response","rows","catch","finally"],"sources":["src/views/system/dict/detail.vue"],"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"],"mappings":";;;;;;;;;;AA2DA,IAAAA,KAAA,GAAAC,OAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAEA;EACAC,KAAA;IACAC,OAAA;MAAAC,IAAA,EAAAC,OAAA;MAAAC,OAAA;IAAA;IACAC,GAAA;MAAAH,IAAA,EAAAI,MAAA;MAAAF,OAAA,WAAAA,SAAA;QAAA;MAAA;IAAA;EACA;EACAG,IAAA,WAAAA,KAAA;IACA;MACAC,YAAA;MACAC,OAAA;MACAC,QAAA;IACA;EACA;EACAC,QAAA;IACAC,WAAA,WAAAA,YAAA;MACA,YAAAP,GAAA,CAAAQ,QAAA,eAAAR,GAAA,CAAAS,QAAA;IACA;IACAC,WAAA,WAAAA,YAAA;MACA,YAAAL,QAAA,CAAAM,MAAA,WAAAC,CAAA;QAAA,OAAAA,CAAA,CAAAC,MAAA;MAAA,GAAAC,MAAA;IACA;IACAC,aAAA,WAAAA,cAAA;MACA,YAAAV,QAAA,CAAAM,MAAA,WAAAC,CAAA;QAAA,OAAAA,CAAA,CAAAC,MAAA;MAAA,GAAAC,MAAA;IACA;EACA;EACAE,KAAA;IACApB,OAAA,WAAAA,QAAAqB,GAAA;MACA,KAAAd,YAAA,GAAAc,GAAA;IACA;IACAd,YAAA,WAAAA,aAAAc,GAAA;MACA,KAAAC,KAAA,mBAAAD,GAAA;MACA,IAAAA,GAAA;QACA,KAAAE,QAAA;MACA;QACA,KAAAd,QAAA;MACA;IACA;EACA;EACAe,OAAA;IACAD,QAAA,WAAAA,SAAA;MAAA,IAAAE,KAAA;MACA,UAAArB,GAAA,UAAAA,GAAA,CAAAS,QAAA;MACA,KAAAL,OAAA;MACA,KAAAC,QAAA;MACA,IAAAiB,cAAA;QAAAb,QAAA,OAAAT,GAAA,CAAAS,QAAA;QAAAc,QAAA;QAAAC,OAAA;MAAA,GAAAC,IAAA,WAAAC,QAAA;QACAL,KAAA,CAAAhB,QAAA,GAAAqB,QAAA,CAAAC,IAAA;MACA,GAAAC,KAAA,iBAAAC,OAAA;QACAR,KAAA,CAAAjB,OAAA;MACA;IACA;EACA;AACA","ignoreList":[]}]} |