Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
E
exhibition_backstage
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
龙菲
exhibition_backstage
Commits
aa5439cd
提交
aa5439cd
authored
10月 11, 2023
作者:
龙菲
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
优化重构新增和编辑逻辑
上级
6187ea81
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
432 行增加
和
373 行删除
+432
-373
InfoEditDialog.vue
src/views/culturalRelic/components/InfoEditDialog.vue
+169
-233
fileUploadFuctions.js
src/views/culturalRelic/components/fileUploadFuctions.js
+141
-138
transformData.js
src/views/culturalRelic/components/transformData.js
+105
-0
validateRules.js
src/views/culturalRelic/components/validateRules.js
+13
-0
vue.config.js
vue.config.js
+4
-2
没有找到文件。
src/views/culturalRelic/components/InfoEditDialog.vue
浏览文件 @
aa5439cd
...
...
@@ -125,7 +125,7 @@
<el-form-item
label=
"关联文献"
:label-width=
"formLabelWidth"
>
<el-select
v-model=
"literature
Values
"
v-model=
"literature
IdArr
"
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
:
[],
literature
Values
:
[],
//文献绑定的数组,编辑回显时需要将后台传的值转成[id1,id2,]并赋值给它,新增时记得清空,提交时改成id 的str
literature
IdArr
:
[],
//文献绑定的数组,编辑回显时需要将后台传的值转成[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
.
literature
Values
=
[];
this
.
literature
IdArr
=
[];
this
.
images
=
[];
this
.
videos
=
[];
this
.
audios
=
[];
...
...
src/views/culturalRelic/components/fileUploadFuctions.js
浏览文件 @
aa5439cd
/**
* 本文件用于处理文物的相关文件上传过程中的函数
* 注意不要使用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
;
src/views/culturalRelic/components/transformData.js
0 → 100644
浏览文件 @
aa5439cd
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
;
src/views/culturalRelic/components/validateRules.js
0 → 100644
浏览文件 @
aa5439cd
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"
}],
};
vue.config.js
浏览文件 @
aa5439cd
...
...
@@ -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
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论