12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265 |
- <!-- 风格 -->
- <template>
- <div>
- <!-- 头部搜索框部分 -->
- <div class="title">
- <el-row>
- <el-col :span="6" class="left">
- <div class="searchBox">
- <div class="searchTitle">模板风格</div>
- <el-select v-model="templateStyle" clearable placeholder="请选择">
- <el-option v-for="item in options" :key="item.id" :label="item.name" :value="item.id">
- </el-option>
- </el-select>
- </div>
- </el-col>
- <el-col :span="6" class="left">
- <div class="searchBox">
- <div class="searchTitle">模板名称</div>
- <el-input v-model="templateName" clearable placeholder="请输入模板名称"></el-input>
- </div>
- </el-col>
- <el-col :span="8" class="right">
- <div class="btnList">
- <button class="search" @click="goSearch">搜索</button>
- <button class="reset" @click="goReset">重置</button>
- </div>
- </el-col>
- </el-row>
- </div>
- <!--表格内容 start------------------------------------------------------------>
- <div class="layerBox">
- <tableTitle :name="tableDivTitle" />
- <button class="btn" @click="addWebsite">添加风格</button>
- <el-row>
- <template>
- <el-table class="my-table" :data="tableData" style="width: 100%" v-loading="templateLoading">
- <el-table-column fixed prop="id" label="编号" width="90">
- </el-table-column>
- <el-table-column prop="template_class_name" label="模板风格" width="">
- </el-table-column>
- <el-table-column prop="template_name" label="模板名称" width="">
- </el-table-column>
- <el-table-column prop="created_at" label="添加时间" width="">
- </el-table-column>
- <el-table-column prop="updated_at" label="修改时间" width="">
- </el-table-column>
- <el-table-column fixed="right" label="操作" width="200">
- <template slot-scope="scope">
- <div class="listBtnBox">
- <div class="listDeleteBtn" @click="deleteRow(scope.row.id)">
- <i class="el-icon-delete"></i>
- 删除
- </div>
- <div class="listEditBtn" @click="goEdit(scope.row.id, scope.row)">
- <i class="el-icon-edit-outline"></i>
- 编辑
- </div>
- </div>
- </template>
- </el-table-column>
- </el-table>
- </template>
- </el-row>
- </div>
- <!--分页 start------------------------------------------------------------>
- <div class="alignBox">
- <el-row>
- <el-col :span="24">
- <el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange"
- :current-page="page" :page-size="pageSize" layout="total, prev, pager, next, jumper"
- :total="total">
- </el-pagination>
- </el-col>
- </el-row>
- </div>
- <!--分页 end------------------------------------------------------------>
- <!--表格内容 end------------------------------------------------------------>
- <!-- 弹出框 编辑 start----------------------------------------------------------->
- <el-dialog :title="dialogName" :visible.sync="dialogTableVisible" width="50%" top="6vh"
- :close-on-click-modal="false">
- <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="120px" class="demo-ruleForm">
- <div class="dialogText">
- <el-form-item label="模板风格:" prop="templateStyle">
- <el-select v-model="ruleForm.templateStyle" placeholder="请选择模板风格">
- <el-option v-for="item in options" :key="item.id" :label="item.name" :value="item.id">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="模板名称:" prop="templateName">
- <el-input v-model="ruleForm.templateName" placeholder="请输入模板名称"></el-input>
- </el-form-item>
- <el-form-item label="风格图:" prop="templateImg" :label-width="formLabelWidth"
- :class="['custom-form-item']" class="custom-align-right">
- <div class="uploaderBox">
- <!--图片上传组件 start ------------------------------------------------------------>
- <div class="avatar-upload-container" @mouseenter="hovering = true"
- @mouseleave="hovering = false">
- <!-- 上传组件 -->
- <el-upload class="avatar-uploader" action="#" :show-file-list="false"
- :before-upload="beforeAvatarUpload_home">
- <!-- 预览图片 -->
- <img v-if="logoUrl_home" :src="logoUrl_home" class="avatar">
- <!-- 上传图标 -->
- <div v-else class="chooseImgDiv">
- <div>
- <img src="@/assets/public/upload/noImage.png">
- <div>选择图片</div>
- </div>
- </div>
- <input type="hidden" name="logo" v-model="homeImg">
- </el-upload>
- <!-- 删除按钮,当鼠标悬浮时显示 -->
- <div v-if="hovering && logoUrl_home" class="delete-button" @click="handleDelete_home">
- <i class="el-icon-delete"></i>
- </div>
- <h5>首页</h5>
- </div>
- <!--图片上传组件 end ------------------------------------------------------------>
- </div>
- <div class="uploaderBox">
- <!--图片上传组件 start ------------------------------------------------------------>
- <div class="avatar-upload-container" @mouseenter="hovering = true"
- @mouseleave="hovering = false">
- <!-- 上传组件 -->
- <el-upload class="avatar-uploader" action="#" :show-file-list="false"
- :before-upload="beforeAvatarUpload_classify">
- <!-- 预览图片 -->
- <img v-if="logoUrl_class" :src="logoUrl_class" class="avatar">
- <!-- 上传图标 -->
- <div v-else class="chooseImgDiv">
- <div>
- <img src="@/assets/public/upload/noImage.png">
- <div>选择图片</div>
- </div>
- </div>
- <input type="hidden" name="logo" v-model="classifyImg">
- </el-upload>
- <!-- 删除按钮,当鼠标悬浮时显示 -->
- <div v-if="hovering && logoUrl_class" class="delete-button" @click="handleDelete_class">
- <i class="el-icon-delete"></i>
- </div>
- <h5>分类页</h5>
- </div>
- <!--图片上传组件 end ------------------------------------------------------------>
- </div>
- <div class="uploaderBox">
- <!--图片上传组件 start ------------------------------------------------------------>
- <div class="avatar-upload-container" @mouseenter="hovering = true"
- @mouseleave="hovering = false">
- <!-- 上传组件 -->
- <el-upload class="avatar-uploader" action="#" :show-file-list="false"
- :before-upload="beforeAvatarUpload_list">
- <!-- 预览图片 -->
- <img v-if="logoUrl_list" :src="logoUrl_list" class="avatar">
- <!-- 上传图标 -->
- <div v-else class="chooseImgDiv">
- <div>
- <img src="@/assets/public/upload/noImage.png">
- <div>选择图片</div>
- </div>
- </div>
- <input type="hidden" name="logo" v-model="listImg">
- </el-upload>
- <!-- 删除按钮,当鼠标悬浮时显示 -->
- <div v-if="hovering && logoUrl_list" class="delete-button" @click="handleDelete_list">
- <i class="el-icon-delete"></i>
- </div>
- <h5>列表页</h5>
- </div>
- <!--图片上传组件 end ------------------------------------------------------------>
- </div>
- <div class="uploaderBox">
- <!--图片上传组件 start ------------------------------------------------------------>
- <div class="avatar-upload-container" @mouseenter="hovering = true"
- @mouseleave="hovering = false">
- <!-- 上传组件 -->
- <el-upload class="avatar-uploader" action="#" :show-file-list="false"
- :before-upload="beforeAvatarUpload_detail">
- <!-- 预览图片 -->
- <img v-if="logoUrl_detail" :src="logoUrl_detail" class="avatar">
- <!-- 上传图标 -->
- <div v-else class="chooseImgDiv">
- <div>
- <img src="@/assets/public/upload/noImage.png">
- <div>选择图片</div>
- </div>
- </div>
- <input type="hidden" name="logo" v-model="detailImg">
- </el-upload>
- <!-- 删除按钮,当鼠标悬浮时显示 -->
- <div v-if="hovering && logoUrl_detail" class="delete-button"
- @click="handleDelete_detail">
- <i class="el-icon-delete"></i>
- </div>
- <h5>详情页</h5>
- </div>
- <!--图片上传组件 end ------------------------------------------------------------>
- </div>
- <div class="uploaderBox">
- <!--图片上传组件 start ------------------------------------------------------------>
- <div class="avatar-upload-container" @mouseenter="hovering = true"
- @mouseleave="hovering = false">
- <!-- 上传组件 -->
- <el-upload class="avatar-uploader" action="#" :show-file-list="false"
- :before-upload="beforeAvatarUpload_search">
- <!-- 预览图片 -->
- <img v-if="logoUrl_search" :src="logoUrl_search" class="avatar">
- <!-- 上传图标 -->
- <div v-else class="chooseImgDiv">
- <div>
- <img src="@/assets/public/upload/noImage.png">
- <div>选择图片</div>
- </div>
- </div>
- <input type="hidden" name="logo" v-model="searchImg">
- </el-upload>
- <!-- 删除按钮,当鼠标悬浮时显示 -->
- <div v-if="hovering && logoUrl_search" class="delete-button"
- @click="handleDelete_search">
- <i class="el-icon-delete"></i>
- </div>
- <h5>搜索页</h5>
- </div>
- <!--图片上传组件 end ------------------------------------------------------------>
- </div>
- <div class="uploaderBox">
- <!--图片上传组件 start ------------------------------------------------------------>
- <div class="avatar-upload-container" @mouseenter="hovering = true"
- @mouseleave="hovering = false">
- <!-- 上传组件 -->
- <el-upload class="avatar-uploader" action="#" :show-file-list="false"
- :before-upload="beforeAvatarUpload_sList">
- <!-- 预览图片 -->
- <img v-if="logoUrl_sList" :src="logoUrl_sList" class="avatar">
- <!-- 上传图标 -->
- <div v-else class="chooseImgDiv">
- <div>
- <img src="@/assets/public/upload/noImage.png">
- <div>选择图片</div>
- </div>
- </div>
- <input type="hidden" name="logo" v-model="sListImg">
- </el-upload>
- <!-- 删除按钮,当鼠标悬浮时显示 -->
- <div v-if="hovering && logoUrl_sList" class="delete-button" @click="handleDelete_sList">
- <i class="el-icon-delete"></i>
- </div>
- <h5>特殊列表页</h5>
- </div>
- <!--图片上传组件 end ------------------------------------------------------------>
- </div>
- <div class="uploaderBox">
- <!--图片上传组件 start ------------------------------------------------------------>
- <div class="avatar-upload-container" @mouseenter="hovering = true"
- @mouseleave="hovering = false">
- <!-- 上传组件 -->
- <el-upload class="avatar-uploader" action="#" :show-file-list="false"
- :before-upload="beforeAvatarUpload_sDetail">
- <!-- 预览图片 -->
- <img v-if="logoUrl_sDetail" :src="logoUrl_sDetail" class="avatar">
- <!-- 上传图标 -->
- <div v-else class="chooseImgDiv">
- <div>
- <img src="@/assets/public/upload/noImage.png">
- <div>选择图片</div>
- </div>
- </div>
- <input type="hidden" name="logo" v-model="sDetailImg">
- </el-upload>
- <!-- 删除按钮,当鼠标悬浮时显示 -->
- <div v-if="hovering && logoUrl_sDetail" class="delete-button"
- @click="handleDelete_sDetail">
- <i class="el-icon-delete"></i>
- </div>
- <h5>特殊详情页</h5>
- </div>
- <!--图片上传组件 end ------------------------------------------------------------>
- </div>
- <!-- -->
- </el-form-item>
- </div>
- <div class="dialogBtn">
- <el-button type="info" @click="cancelForm">取消</el-button>
- <el-button type="primary" @click="submitForm">提交</el-button>
- </div>
- </el-form>
- </el-dialog>
- <!-- 弹出框 编辑 end----------------------------------------------------------->
- </div>
- </template>
- <script>
- //表格标题
- import tableTitle from './components/tableTitle.vue';
- //引入公用样式
- import '@/styles/global.less';
- import { getTemplateClass, getTemplateList, addTemplate, delTemplate, updateTemplate, getTemplateInfo } from '@/api/style'
- export default {
- components: {
- tableTitle,//表格标题-
- },
- data() {
- const validateEmpty = (rule, value, callback) => {
- if (value.length == 0) {
- callback(new Error('该项不能为空!'))
- } else {
- callback()
- }
- }
- return {
- // 1.1 初始化数据 ---------------------------------
- tableDivTitle: "模板列表", //列表标题
- dialogTableVisible: false, //编辑弹框
- dialogName: '编辑', //编辑弹窗名称
- templateLoading: true,//页面加载中
- tableData: [],//表格数据
- //1.2 搜索框相关 ----------------------------------
- templateStyle: '',//模板风格
- templateName: '',//模板名称
- // 1.3 分页相关 -----------------------------------
- page: 1,
- pageSize: 10,
- total: 0,
- //3.4 上传logo图片 --------------------------------
- // logoUrl: '',
- hovering: false, // 鼠标悬浮状态 悬浮时显示删除
- //首页图片
- homeImg: '',
- logoUrl_home: '',
- home_obj: {
- url: '',
- name: '首页',
- value: '1',
- },
- //分类页图片
- classifyImg: '',
- logoUrl_class: '',
- class_obj: {
- url: '',
- name: '分类页',
- value: '2',
- },
- //列表页图片
- listImg: '',
- logoUrl_list: '',
- list_obj: {
- url: '',
- name: '列表页',
- value: '3',
- },
- //详情页图片
- detailImg: '',
- logoUrl_detail: '',
- detail_obj: {
- url: '',
- name: '详情页',
- value: '4',
- },
- //搜索页图片
- searchImg: '',
- logoUrl_search: '',
- search_obj: {
- url: '',
- name: '搜索页',
- value: '5',
- },
- //特殊列表页图片
- sListImg: '',
- logoUrl_sList: '',
- sList_obj: {
- url: '',
- name: '特殊列表页',
- value: '6',
- },
- //特殊详情页图片
- sDetailImg: '',
- logoUrl_sDetail: '',
- sDetail_obj: {
- url: '',
- name: '特殊详情页',
- value: '7',
- },
- //图片json
- img_arr: [],
- value: '',
- options: [],
- //活动id
- activeid: "",
- formLabelWidth: '', //广告示例图相关
- // 弹框相关 -------------------------------------------
- ruleForm: {
- templateStyle: '', //模板风格
- templateName: '', //模板名称
- templateImg: [], //模板图片
- },
- rules: {
- templateStyle: [{ required: true, trigger: 'blur', validator: validateEmpty }],
- templateName: [{ required: true, trigger: 'blur', validator: validateEmpty }],
- templateImg: [{ required: true, trigger: 'blur', validator: validateEmpty }],
- }
- }
- },
- methods: {
- //1.列表和分页相关 start ------------------------------------------------------------>
- //1.1 开始请求列表信息方法
- getData() {
- if(this.templateStyle != '' || this.templateName != ''){
- getTemplateList({
- page: this.page,
- page_size: this.pageSize,
- template_class_id: this.templateStyle, //模板风格id
- template_name: this.templateName, //模板名称
- }).then(data => {
- console.log(data);
- this.tableData = data.data.data
- this.total = data.data.total
- })
- }else{
- getTemplateList({
- page: this.page,
- page_size: this.pageSize
- }).then(data => {
- console.log(data);
- if (data.code == 200) {
- this.templateLoading = false
- }
- this.tableData = data.data.data
- this.total = data.data.total
- })
- }
- },
-
- //获取模板风格
- getStyleList() {
- getTemplateClass({
- page: this.page,
- page_size: this.pageSize
- }).then(data => {
- console.log('模板风格列表', data);
- this.options = data.data
- })
- },
- //1.2 删除内容
- deleteRow(id) {
- console.log(id);
- let data = new FormData()
- data.append('id', id)
- this.$confirm('注意:删除后,该条信息及其绑定关系全部删除', '是否确认删除该条信息?', {
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- }).then(() => {
- console.log("当前删除:" + id)
- delTemplate({
- id: id
- }).then(data => {
- console.log(data);
- if (data.code = 200) {
- this.$message({
- message: '删除成功',
- type: 'success'
- })
- this.getData()
- } else if (data.code == 0) {
- this.$message({
- message: data.message,
- type: 'error'
- })
- }
- })
- }).catch(() => {
- this.$message({
- type: 'warning',
- message: '已取消删除'
- });
- });
- },
- //1.3 列表内容分页
- //直接跳转
- handleSizeChange(val) {
- this.page = val;
- this.getData();
- },
- //1.4 点击分页
- handleCurrentChange(val) {
- this.page = val;
- this.getData();
- },
- // 1.5 搜索按钮
- goSearch() {
- getTemplateList({
- page: this.page,
- page_size: this.pageSize,
- template_class_id: this.templateStyle, //模板风格id
- template_name: this.templateName, //模板名称
- }).then(data => {
- console.log(data);
- this.tableData = data.data.data
- this.total = data.data.total
- })
- },
- //1.6 重置按钮
- goReset() {
- this.templateStyle = ""
- this.templateName = ""
- this.page=1
- this.pageSize=10
- this.getData()
- },
- //列表和分页相关 end ------------------------------------------------------------>
- //1.7 编辑
- goEdit(id, val) {
- this.dialogName = '编辑'
- this.activeid = id
- this.dialogTableVisible = true
- console.log(id, val);
- //数据回显
- this.ruleForm.templateStyle = val.template_class_id
- this.ruleForm.templateName = val.template_name
- this.img_arr = JSON.parse(val.template_img)
- this.homeImg = ''
- this.logoUrl_home = ''
- this.classifyImg = ''
- this.logoUrl_class = ''
- this.listImg = ''
- this.logoUrl_list = ''
- this.detailImg = ''
- this.logoUrl_detail = ''
- this.searchImg = ''
- this.logoUrl_search = ''
- this.sListImg = ''
- this.logoUrl_sList = ''
- this.sDetailImg = ''
- this.logoUrl_sDetail = ''
- for (let item of this.img_arr) {
- if (item.name == '首页') {
- this.logoUrl_home = item.url
- this.homeImg = item.url
- }
- if (item.name == '分类页') {
- this.logoUrl_class = item.url
- this.classifyImg = item.url
- }
- if (item.name == '列表页') {
- this.logoUrl_list = item.url
- this.listImg = item.url
- }
- if (item.name == '详情页') {
- this.logoUrl_detail = item.url
- this.detailImg = item.url
- }
- if (item.name == '搜索页') {
- this.logoUrl_search = item.url
- this.searchImg = item.url
- }
- if (item.name == '特殊列表页') {
- this.logoUrl_sList = item.url
- this.sListImg = item.url
- }
- if (item.name == '特殊详情页') {
- this.logoUrl_sDetail = item.url
- this.sDetailImg = item.url
- }
- }
- },
- //1.8 添加
- addWebsite() {
- this.dialogTableVisible = true
- this.dialogName = "添加"
- //添加时清空回显回来的数据
- this.ruleForm.templateStyle = ''
- this.ruleForm.templateName = ''
- this.ruleForm.templateImg = []
- this.img_arr = []
- this.homeImg = ''
- this.logoUrl_home = ''
- this.classifyImg = ''
- this.logoUrl_class = ''
- this.listImg = ''
- this.logoUrl_list = ''
- this.detailImg = ''
- this.logoUrl_detail = ''
- this.searchImg = ''
- this.logoUrl_search = ''
- this.sListImg = ''
- this.logoUrl_sList = ''
- this.sDetailImg = ''
- this.logoUrl_sDetail = ''
- },
- // 弹出层相关方法 ---------------------------------------------------->
- // 1.9 提交表单
- submitForm() {
- this.img_arr = []
- //首页
- if (this.logoUrl_home) {
- this.home_obj.url = this.homeImg
- this.img_arr.push(this.home_obj)
- }
- //分类页
- if (this.logoUrl_class) {
- this.class_obj.url = this.classifyImg
- this.img_arr.push(this.class_obj)
- }
- //列表页
- if (this.logoUrl_list) {
- this.list_obj.url = this.listImg
- this.img_arr.push(this.list_obj)
- }
- //详情页
- if (this.logoUrl_detail) {
- this.detail_obj.url = this.detailImg
- this.img_arr.push(this.detail_obj)
- }
- //搜索页
- if (this.logoUrl_search) {
- this.search_obj.url = this.searchImg
- this.img_arr.push(this.search_obj)
- }
- //特殊列表页
- if (this.logoUrl_sList) {
- this.sList_obj.url = this.sListImg
- this.img_arr.push(this.sList_obj)
- }
- //特殊详情页
- if (this.logoUrl_sDetail) {
- this.sDetail_obj.url = this.sDetailImg
- this.img_arr.push(this.sDetail_obj)
- }
- function cleanObProp(arr) {
- return arr.map(item => {
- const newItem = {};
- for (const key in item) {
- if (key !== '__ob__') {
- newItem[key] = item[key];
- }
- }
- return newItem;
- });
- }
- const cleanArray = cleanObProp(this.img_arr);
- this.ruleForm.templateImg = JSON.stringify(cleanArray);
- console.log(this.ruleForm.templateImg);
- if (this.dialogName == "添加") {
- addTemplate({
- template_name: this.ruleForm.templateName, //模板名称
- template_img: this.ruleForm.templateImg, // 模板图片
- template_class_id: this.ruleForm.templateStyle, //模板风格id
- }).then(data => {
- console.log(data);
- if (data.code == 200) {
- this.$message({
- message: '添加成功',
- type: 'success'
- })
- this.dialogTableVisible = false
- this.getData()
- } else if (data.code == 0) {
- this.$message({
- message: data.message,
- type: 'error'
- })
- this.dialogTableVisible = true
- return
- } else {
- this.$message({
- message: data.message,
- type: 'error'
- })
- this.dialogTableVisible = true
- return
- }
- })
- }
- if (this.dialogName == "编辑") {
- updateTemplate({
- id: this.activeid, //活动id
- template_name: this.ruleForm.templateName, //模板名称
- template_img: this.ruleForm.templateImg, // 模板图片
- template_class_id: this.ruleForm.templateStyle, //模板风格id
- }).then(data => {
- console.log(data);
- if (data.code == 200) {
- this.$message({
- message: '编辑成功',
- type: 'success'
- })
- this.dialogTableVisible = false
- }
- if (data.code == 0) {
- this.$message({
- message: data.message,
- type: 'error'
- })
- this.dialogTableVisible = true
- }
- this.getData()
- })
- }
- },
- //取消添加或编辑
- cancelForm() {
- this.dialogTableVisible = false
- },
- //3.6 上传图片操作
- beforeAvatarUpload_home(file) {
- const isJPG = file.type === 'image/jpeg';
- const isPNG = file.type === 'image/png';
- const isLt2M = file.size / 1024 / 1024 < 2;
- if (!isJPG && !isPNG) {
- this.$message.error('上传图片只能是 JPG 或 PNG 格式!');
- return false;
- }
- if (!isLt2M) {
- this.$message.error('上传图片大小不能超过 2MB!');
- return false;
- }
- const formData = new FormData();
- formData.append('file', file);
- this.$store.dispatch('pool/uploadFile', formData).then(res => {
- this.logoUrl_home = res.data.imgUrl;//显示缩略图
- this.homeImg = res.data.imgUrl;//提供表单地址
- console.log(res.data.imgUrl)
- }).catch(() => {
- this.$message({
- type: 'info',
- message: '网络错误,请重试!'
- });
- })
- // 阻止默认的上传行为
- return false;
- },
- beforeAvatarUpload_classify(file) {
- const isJPG = file.type === 'image/jpeg';
- const isPNG = file.type === 'image/png';
- const isLt2M = file.size / 1024 / 1024 < 2;
- if (!isJPG && !isPNG) {
- this.$message.error('上传图片只能是 JPG 或 PNG 格式!');
- return false;
- }
- if (!isLt2M) {
- this.$message.error('上传图片大小不能超过 2MB!');
- return false;
- }
- const formData = new FormData();
- formData.append('file', file);
- this.$store.dispatch('pool/uploadFile', formData).then(res => {
- this.logoUrl_class = res.data.imgUrl;//显示缩略图
- this.classifyImg = res.data.imgUrl;//提供表单地址
- console.log(res.data.imgUrl)
- }).catch(() => {
- this.$message({
- type: 'info',
- message: '网络错误,请重试!'
- });
- })
- // 阻止默认的上传行为
- return false;
- },
- beforeAvatarUpload_list(file) {
- const isJPG = file.type === 'image/jpeg';
- const isPNG = file.type === 'image/png';
- const isLt2M = file.size / 1024 / 1024 < 2;
- if (!isJPG && !isPNG) {
- this.$message.error('上传图片只能是 JPG 或 PNG 格式!');
- return false;
- }
- if (!isLt2M) {
- this.$message.error('上传图片大小不能超过 2MB!');
- return false;
- }
- const formData = new FormData();
- formData.append('file', file);
- this.$store.dispatch('pool/uploadFile', formData).then(res => {
- this.logoUrl_list = res.data.imgUrl;//显示缩略图
- this.listImg = res.data.imgUrl;//提供表单地址
- console.log(res.data.imgUrl)
- }).catch(() => {
- this.$message({
- type: 'info',
- message: '网络错误,请重试!'
- });
- })
- // 阻止默认的上传行为
- return false;
- },
- beforeAvatarUpload_detail(file) {
- const isJPG = file.type === 'image/jpeg';
- const isPNG = file.type === 'image/png';
- const isLt2M = file.size / 1024 / 1024 < 2;
- if (!isJPG && !isPNG) {
- this.$message.error('上传图片只能是 JPG 或 PNG 格式!');
- return false;
- }
- if (!isLt2M) {
- this.$message.error('上传图片大小不能超过 2MB!');
- return false;
- }
- const formData = new FormData();
- formData.append('file', file);
- this.$store.dispatch('pool/uploadFile', formData).then(res => {
- this.logoUrl_detail = res.data.imgUrl;//显示缩略图
- this.detailImg = res.data.imgUrl;//提供表单地址
- console.log(res.data.imgUrl)
- }).catch(() => {
- this.$message({
- type: 'info',
- message: '网络错误,请重试!'
- });
- })
- // 阻止默认的上传行为
- return false;
- },
- beforeAvatarUpload_search(file) {
- const isJPG = file.type === 'image/jpeg';
- const isPNG = file.type === 'image/png';
- const isLt2M = file.size / 1024 / 1024 < 2;
- if (!isJPG && !isPNG) {
- this.$message.error('上传图片只能是 JPG 或 PNG 格式!');
- return false;
- }
- if (!isLt2M) {
- this.$message.error('上传图片大小不能超过 2MB!');
- return false;
- }
- const formData = new FormData();
- formData.append('file', file);
- this.$store.dispatch('pool/uploadFile', formData).then(res => {
- this.logoUrl_search = res.data.imgUrl;//显示缩略图
- this.searchImg = res.data.imgUrl;//提供表单地址
- console.log(res.data.imgUrl)
- }).catch(() => {
- this.$message({
- type: 'info',
- message: '网络错误,请重试!'
- });
- })
- // 阻止默认的上传行为
- return false;
- },
- beforeAvatarUpload_sList(file) {
- const isJPG = file.type === 'image/jpeg';
- const isPNG = file.type === 'image/png';
- const isLt2M = file.size / 1024 / 1024 < 2;
- if (!isJPG && !isPNG) {
- this.$message.error('上传图片只能是 JPG 或 PNG 格式!');
- return false;
- }
- if (!isLt2M) {
- this.$message.error('上传图片大小不能超过 2MB!');
- return false;
- }
- const formData = new FormData();
- formData.append('file', file);
- this.$store.dispatch('pool/uploadFile', formData).then(res => {
- this.logoUrl_sList = res.data.imgUrl;//显示缩略图
- this.sListImg = res.data.imgUrl;//提供表单地址
- console.log(res.data.imgUrl)
- }).catch(() => {
- this.$message({
- type: 'info',
- message: '网络错误,请重试!'
- });
- })
- // 阻止默认的上传行为
- return false;
- },
- beforeAvatarUpload_sDetail(file) {
- const isJPG = file.type === 'image/jpeg';
- const isPNG = file.type === 'image/png';
- const isLt2M = file.size / 1024 / 1024 < 2;
- if (!isJPG && !isPNG) {
- this.$message.error('上传图片只能是 JPG 或 PNG 格式!');
- return false;
- }
- if (!isLt2M) {
- this.$message.error('上传图片大小不能超过 2MB!');
- return false;
- }
- const formData = new FormData();
- formData.append('file', file);
- this.$store.dispatch('pool/uploadFile', formData).then(res => {
- this.logoUrl_sDetail = res.data.imgUrl;//显示缩略图
- this.sDetailImg = res.data.imgUrl;//提供表单地址
- console.log(res.data.imgUrl)
- }).catch(() => {
- this.$message({
- type: 'info',
- message: '网络错误,请重试!'
- });
- })
- // 阻止默认的上传行为
- return false;
- },
- handleDelete_home() {
- // 删除图片
- this.logoUrl_home = ''; // 清空图片 URL
- },
- handleDelete_class() {
- // 删除图片
- this.logoUrl_class = ''; // 清空图片 URL
- },
- handleDelete_list() {
- // 删除图片
- this.logoUrl_list = ''; // 清空图片 URL
- },
- handleDelete_detail() {
- // 删除图片
- this.logoUrl_detail = ''; // 清空图片 URL
- },
- handleDelete_search() {
- // 删除图片
- this.logoUrl_search = ''; // 清空图片 URL
- },
- handleDelete_sList() {
- // 删除图片
- this.logoUrl_sList = ''; // 清空图片 URL
- },
- handleDelete_sDetail() {
- // 删除图片
- this.logoUrl_sDetail = ''; // 清空图片 URL
- },
- // 3.7 弹出层相关方法 end ------------------------------------------------------------>
- },
- mounted() {
- this.getData()
- this.getStyleList() //获取模板风格
- },
- }
- </script>
- <style scoped lang="less">
- input[aria-hidden=true] {
- display: none !important;
- }
- // 提示信息
- .tips {
- margin: 30px;
- background-color: #e9ecf9;
- border-radius: 11px;
- .tipsIcon {
- margin: 10px 15px;
- display: inline-block;
- width: 24px;
- height: 24px;
- background: url("../../assets/advertise/Info Circle.png") no-repeat;
- vertical-align: middle;
- }
- .tipsText {
- font-size: 14px;
- color: #666666;
- }
- }
- // 头部
- .title {
- margin: 30px 30px 20px 30px;
- padding: 30px 30px 40px 30px;
- background-color: #fff;
- border-radius: 20px 20px 20px 20px;
- border: 1px solid #E9EDF7;
- .left {
- float: left;
- }
- .right {
- float: right;
- }
- .searchBox {
- ::v-deep .el-input {
- position: relative;
- font-size: 14px;
- display: inline-block;
- width: 80%;
- }
- .searchTitle {
- padding-bottom: 10px;
- font-family: Microsoft YaHei, Microsoft YaHei;
- font-weight: 400;
- font-size: 14px;
- color: #999999;
- line-height: 16px;
- }
- .el-select {
- width: 100%;
- display: inline-block;
- position: relative;
- }
- }
- .btnList {
- float: right;
- padding-top: 28px;
- button {
- height: 38px;
- border: none;
- border-radius: 8px;
- padding: 0 30px;
- }
- .search {
- background-color: #5570f1;
- color: #fff;
- margin-right: 20px;
- }
- .reset {
- font-family: Microsoft YaHei, Microsoft YaHei;
- font-weight: 400;
- font-size: 16px;
- color: #333333;
- background: #F5F7FB;
- border-radius: 8px 8px 8px 8px;
- border: 1px solid rgba(85, 112, 241, 0.11);
- }
- }
- }
- .layerBox {
- padding: 30px 20px;
- position: relative;
- .btn {
- position: absolute;
- top: 30px;
- right: 20px;
- height: 38px;
- color: #fff;
- background-color: #5570f1;
- border: none;
- border-radius: 8px;
- padding: 8px 28px 9px;
- box-sizing: border-box;
- }
- .listBtnBox {
- justify-content: left;
- }
- .listDeleteBtn,
- .listEditBtn {
- margin-left: 0px;
- padding-left: 0px;
- margin-right: 20px;
- width: 76px;
- height: 36px;
- line-height: 36px;
- }
- ::v-deep .el-form-item {
- margin-bottom: 50px;
- }
- ::v-deep .el-select {
- width: 100%;
- }
- ::v-deep .el-input--medium,
- ::v-deep .el-form-item__label {
- line-height: 36px;
- font-size: 16px;
- }
- }
- // 弹出层内容
- .dialogText {
- margin: 0 7px 0 3px;
- padding-bottom: 1px;
- padding: 30px 60px 1px 20px;
- background-color: #f5f7fb;
- .adImage {
- width: 140px;
- height: 140px;
- line-height: 210px;
- border-radius: 12px;
- border: 1px solid rgba(85, 112, 241, 0.11);
- img {
- width: 140px;
- height: 80px;
- }
- }
- .uploaderBox,
- .avatar-upload-container {
- display: inline-block;
- }
- .avatar-uploader {
- background-color: #fff;
- }
- .uploaderBox {
- margin-right: 20px;
- position: relative;
- h5 {
- text-align: center;
- font-size: 14px;
- font-weight: 400;
- color: #999999;
- margin-top: 0px;
- }
- }
- ::v-deep .avatar {
- width: 140px;
- height: auto;
- }
- .price {
- ::v-deep .el-input {
- width: 29%;
- }
- }
- .example {
- font-family: Microsoft YaHei;
- color: #5570F1;
- }
- .el_btnList {
- margin-right: 15px;
- margin-top: 20px;
- }
- //日期时间选择器的宽
- ::v-deep .el-date-editor.el-input {
- width: 48%;
- }
- ::v-deep .el-button+.el-button {
- margin-left: 0px;
- }
- ::v-deep .el-select {
- width: 100%;
- }
- ::v-deep .el-form-item {
- margin-bottom: 50px;
- }
- }
- // 弹出层按钮
- .dialogBtn {
- text-align: center;
- margin: 50px auto 20px;
- button {
- width: 184px;
- padding: 16px;
- font-family: Microsoft YaHei, Microsoft YaHei;
- font-weight: 400;
- font-size: 20px;
- border: none;
- border-radius: 12px 12px 12px 12px;
- }
- // 取消
- .cancel {
- color: #333333;
- background-color: #f5f7fb;
- border: 2px solid rgba(85, 112, 241, 0.11);
- }
- // 提交
- .submit {
- color: #fff;
- background-color: #5570F1;
- margin-left: 40px;
- }
- }
- //审核弹出框
- .radioGroup {
- ::v-deep .el-form-item {
- margin-top: 40px;
- margin-bottom: 0;
- }
- }
- .graph {
- background-color: #f5f7fb;
- padding: 60px 100px;
- overflow: hidden;
- li {
- float: left;
- }
- >li:first-child {
- margin-right: 100px;
- }
- }
- .dialog-footer {
- margin: 0 auto;
- }
- </style>
|