Browse Source

这是11.3日的提交

Hongxilin
donghaolin 6 months ago
parent
commit
7af3e86119
  1. 28
      vue/gold-system/src/views/consume/allConsume.vue
  2. 51
      vue/gold-system/src/views/managerecharge/rate.vue
  3. 52
      vue/gold-system/src/views/recharge/addRecharge.vue
  4. 150
      vue/gold-system/src/views/refund/addRefund.vue
  5. 91
      vue/gold-system/src/views/refund/allRefund.vue

28
vue/gold-system/src/views/consume/allConsume.vue

@ -99,7 +99,7 @@ const get = async function (val) {
};
//
const reset = function () {
detailVo.value.goods = "";
detailVo.value.productName = "";
detailVo.value.consumePlatform = "";
detailVo.value.consumeType = "";
detailVo.value.startDate = "";
@ -204,6 +204,24 @@ const checkNumber = function () {
});
}
};
//
const goods = ref([]);
const getGoods = async function () {
try {
// POST
const result = await axios.post("http://192.168.8.93:10020/product", {});
//
console.log("请求成功", result);
//
goods.value = result.data.data;
console.log("allData", allData.value);
console.log("地区", area.value);
} catch (error) {
console.log("请求失败", error);
//
}
};
getGoods();
</script>
<template>
@ -215,16 +233,16 @@ const checkNumber = function () {
<div class="head-card-element">
<el-text class="mx-1" size="large">商品名称</el-text>
<el-select
v-model="detailVo.goods"
v-model="detailVo.productName"
placeholder="请选择活动名称"
size="large"
style="width: 240px"
>
<el-option
v-for="item in activity"
v-for="item in goods"
:key="item.activityId"
:label="item.activityName"
:value="item.activityId"
:label="item.name"
:value="item.name"
/>
</el-select>
</div>

51
vue/gold-system/src/views/managerecharge/rate.vue

@ -235,7 +235,7 @@ const checkStartTime = function (rule, value, callback) {
const checkEndTime = function (rule, value, callback) {
if (value <= new Date()) {
callback(new Error("结束时间不能小于当前时间"));
} else if (value <= addObj.value.startTime) {
} else if (value <= rateAdd.value.startTime) {
callback(new Error("结束时间不能小于开始时间"));
} else {
callback();
@ -517,52 +517,11 @@ const checkNumber = function () {
<p>(提示当前规则每 5 元人民币可兑换 1 新币)</p>
</el-form-item>
<el-form-item label="提交人:">
<el-input v-model="rateEdit.updateName" style="width: 240px" />
</el-form-item>
<el-form-item>
<div class="dialog-footer">
<el-button type="primary" @click="edit">修改</el-button>
<el-button @click="regeEdit = false">取消</el-button>
</div>
</el-form-item>
</el-form>
</template>
</el-dialog>
<!-- 这是编辑弹窗 -->
<el-dialog v-model="regeEdit" title="修改汇率" width="500">
<template #footer>
<el-form
ref="ruleFormRef"
style="max-width: 600px"
:model="rateEdit"
:rules="rules"
label-width="auto"
class="demo-ruleForm"
:size="formSize"
status-icon
>
<el-form-item label="货币名称:">
<el-select
v-model="rateEdit.currency"
placeholder="请选择"
<el-input
disabled
v-model="rateEdit.updateName"
style="width: 240px"
>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="汇率:">
<el-input v-model="rateEdit.exchangeRate" style="width: 120px" />
<p class="unit">:1</p>
<p>(提示当前规则每 5 元人民币可兑换 1 新币)</p>
</el-form-item>
<el-form-item label="提交人:">
<el-input v-model="rateEdit.adminName" style="width: 240px" />
/>
</el-form-item>
<el-form-item>
<div class="dialog-footer">

52
vue/gold-system/src/views/recharge/addRecharge.vue

@ -11,6 +11,9 @@ const addRecharge = ref({
rechargeVoucher: "",
rechargeWay: "客服充值",
adminId: "1",
freeGold: 0,
rechargeGold: 0,
paidGold: 0,
});
//
const add = async function () {
@ -25,6 +28,8 @@ const add = async function () {
console.log("请求成功", result);
//
console.log("用户信息", user.value);
imageUrl.value = "";
addRecharge.value = {};
} catch (error) {
console.log("请求失败", error);
//
@ -37,8 +42,6 @@ const addBefore = () => {
.then(() => {
add();
console.log("添加成功");
imageUrl.value = "";
addRecharge.value = {};
})
.catch(() => {
console.log("取消添加");
@ -59,6 +62,8 @@ const Ref = ref(null);
const checkEndTime = function (rule, value, callback) {
if (value <= new Date()) {
callback(new Error("付款时间不能小于当前时间"));
} else {
callback();
}
};
const rules = reactive({
@ -159,8 +164,8 @@ const handleAvatarSuccess = (response, uploadFile) => {
};
//
const beforeAvatarUpload = (rawFile) => {
if (rawFile.type !== "image/jpeg") {
ElMessage.error("Avatar picture must be JPG format!");
if (rawFile.type !== "image/jpeg" && rawFile.type !== "image/png") {
ElMessage.error("图片格式必须为jpg或png!");
return false;
} else if (rawFile.size / 1024 / 1024 > 2) {
ElMessage.error("Avatar picture size can not exceed 2MB!");
@ -186,13 +191,15 @@ const options = [
];
const calculatedFreeGold = computed(() => {
return addRecharge.value.paidGold * addRecharge.value.activityId;
return addRecharge.value.paidGold / addRecharge.value.activityId;
});
const calculatedRechargeGold = computed(() => {
addRecharge.value.paidGold * addRecharge.value.reteId;
return addRecharge.value.paidGold * addRecharge.value.rateId;
});
watch(calculatedFreeGold, calculatedRechargeGold, (newVal) => {
watch(calculatedFreeGold, (newVal) => {
addRecharge.value.freeGold = newVal;
});
watch(calculatedRechargeGold, (newVal) => {
addRecharge.value.rechargeGold = newVal;
});
</script>
@ -206,6 +213,7 @@ watch(calculatedFreeGold, calculatedRechargeGold, (newVal) => {
:rules="rules"
label-width="auto"
style="max-width: 600px"
class="add-form"
>
<el-form-item prop="jwcode" label="精网号">
<el-input v-model="addRecharge.jwcode" style="width: 220px" />
@ -234,12 +242,7 @@ watch(calculatedFreeGold, calculatedRechargeGold, (newVal) => {
<el-input v-model="addRecharge.paidGold" style="width: 100px" />
<p style="margin-right: 20px"></p>
<p>免费金币</p>
<el-input
v-model="addRecharge.freeGold"
disabled
:value="addRecharge.paidGold * addRecharge.activityId"
style="width: 100px"
/>
<el-input v-model="addRecharge.freeGold" disabled style="width: 100px" />
<p></p>
</el-form-item>
<el-form-item label="充值金额">
@ -258,7 +261,7 @@ watch(calculatedFreeGold, calculatedRechargeGold, (newVal) => {
</el-select>
<el-input
disabled
:value="addRecharge.paidGold * addRecharge.rateId"
v-model="addRecharge.rechargeGold"
style="width: 200px"
/>
</el-form-item>
@ -320,17 +323,14 @@ watch(calculatedFreeGold, calculatedRechargeGold, (newVal) => {
placeholder="提交人姓名"
/>
</el-form-item>
<el-button @click="closeAddActivityVisible" style="margin-left: 280px"
>取消</el-button
>
<el-button type="primary" @click="addBefore"> 提交 </el-button>
</el-form>
<el-button @click="closeAddActivityVisible" style="margin-left: 280px"
>取消</el-button
>
<el-button type="primary" @click="addBefore"> 提交 </el-button>
<!-- 客户信息栏 -->
<el-card
style="width: 700px; float: right; margin-top: -470px; margin-right: 100px"
>
<el-card style="width: 700px; float: right" class="customer-info">
<el-form
:model="user"
label-width="auto"
@ -415,4 +415,12 @@ p {
height: 50px;
text-align: center;
}
.add-form {
margin-top: 50px;
max-width: 50%;
float: left;
}
.customer-info {
max-width: 50%;
}
</style>

150
vue/gold-system/src/views/refund/addRefund.vue

@ -9,6 +9,10 @@ import { ElMessageBox } from "element-plus";
//
const addRefund = ref({
adminId: "1",
updateType: "退款",
allCoin: 0,
contactId: "",
refundGoods: "",
});
//
const add = async function () {
@ -124,6 +128,53 @@ const refundType = [
label: "退款金币",
},
];
//
const goods = ref([]);
const getGoods = async function (jwcode) {
try {
// POST
const result = await axios.post(
"http://192.168.8.147:10030/consume/getDeatil/" + addRefund.value.jwcode
);
//
console.log("请求成功", result);
//
goods.value = result.data.data;
console.log("用户信息", goods.value);
} catch (error) {
console.log("请求失败", error);
ElMessage.error("查询失败,请检查精网号是否正确");
//
}
};
const calculatedRechargeGoods = computed(() => {
return (
+addRefund.value.freeCoin +
+addRefund.value.rechargeCoin +
+addRefund.value.taskCoin
);
});
watch(calculatedRechargeGoods, (newVal) => {
addRefund.value.allCoin = newVal;
});
watch(calculatedRechargeGoods, (newVal) => {
addRefund.value.allCoin = newVal;
console.log("计算的总金币", newVal);
});
//
const handleSelectionChange = (value) => {
const selectedItem = goods.value.find((item) => item.detailId === value);
if (selectedItem) {
addRefund.value.contactId = selectedItem.detailId;
addRefund.value.refundGoods = selectedItem.productName;
}
console.log("选择的商品", addRefund.value.refundGoods);
console.log("选择的商品ID", addRefund.value.contactId); // ID
};
</script>
<template>
@ -135,9 +186,14 @@ const refundType = [
:rules="rules"
label-width="auto"
style="max-width: 750px"
class="form-style"
>
<el-form-item prop="jwcode" label="精网号">
<el-input v-model="addRefund.jwcode" style="width: 220px" />
<el-input
v-model="addRefund.jwcode"
style="width: 220px"
@change="getGoods(addRefund.jwcode)"
/>
<el-button
type="primary"
@click="getUser(addRefund.jwcode)"
@ -159,54 +215,51 @@ const refundType = [
/>
</el-select>
</el-form-item>
<el-form-item prop="refundGoods" label="退款商品">
<el-form-item prop="contactId" label="退款商品">
<el-select
v-model="addRefund.refundGoods"
v-model="addRefund.contactId"
placeholder="请选择"
style="width: 300px"
@change="handleSelectionChange"
>
<el-option
v-for="item in activity"
v-for="item in goods"
:key="item.value"
:label="item.activityName"
:value="item.rechargeRatio"
:label="item.productName"
:value="item.detailId"
/>
</el-select>
</el-form-item>
<el-form-item prop="taskCoin" label="任务金币" style="float: left">
<el-input
v-model="addRefund.taskCoin"
style="width: 100px; margin-left: -5px"
/>
<p style="margin-right: 0px"></p>
</el-form-item>
<el-form-item
prop="freeCoin"
label="免费金币"
style="float: left; margin-left: -10px; margin-right: -10px"
>
<el-input
v-model="addRefund.freeCoin"
style="width: 100px; margin-left: -5px"
/>
<p style="margin-right: 0px"></p>
</el-form-item>
<el-form-item
prop="rechargeCoin"
label="充值金币"
style="margin-left: -20px"
>
<el-input
v-model="addRefund.rechargeCoin"
style="width: 100px; margin-left: -5px"
/>
<p style="margin-right: 20px"></p>
</el-form-item>
<div style="display: flex; align-items: center">
<el-form-item prop="taskCoin" label="任务金币" style="float: left">
<el-input v-model="addRefund.taskCoin" style="width: 100px" />
<p></p>
</el-form-item>
<el-form-item
prop="freeCoin"
label="免费金币"
style="margin-left: -20px; float: left"
>
<el-input
v-model="addRefund.freeCoin"
style="float: left; width: 100px"
/>
<p></p>
</el-form-item>
<el-form-item
prop="rechargeCoin"
label="充值金币"
style="margin-left: -20px"
>
<el-input
v-model="addRefund.rechargeCoin"
style="float: left; width: 100px"
/>
<p></p>
</el-form-item>
</div>
<el-form-item prop="allCoin" label="退款金币总数">
<el-input disabled v-model="addRefund.allCoin" style="width: 100px">
<template #default="scope">
{{ taskCoin + freeCoin + rechargeCoin }}
</template>
</el-input>
</el-form-item>
<el-form-item prop="remark" label="备注">
@ -227,17 +280,14 @@ const refundType = [
placeholder="提交人姓名"
/>
</el-form-item>
<el-button @click="closeAddActivityVisible" style="margin-left: 280px"
>取消</el-button
>
<el-button type="primary" @click="addBefore"> 提交 </el-button>
</el-form>
<el-button @click="closeAddActivityVisible" style="margin-left: 280px"
>取消</el-button
>
<el-button type="primary" @click="addBefore"> 提交 </el-button>
<!-- 客户信息栏 -->
<el-card
style="width: 700px; float: right; margin-top: -370px; margin-right: 100px"
>
<el-card style="width: 700px; float: right" class="form-style2">
<el-form
:model="user"
label-width="auto"
@ -322,4 +372,12 @@ p {
height: 50px;
text-align: center;
}
.form-style {
margin-top: 50px;
max-width: 50%;
float: left;
}
.form-style2 {
max-width: 50%;
}
</style>

91
vue/gold-system/src/views/refund/allRefund.vue

@ -8,12 +8,12 @@ import moment from "moment";
//
const tableData = ref([]);
// ======================================
// rechargeVo
const rechargeVo = ref({});
// detail
const detail = ref({});
//
const getObj = ref({
pageNum: 1,
pageSize: 5,
pageSize: 10,
});
//
const total = ref(100);
@ -43,7 +43,7 @@ const consumeType = [
//
const tableHeight = computed(function () {
return (getObj.value.pageSize + 2) * 60 + "px";
return (getObj.value.pageSize + 2) * 41 + "px";
});
//
@ -58,18 +58,18 @@ const get = async function (val) {
//
if (getTime.value != null) {
if (getTime.value.startDate != "" && getTime.value.endDate != "") {
rechargeVo.value.startDate = getTime.value[0];
rechargeVo.value.endDate = getTime.value[1];
detail.value.startDate = getTime.value[0];
detail.value.endDate = getTime.value[1];
}
} else {
rechargeVo.value.startDate = "";
rechargeVo.value.endDate = "";
detail.value.startDate = "";
detail.value.endDate = "";
}
console.log("搜索参数", getObj.value);
// POST
const result = await axios.post(
"http://192.168.8.93:10030/audit/audit/refund",
{ ...getObj.value, rechargeVo: { ...rechargeVo.value } }
"http://192.168.8.174:10040/refund/search",
{ ...getObj.value, detail: { ...detail.value } }
);
//
@ -87,11 +87,11 @@ const get = async function (val) {
};
//
const reset = function () {
rechargeVo.value.goods = "";
rechargeVo.value.consumeType = "";
rechargeVo.value.area = "";
rechargeVo.value.startDate = "";
rechargeVo.value.endDate = "";
detail.value.refundGoods = "";
detail.value.refundType = "";
detail.value.adminArea = "";
detail.value.startDate = "";
detail.value.endDate = "";
get();
};
//
@ -149,24 +149,24 @@ const get7Days = function () {
//
const adminAll = function () {
console.log("adminAll");
rechargeVo.value.status = "";
detail.value.auditStatus = "";
get();
};
//
const adminWait = function () {
rechargeVo.value.status = 0;
detail.value.auditStatus = 0;
get();
console.log("adminWait");
};
//
const adminPass = function () {
rechargeVo.value.status = 1;
detail.value.auditStatus = 1;
get();
console.log("adminPass");
};
//
const adminReject = function () {
rechargeVo.value.status = 2;
detail.value.auditStatus = 2;
get();
console.log("adminReject");
};
@ -240,8 +240,8 @@ const delConfirm = async function () {
console.log("delObj", delObj.value);
// POST
const result = await axios.post(
"http://192.168.8.174:10040/refund/softDelete",
delObj.value
"http://192.168.8.174:10040/refund/softDelete?detailId=" +
delObj.value.detailId
);
//
console.log("请求成功", result);
@ -252,6 +252,25 @@ const delConfirm = async function () {
//
}
};
//
const goods = ref([]);
const getGoods = async function () {
try {
// POST
const result = await axios.post("http://192.168.8.93:10020/product", {});
//
console.log("请求成功", result);
//
goods.value = result.data.data;
console.log("allData", allData.value);
console.log("地区", area.value);
} catch (error) {
console.log("请求失败", error);
//
}
};
getGoods();
</script>
<template>
@ -263,7 +282,7 @@ const delConfirm = async function () {
<div class="head-card-element">
<el-text class="mx-1" size="large">退款类型</el-text>
<el-select
v-model="rechargeVo.consumeType"
v-model="detail.refundType"
placeholder="请选择退款类型"
size="large"
style="width: 240px"
@ -281,16 +300,16 @@ const delConfirm = async function () {
<div class="head-card-element">
<el-text class="mx-1" size="large">退款商品</el-text>
<el-select
v-model="rechargeVo.payWay"
v-model="detail.refundGoods"
placeholder="请选择支付方式"
size="large"
style="width: 240px"
>
<el-option
v-for="item in payWay"
v-for="item in goods"
:key="item.value"
:label="item.label"
:value="item.value"
:label="item.name"
:value="item.name"
/>
</el-select>
</div>
@ -299,7 +318,7 @@ const delConfirm = async function () {
<div class="head-card-element">
<el-text class="mx-1" size="large">所属地区</el-text>
<el-select
v-model="rechargeVo.area"
v-model="detail.adminArea"
placeholder="请选择所属地区"
size="large"
style="width: 240px"
@ -317,7 +336,7 @@ const delConfirm = async function () {
<el-row>
<el-col :span="21">
<div class="head-card-element">
<el-text class="mx-1" size="large">充值时间</el-text>
<el-text class="mx-1" size="large">退款时间</el-text>
<el-date-picker
v-model="getTime"
type="datetimerange"
@ -359,13 +378,13 @@ const delConfirm = async function () {
<div>
<el-table
:data="tableData"
v-if="(tableData.detailFlag = 1)"
v-if="(tableData.detaillFlag = 1)"
:height="tableHeight"
style="width: 100%"
>
<el-table-column prop="user" label="姓名" width="80px" />
<el-table-column prop="userName" label="姓名" width="80px" />
<el-table-column prop="jwcode" label="精网号" width="180px" />
<el-table-column prop="area" label="所属地区" width="120px" />
<el-table-column prop="adminArea" label="所属地区" width="120px" />
<el-table-column prop="refundType" label="退款类型" width="180px" />
<el-table-column
prop="refundGoods"
@ -395,23 +414,23 @@ const delConfirm = async function () {
width="200px"
show-overflow-tooltip
/>
<el-table-column prop="name" label="提交人" width="100px" />
<el-table-column prop="status" label="审核状态" width="120px">
<el-table-column prop="adminName" label="提交人" width="100px" />
<el-table-column prop="auditStatus" label="审核状态" width="120px">
<!-- 模板内容 -->
<template #default="scope">
<span v-if="scope.row.status === 1">
<span v-if="scope.row.auditStatus === 1">
<div class="status">
<span class="green-dot"></span>
<span>已通过</span>
</div>
</span>
<span v-if="scope.row.status === 0">
<span v-if="scope.row.auditStatus === 0">
<div class="status">
<span class="grey-dot"></span>
<span>待审核</span>
</div>
</span>
<span v-if="scope.row.status === 2">
<span v-if="scope.row.auditStatus === 2">
<div class="status">
<span class="red-dot"></span>
<span>已驳回</span>

Loading…
Cancel
Save