提交 aa5439cd authored 作者: 龙菲's avatar 龙菲

优化重构新增和编辑逻辑

上级 6187ea81
/**
* 本文件用于处理文物的相关文件上传过程中的函数
* 注意不要使用this可能导致找不到等问题,内部调用内部方法时直接使用fileUploadFuctions
*/
const fileUploadFuctions = {
name: '123',
/**
* 判断文件是否上传过
* @param {File | Object} file 文件对象,可能是File可能就是普通对象
......@@ -39,11 +42,10 @@ const fileUploadFuctions = {
*/
getNeedUploadFormData($el, mediaKeys) {
const formData = new FormData();
const self = this; // 保存正确的 this
mediaKeys.map((mediaKey) => {
const currentFileList = self.getMediaFile($el, mediaKey);
currentFileList.map((file) => {
if (self.isFileRaw(file)) {
mediaKeys.forEach((mediaKey) => {
const currentFileList = fileUploadFuctions.getMediaFile($el, mediaKey);
currentFileList.forEach((file) => {
if (fileUploadFuctions.isFileRaw(file)) {
formData.append(mediaKey, file.raw);
}
});
......@@ -76,7 +78,10 @@ const fileUploadFuctions = {
getNewIdsObj(mediaKeys, requestRes) {
let newUploadedFileIdsObj = {};
mediaKeys.forEach((key) => {
newUploadedFileIdsObj[key] = this.getResIdStrByMedia(key, requestRes);
newUploadedFileIdsObj[key] = fileUploadFuctions.getResIdStrByMedia(
key,
requestRes
);
});
return newUploadedFileIdsObj;
},
......@@ -108,11 +113,11 @@ const fileUploadFuctions = {
getMergedIdsObj(oldObj, newObj, mediaKeys) {
const obj = {};
mediaKeys.forEach((key) => {
newArr = newObj[key].split(",");
oldArr = oldObj[key].split(",");
let fullArr = new Set([...newArr, ...oldArr]);
let newArr = newObj[key].split(",");
let oldArr = oldObj[key].split(",");
let fullArr = [...new Set([...newArr, ...oldArr])];
let fullStr = fullArr.join(",");
obj[key] = fullStr;
obj[key] = fullStr.substring(0, fullStr.length - 1);
});
return obj;
},
......@@ -127,9 +132,9 @@ const fileUploadFuctions = {
getDeleteFileArr(oldObj, newObj, mediaKeys) {
const arr = [];
mediaKeys.forEach((key) => {
newArr = newObj[key].split(",");
oldArr = oldObj[key].split(",");
let fullArr = new Set([...newArr, ...oldArr]);
let newArr = newObj[key].split(",");
let oldArr = oldObj[key].split(",");
let fullArr = [...new Set([...newArr, ...oldArr])];
oldArr.forEach((oldId) => {
if (!fullArr.includes(oldId)) {
arr.push(oldId);
......@@ -137,7 +142,6 @@ const fileUploadFuctions = {
});
});
return arr;
}
}
export default fileUploadFuctions
\ No newline at end of file
},
};
export default fileUploadFuctions;
const transformData = {
/**
* 转换服务器的封面数据到前端可用的封面数据
* @param {String} faceImagePressUrl 压缩过得封面
* @param {String} faceImageUrl 封面原图
* @returns {Array} el-upload组件需要的数据
*/
faceImageToClient(faceImagePressUrl, faceImageUrl) {
if (!faceImageUrl) {
return [];
}
const faceImage = [
{
name: "",
url: faceImageUrl || "",
pressUrl: faceImagePressUrl || faceImageUrl || "",
fileId: faceImage || "",
},
];
return faceImage;
},
/**
*
* @param {Array} arr 文献id数组
* @returns {String} 提交给服务器需要的以逗号隔开的字符串
*/
literatureIdArrToStr(arr) {
let str = "";
if (arr.length == 0) {
return "";
}
const result = arr.join(",");
str = result.substring(0, result.length - 1);
return str;
},
/**
*
* @param {Array} literatureVo 文献数组,每个条目是一个文献对象
* @returns {Array} 文献ID集合
*/
literatureListToIds(literatureVo) {
if (!literatureVo || literatureVo.length == 0) {
return [];
} else {
const ids = literatureVo.map((item) => {
return item.ids;
});
return ids;
}
},
/**
* 转换状态从布尔型到数值型
* @param {Boolean} statusBoolean 布尔值的状态
* @returns {Number} 提交给服务器需要的以逗号隔开的数值
*/
statusBoolToNum(statusBoolean) {
const statusNumber = statusBoolean ? 1 : 0;
return statusNumber;
},
/**
* 转换状态从数值型到布尔型
* @param {String} statusString 字符串型的状态
* @returns {Boolean} 组件需要的布尔值
*/
statusStrToBool(statusString) {
const statusBoolean = Boolean(Number(statusString));
return statusBoolean;
},
/**
* 回填馆藏单位
* @param {String} deptId 部门ID
* @param {Object} userInfo 当前用户的信息
* @returns {Array} 符合element-ui使用的数组
*/
getDeptIdArr(deptId, userInfo) {
let deptIdArr = [];
if (deptId) {
deptIdArr = [deptId];
} else if (userInfo) {
deptIdArr = [userInfo.deptId];
}
return deptIdArr;
},
/**
* 回填馆藏单位
* @param {Array} deptArr 部门ID集合
* @returns {String} 部门ID字符串
*/
getDeptIdStr(deptArr) {
let str = "";
if (deptArr.length == 0) {
return "";
}
const result = deptArr.join(",");
str = result.substring(0, result.length - 1);
return str;
},
};
export default transformData;
const checkIntro = (rule, value, callback) => {
if (!value) {
return callback(new Error("请填写馆藏介绍"));
} else {
callback();
}
};
export const rules = {
name: [{ required: true, message: "请输入文物名称", trigger: "blur" }],
deptId: [{ required: true, message: "请填写馆藏单位", trigger: "change" }],
intro: [{ required: true, validator: checkIntro, trigger: "blur" }],
};
......@@ -41,7 +41,8 @@ module.exports = {
proxy: {
'/api': {
// target: 'http://114.115.157.218:9603/api',//生产
target: 'http://192.168.1.230:9603/api',//公司服务器
target: 'http://222.85.214.245:9603/api',//公司服务器外网
// target: 'http://192.168.1.230:9603/api',//公司服务器
changeOrigin: true,
pathRewrite: {
'^/api': ''
......@@ -49,7 +50,8 @@ module.exports = {
},
'/files': {
// target: 'http://114.115.157.218:9603/files',//生产
target: 'http://192.168.1.230:9603/files',//公司服务器
target: 'http://222.85.214.245:9603/files',//公司服务器外网
// target: 'http://192.168.1.230:9603/files',//公司服务器
changeOrigin: true,
pathRewrite: {
'^/files': ''
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论