添加产品数量展示

master
lynn 9 months ago
parent 3c8933e9be
commit 6201c4121a

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

Loading…
Cancel
Save