| 1 |
- {"remainingRequest":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\src\\pages\\marketing\\point_statistic\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\src\\pages\\marketing\\point_statistic\\index.vue","mtime":1761185180122},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:DQppbXBvcnQgY2FyZHNEYXRhIGZyb20gJ0AvY29tcG9uZW50cy9jYXJkcy9jYXJkcyc7DQppbXBvcnQgZWNoYXJ0c05ldyBmcm9tICdAL2NvbXBvbmVudHMvZWNoYXJ0c05ldy9pbmRleCc7DQppbXBvcnQgeyBnZXRQb2ludEJhc2ljLCBnZXRQb2ludFRyZW5kLCBnZXRDaGFubmVsLCBnZXRUeXBlIH0gZnJvbSAnQC9hcGkvbWFya2V0aW5nJzsNCmltcG9ydCB7IGZvcm1hdERhdGUgfSBmcm9tICdAL3V0aWxzL3ZhbGlkYXRlJzsNCmltcG9ydCBlY2hhcnRzRnJvbSBmcm9tICdAL2NvbXBvbmVudHMvZWNoYXJ0cy9pbmRleCc7DQppbXBvcnQgZGF0ZVJhZGlvIGZyb20gJ0AvY29tcG9uZW50cy9kYXRlUmFkaW8nOw0KDQpleHBvcnQgZGVmYXVsdCB7DQogIG5hbWU6ICdpbmRleCcsDQogIGNvbXBvbmVudHM6IHsgY2FyZHNEYXRhLCBlY2hhcnRzTmV3LCBlY2hhcnRzRnJvbSwgZGF0ZVJhZGlvIH0sDQogIGRhdGEoKSB7DQogICAgcmV0dXJuIHsNCiAgICAgIHRpbWVWYWw6IFtdLA0KICAgICAgc3R5bGU6IHsgaGVpZ2h0OiAnNDAwcHgnIH0sDQogICAgICBpbmZvTGlzdDoge30sDQogICAgICBpbmZvTGlzdDI6IHt9LA0KICAgICAgZWNoYXJ0TGVmdDogdHJ1ZSwNCiAgICAgIGVjaGFydFJpZ2h0OiBmYWxzZSwNCiAgICAgIGxvYWRpbmc6IGZhbHNlLA0KICAgICAgbG9hZGluZzI6IGZhbHNlLA0KICAgICAgZm9ybVZhbGlkYXRlOiB7DQogICAgICAgIHRpbWU6ICcnLA0KICAgICAgfSwNCiAgICAgIGNhcmRMaXN0czogWw0KICAgICAgICB7DQogICAgICAgICAgY29sOiA4LA0KICAgICAgICAgIGNvdW50OiAwLA0KICAgICAgICAgIG5hbWU6ICflvZPliY3np6/liIYnLA0KICAgICAgICAgIGNsYXNzTmFtZTogJ2ljb25kYW5ncWlhbmppZmVuJywNCiAgICAgICAgfSwNCiAgICAgICAgew0KICAgICAgICAgIGNvbDogOCwNCiAgICAgICAgICBjb3VudDogMCwNCiAgICAgICAgICBuYW1lOiAn57Sv6K6h5oC756ev5YiGJywNCiAgICAgICAgICBjbGFzc05hbWU6ICdpY29ubGVpamlqaWZlbicsDQogICAgICAgIH0sDQogICAgICAgIHsNCiAgICAgICAgICBjb2w6IDgsDQogICAgICAgICAgY291bnQ6IDAsDQogICAgICAgICAgbmFtZTogJ+e0r+iuoea2iOiAl+enr+WIhicsDQogICAgICAgICAgY2xhc3NOYW1lOiAnaWNvbnhpYW9oYW9qaWZlbicsDQogICAgICAgIH0sDQogICAgICBdLA0KICAgICAgb3B0aW9uRGF0YToge30sDQogICAgICBzcGluU2hvdzogZmFsc2UsDQogICAgICBwaWNrZXJPcHRpb25zOiB0aGlzLiR0aW1lT3B0aW9ucywNCiAgICAgIHRhYkxpc3Q6IFtdLA0KICAgICAgdGFiTGlzdDI6IFtdLA0KICAgIH07DQogIH0sDQogIGNyZWF0ZWQoKSB7DQogICAgY29uc3QgZW5kID0gbmV3IERhdGUoKTsNCiAgICBjb25zdCBzdGFydCA9IG5ldyBEYXRlKCk7DQogICAgc3RhcnQuc2V0VGltZShzdGFydC5zZXRUaW1lKG5ldyBEYXRlKG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSwgbmV3IERhdGUoKS5nZXRNb250aCgpLCBuZXcgRGF0ZSgpLmdldERhdGUoKSAtIDI5KSkpOw0KICAgIHRoaXMudGltZVZhbCA9IFtzdGFydCwgZW5kXTsNCiAgICB0aGlzLmZvcm1WYWxpZGF0ZS50aW1lID0gZm9ybWF0RGF0ZShzdGFydCwgJ3l5eXkvTU0vZGQnKSArICctJyArIGZvcm1hdERhdGUoZW5kLCAneXl5eS9NTS9kZCcpOw0KICAgIHRoaXMub25Jbml0KCk7DQogIH0sDQogIG1ldGhvZHM6IHsNCiAgICBvbkluaXQoKSB7DQogICAgICB0aGlzLmdldFBvaW50QmFzaWMoKTsNCiAgICAgIHRoaXMuZ2V0UG9pbnRUcmVuZCgpOw0KICAgICAgdGhpcy5nZXRDaGFubmVsKCk7DQogICAgICB0aGlzLmdldFR5cGUoKTsNCiAgICB9LA0KICAgIG9uU2VsZWN0RGF0ZShlKSB7DQogICAgICB0aGlzLmZvcm1WYWxpZGF0ZS50aW1lID0gZTsNCiAgICAgIHRoaXMub25Jbml0KCk7DQogICAgfSwNCiAgICBnZXRQb2ludEJhc2ljKCkgew0KICAgICAgZ2V0UG9pbnRCYXNpYyh0aGlzLmZvcm1WYWxpZGF0ZSkudGhlbigocmVzKSA9PiB7DQogICAgICAgIGxldCBhcnIgPSBbJ25vd19wb2ludCcsICdhbGxfcG9pbnQnLCAncGF5X3BvaW50J107DQogICAgICAgIHRoaXMuY2FyZExpc3RzLm1hcCgoaSwgaW5kZXgpID0+IHsNCiAgICAgICAgICBpLmNvdW50ID0gcmVzLmRhdGFbYXJyW2luZGV4XV07DQogICAgICAgIH0pOw0KICAgICAgfSk7DQogICAgfSwNCiAgICBnZXRDaGFubmVsKCkgew0KICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTsNCiAgICAgIGdldENoYW5uZWwodGhpcy5mb3JtVmFsaWRhdGUpLnRoZW4oKHJlcykgPT4gew0KICAgICAgICB0aGlzLmluZm9MaXN0ID0gcmVzLmRhdGE7DQogICAgICAgIHRoaXMudGFiTGlzdCA9IHJlcy5kYXRhLmxpc3Q7DQogICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlOw0KICAgICAgfSk7DQogICAgfSwNCiAgICBnZXRUeXBlKCkgew0KICAgICAgdGhpcy5sb2FkaW5nMiA9IHRydWU7DQogICAgICBnZXRUeXBlKHRoaXMuZm9ybVZhbGlkYXRlKS50aGVuKChyZXMpID0+IHsNCiAgICAgICAgdGhpcy5pbmZvTGlzdDIgPSByZXMuZGF0YTsNCiAgICAgICAgdGhpcy50YWJMaXN0MiA9IHJlcy5kYXRhLmxpc3Q7DQogICAgICAgIHRoaXMubG9hZGluZzIgPSBmYWxzZTsNCiAgICAgIH0pOw0KICAgIH0sDQogICAgLy8g5YW35L2T5pel5pyfDQogICAgb25jaGFuZ2VUaW1lKGUpIHsNCiAgICAgIHRoaXMudGltZVZhbCA9IGU7DQogICAgICB0aGlzLmZvcm1WYWxpZGF0ZS50aW1lID0gdGhpcy50aW1lVmFsID8gdGhpcy50aW1lVmFsLmpvaW4oJy0nKSA6ICcnOw0KICAgICAgdGhpcy5uYW1lID0gdGhpcy5mb3JtVmFsaWRhdGUudGltZTsNCiAgICAgIHRoaXMuZ2V0UG9pbnRCYXNpYygpOw0KICAgICAgdGhpcy5nZXRQb2ludFRyZW5kKCk7DQogICAgfSwNCiAgICAvLyDnu5/orqHlm74NCiAgICBnZXRQb2ludFRyZW5kKCkgew0KICAgICAgdGhpcy5zcGluU2hvdyA9IHRydWU7DQogICAgICBnZXRQb2ludFRyZW5kKHRoaXMuZm9ybVZhbGlkYXRlKQ0KICAgICAgICAudGhlbihhc3luYyAocmVzKSA9PiB7DQogICAgICAgICAgbGV0IGxlZ2VuZCA9IHJlcy5kYXRhLnNlcmllcy5tYXAoKGl0ZW0pID0+IHsNCiAgICAgICAgICAgIHJldHVybiBpdGVtLm5hbWU7DQogICAgICAgICAgfSk7DQogICAgICAgICAgbGV0IHhBeGlzID0gcmVzLmRhdGEueEF4aXM7DQogICAgICAgICAgbGV0IGNvbCA9IFsnIzVCOEZGOScsICcjNUFEOEE2JywgJyNGRkFCMkInLCAnIzVENzA5MiddOw0KICAgICAgICAgIGxldCBzZXJpZXMgPSBbXTsNCiAgICAgICAgICByZXMuZGF0YS5zZXJpZXMubWFwKChpdGVtLCBpbmRleCkgPT4gew0KICAgICAgICAgICAgc2VyaWVzLnB1c2goew0KICAgICAgICAgICAgICBuYW1lOiBpdGVtLm5hbWUsDQogICAgICAgICAgICAgIHR5cGU6ICdsaW5lJywNCiAgICAgICAgICAgICAgZGF0YTogaXRlbS5kYXRhLA0KICAgICAgICAgICAgICBpdGVtU3R5bGU6IHsNCiAgICAgICAgICAgICAgICBub3JtYWw6IHsNCiAgICAgICAgICAgICAgICAgIGNvbG9yOiBjb2xbaW5kZXhdLA0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgIHNtb290aDogMCwNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgIH0pOw0KICAgICAgICAgIHRoaXMub3B0aW9uRGF0YSA9IHsNCiAgICAgICAgICAgIHRvb2x0aXA6IHsNCiAgICAgICAgICAgICAgdHJpZ2dlcjogJ2F4aXMnLA0KICAgICAgICAgICAgICBheGlzUG9pbnRlcjogew0KICAgICAgICAgICAgICAgIHR5cGU6ICdjcm9zcycsDQogICAgICAgICAgICAgICAgbGFiZWw6IHsNCiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJyM2YTc5ODUnLA0KICAgICAgICAgICAgICAgIH0sDQogICAgICAgICAgICAgIH0sDQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgbGVnZW5kOiB7DQogICAgICAgICAgICAgIHg6ICdjZW50ZXInLA0KICAgICAgICAgICAgICBkYXRhOiBsZWdlbmQsDQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgZ3JpZDogew0KICAgICAgICAgICAgICBsZWZ0OiAnMyUnLA0KICAgICAgICAgICAgICByaWdodDogJzQlJywNCiAgICAgICAgICAgICAgYm90dG9tOiAnMyUnLA0KICAgICAgICAgICAgICBjb250YWluTGFiZWw6IHRydWUsDQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgdG9vbGJveDogew0KICAgICAgICAgICAgICBmZWF0dXJlOiB7DQogICAgICAgICAgICAgICAgc2F2ZUFzSW1hZ2U6IHt9LA0KICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHhBeGlzOiB7DQogICAgICAgICAgICAgIHR5cGU6ICdjYXRlZ29yeScsDQogICAgICAgICAgICAgIGJvdW5kYXJ5R2FwOiB0cnVlLA0KICAgICAgICAgICAgICAvLyBheGlzVGljazp7DQogICAgICAgICAgICAgIC8vICAgICBzaG93OmZhbHNlDQogICAgICAgICAgICAgIC8vIH0sDQogICAgICAgICAgICAgIC8vIGF4aXNMaW5lOnsNCiAgICAgICAgICAgICAgLy8gICAgIHNob3c6ZmFsc2UNCiAgICAgICAgICAgICAgLy8gfSwNCiAgICAgICAgICAgICAgLy8gc3BsaXRMaW5lOiB7DQogICAgICAgICAgICAgIC8vICAgICBzaG93OiBmYWxzZQ0KICAgICAgICAgICAgICAvLyB9LA0KICAgICAgICAgICAgICBheGlzTGFiZWw6IHsNCiAgICAgICAgICAgICAgICBpbnRlcnZhbDogMCwNCiAgICAgICAgICAgICAgICByb3RhdGU6IDQwLA0KICAgICAgICAgICAgICAgIHRleHRTdHlsZTogew0KICAgICAgICAgICAgICAgICAgY29sb3I6ICcjMDAwMDAwJywNCiAgICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICBkYXRhOiB4QXhpcywNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB5QXhpczogew0KICAgICAgICAgICAgICB0eXBlOiAndmFsdWUnLA0KICAgICAgICAgICAgICBheGlzTGluZTogew0KICAgICAgICAgICAgICAgIHNob3c6IGZhbHNlLA0KICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICBheGlzVGljazogew0KICAgICAgICAgICAgICAgIHNob3c6IGZhbHNlLA0KICAgICAgICAgICAgICB9LA0KICAgICAgICAgICAgICBheGlzTGFiZWw6IHsNCiAgICAgICAgICAgICAgICB0ZXh0U3R5bGU6IHsNCiAgICAgICAgICAgICAgICAgIGNvbG9yOiAnIzdGOEI5QycsDQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgc3BsaXRMaW5lOiB7DQogICAgICAgICAgICAgICAgc2hvdzogdHJ1ZSwNCiAgICAgICAgICAgICAgICBsaW5lU3R5bGU6IHsNCiAgICAgICAgICAgICAgICAgIGNvbG9yOiAnI0Y1RjdGOScsDQogICAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICBzZXJpZXM6IHNlcmllcywNCiAgICAgICAgICB9Ow0KICAgICAgICAgIHRoaXMuc3BpblNob3cgPSBmYWxzZTsNCiAgICAgICAgfSkNCiAgICAgICAgLmNhdGNoKChyZXMpID0+IHsNCiAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKHJlcy5tc2cpOw0KICAgICAgICAgIHRoaXMuc3BpblNob3cgPSBmYWxzZTsNCiAgICAgICAgfSk7DQogICAgfSwNCiAgfSwNCn07DQo="},{"version":3,"sources":["index.vue"],"names":[],"mappings":";AAgHA;AACA;AACA;AACA;AACA;AACA;;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;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;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;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;AACA;AACA","file":"index.vue","sourceRoot":"src/pages/marketing/point_statistic","sourcesContent":["<template>\r\n <div v-loading=\"spinShow\">\r\n <el-card :bordered=\"false\" shadow=\"never\" class=\"ivu-mb-16\">\r\n <div class=\"acea-row row-middle\">\r\n <span class=\"label_text\">时间选择:</span>\r\n <el-date-picker\r\n clearable\r\n v-model=\"timeVal\"\r\n type=\"daterange\"\r\n :editable=\"false\"\r\n @change=\"onchangeTime\"\r\n format=\"yyyy/MM/dd\"\r\n value-format=\"yyyy/MM/dd\"\r\n start-placeholder=\"开始日期\"\r\n end-placeholder=\"结束日期\"\r\n :picker-options=\"pickerOptions\"\r\n style=\"width: 250px\"\r\n class=\"mr20\"\r\n ></el-date-picker>\r\n </div>\r\n </el-card>\r\n <cards-data :cardLists=\"cardLists\" v-if=\"cardLists.length >= 0\"></cards-data>\r\n <el-card :bordered=\"false\" shadow=\"never\">\r\n <h4 class=\"statics-header-title\">积分使用趋势</h4>\r\n <echarts-new :option-data=\"optionData\" :styles=\"style\" height=\"100%\" width=\"100%\" v-if=\"optionData\"></echarts-new>\r\n </el-card>\r\n <div class=\"code-row-bg\">\r\n <el-card :bordered=\"false\" shadow=\"never\" class=\"ivu-mt mt16 mr16\">\r\n <div class=\"acea-row row-between-wrapper\">\r\n <h4 class=\"statics-header-title\">积分来源分析</h4>\r\n <div class=\"change-style\" v-db-click @click=\"echartLeft = !echartLeft\">切换样式</div>\r\n </div>\r\n <div class=\"ech-box\">\r\n <echarts-from v-if=\"echartLeft\" ref=\"visitChart\" :infoList=\"infoList\" echartsTitle=\"circle\"></echarts-from>\r\n <el-table\r\n v-show=\"!echartLeft\"\r\n ref=\"selection\"\r\n :data=\"tabList\"\r\n v-loading=\"loading\"\r\n empty-text=\"暂无数据\"\r\n highlight-current-row\r\n >\r\n <el-table-column type=\"index\" width=\"60\"> </el-table-column>\r\n <el-table-column label=\"来源\" min-width=\"80\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ scope.row.name }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"金额\" width=\"180\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ scope.row.value }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"占比率\" min-width=\"100\">\r\n <template slot-scope=\"scope\">\r\n <div class=\"percent-box\">\r\n <div class=\"line\">\r\n <div class=\"bg\"></div>\r\n <div class=\"percent\" :style=\"'width:' + scope.row.percent + '%;'\"></div>\r\n </div>\r\n <div class=\"num\">{{ scope.row.percent }}%</div>\r\n </div>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n </div>\r\n </el-card>\r\n <el-card :bordered=\"false\" shadow=\"never\" class=\"ivu-mt mt16\">\r\n <div class=\"acea-row row-between-wrapper\">\r\n <h4 class=\"statics-header-title\">积分消耗</h4>\r\n <div class=\"change-style\" v-db-click @click=\"echartRight = !echartRight\">切换样式</div>\r\n </div>\r\n <div class=\"ech-box\">\r\n <echarts-from v-if=\"echartRight\" ref=\"visitChart\" :infoList=\"infoList2\" echartsTitle=\"circle\"></echarts-from>\r\n <el-table\r\n v-show=\"!echartRight\"\r\n ref=\"selection\"\r\n :data=\"tabList2\"\r\n v-loading=\"loading\"\r\n empty-text=\"暂无数据\"\r\n highlight-current-row\r\n >\r\n <el-table-column type=\"index\" width=\"60\"> </el-table-column>\r\n <el-table-column label=\"来源\" min-width=\"80\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ scope.row.name }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"金额\" width=\"180\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ scope.row.value }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"占比率\" min-width=\"100\">\r\n <template slot-scope=\"scope\">\r\n <div class=\"percent-box\">\r\n <div class=\"line\">\r\n <div class=\"bg\"></div>\r\n <div class=\"percent\" :style=\"'width:' + scope.row.percent + '%;'\"></div>\r\n </div>\r\n <div class=\"num\">{{ scope.row.percent }}%</div>\r\n </div>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n </div>\r\n </el-card>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport cardsData from '@/components/cards/cards';\r\nimport echartsNew from '@/components/echartsNew/index';\r\nimport { getPointBasic, getPointTrend, getChannel, getType } from '@/api/marketing';\r\nimport { formatDate } from '@/utils/validate';\r\nimport echartsFrom from '@/components/echarts/index';\r\nimport dateRadio from '@/components/dateRadio';\r\n\r\nexport default {\r\n name: 'index',\r\n components: { cardsData, echartsNew, echartsFrom, dateRadio },\r\n data() {\r\n return {\r\n timeVal: [],\r\n style: { height: '400px' },\r\n infoList: {},\r\n infoList2: {},\r\n echartLeft: true,\r\n echartRight: false,\r\n loading: false,\r\n loading2: false,\r\n formValidate: {\r\n time: '',\r\n },\r\n cardLists: [\r\n {\r\n col: 8,\r\n count: 0,\r\n name: '当前积分',\r\n className: 'icondangqianjifen',\r\n },\r\n {\r\n col: 8,\r\n count: 0,\r\n name: '累计总积分',\r\n className: 'iconleijijifen',\r\n },\r\n {\r\n col: 8,\r\n count: 0,\r\n name: '累计消耗积分',\r\n className: 'iconxiaohaojifen',\r\n },\r\n ],\r\n optionData: {},\r\n spinShow: false,\r\n pickerOptions: this.$timeOptions,\r\n tabList: [],\r\n tabList2: [],\r\n };\r\n },\r\n created() {\r\n const end = new Date();\r\n const start = new Date();\r\n start.setTime(start.setTime(new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate() - 29)));\r\n this.timeVal = [start, end];\r\n this.formValidate.time = formatDate(start, 'yyyy/MM/dd') + '-' + formatDate(end, 'yyyy/MM/dd');\r\n this.onInit();\r\n },\r\n methods: {\r\n onInit() {\r\n this.getPointBasic();\r\n this.getPointTrend();\r\n this.getChannel();\r\n this.getType();\r\n },\r\n onSelectDate(e) {\r\n this.formValidate.time = e;\r\n this.onInit();\r\n },\r\n getPointBasic() {\r\n getPointBasic(this.formValidate).then((res) => {\r\n let arr = ['now_point', 'all_point', 'pay_point'];\r\n this.cardLists.map((i, index) => {\r\n i.count = res.data[arr[index]];\r\n });\r\n });\r\n },\r\n getChannel() {\r\n this.loading = true;\r\n getChannel(this.formValidate).then((res) => {\r\n this.infoList = res.data;\r\n this.tabList = res.data.list;\r\n this.loading = false;\r\n });\r\n },\r\n getType() {\r\n this.loading2 = true;\r\n getType(this.formValidate).then((res) => {\r\n this.infoList2 = res.data;\r\n this.tabList2 = res.data.list;\r\n this.loading2 = false;\r\n });\r\n },\r\n // 具体日期\r\n onchangeTime(e) {\r\n this.timeVal = e;\r\n this.formValidate.time = this.timeVal ? this.timeVal.join('-') : '';\r\n this.name = this.formValidate.time;\r\n this.getPointBasic();\r\n this.getPointTrend();\r\n },\r\n // 统计图\r\n getPointTrend() {\r\n this.spinShow = true;\r\n getPointTrend(this.formValidate)\r\n .then(async (res) => {\r\n let legend = res.data.series.map((item) => {\r\n return item.name;\r\n });\r\n let xAxis = res.data.xAxis;\r\n let col = ['#5B8FF9', '#5AD8A6', '#FFAB2B', '#5D7092'];\r\n let series = [];\r\n res.data.series.map((item, index) => {\r\n series.push({\r\n name: item.name,\r\n type: 'line',\r\n data: item.data,\r\n itemStyle: {\r\n normal: {\r\n color: col[index],\r\n },\r\n },\r\n smooth: 0,\r\n });\r\n });\r\n this.optionData = {\r\n tooltip: {\r\n trigger: 'axis',\r\n axisPointer: {\r\n type: 'cross',\r\n label: {\r\n backgroundColor: '#6a7985',\r\n },\r\n },\r\n },\r\n legend: {\r\n x: 'center',\r\n data: legend,\r\n },\r\n grid: {\r\n left: '3%',\r\n right: '4%',\r\n bottom: '3%',\r\n containLabel: true,\r\n },\r\n toolbox: {\r\n feature: {\r\n saveAsImage: {},\r\n },\r\n },\r\n xAxis: {\r\n type: 'category',\r\n boundaryGap: true,\r\n // axisTick:{\r\n // show:false\r\n // },\r\n // axisLine:{\r\n // show:false\r\n // },\r\n // splitLine: {\r\n // show: false\r\n // },\r\n axisLabel: {\r\n interval: 0,\r\n rotate: 40,\r\n textStyle: {\r\n color: '#000000',\r\n },\r\n },\r\n data: xAxis,\r\n },\r\n yAxis: {\r\n type: 'value',\r\n axisLine: {\r\n show: false,\r\n },\r\n axisTick: {\r\n show: false,\r\n },\r\n axisLabel: {\r\n textStyle: {\r\n color: '#7F8B9C',\r\n },\r\n },\r\n splitLine: {\r\n show: true,\r\n lineStyle: {\r\n color: '#F5F7F9',\r\n },\r\n },\r\n },\r\n series: series,\r\n };\r\n this.spinShow = false;\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n this.spinShow = false;\r\n });\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style scoped>\r\n.cl {\r\n margin-right: 20px;\r\n}\r\n.code-row-bg {\r\n display: flex;\r\n flex-wrap: nowrap;\r\n}\r\n.code-row-bg .ivu-mt {\r\n width: 100%;\r\n}\r\n.ech-box {\r\n margin-top: 10px;\r\n}\r\n.change-style {\r\n border: 1px solid #ccc;\r\n border-radius: 15px;\r\n padding: 0px 10px;\r\n cursor: pointer;\r\n}\r\n.percent-box {\r\n display: flex;\r\n align-items: center;\r\n padding-right: 10px;\r\n}\r\n.line {\r\n width: 100%;\r\n position: relative;\r\n}\r\n.bg {\r\n position: absolute;\r\n width: 100%;\r\n height: 8px;\r\n border-radius: 8px;\r\n background-color: #f2f2f2;\r\n}\r\n.percent {\r\n position: absolute;\r\n border-radius: 5px;\r\n height: 8px;\r\n background-color: var(--prev-color-primary);\r\n z-index: 999;\r\n}\r\n.num {\r\n white-space: nowrap;\r\n margin: 0 10px;\r\n width: 20px;\r\n}\r\n</style>\r\n"]}]}
|