"vue-cropperjs": "4", "v-viewer": "^1.6.4", "viewerjs": "^1.10.4" (一)案例一
ImgCropper.vue
这个
是 Element UI 框架中用于创建对话框组件的标签。以下是各个属性和事件的说明:
title="编辑图片":设置对话框的标题为“编辑图片”。:visible="show":绑定对话框的可见性到show变量,show是一个布尔值,控制对话框的显示和隐藏。@close="$emit('update:show', false)":监听close事件,当对话框关闭时,触发update:show事件并将show设置为false。:close-on-click-modal="false":设置为false禁止点击对话框外部区域关闭对话框。:append-to-body="true":将对话框的 DOM 节点插入到body元素中,而不是插入到当前组件的父级元素中。destroy-on-close:对话框关闭时销毁对话框内的子元素。v-on="$listeners":将父组件传递给当前组件的所有事件监听器绑定到上
(二)案例二
ImgView.vue
属性解析
ref="element-upload":给上传组件设置引用名称,方便在代码中通过this.$refs获取组件实例。action="#":设置上传的 URL,由于值为#表示没有实际上传路径。:auto-upload="false":设置为false表示选择文件后不会立即上传,需要手动触发上传。list-type="picture-card":使用图片卡片样式来展示上传的文件。:file-list="files":绑定组件显示的文件列表到files数据,files是一个数组,包含上传文件的信息对象。:on-change="onChange":绑定文件改变时的回调方法。:on-preview="onActivatefile":绑定文件预览时的回调方法。:on-remove="onRemove":绑定文件移除时的回调方法。:http-request="httpRequest":绑定自定义上传请求方法。方法解析
onChange(file, fileList): 文件改变时触发,可以在此方法中处理文件选择逻辑。onActivatefile(file): 点击文件预览图标时触发,可以在此方法中实现预览逻辑。onRemove(file, fileList): 文件删除时触发,可以在此方法中处理删除逻辑。httpRequest: 自定义上传请求逻辑,可以在此方法中实现文件上传到服务器的逻辑。
(三)案例三
ImgView.vue
属性解析 (
el-upload)
ref="element-upload":用于在代码中通过this.$refs访问组件实例。action="#":上传的 URL,#表示无实际路径。:auto-upload="false":不自动上传文件,需要手动触发上传。list-type="picture-card":使用图片卡片样式展示文件。:file-list="files":绑定显示的文件列表。:on-change="onChange":绑定文件改变时的回调方法。:on-preview="onActivatefile":绑定文件预览时的回调方法。:on-remove="onRemove":绑定文件删除时的回调方法。:http-request="httpRequest":绑定自定义上传请求的方法。属性解析 (
ImgCropper)
:show.sync="cropper.show":双向绑定裁剪弹框的显示状态。:file="cropper.file":绑定当前需要裁剪的文件对象。@open="onCropperOpen":绑定弹框打开时的回调方法。@close="onCropperClose":绑定弹框关闭时的回调方法。@closed="onCropperClosed":绑定弹框关闭后的回调方法。@confirm="onCropperConfirm":绑定裁剪确认后的回调方法。@cancel="onCropperCancel":绑定裁剪取消操作的回调方法。方法解析
onChange(file, fileList):处理文件变更时的逻辑。onActivatefile(file):处理文件预览时的逻辑。onRemove(file, fileList):处理文件删除时的逻辑。httpRequest:自定义上传逻辑。onCropperConfirm:处理裁剪确认时的逻辑。onCropperCancel:处理裁剪取消时的逻辑。onCropperOpen:处理弹框打开时的逻辑。onCropperClose:处理弹框关闭时的逻辑。onCropperClosed:处理弹框已经关闭后的逻辑
ImgCropper.vue
props:定义了接收的两个属性:
show:一个布尔类型,控制对话框的显示和隐藏,默认值为false。file:一个File对象,表示需要编辑的文件。总结:
这个组件是一个带有标题“编辑图片”的对话框组件,接收一个控制显隐的布尔值
show和一个文件对象file作为属性。组件支持在关闭对话框时触发事件通知父组件更新状态,使用 SCSS 对组件样式进行限定,使其只作用于当前组件。
(四)案例四
这个模板展示了一个使用 Element UI 的 el-dialog 组件和 vue-cropper 组件创建的图片编辑和裁剪对话框。以下是各个部分的详细解释:
属性解析 (
el-dialog)
title="编辑图片":设置对话框的标题为“编辑图片”。:visible="show":绑定对话框的可见性到show变量,show是一个布尔值,控制对话框的显示和隐藏。@close="$emit('update:show', false)":监听close事件,当对话框关闭时,触发update:show事件并将show设置为false,通知父组件更新show属性。:close-on-click-modal="false":设置为false表示点击对话框外部区域不会关闭对话框。:append-to-body="true":将对话框的 DOM 节点插入到body元素中,而不是插入到当前组件的父级元素中。destroy-on-close:对话框关闭时销毁对话框内的子元素。v-on="$listeners":将父组件传递给当前组件的所有事件监听器绑定到上。组件解析 (
vue-cropper)
overflow-hidden:裁剪容器溢出部分隐藏。v-loading="loading":绑定加载状态到loading变量,用于显示加载动画。ref="cropper":给组件设置引用名称,方便在代码中通过this.$refs获取组件实例。:src="src":绑定裁剪区域显示的图片源地址。:containerStyle="containerStyle":绑定裁剪容器的样式。preview=".preview":设置预览区域的选择器。:minContainerHeight="500":设置裁剪容器的最小高度为500像素。background:显示裁剪区域背景。:ready="onReady":绑定裁剪区域准备完毕时的回调方法。:cropmove="touch":绑定裁剪区域移动时的回调方法。:zoom="touch":绑定裁剪区域缩放时的回调方法。Script 部分解析
props:定义了接收的两个属性:
show:一个布尔类型,控制对话框的显示和隐藏,默认值为false。file:一个File对象,表示需要编辑的文件。components:注册VueCropper裁剪组件。data:定义组件内部的响应式数据:
loading:一个布尔值,用于控制加载状态。src:存储图片的源地址。containerStyle:定义裁剪容器的样式,高度为500像素。methods:定义组件内部的方法:
onReady:裁剪区域准备完毕后隐藏加载动画。touch:用于处理裁剪区域的移动和缩放。总结
这个组件是一个带有标题“编辑图片”的对话框组件,结合
vue-cropper实现了图片裁剪功能。接收两个属性:show用于控制对话框的显示和隐藏,file表示需要编辑和裁剪的图片文件。
(五)案例五
ImgView.vue