|
@ -7,8 +7,8 @@ import { ElMessageBox } from "element-plus"; |
|
|
import API from "../../api/index.js"; |
|
|
import API from "../../api/index.js"; |
|
|
import moment from "moment"; |
|
|
import moment from "moment"; |
|
|
import { range, re } from "mathjs"; |
|
|
import { range, re } from "mathjs"; |
|
|
import * as xlsx from 'xlsx'; |
|
|
|
|
|
import _ from 'lodash'; |
|
|
|
|
|
|
|
|
import * as xlsx from "xlsx"; |
|
|
|
|
|
import _ from "lodash"; |
|
|
|
|
|
|
|
|
// 这是添加上传图片的接口 |
|
|
// 这是添加上传图片的接口 |
|
|
const imageUrl = ref(""); |
|
|
const imageUrl = ref(""); |
|
@ -398,7 +398,7 @@ const addLine = function () { |
|
|
showInput: true, |
|
|
showInput: true, |
|
|
}); |
|
|
}); |
|
|
}; |
|
|
}; |
|
|
const loading = ref(false); |
|
|
|
|
|
|
|
|
const loading = ref(true); |
|
|
// 添加多行 |
|
|
// 添加多行 |
|
|
// const addLines = async function () { |
|
|
// const addLines = async function () { |
|
|
// try { |
|
|
// try { |
|
@ -415,23 +415,16 @@ const loading = ref(false); |
|
|
// } |
|
|
// } |
|
|
// } |
|
|
// } |
|
|
const addLines = async function () { |
|
|
const addLines = async function () { |
|
|
|
|
|
loading.value = true; |
|
|
try { |
|
|
try { |
|
|
loading.value = true; // 操作开始前,将loading设为true,显示加载动画 |
|
|
|
|
|
|
|
|
// 操作开始前,将loading设为true,显示加载动画 |
|
|
await nextTick(); // 等待视图更新,确保加载动画能及时显示出来 |
|
|
await nextTick(); // 等待视图更新,确保加载动画能及时显示出来 |
|
|
|
|
|
|
|
|
const addLinesPromises = []; |
|
|
|
|
|
for (let j = 0; j < addLineObj.value; j++) { |
|
|
for (let j = 0; j < addLineObj.value; j++) { |
|
|
addLinesPromises.push( |
|
|
|
|
|
new Promise((resolve) => { |
|
|
|
|
|
batchData.value.unshift({ |
|
|
|
|
|
line: ++i.value, |
|
|
|
|
|
showInput: true, |
|
|
|
|
|
}); |
|
|
|
|
|
resolve(); |
|
|
|
|
|
}) |
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
batchData.value.unshift({ |
|
|
|
|
|
line: ++i.value, |
|
|
|
|
|
showInput: true, |
|
|
|
|
|
}); |
|
|
} |
|
|
} |
|
|
await Promise.all(addLinesPromises); |
|
|
|
|
|
|
|
|
|
|
|
// 所有数据添加操作完成后,准备关闭加载动画 |
|
|
// 所有数据添加操作完成后,准备关闭加载动画 |
|
|
await nextTick(); // 再次等待视图更新,确保数据添加操作引起的视图变化已完成 |
|
|
await nextTick(); // 再次等待视图更新,确保数据添加操作引起的视图变化已完成 |
|
@ -646,7 +639,7 @@ const handleBatchAvatarSuccess = (response, uploadFile) => { |
|
|
//批量充值确认按钮 |
|
|
//批量充值确认按钮 |
|
|
const batchAdd = async function () { |
|
|
const batchAdd = async function () { |
|
|
console.log("batchData===", batchData.value); |
|
|
console.log("batchData===", batchData.value); |
|
|
let msg = ''; |
|
|
|
|
|
|
|
|
let msg = ""; |
|
|
if (batchData.value.length == 0) { |
|
|
if (batchData.value.length == 0) { |
|
|
ElMessage({ |
|
|
ElMessage({ |
|
|
type: "error", |
|
|
type: "error", |
|
@ -658,34 +651,34 @@ const batchAdd = async function () { |
|
|
batchData.value[i].adminId = adminData.value.adminId; |
|
|
batchData.value[i].adminId = adminData.value.adminId; |
|
|
batchData.value[i].area = adminData.value.area; |
|
|
batchData.value[i].area = adminData.value.area; |
|
|
batchData.value[i].rechargeWay = "客服充值"; |
|
|
batchData.value[i].rechargeWay = "客服充值"; |
|
|
if ( |
|
|
|
|
|
batchData.value[i].jwcode == "" || |
|
|
|
|
|
batchData.value[i].jwcode == null) { |
|
|
|
|
|
|
|
|
if (batchData.value[i].jwcode == "" || batchData.value[i].jwcode == null) { |
|
|
msg += `精网号不能为空! <br/>`; |
|
|
msg += `精网号不能为空! <br/>`; |
|
|
} |
|
|
} |
|
|
if ( |
|
|
if ( |
|
|
batchData.value[i].activityId == "" || |
|
|
batchData.value[i].activityId == "" || |
|
|
batchData.value[i].activityId == null) { |
|
|
|
|
|
|
|
|
batchData.value[i].activityId == null |
|
|
|
|
|
) { |
|
|
msg += `活动不能为空! <br/>`; |
|
|
msg += `活动不能为空! <br/>`; |
|
|
} |
|
|
} |
|
|
if ( |
|
|
if ( |
|
|
batchData.value[i].paidGold == "" || |
|
|
batchData.value[i].paidGold == "" || |
|
|
batchData.value[i].paidGold == null) { |
|
|
|
|
|
|
|
|
batchData.value[i].paidGold == null |
|
|
|
|
|
) { |
|
|
msg += `充值金币不能为空! <br/>`; |
|
|
msg += `充值金币不能为空! <br/>`; |
|
|
} |
|
|
} |
|
|
if ( |
|
|
if ( |
|
|
batchData.value[i].rechargeGold == "" || |
|
|
batchData.value[i].rechargeGold == "" || |
|
|
batchData.value[i].rechargeGold == null) { |
|
|
|
|
|
|
|
|
batchData.value[i].rechargeGold == null |
|
|
|
|
|
) { |
|
|
msg += `充值金额不能为空! <br/>`; |
|
|
msg += `充值金额不能为空! <br/>`; |
|
|
} |
|
|
} |
|
|
if ( |
|
|
|
|
|
batchData.value[i].payWay == "" || |
|
|
|
|
|
batchData.value[i].payWay == null) { |
|
|
|
|
|
|
|
|
if (batchData.value[i].payWay == "" || batchData.value[i].payWay == null) { |
|
|
msg += `收款方式不能为空! <br/>`; |
|
|
msg += `收款方式不能为空! <br/>`; |
|
|
} |
|
|
} |
|
|
if ( |
|
|
if ( |
|
|
batchData.value[i].rechargeTime == "" || |
|
|
batchData.value[i].rechargeTime == "" || |
|
|
batchData.value[i].rechargeTime == null) { |
|
|
|
|
|
|
|
|
batchData.value[i].rechargeTime == null |
|
|
|
|
|
) { |
|
|
msg += `交款时间不能为空! <br/>`; |
|
|
msg += `交款时间不能为空! <br/>`; |
|
|
} |
|
|
} |
|
|
ElMessage({ |
|
|
ElMessage({ |
|
@ -831,14 +824,36 @@ onMounted(async function () { |
|
|
<el-button type="primary" plain @click="batchInit()">批量充值</el-button> |
|
|
<el-button type="primary" plain @click="batchInit()">批量充值</el-button> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<el-form :model="addRecharge" ref="Ref" :rules="rules" label-width="auto" style="max-width: 600px" class="add-form"> |
|
|
|
|
|
|
|
|
<el-form |
|
|
|
|
|
:model="addRecharge" |
|
|
|
|
|
ref="Ref" |
|
|
|
|
|
:rules="rules" |
|
|
|
|
|
label-width="auto" |
|
|
|
|
|
style="max-width: 600px" |
|
|
|
|
|
class="add-form" |
|
|
|
|
|
> |
|
|
<el-form-item prop="jwcode" label="精网号"> |
|
|
<el-form-item prop="jwcode" label="精网号"> |
|
|
<el-input v-model="addRecharge.jwcode" style="width: 220px" /> |
|
|
<el-input v-model="addRecharge.jwcode" style="width: 220px" /> |
|
|
<el-button type="primary" @click="getUser(addRecharge.jwcode)" style="margin-left: 20px">查询</el-button> |
|
|
|
|
|
|
|
|
<el-button |
|
|
|
|
|
type="primary" |
|
|
|
|
|
@click="getUser(addRecharge.jwcode)" |
|
|
|
|
|
style="margin-left: 20px" |
|
|
|
|
|
>查询</el-button |
|
|
|
|
|
> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item prop="activityId" label="活动名称"> |
|
|
<el-form-item prop="activityId" label="活动名称"> |
|
|
<el-select v-model="addRecharge.activityId" placeholder="请选择" style="width: 300px" @change="handleActivityChange"> |
|
|
|
|
|
<el-option v-for="item in activity" :key="item.value" :label="item.activityName" :value="item.activityId" /> |
|
|
|
|
|
|
|
|
<el-select |
|
|
|
|
|
v-model="addRecharge.activityId" |
|
|
|
|
|
placeholder="请选择" |
|
|
|
|
|
style="width: 300px" |
|
|
|
|
|
@change="handleActivityChange" |
|
|
|
|
|
> |
|
|
|
|
|
<el-option |
|
|
|
|
|
v-for="item in activity" |
|
|
|
|
|
:key="item.value" |
|
|
|
|
|
:label="item.activityName" |
|
|
|
|
|
:value="item.activityId" |
|
|
|
|
|
/> |
|
|
</el-select> |
|
|
</el-select> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item prop="paidGold" label="充值金币"> |
|
|
<el-form-item prop="paidGold" label="充值金币"> |
|
@ -849,24 +864,66 @@ onMounted(async function () { |
|
|
<p>个</p> |
|
|
<p>个</p> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item prop="rechargeGold" label="充值金额"> |
|
|
<el-form-item prop="rechargeGold" label="充值金额"> |
|
|
<el-select prop="rechargeGold" v-model="Rate" placeholder="货币名称" style="width: 95px; margin-right: 5px"> |
|
|
|
|
|
<el-option v-for="item in currency" :key="item.value" :label="item.currency" :value="item.exchangeRate" /> |
|
|
|
|
|
|
|
|
<el-select |
|
|
|
|
|
prop="rechargeGold" |
|
|
|
|
|
v-model="Rate" |
|
|
|
|
|
placeholder="货币名称" |
|
|
|
|
|
style="width: 95px; margin-right: 5px" |
|
|
|
|
|
> |
|
|
|
|
|
<el-option |
|
|
|
|
|
v-for="item in currency" |
|
|
|
|
|
:key="item.value" |
|
|
|
|
|
:label="item.currency" |
|
|
|
|
|
:value="item.exchangeRate" |
|
|
|
|
|
/> |
|
|
</el-select> |
|
|
</el-select> |
|
|
<el-input v-model="addRecharge.rechargeGold" style="width: 200px" /> |
|
|
<el-input v-model="addRecharge.rechargeGold" style="width: 200px" /> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item prop="payWay" label="收款方式"> |
|
|
<el-form-item prop="payWay" label="收款方式"> |
|
|
<el-select v-model="addRecharge.payWay" placeholder="请选择" style="width: 300px"> |
|
|
|
|
|
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" /> |
|
|
|
|
|
|
|
|
<el-select |
|
|
|
|
|
v-model="addRecharge.payWay" |
|
|
|
|
|
placeholder="请选择" |
|
|
|
|
|
style="width: 300px" |
|
|
|
|
|
> |
|
|
|
|
|
<el-option |
|
|
|
|
|
v-for="item in options" |
|
|
|
|
|
:key="item.value" |
|
|
|
|
|
:label="item.label" |
|
|
|
|
|
:value="item.value" |
|
|
|
|
|
/> |
|
|
</el-select> |
|
|
</el-select> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item prop="rechargeTime" label="交款时间"> |
|
|
<el-form-item prop="rechargeTime" label="交款时间"> |
|
|
<el-date-picker v-model="addRecharge.rechargeTime" type="date" style="width: 300px" /> |
|
|
|
|
|
|
|
|
<el-date-picker |
|
|
|
|
|
v-model="addRecharge.rechargeTime" |
|
|
|
|
|
type="date" |
|
|
|
|
|
style="width: 300px" |
|
|
|
|
|
/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item prop="rechargeVoucher" label="交款凭证" style="margin-bottom: 5px"> |
|
|
|
|
|
<el-upload action="http://192.168.8.93:10010/upload" class="avatar-uploader" :show-file-list="false" |
|
|
|
|
|
:on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload" style="width: 100px; height: 115px"> |
|
|
|
|
|
<img v-if="imageUrl" :src="imageUrl" class="avatar" style="width: 100px; height: 115px" /> |
|
|
|
|
|
<el-icon v-else class="avatar-uploader-icon" style="width: 100px; height: 100px"> |
|
|
|
|
|
|
|
|
<el-form-item |
|
|
|
|
|
prop="rechargeVoucher" |
|
|
|
|
|
label="交款凭证" |
|
|
|
|
|
style="margin-bottom: 5px" |
|
|
|
|
|
> |
|
|
|
|
|
<el-upload |
|
|
|
|
|
action="http://192.168.8.93:10010/upload" |
|
|
|
|
|
class="avatar-uploader" |
|
|
|
|
|
:show-file-list="false" |
|
|
|
|
|
:on-success="handleAvatarSuccess" |
|
|
|
|
|
:before-upload="beforeAvatarUpload" |
|
|
|
|
|
style="width: 100px; height: 115px" |
|
|
|
|
|
> |
|
|
|
|
|
<img |
|
|
|
|
|
v-if="imageUrl" |
|
|
|
|
|
:src="imageUrl" |
|
|
|
|
|
class="avatar" |
|
|
|
|
|
style="width: 100px; height: 115px" |
|
|
|
|
|
/> |
|
|
|
|
|
<el-icon |
|
|
|
|
|
v-else |
|
|
|
|
|
class="avatar-uploader-icon" |
|
|
|
|
|
style="width: 100px; height: 100px" |
|
|
|
|
|
> |
|
|
<Plus /> |
|
|
<Plus /> |
|
|
</el-icon> |
|
|
</el-icon> |
|
|
</el-upload> |
|
|
</el-upload> |
|
@ -875,19 +932,41 @@ onMounted(async function () { |
|
|
</p> |
|
|
</p> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item prop="remark" label="备注"> |
|
|
<el-form-item prop="remark" label="备注"> |
|
|
<el-input v-model="addRecharge.remark" style="width: 300px" :rows="2" maxlength="100" show-word-limit |
|
|
|
|
|
type="textarea" /> |
|
|
|
|
|
|
|
|
<el-input |
|
|
|
|
|
v-model="addRecharge.remark" |
|
|
|
|
|
style="width: 300px" |
|
|
|
|
|
:rows="2" |
|
|
|
|
|
maxlength="100" |
|
|
|
|
|
show-word-limit |
|
|
|
|
|
type="textarea" |
|
|
|
|
|
/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item prop="submitter" label="提交人"> |
|
|
<el-form-item prop="submitter" label="提交人"> |
|
|
<el-input style="width: 300px" :value="adminData.name" disabled placeholder="提交人姓名" /> |
|
|
|
|
|
|
|
|
<el-input |
|
|
|
|
|
style="width: 300px" |
|
|
|
|
|
:value="adminData.name" |
|
|
|
|
|
disabled |
|
|
|
|
|
placeholder="提交人姓名" |
|
|
|
|
|
/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-button @click="deleteRecharge" style="margin-left: 280px">重置</el-button> |
|
|
|
|
|
|
|
|
<el-button @click="deleteRecharge" style="margin-left: 280px" |
|
|
|
|
|
>重置</el-button |
|
|
|
|
|
> |
|
|
<el-button type="primary" @click="addBefore"> 提交 </el-button> |
|
|
<el-button type="primary" @click="addBefore"> 提交 </el-button> |
|
|
</el-form> |
|
|
</el-form> |
|
|
|
|
|
|
|
|
<!-- 客户信息栏 --> |
|
|
<!-- 客户信息栏 --> |
|
|
<el-card style="width: 1200px; float: right" class="customer-info" width="3000px"> |
|
|
|
|
|
<el-form :model="user" label-width="auto" style="max-width: 1200px" label-position="left"> |
|
|
|
|
|
|
|
|
<el-card |
|
|
|
|
|
style="width: 1200px; float: right" |
|
|
|
|
|
class="customer-info" |
|
|
|
|
|
width="3000px" |
|
|
|
|
|
> |
|
|
|
|
|
<el-form |
|
|
|
|
|
:model="user" |
|
|
|
|
|
label-width="auto" |
|
|
|
|
|
style="max-width: 1200px" |
|
|
|
|
|
label-position="left" |
|
|
|
|
|
> |
|
|
<el-text size="large" style="margin-left: 20px">客户信息</el-text> |
|
|
<el-text size="large" style="margin-left: 20px">客户信息</el-text> |
|
|
<el-row style="margin-top: 20px"> |
|
|
<el-row style="margin-top: 20px"> |
|
|
<el-col :span="10"> |
|
|
<el-col :span="10"> |
|
@ -910,10 +989,13 @@ onMounted(async function () { |
|
|
<span style="color: #2fa1ff; margin-right: 5px" v-if="user.buyJb">{{ |
|
|
<span style="color: #2fa1ff; margin-right: 5px" v-if="user.buyJb">{{ |
|
|
user.buyJb + user.free6 + user.free12 + user.coreJb |
|
|
user.buyJb + user.free6 + user.free12 + user.coreJb |
|
|
}}</span> |
|
|
}}</span> |
|
|
<span style="display: inline; white-space: nowrap; color: #b1b1b1" v-if="user.buyJb">(充值金币:{{ user.buyJb |
|
|
|
|
|
}};免费金币:{{ |
|
|
|
|
|
|
|
|
<span |
|
|
|
|
|
style="display: inline; white-space: nowrap; color: #b1b1b1" |
|
|
|
|
|
v-if="user.buyJb" |
|
|
|
|
|
>(充值金币:{{ user.buyJb }};免费金币:{{ |
|
|
user.free6 + user.free12 |
|
|
user.free6 + user.free12 |
|
|
}};任务金币:{{ user.coreJb }})</span> |
|
|
|
|
|
|
|
|
}};任务金币:{{ user.coreJb }})</span |
|
|
|
|
|
> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</el-col> |
|
|
</el-col> |
|
|
<el-col :span="10"> |
|
|
<el-col :span="10"> |
|
@ -954,26 +1036,49 @@ onMounted(async function () { |
|
|
</el-form> |
|
|
</el-form> |
|
|
</el-card> |
|
|
</el-card> |
|
|
|
|
|
|
|
|
<el-dialog v-model="batchRechargeVisible" title="批量充值" width="1800px" style="height: 700px" |
|
|
|
|
|
:close-on-click-modal="false"> |
|
|
|
|
|
|
|
|
<el-dialog |
|
|
|
|
|
v-model="batchRechargeVisible" |
|
|
|
|
|
title="批量充值" |
|
|
|
|
|
width="1800px" |
|
|
|
|
|
style="height: 700px" |
|
|
|
|
|
:close-on-click-modal="false" |
|
|
|
|
|
> |
|
|
<el-row style="margin-bottom: 10px"> |
|
|
<el-row style="margin-bottom: 10px"> |
|
|
<!-- <el-button type="primary" @click="addLine()" style="margin-right: 10px">新增一行</el-button> --> |
|
|
<!-- <el-button type="primary" @click="addLine()" style="margin-right: 10px">新增一行</el-button> --> |
|
|
<div style="font-weight: bold; font-size: 20px"> |
|
|
<div style="font-weight: bold; font-size: 20px"> |
|
|
<span>添加</span> |
|
|
<span>添加</span> |
|
|
<el-input style="width: 60px" v-model="addLineObj"></el-input> |
|
|
<el-input style="width: 60px" v-model="addLineObj"></el-input> |
|
|
<span>行</span> |
|
|
<span>行</span> |
|
|
<el-button type="primary" @click="addLines()" style="margin-right: 10px">添加</el-button> |
|
|
|
|
|
|
|
|
<el-button type="primary" @click="addLines()" style="margin-right: 10px" |
|
|
|
|
|
>添加</el-button |
|
|
|
|
|
> |
|
|
</div> |
|
|
</div> |
|
|
<el-button type="warning" @click="batchSettingInit()" style="margin-right: 10px">批量设置</el-button> |
|
|
|
|
|
|
|
|
<el-button |
|
|
|
|
|
type="warning" |
|
|
|
|
|
@click="batchSettingInit()" |
|
|
|
|
|
style="margin-right: 10px" |
|
|
|
|
|
>批量设置</el-button |
|
|
|
|
|
> |
|
|
<!-- <el-upload :ref="(el) => handleSetUploadRefMap(el)" action="" :http-request="httpExcelRequest" :limit="1" :show-file-list="false" |
|
|
<!-- <el-upload :ref="(el) => handleSetUploadRefMap(el)" action="" :http-request="httpExcelRequest" :limit="1" :show-file-list="false" |
|
|
class="uploadExcelContent" :data={} style="margin-right: auto"> |
|
|
class="uploadExcelContent" :data={} style="margin-right: auto"> |
|
|
<el-button type="success" >导入jwcode</el-button> |
|
|
<el-button type="success" >导入jwcode</el-button> |
|
|
</el-upload> --> |
|
|
</el-upload> --> |
|
|
<el-button type="danger" plain @click="batchDel()" style="margin-right: 10px; width: 130px">批量删除</el-button> |
|
|
|
|
|
|
|
|
<el-button |
|
|
|
|
|
type="danger" |
|
|
|
|
|
plain |
|
|
|
|
|
@click="batchDel()" |
|
|
|
|
|
style="margin-right: 10px; width: 130px" |
|
|
|
|
|
>批量删除</el-button |
|
|
|
|
|
> |
|
|
</el-row> |
|
|
</el-row> |
|
|
<el-row> |
|
|
<el-row> |
|
|
<el-table v-loading="loading" :data="batchData" border max-height="540px" style="height: 540px" |
|
|
|
|
|
@selection-change="handleSelectionChangebatch"> |
|
|
|
|
|
|
|
|
<el-table |
|
|
|
|
|
:data="batchData" |
|
|
|
|
|
border |
|
|
|
|
|
max-height="540px" |
|
|
|
|
|
style="height: 540px" |
|
|
|
|
|
@selection-change="handleSelectionChangebatch" |
|
|
|
|
|
> |
|
|
<el-table-column type="selection" width="50px" /> |
|
|
<el-table-column type="selection" width="50px" /> |
|
|
<el-table-column property="index" label="序号" width="55px"> |
|
|
<el-table-column property="index" label="序号" width="55px"> |
|
|
<template #default="scope"> |
|
|
<template #default="scope"> |
|
@ -986,18 +1091,35 @@ onMounted(async function () { |
|
|
<span v-else>{{ scope.row.jwcode }}</span> |
|
|
<span v-else>{{ scope.row.jwcode }}</span> |
|
|
</template> --> |
|
|
</template> --> |
|
|
<template #default="scope"> |
|
|
<template #default="scope"> |
|
|
<el-select-v2 v-if="scope.row.showInput" filterable clearable v-model="scope.row.jwcode" |
|
|
|
|
|
placeholder="请选择精网号" style="widows: 110px;" :options="jwcodeList"> |
|
|
|
|
|
|
|
|
<el-select-v2 |
|
|
|
|
|
v-if="scope.row.showInput" |
|
|
|
|
|
filterable |
|
|
|
|
|
clearable |
|
|
|
|
|
v-model="scope.row.jwcode" |
|
|
|
|
|
placeholder="请选择精网号" |
|
|
|
|
|
style="widows: 110px" |
|
|
|
|
|
:options="jwcodeList" |
|
|
|
|
|
> |
|
|
</el-select-v2> |
|
|
</el-select-v2> |
|
|
<span v-else>{{ scope.row.jwcode }}</span> |
|
|
<span v-else>{{ scope.row.jwcode }}</span> |
|
|
</template> |
|
|
</template> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
<el-table-column property="activityName" label="活动名称" width="150px"> |
|
|
<el-table-column property="activityName" label="活动名称" width="150px"> |
|
|
<template #default="scope"> |
|
|
<template #default="scope"> |
|
|
<el-select v-if="scope.row.showInput" filterable clearable v-model="scope.row.activityId" |
|
|
|
|
|
placeholder="请选择活动名称" @change="changeActivity(scope.row)"> |
|
|
|
|
|
<el-option v-for="item in activity" :key="item.activityId" :label="item.activityName" |
|
|
|
|
|
:value="item.activityId"> |
|
|
|
|
|
|
|
|
<el-select |
|
|
|
|
|
v-if="scope.row.showInput" |
|
|
|
|
|
filterable |
|
|
|
|
|
clearable |
|
|
|
|
|
v-model="scope.row.activityId" |
|
|
|
|
|
placeholder="请选择活动名称" |
|
|
|
|
|
@change="changeActivity(scope.row)" |
|
|
|
|
|
> |
|
|
|
|
|
<el-option |
|
|
|
|
|
v-for="item in activity" |
|
|
|
|
|
:key="item.activityId" |
|
|
|
|
|
:label="item.activityName" |
|
|
|
|
|
:value="item.activityId" |
|
|
|
|
|
> |
|
|
</el-option> |
|
|
</el-option> |
|
|
</el-select> |
|
|
</el-select> |
|
|
<span v-else>{{ scope.row.activityName }}</span> |
|
|
<span v-else>{{ scope.row.activityName }}</span> |
|
@ -1005,23 +1127,41 @@ onMounted(async function () { |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
<el-table-column property="paidGold" label="充值金币" width="110px"> |
|
|
<el-table-column property="paidGold" label="充值金币" width="110px"> |
|
|
<template #default="scope"> |
|
|
<template #default="scope"> |
|
|
<el-input v-if="scope.row.showInput" v-model="scope.row.paidGold" style="width: 70px" |
|
|
|
|
|
@change="changePaidGold(scope.row)" /> |
|
|
|
|
|
|
|
|
<el-input |
|
|
|
|
|
v-if="scope.row.showInput" |
|
|
|
|
|
v-model="scope.row.paidGold" |
|
|
|
|
|
style="width: 70px" |
|
|
|
|
|
@change="changePaidGold(scope.row)" |
|
|
|
|
|
/> |
|
|
<span v-else>{{ scope.row.paidGold }}</span> |
|
|
<span v-else>{{ scope.row.paidGold }}</span> |
|
|
</template> |
|
|
</template> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
<el-table-column property="freeGold" label="免费金币" width="110px"> |
|
|
<el-table-column property="freeGold" label="免费金币" width="110px"> |
|
|
<template #default="scope"> |
|
|
<template #default="scope"> |
|
|
<el-input v-if="scope.row.showInput" v-model="scope.row.freeGold" style="width: 70px" /> |
|
|
|
|
|
|
|
|
<el-input |
|
|
|
|
|
v-if="scope.row.showInput" |
|
|
|
|
|
v-model="scope.row.freeGold" |
|
|
|
|
|
style="width: 70px" |
|
|
|
|
|
/> |
|
|
<span v-else>{{ scope.row.paidGold }}</span> |
|
|
<span v-else>{{ scope.row.paidGold }}</span> |
|
|
</template> |
|
|
</template> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
<el-table-column property="rate" label="货币名称"> |
|
|
<el-table-column property="rate" label="货币名称"> |
|
|
<template #default="scope"> |
|
|
<template #default="scope"> |
|
|
<el-select v-if="scope.row.showInput" filterable clearable v-model="scope.row.rate" placeholder="请选择币种" |
|
|
|
|
|
@change="changeRate(scope.row)"> |
|
|
|
|
|
<el-option v-for="item in currency" :key="item.exchangeRate" :label="item.currency" |
|
|
|
|
|
:value="item.exchangeRate"> |
|
|
|
|
|
|
|
|
<el-select |
|
|
|
|
|
v-if="scope.row.showInput" |
|
|
|
|
|
filterable |
|
|
|
|
|
clearable |
|
|
|
|
|
v-model="scope.row.rate" |
|
|
|
|
|
placeholder="请选择币种" |
|
|
|
|
|
@change="changeRate(scope.row)" |
|
|
|
|
|
> |
|
|
|
|
|
<el-option |
|
|
|
|
|
v-for="item in currency" |
|
|
|
|
|
:key="item.exchangeRate" |
|
|
|
|
|
:label="item.currency" |
|
|
|
|
|
:value="item.exchangeRate" |
|
|
|
|
|
> |
|
|
</el-option> |
|
|
</el-option> |
|
|
</el-select> |
|
|
</el-select> |
|
|
<span v-else>{{ scope.row.rate }}</span> |
|
|
<span v-else>{{ scope.row.rate }}</span> |
|
@ -1034,8 +1174,19 @@ onMounted(async function () { |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
<el-table-column property="payWay" label="收款方式" width="130px"> |
|
|
<el-table-column property="payWay" label="收款方式" width="130px"> |
|
|
<template #default="scope"> |
|
|
<template #default="scope"> |
|
|
<el-select v-if="scope.row.showInput" filterable clearable v-model="scope.row.payWay" placeholder="请选择收款方式"> |
|
|
|
|
|
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> |
|
|
|
|
|
|
|
|
<el-select |
|
|
|
|
|
v-if="scope.row.showInput" |
|
|
|
|
|
filterable |
|
|
|
|
|
clearable |
|
|
|
|
|
v-model="scope.row.payWay" |
|
|
|
|
|
placeholder="请选择收款方式" |
|
|
|
|
|
> |
|
|
|
|
|
<el-option |
|
|
|
|
|
v-for="item in options" |
|
|
|
|
|
:key="item.value" |
|
|
|
|
|
:label="item.label" |
|
|
|
|
|
:value="item.value" |
|
|
|
|
|
> |
|
|
</el-option> |
|
|
</el-option> |
|
|
</el-select> |
|
|
</el-select> |
|
|
<span v-else>{{ scope.row.payWay }}</span> |
|
|
<span v-else>{{ scope.row.payWay }}</span> |
|
@ -1043,8 +1194,13 @@ onMounted(async function () { |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
<el-table-column property="rechargeTime" label="交款时间" width="150px"> |
|
|
<el-table-column property="rechargeTime" label="交款时间" width="150px"> |
|
|
<template #default="scope"> |
|
|
<template #default="scope"> |
|
|
<el-date-picker v-if="scope.row.showInput" type="date" v-model="scope.row.rechargeTime" style="width: 120px" |
|
|
|
|
|
placeholder="请选择交款时间"> |
|
|
|
|
|
|
|
|
<el-date-picker |
|
|
|
|
|
v-if="scope.row.showInput" |
|
|
|
|
|
type="date" |
|
|
|
|
|
v-model="scope.row.rechargeTime" |
|
|
|
|
|
style="width: 120px" |
|
|
|
|
|
placeholder="请选择交款时间" |
|
|
|
|
|
> |
|
|
</el-date-picker> |
|
|
</el-date-picker> |
|
|
<span v-else>{{ |
|
|
<span v-else>{{ |
|
|
moment(scope.row.rechargeTime).format("YYYY-MM-DD HH:mm:ss") |
|
|
moment(scope.row.rechargeTime).format("YYYY-MM-DD HH:mm:ss") |
|
@ -1053,9 +1209,19 @@ onMounted(async function () { |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
<el-table-column property="rechargeVoucher" label="充值凭证"> |
|
|
<el-table-column property="rechargeVoucher" label="充值凭证"> |
|
|
<template #default="scope"> |
|
|
<template #default="scope"> |
|
|
<el-upload action="http://192.168.8.93:10010/upload" class="avatar-uploader" :show-file-list="false" |
|
|
|
|
|
:on-success="handleBatchAvatarSuccess" v-if="scope.row.showInput" @change="changeVoucher(scope.row)"> |
|
|
|
|
|
<img v-if="scope.row.imageUrl" :src="scope.row.imageUrl" class="avatar" /> |
|
|
|
|
|
|
|
|
<el-upload |
|
|
|
|
|
action="http://192.168.8.93:10010/upload" |
|
|
|
|
|
class="avatar-uploader" |
|
|
|
|
|
:show-file-list="false" |
|
|
|
|
|
:on-success="handleBatchAvatarSuccess" |
|
|
|
|
|
v-if="scope.row.showInput" |
|
|
|
|
|
@change="changeVoucher(scope.row)" |
|
|
|
|
|
> |
|
|
|
|
|
<img |
|
|
|
|
|
v-if="scope.row.imageUrl" |
|
|
|
|
|
:src="scope.row.imageUrl" |
|
|
|
|
|
class="avatar" |
|
|
|
|
|
/> |
|
|
<el-icon v-else class="avatar-uploader-icon"> |
|
|
<el-icon v-else class="avatar-uploader-icon"> |
|
|
<Plus /> |
|
|
<Plus /> |
|
|
</el-icon> |
|
|
</el-icon> |
|
@ -1065,18 +1231,32 @@ onMounted(async function () { |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
<el-table-column property="remark" label="备注" width="130px"> |
|
|
<el-table-column property="remark" label="备注" width="130px"> |
|
|
<template #default="scope"> |
|
|
<template #default="scope"> |
|
|
<el-input type="textarea" v-if="scope.row.showInput" v-model="scope.row.remark" style="max-width: 90px" |
|
|
|
|
|
:rows="1" cols="12"></el-input> |
|
|
|
|
|
|
|
|
<el-input |
|
|
|
|
|
type="textarea" |
|
|
|
|
|
v-if="scope.row.showInput" |
|
|
|
|
|
v-model="scope.row.remark" |
|
|
|
|
|
style="max-width: 90px" |
|
|
|
|
|
:rows="1" |
|
|
|
|
|
cols="12" |
|
|
|
|
|
></el-input> |
|
|
<span v-else>{{ scope.row.remark }}</span> |
|
|
<span v-else>{{ scope.row.remark }}</span> |
|
|
</template> |
|
|
</template> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
<el-table-column property="submitter" label="提交人"> |
|
|
<el-table-column property="submitter" label="提交人"> |
|
|
<el-input :value="adminData.name" disabled /> |
|
|
<el-input :value="adminData.name" disabled /> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
<el-table-column fixed="right" prop="operation" label="操作" width="150px"> |
|
|
|
|
|
|
|
|
<el-table-column |
|
|
|
|
|
fixed="right" |
|
|
|
|
|
prop="operation" |
|
|
|
|
|
label="操作" |
|
|
|
|
|
width="150px" |
|
|
|
|
|
> |
|
|
<template #default="scope"> |
|
|
<template #default="scope"> |
|
|
<div style="display: flex"> |
|
|
<div style="display: flex"> |
|
|
<el-popconfirm title="确定将此条信息删除吗?" @confirm="delConfirm"> |
|
|
|
|
|
|
|
|
<el-popconfirm |
|
|
|
|
|
title="确定将此条信息删除吗?" |
|
|
|
|
|
@confirm="delConfirm" |
|
|
|
|
|
> |
|
|
<template #reference> |
|
|
<template #reference> |
|
|
<el-button type="danger" text @click="del(scope.row)"> |
|
|
<el-button type="danger" text @click="del(scope.row)"> |
|
|
删除 |
|
|
删除 |
|
@ -1089,7 +1269,10 @@ onMounted(async function () { |
|
|
</el-button> |
|
|
</el-button> |
|
|
</template> |
|
|
</template> |
|
|
</el-popconfirm> |
|
|
</el-popconfirm> |
|
|
<el-popconfirm title="确定将此条信息重置吗?" @confirm="resetConfirm"> |
|
|
|
|
|
|
|
|
<el-popconfirm |
|
|
|
|
|
title="确定将此条信息重置吗?" |
|
|
|
|
|
@confirm="resetConfirm" |
|
|
|
|
|
> |
|
|
<template #reference> |
|
|
<template #reference> |
|
|
<el-button type="primary" text @click="reset(scope.row)"> |
|
|
<el-button type="primary" text @click="reset(scope.row)"> |
|
|
重置 |
|
|
重置 |
|
@ -1110,62 +1293,129 @@ onMounted(async function () { |
|
|
<el-row> |
|
|
<el-row> |
|
|
<div class="batch-btn"> |
|
|
<div class="batch-btn"> |
|
|
<el-button @click="cancelBatch()"> 取消 </el-button> |
|
|
<el-button @click="cancelBatch()"> 取消 </el-button> |
|
|
<el-button type="primary" @click="throttledBatchAdd()"> 提交 </el-button> |
|
|
|
|
|
|
|
|
<el-button type="primary" @click="throttledBatchAdd()"> |
|
|
|
|
|
提交 |
|
|
|
|
|
</el-button> |
|
|
</div> |
|
|
</div> |
|
|
</el-row> |
|
|
</el-row> |
|
|
</el-dialog> |
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
<el-dialog v-model="batchSettingVisible" title="批量设置" :close-on-click-modal="false" style="width: 550px"> |
|
|
|
|
|
|
|
|
<el-dialog |
|
|
|
|
|
v-model="batchSettingVisible" |
|
|
|
|
|
title="批量设置" |
|
|
|
|
|
:close-on-click-modal="false" |
|
|
|
|
|
style="width: 550px" |
|
|
|
|
|
> |
|
|
<el-form label-position="left" label-width="auto"> |
|
|
<el-form label-position="left" label-width="auto"> |
|
|
<el-form-item label="活动名称"> |
|
|
<el-form-item label="活动名称"> |
|
|
<el-select v-model="batchSettingObj.activityId" placeholder="请选择活动名称" clearable> |
|
|
|
|
|
<el-option v-for="item in activity" :key="item.activityId" :label="item.activityName" |
|
|
|
|
|
:value="item.activityId"> |
|
|
|
|
|
|
|
|
<el-select |
|
|
|
|
|
v-model="batchSettingObj.activityId" |
|
|
|
|
|
placeholder="请选择活动名称" |
|
|
|
|
|
clearable |
|
|
|
|
|
> |
|
|
|
|
|
<el-option |
|
|
|
|
|
v-for="item in activity" |
|
|
|
|
|
:key="item.activityId" |
|
|
|
|
|
:label="item.activityName" |
|
|
|
|
|
:value="item.activityId" |
|
|
|
|
|
> |
|
|
</el-option> |
|
|
</el-option> |
|
|
</el-select> |
|
|
</el-select> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="充值金币"> |
|
|
<el-form-item label="充值金币"> |
|
|
<el-input v-model="batchSettingObj.paidGold" placeholder="请输入充值金币"></el-input> |
|
|
|
|
|
|
|
|
<el-input |
|
|
|
|
|
v-model="batchSettingObj.paidGold" |
|
|
|
|
|
placeholder="请输入充值金币" |
|
|
|
|
|
></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="免费金币"> |
|
|
<el-form-item label="免费金币"> |
|
|
<el-input v-model="batchSettingObj.freeGold"></el-input> |
|
|
<el-input v-model="batchSettingObj.freeGold"></el-input> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="充值金额"> |
|
|
<el-form-item label="充值金额"> |
|
|
<div style="display: flex"> |
|
|
<div style="display: flex"> |
|
|
<el-select v-model="batchSettingObj.rate" placeholder="请选择币种" style="width: 120px; margin-right: 10px" |
|
|
|
|
|
clearable> |
|
|
|
|
|
<el-option v-for="item in currency" :key="item.exchangeRate" :label="item.currency" |
|
|
|
|
|
:value="item.exchangeRate"></el-option> |
|
|
|
|
|
|
|
|
<el-select |
|
|
|
|
|
v-model="batchSettingObj.rate" |
|
|
|
|
|
placeholder="请选择币种" |
|
|
|
|
|
style="width: 120px; margin-right: 10px" |
|
|
|
|
|
clearable |
|
|
|
|
|
> |
|
|
|
|
|
<el-option |
|
|
|
|
|
v-for="item in currency" |
|
|
|
|
|
:key="item.exchangeRate" |
|
|
|
|
|
:label="item.currency" |
|
|
|
|
|
:value="item.exchangeRate" |
|
|
|
|
|
></el-option> |
|
|
</el-select> |
|
|
</el-select> |
|
|
<el-input v-model="batchSettingObj.rechargeGold" placeholder="请输入充值金额"></el-input> |
|
|
|
|
|
|
|
|
<el-input |
|
|
|
|
|
v-model="batchSettingObj.rechargeGold" |
|
|
|
|
|
placeholder="请输入充值金额" |
|
|
|
|
|
></el-input> |
|
|
</div> |
|
|
</div> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item prop="payWay" label="收款方式"> |
|
|
<el-form-item prop="payWay" label="收款方式"> |
|
|
<el-select v-model="batchSettingObj.payWay" placeholder="请选择收款方式" clearable> |
|
|
|
|
|
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option> |
|
|
|
|
|
|
|
|
<el-select |
|
|
|
|
|
v-model="batchSettingObj.payWay" |
|
|
|
|
|
placeholder="请选择收款方式" |
|
|
|
|
|
clearable |
|
|
|
|
|
> |
|
|
|
|
|
<el-option |
|
|
|
|
|
v-for="item in options" |
|
|
|
|
|
:key="item.value" |
|
|
|
|
|
:label="item.label" |
|
|
|
|
|
:value="item.value" |
|
|
|
|
|
></el-option> |
|
|
</el-select> |
|
|
</el-select> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item prop="rechargeTime" label="交款时间"> |
|
|
<el-form-item prop="rechargeTime" label="交款时间"> |
|
|
<el-date-picker v-model="batchSettingObj.rechargeTime" type="date" placeholder="请选择交款时间"></el-date-picker> |
|
|
|
|
|
|
|
|
<el-date-picker |
|
|
|
|
|
v-model="batchSettingObj.rechargeTime" |
|
|
|
|
|
type="date" |
|
|
|
|
|
placeholder="请选择交款时间" |
|
|
|
|
|
></el-date-picker> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item prop="rechargeVoucher" label="交款凭证"> |
|
|
<el-form-item prop="rechargeVoucher" label="交款凭证"> |
|
|
<el-upload action="http://192.168.8.93:10010/upload" class="avatar-uploader" :show-file-list="false" |
|
|
|
|
|
:on-success="batchSettingHandleAvatarSuccess" :before-upload="beforeAvatarUpload" |
|
|
|
|
|
style="width: 100px; height: 115px"> |
|
|
|
|
|
<img v-if="batchSettingObj.imageUrl" :src="batchSettingObj.imageUrl" class="avatar" |
|
|
|
|
|
style="width: 100px; height: 115px" /> |
|
|
|
|
|
<el-icon v-else class="avatar-uploader-icon" style="width: 100px; height: 100px"> |
|
|
|
|
|
|
|
|
<el-upload |
|
|
|
|
|
action="http://192.168.8.93:10010/upload" |
|
|
|
|
|
class="avatar-uploader" |
|
|
|
|
|
:show-file-list="false" |
|
|
|
|
|
:on-success="batchSettingHandleAvatarSuccess" |
|
|
|
|
|
:before-upload="beforeAvatarUpload" |
|
|
|
|
|
style="width: 100px; height: 115px" |
|
|
|
|
|
> |
|
|
|
|
|
<img |
|
|
|
|
|
v-if="batchSettingObj.imageUrl" |
|
|
|
|
|
:src="batchSettingObj.imageUrl" |
|
|
|
|
|
class="avatar" |
|
|
|
|
|
style="width: 100px; height: 115px" |
|
|
|
|
|
/> |
|
|
|
|
|
<el-icon |
|
|
|
|
|
v-else |
|
|
|
|
|
class="avatar-uploader-icon" |
|
|
|
|
|
style="width: 100px; height: 100px" |
|
|
|
|
|
> |
|
|
<Plus /> |
|
|
<Plus /> |
|
|
</el-icon> |
|
|
</el-icon> |
|
|
</el-upload> |
|
|
</el-upload> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item prop="remark" label="备注"> |
|
|
<el-form-item prop="remark" label="备注"> |
|
|
<el-input type="textarea" v-model="batchSettingObj.remark" placeholder="请输入备注" /> |
|
|
|
|
|
|
|
|
<el-input |
|
|
|
|
|
type="textarea" |
|
|
|
|
|
v-model="batchSettingObj.remark" |
|
|
|
|
|
placeholder="请输入备注" |
|
|
|
|
|
/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
</el-form> |
|
|
</el-form> |
|
|
<el-button @click="cancelBatchSetting()" style="margin-left: 370px">取消</el-button> |
|
|
|
|
|
|
|
|
<el-button @click="cancelBatchSetting()" style="margin-left: 370px" |
|
|
|
|
|
>取消</el-button |
|
|
|
|
|
> |
|
|
<el-button type="primary" @click="batchSettingConfirm()"> 确认 </el-button> |
|
|
<el-button type="primary" @click="batchSettingConfirm()"> 确认 </el-button> |
|
|
</el-dialog> |
|
|
</el-dialog> |
|
|
|
|
|
<el-loading |
|
|
|
|
|
:fullscreen="true" |
|
|
|
|
|
:lock="true" |
|
|
|
|
|
:text="'加载中...'" |
|
|
|
|
|
v-model="loading" |
|
|
|
|
|
></el-loading> |
|
|
</template> |
|
|
</template> |
|
|
|
|
|
|
|
|
<style scoped> |
|
|
<style scoped> |
|
|