jiangping
2023-09-19 bd732b4fea72b65aabade0dfb14ddb1346ad3f8f
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
<template>
  <TableLayout :permissions="['business:basedata:query']">
    <!-- 搜索表单 -->
    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="80px" 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="京东sku" prop="sku">
        <el-input v-model="searchForm.sku" placeholder="请输入京东sku" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="品牌" prop="brand">
        <el-input v-model="searchForm.brand" placeholder="请输入品牌" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="类别" prop="category">
        <el-input v-model="searchForm.category" placeholder="请输入类别" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="状态" prop="status">
        <el-select v-model="searchForm.status" clearable placeholder="请选择">
          <el-option v-for="item in statusList" :key="item.id" :label="item.name" :value="item.id">
          </el-option>
        </el-select>
        <!-- <el-input v-model="searchForm.status" placeholder="请输入状态 0启用 1禁用" @keypress.enter.native="search"></el-input> -->
      </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:basedata:create', 'business:basedata:delete']">
        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete"
            v-permissions="['business:basedata: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="id" label="主键" min-width="100px"></el-table-column>
        <el-table-column prop="createDate" label="创建时间" min-width="100px"></el-table-column>
        <el-table-column prop="name" label="商品主图" min-width="80px">
          <template slot-scope="{row}">
              <div style="display: flex; align-items: center;">
                <div style="width: 70px; height: 70px; flex-shrink: 0;">
                  <el-image v-if="row.imgurl" style="width: 70px; height: 70px" :src="row.imgurl"
                    :preview-src-list="[row.imgurl]" fit="cover"></el-image>
                </div>
              </div>
          </template>
        </el-table-column>
        <el-table-column prop="name" label="商品名称" min-width="150px">
          <template slot-scope="{row}">
            <a :href="`${row.url}`" target="_blank">{{ row.name }}</a>
          </template>
        </el-table-column>
        <!--        <el-table-column prop="title" label="标题" min-width="100px"></el-table-column>-->
        <el-table-column prop="sku" label="京东sku" min-width="100px"></el-table-column>
        <el-table-column prop="brand" label="品牌" min-width="120px"></el-table-column>
        <el-table-column prop="category" label="类别" min-width="100px"></el-table-column>
        <el-table-column prop="price" label="价格(元)" min-width="100px"></el-table-column>
        <el-table-column prop="saleprice" label="采购价格(元)" min-width="100px"></el-table-column>
        <el-table-column prop="haveStock" label="库存情况" min-width="100px"></el-table-column>
        <el-table-column prop="bgImgs" label="大图" min-width="80px">
          <template slot-scope="{row}">
            <el-button type="text" @click="showImage(row.bgImgs)">查看大图</el-button>
            <!-- <div style="display: flex; align-items: center;">
              <div style="width: 70px; height: 70px; flex-shrink: 0;">
                <el-image v-if="row.bgImgs" style="width: 70px; height: 70px" :src="row.bgImgs"
                  :preview-src-list="row.bgImgs" fit="cover"></el-image>
              </div>
            </div> -->
          </template>
        </el-table-column>
        <el-table-column prop="status" label="处理状态" min-width="100px">
          <template slot-scope="{row}">
            {{ row.status == 1 ? "已处理" : "未处理" }}
          </template>
        </el-table-column>
        <el-table-column v-if="containPermissions(['business:basedata:update', 'business:basedata:delete'])" label="操作"
          min-width="80" fixed="right">
          <template slot-scope="{row}">
            <!--
            <el-button type="text" @click="$refs.operaBaseDataWindow.open('编辑商品源数据信息表', row)" icon="el-icon-edit" v-permissions="['business:basedata:update']">编辑</el-button>
-->
            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete"
              v-permissions="['business:basedata:delete']">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
      <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination">
      </pagination>
    </template>
    <!-- 新建/修改 -->
    <OperaBaseDataWindow ref="operaBaseDataWindow" @success="handlePageChange" />
    <el-image-viewer 
      v-if="showViewer" 
      :on-close="closeViewer"
      :initialIndex="0"
      :url-list="srcList"
      :z-index="3000"
    />
  </TableLayout>
</template>
 
<script>
import BaseTable from '@/components/base/BaseTable'
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
import OperaBaseDataWindow from '@/components/business/OperaBaseDataWindow'
import ElImageViewer from 'element-ui/packages/image/src/image-viewer'
export default {
  name: 'BaseData',
  extends: BaseTable,
  components: { TableLayout, Pagination, OperaBaseDataWindow, ElImageViewer },
  data() {
    return {
      showViewer: false,
      srcList: [],
      // 搜索
      searchForm: {
        name: '',
        sku: '',
        brand: '',
        category: '',
        status: null
      },
      statusList: [
        { name: '未处理', id: 0 },
        { name: '已处理', id: 1 }
      ]
    }
  },
  created() {
    this.config({
      module: '商品源数据信息表',
      api: '/business/baseData',
      'field.id': 'id',
      'field.main': 'id'
    })
    this.search()
  },
  methods: {
    showImage(imgs) {
      this.srcList = []
      this.srcList = imgs
      this.showViewer = true
    },
    closeViewer() {
      this.showViewer = false
    }
    
  },
}
</script>