Browse Source

功能联调bug修改

test
zhaoln 4 weeks ago
parent
commit
3382e18d53
  1. 26
      gold-system/src/views/goldBeen/goldenBeenBalance.vue
  2. 155
      gold-system/src/views/goldBeen/goldenBeenConsum.vue
  3. 110
      gold-system/src/views/goldBeen/goldenBeenDetail.vue
  4. 32
      gold-system/src/views/index.vue
  5. 19
      gold-system/src/views/managerecharge/activity.vue
  6. 467
      gold-system/src/views/managerecharge/rate.vue
  7. 2
      gold-system/stats.html

26
gold-system/src/views/goldBeen/goldenBeenBalance.vue

@ -57,17 +57,30 @@
<el-table-column fixed="left" prop="jwcode" label="精网号" width="120" />
<el-table-column prop="ipAddress" label="所属地区" width="120" />
<el-table-column prop="jinbi" label="金豆数量" width="120">
<el-table-column prop="jinbi" sortable label="金豆数量" width="120">
</el-table-column>
<el-table-column prop="jinbiBuy" label="付费金豆" width="120">
<el-table-column prop="jinbiBuy" sortable label="付费金豆" width="120">
</el-table-column>
<el-table-column prop="jinbiFree" label="免费金豆" width="120">
<el-table-column prop="jinbiFree" sortable label="免费金豆" width="120">
</el-table-column>
<el-table-column
sortable
width="120"
prop="jinbiCostTotal"
label="历史消费"
></el-table-column>
<el-table-column
sortable
prop="jinbiCostbeenTotal"
width="160"
label="历史付费金豆"
></el-table-column>
<el-table-column
sortable
prop="jinbifreebeenTotal"
width="160"
label="历史免费金豆"
></el-table-column>
</el-table>
<!-- 分页 -->
<div class="pagination">
@ -149,14 +162,9 @@ const handleSortChange = (column) => {
getInit({ sortField: prop, sortOrder: 'ASC' })
} else if (order === 'descending') {
getInit({ sortField: prop, sortOrder: 'DESC' })
} else {
getInit({})
}
}
const handlePageChange = (val: number): void => {
getObj.value.pageNum = val
getInit({})
}
const handlePageSizeChange = (val) => {
getObj.value.pageSize = val
getObj.value.pageNum = 1

155
gold-system/src/views/goldBeen/goldenBeenConsum.vue

@ -23,27 +23,28 @@
/>
</el-select>
</el-form-item>
<!-- <el-form-item prop="good" label="商品名称">
<el-form-item prop="payType" label="消费类型">
<el-select
v-model="detailY.good"
placeholder="请选择商品"
v-model="detailY.payType"
placeholder="请选择消费类型"
style="width: 240px"
clearable
>
<el-option
v-for="item in goodList"
:key="item"
:label="item"
:value="item"
v-for="item in consumList"
:key="item.value"
:label="item.text"
:value="item.value"
/>
</el-select>
</el-form-item> -->
<!-- <el-form-item prop="channel" label="频道">
</el-form-item>
<el-form-item prop="channel" label="频道">
<el-select
v-model="detailY.channel"
placeholder="请选择频道"
style="width: 240px"
clearable
filterable
>
<el-option
v-for="item in channelList"
@ -52,29 +53,22 @@
:value="item"
/>
</el-select>
</el-form-item> -->
<!-- <el-form-item prop="sourceName" label="直播间">
<el-select
</el-form-item>
<el-form-item prop="sourceName" label="直播间">
<el-input
v-model="detailY.sourceName"
placeholder="请选择直播间"
style="width: 240px"
clearable
>
<el-option
v-for="item in liveroomList"
:key="item"
:label="item"
:value="item"
/>
</el-select>
</el-form-item> -->
placeholder="请输入直播间"
style="width: 220px"
/>
</el-form-item>
<el-form-item prop="createTime" label="消费时间">
<el-date-picker
v-model="detailY.createTime"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd HH:mm:ss"
value-format="YYYY-MM-DD HH:mm:ss"
format="YYYY-MM-DD HH:mm:ss"
style="width: 240px"
/>
</el-form-item>
@ -85,13 +79,8 @@
</el-form>
</div>
<div class="table-box">
<p>合计数:实际用户金豆数:</p>
<el-table
:data="tableData"
style="width: 100%"
:default-sort="{ prop: 'createTime', order: 'descending' }"
height="584px"
>
<p>合计数:实际用户金豆数:{{ beenCount }}</p>
<el-table :data="tableData" style="width: 100%" height="584px">
<el-table-column type="index" label="序号" width="100px" fixed="left">
<template #default="scope">
<span>{{
@ -102,7 +91,12 @@
<el-table-column fixed="left" prop="nickname" label="姓名" width="150" />
<el-table-column fixed="left" prop="jwcode" label="精网号" width="120" />
<el-table-column prop="ipAddress" label="地区" width="120" />
<el-table-column prop="good" label="商品名称" width="120">
<el-table-column prop="payType" label="消费类型" width="120">
<template #default="scope">
<span>{{
consumList.find((item) => item.value === scope.row.payType)?.text
}}</span>
</template>
</el-table-column>
<el-table-column prop="jinbiCostTotal" label="金豆价格" width="120">
</el-table-column>
@ -112,7 +106,6 @@
</el-table-column>
<el-table-column
prop="createTime"
sortable="“custom”"
label="消费时间"
width="210"
show-overflow-tooltip
@ -123,7 +116,7 @@
}}</span>
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" min-width="120">
<!-- <el-table-column fixed="right" label="操作" min-width="120">
<template #default>
<el-tooltip class="box-item" effect="light" placement="top-start">
<template #default>
@ -136,7 +129,7 @@
</template>
</el-tooltip>
</template>
</el-table-column>
</el-table-column> -->
</el-table>
<!-- 分页 -->
<div class="pagination">
@ -165,7 +158,20 @@ const tableData = ref([])
//
const total = ref(100)
const areaList = ref<string[]>([])
const goodList = ref<string[]>(['礼物', '铁粉', '客服操作'])
const beenCount = ref(0)
const consumList = ref<any>([
{ value: 1, text: '发礼物' },
{ value: 2, text: '发红包' },
{ value: 3, text: '发福袋' },
{ value: 4, text: '付费直播' },
{ value: 5, text: '加⼊粉丝团' },
{ value: 6, text: '发弹幕' },
{ value: 7, text: '铁粉单次付费' },
{ value: 8, text: '铁粉连续包⽉' },
{ value: 9, text: '打赏⽂章' },
{ value: 10, text: '打赏视频' },
{ value: 11, text: '付费购买' }
])
const channelList = ref<string[]>([])
const liveroomList = ref<string[]>([])
const ruleFormRef = ref<FormInstance>()
@ -174,23 +180,16 @@ const detailY = ref({
jwcode: '',
ipAddress: '',
createTime: '',
// channel: '',
sourceName: '',
payType: ''
// good: ''
channel: '', //
sourceName: '', //
payType: '' //
})
const getObj = ref({
pageNum: 1,
pageSize: 50
})
//
const getInit = async function ({
sortField = '',
sortOrder = ''
}: {
sortField?: string
sortOrder?: string
}) {
const getInit = async function () {
try {
console.log('搜索参数', getObj.value)
const [startTime, endTime] = detailY.value.createTime
@ -201,14 +200,13 @@ const getInit = async function ({
data: {
...getObj.value,
spend: {
jwcode: detailY.value.jwcode,
ipAddress: detailY.value.ipAddress,
sourceName: detailY.value.sourceName,
payType: detailY.value.payType,
startTime,
endTime,
sortField,
sortOrder
jwcode: detailY.value.jwcode, //
ipAddress: detailY.value.ipAddress, //
sourceName: detailY.value.sourceName, //
payType: detailY.value.payType, //
channel: detailY.value.channel, //
startTime, //
endTime //
}
}
})
@ -222,7 +220,11 @@ const getInit = async function ({
}
}
//
const search = function () {}
const search = function () {
getObj.value.pageNum = 1
getInit()
getCount()
}
//
const reset = function (formEl) {
formEl.resetFields()
@ -230,14 +232,47 @@ const reset = function (formEl) {
const handlePageSizeChange = (val) => {
getObj.value.pageSize = val
getObj.value.pageNum = 1
getInit({})
getInit()
}
const handleCurrentChange = function (val) {
getObj.value.pageNum = val
getInit({})
getInit()
}
//
const getCount = async () => {
const result = await API({
url: '/dou/getSpendTotal',
data: {
jwcode: detailY.value.jwcode,
ipAddress: detailY.value.ipAddress,
sourceName: detailY.value.sourceName,
payType: detailY.value.payType,
startTime: detailY.value.createTime[0],
endTime: detailY.value.createTime[1]
}
})
if (result.code == 200) {
//const { jinbiBuy, jinbiFree, jinbiCostTotal } = result.data
console.log('合计数', result.data)
beenCount.value = result.data
}
}
//
const getArea = async () => {
try {
const result = await API({
url: '/dou/getPayIp'
})
areaList.value = result.data
} catch (error) {
console.log('请求失败', error)
}
}
//
getInit({})
getInit()
getCount()
getArea()
</script>
<style scoped lang="scss">
.filter-box {

110
gold-system/src/views/goldBeen/goldenBeenDetail.vue

@ -30,21 +30,13 @@
style="width: 220px"
/>
</el-form-item>
<!-- <el-form-item prop="type" label="充值类型">
<el-select
<el-form-item prop="type" label="充值类型">
<el-input
v-model="detailY.type"
placeholder="请选择充值类型"
style="width: 240px"
clearable
>
<el-option
v-for="item in typeList"
:key="item"
:label="item"
:value="item"
/>
</el-select>
</el-form-item> -->
placeholder="请输入充值类型"
style="width: 220px"
/>
</el-form-item>
<el-form-item prop="payStyle" label="充值平台">
<el-select
v-model="detailY.payStyle"
@ -67,8 +59,8 @@
start-placeholder="开始日期"
end-placeholder="结束日期"
style="width: 240px"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD HH:mm:ss"
value-format="YYYY-MM-DD HH:mm:ss"
:unlinkPanels="true"
/>
</el-form-item>
@ -80,14 +72,8 @@
</el-form>
</div>
<div class="table-box">
<p>金豆总数充值金豆总数合计金额数</p>
<el-table
:data="tableData"
style="width: 100%"
:default-sort="{ prop: 'createTime', order: 'descending' }"
height="584px"
@sort-change="handleSortChange"
>
<p>金豆总数充值金豆总数{{ countValue }}合计金额数:{{ priceValue }}</p>
<el-table :data="tableData" style="width: 100%" height="584px">
<el-table-column type="index" label="序号" width="100px" fixed="left">
<template #default="scope">
<span>{{
@ -101,17 +87,16 @@
<el-table-column prop="orderNo" label="订单号" width="120" />
<el-table-column prop="count" label="金豆数量" width="120">
</el-table-column>
<!-- <el-table-column prop="paybeen" label="付费金豆" width="120">
<el-table-column prop="paybeen" label="付费金豆" width="120">
</el-table-column>
<el-table-column prop="freebeen" label="免费金豆" width="120">
</el-table-column> -->
</el-table-column>
<el-table-column prop="price" label="金额"></el-table-column>
<el-table-column prop="payStyle" label="充值平台" width="140">
</el-table-column>
<!-- <el-table-column prop="notes" label="备注" width="210"></el-table-column> -->
<el-table-column prop="notes" label="备注" width="210"></el-table-column>
<el-table-column
prop="successTime"
sortable="“custom”"
label="充值时间"
width="210"
show-overflow-tooltip
@ -224,6 +209,8 @@ const excelData = reactive({
startTime: '',
endTime: ''
})
const priceValue = ref(0)
const countValue = ref(0)
const areaList = ref<string[]>([])
const isExport = ref<boolean>(false)
const rules = ref({
@ -273,26 +260,26 @@ const exportExcel = function () {
}
const exportConfirm = function () {
if (excelData.timegap == '1') {
excelData.startTime = moment().startOf('day').format('YYYY-MM-DD')
excelData.endTime = moment().endOf('day').format('YYYY-MM-DD')
excelData.startTime = moment().startOf('day').format('YYYY-MM-DD HH:mm:ss')
excelData.endTime = moment().endOf('day').format('YYYY-MM-DD HH:mm:ss')
} else if (excelData.timegap == '3') {
excelData.startTime = moment()
.subtract(3, 'days')
.startOf('day')
.format('YYYY-MM-DD')
excelData.endTime = moment().endOf('day').format('YYYY-MM-DD')
.format('YYYY-MM-DD HH:mm:ss')
excelData.endTime = moment().endOf('day').format('YYYY-MM-DD HH:mm:ss')
} else if (excelData.timegap == '7') {
excelData.startTime = moment()
.subtract(7, 'days')
.startOf('day')
.format('YYYY-MM-DD')
excelData.endTime = moment().endOf('day').format('YYYY-MM-DD')
excelData.endTime = moment().endOf('day').format('YYYY-MM-DD HH:mm:ss')
} else if (excelData.timegap == '30') {
excelData.startTime = moment()
.subtract(30, 'days')
.startOf('day')
.format('YYYY-MM-DD')
excelData.endTime = moment().endOf('day').format('YYYY-MM-DD')
.format('YYYY-MM-DD HH:mm:ss')
excelData.endTime = moment().endOf('day').format('YYYY-MM-DD HH:mm:ss')
}
getInit(
{
@ -314,8 +301,14 @@ const exportConfirm = function () {
金额: item.price
}
})
if (data.length == 0) {
ElMessage.error('没有数据')
isExport.value = false
dialogVisible.value = false
return
}
console.log('导出数据', data)
//excelExport(data)
excelExport(data)
}
)
}
@ -330,6 +323,8 @@ const excelExport = async function (data) {
new Blob([wbout], { type: 'application/octet-stream' }),
'数据导出.xlsx'
)
isExport.value = false
dialogVisible.value = false
}
const ruleFormRef = ref<FormInstance>()
//
@ -357,6 +352,7 @@ const getInit = async function (
startTime: isExport.value ? excelData.startTime : startTime || '',
endTime: isExport.value ? excelData.endTime : endTime || '',
payStyle: isExport.value ? '' : detailY.value.payStyle,
type: isExport.value ? '' : detailY.value.type,
orderNo: isExport.value ? '' : detailY.value.orderNo,
sortField,
sortOrder
@ -367,7 +363,7 @@ const getInit = async function (
})
if (isExport.value) {
!!callback && callback(result.data.list)
!!callback && callback(result.data)
} else {
tableData.value = result.data.list
total.value = result.data.total
@ -377,18 +373,19 @@ const getInit = async function (
//
}
}
const handleSortChange = (column) => {
const { prop, order } = column
if (order === 'ascending') {
getInit({ sortField: prop, sortOrder: 'ASC' })
} else if (order === 'descending') {
getInit({ sortField: prop, sortOrder: 'DESC' })
}
}
// const handleSortChange = (column) => {
// const { prop, order } = column
// if (order === 'ascending') {
// getInit({ sortField: prop, sortOrder: 'ASC' })
// } else if (order === 'descending') {
// getInit({ sortField: prop, sortOrder: 'DESC' })
// }
// }
//
const search = function () {
getObj.value.pageNum = 1
getInit({})
getCount()
}
//
const reset = function (formEl) {
@ -417,9 +414,32 @@ const getPayType = async () => {
console.log('请求失败', error)
}
}
//
const getCount = async () => {
try {
const result = await API({
url: '/dou/getRechargeTotal',
data: {
jwcode: detailY.value.jwcode,
deptName: detailY.value.deptName,
startTime: detailY.value.createTime[0],
endTime: detailY.value.createTime[1],
orderNo: detailY.value.orderNo,
payStyle: detailY.value.payStyle
}
})
const { priceTotal, countTotal } = result.data
console.log('金豆总数', priceTotal, countTotal)
priceValue.value = priceTotal
countValue.value = countTotal
} catch (error) {
console.log('请求失败', error)
}
}
getInit({})
getArea()
getPayType()
getCount()
</script>
<style scoped lang="scss">
.filter-box {

32
gold-system/src/views/index.vue

@ -101,13 +101,11 @@ const changeDataByArea = (item) => {
<div style="font-size: 16px; font-weight: bold">海外金币管理系统</div>
</div>
<el-menu
router="true"
:router="true"
background-color="#08193d"
active-text-color="#ffd04b"
text-color="white"
class="el-menu-vertical-demo"
@open="handleOpen"
@close="handleClose"
>
<el-menu-item
index="/workspace"
@ -175,7 +173,7 @@ const changeDataByArea = (item) => {
<span>充值</span>
</template>
<el-sub-menu>
<el-sub-menu index="5">
<template #title>金币充值</template>
<el-menu-item index="/addRecharge">新增充值</el-menu-item>
<el-menu-item index="/adminRecharge">客服充值明细</el-menu-item>
@ -184,7 +182,7 @@ const changeDataByArea = (item) => {
</el-sub-menu>
<el-sub-menu
index="5"
index="6"
v-if="
adminData.permission == 1 ||
adminData.permission == 2 ||
@ -197,7 +195,7 @@ const changeDataByArea = (item) => {
</el-icon>
<span>消费</span>
</template>
<el-sub-menu>
<el-sub-menu index="7">
<template #title>金币消费</template>
<el-menu-item index="/addConsume">新增消费</el-menu-item>
<el-menu-item index="/allConsume">所有消费明细</el-menu-item>
@ -205,7 +203,7 @@ const changeDataByArea = (item) => {
</el-sub-menu>
<el-sub-menu
index="6"
index="8"
v-if="
adminData.permission == 1 ||
adminData.permission == 2 ||
@ -218,13 +216,13 @@ const changeDataByArea = (item) => {
</el-icon>
<span>退款</span>
</template>
<el-sub-menu>
<el-sub-menu index="9">
<template #title>金币退款</template>
<el-menu-item index="/addRefund">新增退款</el-menu-item>
<el-menu-item index="/allRefund">退款明细</el-menu-item>
</el-sub-menu>
</el-sub-menu>
<el-sub-menu index="7">
<el-sub-menu index="10">
<template #title
><el-icon> <Folder /> </el-icon></template
>
@ -283,13 +281,8 @@ const changeDataByArea = (item) => {
background: white;
"
>
<el-menu
:default-active="activeIndex"
class="el-menu-demo"
mode="horizontal"
:ellipsis="false"
>
<el-sub-menu index="1" class="area" :disabled="isWorkspace">
<el-menu class="el-menu-demo" mode="horizontal" :ellipsis="false">
<el-sub-menu index="1" class="area">
<template #title>
<VscGlobe />
<!-- {{ currentArea }} -->
@ -303,12 +296,7 @@ const changeDataByArea = (item) => {
</el-menu-item> -->
</el-sub-menu>
</el-menu>
<el-menu
:default-active="activeIndex"
class="el-menu-demo"
mode="horizontal"
:ellipsis="false"
>
<el-menu class="el-menu-demo" mode="horizontal" :ellipsis="false">
<el-sub-menu index="1" class="admin">
<template #title>
<el-image

19
gold-system/src/views/managerecharge/activity.vue

@ -200,10 +200,21 @@ const delConfirm = async function () {
url: '/recharge/activity/edit',
data: delObj.value
})
//
console.log('请求成功', result)
//
get()
if (result.code == 200) {
ElMessage({
type: 'success',
message: '删除成功'
})
//
console.log('请求成功', result)
//
get()
} else {
ElMessage({
type: 'error',
message: '删除失败'
})
}
} catch (error) {
console.log('请求失败', error)
//

467
gold-system/src/views/managerecharge/rate.vue

@ -1,169 +1,169 @@
<script setup>
import { ref, onMounted, computed, reactive } from "vue";
import { ElMessage, ElMessageBox } from "element-plus";
import axios from "axios";
import { createApp } from "vue";
import moment from "moment";
import API from "../../api/index.js";
import _ from "lodash";
import request from "@/util/http";
import { ref, onMounted, computed, reactive } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
import axios from 'axios'
import { createApp } from 'vue'
import moment from 'moment'
import API from '../../api/index.js'
import _ from 'lodash'
import request from '@/util/http'
//
const adminData = ref({
name: "",
});
name: ''
})
const getAdminData = async function () {
try {
const result = await request(
{
url: "/admin/userinfo",
data:{}}
);
adminData.value = result;
rateAdd.value.adminId = adminData.value.adminId;
rateEdit.value.adminId = adminData.value.adminId;
console.log("请求成功", result);
console.log("用户信息", user.value);
const result = await request({
url: '/admin/userinfo',
data: {}
})
adminData.value = result
rateAdd.value.adminId = adminData.value.adminId
rateEdit.value.adminId = adminData.value.adminId
console.log('请求成功', result)
console.log('用户信息', user.value)
} catch (error) {
console.log("请求失败", error);
console.log('请求失败', error)
}
};
getAdminData();
}
getAdminData()
const regeAdd = ref(false);
const regeEdit = ref(false);
const regeAdd = ref(false)
const regeEdit = ref(false)
//
const tableData = ref([]);
const tableData = ref([])
//
const getObj = ref({
pageNum: 1,
pageSize: 10,
});
const total = ref(0);
pageSize: 10
})
const total = ref(0)
//
//
const value1 = ref({
startTime: "",
endTime: "",
}); //
startTime: '',
endTime: ''
}) //
function handleDateChange(value) {
if (value && value.length === 2) {
value1.value.startTime = value[0]; //
value1.value.endTime = value[1]; //
value1.value.startTime = value[0] //
value1.value.endTime = value[1] //
}
console.log(value1);
console.log(value1)
}
const time = ref({});
const time = ref({})
const get = async function (val) {
//
if (value1.value != null) {
if (value1.value.startDate != "" && value1.value.endDate != "") {
time.value.startTime = value1.value[0];
time.value.endTime = value1.value[1];
if (value1.value.startDate != '' && value1.value.endDate != '') {
time.value.startTime = value1.value[0]
time.value.endTime = value1.value[1]
}
} else {
time.value.startTime = "";
time.value.endTime = "";
time.value.startTime = ''
time.value.endTime = ''
}
try {
//
if (typeof val === "number") {
getObj.value.pageNum = val;
if (typeof val === 'number') {
getObj.value.pageNum = val
}
console.log("搜索参数", getObj.value);
console.log('搜索参数', getObj.value)
// POST
const result = await request({
url: "/rates/search", data:{
...getObj.value,
rate: { ...time.value },}
});
url: '/rates/search',
data: {
...getObj.value,
rate: { ...time.value }
}
})
//
console.log("请求成功", result);
console.log('请求成功', result)
//
tableData.value = result.data.list;
console.log("tableData", tableData.value);
tableData.value = result.data.list
console.log('tableData', tableData.value)
// UI
//
total.value = result.data.total;
console.log("total", total.value);
total.value = result.data.total
console.log('total', total.value)
} catch (error) {
console.log("请求失败", error);
console.log('请求失败', error)
//
}
};
}
//
const search = function () {
getObj.value.pageNum = 1;
get();
};
getObj.value.pageNum = 1
get()
}
//
const rateAdd = ref({});
const rateAdd = ref({})
const addRate = async function () {
rateAdd.value.adminId = adminData.value.adminId;
rateAdd.value.adminId = adminData.value.adminId
if (rateAdd.value.startTime) {
const date = new Date(rateAdd.value.startTime);
date.setHours(0, 0, 0, 0);
const date = new Date(rateAdd.value.startTime)
date.setHours(0, 0, 0, 0)
rateAdd.value.startTime = `${date.getFullYear()}-${String(
date.getMonth() + 1
).padStart(2, "0")}-${String(date.getDate()).padStart(2, "0")} 00:00:00`;
).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')} 00:00:00`
}
if (rateAdd.value.endTime) {
const date = new Date(rateAdd.value.endTime);
date.setHours(23, 59, 59, 999);
const date = new Date(rateAdd.value.endTime)
date.setHours(23, 59, 59, 999)
rateAdd.value.endTime = `${date.getFullYear()}-${String(
date.getMonth() + 1
).padStart(2, "0")}-${String(date.getDate()).padStart(2, "0")} 23:59:59`;
).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')} 23:59:59`
}
try {
console.log("搜索参数", getObj.value);
console.log('搜索参数', getObj.value)
// POST
const result = await request(
{
url: "/rates/add",
data: rateAdd.value}
);
const result = await request({
url: '/rates/add',
data: rateAdd.value
})
if (result.code == 0) {
ElMessage.error(result.msg);
ElMessage.error(result.msg)
}
//
console.log("请求成功", result);
get();
console.log('请求成功', result)
get()
} catch (error) {
console.log("请求失败", error);
console.log('请求失败', error)
//
}
};
}
const add = () => {
Ref.value.validate(async (valid) => {
if (valid) {
ElMessageBox.confirm("确认添加?")
ElMessageBox.confirm('确认添加?')
.then(() => {
addRate();
rateAdd.value = {};
addRate()
rateAdd.value = {}
value1.value = {
startTime: "",
endTime: "",
};
regeAdd.value = false;
startTime: '',
endTime: ''
}
regeAdd.value = false
})
.catch(() => {
regeAdd.value = false;
});
regeAdd.value = false
})
} else {
//
ElMessage({
type: "error",
message: "请检查输入内容",
});
type: 'error',
message: '请检查输入内容'
})
}
});
};
})
}
const handlePageSizeChange = function (val) {
getObj.value.pageSize = val
get()
@ -173,158 +173,155 @@ const handleCurrentChange = function (val) {
get()
}
// 使 _.throttle trailing false
const throttledAdd = _.throttle(add, 5000, { trailing: false });
const throttledAdd = _.throttle(add, 5000, { trailing: false })
//
const rateEdit = ref({});
const rateEdit = ref({})
//
const getEditData = async function (row) {
try {
console.log("搜索参数", getObj.value);
console.log('搜索参数', getObj.value)
// POST
const result = await request(
{
url: "/rates/searchById?rateId=" + row.rateId,
data:{}}
);
const result = await request({
url: '/rates/searchById?rateId=' + row.rateId,
data: {}
})
//
console.log("请求成功", result);
console.log('请求成功', result)
//
rateEdit.value = result.data;
rateEdit.value.adminId = adminData.value.adminId;
console.log("这是编辑的数值", rateEdit.value);
rateEdit.value = result.data
rateEdit.value.adminId = adminData.value.adminId
console.log('这是编辑的数值', rateEdit.value)
} catch (error) {
console.log("请求失败", error);
console.log('请求失败', error)
//
}
};
}
const editRate = async function () {
if (rateEdit.value.startTime) {
const date = new Date(rateEdit.value.startTime);
date.setHours(0, 0, 0, 0);
const date = new Date(rateEdit.value.startTime)
date.setHours(0, 0, 0, 0)
rateEdit.value.startTime = `${date.getFullYear()}-${String(
date.getMonth() + 1
).padStart(2, "0")}-${String(date.getDate()).padStart(2, "0")} 00:00:00`;
).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')} 00:00:00`
}
if (rateEdit.value.endTime) {
const date = new Date(rateEdit.value.endTime);
date.setHours(23, 59, 59, 999);
const date = new Date(rateEdit.value.endTime)
date.setHours(23, 59, 59, 999)
rateEdit.value.endTime = `${date.getFullYear()}-${String(
date.getMonth() + 1
).padStart(2, "0")}-${String(date.getDate()).padStart(2, "0")} 23:59:59`;
).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')} 23:59:59`
}
try {
console.log("搜索参数", rateEdit.value);
console.log('搜索参数', rateEdit.value)
// POST
const result = await request(
{
url: "/rates/update",
data: rateEdit.value}
);
const result = await request({
url: '/rates/update',
data: rateEdit.value
})
//
console.log("请求成功", result);
get();
console.log('请求成功', result)
get()
} catch (error) {
console.log("请求失败", error);
console.log('请求失败', error)
//
}
};
}
const edit = () => {
ElMessageBox.confirm("确认修改?")
ElMessageBox.confirm('确认修改?')
.then(() => {
editRate();
regeEdit.value = false;
editRate()
regeEdit.value = false
})
.catch(() => {
regeEdit.value = false;
});
};
regeEdit.value = false
})
}
//
const deleteRate = async function (row) {
try {
// POST
const result = await request(
{
url: "/rates/delete/ " + row.rateId,
data:{}}
);
const result = await request({
url: '/rates/delete/ ' + row.rateId,
data: {}
})
//
console.log("请求成功", result);
get();
console.log('请求成功', result)
get()
} catch (error) {
console.log("请求失败", error);
console.log('请求失败', error)
//
}
};
}
//
onMounted(async function () {
get();
});
get()
})
//
function handlePageChange(currentPage, pageSize) {
get();
get()
}
//
const options = [
{
value: "USD",
label: "USD",
value: 'USD',
label: 'USD'
},
{
value: "HKD",
label: "HKD",
value: 'HKD',
label: 'HKD'
},
{
value: "THB",
label: "THB",
value: 'THB',
label: 'THB'
},
{
value: "VND",
label: "VND",
value: 'VND',
label: 'VND'
},
{
value: "CAD",
label: "CAD",
value: 'CAD',
label: 'CAD'
},
{
value: "MYR",
label: "MYR",
value: 'MYR',
label: 'MYR'
},
{
value: "KRW",
label: "KRW",
value: 'KRW',
label: 'KRW'
},
{
value: "JPY",
label: "JPY",
value: 'JPY',
label: 'JPY'
},
{
value: "CNY",
label: "CNY",
},
];
value: 'CNY',
label: 'CNY'
}
]
function formatDate(value) {
if (!value) return "";
const date = new Date(value);
const year = date.getFullYear();
const month = (date.getMonth() + 1).toString().padStart(2, "0");
const day = date.getDate().toString().padStart(2, "0");
const hours = date.getHours().toString().padStart(2, "0");
const minutes = date.getMinutes().toString().padStart(2, "0");
const seconds = date.getSeconds().toString().padStart(2, "0");
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
if (!value) return ''
const date = new Date(value)
const year = date.getFullYear()
const month = (date.getMonth() + 1).toString().padStart(2, '0')
const day = date.getDate().toString().padStart(2, '0')
const hours = date.getHours().toString().padStart(2, '0')
const minutes = date.getMinutes().toString().padStart(2, '0')
const seconds = date.getSeconds().toString().padStart(2, '0')
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`
}
function formatDateTwe(value) {
if (!value) return "";
const date = new Date(value);
const year = date.getFullYear();
const month = (date.getMonth() + 1).toString().padStart(2, "0");
const day = date.getDate().toString().padStart(2, "0");
return `${year}-${month}-${day}`;
if (!value) return ''
const date = new Date(value)
const year = date.getFullYear()
const month = (date.getMonth() + 1).toString().padStart(2, '0')
const day = date.getDate().toString().padStart(2, '0')
return `${year}-${month}-${day}`
}
// //
@ -334,82 +331,80 @@ function formatDateTwe(value) {
//
// ref
const Ref = ref(null);
const Ref = ref(null)
const handleStartTimeChange = () => {
Ref.value.validateField("endTime");
};
Ref.value.validateField('endTime')
}
const checkStartTime = function (rule, value, callback) {
if (value <= new Date()) {
callback(new Error("开始时间不能小于当前时间"));
callback(new Error('开始时间不能小于当前时间'))
} else {
callback();
callback()
}
};
}
const checkEndTime = function (rule, value, callback) {
if (value <= new Date()) {
callback(new Error("结束时间不能小于当前时间"));
callback(new Error('结束时间不能小于当前时间'))
} else if (value <= rateAdd.value.startTime) {
callback(new Error("结束时间不能小于开始时间"));
callback(new Error('结束时间不能小于开始时间'))
} else {
callback();
callback()
}
};
}
const checkFreeGoldRadio = function (rule, value, callback) {
if (value == "0" || value == null || value == "") {
callback(new Error("请输入汇率比"));
if (value == '0' || value == null || value == '') {
callback(new Error('请输入汇率比'))
} else if (value < 0 || isNaN(value)) {
callback(new Error("请输入正确的格式"));
callback(new Error('请输入正确的格式'))
} else {
callback();
callback()
}
};
}
const rules = reactive({
currency: [{ required: true, message: "请选择货币名称", trigger: "blur" }],
exchangeRate: [{ validator: checkFreeGoldRadio, trigger: "blur" }],
currency: [{ required: true, message: '请选择货币名称', trigger: 'blur' }],
exchangeRate: [{ validator: checkFreeGoldRadio, trigger: 'blur' }],
startTime: [
{ required: true, message: "请选择开始时间", trigger: "blur" },
{ validator: checkStartTime, trigger: "blur" },
{ required: true, message: '请选择开始时间', trigger: 'blur' },
{ validator: checkStartTime, trigger: 'blur' }
],
endTime: [
{ required: true, message: "请选择结束时间", trigger: "blur" },
{ validator: checkEndTime, trigger: "blur" },
],
});
{ required: true, message: '请选择结束时间', trigger: 'blur' },
{ validator: checkEndTime, trigger: 'blur' }
]
})
//
const handledelete = function () {
value1.value = {};
startTime.value = "";
endTime.value = "";
};
value1.value = {}
startTime.value = ''
endTime.value = ''
}
//
const checkNumber = function () {
if (typeof parseInt(getObj.value.pageNum) === "number") {
console.log(
"总共有多少页" + Math.ceil(total.value / getObj.value.pageSize)
);
if (typeof parseInt(getObj.value.pageNum) === 'number') {
console.log('总共有多少页' + Math.ceil(total.value / getObj.value.pageSize))
if (
getObj.value.pageNum > 0 &&
getObj.value.pageNum <= Math.ceil(total.value / getObj.value.pageSize)
) {
getObj.value.pageNum = parseInt(getObj.value.pageNum);
console.log("输入的数字合法");
get();
getObj.value.pageNum = parseInt(getObj.value.pageNum)
console.log('输入的数字合法')
get()
} else {
//
ElMessage({
type: "error",
message: "请检查输入内容",
});
type: 'error',
message: '请检查输入内容'
})
}
} else {
//
ElMessage({
type: "error",
message: "请检查输入内容",
});
type: 'error',
message: '请检查输入内容'
})
}
};
}
// =========================================================
//
@ -418,26 +413,37 @@ const checkNumber = function () {
const delConfirm = async function (row) {
try {
// POST
const result = await request(
{
url: "/rates/delete/ " + row.rateId,
data:{}}
);
//
console.log("请求成功", result);
get();
const result = await request({
url: '/rates/delete/ ' + row.rateId,
data: {}
})
if (result.code == 200) {
ElMessage({
type: 'success',
message: '删除成功'
})
//
console.log('请求成功', result)
//
get()
} else {
ElMessage({
type: 'error',
message: '删除失败'
})
}
} catch (error) {
console.log("请求失败", error);
console.log('请求失败', error)
//
}
};
}
//
function handleInput(value) {
// 7使
rateAdd.value.exchangeRate = value
.replace(/(\.\d{7})\d+/, "$1")
.replace(/^(\d+)(\.\d{0,7})?$/, "$1$2");
.replace(/(\.\d{7})\d+/, '$1')
.replace(/^(\d+)(\.\d{0,7})?$/, '$1$2')
}
</script>
@ -557,8 +563,10 @@ function handleInput(value) {
<el-button
type="text"
@click="
regeEdit = true;
getEditData(scope.row);
() => {
regeEdit = true
getEditData(scope.row)
}
"
>编辑</el-button
>
@ -595,7 +603,6 @@ function handleInput(value) {
@size-change="handlePageSizeChange"
@current-change="handleCurrentChange"
></el-pagination>
</div>
</el-card>
</el-col>

2
gold-system/stats.html
File diff suppressed because it is too large
View File

Loading…
Cancel
Save