<template> <div class="app-container"> <el-card class="box-card"> <div slot="header" class="clearfix"> <div style="display: flex;flex-direction: row;justify-content: space-between;padding: 0 20px;"> <p class="text-v-c"> 当前审核状态:<span class="speDom">{{ reviewResult }}</span><span style="display: block;width:20px;height:100%"></span> <span class="speTip">仅可修改店铺相关信息,企业主体信息不允许修改!</span></p> <p> <el-button size="small" icon="el-icon-edit" type="primary" @click="handleEdit">编辑信息</el-button> </p> </div> </div> <div> <el-card> <div slot="header" class="clearfix"> <p>企业认证信息</p> </div> <el-form ref="mainForm" :model="mainForm" label-width="180px" class="main-form-con" size="small"> <el-form-item label="营业执照:" prop="license"> <div style="width:100%;height: 100%;display: flex;flex-direction: row;justify-content: normal;"> <div style="padding-right:6px;"> <el-upload :disabled="true" :class="['uploadData',{ 'hiden-dom': licenseImgFileList.length >= 1 }]" action="#" list-type="picture-card" :on-preview="handleLicenseImgview" :file-list='licenseImgFileList' > <i class="el-icon-plus"></i> </el-upload> <el-dialog :visible.sync="isLicenseVisible"> <img width="100%" :src="licenseImgUrl" alt=""> </el-dialog> </div> <div> <span class="tips-text"> <i class="el-icon-warning h-warning"></i> </span> </div> <div style="width:380px;line-height: 24px;padding-top: 6px;"> <span class="tips-text">点击可查看大图</span> </div> </div> </el-form-item> <el-form-item label="企业名称:" prop="organization_name" inline-message="true"> <el-input v-model="mainForm.organization_name" :disabled="isMainItem" style="width: 400px;"></el-input> </el-form-item> <el-form-item label="企业地址:" prop="organization_address" inline-message="true"> <el-input v-model="mainForm.organization_address" :disabled="isMainItem" style="width: 400px;"></el-input> </el-form-item> <el-form-item label="统一社会代码:" prop="license_number" inline-message="true"> <el-input v-model="mainForm.license_number" :disabled="isMainItem" style="width: 400px;"></el-input> </el-form-item> <el-form-item label="营业期限:" prop="license_expires_time"> <el-date-picker style="width:400px;" v-model="periodConcreteTime" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" value-format="yyyy-MM-dd" :disabled="isMainItem" /> <el-checkbox v-model="periodLongTermVal" :disabled="isMainItem" style="padding-left:15px;">长期</el-checkbox> </el-form-item> <el-form-item label="法人身份证:"> <div style="width:100%;height: 100%;display: flex;flex-direction: row;justify-content: normal;"> <!-- 身份证正面 --> <div style="padding: 0 20px;"> <el-upload :disabled="true" :class="['uploadData',{ 'hiden-dom': idcardImgFileList.length >= 1 }]" list-type="picture-card" action="#" :on-preview="handleIdcardPositiveImgview" :file-list='idcardImgFileList' > <i class="el-icon-plus"></i> </el-upload> <el-dialog :visible.sync="idcardPositiveVisible"> <img width="100%" :src="idcardPositiveImgUrl" alt=""> </el-dialog> </div> <!-- 身份证反面 --> <div style="padding: 0 20px;"> <el-upload :disabled="true" :class="['uploadData',{ 'hiden-dom': idcardBackImgFileList.length >= 1 }]" list-type="picture-card" action="#" :on-preview="handleIdcardBackImgview" :file-list='idcardBackImgFileList' > <i class="el-icon-plus"></i> </el-upload> <el-dialog :visible.sync="idcardBackVisible"> <img width="100%" :src="idcardBackImgUrl" alt=""> </el-dialog> </div> <div> <span class="tips-text"> <i class="el-icon-warning h-warning"></i> </span> </div> <div style="width:380px;line-height: 24px;padding-top: 6px;"> <span class="tips-text">点击可查看大图</span> </div> </div> <div class="idcard-tips-con"> <p>请上传身份证正面</p> <p>请上传身份证国徽面</p> </div> </el-form-item> <el-form-item label="法定姓名:" prop="real_name"> <el-input v-model="mainForm.real_name" :disabled="isMainItem" style="width: 400px;"></el-input> </el-form-item> <el-form-item label="法定代表人证件号:" prop="idcard_number"> <el-input v-model="mainForm.idcard_number" :disabled="isMainItem" style="width: 400px;"></el-input> </el-form-item> <el-form-item label="有效期至:" prop="idcard_expires_time"> <el-date-picker style="width:400px;" v-model="validityConcreteTime" type="daterange" range-separator="至" value-format="yyyy-MM-dd" start-placeholder="开始日期" end-placeholder="结束日期" :disabled="isMainItem" /> <el-checkbox v-model="validityLongTermVal" style="padding-left:15px;" :disabled="isMainItem">长期 </el-checkbox> </el-form-item> </el-form> </el-card> </div> <!-- 店铺信息 --> <div style="margin-top: 15px;"> <el-card> <div slot="header" class="clearfix"> <p>店铺信息</p> </div> <el-form ref="storeForm" :model="storeForm" label-width="180px"> <el-form-item label="电商平台经验:" prop="is_business_experience"> <el-radio-group v-model="storeForm.is_business_experience" :disabled="isMainItem"> <el-radio :label="1">有</el-radio> <el-radio :label="0">无</el-radio> </el-radio-group> </el-form-item> <el-form-item label="店铺名称:" prop="store_name" inline-message="true"> <el-input v-model="storeForm.store_name" :disabled="isMainItem" style="width: 400px;" placeholder="请输入店铺名称"></el-input> </el-form-item> <el-form-item label="经营类目:" prop="scope"> <el-select v-model="storeForm.scope" multiple :disabled="isMainItem" placeholder="请选择..." style="width: 400px;"> <el-option v-for="item in scopeOptions" :key="item.id" :label="item.title" :value="item.id" ></el-option> </el-select> </el-form-item> <el-form-item label="店铺LOGO:" prop="shop_logo"> <div style="width:100%;height: 100%;display: flex;flex-direction: row;justify-content: normal;"> <div style="padding-right:6px;"> <el-upload :disabled="true" :class="['uploadData',{ 'hiden-dom': logoImgFileList.length >= 1 }]" action="#" list-type="picture-card" :on-preview="handleShopLogoPreview" :file-list='logoImgFileList' > <i class="el-icon-plus"></i> </el-upload> <el-dialog :visible.sync="shopLogoVisible"> <img width="100%" :src="shopLogoImgUrl" alt=""> </el-dialog> </div> <div> <span class="tips-text"> <i class="el-icon-warning h-warning"></i> </span> </div> <div style="width:380px;line-height: 24px;padding-top: 6px;"> <span class="tips-text">点击可查看大图</span> </div> </div> </el-form-item> <el-form-item label="运营负责人:" prop="emergency_name" inline-message="true"> <el-input v-model="storeForm.emergency_name" :disabled="isMainItem" style="width: 400px;" placeholder="请输入运营负责人姓名"></el-input> </el-form-item> <el-form-item label="联系电话:" prop="emergency_tel"> <el-input v-model="storeForm.emergency_tel" :disabled="isMainItem" style="width: 400px;" placeholder="请输入联系电话"></el-input> </el-form-item> <el-form-item> <p style="width:580px;line-height:24px;font-size:14px;margin: 0;color: #333;"> 需要提交特殊产品资质的类目请将资质上传在此处,包括全国工业生产许可证、3C、医疗品械 生产许可证、化妆品生产企业许可证等,根据具体类目资质要求提交</p> </el-form-item> <el-form-item label="其他资质:"> <div class="auth-con"> <div v-for="(item,index) in qualificationList" :key="item.id" class="single-upload-con"> <div v-show="!item.url" class="single-auth-img"></div> <div v-show="item.url" class="single-auth-img-con"> <img class="auth-spec-img" :src="item.url" alt=""/> <span class="span-img-del-loading"> <span class="span-img-del el-icon-zoom-in zoom-span-block" @click="viewSingleSpecImg(index,item)"></span> </span> </div> <div class="single-title">{{ authTitleFormatter(item.content) }}</div> </div> </div> </el-form-item> </el-form> </el-card> </div> </el-card> <!--编辑--> <el-dialog title="编辑店铺信息" :visible.sync="isOpen" width="65%" class="shopinf-edit" center :destroy-on-close="true" :close-on-click-modal="false" :before-close="handleCancel"> <el-form v-if="isOpen" ref="editForm" :model="editForm" :rules="editRules" label-width="180px" size="small"> <el-form-item label="电商平台经验:" prop="is_business_experience"> <el-radio-group v-model="editForm.is_business_experience"> <el-radio :label="1">有</el-radio> <el-radio :label="0">无</el-radio> </el-radio-group> </el-form-item> <el-form-item label="店铺名称:" prop="store_name" inline-message="true"> <el-input v-model="editForm.store_name" style="width: 400px;" placeholder="请输入店铺名称"></el-input> </el-form-item> <el-form-item label="经营类目:" prop="scope"> <el-select v-model="editForm.scope" @remove-tag="removeEditTag" @visible-change="editScopeVisibleChange($event)" multiple placeholder="请选择..." style="width: 400px;"> <el-option v-for="item in scopeOptions" :key="item.id" :label="item.title" :value="item.id" ></el-option> </el-select> </el-form-item> <el-form-item label="店铺LOGO:" prop="shop_logo"> <div style="width:100%;height: 100%;display: flex;flex-direction: row;justify-content: normal;"> <div style="padding-right:6px;"> <el-upload :class="['uploadData',{ 'hiden-dom': editLogoImgFileList.length >= 1 }]" action="#" list-type="picture-card" :limit="1" :on-exceed="showTip1" :before-upload = "beforeUploadLogoImg" :http-request="uploadShopLogoImg" :on-preview="handleEditShopLogoView" :on-remove="removeEditShopLogoImg" :file-list = 'editLogoImgFileList' > <i class="el-icon-plus"></i> </el-upload> <el-dialog :visible.sync="isEditShopLogoVisible" append-to-body> <img width="100%" :src="editShopLogoImgUrl" alt=""> </el-dialog> </div> <div> <span class="tips-text"> <i class="el-icon-warning h-warning"></i> </span> </div> <div style="width:380px;line-height: 24px;padding-top: 6px;"> <span class="tips-text">请上传店铺LOGO,文件大小在500KB以内,支持png,jpg格式,最多可上传1张</span> </div> </div> </el-form-item> <el-form-item label="运营负责人:" prop="emergency_name" inline-message="true"> <el-input v-model="editForm.emergency_name" style="width: 400px;" placeholder="请输入运营负责人姓名"></el-input> </el-form-item> <el-form-item label="联系电话:" prop="emergency_tel"> <el-input v-model="editForm.emergency_tel" style="width: 400px;" placeholder="请输入联系电话"></el-input> </el-form-item> <el-form-item> <p style="width:580px;line-height:24px;font-size:14px;margin: 0;">需要提交特殊产品资质的类目请将资质上传在此处,包括全国工业生产许可证、3C、医疗品械 生产许可证、化妆品生产企业许可证等,根据具体类目资质要求提交</p> </el-form-item> <el-form-item label="其他资质:"> <div class="auth-con"> <div v-for="(item,index) in editQualificationList" :key="item.id" class="single-upload-con"> <div v-show="!item.url" class="single-auth-img" @click="upPreAuthImg(index)"></div> <div v-show="item.url" class="single-auth-img-con"> <img class="auth-spec-img" :src="item.url" alt="" /> <span class="span-img-del-loading"> <span class="span-img-del el-icon-zoom-in zoom-span-block" @click="viewSingleAuthImg(index,item)"></span> <span class="span-img-del el-icon-delete del-span-block" @click="delSingleAuthImg(index,item)"></span> </span> </div> <div class="single-title">{{ authTitleFormatter(item.content) }}</div> <!-- 真正上传 dom 原生 input --> <input type="file" style="display: none;" :ref=" 'hxz' + index " accept="image/*" @change="changeIMG(index,item)"> </div> </div> </el-form-item> <el-form-item class="btnCen"> <el-button type="" @click="handleCancel" style="margin-right: 20px;">取 消</el-button> <el-button type="primary" @click="handleAdd('editForm')">提交审核</el-button> </el-form-item> </el-form> </el-dialog> <!-- 资质图片预览 --> <el-dialog :visible.sync="imgDialog" :destroy-on-close="true" width="60%" center :close-on-click-modal="false" class="img-dialog-con" > <img class="img-spe" :src="qualificationUrl" alt=""> </el-dialog> </div> </template> <script> import {getGoodsType, getMainInf, getShopInf, upLoadImg, addShopInf, getUploadQualificationListData} from '@/api/module/entry'; import { dateFormat } from '@/utils' export default { name: "Shop", data() { let logoValidator = (rule, value, callback) => { if (this.logoImgFileList.length > 0) { callback(); } else if (this.logoImgFileList.length === 0) { callback(new Error("店铺logo图片至少上传一张")); } }; let busAuthValidator = (rule, value, callback) => { if (this.businessImgFileList.length > 0) { callback(); } else if (this.businessImgFileList.length === 0) { callback(new Error("其他资质图片至少上传一张")); } }; // 手机号码格式校验 let checkTel = (rule, value, callback) => { const reg = /^1[3456789]\d{9}$/; if (!reg.test(value)) { callback(new Error('手机号码格式有误')); } else { callback(); } }; return { reviewResult: '加载中。。', isMainItem: true,// 主体/企业信息 是否可以修改,目前暂时不能 mainForm: { license: '', organization_name: '', license_number: '', license_start_time: '', license_expires_time: '', idcard_front: '', idcard_back: '', real_name: '', idcard_number: '', idcard_start_time: '', idcard_expires_time: '', }, // 营业执照图片 licenseImgFileList: [], isLicenseVisible: false, licenseImgUrl: '', // 营业期限 periodConcreteTime: [], // 区间时间 periodLongTermVal: false, // 是否长期 // 身份证 正面 idcardImgFileList: [], idcardPositiveVisible: false, idcardPositiveImgUrl: '', // 身份证国徽面 idcardBackImgFileList: [], idcardBackVisible: false, idcardBackImgUrl: '', // 身份证 有效期 validityConcreteTime: [], validityLongTermVal: false, // 店铺信息 storeForm: { is_business_experience: '', store_name: '', scope: [], shop_logo: '', emergency_name: '', emergency_tel: '', business_auth: '', }, scopeOptions: [], // 经营类目 // 店铺logo 图片 logoImgFileList: [], shopLogoVisible: false, shopLogoImgUrl: '', // 需要上传的资质 qualificationList: [], qualificationUrl: '', imgDialog: false, // 编辑 isOpen: false, editForm: { is_business_experience: '', store_name: '', scope: [], shop_logo: '', emergency_name: '', emergency_tel: '', business_auth: '', }, editRules: { store_name: [{required: true, message: '店铺名称不能为空', trigger: 'blur'}], scope: [{required: true, message: '经营类目至少选择一种', trigger: 'change'}], shop_logo: [{required: true, message: '店铺Logo至少上传一张图片', validator: logoValidator}],// emergency_name: [{required: true, message: '运营负责人不能为空', trigger: 'blur'}],// emergency_tel: [ {required: true, message: '联系人手机号码不能为空', trigger: 'blur'}, {required: true, validator: checkTel, trigger: 'blur'} ], business_auth: [{required: true, message: '店铺Logo至少上传一张图片', validator: busAuthValidator}],// }, // 编辑 店铺logo editLogoImgFileList: [], isEditShopLogoVisible: false, editShopLogoImgUrl: '', // 编辑 资质 editQualificationList: [], } }, // data end created() { // 获取经营一级类目 getGoodsType().then(res => { if (res.code === 1) { this.scopeOptions = res.data; } }); this.getMain(); this.getShop(); }, methods: { /** 获取 主体即企业 信息 */ getMain() { getMainInf().then(res => { if (res.code == 1) { this.mainForm = res.data; // 营业执照电子图片处理 let licenseImgArr = []; let licenseImgUrl = {}; licenseImgArr = this.mainForm.license.split(","); if (licenseImgArr.length > 0) { licenseImgArr.forEach(item => { licenseImgUrl = {}; if (item) { licenseImgUrl.url = item this.licenseImgFileList.push(licenseImgUrl) } }); } else { this.licenseImgFileList = []; } // 身份证 正面数据处理 let idcardFrontImgArr = []; let idcardFrontImgUrl = {}; idcardFrontImgArr = this.mainForm.idcard_front.split(","); if (idcardFrontImgArr.length > 0) { idcardFrontImgArr.forEach(item => { idcardFrontImgUrl = {}; if (item) { idcardFrontImgUrl.url = item this.idcardImgFileList.push(idcardFrontImgUrl) } }); } else { this.idcardImgFileList = []; } // 身份证 反面数据处理 let idcardBackImgArr = []; let idcardBackImgUrl = {}; idcardBackImgArr = this.mainForm.idcard_back.split(","); if (idcardBackImgArr.length > 0) { idcardBackImgArr.forEach(item => { idcardBackImgUrl = {}; if (item) { idcardBackImgUrl.url = item this.idcardBackImgFileList.push(idcardBackImgUrl) } }); } else { this.idcardBackImgFileList = []; } // 营业期限 日期格式处理 if (this.mainForm.license_expires_time == 0) { this.periodLongTermVal = true this.periodConcreteTime = []; } else if (this.mainForm.license_expires_time > 0) { this.periodLongTermVal = false; this.periodConcreteTime = []; let start = this.formatterTime(this.mainForm.license_start_time) let end = this.formatterTime(this.mainForm.license_expires_time); this.periodConcreteTime.push(start) this.periodConcreteTime.push(end) } // 身份证 有效期 日期格式处理 if (this.mainForm.idcard_expires_time == 0) { this.validityLongTermVal = true this.validityConcreteTime = []; } else if (this.mainForm.idcard_expires_time > 0) { this.validityLongTermVal = false; this.validityConcreteTime = []; let start = this.formatterTime(this.mainForm.idcard_start_time) let end = this.formatterTime(this.mainForm.idcard_expires_time); this.validityConcreteTime.push(start) this.validityConcreteTime.push(end) } } }); }, /** 获取 店铺信息 */ getShop() { getShopInf().then(res => { if (res.code == 1) { // 审核状态 if (res.data.state === 1) { this.reviewResult = '已通过'; } else if (res.data.state === 2) { this.reviewResult = '未审核'; } else if (res.data.state === 3) { this.reviewResult = '未通过'; } else { this.reviewResult = ''; } // 处理 select 下拉回显数据格式 this.storeForm.scope = []; if (res.data.scope === '') { this.storeForm.scope = []; } else { let scopeListStr = res.data.scope.split(','); let scopeList = []; for (let i = 0; i < scopeListStr.length; i++) { scopeList.push(parseInt(scopeListStr[i])); } this.storeForm = res.data; this.storeForm.scope = scopeList; } // 店铺信息展示 start this.storeForm = res.data; // 店铺logo回显处理 let logoImgArr = []; let logoImgUrl = {}; logoImgArr = this.storeForm.shop_logo.split(","); if (logoImgArr.length > 0) { logoImgArr.forEach(item => { logoImgUrl = {}; if (item) { logoImgUrl.url = item this.logoImgFileList.push(logoImgUrl) } }); } else { this.logoImgFileList = []; } // 资质图片回显处理 this.qualificationList = this.storeForm.qualification ? this.storeForm.qualification : []; } else if (res.code) { this.$message({message: res.msg, type: 'error'}); } }); }, /** 编辑 */ handleEdit() { getShopInf().then(res=> { if (res.code == 1) { this.isOpen = true; this.editForm = res.data // 经营类目 数据处理 if (res.data.scope === '') { this.editForm.scope = []; } else { let scopeListStr = res.data.scope.split(','); let scopeList = []; for (let i = 0; i < scopeListStr.length; i++) { scopeList.push(Number(scopeListStr[i])); } this.editForm = res.data; this.editForm.scope = scopeList; } // 店铺logo回显处理 let logoImgArr = []; let logoImgUrl = {}; logoImgArr = this.editForm.shop_logo.split(","); if (logoImgArr.length > 0) { logoImgArr.forEach(item=> { logoImgUrl = {}; if (item) { logoImgUrl.url = item this.editLogoImgFileList.push(logoImgUrl) } }); }else { this.editLogoImgFileList = []; } // 资质图片回显处理 this.editQualificationList = this.editForm.qualification ? this.editForm.qualification : []; } else { this.$message({type: 'error', message: res.msg ? res.msg : '获取店铺信息失败' }); } }); }, /** 关闭/取消 编辑 */ handleCancel() { this.resetEditForm('editForm'); this.isOpen = false; }, /** 提交审核 */ handleAdd(formName) { // 其他 资质 填写拦截校验 let isComplete = false; if (this.editQualificationList.length > 0) { for (let i = 0; i < this.editQualificationList.length; i++) { if (!this.editQualificationList[i].url) { isComplete = true; break } } if (isComplete) { this.$message({type:'warning',message: '请上传对应资质所需的图片'}); return; } } // business_auth: '', let data = {}; this.$refs[formName].validate((valid) => { if (valid) { data['is_business_experience'] = this.editForm.is_business_experience; data['store_name'] = this.editForm.store_name; data['emergency_name'] = this.editForm.emergency_name; data['emergency_tel'] = this.editForm.emergency_tel; data['scope'] = this.editForm.scope.join(','); // 编辑 的店铺logolist if(this.editLogoImgFileList.length > 0) { for(let i = 0; i < this.editLogoImgFileList.length; i++) { if(i === 0) { data['shop_logo'] = this.editLogoImgFileList[i].url; }else { data['shop_logo'] += ',' + this.editLogoImgFileList[i].url; } } } data['qualification_auth'] = JSON.stringify(this.editQualificationList) this.$confirm('确定要修改信息吗?信息修改后需要重新提交审核,审核周期约1-3个工作日', '提示:', { type: 'warning', confirmButtonText: '确定', cancelButtonText: '取消' }).then(() => { addShopInf(data).then(res=> { if (res.code == 1) { this.$message({type: 'success',message: '编辑成功'}); this.isOpen = false; this.getShop(); }else { this.$message({type: 'error',message: res.message ? res.message : '操作失败'}); } }); }).catch(() => {}); } // valid true 通过 end }) }, /** 预览 营业执照 */ handleLicenseImgview(file) { this.licenseImgUrl = file.url; this.isLicenseVisible = true; }, /** 预览 身份证 正面 */ handleIdcardPositiveImgview(file) { this.idcardPositiveImgUrl = file.url; this.idcardPositiveVisible = true; }, /** 预览 身份证 反面 */ handleIdcardBackImgview(file) { this.idcardBackImgUrl = file.url; this.idcardBackVisible = true; }, /** 预览 店铺 logo */ handleShopLogoPreview(file) { this.shopLogoImgUrl = file.url; this.shopLogoVisible = true; }, /** 预览 当前资质对应图片 */ viewSingleSpecImg(index,item) { this.imgDialog = false; if (!item.url) return; this.imgDialog = true; this.qualificationUrl = item.url }, /** 上传 店铺logo 格式和大小的校验 */ beforeUploadLogoImg(file) { let isImgSize = (file.size / 1024) > 500; if (file.type !== "image/png" && file.type !== "image/jpg" && file.type != "image/jpeg") { this.$message({ message: '上传图片格式只支持png/png格式', type: "warning" }); return false; } if (isImgSize) { this.$message({ message: '上传图片大小不能超过500kb', type: "warning" }); return false; } }, /** 上传 店铺logo图片 */ uploadShopLogoImg(param) { this.getBase64(param.file).then((res) => { let result = res.split(","); this.Base64img = result[1]; let data = {"img_data": this.Base64img}; upLoadImg(data).then((res) => { if (res && res.code == 1) { this.logoImgFileList.push({'url': res.data.image_url}); this.$message({message: '上传成功', type: 'success'}); this.$refs.storeForm.clearValidate('shop_logo'); } }); }); }, /** 编辑 预览 店铺logo 图片 */ handleEditShopLogoView(file) { this.editShopLogoImgUrl = file.url; this.isEditShopLogoVisible = true; }, /** 编辑 删除 店铺logo 图片 */ removeEditShopLogoImg(file) { for (let i = 0; i < this.editLogoImgFileList.length; i++) { if (file.uid === this.editLogoImgFileList[i].uid) { this.editLogoImgFileList.splice(i, 1); } } }, /** 上传 对应资质图片 */ upPreAuthImg(index) { let domRef = "hxz" + index; this.$refs[domRef][0].value = ''; this.$refs[domRef][0].click(); }, /** 真正的上传图片方法,原生input */ changeIMG(index, item) { let curItem = item; let inputDom = "hxz" + index; let file = this.$refs[inputDom][0].files[0]; if( file.size > 1024 * 1024 * 3 ) { this.$message({ type: 'error',message: '规格图片不能大于 3 M'}); return; } this.getBase64(file).then((res) => { let result = res.split(","); this.Base64img = result[1]; let data = {"img_data": this.Base64img} upLoadImg(data).then(res => { if (res && res.code == 1) { curItem.url = res.data.image_url; // this.singleSpecImgList.push({'url': res.data.image_url}) this.$message({ message:'上传成功',type:'success'}); }else { this.$message({ message:'上传失败,请重新上传',type:'error'}); } }) }); }, /** 查看 当前资质图片 */ viewSingleAuthImg(index,item) { this.imgDialog = false; // this.qualificationUrl = ""; if (!item.url) return; this.imgDialog = true; this.qualificationUrl = item.url }, /** 删除 当前图片 */ delSingleAuthImg(index,item) { if( item.url ) { item.url = ''; this.$message({type: 'success',message: '删除成功'}); } }, /** 删除单个 经营类目 触发 */ removeEditTag(indexVal) { if (!indexVal) return; if (this.editForm.scope.length == 0) { this.editQualificationList = []; } if (this.editForm.scope.length > 0) { let data = { cate_ids: this.editForm.scope } getUploadQualificationListData(data).then(res=> { if (res.code == 1) { this.editQualificationList = res.data ? res.data : []; } }) } }, /** 经营类目 下拉框隐藏时候,触发 */ editScopeVisibleChange(handleType) { if (!handleType) { if (Array.isArray(this.editForm.scope) && this.editForm.scope.length > 0) { let data = { cate_ids: this.editForm.scope } getUploadQualificationListData(data).then(res=> { if (res.code == 1) { this.editQualificationList = res.data ? res.data : []; } }) } } }, /** 初始化 编辑 表单 */ resetEditForm(formName) { this.$refs[formName].resetFields(); this.editQualificationList = []; this.editLogoImgFileList = []; }, // --- 通用 --- /** 图片转换为base64位 */ getBase64(file) { return new Promise(function (resolve, reject) { let reader = new FileReader(); let imgResult = ""; reader.readAsDataURL(file); reader.onload = function () { imgResult = reader.result; }; reader.onerror = function (error) { reject(error); }; reader.onloadend = function () { resolve(imgResult); }; }); }, /** 时间戳转换为 标准时间格式 */ formatterTime(time) { return dateFormat(time *1000, 'Y-m-d') }, /** 上传图片限制 1张 */ showTip1() { this.$message({message: '最多上传1张图片', type: 'warning'}); }, /** 资质类目 title格式化 */ authTitleFormatter(textVal) { let res = ''; if (textVal) { res = textVal.trim(); } return res }, // /** 图片只预览 */ // getPreviewImgList(ele) { // let arr = []; // arr.push(ele); // return arr; // }, } } </script> <style lang="scss" type="text/stylus" scoped> .shopinf-edit { ///deep/.el-dialog { // height: 80%; // overflow : hidden; //} ///deep/.el-dialog__body{ // height: calc(100% - 60px); // overflow-x: hidden; // overflow-y: scroll; //} } /* 弹窗 样式 重置 */ .shopinf-edit >>> .el-dialog { width: 60%; height: 80%; overflow: hidden; } .shopinf-edit >>> .el-dialog .el-dialog__body { height: calc(100% - 60px); padding: 10px 20px 20px 40px; overflow: auto; } /* 弹窗 样式 重置 ---- end ---- */ .main-form-con { //margin-left: 100px; } /deep/ .el-card__body { height: calc(100% - 80px); margin: 10px 0; overflow-x: hidden; overflow-y: scroll; } /deep/ .speDom { color: red; font-size: 20px; margin: 0 0 4px 10px; } /deep/ .speTip { color: #c0ccda; font-size: 14px; } .text-v-c { align-items: center; display: -webkit-flex; } .demo-image__preview { width: 100%; height: 100%; display: flex; flex-direction: row; justify-content: normal; } // 上传图片样式 .uploadData { display: inline-block; /deep/ .el-upload--picture-card { width: 100px; height: 100px; } /deep/ .el-upload { width: 100px; height: 100px; line-height: 100px; } /deep/ .el-upload-list--picture-card .el-upload-list__item { width: 100px; height: 100px; line-height: 100px; } /deep/ .el-upload-list--picture-card .el-upload-list__item-thumbnail { width: 100px; height: 100px; line-height: 100px; } /deep/ .avatar { width: 100px; height: 100px; } } .hiden-dom >>> .el-upload--picture-card { display: none !important; } .idcard-tips-con { display: flex; flex-direction: row; justify-content: normal; justify-items: center; } .idcard-tips-con > p { margin: 0; padding: 0 15px; } /*** 资质 样式 start ***/ .auth-con { width: 100%; height: 100%; display: flex; flex-direction: row; justify-content: normal; flex-wrap: wrap; } .single-upload-con { width: 160px; height: 140px; text-align: center; overflow: hidden; } .single-auth-img { width: 98px; height: 98px; border-radius: 6px; border: 1px dashed #eee; margin: 5px auto; cursor: pointer; } .single-auth-img-con { margin: 0; padding: 0; display: inline-block; width: 98px; height: 98px; position: relative; //top:4px; cursor: pointer; border-radius: 6px; border: 1px solid #c0ccda; } .auth-spec-img { width: 100%; height: 100%; border-radius: 6px; cursor: pointer; position: relative; border: none; } /* 当前图片滑过 效果,显示删除icon */ .span-img-del-loading { display: none; position: absolute; width: 98px; height: 98px; top: 0; left: 0; border-radius: 5px; z-index: 66; background-color: rgba(0, 0, 0, 0.5); opacity: 0.75; transition: opacity .3s; } .span-img-del-loading > .zoom-span-block { color: #fff; font-size: 20px; font-weight: 500; margin: 41px 4px 0; z-index: 70; } .span-img-del-loading > .del-span-block { color: #fff; font-size: 20px; font-weight: 500; margin: 41px 4px 0; z-index: 70; } .single-auth-img-con:hover > .span-img-del-loading { display: block; } .single-title { font-size: 12px; color: #666; text-align: center; //line-height :14px; //margin: 10px 0; } /*** 资质 样式 end ***/ // 提示语 样式 start .tips-text { font-size: 14px; color: #C9C9C9; word-break: break-all; } .h-warning:before { color: #e3c300; } // 提示语样式 end .btnCen { /deep/ .el-form-item__content { margin-left: 0 !important; text-align: center; //margin-top: 30px; } } /* 预览 资质图片 */ .img-dialog-con >>> .el-dialog__body { text-align : center; } .img-spe { //width: 80%; margin: 0 auto; } </style>