From 457f9c817adef8b003ee6379f493798bae5cbb69 Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: Mon, 19 May 2025 09:31:19 +0800
Subject: [PATCH] 修改
---
config/env.development.js | 4
src/util/validate.js | 5 +
src/views/Admin/components/msgEditMod.vue | 2
src/views/Admin/dataStatistic.vue | 91 ++++++++++++++++++++++++++++--
src/views/Admin/massSend.vue | 20 ++++++
src/router/index.js | 2
src/views/Admin/notice.vue | 20 +++++-
7 files changed, 128 insertions(+), 16 deletions(-)
diff --git a/config/env.development.js b/config/env.development.js
index 3f00d8e..52d686c 100644
--- a/config/env.development.js
+++ b/config/env.development.js
@@ -1,5 +1,5 @@
module.exports = {
NODE_ENV: "development",
- baseUrl: 'http://192.168.2.11:8087',
+ baseUrl: 'http://192.168.2.58:8087',
// baseUrl: 'http://sms.sinanoaq.cn/api',
-};
\ No newline at end of file
+};
diff --git a/src/router/index.js b/src/router/index.js
index f8e86ef..017b783 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -8,7 +8,7 @@
{
path: '/',
name: 'login',
- component: () => import('@/views/Login'),
+ component: () => import('@/views/Login.vue'),
meta: { title: '登录' },
},
{
diff --git a/src/util/validate.js b/src/util/validate.js
index 71e4366..8489a95 100644
--- a/src/util/validate.js
+++ b/src/util/validate.js
@@ -370,3 +370,8 @@
// true:车牌号正确
else return true;
}
+
+export function verifySimpleContent(val) {
+ var regex = /^[^\u3010-\u3011]*$/; // 正则表达式,\d 匹配数字,{11} 表示匹配11次
+ return regex.test(val);
+}
diff --git a/src/views/Admin/components/msgEditMod.vue b/src/views/Admin/components/msgEditMod.vue
index 230370a..850b76f 100644
--- a/src/views/Admin/components/msgEditMod.vue
+++ b/src/views/Admin/components/msgEditMod.vue
@@ -190,7 +190,7 @@
<h2>短信预览</h2>
<div class="mobile">
<div class="mesg">
- <P>【防灾减灾工作提示】{{form.content}}</P>
+ <P>【新疆自然灾害预警中心】{{form.content}}</P>
</div>
</div>
</div>
diff --git a/src/views/Admin/dataStatistic.vue b/src/views/Admin/dataStatistic.vue
index 3a3010d..a91f2ce 100644
--- a/src/views/Admin/dataStatistic.vue
+++ b/src/views/Admin/dataStatistic.vue
@@ -3,8 +3,8 @@
<div id="charts" style="width: 100%;height: 400px"></div>
<a-row type="flex" justify="space-between" style="margin-bottom: 20px">
<a-col :span="20">
- <a-row type="flex" :gutter="18">
- <a-col :span="8">
+ <a-row type="flex" :gutter="24">
+ <a-col :span="6">
<a-range-picker
v-model="timeRange"
format="YYYY-MM-DD"
@@ -13,6 +13,14 @@
@ok="timeOk"
style="width: 100%"
/>
+ </a-col>
+ <a-col :span="6">
+ <a-select v-model="search.disasterType" style="width: 100%" placeholder="选择灾种类别" allow-clear>
+ <a-select-option v-for="item in typeList" :value="item.value" :key="item.value">{{item.name}}</a-select-option>
+ </a-select>
+ </a-col>
+ <a-col :span="6">
+ <a-cascader :options="areaData" v-model="areaVal" placeholder="选择地理位置" expandTrigger="hover" :fieldNames="fieldNames" changeOnSelect @change="onChange1" style="width: 100%"/>
</a-col>
<a-col :span="6">
<a-button type="primary" @click="searchData">查询</a-button>
@@ -25,7 +33,7 @@
<!-- 表格实体部分-->
<div class="table-cont">
<a-button type="primary" v-if="backButton" @click="backData" :loading="backLoading" style="margin-bottom: 20px">返回上级</a-button>
- <a-table :columns="columns" :data-source="data" bordered :pagination="false" :rowKey="record=>record.name">
+ <a-table :columns="columns" :loading="loading" :data-source="data" bordered :pagination="false" :rowKey="record=>record.name">
<template #index="text,record,index">
{{ index + 1 }}
</template>
@@ -44,6 +52,7 @@
import Cookies from "js-cookie";
import {getUserInfo} from "@/util/storage";
import * as echarts from 'echarts';
+import {getDistrictInfo} from "@/api/login";
const columns = [{
title: '序号',
dataIndex: 'index',
@@ -84,9 +93,28 @@
components: {},
data() {
return {
+ loading: false,
search:{
startTime: '',
- endTime: ''
+ endTime: '',
+ disasterType: undefined ,
+ province: '',
+ city: ''
+
+ },
+ typeList: [
+ {name: '地震',value: 1},
+ {name: '气象',value: 3},
+ {name: '地质灾害',value: 4},
+ {name: '水旱',value: 5},
+ {name: '森林草原火灾',value: 6}
+ ],
+ areaData: [],
+ areaVal: [],
+ fieldNames:{
+ label: 'name',
+ value: 'id',
+ children: 'children'
},
timeRange: [],
category: 'default',
@@ -110,11 +138,13 @@
t.$router.push(t.$route.path)
}
t.getData()
+ t.getDistrictInfo()
},
methods: {
async getData(){
const t = this
t.backLoading = true
+ t.loading = true
const res = await getTotalStatisticsByArea(t.search)
if(res.data.code == 100){
if(t.areaName && t.areaName !== '新疆维吾尔自治区'){
@@ -126,11 +156,57 @@
t.backButton = false
}
t.backLoading = false
+ t.loading = false
}else{
this.$message.error(res.data.msg)
}
},
+ async getDistrictInfo(){
+ let res = await getDistrictInfo()
+ if(res.data.code == 100){
+ this.areaData = res.data.data.map(item => ({
+ ...item,
+ children: item.children?.map(child => ({...child,children:undefined }))
+ }))
+ } else {
+ this.$message.warning(res.data.msg);
+ }
+ },
+ // 根据id查对象
+ findCodeById(data,value) {
+ for (const node of data) {
+ if (node.id === value) {
+ return node;
+ }
+ if (node.children) {
+ const foundNode = this.findCodeById(node.children, value);
+ if (foundNode) {
+ return foundNode;
+ }
+ }
+ }
+ return null;
+ },
+ onChange1(value) {
+ const t = this
+ t.search.province = ''
+ t.search.city = ''
+ if(value[0]){
+ t.search.province = t.findCodeById(t.areaData,value[0]).name
+ }
+ if(value[1]){
+ t.search.city = t.findCodeById(t.areaData,value[1]).name
+ }
+ // if(value[2]){
+ // t.search.searchParams.area = t.findCodeById(t.areaData,value[2]).name
+ // }
+ // if(value[3]){
+ // t.search.searchParams.town = t.findCodeById(t.areaData,value[3]).name
+ // }
+ console.log('111',t.search.searchParams)
+
+ },
async getChartsData(){
const t = this
const res = await getTotalStatistics()
@@ -212,7 +288,10 @@
const t = this
t.search = {
startTime: '',
- endTime: ''
+ endTime: '',
+ disasterType: undefined ,
+ province: '',
+ city: ''
}
t.timeRange = []
t.getData()
@@ -220,4 +299,4 @@
}
}
-</script>
\ No newline at end of file
+</script>
diff --git a/src/views/Admin/massSend.vue b/src/views/Admin/massSend.vue
index ad09f01..8fa0dc9 100644
--- a/src/views/Admin/massSend.vue
+++ b/src/views/Admin/massSend.vue
@@ -233,7 +233,7 @@
<h2>短信预览</h2>
<div class="mobile">
<div class="mesg">
- <P>【防灾减灾工作提示】{{form.content}}</P>
+ <P>【新疆自然灾害预警中心】{{form.content}}</P>
</div>
</div>
@@ -249,9 +249,21 @@
import {getUserInfo} from "@/util/storage";
import {getNewAddressBook, getNewAddressBookArea, getNewAddressBookUser} from "@/api/contactBook";
import {debounce} from "@/util/debounce";
+import {verifySimpleContent} from "@/util/validate";
export default {
name: "massSend",
data() {
+ let validateContent = (rule, value, callback)=>{
+ if(value === ''){
+ callback(new Error('请输入信息内容'))
+ }else{
+ if(!verifySimpleContent(value)){
+ callback(new Error('内容不可包含中文中括号【】'))
+ }else{
+ callback()
+ }
+ }
+ }
return {
newBookUsers: [],
currentLoadedKeys: [],
@@ -312,7 +324,11 @@
emergType: [{ required: true, message: '请选择紧急类型', trigger: 'change'}],
disasterType: [{ required: true, message: '请选择灾种', trigger: 'change'}],
warningLevel: [{ required: true, message: '请选择预警级别', trigger: 'change'}],
- content: [{ required: true, message: '请输入信息内容', trigger: 'blur'}],
+ content: [{
+ required: true,
+ validator: validateContent,
+ trigger: 'blur'
+ }],
txlUsers: [{ required: true, message: '请选择通讯录接收人', trigger: 'blur'}],
// receiver: [{ required: true, message: '请选择接收单位', trigger: 'change'}],
// recipient: [{ required: true, message: '请选择平级接收人', trigger: 'change'}]
diff --git a/src/views/Admin/notice.vue b/src/views/Admin/notice.vue
index 95a9b6f..597bb82 100644
--- a/src/views/Admin/notice.vue
+++ b/src/views/Admin/notice.vue
@@ -153,7 +153,7 @@
<h2>短信预览</h2>
<div class="mobile">
<div class="mesg">
- <P>【防灾减灾工作提示】{{form.content}}</P>
+ <P>【新疆自然灾害预警中心】{{form.content}}</P>
</div>
</div>
</div>
@@ -179,11 +179,23 @@
deleteFile
} from "@/api/list";
import { TreeSelect } from 'ant-design-vue';
+ import {verifySimpleContent} from "@/util/validate";
const SHOW_PARENT = TreeSelect.SHOW_PARENT;
const treeData = [];
export default {
name: "notice",
data() {
+ let validateContent = (rule, value, callback)=>{
+ if(value === ''){
+ callback(new Error('请输入信息内容'))
+ }else{
+ if(!verifySimpleContent(value)){
+ callback(new Error('内容不可包含中文中括号【】'))
+ }else{
+ callback()
+ }
+ }
+ }
return {
value: [],
SHOW_PARENT,
@@ -284,9 +296,9 @@
trigger: 'blur'
}],
content: [{
- required: true,
- message: '请输入信息内容',
- trigger: 'blur'
+ required: true,
+ validator: validateContent,
+ trigger: 'blur'
}],
timeout: [{
required: true,
--
Gitblit v1.9.2