first commit
This commit is contained in:
@@ -0,0 +1,388 @@
|
||||
let BENEFIT_GOODS_FORM = {
|
||||
/*language=HTML*/
|
||||
template: `
|
||||
<div>
|
||||
<el-dialog :title="formData.id ? '编辑商品' : '新增商品'"
|
||||
:visible.sync="visibleDialog" :close-on-click-modal="false" width="60%">
|
||||
<el-form :model="formData" ref="formRef" :rules="formRules"
|
||||
label-width="0" class="benefitGoodsForm">
|
||||
<el-descriptions border class="descriptions-form" :column="2">
|
||||
<el-descriptions-item label="商品名称">
|
||||
<el-form-item prop="name" label="">
|
||||
<el-input maxlength="40" placeholder="商品名称" show-word-limit
|
||||
v-model="formData.name"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="所需积分">
|
||||
<el-form-item prop="money" label="">
|
||||
<el-input-number :max="9999" :precision="2" placeholder="所需积分"
|
||||
v-model="formData.money"
|
||||
:min="1"
|
||||
style="width: 100%"></el-input-number>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="发放形式">
|
||||
<el-form-item prop="goodsProvideMode" label="">
|
||||
<dict-select clearable code="BENEFIT_GOODS_PROVIDE_MODE"
|
||||
placeholder="请选择发放形式"
|
||||
v-model="formData.goodsProvideMode"></dict-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="排序">
|
||||
<el-form-item prop="goodsSort" label="">
|
||||
<el-input-number :max="9999" placeholder="排序"
|
||||
v-model="formData.goodsSort"
|
||||
:min="1"
|
||||
style="width: 100%"></el-input-number>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="所属一级分类">
|
||||
<el-form-item prop="goodsCategoryOneLevelId" label="">
|
||||
<el-select v-model="formData.goodsCategoryOneLevelId"
|
||||
placeholder="请选择所属一级分类" style="width: 100%"
|
||||
@change="goodsCategoryOneLevelChange">
|
||||
<el-option
|
||||
v-for="item in goodsCategoryOneLevelOptions"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="所属二级分类">
|
||||
<el-form-item prop="goodsCategoryTwoLevelId" label="">
|
||||
<el-select v-model="formData.goodsCategoryTwoLevelId"
|
||||
placeholder="请选择所属二级分类" style="width: 100%">
|
||||
<el-option
|
||||
v-for="item in goodsCategoryTwoLevelOptions"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="简短描述" span="2">
|
||||
<el-form-item prop="simpleDesc" label="">
|
||||
<el-input maxlength="80" placeholder="简短描述" show-word-limit
|
||||
v-model="formData.simpleDesc"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="商品规格"
|
||||
v-if="formData.goodsProvideMode==='GOODS_PROVIDE_MODE_POST'
|
||||
||formData.goodsProvideMode==='GOODS_PROVIDE_MODE_SHOPPING'">
|
||||
<el-button type="primary" size="mini"
|
||||
@click="goodsSpecificationsVisibleDialog = true">
|
||||
点击设置商品规格
|
||||
</el-button>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="门店地址"
|
||||
v-if="formData.goodsProvideMode==='GOODS_PROVIDE_MODE_SHOP'">
|
||||
<el-button type="primary" size="mini"
|
||||
@click="goodsShopAddressVisibleDialog = true">
|
||||
点击设置门店地址
|
||||
</el-button>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="邮寄发放配置"
|
||||
v-if="formData.goodsProvideMode==='GOODS_PROVIDE_MODE_POST'">
|
||||
<el-button type="primary" size="mini"
|
||||
@click="postProvideConfigVisibleDialog=true">点击设置邮寄发放配置
|
||||
</el-button>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item
|
||||
v-if="formData.goodsProvideMode==='GOODS_PROVIDE_MODE_SHOPPING'||
|
||||
formData.goodsProvideMode==='GOODS_PROVIDE_MODE_SHOP'"></el-descriptions-item>
|
||||
<el-descriptions-item label="说明描述" span="2">
|
||||
<el-form-item prop="description" label="">
|
||||
<text-editor v-model="formData.description"></text-editor>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="图片" span="2">
|
||||
<el-form-item prop="imgUrl" label="">
|
||||
<file-upload :upload_number="5" :value.sync="formData.imgUrl"
|
||||
accept=".jpg,.jpeg,.png"
|
||||
class="imgUrl"
|
||||
upload_result_type="url"
|
||||
complete_result upload_mode="drag"
|
||||
upload_result_category="array"></file-upload>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="主页展示" span="2">
|
||||
<el-form-item prop="isHomepage" label="">
|
||||
<el-radio-group v-model="formData.isHomepage">
|
||||
<el-radio-button label="true">是</el-radio-button>
|
||||
<el-radio-button label="false">否</el-radio-button>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item v-if="formData.isHomepage" label="主页轮播图片" span="2">
|
||||
<el-form-item prop="carouselImgUrl" label="">
|
||||
<file-upload :upload_number="1" :value.sync="formData.carouselImgUrl"
|
||||
accept=".jpg,.jpeg,.png"
|
||||
class="imgUrl"
|
||||
upload_result_type="url"
|
||||
complete_result upload_mode="drag"
|
||||
upload_result_category="array"></file-upload>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="visibleDialog = false">取 消</el-button>
|
||||
<el-button type="primary" @click="submit">提 交</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog title="配置商品规格"
|
||||
:visible.sync="goodsSpecificationsVisibleDialog"
|
||||
:close-on-click-modal="false"
|
||||
width="50%">
|
||||
<el-table :data="formData.benefitGoodsSpecificationsList">
|
||||
<el-table-column
|
||||
label="序号"
|
||||
type="index"
|
||||
width="80px"
|
||||
></el-table-column>
|
||||
<el-table-column label="规格名称">
|
||||
<template slot-scope="{row}">
|
||||
<el-input maxlength="50" placeholder="规格名称"
|
||||
v-model="row.name"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="所需积分" width="150px">
|
||||
<template slot-scope="{row}">
|
||||
<el-input-number :max="9999" placeholder="所需积分"
|
||||
v-model="row.points"
|
||||
:min="1"
|
||||
style="width: 100%"></el-input-number>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="排序" width="150px">
|
||||
<template slot-scope="{row}">
|
||||
<el-input-number :max="9999" placeholder="排序"
|
||||
v-model="row.specificationsSort"
|
||||
:min="1"
|
||||
style="width: 100%"></el-input-number>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="图片">
|
||||
<template slot-scope="{row}">
|
||||
<file-upload :upload_number="5" :value.sync="row.imgUrl"
|
||||
accept=".jpg,.jpeg,.png"
|
||||
class="imgUrl"
|
||||
upload_result_type="url"
|
||||
complete_result upload_mode="file"
|
||||
upload_result_category="array"></file-upload>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="100px">
|
||||
<template slot="header" slot-scope="scope">
|
||||
<el-button @click="pushBenefitGoodsSpecifications" icon="el-icon-plus"
|
||||
size="mini" type="primary">
|
||||
添加
|
||||
</el-button>
|
||||
</template>
|
||||
<template slot-scope="{row,$index}">
|
||||
<el-button
|
||||
@click="formData.benefitGoodsSpecificationsList.splice($index, 1)"
|
||||
size="mini"
|
||||
type="danger">删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
</el-table>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button type="primary"
|
||||
@click="goodsSpecificationsVisibleDialog = false">确 定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog title="邮寄发放配置"
|
||||
:visible.sync="postProvideConfigVisibleDialog"
|
||||
:close-on-click-modal="false"
|
||||
width="40%">
|
||||
<el-form :model="postProvideConfigFormData"
|
||||
label-width="110px">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="24">
|
||||
<el-form-item prop="choiceProvince" label="可邮寄省份">
|
||||
<el-select v-model="postProvideConfigFormData.choiceProvince"
|
||||
placeholder="请选择可邮寄省份" clearable filterable
|
||||
@change="choiceProvinceChange" style="width: 100%">
|
||||
<el-option
|
||||
v-for="item in provinceOptions"
|
||||
:key="item.label"
|
||||
:label="item.label"
|
||||
:value="item.label"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item prop="choiceMunicipality" label="可邮寄市">
|
||||
<el-select v-model="postProvideConfigFormData.choiceMunicipality"
|
||||
placeholder="请选择可邮寄市" clearable filterable
|
||||
style="width: 100%">
|
||||
<el-option
|
||||
v-for="item in municipalityOptions"
|
||||
:key="item.label"
|
||||
:label="item.label"
|
||||
:value="item.label">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button type="primary"
|
||||
@click="postProvideConfigVisibleDialog = false">确 定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog title="添加门店地址"
|
||||
:visible.sync="goodsShopAddressVisibleDialog"
|
||||
:close-on-click-modal="false"
|
||||
width="50%">
|
||||
<el-table :data="formData.shopAddressList">
|
||||
<el-table-column
|
||||
label="序号"
|
||||
type="index"
|
||||
width="80px"
|
||||
></el-table-column>
|
||||
<el-table-column label="门店地址">
|
||||
<template slot-scope="{row}">
|
||||
<el-input placeholder="门店地址" v-model="row.name"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="100px">
|
||||
<template slot="header" slot-scope="scope">
|
||||
<el-button @click="formData.shopAddressList.push({name:''})"
|
||||
icon="el-icon-plus"
|
||||
size="mini" type="primary">
|
||||
添加
|
||||
</el-button>
|
||||
</template>
|
||||
<template slot-scope="{row,$index}">
|
||||
<el-button
|
||||
@click="formData.shopAddressList.splice($index, 1)"
|
||||
size="mini"
|
||||
type="danger">删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
</el-table>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button type="primary"
|
||||
@click="goodsShopAddressVisibleDialog = false">确 定</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</div>
|
||||
|
||||
`,
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
goodsCategoryOneLevelOptions: [],
|
||||
goodsCategoryTwoLevelOptions: [],
|
||||
viewData: {},
|
||||
visibleDialog: false,
|
||||
goodsSpecificationsVisibleDialog: false,
|
||||
postProvideConfigVisibleDialog: false,
|
||||
goodsShopAddressVisibleDialog: false,
|
||||
provinceOptions: chengShiList,
|
||||
municipalityOptions: [],
|
||||
postProvideConfigFormData: { choiceProvince: "", choiceMunicipality: "" },
|
||||
formRules: {
|
||||
name: [{ required: true, message: "必填", trigger: "blur" }],
|
||||
money: [{ required: true, message: "必填", trigger: "blur" }],
|
||||
goodsCategoryOneLevelId: [{ required: true, message: "必填", trigger: "blur" }],
|
||||
goodsCategoryTwoLevelId: [{ required: true, message: "必填", trigger: "blur" }],
|
||||
goodsSort: [{ required: true, message: "必填", trigger: "blur" }],
|
||||
goodsProvideMode: [{ required: true, message: "必填", trigger: "blur" }],
|
||||
description: [{ required: true, message: "必填", trigger: "blur" }]
|
||||
}
|
||||
}
|
||||
}, methods: {
|
||||
choiceProvinceChange(val) {
|
||||
this.$set(this.postProvideConfigFormData, "choiceMunicipality", "")
|
||||
this.municipalityOptions = chengShiList.find(v => v.label === val)?.children
|
||||
},
|
||||
goodsCategoryOneLevelChange(val) {
|
||||
this.$set(this.formData, "goodsCategoryTwoLevelId", "")
|
||||
this.goodsCategoryTwoLevelOptions = this.goodsCategoryOneLevelOptions.find(v => v.id === val)?.children
|
||||
},
|
||||
pushBenefitGoodsSpecifications() {
|
||||
this.formData.benefitGoodsSpecificationsList.push({
|
||||
name: "",
|
||||
specificationsSort: this.formData.benefitGoodsSpecificationsList.length + 1,
|
||||
imgUrl: ""
|
||||
})
|
||||
},
|
||||
async open() {
|
||||
this.formData = {
|
||||
status: 1,
|
||||
benefitGoodsSpecificationsList: [],
|
||||
shopAddressList: [],
|
||||
postProvideConfig: { choiceProvince: "", choiceMunicipality: "" },
|
||||
isHomepage:false
|
||||
}
|
||||
this.visibleDialog = true
|
||||
await this.getGoodsCategoryTree()
|
||||
},
|
||||
async findOne(id) {
|
||||
const res = await this.$axios.post("/platform/benefit/goods/findOne", { id })
|
||||
if (res.code === 0) {
|
||||
return res.data
|
||||
}
|
||||
},
|
||||
async openEdit(id) {
|
||||
const data = await this.findOne(id)
|
||||
data.imgUrl = JSON.parse(data.imgUrl)
|
||||
data.carouselImgUrl = JSON.parse(data.carouselImgUrl)
|
||||
data.shopAddressList = JSON.parse(data.shopAddressList)
|
||||
this.formData = data
|
||||
this.postProvideConfigFormData = JSON.parse(this.formData.postProvideConfig)
|
||||
this.visibleDialog = true
|
||||
await this.getGoodsCategoryTree()
|
||||
this.goodsCategoryTwoLevelOptions = this.goodsCategoryOneLevelOptions.find(v => v.id === this.formData.goodsCategoryOneLevelId)?.children
|
||||
},
|
||||
async getGoodsCategoryTree() {
|
||||
const res = await this.$axios.post("/platform/benefit/goods/getGoodsCategoryTree")
|
||||
this.goodsCategoryOneLevelOptions = res.data
|
||||
this.goodsCategoryTwoLevelOptions = []
|
||||
},
|
||||
submit() {
|
||||
this.$refs.formRef.validate(valid => {
|
||||
if (valid) {
|
||||
if (this.formData.goodsProvideMode=="GOODS_PROVIDE_MODE_SHOPPING"&&this.formData.benefitGoodsSpecificationsList.length==0){
|
||||
this.$message.warning("发放形式为商城兑换的商品需要设置商品规格")
|
||||
return
|
||||
}
|
||||
this.formData.postProvideConfig = this.postProvideConfigFormData
|
||||
this.$axios.post("/platform/benefit/goods/submit", { data: JSON.stringify(this.formData) }).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success("保存成功")
|
||||
this.visibleDialog = false
|
||||
this.$emit("query")
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
<!--#include("/platform/zhgh/welfare/include/chengSh.js"){}#-->
|
||||
@@ -0,0 +1,127 @@
|
||||
let BENEFIT_GOODS_INFO = {
|
||||
/*language=HTML*/
|
||||
template: `
|
||||
<div>
|
||||
<el-dialog title="查看商品"
|
||||
:visible.sync="visibleDialog" :close-on-click-modal="false" width="70%">
|
||||
<el-form label-width="110px">
|
||||
<el-descriptions :column="3" border>
|
||||
<el-descriptions-item label="商品名称">{{ viewData.name }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="所需积分">{{ viewData.money }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="发放形式">
|
||||
<dict-tag :options="dict.type.BENEFIT_GOODS_PROVIDE_MODE"
|
||||
:value="viewData.goodsProvideMode"></dict-tag>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="所属一级分类">
|
||||
{{ viewData.goodsCategoryOneLevelName }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="所属二级分类">
|
||||
{{ viewData.goodsCategoryTwoLevelName }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="排序">{{ viewData.goodsSort }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="简短描述" span="3">{{ viewData.simpleDesc }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="商品规格" span="3">
|
||||
<el-table :data="viewData.benefitGoodsSpecificationsList">
|
||||
<el-table-column
|
||||
label="序号"
|
||||
type="index"
|
||||
width="80px"
|
||||
></el-table-column>
|
||||
<el-table-column label="规格名称" prop="name">
|
||||
</el-table-column>
|
||||
<el-table-column label="图片">
|
||||
<template v-slot="{row}">
|
||||
<el-button @click="openImg(row.imgUrl)" size="mini"
|
||||
type="primary" v-if="row.imgUrl">
|
||||
点击查看图片
|
||||
</el-button>
|
||||
<span v-else>暂无</span>
|
||||
</template>
|
||||
|
||||
</el-table-column>
|
||||
|
||||
</el-table>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="邮寄发放配置" span="3"
|
||||
v-if="viewData.goodsProvideMode==='BENEFIT_GOODS_PROVIDE_MODE_POST'">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="choiceProvince" label="可邮寄省份">
|
||||
{{
|
||||
viewData.postProvideConfig.choiceProvince?viewData.postProvideConfig.choiceProvince:'暂无'
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="choiceProvince" label="可邮寄市">
|
||||
{{
|
||||
viewData.postProvideConfig.choiceMunicipality?viewData.postProvideConfig.choiceMunicipality:'暂无'
|
||||
}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="说明描述" span="3">
|
||||
<div class="text-left" v-html="viewData.description"></div>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="图片" span="3">
|
||||
<file-preview :files="viewData.imgUrl" complete_result></file-preview>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="是否主页" span="3">
|
||||
<span v-if="viewData.isHomepage">是</span>
|
||||
<span v-else>否</span>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="图片" span="3">
|
||||
<file-preview :files="viewData.carouselImgUrl" complete_result></file-preview>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button type="primary"
|
||||
@click="visibleDialog = false">关闭</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog title="查看商品"
|
||||
:visible.sync="imgVisibleDialog" :close-on-click-modal="false" width="50%">
|
||||
<file-preview :files="imgUrlList" complete_result></file-preview>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button type="primary"
|
||||
@click="imgVisibleDialog = false">关闭</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</div>
|
||||
`,
|
||||
dicts: ["BENEFIT_GOODS_PROVIDE_MODE"],
|
||||
data() {
|
||||
return {
|
||||
viewData: {},
|
||||
imgUrlList: [],
|
||||
visibleDialog: false,
|
||||
imgVisibleDialog: false
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
openImg(imgUrl) {
|
||||
this.imgUrlList = imgUrl
|
||||
this.imgVisibleDialog = true
|
||||
},
|
||||
async findOne(id) {
|
||||
const res = await this.$axios.post("/platform/benefit/goods/findOne", { id })
|
||||
if (res.code === 0) {
|
||||
return res.data
|
||||
}
|
||||
},
|
||||
async open(id) {
|
||||
const data = await this.findOne(id)
|
||||
data.imgUrl = JSON.parse(data.imgUrl)
|
||||
this.viewData = data
|
||||
this.postProvideConfigFormData = JSON.parse(this.viewData.postProvideConfig)
|
||||
this.visibleDialog = true
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,141 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<guava ref="guava">
|
||||
<template>
|
||||
<el-card shadow="never">
|
||||
<search @search="doSearch">
|
||||
<search-item label="所属年份">
|
||||
<el-date-picker
|
||||
:clearable="false"
|
||||
placeholder="所属年份"
|
||||
style="width: 100%"
|
||||
type="year"
|
||||
@change="getWelfareList"
|
||||
v-model="pageForm.year"
|
||||
value-format="yyyy"
|
||||
></el-date-picker>
|
||||
</search-item>
|
||||
|
||||
<search-item label="福利项目">
|
||||
<el-select :clearable="true" filterable placeholder="请选择福利项目" style="width: 100%" v-model="pageForm.benefitId">
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id" v-for="item in projectSelectOptions"></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
</search>
|
||||
</el-card>
|
||||
<el-card shadow="never">
|
||||
<table-tool label="商品管理">
|
||||
<el-button @click="openAdd()" icon="el-icon-plus" size="mini" type="primary">新增商品</el-button>
|
||||
</table-tool>
|
||||
<el-table :data="tableData" @sort-change="pageOrder" ref="table" row-key="id" v-loading="tableLoading">
|
||||
<el-table-column :index="indexMethod" label="序号" type="index" width="80px"></el-table-column>
|
||||
|
||||
<el-table-column
|
||||
:key="column.prop"
|
||||
:label="column.label"
|
||||
:prop="column.prop"
|
||||
:sortable="column.sortable"
|
||||
:width="column.width"
|
||||
min-width="100px"
|
||||
show-overflow-tooltip
|
||||
v-for="column in tableColumns"
|
||||
>
|
||||
<template v-slot="{row}" v-if="column.prop==='goodsProvideMode'">
|
||||
<dict-tag :options="dict.type.BENEFIT_GOODS_PROVIDE_MODE" :value="row.goodsProvideMode"></dict-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="300px">
|
||||
<template slot-scope="{row}">
|
||||
<el-button @click="openView(row)" size="mini" type="primary">查看</el-button>
|
||||
<el-button @click="openEdit(row)" size="mini" type="primary">编辑</el-button>
|
||||
<el-button @click="doDelete(row)" size="mini" type="danger">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
</el-card>
|
||||
</template>
|
||||
</guava>
|
||||
|
||||
<benefit-goods-form ref="benefitGoodsForm" @query="pageData"></benefit-goods-form>
|
||||
<benefit-goods-info ref="benefitGoodsInfo"></benefit-goods-info>
|
||||
</div>
|
||||
<script nonce="${cspNonce!}">
|
||||
<!--#include("goodsForm.js"){}#-->
|
||||
<!--#include("goodsInfo.js"){}#-->
|
||||
new Vue({
|
||||
el: "#app",
|
||||
mixins: [initTableMixins],
|
||||
dicts: ["BENEFIT_GOODS_PROVIDE_MODE"],
|
||||
data() {
|
||||
return {
|
||||
projectSelectOptions: [],
|
||||
pageForm: {
|
||||
year: moment().format("YYYY")
|
||||
},
|
||||
tableColumns: [
|
||||
{ prop: "name", label: "商品名称" },
|
||||
{ prop: "simpleDesc", label: "简短描述" },
|
||||
{ prop: "goodsCategoryOneLevelName", label: "所属一级分类" },
|
||||
{ prop: "goodsCategoryTwoLevelName", label: "所属二级分类" },
|
||||
{ prop: "money", label: "所需积分" },
|
||||
{ prop: "goodsProvideMode", label: "发放形式" }
|
||||
]
|
||||
}
|
||||
},
|
||||
components: {
|
||||
"benefit-goods-form": BENEFIT_GOODS_FORM,
|
||||
"benefit-goods-info": BENEFIT_GOODS_INFO
|
||||
},
|
||||
methods: {
|
||||
openView(row) {
|
||||
this.$refs.benefitGoodsInfo.open(row.id)
|
||||
},
|
||||
openAdd() {
|
||||
this.$refs.benefitGoodsForm.open()
|
||||
},
|
||||
openEdit(row) {
|
||||
this.$refs.benefitGoodsForm.openEdit(row.id)
|
||||
},
|
||||
doDelete(row) {
|
||||
this.$confirm("确定要删除【" + row.name + "】?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(() => {
|
||||
this.$axios
|
||||
.post(loc() + "/delete", {
|
||||
id: row.id
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success(res.msg)
|
||||
this.pageData()
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
getWelfareList() {
|
||||
this.$set(this.pageForm, "benefitId", "")
|
||||
this.$axios.post("/platform/benefit/project/getBenefitList", { year: this.pageForm.year }).then((res) => {
|
||||
this.projectSelectOptions = res.data
|
||||
})
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
this.getWelfareList()
|
||||
await this.pageData()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<style>
|
||||
.benefitGoodsForm .el-form-item {
|
||||
margin-bottom: 5px !important;
|
||||
}
|
||||
</style>
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
Reference in New Issue
Block a user