diff --git a/.env.development b/.env.development index 4a3b88c..bac6d60 100644 --- a/.env.development +++ b/.env.development @@ -1,5 +1,5 @@ # 页面标题 -VITE_APP_TITLE = 鱼测云后台管理系统 +VITE_APP_TITLE = 水产养殖监测平台 # 开发环境配置 VITE_APP_ENV = 'development' diff --git a/package.json b/package.json index 084c104..4f0b828 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "$schema": "https://json.schemastore.org/package", "name": "ruoyi-vue-plus", "version": "5.5.0-2.5.0", - "description": "鱼测云后台管理系统", + "description": "水产养殖监测平台", "author": "LionLi", "license": "MIT", "type": "module", diff --git a/public/favicon - 副本.ico b/public/favicon - 副本.ico new file mode 100644 index 0000000..d6191cc Binary files /dev/null and b/public/favicon - 副本.ico differ diff --git a/public/favicon.ico b/public/favicon.ico index d6191cc..b34980e 100644 Binary files a/public/favicon.ico and b/public/favicon.ico differ diff --git a/src/api/fishery/device/index.ts b/src/api/fishery/device/index.ts new file mode 100644 index 0000000..5790e11 --- /dev/null +++ b/src/api/fishery/device/index.ts @@ -0,0 +1,63 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { DeviceVO, DeviceForm, DeviceQuery } from '@/api/fishery/device/types'; + +/** + * 查询设备管理列表 + * @param query + * @returns {*} + */ + +export const listDevice = (query?: DeviceQuery): AxiosPromise => { + return request({ + url: '/fishery/device/list', + method: 'get', + params: query + }); +}; + +/** + * 查询设备管理详细 + * @param id + */ +export const getDevice = (id: string | number): AxiosPromise => { + return request({ + url: '/fishery/device/' + id, + method: 'get' + }); +}; + +/** + * 新增设备管理 + * @param data + */ +export const addDevice = (data: DeviceForm) => { + return request({ + url: '/fishery/device', + method: 'post', + data: data + }); +}; + +/** + * 修改设备管理 + * @param data + */ +export const updateDevice = (data: DeviceForm) => { + return request({ + url: '/fishery/device', + method: 'put', + data: data + }); +}; + +/** + * 删除设备管理 + * @param id + */ +export const delDevice = (id: string | number | Array) => { + return request({ + url: '/fishery/device/' + id, + method: 'delete' + }); +}; diff --git a/src/api/fishery/device/types.ts b/src/api/fishery/device/types.ts new file mode 100644 index 0000000..1310cdc --- /dev/null +++ b/src/api/fishery/device/types.ts @@ -0,0 +1,483 @@ +export interface DeviceVO { + /** + * 主键id + */ + id: string | number; + + /** + * 用户id + */ + userId: string | number; + + /** + * 物联网IotId + */ + iotId: string | number; + + /** + * 设备编号 + */ + serialNum: string; + + /** + * 设备名称 + */ + deviceName: string; + + /** + * 设备类型 + */ + deviceType: number; + + /** + * 绑定时间 + */ + bindTime: string; + + /** + * 服务到期 + */ + deadTime: string; + + /** + * 塘口id + */ + pondId: string | number; + + /** + * 溶解氧参数配置开关 + */ + isOxygenUsed: number; + + /** + * 溶解氧 + */ + valueDissolvedOxygen: number; + + /** + * 是否已触发溶解氧报警 + */ + isOxygenWarnExist: number; + + /** + * 水温 + */ + valueTemperature: number; + + /** + * 是否已触发温度报警 + */ + isTempWarnExist: number; + + /** + * 饱和度 + */ + valueSaturability: number; + + /** + * PH + */ + valuePh: number; + + /** + * 盐度 + */ + valueSalinity: number; + + /** + * 溶解氧电话告警开关 + */ + oxyWarnCallOpen: number; + + /** + * 低溶氧告警免打扰 + */ + oxyWarnCallNoDis: number; + + /** + * 上次溶解氧电话告警时间 + */ + oxyWarnCallLastTime: string; + + /** + * 溶解氧电话告警下限 + */ + oxyWarnLower: number; + + /** + * 温度电话告警开关 + */ + tempWarnCallOpen: number; + + /** + * 温度告警免打扰 + */ + tempWarnCallNoDis: number; + + /** + * 上次温度电话告警时间 + */ + tempWarnCallLastTime: string; + + /** + * 温度电话告警上限 + */ + tempWarnUpper: number; + + /** + * 温度电话告警下限 + */ + tempWarnLower: number; + + /** + * 设置的盐度补偿 + */ + salinityCompensation: number; + + /** + * 输入额定电压 + */ + inputVoltage: number; + + /** + * 设备告警状态码 + */ + warnCode: number; + + /** + * 物联网卡号 + */ + iccId: string | number; + + /** + * 相位差 + */ + phaseDifference: number; + + /** + * 荧光值 + */ + tfluorescence: number; + + /** + * 参比值 + */ + treference: number; + + /** + * 线性系数补偿 + */ + phaseCompensation: number; + + /** + * 相位差补偿 + */ + phasedifCompensation: number; + + /** + * 温度补偿 + */ + temperatureCompensation: number; + + /** + * 电压告警开关 + */ + voltageWarnOpen: number; + + /** + * 备注 + */ + remark: string; + + /** + * 设备分类 + */ + category: string; + + /** + * 电量电话告警开关 + */ + batteryWarnCallOpen: number; + + /** + * 电量告警免打扰 + */ + batteryWarnCallNoDis: number; + + /** + * 上次电量电话告警时间 + */ + batteryWarnCallLastTime: string; + + /** + * 电量电话告警下限 + */ + batteryWarnLower: number; + +} + +export interface DeviceForm extends BaseEntity { + /** + * 主键id + */ + id?: string | number; + + /** + * 用户id + */ + userId?: string | number; + + /** + * 物联网IotId + */ + iotId?: string | number; + + /** + * 设备编号 + */ + serialNum?: string; + + /** + * 设备名称 + */ + deviceName?: string; + + /** + * 设备类型 + */ + deviceType?: number; + + /** + * 绑定时间 + */ + bindTime?: string; + + /** + * 服务到期 + */ + deadTime?: string; + + /** + * 塘口id + */ + pondId?: string | number; + + /** + * 溶解氧参数配置开关 + */ + isOxygenUsed?: number; + + /** + * 溶解氧 + */ + valueDissolvedOxygen?: number; + + /** + * 是否已触发溶解氧报警 + */ + isOxygenWarnExist?: number; + + /** + * 水温 + */ + valueTemperature?: number; + + /** + * 是否已触发温度报警 + */ + isTempWarnExist?: number; + + /** + * 饱和度 + */ + valueSaturability?: number; + + /** + * PH + */ + valuePh?: number; + + /** + * 盐度 + */ + valueSalinity?: number; + + /** + * 溶解氧电话告警开关 + */ + oxyWarnCallOpen?: number; + + /** + * 低溶氧告警免打扰 + */ + oxyWarnCallNoDis?: number; + + /** + * 上次溶解氧电话告警时间 + */ + oxyWarnCallLastTime?: string; + + /** + * 溶解氧电话告警下限 + */ + oxyWarnLower?: number; + + /** + * 温度电话告警开关 + */ + tempWarnCallOpen?: number; + + /** + * 温度告警免打扰 + */ + tempWarnCallNoDis?: number; + + /** + * 上次温度电话告警时间 + */ + tempWarnCallLastTime?: string; + + /** + * 温度电话告警上限 + */ + tempWarnUpper?: number; + + /** + * 温度电话告警下限 + */ + tempWarnLower?: number; + + /** + * 设置的盐度补偿 + */ + salinityCompensation?: number; + + /** + * 输入额定电压 + */ + inputVoltage?: number; + + /** + * 设备告警状态码 + */ + warnCode?: number; + + /** + * 物联网卡号 + */ + iccId?: string | number; + + /** + * 相位差 + */ + phaseDifference?: number; + + /** + * 荧光值 + */ + tfluorescence?: number; + + /** + * 参比值 + */ + treference?: number; + + /** + * 线性系数补偿 + */ + phaseCompensation?: number; + + /** + * 相位差补偿 + */ + phasedifCompensation?: number; + + /** + * 温度补偿 + */ + temperatureCompensation?: number; + + /** + * 电压告警开关 + */ + voltageWarnOpen?: number; + + /** + * 备注 + */ + remark?: string; + + /** + * 设备分类 + */ + category?: string; + + /** + * 电量电话告警开关 + */ + batteryWarnCallOpen?: number; + + /** + * 电量告警免打扰 + */ + batteryWarnCallNoDis?: number; + + /** + * 上次电量电话告警时间 + */ + batteryWarnCallLastTime?: string; + + /** + * 电量电话告警下限 + */ + batteryWarnLower?: number; + +} + +export interface DeviceQuery extends PageQuery { + + /** + * 用户id + */ + userId?: string | number; + + /** + * 设备编号 + */ + serialNum?: string; + + /** + * 设备名称 + */ + deviceName?: string; + + /** + * 设备类型 + */ + deviceType?: number; + + /** + * 绑定时间 + */ + bindTime?: string; + + /** + * 塘口id + */ + pondId?: string | number; + + /** + * 物联网卡号 + */ + iccId?: string | number; + + /** + * 设备分类 + */ + category?: string; + + /** + * 日期范围参数 + */ + params?: any; +} diff --git a/src/api/fishery/deviceBindRecord/index.ts b/src/api/fishery/deviceBindRecord/index.ts new file mode 100644 index 0000000..60949ce --- /dev/null +++ b/src/api/fishery/deviceBindRecord/index.ts @@ -0,0 +1,63 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { DeviceBindRecordVO, DeviceBindRecordForm, DeviceBindRecordQuery } from '@/api/fishery/deviceBindRecord/types'; + +/** + * 查询设备绑定记录列表 + * @param query + * @returns {*} + */ + +export const listDeviceBindRecord = (query?: DeviceBindRecordQuery): AxiosPromise => { + return request({ + url: '/fishery/deviceBindRecord/list', + method: 'get', + params: query + }); +}; + +/** + * 查询设备绑定记录详细 + * @param id + */ +export const getDeviceBindRecord = (id: string | number): AxiosPromise => { + return request({ + url: '/fishery/deviceBindRecord/' + id, + method: 'get' + }); +}; + +/** + * 新增设备绑定记录 + * @param data + */ +export const addDeviceBindRecord = (data: DeviceBindRecordForm) => { + return request({ + url: '/fishery/deviceBindRecord', + method: 'post', + data: data + }); +}; + +/** + * 修改设备绑定记录 + * @param data + */ +export const updateDeviceBindRecord = (data: DeviceBindRecordForm) => { + return request({ + url: '/fishery/deviceBindRecord', + method: 'put', + data: data + }); +}; + +/** + * 删除设备绑定记录 + * @param id + */ +export const delDeviceBindRecord = (id: string | number | Array) => { + return request({ + url: '/fishery/deviceBindRecord/' + id, + method: 'delete' + }); +}; diff --git a/src/api/fishery/deviceBindRecord/types.ts b/src/api/fishery/deviceBindRecord/types.ts new file mode 100644 index 0000000..58d69b5 --- /dev/null +++ b/src/api/fishery/deviceBindRecord/types.ts @@ -0,0 +1,98 @@ +export interface DeviceBindRecordVO { + /** + * 主键id + */ + id: string | number; + + /** + * 物联网IotId + */ + iotId: string | number; + + /** + * 设备类型 + */ + deviceType: number; + + /** + * 设备编号 + */ + serialNum: string; + + /** + * 用户id + */ + userId: string | number; + + /** + * 绑定/解绑 + */ + isBind: number; + +} + +export interface DeviceBindRecordForm extends BaseEntity { + /** + * 主键id + */ + id?: string | number; + + /** + * 物联网IotId + */ + iotId?: string | number; + + /** + * 设备类型 + */ + deviceType?: number; + + /** + * 设备编号 + */ + serialNum?: string; + + /** + * 用户id + */ + userId?: string | number; + + /** + * 绑定/解绑 + */ + isBind?: number; + +} + +export interface DeviceBindRecordQuery extends PageQuery { + + /** + * 物联网IotId + */ + iotId?: string | number; + + /** + * 设备类型 + */ + deviceType?: number; + + /** + * 设备编号 + */ + serialNum?: string; + + /** + * 用户id + */ + userId?: string | number; + + /** + * 绑定/解绑 + */ + isBind?: number; + + /** + * 日期范围参数 + */ + params?: any; +} diff --git a/src/assets/images/2.jpg b/src/assets/images/2.jpg index 2580d86..b31e40a 100644 Binary files a/src/assets/images/2.jpg and b/src/assets/images/2.jpg differ diff --git a/src/assets/images/3.jpg b/src/assets/images/3.jpg new file mode 100644 index 0000000..8a713c3 Binary files /dev/null and b/src/assets/images/3.jpg differ diff --git a/src/assets/images/login-background - 副本.jpg b/src/assets/images/login-background - 副本.jpg new file mode 100644 index 0000000..2697b8e Binary files /dev/null and b/src/assets/images/login-background - 副本.jpg differ diff --git a/src/assets/images/login-background.jpg b/src/assets/images/login-background.jpg index 8a713c3..b4e0c8e 100644 Binary files a/src/assets/images/login-background.jpg and b/src/assets/images/login-background.jpg differ diff --git a/src/assets/images/profile.png b/src/assets/images/profile.png index af46228..47910c8 100644 Binary files a/src/assets/images/profile.png and b/src/assets/images/profile.png differ diff --git a/src/assets/logo/logo.png b/src/assets/logo/logo.png index af46228..88c17d6 100644 Binary files a/src/assets/logo/logo.png and b/src/assets/logo/logo.png differ diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue index 2aaa4d3..db6b188 100644 --- a/src/layout/components/Navbar.vue +++ b/src/layout/components/Navbar.vue @@ -6,10 +6,10 @@
diff --git a/src/types/components.d.ts b/src/types/components.d.ts index 736cf03..b2dddfe 100644 --- a/src/types/components.d.ts +++ b/src/types/components.d.ts @@ -13,20 +13,16 @@ declare module 'vue' { Breadcrumb: typeof import('./../components/Breadcrumb/index.vue')['default'] DictTag: typeof import('./../components/DictTag/index.vue')['default'] Editor: typeof import('./../components/Editor/index.vue')['default'] - ElAutocomplete: typeof import('element-plus/es')['ElAutocomplete'] ElBadge: typeof import('element-plus/es')['ElBadge'] ElBreadcrumb: typeof import('element-plus/es')['ElBreadcrumb'] ElBreadcrumbItem: typeof import('element-plus/es')['ElBreadcrumbItem'] 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'] ElDatePicker: typeof import('element-plus/es')['ElDatePicker'] - ElDescriptions: typeof import('element-plus/es')['ElDescriptions'] - ElDescriptionsItem: typeof import('element-plus/es')['ElDescriptionsItem'] ElDialog: typeof import('element-plus/es')['ElDialog'] ElDivider: typeof import('element-plus/es')['ElDivider'] ElDrawer: typeof import('element-plus/es')['ElDrawer'] @@ -37,7 +33,6 @@ 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'] @@ -58,7 +53,6 @@ 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'] diff --git a/src/views/fishery/aquUser/index.vue b/src/views/fishery/aquUser/index.vue index 16a6b32..c71a6e2 100644 --- a/src/views/fishery/aquUser/index.vue +++ b/src/views/fishery/aquUser/index.vue @@ -47,9 +47,9 @@ >删除 - + @@ -64,8 +64,13 @@ --> - + + + + + + + + + + + + + + + + + + + +
+ 该用户暂无塘口信息 +
+ + +
diff --git a/src/views/fishery/deviceBindRecord/index.vue b/src/views/fishery/deviceBindRecord/index.vue new file mode 100644 index 0000000..75cfd93 --- /dev/null +++ b/src/views/fishery/deviceBindRecord/index.vue @@ -0,0 +1,459 @@ + + + diff --git a/src/views/fishery/deviceThreshold/index.vue b/src/views/fishery/deviceThreshold/index.vue index eb31946..b9637d7 100644 --- a/src/views/fishery/deviceThreshold/index.vue +++ b/src/views/fishery/deviceThreshold/index.vue @@ -35,9 +35,9 @@ >删除 - + @@ -48,7 +48,8 @@ - + + - + - + - - - - + + + + + + - + + + + +