Commit bd092ab2 authored by Liu Peng's avatar Liu Peng

增加标签会员价格修改

parent be93511f
...@@ -3,31 +3,33 @@ ...@@ -3,31 +3,33 @@
*****************/ *****************/
// 导入请求公用方法 // 导入请求公用方法
import { import { request } from "../../utils/axiosFun";
request
} from '../../utils/axiosFun';
export const fetchList = (query) => { 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) => { export const addObj = (obj) => {
return request('post', '/api/sys/user/save', obj) return request("post", "/api/sys/user/save", obj);
} };
export const delObj = (ids) => { export const delObj = (ids) => {
return request('post', '/api/sys/user/delete', ids) return request("post", "/api/sys/user/delete", ids);
} };
export const putObj = (obj) => { export const putObj = (obj) => {
return request('post', '/api/sys/user/update', obj) return request("post", "/api/sys/user/update", obj);
} };
export const getObj = (id) => { export const getObj = (id) => {
return request('get','/api/sys/user/info/' + id) return request("get", "/api/sys/user/info/" + id);
} };
export const getCurrentInfo = () => { export const getCurrentInfo = () => {
return request('get','/api/sys/user/info',{}) return request("get", "/api/sys/user/info", {});
} };
export const changePassword = (obj) => { export const changePassword = (obj) => {
return request('post','/api/sys/user/password',obj) return request("post", "/api/sys/user/password", obj);
} };
\ No newline at end of file
export const fetchAllUserTags = (query) => {
return request("post", "/api/mgr/userTag/list", query, "F");
};
<template> <template>
<div class="price-config-container"> <div class="price-config-container">
<a-form-model <a-form-model :model="formModel" :label-col="{span:4}" :wrapper-col="{span: 10}" :rules="formRules" ref="formv">
:model="formModel"
:label-col="{span:4}"
:wrapper-col="{span: 4}"
:rules="formRules"
ref="formv"
>
<a-form-model-item label="会员价格" ref="vipPriceVal" prop="vipPrice"> <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>
<!-- <a-form-model-item label="折扣配置" ref="discountFor3MonVal" prop="discountFor3Mon"> <a-form-model-item label="标签用户会员价格">
<a-input v-model="formModel.discountFor3Mon" prefix="¥" suffix="3个月" @blur="blurValidate('discountFor3MonVal')"></a-input> <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>
<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-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>
<a-form-model-item :wrapper-col="{offset:4}"> <a-form-model-item :wrapper-col="{offset:4}">
<a-button type="primary" @click="onSubmit" :loading="btnLoading">保存</a-button> <a-button type="primary" @click="onSubmit" :loading="btnLoading">保存</a-button>
</a-form-model-item> </a-form-model-item>
</a-form-model> </a-form-model>
</div> </div>
</template> </template>
<script> <script>
import {getConfig,updateConfig} from '@/api/biz/priceConfig' import { getConfig, updateConfig } from "@/api/biz/priceConfig";
import {disposereq} from '@/utils/util'
import { disposereq } from "@/utils/util";
import { fetchAllUserTags } from "@/api/admin/user";
import { uuid } from "vue-uuid";
export default { export default {
data(){ data() {
let validatorPrice = (rule,value,callback) => { let validatorPrice = (rule, value, callback) => {
var val = parseFloat(value) var val = parseFloat(value);
if(val <= 0.0){ if (val <= 0.0) {
return callback(new Error('必须大于0')) return callback(new Error("必须大于0"));
} }
return true; return true;
}; };
return { return {
userTags: [],
formModel: { formModel: {
vipPrice: 0, vipPrice: 0,
discountFor3Mon: 0, discountFor3Mon: 0,
discountFor6Mon: 0, discountFor6Mon: 0,
discountFor12Mon: 0, discountFor12Mon: 0,
enterpriceVipPrice: 0 enterpriceVipPrice: 0,
}, },
btnLoading: false, btnLoading: false,
formRules:{ formRules: {
vipPrice: [ vipPrice: [
{ {
required: true, required: true,
message: '不能为空', message: "不能为空",
trigger: 'blur' trigger: "blur",
}, },
{ {
type: 'number', type: "number",
message: '必须为数字', message: "必须为数字",
trigger: 'blur', trigger: "blur",
transform: (value)=>{ transform: (value) => {
return Number(value) return Number(value);
} },
}, },
{ {
validator: validatorPrice, validator: validatorPrice,
message: '必须大于0', message: "必须大于0",
trigger: 'blur' trigger: "blur",
} },
], ],
discountFor3Mon: [ discountFor3Mon: [
{ {
required: true, required: true,
message: '不能为空', message: "不能为空",
trigger: 'blur' trigger: "blur",
}, },
{ {
type: 'number', type: "number",
message: '必须为数字', message: "必须为数字",
trigger: 'blur', trigger: "blur",
transform: (value)=>{ transform: (value) => {
return Number(value) return Number(value);
} },
} },
], ],
discountFor6Mon: [ discountFor6Mon: [
{ {
required: true, required: true,
message: '不能为空', message: "不能为空",
trigger: 'blur' trigger: "blur",
}, },
{ {
type: 'number', type: "number",
message: '必须为数字', message: "必须为数字",
trigger: 'blur', trigger: "blur",
transform: (value)=>{ transform: (value) => {
return Number(value) return Number(value);
} },
} },
], ],
discountFor12Mon: [ discountFor12Mon: [
{ {
required: true, required: true,
message: '不能为空', message: "不能为空",
trigger: 'blur' trigger: "blur",
}, },
{ {
type: 'number', type: "number",
message: '必须为数字', message: "必须为数字",
trigger: 'blur', trigger: "blur",
transform: (value)=>{ transform: (value) => {
return Number(value) return Number(value);
} },
} },
], ],
enterpriceVipPrice: [ enterpriceVipPrice: [
{ {
required: true, required: true,
message: '不能为空', message: "不能为空",
trigger: 'blur' trigger: "blur",
}, },
{ {
type: 'number', type: "number",
message: '必须为数字', message: "必须为数字",
trigger: 'blur', trigger: "blur",
transform: (value)=>{ transform: (value) => {
return Number(value) return Number(value);
} },
}, },
{ {
validator: validatorPrice, validator: validatorPrice,
message: '必须大于0', message: "必须大于0",
trigger: 'blur' trigger: "blur",
}
]
}
}
}, },
created() { ],
this.getPriceConfig()
}, },
beforeUpdate() { };
},
created() {
this.getPriceConfig();
fetchAllUserTags({
pageIndex: 0,
pageSize: 1000,
}).then((resp) => {
this.userTags = resp.data;
});
}, },
beforeUpdate() {},
methods: { methods: {
blurValidate(prop) {
blurValidate(prop){ this.$refs[prop].onFieldBlur();
this.$refs[prop].onFieldBlur() },
}, getPriceConfig() {
getPriceConfig(){ getConfig()
getConfig().then(res => { .then((res) => {
if(res.resp_code == 200){ if (res.resp_code == 200) {
this.formModel = res.datas this.formModel = res.datas;
}else{ } else {
this.$message.info(res.resp_msg); 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(){ onSubmit() {
this.btnLoading = true this.btnLoading = true;
this.$refs.formv.validate(valid=>{ this.$refs.formv.validate((valid) => {
if(valid){ if (valid) {
updateConfig(this.formModel).then(res => { const utp = this.formModel.userTagPrice;
if(res.resp_code == 200){ utp.forEach((tmp) => {
this.$message.info('保存成功'); const tag = this.userTags.find((ut) => ut.id === tmp.id);
}else{ 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.$message.info(res.resp_msg);
} }
this.btnLoading = false this.btnLoading = false;
}).catch(err => {
this.btnLoading = false
disposereq(err)
}) })
}else{ .catch((err) => {
this.btnLoading = false this.btnLoading = false;
} disposereq(err);
}) });
} else {
} this.btnLoading = false;
} }
} });
},
},
};
</script> </script>
<style> <style>
.price-config-container{ .price-config-container {
margin: 10px; margin: 10px;
} }
.required {
color: #f5222c;
}
.spliter {
margin-left: 10px;
}
</style> </style>
...@@ -3,8 +3,8 @@ ...@@ -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 * 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://edu.qkdata.com:10081'
const url = 'http://localhost:9090' // const url = 'http://localhost:9090'
// 基础路径,发布前修改这里,当前配置打包出来的资源都是相对路径 // 基础路径,发布前修改这里,当前配置打包出来的资源都是相对路径
let publicPath = '/admin' let publicPath = '/admin'
......
...@@ -1174,6 +1174,11 @@ ...@@ -1174,6 +1174,11 @@
dependencies: dependencies:
source-map "^0.6.1" 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": "@types/webpack-dev-server@^3.11.0":
version "3.11.4" 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" 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: ...@@ -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" resolved "http://192.168.10.201:8081/repository/npm-public/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
integrity sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4= 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: validate-npm-package-license@^3.0.1:
version "3.0.4" 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" 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: ...@@ -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" 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= 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: vue@^2.6.10:
version "2.6.12" version "2.6.12"
resolved "http://192.168.10.201:8081/repository/npm-public/vue/-/vue-2.6.12.tgz#f5ebd4fa6bd2869403e29a896aed4904456c9123" 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