Compare commits

...

10 Commits

  1. 0
      .trae/.ignore
  2. 5
      src/components/locales/lang/en.js
  3. 9
      src/components/locales/lang/zh-CN.js
  4. 29
      src/components/workspace/CashManagement.vue
  5. 52
      src/router/index.js
  6. 35
      src/utils/menuTreePermission.js
  7. 21
      src/utils/menuUtils.js
  8. 1
      src/views/channelManage/fans/fans.vue
  9. 1
      src/views/channelManage/reward/reward.vue
  10. 4
      src/views/consume/bean/articleVideo.vue
  11. 1
      src/views/consume/bean/dieHardFan.vue
  12. 1
      src/views/consume/bean/liveStream.vue
  13. 66
      src/views/consume/gold/addCoinConsume.vue
  14. 4
      src/views/home.vue
  15. 2
      src/views/managerecharge/rate.vue
  16. 4
      src/views/moneyManage/executor/executor.vue
  17. 5
      src/views/moneyManage/financialAccount/cashFlow.vue
  18. 5
      src/views/moneyManage/financialAccount/performanceAttribution.vue
  19. 2
      src/views/moneyManage/receiveDetail/receiveDetail1.vue
  20. 2
      src/views/moneyManage/receiveDetail/receiveFinance.vue
  21. 2
      src/views/moneyManage/receiveDetail/receiveHead.vue
  22. 2
      src/views/moneyManage/receiveDetail/receiveManage.vue
  23. 2
      src/views/moneyManage/receiveDetail/receiveService.vue
  24. 2
      src/views/moneyManage/receiveDetail/utils/staticData.js
  25. 4
      src/views/moneyManage/refundDetail/refundDetail.vue
  26. 4
      src/views/permissions/userPermission.vue
  27. 2
      src/views/workspace/index.vue

0
.trae/.ignore

5
src/components/locales/lang/en.js

@ -363,6 +363,7 @@ export default {
getChartDataFailed: "Get chart data failed",
renderChartFailed: "Chart render failed",
// Rate
confirmModify: "Confirm modify?",
pleaseInputRate: "Enter rate",
pleaseInputCorrectRateFormat: "Check rate format",
pleaseInputCorrectSymbol: "Check symbol",
@ -692,7 +693,7 @@ export default {
activityName: "Activity",
currencyName: "Currency",
rechargeAmount: "Amount",
note: "Note",
note: "Remark",
payModel: "Payment",
paymentVoucher: "Voucher",
submitter: "Submitter",
@ -771,7 +772,7 @@ export default {
addBeanRecharge: "New Recharge",
systemRecharge: "System",
onlineRecharge: "Online",
mobile: "Mobile",
mobile: "Phone",
},
// Consume Group

9
src/components/locales/lang/zh-CN.js

@ -362,6 +362,7 @@ export default {
getChartDataFailed: "获取图表数据失败,请稍后重试",
renderChartFailed: "图表渲染失败,请稍后重试",
// 汇率相关
confirmModify: "确认修改?",
pleaseInputRate: "请输入汇率比例",
pleaseInputCorrectRateFormat: "请输入正确的汇率比例格式",
pleaseInputCorrectSymbol: "请输入正确的符号",
@ -667,7 +668,7 @@ export default {
consumptionTimes: "消费次数",
onlyStatisticsDataAfter20250101: "仅统计2025-01-01后的数据",
store: "所属门店",
maxReductionAmount: "红包最大抵扣金额",
// maxReductionAmount: "红包最大抵扣金额",
//金豆
currentPayableBean: "当前付费金豆",
currentFreeBean: "当前免费金豆",
@ -1025,7 +1026,7 @@ export default {
cash: {
refundProgress: "退款进度",
progress: {
areaFinance: "地区财务",
areaFinance: "收款处理",
areaCharge: "地区负责人",
headFinance: "总部财务",
executor: "指定执行人",
@ -1040,7 +1041,7 @@ export default {
myr: "马币(MYR)",
thb: "泰铢(THB)",
cad: "加币(CAD)",
vnd: "越南盾(VDN)",
vnd: "越南盾(VND)",
krw: "韩元(KRW)",
},
// 收款方式
@ -1161,7 +1162,7 @@ export default {
rejected: "已驳回",
inProgress: "进行中",
},
// 执行明细
// 退款执行
pending: "待处理",
refundSuccess: "退款成功",
},

29
src/components/workspace/CashManagement.vue

@ -37,11 +37,23 @@
<div class="chart-container">
<!-- 左侧数据列表 -->
<div class="market-data">
<div v-if="marksFlag" v-for="market in cashData.markets" :key="market.name" class="market-item">
<div
v-if="marksFlag"
v-for="market in cashData.markets"
:key="market.name"
class="market-item"
@click="handleMarketClick(market.name)"
>
<span class="market-name">{{ market.name }}</span>
<span class="market-value">{{ market.value.toLocaleString() }} {{ t('workbench.SGD') }}</span>
</div>
<div v-else v-for="item in cashData.markets" :key="item.name" class="market-item">
<div
v-else
v-for="item in cashData.markets"
:key="item.name"
class="market-item"
@click="handleMarketClick(item.name)"
>
<span class="market-name">{{ item.name }}{{ t('workbench.collect') }}</span>
<span class="market-value">{{ item.value.toLocaleString() }} {{ item.currencyLabel }}</span>
@ -58,6 +70,7 @@
<script setup>
import * as echarts from 'echarts'
import { onMounted, ref } from 'vue'
import { useRouter } from 'vue-router'
import request from "@/util/http.js";
import API from "@/util/http.js";
import { Warning, Service } from "@element-plus/icons-vue";
@ -65,6 +78,7 @@ import { useI18n } from 'vue-i18n'
const { t } = useI18n()
const router = useRouter()
const chartRef = ref(null)
let chartInstance = null
@ -195,6 +209,14 @@ const fetchCashData = async () => {
}
}
const handleMarketClick = (name) => {
if (!name) return
router.push({
path: '/moneyManage/financialAccount/cashFlow',
query: { region: name }
})
}
//
const marksFlag = ref();
const loading = ref(true); //
@ -204,7 +226,7 @@ const getAdminData = async function () {
loading.value = true; //
const result = await API({url: '/admin/userinfo', data: {}});
marksFlag.value = result.markets === '总部' || result.markets === '研发部'
|| result.markets === 'Headquarters' || result.markets === 'R&D Department';
|| result.markets === 'Headquarters' || result.markets === 'R&D Dept';
console.log("marksFlag", marksFlag.value);
// alert(marksFlag.value)
} catch (error) {
@ -333,6 +355,7 @@ onMounted( async() => {
overflow: hidden; /* 隐藏溢出内容 */
text-overflow: ellipsis; /* 溢出显示省略号 */
margin-bottom: 8px; /* 增加项间距,提升可读性 */
cursor: pointer;
}
.market-name {

52
src/router/index.js

@ -309,33 +309,33 @@ const routes = [
name: "receiveDetail",
meta: {permissionId: 74},
children: [
// 客服页面
// 收款提交
{
path: 'receiveService',
name: "receiveService",
component: () => import("../views/moneyManage/receiveDetail/receiveService.vue"),
meta: {permissionId: 60}
},
// 地区负责人页面
// 收款处理
{
path: 'receiveManager',
name: "receiveManager",
component: () => import("../views/moneyManage/receiveDetail/receiveManage.vue"),
meta: {permissionId: [67, 79]}
},
{//地区财务
{//收款处理 (负责人)
path: 'receiveFinance',
name: "receiveFinance",
component: () => import("../views/moneyManage/receiveDetail/receiveFinance.vue"),
meta: {permissionId: [67, 79]}
},
//总部管理员及财务
{
path: 'receiveHeader',
name: "receiveHeader",
component: () => import("../views/moneyManage/receiveDetail/receiveHead.vue"),
meta: {permissionId: 91}
},
//总部管理员及财务(移除)
// {
// path: 'receiveHeader',
// name: "receiveHeader",
// component: () => import("../views/moneyManage/receiveDetail/receiveHead.vue"),
// meta: {permissionId: 91}
// },
]
},
// 退款明细
@ -345,28 +345,28 @@ const routes = [
component: () => import("../views/moneyManage/refundDetail/refundDetail.vue"),
meta: {permissionId: 98},
children: [
// 客服页面
// 退款提交
{
path: 'refundService',
name: "refundService",
component: () => import("../views/moneyManage/refundDetail/refundService.vue"),
meta: {permissionId: 99}
},
// 地区财务页面
// 退款审批
{
path: 'refundFinance',
name: "refundFinance",
component: () => import("../views/moneyManage/refundDetail/refundFinance.vue"),
meta: {permissionId: 103}
},
// 地区负责人页面
// 退款审批(负责人)
{
path: 'refundCharge',
name: "refundCharge",
component: () => import("../views/moneyManage/refundDetail/refundCharge.vue"),
meta: {permissionId: 107}
},
//总部管理员及财务
// 退款审批(总部财务
{
path: 'refundHeader',
name: "refundHeader",
@ -375,13 +375,35 @@ const routes = [
},
]
},
// 执行明细
// 退款执行
{
path: 'executor',
name: "executor",
component: () => import("../views/moneyManage/executor/executor.vue"),
meta: {permissionId: 115}
},
// 财务核算
{
path: 'financialAccount',
name: "financialAccount",
meta: {permissionId: 147},
children: [
// 资金流水
{
path: 'cashFlow',
name: "cashFlow",
component: () => import("../views/moneyManage/financialAccount/cashFlow.vue"),
meta: {permissionId: 148}
},
// 业绩归属
{
path: 'performanceAttribution',
name: "performanceAttribution",
component: () => import("../views/moneyManage/financialAccount/performanceAttribution.vue"),
meta: {permissionId: 149}
},
]
}
]
},
// 频道管理

35
src/utils/menuTreePermission.js

@ -68,7 +68,7 @@ export const permissionMapping = {
cash_management: 58, // 现金管理
collection_details: 59, // 收款明细
collection_area_customer_service: 60, // 收款 - 地区客服
collection_area_submit: 60, // 收款 - 地区客服--->收款提交
view_customer_service_collection: 61, // 客服收款查看
add_customer_service_collection: 62, // 客服添加收款
withdraw_customer_service_collection: 63, // 客服收款撤回
@ -76,7 +76,7 @@ export const permissionMapping = {
refund_customer_service_collection: 65, // 客服收款退款
view_customer_service_refund_reason: 66, // 客服收款查看退款理由
collection_area_finance: 67, // 收款 - 地区财务
collection_area_processing: 67, // 收款 - 地区财务--->收款处理
area_finance_collection_pending: 68, // 地区财务收款待审核
view_area_finance_pending: 69, // 地区财务收款待审核查看
pass_area_finance_collection: 70, // 地区财务收款通过
@ -89,7 +89,7 @@ export const permissionMapping = {
view_area_finance_completed: 77, // 地区财务收款已完成查看
refund_area_finance_completed: 78, // 地区财务收款已完成退款
collection_area_manager: 79, // 收款 - 地区负责人
collection_area_manager: 79, // 收款 - 地区负责人--->收款处理(负责人)
area_manager_collection_pending: 80, // 地区负责人收款待审核
view_area_manager_pending: 81, // 地区负责人收款待审核查看
pass_area_manager_collection: 82, // 地区负责人收款通过
@ -102,36 +102,37 @@ export const permissionMapping = {
view_area_manager_completed: 89, // 地区负责人收款已完成查看
refund_area_manager_completed: 90, // 地区负责人收款已完成退款
collection_headquarters_finance: 91, // 收款 - 总部财务
headquarters_finance_approved: 92, // 总部财务收款已通过
view_headquarters_approved: 93, // 总部财务收款已通过查看
edit_headquarters_approved: 94, // 总部财务收款已通过编辑
headquarters_finance_completed: 95, // 总部财务收款已完成
view_headquarters_completed: 96, // 总部财务收款已完成查看
refund_headquarters_completed: 97, // 总部财务收款已完成退款
// 移除总部财务
// collection_headquarters_finance: 91, // 收款 - 总部财务
// headquarters_finance_approved: 92, // 总部财务收款已通过
// view_headquarters_approved: 93, // 总部财务收款已通过查看
// edit_headquarters_approved: 94, // 总部财务收款已通过编辑
// headquarters_finance_completed: 95, // 总部财务收款已完成
// view_headquarters_completed: 96, // 总部财务收款已完成查看
// refund_headquarters_completed: 97, // 总部财务收款已完成退款
refund_details: 98, // 退款明细
refund_area_customer_service: 99, // 退款 - 地区客服
refund_area_cash: 99, // 退款 - 地区客服--->退款提交
view_customer_service_refund_pending: 100, // 客服退款查看
withdraw_customer_service_refund: 101, // 客服退款撤回
edit_customer_service_refund: 102, // 客服退款编辑
refund_area_finance: 103, // 退款 - 地区财务
refund_area_review: 103, // 退款 - 地区财务--->退款审批
view_area_finance_refund: 104, // 地区财务退款查看
audit_area_finance_refund: 105, // 地区财务退款审核
track_area_finance_refund_progress: 106, // 地区财务退款进度
refund_area_manager: 107, // 退款 - 地区负责人
refund_area_manager: 107, // 退款 - 地区负责人--->退款审批(负责人)
view_area_manager_refund: 108, // 地区负责人退款查看
audit_area_manager_refund: 109, // 地区负责人退款审核
track_area_manager_refund_progress: 110, // 地区负责人退款进度
refund_headquarters_finance: 111, // 退款 - 总部财务
refund_headquarters_finance: 111, // 退款 - 总部财务--->退款审批(总部财务)
view_headquarters_refund: 112, // 总部财务退款查看
audit_headquarters_refund: 113, // 总部财务退款审核
track_headquarters_refund_progress: 114, // 总部财务退款进度
execution_details: 115, // 执行明细
execution_details_refund: 115, // 执行明细--->退款执行
view_execution_details: 116, // 查看执行明细
edit_execution_details: 117, // 编辑执行明细
submit_execution_details: 118, // 提交执行明细
@ -169,6 +170,10 @@ export const permissionMapping = {
message_push: 145, // 消息推送
mutiple_language: 146, // 多语言配置
financial_accounting: 147, // 财务核算
cash_flow_ledger: 148, // 资金流水账
performance_attribution_accounting: 149, // 业绩归属台账
}
// 递归查找菜单中是否存在目标id

21
src/utils/menuUtils.js

@ -71,16 +71,19 @@ export const getRoutePath = (menu) => {
"51": "/usergold", // 金币客户账户明细
"54": "/userbean", // 金豆客户账户明细
"59": "/moneyManage/receiveDetail", // 收款明细(现金管理子菜单)
"60": "/moneyManage/receiveDetail/receiveService", // 收款-地区客服(收款明细子菜单)
"67": "/moneyManage/receiveDetail/receiveFinance", // 收款-地区财务(收款明细子菜单)
"79": "/moneyManage/receiveDetail/receiveManager", // 收款-地区负责人(收款明细子菜单)
"91": "/moneyManage/receiveDetail/receiveHeader", // 收款-总部财务(收款明细子菜单)
"60": "/moneyManage/receiveDetail/receiveService", // 收款-收款提交(收款明细子菜单)
"67": "/moneyManage/receiveDetail/receiveFinance", // 收款-收款处理(收款明细子菜单)
"79": "/moneyManage/receiveDetail/receiveManager", // 收款-收款处理(负责人)(收款明细子菜单)
// "91": "/moneyManage/receiveDetail/receiveHeader", // 收款-总部财务(收款明细子菜单) 移除
"98": "/moneyManage/refundDetail", // 退款明细(现金管理子菜单)
"99": "/moneyManage/refundDetail/refundService", // 退款-地区客服(退款明细子菜单)
"103": "/moneyManage/refundDetail/refundFinance", // 退款-地区财务(退款明细子菜单)
"107": "/moneyManage/refundDetail/refundCharge", // 退款-地区负责人(退款明细子菜单)
"111": "/moneyManage/refundDetail/refundHeader", // 退款-总部财务(退款明细子菜单)
"115": "/moneyManage/executor", // 执行明细(现金管理子菜单)
"99": "/moneyManage/refundDetail/refundService", // 退款-退款提交(退款明细子菜单)
"103": "/moneyManage/refundDetail/refundFinance", // 退款-退款审批(退款明细子菜单)
"107": "/moneyManage/refundDetail/refundCharge", // 退款-退款审批(负责人)(退款明细子菜单)
"111": "/moneyManage/refundDetail/refundHeader", // 退款-退款审批(总部财务)(退款明细子菜单)
"115": "/moneyManage/executor", // 退款执行(现金管理子菜单)
"147": "/moneyManage/financialAccount", // 财务核算(现金管理子菜单)
"148": "/moneyManage/financialAccount/cashFlow", // 资金流水账(财务核算子菜单)
"149": "/moneyManage/financialAccount/performanceAttribution", // 业绩归属账(财务核算子菜单)
"125": "/channelManage/reward", // 打赏管理(频道管理子菜单)
"126": "/channelManage/fans", // 铁粉管理(频道管理子菜单)
"127": "/channelManage/cart" // 小黄车管理(频道管理子菜单)

1
src/views/channelManage/fans/fans.vue

@ -219,6 +219,7 @@ const ConsumeSelectBy = async function (val) {
payType: 7, // payType 7
beanConsumeFan: {
...beanConsumeFan.value,
roleId: adminData.value.roleId,
flag: flag.value
}
};

1
src/views/channelManage/reward/reward.vue

@ -258,6 +258,7 @@ const selectLiveBy = async function (val) {
payType: 1, // payType 1
beanConsumeLive: {
...beanConsumeLive.value,
roleId: adminData.value.roleId,
flag: flag.value
}
};

4
src/views/consume/bean/articleVideo.vue

@ -581,8 +581,8 @@ const getTagText = (state) => {
<template #default="scope">
{{
Array.isArray(consumeTypes)
? consumeTypes.find(item => item.value === Number(scope.row.type))?.label || t('common_list.unknownType')
: t('common_list.unknownType')
? consumeTypes.find(item => item.value === Number(scope.row.type))?.label || t('common_list.other')
: t('common_list.other')
}}
</template>
</el-table-column>

1
src/views/consume/bean/dieHardFan.vue

@ -219,6 +219,7 @@ const ConsumeSelectBy = async function (val) {
payType: 7, // payType 7
beanConsumeFan: {
...beanConsumeFan.value,
roleId: adminData.value.roleId,
flag: flag.value
}
};

1
src/views/consume/bean/liveStream.vue

@ -258,6 +258,7 @@ const selectLiveBy = async function (val) {
payType: 1, // payType 1
beanConsumeLive: {
...beanConsumeLive.value,
roleId: adminData.value.roleId,
flag: flag.value
}
};

66
src/views/consume/gold/addCoinConsume.vue

@ -1,5 +1,5 @@
<script setup>
import { onMounted, reactive, ref, watch } from "vue";
import { onMounted, reactive, ref, watch, computed } from "vue";
import { ElIcon, ElMessage } from "element-plus";
import moment from "moment";
import request from "@/util/http.js"
@ -64,8 +64,7 @@ const addConsume = ref({
taskGold: null, //
remark: "",//
adminId: null,// id
adminName: adminData.value.adminName,
redMoney: 1 // 使1-使0-使
adminName: adminData.value.adminName
})
const Ref = ref(null)
const rules = reactive({
@ -162,41 +161,24 @@ function validateInput() {
}
//
const totalAvailableGold = (user.value.nowSumGold)
// 使
//
const totalAvailableGold = user.value.nowSumGold;
if (user.value.jwcode && sumGold > totalAvailableGold) {
// 使
if (addConsume.value.redMoney == 0) {
ElMessage.error(t('elmessage.limitExceeded'));
// sumGoldnull
addConsume.value.sumGold = null;
return false;
}
// 使validateRedLimit
}
return true;
}
// blur +
// blursumGold
function validateRedLimit() {
const sumGold = parseFloat(addConsume.value.sumGold);
const price = Number(addConsume.value.price || 0);
const redMax = Number(user.value.red || 0);
if (!isNaN(price) && price > 0) {
if (isNaN(sumGold) || sumGold <= 0) {
ElMessage.error(t('elmessage.noEmptySumGold'));
return false;
}
// 使 +
if (addConsume.value.redMoney == 1) {
if (sumGold + redMax < price) {
ElMessage.error(t('elmessage.limitRedAmount'));
return false;
}
}
}
return true;
}
@ -212,21 +194,22 @@ function calculateCoins(sumGold) {
let remaining = parsedSumGold;
let freeUsed = 0, permanentUsed = 0, taskUsed = 0;
//
if (nowFreeGold > 0) {
// 1.
if (remaining > 0 && nowFreeGold > 0) {
freeUsed = Math.min(parseFloat(nowFreeGold.toFixed(4)), remaining);
remaining = parseFloat((remaining - freeUsed).toFixed(4));
}
//
// 2.
if (remaining > 0 && nowPermanentGold > 0) {
permanentUsed = Math.min(parseFloat(nowPermanentGold.toFixed(4)), remaining);
remaining = parseFloat((remaining - permanentUsed).toFixed(4));
}
//
// 3.
if (remaining > 0 && nowTaskGold > 0) {
taskUsed = parseFloat(remaining.toFixed(4));
taskUsed = Math.min(parseFloat(nowTaskGold.toFixed(4)), remaining);
remaining = parseFloat((remaining - taskUsed).toFixed(4));
}
//
@ -276,8 +259,7 @@ const add = async function () {
permanentGold: addConsume.value.permanentGold * 100,
goodsName: addConsume.value.goodsName.value,
remark: addConsume.value.remark,
adminName: adminData.value.adminName,
redMoney: Number(addConsume.value.redMoney) // 1-使0-使
adminName: adminData.value.adminName
}
})
addDisabled.value = false
@ -328,8 +310,7 @@ function resetForm() {
taskGold: null,
remark: "",
adminId: adminData.value.id,
adminName: adminData.value.adminName,
redMoney: 1 // 使
adminName: adminData.value.adminName
}
console.log("重置表单")
@ -352,6 +333,9 @@ function resetForm() {
nowFreeGold: null,
nowSumGold: null
}
//
Ref.value.clearValidate()
}
//
@ -424,7 +408,7 @@ const addBefore = () => {
});
return;
}
if (!validateInput() || !validateRedLimit()) {
if (!validateInput()) {
return;
}
ReadCookies.value = `coinConsume:${addConsume.value.jwcode}:${addConsume.value.goodsName.value}`
@ -494,8 +478,6 @@ const getUser = async function (jwcode) {
addConsume.value.taskGold = task;
}
}
//
validateInput()
} else if (!result.data) {
@ -544,7 +526,7 @@ watch(
() => addConsume.value.sumGold,
(newValue) => {
const parsedNewValue = parseFloat(newValue);
if (!isNaN(parsedNewValue) && parsedNewValue > 0) {
if (!isNaN(parsedNewValue) && parsedNewValue > 0 && user.value.jwcode) {
const { free, permanent, task } = calculateCoins(parsedNewValue);
addConsume.value.freeGold = free;
addConsume.value.permanentGold = permanent;
@ -569,6 +551,8 @@ watch(
}
);
/* 红包逻辑已在当前分支移除 */
/*
====================挂载=================================
*/
@ -603,14 +587,8 @@ onMounted(async function () {
<el-input v-model="addConsume.price" style="width: 120px" disabled />
</el-form-item>
<!-- <el-form-item prop="sumGold" :label="t('common_add.consumeTotalGold')">
<el-input v-model="addConsume.sumGold" style="width: 120px"
@blur="validateRedLimit()" />
</el-form-item> -->
<el-form-item prop="sumGold" :label="t('common_add.consumeTotalGold')">
<el-input v-model="addConsume.sumGold" style="width: 120px" @blur="validateRedLimit()" />
<el-radio v-model="addConsume.redMoney" :label="1" style="margin-left: 10px;">使用红包</el-radio>
<el-radio v-model="addConsume.redMoney" :label="0">不使用红包</el-radio>
</el-form-item>
@ -715,11 +693,11 @@ onMounted(async function () {
<p>{{ user.market }}</p>
</el-form-item>
</el-col>
<el-col :span="14">
<!-- <el-col :span="14">
<el-form-item :label="$t('common_add_user.maxReductionAmount')">
<p style="color: #2fa1ff">{{ user.red }} </p>
</el-form-item>
</el-col>
</el-col> -->
</el-row>
</el-form>
</el-card>

4
src/views/home.vue

@ -159,7 +159,7 @@ const selectStatusById = () => {
}
//
if (hasPermission(permissionMapping.collection_area_customer_service)) {
if (hasPermission(permissionMapping.collection_area_submit)) {
status.push(2);
}
//
@ -186,7 +186,7 @@ const selectStatusById = () => {
status.push(40);
}
//退
if (hasPermission(permissionMapping.refund_area_customer_service)) {
if (hasPermission(permissionMapping.refund_area_cash)) {
status.push(12,22,32);
}

2
src/views/managerecharge/rate.vue

@ -161,7 +161,7 @@ const edit = () => {
editFormRef.value.validate(async (valid) => {
if (valid) {
try {
await ElMessageBox.confirm("确认修改?");
await ElMessageBox.confirm(t('elmessage.confirmModify'));
await editRate();
console.log("修改成功");
regeEdit.value = false;

4
src/views/moneyManage/executor/executor.vue

@ -417,7 +417,7 @@ const hideEditDialog = () => {
jwcode: ''
}
}
// const currencies = ref(['(USD)', '(HKD)', '(SGD)', '(MYR)', '(THB)', '(CAD)', '(VDN)', '(KRW)'])
// const currencies = ref(['(USD)', '(HKD)', '(SGD)', '(MYR)', '(THB)', '(CAD)', '(VND)', '(KRW)'])
const currencies = ref([
t('cash.currency.usd'), // (USD)
t('cash.currency.hkd'), // (HKD)
@ -425,7 +425,7 @@ const currencies = ref([
t('cash.currency.myr'), // (MYR)
t('cash.currency.thb'), // (THB)
t('cash.currency.cad'), // (CAD)
t('cash.currency.vnd'), // (VDN)
t('cash.currency.vnd'), // (VND)
t('cash.currency.krw') // (KRW)
])
// const channelOptions = ref(["Stripe-", "PaymentAsia-", "Ipay88-", "", "", "", "", "Grabpay", "Nets", "E-Transfer", "Paypal"])

5
src/views/moneyManage/financialAccount/cashFlow.vue

@ -0,0 +1,5 @@
<template>
<div>
<h1>资金流水</h1>
</div>
</template>

5
src/views/moneyManage/financialAccount/performanceAttribution.vue

@ -0,0 +1,5 @@
<template>
<div>
<h1>业绩归属</h1>
</div>
</template>

2
src/views/moneyManage/receiveDetail/receiveDetail1.vue

@ -1027,7 +1027,7 @@ const handleEditForm = async () => {
}
//
const selectedCurrency = ref('');
const customOptions = ref(['美元(USD)', '港币(HKD)', '新币(SGD)', '马币(MYR)', '泰铢(THB)', '加币(CAD)', '越南盾(VDN)', '韩元(KRW)']);
const customOptions = ref(['美元(USD)', '港币(HKD)', '新币(SGD)', '马币(MYR)', '泰铢(THB)', '加币(CAD)', '越南盾(VND)', '韩元(KRW)']);
//
const paytypeOptions = ref(["Stripe-链接收款", "PaymentAsia-链接收款", "Ipay88-链接收款", "银行转账", "刷卡", "现金", "支票", "Grabpay", "Nets", "E-Transfer", "Paypal"])

2
src/views/moneyManage/receiveDetail/receiveFinance.vue

@ -751,7 +751,7 @@ const customOptions = ref([
t('cash.currency.myr'), // (MYR)
t('cash.currency.thb'), // (THB)
t('cash.currency.cad'), // (CAD)
t('cash.currency.vnd'), // (VDN)
t('cash.currency.vnd'), // (VND)
t('cash.currency.krw') // (KRW)
])
const paytypeList = [

2
src/views/moneyManage/receiveDetail/receiveHead.vue

@ -727,7 +727,7 @@ const customOptions = ref([
t('cash.currency.myr'), // (MYR)
t('cash.currency.thb'), // (THB)
t('cash.currency.cad'), // (CAD)
t('cash.currency.vnd'), // (VDN)
t('cash.currency.vnd'), // (VND)
t('cash.currency.krw') // (KRW)
])
// - 使cash.payMethods

2
src/views/moneyManage/receiveDetail/receiveManage.vue

@ -751,7 +751,7 @@ const customOptions = ref([
t('cash.currency.myr'), // (MYR)
t('cash.currency.thb'), // (THB)
t('cash.currency.cad'), // (CAD)
t('cash.currency.vnd'), // (VDN)
t('cash.currency.vnd'), // (VND)
t('cash.currency.krw') // (KRW)
])
const paytypeList = [

2
src/views/moneyManage/receiveDetail/receiveService.vue

@ -866,7 +866,7 @@ const customOptions = ref([
t('cash.currency.myr'), // (MYR)
t('cash.currency.thb'), // (THB)
t('cash.currency.cad'), // (CAD)
t('cash.currency.vnd'), // (VDN)
t('cash.currency.vnd'), // (VND)
t('cash.currency.krw') // (KRW)
])
// - 使cash.payMethods

2
src/views/moneyManage/receiveDetail/utils/staticData.js

@ -304,7 +304,7 @@ export const CurrencyForId = (name) => {
return 5
} else if (name == t('cash.currency.cad') || name == '加币(CAD)' || name == 'Canadian Dollar(CAD)') {
return 6
} else if (name == t('cash.currency.vnd') || name == '越南盾(VDN)' || name == 'Vietnamese Dong(VDN)') {
} else if (name == t('cash.currency.vnd') || name == '越南盾(VND)' || name == 'Vietnamese Dong(VND)') {
return 7
} else if (name == t('cash.currency.krw') || name == '韩元(KRW)' || name == 'South Korean Won(KRW)') {
return 8

4
src/views/moneyManage/refundDetail/refundDetail.vue

@ -27,8 +27,8 @@ const navigateTo = (name) => {
const initPermissions = () => {
if (!menuTree.value || !menuTree.value.length) return
isService.value = hasMenuPermission(menuTree.value, permissionMapping.refund_area_customer_service)
isFinance.value = hasMenuPermission(menuTree.value, permissionMapping.refund_area_finance)
isService.value = hasMenuPermission(menuTree.value, permissionMapping.refund_area_cash)
isFinance.value = hasMenuPermission(menuTree.value, permissionMapping.refund_area_review)
isCharge.value = hasMenuPermission(menuTree.value, permissionMapping.refund_area_manager)
isHeader.value = hasMenuPermission(menuTree.value, permissionMapping.refund_headquarters_finance)
console.log('====================================', isService.value, isFinance.value,isCharge.value,isHeader.value)

4
src/views/permissions/userPermission.vue

@ -813,9 +813,9 @@ const confirmResetPassword = async function () {
//
if (adminData.value.markets.includes(currentRow.value.market) || adminData.value.markets[0] === '总部' || adminData.value.markets[0] === '研发部' || adminData.value.markets[0] === 'Headquarters' || adminData.value.markets[0] === 'R&D Department') {
if (adminData.value.markets.includes(currentRow.value.market) || adminData.value.markets[0] === '总部' || adminData.value.markets[0] === '研发部' || adminData.value.markets[0] === 'Headquarters' || adminData.value.markets[0] === 'R&D Dept') {
console.log('符合条件,可以操作', adminData.value.markets.includes(currentRow.value.market) || adminData.value.markets[0] === '总部' || adminData.value.markets[0] === '研发部' || adminData.value.markets[0] === 'Headquarters' || adminData.value.markets[0] === 'R&D Department');
console.log('符合条件,可以操作', adminData.value.markets.includes(currentRow.value.market) || adminData.value.markets[0] === '总部' || adminData.value.markets[0] === '研发部' || adminData.value.markets[0] === 'Headquarters' || adminData.value.markets[0] === 'R&D Dept');
const params = {
account: currentRow.value.account,
}

2
src/views/workspace/index.vue

@ -42,7 +42,7 @@ const getAdminData = async function () {
loading.value = true; //
const result = await API({url: '/admin/userinfo', data: {}});
GraphFlag.value = result.markets !== '总部' && result.markets !== '研发部'
&& result.markets !== 'Headquarters' && result.markets !== 'R&D Department'
&& result.markets !== 'Headquarters' && result.markets !== 'R&D Dept'
;

Loading…
Cancel
Save