| | |
| | | }, |
| | | params: data |
| | | }), |
| | | // 按点位统计 |
| | | searchByPoint: (data) => axios({ |
| | | method: 'get', |
| | | url: baseUrl + '/unlawful/point', |
| | | headers: { |
| | | ...token |
| | | }, |
| | | params: data |
| | | }), |
| | | // 按时间统计 |
| | | searchByTime: (data) => axios({ |
| | | method: 'get', |
| | | url: baseUrl + '/unlawful/time', |
| | | headers: { |
| | | ...token |
| | | }, |
| | | params: data |
| | | }), |
| | | // 按区域统计 |
| | | searchByArea: (data) => axios({ |
| | | method: 'get', |
| | | url: baseUrl + '/unlawful/area', |
| | | headers: { |
| | | ...token |
| | | }, |
| | | params: data |
| | | }), |
| | | // 门前三包统计 |
| | | searchByShop: (data) => axios({ |
| | | method: 'get', |
| | | url: baseUrl + '/unlawful/shop', |
| | | headers: { |
| | | ...token |
| | | }, |
| | | params: data |
| | | }), |
| | | }; |
| | |
| | | actions: { |
| | | searchByType(context, params) { |
| | | return api.searchByType(params); |
| | | }, |
| | | |
| | | searchByPoint(context, params) { |
| | | return api.searchByPoint(params); |
| | | }, |
| | | searchByTime(context, params) { |
| | | return api.searchByTime(params); |
| | | }, |
| | | searchByArea(context, params) { |
| | | return api.searchByArea(params); |
| | | }, |
| | | searchByShop(context, params) { |
| | | return api.searchByShop(params); |
| | | } |
| | | }, |
| | | }; |
| | |
| | | <template> |
| | | <div>按区域统计</div> |
| | | <div class="list"> |
| | | <header> |
| | | <div class="header-content"> |
| | | <div class="search"> |
| | | <span style="padding-right: 20px">时间范围:</span> |
| | | <el-date-picker |
| | | v-model="value2" |
| | | type="daterange" |
| | | align="right" |
| | | unlink-panels |
| | | range-separator="至" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | :picker-options="pickerOptions" |
| | | > |
| | | </el-date-picker> |
| | | </div> |
| | | |
| | | <div class="find"> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-search" |
| | | @click="setTableDataHandle" |
| | | >查询</el-button |
| | | > |
| | | <el-button icon="el-icon-delete-solid" @click="resetTableData" |
| | | >重置</el-button |
| | | > |
| | | </div> |
| | | |
| | | <div class="main-nav-right"> |
| | | <el-button type="primary" icon="el-icon-upload2" @click="handleExport" |
| | | >导出</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | </header> |
| | | <main> |
| | | <div class="main-content"> |
| | | <!-- 数据展示 --> |
| | | <el-table |
| | | ref="multipleTable" |
| | | :header-cell-style="{ |
| | | background: '#06122c', |
| | | 'font-size': '12px', |
| | | color: '#4b9bb7', |
| | | 'font-weight': '650', |
| | | 'line-height': '45px', |
| | | }" |
| | | :row-class-name="tableRowClassName" |
| | | :data="list" |
| | | style="width: 100%" |
| | | > |
| | | <el-table-column type="selection" min-width="5"> </el-table-column> |
| | | <el-table-column prop="name" label="区域名称" min-width="10"> |
| | | </el-table-column> |
| | | <el-table-column prop="count" label="事件总数" min-width="5"> |
| | | </el-table-column> |
| | | <el-table-column prop="ratio" label="占比" min-width="5"> |
| | | </el-table-column> |
| | | <el-table-column prop="checked" label="已审核" min-width="5"> |
| | | </el-table-column> |
| | | <el-table-column prop="register" label="立案" min-width="5"> |
| | | </el-table-column> |
| | | <el-table-column prop="registerRatio" label="立案率" min-width="5"> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | |
| | | <!-- tools --> |
| | | <div class="tools"> |
| | | <div class="funs"></div> |
| | | <div class="pagination"> |
| | | <el-pagination |
| | | background |
| | | :current-page="currentPage" |
| | | layout="prev, pager, next" |
| | | :total="totalNum" |
| | | :page-size="pageSize" |
| | | @current-change="changeCurrentPage" |
| | | @prev-click="handlePrev" |
| | | @next-click="handleNext" |
| | | > |
| | | </el-pagination> |
| | | </div> |
| | | </div> |
| | | </main> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import { createNamespacedHelpers } from "vuex"; |
| | | const { mapActions } = createNamespacedHelpers("statistics"); |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | pickerOptions: { |
| | | shortcuts: [ |
| | | { |
| | | text: "最近一周", |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); |
| | | picker.$emit("pick", [start, end]); |
| | | }, |
| | | }, |
| | | { |
| | | text: "最近一个月", |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); |
| | | picker.$emit("pick", [start, end]); |
| | | }, |
| | | }, |
| | | { |
| | | text: "最近三个月", |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); |
| | | picker.$emit("pick", [start, end]); |
| | | }, |
| | | }, |
| | | ], |
| | | }, |
| | | value1: "", |
| | | value2: "", |
| | | list: [], |
| | | totalNum: 0, |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | }; |
| | | }, |
| | | created() { |
| | | this.setTableData(); |
| | | }, |
| | | methods: { |
| | | ...mapActions(["searchByArea"]), |
| | | |
| | | } |
| | | handleExport(e) {}, |
| | | setTableDataHandle(e) {}, |
| | | resetTableData(e) {}, |
| | | // 设置表格斑马纹 |
| | | tableRowClassName({ row, rowIndex }) { |
| | | if ((rowIndex + 1) % 2 == 0) { |
| | | return "warning-row"; |
| | | } else { |
| | | return "success-row"; |
| | | } |
| | | return ""; |
| | | }, |
| | | // 设置tableData |
| | | setTableData() { |
| | | const { currentPage, pageSize, context } = this; |
| | | this.searchByArea({ |
| | | currentPage, |
| | | pageSize, |
| | | beginTime:'2022-05-01 00:00:00', |
| | | endTime:'2022-09-01 00:00:00' |
| | | }).then((res) => { |
| | | if (res.data.code == 200) { |
| | | this.list = res.data.data.records; |
| | | this.totalNum = res.data.data.total; |
| | | } |
| | | }); |
| | | }, |
| | | // 当前页改变触发事件 |
| | | changeCurrentPage(page) { |
| | | this.currentPage = page; |
| | | this.setTableData(); |
| | | }, |
| | | // 上一页点击事件 |
| | | handlePrev(page) { |
| | | this.currentPage = page; |
| | | this.setTableData(); |
| | | }, |
| | | // 下一页点击事件 |
| | | handleNext(page) { |
| | | this.currentPage = page; |
| | | this.setTableData(); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | .list { |
| | | text-align: left; |
| | | margin: 10px 20px; |
| | | color: #4b9bb7; |
| | | |
| | | <style> |
| | | header { |
| | | background-color: #09152f; |
| | | border: 1pox solid #fff; |
| | | |
| | | .header-content { |
| | | padding: 0 40px; |
| | | display: flex; |
| | | line-height: 100px; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | |
| | | .search { |
| | | // display: flex; |
| | | justify-content: flex-start; |
| | | |
| | | span { |
| | | flex: 1; |
| | | } |
| | | |
| | | .el-input { |
| | | flex: 2; |
| | | color: #1d3f57; |
| | | |
| | | &::v-deep .el-input__inner { |
| | | background-color: #09152f; |
| | | border: 1px solid #17324c; |
| | | } |
| | | } |
| | | .el-select { |
| | | flex: 1; |
| | | } |
| | | .el-date-editor { |
| | | flex: 1; |
| | | } |
| | | :deep(.el-range-input) { |
| | | background-color: #09152f; |
| | | } |
| | | } |
| | | .find { |
| | | margin-right: auto; |
| | | margin-left: 30px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | :deep(.el-range-separator) { |
| | | padding: 0px !important; |
| | | } |
| | | main { |
| | | background-color: #09152f; |
| | | margin-top: 20px; |
| | | padding-bottom: 50px; |
| | | border: 1pox solid #fff; |
| | | |
| | | .main-title { |
| | | line-height: 60px; |
| | | padding: 10px 20px; |
| | | } |
| | | |
| | | .tools { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | padding: 0 20px; |
| | | |
| | | .funs { |
| | | display: flex; |
| | | |
| | | .funsItem { |
| | | line-height: 28px; |
| | | display: flex; |
| | | align-items: center; |
| | | border: 1px solid #17324c; |
| | | border-radius: 4px; |
| | | font-size: 12px; |
| | | margin-left: 10px; |
| | | |
| | | .el-checkbox { |
| | | width: 80px; |
| | | padding: 0 10px; |
| | | } |
| | | |
| | | .el-select { |
| | | width: 120px; |
| | | } |
| | | |
| | | &::v-deep .el-input__inner { |
| | | border: none; |
| | | background-color: #09152f; |
| | | } |
| | | |
| | | &:hover { |
| | | border: 1px solid #4b9bb7; |
| | | } |
| | | |
| | | &:hover .el-checkbox { |
| | | color: #4b9bb7; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .pagination { |
| | | margin-top: 50px; |
| | | display: flex; |
| | | line-height: 50px; |
| | | justify-content: center; |
| | | |
| | | .el-pagination { |
| | | &::v-deep li, |
| | | &::v-deep .btn-prev, |
| | | &::v-deep .btn-next { |
| | | background-color: #071f39; |
| | | color: #4b9bb7; |
| | | } |
| | | |
| | | &::v-deep .active { |
| | | background-color: #409eff; |
| | | color: #fff; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | &::v-deep .warning-row { |
| | | background-color: #06122c; |
| | | } |
| | | |
| | | &::v-deep .success-row { |
| | | background-color: #071f39; |
| | | } |
| | | |
| | | .operationBox { |
| | | display: flex; |
| | | } |
| | | |
| | | .el-divider { |
| | | background-color: #4b9bb7; |
| | | } |
| | | .el-table { |
| | | color: #4b9bb7; |
| | | font-size: 10px; |
| | | .operation { |
| | | display: flex; |
| | | |
| | | .line { |
| | | padding: 0 5px; |
| | | } |
| | | |
| | | span:hover { |
| | | cursor: pointer; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <div>按点位统计</div> |
| | | <div class="list"> |
| | | <header> |
| | | <div class="header-content"> |
| | | <div class="search"> |
| | | <span style="padding-right: 20px">时间范围:</span> |
| | | <el-date-picker |
| | | v-model="value2" |
| | | type="daterange" |
| | | align="right" |
| | | unlink-panels |
| | | range-separator="至" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | :picker-options="pickerOptions" |
| | | > |
| | | </el-date-picker> |
| | | </div> |
| | | |
| | | <div class="find"> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-search" |
| | | @click="setTableDataHandle" |
| | | >查询</el-button |
| | | > |
| | | <el-button icon="el-icon-delete-solid" @click="resetTableData" |
| | | >重置</el-button |
| | | > |
| | | </div> |
| | | |
| | | <div class="main-nav-right"> |
| | | <el-button type="primary" icon="el-icon-upload2" @click="handleExport" |
| | | >导出</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | </header> |
| | | <main> |
| | | <div class="main-content"> |
| | | <!-- 数据展示 --> |
| | | <el-table |
| | | ref="multipleTable" |
| | | :header-cell-style="{ |
| | | background: '#06122c', |
| | | 'font-size': '12px', |
| | | color: '#4b9bb7', |
| | | 'font-weight': '650', |
| | | 'line-height': '45px', |
| | | }" |
| | | :row-class-name="tableRowClassName" |
| | | :data="list" |
| | | style="width: 100%" |
| | | > |
| | | <el-table-column type="selection" min-width="5"> </el-table-column> |
| | | <el-table-column prop="name" label="点位名称" min-width="10"> |
| | | </el-table-column> |
| | | <el-table-column prop="count" label="事件总数" min-width="5"> |
| | | </el-table-column> |
| | | <el-table-column prop="ratio" label="占比" min-width="5"> |
| | | </el-table-column> |
| | | <el-table-column prop="register" label="立案" min-width="5"> |
| | | </el-table-column> |
| | | <el-table-column prop="notRegister" label="暂不立案" min-width="5"> |
| | | </el-table-column> |
| | | <el-table-column prop="closing" label="结案" min-width="5"> |
| | | </el-table-column> |
| | | <el-table-column prop="relearn" label="再学习" min-width="5"> |
| | | </el-table-column> |
| | | <el-table-column prop="checked" label="已审核" min-width="5"> |
| | | </el-table-column> |
| | | <el-table-column prop="checkedRatio" label="审核率" min-width="5"> |
| | | </el-table-column> |
| | | <el-table-column prop="registerRatio" label="立案率" min-width="5"> |
| | | </el-table-column> |
| | | <el-table-column prop="accuracyRatio" label="准确率" min-width="5"> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | |
| | | <!-- tools --> |
| | | <div class="tools"> |
| | | <div class="funs"></div> |
| | | <div class="pagination"> |
| | | <el-pagination |
| | | background |
| | | :current-page="currentPage" |
| | | layout="prev, pager, next" |
| | | :total="totalNum" |
| | | :page-size="pageSize" |
| | | @current-change="changeCurrentPage" |
| | | @prev-click="handlePrev" |
| | | @next-click="handleNext" |
| | | > |
| | | </el-pagination> |
| | | </div> |
| | | </div> |
| | | </main> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import { createNamespacedHelpers } from "vuex"; |
| | | const { mapActions } = createNamespacedHelpers("statistics"); |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | pickerOptions: { |
| | | shortcuts: [ |
| | | { |
| | | text: "最近一周", |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); |
| | | picker.$emit("pick", [start, end]); |
| | | }, |
| | | }, |
| | | { |
| | | text: "最近一个月", |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); |
| | | picker.$emit("pick", [start, end]); |
| | | }, |
| | | }, |
| | | { |
| | | text: "最近三个月", |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); |
| | | picker.$emit("pick", [start, end]); |
| | | }, |
| | | }, |
| | | ], |
| | | }, |
| | | value1: "", |
| | | value2: "", |
| | | list: [], |
| | | totalNum: 0, |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | }; |
| | | }, |
| | | created() { |
| | | this.setTableData(); |
| | | }, |
| | | methods: { |
| | | ...mapActions(["searchByPoint"]), |
| | | |
| | | } |
| | | handleExport(e) {}, |
| | | setTableDataHandle(e) {}, |
| | | resetTableData(e) {}, |
| | | // 设置表格斑马纹 |
| | | tableRowClassName({ row, rowIndex }) { |
| | | if ((rowIndex + 1) % 2 == 0) { |
| | | return "warning-row"; |
| | | } else { |
| | | return "success-row"; |
| | | } |
| | | return ""; |
| | | }, |
| | | // 设置tableData |
| | | setTableData() { |
| | | const { currentPage, pageSize, context } = this; |
| | | this.searchByPoint({ |
| | | currentPage, |
| | | pageSize, |
| | | beginTime:'2022-05-01 00:00:00', |
| | | endTime:'2022-09-01 00:00:00' |
| | | }).then((res) => { |
| | | if (res.data.code == 200) { |
| | | this.list = res.data.data.records; |
| | | this.totalNum = res.data.data.total; |
| | | } |
| | | }); |
| | | }, |
| | | // 当前页改变触发事件 |
| | | changeCurrentPage(page) { |
| | | this.currentPage = page; |
| | | this.setTableData(); |
| | | }, |
| | | // 上一页点击事件 |
| | | handlePrev(page) { |
| | | this.currentPage = page; |
| | | this.setTableData(); |
| | | }, |
| | | // 下一页点击事件 |
| | | handleNext(page) { |
| | | this.currentPage = page; |
| | | this.setTableData(); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | .list { |
| | | text-align: left; |
| | | margin: 10px 20px; |
| | | color: #4b9bb7; |
| | | |
| | | <style> |
| | | header { |
| | | background-color: #09152f; |
| | | border: 1pox solid #fff; |
| | | |
| | | .header-content { |
| | | padding: 0 40px; |
| | | display: flex; |
| | | line-height: 100px; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | |
| | | .search { |
| | | // display: flex; |
| | | justify-content: flex-start; |
| | | |
| | | span { |
| | | flex: 1; |
| | | } |
| | | |
| | | .el-input { |
| | | flex: 2; |
| | | color: #1d3f57; |
| | | |
| | | &::v-deep .el-input__inner { |
| | | background-color: #09152f; |
| | | border: 1px solid #17324c; |
| | | } |
| | | } |
| | | .el-select { |
| | | flex: 1; |
| | | } |
| | | .el-date-editor { |
| | | flex: 1; |
| | | } |
| | | :deep(.el-range-input) { |
| | | background-color: #09152f; |
| | | } |
| | | } |
| | | .find { |
| | | margin-right: auto; |
| | | margin-left: 30px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | :deep(.el-range-separator) { |
| | | padding: 0px !important; |
| | | } |
| | | main { |
| | | background-color: #09152f; |
| | | margin-top: 20px; |
| | | padding-bottom: 50px; |
| | | border: 1pox solid #fff; |
| | | |
| | | .main-title { |
| | | line-height: 60px; |
| | | padding: 10px 20px; |
| | | } |
| | | |
| | | .tools { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | padding: 0 20px; |
| | | |
| | | .funs { |
| | | display: flex; |
| | | |
| | | .funsItem { |
| | | line-height: 28px; |
| | | display: flex; |
| | | align-items: center; |
| | | border: 1px solid #17324c; |
| | | border-radius: 4px; |
| | | font-size: 12px; |
| | | margin-left: 10px; |
| | | |
| | | .el-checkbox { |
| | | width: 80px; |
| | | padding: 0 10px; |
| | | } |
| | | |
| | | .el-select { |
| | | width: 120px; |
| | | } |
| | | |
| | | &::v-deep .el-input__inner { |
| | | border: none; |
| | | background-color: #09152f; |
| | | } |
| | | |
| | | &:hover { |
| | | border: 1px solid #4b9bb7; |
| | | } |
| | | |
| | | &:hover .el-checkbox { |
| | | color: #4b9bb7; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .pagination { |
| | | margin-top: 50px; |
| | | display: flex; |
| | | line-height: 50px; |
| | | justify-content: center; |
| | | |
| | | .el-pagination { |
| | | &::v-deep li, |
| | | &::v-deep .btn-prev, |
| | | &::v-deep .btn-next { |
| | | background-color: #071f39; |
| | | color: #4b9bb7; |
| | | } |
| | | |
| | | &::v-deep .active { |
| | | background-color: #409eff; |
| | | color: #fff; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | &::v-deep .warning-row { |
| | | background-color: #06122c; |
| | | } |
| | | |
| | | &::v-deep .success-row { |
| | | background-color: #071f39; |
| | | } |
| | | |
| | | .operationBox { |
| | | display: flex; |
| | | } |
| | | |
| | | .el-divider { |
| | | background-color: #4b9bb7; |
| | | } |
| | | .el-table { |
| | | color: #4b9bb7; |
| | | font-size: 10px; |
| | | .operation { |
| | | display: flex; |
| | | |
| | | .line { |
| | | padding: 0 5px; |
| | | } |
| | | |
| | | span:hover { |
| | | cursor: pointer; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <div>门前三包统计</div> |
| | | <div class="list"> |
| | | <header> |
| | | <div class="header-content"> |
| | | <div class="search"> |
| | | <span style="padding-right: 20px">时间范围:</span> |
| | | <el-date-picker |
| | | v-model="value2" |
| | | type="daterange" |
| | | align="right" |
| | | unlink-panels |
| | | range-separator="至" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | :picker-options="pickerOptions" |
| | | > |
| | | </el-date-picker> |
| | | </div> |
| | | |
| | | <div class="find"> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-search" |
| | | @click="setTableDataHandle" |
| | | >查询</el-button |
| | | > |
| | | <el-button icon="el-icon-delete-solid" @click="resetTableData" |
| | | >重置</el-button |
| | | > |
| | | </div> |
| | | |
| | | <div class="main-nav-right"> |
| | | <el-button type="primary" icon="el-icon-upload2" @click="handleExport" |
| | | >导出</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | </header> |
| | | <main> |
| | | <div class="main-content"> |
| | | <!-- 数据展示 --> |
| | | <el-table |
| | | ref="multipleTable" |
| | | :header-cell-style="{ |
| | | background: '#06122c', |
| | | 'font-size': '12px', |
| | | color: '#4b9bb7', |
| | | 'font-weight': '650', |
| | | 'line-height': '45px', |
| | | }" |
| | | :row-class-name="tableRowClassName" |
| | | :data="list" |
| | | style="width: 100%" |
| | | > |
| | | <el-table-column type="selection" min-width="5"> </el-table-column> |
| | | <el-table-column prop="name" label="商户名称" min-width="10"> |
| | | </el-table-column> |
| | | <el-table-column prop="count" label="事件总数" min-width="5"> |
| | | </el-table-column> |
| | | <el-table-column prop="sanitation" label="包卫生" min-width="5"> |
| | | </el-table-column> |
| | | <el-table-column prop="orderliness" label="包秩续" min-width="5"> |
| | | </el-table-column> |
| | | <el-table-column prop="facility" label="包设施" min-width="5"> |
| | | </el-table-column> |
| | | <el-table-column prop="checked" label="已审核" min-width="5"> |
| | | </el-table-column> |
| | | <el-table-column prop="register" label="立案" min-width="5"> |
| | | </el-table-column> |
| | | <el-table-column prop="registerRatio" label="立案率" min-width="5"> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | |
| | | <!-- tools --> |
| | | <div class="tools"> |
| | | <div class="funs"></div> |
| | | <div class="pagination"> |
| | | <el-pagination |
| | | background |
| | | :current-page="currentPage" |
| | | layout="prev, pager, next" |
| | | :total="totalNum" |
| | | :page-size="pageSize" |
| | | @current-change="changeCurrentPage" |
| | | @prev-click="handlePrev" |
| | | @next-click="handleNext" |
| | | > |
| | | </el-pagination> |
| | | </div> |
| | | </div> |
| | | </main> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import { createNamespacedHelpers } from "vuex"; |
| | | const { mapActions } = createNamespacedHelpers("statistics"); |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | pickerOptions: { |
| | | shortcuts: [ |
| | | { |
| | | text: "最近一周", |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); |
| | | picker.$emit("pick", [start, end]); |
| | | }, |
| | | }, |
| | | { |
| | | text: "最近一个月", |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); |
| | | picker.$emit("pick", [start, end]); |
| | | }, |
| | | }, |
| | | { |
| | | text: "最近三个月", |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); |
| | | picker.$emit("pick", [start, end]); |
| | | }, |
| | | }, |
| | | ], |
| | | }, |
| | | value1: "", |
| | | value2: "", |
| | | list: [], |
| | | totalNum: 0, |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | }; |
| | | }, |
| | | created() { |
| | | this.setTableData(); |
| | | }, |
| | | methods: { |
| | | ...mapActions(["searchByShop"]), |
| | | |
| | | } |
| | | handleExport(e) {}, |
| | | setTableDataHandle(e) {}, |
| | | resetTableData(e) {}, |
| | | // 设置表格斑马纹 |
| | | tableRowClassName({ row, rowIndex }) { |
| | | if ((rowIndex + 1) % 2 == 0) { |
| | | return "warning-row"; |
| | | } else { |
| | | return "success-row"; |
| | | } |
| | | return ""; |
| | | }, |
| | | // 设置tableData |
| | | setTableData() { |
| | | const { currentPage, pageSize, context } = this; |
| | | this.searchByShop({ |
| | | currentPage, |
| | | pageSize, |
| | | beginTime:'2022-05-01 00:00:00', |
| | | endTime:'2022-09-01 00:00:00' |
| | | }).then((res) => { |
| | | if (res.data.code == 200) { |
| | | this.list = res.data.data.records; |
| | | this.totalNum = res.data.data.total; |
| | | } |
| | | }); |
| | | }, |
| | | // 当前页改变触发事件 |
| | | changeCurrentPage(page) { |
| | | this.currentPage = page; |
| | | this.setTableData(); |
| | | }, |
| | | // 上一页点击事件 |
| | | handlePrev(page) { |
| | | this.currentPage = page; |
| | | this.setTableData(); |
| | | }, |
| | | // 下一页点击事件 |
| | | handleNext(page) { |
| | | this.currentPage = page; |
| | | this.setTableData(); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | .list { |
| | | text-align: left; |
| | | margin: 10px 20px; |
| | | color: #4b9bb7; |
| | | |
| | | <style> |
| | | header { |
| | | background-color: #09152f; |
| | | border: 1pox solid #fff; |
| | | |
| | | .header-content { |
| | | padding: 0 40px; |
| | | display: flex; |
| | | line-height: 100px; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | |
| | | .search { |
| | | // display: flex; |
| | | justify-content: flex-start; |
| | | |
| | | span { |
| | | flex: 1; |
| | | } |
| | | |
| | | .el-input { |
| | | flex: 2; |
| | | color: #1d3f57; |
| | | |
| | | &::v-deep .el-input__inner { |
| | | background-color: #09152f; |
| | | border: 1px solid #17324c; |
| | | } |
| | | } |
| | | .el-select { |
| | | flex: 1; |
| | | } |
| | | .el-date-editor { |
| | | flex: 1; |
| | | } |
| | | :deep(.el-range-input) { |
| | | background-color: #09152f; |
| | | } |
| | | } |
| | | .find { |
| | | margin-right: auto; |
| | | margin-left: 30px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | :deep(.el-range-separator) { |
| | | padding: 0px !important; |
| | | } |
| | | main { |
| | | background-color: #09152f; |
| | | margin-top: 20px; |
| | | padding-bottom: 50px; |
| | | border: 1pox solid #fff; |
| | | |
| | | .main-title { |
| | | line-height: 60px; |
| | | padding: 10px 20px; |
| | | } |
| | | |
| | | .tools { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | padding: 0 20px; |
| | | |
| | | .funs { |
| | | display: flex; |
| | | |
| | | .funsItem { |
| | | line-height: 28px; |
| | | display: flex; |
| | | align-items: center; |
| | | border: 1px solid #17324c; |
| | | border-radius: 4px; |
| | | font-size: 12px; |
| | | margin-left: 10px; |
| | | |
| | | .el-checkbox { |
| | | width: 80px; |
| | | padding: 0 10px; |
| | | } |
| | | |
| | | .el-select { |
| | | width: 120px; |
| | | } |
| | | |
| | | &::v-deep .el-input__inner { |
| | | border: none; |
| | | background-color: #09152f; |
| | | } |
| | | |
| | | &:hover { |
| | | border: 1px solid #4b9bb7; |
| | | } |
| | | |
| | | &:hover .el-checkbox { |
| | | color: #4b9bb7; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .pagination { |
| | | margin-top: 50px; |
| | | display: flex; |
| | | line-height: 50px; |
| | | justify-content: center; |
| | | |
| | | .el-pagination { |
| | | &::v-deep li, |
| | | &::v-deep .btn-prev, |
| | | &::v-deep .btn-next { |
| | | background-color: #071f39; |
| | | color: #4b9bb7; |
| | | } |
| | | |
| | | &::v-deep .active { |
| | | background-color: #409eff; |
| | | color: #fff; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | &::v-deep .warning-row { |
| | | background-color: #06122c; |
| | | } |
| | | |
| | | &::v-deep .success-row { |
| | | background-color: #071f39; |
| | | } |
| | | |
| | | .operationBox { |
| | | display: flex; |
| | | } |
| | | |
| | | .el-divider { |
| | | background-color: #4b9bb7; |
| | | } |
| | | .el-table { |
| | | color: #4b9bb7; |
| | | font-size: 10px; |
| | | .operation { |
| | | display: flex; |
| | | |
| | | .line { |
| | | padding: 0 5px; |
| | | } |
| | | |
| | | span:hover { |
| | | cursor: pointer; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <div>按时间统计</div> |
| | | <div class="list"> |
| | | <header> |
| | | <div class="header-content"> |
| | | <div class="search"> |
| | | <span style="padding-right: 20px">时间范围:</span> |
| | | <el-date-picker |
| | | v-model="value2" |
| | | type="daterange" |
| | | align="right" |
| | | unlink-panels |
| | | range-separator="至" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | :picker-options="pickerOptions" |
| | | > |
| | | </el-date-picker> |
| | | </div> |
| | | |
| | | <div class="find"> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-search" |
| | | @click="setTableDataHandle" |
| | | >查询</el-button |
| | | > |
| | | <el-button icon="el-icon-delete-solid" @click="resetTableData" |
| | | >重置</el-button |
| | | > |
| | | </div> |
| | | |
| | | <div class="main-nav-right"> |
| | | <el-button type="primary" icon="el-icon-upload2" @click="handleExport" |
| | | >导出</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | </header> |
| | | <main> |
| | | <div class="main-content"> |
| | | <!-- 数据展示 --> |
| | | <el-table |
| | | ref="multipleTable" |
| | | :header-cell-style="{ |
| | | background: '#06122c', |
| | | 'font-size': '12px', |
| | | color: '#4b9bb7', |
| | | 'font-weight': '650', |
| | | 'line-height': '45px', |
| | | }" |
| | | :row-class-name="tableRowClassName" |
| | | :data="list" |
| | | style="width: 100%" |
| | | > |
| | | <el-table-column type="selection" min-width="5"> </el-table-column> |
| | | <el-table-column prop="name" label="事件日期" min-width="10"> |
| | | </el-table-column> |
| | | <el-table-column prop="count" label="事件总数" min-width="5"> |
| | | </el-table-column> |
| | | <el-table-column prop="ratio" label="占比" min-width="5"> |
| | | </el-table-column> |
| | | <el-table-column prop="checked" label="已审核" min-width="5"> |
| | | </el-table-column> |
| | | <el-table-column prop="register" label="立案" min-width="5"> |
| | | </el-table-column> |
| | | <el-table-column prop="registerRatio" label="立案率" min-width="5"> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | |
| | | <!-- tools --> |
| | | <div class="tools"> |
| | | <div class="funs"></div> |
| | | <div class="pagination"> |
| | | <el-pagination |
| | | background |
| | | :current-page="currentPage" |
| | | layout="prev, pager, next" |
| | | :total="totalNum" |
| | | :page-size="pageSize" |
| | | @current-change="changeCurrentPage" |
| | | @prev-click="handlePrev" |
| | | @next-click="handleNext" |
| | | > |
| | | </el-pagination> |
| | | </div> |
| | | </div> |
| | | </main> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import { createNamespacedHelpers } from "vuex"; |
| | | const { mapActions } = createNamespacedHelpers("statistics"); |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | pickerOptions: { |
| | | shortcuts: [ |
| | | { |
| | | text: "最近一周", |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); |
| | | picker.$emit("pick", [start, end]); |
| | | }, |
| | | }, |
| | | { |
| | | text: "最近一个月", |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); |
| | | picker.$emit("pick", [start, end]); |
| | | }, |
| | | }, |
| | | { |
| | | text: "最近三个月", |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); |
| | | picker.$emit("pick", [start, end]); |
| | | }, |
| | | }, |
| | | ], |
| | | }, |
| | | value1: "", |
| | | value2: "", |
| | | list: [], |
| | | totalNum: 0, |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | }; |
| | | }, |
| | | created() { |
| | | this.setTableData(); |
| | | }, |
| | | methods: { |
| | | ...mapActions(["searchByTime"]), |
| | | |
| | | } |
| | | handleExport(e) {}, |
| | | setTableDataHandle(e) {}, |
| | | resetTableData(e) {}, |
| | | // 设置表格斑马纹 |
| | | tableRowClassName({ row, rowIndex }) { |
| | | if ((rowIndex + 1) % 2 == 0) { |
| | | return "warning-row"; |
| | | } else { |
| | | return "success-row"; |
| | | } |
| | | return ""; |
| | | }, |
| | | // 设置tableData |
| | | setTableData() { |
| | | const { currentPage, pageSize, context } = this; |
| | | this.searchByTime({ |
| | | currentPage, |
| | | pageSize, |
| | | beginTime:'2022-05-01 00:00:00', |
| | | endTime:'2022-09-01 00:00:00' |
| | | }).then((res) => { |
| | | if (res.data.code == 200) { |
| | | this.list = res.data.data.records; |
| | | this.totalNum = res.data.data.total; |
| | | } |
| | | }); |
| | | }, |
| | | // 当前页改变触发事件 |
| | | changeCurrentPage(page) { |
| | | this.currentPage = page; |
| | | this.setTableData(); |
| | | }, |
| | | // 上一页点击事件 |
| | | handlePrev(page) { |
| | | this.currentPage = page; |
| | | this.setTableData(); |
| | | }, |
| | | // 下一页点击事件 |
| | | handleNext(page) { |
| | | this.currentPage = page; |
| | | this.setTableData(); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | .list { |
| | | text-align: left; |
| | | margin: 10px 20px; |
| | | color: #4b9bb7; |
| | | |
| | | <style> |
| | | header { |
| | | background-color: #09152f; |
| | | border: 1pox solid #fff; |
| | | |
| | | .header-content { |
| | | padding: 0 40px; |
| | | display: flex; |
| | | line-height: 100px; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | |
| | | .search { |
| | | // display: flex; |
| | | justify-content: flex-start; |
| | | |
| | | span { |
| | | flex: 1; |
| | | } |
| | | |
| | | .el-input { |
| | | flex: 2; |
| | | color: #1d3f57; |
| | | |
| | | &::v-deep .el-input__inner { |
| | | background-color: #09152f; |
| | | border: 1px solid #17324c; |
| | | } |
| | | } |
| | | .el-select { |
| | | flex: 1; |
| | | } |
| | | .el-date-editor { |
| | | flex: 1; |
| | | } |
| | | :deep(.el-range-input) { |
| | | background-color: #09152f; |
| | | } |
| | | } |
| | | .find { |
| | | margin-right: auto; |
| | | margin-left: 30px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | :deep(.el-range-separator) { |
| | | padding: 0px !important; |
| | | } |
| | | main { |
| | | background-color: #09152f; |
| | | margin-top: 20px; |
| | | padding-bottom: 50px; |
| | | border: 1pox solid #fff; |
| | | |
| | | .main-title { |
| | | line-height: 60px; |
| | | padding: 10px 20px; |
| | | } |
| | | |
| | | .tools { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | padding: 0 20px; |
| | | |
| | | .funs { |
| | | display: flex; |
| | | |
| | | .funsItem { |
| | | line-height: 28px; |
| | | display: flex; |
| | | align-items: center; |
| | | border: 1px solid #17324c; |
| | | border-radius: 4px; |
| | | font-size: 12px; |
| | | margin-left: 10px; |
| | | |
| | | .el-checkbox { |
| | | width: 80px; |
| | | padding: 0 10px; |
| | | } |
| | | |
| | | .el-select { |
| | | width: 120px; |
| | | } |
| | | |
| | | &::v-deep .el-input__inner { |
| | | border: none; |
| | | background-color: #09152f; |
| | | } |
| | | |
| | | &:hover { |
| | | border: 1px solid #4b9bb7; |
| | | } |
| | | |
| | | &:hover .el-checkbox { |
| | | color: #4b9bb7; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .pagination { |
| | | margin-top: 50px; |
| | | display: flex; |
| | | line-height: 50px; |
| | | justify-content: center; |
| | | |
| | | .el-pagination { |
| | | &::v-deep li, |
| | | &::v-deep .btn-prev, |
| | | &::v-deep .btn-next { |
| | | background-color: #071f39; |
| | | color: #4b9bb7; |
| | | } |
| | | |
| | | &::v-deep .active { |
| | | background-color: #409eff; |
| | | color: #fff; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | &::v-deep .warning-row { |
| | | background-color: #06122c; |
| | | } |
| | | |
| | | &::v-deep .success-row { |
| | | background-color: #071f39; |
| | | } |
| | | |
| | | .operationBox { |
| | | display: flex; |
| | | } |
| | | |
| | | .el-divider { |
| | | background-color: #4b9bb7; |
| | | } |
| | | .el-table { |
| | | color: #4b9bb7; |
| | | font-size: 10px; |
| | | .operation { |
| | | display: flex; |
| | | |
| | | .line { |
| | | padding: 0 5px; |
| | | } |
| | | |
| | | span:hover { |
| | | cursor: pointer; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |