123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259 |
- <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 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
- 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>
- </div>
- </template>
- <script>
- import {
- fetchList,
- deleteProductCate,
- updateShowStatus,
- updateNavStatus,
- } from "@/api/productCate";
- export default {
- name: "productCateList",
- data() {
- return {
- 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);
- ids = ids.join(",");
- let obj = {
- ids,
- navStatus: row.navStatus,
- };
- updateNavStatus(obj).then((response) => {
- this.$message({
- message: "修改成功",
- type: "success",
- duration: 1000,
- });
- });
- },
- handleShowStatusChange(index, row) {
- // let data = new URLSearchParams();
- let ids = [];
- ids.push(row.id);
- ids = ids.join(",");
- // data.append('ids',ids);
- // data.append('showStatus',row.showStatus);
- let obj = {
- ids,
- showStatus: row.showStatus,
- };
- updateShowStatus(obj).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>
|