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

布展单元编辑大致完成

上级 b5152721
...@@ -33,10 +33,10 @@ ...@@ -33,10 +33,10 @@
export default { export default {
name: "ManualUploader", name: "ManualUploader",
props: { props: {
// 用于v-model绑定 // // 用于v-model绑定
value: { // value: {
type: [Number, Array, String], // type: [Number, Array, String],
}, // },
files: { files: {
type: Array, type: Array,
default: () => [], default: () => [],
...@@ -80,15 +80,14 @@ export default { ...@@ -80,15 +80,14 @@ export default {
watch: { watch: {
files: { files: {
handler: function (val) { handler: function (val) {
this.fileList = [...val]; this.fileList = JSON.parse(JSON.stringify(val));
// debugger;
if (this.value) {
this.$emit("input", this.fileList);
}
}, },
immediate: true, immediate: true,
deep: true, deep: true,
}, },
fileList(value) {
// debugger;
},
}, },
computed: { computed: {
// 是否显示提示 // 是否显示提示
...@@ -163,15 +162,17 @@ export default { ...@@ -163,15 +162,17 @@ export default {
this.fileList.map((item, index) => { this.fileList.map((item, index) => {
if (item.uid === file.uid) { if (item.uid === file.uid) {
this.fileList.splice(index, 1); this.fileList.splice(index, 1);
// TODO:调用删除接口
} }
}); });
}, },
handleChange(file, fileList) { handleChange(file, fileList) {
let that = this
if (file.status === "ready") { if (file.status === "ready") {
this.handleBeforeUpload(file) this.handleBeforeUpload(file)
.then((res) => { .then((res) => {
this.fileList.push(res); that.fileList.push(res);
}) })
.catch((err) => { .catch((err) => {
console.log("err", err); console.log("err", err);
......
...@@ -24,7 +24,7 @@ export default { ...@@ -24,7 +24,7 @@ export default {
}, },
data() { data() {
return { return {
title: '贵州省精品展览展示后台管理系统', title: '贵州省精品展览展示平台',
logo: 'https://wpimg.wallstcn.com/69a1c46c-eb1c-4b46-8bd4-e9e686ef5251.png' logo: 'https://wpimg.wallstcn.com/69a1c46c-eb1c-4b46-8bd4-e9e686ef5251.png'
} }
} }
...@@ -67,7 +67,7 @@ export default { ...@@ -67,7 +67,7 @@ export default {
color: #fff; color: #fff;
font-weight: 600; font-weight: 600;
line-height: 50px; line-height: 50px;
font-size: 12px; font-size: 16px;
font-family: Avenir, Helvetica Neue, Arial, Helvetica, sans-serif; font-family: Avenir, Helvetica Neue, Arial, Helvetica, sans-serif;
vertical-align: middle; vertical-align: middle;
} }
......
module.exports = { module.exports = {
title: '贵州省精品展览展示系统', title: '贵州省精品展览展示平台',
/** /**
* @type {boolean} true | false * @type {boolean} true | false
......
...@@ -115,7 +115,8 @@ ...@@ -115,7 +115,8 @@
</el-form-item> </el-form-item>
<el-form-item label="关联文献" :label-width="formLabelWidth"> <el-form-item label="关联文献" :label-width="formLabelWidth">
<el-select <el-select
v-model="literatureModelValue" v-model="literatureValues"
:value="literatureNames"
multiple multiple
filterable filterable
remote remote
...@@ -128,7 +129,7 @@ ...@@ -128,7 +129,7 @@
<el-option <el-option
v-for="item in literatureList" v-for="item in literatureList"
:key="item.literatureId" :key="item.literatureId"
:label="`${item.name}(${item.authors})`" :label="item.name"
:value="item.literatureId" :value="item.literatureId"
> >
</el-option> </el-option>
...@@ -324,17 +325,34 @@ export default { ...@@ -324,17 +325,34 @@ export default {
watch: { watch: {
form: { form: {
handler(value) { 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, immediate: true,
deep: true, deep: true,
}, },
dict(value) { dict(value) {
if (value) { if (value) {
console.log(value); this.dict = value;
// value.display_type.map((item) => {
// this.displayTypes[item.value] = item.label;
// });
} }
}, },
}, },
...@@ -360,7 +378,8 @@ export default { ...@@ -360,7 +378,8 @@ export default {
], ],
literatureList: [], literatureList: [],
disabled: false, disabled: false,
literatureModelValue: [], //文献绑定的数组,编辑回显时需要将后台传的值转成[id1,id2,]并赋值给它,新增时记得清空,提交时改成id 的str literatureNames: [],
literatureValues: [], //文献绑定的数组,编辑回显时需要将后台传的值转成[id1,id2,]并赋值给它,新增时记得清空,提交时改成id 的str
}; };
}, },
async created() { async created() {
...@@ -369,42 +388,6 @@ export default { ...@@ -369,42 +388,6 @@ export default {
}); });
}, },
methods: { 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) { searchLiterature(queryString) {
if (!queryString.trim()) { if (!queryString.trim()) {
...@@ -438,7 +421,7 @@ export default { ...@@ -438,7 +421,7 @@ export default {
// 取消编辑 // 取消编辑
cancelForm() { cancelForm() {
this.$emit("handleClose"); this.$emit("handleClose");
this.literatureModelValue = []; this.literatureValues = [];
}, },
async handleSubmit() { async handleSubmit() {
...@@ -463,13 +446,13 @@ export default { ...@@ -463,13 +446,13 @@ export default {
this.dialogForm[mediaArr[index]] = item; this.dialogForm[mediaArr[index]] = item;
}); });
const params = { ...this.dialogForm }; const params = { ...this.dialogForm };
params.literature = this.literatureModelValue.join(","); params.literature = this.literatureValues.join(",");
params.status = this.dialogForm.status ? 1 : 0; params.status = this.dialogForm.status ? 1 : 0;
let res = await editCulturalRelic(params); let res = await editCulturalRelic(params);
if (res.code == 0) { if (res.code == 0) {
this.$message.success("修改成功!"); this.$message.success("修改成功!");
this.loading = false; this.loading = false;
this.literatureModelValue = []; this.literatureValues = [];
this.$emit("handleClose"); this.$emit("handleClose");
this.$emit("refresh"); this.$emit("refresh");
this.dialogForm = {}; this.dialogForm = {};
...@@ -510,13 +493,13 @@ export default { ...@@ -510,13 +493,13 @@ export default {
}); });
const { deptId, regionCode } = this.userInfo; const { deptId, regionCode } = this.userInfo;
const params = { ...this.dialogForm, deptId, regionCode }; const params = { ...this.dialogForm, deptId, regionCode };
params.literature = this.literatureModelValue.join(","); params.literature = this.literatureValues.join(",");
params.status = this.dialogForm.status ? 1 : 0; params.status = this.dialogForm.status ? 1 : 0;
let res = await addCulturalRelic(params); let res = await addCulturalRelic(params);
if (res.code == 0) { if (res.code == 0) {
this.$message.success("提交成功!"); this.$message.success("提交成功!");
this.loading = false; this.loading = false;
this.literatureModelValue = []; this.literatureValues = [];
this.$emit("handleClose"); this.$emit("handleClose");
this.$emit("refresh"); this.$emit("refresh");
this.dialogForm = {}; this.dialogForm = {};
......
...@@ -171,19 +171,6 @@ export default { ...@@ -171,19 +171,6 @@ export default {
dict(value) { dict(value) {
if (value) { if (value) {
this.dict = 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 @@ ...@@ -3,7 +3,7 @@
<div class="exhibiton-unit" ref="exhibitionUnit"> <div class="exhibiton-unit" ref="exhibitionUnit">
<el-tree <el-tree
:data="treeData" :data="treeData"
node-key="id" node-key="euId"
default-expand-all default-expand-all
:expand-on-click-node="false" :expand-on-click-node="false"
> >
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-select <el-select
v-model="data.crIds" v-model="CRModelValue"
multiple multiple
filterable filterable
remote remote
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
<el-col :span="3"> <el-col :span="3">
<div style="display: flex; align-items: center"> <div style="display: flex; align-items: center">
<i <i
v-if="data.id != 1" v-if="data.euId != 1"
class="el-icon-close delete" class="el-icon-close delete"
@click="() => remove(node, data)" @click="() => remove(node, data)"
></i> ></i>
...@@ -74,42 +74,52 @@ ...@@ -74,42 +74,52 @@
<div class="buttons"> <div class="buttons">
<el-button <el-button
type="text" type="text"
@click.native="handleAddUnitImage(node, data)" @click.native="handleAddUnitMedia(node, data)"
> >
<div class="add-image"> <div class="add-image">
<svg-icon <svg-icon
:icon-class="data.showImageUploader ? 'fold' : 'image'" :icon-class="
data.showMediaUploader || data.imagesVo || data.videosVo
? 'fold'
: 'image'
"
/> />
<span>{{ <span>{{
data.showImageUploader ? "收起" : "添加/显示" data.showMediaUploader || data.imagesVo || data.videosVo
? "收起"
: "添加/显示"
}}</span> }}</span>
<span>单元图片</span> <span>单元媒体资源</span>
</div> </div>
</el-button> </el-button>
<el-button <!-- <el-button
type="text" type="text"
@click.native="handleAddUnitVideo(node, data)" @click.native="handleAddUnitVideo(node, data)"
> >
<div class="add-image"> <div class="add-image">
<svg-icon <svg-icon
:icon-class="data.showVideoUploader ? 'fold' : 'video'" :icon-class="
data.showVideoUploader || data.videosVo ? 'fold' : 'video'
"
/> />
<span>{{ <span>{{
data.showVideoUploader ? "收起" : "添加/显示" data.showVideoUploader || data.videosVo0
? "收起"
: "添加/显示"
}}</span> }}</span>
<span>单元视频</span> <span>单元视频</span>
</div></el-button </div></el-button
> > -->
</div> </div>
</el-col> </el-col>
<!-- <el-col :span="12">123</el-col> --> <!-- <el-col :span="12">123</el-col> -->
</el-row> </el-row>
<el-row :gutter="50"> <el-collapse-transition>
<el-collapse-transition> <el-row :gutter="50" v-show="data.showMediaUploader">
<el-col :span="12" v-show="data.showImageUploader"> <el-col :span="12">
<div>单元图片:</div> <div>单元图片:</div>
<ManualUploader <ManualImageUploader
:files="getImagesVo(data.imagesVo)" :files="getImagesVo(data.imagesVo)"
:fileLimit="6" :fileLimit="6"
:fileSize="50" :fileSize="50"
...@@ -118,11 +128,9 @@ ...@@ -118,11 +128,9 @@
:ref="'unit-images-' + data.euId" :ref="'unit-images-' + data.euId"
/> />
</el-col> </el-col>
</el-collapse-transition> <el-col :span="12">
<el-collapse-transition>
<el-col :span="12" v-show="data.showVideoUploader">
<div>单元视频:</div> <div>单元视频:</div>
<ManualUploader <ManualVideoUploader
:files="getVideosVo(data.videosVo)" :files="getVideosVo(data.videosVo)"
:fileLimit="6" :fileLimit="6"
:fileSize="50" :fileSize="50"
...@@ -131,8 +139,8 @@ ...@@ -131,8 +139,8 @@
:ref="'unit-videos-' + data.euId" :ref="'unit-videos-' + data.euId"
/> />
</el-col> </el-col>
</el-collapse-transition> </el-row>
</el-row> </el-collapse-transition>
</div> </div>
</el-tree> </el-tree>
</div> </div>
...@@ -140,11 +148,13 @@ ...@@ -140,11 +148,13 @@
<script> <script>
let euId = 1000; 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"; import { getCulturalRelicList } from "@/api/culturalRelic";
export default { export default {
components: { components: {
ManualUploader, ManualImageUploader,
ManualVideoUploader,
}, },
props: { props: {
exhibitionUnits: { exhibitionUnits: {
...@@ -156,8 +166,33 @@ export default { ...@@ -156,8 +166,33 @@ export default {
exhibitionUnits: { exhibitionUnits: {
handler: function (value) { handler: function (value) {
if (value) { if (value) {
let that = this;
let treeData = [...value]; 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, immediate: true,
...@@ -217,8 +252,9 @@ export default { ...@@ -217,8 +252,9 @@ export default {
// unit: "", // unit: "",
title: "", title: "",
intro: "", intro: "",
showImageUploader: false, showMediaUploader: false,
showVideoUploader: false, // showImageUploader: false,
// showVideoUploader: false,
images: "", images: "",
crIds: [], crIds: [],
// imagesVo: [], // imagesVo: [],
...@@ -240,8 +276,9 @@ export default { ...@@ -240,8 +276,9 @@ export default {
title: "", title: "",
intro: "", intro: "",
crIds: [], crIds: [],
showImageUploader: false, showMediaUploader: false,
showVideoUploader: false, // showImageUploader: false,
// showVideoUploader: false,
images: "", images: "",
// imagesVo: [], // imagesVo: [],
videos: "", videos: "",
...@@ -258,12 +295,15 @@ export default { ...@@ -258,12 +295,15 @@ export default {
children.splice(index, 1); children.splice(index, 1);
}, },
handleAddUnitImage(node, data) { handleAddUnitMedia(node, data) {
this.$set(data, "showImageUploader", !data.showImageUploader); if (data.imagesVo.length > 0 || data.videosVo.length) {
}, this.$set(data, "showMediaUploader", true);
handleAddUnitVideo(node, data) { }
this.$set(data, "showVideoUploader", !data.showVideoUploader); this.$set(data, "showMediaUploader", !data.showMediaUploader);
}, },
// handleAddUnitVideo(node, data) {
// this.$set(data, "showVideoUploader", !data.showVideoUploader);
// },
}, },
}; };
</script> </script>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论