提交 d4da4794 authored 作者: wangjiahao's avatar wangjiahao

feat:背景图片设置

上级 0f644e78
<template> <template>
<div> <div>
<div style="width: 100%"> <div style="width: 100%;">
<el-popover <el-popover
placement="right" placement="right"
width="200" width="250"
trigger="click" trigger="click"
> >
<el-col> <el-col>
<el-form ref="backgroundForm" :model="backgroundForm" label-width="80px" size="mini"> <el-row>
<el-form-item label="颜色" class="form-item"> <el-col :span="6">
<colorPicker v-model="backgroundForm.color" style="margin-top: 6px;cursor: pointer;z-index: 1004;border: solid 1px black" @change="changeBackgroundStyle" /> <el-radio v-model="backgroundForm.backgroundType" label="color">颜色</el-radio>
</el-form-item> </el-col>
<el-form-item label="图片" class="form-item"> <el-col :span="18">
<colorPicker v-model="backgroundForm.color" style="margin-top: 6px;cursor: pointer;z-index: 1004;border: solid 1px black" @change="changeBackgroundStyle" /> <colorPicker v-model="backgroundForm.color" style="margin-top: 6px;cursor: pointer;z-index: 1004;border: solid 1px black" @change="changeBackgroundStyle" />
</el-form-item> </el-col>
</el-form> </el-row>
<el-row>
<el-col :span="6">
<el-radio v-model="backgroundForm.backgroundType" label="image">图片</el-radio>
</el-col>
<el-col :span="18">
<el-upload
v-loading="$store.getters.loadingMap[$store.getters.currentPath]"
class="avatar-uploader"
action=""
accept=".jpeg,.jpg,.png,.gif"
:show-file-list="false"
:on-success="handleAvatarSuccess"
:on-exceed="handleExceed"
:on-error="handleError"
:http-request="handleAvatarSuccess"
:on-change="onChange"
>
<img v-if="imageUrl" :src="imageUrl" class="avatar">
<i v-else class="el-icon-plus avatar-uploader-icon" />
</el-upload>
</el-col>
</el-row>
</el-col> </el-col>
<el-button slot="reference" size="mini" class="shape-item">背景<i class="el-icon-setting el-icon--right" /></el-button> <el-button slot="reference" size="mini" class="shape-item">背景<i class="el-icon-setting el-icon--right" /></el-button>
</el-popover> </el-popover>
...@@ -31,7 +53,12 @@ export default { ...@@ -31,7 +53,12 @@ export default {
}, },
data() { data() {
return { return {
backgroundForm: JSON.parse(JSON.stringify(DEFAULT_BACKGROUND_COLOR)) backgroundForm: JSON.parse(JSON.stringify(DEFAULT_BACKGROUND_COLOR)),
systemParams: [],
filesTmp: [],
suffixes: new Set(['png', 'jpg', 'gif', 'jpeg']),
files: [],
imageUrl: ''
} }
}, },
watch: { watch: {
...@@ -40,32 +67,113 @@ export default { ...@@ -40,32 +67,113 @@ export default {
mounted() { mounted() {
}, },
methods: { methods: {
handleAvatarSuccess(file) {
console.log('file.name')
// var _this = this
// var event = event || window.event
// file = event.target.files[0]
// var reader = new FileReader()
// // 转base64
// reader.onload = function(e) {
// _this.imageUrl = e.target.result // 将图片路径赋值给src
// _this.guideImage = e.target.result // 将图片路径赋值给src
// }
// reader.readAsDataURL(file)
},
onChange(file, fileList) {
var _this = this
const reader = new FileReader()
reader.onload = function() {
_this.imageUrl = reader.result
}
reader.readAsDataURL(file.raw)
},
changeBackgroundStyle() { changeBackgroundStyle() {
this.$emit('onChangeBackgroundForm', this.backgroundForm) this.$emit('onChangeBackgroundForm', this.backgroundForm)
},
handleExceed(files, fileList) {
this.$warning(this.$t('test_track.case.import.upload_limit_count'))
},
handleError(e) {
this.$warning('error' + JSON.stringify(e))
},
uploadValidate(file) {
const suffix = file.name.substring(file.name.lastIndexOf('.') + 1)
if (!this.suffixes.has(suffix)) {
this.$warning(this.$t('test_track.case.import.upload_limit_format'))
return false
}
if (file.size / 1024 / 1024 > 5) {
this.$warning(this.$t('test_track.case.import.upload_limit_size'))
return false
}
this.errList = []
return true
},
upload(file) {
this.imageUrl = file.url
const reader = new FileReader()
reader.onload = (res) => {
this.imageUrl.src = res.target.result
}
reader.readAsDataURL(file)
},
removeValue(paramKey) {
this.systemParams.forEach((systemParam) => {
if (systemParam.paramKey === paramKey) {
systemParam.fileName = null
systemParam.file = null
}
})
} }
} }
} }
</script> </script>
<style scoped> <style scoped>
.shape-item{ .avatar-uploader>>>.el-upload {
border: 1px dashed #d9d9d9;
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
}
.avatar-uploader>>>.el-upload:hover {
border-color: #409EFF;
}
.avatar-uploader-icon {
font-size: 28px;
color: #8c939d;
width: 100px;
height: 60px;
line-height: 60px;
text-align: center;
}
.avatar {
width: 100px;
height: 60px;
display: block;
}
.shape-item{
padding: 6px; padding: 6px;
border: none; border: none;
width: 100%; width: 100%;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
} }
.form-item-slider>>>.el-form-item__label{ .form-item-slider>>>.el-form-item__label{
font-size: 12px; font-size: 12px;
line-height: 38px; line-height: 38px;
} }
.form-item>>>.el-form-item__label{ .form-item>>>.el-form-item__label{
font-size: 12px; font-size: 12px;
} }
.el-select-dropdown__item{ .el-select-dropdown__item{
padding: 0 20px; padding: 0 20px;
} }
span{ span{
font-size: 12px font-size: 12px
} }
......
export const DEFAULT_BACKGROUND_COLOR = { export const DEFAULT_BACKGROUND_COLOR = {
color: '#ffffff', color: '#ffffff',
image: null image: null,
imageName: null,
backgroundType: 'color'
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论