|
|
@@ -130,13 +130,23 @@
|
|
|
</div>
|
|
|
<!-- 图片 -->
|
|
|
<div class="image-field">
|
|
|
- <div class="field-name"><span class="required">*</span> 话题介绍图</div>
|
|
|
- <multi-uploader
|
|
|
+ <div class="field-name"><span class="required">*</span> 个人封面图片</div>
|
|
|
+ <!-- <multi-uploader
|
|
|
class="consult-image-uploader"
|
|
|
:showTips="false"
|
|
|
:limit="1"
|
|
|
- v-model="imageList"></multi-uploader>
|
|
|
- <div class="upload-tips">请上传话题介绍图,至多一张
|
|
|
+ v-model="imageList"></multi-uploader> -->
|
|
|
+ <el-upload
|
|
|
+ action=""
|
|
|
+ class="consult-image-uploader"
|
|
|
+ accept=".jpg,.jpeg,.png,.JPG,.PNG,.JPEG"
|
|
|
+ drag
|
|
|
+ :auto-upload="false"
|
|
|
+ :show-file-list="false"
|
|
|
+ :on-change='changeUpload'>
|
|
|
+ <i class="el-icon-plus"></i>
|
|
|
+ </el-upload>
|
|
|
+ <div class="upload-tips">请上传个人封面图片,至多一张
|
|
|
建议比例16:9(如:1920*1080、800*450)支持J(E)PG、PNG格式,小于5MB
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -154,6 +164,37 @@
|
|
|
@click="handlePcreate">存草稿</el-button>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ <!-- 图片裁剪 dialog -->
|
|
|
+ <el-dialog
|
|
|
+ :visible.sync="isShowCropperDialog"
|
|
|
+ width="450px">
|
|
|
+ <div class="cropper-title" slot="title">图片裁剪</div>
|
|
|
+ <div class="cropper-content">
|
|
|
+ <div class="cropper-container">
|
|
|
+ <vueCropper
|
|
|
+ ref="cropper"
|
|
|
+ :img="cropperOption.img"
|
|
|
+ :canScale="false"
|
|
|
+ :info="false"
|
|
|
+ autoCrop
|
|
|
+ fixed
|
|
|
+ :fixedNumber="[16, 9]"
|
|
|
+ :fixedBox="false"
|
|
|
+ :canMove="false"
|
|
|
+ centerBox></vueCropper>
|
|
|
+ </div>
|
|
|
+ <div class="action-wrapper">
|
|
|
+ <el-button
|
|
|
+ :loading="saveImageIsLoading"
|
|
|
+ class="confirm-btn"
|
|
|
+ @click="handleSaveCropperImage">保存</el-button>
|
|
|
+ <el-button
|
|
|
+ :disabled="saveImageIsLoading"
|
|
|
+ class="cancel-btn"
|
|
|
+ @click="handleCancelCropperImage">取消</el-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
@@ -161,9 +202,14 @@
|
|
|
import { mapState } from "vuex";
|
|
|
import editor from "@/components/editor";
|
|
|
import multiUploader from '@/components/multi-uploader';
|
|
|
+// import VueCropper from 'vue-cropper'
|
|
|
|
|
|
// 查看示例 uid
|
|
|
const exampleUid = process.env.NODE_ENV == "development" ? '680581' : '583073'
|
|
|
+// if(process.browser) {
|
|
|
+// vueCropper = require('vue-cropper')
|
|
|
+// Vue.use(vueCropper.default)
|
|
|
+// }
|
|
|
|
|
|
export default {
|
|
|
head: {
|
|
|
@@ -171,7 +217,8 @@ export default {
|
|
|
},
|
|
|
components: {
|
|
|
editor,
|
|
|
- multiUploader
|
|
|
+ multiUploader,
|
|
|
+ // VueCropper
|
|
|
},
|
|
|
data () {
|
|
|
return {
|
|
|
@@ -206,7 +253,12 @@ export default {
|
|
|
imageList: [], // 用户上传的图片
|
|
|
publishIsLoading: false,
|
|
|
pcreateIsLoading: false,
|
|
|
- exampleUid
|
|
|
+ exampleUid,
|
|
|
+ isShowCropperDialog: false,
|
|
|
+ cropperOption: {
|
|
|
+ img: ''
|
|
|
+ },
|
|
|
+ saveImageIsLoading: false
|
|
|
}
|
|
|
},
|
|
|
computed: {
|
|
|
@@ -687,6 +739,32 @@ export default {
|
|
|
handleDeleteSavedTime (index) {
|
|
|
this.savedTime.splice(index, 1)
|
|
|
this.time.splice(index, 1, { stime: '', etime: '', sError: false, eError: false, error: '' })
|
|
|
+ },
|
|
|
+ changeUpload (file, fileList) {
|
|
|
+ console.log(file, fileList)
|
|
|
+ var url = window.URL.createObjectURL(file.raw);
|
|
|
+ this.cropperOption.img = url
|
|
|
+ this.isShowCropperDialog = true
|
|
|
+ },
|
|
|
+ handleSaveCropperImage () {
|
|
|
+ const self = this
|
|
|
+ this.saveImageIsLoading = true
|
|
|
+
|
|
|
+ this.$refs.cropper.getCropBlob(data => {
|
|
|
+ const formData = new FormData();
|
|
|
+ formData.append("file", data);
|
|
|
+
|
|
|
+ self.$axios.$post(`https://dev.test.proginn.com/upload_image`, formData, {
|
|
|
+ headers: { "Content-Type": "multipart/form-data" }
|
|
|
+ }).then(res => {
|
|
|
+ console.log(res)
|
|
|
+ }).then(() => {
|
|
|
+ self.saveImageIsLoading = false
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ handleCancelCropperImage () {
|
|
|
+ this.isShowCropperDialog = false
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -727,6 +805,15 @@ input[type="number"]{
|
|
|
height: 168.75px !important;
|
|
|
line-height: 168.75px !important;
|
|
|
}
|
|
|
+ .el-upload {
|
|
|
+ .el-upload-dragger {
|
|
|
+ width: 300px !important;
|
|
|
+ height: 168.75px !important;
|
|
|
+ display: flex !important;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ }
|
|
|
+ }
|
|
|
.el-upload--picture-card {
|
|
|
width: 300px !important;
|
|
|
height: 168.75px !important;
|