显示隐藏

main
fanfan 1 month ago
parent a87fc697d4
commit 6c50ea5f12
  1. 172
      src/views/store/channel.vue
  2. 19
      src/views/store/modules/channelEdit.vue

@ -1,20 +1,23 @@
<template>
<a-card :bordered="false">
<div class="card-title">{{ $route.meta.title }}</div>
<s-table ref="table" size="default" rowKey="store_id" :columns="columns" :data="loadData" :pagination="pagination">
<span slot="logoImage" slot-scope="text, item">
<a v-if="item.logoImage" title="点击查看原图" :href="item.logoImage.external_url" target="_blank">
<img width="50" height="50" :src="item.logoImage.external_url" alt="商户logo" />
</a>
</span>
<span slot="action" slot-scope="text, item">
<template>
<a v-action:edit style="margin-right: 8px" @click="handleEdit(item)">编辑</a>
</template>
</span>
</s-table>
<EditForm ref="EditForm" @handleSubmit="handleRefresh" />
</a-card>
<a-card :bordered="false">
<div class="card-title">{{ $route.meta.title }}</div>
<s-table ref="table" size="default" rowKey="store_id" :columns="columns" :data="loadData" :pagination="pagination">
<span slot="status" slot-scope="text">
<a-tag :color="text ? 'green' : ''">{{ text ? '显示' : '隐藏' }}</a-tag>
</span>
<span slot="logoImage" slot-scope="text, item">
<a v-if="item.logoImage" title="点击查看原图" :href="item.logoImage.external_url" target="_blank">
<img width="50" height="50" :src="item.logoImage.external_url" alt="商户logo" />
</a>
</span>
<span slot="action" slot-scope="text, item">
<template>
<a v-action:edit style="margin-right: 8px" @click="handleEdit(item)">编辑</a>
</template>
</span>
</s-table>
<EditForm ref="EditForm" @handleSubmit="handleRefresh" />
</a-card>
</template>
<script>
@ -23,71 +26,74 @@ import { STable } from '@/components'
import EditForm from './modules/channelEdit.vue'
export default {
components: {
STable,
EditForm
},
data() {
return {
shopList: [],
//
columns: [
{
title: '商户logo',
dataIndex: 'logoImage',
scopedSlots: { customRender: 'logoImage' }
},
{
title: '商户名称',
dataIndex: 'shop_name'
},
{
title: '商户标签',
dataIndex: 'shop_label'
},
{
title: '渠道名称',
dataIndex: 'name'
},
{
title: '渠道别名',
dataIndex: 'alias'
},
{
title: '添加时间',
dataIndex: 'create_time'
},
{
title: '操作',
dataIndex: 'action',
width: '180px',
scopedSlots: { customRender: 'action' }
}
],
// Promise
loadData: param => {
return Api.channelList(param)
.then(response => {
return response.data.list
})
},
}
},
created() {
},
methods: {
/**
* 刷新列表
* @param Boolean bool 强制刷新到第一页
*/
handleRefresh(bool = false) {
this.$refs.table.refresh(false)
},
//
async handleEdit(record) {
//
this.$refs.EditForm.add(record)
},
}
components: {
STable,
EditForm,
},
data() {
return {
shopList: [],
//
columns: [
{
title: '商户logo',
dataIndex: 'logoImage',
scopedSlots: { customRender: 'logoImage' },
},
{
title: '商户名称',
dataIndex: 'shop_name',
},
{
title: '商户标签',
dataIndex: 'shop_label',
},
{
title: '渠道名称',
dataIndex: 'name',
},
{
title: '渠道别名',
dataIndex: 'alias',
},
{
title: '状态',
dataIndex: 'status',
scopedSlots: { customRender: 'status' },
},
{
title: '添加时间',
dataIndex: 'create_time',
},
{
title: '操作',
dataIndex: 'action',
width: '180px',
scopedSlots: { customRender: 'action' },
},
],
// Promise
loadData: (param) => {
return Api.channelList(param).then((response) => {
return response.data.list
})
},
}
},
created() {},
methods: {
/**
* 刷新列表
* @param Boolean bool 强制刷新到第一页
*/
handleRefresh(bool = false) {
this.$refs.table.refresh(false)
},
//
async handleEdit(record) {
//
this.$refs.EditForm.add(record)
},
},
}
</script>
</script>

@ -25,10 +25,10 @@
v-decorator="['shop_label', { rules: [{ required: true, min: 2, max: 10, message: '请输入2-10个字符' }] }]"
/>
</a-form-item>
<a-form-item label="渠道名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-form-item label="渠道名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input v-decorator="['name', { rules: [{ required: true, min: 2, message: '请输入至少2个字符' }] }]" />
</a-form-item>
<a-form-item label="渠道别名" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-form-item label="渠道别名" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input v-decorator="['alias', { rules: [{ required: true, min: 2, message: '请输入至少2个字符' }] }]" />
</a-form-item>
<a-form-item label="营业执照" :labelCol="labelCol" :wrapperCol="wrapperCol">
@ -38,6 +38,12 @@
v-decorator="['license_img_id', { rules: [{ required: true, message: '请上传营业执照' }] }]"
/>
</a-form-item>
<a-form-item label="状态" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-radio-group v-decorator="['status', { initialValue: 1, rules: [{ required: true }] }]">
<a-radio :value="1">显示</a-radio>
<a-radio :value="0">隐藏</a-radio>
</a-radio-group>
</a-form-item>
</a-form>
</a-spin>
</a-modal>
@ -96,14 +102,7 @@ export default {
this.$nextTick(() => {
setFieldsValue(
// eslint-disable-next-line no-undef
_.pick(this.info, [
'logo',
'shop_name',
'shop_label',
'logo_image_id',
'name',
'alias',
])
_.pick(this.info, ['logo', 'shop_name', 'shop_label', 'logo_image_id', 'name', 'alias', 'status'])
)
})
},

Loading…
Cancel
Save