diff --git a/index.html b/index.html
index b5a317e..9fe99cd 100644
--- a/index.html
+++ b/index.html
@@ -3,8 +3,8 @@
-
- 财务金币管理系统
+
+ 嫡盾管理系统
diff --git a/src/views/audit/rechargeAudit.vue b/src/views/audit/rechargeAudit.vue
index fc702b0..c9f8d37 100644
--- a/src/views/audit/rechargeAudit.vue
+++ b/src/views/audit/rechargeAudit.vue
@@ -61,7 +61,7 @@
总条数:{{ stats.totalNum }}条
- 退款总金币数:{{ (stats.permanentGolds + stats.freeGolds + stats.taskGolds).toFixed(2) }}金币
+ 总金币数:{{ (stats.permanentGolds + stats.freeGolds + stats.taskGolds).toFixed(2) }}金币
永久金币:{{ stats.permanentGolds.toFixed(2) }}金币
免费金币:{{ stats.freeGolds.toFixed(2) }}金币
@@ -153,7 +153,7 @@
-
+
diff --git a/src/views/audit/refundAudit.vue b/src/views/audit/refundAudit.vue
index 1deff6b..5cf4af4 100644
--- a/src/views/audit/refundAudit.vue
+++ b/src/views/audit/refundAudit.vue
@@ -136,7 +136,7 @@
-
+
diff --git a/src/views/consume/addCoinConsume.vue b/src/views/consume/addCoinConsume.vue
index c07cbf4..d03ccd2 100644
--- a/src/views/consume/addCoinConsume.vue
+++ b/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的数字");
- // 将sumGold设置为null
- addConsume.value.sumGold = null;
- return false;
- }
+
+ /* 这块逻辑加到规则里面
+ // 验证金币数值
+ if (user.value.jwcode && (isNaN(sumGold) || sumGold <= 0)) {
+ ElMessage.warning("消费金币总数必须是大于0的数字");
+ // 将sumGold设置为null
+ 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楼的 2025年6月27日10: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);
diff --git a/src/views/login.vue b/src/views/login.vue
index e0a944f..7e10e20 100644
--- a/src/views/login.vue
+++ b/src/views/login.vue
@@ -63,7 +63,7 @@ onMounted(() => {
- 金币系统登录
+ 嫡盾管理系统登录
diff --git a/src/views/refund/addCoinRefund.vue b/src/views/refund/addCoinRefund.vue
index c7e398c..586c8bc 100644
--- a/src/views/refund/addCoinRefund.vue
+++ b/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"
+
>
-
+
个
个
@@ -467,7 +493,7 @@ onMounted(async function () {
style="float: left; width: 100px"
:disabled="addRe.typeR === '0' ? true : false"
@input="handleTaskGoldInput($event)"
- type="number"
+
/>
个
diff --git a/src/views/usergold/clientCountDetail.vue b/src/views/usergold/clientCountDetail.vue
index 8be6c0a..163f6b7 100644
--- a/src/views/usergold/clientCountDetail.vue
+++ b/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 || ''*/
}
})