feat:功能优化,设备报警信息、微信缓存用户,操作记录信息,代码提交。
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
# 页面标题
|
||||
VITE_APP_TITLE = RuoYi-Vue-Plus多租户管理系统
|
||||
VITE_APP_TITLE = 水产养殖监测平台
|
||||
|
||||
# 生产环境配置
|
||||
VITE_APP_ENV = 'production'
|
||||
|
||||
63
src/api/fishery/deviceWarnCombine/index.ts
Normal file
63
src/api/fishery/deviceWarnCombine/index.ts
Normal file
@@ -0,0 +1,63 @@
|
||||
import request from '@/utils/request';
|
||||
import { AxiosPromise } from 'axios';
|
||||
import { DeviceWarnCombineVO, DeviceWarnCombineForm, DeviceWarnCombineQuery } from '@/api/fishery/deviceWarnCombine/types';
|
||||
|
||||
/**
|
||||
* 查询设备告警信息列表
|
||||
* @param query
|
||||
* @returns {*}
|
||||
*/
|
||||
|
||||
export const listDeviceWarnCombine = (query?: DeviceWarnCombineQuery): AxiosPromise<DeviceWarnCombineVO[]> => {
|
||||
return request({
|
||||
url: '/fishery/deviceWarnCombine/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 查询设备告警信息详细
|
||||
* @param id
|
||||
*/
|
||||
export const getDeviceWarnCombine = (id: string | number): AxiosPromise<DeviceWarnCombineVO> => {
|
||||
return request({
|
||||
url: '/fishery/deviceWarnCombine/' + id,
|
||||
method: 'get'
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 新增设备告警信息
|
||||
* @param data
|
||||
*/
|
||||
export const addDeviceWarnCombine = (data: DeviceWarnCombineForm) => {
|
||||
return request({
|
||||
url: '/fishery/deviceWarnCombine',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 修改设备告警信息
|
||||
* @param data
|
||||
*/
|
||||
export const updateDeviceWarnCombine = (data: DeviceWarnCombineForm) => {
|
||||
return request({
|
||||
url: '/fishery/deviceWarnCombine',
|
||||
method: 'put',
|
||||
data: data
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 删除设备告警信息
|
||||
* @param id
|
||||
*/
|
||||
export const delDeviceWarnCombine = (id: string | number | Array<string | number>) => {
|
||||
return request({
|
||||
url: '/fishery/deviceWarnCombine/' + id,
|
||||
method: 'delete'
|
||||
});
|
||||
};
|
||||
143
src/api/fishery/deviceWarnCombine/types.ts
Normal file
143
src/api/fishery/deviceWarnCombine/types.ts
Normal file
@@ -0,0 +1,143 @@
|
||||
export interface DeviceWarnCombineVO {
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
id: string | number;
|
||||
|
||||
/**
|
||||
* 设备编号
|
||||
*/
|
||||
deviceSerialNum: string;
|
||||
|
||||
/**
|
||||
* 设备类型
|
||||
*/
|
||||
deviceType: number;
|
||||
|
||||
/**
|
||||
* 参数类型
|
||||
*/
|
||||
thresholdType: number;
|
||||
|
||||
/**
|
||||
* 进展状态
|
||||
*/
|
||||
processStatus: number;
|
||||
|
||||
/**
|
||||
* 故障类型
|
||||
*/
|
||||
warnType: number;
|
||||
|
||||
/**
|
||||
* 告警总数量
|
||||
*/
|
||||
totalCount: number;
|
||||
|
||||
/**
|
||||
* 处理人
|
||||
*/
|
||||
handlerName: string;
|
||||
|
||||
/**
|
||||
* 处理时间
|
||||
*/
|
||||
processTime: string;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
createTime: string;
|
||||
|
||||
}
|
||||
|
||||
export interface DeviceWarnCombineForm extends BaseEntity {
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
id?: string | number;
|
||||
|
||||
/**
|
||||
* 设备编号
|
||||
*/
|
||||
deviceSerialNum?: string;
|
||||
|
||||
/**
|
||||
* 设备类型
|
||||
*/
|
||||
deviceType?: number;
|
||||
|
||||
/**
|
||||
* 参数类型
|
||||
*/
|
||||
thresholdType?: number;
|
||||
|
||||
/**
|
||||
* 进展状态
|
||||
*/
|
||||
processStatus?: number;
|
||||
|
||||
/**
|
||||
* 故障类型
|
||||
*/
|
||||
warnType?: number;
|
||||
|
||||
/**
|
||||
* 告警总数量
|
||||
*/
|
||||
totalCount?: number;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
remarkContent?: string;
|
||||
|
||||
/**
|
||||
* 处理人
|
||||
*/
|
||||
handlerName?: string;
|
||||
|
||||
/**
|
||||
* 处理时间
|
||||
*/
|
||||
processTime?: string;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
remark?: string;
|
||||
|
||||
}
|
||||
|
||||
export interface DeviceWarnCombineQuery extends PageQuery {
|
||||
|
||||
/**
|
||||
* 设备编号
|
||||
*/
|
||||
deviceSerialNum?: string;
|
||||
|
||||
/**
|
||||
* 设备类型
|
||||
*/
|
||||
deviceType?: number;
|
||||
|
||||
/**
|
||||
* 参数类型
|
||||
*/
|
||||
thresholdType?: number;
|
||||
|
||||
/**
|
||||
* 进展状态
|
||||
*/
|
||||
processStatus?: number;
|
||||
|
||||
/**
|
||||
* 故障类型
|
||||
*/
|
||||
warnType?: number;
|
||||
|
||||
/**
|
||||
* 日期范围参数
|
||||
*/
|
||||
params?: any;
|
||||
}
|
||||
63
src/api/fishery/deviceWarnOne/index.ts
Normal file
63
src/api/fishery/deviceWarnOne/index.ts
Normal file
@@ -0,0 +1,63 @@
|
||||
import request from '@/utils/request';
|
||||
import { AxiosPromise } from 'axios';
|
||||
import { DeviceWarnOneVO, DeviceWarnOneForm, DeviceWarnOneQuery } from '@/api/fishery/deviceWarnOne/types';
|
||||
|
||||
/**
|
||||
* 查询设备报警明细列表
|
||||
* @param query
|
||||
* @returns {*}
|
||||
*/
|
||||
|
||||
export const listDeviceWarnOne = (query?: DeviceWarnOneQuery): AxiosPromise<DeviceWarnOneVO[]> => {
|
||||
return request({
|
||||
url: '/fishery/deviceWarnOne/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 查询设备报警明细详细
|
||||
* @param id
|
||||
*/
|
||||
export const getDeviceWarnOne = (id: string | number): AxiosPromise<DeviceWarnOneVO> => {
|
||||
return request({
|
||||
url: '/fishery/deviceWarnOne/' + id,
|
||||
method: 'get'
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 新增设备报警明细
|
||||
* @param data
|
||||
*/
|
||||
export const addDeviceWarnOne = (data: DeviceWarnOneForm) => {
|
||||
return request({
|
||||
url: '/fishery/deviceWarnOne',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 修改设备报警明细
|
||||
* @param data
|
||||
*/
|
||||
export const updateDeviceWarnOne = (data: DeviceWarnOneForm) => {
|
||||
return request({
|
||||
url: '/fishery/deviceWarnOne',
|
||||
method: 'put',
|
||||
data: data
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 删除设备报警明细
|
||||
* @param id
|
||||
*/
|
||||
export const delDeviceWarnOne = (id: string | number | Array<string | number>) => {
|
||||
return request({
|
||||
url: '/fishery/deviceWarnOne/' + id,
|
||||
method: 'delete'
|
||||
});
|
||||
};
|
||||
143
src/api/fishery/deviceWarnOne/types.ts
Normal file
143
src/api/fishery/deviceWarnOne/types.ts
Normal file
@@ -0,0 +1,143 @@
|
||||
export interface DeviceWarnOneVO {
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
id: string | number;
|
||||
|
||||
/**
|
||||
* 报警主表id
|
||||
*/
|
||||
warnCombineId: string | number;
|
||||
|
||||
/**
|
||||
* 用户id
|
||||
*/
|
||||
userId: string | number;
|
||||
|
||||
/**
|
||||
* 告警最大值
|
||||
*/
|
||||
limitUpper: number;
|
||||
|
||||
/**
|
||||
* 告警最小值
|
||||
*/
|
||||
limitLower: number;
|
||||
|
||||
/**
|
||||
* 告警当前值
|
||||
*/
|
||||
curValue: number;
|
||||
|
||||
/**
|
||||
* 进展状态
|
||||
*/
|
||||
processStatus: number;
|
||||
|
||||
/**
|
||||
* 故障类型
|
||||
*/
|
||||
warnType: number;
|
||||
|
||||
/**
|
||||
* 处理人
|
||||
*/
|
||||
handlerName: string;
|
||||
|
||||
/**
|
||||
* 处理时间
|
||||
*/
|
||||
processTime: string;
|
||||
|
||||
}
|
||||
|
||||
export interface DeviceWarnOneForm extends BaseEntity {
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
id?: string | number;
|
||||
|
||||
/**
|
||||
* 报警主表id
|
||||
*/
|
||||
warnCombineId?: string | number;
|
||||
|
||||
/**
|
||||
* 用户id
|
||||
*/
|
||||
userId?: string | number;
|
||||
|
||||
/**
|
||||
* 告警最大值
|
||||
*/
|
||||
limitUpper?: number;
|
||||
|
||||
/**
|
||||
* 告警最小值
|
||||
*/
|
||||
limitLower?: number;
|
||||
|
||||
/**
|
||||
* 告警当前值
|
||||
*/
|
||||
curValue?: number;
|
||||
|
||||
/**
|
||||
* 进展状态
|
||||
*/
|
||||
processStatus?: number;
|
||||
|
||||
/**
|
||||
* 故障类型
|
||||
*/
|
||||
warnType?: number;
|
||||
|
||||
/**
|
||||
* 处理人
|
||||
*/
|
||||
handlerName?: string;
|
||||
|
||||
/**
|
||||
* 处理时间
|
||||
*/
|
||||
processTime?: string;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
remark?: string;
|
||||
|
||||
}
|
||||
|
||||
export interface DeviceWarnOneQuery extends PageQuery {
|
||||
|
||||
/**
|
||||
* 报警主表id
|
||||
*/
|
||||
warnCombineId?: string | number;
|
||||
|
||||
/**
|
||||
* 用户id
|
||||
*/
|
||||
userId?: string | number;
|
||||
|
||||
/**
|
||||
* 进展状态
|
||||
*/
|
||||
processStatus?: number;
|
||||
|
||||
/**
|
||||
* 故障类型
|
||||
*/
|
||||
warnType?: number;
|
||||
|
||||
/**
|
||||
* 处理人
|
||||
*/
|
||||
handlerName?: string;
|
||||
|
||||
/**
|
||||
* 日期范围参数
|
||||
*/
|
||||
params?: any;
|
||||
}
|
||||
63
src/api/fishery/messageOpRecord/index.ts
Normal file
63
src/api/fishery/messageOpRecord/index.ts
Normal file
@@ -0,0 +1,63 @@
|
||||
import request from '@/utils/request';
|
||||
import { AxiosPromise } from 'axios';
|
||||
import { MessageOpRecordVO, MessageOpRecordForm, MessageOpRecordQuery } from '@/api/fishery/messageOpRecord/types';
|
||||
|
||||
/**
|
||||
* 查询用户操作记录列表
|
||||
* @param query
|
||||
* @returns {*}
|
||||
*/
|
||||
|
||||
export const listMessageOpRecord = (query?: MessageOpRecordQuery): AxiosPromise<MessageOpRecordVO[]> => {
|
||||
return request({
|
||||
url: '/fishery/messageOpRecord/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 查询用户操作记录详细
|
||||
* @param id
|
||||
*/
|
||||
export const getMessageOpRecord = (id: string | number): AxiosPromise<MessageOpRecordVO> => {
|
||||
return request({
|
||||
url: '/fishery/messageOpRecord/' + id,
|
||||
method: 'get'
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 新增用户操作记录
|
||||
* @param data
|
||||
*/
|
||||
export const addMessageOpRecord = (data: MessageOpRecordForm) => {
|
||||
return request({
|
||||
url: '/fishery/messageOpRecord',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 修改用户操作记录
|
||||
* @param data
|
||||
*/
|
||||
export const updateMessageOpRecord = (data: MessageOpRecordForm) => {
|
||||
return request({
|
||||
url: '/fishery/messageOpRecord',
|
||||
method: 'put',
|
||||
data: data
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 删除用户操作记录
|
||||
* @param id
|
||||
*/
|
||||
export const delMessageOpRecord = (id: string | number | Array<string | number>) => {
|
||||
return request({
|
||||
url: '/fishery/messageOpRecord/' + id,
|
||||
method: 'delete'
|
||||
});
|
||||
};
|
||||
108
src/api/fishery/messageOpRecord/types.ts
Normal file
108
src/api/fishery/messageOpRecord/types.ts
Normal file
@@ -0,0 +1,108 @@
|
||||
export interface MessageOpRecordVO {
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
id: string | number;
|
||||
|
||||
/**
|
||||
* 用户id
|
||||
*/
|
||||
userId: string | number;
|
||||
|
||||
/**
|
||||
* 操作用户id
|
||||
*/
|
||||
opUserId: string | number;
|
||||
|
||||
/**
|
||||
* 操作标题
|
||||
*/
|
||||
title: string;
|
||||
|
||||
/**
|
||||
* 操作内容
|
||||
*/
|
||||
message: string;
|
||||
|
||||
/**
|
||||
* 操作方式
|
||||
*/
|
||||
opType: number;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
remark: string;
|
||||
|
||||
}
|
||||
|
||||
export interface MessageOpRecordForm extends BaseEntity {
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
id?: string | number;
|
||||
|
||||
/**
|
||||
* 用户id
|
||||
*/
|
||||
userId?: string | number;
|
||||
|
||||
/**
|
||||
* 操作用户id
|
||||
*/
|
||||
opUserId?: string | number;
|
||||
|
||||
/**
|
||||
* 操作标题
|
||||
*/
|
||||
title?: string;
|
||||
|
||||
/**
|
||||
* 操作内容
|
||||
*/
|
||||
message?: string;
|
||||
|
||||
/**
|
||||
* 操作方式
|
||||
*/
|
||||
opType?: number;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
remark?: string;
|
||||
|
||||
}
|
||||
|
||||
export interface MessageOpRecordQuery extends PageQuery {
|
||||
|
||||
/**
|
||||
* 用户id
|
||||
*/
|
||||
userId?: string | number;
|
||||
|
||||
/**
|
||||
* 操作用户id
|
||||
*/
|
||||
opUserId?: string | number;
|
||||
|
||||
/**
|
||||
* 操作标题
|
||||
*/
|
||||
title?: string;
|
||||
|
||||
/**
|
||||
* 操作内容
|
||||
*/
|
||||
message?: string;
|
||||
|
||||
/**
|
||||
* 操作方式
|
||||
*/
|
||||
opType?: number;
|
||||
|
||||
/**
|
||||
* 日期范围参数
|
||||
*/
|
||||
params?: any;
|
||||
}
|
||||
63
src/api/fishery/tecentUserCache/index.ts
Normal file
63
src/api/fishery/tecentUserCache/index.ts
Normal file
@@ -0,0 +1,63 @@
|
||||
import request from '@/utils/request';
|
||||
import { AxiosPromise } from 'axios';
|
||||
import { TecentUserCacheVO, TecentUserCacheForm, TecentUserCacheQuery } from '@/api/fishery/tecentUserCache/types';
|
||||
|
||||
/**
|
||||
* 查询公众号用户缓存列表
|
||||
* @param query
|
||||
* @returns {*}
|
||||
*/
|
||||
|
||||
export const listTecentUserCache = (query?: TecentUserCacheQuery): AxiosPromise<TecentUserCacheVO[]> => {
|
||||
return request({
|
||||
url: '/fishery/tecentUserCache/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 查询公众号用户缓存详细
|
||||
* @param id
|
||||
*/
|
||||
export const getTecentUserCache = (id: string | number): AxiosPromise<TecentUserCacheVO> => {
|
||||
return request({
|
||||
url: '/fishery/tecentUserCache/' + id,
|
||||
method: 'get'
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 新增公众号用户缓存
|
||||
* @param data
|
||||
*/
|
||||
export const addTecentUserCache = (data: TecentUserCacheForm) => {
|
||||
return request({
|
||||
url: '/fishery/tecentUserCache',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 修改公众号用户缓存
|
||||
* @param data
|
||||
*/
|
||||
export const updateTecentUserCache = (data: TecentUserCacheForm) => {
|
||||
return request({
|
||||
url: '/fishery/tecentUserCache',
|
||||
method: 'put',
|
||||
data: data
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 删除公众号用户缓存
|
||||
* @param id
|
||||
*/
|
||||
export const delTecentUserCache = (id: string | number | Array<string | number>) => {
|
||||
return request({
|
||||
url: '/fishery/tecentUserCache/' + id,
|
||||
method: 'delete'
|
||||
});
|
||||
};
|
||||
53
src/api/fishery/tecentUserCache/types.ts
Normal file
53
src/api/fishery/tecentUserCache/types.ts
Normal file
@@ -0,0 +1,53 @@
|
||||
export interface TecentUserCacheVO {
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
id: string | number;
|
||||
|
||||
/**
|
||||
* openId
|
||||
*/
|
||||
openId: string | number;
|
||||
|
||||
/**
|
||||
* unionId
|
||||
*/
|
||||
unionId: string | number;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
remark: string;
|
||||
|
||||
}
|
||||
|
||||
export interface TecentUserCacheForm extends BaseEntity {
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
id?: string | number;
|
||||
|
||||
/**
|
||||
* openId
|
||||
*/
|
||||
openId?: string | number;
|
||||
|
||||
/**
|
||||
* unionId
|
||||
*/
|
||||
unionId?: string | number;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
remark?: string;
|
||||
|
||||
}
|
||||
|
||||
export interface TecentUserCacheQuery extends PageQuery {
|
||||
|
||||
/**
|
||||
* 日期范围参数
|
||||
*/
|
||||
params?: any;
|
||||
}
|
||||
3
src/types/components.d.ts
vendored
3
src/types/components.d.ts
vendored
@@ -19,6 +19,7 @@ declare module 'vue' {
|
||||
ElButton: typeof import('element-plus/es')['ElButton']
|
||||
ElCard: typeof import('element-plus/es')['ElCard']
|
||||
ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
|
||||
ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup']
|
||||
ElCol: typeof import('element-plus/es')['ElCol']
|
||||
ElColorPicker: typeof import('element-plus/es')['ElColorPicker']
|
||||
ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
|
||||
@@ -35,6 +36,7 @@ declare module 'vue' {
|
||||
ElForm: typeof import('element-plus/es')['ElForm']
|
||||
ElFormItem: typeof import('element-plus/es')['ElFormItem']
|
||||
ElIcon: typeof import('element-plus/es')['ElIcon']
|
||||
ElImage: typeof import('element-plus/es')['ElImage']
|
||||
ElInput: typeof import('element-plus/es')['ElInput']
|
||||
ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
|
||||
ElLink: typeof import('element-plus/es')['ElLink']
|
||||
@@ -55,6 +57,7 @@ declare module 'vue' {
|
||||
ElTabPane: typeof import('element-plus/es')['ElTabPane']
|
||||
ElTabs: typeof import('element-plus/es')['ElTabs']
|
||||
ElTag: typeof import('element-plus/es')['ElTag']
|
||||
ElText: typeof import('element-plus/es')['ElText']
|
||||
ElTooltip: typeof import('element-plus/es')['ElTooltip']
|
||||
ElTree: typeof import('element-plus/es')['ElTree']
|
||||
ElTreeSelect: typeof import('element-plus/es')['ElTreeSelect']
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
<el-table-column label="区县" align="center" prop="district" /> -->
|
||||
<!-- <el-table-column label="展示标题" align="center" prop="title" /> -->
|
||||
<el-table-column label="创建时间" align="center" prop="createTime" />
|
||||
<el-table-column label="修改时间" align="center" prop="updateTime" />
|
||||
<el-table-column label="更新时间" align="center" prop="updateTime" />
|
||||
<el-table-column label="操作" align="center" fixed="right" width="240" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-tooltip content="子账号" placement="top">
|
||||
|
||||
@@ -86,10 +86,10 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备编号" prop="serialNum">
|
||||
<el-input
|
||||
:value="selectedDevice ? `${selectedDevice.serialNum} (${selectedDevice.deviceName})` : ''"
|
||||
placeholder="请选择设备"
|
||||
readonly
|
||||
<el-input
|
||||
:value="selectedDevice ? `${selectedDevice.serialNum} (${selectedDevice.deviceName})` : ''"
|
||||
placeholder="请选择设备"
|
||||
readonly
|
||||
@click="openDeviceSelect"
|
||||
style="cursor: pointer;"
|
||||
:disabled="!form.deviceType"
|
||||
@@ -100,10 +100,10 @@
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="用户" prop="userId">
|
||||
<el-input
|
||||
:value="selectedUser ? `${selectedUser.userName} (${selectedUser.mobilePhone})` : ''"
|
||||
placeholder="请选择用户"
|
||||
readonly
|
||||
<el-input
|
||||
:value="selectedUser ? `${selectedUser.userName} (${selectedUser.mobilePhone})` : ''"
|
||||
placeholder="请选择用户"
|
||||
readonly
|
||||
@click="openUserSelect"
|
||||
style="cursor: pointer;"
|
||||
>
|
||||
@@ -122,7 +122,7 @@
|
||||
<el-input v-model="form.valueSaturability" placeholder="请输入饱和度" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
|
||||
<el-input v-model="form.remark" type="textarea" placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
@@ -132,42 +132,42 @@
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
|
||||
|
||||
<!-- 设备选择对话框 -->
|
||||
<el-dialog title="选择设备" v-model="deviceSelectVisible" width="1200px" append-to-body>
|
||||
<!-- 搜索条件 -->
|
||||
<el-form :model="deviceQueryParams" :inline="true" class="mb-4">
|
||||
<el-form-item label="用户信息">
|
||||
<el-input
|
||||
v-model="deviceQueryParams.params.userKeyword"
|
||||
placeholder="请输入用户名或手机号"
|
||||
clearable
|
||||
<el-input
|
||||
v-model="deviceQueryParams.params.userKeyword"
|
||||
placeholder="请输入用户名或手机号"
|
||||
clearable
|
||||
style="width: 200px"
|
||||
@keyup.enter="handleDeviceQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备编号">
|
||||
<el-input
|
||||
v-model="deviceQueryParams.serialNum"
|
||||
placeholder="请输入设备编号"
|
||||
clearable
|
||||
<el-input
|
||||
v-model="deviceQueryParams.serialNum"
|
||||
placeholder="请输入设备编号"
|
||||
clearable
|
||||
style="width: 180px"
|
||||
@keyup.enter="handleDeviceQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备名称">
|
||||
<el-input
|
||||
v-model="deviceQueryParams.deviceName"
|
||||
placeholder="请输入设备名称"
|
||||
clearable
|
||||
<el-input
|
||||
v-model="deviceQueryParams.deviceName"
|
||||
placeholder="请输入设备名称"
|
||||
clearable
|
||||
style="width: 180px"
|
||||
@keyup.enter="handleDeviceQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备类型">
|
||||
<el-select
|
||||
v-model="deviceQueryParams.deviceType"
|
||||
placeholder="请选择设备类型"
|
||||
<el-select
|
||||
v-model="deviceQueryParams.deviceType"
|
||||
placeholder="请选择设备类型"
|
||||
disabled
|
||||
style="width: 150px"
|
||||
>
|
||||
@@ -184,10 +184,10 @@
|
||||
<el-button icon="Refresh" @click="resetDeviceQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
|
||||
<!-- 设备表格 -->
|
||||
<el-table
|
||||
:data="deviceList"
|
||||
<el-table
|
||||
:data="deviceList"
|
||||
highlight-current-row
|
||||
height="400px"
|
||||
border
|
||||
@@ -213,9 +213,9 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" width="100">
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
type="primary"
|
||||
size="small"
|
||||
<el-button
|
||||
type="primary"
|
||||
size="small"
|
||||
@click="handleDeviceSelect(scope.row)"
|
||||
>
|
||||
选择
|
||||
@@ -223,42 +223,42 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
|
||||
<!-- 分页 -->
|
||||
<pagination
|
||||
v-show="deviceTotal > 0"
|
||||
:total="deviceTotal"
|
||||
v-model:page="deviceQueryParams.pageNum"
|
||||
v-model:limit="deviceQueryParams.pageSize"
|
||||
<pagination
|
||||
v-show="deviceTotal > 0"
|
||||
:total="deviceTotal"
|
||||
v-model:page="deviceQueryParams.pageNum"
|
||||
v-model:limit="deviceQueryParams.pageSize"
|
||||
@pagination="handleDevicePaginationChange"
|
||||
class="mt-4"
|
||||
/>
|
||||
|
||||
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button @click="cancelDeviceSelect">取 消</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
|
||||
|
||||
<!-- 用户选择对话框 -->
|
||||
<el-dialog title="选择用户" v-model="userSelectVisible" width="900px" append-to-body>
|
||||
<!-- 搜索条件 -->
|
||||
<el-form :model="userQueryParams" :inline="true" class="mb-4">
|
||||
<el-form-item label="用户名">
|
||||
<el-input
|
||||
v-model="userQueryParams.userName"
|
||||
placeholder="请输入用户名"
|
||||
clearable
|
||||
<el-input
|
||||
v-model="userQueryParams.userName"
|
||||
placeholder="请输入用户名"
|
||||
clearable
|
||||
style="width: 180px"
|
||||
@keyup.enter="handleUserQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="手机号">
|
||||
<el-input
|
||||
v-model="userQueryParams.mobilePhone"
|
||||
placeholder="请输入手机号"
|
||||
clearable
|
||||
<el-input
|
||||
v-model="userQueryParams.mobilePhone"
|
||||
placeholder="请输入手机号"
|
||||
clearable
|
||||
style="width: 180px"
|
||||
@keyup.enter="handleUserQuery"
|
||||
/>
|
||||
@@ -268,10 +268,10 @@
|
||||
<el-button icon="Refresh" @click="resetUserQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
|
||||
<!-- 用户表格 -->
|
||||
<el-table
|
||||
:data="aquUserList"
|
||||
<el-table
|
||||
:data="aquUserList"
|
||||
highlight-current-row
|
||||
height="400px"
|
||||
border
|
||||
@@ -283,9 +283,9 @@
|
||||
<el-table-column label="区县" align="center" prop="district" />
|
||||
<el-table-column label="操作" align="center" width="100">
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
type="primary"
|
||||
size="small"
|
||||
<el-button
|
||||
type="primary"
|
||||
size="small"
|
||||
@click="handleUserSelect(scope.row)"
|
||||
>
|
||||
选择
|
||||
@@ -293,17 +293,17 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
|
||||
<!-- 分页 -->
|
||||
<pagination
|
||||
v-show="userTotal > 0"
|
||||
:total="userTotal"
|
||||
v-model:page="userQueryParams.pageNum"
|
||||
v-model:limit="userQueryParams.pageSize"
|
||||
<pagination
|
||||
v-show="userTotal > 0"
|
||||
:total="userTotal"
|
||||
v-model:page="userQueryParams.pageNum"
|
||||
v-model:limit="userQueryParams.pageSize"
|
||||
@pagination="handleUserPaginationChange"
|
||||
class="mt-4"
|
||||
/>
|
||||
|
||||
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button @click="cancelUserSelect">取 消</el-button>
|
||||
@@ -636,7 +636,7 @@ const handleUpdate = async (row?: DeviceCorrectRecordVO) => {
|
||||
const _id = row?.id || ids.value[0]
|
||||
const res = await getDeviceCorrectRecord(_id);
|
||||
Object.assign(form.value, res.data);
|
||||
|
||||
|
||||
// 回显用户信息
|
||||
if (form.value.userId) {
|
||||
try {
|
||||
@@ -657,7 +657,7 @@ const handleUpdate = async (row?: DeviceCorrectRecordVO) => {
|
||||
} else {
|
||||
selectedUser.value = null;
|
||||
}
|
||||
|
||||
|
||||
// 回显设备信息
|
||||
if (form.value.serialNum) {
|
||||
try {
|
||||
@@ -680,7 +680,7 @@ const handleUpdate = async (row?: DeviceCorrectRecordVO) => {
|
||||
} else {
|
||||
selectedDevice.value = null;
|
||||
}
|
||||
|
||||
|
||||
dialog.visible = true;
|
||||
dialog.title = "修改设备校准记录";
|
||||
}
|
||||
|
||||
@@ -72,10 +72,10 @@
|
||||
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
|
||||
<el-form ref="deviceErrorCodeFormRef" :model="form" :rules="rules" label-width="100px">
|
||||
<el-form-item label="设备" prop="deviceId">
|
||||
<el-input
|
||||
:value="selectedDevice ? `${selectedDevice.serialNum} (${selectedDevice.deviceName})` : ''"
|
||||
placeholder="请选择设备"
|
||||
readonly
|
||||
<el-input
|
||||
:value="selectedDevice ? `${selectedDevice.serialNum} (${selectedDevice.deviceName})` : ''"
|
||||
placeholder="请选择设备"
|
||||
readonly
|
||||
@click="openDeviceSelect"
|
||||
style="cursor: pointer;"
|
||||
>
|
||||
@@ -87,10 +87,10 @@
|
||||
<el-form-item label="开关序号" prop="switchIndex">
|
||||
<el-select v-model="form.switchIndex" placeholder="请选择开关序号" clearable :disabled="!form.deviceId">
|
||||
<el-option label="设备自身" :value="0" />
|
||||
<el-option
|
||||
v-for="switchItem in deviceSwitchList"
|
||||
:key="switchItem.index"
|
||||
:label="`${switchItem.index} - ${switchItem.switchName}`"
|
||||
<el-option
|
||||
v-for="switchItem in deviceSwitchList"
|
||||
:key="switchItem.index"
|
||||
:label="`${switchItem.index} - ${switchItem.switchName}`"
|
||||
:value="switchItem.index"
|
||||
/>
|
||||
</el-select>
|
||||
@@ -99,7 +99,7 @@
|
||||
<el-input v-model="form.errorCode" placeholder="请输入故障码" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
|
||||
<el-input v-model="form.remark" type="textarea" placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
@@ -109,42 +109,42 @@
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
|
||||
|
||||
<!-- 设备选择对话框 -->
|
||||
<el-dialog title="选择设备" v-model="deviceSelectVisible" width="1200px" append-to-body>
|
||||
<!-- 搜索条件 -->
|
||||
<el-form :model="deviceQueryParams" :inline="true" class="mb-4">
|
||||
<el-form-item label="用户信息">
|
||||
<el-input
|
||||
v-model="deviceQueryParams.params.userKeyword"
|
||||
placeholder="请输入用户名或手机号"
|
||||
clearable
|
||||
<el-input
|
||||
v-model="deviceQueryParams.params.userKeyword"
|
||||
placeholder="请输入用户名或手机号"
|
||||
clearable
|
||||
style="width: 200px"
|
||||
@keyup.enter="handleDeviceQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备编号">
|
||||
<el-input
|
||||
v-model="deviceQueryParams.serialNum"
|
||||
placeholder="请输入设备编号"
|
||||
clearable
|
||||
<el-input
|
||||
v-model="deviceQueryParams.serialNum"
|
||||
placeholder="请输入设备编号"
|
||||
clearable
|
||||
style="width: 180px"
|
||||
@keyup.enter="handleDeviceQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="设备名称">
|
||||
<el-input
|
||||
v-model="deviceQueryParams.deviceName"
|
||||
placeholder="请输入设备名称"
|
||||
clearable
|
||||
<el-input
|
||||
v-model="deviceQueryParams.deviceName"
|
||||
placeholder="请输入设备名称"
|
||||
clearable
|
||||
style="width: 180px"
|
||||
@keyup.enter="handleDeviceQuery"
|
||||
/>
|
||||
</el-form-item> -->
|
||||
<el-form-item label="设备类型">
|
||||
<el-select
|
||||
v-model="deviceQueryParams.deviceType"
|
||||
placeholder="请选择设备类型"
|
||||
<el-select
|
||||
v-model="deviceQueryParams.deviceType"
|
||||
placeholder="请选择设备类型"
|
||||
clearable
|
||||
style="width: 150px"
|
||||
>
|
||||
@@ -161,10 +161,10 @@
|
||||
<el-button icon="Refresh" @click="resetDeviceQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
|
||||
<!-- 设备表格 -->
|
||||
<el-table
|
||||
:data="deviceList"
|
||||
<el-table
|
||||
:data="deviceList"
|
||||
highlight-current-row
|
||||
height="400px"
|
||||
border
|
||||
@@ -190,9 +190,9 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" width="100">
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
type="primary"
|
||||
size="small"
|
||||
<el-button
|
||||
type="primary"
|
||||
size="small"
|
||||
@click="handleDeviceSelect(scope.row)"
|
||||
>
|
||||
选择
|
||||
@@ -200,17 +200,17 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
|
||||
<!-- 分页 -->
|
||||
<pagination
|
||||
v-show="deviceTotal > 0"
|
||||
:total="deviceTotal"
|
||||
v-model:page="deviceQueryParams.pageNum"
|
||||
v-model:limit="deviceQueryParams.pageSize"
|
||||
<pagination
|
||||
v-show="deviceTotal > 0"
|
||||
:total="deviceTotal"
|
||||
v-model:page="deviceQueryParams.pageNum"
|
||||
v-model:limit="deviceQueryParams.pageSize"
|
||||
@pagination="handleDevicePaginationChange"
|
||||
class="mt-4"
|
||||
/>
|
||||
|
||||
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button @click="cancelDeviceSelect">取 消</el-button>
|
||||
@@ -446,7 +446,7 @@ const handleUpdate = async (row?: DeviceErrorCodeVO) => {
|
||||
const _id = row?.id || ids.value[0]
|
||||
const res = await getDeviceErrorCode(_id);
|
||||
Object.assign(form.value, res.data);
|
||||
|
||||
|
||||
// 回显设备信息
|
||||
if (form.value.deviceId) {
|
||||
try {
|
||||
@@ -472,7 +472,7 @@ const handleUpdate = async (row?: DeviceErrorCodeVO) => {
|
||||
selectedDevice.value = null;
|
||||
deviceSwitchList.value = [];
|
||||
}
|
||||
|
||||
|
||||
dialog.visible = true;
|
||||
dialog.title = "修改设备故障码";
|
||||
}
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="额定电流设置" align="center" prop="rateElectricValue" />
|
||||
|
||||
|
||||
<el-table-column label="电流告警开关" align="center" prop="electricWarnOpen">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="open_close" :value="scope.row.electricWarnOpen"/>
|
||||
@@ -75,7 +75,7 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="上次操作开关时间" align="center" prop="lastTurnTime" width="160"> </el-table-column>
|
||||
<el-table-column label="定时控制数量" align="center" prop="timingCtrlCount" width="110"/>
|
||||
|
||||
|
||||
<el-table-column label="操作" align="center" fixed="right" width="160" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-tooltip content="定时控制" placement="top">
|
||||
@@ -97,10 +97,10 @@
|
||||
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
|
||||
<el-form ref="deviceSwitchFormRef" :model="form" :rules="rules" label-width="120px">
|
||||
<el-form-item label="设备" prop="deviceId">
|
||||
<el-input
|
||||
:value="selectedDevice ? `${selectedDevice.deviceName} (${selectedDevice.serialNum})` : ''"
|
||||
placeholder="请选择设备"
|
||||
readonly
|
||||
<el-input
|
||||
:value="selectedDevice ? `${selectedDevice.deviceName} (${selectedDevice.serialNum})` : ''"
|
||||
placeholder="请选择设备"
|
||||
readonly
|
||||
@click="openDeviceSelect"
|
||||
style="cursor: pointer;"
|
||||
>
|
||||
@@ -127,10 +127,10 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="塘口" prop="pondId">
|
||||
<el-input
|
||||
:value="selectedPondName"
|
||||
placeholder="请选择设备(塘口将自动关联)"
|
||||
readonly
|
||||
<el-input
|
||||
:value="selectedPondName"
|
||||
placeholder="请选择设备(塘口将自动关联)"
|
||||
readonly
|
||||
disabled
|
||||
/>
|
||||
</el-form-item>
|
||||
@@ -148,7 +148,7 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
|
||||
<el-input v-model="form.remark" type="textarea" placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
@@ -158,42 +158,42 @@
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
|
||||
|
||||
<!-- 设备选择对话框 -->
|
||||
<el-dialog title="选择设备" v-model="deviceSelectVisible" width="1200px" append-to-body>
|
||||
<!-- 搜索条件 -->
|
||||
<el-form :model="deviceQueryParams" :inline="true" class="mb-4">
|
||||
<el-form-item label="用户信息">
|
||||
<el-input
|
||||
v-model="deviceQueryParams.params.userKeyword"
|
||||
placeholder="请输入用户名或手机号"
|
||||
clearable
|
||||
<el-input
|
||||
v-model="deviceQueryParams.params.userKeyword"
|
||||
placeholder="请输入用户名或手机号"
|
||||
clearable
|
||||
style="width: 200px"
|
||||
@keyup.enter="handleDeviceQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备编号">
|
||||
<el-input
|
||||
v-model="deviceQueryParams.serialNum"
|
||||
placeholder="请输入设备编号"
|
||||
clearable
|
||||
<el-input
|
||||
v-model="deviceQueryParams.serialNum"
|
||||
placeholder="请输入设备编号"
|
||||
clearable
|
||||
style="width: 180px"
|
||||
@keyup.enter="handleDeviceQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备名称">
|
||||
<el-input
|
||||
v-model="deviceQueryParams.deviceName"
|
||||
placeholder="请输入设备名称"
|
||||
clearable
|
||||
<el-input
|
||||
v-model="deviceQueryParams.deviceName"
|
||||
placeholder="请输入设备名称"
|
||||
clearable
|
||||
style="width: 180px"
|
||||
@keyup.enter="handleDeviceQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备类型">
|
||||
<el-select
|
||||
v-model="deviceQueryParams.deviceType"
|
||||
placeholder="请选择设备类型"
|
||||
<el-select
|
||||
v-model="deviceQueryParams.deviceType"
|
||||
placeholder="请选择设备类型"
|
||||
disabled
|
||||
style="width: 150px"
|
||||
>
|
||||
@@ -210,10 +210,10 @@
|
||||
<el-button icon="Refresh" @click="resetDeviceQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
|
||||
<!-- 设备表格 -->
|
||||
<el-table
|
||||
:data="deviceList"
|
||||
<el-table
|
||||
:data="deviceList"
|
||||
highlight-current-row
|
||||
height="400px"
|
||||
border
|
||||
@@ -240,9 +240,9 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" width="100">
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
type="primary"
|
||||
size="small"
|
||||
<el-button
|
||||
type="primary"
|
||||
size="small"
|
||||
@click="handleDeviceSelect(scope.row)"
|
||||
>
|
||||
选择
|
||||
@@ -250,17 +250,17 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
|
||||
<!-- 分页 -->
|
||||
<pagination
|
||||
v-show="deviceTotal > 0"
|
||||
:total="deviceTotal"
|
||||
v-model:page="deviceQueryParams.pageNum"
|
||||
v-model:limit="deviceQueryParams.pageSize"
|
||||
<pagination
|
||||
v-show="deviceTotal > 0"
|
||||
:total="deviceTotal"
|
||||
v-model:page="deviceQueryParams.pageNum"
|
||||
v-model:limit="deviceQueryParams.pageSize"
|
||||
@pagination="handleDevicePaginationChange"
|
||||
class="mt-4"
|
||||
/>
|
||||
|
||||
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button @click="cancelDeviceSelect">取 消</el-button>
|
||||
@@ -268,16 +268,16 @@
|
||||
</template>
|
||||
</el-dialog>
|
||||
<!-- 定时控制对话框 -->
|
||||
<el-dialog
|
||||
:title="`定时控制 - ${currentSwitch?.switchName || ''} (序号:${currentSwitch?.index || ''})`"
|
||||
v-model="timingCtrlDialogVisible"
|
||||
width="800px"
|
||||
<el-dialog
|
||||
:title="`定时控制 - ${currentSwitch?.switchName || ''} (序号:${currentSwitch?.index || ''})`"
|
||||
v-model="timingCtrlDialogVisible"
|
||||
width="800px"
|
||||
append-to-body
|
||||
@close="closeTimingCtrlDialog"
|
||||
>
|
||||
<el-table
|
||||
v-loading="timingCtrlLoading"
|
||||
:data="timingCtrlList"
|
||||
<el-table
|
||||
v-loading="timingCtrlLoading"
|
||||
:data="timingCtrlList"
|
||||
border
|
||||
height="400px"
|
||||
>
|
||||
@@ -294,7 +294,7 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button @click="closeTimingCtrlDialog">关 闭</el-button>
|
||||
@@ -480,7 +480,7 @@ const handleUpdate = async (row?: DeviceSwitchVO) => {
|
||||
const _id = row?.id || ids.value[0]
|
||||
const res = await getDeviceSwitch(_id);
|
||||
Object.assign(form.value, res.data);
|
||||
|
||||
|
||||
// 回显设备信息
|
||||
if (form.value.deviceId) {
|
||||
try {
|
||||
@@ -510,7 +510,7 @@ const handleUpdate = async (row?: DeviceSwitchVO) => {
|
||||
selectedDevice.value = null;
|
||||
selectedPondName.value = '';
|
||||
}
|
||||
|
||||
|
||||
dialog.visible = true;
|
||||
dialog.title = "修改测控一体机开关";
|
||||
}
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
<el-table-column label="最大值" align="center" prop="limitUpper" />
|
||||
<el-table-column label="最小值" align="center" prop="limitLower" />
|
||||
<el-table-column label="创建时间" align="center" prop="createTime" />
|
||||
<el-table-column label="修改时间" align="center" prop="updateTime" />
|
||||
<el-table-column label="更新时间" align="center" prop="updateTime" />
|
||||
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-tooltip content="修改" placement="top">
|
||||
|
||||
521
src/views/fishery/deviceWarnCombine/index.vue
Normal file
521
src/views/fishery/deviceWarnCombine/index.vue
Normal file
@@ -0,0 +1,521 @@
|
||||
<template>
|
||||
<div class="p-2">
|
||||
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
|
||||
<div v-show="showSearch" class="mb-[10px]">
|
||||
<el-card shadow="hover">
|
||||
<el-form ref="queryFormRef" :model="queryParams" :inline="true">
|
||||
<el-form-item label="设备编号" prop="deviceSerialNum">
|
||||
<el-input v-model="queryParams.deviceSerialNum" placeholder="请输入设备编号" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="设备类型" prop="deviceType">
|
||||
<el-select v-model="queryParams.deviceType" placeholder="请选择设备类型" clearable >
|
||||
<el-option v-for="dict in aqu_device_type" :key="dict.value" :label="dict.label" :value="dict.value"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="参数类型" prop="thresholdType">
|
||||
<el-select v-model="queryParams.thresholdType" placeholder="请选择参数类型" clearable >
|
||||
<el-option v-for="dict in threshold_type" :key="dict.value" :label="dict.label" :value="dict.value"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="进展状态" prop="processStatus">
|
||||
<el-select v-model="queryParams.processStatus" placeholder="请选择进展状态" clearable >
|
||||
<el-option v-for="dict in process_status" :key="dict.value" :label="dict.label" :value="dict.value"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="故障类型" prop="warnType">
|
||||
<el-select v-model="queryParams.warnType" placeholder="请选择故障类型" clearable >
|
||||
<el-option v-for="dict in risk_type" :key="dict.value" :label="dict.label" :value="dict.value"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
</div>
|
||||
</transition>
|
||||
|
||||
<el-card shadow="never">
|
||||
<template #header>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<!-- <el-col :span="1.5">-->
|
||||
<!-- <el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['fishery:deviceWarnCombine:add']">新增</el-button>-->
|
||||
<!-- </el-col>-->
|
||||
<!-- <el-col :span="1.5">-->
|
||||
<!-- <el-button type="success" plain icon="Edit" :disabled="single" @click="handleProcess()" v-hasPermi="['fishery:deviceWarnCombine:edit']">处理</el-button>-->
|
||||
<!-- </el-col>-->
|
||||
<el-col :span="1.5">
|
||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['fishery:deviceWarnCombine:remove']">删除</el-button>
|
||||
</el-col>
|
||||
<!-- <el-col :span="1.5">-->
|
||||
<!-- <el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['fishery:deviceWarnCombine:export']">导出</el-button>-->
|
||||
<!-- </el-col>-->
|
||||
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
</template>
|
||||
|
||||
<el-table v-loading="loading" border :data="deviceWarnCombineList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="设备编号" align="center" prop="deviceSerialNum" />
|
||||
<el-table-column label="设备类型" align="center" prop="deviceType">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="aqu_device_type" :value="scope.row.deviceType"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="参数类型" align="center" prop="thresholdType">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="threshold_type" :value="scope.row.thresholdType"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="进展状态" align="center" prop="processStatus">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="process_status" :value="scope.row.processStatus"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="故障类型" align="center" prop="warnType">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="risk_type" :value="scope.row.warnType"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="告警总数量" align="center" prop="totalCount" />
|
||||
<el-table-column label="处理人" align="center" prop="handlerName" />
|
||||
<el-table-column label="处理时间" align="center" prop="processTime" width="160">
|
||||
</el-table-column>
|
||||
<el-table-column label="更新时间" align="center" prop="updateTime" width="160">
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" fixed="right" width="150" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-tooltip content="报警明细" placement="top">
|
||||
<el-button link type="primary" icon="Document" @click="handleViewDetails(scope.row)" v-hasPermi="['fishery:deviceWarnOne:list']"></el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip content="批量处理" placement="top">
|
||||
<el-button link type="primary" icon="Edit" @click="handleProcess(scope.row)" v-hasPermi="['fishery:deviceWarnCombine:edit']"></el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip content="删除" placement="top">
|
||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['fishery:deviceWarnCombine:remove']"></el-button>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
|
||||
</el-card>
|
||||
<!-- 添加或修改设备告警信息对话框 -->
|
||||
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
|
||||
<el-form ref="deviceWarnCombineFormRef" :model="form" :rules="rules" label-width="100px">
|
||||
<el-form-item label="进展状态" prop="processStatus">
|
||||
<el-select v-model="form.processStatus" placeholder="请选择进展状态">
|
||||
<el-option
|
||||
v-for="dict in process_status"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="parseInt(dict.value)"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="故障类型" prop="warnType">
|
||||
<el-select v-model="form.warnType" placeholder="请选择故障类型">
|
||||
<el-option
|
||||
v-for="dict in risk_type"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="parseInt(dict.value)"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remarkContent">
|
||||
<el-input v-model="form.remarkContent" type="textarea" placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 报警明细对话框 -->
|
||||
<el-dialog title="报警明细" v-model="detailDialog.visible" width="1200px" append-to-body>
|
||||
<el-table v-loading="detailDialog.loading" border :data="detailList" max-height="500">
|
||||
<el-table-column label="设备编号" align="center" prop="deviceSerialNum" width="150"/>
|
||||
<el-table-column label="设备类型" align="center" prop="deviceType" width="100">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="aqu_device_type" :value="scope.row.deviceType"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="参数类型" align="center" prop="thresholdType">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="threshold_type" :value="scope.row.thresholdType"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="告警最大值" align="center" prop="limitUpper" />
|
||||
<el-table-column label="告警最小值" align="center" prop="limitLower" />
|
||||
<el-table-column label="告警当前值" align="center" prop="curValue" />
|
||||
<el-table-column label="进展状态" align="center" prop="processStatus">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="process_status" :value="scope.row.processStatus"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="故障类型" align="center" prop="warnType">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="risk_type" :value="scope.row.warnType"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="处理人" align="center" prop="handlerName" />
|
||||
<el-table-column label="处理时间" align="center" prop="processTime" width="160" />
|
||||
<el-table-column label="操作" align="center" fixed="right" width="60">
|
||||
<template #default="scope">
|
||||
<el-tooltip content="处理" placement="top">
|
||||
<el-button link type="primary" icon="Edit" @click="handleProcessDetail(scope.row)" v-hasPermi="['fishery:deviceWarnOne:edit']"></el-button>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="detailTotal > 0"
|
||||
:total="detailTotal"
|
||||
v-model:page="detailQueryParams.pageNum"
|
||||
v-model:limit="detailQueryParams.pageSize"
|
||||
@pagination="getDetailList"
|
||||
/>
|
||||
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button @click="detailDialog.visible = false">关 闭</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 明细处理对话框 -->
|
||||
<el-dialog :title="detailProcessDialog.title" v-model="detailProcessDialog.visible" width="500px" append-to-body>
|
||||
<el-form ref="detailFormRef" :model="detailForm" :rules="detailRules" label-width="100px">
|
||||
<el-form-item label="进展状态" prop="processStatus">
|
||||
<el-select v-model="detailForm.processStatus" placeholder="请选择进展状态">
|
||||
<el-option
|
||||
v-for="dict in process_status"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="parseInt(dict.value)"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="故障类型" prop="warnType">
|
||||
<el-select v-model="detailForm.warnType" placeholder="请选择故障类型">
|
||||
<el-option
|
||||
v-for="dict in risk_type"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="parseInt(dict.value)"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="detailForm.remark" type="textarea" placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button :loading="detailButtonLoading" type="primary" @click="submitDetailForm">确 定</el-button>
|
||||
<el-button @click="cancelDetailProcess">取 消</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="DeviceWarnCombine" lang="ts">
|
||||
import { listDeviceWarnCombine, getDeviceWarnCombine, delDeviceWarnCombine, addDeviceWarnCombine, updateDeviceWarnCombine } from '@/api/fishery/deviceWarnCombine';
|
||||
import { DeviceWarnCombineVO, DeviceWarnCombineQuery, DeviceWarnCombineForm } from '@/api/fishery/deviceWarnCombine/types';
|
||||
import { listDeviceWarnOne, getDeviceWarnOne, updateDeviceWarnOne } from '@/api/fishery/deviceWarnOne';
|
||||
import { DeviceWarnOneVO, DeviceWarnOneForm } from '@/api/fishery/deviceWarnOne/types';
|
||||
import { useUserStore } from '@/store/modules/user';
|
||||
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
const userStore = useUserStore();
|
||||
const { threshold_type, process_status, risk_type, aqu_device_type } = toRefs<any>(proxy?.useDict('threshold_type', 'process_status', 'risk_type', 'aqu_device_type'));
|
||||
|
||||
const deviceWarnCombineList = ref<DeviceWarnCombineVO[]>([]);
|
||||
const buttonLoading = ref(false);
|
||||
const loading = ref(true);
|
||||
const showSearch = ref(true);
|
||||
const ids = ref<Array<string | number>>([]);
|
||||
const single = ref(true);
|
||||
const multiple = ref(true);
|
||||
const total = ref(0);
|
||||
|
||||
const queryFormRef = ref<ElFormInstance>();
|
||||
const deviceWarnCombineFormRef = ref<ElFormInstance>();
|
||||
|
||||
const dialog = reactive<DialogOption>({
|
||||
visible: false,
|
||||
title: ''
|
||||
});
|
||||
|
||||
const detailDialog = reactive({
|
||||
visible: false,
|
||||
loading: false
|
||||
});
|
||||
|
||||
const detailList = ref<DeviceWarnOneVO[]>([]);
|
||||
const detailTotal = ref(0);
|
||||
const detailQueryParams = reactive({
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
warnCombineId: undefined as string | number | undefined
|
||||
});
|
||||
|
||||
// 明细处理对话框
|
||||
const detailProcessDialog = reactive<DialogOption>({
|
||||
visible: false,
|
||||
title: ''
|
||||
});
|
||||
|
||||
const detailFormRef = ref<ElFormInstance>();
|
||||
const detailButtonLoading = ref(false);
|
||||
|
||||
const initDetailFormData: DeviceWarnOneForm = {
|
||||
id: undefined,
|
||||
processStatus: undefined,
|
||||
warnType: undefined,
|
||||
remark: undefined
|
||||
}
|
||||
|
||||
const detailForm = ref<DeviceWarnOneForm>({...initDetailFormData});
|
||||
|
||||
const detailRules = ref({
|
||||
processStatus: [
|
||||
{ required: true, message: "进展状态不能为空", trigger: "change" }
|
||||
],
|
||||
warnType: [
|
||||
{ required: true, message: "故障类型不能为空", trigger: "change" }
|
||||
]
|
||||
});
|
||||
|
||||
const initFormData: DeviceWarnCombineForm = {
|
||||
id: undefined,
|
||||
deviceSerialNum: undefined,
|
||||
deviceType: undefined,
|
||||
thresholdType: undefined,
|
||||
processStatus: undefined,
|
||||
warnType: undefined,
|
||||
totalCount: undefined,
|
||||
remarkContent: undefined,
|
||||
handlerName: undefined,
|
||||
processTime: undefined,
|
||||
remark: undefined
|
||||
}
|
||||
const data = reactive<PageData<DeviceWarnCombineForm, DeviceWarnCombineQuery>>({
|
||||
form: {...initFormData},
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
deviceSerialNum: undefined,
|
||||
deviceType: undefined,
|
||||
thresholdType: undefined,
|
||||
processStatus: undefined,
|
||||
warnType: undefined,
|
||||
params: {
|
||||
}
|
||||
},
|
||||
rules: {
|
||||
deviceSerialNum: [
|
||||
{ required: true, message: "设备编号不能为空", trigger: "blur" }
|
||||
],
|
||||
deviceType: [
|
||||
{ required: true, message: "设备类型不能为空", trigger: "change" }
|
||||
],
|
||||
thresholdType: [
|
||||
{ required: true, message: "参数类型不能为空", trigger: "change" }
|
||||
],
|
||||
processStatus: [
|
||||
{ required: true, message: "进展状态不能为空", trigger: "change" }
|
||||
],
|
||||
warnType: [
|
||||
{ required: true, message: "故障类型不能为空", trigger: "change" }
|
||||
]
|
||||
}
|
||||
});
|
||||
|
||||
const { queryParams, form, rules } = toRefs(data);
|
||||
|
||||
/** 查询设备告警信息列表 */
|
||||
const getList = async () => {
|
||||
loading.value = true;
|
||||
const res = await listDeviceWarnCombine(queryParams.value);
|
||||
deviceWarnCombineList.value = res.rows;
|
||||
total.value = res.total;
|
||||
loading.value = false;
|
||||
}
|
||||
|
||||
/** 取消按钮 */
|
||||
const cancel = () => {
|
||||
reset();
|
||||
dialog.visible = false;
|
||||
}
|
||||
|
||||
/** 表单重置 */
|
||||
const reset = () => {
|
||||
form.value = {...initFormData};
|
||||
deviceWarnCombineFormRef.value?.resetFields();
|
||||
}
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
const handleQuery = () => {
|
||||
queryParams.value.pageNum = 1;
|
||||
getList();
|
||||
}
|
||||
|
||||
/** 重置按钮操作 */
|
||||
const resetQuery = () => {
|
||||
queryFormRef.value?.resetFields();
|
||||
handleQuery();
|
||||
}
|
||||
|
||||
/** 多选框选中数据 */
|
||||
const handleSelectionChange = (selection: DeviceWarnCombineVO[]) => {
|
||||
ids.value = selection.map(item => item.id);
|
||||
single.value = selection.length != 1;
|
||||
multiple.value = !selection.length;
|
||||
}
|
||||
|
||||
/** 新增按钮操作 */
|
||||
const handleAdd = () => {
|
||||
reset();
|
||||
dialog.visible = true;
|
||||
dialog.title = "添加设备告警信息";
|
||||
}
|
||||
|
||||
/** 修改按钮操作 */
|
||||
const handleUpdate = async (row?: DeviceWarnCombineVO) => {
|
||||
reset();
|
||||
const _id = row?.id || ids.value[0]
|
||||
const res = await getDeviceWarnCombine(_id);
|
||||
Object.assign(form.value, res.data);
|
||||
dialog.visible = true;
|
||||
dialog.title = "修改设备告警信息";
|
||||
}
|
||||
|
||||
/** 处理按钮操作 */
|
||||
const handleProcess = async (row?: DeviceWarnCombineVO) => {
|
||||
reset();
|
||||
const _id = row?.id || ids.value[0]
|
||||
const res = await getDeviceWarnCombine(_id);
|
||||
Object.assign(form.value, res.data);
|
||||
dialog.visible = true;
|
||||
dialog.title = "处理设备报警信息";
|
||||
}
|
||||
|
||||
/** 查看报警明细 */
|
||||
const handleViewDetails = async (row: DeviceWarnCombineVO) => {
|
||||
detailQueryParams.warnCombineId = row.id;
|
||||
detailQueryParams.pageNum = 1;
|
||||
detailDialog.visible = true;
|
||||
await getDetailList();
|
||||
}
|
||||
|
||||
/** 获取明细列表 */
|
||||
const getDetailList = async () => {
|
||||
detailDialog.loading = true;
|
||||
try {
|
||||
const res = await listDeviceWarnOne(detailQueryParams);
|
||||
detailList.value = res.rows;
|
||||
detailTotal.value = res.total;
|
||||
} finally {
|
||||
detailDialog.loading = false;
|
||||
}
|
||||
}
|
||||
|
||||
/** 处理明细按钮操作 */
|
||||
const handleProcessDetail = async (row: DeviceWarnOneVO) => {
|
||||
detailForm.value = {...initDetailFormData};
|
||||
const res = await getDeviceWarnOne(row.id);
|
||||
Object.assign(detailForm.value, res.data);
|
||||
detailProcessDialog.visible = true;
|
||||
detailProcessDialog.title = "处理报警明细";
|
||||
}
|
||||
|
||||
/** 取消明细处理 */
|
||||
const cancelDetailProcess = () => {
|
||||
detailForm.value = {...initDetailFormData};
|
||||
detailFormRef.value?.resetFields();
|
||||
detailProcessDialog.visible = false;
|
||||
}
|
||||
|
||||
/** 提交明细处理 */
|
||||
const submitDetailForm = () => {
|
||||
detailFormRef.value?.validate(async (valid: boolean) => {
|
||||
if (valid) {
|
||||
try {
|
||||
await proxy?.$modal.confirm('确认要处理此报警明细吗?');
|
||||
} catch {
|
||||
return;
|
||||
}
|
||||
|
||||
detailButtonLoading.value = true;
|
||||
try {
|
||||
// 设置处理人和处理时间
|
||||
detailForm.value.handlerName = userStore.nickname;
|
||||
detailForm.value.processTime = new Date().toISOString().slice(0, 19).replace('T', ' ');
|
||||
await updateDeviceWarnOne(detailForm.value);
|
||||
proxy?.$modal.msgSuccess("处理成功");
|
||||
detailProcessDialog.visible = false;
|
||||
await getDetailList(); // 刷新明细列表
|
||||
} finally {
|
||||
detailButtonLoading.value = false;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/** 提交按钮 */
|
||||
const submitForm = () => {
|
||||
deviceWarnCombineFormRef.value?.validate(async (valid: boolean) => {
|
||||
if (valid) {
|
||||
// 如果是处理操作,给出二次确认提示
|
||||
if (form.value.id) {
|
||||
try {
|
||||
await proxy?.$modal.confirm('是否确认批量处理该报警下的所有明细数据?');
|
||||
} catch {
|
||||
return; // 用户取消操作
|
||||
}
|
||||
}
|
||||
|
||||
buttonLoading.value = true;
|
||||
if (form.value.id) {
|
||||
// 设置处理人和处理时间
|
||||
form.value.handlerName = userStore.nickname;
|
||||
form.value.processTime = new Date().toISOString().slice(0, 19).replace('T', ' ');
|
||||
await updateDeviceWarnCombine(form.value).finally(() => buttonLoading.value = false);
|
||||
} else {
|
||||
await addDeviceWarnCombine(form.value).finally(() => buttonLoading.value = false);
|
||||
}
|
||||
proxy?.$modal.msgSuccess("操作成功");
|
||||
dialog.visible = false;
|
||||
await getList();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/** 删除按钮操作 */
|
||||
const handleDelete = async (row?: DeviceWarnCombineVO) => {
|
||||
const _ids = row?.id || ids.value;
|
||||
await proxy?.$modal.confirm('是否确认删除该设备报警及其所有明细的数据?').finally(() => loading.value = false);
|
||||
await delDeviceWarnCombine(_ids);
|
||||
proxy?.$modal.msgSuccess("删除成功");
|
||||
await getList();
|
||||
}
|
||||
|
||||
/** 导出按钮操作 */
|
||||
const handleExport = () => {
|
||||
proxy?.download('fishery/deviceWarnCombine/export', {
|
||||
...queryParams.value
|
||||
}, `deviceWarnCombine_${new Date().getTime()}.xlsx`)
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
getList();
|
||||
});
|
||||
</script>
|
||||
310
src/views/fishery/deviceWarnOne/index.vue
Normal file
310
src/views/fishery/deviceWarnOne/index.vue
Normal file
@@ -0,0 +1,310 @@
|
||||
<template>
|
||||
<div class="p-2">
|
||||
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
|
||||
<div v-show="showSearch" class="mb-[10px]">
|
||||
<el-card shadow="hover">
|
||||
<el-form ref="queryFormRef" :model="queryParams" :inline="true">
|
||||
|
||||
<el-form-item label="设备编号" prop="params.deviceSerialNum">
|
||||
<el-input v-model="queryParams.params.deviceSerialNum" placeholder="请输入设备编号" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="设备类型" prop="params.deviceType">
|
||||
<el-select v-model="queryParams.params.deviceType" placeholder="请选择设备类型" clearable >
|
||||
<el-option v-for="dict in aqu_device_type" :key="dict.value" :label="dict.label" :value="dict.value"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="参数类型" prop="thresholdType">
|
||||
<el-select v-model="queryParams.params.thresholdType" placeholder="请选择参数类型" clearable >
|
||||
<el-option v-for="dict in threshold_type" :key="dict.value" :label="dict.label" :value="dict.value"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="进展状态" prop="processStatus">
|
||||
<el-select v-model="queryParams.processStatus" placeholder="请选择进展状态" clearable >
|
||||
<el-option v-for="dict in process_status" :key="dict.value" :label="dict.label" :value="dict.value"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="故障类型" prop="warnType">
|
||||
<el-select v-model="queryParams.warnType" placeholder="请选择故障类型" clearable >
|
||||
<el-option v-for="dict in risk_type" :key="dict.value" :label="dict.label" :value="dict.value"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
</div>
|
||||
</transition>
|
||||
|
||||
<el-card shadow="never">
|
||||
<template #header>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['fishery:deviceWarnOne:add']">新增</el-button>
|
||||
</el-col> -->
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleProcess()" v-hasPermi="['fishery:deviceWarnOne:edit']">处理</el-button>
|
||||
</el-col> -->
|
||||
<el-col :span="1.5">
|
||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['fishery:deviceWarnOne:remove']">删除</el-button>
|
||||
</el-col>
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['fishery:deviceWarnOne:export']">导出</el-button>
|
||||
</el-col> -->
|
||||
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
</template>
|
||||
|
||||
<el-table v-loading="loading" border :data="deviceWarnOneList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="设备编号" align="center" prop="deviceSerialNum" width="150"/>
|
||||
<el-table-column label="设备类型" align="center" prop="deviceType">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="aqu_device_type" :value="scope.row.deviceType"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="参数类型" align="center" prop="thresholdType">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="threshold_type" :value="scope.row.thresholdType"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="告警最大值" align="center" prop="limitUpper" />
|
||||
<el-table-column label="告警最小值" align="center" prop="limitLower" />
|
||||
<el-table-column label="告警当前值" align="center" prop="curValue" />
|
||||
<el-table-column label="进展状态" align="center" prop="processStatus">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="process_status" :value="scope.row.processStatus"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="故障类型" align="center" prop="warnType">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="risk_type" :value="scope.row.warnType"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="处理人" align="center" prop="handlerName" />
|
||||
<el-table-column label="处理时间" align="center" prop="processTime" width="160">
|
||||
</el-table-column>
|
||||
<el-table-column label="更新时间" align="center" prop="updateTime" width="160"></el-table-column>
|
||||
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-tooltip content="处理" placement="top">
|
||||
<el-button link type="primary" icon="Edit" @click="handleProcess(scope.row)" v-hasPermi="['fishery:deviceWarnOne:edit']"></el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip content="删除" placement="top">
|
||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['fishery:deviceWarnOne:remove']"></el-button>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
|
||||
</el-card>
|
||||
<!-- 添加或修改设备报警明细对话框 -->
|
||||
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
|
||||
<el-form ref="deviceWarnOneFormRef" :model="form" :rules="rules" label-width="100px">
|
||||
<el-form-item label="进展状态" prop="processStatus">
|
||||
<el-select v-model="form.processStatus" placeholder="请选择进展状态">
|
||||
<el-option
|
||||
v-for="dict in process_status"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="parseInt(dict.value)"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="故障类型" prop="warnType">
|
||||
<el-select v-model="form.warnType" placeholder="请选择故障类型">
|
||||
<el-option
|
||||
v-for="dict in risk_type"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="parseInt(dict.value)"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="form.remark" type="textarea" placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="DeviceWarnOne" lang="ts">
|
||||
import { listDeviceWarnOne, getDeviceWarnOne, delDeviceWarnOne, addDeviceWarnOne, updateDeviceWarnOne } from '@/api/fishery/deviceWarnOne';
|
||||
import { DeviceWarnOneVO, DeviceWarnOneQuery, DeviceWarnOneForm } from '@/api/fishery/deviceWarnOne/types';
|
||||
import { useUserStore } from '@/store/modules/user';
|
||||
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
const userStore = useUserStore();
|
||||
const { threshold_type, process_status, risk_type, aqu_device_type } = toRefs<any>(proxy?.useDict('threshold_type', 'process_status', 'risk_type', 'aqu_device_type'));
|
||||
|
||||
const deviceWarnOneList = ref<DeviceWarnOneVO[]>([]);
|
||||
const buttonLoading = ref(false);
|
||||
const loading = ref(true);
|
||||
const showSearch = ref(true);
|
||||
const ids = ref<Array<string | number>>([]);
|
||||
const single = ref(true);
|
||||
const multiple = ref(true);
|
||||
const total = ref(0);
|
||||
|
||||
const queryFormRef = ref<ElFormInstance>();
|
||||
const deviceWarnOneFormRef = ref<ElFormInstance>();
|
||||
|
||||
const dialog = reactive<DialogOption>({
|
||||
visible: false,
|
||||
title: ''
|
||||
});
|
||||
|
||||
const initFormData: DeviceWarnOneForm = {
|
||||
id: undefined,
|
||||
warnCombineId: undefined,
|
||||
userId: undefined,
|
||||
limitUpper: undefined,
|
||||
limitLower: undefined,
|
||||
curValue: undefined,
|
||||
processStatus: undefined,
|
||||
warnType: undefined,
|
||||
handlerName: undefined,
|
||||
processTime: undefined,
|
||||
remark: undefined
|
||||
}
|
||||
const data = reactive<PageData<DeviceWarnOneForm, DeviceWarnOneQuery>>({
|
||||
form: {...initFormData},
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
warnCombineId: undefined,
|
||||
userId: undefined,
|
||||
processStatus: undefined,
|
||||
warnType: undefined,
|
||||
handlerName: undefined,
|
||||
params: {
|
||||
}
|
||||
},
|
||||
rules: {
|
||||
processStatus: [
|
||||
{ required: true, message: "进展状态不能为空", trigger: "change" }
|
||||
],
|
||||
warnType: [
|
||||
{ required: true, message: "故障类型不能为空", trigger: "change" }
|
||||
]
|
||||
}
|
||||
});
|
||||
|
||||
const { queryParams, form, rules } = toRefs(data);
|
||||
|
||||
/** 查询设备报警明细列表 */
|
||||
const getList = async () => {
|
||||
loading.value = true;
|
||||
const res = await listDeviceWarnOne(queryParams.value);
|
||||
deviceWarnOneList.value = res.rows;
|
||||
total.value = res.total;
|
||||
loading.value = false;
|
||||
}
|
||||
|
||||
/** 取消按钮 */
|
||||
const cancel = () => {
|
||||
reset();
|
||||
dialog.visible = false;
|
||||
}
|
||||
|
||||
/** 表单重置 */
|
||||
const reset = () => {
|
||||
form.value = {...initFormData};
|
||||
deviceWarnOneFormRef.value?.resetFields();
|
||||
}
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
const handleQuery = () => {
|
||||
queryParams.value.pageNum = 1;
|
||||
getList();
|
||||
}
|
||||
|
||||
/** 重置按钮操作 */
|
||||
const resetQuery = () => {
|
||||
queryFormRef.value?.resetFields();
|
||||
handleQuery();
|
||||
}
|
||||
|
||||
/** 多选框选中数据 */
|
||||
const handleSelectionChange = (selection: DeviceWarnOneVO[]) => {
|
||||
ids.value = selection.map(item => item.id);
|
||||
single.value = selection.length != 1;
|
||||
multiple.value = !selection.length;
|
||||
}
|
||||
|
||||
/** 新增按钮操作 */
|
||||
const handleAdd = () => {
|
||||
reset();
|
||||
dialog.visible = true;
|
||||
dialog.title = "添加设备报警明细";
|
||||
}
|
||||
|
||||
/** 修改按钮操作 */
|
||||
const handleUpdate = async (row?: DeviceWarnOneVO) => {
|
||||
reset();
|
||||
const _id = row?.id || ids.value[0]
|
||||
const res = await getDeviceWarnOne(_id);
|
||||
Object.assign(form.value, res.data);
|
||||
dialog.visible = true;
|
||||
dialog.title = "修改设备报警明细";
|
||||
}
|
||||
|
||||
/** 处理按钮操作 */
|
||||
const handleProcess = async (row?: DeviceWarnOneVO) => {
|
||||
reset();
|
||||
const _id = row?.id || ids.value[0]
|
||||
const res = await getDeviceWarnOne(_id);
|
||||
Object.assign(form.value, res.data);
|
||||
dialog.visible = true;
|
||||
dialog.title = "处理设备报警明细";
|
||||
}
|
||||
|
||||
/** 提交按钮 */
|
||||
const submitForm = () => {
|
||||
deviceWarnOneFormRef.value?.validate(async (valid: boolean) => {
|
||||
if (valid) {
|
||||
buttonLoading.value = true;
|
||||
if (form.value.id) {
|
||||
// 设置处理人和处理时间
|
||||
form.value.handlerName = userStore.nickname;
|
||||
form.value.processTime = new Date().toISOString().slice(0, 19).replace('T', ' ');
|
||||
await updateDeviceWarnOne(form.value).finally(() => buttonLoading.value = false);
|
||||
} else {
|
||||
await addDeviceWarnOne(form.value).finally(() => buttonLoading.value = false);
|
||||
}
|
||||
proxy?.$modal.msgSuccess("操作成功");
|
||||
dialog.visible = false;
|
||||
await getList();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/** 删除按钮操作 */
|
||||
const handleDelete = async (row?: DeviceWarnOneVO) => {
|
||||
const _ids = row?.id || ids.value;
|
||||
await proxy?.$modal.confirm('是否确认删除设备报警明细编号为"' + _ids + '"的数据项?').finally(() => loading.value = false);
|
||||
await delDeviceWarnOne(_ids);
|
||||
proxy?.$modal.msgSuccess("删除成功");
|
||||
await getList();
|
||||
}
|
||||
|
||||
/** 导出按钮操作 */
|
||||
const handleExport = () => {
|
||||
proxy?.download('fishery/deviceWarnOne/export', {
|
||||
...queryParams.value
|
||||
}, `deviceWarnOne_${new Date().getTime()}.xlsx`)
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
getList();
|
||||
});
|
||||
</script>
|
||||
@@ -150,7 +150,7 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
|
||||
<el-input v-model="form.remark" type="textarea" placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
|
||||
274
src/views/fishery/messageOpRecord/index.vue
Normal file
274
src/views/fishery/messageOpRecord/index.vue
Normal file
@@ -0,0 +1,274 @@
|
||||
<template>
|
||||
<div class="p-2">
|
||||
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
|
||||
<div v-show="showSearch" class="mb-[10px]">
|
||||
<el-card shadow="hover">
|
||||
<el-form ref="queryFormRef" :model="queryParams" :inline="true">
|
||||
<el-form-item label="用户信息" prop="params.userKeyword">
|
||||
<el-input v-model="queryParams.params.userKeyword" placeholder="请输入用户名或手机号" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="操作标题" prop="title">
|
||||
<el-input v-model="queryParams.title" placeholder="请输入操作标题" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="操作内容" prop="message">
|
||||
<el-input v-model="queryParams.message" placeholder="请输入操作内容" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="操作方式" prop="opType">
|
||||
<el-select v-model="queryParams.opType" placeholder="请选择操作方式" clearable >
|
||||
<el-option v-for="dict in op_type" :key="dict.value" :label="dict.label" :value="dict.value"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
</div>
|
||||
</transition>
|
||||
|
||||
<el-card shadow="never">
|
||||
<template #header>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['fishery:messageOpRecord:add']">新增</el-button>
|
||||
</el-col> -->
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['fishery:messageOpRecord:edit']">修改</el-button>
|
||||
</el-col> -->
|
||||
<el-col :span="1.5">
|
||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['fishery:messageOpRecord:remove']">删除</el-button>
|
||||
</el-col>
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['fishery:messageOpRecord:export']">导出</el-button>
|
||||
</el-col> -->
|
||||
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
</template>
|
||||
|
||||
<el-table v-loading="loading" border :data="messageOpRecordList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="用户名" align="center" prop="userName" fixed="left" width="150"/>
|
||||
<el-table-column label="手机号" align="center" prop="userPhonenumber" fixed="left" width="150"/>
|
||||
<el-table-column label="操作标题" align="center" prop="title" width="150"/>
|
||||
<el-table-column label="操作方式" align="center" prop="opType" width="150">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="op_type" :value="scope.row.opType"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作内容" align="center" prop="message" />
|
||||
<el-table-column label="操作时间" align="center" prop="createTime" width="180"/>
|
||||
<el-table-column label="操作" align="center" fixed="right" width="100" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<!-- <el-tooltip content="修改" placement="top">
|
||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['fishery:messageOpRecord:edit']"></el-button>
|
||||
</el-tooltip> -->
|
||||
<el-tooltip content="删除" placement="top">
|
||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['fishery:messageOpRecord:remove']"></el-button>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
|
||||
</el-card>
|
||||
<!-- 添加或修改用户操作记录对话框 -->
|
||||
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
|
||||
<el-form ref="messageOpRecordFormRef" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="用户id" prop="userId">
|
||||
<el-input v-model="form.userId" placeholder="请输入用户id" />
|
||||
</el-form-item>
|
||||
<el-form-item label="操作用户id" prop="opUserId">
|
||||
<el-input v-model="form.opUserId" placeholder="请输入操作用户id" />
|
||||
</el-form-item>
|
||||
<el-form-item label="操作标题" prop="title">
|
||||
<el-input v-model="form.title" placeholder="请输入操作标题" />
|
||||
</el-form-item>
|
||||
<el-form-item label="操作内容" prop="message">
|
||||
<el-input v-model="form.message" placeholder="请输入操作内容" />
|
||||
</el-form-item>
|
||||
<el-form-item label="操作方式" prop="opType">
|
||||
<el-select v-model="form.opType" placeholder="请选择操作方式">
|
||||
<el-option
|
||||
v-for="dict in op_type"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="parseInt(dict.value)"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="MessageOpRecord" lang="ts">
|
||||
import { listMessageOpRecord, getMessageOpRecord, delMessageOpRecord, addMessageOpRecord, updateMessageOpRecord } from '@/api/fishery/messageOpRecord';
|
||||
import { MessageOpRecordVO, MessageOpRecordQuery, MessageOpRecordForm } from '@/api/fishery/messageOpRecord/types';
|
||||
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
const { op_type } = toRefs<any>(proxy?.useDict('op_type'));
|
||||
|
||||
const messageOpRecordList = ref<MessageOpRecordVO[]>([]);
|
||||
const buttonLoading = ref(false);
|
||||
const loading = ref(true);
|
||||
const showSearch = ref(true);
|
||||
const ids = ref<Array<string | number>>([]);
|
||||
const single = ref(true);
|
||||
const multiple = ref(true);
|
||||
const total = ref(0);
|
||||
|
||||
const queryFormRef = ref<ElFormInstance>();
|
||||
const messageOpRecordFormRef = ref<ElFormInstance>();
|
||||
|
||||
const dialog = reactive<DialogOption>({
|
||||
visible: false,
|
||||
title: ''
|
||||
});
|
||||
|
||||
const initFormData: MessageOpRecordForm = {
|
||||
id: undefined,
|
||||
userId: undefined,
|
||||
opUserId: undefined,
|
||||
title: undefined,
|
||||
message: undefined,
|
||||
opType: undefined,
|
||||
remark: undefined
|
||||
}
|
||||
const data = reactive<PageData<MessageOpRecordForm, MessageOpRecordQuery>>({
|
||||
form: {...initFormData},
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
userId: undefined,
|
||||
opUserId: undefined,
|
||||
title: undefined,
|
||||
message: undefined,
|
||||
opType: undefined,
|
||||
params: {
|
||||
}
|
||||
},
|
||||
rules: {
|
||||
id: [
|
||||
{ required: true, message: "主键id不能为空", trigger: "blur" }
|
||||
],
|
||||
userId: [
|
||||
{ required: true, message: "用户id不能为空", trigger: "blur" }
|
||||
],
|
||||
title: [
|
||||
{ required: true, message: "操作标题不能为空", trigger: "blur" }
|
||||
],
|
||||
message: [
|
||||
{ required: true, message: "操作内容不能为空", trigger: "blur" }
|
||||
],
|
||||
opType: [
|
||||
{ required: true, message: "操作方式不能为空", trigger: "change" }
|
||||
],
|
||||
}
|
||||
});
|
||||
|
||||
const { queryParams, form, rules } = toRefs(data);
|
||||
|
||||
/** 查询用户操作记录列表 */
|
||||
const getList = async () => {
|
||||
loading.value = true;
|
||||
const res = await listMessageOpRecord(queryParams.value);
|
||||
messageOpRecordList.value = res.rows;
|
||||
total.value = res.total;
|
||||
loading.value = false;
|
||||
}
|
||||
|
||||
/** 取消按钮 */
|
||||
const cancel = () => {
|
||||
reset();
|
||||
dialog.visible = false;
|
||||
}
|
||||
|
||||
/** 表单重置 */
|
||||
const reset = () => {
|
||||
form.value = {...initFormData};
|
||||
messageOpRecordFormRef.value?.resetFields();
|
||||
}
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
const handleQuery = () => {
|
||||
queryParams.value.pageNum = 1;
|
||||
getList();
|
||||
}
|
||||
|
||||
/** 重置按钮操作 */
|
||||
const resetQuery = () => {
|
||||
queryFormRef.value?.resetFields();
|
||||
handleQuery();
|
||||
}
|
||||
|
||||
/** 多选框选中数据 */
|
||||
const handleSelectionChange = (selection: MessageOpRecordVO[]) => {
|
||||
ids.value = selection.map(item => item.id);
|
||||
single.value = selection.length != 1;
|
||||
multiple.value = !selection.length;
|
||||
}
|
||||
|
||||
/** 新增按钮操作 */
|
||||
const handleAdd = () => {
|
||||
reset();
|
||||
dialog.visible = true;
|
||||
dialog.title = "添加用户操作记录";
|
||||
}
|
||||
|
||||
/** 修改按钮操作 */
|
||||
const handleUpdate = async (row?: MessageOpRecordVO) => {
|
||||
reset();
|
||||
const _id = row?.id || ids.value[0]
|
||||
const res = await getMessageOpRecord(_id);
|
||||
Object.assign(form.value, res.data);
|
||||
dialog.visible = true;
|
||||
dialog.title = "修改用户操作记录";
|
||||
}
|
||||
|
||||
/** 提交按钮 */
|
||||
const submitForm = () => {
|
||||
messageOpRecordFormRef.value?.validate(async (valid: boolean) => {
|
||||
if (valid) {
|
||||
buttonLoading.value = true;
|
||||
if (form.value.id) {
|
||||
await updateMessageOpRecord(form.value).finally(() => buttonLoading.value = false);
|
||||
} else {
|
||||
await addMessageOpRecord(form.value).finally(() => buttonLoading.value = false);
|
||||
}
|
||||
proxy?.$modal.msgSuccess("操作成功");
|
||||
dialog.visible = false;
|
||||
await getList();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/** 删除按钮操作 */
|
||||
const handleDelete = async (row?: MessageOpRecordVO) => {
|
||||
const _ids = row?.id || ids.value;
|
||||
await proxy?.$modal.confirm('是否确认删除用户操作记录编号为"' + _ids + '"的数据项?').finally(() => loading.value = false);
|
||||
await delMessageOpRecord(_ids);
|
||||
proxy?.$modal.msgSuccess("删除成功");
|
||||
await getList();
|
||||
}
|
||||
|
||||
/** 导出按钮操作 */
|
||||
const handleExport = () => {
|
||||
proxy?.download('fishery/messageOpRecord/export', {
|
||||
...queryParams.value
|
||||
}, `messageOpRecord_${new Date().getTime()}.xlsx`)
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
getList();
|
||||
});
|
||||
</script>
|
||||
@@ -97,7 +97,7 @@
|
||||
<!-- 添加或修改设备充值记录对话框 -->
|
||||
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
|
||||
<el-form ref="payDeviceFormRef" :model="form" :rules="rules" label-width="80px">
|
||||
|
||||
|
||||
<el-form-item label="设备类型" prop="deviceType">
|
||||
<el-select v-model="form.deviceType" placeholder="请选择设备类型">
|
||||
<el-option
|
||||
@@ -108,12 +108,12 @@
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
<el-form-item label="设备编号" prop="serialNum">
|
||||
<el-input
|
||||
:value="selectedDevice ? `${selectedDevice.serialNum} (${selectedDevice.deviceName})` : ''"
|
||||
placeholder="请选择设备"
|
||||
readonly
|
||||
<el-input
|
||||
:value="selectedDevice ? `${selectedDevice.serialNum} (${selectedDevice.deviceName})` : ''"
|
||||
placeholder="请选择设备"
|
||||
readonly
|
||||
@click="openDeviceSelect"
|
||||
style="cursor: pointer;"
|
||||
:disabled="!form.deviceType"
|
||||
@@ -124,10 +124,10 @@
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="用户" prop="userId">
|
||||
<el-input
|
||||
:value="selectedUser ? `${selectedUser.userName} (${selectedUser.mobilePhone})` : ''"
|
||||
placeholder="请选择用户"
|
||||
readonly
|
||||
<el-input
|
||||
:value="selectedUser ? `${selectedUser.userName} (${selectedUser.mobilePhone})` : ''"
|
||||
placeholder="请选择用户"
|
||||
readonly
|
||||
@click="openUserSelect"
|
||||
style="cursor: pointer;"
|
||||
>
|
||||
@@ -174,7 +174,7 @@
|
||||
</el-select>
|
||||
</el-form-item> -->
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
|
||||
<el-input v-model="form.remark" type="textarea" placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
@@ -184,42 +184,42 @@
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
|
||||
|
||||
<!-- 设备选择对话框 -->
|
||||
<el-dialog title="选择设备" v-model="deviceSelectVisible" width="1200px" append-to-body>
|
||||
<!-- 搜索条件 -->
|
||||
<el-form :model="deviceQueryParams" :inline="true" class="mb-4">
|
||||
<el-form-item label="用户信息">
|
||||
<el-input
|
||||
v-model="deviceQueryParams.params.userKeyword"
|
||||
placeholder="请输入用户名或手机号"
|
||||
clearable
|
||||
<el-input
|
||||
v-model="deviceQueryParams.params.userKeyword"
|
||||
placeholder="请输入用户名或手机号"
|
||||
clearable
|
||||
style="width: 200px"
|
||||
@keyup.enter="handleDeviceQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备编号">
|
||||
<el-input
|
||||
v-model="deviceQueryParams.serialNum"
|
||||
placeholder="请输入设备编号"
|
||||
clearable
|
||||
<el-input
|
||||
v-model="deviceQueryParams.serialNum"
|
||||
placeholder="请输入设备编号"
|
||||
clearable
|
||||
style="width: 180px"
|
||||
@keyup.enter="handleDeviceQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备名称">
|
||||
<el-input
|
||||
v-model="deviceQueryParams.deviceName"
|
||||
placeholder="请输入设备名称"
|
||||
clearable
|
||||
<el-input
|
||||
v-model="deviceQueryParams.deviceName"
|
||||
placeholder="请输入设备名称"
|
||||
clearable
|
||||
style="width: 180px"
|
||||
@keyup.enter="handleDeviceQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备类型">
|
||||
<el-select
|
||||
v-model="deviceQueryParams.deviceType"
|
||||
placeholder="请选择设备类型"
|
||||
<el-select
|
||||
v-model="deviceQueryParams.deviceType"
|
||||
placeholder="请选择设备类型"
|
||||
disabled
|
||||
style="width: 150px"
|
||||
>
|
||||
@@ -236,10 +236,10 @@
|
||||
<el-button icon="Refresh" @click="resetDeviceQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
|
||||
<!-- 设备表格 -->
|
||||
<el-table
|
||||
:data="deviceList"
|
||||
<el-table
|
||||
:data="deviceList"
|
||||
highlight-current-row
|
||||
height="400px"
|
||||
border
|
||||
@@ -266,9 +266,9 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" width="100">
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
type="primary"
|
||||
size="small"
|
||||
<el-button
|
||||
type="primary"
|
||||
size="small"
|
||||
@click="handleDeviceSelect(scope.row)"
|
||||
>
|
||||
选择
|
||||
@@ -276,42 +276,42 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
|
||||
<!-- 分页 -->
|
||||
<pagination
|
||||
v-show="deviceTotal > 0"
|
||||
:total="deviceTotal"
|
||||
v-model:page="deviceQueryParams.pageNum"
|
||||
v-model:limit="deviceQueryParams.pageSize"
|
||||
<pagination
|
||||
v-show="deviceTotal > 0"
|
||||
:total="deviceTotal"
|
||||
v-model:page="deviceQueryParams.pageNum"
|
||||
v-model:limit="deviceQueryParams.pageSize"
|
||||
@pagination="handleDevicePaginationChange"
|
||||
class="mt-4"
|
||||
/>
|
||||
|
||||
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button @click="cancelDeviceSelect">取 消</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
|
||||
|
||||
<!-- 用户选择对话框 -->
|
||||
<el-dialog title="选择用户" v-model="userSelectVisible" width="900px" append-to-body>
|
||||
<!-- 搜索条件 -->
|
||||
<el-form :model="userQueryParams" :inline="true" class="mb-4">
|
||||
<el-form-item label="用户名">
|
||||
<el-input
|
||||
v-model="userQueryParams.userName"
|
||||
placeholder="请输入用户名"
|
||||
clearable
|
||||
<el-input
|
||||
v-model="userQueryParams.userName"
|
||||
placeholder="请输入用户名"
|
||||
clearable
|
||||
style="width: 180px"
|
||||
@keyup.enter="handleUserQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="手机号">
|
||||
<el-input
|
||||
v-model="userQueryParams.mobilePhone"
|
||||
placeholder="请输入手机号"
|
||||
clearable
|
||||
<el-input
|
||||
v-model="userQueryParams.mobilePhone"
|
||||
placeholder="请输入手机号"
|
||||
clearable
|
||||
style="width: 180px"
|
||||
@keyup.enter="handleUserQuery"
|
||||
/>
|
||||
@@ -321,10 +321,10 @@
|
||||
<el-button icon="Refresh" @click="resetUserQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
|
||||
<!-- 用户表格 -->
|
||||
<el-table
|
||||
:data="aquUserList"
|
||||
<el-table
|
||||
:data="aquUserList"
|
||||
highlight-current-row
|
||||
height="400px"
|
||||
border
|
||||
@@ -336,9 +336,9 @@
|
||||
<el-table-column label="区县" align="center" prop="district" />
|
||||
<el-table-column label="操作" align="center" width="100">
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
type="primary"
|
||||
size="small"
|
||||
<el-button
|
||||
type="primary"
|
||||
size="small"
|
||||
@click="handleUserSelect(scope.row)"
|
||||
>
|
||||
选择
|
||||
@@ -346,24 +346,24 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
|
||||
<!-- 分页 -->
|
||||
<pagination
|
||||
v-show="userTotal > 0"
|
||||
:total="userTotal"
|
||||
v-model:page="userQueryParams.pageNum"
|
||||
v-model:limit="userQueryParams.pageSize"
|
||||
<pagination
|
||||
v-show="userTotal > 0"
|
||||
:total="userTotal"
|
||||
v-model:page="userQueryParams.pageNum"
|
||||
v-model:limit="userQueryParams.pageSize"
|
||||
@pagination="handleUserPaginationChange"
|
||||
class="mt-4"
|
||||
/>
|
||||
|
||||
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button @click="cancelUserSelect">取 消</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
|
||||
|
||||
<!-- 订单详情对话框 -->
|
||||
<el-dialog title="订单详情" v-model="orderDetailVisible" width="800px" append-to-body>
|
||||
<el-descriptions v-if="orderDetail" :column="2" border>
|
||||
@@ -583,7 +583,7 @@ const handleUpdate = async (row?: PayDeviceVO) => {
|
||||
const _id = row?.id || ids.value[0]
|
||||
const res = await getPayDevice(_id);
|
||||
Object.assign(form.value, res.data);
|
||||
|
||||
|
||||
// 回显用户信息
|
||||
if (form.value.userId) {
|
||||
try {
|
||||
@@ -604,7 +604,7 @@ const handleUpdate = async (row?: PayDeviceVO) => {
|
||||
} else {
|
||||
selectedUser.value = null;
|
||||
}
|
||||
|
||||
|
||||
// 回显设备信息
|
||||
if (form.value.serialNum) {
|
||||
try {
|
||||
@@ -627,7 +627,7 @@ const handleUpdate = async (row?: PayDeviceVO) => {
|
||||
} else {
|
||||
selectedDevice.value = null;
|
||||
}
|
||||
|
||||
|
||||
dialog.visible = true;
|
||||
dialog.title = "修改设备充值记录";
|
||||
}
|
||||
@@ -815,7 +815,7 @@ const handleViewOrder = async (row: PayDeviceVO) => {
|
||||
proxy?.$modal.msgWarning('该记录没有关联订单');
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
const res = await getPayOrder(row.orderId);
|
||||
orderDetail.value = res.data;
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="创建时间" align="center" prop="createTime" width="160"/>
|
||||
<el-table-column label="修改时间" align="center" prop="updateTime" width="160"/>
|
||||
<el-table-column label="更新时间" align="center" prop="updateTime" width="160"/>
|
||||
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-tooltip content="修改" placement="top">
|
||||
|
||||
224
src/views/fishery/tecentUserCache/index.vue
Normal file
224
src/views/fishery/tecentUserCache/index.vue
Normal file
@@ -0,0 +1,224 @@
|
||||
<template>
|
||||
<div class="p-2">
|
||||
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
|
||||
<div v-show="showSearch" class="mb-[10px]">
|
||||
<!-- <el-card shadow="hover">
|
||||
<el-form ref="queryFormRef" :model="queryParams" :inline="true">
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card> -->
|
||||
</div>
|
||||
</transition>
|
||||
|
||||
<el-card shadow="never">
|
||||
<template #header>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['fishery:tecentUserCache:add']">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['fishery:tecentUserCache:edit']">修改</el-button>
|
||||
</el-col> -->
|
||||
<el-col :span="1.5">
|
||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['fishery:tecentUserCache:remove']">删除</el-button>
|
||||
</el-col>
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['fishery:tecentUserCache:export']">导出</el-button>
|
||||
</el-col> -->
|
||||
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
</template>
|
||||
|
||||
<el-table v-loading="loading" border :data="tecentUserCacheList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<!-- <el-table-column label="主键id" align="center" prop="id" v-if="true" /> -->
|
||||
<el-table-column label="openId" align="center" prop="openId" />
|
||||
<el-table-column label="unionId" align="center" prop="unionId" />
|
||||
<el-table-column label="创建时间" align="center" prop="createTime" width="180"/>
|
||||
<el-table-column label="备注" align="center" prop="remark" />
|
||||
<el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<!-- <el-tooltip content="修改" placement="top">
|
||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['fishery:tecentUserCache:edit']"></el-button>
|
||||
</el-tooltip> -->
|
||||
<el-tooltip content="删除" placement="top">
|
||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['fishery:tecentUserCache:remove']"></el-button>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
|
||||
</el-card>
|
||||
<!-- 添加或修改公众号用户缓存对话框 -->
|
||||
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
|
||||
<el-form ref="tecentUserCacheFormRef" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="openId" prop="openId">
|
||||
<el-input v-model="form.openId" placeholder="请输入openId" />
|
||||
</el-form-item>
|
||||
<el-form-item label="unionId" prop="unionId">
|
||||
<el-input v-model="form.unionId" placeholder="请输入unionId" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="TecentUserCache" lang="ts">
|
||||
import { listTecentUserCache, getTecentUserCache, delTecentUserCache, addTecentUserCache, updateTecentUserCache } from '@/api/fishery/tecentUserCache';
|
||||
import { TecentUserCacheVO, TecentUserCacheQuery, TecentUserCacheForm } from '@/api/fishery/tecentUserCache/types';
|
||||
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
|
||||
const tecentUserCacheList = ref<TecentUserCacheVO[]>([]);
|
||||
const buttonLoading = ref(false);
|
||||
const loading = ref(true);
|
||||
const showSearch = ref(true);
|
||||
const ids = ref<Array<string | number>>([]);
|
||||
const single = ref(true);
|
||||
const multiple = ref(true);
|
||||
const total = ref(0);
|
||||
|
||||
const queryFormRef = ref<ElFormInstance>();
|
||||
const tecentUserCacheFormRef = ref<ElFormInstance>();
|
||||
|
||||
const dialog = reactive<DialogOption>({
|
||||
visible: false,
|
||||
title: ''
|
||||
});
|
||||
|
||||
const initFormData: TecentUserCacheForm = {
|
||||
id: undefined,
|
||||
openId: undefined,
|
||||
unionId: undefined,
|
||||
remark: undefined
|
||||
}
|
||||
const data = reactive<PageData<TecentUserCacheForm, TecentUserCacheQuery>>({
|
||||
form: {...initFormData},
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
params: {
|
||||
}
|
||||
},
|
||||
rules: {
|
||||
id: [
|
||||
{ required: true, message: "主键id不能为空", trigger: "blur" }
|
||||
],
|
||||
openId: [
|
||||
{ required: true, message: "openId不能为空", trigger: "blur" }
|
||||
],
|
||||
unionId: [
|
||||
{ required: true, message: "unionId不能为空", trigger: "blur" }
|
||||
],
|
||||
}
|
||||
});
|
||||
|
||||
const { queryParams, form, rules } = toRefs(data);
|
||||
|
||||
/** 查询公众号用户缓存列表 */
|
||||
const getList = async () => {
|
||||
loading.value = true;
|
||||
const res = await listTecentUserCache(queryParams.value);
|
||||
tecentUserCacheList.value = res.rows;
|
||||
total.value = res.total;
|
||||
loading.value = false;
|
||||
}
|
||||
|
||||
/** 取消按钮 */
|
||||
const cancel = () => {
|
||||
reset();
|
||||
dialog.visible = false;
|
||||
}
|
||||
|
||||
/** 表单重置 */
|
||||
const reset = () => {
|
||||
form.value = {...initFormData};
|
||||
tecentUserCacheFormRef.value?.resetFields();
|
||||
}
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
const handleQuery = () => {
|
||||
queryParams.value.pageNum = 1;
|
||||
getList();
|
||||
}
|
||||
|
||||
/** 重置按钮操作 */
|
||||
const resetQuery = () => {
|
||||
queryFormRef.value?.resetFields();
|
||||
handleQuery();
|
||||
}
|
||||
|
||||
/** 多选框选中数据 */
|
||||
const handleSelectionChange = (selection: TecentUserCacheVO[]) => {
|
||||
ids.value = selection.map(item => item.id);
|
||||
single.value = selection.length != 1;
|
||||
multiple.value = !selection.length;
|
||||
}
|
||||
|
||||
/** 新增按钮操作 */
|
||||
const handleAdd = () => {
|
||||
reset();
|
||||
dialog.visible = true;
|
||||
dialog.title = "添加公众号用户缓存";
|
||||
}
|
||||
|
||||
/** 修改按钮操作 */
|
||||
const handleUpdate = async (row?: TecentUserCacheVO) => {
|
||||
reset();
|
||||
const _id = row?.id || ids.value[0]
|
||||
const res = await getTecentUserCache(_id);
|
||||
Object.assign(form.value, res.data);
|
||||
dialog.visible = true;
|
||||
dialog.title = "修改公众号用户缓存";
|
||||
}
|
||||
|
||||
/** 提交按钮 */
|
||||
const submitForm = () => {
|
||||
tecentUserCacheFormRef.value?.validate(async (valid: boolean) => {
|
||||
if (valid) {
|
||||
buttonLoading.value = true;
|
||||
if (form.value.id) {
|
||||
await updateTecentUserCache(form.value).finally(() => buttonLoading.value = false);
|
||||
} else {
|
||||
await addTecentUserCache(form.value).finally(() => buttonLoading.value = false);
|
||||
}
|
||||
proxy?.$modal.msgSuccess("操作成功");
|
||||
dialog.visible = false;
|
||||
await getList();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/** 删除按钮操作 */
|
||||
const handleDelete = async (row?: TecentUserCacheVO) => {
|
||||
const _ids = row?.id || ids.value;
|
||||
await proxy?.$modal.confirm('是否确认删除公众号用户缓存编号为"' + _ids + '"的数据项?').finally(() => loading.value = false);
|
||||
await delTecentUserCache(_ids);
|
||||
proxy?.$modal.msgSuccess("删除成功");
|
||||
await getList();
|
||||
}
|
||||
|
||||
/** 导出按钮操作 */
|
||||
const handleExport = () => {
|
||||
proxy?.download('fishery/tecentUserCache/export', {
|
||||
...queryParams.value
|
||||
}, `tecentUserCache_${new Date().getTime()}.xlsx`)
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
getList();
|
||||
});
|
||||
</script>
|
||||
@@ -68,7 +68,7 @@
|
||||
<el-input v-model="form.childUserId" placeholder="请输入子账号id" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
|
||||
<el-input v-model="form.remark" type="textarea" placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
|
||||
@@ -109,7 +109,7 @@
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
|
||||
<el-input v-model="form.remark" type="textarea" placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
|
||||
@@ -112,7 +112,7 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
|
||||
<el-input v-model="form.remark" type="textarea" placeholder="请输入备注"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
|
||||
@@ -94,7 +94,7 @@
|
||||
<el-input v-model="form.dictType" placeholder="请输入字典类型" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
|
||||
<el-input v-model="form.remark" type="textarea" placeholder="请输入备注"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
|
||||
@@ -128,7 +128,7 @@
|
||||
<el-input v-model="form.region" placeholder="请输入域" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
|
||||
<el-input v-model="form.remark" type="textarea" placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
|
||||
@@ -154,7 +154,7 @@
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
|
||||
<el-input v-model="form.remark" type="textarea" placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
|
||||
@@ -139,7 +139,7 @@
|
||||
></el-tree>
|
||||
</el-form-item>
|
||||
<el-form-item label="备注">
|
||||
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
|
||||
<el-input v-model="form.remark" type="textarea" placeholder="请输入备注"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
|
||||
@@ -239,7 +239,7 @@
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="备注">
|
||||
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
|
||||
<el-input v-model="form.remark" type="textarea" placeholder="请输入备注"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
Reference in New Issue
Block a user