提交 144c8427 authored 作者: 龙菲's avatar 龙菲

布展单元编辑大致完成

上级 b5152721
......@@ -33,10 +33,10 @@
export default {
name: "ManualUploader",
props: {
// 用于v-model绑定
value: {
type: [Number, Array, String],
},
// // 用于v-model绑定
// value: {
// type: [Number, Array, String],
// },
files: {
type: Array,
default: () => [],
......@@ -80,15 +80,14 @@ export default {
watch: {
files: {
handler: function (val) {
this.fileList = [...val];
// debugger;
if (this.value) {
this.$emit("input", this.fileList);
}
this.fileList = JSON.parse(JSON.stringify(val));
},
immediate: true,
deep: true,
},
fileList(value) {
// debugger;
},
},
computed: {
// 是否显示提示
......@@ -163,15 +162,17 @@ export default {
this.fileList.map((item, index) => {
if (item.uid === file.uid) {
this.fileList.splice(index, 1);
// TODO:调用删除接口
}
});
},
handleChange(file, fileList) {
let that = this
if (file.status === "ready") {
this.handleBeforeUpload(file)
.then((res) => {
this.fileList.push(res);
that.fileList.push(res);
})
.catch((err) => {
console.log("err", err);
......
......@@ -24,7 +24,7 @@ export default {
},
data() {
return {
title: '贵州省精品展览展示后台管理系统',
title: '贵州省精品展览展示平台',
logo: 'https://wpimg.wallstcn.com/69a1c46c-eb1c-4b46-8bd4-e9e686ef5251.png'
}
}
......@@ -67,7 +67,7 @@ export default {
color: #fff;
font-weight: 600;
line-height: 50px;
font-size: 12px;
font-size: 16px;
font-family: Avenir, Helvetica Neue, Arial, Helvetica, sans-serif;
vertical-align: middle;
}
......
module.exports = {
title: '贵州省精品展览展示系统',
title: '贵州省精品展览展示平台',
/**
* @type {boolean} true | false
......
......@@ -115,7 +115,8 @@
</el-form-item>
<el-form-item label="关联文献" :label-width="formLabelWidth">
<el-select
v-model="literatureModelValue"
v-model="literatureValues"
:value="literatureNames"
multiple
filterable
remote
......@@ -128,7 +129,7 @@
<el-option
v-for="item in literatureList"
:key="item.literatureId"
:label="`${item.name}(${item.authors})`"
:label="item.name"
:value="item.literatureId"
>
</el-option>
......@@ -324,17 +325,34 @@ export default {
watch: {
form: {
handler(value) {
this.dialogForm = { ...value };
this.dialogForm = JSON.parse(JSON.stringify(value));
// 回填状态
this.dialogForm.status = Boolean(Number(this.dialogForm.status));
// debugger
// 回填文献
if (
this.dialogForm.literatureVo &&
this.dialogForm.literatureVo.length > 0
) {
this.literatureList = [...this.dict.literature];
this.literatureNames = [];
this.literatureValues = [];
this.dialogForm.literatureVo.forEach((lt) => {
if (this.literatureValues) {
this.literatureValues.push(lt.literatureId);
}
if (this.literatureNames) {
this.literatureNames.push(lt.name);
}
});
}
},
immediate: true,
deep: true,
},
dict(value) {
if (value) {
console.log(value);
// value.display_type.map((item) => {
// this.displayTypes[item.value] = item.label;
// });
this.dict = value;
}
},
},
......@@ -360,7 +378,8 @@ export default {
],
literatureList: [],
disabled: false,
literatureModelValue: [], //文献绑定的数组,编辑回显时需要将后台传的值转成[id1,id2,]并赋值给它,新增时记得清空,提交时改成id 的str
literatureNames: [],
literatureValues: [], //文献绑定的数组,编辑回显时需要将后台传的值转成[id1,id2,]并赋值给它,新增时记得清空,提交时改成id 的str
};
},
async created() {
......@@ -369,42 +388,6 @@ export default {
});
},
methods: {
covertStrToArr(name) {
var fileName = "";
switch (name) {
case "videos":
fileName = "视频";
break;
case "audios":
fileName = "音频";
break;
case "images":
fileName = "图片";
break;
case "faceImage":
fileName = "图片";
break;
case "sayExplain":
fileName = "文件";
break;
}
let form = { ...this.dialogForm };
if (form[name]) {
if (form[name].indexOf(",") != -1) {
var arr = form[name].split(",");
return arr.map((item, index) => {
return {
url: item,
name: fileName + index,
};
});
} else {
return [{ url: form[name], name }];
}
} else {
return [];
}
},
// 关联文献查询
searchLiterature(queryString) {
if (!queryString.trim()) {
......@@ -438,7 +421,7 @@ export default {
// 取消编辑
cancelForm() {
this.$emit("handleClose");
this.literatureModelValue = [];
this.literatureValues = [];
},
async handleSubmit() {
......@@ -463,13 +446,13 @@ export default {
this.dialogForm[mediaArr[index]] = item;
});
const params = { ...this.dialogForm };
params.literature = this.literatureModelValue.join(",");
params.literature = this.literatureValues.join(",");
params.status = this.dialogForm.status ? 1 : 0;
let res = await editCulturalRelic(params);
if (res.code == 0) {
this.$message.success("修改成功!");
this.loading = false;
this.literatureModelValue = [];
this.literatureValues = [];
this.$emit("handleClose");
this.$emit("refresh");
this.dialogForm = {};
......@@ -510,13 +493,13 @@ export default {
});
const { deptId, regionCode } = this.userInfo;
const params = { ...this.dialogForm, deptId, regionCode };
params.literature = this.literatureModelValue.join(",");
params.literature = this.literatureValues.join(",");
params.status = this.dialogForm.status ? 1 : 0;
let res = await addCulturalRelic(params);
if (res.code == 0) {
this.$message.success("提交成功!");
this.loading = false;
this.literatureModelValue = [];
this.literatureValues = [];
this.$emit("handleClose");
this.$emit("refresh");
this.dialogForm = {};
......
......@@ -171,19 +171,6 @@ export default {
dict(value) {
if (value) {
this.dict = value;
// let culturalLevel = { ...this.dict.cultural_relic_level };
// let options = [];
// for (const key in culturalLevel) {
// let obj = {};
// obj["label"] = culturalLevel[key];
// obj["value"] = key;
// options.push(obj);
// }
// this.searchConfig.map((item) => {
// if (item.prop == "level") {
// item.selectOptions = options;
// }
// });
}
},
},
......
......@@ -3,7 +3,7 @@
<div class="exhibiton-unit" ref="exhibitionUnit">
<el-tree
:data="treeData"
node-key="id"
node-key="euId"
default-expand-all
:expand-on-click-node="false"
>
......@@ -26,7 +26,7 @@
</el-col>
<el-col :span="8">
<el-select
v-model="data.crIds"
v-model="CRModelValue"
multiple
filterable
remote
......@@ -48,7 +48,7 @@
<el-col :span="3">
<div style="display: flex; align-items: center">
<i
v-if="data.id != 1"
v-if="data.euId != 1"
class="el-icon-close delete"
@click="() => remove(node, data)"
></i>
......@@ -74,42 +74,52 @@
<div class="buttons">
<el-button
type="text"
@click.native="handleAddUnitImage(node, data)"
@click.native="handleAddUnitMedia(node, data)"
>
<div class="add-image">
<svg-icon
:icon-class="data.showImageUploader ? 'fold' : 'image'"
:icon-class="
data.showMediaUploader || data.imagesVo || data.videosVo
? 'fold'
: 'image'
"
/>
<span>{{
data.showImageUploader ? "收起" : "添加/显示"
data.showMediaUploader || data.imagesVo || data.videosVo
? "收起"
: "添加/显示"
}}</span>
<span>单元图片</span>
<span>单元媒体资源</span>
</div>
</el-button>
<el-button
<!-- <el-button
type="text"
@click.native="handleAddUnitVideo(node, data)"
>
<div class="add-image">
<svg-icon
:icon-class="data.showVideoUploader ? 'fold' : 'video'"
:icon-class="
data.showVideoUploader || data.videosVo ? 'fold' : 'video'
"
/>
<span>{{
data.showVideoUploader ? "收起" : "添加/显示"
data.showVideoUploader || data.videosVo0
? "收起"
: "添加/显示"
}}</span>
<span>单元视频</span>
</div></el-button
>
> -->
</div>
</el-col>
<!-- <el-col :span="12">123</el-col> -->
</el-row>
<el-row :gutter="50">
<el-collapse-transition>
<el-col :span="12" v-show="data.showImageUploader">
<el-collapse-transition>
<el-row :gutter="50" v-show="data.showMediaUploader">
<el-col :span="12">
<div>单元图片:</div>
<ManualUploader
<ManualImageUploader
:files="getImagesVo(data.imagesVo)"
:fileLimit="6"
:fileSize="50"
......@@ -118,11 +128,9 @@
:ref="'unit-images-' + data.euId"
/>
</el-col>
</el-collapse-transition>
<el-collapse-transition>
<el-col :span="12" v-show="data.showVideoUploader">
<el-col :span="12">
<div>单元视频:</div>
<ManualUploader
<ManualVideoUploader
:files="getVideosVo(data.videosVo)"
:fileLimit="6"
:fileSize="50"
......@@ -131,8 +139,8 @@
:ref="'unit-videos-' + data.euId"
/>
</el-col>
</el-collapse-transition>
</el-row>
</el-row>
</el-collapse-transition>
</div>
</el-tree>
</div>
......@@ -140,11 +148,13 @@
<script>
let euId = 1000;
import ManualUploader from "@/components/Uploader/ManualUploader.vue";
import ManualImageUploader from "@/components/Uploader/ManualUploader.vue";
import ManualVideoUploader from "@/components/Uploader/ManualUploader.vue";
import { getCulturalRelicList } from "@/api/culturalRelic";
export default {
components: {
ManualUploader,
ManualImageUploader,
ManualVideoUploader,
},
props: {
exhibitionUnits: {
......@@ -156,8 +166,33 @@ export default {
exhibitionUnits: {
handler: function (value) {
if (value) {
let that = this;
let treeData = [...value];
this.treeData = treeData;
that.treeData = treeData;
loopData(that.treeData);
// debugger
function loopData(arr) {
if (arr.length > 0) {
arr.forEach((item) => {
// debugger;
if (item.culturalRelics) {
if (that.CRList.length == 0) {
that.CRList = item.culturalRelics;
// const res = await getCulturalRelicList(params);
// if (res.code == 0) {
// that.CRList = res.data.records;
// } else {
// that.CRList = [];
// }
}
that.CRModelValue.push(item.crId);
}
if (item.children) {
loopData(item.children);
}
});
}
}
}
},
immediate: true,
......@@ -217,8 +252,9 @@ export default {
// unit: "",
title: "",
intro: "",
showImageUploader: false,
showVideoUploader: false,
showMediaUploader: false,
// showImageUploader: false,
// showVideoUploader: false,
images: "",
crIds: [],
// imagesVo: [],
......@@ -240,8 +276,9 @@ export default {
title: "",
intro: "",
crIds: [],
showImageUploader: false,
showVideoUploader: false,
showMediaUploader: false,
// showImageUploader: false,
// showVideoUploader: false,
images: "",
// imagesVo: [],
videos: "",
......@@ -258,12 +295,15 @@ export default {
children.splice(index, 1);
},
handleAddUnitImage(node, data) {
this.$set(data, "showImageUploader", !data.showImageUploader);
},
handleAddUnitVideo(node, data) {
this.$set(data, "showVideoUploader", !data.showVideoUploader);
handleAddUnitMedia(node, data) {
if (data.imagesVo.length > 0 || data.videosVo.length) {
this.$set(data, "showMediaUploader", true);
}
this.$set(data, "showMediaUploader", !data.showMediaUploader);
},
// handleAddUnitVideo(node, data) {
// this.$set(data, "showVideoUploader", !data.showVideoUploader);
// },
},
};
</script>
......
......@@ -63,7 +63,7 @@
</el-input>
</el-form-item>
<el-form-item label="展览封面" :label-width="formLabelWidth">
<ManualUploader
<FaceImageUploader
:fileLimit="1"
listType="picture-card"
:fileType="['png', 'jpeg', 'jpg']"
......@@ -75,7 +75,7 @@
/>
</el-form-item>
<el-form-item label="展览视频" :label-width="formLabelWidth">
<ManualUploader
<VideoUploader
:files="videos"
:fileLimit="6"
:fileSize="50"
......@@ -108,7 +108,7 @@
</el-form-item>
<el-form-item label="关联文献" :label-width="formLabelWidth">
<el-select
v-model="literatureModelValue"
v-model="literatureValues"
multiple
filterable
remote
......@@ -117,11 +117,12 @@
:remote-method="searchLiterature"
:loading="loading"
style="width: 100%"
ref="literatureSelect"
>
<el-option
v-for="item in literatureList"
:key="item.literatureId"
:label="`${item.name}(${item.authors})`"
:label="item.name"
:value="item.literatureId"
>
</el-option>
......@@ -132,7 +133,7 @@
<el-switch v-model="dialogForm.status"> </el-switch>
</el-form-item>
<el-form-item label="展览图片" :label-width="formLabelWidth">
<ManualUploader
<ImageUploader
:files="images"
:fileLimit="6"
:fileSize="50"
......@@ -145,7 +146,7 @@
/>
</el-form-item>
<el-form-item label="展览音频" :label-width="formLabelWidth">
<ManualUploader
<AudioUploader
:files="audios"
:fileLimit="1"
:fileSize="50"
......@@ -162,7 +163,7 @@
<el-row>
<el-form-item label="布展单元" :label-width="formLabelWidth">
<ExhibitionUnit
:exhibitionUnits="exhibitionUnits"
:exhibitionUnits="dialogForm.exhibitionUnits"
ref="exhibitionUnits"
/>
</el-form-item>
......@@ -210,14 +211,23 @@
import { getLiteratureList } from "@/api/literature";
import { addDisplay, editDisplay } from "@/api/display";
import { mapGetters } from "vuex";
import ManualUploader from "@/components/Uploader/ManualUploader.vue";
// import ManualUploader from "@/components/Uploader/ManualUploader.vue";
const FaceImageUploader = () =>
import("@/components/Uploader/ManualUploader.vue");
const ImageUploader = () => import("@/components/Uploader/ManualUploader.vue");
const VideoUploader = () => import("@/components/Uploader/ManualUploader.vue");
const AudioUploader = () => import("@/components/Uploader/ManualUploader.vue");
import ExhibitionUnit from "./ExhibitionUnit.vue";
import { upload, uploadV1 } from "@/utils/upload";
export default {
name: "InfoEditDialog",
components: {
ManualUploader,
// ManualUploader,
ExhibitionUnit,
FaceImageUploader,
ImageUploader,
VideoUploader,
AudioUploader,
},
props: {
visible: {
......@@ -279,47 +289,57 @@ export default {
return [];
}
},
exhibitionUnits() {
let exhibitionUnits = [];
if (
this.dialogForm.exhibitionUnits &&
this.dialogForm.exhibitionUnits.length > 0
) {
exhibitionUnits = this.dialogForm.exhibitionUnits;
} else {
exhibitionUnits = [
{
euId: 1, //后期去掉
// unit: "", //单元名称,如前言、第一单元,暂时忽略
title: "", //单元标题,类似主题名称
intro: "", //单元介绍
images: "", //图片id集合
videos: "", //视频id集合
crIds: [], //关联文物集合
showImageUploader: false, //后期去掉
showVideoUploader: false, //后期去掉
},
];
}
return exhibitionUnits;
},
},
watch: {
form(value) {
console.log("value", value);
this.dialogForm = { ...value };
this.dialogForm.status = Boolean(Number(this.dialogForm.status));
debugger
if (this.dialogForm.literature) {
this.literatureList = [...this.dict.literature]
if (this.dialogForm.literature.indexOf(",") != -1) {
this.literatureModelValue = this.dialogForm.literature.split(",");
} else {
this.literatureModelValue = this.dialogForm.literature;
form: {
handler: function (value) {
if (value) {
this.dialogForm = JSON.parse(JSON.stringify(value));
if (this.dialogForm.exhibitionId) {
// 编辑
// 回填状态
this.dialogForm.status = Boolean(Number(this.dialogForm.status));
// 回填文献
// this.literatureList = [...this.dict.literature]; //获取字典中的文献
// this.literatureNames = [];
this.literatureValues = [];
if (this.dialogForm.literatureVo.length > 0) {
this.literatureList = this.dialogForm.literatureVo
this.dialogForm.literatureVo.forEach((lt) => {
if (this.literatureValues) {
this.literatureValues.push(lt.literatureId);
}
// if (this.literatureNames) {
// this.literatureNames.push(lt.name);
// }
});
}
// 回填布展单元中的文物
// TODO:
// 先获取所有文物列表
} else {
// 新增
// 初始化布展单元
this.dialogForm.exhibitionUnits = [
{
euId: 1, //后期去掉
// unit: "", //单元名称,如前言、第一单元,暂时忽略
title: "", //单元标题,类似主题名称
intro: "", //单元介绍
images: "", //图片id集合
videos: "", //视频id集合
crIds: [], //关联文物集合
showMediaUploader: false,
// showImageUploader: false, //后期去掉
// showVideoUploader: false, //后期去掉
},
];
}
}
}
},
immediate: true,
},
dict(value) {
if (value) {
......@@ -344,7 +364,9 @@ export default {
],
literatureList: [],
disabled: false,
literatureModelValue: [], //文献绑定的数组,编辑回显时需要将后台传的值转成[id1,id2,]并赋值给它,新增时记得清空,提交时改成id 的str
exhibitionUnits: [],
// literatureNames: "",
literatureValues: [], //文献绑定的数组,编辑回显时需要将后台传的值转成[id1,id2,]并赋值给它,新增时记得清空,提交时改成id 的str
};
},
methods: {
......@@ -379,191 +401,205 @@ export default {
},
// 取消编辑
cancelForm() {
this.$emit("handleClose");
this.dialogForm = {};
this.reload();
},
async handleSubmit() {
// debugger
// return;
var that = this;
if (that.dialogForm.exhibitionId) {
// 修改
let ps = []; //ps为涵盖5种媒体的promise集合
mediaArr.forEach((media) => {
ps.push(that.handleProcessMedia(media));
let formData = new FormData();
// 已存在的文件的对象
let successFilesObj = {};
// 添加布展本身的媒体文件至formData
const mediaArr = ["faceImage", "images", "videos", "audios"];
mediaArr.map((media) => {
let files = [...this.$refs[media].getFiles()];
files.map((f) => {
// 只有待上传的才需要添加至formdata
switch (f.status) {
case "ready":
formData.append(media, f.raw);
break;
case "success":
successFilesObj[media] = f;
break;
}
});
// 处理图片等媒体
Promise.all(ps).then(
async (allResult) => {
console.log("allResult", allResult);
allResult.forEach((item, index) => {
that.dialogForm[mediaArr[index]] = item;
});
const params = { ...that.dialogForm };
params.literature = that.literatureModelValue.join(",");
params.status = that.dialogForm.status ? 1 : 0;
let res = await editDisplay(params);
if (res.code == 0) {
that.$message.success("修改成功!");
that.loading = false;
that.literatureModelValue = [];
that.$emit("handleClose");
that.$emit("refresh");
that.dialogForm = {};
});
// 添加布展单元每条记录带的媒体至formData
let unitIds = [];
let unitData = [...this.$refs["exhibitionUnits"].getUnitData()];
loopUnits(unitData);
function loopUnits(arr) {
if (arr.length > 0) {
arr.map((item) => {
unitIds.push(item.euId);
if (item.children) {
loopUnits(item.children);
}
},
(reason) => {
console.log(reason);
}
);
} else {
//新增
let formData = new FormData();
// 添加布展本身的媒体文件至formData
const mediaArr = ["faceImage", "images", "videos", "audios"];
mediaArr.map((media) => {
let files = [...this.$refs[media].getFiles()];
files.map((f) => {
formData.append(media, f.raw);
});
});
// 添加布展单元每条记录带的媒体至formData
let unitIds = [];
let unitData = [...this.$refs["exhibitionUnits"].getUnitData()];
loopUnits(unitData);
function loopUnits(arr) {
if (arr.length > 0) {
arr.map((item) => {
unitIds.push(item.euId);
if (item.children) {
loopUnits(item.children);
}
});
}
}
unitIds.map(async (euId) => {
console.log(this.$refs["exhibitionUnits"]);
let exhibitionUnitsDom = this.$refs.exhibitionUnits;
let imageFiles = [];
let videoFiles = [];
if (exhibitionUnitsDom.$refs[`unit-images-${euId}`]) {
imageFiles = [
...exhibitionUnitsDom.$refs[`unit-images-${euId}`].getFiles(),
];
}
}
unitIds.map(async (euId) => {
let exhibitionUnitsDom = this.$refs.exhibitionUnits;
let imageFiles = [];
let videoFiles = [];
if (exhibitionUnitsDom.$refs[`unit-images-${euId}`]) {
imageFiles = [
...exhibitionUnitsDom.$refs[`unit-images-${euId}`].getFiles(),
];
}
if (exhibitionUnitsDom.$refs[`unit-videos-${euId}`]) {
videoFiles = [
...exhibitionUnitsDom.$refs[`unit-videos-${euId}`].getFiles(),
];
}
if (exhibitionUnitsDom.$refs[`unit-videos-${euId}`]) {
videoFiles = [
...exhibitionUnitsDom.$refs[`unit-videos-${euId}`].getFiles(),
];
}
if (imageFiles.length > 0) {
imageFiles.forEach((imgFile) => {
if (imageFiles.length > 0) {
imageFiles.forEach((imgFile) => {
if (imgFile.status === "ready") {
formData.append(`unit-images-${euId}`, imgFile.raw);
});
}
if (videoFiles.length > 0) {
videoFiles.forEach((videoFile) => {
} else {
successFilesObj[`unit-images-${euId}`] = imgFile;
}
});
}
if (videoFiles.length > 0) {
videoFiles.forEach((videoFile) => {
if (videoFile.status === "ready") {
formData.append(`unit-videos-${euId}`, videoFile.raw);
});
}
});
// 上传所有媒体文件
let filesObj = {};
// 如果有没有文件
var formDataArr = Array.from(formData.entries(), ([key, prop]) => ({
[key]: {
ContentLength: typeof prop === "string" ? prop.length : prop.size,
},
}));
if (formDataArr.length > 0) {
let upLoadRes = await uploadV1(formData);
if (upLoadRes.code == 0) {
upLoadRes.data.map((resFile) => {
if (filesObj[resFile.fileKey]) {
filesObj[resFile.fileKey].push(resFile.fileId);
} else {
filesObj[resFile.fileKey] = [resFile.fileId];
}
});
}
} else {
successFilesObj[`unit-videos-${euId}`] = imgFile;
}
});
}
// 回填布展自带的媒体文件
mediaArr.forEach((media) => {
if (filesObj[media]) {
this.dialogForm[media] = filesObj[media].join(",");
} else {
this.dialogForm[media] = "";
}
});
// 回填布展单元媒体文件,修改文物为Str,去除id和显示隐藏控制器
backFillUnit(unitData);
debugger;
function backFillUnit(arr) {
if (arr.length > 0) {
arr.map((unit) => {
// 如果进行了文件上传
});
// 上传所有媒体文件
let filesObj = {};
if (Object.keys(filesObj).length > 0) {
for (const key in filesObj) {
let type = key.split("-")[1];
let euId = key.split("-")[2];
if (euId == unit.euId) {
switch (type) {
case "images":
unit.images = filesObj[key].join(",");
break;
case "videos":
unit.videos = filesObj[key].join(",");
break;
}
var formDataArr = Array.from(formData.entries(), ([key, prop]) => ({
[key]: {
ContentLength: typeof prop === "string" ? prop.length : prop.size,
},
}));
if (formDataArr.length > 0) {
let upLoadRes = await uploadV1(formData);
if (upLoadRes.code == 0) {
upLoadRes.data.map((resFile) => {
if (filesObj[resFile.fileKey]) {
filesObj[resFile.fileKey].push(resFile.fileId);
} else {
filesObj[resFile.fileKey] = [resFile.fileId];
}
});
}
}
// 1、回填之前先获取已存在的文件
for (const key in successFilesObj) {
// 如果文件id中含有已上传成功的某个key,如images,则将已上传成功的images推入文件id集合
if (filesObj[key]) {
filesObj.push(successFilesObj[key]);
}
}
// 2、回填布展自带的媒体文件
mediaArr.forEach((media) => {
if (filesObj[media]) {
this.dialogForm[media] = filesObj[media].join(",");
} else {
this.dialogForm[media] = "";
}
});
// 3、回填布展单元媒体文件,修改关联文物为Str,和显示隐藏控制器
backFillUnit(unitData);
// debugger;
function backFillUnit(arr) {
if (arr.length > 0) {
arr.map((unit) => {
// 如果进行了文件上传
if (Object.keys(filesObj).length > 0) {
for (const key in filesObj) {
let type = key.split("-")[1];
let euId = key.split("-")[2];
if (euId == unit.euId) {
switch (type) {
case "images":
unit.images = filesObj[key].join(",");
break;
case "videos":
unit.videos = filesObj[key].join(",");
break;
}
}
}
// 不管是否进行文件上传,都需要修改文物为Str,去除id和显示隐藏控制器
}
// 不管是否进行文件上传,都需要修改文物为Str和显示隐藏控制器,去除euid
// 编辑时文物id为字符串,新增时为数组,需要重新组成
if (!that.exhibitionId) {
let crIdArr = unit.crIds;
// debugger;
unit.crIds = crIdArr.join(",");
var deleteArr = [
"euId",
"showImageUploader",
"showVideoUploader",
];
var deleteArr = ["euId", "showMediaUploader"];
deleteArr.forEach((i) => {
delete unit[i];
if (unit[i]) {
delete unit[i];
}
});
if (unit.children) {
backFillUnit(unit.children);
}
});
}
} else {
// 编辑时
}
// TODO:
// debugger;
if (unit.children) {
backFillUnit(unit.children);
}
});
}
}
const { deptId, regionCode } = this.userInfo;
const params = {
...this.dialogForm,
exhibitionUnits: unitData,
deptId,
regionCode,
};
// debugger;
params.literature = this.literatureModelValue.join(",");
params.status = this.dialogForm.status ? 1 : 0;
let res = await addDisplay(params);
if (res.code == 0) {
this.$message.success("提交成功!");
this.loading = false;
this.literatureModelValue = [];
this.$emit("handleClose");
this.$emit("refresh");
this.dialogForm = {};
}
const { deptId, regionCode } = this.userInfo;
const params = {
...this.dialogForm,
exhibitionUnits: unitData,
deptId,
regionCode,
};
// debugger;
// return;
params.literature = this.literatureValues.join(",");
params.status = this.dialogForm.status ? 1 : 0;
let res = await addDisplay(params);
if (res.code == 0) {
this.$message.success("提交成功!");
this.loading = false;
this.$emit("refresh");
this.reload();
}
// }
},
// 清空编辑组件中的所有值
reload() {
//父组件将清空form绑定的值
this.$emit("handleClose");
// 清空文献
this.literatureValues = [];
// this.literatureNames = [];
// 清空布展单元
this.exhibitionUnits = [
{
euId: 1, //后期去掉
// unit: "", //单元名称,如前言、第一单元,暂时忽略
title: "", //单元标题,类似主题名称
intro: "", //单元介绍
images: "", //图片id集合
videos: "", //视频id集合
crIds: [], //关联文物集合
showMediaUploader: false,
// showImageUploader: false, //后期去掉
// showVideoUploader: false, //后期去掉
},
];
},
// 处理编辑时图片、视频、音频、讲解词媒体资源的上传问题
handleProcessMedia(media) {
......@@ -614,7 +650,7 @@ export default {
this.$confirm("确认关闭?")
.then((_) => {
done();
this.$emit("handleClose");
this.reload();
})
.catch((_) => {});
},
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论