From af20e065161aeb388303d137d395725ec9dd041f Mon Sep 17 00:00:00 2001 From: liyanqi <15181887205@163.com> Date: 星期二, 01 十一月 2022 18:43:03 +0800 Subject: [PATCH] Merge branch 'master' of http://42.193.1.25:9521/r/sccg_ui --- public/index.html | 1 src/api/intelligentPatrol/statistics.js | 19 + src/store/index.js | 4 src/store/intelligentPatrol/statistics.js | 12 src/views/intelligentPatrol/statistics/unlawful/time/index.vue | 13 + src/views/intelligentPatrol/studyJudge/index.vue | 13 + src/views/intelligentPatrol/statistics/unlawful/type/index.vue | 356 +++++++++++++++++++++++++++ src/router/index.js | 105 +++++-- src/views/intelligentPatrol/statistics/unlawful/shop/index.vue | 13 + src/views/video/index.vue | 139 ++++++++-- src/views/intelligentPatrol/illegalSearch/index.vue | 13 + src/views/intelligentPatrol/trendAnalysis/index.vue | 13 + src/views/intelligentPatrol/statistics/unlawful/area/index.vue | 13 + src/views/intelligentPatrol/statistics/unlawful/point/index.vue | 13 + 14 files changed, 665 insertions(+), 62 deletions(-) diff --git a/public/index.html b/public/index.html index fe15af4..496f4e4 100644 --- a/public/index.html +++ b/public/index.html @@ -8,6 +8,7 @@ <!-- <link rel="icon" href="http://140.143.152.226:8410/sczhzf/M00/00/00/rBUAD2MxQ8CAXBxsAAACVqU61WY764.png"> --> <!-- <title><%= htmlWebpackPlugin.options.title %></title> --> <!-- <title>閬傛槍鎵ф硶骞冲彴</title> --> + <link href="https://vjs.zencdn.net/7.20.3/video-js.css" rel="stylesheet" /> </head> <body> <noscript> diff --git a/src/api/intelligentPatrol/statistics.js b/src/api/intelligentPatrol/statistics.js new file mode 100644 index 0000000..fe0261a --- /dev/null +++ b/src/api/intelligentPatrol/statistics.js @@ -0,0 +1,19 @@ +import axios from "axios"; +import { + getToken +} from '@/utils/helper' +const baseUrl = '/sccg/intelligentPatrol/statistics' +const token = { + 'Authorization': getToken() +} +export default { + // 鎸夎繚瑙勭被鍨嬬粺璁� + searchByType: (data) => axios({ + method: 'get', + url: baseUrl + '/unlawful/type', + headers: { + ...token + }, + params: data + }), +}; \ No newline at end of file diff --git a/src/router/index.js b/src/router/index.js index acdcb0b..0ae2794 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -1,8 +1,7 @@ import Vue from 'vue' import VueRouter from 'vue-router' Vue.use(VueRouter) -const routes = [ - { +const routes = [{ path: "/", name: 'index', redirect: '/home' @@ -14,18 +13,15 @@ meta: { needLogin: true, }, - children: [ - { + children: [{ path: 'system', name: 'system', component: () => import('@/views/systemSetting'), - children: [ - { + children: [{ path: 'userSetting', name: 'userSetting', component: () => import('@/views/systemSetting/baseSetting'), - children: [ - { + children: [{ path: "user", name: "user", component: () => import('@/views/systemSetting/baseSetting/user') @@ -47,8 +43,7 @@ path: 'platform', name: 'platform', component: () => import('@/views/systemSetting/platform'), - children: [ - { + children: [{ path: 'portalSetting', name: 'portalSetting', component: () => import('@/views/systemSetting/platform/portalSetting') @@ -69,8 +64,7 @@ path: 'device', name: 'device', component: () => import('@/views/systemSetting/device'), - children: [ - { + children: [{ path: 'bayonet', name: 'bayonet', component: () => import('@/views/systemSetting/device/bayonet') @@ -89,8 +83,7 @@ path: 'handheldTerminal', name: 'handheldTerminal', component: () => import('@/views/systemSetting/device/handheldTerminal'), - } - , + }, { path: 'loudspeaker', name: 'loudspeaker', @@ -104,13 +97,11 @@ path: "operate", name: 'operate', component: () => import('@/views/operate'), - children: [ - { + children: [{ path: 'baseSetting', name: 'baseSetting', component: () => import('@/views/operate/baseSetting'), - children: [ - { + children: [{ path: "violation", name: 'violation', component: () => import('@/views/operate/baseSetting/violation'), @@ -126,8 +117,7 @@ path: 'casepool', name: 'casepool', component: () => import('@/views/operate/disposal'), - children: [ - { + children: [{ path: 'pool', name: 'pool', component: () => import('@/views/operate/disposal/casepool/pool'), @@ -158,8 +148,7 @@ path: "fivepack", name: 'fivepack', component: () => import('@/views/operate/fivepack'), - children: [ - { + children: [{ path: "shop", name: 'shop', component: () => import('@/views/operate/fivepack/shop'), @@ -177,11 +166,20 @@ component: () => import('@/views/operate/myWait'), }, { + path: 'images', + name: 'images', + component: () => import('@/views/operate/images'), + }, + { + path: 'viewEvent', + name: 'viewEvent', + component: () => import('@/views/operate/viewEvent'), + }, + { path: 'rectification', name: 'rectification', component: () => import('@/views/operate/rectification'), - children: [ - { + children: [{ path: "taskList", name: 'taskList', component: () => import('@/views/operate/rectification/taskList'), @@ -208,8 +206,7 @@ name: 'management', component: () => import('@/views/operate/management'), redirect: '/home/operate/management/myIndex', - children: [ - { + children: [{ path: 'myIndex', name: 'myIndex', component: () => import('@/views/operate/management/myIndex'), @@ -225,8 +222,7 @@ path: 'car', name: 'car', component: () => import('@/views/operate/car'), - children: [ - { + children: [{ path: 'carIndex', name: 'carIndex', component: () => import('@/views/operate/car/myIndex'), @@ -247,8 +243,7 @@ path: 'message', name: 'message', component: () => import('@/views/operate/message'), - children: [ - { + children: [{ path: 'messageIndex', name: 'messageIndex', component: () => import('@/views/operate/message/myIndex'), @@ -326,6 +321,49 @@ name: 'info', component: () => import('@/views/info') }, + + // 鏅鸿兘宸℃煡 + { + path: 'studyJudge', // 棰勮鐮斿垽 + name: 'studyJudge', + component: () => import('@/views/intelligentPatrol/studyJudge'), + }, + { + path: 'illegalSearch', // 杩濊妫�绱� + name: 'illegalSearch', + component: () => import('@/views/intelligentPatrol/illegalSearch'), + }, + { + path: 'trendAnalysis', // 瓒嬪娍鍒嗘瀽 + name: 'trendAnalysis', + component: () => import('@/views/intelligentPatrol/trendAnalysis'), + }, + // 杩濇硶缁熻 + { + path: 'typeStatistics', // 鎸夎繚瑙勭被鍨嬬粺璁� + name: 'typeStatistics', + component: () => import('@/views/intelligentPatrol/statistics/unlawful/type'), + }, + { + path: 'pointStatistics', //鎸夌偣浣嶇粺璁� + name: 'pointStatistics', + component: () => import('@/views/intelligentPatrol/statistics/unlawful/point'), + }, + { + path: 'timeStatistics', //鎸夋椂闂寸粺璁� + name: 'timeStatistics', + component: () => import('@/views/intelligentPatrol/statistics/unlawful/time'), + }, + { + path: 'areaStatistics', //鎸夊尯鍩熺粺璁� + name: 'areaStatistics', + component: () => import('@/views/intelligentPatrol/statistics/unlawful/area'), + }, + { + path: 'shopStatistics', //闂ㄥ墠涓夊寘缁熻 + name: 'shopStatistics', + component: () => import('@/views/intelligentPatrol/statistics/unlawful/shop'), + } ] }, { @@ -353,7 +391,10 @@ name: "/success", component: () => import('@/views/info/Success'), }, - { path: '*', redirect: '/404' } + { + path: '*', + redirect: '/404' + } ] const router = new VueRouter({ @@ -365,4 +406,4 @@ router.push = function push(location) { return originalPush.call(this, location).catch(err => err); } -export default router +export default router \ No newline at end of file diff --git a/src/store/index.js b/src/store/index.js index c271a66..84a64f1 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -6,6 +6,7 @@ import loudspeaker from './system/loudspeaker' import handheldTerminal from './system/handheldTerminal' import shortMessage from './operate/managenment/shortMessage' +import statistics from './intelligentPatrol/statistics' Vue.use(Vuex) export default new Vuex.Store({ @@ -19,6 +20,7 @@ bayonet, shortMessage, loudspeaker, - handheldTerminal + handheldTerminal, + statistics } }) \ No newline at end of file diff --git a/src/store/intelligentPatrol/statistics.js b/src/store/intelligentPatrol/statistics.js new file mode 100644 index 0000000..b22147a --- /dev/null +++ b/src/store/intelligentPatrol/statistics.js @@ -0,0 +1,12 @@ +import api from "@/api/intelligentPatrol/statistics"; +export default { + namespaced: true, + state: { + userInfo: {}, + }, + actions: { + searchByType(context, params) { + return api.searchByType(params); + } + }, +}; \ No newline at end of file diff --git a/src/views/intelligentPatrol/illegalSearch/index.vue b/src/views/intelligentPatrol/illegalSearch/index.vue new file mode 100644 index 0000000..83fe1d5 --- /dev/null +++ b/src/views/intelligentPatrol/illegalSearch/index.vue @@ -0,0 +1,13 @@ +<template> + <div>杩濊妫�绱�</div> +</template> + +<script> +export default { + +} +</script> + +<style> + +</style> \ No newline at end of file diff --git a/src/views/intelligentPatrol/statistics/unlawful/area/index.vue b/src/views/intelligentPatrol/statistics/unlawful/area/index.vue new file mode 100644 index 0000000..3e73bbc --- /dev/null +++ b/src/views/intelligentPatrol/statistics/unlawful/area/index.vue @@ -0,0 +1,13 @@ +<template> + <div>鎸夊尯鍩熺粺璁�</div> +</template> + +<script> +export default { + +} +</script> + +<style> + +</style> \ No newline at end of file diff --git a/src/views/intelligentPatrol/statistics/unlawful/point/index.vue b/src/views/intelligentPatrol/statistics/unlawful/point/index.vue new file mode 100644 index 0000000..b8057e0 --- /dev/null +++ b/src/views/intelligentPatrol/statistics/unlawful/point/index.vue @@ -0,0 +1,13 @@ +<template> + <div>鎸夌偣浣嶇粺璁�</div> +</template> + +<script> +export default { + +} +</script> + +<style> + +</style> \ No newline at end of file diff --git a/src/views/intelligentPatrol/statistics/unlawful/shop/index.vue b/src/views/intelligentPatrol/statistics/unlawful/shop/index.vue new file mode 100644 index 0000000..110ca53 --- /dev/null +++ b/src/views/intelligentPatrol/statistics/unlawful/shop/index.vue @@ -0,0 +1,13 @@ +<template> + <div>闂ㄥ墠涓夊寘缁熻</div> +</template> + +<script> +export default { + +} +</script> + +<style> + +</style> \ No newline at end of file diff --git a/src/views/intelligentPatrol/statistics/unlawful/time/index.vue b/src/views/intelligentPatrol/statistics/unlawful/time/index.vue new file mode 100644 index 0000000..000f533 --- /dev/null +++ b/src/views/intelligentPatrol/statistics/unlawful/time/index.vue @@ -0,0 +1,13 @@ +<template> + <div>鎸夋椂闂寸粺璁�</div> +</template> + +<script> +export default { + +} +</script> + +<style> + +</style> \ No newline at end of file diff --git a/src/views/intelligentPatrol/statistics/unlawful/type/index.vue b/src/views/intelligentPatrol/statistics/unlawful/type/index.vue new file mode 100644 index 0000000..adbf32a --- /dev/null +++ b/src/views/intelligentPatrol/statistics/unlawful/type/index.vue @@ -0,0 +1,356 @@ +<template> + <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> + </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"); + +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(["searchByType"]), + + 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.searchByType({ + 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; + + 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> \ No newline at end of file diff --git a/src/views/intelligentPatrol/studyJudge/index.vue b/src/views/intelligentPatrol/studyJudge/index.vue new file mode 100644 index 0000000..9278ea7 --- /dev/null +++ b/src/views/intelligentPatrol/studyJudge/index.vue @@ -0,0 +1,13 @@ +<template> + <div>棰勮鐮斿垽</div> +</template> + +<script> +export default { + +} +</script> + +<style> + +</style> \ No newline at end of file diff --git a/src/views/intelligentPatrol/trendAnalysis/index.vue b/src/views/intelligentPatrol/trendAnalysis/index.vue new file mode 100644 index 0000000..da3bee6 --- /dev/null +++ b/src/views/intelligentPatrol/trendAnalysis/index.vue @@ -0,0 +1,13 @@ +<template> + <div>瓒嬪娍鍒嗘瀽</div> +</template> + +<script> +export default { + +} +</script> + +<style> + +</style> \ No newline at end of file diff --git a/src/views/video/index.vue b/src/views/video/index.vue index 995f959..673cada 100644 --- a/src/views/video/index.vue +++ b/src/views/video/index.vue @@ -1,32 +1,113 @@ <template> - <div> - <el-button @click="getRegion">1111111</el-button> - </div> + <el-container> + <el-aside width="200px"> + <div style="line-height: 40px;text-align: left;padding: 0 20px 0 10px;"> + <span style="color:rgb(75, 155, 183);font-weight: 500; width: 196px;">缁勭粐鏈烘瀯</span> + <el-input placeholder="璇疯緭鍏ユ満鏋�"></el-input> + </div> + <el-tree :data="treedata" :props="defaultProps" @node-click="handleNodeClick"></el-tree> + + + </el-aside> + + <el-container> + <el-header style="display:flex;justify-content: space-between;"> + <div> + <span style="color:rgb(75, 155, 183);font-weight: 500;text-align: left; font-size: 12px;">鏁翠綋瓒嬪娍</span> + </div> + <el-date-picker v-model="value" type="date" placeholder="閫夋嫨鏃ユ湡"> + </el-date-picker> + </el-header> + + <el-main> + <video id="my-video" class="video-js" controls preload="auto" width="100%" height="100%" + poster="MY_VIDEO_POSTER.jpg" data-setup="{}"> + <source + src="http://vali-g1.cp31.ott.cibntv.net/youku/65730720cb94e7220271a3c96/0300080100632D30A3E43019FD116537F5162F-1035-48AC-BE1B-602DF0E92893.mp4?sid=166729534400010004780_00_Bda935cf9a33346c593fc27da8e694df3&sign=db39289573d143cf6e1ad8d8dff36682&ctype=50&si=183&psid=c732c4364319e7ef4685d8f1a568015941346" + type="video/mp4" /> + <source src="MY_VIDEO.webm" type="video/webm" /> + <p class="vjs-no-js"> + To view this video please enable JavaScript, and consider upgrading to a + web browser that + <a href="https://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a> + </p> + </video> + </el-main> + </el-container> + </el-container> </template> - -<script> -export default { - data(){ - return{ - - } - }, - methods:{ - getRegion(){ - // this.$axios.get('sccg/sccg-region/getTree').then(res=>{ - // console.log(res); - // }) - this.$axios({ - method:'get', - url:'sccg/sccg-region/getTree', - }) - .then(res=>{ - console.log(res); - }) - } - } -} -</script> - <style lang="scss" scoped> -</style> \ No newline at end of file +.el-header { + background-color: #09152f; + color: #000; + line-height: 60px; +} + +::v-deep .el-aside { + background-color: #09152f; +} + +::v-deep .el-menu { + background-color: #09152f; +} + +::v-deep .el-tree-node__label { + line-height: 30px; + font-size: 14px; + color: rgb(75, 155, 183); +} +</style> +<script src="https://vjs.zencdn.net/7.20.3/video.min.js"></script> +<script> + export default { + data() { + return { + treedata: [{ + label: '濡欓珮琛楅亾', + children: [{ + label: '涓滆', + children: [{ + label: '铻鸿洺鍨�' + }] + }] + }, { + label: '浜戝嘲琛楅亾', + children: [{ + label: '涓滀涵', + children: [{ + label: '闅旀邯' + }] + }, { + label: '椹ご', + children: [{ + label: '榫欏彛' + }] + }] + }, { + label: '鏂拌矾婀鹃晣', + children: [{ + label: '鏂拌矾婀鹃晣', + children: [{ + label: '鏂拌矾婀鹃晣' + }] + }, { + label: '鏂拌矾婀鹃晣', + children: [{ + label: '鏂拌矾婀鹃晣' + }] + }] + }], + defaultProps: { + children: 'children', + label: 'label' + }, + value:'' + }; + }, + methods: { + handleNodeClick(data) { + console.log(data); + } + } + }; +</script> \ No newline at end of file -- Gitblit v1.8.0