From 514ae596e1a03b48386082ab82d7d814c7564a7e Mon Sep 17 00:00:00 2001 From: ZhangXianQiang <1135831638@qq.com> Date: 星期三, 10 四月 2024 17:30:43 +0800 Subject: [PATCH] Merge branch 'master' of http://42.193.1.25:9521/r/zgyw-ui --- /dev/null | 471 ------------------ src/api/platform/platform.js | 44 + src/views/system/data-manage/index.vue | 28 + src/views/system/platform/index.vue | 412 +++++++++++++++ src/views/system/equipment/index.vue | 437 ++++++++++++++++ src/router/index.js | 13 src/views/system/calculate/record/index.vue | 50 + src/views/system/rule/index.vue | 0 src/views/system/calculate/report/index.vue | 52 + src/views/system/template/index.vue | 0 10 files changed, 1,005 insertions(+), 502 deletions(-) diff --git a/src/api/platform/platform.js b/src/api/platform/platform.js new file mode 100644 index 0000000..5fe4eb7 --- /dev/null +++ b/src/api/platform/platform.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 鏌ヨ骞冲彴杩愯鐩戞帶鍒楄〃 +export function listPlatform(query) { + return request({ + url: '/platform/platformMonitor/list', + method: 'get', + params: query + }) +} + +// 鏌ヨ骞冲彴杩愯鐩戞帶璇︾粏 +export function getPlatform(id) { + return request({ + url: '/platform/platformMonitor/' + id, + method: 'get' + }) +} + +// 鏂板骞冲彴杩愯鐩戞帶 +export function addPlatform(data) { + return request({ + url: '/platform/platformMonitor', + method: 'post', + data: data + }) +} + +// 淇敼骞冲彴杩愯鐩戞帶 +export function updatePlatform(data) { + return request({ + url: '/platform/platformMonitor', + method: 'put', + data: data + }) +} + +// 鍒犻櫎骞冲彴杩愯鐩戞帶 +export function delPlatform(id) { + return request({ + url: '/platform/platformMonitor/' + id, + method: 'delete' + }) +} diff --git a/src/router/index.js b/src/router/index.js index 8d1943d..10a22fb 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -60,6 +60,19 @@ ] }, { + path: '/car/equipment', + component: Layout, + hidden: true, + children: [ + { + path: 'index', + name: 'equipment', + component: () => import('@/views/system/equipment/index'), + meta: { title: '璧勪骇绠$悊', activeMenu: '/system/equipment' } + } + ] + }, + { path: '/check-result/contract', component: Layout, hidden: true, diff --git a/src/views/system/calculate/record/index.vue b/src/views/system/calculate/record/index.vue index e132a74..b321768 100644 --- a/src/views/system/calculate/record/index.vue +++ b/src/views/system/calculate/record/index.vue @@ -2,14 +2,12 @@ <div class="app-container"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form-item label="鍗曚綅鍚�" prop="checkUnitId"> - <el-select v-model="queryParams.checkUnitId" clearable @clear="handleQuery" placeholder="璇烽�夋嫨鍗曚綅"> + <el-select v-model="form.unitId" placeholder="璇烽�夋嫨"> <el-option - label="鎴愰兘x杩愮淮" - value="1"> - </el-option> - <el-option - label="鎴愰兘a杩愮淮" - value="2"> + v-for="item in unitList" + :key="item.id" + :label="item.value" + :value="item.id"> </el-option> </el-select> </el-form-item> @@ -90,8 +88,8 @@ <div v-if="scope.row.unitId == 2">鎴愰兘x杩愮淮</div> </template> </el-table-column> - <el-table-column label="鎬绘湇鍔¤垂" align="center" prop="totalAmount" /> - <el-table-column label="鎵e噺鏈嶅姟璐�" align="center" prop="deductAmount" /> + <!-- <el-table-column label="鎬绘湇鍔¤垂" align="center" prop="totalAmount" /> --> + <!-- <el-table-column label="鎵e噺鏈嶅姟璐�" align="center" prop="deductAmount" /> --> <el-table-column label="鑰冩牳鍒嗘暟" align="center" prop="score" /> <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width"> <template slot-scope="scope"> @@ -125,15 +123,18 @@ <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> <el-form ref="form" :model="form" :rules="rules" label-width="100px"> <el-form-item label="鏍哥畻瀵硅薄" prop="checkUnitId"> - <el-select v-model="queryParams.checkUnitId" clearable @clear="handleQuery" placeholder="鏍哥畻瀵硅薄"> + <el-select v-model="form.unitId" placeholder="璇烽�夋嫨"> <el-option - label="鎴愰兘x杩愮淮" - value="1"> + v-for="item in unitList" + :key="item.id" + :label="item.value" + :value="item.id"> </el-option> - <el-option - label="鎴愰兘a杩愮淮" - value="2"> - </el-option> + </el-select> + </el-form-item> + <el-form-item label="鏍哥畻瑙勫垯" prop="ruleId"> + <el-select v-model="form.ruleId" placeholder="璇烽�夋嫨"> + <el-option label="鎴愰兘x杩愮淮鑰冩牳缁撴灉搴旂敤瑙勫垯" value="1">鎴愰兘x杩愮淮鑰冩牳缁撴灉搴旂敤瑙勫垯</el-option> </el-select> </el-form-item> <el-form-item label="鏍哥畻璁板綍鏃ユ湡" prop="date" > @@ -144,12 +145,12 @@ placeholder="璇烽�夋嫨鏍哥畻璁板綍鏃ユ湡"> </el-date-picker> </el-form-item> - <el-form-item label="鎬绘湇鍔¤垂" prop="totalAmount"> + <!-- <el-form-item label="鎬绘湇鍔¤垂" prop="totalAmount"> <el-input v-model="form.totalAmount" placeholder="璇疯緭鍏ユ�绘湇鍔¤垂" /> - </el-form-item> - <el-form-item label="鎵e噺鏈嶅姟璐�" prop="deductAmount"> + </el-form-item> --> + <!-- <el-form-item label="鎵e噺鏈嶅姟璐�" prop="deductAmount"> <el-input v-model="form.deductAmount" placeholder="璇疯緭鍏ユ墸鍑忔湇鍔¤垂" /> - </el-form-item> + </el-form-item> --> <el-form-item label="鑰冩牳鍒嗘暟" prop="score"> <el-input v-model="form.score" placeholder="璇疯緭鍏ヨ�冩牳鍒嗘暟" /> </el-form-item> @@ -164,7 +165,7 @@ <script> import { listRecord, getRecord, delRecord, addRecord, updateRecord } from "@/api/platform/calculate-record"; - +import {unitSelect} from "@/api/platform/unit"; export default { name: "Record", data() { @@ -210,8 +211,15 @@ }, created() { this.getList(); + this.selectUnit(); }, methods: { + // 杩愮淮鍏徃涓嬫媺鏁版嵁 + selectUnit() { + unitSelect().then(res => { + this.unitList = res.data; + }) + }, /** 鏌ヨ鏍哥畻璁板綍鍒楄〃 */ getList() { this.loading = true; diff --git a/src/views/system/calculate/report/index.vue b/src/views/system/calculate/report/index.vue index 25100df..6dea7bd 100644 --- a/src/views/system/calculate/report/index.vue +++ b/src/views/system/calculate/report/index.vue @@ -64,7 +64,7 @@ <el-card class="box-card" v-for="(item) in checkResultList"> <div slot="header" class="clearfix"> <span>{{ checkUnitName }}</span> - <el-button style="float: right; padding: 3px 0" type="text" @click="handleDetail(item)">璇︽儏</el-button> + <el-button style="float: right; padding: 3px 0" type="text" @click="handleDetail(item)">鏍哥畻</el-button> </div> <div class="text item">鍚堝悓<span class="time">{{ checkUnitName }}</span></div> <div class="text item">鎬婚噾棰�<span class="time">{{ "1000鍏�" }}</span></div> @@ -85,7 +85,7 @@ @pagination="getList" /> - <el-dialog :title="detailTitle" :visible.sync="detailOpen" width="700px" append-to-body> + <el-dialog :title="detailTitle" :visible.sync="detailOpen" width="760px" append-to-body> <el-descriptions class="margin-top" :column="3" border> <!-- <template slot="extra">--> <!-- <el-button type="primary" size="small">鎿嶄綔</el-button>--> @@ -109,7 +109,7 @@ :data="tableData" show-summary :summary-method="getSummaries" - style="width: 100%"> + style="width: 100%;text-align:center"> <el-table-column prop="time" label="鏍哥畻鏃ユ湡" @@ -121,11 +121,34 @@ width="180" doNotSum> </el-table-column> - <el-table-column + <el-table-column + prop="score" + label="鎵e垎绯绘暟" + width="180"> + <template slot-scope="scope"> + <el-tooltip class="item" effect="dark" :content="'鑰冩牳瑙勫垯锛�' + scope.row.description" placement="top"> + <span>{{ scope.row.value }}</span> + </el-tooltip> + </template> + </el-table-column> + <el-table-column + label="鎵e噺閲戦(鍏�)" prop="money" - label="鎵e噺閲戦(鍏�)"> - </el-table-column> + width="180"> + <template slot-scope="scope"> + <el-input type="number" + :precision="2" :step="0.1" + :min="0" :max="1000000" + v-model="scope.row.money" + placeholder="璇疯緭鍏ユ墸鍑忛噾棰�"> + </el-input> + </template> + </el-table-column> </el-table> + <div slot="footer" class="dialog-footer"> + <el-button type="primary" @click="submitForm">纭� 瀹�</el-button> + <el-button @click="cancel">鍙� 娑�</el-button> + </div> </el-dialog> <!-- 娣诲姞鎴栦慨鏀硅�冩牳缁撴灉瀵硅瘽妗� --> @@ -156,11 +179,15 @@ tableData: [{ time: '2024-03-03', score: '94', - money: '10', + value: '0.01', + money: '', + description: '姣忓皯1鍒嗘墸褰撴湀鎬绘湇鍔¤垂鐨�1%銆備緥濡傦細褰撴湀鑰冩牳寰楀垎91.5鍒嗭紝鎵i櫎褰撴湀鏈嶅姟璐�3.5%鐨勯噾棰�', }, { time: '2024-04-03', score: '95', - money: '0', + value: '0', + money: '', + description: '姣忓皯1鍒嗘墸褰撴湀鎬绘湇鍔¤垂鐨�1%銆備緥濡傦細褰撴湀鑰冩牳寰楀垎91.5鍒嗭紝鎵i櫎褰撴湀鏈嶅姟璐�3.5%鐨勯噾棰�', }, ], manualScoreOpen: false, manualScoreForm: {}, @@ -234,7 +261,7 @@ }, // 鍙栨秷鎸夐挳 cancel() { - this.open = false; + this.detailOpen = false; this.reset(); }, // 琛ㄥ崟閲嶇疆 @@ -270,9 +297,10 @@ }) }, handleDetail(row) { + console.log("row", row) this.detail = row; this.detail.carOnlineRate = '97%'; - this.detailTitle = row.checkUnitName + '鑰冩牳缁撴灉'; + this.detailTitle = this.checkUnitName + '鑰冩牳缁撴灉'; this.detailOpen = true; }, @@ -322,6 +350,7 @@ }, /** 鎻愪氦鎸夐挳 */ submitForm() { + this.detailOpen = false; this.$refs["form"].validate(valid => { if (valid) { if (this.form.id != null) { @@ -378,6 +407,9 @@ if (column.property === 'score') { sums[index] = '-'; // 鎴栬�呭叾浠栦綘鎯宠鏄剧ず鐨勫唴瀹� } + if (column.property === 'value') { + sums[index] = '-'; // 鎴栬�呭叾浠栦綘鎯宠鏄剧ず鐨勫唴瀹� + } } else { sums[index] = 'N/A'; } diff --git a/src/views/system/data-manage/index.vue b/src/views/system/data-manage/index.vue index 103baba..c4268bc 100644 --- a/src/views/system/data-manage/index.vue +++ b/src/views/system/data-manage/index.vue @@ -89,6 +89,26 @@ </el-col> </el-row> </div> + + <div class="container"> + <el-row type="flex" justify="center"> + <el-col :span="24"> + <h3 style="color: rgb(104,104,103);padding-top: 20px;padding-bottom: 20px;">璧勪骇绠$悊</h3> + </el-col> + </el-row> + + <el-row type="flex" justify="center"> + <el-col :span="6" v-for="(item, index) in equipment" :key="index"> + <el-link @click="handleDetail(item)" :style="item.name == '' ? 'display:none' : ''"> + <el-card style="width:150px;height: 150px;text-align: center;"> + <i style="font-size: 40px;padding: 15px;" :class="item.icon"></i> + <div>{{ item.name }}</div> + </el-card> + </el-link> + </el-col> + </el-row> + <br/> + </div> <br/><br/><br/><br/> </div> </template> @@ -144,6 +164,14 @@ { name: '', icon: 'el-icon-timer', description: '鎻忚堪淇℃伅', routerUrl: '/car/vehicle-data-monitor/index' }, { name: '', icon: 'el-icon-money', description: '鎻忚堪淇℃伅', routerUrl: '/car/vehicle-data-monitor/index' }, { name: '', icon: 'el-icon-data-analysis', description: '鎻忚堪淇℃伅', routerUrl: '/car/vehicle-data-monitor/index' }, + ], + equipment: [ + { name: '璧勪骇绠$悊', icon: 'el-icon-wallet', description: '鎻忚堪淇℃伅', routerUrl: '/car/equipment/index' }, + { name: '', icon: 'el-icon-pie-chart', description: '鎻忚堪淇℃伅', routerUrl: '/car/vehicle-data-monitor/index' }, + { name: '', icon: 'el-icon-data-line', description: '鎻忚堪淇℃伅', routerUrl: '/car/vehicle-data-monitor/index' }, + { name: '', icon: 'el-icon-timer', description: '鎻忚堪淇℃伅', routerUrl: '/car/vehicle-data-monitor/index' }, + { name: '', icon: 'el-icon-money', description: '鎻忚堪淇℃伅', routerUrl: '/car/vehicle-data-monitor/index' }, + { name: '', icon: 'el-icon-data-analysis', description: '鎻忚堪淇℃伅', routerUrl: '/car/vehicle-data-monitor/index' }, ] } }, diff --git a/src/views/system/equipment/index.vue b/src/views/system/equipment/index.vue new file mode 100644 index 0000000..ada2e73 --- /dev/null +++ b/src/views/system/equipment/index.vue @@ -0,0 +1,437 @@ +<template> + + <div class="app-container"> + + <el-card class="box-card" > + <el-row type="flex" align="middle" justify="space-between"> + <el-col :xl="8" :lg="8" :md="10" :sm="8" :xs="6"> + <div class="icon-container" style="background-color: #5599F7"> + <i class="el-icon-wallet"></i> + </div> + </el-col> + <el-col :xl="14" :lg="14" :md="12" :sm="14" :xs="16"> + <div class="dashboard"> + <div class="dashboard-item"> + <h3 style="color: #5C9BF8">{{ count.totalPosts }}</h3> + <p>璁惧鎬绘暟</p > + </div> + <div class="dashboard-item"> + <h3 style="color: #3eba45">{{ count.totalMembers }}</h3> + <p>姝e父鏁�</p > + </div> + <div class="dashboard-item"> + <h3 style="color: #fe640d">{{ count.postsPercentage }}</h3> + <p>寮傚父鏁�</p > + </div> + <div class="dashboard-item"> + <h3>{{ count.totalViews }}</h3> + <p>鐢熸垚寮傚父宸ュ崟鏁�</p > + </div> + <div class="dashboard-item"> + <h3>{{ count.noStore }}</h3> + <p>鏃犲瓨鍌�</p > + </div> + <div class="dashboard-item"> + <h3>{{ count.partStore }}</h3> + <p>閮ㄥ垎瀛樺偍</p > + </div> + <div class="dashboard-item"> + <h3>{{ count.viewsPercentage }}%</h3> + <p>璁惧杩愯鐜�</p > + </div> + </div> + </el-col> + </el-row> + </el-card> + + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"> + <el-form-item label="鍏抽敭瀛�" prop="name"> + <el-input + v-model="queryParams.name" + placeholder="璇疯緭鍏ュ叧閿瓧" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="鍖哄煙" prop="onState"> + <el-select + v-model="queryParams.address" + placeholder="璇烽�夋嫨鍖哄煙" + clearable + > + <el-option label="鑷础甯�" value="鑷础甯�"/> + <el-option label="娌挎哗鍖�" value="娌挎哗鍖�"/> + <el-option label="澶у畨鍖�" value="澶у畨鍖�"/> + <el-option label="璐′簳鍖�" value="璐′簳鍖�"/> + <el-option label="鑷祦浜曞尯" value="鑷祦浜曞尯"/> + <el-option label="楂樻柊鍖�" value="楂樻柊鍖�"/> + <el-option label="鑽e幙" value="鑽e幙"/> + <el-option label="瀵岄『鍘�" value="瀵岄『鍘�"/> + </el-select> + </el-form-item> + <el-form-item label="璁惧鐘舵��" prop="onState"> + <el-select + v-model="queryParams.onState" + placeholder="璁惧鐘舵��" + clearable + style="width: 100px" + > + <el-option + v-for="dict in dict.type.camera_state" + :key="dict.value" + :label="dict.label" + :value="dict.value" + /> + </el-select> + </el-form-item> + <el-form-item label="鏄惁鐢熸垚寮傚父宸ュ崟" prop="defaultOrder" label-width="130px"> + <el-select + v-model="queryParams.defaultOrder" + placeholder="鏄惁鐢熸垚寮傚父宸ュ崟" + clearable + style="width: 170px" + > + <el-option + v-for="dict in dict.type.platform_yes_no" + :key="dict.value" + :label="dict.label" + :value="dict.value" + /> + </el-select> + </el-form-item> + + <el-form-item> + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button> + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> + </el-form-item> + </el-form> + + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> + <el-button + type="warning" + plain + icon="el-icon-download" + size="mini" + @click="handleExport" + >瀵煎嚭</el-button> + </el-col> + <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar> + </el-row> + + <el-table v-loading="loading" :data="monitorList" @selection-change="handleSelectionChange"> + <el-table-column type="selection" align="center" /> + <el-table-column label="璁惧鍚嶇О" align="center" prop="name" width="280" fixed/> + <el-table-column label="璁惧缂栫爜" align="center" prop="serialNumber" width="180"/> + <el-table-column label="鏍囩" align="center" prop="publicSecurity" width="180" v-if="columns[0].visible"/> + <el-table-column label="鍖哄煙" align="center" prop="address" width="180" v-if="columns[1].visible"/> + <el-table-column label="璁惧鐘舵��" align="center" prop="onState" v-if="columns[2].visible"> + <template slot-scope="scope"> + <dict-tag :options="dict.type.camera_state" :value="scope.row.onState"/> + </template> + </el-table-column> + <el-table-column label="鏄惁鐢熸垚寮傚父宸ュ崟" align="center" prop="defaultOrder" width="180" v-if="columns[3].visible"> + <template slot-scope="scope"> + <dict-tag :options="dict.type.platform_yes_no" :value="scope.row.defaultOrder"/> + </template> + </el-table-column> + <el-table-column label="鏁版嵁鏃堕棿" align="center" prop="installedTime" width="180" v-if="columns[4].visible"/> + <el-table-column label="绠$悊鍗曚綅" align="center" prop="managementUnit" width="180" v-if="columns[5].visible"/> + <el-table-column label="淇′护鏃跺欢(ms)" align="center" prop="sipDelay" width="180" v-if="columns[6].visible"/> + <el-table-column label="瑙嗛鏃跺欢(ms)" align="center" prop="videoDelay" width="180" v-if="columns[7].visible"/> + <el-table-column label="鍏抽敭甯ф椂寤�(ms)" align="center" prop="iframeDelay" width="180" v-if="columns[8].visible"/> + <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width" fixed="right"> + <template slot-scope="scope"> + <el-button + size="mini" + type="text" + icon="el-icon-view" + @click="handleView(scope.row,scope.index)" + >璇︾粏</el-button> + </template> + </el-table-column> + </el-table> + + <pagination + v-show="total>0" + :total="total" + :page.sync="queryParams.pageNum" + :limit.sync="queryParams.pageSize" + @pagination="getList" + /> + + <!-- 璁惧璧勪骇璇︽儏 --> + <el-dialog title="鎿嶄綔鏃ュ織璇︾粏" :visible.sync="open" width="800px" append-to-body> + <el-form ref="form" :model="form" label-width="150px" size="mini"> + <el-row> + <el-col :span="12"> + <el-form-item label="璁惧缂栫爜锛�">{{ form.serialNumber }}</el-form-item> + <el-form-item label="璁惧鍚嶇О锛�">{{ form.name }} </el-form-item> + <el-form-item label="鍦板尯锛�">{{ form.address }} </el-form-item> + <el-form-item label="涓婃姤閮ㄩ棬锛�">{{ form.deptName }} </el-form-item> + <el-form-item label="璁惧鐘舵�侊細"> + <div v-if="form.onState === 1">鍙敤</div> + <div v-else-if="form.onState === 2">涓嶅彲鐢�</div> + </el-form-item> + </el-col> + <el-col :span="24"> + <el-form-item label="鍦板潃锛�">{{ form.address }}</el-form-item> + <el-form-item label="鏄惁鐢熸垚寮傚父宸ュ崟锛�"> + <div v-if="form.defaultOrder === 1">鏄�</div> + <div v-else-if="form.defaultOrder === 2">鍚�</div> + </el-form-item> + </el-col> + <el-col :span="24"> + <el-form-item label="瀹夎鏃堕棿锛�">{{ form.installedTime }}</el-form-item> + </el-col> + <el-col :span="24"> + <el-form-item label="绠$悊鍗曚綅锛�">{{ form.managementUnit }}</el-form-item> + </el-col> + <el-col :span="24"> + <el-form-item label="淇′护鏃跺欢(ms)锛�"></el-form-item> + </el-col> + <el-col :span="24"> + <el-form-item label="瑙嗛鏃跺欢(ms)锛�"></el-form-item> + </el-col> + <el-col :span="24"> + <el-form-item label="鍏抽敭甯ф椂寤�(ms)锛�"></el-form-item> + </el-col> + </el-row> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button @click="open = false">鍏� 闂�</el-button> + </div> + </el-dialog> + </div> +</template> + +<script> +import { videoCount, listMonitor, getMonitor, delMonitor, addMonitor, updateMonitor } from "@/api/platform/monitor"; +export default { + name: "Monitor", + dicts: ['sys_normal_disable', 'platform_yes_no','camera_state'], + data() { + return { + // 鍒椾俊鎭� + columns: [ + { key: 0, label: `鏍囩`, visible: true }, + { key: 1, label: `鍖哄煙`, visible: true }, + { key: 2, label: `璁惧鐘舵�乣, visible: true }, + { key: 3, label: `鏄惁鐢熸垚寮傚父宸ュ崟`, visible: true }, + { key: 4, label: `鏁版嵁鏃堕棿`, visible: true }, + { key: 5, label: `绠$悊鍗曚綅`, visible: true }, + { key: 6, label: `淇′护鏃跺欢`, visible: true }, + { key: 7, label: `瑙嗛鏃跺欢`, visible: true }, + { key: 8, label: `鍏抽敭甯ф椂寤禶, visible: true } + ], + count: { + totalPosts: 0, + totalMembers: 0, + postsPercentage: 0, + totalViews: 0, + noStore: 0, + partStore: 0, + viewsPercentage: 0 + }, + // 閬僵灞� + loading: true, + // 閫変腑鏁扮粍 + ids: [], + // 闈炲崟涓鐢� + single: true, + // 闈炲涓鐢� + multiple: true, + // 鏄剧ず鎼滅储鏉′欢 + showSearch: true, + // 鎬绘潯鏁� + total: 0, + // 璁惧璧勪骇琛ㄦ牸鏁版嵁 + monitorList: [], + // 寮瑰嚭灞傛爣棰� + title: "", + // 鏄惁鏄剧ず寮瑰嚭灞� + open: false, + // 鏌ヨ鍙傛暟 + queryParams: { + pageNum: 1, + pageSize: 10, + serialNumber: null, + name: null, + onState: null, + address: null, + installedTime: null, + managementUnit: null, + defaultOrder: null, + cameraFunType: 1, + }, + // 琛ㄥ崟鍙傛暟 + form: {}, + // 琛ㄥ崟鏍¢獙 + rules: { + serialNumber: [ + { required: true, message: "璁惧缂栫爜涓嶈兘涓虹┖", trigger: "blur" } + ], + name: [ + { required: true, message: "璁惧鍚嶇О涓嶈兘涓虹┖", trigger: "blur" } + ], + onState: [ + { required: true, message: "璁惧鐘舵��", trigger: "blur" } + ], + address: [ + { required: true, message: "鍦板潃涓嶈兘涓虹┖", trigger: "blur" } + ], + } + }; + }, + created() { + this.getVideoCount(); + this.getList(); + this.getCountyList(); + }, + methods: { + /** 鏌ヨ璁惧璧勪骇鍒楄〃 */ + getList() { + this.loading = true; + listMonitor(this.queryParams).then(response => { + this.monitorList = response.rows; + this.total = response.total; + this.loading = false; + }); + }, + /** 鏌ヨ璁惧璧勪骇缁熻鏁� */ + getVideoCount() { + videoCount('1').then(response => { + this.count = response.data; + }); + }, + // 鍙栨秷鎸夐挳 + cancel() { + this.open = false; + this.reset(); + }, + // 琛ㄥ崟閲嶇疆 + reset() { + this.form = { + id: null, + serialNumber: null, + name: null, + onState: null, + address: null, + installedTime: null, + managementUnit: null, + defaultOrder: null, + }; + this.resetForm("form"); + }, + /** 鎼滅储鎸夐挳鎿嶄綔 */ + handleQuery() { + this.queryParams.pageNum = 1; + this.queryParams.cameraFunType = 1; + this.getList(); + this.getVideoCount(); + }, + /** 閲嶇疆鎸夐挳鎿嶄綔 */ + resetQuery() { + this.resetForm("queryForm"); + this.handleQuery(); + }, + + // 澶氶�夋閫変腑鏁版嵁 + handleSelectionChange(selection) { + this.ids = selection.map(item => item.id) + this.single = selection.length!==1 + this.multiple = !selection.length + }, + /** 鏂板鎸夐挳鎿嶄綔 */ + handleAdd() { + this.reset(); + this.open = true; + this.title = "娣诲姞璁惧璧勪骇"; + }, + /** 璇︾粏鎸夐挳鎿嶄綔 */ + handleView(row) { + this.open = true; + this.form = row; + }, + /** 淇敼鎸夐挳鎿嶄綔 */ + handleUpdate(row) { + this.reset(); + const id = row.id || this.ids + getMonitor(id).then(response => { + this.form = response.data; + this.open = true; + this.title = "淇敼璁惧璧勪骇"; + }); + }, + /** 鎻愪氦鎸夐挳 */ + submitForm() { + this.$refs["form"].validate(valid => { + if (valid) { + if (this.form.id != null) { + updateMonitor(this.form).then(response => { + this.$modal.msgSuccess("淇敼鎴愬姛"); + this.open = false; + this.getList(); + }); + } else { + addMonitor(this.form).then(response => { + this.$modal.msgSuccess("鏂板鎴愬姛"); + this.open = false; + this.getList(); + }); + } + } + }); + }, + /** 鍒犻櫎鎸夐挳鎿嶄綔 */ + handleDelete(row) { + const ids = row.id || this.ids; + this.$modal.confirm('鏄惁纭鍒犻櫎璁惧璧勪骇缂栧彿涓�"' + ids + '"鐨勬暟鎹」锛�').then(function() { + return delMonitor(ids); + }).then(() => { + this.getList(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }).catch(() => {}); + }, + /** 瀵煎嚭鎸夐挳鎿嶄綔 */ + handleExport() { + this.download('system/monitor/export', { + ...this.queryParams + }, `monitor_${new Date().getTime()}.xlsx`) + } + } +}; +</script> +<style lang="scss" scoped> + +.box-card { + background-color: #F5F9FE; + width: 100%; + margin-bottom: 20px; + height: 120px +} +.icon-container { + display: flex; + justify-content: center; + align-items: center; + border-radius: 20px; + width: 20%; + height: 80px; + margin-left: 5%; +} +.el-icon-wallet { + font-size: 50px; + color: #FFFFFF; +} + +.dashboard { + display: flex; + gap: 10%; + align-items: center; + margin-left: -50%; +} + +.dashboard-item { + text-align: center; +} +</style> diff --git a/src/views/system/platform/index.vue b/src/views/system/platform/index.vue new file mode 100644 index 0000000..34d5f02 --- /dev/null +++ b/src/views/system/platform/index.vue @@ -0,0 +1,412 @@ +<template> + <div class="app-container"> + <el-card class="box-card" > + <el-row type="flex" align="middle" justify="space-between"> + <el-col :xl="8" :lg="8" :md="10" :sm="8" :xs="6"> + <div class="icon-container" style="background-color: #5599F7"> + <i class="el-icon-connection"></i> + </div> + </el-col> + <el-col :xl="14" :lg="14" :md="12" :sm="14" :xs="16"> + <div class="dashboard"> + <div class="dashboard-item"> + <h3 style="color: #5C9BF8">{{ count.totalPosts }}</h3> + <p>璁惧鎬绘暟</p > + </div> + <div class="dashboard-item"> + <h3 style="color: #3eba45">{{ count.totalMembers }}</h3> + <p>姝e父鏁�</p > + </div> + <div class="dashboard-item"> + <h3 style="color: #fe640d">{{ count.postsPercentage }}</h3> + <p>寮傚父鏁�</p > + </div> + <div class="dashboard-item"> + <h3>{{ count.totalViews }}</h3> + <p>鐢熸垚寮傚父宸ュ崟鏁�</p > + </div> + </div> + </el-col> + </el-row> + </el-card> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> + <el-form-item label="骞冲彴缂栫爜" prop="platformCode"> + <el-input + v-model="queryParams.platformCode" + placeholder="璇疯緭鍏ュ钩鍙扮紪鐮�" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="骞冲彴鍚嶇О" prop="platformName"> + <el-input + v-model="queryParams.platformName" + placeholder="璇疯緭鍏ュ钩鍙板悕绉�" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="璁惧鐘舵��" prop="onState"> + <el-select + v-model="queryParams.status" + placeholder="璁惧鐘舵��" + clearable + style="width: 100px" + > + <el-option + v-for="dict in dict.type.camera_state" + :key="dict.value" + :label="dict.label" + :value="dict.value" + /> + </el-select> + </el-form-item> + <el-form-item label="鏄惁鐢熸垚寮傚父宸ュ崟" prop="defaultOrder" label-width="130px"> + <el-select + v-model="queryParams.status" + placeholder="鏄惁鐢熸垚寮傚父宸ュ崟" + clearable + style="width: 170px" + > + <el-option + v-for="dict in dict.type.platform_yes_no" + :key="dict.value" + :label="dict.label" + :value="dict.value" + /> + </el-select> + </el-form-item> + <el-form-item> + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button> + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> + </el-form-item> + </el-form> + + <el-row :gutter="10" class="mb8"> + <!-- <el-col :span="1.5"> + <el-button + type="primary" + plain + icon="el-icon-plus" + size="mini" + @click="handleAdd" + v-hasPermi="['platform:platform:add']" + >鏂板</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="success" + plain + icon="el-icon-edit" + size="mini" + :disabled="single" + @click="handleUpdate" + v-hasPermi="['platform:platform:edit']" + >淇敼</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="danger" + plain + icon="el-icon-delete" + size="mini" + :disabled="multiple" + @click="handleDelete" + v-hasPermi="['platform:platform:remove']" + >鍒犻櫎</el-button> + </el-col> --> + <el-col :span="1.5"> + <el-button + type="warning" + plain + icon="el-icon-download" + size="mini" + @click="handleExport" + v-hasPermi="['platform:platform:export']" + >瀵煎嚭</el-button> + </el-col> + <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> + </el-row> + + <el-table v-loading="loading" :data="platformList" @selection-change="handleSelectionChange"> + <el-table-column type="selection" width="55" align="center" /> + <el-table-column label="骞冲彴缂栫爜" align="center" prop="platformCode" /> + <el-table-column label="骞冲彴鍚嶇О" align="center" prop="platformName" /> + <!-- <el-table-column label="骞冲彴鑱旂郴浜�" align="center" prop="platformContact" /> + <el-table-column label="骞冲彴鑱旂郴浜虹數璇�" align="center" prop="platformContactPhone" /> --> + <el-table-column label="鐘舵��" align="center" prop="status"> + <template slot-scope="scope"> + <dict-tag :options="dict.type.camera_state" :value="scope.row.status"/> + </template> + </el-table-column> + <el-table-column label="鏄惁鐢熸垚寮傚父宸ュ崟" align="center" prop="defaultOrder" width="180"> + <template slot-scope="scope"> + <dict-tag :options="dict.type.platform_yes_no" :value="scope.row.status"/> + </template> + </el-table-column> + <!-- <el-table-column label="澶囨敞" align="center" prop="remark" /> --> + <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width"> + <template slot-scope="scope"> + <el-button + size="mini" + type="text" + icon="el-icon-edit" + @click="handleUpdate(scope.row)" + v-hasPermi="['platform:platform:edit']" + >淇敼</el-button> + <el-button + size="mini" + type="text" + icon="el-icon-delete" + @click="handleDelete(scope.row)" + v-hasPermi="['platform:platform:remove']" + >鍒犻櫎</el-button> + </template> + </el-table-column> + </el-table> + + <pagination + v-show="total>0" + :total="total" + :page.sync="queryParams.pageNum" + :limit.sync="queryParams.pageSize" + @pagination="getList" + /> + + <!-- 娣诲姞鎴栦慨鏀瑰钩鍙拌繍琛岀洃鎺у璇濇 --> + <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> + <el-form ref="form" :model="form" :rules="rules" label-width="80px"> + <el-form-item label="骞冲彴缂栫爜" prop="platformCode"> + <el-input v-model="form.platformCode" placeholder="璇疯緭鍏ュ钩鍙扮紪鐮�" /> + </el-form-item> + <el-form-item label="骞冲彴鍚嶇О" prop="platformName"> + <el-input v-model="form.platformName" placeholder="璇疯緭鍏ュ钩鍙板悕绉�" /> + </el-form-item> + <el-form-item label="骞冲彴鑱旂郴浜�" prop="platformContact"> + <el-input v-model="form.platformContact" placeholder="璇疯緭鍏ュ钩鍙拌仈绯讳汉" /> + </el-form-item> + <el-form-item label="骞冲彴鑱旂郴浜虹數璇�" prop="platformContactPhone"> + <el-input v-model="form.platformContactPhone" placeholder="璇疯緭鍏ュ钩鍙拌仈绯讳汉鐢佃瘽" /> + </el-form-item> + <el-form-item label="澶囨敞" prop="remark"> + <el-input v-model="form.remark" placeholder="璇疯緭鍏ュ娉�" /> + </el-form-item> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button type="primary" @click="submitForm">纭� 瀹�</el-button> + <el-button @click="cancel">鍙� 娑�</el-button> + </div> + </el-dialog> + </div> +</template> + +<script> +import { listPlatform, getPlatform, delPlatform, addPlatform, updatePlatform } from "@/api/platform/platform"; +import { videoCount } from "@/api/platform/monitor"; +export default { + name: "Platform", + dicts: ['sys_normal_disable', 'platform_yes_no','camera_state'], + data() { + return { + count: { + totalPosts: 0, + totalMembers: 0, + postsPercentage: 0, + totalViews: 0, + noStore: 0, + partStore: 0, + viewsPercentage: 0 + }, + // 閬僵灞� + loading: true, + // 閫変腑鏁扮粍 + ids: [], + // 闈炲崟涓鐢� + single: true, + // 闈炲涓鐢� + multiple: true, + // 鏄剧ず鎼滅储鏉′欢 + showSearch: true, + // 鎬绘潯鏁� + total: 0, + // 骞冲彴杩愯鐩戞帶琛ㄦ牸鏁版嵁 + platformList: [], + // 寮瑰嚭灞傛爣棰� + title: "", + // 鏄惁鏄剧ず寮瑰嚭灞� + open: false, + // 鏌ヨ鍙傛暟 + queryParams: { + pageNum: 1, + pageSize: 10, + platformCode: null, + platformName: null, + platformContact: null, + platformContactPhone: null, + status: null, + remark: null, + }, + // 琛ㄥ崟鍙傛暟 + form: {}, + // 琛ㄥ崟鏍¢獙 + rules: { + platformCode: [ + { required: true, message: "骞冲彴缂栫爜涓嶈兘涓虹┖", trigger: "blur" } + ], + platformName: [ + { required: true, message: "骞冲彴鍚嶇О涓嶈兘涓虹┖", trigger: "blur" } + ], + platformContact: [ + { required: true, message: "骞冲彴鑱旂郴浜轰笉鑳戒负绌�", trigger: "blur" } + ], + platformContactPhone: [ + { required: true, message: "骞冲彴鑱旂郴浜虹數璇濅笉鑳戒负绌�", trigger: "blur" } + ], + } + }; + }, + created() { + this.getList(); + this.getVideoCount(); + }, + methods: { + /** 鏌ヨ骞冲彴杩愯鐩戞帶鍒楄〃 */ + getList() { + this.loading = true; + listPlatform(this.queryParams).then(response => { + this.platformList = response.rows; + this.total = response.total; + this.loading = false; + }); + }, + /** 鏌ヨ璁惧璧勪骇缁熻鏁� */ + getVideoCount() { + videoCount('1').then(response => { + this.count = response.data; + }); + }, + // 鍙栨秷鎸夐挳 + cancel() { + this.open = false; + this.reset(); + }, + // 琛ㄥ崟閲嶇疆 + reset() { + this.form = { + id: null, + platformCode: null, + platformName: null, + platformContact: null, + platformContactPhone: null, + status: null, + remark: null, + createTime: null, + updateTime: null, + deleted: null + }; + this.resetForm("form"); + }, + /** 鎼滅储鎸夐挳鎿嶄綔 */ + handleQuery() { + this.queryParams.pageNum = 1; + this.getList(); + }, + /** 閲嶇疆鎸夐挳鎿嶄綔 */ + resetQuery() { + this.resetForm("queryForm"); + this.handleQuery(); + }, + // 澶氶�夋閫変腑鏁版嵁 + handleSelectionChange(selection) { + this.ids = selection.map(item => item.id) + this.single = selection.length!==1 + this.multiple = !selection.length + }, + /** 鏂板鎸夐挳鎿嶄綔 */ + handleAdd() { + this.reset(); + this.open = true; + this.title = "娣诲姞骞冲彴杩愯鐩戞帶"; + }, + /** 淇敼鎸夐挳鎿嶄綔 */ + handleUpdate(row) { + this.reset(); + const id = row.id || this.ids + getPlatform(id).then(response => { + this.form = response.data; + this.open = true; + this.title = "淇敼骞冲彴杩愯鐩戞帶"; + }); + }, + /** 鎻愪氦鎸夐挳 */ + submitForm() { + this.$refs["form"].validate(valid => { + if (valid) { + if (this.form.id != null) { + updatePlatform(this.form).then(response => { + this.$modal.msgSuccess("淇敼鎴愬姛"); + this.open = false; + this.getList(); + }); + } else { + addPlatform(this.form).then(response => { + this.$modal.msgSuccess("鏂板鎴愬姛"); + this.open = false; + this.getList(); + }); + } + } + }); + }, + /** 鍒犻櫎鎸夐挳鎿嶄綔 */ + handleDelete(row) { + const ids = row.id || this.ids; + this.$modal.confirm('鏄惁纭鍒犻櫎骞冲彴杩愯鐩戞帶缂栧彿涓�"' + ids + '"鐨勬暟鎹」锛�').then(function() { + return delPlatform(ids); + }).then(() => { + this.getList(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }).catch(() => {}); + }, + /** 瀵煎嚭鎸夐挳鎿嶄綔 */ + handleExport() { + this.download('platform/platform/export', { + ...this.queryParams + }, `platform_${new Date().getTime()}.xlsx`) + } + } +}; +</script> +<style lang="scss" scoped> + +.box-card { + background-color: #F5F9FE; + width: 100%; + margin-bottom: 20px; + height: 120px +} +.icon-container { + display: flex; + justify-content: center; + align-items: center; + border-radius: 20px; + width: 20%; + height: 80px; + margin-left: 5%; +} +.el-icon-connection { + font-size: 50px; + color: #FFFFFF; +} + +.dashboard { + display: flex; + gap: 10%; + align-items: center; + margin-left: -50%; +} + +.dashboard-item { + text-align: center; +} +</style> \ No newline at end of file diff --git a/src/views/system/rule/city/index.vue b/src/views/system/rule/index.vue similarity index 100% rename from src/views/system/rule/city/index.vue rename to src/views/system/rule/index.vue diff --git a/src/views/system/template/city/index.vue b/src/views/system/template/index.vue similarity index 100% rename from src/views/system/template/city/index.vue rename to src/views/system/template/index.vue diff --git a/src/views/system/template/province/index.vue b/src/views/system/template/province/index.vue deleted file mode 100644 index 2ed927d..0000000 --- a/src/views/system/template/province/index.vue +++ /dev/null @@ -1,471 +0,0 @@ -<template> - <div class="app-container"> - <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> - <el-form-item label="鐘舵��" prop="status"> - <el-input - v-model="queryParams.status" - placeholder="璇疯緭鍏ョ姸鎬�" - clearable - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item label="鑰冩牳瀵硅薄" prop="unitName"> - <el-input - v-model="queryParams.status" - placeholder="璇疯緭鍏ヨ�冩牳瀵硅薄" - clearable - @keyup.enter.native="handleQuery" - /> - </el-form-item> - <el-form-item label="鍒涘缓鏃堕棿"> - <el-date-picker - v-model="daterangeCreateTime" - style="width: 240px" - value-format="yyyy-MM-dd" - type="daterange" - range-separator="-" - start-placeholder="寮�濮嬫棩鏈�" - end-placeholder="缁撴潫鏃ユ湡" - ></el-date-picker> - </el-form-item> - <el-form-item> - <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button> - <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> - </el-form-item> - </el-form> - - <el-row :gutter="10" class="mb8"> - <el-col :span="1.5"> - <el-button - type="primary" - plain - icon="el-icon-plus" - size="mini" - @click="handleAdd" - >鏂板</el-button> - </el-col> - <el-col :span="1.5"> - <el-button - type="success" - plain - icon="el-icon-edit" - size="mini" - :disabled="single" - @click="handleUpdate" - >淇敼</el-button> - </el-col> - <el-col :span="1.5"> - <el-button - type="danger" - plain - icon="el-icon-delete" - size="mini" - :disabled="multiple" - @click="handleDelete" - >鍒犻櫎</el-button> - </el-col> - <el-col :span="1.5"> - <el-button - type="warning" - plain - icon="el-icon-download" - size="mini" - @click="handleExport" - >瀵煎嚭</el-button> - </el-col> - <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> - </el-row> - - <el-table v-loading="loading" :data="checkTemplateList" @selection-change="handleSelectionChange"> - <el-table-column type="selection" width="55" align="center" /> - <el-table-column label="妯℃澘鍚嶇О" align="center" prop="templateName" width="220px"/> - <el-table-column label="鑰冩牳绫诲瀷" align="center" prop="examineCategory" /> - <el-table-column label="鑰冩牳瀵硅薄" align="center" prop="unitId" width="400px" > - <template slot-scope="scope"> - <div v-if="scope.row.unitId === 2">鎴愰兘x杩愮淮</div> - <div v-else-if="scope.row.unitId === 3">瀵岄『鍘�,鑽e幙,楂樻柊鍖�,鑷祦浜曞尯,璐′簳鍖�,澶у畨鍖�,娌挎哗鍖�</div> - </template> - </el-table-column> - <el-table-column label="璋冩暣绯绘暟" align="center" prop="adjustCoefficient" /> - <el-table-column label="璋冩暣绯绘暟璁$畻鏂瑰紡" align="center" prop="adjustWay"/> - <el-table-column label="鐘舵��" align="center" prop="status" /> - <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width"> - <template slot-scope="scope"> - <el-button - size="mini" - type="text" - icon="el-icon-edit" - @click="handleUpdate(scope.row)" - >淇敼</el-button> - <el-button - size="mini" - type="text" - icon="el-icon-delete" - @click="handleDelete(scope.row)" - >鍒犻櫎</el-button> - </template> - </el-table-column> - </el-table> - - <pagination - v-show="total>0" - :total="total" - :page.sync="queryParams.pageNum" - :limit.sync="queryParams.pageSize" - @pagination="getList" - /> - - <!-- 娣诲姞鎴栦慨鏀硅�冩牳妯℃澘瀵硅瘽妗� --> - <el-dialog :title="title" :visible.sync="open" width="700px" append-to-body> - <el-form ref="form" :model="form" :rules="rules" label-width="80px"> - <el-form-item label="妯℃澘鍚嶇О" prop="templateName"> - <el-input v-model="form.templateName" placeholder="璇疯緭鍏ユā鏉垮悕绉�" /> - </el-form-item> - <el-form-item label="鑰冩牳绫诲瀷" prop="examineCategory"> - <el-select v-model="form.examineCategory" placeholder="璇烽�夋嫨鑰冩牳绫诲瀷"> - <el-option label="鐪佸巺鑰冩牳" value="鐪佸巺鑰冩牳"/> - <el-option label="鍖哄幙鑰冩牳" value="鍖哄幙鑰冩牳"/> - <el-option label="杩愮淮鑰冩牳" value="鍏徃鑰冩牳"/> - </el-select> - </el-form-item> - <el-form-item label="鑰冩牳瀵硅薄" prop="unitName"> - <div class="block"> - <span class="demonstration"></span> - <el-cascader - v-model="value" - :options="options" - :props = "props" - @change="handleChange"></el-cascader> - </div> - - </el-form-item> - <el-form-item label="鑰冩牳瑙勫垯" prop="tempRuleFormList"> - <div class="row-warp"> - <div class="row" v-for="(form) in tempRuleFormList"> - <div class="row-left"> - <div>瑙勫垯</div> - <div class="margin-5"> - <el-select v-model="form.ruleId" placeholder="璇烽�夋嫨"> - <el-option - v-for="item in ruleList" - :key="item.id" - :label="item.value" - :value="item.id"> - </el-option> - </el-select> - </div> - </div> - <div class="row-right"> - <div>鏉冮噸</div> - <div class="margin-5"> - <el-input type="number" v-model="form.weight"/> - </div> - </div> - <div class="item-op"> - <el-button @click="removeRule(form)" type="danger" icon="el-icon-delete" circle></el-button> - </div> - </div> - <div style="margin-top: 25px"> - <el-button type="success" @click="nextAdd" size="mini" plain>娣诲姞</el-button> - </div> - </div> - </el-form-item> - <el-form-item label="璋冩暣绯绘暟" prop="adjustCoefficient"> - <el-input v-model="form.adjustCoefficient" placeholder="璇疯緭鍏ョ郴鏁板��" /> - </el-form-item> - <el-form-item label="璋冩暣鏂瑰紡" prop="adjustWay"> - <el-select v-model="form.adjustWay" placeholder="璇烽�夋嫨璋冩暣绯绘暟璁$畻鏂瑰紡"> - <el-option - label="涔�" - value="*"> - </el-option> - <el-option - label="闄�" - value="/"> - </el-option> - </el-select> - </el-form-item> - <el-form-item label="鐘舵��" prop="status"> - <el-radio v-model="form.status" label="use">鍚敤</el-radio> - <el-radio v-model="form.status" label="stop">鍋滅敤</el-radio> - </el-form-item> - </el-form> - <div slot="footer" class="dialog-footer"> - <el-button type="primary" @click="submitForm">纭� 瀹�</el-button> - <el-button @click="cancel">鍙� 娑�</el-button> - </div> - </el-dialog> - </div> -</template> - -<script> -import { listCheckTemplate, getCheckTemplate, delCheckTemplate, addCheckTemplate, updateCheckTemplate } from "@/api/platform/check-template"; -// import { ruleSelect } from '@/api/platform/check-rule' -import { unitSelect } from '@/api/platform/unit' - -export default { - name: "CheckTemplate", - data() { - return { - props: { multiple: true }, - value: [], - options: [{ - value: 'city', - label: '鍖哄幙', - children: [{ - value: 'fushun', - label: '瀵岄『鍘�', - }, { - value: 'rong', - label: '鑽e幙', - },{ - value: 'gaoxin', - label: '楂樻柊鍖�', - },{ - value: 'ziliujing', - label: '鑷祦浜曞尯', - },{ - value: 'gongjing', - label: '璐′簳鍖�', - },{ - value: 'daan', - label: '澶у畨鍖�', - },{ - value: 'yantan', - label: '娌挎哗鍖�', - }, - ] - }, { - value: 'company', - label: '鍏徃', - children: [{ - value: 'yunwei', - label: '鎴愰兘x杩愮淮', - }, { - value: 'yunwei2', - label: '鑷础x杩愮淮', - }, ] - }, - ], - ruleList: [], - unitList: [], - // 涓存椂瑙勫垯琛ㄥ崟 - tempRuleForm: {}, - // 涓存椂瑙勫垯琛ㄥ崟鍒楄〃 - tempRuleFormList: [{"ruleId": null, "adjustCoefficient": null}], - // 鏈�缁� - ruleFormList: [], - // 閬僵灞� - loading: true, - // 閫変腑鏁扮粍 - ids: [], - // 闈炲崟涓鐢� - single: true, - // 闈炲涓鐢� - multiple: true, - // 鏄剧ず鎼滅储鏉′欢 - showSearch: true, - // 鎬绘潯鏁� - total: 0, - // 鑰冩牳妯℃澘琛ㄦ牸鏁版嵁 - checkTemplateList: [], - // 寮瑰嚭灞傛爣棰� - title: "", - // 鏄惁鏄剧ず寮瑰嚭灞� - open: false, - // 鐘舵�佹椂闂磋寖鍥� - daterangeCreateTime: [], - // 鏌ヨ鍙傛暟 - queryParams: { - pageNum: 1, - pageSize: 10, - status: null, - createTime: null, - }, - // 琛ㄥ崟鍙傛暟 - form: {}, - // 琛ㄥ崟鏍¢獙 - rules: { - templateName: [ - { required: true, message: "妯℃澘鍚嶇О涓嶈兘涓虹┖", trigger: "blur" } - ], - adjustCoefficient: [ - { required: true, message: "璋冩暣绯绘暟涓嶈兘涓虹┖", trigger: "blur" } - ], - adjustWay: [ - { required: true, message: "璋冩暣鏂瑰紡锛氫箻闄や笉鑳戒负绌�", trigger: "blur" } - ], - } - }; - }, - created() { - this.getList(); - this.selectCheckRule(); - this.selectUnit(); - }, - methods: { - handleChange(value) { - console.log(value); - }, - removeRule(form) { - console.log(form) - this.ruleFormList = this.ruleFormList.filter(item => item !== form); - this.tempRuleFormList = this.tempRuleFormList.filter(item => item !== form) - }, - nextAdd() { - // if (this.tempRuleFormList.length === 0) { - // this.tempRuleFormList.push({"ruleId": null, "weight": null}) - // } else { - // this.ruleFormList.push(this.tempRuleForm); - // this.tempRuleFormList.push(this.tempRuleForm); - // this.tempRuleForm = {}; - // } - this.tempRuleFormList.push({"ruleId": null, "weight": null}) - }, - // 鑰冩牳瑙勫垯涓嬫媺鏁版嵁 - // selectCheckRule() { - // ruleSelect().then(res => { - // this.ruleList = res.data; - // }) - // }, - // 杩愮淮鍏徃涓嬫媺鏁版嵁 - selectUnit() { - unitSelect().then(res => { - this.unitList = res.data; - }) - }, - /** 鏌ヨ鑰冩牳妯℃澘鍒楄〃 */ - getList() { - this.loading = true; - if (null != this.daterangeCreateTime && '' != this.daterangeCreateTime) { - this.queryParams["start"] = this.daterangeCreateTime[0]; - this.queryParams["end"] = this.daterangeCreateTime[1]; - } - listCheckTemplate(this.queryParams).then(response => { - this.checkTemplateList = response.data; - this.total = response.total; - this.loading = false; - }); - }, - // 鍙栨秷鎸夐挳 - cancel() { - this.open = false; - this.reset(); - }, - // 琛ㄥ崟閲嶇疆 - reset() { - this.form = { - id: null, - adjustCoefficient: null, - adjustWay: null, - status: null, - createTime: null, - updateTime: null, - deleted: null - }; - this.resetForm("form"); - }, - /** 鎼滅储鎸夐挳鎿嶄綔 */ - handleQuery() { - this.queryParams.pageNum = 1; - this.getList(); - }, - /** 閲嶇疆鎸夐挳鎿嶄綔 */ - resetQuery() { - this.daterangeCreateTime = []; - this.resetForm("queryForm"); - this.handleQuery(); - }, - // 澶氶�夋閫変腑鏁版嵁 - handleSelectionChange(selection) { - this.ids = selection.map(item => item.id) - this.single = selection.length!==1 - this.multiple = !selection.length - }, - /** 鏂板鎸夐挳鎿嶄綔 */ - handleAdd() { - this.reset(); - this.open = true; - this.title = "娣诲姞鑰冩牳妯℃澘"; - }, - /** 淇敼鎸夐挳鎿嶄綔 */ - handleUpdate(row) { - this.reset(); - const id = row.id || this.ids - getCheckTemplate(id).then(response => { - this.form = response.data; - this.tempRuleFormList = this.form.ruleFormList; - this.ruleFormList = this.form.ruleFormList; - this.open = true; - this.title = "淇敼鑰冩牳妯℃澘"; - }); - }, - /** 鎻愪氦鎸夐挳 */ - submitForm() { - this.$refs["form"].validate(valid => { - if (valid) { - this.form.ruleFormList = this.tempRuleFormList; - if (this.form.id != null) { - updateCheckTemplate(this.form).then(response => { - this.$modal.msgSuccess("淇敼鎴愬姛"); - this.open = false; - this.tempRuleFormList = []; - this.form = {}; - this.getList(); - }); - } else { - addCheckTemplate(this.form).then(response => { - this.$modal.msgSuccess("鏂板鎴愬姛"); - this.open = false; - this.getList(); - }); - } - } - }); - }, - /** 鍒犻櫎鎸夐挳鎿嶄綔 */ - handleDelete(row) { - const ids = row.id || this.ids; - this.$modal.confirm('鏄惁纭鍒犻櫎鑰冩牳妯℃澘缂栧彿涓�"' + ids + '"鐨勬暟鎹」锛�').then(function() { - return delCheckTemplate(ids); - }).then(() => { - this.getList(); - this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); - }).catch(() => {}); - }, - /** 瀵煎嚭鎸夐挳鎿嶄綔 */ - handleExport() { - this.download('system/checkTemplate/export', { - ...this.queryParams - }, `checkTemplate_${new Date().getTime()}.xlsx`) - } - } -}; -</script> - -<style scoped> -.margin-5 { - margin-left: 5px; -} -.row-warp { - display: flex; - flex-direction: column; -} -.row { - display: flex; - flex-direction: row; - align-items: center; - justify-content: center; - margin: 5px 0; -} -.row-left { - flex: 1; - display: flex; - flex-direction: row; -} -.row-right { - flex: 1; - display: flex; - flex-direction: row; -} -</style> -- Gitblit v1.8.0