123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- <template>
- <div class="block">
- <el-form
- :model="ruleForm"
- :rules="rules"
- ref="ruleForm"
- label-width="150px"
- class="demo-ruleForm"
- >
- <el-form-item label="藏品名称(套):" prop="name" style="width: 550px">
- <el-input
- v-model="ruleForm.name"
- maxlength="20"
- show-word-limit
- ></el-input>
- </el-form-item>
- <el-form-item label="藏品头图 :" prop="avatar">
- <el-upload
- class="avatar-uploader"
- action="https://jsonplaceholder.typicode.com/posts/"
- :show-file-list="false"
- :on-success="handleAvatarSuccess"
- :before-upload="beforeAvatarUpload"
- >
- <img v-if="imageUrl" :src="imageUrl" class="avatar" />
- <i
- v-else
- class="el-icon-plus avatar-uploader-icon"
- ></i> </el-upload></el-form-item
- ></el-form>
- </div>
- </template>
- <script>
- export default {
- data() {
- return {
- imageUrl: "",
- ruleForm: {
- name: "",
- img: "",
- },
- rules: {
- name: [
- { required: true, message: "请输入藏品名称", trigger: "blur" },
- {
- min: 2,
- max: 20,
- message: "长度在 2 到 20个字符",
- trigger: "blur",
- },
- ],
- avatar: [
- {
- required: true,
- message: "请按照规范上传尺寸为750px*750px的图片",
- trigger: "blur",
- },
- ],
- },
- };
- },
- methods: {
- handleAvatarSuccess(res, file) {
- this.imageUrl = URL.createObjectURL(file.raw);
- },
- beforeAvatarUpload(file) {
- const isJPG = file.type === "image/jpeg";
- const isLt2M = file.size / 1024 / 1024 < 2;
- if (!isJPG) {
- this.$message.error("上传头像图片只能是 JPG 格式!");
- }
- if (!isLt2M) {
- this.$message.error("上传头像图片大小不能超过 2MB!");
- }
- return isJPG && isLt2M;
- },
- },
- };
- </script>
- <style lang="scss" scoped>
- .block {
- margin: 20px 100px;
- padding: 60px;
- border: 1px solid #ebebeb;
- border-radius: 5px;
- }
- </style>
- <style>
- .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: 300px;
- height: 300px;
- line-height: 300px;
- text-align: center;
- }
- .avatar {
- width: 300px;
- height: 300px;
- display: block;
- }
- </style>
|