<template> <div class="brandClassification"> <template v-if="!isShowAdd"> <div class="head-title"> 品牌分类管理 <el-button style="float: right; margin-top: -5px" size="small" type="primary" @click="(isShowAdd = true), clearMsg()" > 新增</el-button > </div> <div class="content"> <div> <div class="searchInput" style="width: 250px"> <el-input @keyup.enter.native="(msg.pageIndex = 1), getList()" @clear="(msg.pageIndex = 1), getList()" style="display: inline-block; width: 225px; height: 30px" placeholder="请输入品牌分类名称" v-model="msg.ClassName" size="small" clearable > </el-input> <span @click="(msg.pageIndex = 1), getList()" class="el-icon-search" style=" color: #979dad; font-size: 14px; position: relative; top: 1px; " ></span> </div> </div> <el-table :data="tableData" v-loading="loading" border style="width: 100%; margin: 20px 0" > <el-table-column prop="ID" label="编号" width="100"> </el-table-column> <el-table-column prop="ClassName" label="品牌分类名称"> </el-table-column> <el-table-column prop="Logo" width="150" label="封面图"> <template slot-scope="scope"> <div class="app-image" :style="{ backgroundImage: 'url(' + scope.row.Logo + ')', backgroundSize: 'cover', }" ></div> </template> </el-table-column> <el-table-column prop="CreateDate" width="200" label="创建时间"> </el-table-column> <el-table-column prop="address" width="200" label="操作"> <template slot-scope="scope"> <el-tooltip class="item" effect="dark" content="编辑" placement="top" > <img @click="editNews(scope.row)" style="width: 32px; height: 32px" src="../../assets/img/userman/edit.png" alt="" /> </el-tooltip> <el-tooltip class="item" effect="dark" content="删除" placement="top-start" > <img @click="delNews(scope.row)" style="width: 32px; height: 32px; margin: 0 10px" src="../../assets/img/userman/del.png" alt="" /> </el-tooltip> </template> </el-table-column> </el-table> <el-pagination style="text-align: right" background @current-change="handleCurrentChange" :page-size="msg.pageSize" :current-page.sync="msg.pageIndex" layout="total,prev, pager, next" :total="total" > </el-pagination> </div> </template> <template v-else> <div class="head-title"> <span @click="isShowAdd = false" style="color: rgb(64, 158, 255); cursor: pointer" >品牌分类管理</span ><span style="margin: 0 9px; color: #c0c4cc">/</span ><span>品牌分类信息</span> </div> <div class="content"> <el-form label-width="120px" :model="addMsg" :rules="rules" ref="addMsg" > <el-form-item label="品牌分类名称" class="is-required" prop="ClassName" > <el-input type="text" class="w400" v-model="addMsg.ClassName" size="small" placeholder="品牌分类名称" maxlength="100" > </el-input> </el-form-item> <el-form-item label="Logo" size="small" class="is-required" prop="Logo" > <el-button @click="isShowImage = true" size="small" >选择文件</el-button > <div class="app-gallery-item" style=" position: relative; width: 100px; margin-top: 10px; border: none; " > <img v-if="!addMsg.Logo || addMsg.Logo == ''" src="../../assets/img/default.png" style="width: 80px; height: 80px" alt="" /> <img v-else style="width: 80px; height: 80px" :src="addMsg.Logo" alt="" /> </div> </el-form-item> </el-form> </div> <el-button size="small" style="margin-top: 20px; padding: 9px 25px" type="primary" @click="submitform('addMsg')" >保存 </el-button> </template> <!-- 选择文件 --> <el-dialog title="选择文件" :visible.sync="isShowImage" width="1240px"> <ChooseImg @SelectId="SelectId"></ChooseImg> </el-dialog> </div> </template> <script> import ChooseImg from "@/components/global/ChooseImg.vue"; import UE from "@/components/global/UE.vue"; export default { components: { ChooseImg, UE, }, data() { return { defaultMsg: "", config: { initialFrameWidth: null, initialFrameHeight: 350, }, msg: { pageIndex: 1, pageSize: 10, ClassName: "", }, total: 0, tableData: [], //数据列表 isShowImage: false, //是否显示选择图片弹窗 isShowAdd: false, //是否显示新增 addMsg: { ID: 0, //主键编号 Logo: "", //封面图 ClassName: "", //品牌分类标题 }, rules: { ClassName: [ { required: true, message: "请输入品牌分类名称", trigger: "blur", }, ], Logo: [ { required: true, message: "请输入品牌Logo", trigger: "blur", }, ], }, }; }, created() { this.getList(); }, methods: { SelectId(msg) { let url = this.getIconLink(msg.url); this.addMsg.Logo = url; this.isShowImage = false; }, clearMsg() { this.addMsg.ID = 0; this.addMsg.Logo = ""; this.addMsg.ClassName = ""; }, getList() { this.loading = true; this.apipost("/api/Trade/GetBrandClassPageList", this.msg, (res) => { this.loading = false; if (res.data.resultCode == 1) { this.total = res.data.data.count; let pageData = res.data.data.pageData; this.tableData = pageData; } }); }, handleCurrentChange(val) { this.msg.pageIndex = val; this.getList(); }, //删除品牌分类 delNews(item) { let that = this; that.Confirm("是否删除?", function () { that.apipost( "/api/Trade/RemoveBrandClass", { Id: item.ID, Status: 1, }, (res) => { if (res.data.resultCode == 1) { that.Success(res.data.message); that.getList(); } else { that.Error(res.data.message); } } ); }); }, //修改品牌分类 editNews(item) { this.apipost( "/api/Trade/GetBrandClassDetails", { ID: item.ID, }, (res) => { if (res.data.resultCode == 1) { this.isShowAdd = true; var tempData = res.data.data; this.addMsg.ID = tempData.ID; this.addMsg.Logo = tempData.Logo; this.addMsg.ClassName = tempData.ClassName; } else { this.Error(res.data.message); } } ); }, //新增修改 submitform(formName) { this.$refs[formName].validate((valid) => { if (valid) { this.apipost("/api/Trade/GetSetBrandClass", this.addMsg, (res) => { if (res.data.resultCode == 1) { this.isShowAdd = false; this.getList(); this.clearMsg(); this.Success(res.data.message); } else { this.Error(res.data.message); } }); } else { return false; } }); }, }, mounted() {}, }; </script> <style> .brandClassification .remark_name { color: #888888; font-size: 12px; margin-left: 10px; float: right; } .brandClassification .app-image { background-position: center center; width: 50px; height: 50px; border-radius: 0%; float: left; margin-right: 8px; } .brandClassification .blue { color: #409eff; } .brandClassification .content .searchInput { border: 1px solid #dcdfe6; border-radius: 4px; } .brandClassification .content .searchInput .el-input__inner { border: none; outline: none; height: 30px; line-height: 30px; } .brandClassification .content .searchInput { line-height: normal; display: inline-table; width: 100%; border-collapse: separate; border-spacing: 0; width: 250px; margin-right: 20px; } .brandClassification .content { background: #fff; margin-top: 10px; padding: 20px; box-sizing: border-box; } .brandClassification .el-form-item__content { line-height: 0; } </style>