This commit is contained in:
2026-04-28 10:34:29 +08:00
parent 77b16a12f1
commit db76c41753
13 changed files with 428 additions and 55 deletions

View File

@@ -212,4 +212,31 @@ export function addRobot(data) {
method: "post",
data: data
});
}
}
// ---- CDK 相关接口 ----
/** 为Roll房批量生成CDK */
export function generateRollCdk(data) {
return request({
url: '/admin/roll/cdk/generate',
method: 'post',
data: data
});
}
/** 查询Roll房CDK列表 */
export function getRollCdkList(rollId) {
return request({
url: `/admin/roll/cdk/list/${rollId}`,
method: 'get'
});
}
/** 删除CDK */
export function deleteRollCdk(cdkId) {
return request({
url: `/admin/roll/cdk/${cdkId}`,
method: 'delete'
});
}

View File

@@ -117,6 +117,7 @@
<el-button type="text" size="mini" icon="el-icon-edit" @click="handleChange(scope.row)">修改</el-button>
<el-button type="text" size="mini" icon="el-icon-view" @click="handleSelect(scope.row)">详情</el-button>
<el-button type="text" size="mini" icon="el-icon-view" @click="handleRouter(scope.row)">装备列表</el-button>
<el-button type="text" size="mini" icon="el-icon-key" @click="handleCdk(scope.row)">CDK</el-button>
<el-button type="text" size="mini" icon="el-icon-view" @click="rollUser(scope.row)">房间用户</el-button>
</template>
</el-table-column>
@@ -185,20 +186,14 @@
<i class="el-icon-info"></i> 为空表示无密码
</span>
</el-form-item>
<el-form-item label="计算充值起始日期" prop="rechargeStartTime">
<el-date-picker
v-model="form.rechargeStartTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="选择日期时间"
></el-date-picker>
</el-form-item>
<el-form-item label="充值门槛" prop="minRecharge">
<el-input v-model="form.minRecharge" autocomplete="off"></el-input>
<span style="font-size: 12px;">
<i class="el-icon-info"></i> 为0时表示不做限制
</span>
<!-- 新增CDK数量 -->
<el-form-item label="CDK数量" prop="cdkCount">
<el-input-number v-model="form.cdkCount" :min="0" :max="500" label="CDK数量"></el-input-number>
<span style="font-size: 12px; margin-left: 8px;">
<i class="el-icon-info"></i> 填0则不启用CDK模式使用普通密码
</span>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false"> </el-button>
@@ -281,6 +276,53 @@
<el-button @click="openView = false"> </el-button>
</div>
</el-dialog>
<!-- CDK 管理弹窗 -->
<el-dialog title="CDK管理" :visible.sync="cdkDialogVisible" width="55%">
<div style="margin-bottom:12px; display:flex; align-items:center; gap:12px;">
<el-input-number v-model="cdkGenCount" :min="1" :max="500" size="small" label="生成数量" style="width:160px;"></el-input-number>
<el-button type="primary" size="small" icon="el-icon-plus" @click="handleGenerateCdk">批量生成</el-button>
</div>
<el-table :data="cdkList" border size="small" v-loading="cdkLoading">
<el-table-column prop="cdkCode" label="CDK码" width="280">
<template slot-scope="scope">
<span>{{ scope.row.cdkCode }}</span>
<el-button
type="text"
size="mini"
icon="el-icon-copy-document"
style="margin-left:6px;"
@click="handleCopyCdk(scope.row.cdkCode)"
>复制</el-button>
</template>
</el-table-column>
<el-table-column prop="status" label="状态" width="100">
<template slot-scope="scope">
<el-tag v-if="scope.row.status === '0'" type="success" size="small">未使用</el-tag>
<el-tag v-else type="info" size="small">已使用</el-tag>
</template>
</el-table-column>
<el-table-column prop="usedUserId" label="使用者ID" width="100"></el-table-column>
<el-table-column prop="usedTime" label="使用时间" width="160"></el-table-column>
<el-table-column prop="createTime" label="创建时间" width="160"></el-table-column>
<el-table-column label="操作" width="80">
<template slot-scope="scope">
<el-button
type="text"
size="mini"
icon="el-icon-delete"
style="color:#F56C6C;"
@click="handleDeleteCdk(scope.row.id)"
:disabled="scope.row.status === '1'"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<div slot="footer" class="dialog-footer">
<el-button @click="cdkDialogVisible = false"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
@@ -291,6 +333,7 @@ import {
delRoll,
rollChange
} from "@/api/skins/ttRoll/api";
import { generateRollCdk, getRollCdkList, deleteRollCdk } from "@/api/skins/ttRoll/api";
import { listUser } from "@/api/skins/ttuser/api";
export default {
@@ -327,9 +370,6 @@ export default {
endTime: [
{ required: true, message: "请选择开奖时间", trigger: "blur" }
],
minRecharge: [
{ required: true, message: "请输入充值金额", trigger: "blur" }
],
peopleNum: [
{ required: true, message: "请选择参与人数", trigger: "blur" }
]
@@ -355,7 +395,13 @@ export default {
rollStatus: null
},
tableData: [],
userList: []
userList: [],
// CDK 管理
cdkDialogVisible: false,
cdkList: [],
cdkLoading: false,
cdkGenCount: 10,
currentCdkRollId: null
};
},
mounted() {
@@ -421,6 +467,11 @@ export default {
this.$refs[formName].validate(valid => {
if (valid) {
roll(this.form).then(res => {
// 若设置了CDK数量创建成功后自动生成CDK
const cdkCount = this.form.cdkCount;
if (cdkCount > 0 && res.data) {
generateRollCdk({ rollId: res.data, count: cdkCount });
}
this.$message({
type: "success",
message: "添加成功!"
@@ -437,7 +488,8 @@ export default {
rollPassword: null,
rollType: null,
sortBy: null,
userId: null
userId: null,
cdkCount: 0
};
this.getList();
});
@@ -469,7 +521,8 @@ export default {
rollPassword: null,
rollType: null,
sortBy: null,
userId: null
userId: null,
cdkCount: 0
};
},
handleSelectionChange(selection) {
@@ -520,6 +573,46 @@ export default {
this.loading = false;
this.total = res.total;
});
},
// 打开CDK管理弹窗
handleCdk(row) {
this.currentCdkRollId = row.id;
this.cdkDialogVisible = true;
this.loadCdkList();
},
// 加载CDK列表
loadCdkList() {
this.cdkLoading = true;
getRollCdkList(this.currentCdkRollId).then(res => {
this.cdkList = res.data || [];
this.cdkLoading = false;
});
},
// 批量生成CDK
handleGenerateCdk() {
generateRollCdk({ rollId: this.currentCdkRollId, count: this.cdkGenCount }).then(() => {
this.$message.success('生成成功');
this.loadCdkList();
});
},
// 删除CDK
handleDeleteCdk(cdkId) {
this.$modal.confirm('确认删除该CDK').then(() => {
deleteRollCdk(cdkId).then(() => {
this.$message.success('删除成功');
this.loadCdkList();
});
}).catch(() => {});
},
// 复制CDK码
handleCopyCdk(code) {
const el = document.createElement('textarea');
el.value = code;
document.body.appendChild(el);
el.select();
document.execCommand('copy');
document.body.removeChild(el);
this.$message.success('已复制:' + code);
}
}
};
@@ -528,4 +621,4 @@ export default {
.home {
padding: 20px;
}
</style>
</style>