rk
2025-12-10 62b1c524d9d5fab03f94b4e935794ef7fa24529e
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
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
<template>
  <TableLayout :permissions="['business:shop: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="status">
        <!-- 0正常 1禁用 -->
        <el-select
          v-model="searchForm.status"
          placeholder="请选择店铺状态"
        >
          <el-option
            :key="0"
            :value="0"
            label="正常"
          ></el-option>
          <el-option
            :key="1"
            :value="1"
            label="禁用"
          ></el-option>
        </el-select>
        <!-- <el-input v-model="searchForm.status" placeholder="请输入状态0正常 1禁用" @keypress.enter.native="search"></el-input> -->
      </el-form-item>
      <el-form-item label="推荐" prop="isrec">
        <!-- 0否 1是 -->
        <el-select
          v-model="searchForm.isrec"
          placeholder="请选择店铺状态"
        >
          <el-option
            :key="0"
            :value="0"
            label="否"
          ></el-option>
          <el-option
            :key="1"
            :value="1"
            label="是"
          ></el-option>
        </el-select>
        <!-- <el-input v-model="searchForm.isrec" placeholder="请输入是否推荐0否 1是" @keypress.enter.native="search"></el-input> -->
      </el-form-item>
      <section>
        <el-button type="primary" @click="search">搜索</el-button>
        <!-- <el-button type="primary" @click="showDetail">搜索</el-button> -->
        <el-button @click="reset">重置</el-button>
      </section>
    </el-form>
    <!-- 表格和分页 -->
    <template v-slot:table-wrap>
      <ul class="toolbar" v-permissions="['business:shop:create', 'business:shop:delete']">
        <li><el-button type="primary" @click="$refs.operaShopWindow.open('新建店铺')" icon="el-icon-plus" v-permissions="['business:shop:create']">新建</el-button></li>
        <!-- <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:shop: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="name" label="店铺名称" align="center" min-width="100px"></el-table-column>
        <el-table-column prop="imgurl" label="店铺LOGO" align="center" min-width="100px">
          <template slot-scope="{row}">
            <el-image :scr="row.imgFullUrl + row.imgurl" :preview-src-list="[row.imgFullUrl + row.imgurl]"></el-image>
          </template>
        </el-table-column>
        <el-table-column prop="addr" 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 label="负责人" align="center" min-width="150px">
          <template slot-scope="{row}">
            {{ `${row.nickName} ${row.memberPhone}` }}
          </template>
        </el-table-column>
        <el-table-column label="经销商数据" align="center" min-width="150px">
          <template slot-scope="{row}">
            <el-button type="text" @click="showDetail(row)">查看</el-button>
          </template>
        </el-table-column>
        <el-table-column prop="isrec" label="是否推荐" align="center" min-width="100px">
          <template slot-scope="{row}">
            <el-switch
              v-model="row.isrec"
              active-color="#13ce66"
              inactive-color="#999"
              :active-value="1"
              :inactive-value="0"
              @change="statusChange(row)"
            ></el-switch>
          </template>
        </el-table-column>
        <el-table-column prop="status" label="状态" align="center" min-width="100px">
          <template slot-scope="{row}">
            <el-switch
              v-model="row.status"
              active-color="#13ce66"
              inactive-color="#999"
              :active-value="0"
              :inactive-value="1"
              @change="statusChange(row)"
            ></el-switch>
          </template>
        </el-table-column>
 
        <!-- <el-table-column prop="editor" label="更新人编码" min-width="100px"></el-table-column>
        <el-table-column prop="editDate" label="更新时间" min-width="100px"></el-table-column>
        <el-table-column prop="isdeleted" label="是否删除0否 1是" min-width="100px"></el-table-column>
        <el-table-column prop="remark" label="备注" min-width="100px"></el-table-column>
        <el-table-column prop="sex" label="性别 0男 1女 2未知" min-width="100px"></el-table-column>
        <el-table-column prop="idcard" label="身份证号" min-width="100px"></el-table-column>
        <el-table-column prop="idcardImg" label="身份证正面照" min-width="100px"></el-table-column>
        <el-table-column prop="idcardImgBack" label="身份证反面照" min-width="100px"></el-table-column>
        <el-table-column prop="businessImg" label="营业执照" min-width="100px"></el-table-column>
        <el-table-column prop="longitude" label="定位经度" min-width="100px"></el-table-column>
        <el-table-column prop="latitude" label="定位维度" min-width="100px"></el-table-column>
        <el-table-column prop="areaId" label="所属县区编码(关联areas)" min-width="100px"></el-table-column>
        <el-table-column prop="info" label="店铺描述" min-width="100px"></el-table-column>
        <el-table-column prop="origin" label="数据来源 0小程序申请 1后台录入" min-width="100px"></el-table-column>
        <el-table-column prop="memberId" label="用户编码(关联member表)" min-width="100px"></el-table-column>
        <el-table-column prop="applyId" label="申请编码(关联shop_apply表)" min-width="100px"></el-table-column>
        <el-table-column prop="sortnum" label="排序码" min-width="100px"></el-table-column>
        <el-table-column prop="looknum" label="总浏览量" min-width="100px"></el-table-column>
        <el-table-column prop="startTime" label="营业开始时间" min-width="100px"></el-table-column>
        <el-table-column prop="endTime" label="营业结束时间" min-width="100px"></el-table-column>
        <el-table-column prop="brandStory" label="品牌故事" min-width="100px"></el-table-column> -->
        <el-table-column
          v-if="containPermissions(['business:shop:update', 'business:shop:delete'])"
          label="操作"
          min-width="120"
          fixed="right"
          align="center"
        >
          <template slot-scope="{row}">
            <el-button type="text" @click="$refs.operaShopWindow.open('编辑店铺', row)" icon="el-icon-edit" v-permissions="['business:shop:update']">编辑</el-button>
            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:shop:delete']">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
      <pagination
        @size-change="handleSizeChange"
        @current-change="handlePageChange"
        :pagination="tableData.pagination"
      >
      </pagination>
    </template>
    <!-- 新建/修改 -->
    <OperaShopWindow ref="operaShopWindow" @success="handlePageChange"/>
    <OperaShopDetailWindow ref="operaShopDetailWindow" />
  </TableLayout>
</template>
 
<script>
import BaseTable from '@/components/base/BaseTable'
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
import OperaShopWindow from '@/components/business/OperaShopWindow'
import OperaShopDetailWindow from '@/components/business/OperaShopDetailWindow'
import { updateIsRecById } from '@/api/business/shop'
export default {
  name: 'Shop',
  extends: BaseTable,
  components: { TableLayout, Pagination, OperaShopWindow, OperaShopDetailWindow },
  data () {
    return {
 
      // 搜索
      searchForm: {
        name: '',
        status: '',
        isrec: '',
      }
    }
  },
  created () {
    this.config({
      module: '店铺基本信息表',
      api: '/business/shop',
      'field.id': 'id',
      'field.main': 'id'
    })
    this.search()
  },
  methods: {
    statusChange(row) {
      updateIsRecById(row)
        .then(() => {
          this.$message.success('操作成功')
        })
        .catch(e => {
          this.$message.error('操作成功')
        })
        .then(() => {
          this.handlePageChange()
        })
    },
    showDetail(row) {
      this.$refs.operaShopDetailWindow.open('店铺详情', row)
    }
  },
}
</script>