优惠券详情页面修改
This commit is contained in:
parent
8ae4d7328c
commit
80734d732f
@ -14,3 +14,25 @@ export function createCoupon(data) {
|
|||||||
data:data
|
data:data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getCoupon(id) {
|
||||||
|
return request({
|
||||||
|
url:'/coupon/'+id,
|
||||||
|
method:'get',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function updateCoupon(id,data) {
|
||||||
|
return request({
|
||||||
|
url:'/coupon/update/'+id,
|
||||||
|
method:'post',
|
||||||
|
data:data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function deleteCoupon(id) {
|
||||||
|
return request({
|
||||||
|
url:'/coupon/delete/'+id,
|
||||||
|
method:'post',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
@ -7,6 +7,14 @@ export function fetchList(params) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function fetchSimpleList(params) {
|
||||||
|
return request({
|
||||||
|
url:'/product/simpleList',
|
||||||
|
method:'get',
|
||||||
|
params:params
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
export function updateDeleteStatus(params) {
|
export function updateDeleteStatus(params) {
|
||||||
return request({
|
return request({
|
||||||
url:'/product/update/deleteStatus',
|
url:'/product/update/deleteStatus',
|
||||||
|
@ -42,7 +42,7 @@
|
|||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="使用门槛:" prop="minPoint">
|
<el-form-item label="使用门槛:" prop="minPoint">
|
||||||
<el-input v-model="coupon.minPoint" placeholder="只能输入正整数" class="input-width">
|
<el-input v-model.number="coupon.minPoint" placeholder="只能输入正整数" class="input-width">
|
||||||
<template slot="prepend">满</template>
|
<template slot="prepend">满</template>
|
||||||
<template slot="append">元可用</template>
|
<template slot="append">元可用</template>
|
||||||
</el-input>
|
</el-input>
|
||||||
@ -60,11 +60,68 @@
|
|||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item v-show="coupon.useType===1">
|
<el-form-item v-show="coupon.useType===1">
|
||||||
xx1
|
<el-cascader
|
||||||
|
clearable
|
||||||
|
placeholder="请选择分类名称"
|
||||||
|
v-model="selectProductCate"
|
||||||
|
:options="productCateOptions">
|
||||||
|
</el-cascader>
|
||||||
|
<el-button @click="handleAddProductCategoryRelation()">添加</el-button>
|
||||||
|
<el-table ref="productCateRelationTable"
|
||||||
|
:data="coupon.productCategoryRelationList"
|
||||||
|
style="width: 100%;margin-top: 20px"
|
||||||
|
border>
|
||||||
|
<el-table-column label="分类名称" align="center">
|
||||||
|
<template slot-scope="scope">{{scope.row.parentCategoryName}}>{{scope.row.productCategoryName}}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="操作" align="center" width="100">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button size="mini"
|
||||||
|
type="text"
|
||||||
|
@click="handleDeleteProductCateRelation(scope.$index, scope.row)">删除
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item v-show="coupon.useType===2">
|
<el-form-item v-show="coupon.useType===2">
|
||||||
xx2
|
<el-select
|
||||||
|
v-model="selectProduct"
|
||||||
|
filterable
|
||||||
|
remote
|
||||||
|
reserve-keyword
|
||||||
|
placeholder="商品名称/商品货号"
|
||||||
|
:remote-method="searchProductMethod"
|
||||||
|
:loading="selectProductLoading">
|
||||||
|
<el-option
|
||||||
|
v-for="item in selectProductOptions"
|
||||||
|
:key="item.productId"
|
||||||
|
:label="item.productName"
|
||||||
|
:value="item.productId">
|
||||||
|
<span style="float: left">{{ item.productName }}</span>
|
||||||
|
<span style="float: right; color: #8492a6; font-size: 13px">NO.{{ item.productSn }}</span>
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
<el-button @click="handleAddProductRelation()">添加</el-button>
|
||||||
|
<el-table ref="productRelationTable"
|
||||||
|
:data="coupon.productRelationList"
|
||||||
|
style="width: 100%;margin-top: 20px"
|
||||||
|
border>
|
||||||
|
<el-table-column label="商品名称" align="center">
|
||||||
|
<template slot-scope="scope">{{scope.row.productName}}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="货号" align="center" width="120" >
|
||||||
|
<template slot-scope="scope">NO.{{scope.row.productSn}}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="操作" align="center" width="100">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button size="mini"
|
||||||
|
type="text"
|
||||||
|
@click="handleDeleteProductRelation(scope.$index, scope.row)">删除
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="备注:">
|
<el-form-item label="备注:">
|
||||||
<el-input
|
<el-input
|
||||||
@ -77,13 +134,15 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" @click="onSubmit('couponFrom')">提交</el-button>
|
<el-button type="primary" @click="onSubmit('couponFrom')">提交</el-button>
|
||||||
<el-button @click="resetForm('couponFrom')">重置</el-button>
|
<el-button v-if="!isEdit" @click="resetForm('couponFrom')">重置</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</el-card>
|
</el-card>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import {createCoupon} from '@/api/coupon';
|
import {createCoupon,getCoupon,updateCoupon} from '@/api/coupon';
|
||||||
|
import {fetchSimpleList as fetchProductList} from '@/api/product';
|
||||||
|
import {fetchListWithChildren} from '@/api/productCate'
|
||||||
const defaultCoupon = {
|
const defaultCoupon = {
|
||||||
type: 0,
|
type: 0,
|
||||||
name: null,
|
name: null,
|
||||||
@ -158,9 +217,22 @@
|
|||||||
minPoint: [
|
minPoint: [
|
||||||
{type: 'number',required: true,message: '只能输入正整数',trigger: 'blur'}
|
{type: 'number',required: true,message: '只能输入正整数',trigger: 'blur'}
|
||||||
]
|
]
|
||||||
}
|
},
|
||||||
|
selectProduct:null,
|
||||||
|
selectProductLoading: false,
|
||||||
|
selectProductOptions:[],
|
||||||
|
selectProductCate: null,
|
||||||
|
productCateOptions: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
created(){
|
||||||
|
if(this.isEdit){
|
||||||
|
getCoupon(this.$route.query.id).then(response=>{
|
||||||
|
this.coupon=response.data;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
this.getProductCateList();
|
||||||
|
},
|
||||||
methods:{
|
methods:{
|
||||||
onSubmit(formName) {
|
onSubmit(formName) {
|
||||||
this.$refs[formName].validate((valid) => {
|
this.$refs[formName].validate((valid) => {
|
||||||
@ -170,15 +242,27 @@
|
|||||||
cancelButtonText: '取消',
|
cancelButtonText: '取消',
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
createCoupon(this.coupon).then(response=>{
|
if(this.isEdit){
|
||||||
this.$refs[formName].resetFields();
|
updateCoupon(this.$route.query.id,this.coupon).then(response=>{
|
||||||
this.$message({
|
this.$refs[formName].resetFields();
|
||||||
message: '提交成功',
|
this.$message({
|
||||||
type: 'success',
|
message: '修改成功',
|
||||||
duration:1000
|
type: 'success',
|
||||||
|
duration:1000
|
||||||
|
});
|
||||||
|
this.$router.back();
|
||||||
});
|
});
|
||||||
this.$router.back();
|
}else{
|
||||||
});
|
createCoupon(this.coupon).then(response=>{
|
||||||
|
this.$refs[formName].resetFields();
|
||||||
|
this.$message({
|
||||||
|
message: '提交成功',
|
||||||
|
type: 'success',
|
||||||
|
duration:1000
|
||||||
|
});
|
||||||
|
this.$router.back();
|
||||||
|
});
|
||||||
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
this.$message({
|
this.$message({
|
||||||
@ -193,6 +277,88 @@
|
|||||||
resetForm(formName) {
|
resetForm(formName) {
|
||||||
this.$refs[formName].resetFields();
|
this.$refs[formName].resetFields();
|
||||||
this.coupon = Object.assign({},defaultCoupon);
|
this.coupon = Object.assign({},defaultCoupon);
|
||||||
|
},
|
||||||
|
searchProductMethod(query){
|
||||||
|
if (query !== '') {
|
||||||
|
this.loading = true;
|
||||||
|
fetchProductList({keyword:query}).then(response=>{
|
||||||
|
this.loading=false;
|
||||||
|
let productList = response.data;
|
||||||
|
this.selectProductOptions = [];
|
||||||
|
for(let i=0;i<productList.length;i++){
|
||||||
|
let item = productList[i];
|
||||||
|
this.selectProductOptions.push({productId:item.id,productName:item.name,productSn:item.productSn});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.selectProductOptions = [];
|
||||||
|
}
|
||||||
|
},
|
||||||
|
handleAddProductRelation(){
|
||||||
|
if(this.selectProduct===null){
|
||||||
|
this.$message({
|
||||||
|
message: '请先选择商品',
|
||||||
|
type: 'warning'
|
||||||
|
});
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.coupon.productRelationList.push(this.getProductById(this.selectProduct));
|
||||||
|
this.selectProduct=null;
|
||||||
|
},
|
||||||
|
handleAddProductCategoryRelation(){
|
||||||
|
if(this.selectProductCate===null||this.selectProductCate.length===0){
|
||||||
|
this.$message({
|
||||||
|
message: '请先选择商品分类',
|
||||||
|
type: 'warning'
|
||||||
|
});
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.coupon.productCategoryRelationList.push(this.getProductCateByIds(this.selectProductCate));
|
||||||
|
this.selectProductCate=[];
|
||||||
|
},
|
||||||
|
handleDeleteProductRelation(index,row){
|
||||||
|
this.coupon.productRelationList.splice(index,1);
|
||||||
|
},
|
||||||
|
handleDeleteProductCateRelation(index,row){
|
||||||
|
this.coupon.productCategoryRelationList.splice(index,1);
|
||||||
|
},
|
||||||
|
getProductById(id){
|
||||||
|
for(let i=0;i<this.selectProductOptions.length;i++){
|
||||||
|
if(id===this.selectProductOptions[i].productId){
|
||||||
|
return this.selectProductOptions[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
},
|
||||||
|
getProductCateList() {
|
||||||
|
fetchListWithChildren().then(response => {
|
||||||
|
let list = response.data;
|
||||||
|
this.productCateOptions = [];
|
||||||
|
for (let i = 0; i < list.length; i++) {
|
||||||
|
let children = [];
|
||||||
|
if (list[i].children != null && list[i].children.length > 0) {
|
||||||
|
for (let j = 0; j < list[i].children.length; j++) {
|
||||||
|
children.push({label: list[i].children[j].name, value: list[i].children[j].id});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.productCateOptions.push({label: list[i].name, value: list[i].id, children: children});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
getProductCateByIds(ids){
|
||||||
|
let name;
|
||||||
|
let parentName;
|
||||||
|
for (let i = 0; i < this.productCateOptions.length; i++) {
|
||||||
|
if (this.productCateOptions[i].value === ids[0]) {
|
||||||
|
parentName = this.productCateOptions[i].label;
|
||||||
|
for (let j = 0; j < this.productCateOptions[i].children.length; j++) {
|
||||||
|
if (this.productCateOptions[i].children[j].value === ids[1]) {
|
||||||
|
name = this.productCateOptions[i].children[j].label;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return {productCategoryId: ids[1], productCategoryName: name, parentCategoryName: parentName};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -81,7 +81,9 @@
|
|||||||
type="text"
|
type="text"
|
||||||
@click="handleUpdate(scope.$index, scope.row)">
|
@click="handleUpdate(scope.$index, scope.row)">
|
||||||
编辑</el-button>
|
编辑</el-button>
|
||||||
<el-button size="mini" type="text">删除</el-button>
|
<el-button size="mini"
|
||||||
|
type="text"
|
||||||
|
@click="handleDelete(scope.$index, scope.row)">删除</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
@ -101,7 +103,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import {fetchList} from '@/api/coupon';
|
import {fetchList,deleteCoupon} from '@/api/coupon';
|
||||||
import {formatDate} from '@/utils/date';
|
import {formatDate} from '@/utils/date';
|
||||||
const defaultListQuery = {
|
const defaultListQuery = {
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
@ -196,12 +198,36 @@
|
|||||||
handleSelectionChange(val){
|
handleSelectionChange(val){
|
||||||
this.multipleSelection = val;
|
this.multipleSelection = val;
|
||||||
},
|
},
|
||||||
|
handleSizeChange(val) {
|
||||||
|
this.listQuery.pageNum = 1;
|
||||||
|
this.listQuery.pageSize = val;
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
handleCurrentChange(val) {
|
||||||
|
this.listQuery.pageNum = val;
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
handleAdd(){
|
handleAdd(){
|
||||||
this.$router.push({path: '/sms/addCoupon'})
|
this.$router.push({path: '/sms/addCoupon'})
|
||||||
},
|
},
|
||||||
handleUpdate(index, row) {
|
handleUpdate(index, row) {
|
||||||
this.$router.push({path: '/sms/updateCoupon', query: {id: row.id}})
|
this.$router.push({path: '/sms/updateCoupon', query: {id: row.id}})
|
||||||
},
|
},
|
||||||
|
handleDelete(index, row) {
|
||||||
|
this.$confirm('是否进行删除操作?', '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning'
|
||||||
|
}).then(() => {
|
||||||
|
deleteCoupon(row.id).then(response=>{
|
||||||
|
this.$message({
|
||||||
|
type: 'success',
|
||||||
|
message: '删除成功!'
|
||||||
|
});
|
||||||
|
this.getList();
|
||||||
|
});
|
||||||
|
})
|
||||||
|
},
|
||||||
getList(){
|
getList(){
|
||||||
fetchList(this.listQuery).then(response=>{
|
fetchList(this.listQuery).then(response=>{
|
||||||
this.listLoading = false;
|
this.listLoading = false;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user