123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237 |
- <template>
- <div class="app-container">
- <el-card class="operate-container" shadow="never">
- <i class="el-icon-tickets" style="margin-top: 5px"></i>
- <span style="margin-top: 5px">数据列表</span>
- <el-button
- v-if="createproductCategory"
- class="btn-add"
- @click="handleAddProductCate()"
- size="mini">
- 添加
- </el-button>
- </el-card>
- <div class="table-container">
- <el-table ref="productCateTable"
- 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="100" align="center">
- <template slot-scope="scope">{{scope.row.level | levelFilter}}</template>
- </el-table-column>
- <el-table-column label="商品数量" width="100" align="center">
- <template slot-scope="scope">{{scope.row.productCount }}</template>
- </el-table-column>
- <el-table-column label="数量单位" width="100" align="center">
- <template slot-scope="scope">{{scope.row.productUnit }}</template>
- </el-table-column>
- <el-table-column label="导航栏" width="100" align="center">
- <template slot-scope="scope">
- <el-switch
- @change="handleNavStatusChange(scope.$index, scope.row)"
- :active-value="1"
- :inactive-value="0"
- v-model="scope.row.navStatus">
- </el-switch>
- </template>
- </el-table-column>
- <el-table-column label="是否显示" width="100" align="center">
- <template slot-scope="scope">
- <el-switch
- @change="handleShowStatusChange(scope.$index, scope.row)"
- :active-value="1"
- :inactive-value="0"
- v-model="scope.row.showStatus">
- </el-switch>
- </template>
- </el-table-column>
- <el-table-column label="排序" width="100" align="center">
- <template slot-scope="scope">{{scope.row.sort }}</template>
- </el-table-column>
- <el-table-column label="设置" width="200" align="center">
- <template slot-scope="scope">
- <el-button
- size="mini"
- :disabled="scope.row.level | disableNextLevel"
- @click="handleShowNextLevel(scope.$index, scope.row)">查看下级
- </el-button>
- <!-- <el-button
- size="mini"
- @click="handleTransferProduct(scope.$index, scope.row)">转移商品
- </el-button> -->
- </template>
- </el-table-column>
- <el-table-column label="操作" width="200" align="center">
- <template slot-scope="scope">
- <el-button
- v-if="updateproductCategory"
- size="mini"
- @click="handleUpdate(scope.$index, scope.row)">编辑
- </el-button>
- <el-button
- v-if="deleteproductCategory"
- 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>
- </div>
- </template>
- <script>
- import {fetchList,deleteProductCate,updateShowStatus,updateNavStatus} from '@/api/productCate'
- import {createproductCategory,deleteproductCategory,updateproductCategory} from '@/api/permissions'
- export default {
- name: "productCateList",
- data() {
- return {
- createproductCategory,
- deleteproductCategory,
- updateproductCategory,
- list: null,
- total: null,
- listLoading: true,
- listQuery: {
- pageNum: 1,
- pageSize: 5
- },
- parentId: 0
- }
- },
- created() {
- this.resetParentId();
- this.getList();
- },
- watch: {
- $route(route) {
- this.resetParentId();
- this.getList();
- }
- },
- methods: {
- resetParentId(){
- this.listQuery.pageNum = 1;
- if (this.$route.query.parentId != null) {
- this.parentId = this.$route.query.parentId;
- } else {
- this.parentId = 0;
- }
- },
- handleAddProductCate() {
- this.$router.push('/pms/addProductCate');
- },
- getList() {
- this.listLoading = true;
- fetchList(this.parentId, this.listQuery).then(response => {
- this.listLoading = false;
- this.list = response.data.list;
- this.total = response.data.total;
- });
- },
- handleSizeChange(val) {
- this.listQuery.pageNum = 1;
- this.listQuery.pageSize = val;
- this.getList();
- },
- handleCurrentChange(val) {
- this.listQuery.pageNum = val;
- this.getList();
- },
- handleNavStatusChange(index, row) {
- let data = new URLSearchParams();
- let ids=[];
- ids.push(row.id)
- data.append('ids',ids);
- data.append('navStatus',row.navStatus);
- updateNavStatus(data).then(response=>{
- this.$message({
- message: '修改成功',
- type: 'success',
- duration: 1000
- });
- });
- },
- handleShowStatusChange(index, row) {
- let data = new URLSearchParams();
- let ids=[];
- ids.push(row.id)
- data.append('ids',ids);
- data.append('showStatus',row.showStatus);
- updateShowStatus(data).then(response=>{
- this.$message({
- message: '修改成功',
- type: 'success',
- duration: 1000
- });
- });
- },
- handleShowNextLevel(index, row) {
- this.$router.push({path: '/pms/productCate', query: {parentId: row.id}})
- },
- handleTransferProduct(index, row) {
- console.log('handleAddProductCate');
- },
- handleUpdate(index, row) {
- this.$router.push({path:'/pms/updateProductCate',query:{id:row.id}});
- },
- handleDelete(index, row) {
- this.$confirm('是否要删除该品牌', '提示', {
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- type: 'warning'
- }).then(() => {
- deleteProductCate(row.id).then(response => {
- this.$message({
- message: '删除成功',
- type: 'success',
- duration: 1000
- });
- this.getList();
- });
- });
- }
- },
- filters: {
- levelFilter(value) {
- if (value === 0) {
- return '一级';
- } else if (value === 1) {
- return '二级';
- }
- },
- disableNextLevel(value) {
- if (value === 0) {
- return false;
- } else {
- return true;
- }
- }
- }
- }
- </script>
- <style scoped>
- </style>
|