|
|
|
@ -107,6 +107,7 @@ const getFormItemInputStyle = (ele: any,sty:number) => { |
|
|
|
|
|
|
|
|
|
|
|
const fileUpload = ref(null); |
|
|
|
|
|
|
|
// 添加capture="camera"属性 |
|
|
|
const addCaptureAttribute = () => { |
|
|
|
if (fileUpload.value) { |
|
|
|
@ -118,8 +119,9 @@ const fileUpload = ref(null); |
|
|
|
} |
|
|
|
}; |
|
|
|
function selectFile(){ |
|
|
|
|
|
|
|
addCaptureAttribute() |
|
|
|
if(props.data.control.onSiteShot=='1'){ |
|
|
|
addCaptureAttribute() |
|
|
|
} |
|
|
|
fileUpload.value.$el.querySelector('input[type="file"]').click(); |
|
|
|
} |
|
|
|
|
|
|
|
@ -137,7 +139,7 @@ const valueArr = computed(()=>{ |
|
|
|
|
|
|
|
|
|
|
|
const handleRemove: UploadProps['onRemove'] = (uploadFile, uploadFiles) => { |
|
|
|
console.log(uploadFile, uploadFiles) |
|
|
|
//console.log(uploadFile, uploadFiles) |
|
|
|
|
|
|
|
let arrStr = '' |
|
|
|
uploadFiles.forEach((element) => { |
|
|
|
@ -147,7 +149,7 @@ const handleRemove: UploadProps['onRemove'] = (uploadFile, uploadFiles) => { |
|
|
|
|
|
|
|
arrStr = arrStr.slice(0, -1); |
|
|
|
|
|
|
|
console.log(arrStr) |
|
|
|
//console.log(arrStr) |
|
|
|
|
|
|
|
|
|
|
|
emits("update:modelValue", arrStr); |
|
|
|
@ -169,7 +171,7 @@ const handleAvatarSuccess1 = (response: any, uploadFile: any) => { |
|
|
|
|
|
|
|
arrStr = arrStr.slice(0, -1); |
|
|
|
|
|
|
|
console.log(arrStr) |
|
|
|
//console.log(arrStr) |
|
|
|
|
|
|
|
|
|
|
|
emits("update:modelValue", arrStr); |
|
|
|
@ -180,12 +182,30 @@ const handleAvatarSuccess1 = (response: any, uploadFile: any) => { |
|
|
|
|
|
|
|
const attrs = useAttrs() |
|
|
|
|
|
|
|
/* onMounted(()=>{ |
|
|
|
if(props.data.control.useDefaultImg){ |
|
|
|
emits("update:modelValue", props.data.control.imgUrl); |
|
|
|
}else{ |
|
|
|
|
|
|
|
} |
|
|
|
}) */ |
|
|
|
|
|
|
|
onMounted(()=>{ |
|
|
|
setTimeout(()=>{ |
|
|
|
if(attrs.types==2){ |
|
|
|
console.log(value.value) |
|
|
|
if(attrs.types==2){//编辑 |
|
|
|
props.data.control.uploadedImgs = completionImageDetails(value.value) |
|
|
|
} |
|
|
|
if(props.data.control.useDefaultImg==false&&props.data.control.onSiteShot==""){ |
|
|
|
toShow.value = true |
|
|
|
} |
|
|
|
|
|
|
|
}else if(attrs.types==1){//新增 |
|
|
|
emits("update:modelValue", props.data.control.imgUrl); |
|
|
|
}/* |
|
|
|
if(props.data.control.useDefaultImg){ |
|
|
|
emits("update:modelValue", props.data.control.imgUrl); |
|
|
|
}else{ |
|
|
|
|
|
|
|
} */ |
|
|
|
},100) |
|
|
|
|
|
|
|
}) |
|
|
|
@ -247,15 +267,38 @@ function completionImageDetails(urlString:string) { |
|
|
|
return mobileRegex.test(navigator.userAgent) |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
const toShow = ref(false) |
|
|
|
</script> |
|
|
|
<template> |
|
|
|
<!-- {{ checkIsMobile() }} --> |
|
|
|
<img |
|
|
|
|
|
|
|
<!-- <img |
|
|
|
v-if="props.data.control.useDefaultImg" |
|
|
|
:src="value" |
|
|
|
class="avatar" |
|
|
|
:style="getFormItemInputStyle(configStyle, 2)" |
|
|
|
/> |
|
|
|
/> --> |
|
|
|
|
|
|
|
|
|
|
|
<el-upload |
|
|
|
v-bind="$props" |
|
|
|
class="upload-demo" |
|
|
|
:action="uploadUrl" |
|
|
|
:show-file-list="false" |
|
|
|
:on-success="handleAvatarSuccess" |
|
|
|
:before-upload="beforeAvatarUpload" |
|
|
|
v-loading="imgLoading" |
|
|
|
> |
|
|
|
<img |
|
|
|
v-if="props.data.control.useDefaultImg" |
|
|
|
:src="props.modelValue" |
|
|
|
class="avatar" |
|
|
|
:style="getFormItemInputStyle(configStyle, 2)" |
|
|
|
/> |
|
|
|
</el-upload> |
|
|
|
|
|
|
|
|
|
|
|
<!-- <el-upload |
|
|
|
v-bind="$props" |
|
|
|
class="upload-demo" |
|
|
|
@ -283,7 +326,7 @@ function completionImageDetails(urlString:string) { |
|
|
|
|
|
|
|
<el-upload |
|
|
|
ref="fileUpload" |
|
|
|
v-if="!props.data.control.useDefaultImg&&(attrs.types!=2&&props.data.control.onSiteShot=='1')" |
|
|
|
v-show="!props.data.control.useDefaultImg&&attrs.types!=2||toShow" |
|
|
|
class="upload-demo" |
|
|
|
:auto-upload="true" |
|
|
|
v-model:file-list="props.data.control.uploadedImgs" |
|
|
|
@ -311,7 +354,22 @@ function completionImageDetails(urlString:string) { |
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
<!-- 详情页略缩图列表 --> |
|
|
|
<div v-if ="!props.data.control.useDefaultImg&&attrs.types!=1" v-for="url in valueArr" class="demo-image__preview"> |
|
|
|
<div v-if ="!props.data.control.useDefaultImg&&attrs.types==3" v-for="url in valueArr" class="demo-image__preview"> |
|
|
|
<el-image |
|
|
|
style="width: 100px; height: 100px;margin: 4px;border: #DCDFE6 1px solid; border-radius: 8px;" |
|
|
|
:src="url" |
|
|
|
:zoom-rate="1.2" |
|
|
|
:max-scale="7" |
|
|
|
:min-scale="0.2" |
|
|
|
:preview-src-list="valueArr" |
|
|
|
show-progress |
|
|
|
:initial-index="4" |
|
|
|
fit="cover" |
|
|
|
/> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<div v-if ="!props.data.control.useDefaultImg&&attrs.types==2&&props.data.control.onSiteShot==1" v-for="url in valueArr" class="demo-image__preview"> |
|
|
|
<el-image |
|
|
|
style="width: 100px; height: 100px;margin: 4px;border: #DCDFE6 1px solid; border-radius: 8px;" |
|
|
|
:src="url" |
|
|
|
|