renkang
2024-12-23 26b93e84d4153039ef3600355308d2a743dc3be7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<template>
  <TableLayout>
    <template v-slot:table-wrap>
      <ul class="toolbar" v-permissions="['business:category:create', 'business:category:delete']">
        <li><el-button type="primary" @click="handleEdit()" icon="el-icon-plus"
            v-permissions="['business:category:create']">新建</el-button></li>
      </ul>
      <el-table row-key="id" :tree-props="{ children: 'childCategoryList' }" v-loading="isWorking.search"
        :data="dataList" stripe @selection-change="handleSelectionChange">
        <el-table-column prop="name" label="工单区域" min-width="100px"></el-table-column>
        <!-- <el-table-column prop="parentName" label="所属分类" min-width="100px"></el-table-column> -->
        <el-table-column prop="sortnum" label="排序码" min-width="100px"></el-table-column>
        <el-table-column v-if="containPermissions(['business:category:update', 'business:category:delete'])" label="操作"
          min-width="120" fixed="right">
          <template slot-scope="{row}">
            <el-button type="text" @click="handleEdit(row)" icon="el-icon-edit"
              v-permissions="['business:category:update']">编辑</el-button>
            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete"
              v-permissions="['business:category:delete']">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
      <pagination @size-change="handleSizeChange" @current-change="getList" :pagination="tableData.pagination">
      </pagination>
    </template>
    <!-- 新建/修改 -->
    <OperaCategoryWindow v-if="isShowEdit" @close="isShowEdit = false" ref="operaCategoryWindow" @success="getList" />
  </TableLayout>
</template>
 
<script>
import BaseTable from '@/components/base/BaseTable'
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
import OperaCategoryWindow from './components/areaCate.vue'
import { fetchList, deleteById } from '@/api/business/category.js'
export default {
  name: 'Category',
  extends: BaseTable,
  components: { TableLayout, Pagination, OperaCategoryWindow },
  data() {
    return {
      // 搜索
      filters: {
        parentId: ''
      },
      isShowEdit: false,
      loading: false,
      pagination: {
        pageSize: 10,
        page: 1,
        total: 0,
      },
      dataList: []
    }
  },
  created() {
    this.config({
      module: '车辆信息表',
      api: '/business/category',
      'field.id': 'id',
      'field.main': 'id'
    })
    this.getList()
  },
  methods: {
    handleEdit(row) {
      this.isShowEdit = true
      let str = row && row.id ? '编辑区域' : '新建区域'
      this.$nextTick(() => {
        this.$refs.operaCategoryWindow.open(str)
        this.$refs.operaCategoryWindow.getList()
        if (row && row.id) {
          this.$refs.operaCategoryWindow.getDetail(row.id)
        }
      })
    },
    deleteById(row) {
      this.$confirm(`您确认要删除该区域吗`, '温馨提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        deleteById(row.id).then(res => {
          this.getList()
        })
      })
 
    },
    getList() {
      const { pagination, filters } = this
      this.loading = true
      fetchList({
        model: { ...filters, type: 4 },
        capacity: pagination.pageSize,
        page: pagination.page,
      }).then(res => {
        this.loading = false
        this.dataList = res.records || []
        this.pagination.total = res.total || 0
      }, () => {
        this.loading = false
      })
    },
  }
}
</script>