基因型分片上传、修改

master
贾肃 4 months ago
parent a2299cce9c
commit 5eda5444b7
  1. 4
      src/api/upload.js
  2. 12
      src/components/fileUploader/index.vue
  3. 28
      src/utils/ruoyi.js
  4. 15
      src/views/genoTypeData/genoManage/index.vue

@ -22,8 +22,8 @@ http.interceptors.response.use(response => {
* @param identifier 文件md5
* @returns {Promise<AxiosResponse<any>>}
*/
const taskInfo = (identifier) => {
return http.get(`/sys_upload_task/taskInfo/${identifier}`)
const taskInfo = (identifier,data) => {
return http.post(`/sys_upload_task/taskInfo/${identifier}`,data)
}
/**

@ -24,10 +24,10 @@ const mergeParams = ref({})
/**
* 获取一个上传任务没有则初始化一个
*/
const getTaskInfo = async (file) => {
const getTaskInfo = async (file,params) => {
let task;
const identifier = await md5(file)
const {code, data, msg} = await taskInfo(identifier)
const {code, data, msg} = await taskInfo(identifier,params)
if (code === 200) {
task = data
if (!task) {
@ -162,7 +162,13 @@ const handleUpload = (file, taskRecord, options) => {
const handleHttpRequest = async (options) => {
const file = options.file
options.indeterminate = true
const task = await getTaskInfo(file)
let params = {
fileName:file.name,
fileSize:file.size,
fileMemo:options.fileMemo,
...mergeParams.value
}
const task = await getTaskInfo(file,params)
options.indeterminate = false
if (task) {
const {finished, path, taskRecord} = task

@ -413,4 +413,32 @@ export function processDot(num, precision) {
export function formatNumber(num) {
const result = processDot(num, 2);
return result.replace(/\d(?=(\d{3})+\.)/g, "$&,");
}
/**
* 上传文件将对象转换为FormData
* @param values
*/
export function toFormData(values) {
const formData = new FormData()
return getFormData(values, formData)
}
export function getFormData(values, formData) {
if (values) {
Object.keys(values).forEach(key => {
const value = values[key]
if (value !== undefined && value !== null) {
if (Array.isArray(value)) {
formData.delete(key)
formData.append(key, JSON.stringify(values[key]))
} else if (Object.prototype.toString.call(value) === '[object Object]') {
getFormData(value, formData)
} else {
formData.delete(key)
formData.append(key, values[key])
}
}
})
}
return formData
}

@ -184,7 +184,7 @@
import TitleDivider from "@/components/titleDivider/index.vue";
import useSettingsStore from "@/store/modules/settings.js";
import UploadGeno from "@/views/genoTypeData/genoManage/uploadGeno.vue";
import {fileToBlobURL, handleTree} from "@/utils/ruoyi.js";
import {fileToBlobURL, handleTree, toFormData} from "@/utils/ruoyi.js";
import {
addGeno, delGeno, editGeno,
selClassInfo,
@ -341,12 +341,15 @@ const saveGeno = () => {
const params = {
...formData.value,
genus: undefined,
tFiles:formData.value.tFiles.filter(item => !!item.id)
tFiles:undefined,
}
if (formData.value.id){
params.tFilesString = formData.value.tFiles.filter(item => !!item.id)
}
formRef.value.validate(valid => {
if (valid) {
submitLoading.value = true
api(params).then(res => {
api(toFormData(params)).then(res => {
uploadGenoRef.value.uploadFile(res.data)
// proxy.$modal.msgSuccess('');
// getList()
@ -445,10 +448,10 @@ const handleUpdate = (row) => {
showGenoForm.value = true
}
const delFileGeno = (item) => {
if (isArray(formData.value.delFileIds)){
formData.value.delFileIds.push(item.id)
if (isArray(formData.value.delFile)){
formData.value.delFile.push(item.id)
}else{
formData.value.delFileIds = [item.id]
formData.value.delFile = [item.id]
}
}
</script>

Loading…
Cancel
Save