diff --git a/src/api/calibration/announcementManagement/index.ts b/src/api/calibration/announcementManagement/index.ts new file mode 100644 index 0000000..1455ee0 --- /dev/null +++ b/src/api/calibration/announcementManagement/index.ts @@ -0,0 +1,76 @@ +import request from '@/utils/request' +import { isFile } from '@/utils/auxiliaryFunction' +const AUTH_BASE_URL = '/api2' + +/* + * 公告管理 + * */ + +// 新增公告 +export const BusinessBulletin = (data: any) => { + const formData = new FormData() + formData.append('title', data.title) + formData.append('content', data.content) + formData.append('file', data.file) + formData.append('state', data.state) + return request({ + url: `${AUTH_BASE_URL}/business/bulletin`, + method: 'post', + data: formData, + headers: { + 'Content-Type': 'multipart/form-data' + } + }) +} + +// 编辑公告 +export const BusinessEditBulletin = (data: any) => { + const formData = new FormData() + formData.append('id', data.id) + formData.append('title', data.title) + formData.append('content', data.content) + if (isFile(data.file)) formData.append('file', data.file) + formData.append('state', data.state) + return request({ + url: `${AUTH_BASE_URL}/business/editBulletin`, + method: 'post', + data: formData, + headers: { + 'Content-Type': 'multipart/form-data' + } + }) +} + +// 公告展示 +export const BusinessBulletindetail = (data: any) => { + const formData = new FormData() + formData.append('page', data.pageNum) + formData.append('per_page', data.pageSize) + // if (data.times && data.times.length) { + // formData.append('times', data.times[0]) + // formData.append('end_time', data.times[1]) + // } + // formData.append('unit', data.unit) + return request({ + url: `${AUTH_BASE_URL}/business/bulletindetail`, + method: 'post', + data: formData, + headers: { + 'Content-Type': 'multipart/form-data' + } + }) +} + +// 删除公告 +export const BusinessDeleteBulletin = (id: string) => { + const formData = new FormData() + formData.append('id', id) + return request({ + url: `${AUTH_BASE_URL}/business/deleteBulletin`, + method: 'post', + data: formData, + headers: { + 'Content-Type': 'multipart/form-data' + } + }) +} diff --git a/src/api/calibration/personnelManagement/index.ts b/src/api/calibration/personnelManagement/index.ts index 4ddef43..ebf54f5 100644 --- a/src/api/calibration/personnelManagement/index.ts +++ b/src/api/calibration/personnelManagement/index.ts @@ -1,4 +1,4 @@ -import { isFile, isString } from '@/utils/auxiliaryFunction' +import { isFile } from '@/utils/auxiliaryFunction' import request from '@/utils/request' const AUTH_BASE_URL = '/api2' @@ -70,7 +70,6 @@ export const UserEditorialStaff = (data: any) => { formData.append('Confirmationtime', data.Confirmationtime) formData.append('Practicingcertificatetime', data.Practicingcertificatetime) formData.append('academic', JSON.stringify(data.academic)) - console.log(data.AcademicResume, data.contract, data.ApplicationForm) if (isFile(data.AcademicResume)) formData.append('AcademicResume', data.AcademicResume) if (isFile(data.contract)) formData.append('contract', data.contract) if (isFile(data.ApplicationForm)) formData.append('ApplicationForm', data.ApplicationForm) diff --git a/src/api/calibration/registrationPlatform/index.ts b/src/api/calibration/registrationPlatform/index.ts new file mode 100644 index 0000000..d27cb17 --- /dev/null +++ b/src/api/calibration/registrationPlatform/index.ts @@ -0,0 +1,75 @@ +import request from '@/utils/request' +const AUTH_BASE_URL = '/api2' + +/* + * 注册平台登记 + * */ + +// 新增注册平台登记 +export const BusinessPlatformRegistration = (data: any) => { + const formData = new FormData() + formData.append('platform', data.platform) + formData.append('number', data.number) + formData.append('password', data.password) + formData.append('username', data.username) + return request({ + url: `${AUTH_BASE_URL}/business/PlatformRegistration`, + method: 'post', + data: formData, + headers: { + 'Content-Type': 'multipart/form-data' + } + }) +} + +// 注册平台登记编辑 +export const BusinessEditPlatform = (data: any) => { + const formData = new FormData() + formData.append('id', data.id) + formData.append('platform', data.platform) + formData.append('number', data.number) + formData.append('password', data.password) + formData.append('username', data.username) + return request({ + url: `${AUTH_BASE_URL}/business/editPlatform`, + method: 'post', + data: formData, + headers: { + 'Content-Type': 'multipart/form-data' + } + }) +} + +// 注册平台登记展示 +export const BusinessPlatformDetail = (data: any) => { + const formData = new FormData() + formData.append('page', data.pageNum) + formData.append('per_page', data.pageSize) + // if (data.times && data.times.length) { + // formData.append('times', data.times[0]) + // formData.append('end_time', data.times[1]) + // } + // formData.append('unit', data.unit) + return request({ + url: `${AUTH_BASE_URL}/business/PlatformDetail`, + method: 'post', + data: formData, + headers: { + 'Content-Type': 'multipart/form-data' + } + }) +} + +// 注册平台登记删除 +export const BusinessDeletePlatform = (id: string) => { + const formData = new FormData() + formData.append('id', id) + return request({ + url: `${AUTH_BASE_URL}/business/deletePlatform`, + method: 'post', + data: formData, + headers: { + 'Content-Type': 'multipart/form-data' + } + }) +} diff --git a/src/router/index.ts b/src/router/index.ts index c8c7dd5..dbc0940 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -276,6 +276,26 @@ export const constantRoutes: RouteRecordRaw[] = [ } ] }, + // 注册平台登记 + { + path: '/filingRegistration', + name: 'FilingRegistration', + component: Layout, + meta: { + title: '注册平台登记', + icon: 'setting' + }, + children: [ + { + path: 'registrationPlatform', + name: 'RegistrationPlatform', + component: () => import('@/views/calibration/registrationPlatform/index.vue'), + meta: { + title: '注册平台登记' + } + } + ] + }, // 公告 { path: '/notice', @@ -285,12 +305,11 @@ export const constantRoutes: RouteRecordRaw[] = [ title: '公告管理', icon: 'setting' }, - redirect: '/notice/index', children: [ { - path: 'index', - name: 'NoticeIndex', - component: () => import('@/views/notice/index.vue'), + path: 'announcementManagement', + name: 'AnnouncementManagement', + component: () => import('@/views/calibration/announcementManagement/index.vue'), meta: { title: '公告管理' } diff --git a/src/utils/auxiliaryFunction/index.ts b/src/utils/auxiliaryFunction/index.ts index 777cfb2..3749d22 100644 --- a/src/utils/auxiliaryFunction/index.ts +++ b/src/utils/auxiliaryFunction/index.ts @@ -81,10 +81,31 @@ export function convertFilePathsToObject(filePaths: string | string[]): Array<{ const domain = urlObj.origin const filePart = urlObj.pathname.substring(1) // 移除开头的 / - // 分割文件名和UUID - const lastUnderscoreIndex = filePart.lastIndexOf('_') - let name = lastUnderscoreIndex > 0 ? filePart.substring(0, lastUnderscoreIndex) : filePart - const uuid = lastUnderscoreIndex > 0 ? filePart.substring(lastUnderscoreIndex + 1) : '' + // 优化文件名解析逻辑 + // 对于路径 "cd78824383f7新建 文本文档.txt" + // 我们不再强制要求下划线分隔格式,而是提取完整的文件名 + let name = '' + let uuid = '' + + // 尝试从文件名中提取 UUID(假设 UUID 是文件名开头的一段字母数字组合) + const uuidMatch = filePart.match(/^([a-f0-9]+)/i) + if (uuidMatch && uuidMatch[1]) { + uuid = uuidMatch[1] + // 文件名是去掉 UUID 后的部分 + name = filePart.substring(uuid.length) + // 如果文件名以斜杠开头则去除 + if (name.startsWith('/')) { + name = name.substring(1) + } + } else { + // 如果没有匹配到 UUID 格式,整个作为文件名处理 + name = filePart + } + + // 如果 name 为空,则使用完整文件部分作为文件名 + if (!name) { + name = filePart + } // 解码 URL 编码的文件名 try { diff --git a/src/views/calibration/announcementManagement/components/AnnouncementForm.vue b/src/views/calibration/announcementManagement/components/AnnouncementForm.vue new file mode 100644 index 0000000..b1a79c9 --- /dev/null +++ b/src/views/calibration/announcementManagement/components/AnnouncementForm.vue @@ -0,0 +1,163 @@ + + + + + diff --git a/src/views/calibration/announcementManagement/index.vue b/src/views/calibration/announcementManagement/index.vue new file mode 100644 index 0000000..782f7f3 --- /dev/null +++ b/src/views/calibration/announcementManagement/index.vue @@ -0,0 +1,289 @@ + + + diff --git a/src/views/calibration/registrationPlatform/components/RegistrationPlatformForm.vue b/src/views/calibration/registrationPlatform/components/RegistrationPlatformForm.vue new file mode 100644 index 0000000..37a9beb --- /dev/null +++ b/src/views/calibration/registrationPlatform/components/RegistrationPlatformForm.vue @@ -0,0 +1,130 @@ + + + + + diff --git a/src/views/calibration/registrationPlatform/index.vue b/src/views/calibration/registrationPlatform/index.vue new file mode 100644 index 0000000..68356d1 --- /dev/null +++ b/src/views/calibration/registrationPlatform/index.vue @@ -0,0 +1,276 @@ + + + diff --git a/vite.config.ts b/vite.config.ts index 0a5c5b8..a2d8667 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -46,6 +46,7 @@ export default defineConfig(({ mode }: ConfigEnv) => { proxy: { '/dev-api/api2': { changeOrigin: true, + // target: 'http://47.108.113.7:8000', target: 'http://192.168.31.69:8006', rewrite: (path: string) => { return path.replace(/^\/dev-api\/api2/, '')