From 3ec25129d388bcf78abd695b451fc9221b3a780e Mon Sep 17 00:00:00 2001 From: zhangrenyuan <18990852002@163.com> Date: Wed, 5 Nov 2025 15:11:30 +0800 Subject: [PATCH 01/14] =?UTF-8?q?=E2=9C=A8=20feat:=20=E6=96=B0=E5=BB=BA?= =?UTF-8?q?=E4=BA=86=E9=A2=91=E9=81=93=E7=AE=A1=E7=90=86=E7=9A=84=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=A4=B9=E5=92=8C=E7=9B=B8=E5=85=B3=E7=9A=84=E8=B7=AF?= =?UTF-8?q?=E7=94=B1=E9=85=8D=E7=BD=AE=EF=BC=88=E4=B8=8B=E4=B8=80=E6=AD=A5?= =?UTF-8?q?=EF=BC=8C=E7=9B=AE=E5=BD=95=E6=98=BE=E7=A4=BA/=E5=86=85?= =?UTF-8?q?=E5=AE=B9=E7=BC=96=E5=86=99=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/router/index.js | 30 ++++++++++++++++++++++++++++++ src/views/channelManage/cart/cart.vue | 0 src/views/channelManage/fans/fans.vue | 0 src/views/channelManage/reward/reward.vue | 0 4 files changed, 30 insertions(+) create mode 100644 src/views/channelManage/cart/cart.vue create mode 100644 src/views/channelManage/fans/fans.vue create mode 100644 src/views/channelManage/reward/reward.vue diff --git a/src/router/index.js b/src/router/index.js index 4221c65..e663733 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -296,6 +296,7 @@ const routes = [ } ] }, + // 现金管理 { path: '/moneyManage', name: 'moneyManage', @@ -376,6 +377,35 @@ const routes = [ }, ] }, + // 频道管理 + { + path: '/channelManage', + name: 'channelManage', + meta: { permissionId: 124 }, + children: [ + // 打赏 + { + path: 'reward', + name: "reward", + component: () => import("../views/channelManage/reward/reward.vue"), + meta: { permissionId: 125 } + }, + // 铁粉 + { + path: 'fans', + name: "fans", + component: () => import("../views/channelManage/fans/fans.vue"), + meta: { permissionId: 126 } + }, + // 购物车 + { + path: 'cart', + name: "cart", + component: () => import("../views/channelManage/cart/cart.vue"), + meta: { permissionId: 127 } + } + ] + }, // 没有权限 { path: '/noPermission', diff --git a/src/views/channelManage/cart/cart.vue b/src/views/channelManage/cart/cart.vue new file mode 100644 index 0000000..e69de29 diff --git a/src/views/channelManage/fans/fans.vue b/src/views/channelManage/fans/fans.vue new file mode 100644 index 0000000..e69de29 diff --git a/src/views/channelManage/reward/reward.vue b/src/views/channelManage/reward/reward.vue new file mode 100644 index 0000000..e69de29 From fdca8550d223d97dab28a23cfcdf7f783c0e7485 Mon Sep 17 00:00:00 2001 From: ZhangYong Date: Wed, 5 Nov 2025 18:14:30 +0800 Subject: [PATCH 02/14] =?UTF-8?q?=E6=8B=86=E5=88=86=E6=A0=B7=E5=BC=8F?= =?UTF-8?q?=E7=BB=9F=E4=B8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../moneyManage/receiveDetail/receiveFinance.vue | 440 +++-- .../moneyManage/receiveDetail/receiveManage.vue | 1808 ++++++++++---------- .../moneyManage/receiveDetail/receiveService.vue | 5 +- .../receiveDetail/utils/recriveFormRules.js | 1 - 4 files changed, 1113 insertions(+), 1141 deletions(-) diff --git a/src/views/moneyManage/receiveDetail/receiveFinance.vue b/src/views/moneyManage/receiveDetail/receiveFinance.vue index 84e93d8..f9b9bd2 100644 --- a/src/views/moneyManage/receiveDetail/receiveFinance.vue +++ b/src/views/moneyManage/receiveDetail/receiveFinance.vue @@ -840,328 +840,292 @@ const handlePagination = (type, val) => { \ No newline at end of file diff --git a/src/views/moneyManage/receiveDetail/receiveManage.vue b/src/views/moneyManage/receiveDetail/receiveManage.vue index 33dc1a4..bebc793 100644 --- a/src/views/moneyManage/receiveDetail/receiveManage.vue +++ b/src/views/moneyManage/receiveDetail/receiveManage.vue @@ -1,285 +1,285 @@ \ No newline at end of file diff --git a/src/views/moneyManage/receiveDetail/receiveService.vue b/src/views/moneyManage/receiveDetail/receiveService.vue index 5b8b0f0..381c976 100644 --- a/src/views/moneyManage/receiveDetail/receiveService.vue +++ b/src/views/moneyManage/receiveDetail/receiveService.vue @@ -198,7 +198,10 @@ - + + + diff --git a/src/views/moneyManage/receiveDetail/utils/recriveFormRules.js b/src/views/moneyManage/receiveDetail/utils/recriveFormRules.js index 7cda280..12589fc 100644 --- a/src/views/moneyManage/receiveDetail/utils/recriveFormRules.js +++ b/src/views/moneyManage/receiveDetail/utils/recriveFormRules.js @@ -15,7 +15,6 @@ export const addFormRule = { // 活动名称:必填 + 长度小于30 activity: [ { required: true, message: '请输入活动名称', trigger: 'blur' }, - { max: 30, message: '活动名称长度不能超过30个字符', trigger: 'blur' } ], // 产品名称:必填 goodsName: [ From 45765f270f35035f5cba7000d900304293dc140f Mon Sep 17 00:00:00 2001 From: zhangrenyuan <18990852002@163.com> Date: Thu, 6 Nov 2025 09:25:25 +0800 Subject: [PATCH 03/14] =?UTF-8?q?=F0=9F=A6=84=20refactor:=20=E5=90=88?= =?UTF-8?q?=E5=B9=B6router?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/router/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/router/index.js b/src/router/index.js index 9e0f9f1..4c20539 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -412,6 +412,7 @@ const routes = [ } ] }, + // 活动管理 { path: 'activityManage', name: "activityManage", From 38dd73dc54cddc6976a6671926652aa225412213 Mon Sep 17 00:00:00 2001 From: ZhangYong Date: Thu, 6 Nov 2025 09:45:33 +0800 Subject: [PATCH 04/14] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=8B=E6=8B=89?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/MoneyManage/CurrencySelect.vue | 1 + src/views/moneyManage/receiveDetail/receiveService.vue | 7 +------ 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/src/components/MoneyManage/CurrencySelect.vue b/src/components/MoneyManage/CurrencySelect.vue index d10bbb4..f0a01ba 100644 --- a/src/components/MoneyManage/CurrencySelect.vue +++ b/src/components/MoneyManage/CurrencySelect.vue @@ -313,6 +313,7 @@ watch(() => props.modelValue, (newVal) => { border: none; border-radius: 10px; background-color: #fff; + box-shadow:0 0 0 1px rgba(200, 200, 200, 0.3) ; font-size: 12px; font-style: normal; font-weight: 700; diff --git a/src/views/moneyManage/receiveDetail/receiveService.vue b/src/views/moneyManage/receiveDetail/receiveService.vue index 381c976..c71cf4d 100644 --- a/src/views/moneyManage/receiveDetail/receiveService.vue +++ b/src/views/moneyManage/receiveDetail/receiveService.vue @@ -20,7 +20,6 @@ -
订单状态 @@ -55,7 +54,6 @@ @change="handleDatePickerChange" :default-time="defaultTime" :disabled-date="disabledDate" />
-
查询 重置 @@ -124,7 +122,6 @@ - - @@ -520,6 +520,8 @@ const resetSearch = function () { sortOrder: '', auditStatus: auditStatus } + // 重置页码 + pagination.value.pageNum = 1 dateRange.value = [] activeTimeRange.value = '' // 清除激活状态 selectedMarketPath.value = [] diff --git a/src/views/consume/bean/articleVideo.vue b/src/views/consume/bean/articleVideo.vue index d2fec45..2cf820b 100644 --- a/src/views/consume/bean/articleVideo.vue +++ b/src/views/consume/bean/articleVideo.vue @@ -276,6 +276,10 @@ const reset = function () { getTime.value = {} activeTimeRange.value = '' // 清除激活状态 + // 重置页码 + getObj.value.pageNum = 1 + + console.log('重置页码=======', getObj.value.pageNum) // 点完重置后,重新请求数据 ConsumeSelectBy() @@ -569,7 +573,7 @@ const getTagText = (state) => { diff --git a/src/views/consume/bean/dieHardFan.vue b/src/views/consume/bean/dieHardFan.vue index 1aaefad..21e08e8 100644 --- a/src/views/consume/bean/dieHardFan.vue +++ b/src/views/consume/bean/dieHardFan.vue @@ -262,6 +262,8 @@ const reset = function () { getTime.value = {} activeTimeRange.value = '' // 清除激活状态 + // 重置页码 + getObj.value.pageNum = 1 // 点完重置后,重新请求数据 ConsumeSelectBy() @@ -545,7 +547,7 @@ const getTagText = (state) => { diff --git a/src/views/consume/bean/liveStream.vue b/src/views/consume/bean/liveStream.vue index 0e46f17..d604525 100644 --- a/src/views/consume/bean/liveStream.vue +++ b/src/views/consume/bean/liveStream.vue @@ -296,6 +296,8 @@ const reset = function () { getTime.value = {} activeTimeRange.value = '' // 清除激活状态 + // 重置页码 + getObj.value.pageNum = 1 // 点完重置后,重新请求数据 selectLiveBy() @@ -590,7 +592,7 @@ const getTagText = (state) => {
- diff --git a/src/views/consume/gold/coinConsumeDetail.vue b/src/views/consume/gold/coinConsumeDetail.vue index 7d3aa98..4ca5ffc 100644 --- a/src/views/consume/gold/coinConsumeDetail.vue +++ b/src/views/consume/gold/coinConsumeDetail.vue @@ -334,6 +334,8 @@ const reset = function () { activeTimeRange.value = '' // 清除激活状态 selectedMarketPath.value = [] + // 重置页码 + getObj.value.pageNum = 1 // 点完重置后,重新请求数据 ConsumeSelectBy() @@ -708,7 +710,7 @@ const getMarket = async function () { diff --git a/src/views/history/newHistory.vue b/src/views/history/newHistory.vue index a0626fa..083e545 100644 --- a/src/views/history/newHistory.vue +++ b/src/views/history/newHistory.vue @@ -34,8 +34,8 @@ - @@ -108,6 +108,8 @@ const resetSearch = function () { name: '', jwcode: '' } + // 重置页码 + pagination.value.pageNum = 1 dateRange.value = [] } const handlePageSizeChange = function (val) { diff --git a/src/views/history/oldHistory.vue b/src/views/history/oldHistory.vue index ed34232..981f17a 100644 --- a/src/views/history/oldHistory.vue +++ b/src/views/history/oldHistory.vue @@ -31,8 +31,8 @@ - @@ -106,6 +106,8 @@ const resetSearch = function () { name: '', jwcode: '' } + // 重置页码 + pagination.value.pageNum = 1 dateRange.value = [] } const handlePageSizeChange = function (val) { diff --git a/src/views/moneyManage/executor/executor.vue b/src/views/moneyManage/executor/executor.vue index e95f1f0..ac6defa 100644 --- a/src/views/moneyManage/executor/executor.vue +++ b/src/views/moneyManage/executor/executor.vue @@ -1,253 +1,254 @@ \ No newline at end of file diff --git a/src/views/moneyManage/refundDetail/refundCharge.vue b/src/views/moneyManage/refundDetail/refundCharge.vue index 34989d2..87be811 100644 --- a/src/views/moneyManage/refundDetail/refundCharge.vue +++ b/src/views/moneyManage/refundDetail/refundCharge.vue @@ -95,7 +95,7 @@ - @@ -714,6 +714,8 @@ const reset = function () { markets: [], statuses: [] } + // 重置页码 + pagination.value.pageNum = 1 dateRange.value = [] getRefund() } diff --git a/src/views/moneyManage/refundDetail/refundFinance.vue b/src/views/moneyManage/refundDetail/refundFinance.vue index 24e46b4..9dc55ef 100644 --- a/src/views/moneyManage/refundDetail/refundFinance.vue +++ b/src/views/moneyManage/refundDetail/refundFinance.vue @@ -777,6 +777,8 @@ const reset = function () { markets: [], statuses: [] } + // 重置页码 + pagination.value.pageNum = 1 dateRange.value = [] getRefund() } diff --git a/src/views/moneyManage/refundDetail/refundHeader.vue b/src/views/moneyManage/refundDetail/refundHeader.vue index 37140ed..7a48350 100644 --- a/src/views/moneyManage/refundDetail/refundHeader.vue +++ b/src/views/moneyManage/refundDetail/refundHeader.vue @@ -610,6 +610,9 @@ const reset = function () { markets: [], statuses: [] } + // 重置页码 + pagination.value.pageNum = 1 + dateRange.value = [] getRefund() } diff --git a/src/views/moneyManage/refundDetail/refundService.vue b/src/views/moneyManage/refundDetail/refundService.vue index 9c2ca93..d5375b9 100644 --- a/src/views/moneyManage/refundDetail/refundService.vue +++ b/src/views/moneyManage/refundDetail/refundService.vue @@ -627,6 +627,8 @@ const reset = function () { market: [], statuses: [] } + // 重置页码 + pagination.value.pageNum = 1 dateRange.value = [] getRefund() } diff --git a/src/views/permissions/rolePermission.vue b/src/views/permissions/rolePermission.vue index 8ba8384..d8f34d0 100644 --- a/src/views/permissions/rolePermission.vue +++ b/src/views/permissions/rolePermission.vue @@ -96,6 +96,8 @@ const searchRole = function () { const reset = function () { admin.value = {} role.value.name = '' + // 重置页码 + getRoleObj.value.pageNum = 1 getRoleList() } const RoleArea = ref([]) @@ -634,7 +636,7 @@ onMounted(async function () {
-
diff --git a/src/views/permissions/userPermission.vue b/src/views/permissions/userPermission.vue index d087f1f..3a9455c 100644 --- a/src/views/permissions/userPermission.vue +++ b/src/views/permissions/userPermission.vue @@ -185,7 +185,8 @@ const search = function () { // 重置 const reset = function () { admin.value = {} - + // 重置页码 + getObj.value.pageNum = 1 getPermission() } const RoleArea = ref([]) @@ -1003,7 +1004,7 @@ onMounted(async function () {
diff --git a/src/views/recharge/bean/beanOnlineRecharge.vue b/src/views/recharge/bean/beanOnlineRecharge.vue index ac9c786..53ae57d 100644 --- a/src/views/recharge/bean/beanOnlineRecharge.vue +++ b/src/views/recharge/bean/beanOnlineRecharge.vue @@ -141,6 +141,8 @@ const reset = () => { startTime: '', endTime: '', } + // 重置页码 + getObj.value.pageNum = 1 getTime.value = [] activeTimeRange.value = '' search() @@ -441,7 +443,7 @@ onMounted(async function () { diff --git a/src/views/recharge/bean/beanSystemRecharge.vue b/src/views/recharge/bean/beanSystemRecharge.vue index 1d985a8..1068ec6 100644 --- a/src/views/recharge/bean/beanSystemRecharge.vue +++ b/src/views/recharge/bean/beanSystemRecharge.vue @@ -139,6 +139,8 @@ const reset = () => { startTime: '', endTime: '', } + // 重置页码 + getObj.value.pageNum = 1 getTime.value = [] activeTimeRange.value = '' search() @@ -410,7 +412,7 @@ onMounted(async function () { diff --git a/src/views/recharge/gold/coinRechargeDetail.vue b/src/views/recharge/gold/coinRechargeDetail.vue index 3ba566b..e9ca93a 100644 --- a/src/views/recharge/gold/coinRechargeDetail.vue +++ b/src/views/recharge/gold/coinRechargeDetail.vue @@ -413,6 +413,8 @@ const reset = function () { delete sortOrder.value getTime.value = {} activeTimeRange.value = '' // 清除激活状态 + // 重置页码 + getObj.value.pageNum = 1 get() } @@ -700,7 +702,7 @@ const getTagText = (state) => {
-
diff --git a/src/views/refund/gold/coinRefundDetail.vue b/src/views/refund/gold/coinRefundDetail.vue index c8358e0..f20e46d 100644 --- a/src/views/refund/gold/coinRefundDetail.vue +++ b/src/views/refund/gold/coinRefundDetail.vue @@ -231,6 +231,8 @@ const reset = function () { getTime.value = {} activeTimeRange.value = '' // 清除激活状态 selectedMarketPath.value = [] + // 重置页码 + getObj.value.pageNum = 1 getSelectBy() } // 今天 @@ -614,7 +616,7 @@ const getMarket = async function () { diff --git a/src/views/usergold/bean/userbean.vue b/src/views/usergold/bean/userbean.vue index d33c9c9..bc120f4 100644 --- a/src/views/usergold/bean/userbean.vue +++ b/src/views/usergold/bean/userbean.vue @@ -169,6 +169,8 @@ const trim = () => { const reset = function () { searchObj.value.jwcode = '' searchObj.value.dept = '' + // 重置页码 + pagination.value.pageNum = 1 search() } const handlePageSizeChange = function (val) { diff --git a/src/views/usergold/gold/clientCountBalance.vue b/src/views/usergold/gold/clientCountBalance.vue index 53c84f0..93e483d 100644 --- a/src/views/usergold/gold/clientCountBalance.vue +++ b/src/views/usergold/gold/clientCountBalance.vue @@ -203,8 +203,10 @@ const reset = function () { } sortField.value = '' sortOrder.value = '' - get() selectedMarketPath.value = [] + // 重置页码 + getObj.value.pageNum = 1 + get() } const cellClick = function (row, column) { console.log('cellClick', column.label) @@ -513,7 +515,7 @@ const format3 = (num) => { diff --git a/src/views/usergold/gold/clientCountDetail.vue b/src/views/usergold/gold/clientCountDetail.vue index 9e0e670..6c8be1f 100644 --- a/src/views/usergold/gold/clientCountDetail.vue +++ b/src/views/usergold/gold/clientCountDetail.vue @@ -233,6 +233,8 @@ const reset = function () { getTime.value = [] activeTimeRange.value = '' // 清除激活状态 + //重置页码 + getObj.value.pageNum = 1 search() } @@ -599,7 +601,7 @@ const format3 = (num) => { From 61af3c61d25f886f6f52e24f726659ab2d6f38b7 Mon Sep 17 00:00:00 2001 From: lihui Date: Thu, 6 Nov 2025 14:00:58 +0800 Subject: [PATCH 07/14] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=E5=89=A9=E4=BD=99?= =?UTF-8?q?=E7=9A=84=E9=87=8D=E7=BD=AE=E9=A1=B5=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../moneyManage/receiveDetail/receiveDetail1.vue | 4 +- .../moneyManage/receiveDetail/receiveFinance.vue | 4 +- .../moneyManage/receiveDetail/receiveHead.vue | 3 +- .../moneyManage/receiveDetail/receiveManage.vue | 1801 ++++++++++---------- .../moneyManage/receiveDetail/receiveService.vue | 4 +- 5 files changed, 914 insertions(+), 902 deletions(-) diff --git a/src/views/moneyManage/receiveDetail/receiveDetail1.vue b/src/views/moneyManage/receiveDetail/receiveDetail1.vue index f24f2ac..9cf9d02 100644 --- a/src/views/moneyManage/receiveDetail/receiveDetail1.vue +++ b/src/views/moneyManage/receiveDetail/receiveDetail1.vue @@ -251,7 +251,7 @@ + +
+
+ +
+
+ {{ textContent }} +
+
+ +
+
+ +
+
@@ -406,6 +425,110 @@ + + + +
+
+
+ 精网号 + +
+
+ 客户姓名 + +
+
+ 所属地区 + +
+
+ 活动名称 + +
+
+ 产品名称 + +
+
+ 产品数量 + + {{ productUnit }} +
+
+
+ 永久金币: + +
+
+ 免费金币: + +
+
+
+ 付款币种 + +
+
+ 付款金额 + +
+
+ 支付方式 + +
+
+ 付款时间 + +
+
+ 转账凭证 + + + + + +
+
+ 备注 + +
+
+
+
+ 退款模式 + + 全部退款 + 部分退款 + +
+
+ 退款理由 + +
+
ps:请在退款理由表明用户的退款需求。
+
+ 重置 + 提交 +
+
+
+
@@ -419,6 +542,7 @@ import request from '@/util/http.js'; import moment from 'moment'; import _ from 'lodash'; import { Plus } from '@element-plus/icons-vue'; +import { startsWith } from './utils/util.js' // 地区财务专属组件 import CurrencySelect from '@/components/MoneyManage/CurrencySelect.vue'; @@ -474,7 +598,26 @@ const tooltipContent = ref(''); const tooltipLeft = ref(0); const tooltipTop = ref(0); -// 基础数据(地区财务专用) +// 退款确认弹窗 +const refundConfirmDialog = ref(false) +const textContent = ref('') + + +//退款弹窗 +const refundDialog = ref(false) + +const openRefundDialog = () => { + refundDialog.value = true + closeConfirmRefund() +} +const closeRefundForm = () => { + refundDialog.value = false + refundFormData.value = {} +} + + + +// 基础数据 const adminData = ref({}); const activityList = ref([]); const customOptions = ref(['美元(USD)', '港币(HKD)', '新币(SGD)', '马币(MYR)', '泰铢(THB)', '加币(CAD)', '越南盾(VDN)', '韩元(KRW)']); @@ -482,6 +625,19 @@ const paytypeList = ["Stripe-链接收款", "PaymentAsia-链接收款", "Ipay88- const paytypeOptions = ref([...paytypeList]); // ===================== 2. 核心功能函数(仅地区财务) ===================== + +//确认退款弹窗 +const openRefundConfirm = () => { + textContent.value = '将要对该订单退款!' + refundConfirmDialog.value = true +} + +const closeConfirmRefund = () => { + refundConfirmDialog.value = false + textContent.value = '' +} + + // 2.1 数据加载:获取地区财务订单列表 const getlist = async () => { try { @@ -544,6 +700,54 @@ const getlist = async () => { } }; +//提交退款 +const submitRefund = async () => { + try { + const result = await request({ + url: '/Money/add', + data: { + jwcode: refundFormData.value.jwcode, // 精网号(必填) + name: refundFormData.value.name, // 姓名(必填) + market: refundFormData.value.marketName, // 所属地区(必填) + activity: refundFormData.value.activity, // 活动名称(可选) + bankCode: refundFormData.value.bankCode, // 银行流水订单号(必填) + goodsName: refundFormData.value.goodsName, // 商品名称(必填) + goodNum: refundFormData.value.goodNum, // 商品数量(必填,默认0) + paymentCurrency: refundFormData.value.paymentCurrency, // 付款币种(必填) + paymentAmount: (refundFormData.value.paymentAmount) * 100, // 付款金额(必填) + receivedCurrency: refundFormData.value.receivedCurrency, // 到账币种(必填) + receivedAmount: (refundFormData.value.receivedAmount) * 100, // 到账金额(必填) + handlingCharge: (refundFormData.value.handlingCharge) * 100, // 手续费(可选) + receivedMarket: refundFormData.value.receivedMarket, // 到账地区(可选) + payType: refundFormData.value.payType, // 支付方式(必填) + payTime: refundFormData.value.payTime, // 付款时间,格式:yyyy-MM-dd HH:mm:ss(可选) + receivedTime: refundFormData.value.receivedTime, // 到账时间,格式:yyyy-MM-dd HH:mm:ss(可选) + areaServise: adminData.value.adminName, // 提交人(可选) + submitterId: adminData.value.id, + voucher: refundFormData.value.voucher, // 转账凭证URL(可选) + remark: refundFormData.value.remark, // 备注信息(可选) + refundReason: refundFormData.value.refundReason, // 退款备注-客服填写(可选) + refundModel: refundFormData.value.refundModel, // 退款方式:0-全额,1-部分(可选) + id: refundFormData.value.id, //订单id + orderCode: refundFormData.value.orderCode, + permanentGold: (refundFormData.value.permanentGold) * 100 || 0, + freeGold: (refundFormData.value.freeGold) * 100 || 0 + } + }) + if (result.code == 200) { + ElMessage.success('新增退款成功') + getlist() + closeRefundForm() + } else { + ElMessage.error(result.msg) + getlist() + } + console.log('返回参数:', result); + } catch (error) { + console.log(error); + } +} + // 2.2 搜索与重置 const search = () => { getlist(); @@ -1128,4 +1332,80 @@ const handlePagination = (type, val) => { overflow-y: auto; white-space: pre-wrap; } + +.recallDialog { + //撤回弹窗提示 + height: 392px; + width: 700px; + background-image: url('/src/assets/收款明细撤回背景.png'); + position: fixed; // 固定定位,相对于浏览器窗口 + top: 50%; // 距离顶部50% + left: 50%; // 距离左侧50% + transform: translate(-50%, -50%); // 向左、向上平移自身宽高的50%,实现居中 + z-index: 1000; // 确保在其他元素上层显示 + + .close { + position: absolute; + left: 625px; + top: 20px; + height: 38px; + width: 38px; + opacity: 0; + + .Btn { + height: 100%; + width: 100%; + border-radius: 10px; + } + } + + .text { + position: absolute; + left: 185px; + top: 190px; + height: 67px; + width: 500px; + + .txt { + height: 100%; + width: 100%; + color: #001a42; + font-family: "PingFang SC"; + font-size: 48px; + font-style: normal; + font-weight: 900; + line-height: normal; + } + } + + .cancle { + position: absolute; + left: 185px; + top: 304px; + height: 55px; + width: 150px; + opacity: 0; + + .Btn { + height: 100%; + width: 100%; + border-radius: 20px; + } + } + + .confirm { + position: absolute; + left: 375px; + top: 304px; + height: 55px; + width: 150px; + opacity: 0; + + .Btn { + height: 100%; + width: 100%; + border-radius: 20px; + } + } +} \ No newline at end of file diff --git a/src/views/moneyManage/receiveDetail/utils/util.js b/src/views/moneyManage/receiveDetail/utils/util.js new file mode 100644 index 0000000..0419a75 --- /dev/null +++ b/src/views/moneyManage/receiveDetail/utils/util.js @@ -0,0 +1,13 @@ +//判断是否为线上订单 +export const startsWith = (mainStr, prefix) => { + // 处理前缀为空字符串的情况(空字符串是所有字符串的前缀) + if (prefix === '') { + return true; + } + // 处理主字符串长度小于前缀长度的情况 + if (mainStr.length < prefix.length) { + return false; + } + // 比较主字符串开头与前缀相同长度的部分 + return mainStr.substring(0, prefix.length) === prefix; +} \ No newline at end of file From ceec65330fac4a962150e8b2c839d13e38ca9959 Mon Sep 17 00:00:00 2001 From: ZhangYong Date: Thu, 6 Nov 2025 15:14:24 +0800 Subject: [PATCH 10/14] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=A2=9E=E9=80=80?= =?UTF-8?q?=E6=AC=BE=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../moneyManage/receiveDetail/receiveFinance.vue | 78 +++++++++++++++++----- 1 file changed, 63 insertions(+), 15 deletions(-) diff --git a/src/views/moneyManage/receiveDetail/receiveFinance.vue b/src/views/moneyManage/receiveDetail/receiveFinance.vue index 26c2ea7..68da10d 100644 --- a/src/views/moneyManage/receiveDetail/receiveFinance.vue +++ b/src/views/moneyManage/receiveDetail/receiveFinance.vue @@ -190,8 +190,7 @@
- + @@ -457,17 +456,16 @@ placeholder="请输入产品数量" disabled /> {{ productUnit }} -
-
- 永久金币: - +
+ 永久金币: +
-
+
免费金币: - 免费金币: +
@@ -605,16 +603,28 @@ const textContent = ref('') //退款弹窗 const refundDialog = ref(false) +const refundFormData = ref({}) const openRefundDialog = () => { refundDialog.value = true closeConfirmRefund() + } const closeRefundForm = () => { refundDialog.value = false refundFormData.value = {} } +const isRefundGold = ref(false) +const ifRefundGold = () => { + if (refundFormData.value.goodsName === '金币充值') { + isRefundGold.value = true + refundFormData.value.goodNum = 0 + } else { + isRefundGold.value = false + } +} + // 基础数据 @@ -627,9 +637,13 @@ const paytypeOptions = ref([...paytypeList]); // ===================== 2. 核心功能函数(仅地区财务) ===================== //确认退款弹窗 -const openRefundConfirm = () => { +const openRefundConfirm = (row) => { textContent.value = '将要对该订单退款!' refundConfirmDialog.value = true + refundFormData.value = { ...row } + ifRefundGold() + console.log(row); + } const closeConfirmRefund = () => { @@ -1027,6 +1041,9 @@ onMounted(async () => { window.history.back(); }); } + //背景预加载 + const bgImg = new Image(); + bgImg.src = '/src/assets/收款明细撤回背景.png'; }); // 2.10 未使用函数占位(避免报错) @@ -1306,6 +1323,37 @@ const handlePagination = (type, val) => { font-weight: 800; padding-bottom: 15px; } + + .refundDialog { + .left { + width: 50%; + height: 70vh; + min-height: 700px; + padding: 0 2vw; + + .add-item { + display: flex; + align-items: center; + margin-bottom: 1vh; + } + + .image { + width: 4vw !important; + height: 4vw !important; + } + } + + .right { + width: 50%; + height: 50vh; + + .add-item { + display: flex; + align-items: center; + margin-bottom: 1vh; + } + } + } } // 表格样式统一 From 436698f47d790831749280432a6cbc751d5b036d Mon Sep 17 00:00:00 2001 From: zhangrenyuan <18990852002@163.com> Date: Thu, 6 Nov 2025 15:47:00 +0800 Subject: [PATCH 11/14] =?UTF-8?q?=E2=9C=A8=20feat:=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E9=A2=91=E9=81=93=E7=AE=A1=E7=90=86=EF=BC=8C=E5=8C=85=E6=8B=AC?= =?UTF-8?q?=E6=89=93=E8=B5=8F=E3=80=81=E9=93=81=E7=B2=89=E3=80=81=E5=B0=8F?= =?UTF-8?q?=E9=BB=84=E8=BD=A6=EF=BC=8C=E5=90=8E=E7=BB=AD=E9=9C=80=E8=A6=81?= =?UTF-8?q?=E5=AE=8C=E5=96=84=E5=B0=8F=E9=BB=84=E8=BD=A6=E7=9A=84=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.development | 4 +- src/router/index.js | 2 +- src/utils/menuTreePermission.js | 2 +- src/utils/menuUtils.js | 7 +- src/views/channelManage/cart/cart.vue | 676 +++++++++++++++++++++++++++++ src/views/channelManage/fans/fans.vue | 657 ++++++++++++++++++++++++++++ src/views/channelManage/reward/reward.vue | 700 ++++++++++++++++++++++++++++++ 7 files changed, 2043 insertions(+), 5 deletions(-) diff --git a/.env.development b/.env.development index 2ccc7eb..8fa72ce 100644 --- a/.env.development +++ b/.env.development @@ -1,4 +1,4 @@ -# VITE_API_BASE='https://hwjb.homilychart.com/dev/admin' +VITE_API_BASE='https://hwjb.homilychart.com/dev/admin' # 测试环境 # VITE_API_BASE='http://54.255.212.181:10704/' # 正式环境 @@ -13,7 +13,7 @@ VITE_UPLOAD_URL=http://39.101.133.168:8828/hljw/api/aws/upload # 本地 # VITE_API_BASE='http://localhost:8081/' # 孙加倍 -VITE_API_BASE='http://192.168.40.12:8081' +# VITE_API_BASE='http://192.168.40.12:8081' # Lijianlin # VITE_API_BASE='http://192.168.9.41:8081/' diff --git a/src/router/index.js b/src/router/index.js index 4c20539..28dc0b8 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -385,7 +385,7 @@ const routes = [ }, // 频道管理 { - path: '/channelManage', + path: 'channelManage', name: 'channelManage', meta: { permissionId: 124 }, children: [ diff --git a/src/utils/menuTreePermission.js b/src/utils/menuTreePermission.js index 99dc1b9..a502085 100644 --- a/src/utils/menuTreePermission.js +++ b/src/utils/menuTreePermission.js @@ -187,7 +187,7 @@ export const findMenuById = (menuList, targetId) => { // 递归判断某个 menuId 是否存在 export const hasMenuPermission = (tree, targetId) => { for (const node of tree) { - console.log(node.id) + // console.log(node.id) if (node.id === targetId) return true; if (node.children && hasMenuPermission(node.children, targetId)) return true; } diff --git a/src/utils/menuUtils.js b/src/utils/menuUtils.js index aec0e4e..b8ba460 100644 --- a/src/utils/menuUtils.js +++ b/src/utils/menuUtils.js @@ -91,8 +91,13 @@ export const getRoutePath = (menu) => { '退款-总部财务':'/moneyManage/refundDetail/refundHeader', '执行明细': '/moneyManage/executor', - }; + '频道管理': '/channelManage', + '打赏管理': '/channelManage/reward', + '铁粉管理': '/channelManage/fans', + '小黄车管理': '/channelManage/cart', + }; + // console.log('1111',menu.menuName) // 未匹配的菜单默认使用id作为路由(可根据实际需求调整) return routeMap[menu.menuName] || '/noPermission' diff --git a/src/views/channelManage/cart/cart.vue b/src/views/channelManage/cart/cart.vue index e69de29..9695aed 100644 --- a/src/views/channelManage/cart/cart.vue +++ b/src/views/channelManage/cart/cart.vue @@ -0,0 +1,676 @@ + + + + + \ No newline at end of file diff --git a/src/views/channelManage/fans/fans.vue b/src/views/channelManage/fans/fans.vue index e69de29..b2c8733 100644 --- a/src/views/channelManage/fans/fans.vue +++ b/src/views/channelManage/fans/fans.vue @@ -0,0 +1,657 @@ + + + + + diff --git a/src/views/channelManage/reward/reward.vue b/src/views/channelManage/reward/reward.vue index e69de29..aff62ee 100644 --- a/src/views/channelManage/reward/reward.vue +++ b/src/views/channelManage/reward/reward.vue @@ -0,0 +1,700 @@ + + + + + From 459190a2186c017f7e95f5d733bda4a0362a54a1 Mon Sep 17 00:00:00 2001 From: ZhangYong Date: Thu, 6 Nov 2025 15:48:38 +0800 Subject: [PATCH 12/14] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=A2=91=E9=81=93?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/permissions/rolePermission.vue | 36 ++++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/src/views/permissions/rolePermission.vue b/src/views/permissions/rolePermission.vue index d8f34d0..e4a07b9 100644 --- a/src/views/permissions/rolePermission.vue +++ b/src/views/permissions/rolePermission.vue @@ -9,6 +9,7 @@ import { storeToRefs } from "pinia" const adminStore = useAdminStore(); const { adminData, menuTree } = storeToRefs(adminStore); import { permissionMapping, findMenuById } from "@/utils/menuTreePermission.js" +import { tr } from 'element-plus/es/locales.mjs' // 表单验证ref const Ref = ref(null) @@ -35,7 +36,7 @@ const addRole = ref({ market: '' }) const addRoleMarket = ref([]) - +const channelList = ref(['美股', '港股', 'hc第一频道']) const getRoleList = async function (val) { if (!findMenuById(menuTree.value, permissionMapping.view_role_information)) { ElMessage.error('无此权限') @@ -317,6 +318,7 @@ const handleEditRolePermissionCheck = (checkedNodes, checkedInfo) => { // 判断是否有选中的节点 if (allCheckedNodes.length === 0) { permissionEditRoleObj.value.checkedKeys = [] + ifHasChannel.value = false return } @@ -326,13 +328,22 @@ const handleEditRolePermissionCheck = (checkedNodes, checkedInfo) => { console.log('编辑角色选中的权限ID:', checkedKeys) console.log('选中的节点数量:', allCheckedNodes.length) + if (checkedKeys.includes(124)||checkedKeys.includes(125)||checkedKeys.includes(126)||checkedKeys.includes(127)) { + ifHasChannel.value = true + } else { + ifHasChannel.value = false + } }; + +//用于标记是否勾选频道管理 +const ifHasChannel = ref(false) const handleCheckChange = async (checkedNodes, checkedInfo) => { const { checkedKeys, checkedNodes: allCheckedNodes } = checkedInfo // 判断是否有选中的节点 if (allCheckedNodes.length === 0) { addRole.value.checkedKeys = [] + ifHasChannel.value = false return } @@ -348,6 +359,12 @@ const handleCheckChange = async (checkedNodes, checkedInfo) => { // 将Set转换为数组并更新 addRole.value.checkedKeys = Array.from(allKeys) console.log('新增角色包含所有父级的选中项:', addRole.value.checkedKeys) + if (addRole.value.checkedKeys.includes(124)) { + ifHasChannel.value = true + console.log('勾选了频道'); + } else { + ifHasChannel.value = false + } } const selectParentNodes = (treeData, nodeId, checkedKeys) => { if (!Array.isArray(treeData)) return false @@ -636,9 +653,9 @@ onMounted(async function () {
- +
@@ -686,6 +703,11 @@ onMounted(async function () { 暂无数据
+ + + + +
@@ -729,6 +751,12 @@ onMounted(async function () { 暂无数据
+ + + + + +
From 1ee80b68c98761f2b278684542b6926b93331be1 Mon Sep 17 00:00:00 2001 From: ZhangYong Date: Thu, 6 Nov 2025 16:07:02 +0800 Subject: [PATCH 13/14] =?UTF-8?q?=E6=9D=83=E9=99=90=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E9=A2=91=E9=81=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/permissions/rolePermission.vue | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/views/permissions/rolePermission.vue b/src/views/permissions/rolePermission.vue index e4a07b9..d38cdcc 100644 --- a/src/views/permissions/rolePermission.vue +++ b/src/views/permissions/rolePermission.vue @@ -197,7 +197,8 @@ const handleAddRole = async function () { "roleName": addRole.value.roleName, "menuIds": finalCheckedKeys, "fatherId": addRole.value.parentId, - "market": addRole.value.market + "market": addRole.value.market, + channel:addRole.value.channel } }) if (res.code === 200) { From b741d16c49d269f004c9ea15dd29c925baaf7785 Mon Sep 17 00:00:00 2001 From: ZhangYong Date: Thu, 6 Nov 2025 16:41:06 +0800 Subject: [PATCH 14/14] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=A4=9A=E4=BD=99?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=EF=BC=8C=E6=9D=83=E9=99=90=E9=A2=91=E9=81=93?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/router/index.js | 2 +- .../moneyManage/receiveDetail/receiveFinance.vue | 5 +- .../moneyManage/receiveDetail/receiveManage.vue | 1174 -------------------- src/views/permissions/rolePermission.vue | 28 +- 4 files changed, 27 insertions(+), 1182 deletions(-) delete mode 100644 src/views/moneyManage/receiveDetail/receiveManage.vue diff --git a/src/router/index.js b/src/router/index.js index 4c20539..87df00a 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -319,7 +319,7 @@ const routes = [ { path: 'receiveManager', name: "receiveManager", - component: () => import("../views/moneyManage/receiveDetail/receiveManage.vue"), + component: () => import("../views/moneyManage/receiveDetail/receiveFinance.vue"), meta: { permissionId: [67, 79] } }, {//地区财务 diff --git a/src/views/moneyManage/receiveDetail/receiveFinance.vue b/src/views/moneyManage/receiveDetail/receiveFinance.vue index 68da10d..34cc35f 100644 --- a/src/views/moneyManage/receiveDetail/receiveFinance.vue +++ b/src/views/moneyManage/receiveDetail/receiveFinance.vue @@ -454,12 +454,11 @@ 产品数量 - {{ productUnit }}
-
+
永久金币: -
diff --git a/src/views/moneyManage/receiveDetail/receiveManage.vue b/src/views/moneyManage/receiveDetail/receiveManage.vue deleted file mode 100644 index 539f8c8..0000000 --- a/src/views/moneyManage/receiveDetail/receiveManage.vue +++ /dev/null @@ -1,1174 +0,0 @@ - - - \ No newline at end of file diff --git a/src/views/permissions/rolePermission.vue b/src/views/permissions/rolePermission.vue index d38cdcc..341a6b0 100644 --- a/src/views/permissions/rolePermission.vue +++ b/src/views/permissions/rolePermission.vue @@ -198,7 +198,7 @@ const handleAddRole = async function () { "menuIds": finalCheckedKeys, "fatherId": addRole.value.parentId, "market": addRole.value.market, - channel:addRole.value.channel + channel: addRole.value.channel } }) if (res.code === 200) { @@ -319,7 +319,7 @@ const handleEditRolePermissionCheck = (checkedNodes, checkedInfo) => { // 判断是否有选中的节点 if (allCheckedNodes.length === 0) { permissionEditRoleObj.value.checkedKeys = [] - ifHasChannel.value = false + ifHasChannel.value = false return } @@ -329,7 +329,7 @@ const handleEditRolePermissionCheck = (checkedNodes, checkedInfo) => { console.log('编辑角色选中的权限ID:', checkedKeys) console.log('选中的节点数量:', allCheckedNodes.length) - if (checkedKeys.includes(124)||checkedKeys.includes(125)||checkedKeys.includes(126)||checkedKeys.includes(127)) { + if (checkedKeys.includes(124) || checkedKeys.includes(125) || checkedKeys.includes(126) || checkedKeys.includes(127)) { ifHasChannel.value = true } else { ifHasChannel.value = false @@ -431,18 +431,38 @@ const collectIds2 = (tree) => { return ids } +const collectIdsAll = (tree) => { + let ids = [] + tree.forEach((node) => { + ids.push(node.id) + // 如果当前节点没有 children 或 children 为空,说明是叶子节点 + if (node.children || node.children.length === 0) { + ids = ids.concat(collectIdsAll(node.children)) + } + }) + return ids +} + // 编辑角色初始化 const permissionEditRoleInit = async function (row) { console.log('row', row) console.log('row.tree', row.tree) + let EditIds = collectIdsAll(row.tree) + console.log(EditIds); + permissionEditRoleObj.value = {} permissionEditRoleObj.value.id = row.id permissionEditRoleObj.value.roleName = row.roleName permissionEditRoleObj.value.market = row.market permissionEditRoleObj.value.parentId = row.fatherId permissionEditRoleObj.value.parentName = row.fatherName - + permissionEditRoleObj.value.channel = row.channel + if (EditIds.includes(124)) { + ifHasChannel.value = true + } else { + ifHasChannel.value = false + } try { let roleId = permissionEditRoleObj.value.parentId; // 如果没有上级角色,设置为管理员的id