|
@@ -0,0 +1,216 @@
|
|
|
+<template>
|
|
|
+ <div class="app-container">
|
|
|
+ <div class="operate-container container-frame">
|
|
|
+ <i class="el-icon-tickets" style="margin-top: 5px"></i>
|
|
|
+ <span style="margin-top: 5px">数据列表</span>
|
|
|
+ <el-button
|
|
|
+ @click="addProductAttrCate()"
|
|
|
+ size="mini">
|
|
|
+ 添加
|
|
|
+ </el-button>
|
|
|
+ </div>
|
|
|
+ <div class="table-container">
|
|
|
+ <el-table ref="productAttrCateTable"
|
|
|
+ style="width: 100%"
|
|
|
+ :data="list"
|
|
|
+ v-loading="listLoading"
|
|
|
+ border>
|
|
|
+ <el-table-column label="编号" width="100" align="center">
|
|
|
+ <template slot-scope="scope">{{scope.row.id}}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="类型名称" align="center">
|
|
|
+ <template slot-scope="scope">{{scope.row.name}}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="属性数量" width="200" align="center">
|
|
|
+ <template slot-scope="scope">{{scope.row.attributeCount==null?0:scope.row.attributeCount}}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="参数数量" width="200" align="center">
|
|
|
+ <template slot-scope="scope">{{scope.row.paramCount==null?0:scope.row.paramCount}}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="设置" width="200" align="center">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ @click="getAttrList(scope.$index, scope.row)">属性列表
|
|
|
+ </el-button>
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ @click="getParamList(scope.$index, scope.row)">参数列表
|
|
|
+ </el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="操作" width="200" align="center">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ @click="handleUpdate(scope.$index, scope.row)">编辑
|
|
|
+ </el-button>
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ type="danger"
|
|
|
+ @click="handleDelete(scope.$index, scope.row)">删除
|
|
|
+ </el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </div>
|
|
|
+ <div class="pagination-container">
|
|
|
+ <el-pagination
|
|
|
+ background
|
|
|
+ @size-change="handleSizeChange"
|
|
|
+ @current-change="handleCurrentChange"
|
|
|
+ layout="total, sizes,prev, pager, next,jumper"
|
|
|
+ :page-size="listQuery.pageSize"
|
|
|
+ :page-sizes="[5,10,15]"
|
|
|
+ :current-page.sync="listQuery.pageNum"
|
|
|
+ :total="total">
|
|
|
+ </el-pagination>
|
|
|
+ </div>
|
|
|
+ <el-dialog
|
|
|
+ :title="dialogTitle"
|
|
|
+ :visible.sync="dialogVisible"
|
|
|
+ width="30%">
|
|
|
+ <el-form ref="productAttrCatForm":model="productAttrCate" :rules="rules" label-width="120px">
|
|
|
+ <el-form-item label="类型名称" prop="name">
|
|
|
+ <el-input v-model="productAttrCate.name" auto-complete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button @click="dialogVisible = false">取 消</el-button>
|
|
|
+ <el-button type="primary" @click="handleConfirm('productAttrCatForm')">确 定</el-button>
|
|
|
+ </span>
|
|
|
+ </el-dialog>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+<script>
|
|
|
+ import {fetchList,createProductAttrCate,deleteProductAttrCate,updateProductAttrCate} from '@/api/productAttrCate'
|
|
|
+
|
|
|
+ export default {
|
|
|
+ name: 'productAttrCateList',
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ list: null,
|
|
|
+ total: null,
|
|
|
+ listLoading: true,
|
|
|
+ listQuery: {
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 5
|
|
|
+ },
|
|
|
+ dialogVisible: false,
|
|
|
+ dialogTitle:'',
|
|
|
+ productAttrCate:{
|
|
|
+ name:'',
|
|
|
+ id:null
|
|
|
+ },
|
|
|
+ rules: {
|
|
|
+ name: [
|
|
|
+ { required: true, message: '请输入类型名称', trigger: 'blur' }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ this.getList();
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ getList() {
|
|
|
+ this.listLoading = true;
|
|
|
+ fetchList(this.listQuery).then(response => {
|
|
|
+ this.listLoading = false;
|
|
|
+ this.list = response.data.list;
|
|
|
+ this.total = response.data.total;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ addProductAttrCate() {
|
|
|
+ this.dialogVisible = true;
|
|
|
+ this.dialogTitle = "添加类型";
|
|
|
+ },
|
|
|
+ handleSizeChange(val) {
|
|
|
+ this.listQuery.pageNum = 1;
|
|
|
+ this.listQuery.pageSize = val;
|
|
|
+ this.getList();
|
|
|
+ },
|
|
|
+ handleCurrentChange(val) {
|
|
|
+ this.listQuery.pageNum = val;
|
|
|
+ this.getList();
|
|
|
+ },
|
|
|
+ handleDelete(index, row) {
|
|
|
+ this.$confirm('是否要删除该品牌', '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'warning'
|
|
|
+ }).then(() => {
|
|
|
+ deleteProductAttrCate(row.id).then(response=>{
|
|
|
+ this.$message({
|
|
|
+ message: '删除成功',
|
|
|
+ type: 'success',
|
|
|
+ duration:1000
|
|
|
+ });
|
|
|
+ this.getList();
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
+ handleUpdate(index, row) {
|
|
|
+ this.dialogVisible = true;
|
|
|
+ this.dialogTitle = "编辑类型";
|
|
|
+ this.productAttrCate.name = row.name;
|
|
|
+ this.productAttrCate.id = row.id;
|
|
|
+ },
|
|
|
+ getAttrList(index, row) {
|
|
|
+ console.log('addProductAttrCate')
|
|
|
+ },
|
|
|
+ getParamList(index, row) {
|
|
|
+ console.log('addProductAttrCate')
|
|
|
+ },
|
|
|
+ handleConfirm(formName){
|
|
|
+ this.$refs[formName].validate((valid) => {
|
|
|
+ if (valid) {
|
|
|
+ let data = new URLSearchParams();
|
|
|
+ data.append("name",this.productAttrCate.name);
|
|
|
+ if(this.dialogTitle==="添加品牌"){
|
|
|
+ createProductAttrCate(data).then(response=>{
|
|
|
+ this.$message({
|
|
|
+ message: '添加成功',
|
|
|
+ type: 'success',
|
|
|
+ duration:1000
|
|
|
+ });
|
|
|
+ this.dialogVisible = false;
|
|
|
+ this.getList();
|
|
|
+ });
|
|
|
+ }else{
|
|
|
+ updateProductAttrCate(this.productAttrCate.id,data).then(response=>{
|
|
|
+ this.$message({
|
|
|
+ message: '修改成功',
|
|
|
+ type: 'success',
|
|
|
+ duration:1000
|
|
|
+ });
|
|
|
+ this.dialogVisible = false;
|
|
|
+ this.getList();
|
|
|
+ });
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ console.log('error submit!!');
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+</script>
|
|
|
+<style rel="stylesheet/scss" lang="scss" scoped>
|
|
|
+ .operate-container .el-button {
|
|
|
+ float: right;
|
|
|
+ }
|
|
|
+
|
|
|
+ .table-container {
|
|
|
+ margin-top: 20px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .pagination-container {
|
|
|
+ display: inline-block;
|
|
|
+ float: right;
|
|
|
+ margin-top: 20px;
|
|
|
+ }
|
|
|
+</style>
|
|
|
+
|
|
|
+
|