diff --git a/src/api/ops/goview.ts b/src/api/ops/goview.ts new file mode 100644 index 0000000..ed3d47c --- /dev/null +++ b/src/api/ops/goview.ts @@ -0,0 +1,133 @@ +import { request } from '@/api/request' + +// GoView 项目类型定义 +export interface GoViewProject { + id: string + identity: string + projectName: string + state: -1 | 1 // -1 未发布, 1 已发布 + createTime: string + updateTime?: string + createUserId: number + isDelete: 0 | 1 + indexImage: string + backgroundImage: string + remarks: string +} + +export interface GoViewProjectData { + id: string + projectId: string + content: string // JSON 格式字符串 + createTime: string + createUserId: string +} + +export interface GoViewFile { + id: string + fileName: string + fileSize: number + fileSuffix: string + virtualKey: string + relativePath: string + absolutePath: string + createTime: string +} + +export interface OssInfo { + BucketName: string + bucketURL: string +} + +// API 响应类型 +export interface GoViewResponse { + code: number + msg: string + data: T +} + +// 项目列表响应 +export interface ProjectListResponse { + list: GoViewProject[] + total: number +} + +/** 获取 OSS 信息 */ +export const fetchOssInfo = () => { + return request.get>('/Visual/v1/sys/getOssInfo') +} + +/** 获取项目列表 */ +export const fetchProjectList = (params?: { + page?: number + size?: number + state?: -1 | 1 +}) => { + return request.get>('/Visual/v1/project/list', { params }) +} + +/** 获取项目数据(公开接口,无需认证) */ +export const fetchProjectData = (projectId: string) => { + return request.get>('/Visual/v1/project/getData', { + params: { projectId }, + }) +} + +/** 创建项目 */ +export const createProject = (data: { + projectName: string + state: -1 | 1 + createTime?: string + createUserId?: number + isDelete?: 0 | 1 + indexImage?: string + backgroundImage?: string + remarks?: string +}) => { + return request.post>('/Visual/v1/project/create', data) +} + +/** 编辑项目 */ +export const updateProject = (data: { + identity: string + projectName?: string + indexImage?: string + backgroundImage?: string + remarks?: string +}) => { + return request.post>('/Visual/v1/project/edit', data) +} + +/** 删除项目 */ +export const deleteProject = (ids: string) => { + return request.delete>>('/Visual/v1/project/delete', { + params: { ids }, + }) +} + +/** 发布/取消发布项目 */ +export const publishProject = (data: { identity: string; state: -1 | 1 }) => { + return request.put>( + '/Visual/v1/project/publish', + data + ) +} + +/** 上传文件 */ +export const uploadFile = (file: File) => { + const formData = new FormData() + formData.append('object', file) + return request.post>('/Visual/v1/project/upload', formData, { + headers: { 'Content-Type': 'multipart/form-data' }, + }) +} + +/** 保存项目数据 */ +export const saveProjectData = (projectId: string, content: string) => { + const formData = new URLSearchParams() + formData.append('projectId', projectId) + formData.append('content', content) + return request.post>('/Visual/v1/project/save/data', formData, { + headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, + }) +} \ No newline at end of file diff --git a/src/views/ops/pages/alert/template/index.vue b/src/views/ops/pages/alert/template/index.vue index 287cc7a..770bf12 100644 --- a/src/views/ops/pages/alert/template/index.vue +++ b/src/views/ops/pages/alert/template/index.vue @@ -4,393 +4,961 @@ :form-model="formModel" :form-items="formItems" :data="tableData" - :columns="columns" + :columns="tableColumns" :loading="loading" :pagination="pagination" - title="工单模板管理" + :title="pageTitle" @update:form-model="handleFormModelUpdate" @search="handleSearch" @reset="handleReset" - @page-change="handlePageChange" @refresh="handleRefresh" + @page-change="handlePageChange" + @page-size-change="handlePageSizeChange" > - -