doum
12 小时以前 e68e324f91d1a4eb2d4c5f07d27ca105a308bc0c
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
<template>
  <TableLayout :permissions="['business:labels:query']">
    <!-- 搜索表单 -->
    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
      <el-form-item label="品牌系列名称" prop="name">
        <el-input v-model="searchForm.name" placeholder="请输入品牌系列名称" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="所属品牌" prop="parentId">
        <el-select  v-model="searchForm.parentId"  placeholder="请选择所属品牌" @change="search" >
          <el-option
              v-for="item in labels"
              :key="item.id"
              :value="item.id"
              :label="item.name"
          ></el-option>
        </el-select>
      </el-form-item>
      <section>
        <el-button type="primary" @click="search">搜索</el-button>
        <el-button @click="reset">重置</el-button>
      </section>
    </el-form>
    <!-- 表格和分页 -->
    <template v-slot:table-wrap>
      <ul class="toolbar" v-permissions="['business:labels:create', 'business:labels:delete']">
        <li><el-button type="primary" @click="$refs.operaLabelsWindow.open('新建品牌系列信息表',null,searchForm.type)" icon="el-icon-plus" v-permissions="['business:labels:create']">新建</el-button></li>
        <li><el-button type="danger"  @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:labels:delete']">删除</el-button></li>
      </ul>
      <el-table
        v-loading="isWorking.search"
        :data="tableData.list"
        border
        stripe
        @selection-change="handleSelectionChange"
      >
        <el-table-column type="selection" width="55"></el-table-column>
        <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="imgurlfull" label="展示图" align="center" min-width="100px">
          <template slot-scope="{row}">
            <el-image style="max-width: 100px;max-height: 50px;" v-if="row.imgFullurl" :src="row.imgFullurl" :preview-src-list="[row.imgFullurl]"></el-image>
          </template>
        </el-table-column>
        <el-table-column prop="sortnum" label="排序码" min-width="100px"></el-table-column>
        <el-table-column prop="editDate" label="最近时间" min-width="100px"></el-table-column>
        <el-table-column prop="status" label="状态" min-width="100px">
          <template slot-scope="{row}">
            <el-switch
                v-model="row.status"
                :active-value="1"
                :inactive-value="0"
                active-color="#13ce66"
                inactive-color="#ff4949"
                @change="statusChange(row)"
            ></el-switch>
          </template>
        </el-table-column>
        <el-table-column
          v-if="containPermissions(['business:labels:update', 'business:labels:delete'])"
          label="操作"
          min-width="120"
          fixed="right"
        >
          <template slot-scope="{row}">
            <el-button type="text" @click="$refs.operaLabelsWindow.open('编辑品牌系列信息表', row,searchForm.type)" icon="el-icon-edit" v-permissions="['business:labels:update']">编辑</el-button>
            <el-button style="color: red" type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:labels:delete']">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
      <pagination
        @size-change="handleSizeChange"
        @current-change="handlePageChange"
        :pagination="tableData.pagination"
      >
      </pagination>
    </template>
    <!-- 新建/修改 -->
    <OperaLabelsWindow ref="operaLabelsWindow" @success="handlePageChange"/>
  </TableLayout>
</template>
 
<script>
import BaseTable from '@/components/base/BaseTable'
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
import OperaLabelsWindow from '@/components/business/OperaLabelsZhuanquWindow'
import {findAll as labelList, updateStatusById} from '@/api/business/labels'
export default {
  name: 'Labels',
  extends: BaseTable,
  components: { TableLayout, Pagination, OperaLabelsWindow },
  data () {
    return {
      // 搜索
      labels: [],
      searchForm: {
        name: '',
        parentId: null,
        type: 15
      }
    }
  },
  provide() {
    return {
      labels: () => this.labels
    }
  },
  created () {
    this.config({
      module: '品牌系列信息表',
      api: '/business/labels',
      'field.id': 'id',
      'field.main': 'id'
    })
    this.loadLabels()
    this.search()
  },
  methods: {
    loadLabels () {
      labelList({type: 14})
        .then(res => {
          this.labels = res
        })
    },
    statusChange (row) {
      this.api.updateStatusById({ id: row.id, status: row.status })
          .then(() => {
            this.$message.success('操作成功')
          })
          .catch(e => {
            this.$message.error('操作成功')
          })
          .then(() => {
            this.handlePageChange()
          })
    }
  }
}
</script>