Merge branch 'dev' into test
This commit is contained in:
62
.idea/codeStyles/Project.xml
generated
62
.idea/codeStyles/Project.xml
generated
@@ -1,62 +0,0 @@
|
|||||||
<component name="ProjectCodeStyleConfiguration">
|
|
||||||
<code_scheme name="Project" version="173">
|
|
||||||
<option name="LINE_SEPARATOR" value=" " />
|
|
||||||
<HTMLCodeStyleSettings>
|
|
||||||
<option name="HTML_SPACE_INSIDE_EMPTY_TAG" value="true" />
|
|
||||||
</HTMLCodeStyleSettings>
|
|
||||||
<JSCodeStyleSettings version="0">
|
|
||||||
<option name="USE_SEMICOLON_AFTER_STATEMENT" value="false" />
|
|
||||||
<option name="FORCE_SEMICOLON_STYLE" value="true" />
|
|
||||||
<option name="SPACE_BEFORE_FUNCTION_LEFT_PARENTH" value="false" />
|
|
||||||
<option name="USE_DOUBLE_QUOTES" value="false" />
|
|
||||||
<option name="FORCE_QUOTE_STYlE" value="true" />
|
|
||||||
<option name="ENFORCE_TRAILING_COMMA" value="Remove" />
|
|
||||||
<option name="SPACES_WITHIN_OBJECT_LITERAL_BRACES" value="true" />
|
|
||||||
<option name="SPACES_WITHIN_IMPORTS" value="true" />
|
|
||||||
</JSCodeStyleSettings>
|
|
||||||
<TypeScriptCodeStyleSettings version="0">
|
|
||||||
<option name="USE_SEMICOLON_AFTER_STATEMENT" value="false" />
|
|
||||||
<option name="FORCE_SEMICOLON_STYLE" value="true" />
|
|
||||||
<option name="SPACE_BEFORE_FUNCTION_LEFT_PARENTH" value="false" />
|
|
||||||
<option name="USE_DOUBLE_QUOTES" value="false" />
|
|
||||||
<option name="FORCE_QUOTE_STYlE" value="true" />
|
|
||||||
<option name="ENFORCE_TRAILING_COMMA" value="Remove" />
|
|
||||||
<option name="SPACES_WITHIN_OBJECT_LITERAL_BRACES" value="true" />
|
|
||||||
<option name="SPACES_WITHIN_IMPORTS" value="true" />
|
|
||||||
</TypeScriptCodeStyleSettings>
|
|
||||||
<VueCodeStyleSettings>
|
|
||||||
<option name="INTERPOLATION_NEW_LINE_AFTER_START_DELIMITER" value="false" />
|
|
||||||
<option name="INTERPOLATION_NEW_LINE_BEFORE_END_DELIMITER" value="false" />
|
|
||||||
</VueCodeStyleSettings>
|
|
||||||
<codeStyleSettings language="HTML">
|
|
||||||
<option name="SOFT_MARGINS" value="100" />
|
|
||||||
<indentOptions>
|
|
||||||
<option name="INDENT_SIZE" value="2" />
|
|
||||||
<option name="CONTINUATION_INDENT_SIZE" value="2" />
|
|
||||||
<option name="TAB_SIZE" value="2" />
|
|
||||||
</indentOptions>
|
|
||||||
</codeStyleSettings>
|
|
||||||
<codeStyleSettings language="JavaScript">
|
|
||||||
<option name="SOFT_MARGINS" value="100" />
|
|
||||||
<indentOptions>
|
|
||||||
<option name="INDENT_SIZE" value="2" />
|
|
||||||
<option name="CONTINUATION_INDENT_SIZE" value="2" />
|
|
||||||
<option name="TAB_SIZE" value="2" />
|
|
||||||
</indentOptions>
|
|
||||||
</codeStyleSettings>
|
|
||||||
<codeStyleSettings language="TypeScript">
|
|
||||||
<option name="SOFT_MARGINS" value="100" />
|
|
||||||
<indentOptions>
|
|
||||||
<option name="INDENT_SIZE" value="2" />
|
|
||||||
<option name="CONTINUATION_INDENT_SIZE" value="2" />
|
|
||||||
<option name="TAB_SIZE" value="2" />
|
|
||||||
</indentOptions>
|
|
||||||
</codeStyleSettings>
|
|
||||||
<codeStyleSettings language="Vue">
|
|
||||||
<option name="SOFT_MARGINS" value="100" />
|
|
||||||
<indentOptions>
|
|
||||||
<option name="CONTINUATION_INDENT_SIZE" value="2" />
|
|
||||||
</indentOptions>
|
|
||||||
</codeStyleSettings>
|
|
||||||
</code_scheme>
|
|
||||||
</component>
|
|
||||||
5
.idea/codeStyles/codeStyleConfig.xml
generated
5
.idea/codeStyles/codeStyleConfig.xml
generated
@@ -1,5 +0,0 @@
|
|||||||
<component name="ProjectCodeStyleConfiguration">
|
|
||||||
<state>
|
|
||||||
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
|
|
||||||
</state>
|
|
||||||
</component>
|
|
||||||
6
.idea/git_toolbox_blame.xml
generated
6
.idea/git_toolbox_blame.xml
generated
@@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="GitToolBoxBlameSettings">
|
|
||||||
<option name="version" value="2" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
8
.idea/modules.xml
generated
8
.idea/modules.xml
generated
@@ -1,8 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="ProjectModuleManager">
|
|
||||||
<modules>
|
|
||||||
<module fileurl="file://$PROJECT_DIR$/.idea/jdt-admin.iml" filepath="$PROJECT_DIR$/.idea/jdt-admin.iml" />
|
|
||||||
</modules>
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
6
.idea/vcs.xml
generated
6
.idea/vcs.xml
generated
@@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="VcsDirectoryMappings">
|
|
||||||
<mapping directory="" vcs="Git" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
127
.idea/workspace.xml
generated
127
.idea/workspace.xml
generated
@@ -1,127 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="AutoImportSettings">
|
|
||||||
<option name="autoReloadType" value="SELECTIVE" />
|
|
||||||
</component>
|
|
||||||
<component name="ChangeListManager">
|
|
||||||
<list default="true" id="b019f168-135d-4524-8d1f-fa42f9f9b7b0" name="更改" comment="">
|
|
||||||
<change afterPath="$PROJECT_DIR$/src/views/finance/suyuan.vue" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/.husky/_/husky.sh" beforeDir="false" afterPath="$PROJECT_DIR$/.husky/_/husky.sh" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/views/commodity/hot_list/index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/src/views/commodity/hot_list/index.vue" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/views/finance/api.js" beforeDir="false" afterPath="$PROJECT_DIR$/src/views/finance/api.js" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/views/finance/index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/src/views/finance/index.vue" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/views/order/index/index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/src/views/order/index/index.vue" afterDir="false" />
|
|
||||||
</list>
|
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
|
||||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
|
||||||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
|
||||||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
|
||||||
</component>
|
|
||||||
<component name="FileTemplateManagerImpl">
|
|
||||||
<option name="RECENT_TEMPLATES">
|
|
||||||
<list>
|
|
||||||
<option value="Vue Options API Component" />
|
|
||||||
</list>
|
|
||||||
</option>
|
|
||||||
</component>
|
|
||||||
<component name="Git.Settings">
|
|
||||||
<option name="RECENT_BRANCH_BY_REPOSITORY">
|
|
||||||
<map>
|
|
||||||
<entry key="$PROJECT_DIR$" value="main" />
|
|
||||||
</map>
|
|
||||||
</option>
|
|
||||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
|
||||||
</component>
|
|
||||||
<component name="GitToolBoxStore">
|
|
||||||
<option name="recentBranches">
|
|
||||||
<RecentBranches>
|
|
||||||
<option name="branchesForRepo">
|
|
||||||
<list>
|
|
||||||
<RecentBranchesForRepo>
|
|
||||||
<option name="branches">
|
|
||||||
<list>
|
|
||||||
<RecentBranch>
|
|
||||||
<option name="branchName" value="dev" />
|
|
||||||
<option name="lastUsedInstant" value="1723221039" />
|
|
||||||
</RecentBranch>
|
|
||||||
<RecentBranch>
|
|
||||||
<option name="branchName" value="main" />
|
|
||||||
<option name="lastUsedInstant" value="1723221038" />
|
|
||||||
</RecentBranch>
|
|
||||||
</list>
|
|
||||||
</option>
|
|
||||||
<option name="repositoryRootUrl" value="file://$PROJECT_DIR$" />
|
|
||||||
</RecentBranchesForRepo>
|
|
||||||
</list>
|
|
||||||
</option>
|
|
||||||
</RecentBranches>
|
|
||||||
</option>
|
|
||||||
</component>
|
|
||||||
<component name="HighlightingSettingsPerFile">
|
|
||||||
<setting file="file://$PROJECT_DIR$/src/views/order/index/index.vue" root0="FORCE_HIGHLIGHTING" />
|
|
||||||
</component>
|
|
||||||
<component name="ProjectColorInfo">{
|
|
||||||
"associatedIndex": 2
|
|
||||||
}</component>
|
|
||||||
<component name="ProjectId" id="2kQfzo3ApXRrBNGBRkYhmvHyd37" />
|
|
||||||
<component name="ProjectViewState">
|
|
||||||
<option name="hideEmptyMiddlePackages" value="true" />
|
|
||||||
<option name="showLibraryContents" value="true" />
|
|
||||||
</component>
|
|
||||||
<component name="PropertiesComponent"><![CDATA[{
|
|
||||||
"keyToString": {
|
|
||||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
|
||||||
"git-widget-placeholder": "dev",
|
|
||||||
"last_opened_file_path": "E:/ProjectCode/jdt-admin",
|
|
||||||
"node.js.detected.package.eslint": "true",
|
|
||||||
"node.js.detected.package.tslint": "true",
|
|
||||||
"node.js.selected.package.eslint": "(autodetect)",
|
|
||||||
"node.js.selected.package.tslint": "(autodetect)",
|
|
||||||
"nodejs_package_manager_path": "pnpm",
|
|
||||||
"npm.dev.executor": "Run",
|
|
||||||
"settings.editor.selected.configurable": "preferences.lookFeel",
|
|
||||||
"vue.rearranger.settings.migration": "true"
|
|
||||||
},
|
|
||||||
"keyToStringList": {
|
|
||||||
"vue.recent.templates": [
|
|
||||||
"Vue Options API Component"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}]]></component>
|
|
||||||
<component name="RunManager">
|
|
||||||
<configuration name="dev" type="js.build_tools.npm" nameIsGenerated="true">
|
|
||||||
<package-json value="$PROJECT_DIR$/package.json" />
|
|
||||||
<command value="run" />
|
|
||||||
<scripts>
|
|
||||||
<script value="dev" />
|
|
||||||
</scripts>
|
|
||||||
<node-interpreter value="project" />
|
|
||||||
<envs />
|
|
||||||
<method v="2" />
|
|
||||||
</configuration>
|
|
||||||
</component>
|
|
||||||
<component name="SharedIndexes">
|
|
||||||
<attachedChunks>
|
|
||||||
<set>
|
|
||||||
<option value="bundled-js-predefined-1d06a55b98c1-0b3e54e931b4-JavaScript-WS-241.19072.23" />
|
|
||||||
</set>
|
|
||||||
</attachedChunks>
|
|
||||||
</component>
|
|
||||||
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="应用程序级" UseSingleDictionary="true" transferred="true" />
|
|
||||||
<component name="TaskManager">
|
|
||||||
<task active="true" id="Default" summary="默认任务">
|
|
||||||
<changelist id="b019f168-135d-4524-8d1f-fa42f9f9b7b0" name="更改" comment="" />
|
|
||||||
<created>1723220985918</created>
|
|
||||||
<option name="number" value="Default" />
|
|
||||||
<option name="presentableId" value="Default" />
|
|
||||||
<updated>1723220985918</updated>
|
|
||||||
<workItem from="1723220987623" duration="121000" />
|
|
||||||
<workItem from="1723221113870" duration="110000" />
|
|
||||||
<workItem from="1725368890652" duration="3893000" />
|
|
||||||
</task>
|
|
||||||
<servers />
|
|
||||||
</component>
|
|
||||||
<component name="TypeScriptGeneratedFilesManager">
|
|
||||||
<option name="version" value="3" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
@@ -290,7 +290,7 @@ const columns = ref([
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '积分',
|
title: '余额',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
key: 'integral',
|
key: 'integral',
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -173,11 +173,11 @@
|
|||||||
:min="0"
|
:min="0"
|
||||||
/>
|
/>
|
||||||
</n-form-item-gi>
|
</n-form-item-gi>
|
||||||
<n-form-item-gi :span="20" label="商品折扣比例" path="discount">
|
<n-form-item-gi :span="20" label="商品抵扣比例" path="discount">
|
||||||
<n-input-number
|
<n-input-number
|
||||||
v-model:value="nowRow.discount"
|
v-model:value="nowRow.discount"
|
||||||
clearable
|
clearable
|
||||||
placeholder="请输入折扣比例...."
|
placeholder="请输入抵扣比例...."
|
||||||
:min="0"
|
:min="0"
|
||||||
:precision="0"
|
:precision="0"
|
||||||
>
|
>
|
||||||
@@ -337,7 +337,7 @@ const rules = {
|
|||||||
discount: {
|
discount: {
|
||||||
required: true,
|
required: true,
|
||||||
type: 'number',
|
type: 'number',
|
||||||
message: '请输入折扣比例',
|
message: '请输入抵扣比例',
|
||||||
trigger: 'blur',
|
trigger: 'blur',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@@ -444,32 +444,19 @@ const columns = ref([
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '积分抵扣',
|
title: '抵扣后价格(元)',
|
||||||
slot: 'exchange',
|
key: 'discount_price',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
render: (row) => {
|
|
||||||
return h(
|
|
||||||
'span',
|
|
||||||
{},
|
|
||||||
{
|
|
||||||
default: () => (row.exchange ? `${(row.exchange / 100).toFixed(2)}元` : '无'),
|
|
||||||
}
|
|
||||||
)
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '折扣比例(%)',
|
title: '积分抵扣(元)',
|
||||||
slot: 'discount',
|
key: 'exchange',
|
||||||
|
align: 'center',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '抵扣比例(%)',
|
||||||
|
key: 'discount',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
render: (row) => {
|
|
||||||
return h(
|
|
||||||
'span',
|
|
||||||
{},
|
|
||||||
{
|
|
||||||
default: () => `${row.discount}%`,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '商品库存',
|
title: '商品库存',
|
||||||
@@ -667,28 +654,33 @@ const clear = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const veeify = async () => {
|
const veeify = async () => {
|
||||||
let data = {}
|
try {
|
||||||
if (nowKey.value === 1 || nowKey.value === 2) {
|
let data = {}
|
||||||
data = {
|
if (nowKey.value === 1 || nowKey.value === 2) {
|
||||||
gid: [nowRow.value.gid],
|
data = {
|
||||||
status: nowKey.value,
|
gid: [nowRow.value.gid],
|
||||||
notes: notesVal.value,
|
status: nowKey.value,
|
||||||
}
|
notes: notesVal.value,
|
||||||
await api.getHotStatus(data)
|
|
||||||
await getList()
|
|
||||||
clear()
|
|
||||||
} else {
|
|
||||||
formRef.value?.validate(async (errors) => {
|
|
||||||
if (!errors) {
|
|
||||||
data = {
|
|
||||||
...nowRow.value,
|
|
||||||
gid: [nowRow.value.gid],
|
|
||||||
}
|
|
||||||
await api.getHotStatus(data)
|
|
||||||
await getList()
|
|
||||||
clear()
|
|
||||||
}
|
}
|
||||||
})
|
await api.getHotStatus(data)
|
||||||
|
await getList()
|
||||||
|
// clear()
|
||||||
|
} else {
|
||||||
|
formRef.value?.validate(async (errors) => {
|
||||||
|
if (!errors) {
|
||||||
|
data = {
|
||||||
|
...nowRow.value,
|
||||||
|
gid: [nowRow.value.gid],
|
||||||
|
}
|
||||||
|
await api.getHotStatus(data)
|
||||||
|
await getList()
|
||||||
|
// clear()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
isNoteModel.value = false
|
||||||
|
isDzModel.value = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -9,4 +9,6 @@ export default {
|
|||||||
ydataEdit: (data) => request.post('/store/amount/withdraw/edit', data),
|
ydataEdit: (data) => request.post('/store/amount/withdraw/edit', data),
|
||||||
// 溯源统计
|
// 溯源统计
|
||||||
suyuanData: (data) => request.post('/pulse/count', data),
|
suyuanData: (data) => request.post('/pulse/count', data),
|
||||||
|
// 获取游戏大厅
|
||||||
|
getGameData: (data) => request.post('/game/list', data),
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
<n-number-animation
|
<n-number-animation
|
||||||
ref="numberAnimationInstRef"
|
ref="numberAnimationInstRef"
|
||||||
:from="0"
|
:from="0"
|
||||||
:to="cardData.total / 100"
|
:to="cardData.total"
|
||||||
:precision="2"
|
:precision="2"
|
||||||
/>
|
/>
|
||||||
</n-statistic>
|
</n-statistic>
|
||||||
@@ -28,18 +28,14 @@
|
|||||||
<n-number-animation
|
<n-number-animation
|
||||||
ref="numberAnimationInstRef"
|
ref="numberAnimationInstRef"
|
||||||
:from="0"
|
:from="0"
|
||||||
:to="cardData.service / 100"
|
:to="cardData.service"
|
||||||
:precision="2"
|
:precision="2"
|
||||||
/>
|
/>
|
||||||
</n-statistic>
|
</n-statistic>
|
||||||
</n-card>
|
</n-card>
|
||||||
<n-card ml-10 w-400>
|
<n-card ml-10 w-400>
|
||||||
<n-statistic label="已审核金额" tabular-nums>
|
<n-statistic label="已审核金额" tabular-nums>
|
||||||
<n-number-animation
|
<n-number-animation ref="numberAnimationInstRef" :from="0" :to="cardData.count" />
|
||||||
ref="numberAnimationInstRef"
|
|
||||||
:from="0"
|
|
||||||
:to="cardData.count / 100"
|
|
||||||
/>
|
|
||||||
</n-statistic>
|
</n-statistic>
|
||||||
</n-card>
|
</n-card>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,5 +1,87 @@
|
|||||||
<template>
|
<template>
|
||||||
<CommonPage show-footer :title="$route.title">
|
<CommonPage show-footer :title="$route.title">
|
||||||
|
<n-grid class="mb-10" x-gap="12">
|
||||||
|
<n-gi :span="24">
|
||||||
|
<div flex>
|
||||||
|
<n-card w-250>
|
||||||
|
<n-statistic label="总赢积分" tabular-nums>
|
||||||
|
<n-number-animation ref="numberAnimationInstRef" :from="0" :to="cardData.win" />
|
||||||
|
</n-statistic>
|
||||||
|
</n-card>
|
||||||
|
<n-card ml-10 w-250>
|
||||||
|
<n-statistic label="总豆子" tabular-nums>
|
||||||
|
<n-number-animation ref="numberAnimationInstRef" :from="0" :to="cardData.pulse" />
|
||||||
|
</n-statistic>
|
||||||
|
</n-card>
|
||||||
|
</div>
|
||||||
|
</n-gi>
|
||||||
|
<n-gi :span="12">
|
||||||
|
<div mt-10 flex items-center>
|
||||||
|
<div w-100>筛选条件:</div>
|
||||||
|
<n-input-group>
|
||||||
|
<n-select
|
||||||
|
v-model:value="queryParams.selectKey"
|
||||||
|
:style="{ width: '30rem' }"
|
||||||
|
:options="selectOptions"
|
||||||
|
placeholder="请选择"
|
||||||
|
/>
|
||||||
|
<n-input v-model:value="queryParams.word" :style="{ width: '50rem' }" />
|
||||||
|
</n-input-group>
|
||||||
|
</div>
|
||||||
|
</n-gi>
|
||||||
|
<n-gi :span="24">
|
||||||
|
<div mt-10 flex items-center>
|
||||||
|
<div mr-10>游戏名称:</div>
|
||||||
|
<n-select
|
||||||
|
v-model:value="queryParams.hall_id"
|
||||||
|
w-250
|
||||||
|
:options="gamelist"
|
||||||
|
placeholder="请选择游戏"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</n-gi>
|
||||||
|
<n-gi :span="24" mt-10>
|
||||||
|
<div>
|
||||||
|
<span>豆子状态:</span>
|
||||||
|
<n-radio-group v-model:value="queryParams.Status">
|
||||||
|
<n-radio-button
|
||||||
|
v-for="song in songs"
|
||||||
|
:key="song.value"
|
||||||
|
:value="song.value"
|
||||||
|
:label="song.label"
|
||||||
|
/>
|
||||||
|
</n-radio-group>
|
||||||
|
</div>
|
||||||
|
</n-gi>
|
||||||
|
<n-gi :span="24" mt-10>
|
||||||
|
<div>
|
||||||
|
<span>活动赠送:</span>
|
||||||
|
<n-radio-group v-model:value="queryParams.Type">
|
||||||
|
<n-radio-button
|
||||||
|
v-for="song in songs1"
|
||||||
|
:key="song.value"
|
||||||
|
:value="song.value"
|
||||||
|
:label="song.label"
|
||||||
|
/>
|
||||||
|
</n-radio-group>
|
||||||
|
</div>
|
||||||
|
</n-gi>
|
||||||
|
<n-gi :span="24">
|
||||||
|
<div mt-10 flex items-center>
|
||||||
|
<div>时间筛选:</div>
|
||||||
|
<n-date-picker
|
||||||
|
v-model:formatted-value="queryParams.time"
|
||||||
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
|
type="datetimerange"
|
||||||
|
clearable
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</n-gi>
|
||||||
|
<n-gi span="24" mt-10 flex items-center>
|
||||||
|
<n-button type="primary" @click="getList">查询</n-button>
|
||||||
|
<n-button ml-10 @click="clear">重置</n-button>
|
||||||
|
</n-gi>
|
||||||
|
</n-grid>
|
||||||
<n-data-table
|
<n-data-table
|
||||||
class="mt-10"
|
class="mt-10"
|
||||||
:loading="loading"
|
:loading="loading"
|
||||||
@@ -14,12 +96,119 @@
|
|||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import api from './api'
|
import api from './api'
|
||||||
|
import dayjs from 'dayjs'
|
||||||
|
|
||||||
// const queryData = ref({})
|
const queryParams = ref({})
|
||||||
|
|
||||||
|
const cardData = ref({})
|
||||||
|
|
||||||
|
const selectOptions = [
|
||||||
|
{
|
||||||
|
label: '商家电话',
|
||||||
|
value: 0,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '用户电话',
|
||||||
|
value: 1,
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
const songs = ref([
|
||||||
|
{
|
||||||
|
value: 1,
|
||||||
|
label: '未使用',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 3,
|
||||||
|
label: '用户赢',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 4,
|
||||||
|
label: '用户输',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 5,
|
||||||
|
label: '已过期',
|
||||||
|
},
|
||||||
|
])
|
||||||
|
|
||||||
|
const gamelist = ref([])
|
||||||
|
|
||||||
|
const songs1 = ref([
|
||||||
|
{
|
||||||
|
value: 5,
|
||||||
|
label: '注册赠送',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 6,
|
||||||
|
label: '签到赠送',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 7,
|
||||||
|
label: '平台赠送',
|
||||||
|
},
|
||||||
|
])
|
||||||
|
|
||||||
const loading = ref(false)
|
const loading = ref(false)
|
||||||
|
|
||||||
const columns = ref([])
|
const columns = ref([
|
||||||
|
{
|
||||||
|
title: '游戏名称',
|
||||||
|
align: 'center',
|
||||||
|
slot: 'game_name',
|
||||||
|
render: (row) => {
|
||||||
|
const res = gamelist.value.find((item) => item.value === Number(row.hall_id))
|
||||||
|
return h('span', null, {
|
||||||
|
default: () => res?.label || '',
|
||||||
|
})
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '订单ID',
|
||||||
|
align: 'center',
|
||||||
|
key: 'order_id',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '期数',
|
||||||
|
align: 'center',
|
||||||
|
key: 'periods',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '投注豆子',
|
||||||
|
align: 'center',
|
||||||
|
key: 'number',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '赢积分',
|
||||||
|
align: 'center',
|
||||||
|
key: 'integral',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '用户电话',
|
||||||
|
align: 'center',
|
||||||
|
key: 'user_phone',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '商户电话',
|
||||||
|
align: 'center',
|
||||||
|
key: 'merchant_phone',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '投注时间',
|
||||||
|
align: 'center',
|
||||||
|
key: 'add_time',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '过期时间',
|
||||||
|
align: 'center',
|
||||||
|
slot: 'expire',
|
||||||
|
render: (row) => {
|
||||||
|
return h('span', null, {
|
||||||
|
default: () => dayjs(row.expire).format('YYYY-MM-DD HH:mm:ss'),
|
||||||
|
})
|
||||||
|
},
|
||||||
|
},
|
||||||
|
])
|
||||||
|
|
||||||
const data = ref([])
|
const data = ref([])
|
||||||
|
|
||||||
@@ -35,30 +224,56 @@ const pagination = ref({
|
|||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getList()
|
getList()
|
||||||
|
getGameList()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const getGameList = async () => {
|
||||||
|
const res = await api.getGameData({ pageSize: 9999999, pageNum: 1 })
|
||||||
|
gamelist.value = res.data.data.map((item) => ({ value: item.ID, label: item.name }))
|
||||||
|
}
|
||||||
|
|
||||||
const getList = async () => {
|
const getList = async () => {
|
||||||
loading.value = true
|
loading.value = true
|
||||||
// const query_data = {
|
const query_data = {
|
||||||
// Status: queryData.value.status || '',
|
...queryParams.value,
|
||||||
// Phone: queryData.value.word || '',
|
StartTime: queryParams.value.time?.[0] || '',
|
||||||
// StartTime: queryData.value.time === null ? '' : queryData.value.time[0] || '',
|
EndTime: queryParams.value.time?.[1] || '',
|
||||||
// EndTime: queryData.value.time === null ? '' : queryData.value.time[1] || '',
|
}
|
||||||
// }
|
|
||||||
|
switch (queryParams.value.selectKey) {
|
||||||
|
case 0:
|
||||||
|
query_data['merchant_phone'] = queryParams.value.word
|
||||||
|
break
|
||||||
|
case 1:
|
||||||
|
query_data['user_phone'] = queryParams.value.word
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
delete query_data.time
|
||||||
|
delete query_data.word
|
||||||
const res = await api.suyuanData({
|
const res = await api.suyuanData({
|
||||||
pageNum: pagination.value.page,
|
pageNum: pagination.value.page,
|
||||||
pageSize: pagination.value.pageSize,
|
pageSize: pagination.value.pageSize,
|
||||||
// ...query_data,
|
...query_data,
|
||||||
})
|
})
|
||||||
|
data.value = res.data.result || []
|
||||||
data.value = res.data.data || []
|
pagination.value.itemCount = res.data.count
|
||||||
pagination.value.itemCount = res.data.total
|
cardData.value.win = res.data.win
|
||||||
// cardData.value.total = res.data.all
|
cardData.value.pulse = res.data.pulse
|
||||||
// cardData.value.service = res.data.audit_number
|
|
||||||
// cardData.value.commission = res.data.audit_commission
|
|
||||||
// cardData.value.count = res.data.success_amount
|
|
||||||
loading.value = false
|
loading.value = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const clear = () => {
|
||||||
|
queryParams.value = {
|
||||||
|
word: '',
|
||||||
|
selectKey: null,
|
||||||
|
Status: '',
|
||||||
|
time: null,
|
||||||
|
Type: '',
|
||||||
|
hall_id: '',
|
||||||
|
}
|
||||||
|
getList()
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped></style>
|
<style lang="scss" scoped></style>
|
||||||
|
|||||||
@@ -251,10 +251,14 @@ const columns = ref([
|
|||||||
render: (row) => h('span', `${row.price}元`),
|
render: (row) => h('span', `${row.price}元`),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '积分抵扣',
|
title: '抵扣后价格(元)',
|
||||||
|
key: 'discount_price',
|
||||||
|
align: 'center',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '积分抵扣',
|
||||||
|
key: 'exchange',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
slot: 'discount_price',
|
|
||||||
render: (row) => h('span', `${row.discount_price}`),
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '支付方式',
|
title: '支付方式',
|
||||||
|
|||||||
7
src/views/system/msgMag/index.vue
Normal file
7
src/views/system/msgMag/index.vue
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
<template>
|
||||||
|
<CommonPage show-footer :title="$route.title"></CommonPage>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup></script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped></style>
|
||||||
@@ -3,21 +3,21 @@
|
|||||||
<n-grid class="mb-10" x-gap="12">
|
<n-grid class="mb-10" x-gap="12">
|
||||||
<n-gi :span="24">
|
<n-gi :span="24">
|
||||||
<div flex>
|
<div flex>
|
||||||
<n-card w-250>
|
<!-- <n-card w-250>
|
||||||
<n-statistic label="用户总赢积分" tabular-nums>
|
<n-statistic label="用户总赢积分" tabular-nums>
|
||||||
<n-number-animation ref="numberAnimationInstRef" :from="0" :to="cardData.win" />
|
<n-number-animation ref="numberAnimationInstRef" :from="0" :to="cardData.win" />
|
||||||
</n-statistic>
|
</n-statistic>
|
||||||
</n-card>
|
</n-card> -->
|
||||||
<n-card ml-10 w-250>
|
<n-card w-250>
|
||||||
<n-statistic label="用户积分(留存)" tabular-nums>
|
<n-statistic label="用户积分(留存)" tabular-nums>
|
||||||
<n-number-animation ref="numberAnimationInstRef" :from="0" :to="cardData.integral" />
|
<n-number-animation ref="numberAnimationInstRef" :from="0" :to="cardData.integral" />
|
||||||
</n-statistic>
|
</n-statistic>
|
||||||
</n-card>
|
</n-card>
|
||||||
<n-card ml-10 w-250>
|
<!-- <n-card ml-10 w-250>
|
||||||
<n-statistic label="总豆子" tabular-nums>
|
<n-statistic label="总豆子" tabular-nums>
|
||||||
<n-number-animation ref="numberAnimationInstRef" :from="0" :to="cardData.pulse" />
|
<n-number-animation ref="numberAnimationInstRef" :from="0" :to="cardData.pulse" />
|
||||||
</n-statistic>
|
</n-statistic>
|
||||||
</n-card>
|
</n-card> -->
|
||||||
<n-card ml-10 w-250>
|
<n-card ml-10 w-250>
|
||||||
<n-statistic label="今日新增用户" tabular-nums>
|
<n-statistic label="今日新增用户" tabular-nums>
|
||||||
<n-number-animation
|
<n-number-animation
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
/>
|
/>
|
||||||
</n-statistic>
|
</n-statistic>
|
||||||
</n-card>
|
</n-card>
|
||||||
<n-card ml-10 w-250>
|
<!-- <n-card ml-10 w-250>
|
||||||
<n-statistic label="用户总流水(元)" tabular-nums>
|
<n-statistic label="用户总流水(元)" tabular-nums>
|
||||||
<n-number-animation
|
<n-number-animation
|
||||||
ref="numberAnimationInstRef"
|
ref="numberAnimationInstRef"
|
||||||
@@ -36,8 +36,8 @@
|
|||||||
:precision="2"
|
:precision="2"
|
||||||
/>
|
/>
|
||||||
</n-statistic>
|
</n-statistic>
|
||||||
</n-card>
|
</n-card> -->
|
||||||
<n-card ml-10 w-250>
|
<!-- <n-card ml-10 w-250>
|
||||||
<n-statistic label="总佣金(积分)" tabular-nums>
|
<n-statistic label="总佣金(积分)" tabular-nums>
|
||||||
<n-number-animation
|
<n-number-animation
|
||||||
ref="numberAnimationInstRef"
|
ref="numberAnimationInstRef"
|
||||||
@@ -46,7 +46,7 @@
|
|||||||
:precision="2"
|
:precision="2"
|
||||||
/>
|
/>
|
||||||
</n-statistic>
|
</n-statistic>
|
||||||
</n-card>
|
</n-card> -->
|
||||||
<n-card ml-10 w-250>
|
<n-card ml-10 w-250>
|
||||||
<n-statistic label="平台总用户" tabular-nums>
|
<n-statistic label="平台总用户" tabular-nums>
|
||||||
<n-number-animation
|
<n-number-animation
|
||||||
@@ -58,7 +58,7 @@
|
|||||||
</n-card>
|
</n-card>
|
||||||
</div>
|
</div>
|
||||||
</n-gi>
|
</n-gi>
|
||||||
<n-gi span="12" mt-10 flex items-center>
|
<n-gi :span="12" mt-10 flex items-center>
|
||||||
<span w-100>筛选条件:</span>
|
<span w-100>筛选条件:</span>
|
||||||
<n-input-group>
|
<n-input-group>
|
||||||
<n-select
|
<n-select
|
||||||
@@ -70,7 +70,7 @@
|
|||||||
<n-input v-model:value="queryParams.word" :style="{ width: '30%' }" />
|
<n-input v-model:value="queryParams.word" :style="{ width: '30%' }" />
|
||||||
</n-input-group>
|
</n-input-group>
|
||||||
</n-gi>
|
</n-gi>
|
||||||
<n-gi :span="24" mt-10>
|
<!-- <n-gi :span="24" mt-10>
|
||||||
<div>
|
<div>
|
||||||
<span>筛选状态:</span>
|
<span>筛选状态:</span>
|
||||||
<n-radio-group v-model:value="queryParams.status">
|
<n-radio-group v-model:value="queryParams.status">
|
||||||
@@ -95,8 +95,8 @@
|
|||||||
/>
|
/>
|
||||||
</n-radio-group>
|
</n-radio-group>
|
||||||
</div>
|
</div>
|
||||||
</n-gi>
|
</n-gi> -->
|
||||||
<n-gi :span="10">
|
<n-gi :span="24">
|
||||||
<div mt-10 flex items-center>
|
<div mt-10 flex items-center>
|
||||||
<span w-100>时间筛选:</span>
|
<span w-100>时间筛选:</span>
|
||||||
<n-date-picker
|
<n-date-picker
|
||||||
@@ -279,40 +279,6 @@ const cardData = ref({
|
|||||||
win: 0,
|
win: 0,
|
||||||
})
|
})
|
||||||
|
|
||||||
const songs = ref([
|
|
||||||
{
|
|
||||||
value: 1,
|
|
||||||
label: '未使用',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
value: 3,
|
|
||||||
label: '用户赢',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
value: 4,
|
|
||||||
label: '用户输',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
value: 5,
|
|
||||||
label: '已过期',
|
|
||||||
},
|
|
||||||
])
|
|
||||||
|
|
||||||
const songs1 = ref([
|
|
||||||
{
|
|
||||||
value: 5,
|
|
||||||
label: '注册赠送',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
value: 6,
|
|
||||||
label: '签到赠送',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
value: 7,
|
|
||||||
label: '主动赠送',
|
|
||||||
},
|
|
||||||
])
|
|
||||||
|
|
||||||
const selectOptions = [
|
const selectOptions = [
|
||||||
{
|
{
|
||||||
label: '用户昵称',
|
label: '用户昵称',
|
||||||
@@ -364,20 +330,20 @@ const columns = ref([
|
|||||||
sorter: true,
|
sorter: true,
|
||||||
sortOrder: false,
|
sortOrder: false,
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
title: '赢积分',
|
// title: '赢积分',
|
||||||
align: 'center',
|
// align: 'center',
|
||||||
key: 'win',
|
// key: 'win',
|
||||||
sorter: true,
|
// sorter: true,
|
||||||
sortOrder: false,
|
// sortOrder: false,
|
||||||
},
|
// },
|
||||||
{
|
// {
|
||||||
title: '用户豆子',
|
// title: '用户豆子',
|
||||||
align: 'center',
|
// align: 'center',
|
||||||
key: 'pulse',
|
// key: 'pulse',
|
||||||
sorter: true,
|
// sorter: true,
|
||||||
sortOrder: false,
|
// sortOrder: false,
|
||||||
},
|
// },
|
||||||
{
|
{
|
||||||
title: '用户状态',
|
title: '用户状态',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
|||||||
Reference in New Issue
Block a user