From 667e1a5b49ffc2f7af9237b4542b1c2e4d00731f Mon Sep 17 00:00:00 2001 From: luobisheng <727299681@qq.com> Date: 星期一, 28 十一月 2022 16:37:12 +0800 Subject: [PATCH] 趋势分析 --- src/views/operate/fivepack/threepack/components/updateUser/index.vue | 2 src/components/process/index.vue | 3 src/views/operate/viewEvent/index.vue | 2 vue.config.js | 8 src/api/operate/basecase.js | 57 +++++ src/views/intelligentPatrol/studyJudge/index.vue | 56 +++-- src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/vio/index.vue | 2 src/views/operate/message/myIndex/index.vue | 12 - src/views/operate/disposal/casepool/dispatch/index.vue | 2 /dev/null | 17 - src/views/intelligentPatrol/illegalSearch/viewInfo/index.vue | 14 src/api/system/bayonet.js | 2 src/views/intelligentPatrol/illegalSearch/index.vue | 231 +++++++++++----------- src/views/intelligentPatrol/trendAnalysis/index.vue | 170 ++++++---------- src/App.vue | 3 src/views/systemSetting/device/bayonet/create/index.vue | 3 src/views/operate/sms/smsTemplate/createTemplate/index.vue | 1 17 files changed, 299 insertions(+), 286 deletions(-) diff --git a/src/App.vue b/src/App.vue index 5974d0d..d11fc9d 100644 --- a/src/App.vue +++ b/src/App.vue @@ -176,4 +176,7 @@ -webkit-box-shadow: inset 0 0 6px rgba(145, 143, 0143, 0.3); background-color: rgb(145, 143, 143); /*婊氬姩鏉$殑鑳屾櫙棰滆壊*/ } +.el-range-input { + background-color: #09152f; +} </style> \ No newline at end of file diff --git a/src/api/operate/basecase.js b/src/api/operate/basecase.js new file mode 100644 index 0000000..434534e --- /dev/null +++ b/src/api/operate/basecase.js @@ -0,0 +1,57 @@ +import http from "@/http"; + +export default { + baseCaseQuery: (params) => { + return http.get('/sccg/base_case/query_case', params); + }, + + // 鑾峰彇澶勭疆缁撴灉璇︽儏 + getBaseCaseDetail: (id) => { + return http.get('/sccg/base_case/baseCaseDetail/' + id); + }, + + // 涓婁紶澶勭疆缁撴灉 + updateDisposeResult: (params) => { + return http.post('/sccg/dispatch_handle/addition_dispose_result', params); + }, + + // 杩濊妫�绱� + getViolationList: (params) => { + return http.get('/sccg/base_case/query_for_violation', params); + }, + + // 涓嬭浇杩濊妫�绱㈡暟鎹� + exportViolationData: (params) => { + return http.downloadFile('/sccg/base_case/query_for_violation/export', params); + }, + + // 棰勮鐮斿垽 + getInspectionData: (params) => { + return http.get('/sccg/base_case/video_inspection', params); + }, + + // 棰勮鐮斿垽璁℃暟 + getInspectionCountData: (params) => { + return http.get('/sccg/base_case/video_inspection/Count', params); + }, + + // 棰勮鐮斿垽纭畾 + confirmInspection: (params) => { + return http.put('/sccg/base_case/video_inspection', params); + }, + + // 瓒嬪娍鍒嗘瀽 + getTrendAnalysisData: (params) => { + return http.post('/sccg/trendAnalysis/info', params); + }, + + // 棣栨鎶ヨ鐐逛綅鏁版嵁鏌ヨ + getFirstTrendAnalysisData: (params) => { + return http.post('/sccg/trendAnalysis/firstInfo', params); + }, + + getPointTrendAnalysisData: (params) => { + return http.post('/sccg/trendAnalysis/pointInfo', params); + } + +} \ No newline at end of file diff --git a/src/api/operate/casequery.js b/src/api/operate/casequery.js deleted file mode 100644 index 263e33b..0000000 --- a/src/api/operate/casequery.js +++ /dev/null @@ -1,17 +0,0 @@ -import http from "@/http"; - -export default { - baseCaseQuery: (params) => { - return http.get('/sccg/base_case/query_case', params); - }, - - // 鑾峰彇澶勭疆缁撴灉璇︽儏 - getBaseCaseDetail: (id) => { - return http.get('/sccg/base_case/baseCaseDetail/' + id); - }, - - // 涓婁紶澶勭疆缁撴灉 - updateDisposeResult: (params) => { - return http.post('/sccg/dispatch_handle/addition_dispose_result', params); - } -} \ No newline at end of file diff --git a/src/api/system/bayonet.js b/src/api/system/bayonet.js index df08a0a..cf40d8b 100644 --- a/src/api/system/bayonet.js +++ b/src/api/system/bayonet.js @@ -4,7 +4,7 @@ return http.get('/sccg/equipment_bayonet/query', params); }, exportBayonetList: (params) => { - return http.get('/sccg/equipment_bayonet/export', params); + return http.downloadFile('/sccg/equipment_bayonet/export', params); }, addBayonet: (params) => { return http.post('/sccg/equipment_bayonet/addition', params); diff --git a/src/components/process/index.vue b/src/components/process/index.vue index 0f18d78..6702405 100644 --- a/src/components/process/index.vue +++ b/src/components/process/index.vue @@ -111,9 +111,6 @@ handlePassVo: { workflowConfigSteps: mylist }, baseCase: { state: mystate }, } = this; - // console.log(this.handlePassVo.workflowConfigSteps[0].name); - // console.log(mylist); - console.log(mystate); if (mystate === 6) { this.active = 1; } else if (mystate === 7) { diff --git a/src/views/intelligentPatrol/illegalSearch/index.vue b/src/views/intelligentPatrol/illegalSearch/index.vue index deaf20d..463c5e2 100644 --- a/src/views/intelligentPatrol/illegalSearch/index.vue +++ b/src/views/intelligentPatrol/illegalSearch/index.vue @@ -4,8 +4,16 @@ <div class="headerContent"> <!-- 鏉′欢绛涢�� --> <el-form ref="condition" :model="form" label-width="100px"> - <el-form-item :label=item.label :key=item.id v-for="item in headerList"> - <el-input v-model="item.value" :placeholder="item.placeholder"></el-input> + <el-form-item :label=item.label :key=item.id v-for="item in headerList" :prop="item.prop"> + <el-input v-if="item.type === 'input'" v-model="form[item.prop]" :placeholder="item.placeholder"></el-input> + <el-cascader v-if="item.type === 'cascader'" :options="item.options" :props="{ value: 'id', label: 'regionName' }" + v-model="form[item.prop]" :placeholder="item.placeholder"></el-cascader> + <el-select v-if="item.type === 'select'" v-model="form[item.prop]" :placeholder="item.placeholder"> + <el-option v-for="option in item.options" :value="option.id" :key="option.id" :label="option.name"></el-option> + </el-select> + <el-date-picker v-if="item.type === 'timepick'" type="datetimerange" v-model="form[item.prop]" start-placeholder="寮�濮嬫棩鏈�" + end-placeholder="缁撴潫鏃ユ湡" value-format="yyyy-MM-dd HH:mm:ss" + ></el-date-picker> </el-form-item> </el-form> </div> @@ -16,10 +24,10 @@ <div class="main-btns"> <div class="main-btns-left"> <el-button icon="el-icon-download">涓嬭浇鍥剧墖</el-button> - <el-button icon="el-icon-folder">瀵煎嚭</el-button> + <el-button icon="el-icon-folder" @click="exportTableData">瀵煎嚭</el-button> </div> <div class="main-btns-right"> - <el-button icon="el-icon-search">鏌ヨ</el-button> + <el-button icon="el-icon-search" @click="searchTableData">鏌ヨ</el-button> <el-button icon="el-icon-delete-solid" @click="handleReset">閲嶇疆</el-button> </div> </div> @@ -29,17 +37,17 @@ :data="tableData" style="width: 100%" :row-class-name="tableRowClassName"> <el-table-column type="selection" min-width="5"> </el-table-column> - <el-table-column prop="number" label="浜嬩欢缂栧彿" min-width="10"> + <el-table-column prop="code" label="浜嬩欢缂栧彿" min-width="10"> </el-table-column> - <el-table-column prop="type" label="杩濊绫诲瀷" min-width="10"> + <el-table-column prop="typeName" label="杩濊绫诲瀷" min-width="10"> </el-table-column> - <el-table-column prop="source" label="浜嬩欢鏉ユ簮" min-width="10"> + <el-table-column prop="eventSource" label="浜嬩欢鏉ユ簮" min-width="10"> </el-table-column> - <el-table-column prop="level" label="浜嬩欢绛夌骇" min-width="10"> + <el-table-column prop="gradeName" label="浜嬩欢绛夌骇" min-width="10"> </el-table-column> - <el-table-column prop="point" label="鎶ヨ鐐逛綅" min-width="10"> + <el-table-column prop="streetName" label="鎶ヨ鐐逛綅" min-width="10"> </el-table-column> - <el-table-column prop="org" label="鎵�灞炵粍缁�" min-width="10"> + <el-table-column prop="site" label="鎵�灞炵粍缁�" min-width="10"> </el-table-column> <el-table-column prop="alarmTime" label="鎶ヨ鏃堕棿" min-width="12"> </el-table-column> @@ -49,7 +57,7 @@ </el-table-column> <el-table-column prop="state" label="瀹℃牳鐘舵��" min-width="10"> </el-table-column> - <el-table-column prop="advice" label="澶勭悊鎰忚" min-width="10"> + <el-table-column prop="handlingOpinion" label="澶勭悊鎰忚" min-width="10"> </el-table-column> <el-table-column prop="operation" label="鎿嶄綔" min-width="15"> <template slot-scope="scope"> @@ -63,7 +71,7 @@ </main> <footer> <!-- 鏌ョ湅鍏蜂綋淇℃伅 --> - <el-dialog title="浜嬩欢璇︽儏" :visible.sync="dialogView" width="45%" :before-close="handleClose"> + <el-dialog title="浜嬩欢璇︽儏" destroy-on-close :visible.sync="dialogView" width="45%" :before-close="handleClose"> <ViewInfo :info="info"></ViewInfo> </el-dialog> </footer> @@ -71,163 +79,166 @@ </template> <script> -import helper from "@/utils/mydate.js" -import ViewInfo from './viewInfo' +import helper from "@/utils/mydate.js"; +import ViewInfo from './viewInfo'; +import basecase from "@/api/operate/basecase"; +import department from "@/api/system/department"; +import { getVideoPoint } from "@/api/operate/storeManagement"; + export default { components: { ViewInfo }, + + created() { + this.getTableData(); + + // 鑾峰彇缁勭粐鍒楄〃 + department.getDepartmentList() + .then(res => { + this.headerList[0].options = res; + }) + .catch(err => this.$message.error(err)) + + getVideoPoint({ current: 1, size: 100 }) + .then(({ records }) => { + this.headerList[4].options = records; + }) + .catch(err => this.$message.error(err)) + }, + data() { return { - tableData: [ - { - number: '123456', - type: '浜烘皯璺彸浜�', - source: '瑙嗛涓婃姤', - level: '涓�鑸簨浠�', - point: '123.123,123.233', - org: '浜烘皯閮�', - alarmTime: '2022-02-12 12:00:00', - continueTime: '2灏忔椂30鍒嗛挓06绉�', - carNumber: '娴橞245CM', - state: '寰呭鏍�', - advice: '闇�鍙婃椂澶勭悊' - }, - { - number: '123457', - type: '浜烘皯璺乏浜�', - source: '瑙嗛涓婃姤', - level: '楂樺彂浜嬩欢', - point: '123.123,123.233', - org: '浜烘皯閮�', - alarmTime: '2022-02-12 12:00:00', - continueTime: '2灏忔椂30鍒嗛挓06绉�', - carNumber: '娴橞245CM', - state: '寰呭鏍�', - advice: '闇�鍙婃椂澶勭悊' - }, - { - number: '123458', - type: '浜哄璺彸浜�', - source: '瑙嗛涓婃姤', - level: '涓�鑸簨浠�', - point: '123.123,123.233', - org: '浜烘皯閮�', - alarmTime: '2022-02-12 12:00:00', - continueTime: '2灏忔椂30鍒嗛挓06绉�', - carNumber: '娴橞245CM', - state: '寰呭鏍�', - advice: '闇�鍙婃椂澶勭悊' - }, - { - number: '123459', - type: '浜烘皯璺彸浜�', - source: '瑙嗛涓婃姤', - level: '涓�鑸簨浠�', - point: '123.123,123.233', - org: '浜烘皯閮�', - alarmTime: '2022-02-12 12:00:00', - continueTime: '2灏忔椂30鍒嗛挓06绉�', - carNumber: '娴橞245CM', - state: '寰呭鏍�', - advice: '闇�鍙婃椂澶勭悊' - }, - { - number: '123460', - type: '浜烘皯璺彸浜�', - source: '瑙嗛涓婃姤', - level: '涓�鑸簨浠�', - point: '123.123,123.233', - org: '浜烘皯閮�', - alarmTime: '2022-02-12 12:00:00', - continueTime: '2灏忔椂30鍒嗛挓06绉�', - carNumber: '娴橞245CM', - state: '寰呭鏍�', - advice: '闇�鍙婃椂澶勭悊' - } - ], - context: "", + tableData: [], dialogView: false, - info: '', + info: null, + currentPage: 1, + pageSize: 10, headerList: [ { id: 1, label: '鎵�灞炵粍缁�:', value: '', - placeholder: '璇疯緭鍏ユ墍灞炵粍缁�' + placeholder: '璇疯緭鍏ユ墍灞炵粍缁�', + prop: 'organization', + type: 'cascader', + options: [] }, { id: 2, label: '鎶ヨ鏃堕棿:', value: '', - placeholder: '璇疯緭鍏ユ姤璀︽椂闂�' + placeholder: '璇疯緭鍏ユ姤璀︽椂闂�', + prop: 'alarmTime', + type: 'timepick' }, { id: 3, label: '杩濊绫诲瀷:', value: '', - placeholder: '璇疯緭鍏ヨ繚瑙勭被鍨�' + placeholder: '璇疯緭鍏ヨ繚瑙勭被鍨�', + prop: 'typeId', + type: 'input' }, { id: 4, label: '浜嬩欢缂栧彿:', value: '', - placeholder: '璇疯緭鍏ヤ簨浠剁紪鍙�' + placeholder: '璇疯緭鍏ヤ簨浠剁紪鍙�', + prop: 'code', + type: 'input' }, { id: 5, label: '鐩戞帶鐐瑰悕绉�:', value: '', - placeholder: '璇疯緭鍏ョ洃鎺х偣鍚嶇О' + placeholder: '璇疯緭鍏ョ洃鎺х偣鍚嶇О', + prop: 'videoPointId', + type: 'select', + options: [] }, { id: 6, label: '瀹℃牳鐘舵��:', value: '', - placeholder: '璇疯緭鍏ュ鏍哥姸鎬�' + placeholder: '璇疯緭鍏ュ鏍哥姸鎬�', + type: 'select', + options: [{ id: 7, name: '鏈鏍�' }, { id: 8, name: '宸茬粡瀹℃牳' }, { id: 9, name: '缁撴' }] }, { id: 7, label: '杞︾墝鍙�:', value: '', - placeholder: '璇疯緭鍏ヨ溅鐗屽彿' + placeholder: '璇疯緭鍏ヨ溅鐗屽彿', + prop: 'carNumber', + type: 'input' }, { id: 8, label: '澶勭悊鎰忚:', value: '', - placeholder: '璇疯緭鍏ヤ簨浠剁瓑绾�' + placeholder: '璇疯緭鍏ヤ簨浠剁瓑绾�', + prop: 'handlingOpinion', + type: 'input' }, { id: 9, - label: '鎶ヨ鏃堕棿:', + label: '浜嬩欢绛夌骇:', value: '', - placeholder: '璇疯緭鍏ユ墍灞炵粍缁�' + placeholder: '璇疯緭鍏ヤ簨浠剁瓑绾�', + prop: 'gradeId', + type: 'input' }, ], form: { - + gradeId: null, + alarmTime: null, + handlingOpinion: null, + streetId: null, + typeId: null, + code: null, + carNumber: null, + state: null, + videoPointId: null, + organization: null } } }, + methods: { + getTableData(params) { + basecase.getViolationList({ current: this.currentPage, pageSize: this.pageSize, ...params }) + .then(({ records }) => { + this.tableData = records; + }) + .catch(err => this.$message.error(err)) + }, + + searchTableData() { + const { alarmTime, organization } = this.form; + const [startTime, endTime] = alarmTime ?? [null, null]; + const [communityId, streetId] = organization ?? [null, null]; + const params = Object.assign({}, this.form); + delete params.alarmTime; + delete params.organization; + this.getTableData({ startTime, streetId, communityId, endTime, ...params }); + }, + changeTime({ createTime }) { return helper(createTime); }, // 璁剧疆琛ㄦ牸鏂戦┈绾� tableRowClassName({ row, rowIndex }) { - if ((rowIndex + 1) % 2 == 0) { + if ((rowIndex + 1) % 2 === 0) { return 'warning-row'; } else { return 'success-row'; } - return ''; }, // 琛ㄥ崟閲嶇疆 handleReset() { - this.headerList.forEach(item => { - item.value = '' - }) + this.$refs.condition.resetFields(); + this.getTableData(); }, // 鍏抽棴寮圭獥 handleClose(done) { @@ -237,15 +248,15 @@ handleView(data) { this.info = data this.dialogView = true - console.log(data) }, - // 鑷畾涔夊叧闂脊绐� - // myCloseDialog({flag,str,index}){ - // console.log( this[str]) - // if(index === 0){ - - // } - // } + + exportTableData() { + basecase.exportViolationData({ current: 1 }) + .then(() => { + this.$message.success('鎿嶄綔鎴愬姛'); + }) + .catch(err => this.$message.error(err)) + } } } </script> @@ -257,7 +268,6 @@ header { background-color: #09152f; - border: 1pox solid #fff; .headerContent { padding: 20px 40px; @@ -285,7 +295,6 @@ background-color: #09152f; margin-top: 20px; padding-bottom: 50px; - border: 1pox solid #fff; .mainTitle { line-height: 60px; @@ -330,10 +339,6 @@ .el-checkbox { width: 80px; padding: 0 10px; - } - - .el-select { - width: 120px; } &::v-deep .el-input__inner { diff --git a/src/views/intelligentPatrol/illegalSearch/viewInfo/index.vue b/src/views/intelligentPatrol/illegalSearch/viewInfo/index.vue index 1c73af6..2bb2db5 100644 --- a/src/views/intelligentPatrol/illegalSearch/viewInfo/index.vue +++ b/src/views/intelligentPatrol/illegalSearch/viewInfo/index.vue @@ -2,22 +2,22 @@ <div id="view-info"> <el-form ref="info" :model="myInfo" label-width="100px"> <el-form-item label="浜嬩欢缂栧彿:"> - <el-input v-model="myInfo.number" disabled></el-input> + <el-input v-model="myInfo.code" disabled></el-input> </el-form-item> <el-form-item label="杩濊绫诲瀷:"> - <el-input v-model="myInfo.type" disabled></el-input> + <el-input v-model="myInfo.typeName" disabled></el-input> </el-form-item> <el-form-item label="浜嬩欢鏉ユ簮:"> - <el-input v-model="myInfo.source" disabled></el-input> + <el-input v-model="myInfo.eventSource" disabled></el-input> </el-form-item> <el-form-item label="浜嬩欢绛夌骇:"> - <el-input v-model="myInfo.level" disabled></el-input> + <el-input v-model="myInfo.gradeName" disabled></el-input> </el-form-item> <el-form-item label="鎶ヨ鐐逛綅:"> - <el-input v-model="myInfo.point" disabled></el-input> + <el-input v-model="myInfo.streetName" disabled></el-input> </el-form-item> <el-form-item label="鎵�灞炵粍缁�:"> - <el-input v-model="myInfo.org" disabled></el-input> + <el-input v-model="myInfo.site" disabled></el-input> </el-form-item> <el-form-item label="鎶ヨ鏃堕棿:"> <el-input v-model="myInfo.alarmTime" disabled></el-input> @@ -32,7 +32,7 @@ <el-input v-model="myInfo.state" disabled></el-input> </el-form-item> <el-form-item label="澶勭悊鎰忚:"> - <el-input v-model="myInfo.advice" disabled></el-input> + <el-input v-model="myInfo.handlingOpinion" disabled></el-input> </el-form-item> </el-form> </div> diff --git a/src/views/intelligentPatrol/studyJudge/index.vue b/src/views/intelligentPatrol/studyJudge/index.vue index e5fcded..29b44c5 100644 --- a/src/views/intelligentPatrol/studyJudge/index.vue +++ b/src/views/intelligentPatrol/studyJudge/index.vue @@ -1,14 +1,13 @@ <template> <div class="study-judge"> <div class="study-judge-header"> - <span>鎮ㄦ湁1111鏉″緟瀹℃牳鎶ヨ淇℃伅,浠婃棩绔嬫0鏉�,鍐嶅涔�0鏉�</span> + <span>鎮ㄦ湁1111鏉″緟瀹℃牳鎶ヨ淇℃伅,浠婃棩绔嬫0鏉�,鍐嶅涔爗{ currentEvent.review }}鏉�</span> </div> <div class="study-judge-main"> - <!-- sjm:study-judge-main --> <div class="sjm-header"> <div class="sjm-header-left"> - <span class="moni-name">鐩戞帶鐐逛綅鍚嶇О:涓崕璺疿X璺彛 </span> - <span class="moni-area">涓崕琛楅亾鍖哄煙</span> + <span class="moni-name">鐩戞帶鐐逛綅鍚嶇О: {{ currentEvent.name }} </span> + <span class="moni-area">{{ currentEvent.street }}</span> </div> <div class="sjm-header-right"> <el-button size="small">瀹炴椂棰勮</el-button> @@ -19,9 +18,7 @@ <div class="sjm-content-left"> <div class="img-item"> <span>鎶ヨ鍥剧墖</span> - <img - src="https://axure-file.lanhuapp.com/90466432-c999-4bf0-80b8-ee3f96a2099e__67d4d15bfc501319f8377f2ce37bf441.svg" - alt=""> + <img :src="currentEvent.picData"> <span>鎶ヨ鏃堕棿锛�2022-09-08 14:23:34</span> </div> <div class="img-item"> @@ -46,10 +43,10 @@ </div> <el-form ref="currentEvent" label-width="120px" :model="currentEvent" :rules="rules"> <el-form-item label="浜嬩欢缂栧彿:"> - <span>{{ currentEvent.number }}</span> + <span>{{ currentEvent.code }}</span> </el-form-item> <el-form-item label="浜嬩欢绛夌骇:"> - <span>{{ currentEvent.level }}</span> + <span>{{ currentEvent.grade }}</span> </el-form-item> <el-form-item label="棣栨鎶ヨ鏃堕棿:"> <span>{{ currentEvent.firstTime }}</span> @@ -94,7 +91,27 @@ </template> <script> +import basecase from "@/api/operate/basecase"; +import { FILE_ORIGINAL_URL } from "@/utils"; + export default { + created() { + basecase.getInspectionData({ current: 1 }) + .then(({ records }) => { + this.eventList = records; + this.currentEvent = this.eventList[0]; + if (this.currentEvent.picData) { + this.currentEvent.picData = `${FILE_ORIGINAL_URL}${this.currentEvent.picData}`; + } + }) + .catch(err => this.$message.error(err)) + + basecase.getInspectionCountData() + .then(res => { + this.currentEvent.review = res.review; + }) + .catch(err => this.$message.error(err)) + }, data() { const validateAdvice = (rule,value,callback)=>{ if(value){ @@ -133,18 +150,17 @@ } } return { + eventList: [], currentEvent: { - number: '1233123414141414', - level: '涓�鑸簨浠�', - firstTime: '2022/09/23 12:00:00', - recentTime: '2022/09/23/ 12:00:00', - conntinueTime: '0灏忔椂10鍒嗛挓', - advice: null, - type: '', - bigKind: '', - smallKind: '', - carNumber: '', - tip: '' + code: null, + grade: null, + picData: null, + street: null, + urlAddress: null, + name: null, + latitude: null, + longitude: null, + review: 0 }, adviceList: [ { diff --git a/src/views/intelligentPatrol/trendAnalysis/index.vue b/src/views/intelligentPatrol/trendAnalysis/index.vue index 8321844..1cadf21 100644 --- a/src/views/intelligentPatrol/trendAnalysis/index.vue +++ b/src/views/intelligentPatrol/trendAnalysis/index.vue @@ -7,10 +7,13 @@ <span class="trend-title">瓒嬪娍鍒嗘瀽</span> <el-form ref="form" :model="search" label-width="6vw"> <el-form-item label="绫诲瀷鏌ヨ"> - <el-input v-model="search.type" placeholder="鍐呭淇℃伅"></el-input> + <el-select v-model="search.type" placeholder="鍐呭淇℃伅"> + <el-option v-for="option in categoryOptions" :key="option.value" :value="option.value" :label="option.label" ></el-option> + </el-select> </el-form-item> - <el-form-item label="鏃堕棿鑼冨洿"> - <el-input v-model="search.timeRange" suffix-icon="el-icon-date" placeholder="閫夋嫨鏃堕棿鑼冨洿"></el-input> + <el-form-item class="time-area" label="鏃堕棿鑼冨洿"> + <el-date-picker v-model="search.timeRange" type="datetimerange" value-format="yyyy-MM-dd HH:mm:ss"> + </el-date-picker> </el-form-item> </el-form> </div> @@ -18,39 +21,21 @@ <div class="trend-data-show"> <!-- 鐐逛綅鍒囨崲 --> <div class="trend-data-header"> - <el-button type="text" @click="highFlag = true">楂樺彂鐐逛綅</el-button> - <el-button type="text" @click="highFlag = false">棣栨杩濊鐐逛綅</el-button> + <el-button type="text" @click="tabChange(1)">楂樺彂鐐逛綅</el-button> + <el-button type="text" @click="tabChange(2)">棣栨杩濊鐐逛綅</el-button> </div> <!-- 瀵瑰簲鏁版嵁 --> <div class="trend-data-main"> - <!-- --> - <div class="high-point" v-if="highFlag"> - <div class="point-item" v-for="item in highList" :key="item.id"> - <span>{{ item.pointName }}</span> - <span>{{ item.count }}</span> - </div> - </div> - <!-- 棣栨杩濊 --> - <div class="first-point" v-else> - <div class="point-item" v-for="item in fisrtList" :key="item.id"> - <span>{{ item.pointName }}</span> - <span>{{ item.count }}</span> - </div> + <div class="point-item" v-for="item in trendAnalysisList" :key="item.id" @click="pointClick(item)"> + <span>{{ item.name }}</span> + <span>{{ item.count }}</span> </div> </div> </div> </div> <div class="trend-main"> - <div class="trend-main-echarts" id="myRef"> + <div class="trend-main-echarts" id="echarts"> - </div> - </div> - <div class="trend-footer" v-if="timeRangeFlag"> - <!-- 閫夋嫨鏃堕棿鑼冨洿 --> - <div class="time-area"> - <el-date-picker v-model="search.timeRange" type="datetimerange" range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�" - end-placeholder="缁撴潫鏃ユ湡"> - </el-date-picker> </div> </div> </div> @@ -58,78 +43,44 @@ <script> import * as echarts from 'echarts' -import { transform } from 'echarts-stat'; +import basecase from "@/api/operate/basecase"; +import { CATEGOTY } from "@/utils/helper"; + export default { + created() { + this.searchList() + }, + + mounted() { + this.renderEchart(); + }, + + computed: { + categoryOptions() { + return CATEGOTY; + } + }, + data() { return { search: { - type: '', - timeRange: '' + type: null, + timeRange: null }, timeRangeFlag: false, - highList: [ - { - id: 1, - pointName: '鍚庡簡璺�200鍙�-鐞�', - count: '100娆�', - }, - { - id: 2, - pointName: '鍚庡簡璺�200鍙�-鐞�', - count: '100娆�', - }, - { - id: 3, - pointName: '鍚庡簡璺�200鍙�-鐞�', - count: '100娆�', - }, - { - id: 4, - pointName: '鍚庡簡璺�200鍙�-鐞�', - count: '100娆�', - }, - { - id: 5, - pointName: '鍚庡簡璺�200鍙�-鐞�', - count: '100娆�', - }, - ], - fisrtList: [ - { - id: 1, - pointName: '鍚庡簡璺�205鍙�-鐞�', - count: '1娆�', - }, - { - id: 2, - pointName: '鍚庡簡璺�204鍙�-鐞�', - count: '1娆�', - }, - { - id: 3, - pointName: '鍚庡簡璺�203鍙�-鐞�', - count: '1娆�', - }, - { - id: 4, - pointName: '鍚庡簡璺�202鍙�-鐞�', - count: '1娆�', - }, - { - id: 5, - pointName: '鍚庡簡璺�201鍙�-鐞�', - count: '1娆�', - }, - ], + trendAnalysisList: [], highFlag: true, + echarts: null, + pointName: null } }, methods: { - renderEchart() { - // echarts.registerTransform(transform.regression); - const myChart = echarts.init(document.getElementById('myRef')); + renderEchart(dataList) { + if (!this.echarts) { + this.echarts = echarts.init(document.getElementById('echarts')); + } // 缁樺埗鍥捐〃 - myChart.setOption({ + this.echarts.setOption({ xAxis: { name: '鏃�/鍛�', }, @@ -138,17 +89,38 @@ }, series: [ { - data: [10, 22, 28, 23, 19], + data: dataList, type: 'line', smooth: true } ] }); + }, + async searchList() { + const [startTime, endTime] = this.search.timeRange ?? [null, null]; + const trendAnalysisParam = { + startTime, + endTime, + type: this.search.type + } + this.trendAnalysisList = this.highFlag ? await basecase.getTrendAnalysisData(trendAnalysisParam) + : await basecase.getFirstTrendAnalysisData(trendAnalysisParam); + }, + tabChange(params) { + this.highFlag = params === 1; + this.searchList(); + }, + + pointClick(data) { + this.pointName = data.name; + basecase.getPointTrendAnalysisData({ id: data.id }) + .then(res => { + const countList = res.map(item => +item.count); + this.renderEchart(countList); + }) + .catch(err => this.$message.error(err)) } }, - mounted() { - this.renderEchart() - } } </script> @@ -160,7 +132,7 @@ display: flex; .trend-side { - width: 20vw; + width: 30vw; text-align: left; height: 100%; border: 1px solid #09152f; @@ -199,14 +171,10 @@ } .trend-data-main { - - .high-point, - .first-point { - .point-item { - display: flex; - padding: 0 2vw; - justify-content: space-between; - } + .point-item { + display: flex; + padding: 0 2vw; + justify-content: space-between; } } } diff --git a/src/views/operate/disposal/casepool/dispatch/index.vue b/src/views/operate/disposal/casepool/dispatch/index.vue index 0105df6..c3dec03 100644 --- a/src/views/operate/disposal/casepool/dispatch/index.vue +++ b/src/views/operate/disposal/casepool/dispatch/index.vue @@ -122,7 +122,7 @@ import uploadIll from "./updateUser/uploadResult/ill" import MyDetail from '@/components/detail' import MyIllDetail from '@/components/illdetail' -import casequery from "@/api/operate/casequery"; +import casequery from "@/api/operate/basecase"; import helper from '@/utils/mydate' export default { components: { diff --git a/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/vio/index.vue b/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/vio/index.vue index ac96037..fe069fd 100644 --- a/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/vio/index.vue +++ b/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/vio/index.vue @@ -14,7 +14,7 @@ <script> import MyArrive from '../components/arrive' import MyEvidence from "../components/evidence" -import casequery from "@/api/operate/casequery"; +import casequery from "@/api/operate/basecase"; export default { components: { diff --git a/src/views/operate/fivepack/threepack/components/updateUser/index.vue b/src/views/operate/fivepack/threepack/components/updateUser/index.vue index 97d4bb2..e6948b7 100644 --- a/src/views/operate/fivepack/threepack/components/updateUser/index.vue +++ b/src/views/operate/fivepack/threepack/components/updateUser/index.vue @@ -100,7 +100,7 @@ async created() { if (this.storeInfo) { this.$set(this, 'store', this.storeInfo); - const result = await getVideoPoint({ current: 1, size: 1 }); + const result = await getVideoPoint({ current: 1, size: 100 }); this.relationVideoList = result.records; if (this.storeInfo && this.isStorePage) { this.store.relationVideo = this.store.videoPoint.name; diff --git a/src/views/operate/message/myIndex/index.vue b/src/views/operate/message/myIndex/index.vue index 5f644da..d3364fa 100644 --- a/src/views/operate/message/myIndex/index.vue +++ b/src/views/operate/message/myIndex/index.vue @@ -3,7 +3,6 @@ <header> <div class="header-nav"> <span class="nav-left">鏁版嵁绛涢��</span> - <span class="nav-right" @click="showMoreParamsDialog">楂樼骇鎼滅储</span> </div> <div class="header-content"> <div class="search"> @@ -102,12 +101,6 @@ </div> </div> </div> - - <el-dialog - title="楂樼骇鍙傛暟" - :visible.sync="isShowMoreParams" - width="30%"> - </el-dialog> </main> </div> </template> @@ -344,10 +337,6 @@ changeCurrentPage(page) { this.currentPage = page; this.getMessageList(); - }, - - showMoreParamsDialog() { - this.isShowMoreParams = true; }, // 鑷畾涔夊叧闂脊绐� @@ -595,7 +584,6 @@ &::v-deep .el-dialog__close { width: 20px; height: 20px; - // color: #fff; } &::v-deep .el-dialog__body { diff --git a/src/views/operate/sms/smsTemplate/createTemplate/index.vue b/src/views/operate/sms/smsTemplate/createTemplate/index.vue index bbf7f60..61d5e5d 100644 --- a/src/views/operate/sms/smsTemplate/createTemplate/index.vue +++ b/src/views/operate/sms/smsTemplate/createTemplate/index.vue @@ -88,6 +88,7 @@ // 鏂板缓/淇濆瓨娑堟伅(1:鏂板缓,0淇濆瓨娑堟伅) handleSubmit() { this.$refs.user.validate((valid) => { + this.role.body = this.$refs.edit.editor.txt.html(); if (valid) { if (this.dialogType === 'create') { SMS.addNewSMSTemplate(this.role) diff --git a/src/views/operate/viewEvent/index.vue b/src/views/operate/viewEvent/index.vue index 162b08a..f07ee50 100644 --- a/src/views/operate/viewEvent/index.vue +++ b/src/views/operate/viewEvent/index.vue @@ -148,7 +148,7 @@ import MyDetail from '@/components/detail' import MyIllDetail from '@/components/illdetail' import helper from '@/utils/mydate' -import casequery from "@/api/operate/casequery"; +import casequery from "@/api/operate/basecase"; export default { components: { diff --git a/src/views/systemSetting/device/bayonet/create/index.vue b/src/views/systemSetting/device/bayonet/create/index.vue index 921e3b4..31c6da0 100644 --- a/src/views/systemSetting/device/bayonet/create/index.vue +++ b/src/views/systemSetting/device/bayonet/create/index.vue @@ -129,6 +129,9 @@ created() { this.bayonet = deepClone(this.originalBayonet); + if (this.originalBayonet) { + this.bayonet.bayonetName = this.originalBayonet.name; + } }, methods: { diff --git a/vue.config.js b/vue.config.js index 156bf9d..d97f668 100644 --- a/vue.config.js +++ b/vue.config.js @@ -95,14 +95,6 @@ config .when(process.env.NODE_ENV !== 'development', config => { - // config - // .plugin('ScriptExtHtmlWebpackPlugin') - // .after('html') - // .use('script-ext-html-webpack-plugin', [{ - // // `runtime` must same as runtimeChunk name. default is `runtime` - // inline: /runtime\..*\.js$/ - // }]) - // .end() config .optimization.splitChunks({ chunks: 'all', -- Gitblit v1.8.0