diff --git a/package.json b/package.json index c52c548..ffe4fe6 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "echarts-gl": "^2.0.9", "echarts-liquidfill": "^3.1.0", "element-plus": "2.9.8", + "ezuikit-js": "^8.1.10", "file-saver": "2.0.5", "highlight.js": "11.9.0", "image-conversion": "2.1.1", diff --git a/public/assets/dialog2.png b/public/assets/dialog2.png new file mode 100644 index 0000000..46a663d Binary files /dev/null and b/public/assets/dialog2.png differ diff --git a/src/api/devicePreset/index.ts b/src/api/devicePreset/index.ts new file mode 100644 index 0000000..d5baf2e --- /dev/null +++ b/src/api/devicePreset/index.ts @@ -0,0 +1,74 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { DevicePresetVO, DevicePresetForm, DevicePresetQuery } from '@/api/camera/devicePreset/types'; + +/** + * 查询摄像头预置位列表 + * @param query + * @returns {*} + */ + +export const listDevicePreset = (query?: DevicePresetQuery): AxiosPromise => { + return request({ + url: '/camera/devicePreset/list', + method: 'get', + params: query + }); +}; + +/** + * 查询摄像头预置位详细 + * @param id + */ +export const getDevicePreset = (id: string | number): AxiosPromise => { + return request({ + url: '/camera/devicePreset/' + id, + method: 'get' + }); +}; + +/** + * 新增摄像头预置位 + * @param data + */ +export const addDevicePreset = (data: DevicePresetForm) => { + return request({ + url: '/camera/devicePreset', + method: 'post', + data: data + }); +}; + +/** + * 修改摄像头预置位 + * @param data + */ +export const updateDevicePreset = (data: DevicePresetForm) => { + return request({ + url: '/camera/devicePreset', + method: 'put', + data: data + }); +}; + +/** + * 删除摄像头预置位 + * @param id + */ +export const delDevicePreset = (id: string | number | Array) => { + return request({ + url: '/camera/devicePreset/' + id, + method: 'delete' + }); +}; +/** + * 调用摄像头预置位 + * @param data + */ +export const callDevicePreset = (data: DevicePresetForm) => { + return request({ + url: '/camera/devicePreset/call', + method: 'post', + data: data + }); +}; diff --git a/src/api/devicePreset/types.ts b/src/api/devicePreset/types.ts new file mode 100644 index 0000000..87dfe79 --- /dev/null +++ b/src/api/devicePreset/types.ts @@ -0,0 +1,86 @@ +export interface DevicePresetVO { + /** + * 主键id + */ + id: string | number; + + /** + * 设备序列号 + */ + deviceSerial: string; + + /** + * 通道号 + */ + channelNo: number; + + /** + * 预置点序号 + */ + presetIndex: number; + + /** + * 预置点 + */ + presetName: string; + +} + +export interface DevicePresetForm extends BaseEntity { + /** + * 主键id + */ + id?: string | number; + + /** + * 设备序列号 + */ + deviceSerial?: string; + + /** + * 通道号 + */ + channelNo?: number; + + /** + * 预置点序号 + */ + presetIndex?: number; + + /** + * 预置点 + */ + presetName?: string; + +} + +export interface DevicePresetQuery extends PageQuery { + + /** + * 设备序列号 + */ + deviceSerial?: string; + + /** + * 通道号 + */ + channelNo?: number; + + /** + * 预置点序号 + */ + presetIndex?: number; + + /** + * 预置点 + */ + presetName?: string; + + /** + * 日期范围参数 + */ + params?: any; +} + + + diff --git a/src/api/renyuan/paiban/index.ts b/src/api/renyuan/paiban/index.ts new file mode 100644 index 0000000..baccd17 --- /dev/null +++ b/src/api/renyuan/paiban/index.ts @@ -0,0 +1,79 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { SchedulingVO } from './types'; + + +/** + * 查询排班人员列表 + * @param deptId + */ +export function getPaibanRenYuanList(deptId:string | number): AxiosPromise { + return request({ + url: `/system/user/list/dept/`+deptId, + method: 'get', + }); +} + + +/** + * 查询运维-人员排班列表 + */ +export function getPaibanRiLiList(query?: SchedulingVO): AxiosPromise { + return request({ + url: `/ops/personnel/scheduling/getRiLiList`, + method: 'get', + params: query + }); +} + +/** + * 运维-人员排班-查询排班列表 + */ +export function getPaibanListPage(query?: SchedulingVO): AxiosPromise { + return request({ + url: `/ops/personnel/scheduling/list`, + method: 'get', + params: query + }); +} +/** + * 运维-人员排班-安排排班 + */ +export function savePaiban(data: any): AxiosPromise { + return request({ + url: `/ops/personnel/scheduling/all`, + method: 'post', + data: data + }); +} + +/** + * 运维-人员排班-修改排班 + */ +export function updatePaiban(data:any): AxiosPromise { + return request({ + url: `/ops/personnel/scheduling`, + method: 'put', + data: data + }); +} + +/** + * 运维-人员排班-批量修改排班 + */ +// export function updateAllPaiban(): AxiosPromise { +// return request({ +// url: `/ops/personnel/scheduling/all`, +// method: 'put', +// }); +// } + +/** + * 运维-人员排班-删除排班 + */ +export function deletePaiban(ids: string): AxiosPromise { + return request({ + url: `/ops/personnel/scheduling/${ids}`, + method: 'delete', + }); +} diff --git a/src/api/renyuan/paiban/types.ts b/src/api/renyuan/paiban/types.ts new file mode 100644 index 0000000..76d0b6e --- /dev/null +++ b/src/api/renyuan/paiban/types.ts @@ -0,0 +1,39 @@ +export interface SchedulingVO { + /** + * 开始时间 + */ + schedulingStartDate: string; + + /** + * 结束时间 + */ + schedulingEndDate: string; + + /** + * 部门ID + */ + projectId?: string | number; + +} + + +// export interface SchedulingQuery extends PageQuery { + +// /** +// * 开始时间 +// */ +// schedulingStartDate: string; + +// /** +// * 结束时间 +// */ +// schedulingEndDate: string; + +// /** +// * 部门ID +// */ +// projectId?: string | number; +// } + + + diff --git a/src/api/renyuan/schedulingDate/index.ts b/src/api/renyuan/schedulingDate/index.ts new file mode 100644 index 0000000..f5f2d94 --- /dev/null +++ b/src/api/renyuan/schedulingDate/index.ts @@ -0,0 +1,63 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { SchedulingDateVO, SchedulingDateForm, SchedulingDateQuery } from '@/api/renyuan/schedulingDate/types'; + +/** + * 查询运维-排班时间类型列表 + * @param query + * @returns {*} + */ + +export const listSchedulingDate = (query?: SchedulingDateQuery): AxiosPromise => { + return request({ + url: '/ops/personnel/schedulingDate/list', + method: 'get', + params: query + }); +}; + +/** + * 查询运维-排班时间类型详细 + * @param id + */ +export const getSchedulingDate = (id: string | number): AxiosPromise => { + return request({ + url: '/ops/personnel/schedulingDate/' + id, + method: 'get' + }); +}; + +/** + * 新增运维-排班时间类型 + * @param data + */ +export const addSchedulingDate = (data: SchedulingDateForm) => { + return request({ + url: '/ops/personnel/schedulingDate', + method: 'post', + data: data + }); +}; + +/** + * 修改运维-排班时间类型 + * @param data + */ +export const updateSchedulingDate = (data: SchedulingDateForm) => { + return request({ + url: '/ops/personnel/schedulingDate', + method: 'put', + data: data + }); +}; + +/** + * 删除运维-排班时间类型 + * @param id + */ +export const delSchedulingDate = (id: string | number | Array) => { + return request({ + url: '/ops/personnel/schedulingDate/' + id, + method: 'delete' + }); +}; diff --git a/src/api/renyuan/schedulingDate/types.ts b/src/api/renyuan/schedulingDate/types.ts new file mode 100644 index 0000000..33ee171 --- /dev/null +++ b/src/api/renyuan/schedulingDate/types.ts @@ -0,0 +1,86 @@ +export interface SchedulingDateVO { + /** + * id + */ + id: string | number; + + /** + * 排班名称 + */ + schedulingName: string; + + /** + * 开始时间 + */ + startTime: string; + + /** + * 结束时间 + */ + endTime: string; + + /** + * 部门ID + */ + projectId?: string | number; + +} + +export interface SchedulingDateForm extends BaseEntity { + /** + * id + */ + id?: string | number; + + /** + * 排班名称 + */ + schedulingName?: string; + + /** + * 开始时间 + */ + startTime?: string; + + /** + * 结束时间 + */ + endTime?: string; + + /** + * 部门ID + */ + projectId?: string | number; + +} + +export interface SchedulingDateQuery extends PageQuery { + + /** + * 排班名称 + */ + schedulingName?: string; + + /** + * 开始时间 + */ + startTime?: string; + + /** + * 结束时间 + */ + endTime?: string; + + /** + * 部门ID + */ + projectId?: string | number; + + /** + * 日期范围参数 + */ + params?: any; +} + + + diff --git a/src/api/securitySurveillance/index.js b/src/api/securitySurveillance/index.js new file mode 100644 index 0000000..1ec5c7e --- /dev/null +++ b/src/api/securitySurveillance/index.js @@ -0,0 +1,16 @@ +import request from '@/utils/request'; +// 获取萤石云Token +export function getToken() { + return request({ + url: '/ops/monitoriing/getToken', + method: 'get', + }) +} +// 获取摄像头列表 +export function getMonitoringList(data) { + return request({ + url: '/ops/monitoriing/getMonitoringList', + method: 'post', + data + }) +} diff --git a/src/api/wuziguanli/beijian/index.ts b/src/api/wuziguanli/beijian/index.ts new file mode 100644 index 0000000..a066032 --- /dev/null +++ b/src/api/wuziguanli/beijian/index.ts @@ -0,0 +1,63 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { BeipinBeijianVO, BeipinBeijianForm, BeipinBeijianQuery } from '@/api/wuziguanli/beijian/types'; + +/** + * 查询运维-物资-备品配件列表 + * @param query + * @returns {*} + */ + +export const listBeipinBeijian = (query?: BeipinBeijianQuery): AxiosPromise => { + return request({ + url: '/ops/beipinBeijian/list', + method: 'get', + params: query + }); +}; + +/** + * 查询运维-物资-备品配件详细 + * @param id + */ +export const getBeipinBeijian = (id: string | number): AxiosPromise => { + return request({ + url: '/ops/beipinBeijian/' + id, + method: 'get' + }); +}; + +/** + * 新增运维-物资-备品配件 + * @param data + */ +export const addBeipinBeijian = (data: BeipinBeijianForm) => { + return request({ + url: '/ops/beipinBeijian', + method: 'post', + data: data + }); +}; + +/** + * 修改运维-物资-备品配件 + * @param data + */ +export const updateBeipinBeijian = (data: BeipinBeijianForm) => { + return request({ + url: '/ops/beipinBeijian', + method: 'put', + data: data + }); +}; + +/** + * 删除运维-物资-备品配件 + * @param id + */ +export const delBeipinBeijian = (id: string | number | Array) => { + return request({ + url: '/ops/beipinBeijian/' + id, + method: 'delete' + }); +}; diff --git a/src/api/wuziguanli/beijian/types.ts b/src/api/wuziguanli/beijian/types.ts new file mode 100644 index 0000000..d6db1ca --- /dev/null +++ b/src/api/wuziguanli/beijian/types.ts @@ -0,0 +1,131 @@ +export interface BeipinBeijianVO { + /** + * id + */ + id: string | number; + + /** + * 项目id + */ + projectId: string | number; + + /** + * 备件编号 + */ + beijianNumber: string; + + /** + * 备件名称 + */ + beijianName: string; + + /** + * 设备类型 + */ + shebeiType: string; + + /** + * 规格型号 + */ + guigexinghao: string; + + /** + * 库存状态(待定) + */ + kucunStatus: string; + + /** + * 库存数量 + */ + kucunCount: number; + +} + +export interface BeipinBeijianForm extends BaseEntity { + /** + * id + */ + id?: string | number; + + /** + * 项目id + */ + projectId?: string | number; + + /** + * 备件编号 + */ + beijianNumber?: string; + + /** + * 备件名称 + */ + beijianName?: string; + + /** + * 设备类型 + */ + shebeiType?: string; + + /** + * 规格型号 + */ + guigexinghao?: string; + + /** + * 库存状态(待定) + */ + kucunStatus?: string; + + /** + * 库存数量 + */ + kucunCount?: number; + +} + +export interface BeipinBeijianQuery extends PageQuery { + + /** + * 项目id + */ + projectId?: string | number; + + /** + * 备件编号 + */ + beijianNumber?: string; + + /** + * 备件名称 + */ + beijianName?: string; + + /** + * 设备类型 + */ + shebeiType?: string; + + /** + * 规格型号 + */ + guigexinghao?: string; + + /** + * 库存状态(待定) + */ + kucunStatus?: string; + + /** + * 库存数量 + */ + kucunCount?: number; + + /** + * 日期范围参数 + */ + params?: any; +} + + + diff --git a/src/api/wuziguanli/caigouPlan/index.ts b/src/api/wuziguanli/caigouPlan/index.ts new file mode 100644 index 0000000..ba6a719 --- /dev/null +++ b/src/api/wuziguanli/caigouPlan/index.ts @@ -0,0 +1,56 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { CaigouPlanVO, CaigouPlanForm, CaigouPlanQuery } from '@/api/wuziguanli/caigouPlan/types'; + +/** + * 查询运维-物资-采购计划单列表 + * @param query + * @returns {*} + */ + +export const listCaigouPlan = (query?: CaigouPlanQuery): AxiosPromise => { + return request({ + url: '/ops/caigouPlan/list', + method: 'get', + params: query + }); +}; + +/** + * 查询采购商列表 + * @param query + * @returns {*} + */ + +export const getSupplierList = (data:any): AxiosPromise => { + return request({ + url: '/ops/tenderSupplierInput/getList', + method: 'get', + params: data + }); +}; + +/** + * 新增运维-物资-采购计划单 + * @param data + * @returns {*} + */ +export const addCaigouPlan = (data: CaigouPlanForm): AxiosPromise => { + return request({ + url: '/ops/caigouPlan', + method: 'post', + data: data + }); +}; + +/** + * 查询运维-物资-采购计划单详情 + * @param id + * @returns {*} + */ +export const caigouPlanDetail = (id: string | number): AxiosPromise => { + return request({ + url: `/ops/caigouPlan/`+id, + method: 'get' + }); +}; diff --git a/src/api/wuziguanli/caigouPlan/types.ts b/src/api/wuziguanli/caigouPlan/types.ts new file mode 100644 index 0000000..83d1196 --- /dev/null +++ b/src/api/wuziguanli/caigouPlan/types.ts @@ -0,0 +1,558 @@ +export interface CaigouPlanVO { + /** + * id + */ + id: string | number; + + /** + * 项目id + */ + projectId: string | number; + + /** + * 计划名称 + */ + jihuaName: string; + + /** + * 计划编号 + */ + jihuaBianhao: string; + + /** + * 采购单位(当前登录人部门) + */ + caigouDanwei: number; + + /** + * 采购单位名称 + */ + caigouDanweiName: string; + + /** + * 经办人 + */ + jingbanren: number; + + /** + * 经办人名称 + */ + jingbanrenName: string; + + /** + * 合同类型 + */ + hetonType: string; + + /** + * 采购类型 + */ + caigouType: string; + + /** + * 仓库地址 + */ + cangkuUrl: string; + + /** + * 合同名称 + */ + hetonName: string; + + /** + * 供应商id + */ + gonyingshangId: string | number; + + /** + * 出货时间 + */ + chuhuoTime: string; + + /** + * 付款条件 + */ + fukuantiaojian: string; + + /** + * 发票开具方式 + */ + fapiaoKjfs: string; + + /** + * 计划状态 + */ + status: string; + + /** + * 审核状态 + */ + shenheStatus: string; + + /** + * 预计金额 + */ + yujiJine: number; + + /** + * 实际采购金额 + */ + shijiJine: number; + /** + * 文件id + */ + fileId: string | number; + + /** + * 文件地址 + */ + fileUrl: string; + + /** + * 文件名称 + */ + fileName: string; + + /** + * 采购申请计划id + */ + caigouPlanId: string | number; + + /** + * 产品名称 + */ + chanpinName: string; + + /** + * 产品型号 + */ + chanpinType: string; + + /** + * 产品单价 + */ + chanpinMonovalent: number; + + /** + * 购买数量 + */ + goumaiNumber: number; + + /** + * 单位 + */ + danwei: string; + + /** + * 用途 + */ + yontu: string; + + /** + * 总价 + */ + totalPrice: number; + /** + * 申请时间 + */ + createTime?: string; + /** + * 出货时间 + */ + chouhuoTime?: string; + /** + * 采购申请计划文件 新增 + */ + opsCaigouPlanFilesBos?: Array; + /** + * 采购申请计划产品 新增 + */ + opsCaigouPlanChanpinBos?:Array; + + /** + * 采购申请计划产品 查询 + */ + opsCaigouPlanChanpinVos?: Array; + + /** + * 采购申请计划文件 查询 + */ + opsCaigouPlanFilesVos?: Array; + +} + +export interface CaigouPlanForm extends BaseEntity { + /** + * id + */ + id?: string | number; + + /** + * 项目id + */ + projectId?: string | number; + + /** + * 计划名称 + */ + jihuaName?: string; + + /** + * 计划编号 + */ + jihuaBianhao?: string; + + /** + * 采购单位(当前登录人部门) + */ + caigouDanwei?: number; + + /** + * 采购单位名称 + */ + caigouDanweiName?: string; + + /** + * 经办人 + */ + jingbanren?: number; + + /** + * 经办人名称 + */ + jingbanrenName?: string; + + /** + * 合同类型 + */ + hetonType?: string; + + /** + * 采购类型 + */ + caigouType?: string; + + /** + * 仓库地址 + */ + cangkuUrl?: string; + + /** + * 合同名称 + */ + hetonName?: string; + + /** + * 供应商id + */ + gonyingshangId?: string | number; + + /** + * 出货时间 + */ + chuhuoTime?: string; + + /** + * 付款条件 + */ + fukuantiaojian?: string; + + /** + * 发票开具方式 + */ + fapiaoKjfs?: string; + + /** + * 计划状态 + */ + status?: string; + + /** + * 审核状态 + */ + shenheStatus?: string; + + /** + * 预计金额 + */ + yujiJine?: number; + + /** + * 实际采购金额 + */ + shijiJine?: number; + /** + * 采购申请计划id + */ + caigouPlanId?: string | number; + + /** + * 文件id + */ + fileId?: string | number; + + /** + * 文件地址 + */ + fileUrl?: string; + + /** + * 文件名称 + */ + fileName?: string; + /** + * 产品名称 + */ + chanpinName?: string; + + /** + * 产品型号 + */ + chanpinType?: string; + + /** + * 产品单价 + */ + chanpinMonovalent?: number; + + /** + * 购买数量 + */ + goumaiNumber?: number; + + /** + * 单位 + */ + danwei?: string; + + /** + * 用途 + */ + yontu?: string; + + /** + * 总价 + */ + totalPrice?: number; + /** + * 采购申请计划文件 新增 + */ + opsCaigouPlanFilesBos?: Array; + /** + * 采购申请计划产品 新增 + */ + opsCaigouPlanChanpinBos?:Array; + + /** + * 采购申请计划产品 查询 + */ + opsCaigouPlanChanpinVos?: Array; + + /** + * 采购申请计划文件 查询 + */ + opsCaigouPlanFilesVos?: Array; + /** + * 申请时间 + */ + createTime?: string; + /** + * 出货时间 + */ + chouhuoTime?: string; + + +} + +export interface CaigouPlanQuery extends PageQuery { + + /** + * 项目id + */ + projectId?: string | number; + + /** + * 计划名称 + */ + jihuaName?: string; + + /** + * 计划编号 + */ + jihuaBianhao?: string; + + /** + * 采购单位(当前登录人部门) + */ + caigouDanwei?: number; + + /** + * 采购单位名称 + */ + caigouDanweiName?: string; + + /** + * 经办人 + */ + jingbanren?: number; + + /** + * 经办人名称 + */ + jingbanrenName?: string; + + /** + * 合同类型 + */ + hetonType?: string; + + /** + * 采购类型 + */ + caigouType?: string; + + /** + * 仓库地址 + */ + cangkuUrl?: string; + + /** + * 合同名称 + */ + hetonName?: string; + + /** + * 供应商id + */ + gonyingshangId?: string | number; + + /** + * 出货时间 + */ + chuhuoTime?: string; + + /** + * 付款条件 + */ + fukuantiaojian?: string; + + /** + * 发票开具方式 + */ + fapiaoKjfs?: string; + + /** + * 计划状态 + */ + status?: string; + + /** + * 审核状态 + */ + shenheStatus?: string; + + /** + * 预计金额 + */ + yujiJine?: number; + + /** + * 实际采购金额 + */ + shijiJine?: number; + + /** + * 日期范围参数 + */ + params?: any; + /** + * 采购申请计划id + */ + caigouPlanId?: string | number; + + /** + * 文件id + */ + fileId?: string | number; + + /** + * 文件地址 + */ + fileUrl?: string; + + /** + * 文件名称 + */ + fileName?: string; + + /** + * 产品名称 + */ + chanpinName?: string; + + /** + * 产品型号 + */ + chanpinType?: string; + + /** + * 产品单价 + */ + chanpinMonovalent?: number; + + /** + * 购买数量 + */ + goumaiNumber?: number; + + /** + * 单位 + */ + danwei?: string; + + /** + * 用途 + */ + yontu?: string; + + /** + * 总价 + */ + totalPrice?: number; + /** + * 采购申请计划文件 新增 + */ + opsCaigouPlanFilesBos?: Array; + /** + * 采购申请计划产品 新增 + */ + opsCaigouPlanChanpinBos?:Array; + + /** + * 采购申请计划产品 查询 + */ + opsCaigouPlanChanpinVos?: Array; + + /** + * 采购申请计划文件 查询 + */ + opsCaigouPlanFilesVos?: Array; + /** + * 申请时间 + */ + createTime?: string; + /** + * 出货时间 + */ + chouhuoTime?: string; +} + + + + + + + + + + diff --git a/src/api/wuziguanli/churuku/index.ts b/src/api/wuziguanli/churuku/index.ts new file mode 100644 index 0000000..98f16ff --- /dev/null +++ b/src/api/wuziguanli/churuku/index.ts @@ -0,0 +1,76 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { ChurukudanVO, ChurukudanForm, ChurukudanQuery } from '@/api/wuziguanli/churuku/types'; + +/** + * 查询运维-物资-出入库单管理列表 + * @param query + * @returns {*} + */ + +export const listChurukudan = (query?: ChurukudanQuery): AxiosPromise => { + return request({ + url: '/ops/churukudan/list', + method: 'get', + params: query + }); +}; + +/** + * 查询运维-物资-出入库单管理详细 + * @param id + */ +export const getChurukudan = (id: string | number): AxiosPromise => { + return request({ + url: '/ops/churukudan/' + id, + method: 'get' + }); +}; + +/** + * 新增运维-物资-出入库单管理 + * @param data + */ +export const addChurukudan = (data: ChurukudanForm) => { + return request({ + url: '/ops/churukudan', + method: 'post', + data: data + }); +}; + +/** + * 修改运维-物资-出入库单管理 + * @param data + */ +export const updateChurukudan = (data: ChurukudanForm) => { + return request({ + url: '/ops/churukudan', + method: 'put', + data: data + }); +}; + +/** + * 删除运维-物资-出入库单管理 + * @param id + */ +export const delChurukudan = (id: string | number | Array) => { + return request({ + url: '/ops/churukudan/' + id, + method: 'delete' + }); +}; + +/** + * 运维-物资-出入库单柱状图 + * @param query + * @returns {*} + */ +export const getChuRuKuCountBar = (data:any): AxiosPromise => { + return request({ + url: '/ops/churukudan/getChuRuKuCount', + method: 'get', + params: data + }); +}; diff --git a/src/api/wuziguanli/churuku/types.ts b/src/api/wuziguanli/churuku/types.ts new file mode 100644 index 0000000..d9a539b --- /dev/null +++ b/src/api/wuziguanli/churuku/types.ts @@ -0,0 +1,154 @@ +export interface ChurukudanVO { + /** + * id + */ + id: string | number; + /** + * 项目id + */ + projectId: string | number; + /** + * 单据编号 + */ + danjvNumber: string; + + /** + * 设备类型 + */ + shebeiType: string; + + /** + * 经手人id + */ + jingshourenId: string | number; + + /** + * 经手人 + */ + jingshourenName: string; + + /** + * 联系电话 + */ + contactNumber: string; + + /** + * 总数量 + */ + zonNumber: number; + + /** + * 审核状态 + */ + shenheStatus: string; + + /** + * 单据状态(1、出库单,2入库单) + */ + danjvType: string; + +} + +export interface ChurukudanForm extends BaseEntity { + /** + * id + */ + id?: string | number; + /** + * 项目id + */ + projectId: string | number; + /** + * 单据编号 + */ + danjvNumber?: string; + + /** + * 设备类型 + */ + shebeiType?: string; + + /** + * 经手人id + */ + jingshourenId?: string | number; + + /** + * 经手人 + */ + jingshourenName?: string; + + /** + * 联系电话 + */ + contactNumber?: string; + + /** + * 总数量 + */ + zonNumber?: number; + + /** + * 审核状态 + */ + shenheStatus?: string; + + /** + * 单据状态(1、出库单,2入库单) + */ + danjvType?: string; + + /** + * 审核状态 + */ + auditStatus?: string; + +} + +export interface ChurukudanQuery extends PageQuery { + /** + * 项目id + */ + projectId?: string | number; + /** + * 单据编号 + */ + danjvNumber?: string; + + /** + * 设备类型 + */ + shebeiType?: string; + + /** + * 审核状态 + */ + shenheStatus?: string; + + /** + * 单据状态(1、出库单,2入库单) + */ + danjvType?: string; + + /** + * 审核状态 + */ + auditStatus?: string; + + /** + * 开始日期 + */ + startDate?: string; + + /** + * 结束日期 + */ + endDate?: string; + /** + * 日期范围参数 + */ + params?: any; +} + + + diff --git a/src/assets/styles/1.html b/src/assets/styles/1.html new file mode 100644 index 0000000..880c800 --- /dev/null +++ b/src/assets/styles/1.html @@ -0,0 +1,16 @@ +
+
+ +
+
+ + \ No newline at end of file diff --git a/src/assets/styles/dialog.scss b/src/assets/styles/dialog.scss index a00f472..4161719 100644 --- a/src/assets/styles/dialog.scss +++ b/src/assets/styles/dialog.scss @@ -1,16 +1,230 @@ +.no-header-dialog { + height: auto; +} + #custom-dialog { padding: 0; + top: 0; .el-dialog__header { - display: none; + // display: none; + border: none; + padding: 0; + margin: 0; } .el-dialog__body { padding: 0 !important; + // height: auto !important; + max-height: none !important; } - .alert-content { - padding: 80px; + .status-alert-content { background: linear-gradient(180deg, rgba(0, 119, 255, 0.23) 0%, rgba(255, 255, 255, 0) 100%); + display: flex; + align-items: center; + justify-content: space-between; + padding-left: 20px; + padding-right: 50px; + + .info { + display: flex; + flex-direction: column; + gap: 10px; + + .title { + color: rgba(0, 30, 59, 1); + font-size: 20px; + font-weight: bold; + } + + .name { + color: rgba(0, 30, 59, 1); + font-weight: bold; + } + + .icon { + display: flex; + align-items: center; + font-size: 12px; + + .last-update { + // font-size: ; + color: rgba(113, 128, 150, 1); + margin-left: 15px; + } + + svg { + width: 15px; + height: 15px; + } + + .text { + font-size: 12px; + margin-left: 10px; + } + + + } + + + } + + .img { + width: 240px; + height: 240px; + + img { + width: 100%; + height: 100%; + display: block; + } + } + + .info-box { + font-size: 12px; + display: flex; + gap: 40px; + margin-left: 30px; + + .item { + display: flex; + flex-direction: column; + gap: 20px; + } + + .title { + color: rgba(113, 128, 150, 1); + margin-bottom: 10px; + } + + .text { + font-weight: bold; + color: rgba(0, 30, 59, 1); + } + } + } + + .status-alert-content .success { + color: rgba(0, 184, 122, 1) !important; + } + + .status-alert-content .orange { + color: rgba(255, 153, 0, 1) !important; + } + + .status-alert-content .red { + color: rgba(227, 39, 39, 1) !important; + } + + .back { + background-image: url("/assets/dialog2.png"); + background-size: 455px; + background-repeat: no-repeat; + background-position: 780px -65px; + } + + .alarm-alert-content { + background: linear-gradient(180deg, rgba(255, 87, 51, 0.23) 0%, rgba(255, 219, 219, 0) 100%); + padding-left: 50px; + padding-right: 50px; + padding-bottom: 50px; + + .top { + display: flex; + gap: 50px; + align-items: center; + padding: 50px 0; + padding-bottom: 20px; + + + .info { + display: flex; + flex-direction: column; + gap: 15px; + + .title { + color: rgba(227, 39, 39, 1); + font-size: 28px; + font-weight: bold; + } + + .alarm-id { + color: rgba(0, 30, 59, 1); + font-size: 18px; + font-weight: bold; + } + + .status-box { + display: flex; + gap: 20px; + + .status { + font-weight: bold; + } + + .last-update { + color: rgba(113, 128, 150, 1); + } + } + } + + .info-box { + .list { + display: flex; + gap: 90px; + + .item { + display: flex; + flex-direction: column; + gap: 30px; + + .title { + color: rgba(113, 128, 150, 1); + margin-bottom: 10px; + } + + .text { + color: rgba(0, 30, 59, 1); + font-weight: bold; + } + } + } + } + } + + .progress-box { + .title { + color: rgba(0, 30, 59, 1); + font-weight: bold; + font-size: 20px; + margin-bottom: 24px; + } + } + + .notice-box { + display: flex; + justify-content: space-between; + } + + .item { + display: flex; + flex-direction: column; + gap: 10px; + color: rgba(113, 128, 150, 1); + + .time { + font-size: 12px; + } + } + + .title.active { + color: rgba(247, 89, 10, 1); + font-weight: bold; + } + } + + .alarm-alert-content .red { + color: rgba(227, 39, 39, 1) !important; } } \ No newline at end of file diff --git a/src/components/FileUpload/index.vue b/src/components/FileUpload/index.vue index 1767b1b..13093ec 100644 --- a/src/components/FileUpload/index.vue +++ b/src/components/FileUpload/index.vue @@ -3,6 +3,7 @@ - 选取文件 + 选取文件 +
+ +
+ 拖拽文件到此处,或 点击上传 +
+
@@ -63,11 +70,13 @@ const props = defineProps({ // 是否显示提示 isShowTip: propTypes.bool.def(true), // 禁用组件(仅查看文件) - disabled: propTypes.bool.def(false) + disabled: propTypes.bool.def(false), + // 是否开启拖拽上传 + isDrag: propTypes.bool.def(false) }); const { proxy } = getCurrentInstance() as ComponentInternalInstance; -const emit = defineEmits(['update:modelValue']); +const emit = defineEmits(['update:modelValue', 'update:fileList']); const number = ref(0); const uploadList = ref([]); @@ -80,6 +89,7 @@ const showTip = computed(() => props.isShowTip && (props.fileType || props.fileS const fileUploadRef = ref(); + // 监听 fileType 变化,更新 fileAccept const fileAccept = computed(() => props.fileType.map((type) => `.${type}`).join(',')); @@ -164,6 +174,7 @@ const handleUploadSuccess = (res: any, file: UploadFile) => { url: res.data.url, ossId: res.data.ossId }); + uploadedSuccessfully(); } else { number.value--; @@ -189,6 +200,7 @@ const uploadedSuccessfully = () => { uploadList.value = []; number.value = 0; emit('update:modelValue', listToString(fileList.value)); + emit('update:fileList', fileList.value); proxy?.$modal.closeLoading(); } }; diff --git a/src/components/TitleComponent/index.vue b/src/components/TitleComponent/index.vue index 8b44219..4eddf81 100644 --- a/src/components/TitleComponent/index.vue +++ b/src/components/TitleComponent/index.vue @@ -1,5 +1,5 @@ + + diff --git a/src/views/camera/index.vue b/src/views/camera/index.vue new file mode 100644 index 0000000..a052ae5 --- /dev/null +++ b/src/views/camera/index.vue @@ -0,0 +1,371 @@ + + + diff --git a/src/views/integratedManage/attendManage/components/attendTrend.vue b/src/views/integratedManage/attendManage/components/attendTrend.vue index 182fe0b..3a5f3e5 100644 --- a/src/views/integratedManage/attendManage/components/attendTrend.vue +++ b/src/views/integratedManage/attendManage/components/attendTrend.vue @@ -242,7 +242,7 @@ onMounted(() => { background-color: #fff; border-radius: 8px; overflow: hidden; - height: 500px; + height: 435px; width: 100%; padding: 10px; box-sizing: border-box; @@ -288,7 +288,7 @@ onMounted(() => { @media (max-width: 768px) { .chart-container { - height: 450px; + height: 435px; } } diff --git a/src/views/integratedManage/attendManage/components/renyuanguanliDialog.vue b/src/views/integratedManage/attendManage/components/renyuanguanliDialog.vue new file mode 100644 index 0000000..5aae012 --- /dev/null +++ b/src/views/integratedManage/attendManage/components/renyuanguanliDialog.vue @@ -0,0 +1,290 @@ + + + + + \ No newline at end of file diff --git a/src/views/integratedManage/attendManage/components/renyuanpaiban.vue b/src/views/integratedManage/attendManage/components/renyuanpaiban.vue index 84e4684..0fb3fa5 100644 --- a/src/views/integratedManage/attendManage/components/renyuanpaiban.vue +++ b/src/views/integratedManage/attendManage/components/renyuanpaiban.vue @@ -6,10 +6,11 @@ max-height="600" stripe border + v-loading="loading" > - + @@ -26,97 +27,251 @@
{{ dateInfo.weekDay }}
+ + + + diff --git a/src/views/integratedManage/attendManage/components/leftBox/approval.vue b/src/views/integratedManage/attendManage/components/rightBox/approval.vue similarity index 100% rename from src/views/integratedManage/attendManage/components/leftBox/approval.vue rename to src/views/integratedManage/attendManage/components/rightBox/approval.vue diff --git a/src/views/integratedManage/attendManage/components/leftBox/calendar.vue b/src/views/integratedManage/attendManage/components/rightBox/calendar.vue similarity index 100% rename from src/views/integratedManage/attendManage/components/leftBox/calendar.vue rename to src/views/integratedManage/attendManage/components/rightBox/calendar.vue diff --git a/src/views/integratedManage/attendManage/components/leftBox/todayAttend.vue b/src/views/integratedManage/attendManage/components/rightBox/todayAttend.vue similarity index 100% rename from src/views/integratedManage/attendManage/components/leftBox/todayAttend.vue rename to src/views/integratedManage/attendManage/components/rightBox/todayAttend.vue diff --git a/src/views/integratedManage/attendManage/index.vue b/src/views/integratedManage/attendManage/index.vue index bee322c..5c67d86 100644 --- a/src/views/integratedManage/attendManage/index.vue +++ b/src/views/integratedManage/attendManage/index.vue @@ -1,4 +1,5 @@ \ No newline at end of file diff --git a/src/views/materialManagement/inventoryManagement.vue b/src/views/materialManagement/inventoryManagement.vue index 04aeec7..e291202 100644 --- a/src/views/materialManagement/inventoryManagement.vue +++ b/src/views/materialManagement/inventoryManagement.vue @@ -1,7 +1,7 @@ - \ No newline at end of file diff --git a/src/views/materialManagement/procurementPlan.vue b/src/views/materialManagement/procurementPlan.vue index 854bd7c..74d8d6d 100644 --- a/src/views/materialManagement/procurementPlan.vue +++ b/src/views/materialManagement/procurementPlan.vue @@ -1,6 +1,6 @@ - \ No newline at end of file diff --git a/src/views/pvSystem/alarmAnalysis/components/data.vue b/src/views/pvSystem/alarmAnalysis/components/data.vue index 19dbe4a..0c51e85 100644 --- a/src/views/pvSystem/alarmAnalysis/components/data.vue +++ b/src/views/pvSystem/alarmAnalysis/components/data.vue @@ -9,64 +9,17 @@ 截止至2025/06/30 12:00 - - - +
-
{{ props.dashboardData.todayAlarmTotal }}
-
今日报警总数
-
较上周 - {{ props.dashboardData[card.key] }}
+
{{ card.label }}
+
较上周 + 上升 下降{{ - props.dashboardData.updates.todayAlarmTotal.value }} - -
-
-
- - - -
-
{{ props.dashboardData.unhandledAlarms }}
-
未处理报警
-
较上周 - 上升 - 下降{{ - props.dashboardData.updates.unhandledAlarms.value }} -
-
-
- - - -
-
{{ props.dashboardData.handledAlarms }}
-
已处理报警
-
较上周 - 上升 - 下降{{ - props.dashboardData.updates.handledAlarms.value }} -
-
-
- - - -
-
{{ props.dashboardData.avgProcessTime }}
-
平均处理时长
-
- 较上周 - - 上升 - 下降{{ - props.dashboardData.updates.avgProcessTime.value }} + props.dashboardData.updates[card.updateKey].value }}
@@ -176,6 +129,30 @@ const props = defineProps({ } }); +// 卡片数据配置 +const cardData = [ + { + key: 'todayAlarmTotal', + label: '今日报警总数', + updateKey: 'todayAlarmTotal' + }, + { + key: 'unhandledAlarms', + label: '未处理报警', + updateKey: 'unhandledAlarms' + }, + { + key: 'handledAlarms', + label: '已处理报警', + updateKey: 'handledAlarms' + }, + { + key: 'avgProcessTime', + label: '平均处理时长', + updateKey: 'avgProcessTime' + } +]; + const timeRange = ref('7days'); const alarmCountRef = ref(null); const processEfficiencyRef = ref(null); diff --git a/src/views/pvSystem/alarmAnalysis/components/pie.vue b/src/views/pvSystem/alarmAnalysis/components/pie.vue index 0431d23..a45576e 100644 --- a/src/views/pvSystem/alarmAnalysis/components/pie.vue +++ b/src/views/pvSystem/alarmAnalysis/components/pie.vue @@ -1,11 +1,13 @@ @@ -27,6 +29,7 @@ const selectedTimeRange = ref('today'); const pieChartRef = ref(null); let chartInstance = null; + onMounted(() => { initChart(); window.addEventListener('resize', handleResize); diff --git a/src/views/pvSystem/mainSystemDiagram/index.vue b/src/views/pvSystem/mainSystemDiagram/index.vue index 5114f37..7aeb4b9 100644 --- a/src/views/pvSystem/mainSystemDiagram/index.vue +++ b/src/views/pvSystem/mainSystemDiagram/index.vue @@ -2,7 +2,7 @@
- + diff --git a/src/views/pvSystem/siteOverview/components/CustomDialogAlarm.vue b/src/views/pvSystem/siteOverview/components/CustomDialogAlarm.vue new file mode 100644 index 0000000..b549b5d --- /dev/null +++ b/src/views/pvSystem/siteOverview/components/CustomDialogAlarm.vue @@ -0,0 +1,95 @@ + + + \ No newline at end of file diff --git a/src/views/pvSystem/siteOverview/components/CustomDialogStatus.vue b/src/views/pvSystem/siteOverview/components/CustomDialogStatus.vue new file mode 100644 index 0000000..79cac99 --- /dev/null +++ b/src/views/pvSystem/siteOverview/components/CustomDialogStatus.vue @@ -0,0 +1,102 @@ + + + \ No newline at end of file diff --git a/src/views/pvSystem/siteOverview/components/qixiang.vue b/src/views/pvSystem/siteOverview/components/qixiang.vue index 8606c6f..1e23630 100644 --- a/src/views/pvSystem/siteOverview/components/qixiang.vue +++ b/src/views/pvSystem/siteOverview/components/qixiang.vue @@ -2,13 +2,16 @@
-
- + style="display: flex; flex-direction: column; align-items: center; background-color: #fafafa; border-radius: 10px; padding-bottom: 40px;padding: 20px;"> +
+
+ +
+
31℃
+
晴朗
+
紫外线强度:
-
31℃
-
晴朗
-
紫外线强度:
diff --git a/src/views/pvSystem/siteOverview/components/status.vue b/src/views/pvSystem/siteOverview/components/status.vue index f99e9e3..7f027a2 100644 --- a/src/views/pvSystem/siteOverview/components/status.vue +++ b/src/views/pvSystem/siteOverview/components/status.vue @@ -1,7 +1,8 @@ - \ No newline at end of file diff --git a/src/views/securitySurveillance/index.vue b/src/views/securitySurveillance/index.vue index a0fccf8..f64a04d 100644 --- a/src/views/securitySurveillance/index.vue +++ b/src/views/securitySurveillance/index.vue @@ -24,7 +24,7 @@ - + diff --git a/src/views/shengchanManage/powerfenxi/components/detaildata.vue b/src/views/shengchanManage/powerfenxi/components/detaildata.vue index 07eb9f4..a559627 100644 --- a/src/views/shengchanManage/powerfenxi/components/detaildata.vue +++ b/src/views/shengchanManage/powerfenxi/components/detaildata.vue @@ -1,5 +1,17 @@