Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
E
exhibition_backstage
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
龙菲
exhibition_backstage
Commits
144c8427
提交
144c8427
authored
7月 05, 2022
作者:
龙菲
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
布展单元编辑大致完成
上级
b5152721
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
363 行增加
和
316 行删除
+363
-316
ManualUploader.vue
src/components/Uploader/ManualUploader.vue
+11
-10
Logo.vue
src/layout/components/Sidebar/Logo.vue
+2
-2
settings.js
src/settings.js
+1
-1
InfoEditDialog.vue
src/views/culturalRelic/components/InfoEditDialog.vue
+32
-49
index.vue
src/views/culturalRelic/index.vue
+0
-13
ExhibitionUnit.vue
src/views/display/components/ExhibitionUnit.vue
+73
-33
InfoEditDialog.vue
src/views/display/components/InfoEditDialog.vue
+244
-208
没有找到文件。
src/components/Uploader/ManualUploader.vue
浏览文件 @
144c8427
...
...
@@ -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
)
=>
{
th
is
.
fileList
.
push
(
res
);
th
at
.
fileList
.
push
(
res
);
})
.
catch
((
err
)
=>
{
console
.
log
(
"err"
,
err
);
...
...
src/layout/components/Sidebar/Logo.vue
浏览文件 @
144c8427
...
...
@@ -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
:
1
2
px
;
font-size
:
1
6
px
;
font-family
:
Avenir
,
Helvetica
Neue
,
Arial
,
Helvetica
,
sans-serif
;
vertical-align
:
middle
;
}
...
...
src/settings.js
浏览文件 @
144c8427
module
.
exports
=
{
title
:
'贵州省精品展览展示
系统
'
,
title
:
'贵州省精品展览展示
平台
'
,
/**
* @type {boolean} true | false
...
...
src/views/culturalRelic/components/InfoEditDialog.vue
浏览文件 @
144c8427
...
...
@@ -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
.
literature
ModelValue
=
[];
this
.
literature
Values
=
[];
},
async
handleSubmit
()
{
...
...
@@ -463,13 +446,13 @@ export default {
this
.
dialogForm
[
mediaArr
[
index
]]
=
item
;
});
const
params
=
{
...
this
.
dialogForm
};
params
.
literature
=
this
.
literature
ModelValue
.
join
(
","
);
params
.
literature
=
this
.
literature
Values
.
join
(
","
);
params
.
status
=
this
.
dialogForm
.
status
?
1
:
0
;
let
res
=
await
editCulturalRelic
(
params
);
if
(
res
.
code
==
0
)
{
this
.
$message
.
success
(
"修改成功!"
);
this
.
loading
=
false
;
this
.
literature
ModelValue
=
[];
this
.
literature
Values
=
[];
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
.
literature
ModelValue
.
join
(
","
);
params
.
literature
=
this
.
literature
Values
.
join
(
","
);
params
.
status
=
this
.
dialogForm
.
status
?
1
:
0
;
let
res
=
await
addCulturalRelic
(
params
);
if
(
res
.
code
==
0
)
{
this
.
$message
.
success
(
"提交成功!"
);
this
.
loading
=
false
;
this
.
literature
ModelValue
=
[];
this
.
literature
Values
=
[];
this
.
$emit
(
"handleClose"
);
this
.
$emit
(
"refresh"
);
this
.
dialogForm
=
{};
...
...
src/views/culturalRelic/index.vue
浏览文件 @
144c8427
...
...
@@ -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;
// }
// });
}
},
},
...
...
src/views/display/components/ExhibitionUnit.vue
浏览文件 @
144c8427
...
...
@@ -3,7 +3,7 @@
<div
class=
"exhibiton-unit"
ref=
"exhibitionUnit"
>
<el-tree
:data=
"treeData"
node-key=
"
i
d"
node-key=
"
euI
d"
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.
i
d != 1"
v-if=
"data.
euI
d != 1"
class=
"el-icon-close delete"
@
click=
"() => remove(node, data)"
></i>
...
...
@@ -74,42 +74,52 @@
<div
class=
"buttons"
>
<el-button
type=
"text"
@
click
.
native=
"handleAddUnit
Image
(node, data)"
@
click
.
native=
"handleAddUnit
Media
(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
<Manual
Image
Uploader
: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
<Manual
Video
Uploader
: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
);
},
handleAddUnit
Image
(
node
,
data
)
{
this
.
$set
(
data
,
"showImageUploader"
,
!
data
.
showImageUploader
);
},
handleAddUnitVideo
(
node
,
data
)
{
this
.
$set
(
data
,
"show
VideoUploader"
,
!
data
.
showVideo
Uploader
);
handleAddUnit
Media
(
node
,
data
)
{
if
(
data
.
imagesVo
.
length
>
0
||
data
.
videosVo
.
length
)
{
this
.
$set
(
data
,
"showMediaUploader"
,
true
);
}
this
.
$set
(
data
,
"show
MediaUploader"
,
!
data
.
showMedia
Uploader
);
},
// handleAddUnitVideo(node, data) {
// this.$set(data, "showVideoUploader", !data.showVideoUploader);
// },
},
};
</
script
>
...
...
src/views/display/components/InfoEditDialog.vue
浏览文件 @
144c8427
...
...
@@ -63,7 +63,7 @@
</el-input>
</el-form-item>
<el-form-item
label=
"展览封面"
:label-width=
"formLabelWidth"
>
<
Manual
Uploader
<
FaceImage
Uploader
:fileLimit=
"1"
listType=
"picture-card"
:fileType=
"['png', 'jpeg', 'jpg']"
...
...
@@ -75,7 +75,7 @@
/>
</el-form-item>
<el-form-item
label=
"展览视频"
:label-width=
"formLabelWidth"
>
<
Manual
Uploader
<
Video
Uploader
:files=
"videos"
:fileLimit=
"6"
:fileSize=
"50"
...
...
@@ -108,7 +108,7 @@
</el-form-item>
<el-form-item
label=
"关联文献"
:label-width=
"formLabelWidth"
>
<el-select
v-model=
"literature
ModelValue
"
v-model=
"literature
Values
"
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"
>
<
Manual
Uploader
<
Image
Uploader
:files=
"images"
:fileLimit=
"6"
:fileSize=
"50"
...
...
@@ -145,7 +146,7 @@
/>
</el-form-item>
<el-form-item
label=
"展览音频"
:label-width=
"formLabelWidth"
>
<
Manual
Uploader
<
Audio
Uploader
: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
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论