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

优化重构新增和编辑逻辑

上级 6187ea81
......@@ -125,7 +125,7 @@
<el-form-item label="关联文献" :label-width="formLabelWidth">
<el-select
v-model="literatureValues"
v-model="literatureIdArr"
multiple
filterable
remote
......@@ -281,7 +281,19 @@ import { addOrUpdateCulturalRelic } from "@/api/culturalRelic";
import { mapGetters } from "vuex";
import { uploadV1 } from "@/utils/file";
import { deleteFiles } from "@/api/file";
import { rules } from "./validateRules";
import fileUploadFunctions from "./fileUploadFuctions";
import transformData from "./transformData";
const {
faceImageToClient,
literatureIdArrToStr,
literatureListToIds,
statusBoolToNum,
statusStrToBool,
getDeptIdArr,
getDeptIdStr,
} = transformData;
export default {
name: "InfoEditDialog",
props: {
......@@ -314,76 +326,16 @@ export default {
},
form: {
handler(value) {
this.dialogForm = JSON.parse(JSON.stringify(value));
// 回填状态
this.dialogForm.status = Boolean(Number(this.dialogForm.status));
// debugger
// 回填媒体
// 回填媒体资源
if (this.dialogForm.faceImageUrl || this.dialogForm.faceImagePressUrl) {
this.faceImage = [
{
name: "",
url: this.dialogForm.faceImageUrl || "",
pressUrl:
this.dialogForm.faceImagePressUrl ||
this.dialogForm.faceImageUrl ||
"",
fileId: this.dialogForm.faceImage || "",
},
];
} else {
this.faceImage = [];
}
this.images = this.dialogForm.imagesVo || [];
this.videos = this.dialogForm.videosVo || [];
this.audios = this.dialogForm.audiosVo || [];
// 回填文献
if (
this.dialogForm.literatureVo &&
this.dialogForm.literatureVo.length > 0
) {
this.literatureList = this.dialogForm.literatureVo;
this.literatureValues = [];
this.dialogForm.literatureVo.forEach((lt) => {
if (this.literatureValues) {
this.literatureValues.push(lt.literatureId);
}
});
}
// 回填馆藏单位
if (this.dialogForm.deptId) {
this.dialogForm.deptId = [this.dialogForm.deptId];
} else {
// 设置默认值为当前用户的信息
const { deptId, regionCode } = this.userInfo;
this.dialogForm.deptId = deptId;
if (!value) {
return;
}
this.covertServerData(value);
},
immediate: true,
deep: true,
},
},
data() {
let that = this;
var checkFaceImage = (rule, value, callback) => {
if (that.faceImage.length == 0) {
// this.$message.info('请上传封面')
return callback(new Error("请上传封面"));
} else {
callback();
}
};
var checkIntro = (rule, value, callback) => {
if (!value) {
return callback(new Error("请填写馆藏介绍"));
} else {
callback();
}
};
return {
dialogForm: {
...this.form,
......@@ -393,7 +345,7 @@ export default {
submitLoading: false,
loadingText: "",
literatureList: [],
literatureValues: [], //文献绑定的数组,编辑回显时需要将后台传的值转成[id1,id2,]并赋值给它,新增时记得清空,提交时改成id 的str
literatureIdArr: [], //文献绑定的数组,编辑回显时需要将后台传的值转成[id1,id2,]并赋值给它,新增时记得清空,提交时改成id 的str
faceImage: [],
images: [],
videos: [],
......@@ -420,36 +372,60 @@ export default {
children: "children",
checkStrictly: true,
},
rules: {
name: [{ required: true, message: "请输入文物名称", trigger: "blur" }],
deptId: [
{ required: true, message: "请填写馆藏单位", trigger: "change" },
],
intro: [{ required: true, validator: checkIntro, trigger: "blur" }],
},
rules,
mediaKeys: ["faceImage", "images", "videos", "audios"], //表单中的媒体
};
},
async created() {
await this.$store.dispatch("dict/getDictList", [
"culturalRelicLevel",
"culturalRelicType",
"culturalRelicSourceWay",
]);
let res = await this.$store.dispatch("dict/getDictTree", [
"culturalRelicTextureType",
"culturalRelicYears",
]);
this.culturalRelicTextureType = res.culturalRelicTextureType;
this.culturalRelicYears = res.culturalRelicYears;
this.$store.dispatch("org/getMuseumTreeData", false).then((res) => {
// this.orgTreeData = res[0].children; //去掉根节点的文旅厅
this.orgTreeData = res;
});
await this.getDictList();
await this.getDictTree();
await this.getMuseumData();
},
methods: {
//回显服务器传来的数据
covertServerData(serverData) {
this.dialogForm = JSON.parse(JSON.stringify(serverData));
const {
faceImageUrl,
faceImagePressUrl,
imagesVo,
videosVo,
audiosVo,
status,
literatureVo,
deptId,
} = this.dialogForm;
this.dialogForm.status = statusStrToBool(status);
this.faceImage = faceImageToClient(faceImagePressUrl, faceImageUrl);
this.images = imagesVo || [];
this.videos = videosVo || [];
this.audios = audiosVo || [];
this.literatureIdArr = literatureListToIds(literatureVo);
this.dialogForm.deptId = getDeptIdArr(deptId, this.userInfo);
},
// 获取字典列表
async getDictList() {
await this.$store.dispatch("dict/getDictList", [
"culturalRelicLevel",
"culturalRelicType",
"culturalRelicSourceWay",
]);
},
// 获取字典树
async getDictTree() {
let res = await this.$store.dispatch("dict/getDictTree", [
"culturalRelicTextureType",
"culturalRelicYears",
]);
this.culturalRelicTextureType = res.culturalRelicTextureType;
this.culturalRelicYears = res.culturalRelicYears;
},
// 获取博物馆数据
async getMuseumData() {
let res = await this.$store.dispatch("org/getMuseumTreeData", false);
this.orgTreeData = res;
},
// 关联文献查询
searchLiterature(queryString) {
if (!queryString.trim()) {
......@@ -476,7 +452,6 @@ export default {
// 取消编辑
cancelForm() {
this.$emit("handleClose");
//TODO:如果正在编辑需要处理正在编辑
if (this.loading) {
this.loading = false;
}
......@@ -485,171 +460,132 @@ export default {
}
this.reset();
},
/**
* @param {Object} dialogForm 当前表单
* @param {Object} mediaForm 媒体文件ID键值对
* @returns {Object} submitForm 最终返回的需要提交到服务器的表单
*/
getSubmitForm(dialogForm, mediaForm) {
let submitForm = {};
submitForm = Object.assign(dialogForm, mediaForm);
return submitForm;
},
// 提交表单
handleSubmit() {
this.$refs.form.validate(async (valid, err) => {
if (valid) {
const that = this;
this.submitLoading = true;
this.uploadMediaFiles(this.mediaKeys);
return;
if (!that.dialogForm.crId) {
this.loadingText = "正在处理文物数据...请耐心等待";
// const { deptId, regionCode } = this.userInfo;
const params = Object.assign(this.dialogForm, uploadedObj);
params.literature = this.literatureValues.join(",");
params.status = this.dialogForm.status ? 1 : 0;
// 处理年份
if (params.years && params.years instanceof Array) {
params.years = params.years[params.years.length - 1];
}
// 处理质地
if (params.textureType instanceof Array) {
params.textureType =
params.textureType[params.textureType.length - 1].trim();
}
addCulturalRelic(params)
.then((res) => {
if (res.code == 0) {
setTimeout(() => {
this.submitLoading = false;
this.$emit("handleClose");
this.$emit("refresh");
this.reset();
this.$message.success("提交成功!");
}, 1000);
}
})
.then((err) => {
this.submitLoading = false;
});
} else {
this.loadingText = "正在处理文物数据...请耐心等待";
const params = { ...this.dialogForm };
params.literature = this.literatureValues.join(",");
params.status = this.dialogForm.status ? 1 : 0;
if (params.years instanceof Array) {
params.years = params.years[params.years.length - 1];
}
// 处理质地
if (params.textureType instanceof Array) {
params.textureType =
params.textureType[params.textureType.length - 1].trim();
}
// 处理馆藏单位
if (params.deptId instanceof Array) {
params.deptId = params.deptId[params.deptId.length - 1];
}
// return;
editCulturalRelic(params)
.then((res) => {
if (res.code == 0) {
setTimeout(() => {
this.submitLoading = false;
this.$emit("handleClose");
this.$emit("refresh");
this.reset();
this.$message.success("修改成功!");
}, 1000);
}
})
.catch((err) => {
this.submitLoading = false;
});
}
this.uploadMediaFiles(this.mediaKeys, this.dialogForm)
.then(async (mediaForm) => {
console.log(mediaForm);
const form = this.getSubmitForm(this.dialogForm, mediaForm);
const { status, years, textureType, deptId } = form;
const { literatureIdArr } = this;
form.status = statusBoolToNum(status);
form.literature = literatureIdArrToStr(literatureIdArr);
// 处理年份
form.years = this.processYear(years);
form.textureType = this.processTextureType(textureType);
form.deptId = getDeptIdStr(deptId);
let res = await addOrUpdateCulturalRelic(form);
this.submitLoading = false;
if (res.code == 0) {
this.$message.success("提交成功!");
}
})
.catch((err) => {
console.log(err);
this.submitLoading = false;
});
} else {
console.warn(err);
}
});
},
// 处理年份
processYear(years) {
if (years && years instanceof Array) {
return years[years.length - 1];
} else if (years) {
return years;
} else {
return "";
}
},
// 处理材质
processTextureType(textureType) {
if (textureType && textureType instanceof Array) {
return textureType[textureType.length - 1];
} else if (textureType) {
return textureType;
} else {
return "";
}
},
/**
* @param {array} fileArr 需要被删除的文件ID数组
*/
async handleDeleteFiles(fileArr) {
console.log("doing delete");
if (fileArr.length == 0) {
console.log("nothing to delete");
return;
}
await deleteFiles(fileArr);
console.log("delete done");
},
async uploadMediaFiles(mediaKeys) {
const {
getNeedUploadFormData,
getNewIdsObj,
getOldIdsObj,
getMergedIdsObj,
getDeleteFileArr,
} = fileUploadFunctions;
// formData有长度时再进行上传
const formData = getNeedUploadFormData(this, mediaKeys);
if (isFormDataHasData(formData)) {
this.loadingText = "正在上传文件...请耐心等待";
let upLoadRes = await uploadV1(formData);
if (upLoadRes.code == 0) {
// 新的已上传的文件ID对象
const newIdObj = getNewIdsObj(upLoadRes.data);
// 已存在的的文件ID对象
const oldIdObj = getOldIdsObj(mediaKeys);
const mergedIdObj = getMergedIdsObj(oldIdObj, newIdObj, mediaKeys);
// 需要被删除的文件ID对象
const deleteIdArr = getDeleteFileArr(oldIdObj, newIdObj, mediaKeys);
console.log("mergedFileIdsObj", mergedIdObj);
console.log("deleteFiles", deleteIdArr);
}
}
},
/**
* 上传对应的媒体文件,并获取媒体文件的id字符串合集
* 上传对应的媒体文件,并返回一个promise
* @param {array} dialogForm 当前需要提交的表单
* @param {array} mediaKeys 媒体keys数组
* @returns {object} 传入的媒体key对应的id字符串,多个以逗号隔开
*/
async getMediaUploadedIdsObj(mediaKeys, dialogForm) {
// 上传新的媒体
// // 获取未上传之前的所有文件id合集,包括已存在的ID和刚添加但未上传至后台的ID
// // 用于判断文件是否被删除
// function getAllFileIdsObj(mediaKeys) {
// let allFileIdsObj = {};
// mediaKeys.map((media) => {
// let files = [...this.$refs[media].getFiles()];
// let fileIds = [];
// files.map((f) => {
// if (!isFileRaw(f)) {
// fileIds.push(f.fileId);
// }
// });
// allFileIdsObj[media] = fileIds;
// return allFileIdsObj;
// });
// }
// // 1、回填之前先获取已存在的文件
// for (const key in successFilesObj) {
// // 如果文件id中含有已上传成功的某个key,如images,则将已上传成功的images推入文件id集合
// if (filesObj[key]) {
// successFilesObj[key].map((sf) => {
// filesObj[key].push(sf.fileId);
// });
// } else {
// let ids = [];
// successFilesObj[key].map((sf) => {
// ids.push(sf.fileId);
// });
// filesObj[key] = ids;
// }
// }
// // return;
// // 2、回填布展自带的媒体文件
// mediaKeys.forEach((media) => {
// if (filesObj[media]) {
// this.dialogForm[media] = filesObj[media].join(",");
// } else {
// this.dialogForm[media] = "";
// }
// });
async uploadMediaFiles(mediaKeys, dialogForm) {
console.log("doing uploadMediaFiles");
return new Promise(async (resolve, reject) => {
const {
getNeedUploadFormData,
getNewIdsObj,
getOldIdsObj,
getMergedIdsObj,
getDeleteFileArr,
isFormDataHasData,
} = fileUploadFunctions;
const formData = getNeedUploadFormData(this, mediaKeys);
try {
// formData有长度时再进行上传
if (isFormDataHasData(formData)) {
this.loadingText = "正在上传文件...请耐心等待";
let upLoadRes = await uploadV1(formData);
if (upLoadRes.code == 0) {
const newIdObj = getNewIdsObj(mediaKeys, upLoadRes);
const oldIdObj = getOldIdsObj(mediaKeys, dialogForm);
const mergedIdObj = getMergedIdsObj(
oldIdObj,
newIdObj,
mediaKeys
);
const deleteIdArr = getDeleteFileArr(
oldIdObj,
newIdObj,
mediaKeys
);
this.handleDeleteFiles(deleteIdArr);
console.log("mergedFileIdsObj", mergedIdObj);
console.log("deleteFiles", deleteIdArr);
console.log("uploadMediaFiles done");
resolve(mergedIdObj);
}
} else {
console.log("uploadMediaFiles nothing to upload");
resolve(false);
}
} catch (error) {
console.error("uploadMediaFiles error");
reject(error);
}
});
},
handleClose(done) {
......@@ -666,7 +602,7 @@ export default {
reset() {
//父组件将清空form绑定的值
// 清空文献
this.literatureValues = [];
this.literatureIdArr = [];
this.images = [];
this.videos = [];
this.audios = [];
......
/**
* 本文件用于处理文物的相关文件上传过程中的函数
* 注意不要使用this可能导致找不到等问题,内部调用内部方法时直接使用fileUploadFuctions
*/
const fileUploadFuctions = {
name: '123',
/**
* 判断文件是否上传过
* @param {File | Object} file 文件对象,可能是File可能就是普通对象
* @returns {Boolean} 文件是否上传过
*/
isFileRaw(file) {
let isFileRaw = false;
isFileRaw = file.status && file.status == "ready";
return isFileRaw;
},
/**
* 判断formData中是否有数据
* @param {FormData} formData 文件对象,可能是File可能就是普通对象
* @returns {Boolean} formData中是否有数据
*/
isFormDataHasData(formData) {
const formDataArr = Array.from(formData.entries(), ([key, prop]) => ({
[key]: {
ContentLength: typeof prop === "string" ? prop.length : prop.size,
},
}));
return formDataArr.length > 0;
},
/**
* 获取对应媒体下的文件
* @param {string} mediaKey 媒体key
* @returns {Array} 媒体对应的文件
*/
getMediaFile($el, mediaKey) {
return $el.$refs[mediaKey].getFiles();
},
/**
* 判断文件是否上传过
* @param {File | Object} file 文件对象,可能是File可能就是普通对象
* @returns {Boolean} 文件是否上传过
*/
isFileRaw(file) {
let isFileRaw = false;
isFileRaw = file.status && file.status == "ready";
return isFileRaw;
},
/**
* 判断formData中是否有数据
* @param {FormData} formData 文件对象,可能是File可能就是普通对象
* @returns {Boolean} formData中是否有数据
*/
isFormDataHasData(formData) {
const formDataArr = Array.from(formData.entries(), ([key, prop]) => ({
[key]: {
ContentLength: typeof prop === "string" ? prop.length : prop.size,
},
}));
return formDataArr.length > 0;
},
/**
* 获取对应媒体下的文件
* @param {string} mediaKey 媒体key
* @returns {Array} 媒体对应的文件
*/
getMediaFile($el, mediaKey) {
return $el.$refs[mediaKey].getFiles();
},
/**
* 获取需要上传的FormData
* @param {Array} mediaKeys 媒体keys数组
* @returns {FormData} formData 需要上传的formdata
*/
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)) {
formData.append(mediaKey, file.raw);
}
});
});
return formData;
},
/**
* 获取需要上传的FormData
* @param {Array} mediaKeys 媒体keys数组
* @returns {FormData} formData 需要上传的formdata
*/
getNeedUploadFormData($el, mediaKeys) {
const formData = new FormData();
mediaKeys.forEach((mediaKey) => {
const currentFileList = fileUploadFuctions.getMediaFile($el, mediaKey);
currentFileList.forEach((file) => {
if (fileUploadFuctions.isFileRaw(file)) {
formData.append(mediaKey, file.raw);
}
});
});
return formData;
},
/**
* 获取需要已经存在(数据库已存储的)文件ID对象
* @param {Array} mediaKeys 媒体keys数组
* @returns {Object} 已经存在(数据库已存储的)文件ID对象
*/
getOldIdsObj(mediaKeys, dialogForm) {
let oldFileIdsObj = {};
mediaKeys.forEach((key) => {
if (dialogForm[key]) {
oldFileIdsObj[key] = dialogForm[key];
} else {
oldFileIdsObj[key] = "";
}
});
return oldFileIdsObj;
},
/**
* 获取返回结果中的文件id对象
* @param {Array} mediaKeys 媒体keys数组
* @param {Object} requestRes 上传返回的数据对象
* @returns {Object} 新上传的文件id对象
*/
getNewIdsObj(mediaKeys, requestRes) {
let newUploadedFileIdsObj = {};
mediaKeys.forEach((key) => {
newUploadedFileIdsObj[key] = this.getResIdStrByMedia(key, requestRes);
});
return newUploadedFileIdsObj;
},
/**
* 获取需要已经存在(数据库已存储的)文件ID对象
* @param {Array} mediaKeys 媒体keys数组
* @returns {Object} 已经存在(数据库已存储的)文件ID对象
*/
getOldIdsObj(mediaKeys, dialogForm) {
let oldFileIdsObj = {};
mediaKeys.forEach((key) => {
if (dialogForm[key]) {
oldFileIdsObj[key] = dialogForm[key];
} else {
oldFileIdsObj[key] = "";
}
});
return oldFileIdsObj;
},
/**
* 获取返回结果中的文件id对象
* @param {Array} mediaKeys 媒体keys数组
* @param {Object} requestRes 上传返回的数据对象
* @returns {Object} 新上传的文件id对象
*/
getNewIdsObj(mediaKeys, requestRes) {
let newUploadedFileIdsObj = {};
mediaKeys.forEach((key) => {
newUploadedFileIdsObj[key] = fileUploadFuctions.getResIdStrByMedia(
key,
requestRes
);
});
return newUploadedFileIdsObj;
},
/**
* 获取上传返回结果中的id字符串
* @param {Array} mediaKeys 媒体keys数组
* @param {Object} requestRes 上传返回的数据对象
* @returns {string} 新上传的文件id字符串
*/
getResIdStrByMedia(mediaKey, requestRes) {
const arr = [];
requestRes.data.forEach((item) => {
if (item.fileKey == mediaKey) {
arr.push(item.fileId);
}
});
const str = arr.length > 0 ? arr.join(",") : "";
return str;
},
/**
* 获取上传返回结果中的id字符串
* @param {Array} mediaKeys 媒体keys数组
* @param {Object} requestRes 上传返回的数据对象
* @returns {string} 新上传的文件id字符串
*/
getResIdStrByMedia(mediaKey, requestRes) {
const arr = [];
requestRes.data.forEach((item) => {
if (item.fileKey == mediaKey) {
arr.push(item.fileId);
}
});
const str = arr.length > 0 ? arr.join(",") : "";
return str;
},
/**
* 获取新旧合并的文件id对象
* @param {Array} mediaKeys 媒体keys数组
* @param {Object} oldObj 已经存在的
* @param {Object} newObj 新上传的
* @returns {string} 新上传的文件id字符串
*/
getMergedIdsObj(oldObj, newObj, mediaKeys) {
const obj = {};
mediaKeys.forEach((key) => {
newArr = newObj[key].split(",");
oldArr = oldObj[key].split(",");
let fullArr = new Set([...newArr, ...oldArr]);
let fullStr = fullArr.join(",");
obj[key] = fullStr;
});
return obj;
},
/**
* 获取新旧合并的文件id对象
* @param {Array} mediaKeys 媒体keys数组
* @param {Object} oldObj 已经存在的
* @param {Object} newObj 新上传的
* @returns {string} 新上传的文件id字符串
*/
getMergedIdsObj(oldObj, newObj, mediaKeys) {
const obj = {};
mediaKeys.forEach((key) => {
let newArr = newObj[key].split(",");
let oldArr = oldObj[key].split(",");
let fullArr = [...new Set([...newArr, ...oldArr])];
let fullStr = fullArr.join(",");
obj[key] = fullStr.substring(0, fullStr.length - 1);
});
return obj;
},
/**
* 获取需要被删除的文件ID合集
* @param {Array} mediaKeys 媒体keys数组
* @param {Object} dialogForm 表单对象
* @param {Object} newUploadedFileIdsObj 最新上传之后的
* @returns {Object} 新上传的文件id对象
*/
getDeleteFileArr(oldObj, newObj, mediaKeys) {
const arr = [];
mediaKeys.forEach((key) => {
newArr = newObj[key].split(",");
oldArr = oldObj[key].split(",");
let fullArr = new Set([...newArr, ...oldArr]);
oldArr.forEach((oldId) => {
if (!fullArr.includes(oldId)) {
arr.push(oldId);
}
});
});
return arr;
}
}
export default fileUploadFuctions
\ No newline at end of file
/**
* 获取需要被删除的文件ID合集
* @param {Array} mediaKeys 媒体keys数组
* @param {Object} dialogForm 表单对象
* @param {Object} newUploadedFileIdsObj 最新上传之后的
* @returns {Object} 新上传的文件id对象
*/
getDeleteFileArr(oldObj, newObj, mediaKeys) {
const arr = [];
mediaKeys.forEach((key) => {
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);
}
});
});
return arr;
},
};
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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论