Commit bd092ab2 authored by Liu Peng's avatar Liu Peng

增加标签会员价格修改

parent be93511f
......@@ -3,31 +3,33 @@
*****************/
// 导入请求公用方法
import {
request
} from '../../utils/axiosFun';
import { request } from "../../utils/axiosFun";
export const fetchList = (query) => {
return request('post', '/api/sys/user/list', query, "F")
}
return request("post", "/api/sys/user/list", query, "F");
};
export const addObj = (obj) => {
return request('post', '/api/sys/user/save', obj)
}
return request("post", "/api/sys/user/save", obj);
};
export const delObj = (ids) => {
return request('post', '/api/sys/user/delete', ids)
}
return request("post", "/api/sys/user/delete", ids);
};
export const putObj = (obj) => {
return request('post', '/api/sys/user/update', obj)
}
return request("post", "/api/sys/user/update", obj);
};
export const getObj = (id) => {
return request('get','/api/sys/user/info/' + id)
}
return request("get", "/api/sys/user/info/" + id);
};
export const getCurrentInfo = () => {
return request('get','/api/sys/user/info',{})
}
return request("get", "/api/sys/user/info", {});
};
export const changePassword = (obj) => {
return request('post','/api/sys/user/password',obj)
}
\ No newline at end of file
return request("post", "/api/sys/user/password", obj);
};
export const fetchAllUserTags = (query) => {
return request("post", "/api/mgr/userTag/list", query, "F");
};
<template>
<div class="price-config-container">
<a-form-model
:model="formModel"
:label-col="{span:4}"
:wrapper-col="{span: 4}"
:rules="formRules"
ref="formv"
>
<div class="price-config-container">
<a-form-model :model="formModel" :label-col="{span:4}" :wrapper-col="{span: 10}" :rules="formRules" ref="formv">
<a-form-model-item label="会员价格" ref="vipPriceVal" prop="vipPrice">
<a-input v-model="formModel.vipPrice" prefix="¥" suffix="1个月"></a-input>
<a-input v-model="formModel.vipPrice" suffix="1个月"></a-input>
</a-form-model-item>
<!-- <a-form-model-item label="折扣配置" ref="discountFor3MonVal" prop="discountFor3Mon">
<a-input v-model="formModel.discountFor3Mon" prefix="¥" suffix="3个月" @blur="blurValidate('discountFor3MonVal')"></a-input>
<a-form-model-item label="标签用户会员价格">
<a-row justify="space-between" v-for="utp in formModel.userTagPrice" :key="utp.id" :value="utp.id">
<a-col :span="4">
<span class="required">*</span>会员价格:
</a-col>
<a-col :span="7">
<a-input v-model="utp.price" suffix="1个月"></a-input>
</a-col>
<a-col :span="3" class="spliter">
适用于:
</a-col>
<a-col :span="7">
<a-select v-model="utp.id">
<a-select-option :value="tag.id" v-for="tag in userTags" :key="tag.id">
{{tag.name}}
</a-select-option>
</a-select>
</a-col>
</a-row>
<a-button type="primary" @click="addTagedMember">+继续添加</a-button>
</a-form-model-item>
<a-form-model-item :wrapper-col="{span:4,offset:4}" ref="discountFor6MonVal" prop="discountFor6Mon">
<a-input v-model="formModel.discountFor6Mon" prefix="¥" suffix="6个月" @blur="blurValidate('discountFor6MonVal')"></a-input>
</a-form-model-item>
<a-form-model-item :wrapper-col="{span:4,offset:4}" ref="discountFor12MonVal" prop="discountFor12Mon">
<a-input v-model="formModel.discountFor12Mon" prefix="¥" suffix="12个月" @blur="blurValidate('discountFor12MonVal')"></a-input>
</a-form-model-item> -->
<a-form-model-item label="企业会员价格" ref="enterpriceVipPriceVal" prop="enterpriceVipPrice">
<a-input v-model="formModel.enterpriceVipPrice" prefix="¥" suffix="1个月"></a-input>
<a-input v-model="formModel.enterpriceVipPrice" suffix="1个月"></a-input>
</a-form-model-item>
<a-form-model-item :wrapper-col="{offset:4}">
<a-button type="primary" @click="onSubmit" :loading="btnLoading">保存</a-button>
</a-form-model-item>
</a-form-model>
</div>
</div>
</template>
<script>
import {getConfig,updateConfig} from '@/api/biz/priceConfig'
import {disposereq} from '@/utils/util'
import { getConfig, updateConfig } from "@/api/biz/priceConfig";
import { disposereq } from "@/utils/util";
import { fetchAllUserTags } from "@/api/admin/user";
import { uuid } from "vue-uuid";
export default {
data(){
let validatorPrice = (rule,value,callback) => {
var val = parseFloat(value)
if(val <= 0.0){
return callback(new Error('必须大于0'))
data() {
let validatorPrice = (rule, value, callback) => {
var val = parseFloat(value);
if (val <= 0.0) {
return callback(new Error("必须大于0"));
}
return true;
};
return {
userTags: [],
formModel: {
vipPrice: 0,
discountFor3Mon: 0,
discountFor6Mon: 0,
discountFor12Mon: 0,
enterpriceVipPrice: 0
enterpriceVipPrice: 0,
},
btnLoading: false,
formRules:{
formRules: {
vipPrice: [
{
required: true,
message: '不能为空',
trigger: 'blur'
message: "不能为空",
trigger: "blur",
},
{
type: 'number',
message: '必须为数字',
trigger: 'blur',
transform: (value)=>{
return Number(value)
}
type: "number",
message: "必须为数字",
trigger: "blur",
transform: (value) => {
return Number(value);
},
},
{
validator: validatorPrice,
message: '必须大于0',
trigger: 'blur'
}
message: "必须大于0",
trigger: "blur",
},
],
discountFor3Mon: [
{
required: true,
message: '不能为空',
trigger: 'blur'
message: "不能为空",
trigger: "blur",
},
{
type: 'number',
message: '必须为数字',
trigger: 'blur',
transform: (value)=>{
return Number(value)
}
}
type: "number",
message: "必须为数字",
trigger: "blur",
transform: (value) => {
return Number(value);
},
},
],
discountFor6Mon: [
{
required: true,
message: '不能为空',
trigger: 'blur'
message: "不能为空",
trigger: "blur",
},
{
type: 'number',
message: '必须为数字',
trigger: 'blur',
transform: (value)=>{
return Number(value)
}
}
type: "number",
message: "必须为数字",
trigger: "blur",
transform: (value) => {
return Number(value);
},
},
],
discountFor12Mon: [
{
required: true,
message: '不能为空',
trigger: 'blur'
message: "不能为空",
trigger: "blur",
},
{
type: 'number',
message: '必须为数字',
trigger: 'blur',
transform: (value)=>{
return Number(value)
}
}
type: "number",
message: "必须为数字",
trigger: "blur",
transform: (value) => {
return Number(value);
},
},
],
enterpriceVipPrice: [
{
required: true,
message: '不能为空',
trigger: 'blur'
message: "不能为空",
trigger: "blur",
},
{
type: 'number',
message: '必须为数字',
trigger: 'blur',
transform: (value)=>{
return Number(value)
}
type: "number",
message: "必须为数字",
trigger: "blur",
transform: (value) => {
return Number(value);
},
},
{
validator: validatorPrice,
message: '必须大于0',
trigger: 'blur'
}
]
}
}
message: "必须大于0",
trigger: "blur",
},
created() {
this.getPriceConfig()
],
},
beforeUpdate() {
};
},
created() {
this.getPriceConfig();
fetchAllUserTags({
pageIndex: 0,
pageSize: 1000,
}).then((resp) => {
this.userTags = resp.data;
});
},
beforeUpdate() {},
methods: {
blurValidate(prop){
this.$refs[prop].onFieldBlur()
},
getPriceConfig(){
getConfig().then(res => {
if(res.resp_code == 200){
this.formModel = res.datas
}else{
blurValidate(prop) {
this.$refs[prop].onFieldBlur();
},
getPriceConfig() {
getConfig()
.then((res) => {
if (res.resp_code == 200) {
this.formModel = res.datas;
} else {
this.$message.info(res.resp_msg);
}
}).catch(err => {
disposereq(err)
})
.catch((err) => {
disposereq(err);
});
},
addTagedMember() {
if (!this.formModel.userTagPrice) {
this.formModel.userTagPrice = [];
}
this.formModel.userTagPrice.push({
name: "",
price: 0,
});
},
onSubmit(){
this.btnLoading = true
this.$refs.formv.validate(valid=>{
if(valid){
updateConfig(this.formModel).then(res => {
if(res.resp_code == 200){
this.$message.info('保存成功');
}else{
onSubmit() {
this.btnLoading = true;
this.$refs.formv.validate((valid) => {
if (valid) {
const utp = this.formModel.userTagPrice;
utp.forEach((tmp) => {
const tag = this.userTags.find((ut) => ut.id === tmp.id);
if (tag) {
tmp.name = tag.name;
}
});
updateConfig(this.formModel)
.then((res) => {
if (res.resp_code == 200) {
this.$message.info("保存成功");
} else {
this.$message.info(res.resp_msg);
}
this.btnLoading = false
}).catch(err => {
this.btnLoading = false
disposereq(err)
this.btnLoading = false;
})
}else{
this.btnLoading = false
}
})
}
}
}
.catch((err) => {
this.btnLoading = false;
disposereq(err);
});
} else {
this.btnLoading = false;
}
});
},
},
};
</script>
<style>
.price-config-container{
.price-config-container {
margin: 10px;
}
}
.required {
color: #f5222c;
}
.spliter {
margin-left: 10px;
}
</style>
......@@ -3,8 +3,8 @@
* https://cli.vuejs.org/zh/config/#%E7%9B%AE%E6%A0%87%E6%B5%8F%E8%A7%88%E5%99%A8
*
*/
// const url = 'http://edu.qkdata.com:10081'
const url = 'http://localhost:9090'
const url = 'http://edu.qkdata.com:10081'
// const url = 'http://localhost:9090'
// 基础路径,发布前修改这里,当前配置打包出来的资源都是相对路径
let publicPath = '/admin'
......
......@@ -1174,6 +1174,11 @@
dependencies:
source-map "^0.6.1"
"@types/uuid@^8.0.0":
version "8.3.1"
resolved "http://192.168.10.201:8081/repository/npm-public/@types/uuid/-/uuid-8.3.1.tgz#1a32969cf8f0364b3d8c8af9cc3555b7805df14f"
integrity sha1-GjKWnPjwNks9jIr5zDVVt4Bd8U8=
"@types/webpack-dev-server@^3.11.0":
version "3.11.4"
resolved "http://192.168.10.201:8081/repository/npm-public/@types/webpack-dev-server/-/webpack-dev-server-3.11.4.tgz#90d47dd660b696d409431ab8c1e9fa3615103a07"
......@@ -8353,6 +8358,11 @@ uuid@^3.3.2, uuid@^3.4.0:
resolved "http://192.168.10.201:8081/repository/npm-public/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
integrity sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=
uuid@^8.1.0:
version "8.3.2"
resolved "http://192.168.10.201:8081/repository/npm-public/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
integrity sha1-gNW1ztJxu5r2xEXyGhoExgbO++I=
validate-npm-package-license@^3.0.1:
version "3.0.4"
resolved "http://192.168.10.201:8081/repository/npm-public/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
......@@ -8460,6 +8470,14 @@ vue-template-es2015-compiler@^1.9.0:
resolved "http://192.168.10.201:8081/repository/npm-public/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825"
integrity sha1-HuO8mhbsv1EYvjNLsV+cRvgvWCU=
vue-uuid@2.0.2:
version "2.0.2"
resolved "http://192.168.10.201:8081/repository/npm-public/vue-uuid/-/vue-uuid-2.0.2.tgz#0cfb739e660a3af1d4e3342743578114f79b2438"
integrity sha1-DPtznmYKOvHU4zQnQ1eBFPebJDg=
dependencies:
"@types/uuid" "^8.0.0"
uuid "^8.1.0"
vue@^2.6.10:
version "2.6.12"
resolved "http://192.168.10.201:8081/repository/npm-public/vue/-/vue-2.6.12.tgz#f5ebd4fa6bd2869403e29a896aed4904456c9123"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment