|
|
|
@ -16,7 +16,7 @@ |
|
|
|
<div class="rowItem"> |
|
|
|
<el-text style="width: 4vw;">所属地区</el-text> |
|
|
|
<el-select v-model="searchData.market" placeholder="请选择所属地区" style="width:10vw;" clearable> |
|
|
|
<el-option v-for="item in marketList" :key="item" :label="item" :value="item"/> |
|
|
|
<el-option v-for="item in marketList" :key="item" :label="item" :value="item" /> |
|
|
|
</el-select> |
|
|
|
</div> |
|
|
|
<!-- 移除客服专属的“订单状态”筛选 --> |
|
|
|
@ -24,14 +24,13 @@ |
|
|
|
<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-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> |
|
|
|
<el-option v-for="item in paytypeList" :key="item" :label="item" :value="item"/> |
|
|
|
<el-option v-for="item in paytypeList" :key="item" :label="item" :value="item" /> |
|
|
|
</el-select> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
@ -39,20 +38,21 @@ |
|
|
|
<div class="rowItem"> |
|
|
|
<el-text style="width: 4vw;">活动名称</el-text> |
|
|
|
<el-select v-model="searchData.activity" placeholder="请选择活动方式" style="width: 10vw;" clearable> |
|
|
|
<el-option v-for="item in activityList" :key="item.id" :label="item.activityName" :value="item.id"/> |
|
|
|
<el-option v-for="item in activityList" :key="item.id" :label="item.activityName" |
|
|
|
:value="item.id" /> |
|
|
|
</el-select> |
|
|
|
</div> |
|
|
|
<div class="rowItem"> |
|
|
|
<el-text style="width: 4vw;">产品名称</el-text> |
|
|
|
<el-cascader v-model="searchData.goodsName" :options="productList" style="width: 10vw;" |
|
|
|
clearable/> |
|
|
|
clearable /> |
|
|
|
</div> |
|
|
|
<div class="rowItem" style="width: 30vw"> |
|
|
|
<el-text style="width: 4vw; margin-left: 0.5vw;">付款时间</el-text> |
|
|
|
<el-date-picker v-model="getTime" type="datetimerange" range-separator="至" |
|
|
|
start-placeholder="起始时间" end-placeholder="结束时间" style="width: 22vw; " |
|
|
|
@change="handleDatePickerChange" :default-time="defaultTime" |
|
|
|
:disabled-date="disabledDate"/> |
|
|
|
:disabled-date="disabledDate" /> |
|
|
|
</div> |
|
|
|
<!-- 地区财务查询/重置按钮 --> |
|
|
|
<div class="buttons"> |
|
|
|
@ -105,11 +105,11 @@ |
|
|
|
<span>{{ scope.$index + 1 + (pageInfo.pageNum - 1) * pageInfo.pageSize }}</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column fixed="left" prop="jwcode" label="Homily ID" width="110px"/> |
|
|
|
<el-table-column fixed="left" prop="name" label="姓名" width="110px"/> |
|
|
|
<el-table-column prop="marketName" label="所属地区" width="80px"/> |
|
|
|
<el-table-column prop="activity" label="活动名称" width="120px" show-overflow-tooltip/> |
|
|
|
<el-table-column prop="goodsName" label="产品名称" width="120px"/> |
|
|
|
<el-table-column fixed="left" prop="jwcode" label="Homily ID" width="110px" /> |
|
|
|
<el-table-column fixed="left" prop="name" label="姓名" width="110px" /> |
|
|
|
<el-table-column prop="marketName" label="所属地区" width="80px" /> |
|
|
|
<el-table-column prop="activity" label="活动名称" width="120px" show-overflow-tooltip /> |
|
|
|
<el-table-column prop="goodsName" label="产品名称" width="120px" /> |
|
|
|
<el-table-column prop="goodNum" label="产品数量" width="130px"> |
|
|
|
<template #default="scope"> |
|
|
|
<span v-if="scope.row.goodsName == '金币充值'">{{ scope.row.permanentGold }}</span> |
|
|
|
@ -138,7 +138,7 @@ |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="payType" label="支付方式" width="130px"></el-table-column> |
|
|
|
<el-table-column prop="payTime" label="付款时间" width="180px"/> |
|
|
|
<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" |
|
|
|
@ -156,8 +156,8 @@ |
|
|
|
show-overflow-tooltip></el-table-column> |
|
|
|
<!-- 地区财务专属:显示审核人信息 --> |
|
|
|
<el-table-column prop="auditName" label="审核人" |
|
|
|
v-if="activeTab == 'pass' || activeTab == 'reject' || activeTab == 'done'" |
|
|
|
width="150px" show-overflow-tooltip></el-table-column> |
|
|
|
v-if="activeTab == 'pass' || activeTab == 'reject' || activeTab == 'done'" width="150px" |
|
|
|
show-overflow-tooltip></el-table-column> |
|
|
|
<el-table-column prop="receivedTime" label="到账时间" |
|
|
|
v-if="activeTab == 'pass' || activeTab == 'done'" width="180px"></el-table-column> |
|
|
|
<el-table-column prop="remark" label="备注" v-if="activeTab != 'reject'" width="150px" |
|
|
|
@ -169,10 +169,9 @@ |
|
|
|
<span v-else>正常</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="auditTime" label="驳回时间" v-if="activeTab == 'reject'" |
|
|
|
width="180px" show-overflow-tooltip></el-table-column> |
|
|
|
<el-table-column prop="rejectReason" label="驳回理由" v-if="activeTab == 'reject'" |
|
|
|
width="150px"> |
|
|
|
<el-table-column prop="auditTime" label="驳回时间" v-if="activeTab == 'reject'" width="180px" |
|
|
|
show-overflow-tooltip></el-table-column> |
|
|
|
<el-table-column prop="rejectReason" label="驳回理由" v-if="activeTab == 'reject'" width="150px"> |
|
|
|
<template #default="scope"> |
|
|
|
<div class="ellipsis-container" |
|
|
|
@mouseenter="handleMouseEnter($event, scope.row.rejectReason)" |
|
|
|
@ -199,7 +198,8 @@ |
|
|
|
<el-link v-if="activeTab == 'wait'" style="color: #2741DE;" |
|
|
|
@click="openAuditForm(scope.row)">审核 |
|
|
|
</el-link> |
|
|
|
<el-link v-else-if="activeTab == 'pass' && !(scope.row.status == 6 || scope.row.status == 4)" |
|
|
|
<el-link |
|
|
|
v-else-if="activeTab == 'pass' && !(scope.row.status == 6 || scope.row.status == 4)" |
|
|
|
style="color: #2741DE;" @click="openEditForm(scope.row)">编辑 |
|
|
|
</el-link> |
|
|
|
</template> |
|
|
|
@ -221,47 +221,47 @@ |
|
|
|
<el-dialog class="adddialog" v-model="auditFormisible" width="20vw" :before-close="closeAuditForm"> |
|
|
|
<el-form class="addForm" label-width="4vw" label-position="left"> |
|
|
|
<el-form-item label="精网号"> |
|
|
|
<el-input disabled="true" v-model="auditFormData.jwcode" placeholder="请输入驳回理由"/> |
|
|
|
<el-input disabled="true" v-model="auditFormData.jwcode" placeholder="请输入驳回理由" /> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="客户姓名"> |
|
|
|
<el-input disabled="true" v-model="auditFormData.name" placeholder="请输入客户姓名"/> |
|
|
|
<el-input disabled="true" v-model="auditFormData.name" placeholder="请输入客户姓名" /> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="所属地区"> |
|
|
|
<el-input disabled="true" v-model="auditFormData.market"/> |
|
|
|
<el-input disabled="true" v-model="auditFormData.market" /> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="活动名称"> |
|
|
|
<el-input disabled="true" v-model="auditFormData.activity" placeholder="请输入活动名称"/> |
|
|
|
<el-input disabled="true" v-model="auditFormData.activity" placeholder="请输入活动名称" /> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="产品名称"> |
|
|
|
<el-select disabled="true" v-model="auditFormData.goodsName"/> |
|
|
|
<el-select disabled="true" v-model="auditFormData.goodsName" /> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="付款币种"> |
|
|
|
<el-select disabled="true" v-model="auditFormData.paymentCurrency" placeholder="请选择付款币种" |
|
|
|
@change="handleCurrencyChange"/> |
|
|
|
@change="handleCurrencyChange" /> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="付款金额"> |
|
|
|
<el-input disabled="true" v-model="auditFormData.paymentAmount" placeholder="请输入付款金额"/> |
|
|
|
<el-input disabled="true" v-model="auditFormData.paymentAmount" placeholder="请输入付款金额" /> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="支付方式"> |
|
|
|
<el-select disabled="true" v-model="auditFormData.payType" :items="paytypeOptions" |
|
|
|
placeholder="请选择支付方式"/> |
|
|
|
placeholder="请选择支付方式" /> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="到账地区"> |
|
|
|
<el-select disabled="true" v-model="auditFormData.receivedMarket" placeholder="到账地区"/> |
|
|
|
<el-select disabled="true" v-model="auditFormData.receivedMarket" placeholder="到账地区" /> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="付款时间"> |
|
|
|
<el-date-picker disabled="true" type="datetime" v-model="auditFormData.payTime" |
|
|
|
placeholder="请选择付款时间"/> |
|
|
|
placeholder="请选择付款时间" /> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="转账凭证"> |
|
|
|
<div class="pic"> |
|
|
|
<el-upload disabled="true" ref="uploadRef" class="uploader" :show-file-list="false" list-type="picture-card" |
|
|
|
:auto-upload="false" :before-upload="beforeUpload" :on-error="handelImgErr" |
|
|
|
:on-change="handleImageChange" :http-request="customUpload"> |
|
|
|
<el-upload disabled="true" ref="uploadRef" class="uploader" :show-file-list="false" |
|
|
|
list-type="picture-card" :auto-upload="false" :before-upload="beforeUpload" |
|
|
|
:on-error="handelImgErr" :on-change="handleImageChange" :http-request="customUpload"> |
|
|
|
<img v-if="auditFormData.voucher" :src="auditFormData.voucher" class="avatar" |
|
|
|
style="height: 100%; width: 100%; object-fit: cover;"/> |
|
|
|
style="height: 100%; width: 100%; object-fit: cover;" /> |
|
|
|
<el-icon v-else class="avatar-uploader-icon"> |
|
|
|
<Plus/> |
|
|
|
<Plus /> |
|
|
|
</el-icon> |
|
|
|
</el-upload> |
|
|
|
<el-text class="picText"> |
|
|
|
@ -271,11 +271,11 @@ |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="备注"> |
|
|
|
<el-input disabled="true" v-model="auditFormData.remark" type="textarea" :rows="3" |
|
|
|
placeholder="请输入备注" maxlength="100" show-word-limit/> |
|
|
|
placeholder="请输入备注" maxlength="100" show-word-limit /> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="驳回理由" v-if="ifReject" required> |
|
|
|
<el-input v-model="auditFormData.rejectReason" type="textarea" :rows="3" placeholder="请输入驳回理由" |
|
|
|
maxlength="100" show-word-limit/> |
|
|
|
maxlength="100" show-word-limit /> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
<template #footer> |
|
|
|
@ -301,16 +301,16 @@ |
|
|
|
<div class="left"> |
|
|
|
<el-form class="editForm" label-width="4.5vw" label-position="left"> |
|
|
|
<el-form-item label="精网号"> |
|
|
|
<el-input disabled="true" v-model="editFormData.jwcode" placeholder="请输入驳回理由"/> |
|
|
|
<el-input disabled="true" v-model="editFormData.jwcode" placeholder="请输入驳回理由" /> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="客户姓名"> |
|
|
|
<el-input disabled="true" v-model="editFormData.name" placeholder="请输入客户姓名"/> |
|
|
|
<el-input disabled="true" v-model="editFormData.name" placeholder="请输入客户姓名" /> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="所属地区"> |
|
|
|
<el-input disabled="true" v-model="editFormData.marketName" placeholder="请输入所属地区"/> |
|
|
|
<el-input disabled="true" v-model="editFormData.marketName" placeholder="请输入所属地区" /> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="活动名称"> |
|
|
|
<el-input disabled="true" v-model="editFormData.activity" placeholder="请输入活动名称"/> |
|
|
|
<el-input disabled="true" v-model="editFormData.activity" placeholder="请输入活动名称" /> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="产品名称"> |
|
|
|
<el-select disabled="true" v-model="editFormData.goodsName" placeholder="请选择产品名称" |
|
|
|
@ -319,7 +319,7 @@ |
|
|
|
<el-form-item v-show="!isEditGold" label="产品数量"> |
|
|
|
<div style="padding-right: 50px; display: flex;"> |
|
|
|
<el-input disabled="true" style="padding-right: 10px;" v-model="editFormData.goodNum" |
|
|
|
placeholder="请输入产品数量"/> |
|
|
|
placeholder="请输入产品数量" /> |
|
|
|
<span style="color: #999999;">个</span> |
|
|
|
</div> |
|
|
|
</el-form-item> |
|
|
|
@ -329,23 +329,23 @@ |
|
|
|
style="color: #999999; display: flex; white-space: nowrap;align-items: center;">永久金币:</span> |
|
|
|
<el-input disabled="true" |
|
|
|
style="padding-right: 10px; padding-left: 10px; height: 30px; width: 110px;" |
|
|
|
v-model="editFormData.permanentGold"/> |
|
|
|
v-model="editFormData.permanentGold" /> |
|
|
|
</div> |
|
|
|
<div style="padding-right: 5px; display: flex;"> |
|
|
|
<span |
|
|
|
style="color: #999999; display: flex; white-space: nowrap;align-items: center;">免费金币:</span> |
|
|
|
<el-input disabled="true" |
|
|
|
style="padding-right: 10px; padding-left: 10px; height: 30px; width: 110px;" |
|
|
|
v-model="editFormData.freeGold"/> |
|
|
|
v-model="editFormData.freeGold" /> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<el-form-item label="付款币种"> |
|
|
|
<CurrencySelect :disabled="!ifOnline" v-model="editFormData.paymentCurrency" |
|
|
|
:items="customOptions" placeholder="请选择付款币种"/> |
|
|
|
:items="customOptions" placeholder="请选择付款币种" /> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="付款金额"> |
|
|
|
<el-input :disabled="!ifOnline" v-model="editFormData.paymentAmount" |
|
|
|
placeholder="请输入付款金额"/> |
|
|
|
placeholder="请输入付款金额" /> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="支付方式"> |
|
|
|
<el-select disabled="true" v-model="editFormData.payType" placeholder="请选择支付方式" |
|
|
|
@ -357,7 +357,7 @@ |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="付款时间"> |
|
|
|
<el-date-picker disabled="true" type="datetime" v-model="editFormData.payTime" |
|
|
|
placeholder="请选择付款时间"/> |
|
|
|
placeholder="请选择付款时间" /> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="转账凭证"> |
|
|
|
<div class="pic"> |
|
|
|
@ -366,9 +366,9 @@ |
|
|
|
:on-error="handelImgErr" :on-change="handleImageChange" |
|
|
|
:http-request="customUpload"> |
|
|
|
<img v-if="editFormData.voucher" :src="editFormData.voucher" class="avatar" |
|
|
|
style="height: 100%; width: 100%; object-fit: cover;"/> |
|
|
|
style="height: 100%; width: 100%; object-fit: cover;" /> |
|
|
|
<el-icon v-else class="avatar-uploader-icon"> |
|
|
|
<Plus/> |
|
|
|
<Plus /> |
|
|
|
</el-icon> |
|
|
|
</el-upload> |
|
|
|
<el-text class="picText"> |
|
|
|
@ -378,7 +378,7 @@ |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="备注"> |
|
|
|
<el-input disabled="true" v-model="editFormData.remark" type="textarea" :rows="4" |
|
|
|
placeholder="请输入驳回理由" maxlength="100" show-word-limit/> |
|
|
|
placeholder="请输入驳回理由" maxlength="100" show-word-limit /> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
</div> |
|
|
|
@ -387,16 +387,16 @@ |
|
|
|
label-width="4.5vw" label-position="left"> |
|
|
|
<el-form-item label="到账货币"> |
|
|
|
<CurrencySelect v-model="editFormData.receivedCurrency" :items="customOptions" |
|
|
|
placeholder="请选择到账货币"/> |
|
|
|
placeholder="请选择到账货币" /> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="到账金额" prop="receivedAmount"> |
|
|
|
<el-input v-model="editFormData.receivedAmount" placeholder="请输入到账金额"/> |
|
|
|
<el-input v-model="editFormData.receivedAmount" placeholder="请输入到账金额" /> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="手续费" prop="handlingCharge"> |
|
|
|
<el-input v-model="editFormData.handlingCharge" placeholder="请输入手续费"/> |
|
|
|
<el-input v-model="editFormData.handlingCharge" placeholder="请输入手续费" /> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="到账时间"> |
|
|
|
<el-date-picker type="datetime" v-model="editFormData.receivedTime" placeholder="请输入到账时间"/> |
|
|
|
<el-date-picker type="datetime" v-model="editFormData.receivedTime" placeholder="请输入到账时间" /> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
<span class="editBtns"> |
|
|
|
@ -419,20 +419,26 @@ |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
<script setup> |
|
|
|
import {ref, watch, computed, onMounted} from 'vue'; |
|
|
|
import {storeToRefs} from 'pinia'; |
|
|
|
import {ElMessage, ElMessageBox} from 'element-plus' |
|
|
|
import { ref, watch, computed, onMounted } from 'vue'; |
|
|
|
import { storeToRefs } from 'pinia'; |
|
|
|
import { ElMessage, ElMessageBox } from 'element-plus' |
|
|
|
import API from '@/util/http.js' |
|
|
|
import request from '@/util/http.js' |
|
|
|
import moment from 'moment' |
|
|
|
import {useAdminStore} from '@/store/index.js' |
|
|
|
import {hasMenuPermission} from '@/utils/menuTreePermission.js' |
|
|
|
import { useAdminStore } from '@/store/index.js' |
|
|
|
import { hasMenuPermission } from '@/utils/menuTreePermission.js' |
|
|
|
|
|
|
|
import _ from 'lodash' |
|
|
|
import {editFormRule} from './utils/recriveFormRules.js' |
|
|
|
import { productList,MarketNameForId,CurrencyForId,marketList,statusList} from './utils/staticData.js' |
|
|
|
import { editFormRule } from './utils/recriveFormRules.js' |
|
|
|
import { productList, MarketNameForId, CurrencyForId, marketList, statusList } from './utils/staticData.js' |
|
|
|
import CurrencySelect from '@/components/MoneyManage/CurrencySelect.vue' |
|
|
|
import {Plus} from '@element-plus/icons-vue'; |
|
|
|
import { Plus } from '@element-plus/icons-vue'; |
|
|
|
|
|
|
|
|
|
|
|
// ===================== 1. 核心状态管理(仅地区财务) ===================== |
|
|
|
const adminStore = useAdminStore(); |
|
|
|
const { menuTree } = storeToRefs(adminStore); |
|
|
|
|
|
|
|
|
|
|
|
//===================== 查询相关 ================================= |
|
|
|
const tableData = ref([]) |
|
|
|
@ -444,9 +450,9 @@ const defaultTime = [ |
|
|
|
const getTime = ref([]) |
|
|
|
|
|
|
|
// 空函数占位(原模板引用但未定义,避免报错) |
|
|
|
const handleDatePickerChange = ref(() => {}) |
|
|
|
const disabledDate = ref(() => {}) |
|
|
|
const handleSortChange = ref(() => {}) |
|
|
|
const handleDatePickerChange = ref(() => { }) |
|
|
|
const disabledDate = ref(() => { }) |
|
|
|
const handleSortChange = ref(() => { }) |
|
|
|
|
|
|
|
const search = () => { |
|
|
|
getlist() |
|
|
|
@ -862,9 +868,9 @@ onMounted(async function () { |
|
|
|
// 地区财务权限校验(菜单ID:78) |
|
|
|
if (hasMenuPermission(menuTree.value, 78)) { |
|
|
|
// 管理员账号所属地区提示 |
|
|
|
if(adminData.value.roleId == 2 && (adminData.value.markets == '总部' || adminData.value.markets == '研发部')){ |
|
|
|
ElMessageBox.alert('管理员账号只能看到所属地区对应地区财务数据,请注意设置所属地区','注意',{ |
|
|
|
type:'warning' |
|
|
|
if (adminData.value.roleId == 2 && (adminData.value.markets == '总部' || adminData.value.markets == '研发部')) { |
|
|
|
ElMessageBox.alert('管理员账号只能看到所属地区对应地区财务数据,请注意设置所属地区', '注意', { |
|
|
|
type: 'warning' |
|
|
|
}) |
|
|
|
} |
|
|
|
getlist() |
|
|
|
|