一些修改

This commit is contained in:
mactj 2021-01-20 10:39:13 +08:00
parent 51d6220271
commit 2e09cd299b
7 changed files with 112 additions and 62 deletions

View File

@ -116,6 +116,7 @@ public class GoodsMainController extends BaseController {
@PostMapping
public AjaxResult add(UsernamePasswordAuthenticationToken token, @RequestBody GoodsMain goodsMain) {
goodsMain.setDeptId(getDeptId());
goodsMain.setCreateBy(getUsername());
String richText = goodsMain.getGoodsDesc();
if (richText != null && StringUtils.isNotEmpty(richText)) {
Document doc = RichTextUtil.setImgStyle(richText, "width: 100%");

View File

@ -17,7 +17,7 @@ import com.ruoyi.common.core.domain.BaseEntity;
/**
* 商户对象 app_merchant
*
*
* @author ruoyi
* @date 2021-01-19
*/
@ -48,6 +48,14 @@ private static final long serialVersionUID=1L;
@Excel(name = "图标")
private String avatar;
/** 封面图 */
@Excel(name = "封面图")
private String faceImage;
/** 奖项信息 */
@Excel(name = "奖项信息")
private String award;
/** 介绍 */
@Excel(name = "介绍")
private String mchDesc;

View File

@ -56,6 +56,9 @@ private static final long serialVersionUID=1L;
@Excel(name = "关联规格")
private String goodsSpec;
@Excel(name = "库存")
private String goodsStock;
/** 商品说明 */
@Excel(name = "商品说明")
private String goodsDesc;

View File

@ -69,38 +69,21 @@ module.exports.parseImage = parseImage;
</wxs>
<template>
<van-nav-bar
bind:click-left="onBack"
border="{{false}}"
fixed
z-index="100"
custom-style="background:#AC1630;color:#FFF;"
>
<van-icon name="arrow-left" slot="left" color="#fff" />
<span style="color: #fff;" slot="title">了解酒庄</span>
</van-nav-bar>
<div class="bg" />
<div class="container" style="margin-top: 66px;">
<nav-bar title="酒庄信息" />
<van-loading v-if="!wineryItem" style="margin-top: 20px;" />
<div v-else style="margin-bottom: 80px;">
<image :src="filters.parseImage(wineryItem.avatar)" style="width: 100%;height: 750rpx;" mode="aspectFit" />
<div style="margin: 10px 15px;display: flex;flex-direction: column;">
<div style="font-size: 20px;font-weight: bold;">{{wineryItem.mchName}}</div>
<div style="font-size: 14px;color: #999999;">{{wineryItem.subtitle}}</div>
<div style="display: flex;" v-for="(item,index) in wineryDefine.WINERY_LIST" @tap="onTap(item)">
<div class="winery-item-icon">
<van-image style="margin-top: 5px;" round width="50px" height="50px" :src="userInfo.avatarUrl" />
</div>
<div class="winery-item">
<div class="fxc" style="margin-left: 20px;">
<span style="font-size: 20px;font-weight: bold;">{{item.name}}</span>
<span style="color: #999;">{{item.desc}}</span>
</div>
</div>
<div class="winery-item-arrow">
<van-icon name="arrow" />
<span style="margin-top: 20px;font-weight: bold;">酒庄简介</span>
<div style="margin-top: 10px;width:100%;">
<rich-text :nodes="wineryItem.mchDesc" />
</div>
</div>
</div>
</template>
@ -110,6 +93,7 @@ import wepy from '@wepy/core'
import store from '@/store'
import { mapActions, mapState } from '@wepy/x'
import defaultMix from '../../mixins/defaultMix'
import merchanApis from '../../apis/merchanApis'
wepy.page({
store,
@ -117,34 +101,21 @@ wepy.page({
mixins: [defaultMix],
data: {
pageIndex: 0
wineryItem: null
},
computed: {
...mapState({
'imageDefine': state => state.imageDefine,
'userInfo': state => state.user.userInfo,
'wineryDefine': state => state.wineryDefine
'imageDefine': state => state.imageDefine
})
},
methods: {
...mapActions([
'setUserAction'
]),
handleViewTap() {
console.log('handleVieTap clicked')
},
onTap(item) {
console.log(item)
},
onBack() {
wx.navigateBack()
},
...mapActions([]),
async init(id) {
merchanApis.getMerchantInfo(id).then(r => {
this.wineryItem = r.data
})
}
},

View File

@ -153,6 +153,8 @@ import store from '@/store'
import { mapActions, mapState } from '@wepy/x'
import defaultMix from '../../mixins/defaultMix'
import merchanApis from '../../apis/merchanApis'
import appManager from '../../appManager'
import { wineryDetailPage } from '../../store/constant/nav/pages'
wepy.page({
store,
@ -180,7 +182,7 @@ wepy.page({
console.log('handleVieTap clicked')
},
onTap(item) {
console.log(item)
appManager.navigateTo(wineryDetailPage + '?id=' + item.id)
},
onBack() {
wx.navigateBack()

View File

@ -1,6 +1,18 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="商品类型" prop="goodsType">
<el-select v-model="queryParams.deptId" placeholder="请选择商品商户" clearable size="small">
<el-option
v-for="dict in goodsTypeOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item label="商品名称" prop="goodsName">
<el-input
v-model="queryParams.goodsName"
@ -93,9 +105,13 @@
<el-table v-loading="loading" :data="goodsList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center"/>
<el-table-column label="商品ID" align="center" prop="id" v-if="false"/>
<el-table-column label="商户名称" align="center" prop="deptId" :formatter="mchFormat" width="100px"/>
<el-table-column label="商品名称" align="center" prop="goodsName"/>
<el-table-column label="商品简称" align="center" prop="goodsAlias"/>
<el-table-column label="商品价格" align="center" prop="goodsPrice"/>
<el-table-column label="商品库存" align="center" prop="goodsStock"/>
<el-table-column label="商品类型" align="center" prop="goodsType" :formatter="goodsTypeFormat" width="100px"/>
<!-- <el-table-column label="关联规格" align="center" prop="goodsSpec"/>-->
<!-- <el-table-column label="商品说明" align="center" prop="goodsDesc"/>-->
<el-table-column label="商品封面" align="center" prop="goodsFaceImg">
@ -146,6 +162,17 @@
<el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="商户" prop="deptId">
<el-select v-model="form.deptId" placeholder="请选择商户">
<el-option
v-for="dict in mchOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item label="商品名称" prop="goodsName">
<el-input v-model="form.goodsName" placeholder="请输入商品名称"/>
</el-form-item>
@ -153,8 +180,12 @@
<el-input v-model="form.goodsAlias" placeholder="请输入商品简称"/>
</el-form-item>
<el-form-item label="商品价格" prop="goodsPrice">
<el-input type="number" v-model="form.goodsPrice" placeholder="请输入商品价格"/>
</el-form-item>
<el-input type="number" v-model="form.goodsPrice" placeholder="请输入商品价格"/>
</el-form-item>
<el-form-item label="库存" prop="goodsStock">
<el-input type="number" v-model="form.goodsStock" placeholder="请输入商品库存"/>
</el-form-item>
<el-form-item label="商品封面" prop="goodsFaceImg">
<upload-image :value="form.goodsFaceImg" @input="inputGoodsFaceImg"/>
<!-- <el-input v-model="form.goodsFaceImg" placeholder="请输入商品封面" />-->
@ -166,22 +197,29 @@
<el-form-item label="状态" prop="state">
<el-radio-group v-model="form.state">
<el-radio v-for="(dict, index) in stateOptions" :key="index" :label="parseInt(dict.dictValue)">{{dict.dictLabel}}</el-radio>
<el-radio v-for="(dict, index) in stateOptions" :key="index" :label="parseInt(dict.dictValue)">
{{dict.dictLabel}}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="商品类型" prop="goodsType">
<el-select v-model="form.goodsType" placeholder="请选择商品类型">
<el-option label="请选择字典生成" value=""/>
<el-option
v-for="dict in goodsTypeOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item label="关联规格" prop="goodsSpec">
<!-- <el-input v-model="form.goodsSpec" type="textarea" placeholder="请输入内容"/>-->
<el-transfer v-model="selectedSpecData" :data="specData" filterable
:titles="['商品列表','已关联商品']"
:button-texts="['取消关联', '关联商品']"
@change="handleChangeSpec"
></el-transfer>
</el-form-item>
<!-- <el-form-item label="关联规格" prop="goodsSpec">-->
<!-- &lt;!&ndash; <el-input v-model="form.goodsSpec" type="textarea" placeholder="请输入内容"/>&ndash;&gt;-->
<!-- <el-transfer v-model="selectedSpecData" :data="specData" filterable-->
<!-- :titles="['商品列表','已关联商品']"-->
<!-- :button-texts="['取消关联', '关联商品']"-->
<!-- @change="handleChangeSpec"-->
<!-- ></el-transfer>-->
<!-- </el-form-item>-->
<el-form-item label="商品说明" prop="goodsDesc">
<!-- <el-input v-model="form.goodsDesc" placeholder="请输入商品说明"/>-->
<editor :value="form.goodsDesc" :height="400" :min-height="400" @on-change="onChangeGoodsDesc"/>
@ -249,6 +287,8 @@ export default {
stateOptions: [],
//
goodsTypeOptions: [],
//
mchOptions: [],
//
queryParams: {
pageNum: 1,
@ -261,7 +301,8 @@ export default {
goodsFaceImg: undefined,
goodsImg: undefined,
goodsPrice: undefined,
state: undefined
goodsStock: undefined,
state: 0
},
//
form: {},
@ -289,6 +330,10 @@ export default {
this.getDicts("goods_type").then(response => {
this.goodsTypeOptions = response.data;
});
this.getDicts("merchant_dept").then(response => {
this.mchOptions = response.data;
});
},
methods: {
inputGoodsFaceImg(fileName) {
@ -307,6 +352,11 @@ export default {
goodsTypeFormat(row, column) {
return this.selectDictLabel(this.goodsTypeOptions, row.goodsType);
},
//
mchFormat(row, column) {
return this.selectDictLabel(this.mchOptions, row.deptId);
},
/** 查询商品信息列表 */
getList() {
this.loading = true;
@ -329,6 +379,7 @@ export default {
goodsAlias: undefined,
goodsType: undefined,
goodsSpec: undefined,
goodsStock: undefined,
goodsDesc: undefined,
goodsFaceImg: undefined,
goodsImg: undefined,
@ -337,6 +388,7 @@ export default {
createTime: undefined,
updateBy: undefined,
updateTime: undefined,
state: 0,
remark: undefined
};
this.resetForm("form");

View File

@ -136,6 +136,15 @@
<el-form-item label="图标" prop="avatar">
<uploadImage v-model="form.avatar"/>
</el-form-item>
<el-form-item label="封面大图" prop="faceImage">
<uploadImage v-model="form.faceImage"/>
</el-form-item>
<el-form-item label="获奖信息" prop="award">
<el-input v-model="form.award" placeholder="获奖信息(多条使用英文逗号分割)" />
</el-form-item>
<el-form-item label="介绍" prop="mchDesc">
<editor :value="form.mchDesc" :height="400" :min-height="400" @on-change="onChangeNewsBody"/>
</el-form-item>
@ -186,6 +195,8 @@ export default {
subtitle: undefined,
avatar: undefined,
mchDesc: undefined,
award: undefined,
faceImage:undefined
},
//
form: {},
@ -221,7 +232,9 @@ export default {
avatar: undefined,
mchDesc: undefined,
createTime: undefined,
updateTime: undefined
updateTime: undefined,
award: undefined,
faceImage:undefined
};
this.resetForm("form");
},