Prechádzať zdrojové kódy

联调防御通知接口

chauncey 11 mesiacov pred
rodič
commit
51dc7ae4b8

+ 1 - 1
mock/camera-list/index.ts

@@ -17,7 +17,7 @@ const cameraList = [
 
 export default [
   {
-    url: '/eye_api_bak/api/admin/camera/getCameraList',
+    url: '/safety_api/api/admin/camera/getCameraList',
     timeout: 1000,
     method: 'get',
     response: () => {

+ 1 - 1
mock/disaster-precaution/info.ts

@@ -26,7 +26,7 @@ const taskManagementItem = {
 
 export default [
   {
-    url: '/eye_api_bak/api/admin/task/getTaskManagementItem',
+    url: '/safety_api/api/admin/task/getTaskManagementItem',
     timeout: 1000,
     method: 'get',
     response: () => {

+ 2 - 2
mock/disaster-precaution/table.ts

@@ -77,7 +77,7 @@ const taskExecution = [
 
 export default [
   {
-    url: '/eye_api_bak/api/admin/task/getTaskManagementList',
+    url: '/safety_api/api/admin/task/getTaskManagementList',
     timeout: 1000,
     method: 'get',
     response: () => {
@@ -85,7 +85,7 @@ export default [
     },
   },
   {
-    url: '/eye_api_bak/api/admin/task/getTaskExecutionList',
+    url: '/safety_api/api/admin/task/getTaskExecutionList',
     timeout: 1000,
     method: 'get',
     response: () => {

+ 2 - 2
mock/disaster-warning/info.ts

@@ -58,7 +58,7 @@ const defenseNoticeInfo = {
 
 export default [
   {
-    url: '/eye_api_bak/api/admin/warning/getWarningInfoDetail',
+    url: '/safety_api/api/admin/warning/getWarningInfoDetail',
     timeout: 1000,
     method: 'get',
     response: () => {
@@ -66,7 +66,7 @@ export default [
     },
   },
   {
-    url: '/eye_api_bak/api/admin/warning/getDefenseNoticeDetail',
+    url: '/safety_api/api/admin/warning/getDefenseNoticeDetail',
     timeout: 1000,
     method: 'get',
     response: () => {

+ 2 - 2
mock/disaster-warning/table.ts

@@ -57,7 +57,7 @@ const defenseNoticeList = [
 
 export default [
   {
-    url: '/eye_api_bak/api/admin/warning/getWarningInfoList',
+    url: '/safety_api/api/admin/warning/getWarningInfoList',
     timeout: 1000,
     method: 'get',
     response: () => {
@@ -65,7 +65,7 @@ export default [
     },
   },
   {
-    url: '/eye_api_bak/api/admin/warning/getDefenseNoticeList',
+    url: '/safety_api/api/admin/warning/getDefenseNoticeList',
     timeout: 1000,
     method: 'get',
     response: () => {

+ 2 - 2
mock/push-object/index.ts

@@ -157,7 +157,7 @@ const pushObjectUserInfo = [
 
 export default [
   {
-    url: '/eye_api_bak/api/userGroup/queryUserGroupDetailByIds',
+    url: '/safety_api/api/userGroup/queryUserGroupDetailByIds',
     timeout: 1000,
     method: 'get',
     response: () => {
@@ -165,7 +165,7 @@ export default [
     },
   },
   {
-    url: '/eye_api_bak/api/user/queryAvailableUserList',
+    url: '/safety_api/api/user/queryAvailableUserList',
     timeout: 1000,
     method: 'get',
     response: () => {

+ 22 - 19
src/api/disaster-warning/index.ts

@@ -4,34 +4,27 @@ import type {
   DefenseNoticeListResponse,
   WarningInfoDetailResponse,
   DefenseNoticeDetailResponse,
+  DefenseNoticeListQuery,
 } from '@/types/disaster-warning';
+import type { QueryPageRequest, QueryPageResponse } from '@/api/disaster';
 /**
  * 获取预警信息列表
  */
 export function getWarningInfoList() {
-  return http.request<WarningInfoListResponse[]>(
-    {
-      url: 'admin/warning/getWarningInfoList',
-      method: 'get',
-    },
-    {
-      ignoreTargetTenantId: true,
-    },
-  );
+  return http.request<WarningInfoListResponse[]>({
+    url: '/disasterWarn/queryDisasterWarnInfoPage',
+    method: 'post',
+  });
 }
 /**
  * 获取防御通知列表
  */
-export function getDefenseNoticeList() {
-  return http.request<DefenseNoticeListResponse[]>(
-    {
-      url: 'admin/warning/getDefenseNoticeList',
-      method: 'get',
-    },
-    {
-      ignoreTargetTenantId: true,
-    },
-  );
+export function getDefenseNoticeList(query: QueryPageRequest<DefenseNoticeListQuery>) {
+  return http.request<QueryPageResponse<DefenseNoticeListResponse>>({
+    url: '/defenseNotice/queryDefenseNoticeInfoPage',
+    method: 'post',
+    data: query,
+  });
 }
 
 /**
@@ -68,3 +61,13 @@ export function getDefenseNoticeDetail(id: number) {
     },
   );
 }
+
+/**
+ * 删除防御通知项
+ */
+export const deleteDefenseNoticeItem = (defenseNoticeInfoIds: number) => {
+  return http.request({
+    url: '/defenseNotice/deleteDefenseNoticeInfos?defenseNoticeInfoIds=' + defenseNoticeInfoIds,
+    method: 'post'
+  });
+};

+ 10 - 0
src/api/disaster/index.ts

@@ -0,0 +1,10 @@
+export interface QueryPageRequest<T> {
+  pageNumber: number;
+  pageSize: number;
+  queryParam: T;
+}
+
+export interface QueryPageResponse<T> {
+  totalRow: number;
+  records: T[];
+}

+ 10 - 4
src/types/disaster-warning/index.ts

@@ -3,7 +3,7 @@ interface BasicResponse {
   disasterType: string;
   disasterLevel: string;
   publishTime: string;
-  activeStatus: number;
+  effectState: number;
   pushStatus: number;
 }
 export interface WarningInfoListResponse extends BasicResponse {
@@ -12,8 +12,14 @@ export interface WarningInfoListResponse extends BasicResponse {
   warningContent: string;
 }
 
+export interface DefenseNoticeListQuery {
+  disasterType?: string;
+  disasterLevel?: string;
+  effectState?: string;
+}
+
 export interface DefenseNoticeListResponse extends BasicResponse {
-  noticeTitle: string;
+  title: string;
 }
 
 interface BasicDetailResponse {
@@ -37,7 +43,7 @@ export interface DefenseNoticeAttachment {
 }
 export interface DefenseNoticeDetailResponse
   extends BasicDetailResponse,
-    Omit<DefenseNoticeListResponse, 'activeStatus' | 'pushStatus' | 'publishTime'> {
-  noticeContent: string;
+    Omit<DefenseNoticeListResponse, 'effectState' | 'pushStatus' | 'publishTime'> {
+  content: string;
   noticeAttachment: DefenseNoticeAttachment[];
 }

+ 3 - 3
src/views/disaster/components/Search.vue

@@ -27,16 +27,16 @@
     searchData: any;
   }>();
   const emit = defineEmits<{
-    (e: 'update:searchData', data: any): void;
+    (e: 'update:searchData'): void;
   }>();
   const handleSearch = () => {
-    emit('update:searchData', props.searchData);
+    emit('update:searchData');
   };
   const handleReset = () => {
     for (const key in props.searchData) {
       props.searchData[key] = '';
     }
-    emit('update:searchData', props.searchData);
+    emit('update:searchData');
   };
 </script>
 

+ 20 - 20
src/views/disaster/constant/index.ts

@@ -5,8 +5,8 @@
 // 生效状态
 export enum ACTIVE_STATUS {
   INACTIVE = 0,
-  ACTIVE,
   NOT_EFFECTIVE,
+  ACTIVE,
 }
 
 export const ACTIVE_STATUS_COLOR = {
@@ -16,9 +16,9 @@ export const ACTIVE_STATUS_COLOR = {
 };
 
 export const ACTIVE_STATUS_MAP: Record<number, string> = {
-  [ACTIVE_STATUS.ACTIVE]: '生效',
   [ACTIVE_STATUS.INACTIVE]: '失效',
   [ACTIVE_STATUS.NOT_EFFECTIVE]: '未生效',
+  [ACTIVE_STATUS.ACTIVE]: '生效',
 };
 
 export const ACTIVE_STATUS_OPTIONS_DEFAULT = [
@@ -71,59 +71,59 @@ export const FILE_TYPE_ICON = {
 export const DISASTER_TYPE = [
   {
     label: '台风',
-    value: '台风',
+    value: 'typhoon',
   },
   {
     label: '暴雨',
-    value: '暴雨',
+    value: 'rain',
   },
   {
     label: '大风',
-    value: '大风',
+    value: 'wind',
   },
   {
     label: '暴雪',
-    value: '暴雪',
+    value: 'snow',
   },
   {
     label: '高温',
-    value: '高温',
+    value: 'high_temperature',
   },
   {
     label: '强对流',
-    value: '强对流',
+    value: 'strong_convection',
   },
   {
     label: '寒潮',
-    value: '寒潮',
+    value: 'cold_wave',
   },
   {
     label: '沙尘暴',
-    value: '沙尘暴',
+    value: 'sand_storm',
   },
   {
     label: '低温',
-    value: '低温',
+    value: 'low_temperature',
   },
   {
     label: '干旱',
-    value: '干旱',
+    value: 'drought',
   },
   {
     label: '霜冻',
-    value: '霜冻',
+    value: 'frost',
   },
   {
     label: '冰冻',
-    value: '冰冻',
+    value: 'freezing',
   },
   {
     label: '大雾',
-    value: '大雾',
+    value: 'fog',
   },
   {
     label: '霾',
-    value: '',
+    value: 'haze',
   },
 ];
 
@@ -133,18 +133,18 @@ export const DISASTER_TYPE = [
 export const DISASTER_LEVEL = [
   {
     label: 'IV级/一般',
-    value: 'IV级/一般',
+    value: 1,
   },
   {
     label: 'III级/较重',
-    value: 'III级/较重',
+    value: 2,
   },
   {
     label: 'II级/严重',
-    value: 'II级/严重',
+    value: 3,
   },
   {
     label: 'I级/特别严重',
-    value: 'I级/特别严重',
+    value: 4,
   },
 ];

+ 42 - 15
src/views/disaster/disaster-warning/PageDefenseNotice.vue

@@ -25,18 +25,21 @@
           @update:pageSize="handleSizeChange"
           @update:pageNumber="handleCurrentChange"
         >
-          <template #activeStatus="scope">
+          <template #disasterLevel="scope">
+            <span>{{ formatDisasterLevel(scope.row.disasterLevel) }}</span>
+          </template>
+          <template #effectState="scope">
             <div class="active-status--div">
               <div
                 class="dot"
-                :style="{ backgroundColor: ACTIVE_STATUS_COLOR[scope.row.activeStatus as ACTIVE_STATUS] }"
+                :style="{ backgroundColor: ACTIVE_STATUS_COLOR[scope.row.effectState as ACTIVE_STATUS] }"
               />
-              <span>{{ ACTIVE_STATUS_MAP[scope.row.activeStatus] }}</span>
+              <span>{{ ACTIVE_STATUS_MAP[scope.row.effectState] }}</span>
             </div>
           </template>
-          <template #pushStatus="scope">
-            <span :style="{ color: scope.row.pushStatus === PUSH_STATUS.PUSHED ? '' : '#ff4d4f' }">
-              {{ PUSH_STATUS_MAP[scope.row.pushStatus as PUSH_STATUS] }}
+          <template #isPush="scope">
+            <span :style="{ color: scope.row.isPush === PUSH_STATUS.PUSHED ? '' : '#ff4d4f' }">
+              {{ PUSH_STATUS_MAP[scope.row.isPush as PUSH_STATUS] }}
             </span>
           </template>
           <template #action="scope">
@@ -65,6 +68,7 @@
               :popconfirm="{
                 title: '确定要删除?',
               }"
+              @confirm="handleDeleteDefenseNotice(scope.row.id)"
             />
           </template>
         </BasicTable>
@@ -80,12 +84,15 @@
   import BasicTable from '@/components/BasicTable.vue';
   import ActionButton from '@/components/ActionButton.vue';
   import useTableConfig from '@/hooks/useTableConfigHook';
-  import { getDefenseNoticeList } from '@/api/disaster-warning';
-  import type { DefenseNoticeListResponse } from '@/types/disaster-warning';
+  import { getDefenseNoticeList, deleteDefenseNoticeItem } from '@/api/disaster-warning';
+  import type { DefenseNoticeListResponse, DefenseNoticeListQuery } from '@/types/disaster-warning';
+  import type { QueryPageRequest } from '@/api/disaster';
   import { ACTIVE_STATUS, ACTIVE_STATUS_COLOR, ACTIVE_STATUS_MAP } from '@/views/disaster/constant';
   import { PUSH_STATUS_MAP, PUSH_STATUS } from './src/constant';
   import { DEFENSE_NOTICE_SEARCH_CONFIG, TABLE_OPTIONS, DEFENSE_NOTICE_TABLE_COLUMNS } from './src/config';
+  import { formatDisasterLevel } from '@/views/disaster/utils/formatTable';
   import { useRouter } from 'vue-router';
+  import { ElMessage } from 'element-plus';
   const tableData = ref<DefenseNoticeListResponse[]>([]);
   const router = useRouter();
   const defaultPath = '/disaster-prevention/disaster-warning/defense-notice-item';
@@ -109,16 +116,36 @@
       query: { id },
     });
   };
+  const handleDeleteDefenseNotice = async (id: number) => {
+    await deleteDefenseNoticeItem(id);
+    ElMessage.success('删除成功');
+    getTableData();
+  };
   const searchData = reactive({
     disasterType: '',
     disasterLevel: '',
-    activeStatus: '',
+    effectState: '',
   });
-  const handleSearch = (data: any) => {
-    console.log(data);
+  const { tableConfig, pagination } = useTableConfig(DEFENSE_NOTICE_TABLE_COLUMNS, TABLE_OPTIONS);
+  let defenseNoticeListQuery: QueryPageRequest<DefenseNoticeListQuery> = {
+    pageNumber: pagination.pageNumber,
+    pageSize: pagination.pageSize,
+    queryParam: {},
+  };
+  const handleSearch = () => {
+    defenseNoticeListQuery.queryParam = {};
+    if (searchData.disasterLevel !== '') {
+      defenseNoticeListQuery.queryParam.disasterLevel = searchData.disasterLevel;
+    }
+    if (searchData.effectState !== '') {
+      defenseNoticeListQuery.queryParam.effectState = searchData.effectState;
+    }
+    if (searchData.disasterType !== '') {
+      defenseNoticeListQuery.queryParam.disasterType = searchData.disasterType;
+    }
+
     getTableData();
   };
-  const { tableConfig, pagination } = useTableConfig(DEFENSE_NOTICE_TABLE_COLUMNS, TABLE_OPTIONS);
   const handleSizeChange = (value: number) => {
     pagination.pageSize = value;
     getTableData();
@@ -129,9 +156,9 @@
   };
   const getTableData = async () => {
     tableConfig.loading = true;
-    const res = await getDefenseNoticeList();
-    tableData.value = res;
-    pagination.total = tableData.value.length;
+    const res = await getDefenseNoticeList(defenseNoticeListQuery);
+    tableData.value = res.records;
+    pagination.total = res.totalRow;
     tableConfig.loading = false;
   };
   onMounted(() => {

+ 8 - 6
src/views/disaster/disaster-warning/src/config/table.ts

@@ -16,30 +16,32 @@ const BASIC_TABLE_COLUMNS = {
     prop: 'disasterType',
     label: '灾害类型',
     align: 'center',
+    slot: 'disasterType',
   },
   DISASTER_LEVEL: {
     prop: 'disasterLevel',
     label: '灾害等级',
     align: 'center',
+    slot: 'disasterLevel',
   },
   PUBLISH_TIME: {
-    prop: 'publishTime',
+    prop: 'pushTime',
     label: '发布时间',
     align: 'center',
     width: '200cpx',
   },
   ACTIVE_STATUS: {
-    prop: 'activeStatus',
+    prop: 'effectState',
     label: '生效状态',
     align: 'center',
-    slot: 'activeStatus',
+    slot: 'effectState',
     width: '120cpx',
   },
   PUSH_STATUS: {
-    prop: 'pushStatus',
+    prop: 'isPush',
     label: '推送',
     align: 'center',
-    slot: 'pushStatus',
+    slot: 'isPush',
   },
   ACTION: {
     prop: 'action',
@@ -82,7 +84,7 @@ export const WARNING_INFO_TABLE_COLUMNS: TableColumnProps[] = [
 // 防御通知表格列配置
 export const DEFENSE_NOTICE_TABLE_COLUMNS: TableColumnProps[] = [
   {
-    prop: 'noticeTitle',
+    prop: 'title',
     label: '通知标题',
     align: 'center',
   },

+ 5 - 0
src/views/disaster/utils/formatTable.ts

@@ -0,0 +1,5 @@
+import { DISASTER_LEVEL } from '../constant';
+// 格式化灾害等级
+export const formatDisasterLevel = (level: string) => {
+  return DISASTER_LEVEL.find((item) => item.value === Number(level))?.label;
+};

+ 1 - 1
utils/devProxy/staff/proxy.ts

@@ -3,7 +3,7 @@ import path from 'path';
 
 // staff环境
 const proxyStaff: PROXY_TYPE = {
-  serverHost: 'http://192.168.13.68:8802/',
+  serverHost: 'http://192.168.22.121:8802/',
   loginHost: 'http://192.168.13.68:7200/login/#/',
   fileUploadHost: '',
 };