Browse Source

Merge branch 'milestone-20250623-金币前端' of http://39.101.133.168:8807/huangqizhen/gold-vue into milestone-20250623-金币前端

lihuilin/feature-20250623164044-金币前端
lihuilin 4 weeks ago
parent
commit
f51d766961
  1. 4
      index.html
  2. 4
      src/views/audit/rechargeAudit.vue
  3. 2
      src/views/audit/refundAudit.vue
  4. 39
      src/views/consume/addCoinConsume.vue
  5. 2
      src/views/login.vue
  6. 76
      src/views/refund/addCoinRefund.vue
  7. 7
      src/views/usergold/clientCountDetail.vue

4
index.html

@ -3,8 +3,8 @@
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>财务金币管理系统</title>
<meta name="嫡盾管理系统" content="v1.0" />
<title>嫡盾管理系统</title>
</head>
<body>
<div id="app"></div>

4
src/views/audit/rechargeAudit.vue

@ -61,7 +61,7 @@
<div>
总条数{{ stats.totalNum }}&nbsp;&nbsp;&nbsp;&nbsp;
退款总金币数{{ (stats.permanentGolds + stats.freeGolds + stats.taskGolds).toFixed(2) }}金币&nbsp;&nbsp;&nbsp;&nbsp;
总金币数{{ (stats.permanentGolds + stats.freeGolds + stats.taskGolds).toFixed(2) }}金币&nbsp;&nbsp;&nbsp;&nbsp;
永久金币{{ stats.permanentGolds.toFixed(2) }}金币&nbsp;&nbsp;&nbsp;&nbsp;
免费金币{{ stats.freeGolds.toFixed(2) }}金币&nbsp;&nbsp;&nbsp;&nbsp;
<!-- 任务金币{{ stats.taskGolds.toFixed(2) }}金币-->
@ -153,7 +153,7 @@
<el-dialog v-model="rejectDialogVisible" title="驳回理由" width="500px">
<el-form>
<el-form-item label="驳回理由">
<el-form-item label="驳回理由" required>
<el-input v-model="rejectReason" type="textarea" :rows="4" placeholder="请输入驳回理由" maxlength="200"
show-word-limit/>
</el-form-item>

2
src/views/audit/refundAudit.vue

@ -136,7 +136,7 @@
<el-dialog v-model="rejectDialogVisible" title="驳回理由" width="500px">
<el-form>
<el-form-item label="驳回理由">
<el-form-item label="驳回理由" required>
<el-input v-model="rejectReason" type="textarea" :rows="4" placeholder="请输入驳回理由" maxlength="200"
show-word-limit />
</el-form-item>

39
src/views/consume/addCoinConsume.vue

@ -69,8 +69,8 @@ const rules = reactive({
sumGold: [
{required: true, message: "消费金币总数不能为空", trigger: "blur"},
{
pattern: /^\d+(\.\d{1})?$/,
message: "只能输入最多一个小数点的数字",
pattern: /^\d+(\.\d+)?$/,
message: "存在负数或数字格式不正确,请输入正数",
trigger: "blur"
}
],
@ -107,15 +107,19 @@ function validateInput() {
if (user.value.jwcode == null) {
ElMessage.warning("请先查询用户信息");
addConsume.value.sumGold = null;
user.value = {};
return false;
}
//
if (user.value.jwcode && (isNaN(sumGold) || sumGold <= 0)) {
ElMessage.warning("消费金币总数必须是大于0的数字");
// sumGoldnull
addConsume.value.sumGold = null;
return false;
}
/*
//
if (user.value.jwcode && (isNaN(sumGold) || sumGold <= 0)) {
ElMessage.warning("消费金币总数必须是大于0的数字");
// sumGoldnull
addConsume.value.sumGold = null;
return false;
}
*/
//
@ -285,7 +289,7 @@ const getUser = async function (jwcode) {
// POST
const result = await request({
// url: "user/selectUser",
url: "/user/selectUser", // todo ip
url: "/user/selectUser",
data: {
//
jwcode: addConsume.value.jwcode,
@ -293,7 +297,7 @@ const getUser = async function (jwcode) {
});
console.log("请求成功", result);
if (result.code === 200) {
if (result.code === 200 && result.data !== null) {
user.value = result.data;
user.value.nowPermanentGold = result.data.nowPermanentGold / 100;
user.value.nowFreeGold = result.data.nowFreeGold / 100;
@ -306,11 +310,13 @@ const getUser = async function (jwcode) {
user.value.historyPermanentGold = (result.data.historyPermanentGold) / 100;
user.value.historyFreeGold = (result.data.historyFreeGold) / 100;
user.value.historyTaskGold = (result.data.historyTaskGold) / 100;
} else if (result.data == null){
ElMessage.warning("用户不存在");
//
resetForm();
}
if (result.code === 0) {
else if (result.code === 0 ) {
ElMessage.warning("请检查查询参数")
} else if (result.data === null) {
ElMessage.error("用户不存在");
} else {
console.log("用户信息", user.value);
ElMessage.success(result.msg);
@ -326,8 +332,9 @@ const getGoods = async function () {
try {
// POST
const result = await request({
// url: "/product", // todo 3 202562710:38:26
url: "http://39.101.133.168:8828/live_mall/api/product/all",
// url: "/product", //
// url: "http://39.101.133.168:8828/live_mall/api/product/all",
url: "https://api.homilychart.com/live_mall",
});
//
console.log("请求成功", result);

2
src/views/login.vue

@ -63,7 +63,7 @@ onMounted(() => {
<!-- 登录表单 -->
<el-form :model="form" size="large" autocomplete="off" >
<el-form-item>
<h1 style="color: #409eff">金币系统登录</h1>
<h1 style="color: #409eff">嫡盾管理系统登录</h1>
</el-form-item>
<el-form-item prop="account" required>
<el-input v-model="form.account" placeholder="请输入账号" @keyup.enter="login" required></el-input>

76
src/views/refund/addCoinRefund.vue

@ -322,35 +322,61 @@ const handleSelectionChange = (selectedOption) => {
}
console.log('选择的商品', selectedOption);
}
//
const validateGoldInput = (type, value) => {
//
const handleGoldInput = (type, value) => {
// 1.
let filtered = value.replace(/[^\d.]/g, '');
// 2.
const dotCount = (filtered.match(/\./g) || []).length;
if (dotCount > 1) {
//
const parts = filtered.split('.');
filtered = parts[0] + '.' + parts.slice(1).join('');
}
// 3.
if (filtered.includes('.')) {
const [integer, decimal] = filtered.split('.');
if (decimal.length > 2) {
filtered = `${integer}.${decimal.slice(0, 2)}`;
}
}
// 4. 0
if (filtered.startsWith('.')) {
filtered = '0' + filtered;
}
// 5.
addRefund.value[type] = filtered;
// 6.
const maxValue = selectedGoodsGold.value[type];
const inputValue = Number(value);
const inputValue = Number(filtered || 0);
if (isNaN(inputValue)) {
return 0;
return;
}
if (inputValue > maxValue) {
//
//
const correctedValue = maxValue.toFixed(2);
addRefund.value[type] = correctedValue;
ElMessage.warning('所填金额大于该类金币余额');
return maxValue;
}
return Math.min(inputValue, maxValue);
}
//
const handlePermanentGoldInput = (value) => {
addRefund.value.permanentGold = validateGoldInput('permanentGold', value);
}
//
const handleFreeGoldInput = (value) => {
addRefund.value.freeGold = validateGoldInput('freeGold', value);
if (inputValue < 0) {
// 0
addRefund.value[type] = '0';
ElMessage.warning('不能输入负数');
}
}
//
const handleTaskGoldInput = (value) => {
addRefund.value.taskGold = validateGoldInput('taskGold', value);
}
// 使
const handlePermanentGoldInput = (value) => handleGoldInput('permanentGold', value);
const handleFreeGoldInput = (value) => handleGoldInput('freeGold', value);
const handleTaskGoldInput = (value) => handleGoldInput('taskGold', value);
//
const calculatedRechargeGoods = computed(() => {
@ -442,9 +468,9 @@ onMounted(async function () {
style="width: 100px"
:disabled="addRe.typeR === '0' ? true : false"
@input="handlePermanentGoldInput($event)"
type="number"
>
</el-input>
</el-input>
<p></p>
</el-form-item>
<el-form-item
@ -457,7 +483,7 @@ onMounted(async function () {
style="float: left; width: 100px"
:disabled="addRe.typeR === '0' ? true : false"
@input="handleFreeGoldInput($event)"
type="number"
/>
<p></p>
</el-form-item>
@ -467,7 +493,7 @@ onMounted(async function () {
style="float: left; width: 100px"
:disabled="addRe.typeR === '0' ? true : false"
@input="handleTaskGoldInput($event)"
type="number"
/>
<p></p>
</el-form-item>

7
src/views/usergold/clientCountDetail.vue

@ -191,16 +191,17 @@ const get = async function (val) {
//6+12
const totalResult = await API({
const totalResult = await API({
url: '/goldDetail/getTotal',
method: 'post',
data: {
jwcode: goldDetail.value.jwcode || '',
goldDetail:{...goldDetail.value},
/* jwcode: goldDetail.value.jwcode || '',
payPlatform: goldDetail.value.payPlatform || '',
type: goldDetail.value.type || '',
market: goldDetail.value.market || '',
startTime: goldDetail.value.startTime || '',
endTime: goldDetail.value.endTime || ''
endTime: goldDetail.value.endTime || ''*/
}
})

Loading…
Cancel
Save