import { request, getRequestParams } from '@/utils/request'; import { getToken } from '@/utils/auth'; import { app } from '@/store/mutation-types.js'; import store from '@/store'; import { ref } from 'vue'; /** * 得到语言列表 */ export function GetLanguageList() { return request({ method: 'post', url: process.env.VUE_APP_FileServer, params: getRequestParams('language_manager-GetLanguageList'), data: {} }); } /** * 获取词汇包 * @param { Object } language_type 语言类型 word_key_list 词汇键值列表 */ export function GetWordPack(data) { return request({ method: 'post', url: `${process.env.VUE_APP_FileServer}?MethodName=language_manager-GetWordPack`, data }); } /** * 上传文件 * @param {String} SecurityLevel 保密级别 */ export function fileUpload(SecurityLevel, file) { const { token, isHas } = getToken(); const params = { UserCode: isHas ? token.user_code : '', UserType: isHas ? token.user_type : '', SessionID: isHas ? token.session_id : '', SecurityLevel }; const formData = new FormData(); formData.append(file.filename, file.file, file.file.name); store.commit(`app/${app.SHOW_PROGRESS}`, true); return request .postForm('/GCLSFileServer/WebFileUpload', formData, { params, transformRequest: [ (data) => { return data; } ], onUploadProgress: (progressEvent) => { store.commit(`app/${app.SET_PERCENTAGE}`, (progressEvent.loaded / progressEvent.total) * 100 || 0); }, timeout: 0 }) .finally(() => { store.commit(`app/${app.SHOW_PROGRESS}`, false); store.commit(`app/${app.SET_PERCENTAGE}`, 0); }); } /** * 可取消的上传文件 */ export function fileUploadAbort(SecurityLevel, formData) { const { token, isHas } = getToken(); let progress = ref(0); const controller = new AbortController(); return { request: request.postForm('/GCLSFileServer/WebFileUpload', formData, { params: { UserCode: isHas ? token.user_code : '', UserType: isHas ? token.user_type : '', SessionID: isHas ? token.session_id : '', SecurityLevel }, signal: controller.signal, transformRequest: [ (data) => { return data; } ], onUploadProgress: (progressEvent) => { progress.value = (progressEvent.loaded / progressEvent.total) * 100 || 0; } }), progress, controller }; } /** * 上传文件 原生类型 * @param {String} SecurityLevel 保密级别 */ export function fileUploadPrimordial(SecurityLevel, formData) { const { token, isHas } = getToken(); store.commit(`app/${app.SHOW_PROGRESS}`, true); return request .postForm('/GCLSFileServer/WebFileUpload', formData, { params: { UserCode: isHas ? token.user_code : '', UserType: isHas ? token.user_type : '', SessionID: isHas ? token.session_id : '', SecurityLevel }, transformRequest: [ (data) => { return data; } ], onUploadProgress: (progressEvent) => { store.commit(`app/${app.SET_PERCENTAGE}`, (progressEvent.loaded / progressEvent.total) * 100 || 0); }, timeout: 0 }) .finally(() => { store.commit(`app/${app.SHOW_PROGRESS}`, false); store.commit(`app/${app.SET_PERCENTAGE}`, 0); }); } /** * 下载文件 * @param {Object} data {FileID 文件ID} */ export function FileDownload(FileID) { const { token, isHas } = getToken(); const params = { UserCode: isHas ? token.user_code : '', UserType: isHas ? token.user_type : '', SessionID: isHas ? token.session_id : '', FileID }; return request({ method: 'get', url: '/GCLSFileServer/WebFileDownload', timeout: 0, responseType: 'blob', params }); } /** * 得到文件存储信息 * @param {Object} data { file_id 文件ID } */ export function GetFileStoreInfo(data) { return request({ method: 'post', url: process.env.VUE_APP_FileServer, params: getRequestParams('file_store_manager-GetFileStoreInfo'), data }); } /** * 得到系统标志 */ export function GetLogo() { const params = getRequestParams('sys_config_manager-GetLogo'); return request({ method: 'post', url: process.env.VUE_APP_FileServer, params }); } /** * 得到用户能进入的子系统列表(电脑端) */ export function GetChildSysList_CanEnter_PC() { const params = getRequestParams('login_control-GetChildSysList_CanEnter_PC'); return request({ method: 'post', url: process.env.VUE_APP_FileServer, params }); } /** * 通用请求 * @param {String} MethodName 方法名 * @param {Object} data */ export function getContentFile(MethodName, data) { const params = getRequestParams(MethodName); return request({ method: 'post', url: process.env.VUE_APP_FileServer, data, params }); } /** * 得到验证码图像 * @param { Object } data * @returns */ export function GetVerificationCodeImage(data) { const params = getRequestParams('login_control-GetVerificationCodeImage'); return request({ method: 'post', url: process.env.VUE_APP_FileServer, params, data }); } /** * 得到文件 ID 与文件信息的映射 * @param {Object} data */ export function GetFileInfoMap(data) { return request({ method: 'post', url: process.env.VUE_APP_FileServer, params: getRequestParams('file_store_manager-GetFileInfoMap'), data }); } /** * 获取文件静态资源 */ export function GetFileResource(data) { return request({ method: 'post', url: process.env.VUE_APP_FileServer, params: getRequestParams('file_resource_manager-GetFileResource'), data }); } /** * 得到分享配置 * @param {object} data * @returns {object} {exercise_share_url_path 练习题分享链接的路径} */ export function GetShareConfig(data) { return request({ method: 'post', url: process.env.VUE_APP_FileServer, params: getRequestParams('sys_config_manager-GetShareConfig'), data }); } /** * 得到 Clever 集成登录配置 */ export function GetSysConfig_CleverIntegratedLogin() { return request({ method: 'post', url: process.env.VUE_APP_FileServer, params: getRequestParams('sys_config_manager-GetSysConfig_CleverIntegratedLogin') }); }