添加产品数量展示

master
lynn 9 months ago
parent 3c8933e9be
commit 6201c4121a

@ -37,30 +37,33 @@
<vxe-column header-align="center" field="name" width="160" title="产品名称"
:edit-render="{ name: 'input', attrs: { type: 'text' } }" />
<vxe-column header-align="center" field="price" width="160" title="价格"
:edit-render="{ name: 'input', attrs: { type: 'text' } }" />
<vxe-column align="center" field="status" width="140" title="状态"
:edit-render="{ name: 'VxeSelect', options: [{ label: '启用', value: 1 },{ label: '禁用', value: 0 }] }" />
<vxe-column
align="center"
field="site_id"
width="160"
title="关联站点"
:edit-render="{ name: 'VxeTreeSelect', options: siteType, props: { multiple: true }, optionProps: { value: 'id', label: 'name' } }"
/>
<vxe-column field="cover_id" min-width="180" title="标题图片" header-align="center" align="left" :edit-render="{}">
<template #default="{ row }">
<vxe-upload mode='image' :image-config="{width:40,height:40}" v-model="row['cover']" name-field="original_name" readonly progress-text="{percent}%"
:more-config="{ maxCount: 1, layout: 'horizontal' }" :show-button-text="false" />
</template>
<template #edit="{ row }">
<vxe-upload mode='image' :image-config="{width:40,height:40}" v-model="row['cover']" name-field="original_name" progress-text="{percent}%"
:more-config="{ maxCount: 1, layout: 'horizontal' }" :limit-size="uploadSize / 1024 / 1024"
:show-button-text="false" :upload-method="({file}) => uploadMethod(file)" />
</template>
</vxe-column>
<vxe-column header-align="center" field="price" width="160" title="价格"
:edit-render="{ name: 'input', attrs: { type: 'text' } }" />
<vxe-column align="center" field="status" width="140" title="状态"
:edit-render="{ name: 'VxeSelect', options: [{ label: '启用', value: 1 },{ label: '禁用', value: 0 }] }" />
<vxe-column align="center" field="can_multi_num" width="120" title="数量显示"
:edit-render="{ name: 'VxeSelect', options: [{ label: '不显示', value: 0 },{ label: '显示', value: 1 }] }" />
<vxe-column
align="center"
field="site_id"
width="160"
title="关联站点"
:edit-render="{ name: 'VxeTreeSelect', options: siteType, props: { multiple: true }, optionProps: { value: 'id', label: 'name' } }"
/>
<vxe-column field="cover_id" min-width="180" title="标题图片" header-align="center" align="left" :edit-render="{}">
<template #default="{ row }">
<vxe-upload mode='image' :image-config="{width:40,height:40}" v-model="row['cover']" name-field="original_name" readonly progress-text="{percent}%"
:more-config="{ maxCount: 1, layout: 'horizontal' }" :show-button-text="false" />
</template>
<template #edit="{ row }">
<vxe-upload mode='image' :image-config="{width:40,height:40}" v-model="row['cover']" name-field="original_name" progress-text="{percent}%"
:more-config="{ maxCount: 1, layout: 'horizontal' }" :limit-size="uploadSize / 1024 / 1024"
:show-button-text="false" :upload-method="({file}) => uploadMethod(file)" />
</template>
</vxe-column>
<vxe-column field="images_ids" min-width="180" title="产品图集" header-align="center" align="left" :edit-render="{}">
<template #default="{ row }">
@ -72,55 +75,55 @@
:more-config="{maxCount:1,layout: 'horizontal' }" :limit-size="uploadSize / 1024 / 1024"
:show-button-text="false" :upload-method="({file}) => uploadMethod(file)" />
</template>
</vxe-column>
<vxe-column header-align="center" field="introduce" width="160" title="产品简介"
:edit-render="{ name: 'input', attrs: { type: 'textarea' } }" />
<vxe-column v-if="false" align="center" header-align="center" field="content" width="120" title="适用人群" :edit-render="{}">
<template #default="{ row }">
<el-button slot="reference" size="small" type="primary" icon="el-icon-search"
@click="$refs['RichTextModal'].open({ text: row['content'], readonly: true, fieldName: 'content', row })">查看</el-button>
</template>
<template #edit="{ row }">
<el-button slot="reference" size="small" type="primary" icon="el-icon-edit"
@click="$refs['RichTextModal'].open({ text: row['content'], readonly: false, fieldName: 'content', row })">编辑</el-button>
</template>
</vxe-column>
<vxe-column align="center" header-align="center" field="flow_content" width="120" title="服务流程" :edit-render="{}">
<template #default="{ row }">
<el-button slot="reference" size="small" type="primary" icon="el-icon-search"
@click="$refs['RichTextModal'].open({ text: row['flow_content'], readonly: true, fieldName: 'flow_content', row })">查看</el-button>
</template>
<template #edit="{ row }">
<el-button slot="reference" size="small" type="primary" icon="el-icon-edit"
@click="$refs['RichTextModal'].open({ text: row['flow_content'], readonly: false, fieldName: 'flow_content', row })">编辑</el-button>
</template>
</vxe-column>
<vxe-column align="center" header-align="center" field="price_content" width="120" title="注意事项" :edit-render="{}">
<template #default="{ row }">
<el-button slot="reference" size="small" type="primary" icon="el-icon-search"
@click="$refs['RichTextModal'].open({ text: row['price_content'], readonly: true, fieldName: 'price_content', row })">查看</el-button>
</template>
<template #edit="{ row }">
<el-button slot="reference" size="small" type="primary" icon="el-icon-edit"
@click="$refs['RichTextModal'].open({ text: row['price_content'], readonly: false, fieldName: 'price_content', row })">编辑</el-button>
</template>
</vxe-column>
<vxe-column v-if="false" align="center" header-align="center" field="appoint_content" width="120" title="预约须知" :edit-render="{}">
<template #default="{ row }">
<el-button slot="reference" size="small" type="primary" icon="el-icon-search"
@click="$refs['RichTextModal'].open({ text: row['appoint_content'], readonly: true, fieldName: 'appoint_content', row })">查看</el-button>
</template>
<template #edit="{ row }">
<el-button slot="reference" size="small" type="primary" icon="el-icon-edit"
@click="$refs['RichTextModal'].open({ text: row['appoint_content'], readonly: false, fieldName: 'appoint_content', row })">编辑</el-button>
</template>
</vxe-column>
</vxe-column>
<vxe-column header-align="center" field="introduce" width="160" title="产品简介"
:edit-render="{ name: 'input', attrs: { type: 'textarea' } }" />
<vxe-column v-if="false" align="center" header-align="center" field="content" width="120" title="适用人群" :edit-render="{}">
<template #default="{ row }">
<el-button slot="reference" size="small" type="primary" icon="el-icon-search"
@click="$refs['RichTextModal'].open({ text: row['content'], readonly: true, fieldName: 'content', row })">查看</el-button>
</template>
<template #edit="{ row }">
<el-button slot="reference" size="small" type="primary" icon="el-icon-edit"
@click="$refs['RichTextModal'].open({ text: row['content'], readonly: false, fieldName: 'content', row })">编辑</el-button>
</template>
</vxe-column>
<vxe-column align="center" header-align="center" field="flow_content" width="120" title="服务流程" :edit-render="{}">
<template #default="{ row }">
<el-button slot="reference" size="small" type="primary" icon="el-icon-search"
@click="$refs['RichTextModal'].open({ text: row['flow_content'], readonly: true, fieldName: 'flow_content', row })">查看</el-button>
</template>
<template #edit="{ row }">
<el-button slot="reference" size="small" type="primary" icon="el-icon-edit"
@click="$refs['RichTextModal'].open({ text: row['flow_content'], readonly: false, fieldName: 'flow_content', row })">编辑</el-button>
</template>
</vxe-column>
<vxe-column align="center" header-align="center" field="price_content" width="120" title="注意事项" :edit-render="{}">
<template #default="{ row }">
<el-button slot="reference" size="small" type="primary" icon="el-icon-search"
@click="$refs['RichTextModal'].open({ text: row['price_content'], readonly: true, fieldName: 'price_content', row })">查看</el-button>
</template>
<template #edit="{ row }">
<el-button slot="reference" size="small" type="primary" icon="el-icon-edit"
@click="$refs['RichTextModal'].open({ text: row['price_content'], readonly: false, fieldName: 'price_content', row })">编辑</el-button>
</template>
</vxe-column>
<vxe-column v-if="false" align="center" header-align="center" field="appoint_content" width="120" title="预约须知" :edit-render="{}">
<template #default="{ row }">
<el-button slot="reference" size="small" type="primary" icon="el-icon-search"
@click="$refs['RichTextModal'].open({ text: row['appoint_content'], readonly: true, fieldName: 'appoint_content', row })">查看</el-button>
</template>
<template #edit="{ row }">
<el-button slot="reference" size="small" type="primary" icon="el-icon-edit"
@click="$refs['RichTextModal'].open({ text: row['appoint_content'], readonly: false, fieldName: 'appoint_content', row })">编辑</el-button>
</template>
</vxe-column>
<vxe-column field="operate" header-align="center" title="操作" min-width="220">
@ -188,7 +191,7 @@
import axios from 'axios'
import {
getToken
} from '@/utils/auth'
} from '@/utils/auth'
import { index as siteIndex } from '@/api/site/site'
@ -213,7 +216,7 @@
select: {
page: 1,
page_size: 20,
keyword: '',
keyword: '',
type:1,
show_relation: ['cover']
},
@ -228,6 +231,7 @@
images_ids: [],
introduce: '',
status: 1,
can_multi_num: 0,
content: '',
flow_content: '',
price_content: '',
@ -242,7 +246,7 @@
'message': '产品名称必填'
}]
},
},
siteType:[]
@ -262,11 +266,11 @@
}
}
},
created() {
if(this.$route.path){
this.select.type = this.$route.path.split("_")[1]
this.form.type = this.$route.path.split("_")[1]
}
created() {
if(this.$route.path){
this.select.type = this.$route.path.split("_")[1]
this.form.type = this.$route.path.split("_")[1]
}
this.getSite()
this.getList()
},
@ -357,30 +361,30 @@
})
}
},
async getSite() {
try {
const res = await siteIndex({
page: 1,
page_size: 999,
}, false)
this.siteType = res.data
} catch (err) {
console.error(err)
}
async getSite() {
try {
const res = await siteIndex({
page: 1,
page_size: 999,
}, false)
this.siteType = res.data
} catch (err) {
console.error(err)
}
},
async getList() {
this.loading = true
try {
const res = await index({
...this.select,
filter:[{
key:'type',
op:'eq',
value:this.select.type
}]
}, false)
res.data.map(item=>{
item.site_id = item.site_id.split(",")
const res = await index({
...this.select,
filter:[{
key:'type',
op:'eq',
value:this.select.type
}]
}, false)
res.data.map(item=>{
item.site_id = item.site_id.split(",")
})
this.tableData = res.data
this.total = res.total
@ -409,29 +413,29 @@
const form = deepCopy(this.form)
for (const key in form) {
form[key] = row[key]
}
}
console.log("this.row",row)
if(Array.isArray(row['cover']) && row['cover'].length>0){
form['cover_id'] = row['cover'][0]?.response?.id ?? ''
if(Array.isArray(row['cover']) && row['cover'].length>0){
form['cover_id'] = row['cover'][0]?.response?.id ?? ''
}
if(row['images'].length>0){
let arr = []
row['images'].map(item=>{
if(item.response){
console.log("item.response.id",item.response.id)
arr.push(item.response.id)
}else{
arr.push(item.id)
}
})
form['images_ids'] = arr
}else{
form['images_ids'] = []
}
if(row['images'].length>0){
let arr = []
row['images'].map(item=>{
if(item.response){
console.log("item.response.id",item.response.id)
arr.push(item.response.id)
}else{
arr.push(item.id)
}
})
form['images_ids'] = arr
}else{
form['images_ids'] = []
}
if(row.site_id.length>0){
form.site_id = row.site_id.join(",")
if(row.site_id.length>0){
form.site_id = row.site_id.join(",")
}
console.log("this.form",form)
console.log("this.form",form)
// return
this.loading = true
await save(form, false)
@ -478,4 +482,4 @@
::v-deep .el-tag+.el-tag {
margin-left: 4px;
}
</style>
</style>

Loading…
Cancel
Save