Browse Source

优化

zhangyong/milestone-20250913-现金管理
ZhangYong 1 month ago
parent
commit
52790d01d9
  1. 38
      src/components/MoneyManage/CurrencySelect.vue
  2. 211
      src/views/moneyManage/receiveDetail/receiveDetail.vue

38
src/components/MoneyManage/CurrencySelect.vue

@ -1,9 +1,9 @@
<template>
<div class="dropdown" ref="dropdownRef">
<!-- 下拉框触发器 -->
<div class="dropdown-toggle" @click="toggleMenu" :class="{ 'active': isOpen,'disabled': props.disabled }">
<div class="dropdown-toggle" @click="toggleMenu" :class="{ 'active': isOpen, 'disabled': props.disabled }">
<div class="search">
<input type="text" class="search-input" :placeholder="placeholder" :value="isOpen ? searchData : selectedItem"
<input type="text" class="search-input" :placeholder="placeholder" :value="isOpen ? searchData : selectedItem"
@focus="handleSearchFocus" @blur="handleSearchBlur" @input="handleInput">
<el-icon class="clear-icon" v-if="searchData" @click="clearSearch">
<CircleClose />
@ -192,6 +192,40 @@ watch(() => props.modelValue, (newVal) => {
color: #606266;
}
}
&.disabled {
background-color: #f5f5f5;
border-color: #d1d5db;
color: #9ca3af;
cursor: not-allowed;
opacity: 0.6;
.search-input {
background-color: #f5f5f5;
color: #9ca3af;
cursor: not-allowed;
pointer-events: none; //
}
.clear-icon {
display: none;
}
.arrow {
color: #9ca3af;
}
&:hover {
border-color: #d1d5db;
box-shadow: none;
}
&.active {
border-color: #d1d5db;
box-shadow: none;
background-color: #f5f5f5;
}
}
}
// +

211
src/views/moneyManage/receiveDetail/receiveDetail.vue

@ -19,12 +19,19 @@
<el-option v-for="item in marketList" :key="item" :label="item" :value="item" />
</el-select>
</div>
<div class="rowItem">
<div v-if="kefu" class="rowItem">
<el-text style="width: 4vw;">订单状态</el-text>
<el-select v-model="searchData.status" placeholder="请选择订单状态" style="width: 10vw;" clearable>
<el-option v-for="item in statusList" :key="item.name" :label="item.name"
:value="item.value" /></el-select>
</div>
<div v-if="!kefu" class="rowItem">
<el-text style="width: 4vw;">付款币种</el-text>
<el-select v-model="searchData.paymentCurrency" placeholder="请选择付款币种" style="width: 10vw;"
clearable>
<el-option v-for="item in customOptions" :key="item" :label="item"
:value="item" /></el-select>
</div>
<div class="rowItem">
<el-text style="width: 4vw;">支付方式</el-text>
<el-select v-model="searchData.payType" placeholder="请选择支付方式" style="width: 10vw;" clearable>
@ -41,7 +48,7 @@
</div>
<div class="rowItem">
<el-text style="width: 4vw;">产品名称</el-text>
<ProductSelect style="width: 190px;" v-model="searchData.goodsName"></ProductSelect>
<el-cascader v-model="searchData.goodsName" :options="productList" style="width: 10vw;" />
</div>
<div class="rowItem" style="width: 30vw">
<el-text style="width: 4vw; margin-left: 0.5vw;">付款时间</el-text>
@ -50,13 +57,19 @@
@change="handleDatePickerChange" :default-time="defaultTime"
:disabled-date="disabledDate" />
</div>
<div v-if="!superAdmin" class="buttons">
<el-button type="primary" @click="search">查询</el-button>
<el-button type="success" @click="reset">重置</el-button>
<!-- <el-button type="primary">导出excel</el-button>
<el-button type="primary" style="background-color: #5870FF;">导出列表</el-button> -->
</div>
</div>
<div class="row" style="margin-top: 10px;">
<div v-if="superAdmin" class="row" style="margin-top: 10px;">
<div class="buttons">
<el-button type="primary" @click="search">查询</el-button>
<el-button type="success" @click="reset">重置</el-button>
<el-button type="primary">导出excel</el-button>
<el-button type="primary" style="background-color: #5870FF;">导出列表</el-button>
<!-- <el-button type="primary">导出excel</el-button>
<el-button type="primary" style="background-color: #5870FF;">导出列表</el-button> -->
<el-button v-if="superAdmin" type="primary" @click="checkKefu">切换客服</el-button>
<el-button v-if="superAdmin" type="success" @click="checkCaiwu">切换地区财务</el-button>
<el-button v-if="superAdmin" type="success" @click="checkHqCaiwu">切换总部财务</el-button>
@ -132,7 +145,7 @@
</el-table-column>
<el-table-column prop="payType" label="支付方式" width="110px">
</el-table-column>
<el-table-column prop="payTime" label="付款时间" width="100px" />
<el-table-column prop="payTime" label="付款时间" width="180px" />
<el-table-column prop="voucher" label="转账凭证" width="110px">
<template #default="scope">
<div v-if="scope.row.voucher"
@ -146,8 +159,8 @@
</div>
</template>
</el-table-column>
<el-table-column prop="bankCode" label="银行流水订单号" v-if="caiwu && activeTab == 'pass'"
width="150px" show-overflow-tooltip></el-table-column>
<!-- <el-table-column prop="bankCode" label="银行流水订单号" v-if="caiwu && activeTab == 'pass'"
width="150px" show-overflow-tooltip></el-table-column> -->
<el-table-column prop="submitterName" label="提交人" width="150px"
show-overflow-tooltip></el-table-column>
<el-table-column prop="auditName" label="审核人"
@ -439,14 +452,11 @@
clearable></el-select>
</el-form-item>
<el-form-item label="付款币种">
<el-select disabled="true" v-model="editFormData.paymentCurrency" placeholder="请选择付款币种"
clearable>
<el-option v-for="item in payModel" :key="item.value" :label="item.label"
:value="item.value" />
</el-select>
<CurrencySelect :disabled="!isOnline" v-model="editFormData.paymentCurrency" :items="customOptions"
placeholder="请选择付款币种"/>
</el-form-item>
<el-form-item label="付款金额">
<el-input disabled="true" v-model="editFormData.paymentAmount" placeholder="请输入付款金额" />
<el-input :disabled="!isOnline" v-model="editFormData.paymentAmount" placeholder="请输入付款金额" />
</el-form-item>
<el-form-item label="支付方式">
<el-select disabled="true" v-model="editFormData.payType" placeholder="请选择支付方式"
@ -473,7 +483,7 @@
</el-text>
</div>
</el-form-item>
<el-form-item label="驳回理由">
<el-form-item label="备注">
<el-input disabled="true" v-model="editFormData.remark" type="textarea" :rows="4"
placeholder="请输入驳回理由" maxlength="100" show-word-limit />
</el-form-item>
@ -497,10 +507,6 @@
<el-form-item label="到账时间">
<el-date-picker type="datetime" v-model="editFormData.receivedTime" placeholder="请输入到账时间" />
</el-form-item>
<el-form-item label="收款备注">
<el-input v-model="editFormData.receivedRemark" type="textarea" :rows="4"
placeholder="请输入备注" maxlength="100" show-word-limit />
</el-form-item>
</el-form>
<span class="editBtns">
<button class="editBtn1" @click="closeEditForm">
@ -621,6 +627,7 @@ import request from '@/util/http.js'
import moment from 'moment'
import { useAdminStore } from '@/store/index.js'
import { hasMenuPermission } from '@/utils/menuTreePermission.js'
import { isNode } from 'mathjs';
const adminStore = useAdminStore();
const { menuTree } = storeToRefs(adminStore);
console.log('menutree', menuTree.value);
@ -630,10 +637,7 @@ const searchData = ref({
})
const getTime = ref({
startTime: '',
endTime: ''
})
const getTime = ref([])
const search = () => {
getlist()
@ -641,10 +645,27 @@ const search = () => {
}
const reset = () => {
searchData.value = {}
getTime.value = []
}
//
const getlist = async () => {
try {
let payCurrencySelect = ''
if (getTime.value && getTime.value.length === 2) {
searchData.value.startTime = moment(getTime.value[0]).format('YYYY-MM-DD HH:mm:ss')
searchData.value.endTime = moment(getTime.value[1]).format('YYYY-MM-DD HH:mm:ss')
}
else {
searchData.value.startTime = ''
searchData.value.endTime = ''
}
if (searchData.value.goodsName) {
searchData.value.goodsName = searchData.value.goodsName[searchData.value.goodsName.length - 1]
}
if (searchData.value.paymentCurrency) {
payCurrencySelect = CurrencyForId(searchData.value.paymentCurrency)
}
//id 0 1 2:
let cashRoleId = ''
let receivedMarket = adminData.value.markets
@ -672,7 +693,8 @@ const getlist = async () => {
...getTime.value,
submitterId: adminData.value.id,
receivedMarket: receivedMarket,
cashRoleId: cashRoleId
cashRoleId: cashRoleId,
paymentCurrency: payCurrencySelect
}
}
})
@ -963,7 +985,7 @@ const submitRefund = async () => {
payType: refundFormData.value.payType, //
payTime: refundFormData.value.payTime, // yyyy-MM-dd HH:mm:ss
receivedTime: refundFormData.value.receivedTime, // yyyy-MM-dd HH:mm:ss
submitterId: refundFormData.value.submitterId, // ID
areaServise: adminData.value.adminName, //
voucher: refundFormData.value.voucher, // URL
remark: refundFormData.value.remark, //
refundReason: refundFormData.value.refundReason, // 退-
@ -1013,10 +1035,17 @@ const closeConfirmRefund = () => {
const editFormData = ref({
})
const ifOnline = ref(false)
const editFormisible = ref(false)
const openEditForm = (row) => {
console.log('编辑时该行数据:', row);
editFormData.value = row
if(row.status == 3){
ifOnline.value = true
}else{
ifOnline.value = false
}
editFormisible.value = true
}
const closeEditForm = () => {
@ -1034,7 +1063,7 @@ const submitEditForm = async () => {
data: {
orderCode: editFormData.value.orderCode,
handlingCharge: editFormData.value.handlingCharge * 100,
paymentCurrency: editFormData.value.paymentCurrency,
paymentCurrency: CurrencyForId(editFormData.value.paymentCurrency),
paymentAmount: editFormData.value.paymentAmount,
receivedCurrency: CurrencyForId(editFormData.value.receivedCurrency),
receivedAmount: editFormData.value.receivedAmount * 100,
@ -1230,6 +1259,135 @@ const statusList = [
const paytypeList = ["Stripe-链接收款", "PaymentAsia-链接收款", "Ipay88-链接收款", "银行转账", "刷卡", "现金", "支票", "Grabpay", "Nets", "E-Transfer", "Paypal"]
const activityList = ref([])
const marketList = ['马来西亚', '香港', '新加坡', '泰国', '越南HCM', '加拿大']
const productList = [
{
"value": "金币产品",
"label": "金币产品",
"children": [
{
"value": "金币充值",
"label": "金币充值",
}
]
},
{
"value": "软件产品",
"label": "软件产品",
"children": [
{
"value": "美股",
"label": "美股",
"children": [
{
"value": "美股软件",
"label": "美股软件"
}
]
},
{
"value": "港股",
"label": "港股",
"children": [
{
"value": "港股软件",
"label": "港股软件"
}
]
},
{
"value": "A股",
"label": "A股",
"children": [
{
"value": "A股软件",
"label": "A股软件"
}
]
},
{
"value": "新加坡股",
"label": "新加坡股",
"children": [
{
"value": "新加坡股软件",
"label": "新加坡股软件"
}
]
},
{
"value": "马股",
"label": "马股",
"children": [
{
"value": "马股软件",
"label": "马股软件"
}
]
},
{
"value": "日本股",
"label": "日本股",
"children": [
{
"value": "日本股软件",
"label": "日本股软件"
}
]
},
{
"value": "泰股",
"label": "泰股",
"children": [
{
"value": "泰股软件",
"label": "泰股软件"
}
]
},
{
"value": "越南股",
"label": "越南股",
"children": [
{
"value": "越南股软件",
"label": "越南股软件"
}
]
},
{
"value": "印尼股",
"label": "印尼股",
"children": [
{
"value": "印尼股软件",
"label": "印尼股软件"
}
]
},
{
"value": "韩国股",
"label": "韩国股",
"children": [
{
"value": "韩国股软件",
"label": "韩国股软件"
}
]
},
{
"value": "台湾股",
"label": "台湾股",
"children": [
{
"value": "台湾股软件",
"label": "台湾股软件"
}
]
}
]
},
]
//
const getActivitys = async function () {
try {
@ -1294,6 +1452,7 @@ onMounted(async function () {
await getActivitys()
if (hasMenuPermission(menuTree.value, 77) && hasMenuPermission(menuTree.value, 78) && hasMenuPermission(menuTree.value, 79)) {
superAdmin.value = true
getlist()
}
else if (hasMenuPermission(menuTree.value, 77)) {
checkKefu()

Loading…
Cancel
Save