1 line
19 KiB
JSON
1 line
19 KiB
JSON
{"remainingRequest":"D:\\guoan\\ts-bigscreen-vue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\babel-loader\\lib\\index.js!D:\\guoan\\ts-bigscreen-vue\\node_modules\\@vue\\vue-loader-v15\\lib\\index.js??vue-loader-options!D:\\guoan\\ts-bigscreen-vue\\src\\views\\detail\\CardDetail.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\guoan\\ts-bigscreen-vue\\src\\views\\detail\\CardDetail.vue","mtime":1740993295484},{"path":"D:\\guoan\\ts-bigscreen-vue\\babel.config.js","mtime":1740967860001},{"path":"D:\\guoan\\ts-bigscreen-vue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1740984332670},{"path":"D:\\guoan\\ts-bigscreen-vue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\babel-loader\\lib\\index.js","mtime":1740984332280},{"path":"D:\\guoan\\ts-bigscreen-vue\\node_modules\\@vue\\vue-loader-v15\\lib\\index.js","mtime":1740984469533}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkucHVzaC5qcyI7CmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAiQ2FyZERldGFpbCIsCiAgZGF0YTogZnVuY3Rpb24gZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIHNlbGVjdGVkWWVhcjogIjIwMjQiLAogICAgICBzZWxlY3RlZERhdGU6IG5ldyBEYXRlKCksCiAgICAgIHllYXJzOiBbIjIwMjQiLCAiMjAyMyIsICIyMDIyIiwgIjIwMjEiXSwKICAgICAgb3ZlcnZpZXdEYXRhOiBbewogICAgICAgIGxhYmVsOiAi5Y+R5Y2h5oC76YePIiwKICAgICAgICB2YWx1ZTogIjI4LDU4NiIsCiAgICAgICAgdHJlbmQ6ICJ1cCIsCiAgICAgICAgdHJlbmRWYWx1ZTogMwogICAgICB9LCB7CiAgICAgICAgbGFiZWw6ICLml6XlnYfmtojotLnpop0o5YWDKSIsCiAgICAgICAgdmFsdWU6ICIyNTYsODkwIiwKICAgICAgICB0cmVuZDogInVwIiwKICAgICAgICB0cmVuZFZhbHVlOiA1CiAgICAgIH0sIHsKICAgICAgICBsYWJlbDogIuaXpeWdh+S9v+eUqOasoeaVsCIsCiAgICAgICAgdmFsdWU6ICI4NSw2MzAiLAogICAgICAgIHRyZW5kOiAidXAiLAogICAgICAgIHRyZW5kVmFsdWU6IDgKICAgICAgfSwgewogICAgICAgIGxhYmVsOiAi5Y2h54mH5a6M5aW9546HIiwKICAgICAgICB2YWx1ZTogIjk5LjIlIiwKICAgICAgICB0cmVuZDogInVwIiwKICAgICAgICB0cmVuZFZhbHVlOiAwLjUKICAgICAgfV0sCiAgICAgIGNvbnN1bXB0aW9uRGF0YTogewogICAgICAgIGNvbHVtbnM6IFsi5pe26Ze0IiwgIua2iOi0uemHkeminSIsICLmtojotLnnrJTmlbAiXSwKICAgICAgICByb3dzOiBbewogICAgICAgICAg5pe26Ze0OiAiNjowMCIsCiAgICAgICAgICDmtojotLnph5Hpop06IDUwMDAsCiAgICAgICAgICDmtojotLnnrJTmlbA6IDUwMAogICAgICAgIH0sIHsKICAgICAgICAgIOaXtumXtDogIjg6MDAiLAogICAgICAgICAg5raI6LS56YeR6aKdOiAyNTAwMCwKICAgICAgICAgIOa2iOi0ueeslOaVsDogMjUwMAogICAgICAgIH0sIHsKICAgICAgICAgIOaXtumXtDogIjEyOjAwIiwKICAgICAgICAgIOa2iOi0uemHkeminTogODUwMDAsCiAgICAgICAgICDmtojotLnnrJTmlbA6IDg1MDAKICAgICAgICB9LCB7CiAgICAgICAgICDml7bpl7Q6ICIxNTowMCIsCiAgICAgICAgICDmtojotLnph5Hpop06IDQ1MDAwLAogICAgICAgICAg5raI6LS556yU5pWwOiA0NTAwCiAgICAgICAgfSwgewogICAgICAgICAg5pe26Ze0OiAiMTg6MDAiLAogICAgICAgICAg5raI6LS56YeR6aKdOiA2NTAwMCwKICAgICAgICAgIOa2iOi0ueeslOaVsDogNjUwMAogICAgICAgIH0sIHsKICAgICAgICAgIOaXtumXtDogIjIxOjAwIiwKICAgICAgICAgIOa2iOi0uemHkeminTogMzUwMDAsCiAgICAgICAgICDmtojotLnnrJTmlbA6IDM1MDAKICAgICAgICB9XQogICAgICB9LAogICAgICBsaW5lU2V0dGluZ3M6IHsKICAgICAgICBheGlzU2l0ZTogewogICAgICAgICAgcmlnaHQ6IFsi5raI6LS556yU5pWwIl0KICAgICAgICB9LAogICAgICAgIHlBeGlzVHlwZTogWyJub3JtYWwiLCAibm9ybWFsIl0sCiAgICAgICAgeUF4aXNOYW1lOiBbIumHkeminSIsICLnrJTmlbAiXQogICAgICB9LAogICAgICBsb2NhdGlvbkRhdGE6IHsKICAgICAgICBjb2x1bW5zOiBbIuWcuuaJgCIsICLmtojotLnpop0iXSwKICAgICAgICByb3dzOiBbewogICAgICAgICAg5Zy65omAOiAi6aOf5aCCIiwKICAgICAgICAgIOa2iOi0ueminTogMTUwMDAwCiAgICAgICAgfSwgewogICAgICAgICAg5Zy65omAOiAi6LaF5biCIiwKICAgICAgICAgIOa2iOi0ueminTogNTAwMDAKICAgICAgICB9LCB7CiAgICAgICAgICDlnLrmiYA6ICLlm77kuabppoYiLAogICAgICAgICAg5raI6LS56aKdOiAyMDAwMAogICAgICAgIH0sIHsKICAgICAgICAgIOWcuuaJgDogIua1tOWupCIsCiAgICAgICAgICDmtojotLnpop06IDI1MDAwCiAgICAgICAgfSwgewogICAgICAgICAg5Zy65omAOiAi5YW25LuWIiwKICAgICAgICAgIOa2iOi0ueminTogMTAwMDAKICAgICAgICB9XQogICAgICB9LAogICAgICBwaWVTZXR0aW5nczogewogICAgICAgIHJhZGl1czogIjY1JSIsCiAgICAgICAgb2Zmc2V0WTogIjYwJSIKICAgICAgfSwKICAgICAgYWNjZXNzRGF0YTogewogICAgICAgIGNvbHVtbnM6IFsi5pe26Ze05q61IiwgIuWbvuS5pummhiIsICLlrr/oiI0iLCAi5pWZ5a2m5qW8Il0sCiAgICAgICAgcm93czogW3sKICAgICAgICAgIOaXtumXtOautTogIjY6MDAtOTowMCIsCiAgICAgICAgICDlm77kuabppoY6IDUwMCwKICAgICAgICAgIOWuv+iIjTogMjUwMCwKICAgICAgICAgIOaVmeWtpualvDogMTUwMAogICAgICAgIH0sIHsKICAgICAgICAgIOaXtumXtOautTogIjk6MDAtMTI6MDAiLAogICAgICAgICAg5Zu+5Lmm6aaGOiAyNTAwLAogICAgICAgICAg5a6/6IiNOiAxMDAwLAogICAgICAgICAg5pWZ5a2m5qW8OiAzNTAwCiAgICAgICAgfSwgewogICAgICAgICAg5pe26Ze05q61OiAiMTI6MDAtMTU6MDAiLAogICAgICAgICAg5Zu+5Lmm6aaGOiAxODAwLAogICAgICAgICAg5a6/6IiNOiAxODAwLAogICAgICAgICAg5pWZ5a2m5qW8OiAyNTAwCiAgICAgICAgfSwgewogICAgICAgICAg5pe26Ze05q61OiAiMTU6MDAtMTg6MDAiLAogICAgICAgICAg5Zu+5Lmm6aaGOiAyMDAwLAogICAgICAgICAg5a6/6IiNOiAxNTAwLAogICAgICAgICAg5pWZ5a2m5qW8OiAyMDAwCiAgICAgICAgfSwgewogICAgICAgICAg5pe26Ze05q61OiAiMTg6MDAtMjI6MDAiLAogICAgICAgICAg5Zu+5Lmm6aaGOiAxNTAwLAogICAgICAgICAg5a6/6IiNOiAzNTAwLAogICAgICAgICAg5pWZ5a2m5qW8OiAxMDAwCiAgICAgICAgfV0KICAgICAgfSwKICAgICAgaGlzdG9ncmFtU2V0dGluZ3M6IHsKICAgICAgICBzdGFjazogewogICAgICAgICAg57G75Z6LOiBbIuWbvuS5pummhiIsICLlrr/oiI0iLCAi5pWZ5a2m5qW8Il0KICAgICAgICB9CiAgICAgIH0sCiAgICAgIGNhcmRTZXJ2aWNlRGF0YTogewogICAgICAgIGNvbHVtbnM6IFsi5pyN5Yqh57G75Z6LIiwgIuaVsOmHjyJdLAogICAgICAgIHJvd3M6IFt7CiAgICAgICAgICDmnI3liqHnsbvlnos6ICLmlrDljaHlip7nkIYiLAogICAgICAgICAg5pWw6YePOiAyNTYKICAgICAgICB9LCB7CiAgICAgICAgICDmnI3liqHnsbvlnos6ICLmjILlpLEiLAogICAgICAgICAg5pWw6YePOiAxNTgKICAgICAgICB9LCB7CiAgICAgICAgICDmnI3liqHnsbvlnos6ICLop6PmjIIiLAogICAgICAgICAg5pWw6YePOiAxNDIKICAgICAgICB9LCB7CiAgICAgICAgICDmnI3liqHnsbvlnos6ICLooaXlip4iLAogICAgICAgICAg5pWw6YePOiA4NgogICAgICAgIH0sIHsKICAgICAgICAgIOacjeWKoeexu+WeizogIuazqOmUgCIsCiAgICAgICAgICDmlbDph486IDM1CiAgICAgICAgfV0KICAgICAgfSwKICAgICAgYWJub3JtYWxSZWNvcmRzOiBbewogICAgICAgIHRpbWU6ICIyMDIzLTA2LTIwIDA4OjI1OjM2IiwKICAgICAgICBjYXJkTm86ICIyMDIzMDAxIiwKICAgICAgICBsb2NhdGlvbjogIuWbvuS5pummhiIsCiAgICAgICAgdHlwZTogIumHjeWkjeWIt+WNoSIsCiAgICAgICAgc3RhdHVzOiAi5bey5aSE55CGIgogICAgICB9LCB7CiAgICAgICAgdGltZTogIjIwMjMtMDYtMjAgMTI6MTU6NDIiLAogICAgICAgIGNhcmRObzogIjIwMjMxNTgiLAogICAgICAgIGxvY2F0aW9uOiAi6aOf5aCCIiwKICAgICAgICB0eXBlOiAi5L2Z6aKd5byC5bi4IiwKICAgICAgICBzdGF0dXM6ICLlpITnkIbkuK0iCiAgICAgIH0sIHsKICAgICAgICB0aW1lOiAiMjAyMy0wNi0yMCAxNTozMDoxOCIsCiAgICAgICAgY2FyZE5vOiAiMjAyMzI4NiIsCiAgICAgICAgbG9jYXRpb246ICLlrr/oiI0iLAogICAgICAgIHR5cGU6ICLliLfljaHlpLHotKUiLAogICAgICAgIHN0YXR1czogIuacquWkhOeQhiIKICAgICAgfSwgewogICAgICAgIHRpbWU6ICIyMDIzLTA2LTIwIDE4OjQ1OjU1IiwKICAgICAgICBjYXJkTm86ICIyMDIzNDI1IiwKICAgICAgICBsb2NhdGlvbjogIui2heW4giIsCiAgICAgICAgdHlwZTogIumHjeWkjea2iOi0uSIsCiAgICAgICAgc3RhdHVzOiAi5bey5aSE55CGIgogICAgICB9XQogICAgfTsKICB9LAogIG1ldGhvZHM6IHsKICAgIGdvQmFjazogZnVuY3Rpb24gZ29CYWNrKCkgewogICAgICB0aGlzLiRyb3V0ZXIucHVzaCgiLyIpOwogICAgfSwKICAgIGdldEFibm9ybWFsVHlwZTogZnVuY3Rpb24gZ2V0QWJub3JtYWxUeXBlKHR5cGUpIHsKICAgICAgdmFyIHR5cGVzID0gewogICAgICAgIOmHjeWkjeWIt+WNoTogIndhcm5pbmciLAogICAgICAgIOS9memineW8guW4uDogImRhbmdlciIsCiAgICAgICAg5Yi35Y2h5aSx6LSlOiAiaW5mbyIsCiAgICAgICAg6YeN5aSN5raI6LS5OiAid2FybmluZyIKICAgICAgfTsKICAgICAgcmV0dXJuIHR5cGVzW3R5cGVdIHx8ICJpbmZvIjsKICAgIH0sCiAgICBnZXRTdGF0dXNUeXBlOiBmdW5jdGlvbiBnZXRTdGF0dXNUeXBlKHN0YXR1cykgewogICAgICB2YXIgdHlwZXMgPSB7CiAgICAgICAg5bey5aSE55CGOiAic3VjY2VzcyIsCiAgICAgICAg5aSE55CG5LitOiAicHJpbWFyeSIsCiAgICAgICAg5pyq5aSE55CGOiAiZGFuZ2VyIgogICAgICB9OwogICAgICByZXR1cm4gdHlwZXNbc3RhdHVzXSB8fCAiaW5mbyI7CiAgICB9CiAgfQp9Ow=="},{"version":3,"names":["name","data","selectedYear","selectedDate","Date","years","overviewData","label","value","trend","trendValue","consumptionData","columns","rows","时间","消费金额","消费笔数","lineSettings","axisSite","right","yAxisType","yAxisName","locationData","场所","消费额","pieSettings","radius","offsetY","accessData","时间段","图书馆","宿舍","教学楼","histogramSettings","stack","类型","cardServiceData","服务类型","数量","abnormalRecords","time","cardNo","location","type","status","methods","goBack","$router","push","getAbnormalType","types","重复刷卡","余额异常","刷卡失败","重复消费","getStatusType","已处理","处理中","未处理"],"sources":["src/views/detail/CardDetail.vue"],"sourcesContent":["<template>\r\n <div class=\"card-detail\">\r\n <div class=\"header\">\r\n <el-page-header @back=\"goBack\" content=\"一卡通详情\" />\r\n <div class=\"filters\">\r\n <el-select v-model=\"selectedYear\" placeholder=\"选择年份\">\r\n <el-option\r\n v-for=\"year in years\"\r\n :key=\"year\"\r\n :label=\"year\"\r\n :value=\"year\"\r\n />\r\n </el-select>\r\n <el-date-picker\r\n v-model=\"selectedDate\"\r\n type=\"date\"\r\n placeholder=\"选择日期\"\r\n size=\"small\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <el-row :gutter=\"20\" class=\"overview-cards\">\r\n <el-col :span=\"6\" v-for=\"(item, index) in overviewData\" :key=\"index\">\r\n <el-card shadow=\"hover\" class=\"overview-card\">\r\n <div class=\"card-content\">\r\n <div class=\"value\">{{ item.value }}</div>\r\n <div class=\"label\">{{ item.label }}</div>\r\n <div class=\"trend\" :class=\"item.trend\">\r\n {{ item.trendValue }}%\r\n <i\r\n :class=\"item.trend === 'up' ? 'el-icon-top' : 'el-icon-bottom'\"\r\n ></i>\r\n </div>\r\n </div>\r\n </el-card>\r\n </el-col>\r\n </el-row>\r\n\r\n <el-row :gutter=\"20\" class=\"charts-row\">\r\n <el-col :span=\"12\">\r\n <el-card class=\"chart-card\">\r\n <div slot=\"header\">\r\n <span>消费趋势分析</span>\r\n </div>\r\n <ve-line\r\n :data=\"consumptionData\"\r\n :settings=\"lineSettings\"\r\n height=\"300px\"\r\n />\r\n </el-card>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-card class=\"chart-card\">\r\n <div slot=\"header\">\r\n <span>消费场所分布</span>\r\n </div>\r\n <ve-pie :data=\"locationData\" :settings=\"pieSettings\" height=\"300px\" />\r\n </el-card>\r\n </el-col>\r\n </el-row>\r\n\r\n <el-row :gutter=\"20\" class=\"charts-row\">\r\n <el-col :span=\"12\">\r\n <el-card class=\"chart-card\">\r\n <div slot=\"header\">\r\n <span>门禁使用分析</span>\r\n </div>\r\n <ve-histogram\r\n :data=\"accessData\"\r\n :settings=\"histogramSettings\"\r\n height=\"300px\"\r\n />\r\n </el-card>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-card class=\"chart-card\">\r\n <div slot=\"header\">\r\n <span>卡务办理统计</span>\r\n </div>\r\n <ve-bar :data=\"cardServiceData\" height=\"300px\" />\r\n </el-card>\r\n </el-col>\r\n </el-row>\r\n\r\n <el-card class=\"table-card\">\r\n <div slot=\"header\">\r\n <span>异常记录</span>\r\n <el-button style=\"float: right\" type=\"text\">查看全部</el-button>\r\n </div>\r\n <el-table :data=\"abnormalRecords\" style=\"width: 100%\">\r\n <el-table-column prop=\"time\" label=\"时间\" width=\"180\" />\r\n <el-table-column prop=\"cardNo\" label=\"卡号\" width=\"120\" />\r\n <el-table-column prop=\"location\" label=\"地点\" />\r\n <el-table-column prop=\"type\" label=\"类型\" width=\"120\">\r\n <template slot-scope=\"scope\">\r\n <el-tag :type=\"getAbnormalType(scope.row.type)\">\r\n {{ scope.row.type }}\r\n </el-tag>\r\n </template>\r\n </el-table-column>\r\n <el-table-column prop=\"status\" label=\"处理状态\" width=\"120\">\r\n <template slot-scope=\"scope\">\r\n <el-tag :type=\"getStatusType(scope.row.status)\">\r\n {{ scope.row.status }}\r\n </el-tag>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n </el-card>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n name: \"CardDetail\",\r\n data() {\r\n return {\r\n selectedYear: \"2024\",\r\n selectedDate: new Date(),\r\n years: [\"2024\", \"2023\", \"2022\", \"2021\"],\r\n overviewData: [\r\n { label: \"发卡总量\", value: \"28,586\", trend: \"up\", trendValue: 3 },\r\n {\r\n label: \"日均消费额(元)\",\r\n value: \"256,890\",\r\n trend: \"up\",\r\n trendValue: 5,\r\n },\r\n { label: \"日均使用次数\", value: \"85,630\", trend: \"up\", trendValue: 8 },\r\n { label: \"卡片完好率\", value: \"99.2%\", trend: \"up\", trendValue: 0.5 },\r\n ],\r\n consumptionData: {\r\n columns: [\"时间\", \"消费金额\", \"消费笔数\"],\r\n rows: [\r\n { 时间: \"6:00\", 消费金额: 5000, 消费笔数: 500 },\r\n { 时间: \"8:00\", 消费金额: 25000, 消费笔数: 2500 },\r\n { 时间: \"12:00\", 消费金额: 85000, 消费笔数: 8500 },\r\n { 时间: \"15:00\", 消费金额: 45000, 消费笔数: 4500 },\r\n { 时间: \"18:00\", 消费金额: 65000, 消费笔数: 6500 },\r\n { 时间: \"21:00\", 消费金额: 35000, 消费笔数: 3500 },\r\n ],\r\n },\r\n lineSettings: {\r\n axisSite: { right: [\"消费笔数\"] },\r\n yAxisType: [\"normal\", \"normal\"],\r\n yAxisName: [\"金额\", \"笔数\"],\r\n },\r\n locationData: {\r\n columns: [\"场所\", \"消费额\"],\r\n rows: [\r\n { 场所: \"食堂\", 消费额: 150000 },\r\n { 场所: \"超市\", 消费额: 50000 },\r\n { 场所: \"图书馆\", 消费额: 20000 },\r\n { 场所: \"浴室\", 消费额: 25000 },\r\n { 场所: \"其他\", 消费额: 10000 },\r\n ],\r\n },\r\n pieSettings: {\r\n radius: \"65%\",\r\n offsetY: \"60%\",\r\n },\r\n accessData: {\r\n columns: [\"时间段\", \"图书馆\", \"宿舍\", \"教学楼\"],\r\n rows: [\r\n { 时间段: \"6:00-9:00\", 图书馆: 500, 宿舍: 2500, 教学楼: 1500 },\r\n { 时间段: \"9:00-12:00\", 图书馆: 2500, 宿舍: 1000, 教学楼: 3500 },\r\n { 时间段: \"12:00-15:00\", 图书馆: 1800, 宿舍: 1800, 教学楼: 2500 },\r\n { 时间段: \"15:00-18:00\", 图书馆: 2000, 宿舍: 1500, 教学楼: 2000 },\r\n { 时间段: \"18:00-22:00\", 图书馆: 1500, 宿舍: 3500, 教学楼: 1000 },\r\n ],\r\n },\r\n histogramSettings: {\r\n stack: { 类型: [\"图书馆\", \"宿舍\", \"教学楼\"] },\r\n },\r\n cardServiceData: {\r\n columns: [\"服务类型\", \"数量\"],\r\n rows: [\r\n { 服务类型: \"新卡办理\", 数量: 256 },\r\n { 服务类型: \"挂失\", 数量: 158 },\r\n { 服务类型: \"解挂\", 数量: 142 },\r\n { 服务类型: \"补办\", 数量: 86 },\r\n { 服务类型: \"注销\", 数量: 35 },\r\n ],\r\n },\r\n abnormalRecords: [\r\n {\r\n time: \"2023-06-20 08:25:36\",\r\n cardNo: \"2023001\",\r\n location: \"图书馆\",\r\n type: \"重复刷卡\",\r\n status: \"已处理\",\r\n },\r\n {\r\n time: \"2023-06-20 12:15:42\",\r\n cardNo: \"2023158\",\r\n location: \"食堂\",\r\n type: \"余额异常\",\r\n status: \"处理中\",\r\n },\r\n {\r\n time: \"2023-06-20 15:30:18\",\r\n cardNo: \"2023286\",\r\n location: \"宿舍\",\r\n type: \"刷卡失败\",\r\n status: \"未处理\",\r\n },\r\n {\r\n time: \"2023-06-20 18:45:55\",\r\n cardNo: \"2023425\",\r\n location: \"超市\",\r\n type: \"重复消费\",\r\n status: \"已处理\",\r\n },\r\n ],\r\n };\r\n },\r\n methods: {\r\n goBack() {\r\n this.$router.push(\"/\");\r\n },\r\n getAbnormalType(type) {\r\n const types = {\r\n 重复刷卡: \"warning\",\r\n 余额异常: \"danger\",\r\n 刷卡失败: \"info\",\r\n 重复消费: \"warning\",\r\n };\r\n return types[type] || \"info\";\r\n },\r\n getStatusType(status) {\r\n const types = {\r\n 已处理: \"success\",\r\n 处理中: \"primary\",\r\n 未处理: \"danger\",\r\n };\r\n return types[status] || \"info\";\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.card-detail {\r\n padding: 20px;\r\n background: #f0f2f5;\r\n min-height: 100vh;\r\n\r\n .header {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n margin-bottom: 20px;\r\n\r\n .filters {\r\n display: flex;\r\n gap: 10px;\r\n }\r\n }\r\n\r\n .overview-cards {\r\n margin-bottom: 20px;\r\n\r\n .overview-card {\r\n .card-content {\r\n text-align: center;\r\n\r\n .value {\r\n font-size: 24px;\r\n font-weight: bold;\r\n color: #303133;\r\n }\r\n\r\n .label {\r\n font-size: 14px;\r\n color: #909399;\r\n margin: 8px 0;\r\n }\r\n\r\n .trend {\r\n font-size: 12px;\r\n &.up {\r\n color: #67c23a;\r\n }\r\n &.down {\r\n color: #f56c6c;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n .charts-row {\r\n margin-bottom: 20px;\r\n\r\n .chart-card {\r\n height: 400px;\r\n }\r\n }\r\n\r\n .table-card {\r\n margin-bottom: 20px;\r\n }\r\n}\r\n</style>"],"mappings":";AAkHA;EACAA,IAAA;EACAC,IAAA,WAAAA,KAAA;IACA;MACAC,YAAA;MACAC,YAAA,MAAAC,IAAA;MACAC,KAAA;MACAC,YAAA,GACA;QAAAC,KAAA;QAAAC,KAAA;QAAAC,KAAA;QAAAC,UAAA;MAAA,GACA;QACAH,KAAA;QACAC,KAAA;QACAC,KAAA;QACAC,UAAA;MACA,GACA;QAAAH,KAAA;QAAAC,KAAA;QAAAC,KAAA;QAAAC,UAAA;MAAA,GACA;QAAAH,KAAA;QAAAC,KAAA;QAAAC,KAAA;QAAAC,UAAA;MAAA,EACA;MACAC,eAAA;QACAC,OAAA;QACAC,IAAA,GACA;UAAAC,EAAA;UAAAC,IAAA;UAAAC,IAAA;QAAA,GACA;UAAAF,EAAA;UAAAC,IAAA;UAAAC,IAAA;QAAA,GACA;UAAAF,EAAA;UAAAC,IAAA;UAAAC,IAAA;QAAA,GACA;UAAAF,EAAA;UAAAC,IAAA;UAAAC,IAAA;QAAA,GACA;UAAAF,EAAA;UAAAC,IAAA;UAAAC,IAAA;QAAA,GACA;UAAAF,EAAA;UAAAC,IAAA;UAAAC,IAAA;QAAA;MAEA;MACAC,YAAA;QACAC,QAAA;UAAAC,KAAA;QAAA;QACAC,SAAA;QACAC,SAAA;MACA;MACAC,YAAA;QACAV,OAAA;QACAC,IAAA,GACA;UAAAU,EAAA;UAAAC,GAAA;QAAA,GACA;UAAAD,EAAA;UAAAC,GAAA;QAAA,GACA;UAAAD,EAAA;UAAAC,GAAA;QAAA,GACA;UAAAD,EAAA;UAAAC,GAAA;QAAA,GACA;UAAAD,EAAA;UAAAC,GAAA;QAAA;MAEA;MACAC,WAAA;QACAC,MAAA;QACAC,OAAA;MACA;MACAC,UAAA;QACAhB,OAAA;QACAC,IAAA,GACA;UAAAgB,GAAA;UAAAC,GAAA;UAAAC,EAAA;UAAAC,GAAA;QAAA,GACA;UAAAH,GAAA;UAAAC,GAAA;UAAAC,EAAA;UAAAC,GAAA;QAAA,GACA;UAAAH,GAAA;UAAAC,GAAA;UAAAC,EAAA;UAAAC,GAAA;QAAA,GACA;UAAAH,GAAA;UAAAC,GAAA;UAAAC,EAAA;UAAAC,GAAA;QAAA,GACA;UAAAH,GAAA;UAAAC,GAAA;UAAAC,EAAA;UAAAC,GAAA;QAAA;MAEA;MACAC,iBAAA;QACAC,KAAA;UAAAC,EAAA;QAAA;MACA;MACAC,eAAA;QACAxB,OAAA;QACAC,IAAA,GACA;UAAAwB,IAAA;UAAAC,EAAA;QAAA,GACA;UAAAD,IAAA;UAAAC,EAAA;QAAA,GACA;UAAAD,IAAA;UAAAC,EAAA;QAAA,GACA;UAAAD,IAAA;UAAAC,EAAA;QAAA,GACA;UAAAD,IAAA;UAAAC,EAAA;QAAA;MAEA;MACAC,eAAA,GACA;QACAC,IAAA;QACAC,MAAA;QACAC,QAAA;QACAC,IAAA;QACAC,MAAA;MACA,GACA;QACAJ,IAAA;QACAC,MAAA;QACAC,QAAA;QACAC,IAAA;QACAC,MAAA;MACA,GACA;QACAJ,IAAA;QACAC,MAAA;QACAC,QAAA;QACAC,IAAA;QACAC,MAAA;MACA,GACA;QACAJ,IAAA;QACAC,MAAA;QACAC,QAAA;QACAC,IAAA;QACAC,MAAA;MACA;IAEA;EACA;EACAC,OAAA;IACAC,MAAA,WAAAA,OAAA;MACA,KAAAC,OAAA,CAAAC,IAAA;IACA;IACAC,eAAA,WAAAA,gBAAAN,IAAA;MACA,IAAAO,KAAA;QACAC,IAAA;QACAC,IAAA;QACAC,IAAA;QACAC,IAAA;MACA;MACA,OAAAJ,KAAA,CAAAP,IAAA;IACA;IACAY,aAAA,WAAAA,cAAAX,MAAA;MACA,IAAAM,KAAA;QACAM,GAAA;QACAC,GAAA;QACAC,GAAA;MACA;MACA,OAAAR,KAAA,CAAAN,MAAA;IACA;EACA;AACA","ignoreList":[]}]} |