doum
10 小时以前 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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
<template>
  <TableLayout :permissions="['business:banner:query']">
    <!-- 搜索表单 -->
    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
      <el-form-item label="位置" prop="position">
        <el-select
          v-model="searchForm.position"
          placeholder="请选轮播所在位置"
        >
          <el-option
            v-for="item in postions"
            :key="item.id"
            :value="item.id"
            :label="item.label"
          ></el-option>
        </el-select>
      </el-form-item>
      <!-- <el-form-item label="跳转类型" prop="type">
        <el-select
          v-model="searchForm.type"
          placeholder="请选跳转类型"
        >
          <el-option
            v-for="item in types"
            :key="item.id"
            :value="item.id"
            :label="item.label"
          ></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:banner:create', 'business:banner:delete']">
        <li><el-button type="primary" @click="$refs.operaBannerWindow.open('新建轮播图')" icon="el-icon-plus" v-permissions="['business:banner:create']">新建</el-button></li>
        <li><el-button  type="danger"  @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:banner:delete']">删除</el-button></li>
      </ul>
      <el-table
        v-loading="isWorking.search"
        :data="tableData.list"
        stripe
        border
        @selection-change="handleSelectionChange"
      >
        <el-table-column type="selection" width="55"></el-table-column>
        <el-table-column prop="position" label="位置" align="center" min-width="100px">
          <template slot-scope="{row}">{{ postionToStr(row.position) }}</template>
        </el-table-column>
        <el-table-column prop="imgurlfull" label="展示图" align="center" min-width="100px">
          <template slot-scope="{row}">
            <el-image :scr="row.imgFullUrl" :preview-src-list="[row.imgFullUrl]"></el-image>
          </template>
        </el-table-column>
        <el-table-column prop="cityName" label="展示城市" align="center" min-width="100px"></el-table-column>
        <el-table-column prop="type" label="跳转功能" align="center" min-width="100px">
           <template slot-scope="{row}">
            {{ typeToStr(row.type) }}
          </template>
        </el-table-column>
        <el-table-column prop="content" label="内容" align="center" min-width="100px">
          <template slot-scope="{row}">
            <el-button v-if="row.type==0" type="text" @click="$refs.showRich.open('详情',row)">查看详情</el-button>
            <template v-else>
              {{ row.content }}
            </template>
          </template>
        </el-table-column>
        <el-table-column prop="sortnum" label="排序码" align="center" min-width="100px"></el-table-column>
        <el-table-column prop="createDate" label="创建时间" align="center" min-width="140px"></el-table-column>
        <el-table-column
          v-if="containPermissions(['business:banner:update', 'business:banner:delete'])"
          label="操作"
          min-width="120"
          fixed="right"
          align="center"
        >
          <template slot-scope="{row}">
            <el-button type="text" @click="$refs.operaBannerWindow.open('编辑轮播图', row)" icon="el-icon-edit" v-permissions="['business:banner:update']">编辑</el-button>
            <el-button type="text"  style="color: red;" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:banner:delete']">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
      <pagination
        @size-change="handleSizeChange"
        @current-change="handlePageChange"
        :pagination="tableData.pagination"
      >
      </pagination>
    </template>
    <!-- 新建/修改 -->
    <OperaBannerWindow ref="operaBannerWindow" @success="handlePageChange"/>
    <ShowRich ref="showRich"/>
 
  </TableLayout>
</template>
 
<script>
import BaseTable from '@/components/base/BaseTable'
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
import OperaBannerWindow from '@/components/business/OperaBannerWindow'
import ShowRich from '@/components/business/ShowRich'
export default {
  name: 'Banner',
  extends: BaseTable,
  components: { TableLayout, Pagination, OperaBannerWindow, ShowRich },
  data () {
    return {
      // 搜索
      searchForm: {
        position: '',
        type: '',
      },
      postions: [
        // 0首页 1推荐店铺 2商城首页
        { label: '首页', id: 0 },
        { label: '推荐店铺', id: 1 },
        { label: '商城首页', id: 2 },
      ],
      types: [
        //  0富文本 1外链 2活动 3商家
        { label: '富文本', id: 0 },
        { label: '外链', id: 1 },
        { label: '活动', id: 2 },
        { label: '商家', id: 3 },
      ]
    }
  },
  provide() {
    return {
      postions: () => this.postions,
      types: () => this.types,
    }
  },
  created () {
    this.config({
      module: '轮播图信息表',
      api: '/business/banner',
      'field.id': 'id',
      'field.main': 'id'
    })
    this.search()
  },
  methods: {
    postionToStr(postion) {
      // console.log(postion);
      let temp = this.postions.find(item => item.id == postion)
      return temp ? temp.label : '-'
    },
    typeToStr(type) {
      let temp = this.types.find(item => item.id == type)
      return temp ? temp.label : '-'
    },
  },
}
</script>