Example: tip: This component is based on vue-cropper secondary packaging Install the plugin npm install vue-cropper yarn add vue-cropper Write packaged components <!-- Simple image cropping component--- Secondary packaging--> <!-- More APIs https://github.com/xyxiao001/vue-cropper --> <!-- Usage: Pass in the image ratio to display or hide. Method: Listen for the bottom button click --- add more props query documents yourself --> <template> <div v-if="value" :value="value" @input="val => $emit('input', val)" class="conbox"> <div class="info"> <vueCropper ref="cropper" :img="img" :outputSize="outputSize" :outputType="outputType" :info="info" :canScale="canScale" :autoCrop="autoCrop" :fixed="fixed" :fixedNumber="fixedNumber" :full="full" :fixedBox="fixedBox" :canMove="canMove" :canMoveBox="canMoveBox" :original="original" :centerBox="centerBox" :infoTrue="infoTrue" :mode="mode" ></vueCropper> </div> <div class="btns"> <div @click="clickCancelCut" class="cancel">Cancel</div> <img @click="clickRotate" src="../../assets/paradise/rotate.png" alt="" /> <div @click="clickOk" class="okey">OK</div> </div> </div> </template> <script> import { VueCropper } from 'vue-cropper'; export default { name: 'PictureCropping', components: { VueCropper }, props: { value: { type: Boolean, default: false, }, //Crop the image address img: { type: String, default: '', }, //The aspect ratio of the screenshot frame fixedNumber: { type: Array, default: () => { return [1, 1]; }, }, }, data() { return { // Basic configuration option for the cropping component : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : }, computed: {}, watch: {}, //Life cycle - creation completed (access the current this instance) created() {}, //Life cycle - Mounting completed (accessing DOM elements) mounted() {}, methods: { clickCancelCut() { this.$emit('clickCancelCut', 'Click to cancel'); this.$refs.cropper.stopCrop(); this.$refs.cropper.clearCrop(); }, clickRotate() { this.$refs.cropper.rotateRight(); this.$emit('clickRotate', 'Click to rotate'); }, clickOk() { //Output the trimmed base64 this.$refs.cropper.getCropData(data => { this.$emit('clickOk', data); this.$refs.cropper.stopCrop(); this.$refs.cropper.clearCrop(); }); }, }, }; </script> <style lang='less' scoped> /* @import url(); Import css class*/ .conbox { position: fixed; top: 0; right: 0; bottom: 0; left: 0; box-sizing: border-box; height: 100vh; width: 100%; background-color: #000; display: flex; flex-direction: column; justify-content: center; .info { width: auto; height: 800px; .vue-cropper { background-image: none; background-color: #000; } } .btns { padding: 0 20px; color: #fff; text-align: center; display: flex; justify-content: space-between; align-items: center; position: absolute; left: 0; right: 0; bottom: 15px; img { width: 85px; height: 85px; } .cancel { background-color: #606465; padding: 15px 20px; width: 100px; border-radius: 10px; } .okey { background-color: #df6457; padding: 15px 20px; width: 100px; border-radius: 10px; } } } </style> Summarize This is the end of this article about the Vue image cropping component. For more relevant Vue image cropping component content, please search 123WORDPRESS.COM's previous articles or continue to browse the following related articles. I hope everyone will support 123WORDPRESS.COM in the future! You may also be interested in:
|
<<: Reasons and methods for Waiting for table metadata lock in MySQL
>>: Example code and method of storing arrays in mysql
This article describes how to build a MySQL maste...
Written in front Recently, a reader told me that ...
Three-way handshake phase Number of retries for c...
Container is another core concept of Docker. Simp...
Table of contents Preface props context state Sum...
1. Introduction to Navicat 1. What is Navicat? Na...
Table of contents Preface Conversion relationship...
Preface: In MySQL, the system supports many chara...
First, perform a simple Docker installation. To c...
Using the clear property to clear floats is a comm...
Table of contents Scenario Core Issues Status mon...
It is mainly the configuration jump of the if jud...
1. How to display the date on the right in the art...
Table of contents 1. concat() 2. join() 3. push()...
Source: http://www.ruoyi.vip/ import Vue from ...