添加对话框
This commit is contained in:
parent
76fa896ab4
commit
2e55da8c02
@ -18,6 +18,7 @@
|
||||
"/src/view/example/index.vue": "Example",
|
||||
"/src/view/example/upload/scanUpload.vue": "scanUpload",
|
||||
"/src/view/example/upload/upload.vue": "Upload",
|
||||
"/src/view/gameuser/addResourceDialog.vue": "AddResourceDialog",
|
||||
"/src/view/gameuser/index.vue": "Index",
|
||||
"/src/view/init/index.vue": "Init",
|
||||
"/src/view/layout/aside/asideComponent/asyncSubmenu.vue": "AsyncSubmenu",
|
||||
|
131
admin/web/src/view/gameuser/addResourceDialog.vue
Normal file
131
admin/web/src/view/gameuser/addResourceDialog.vue
Normal file
@ -0,0 +1,131 @@
|
||||
<template>
|
||||
<el-dialog title="添加资源" v-model="dialogVisible" width="500px" @close="onClose">
|
||||
<el-form :model="form" label-width="100px" ref="resourceForm" :rules="rules">
|
||||
<el-form-item label="玩家ID">
|
||||
<el-input v-model="localUserId" disabled></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="玩家昵称">
|
||||
<el-input v-model="localNickname" disabled></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="资源类型:" prop="resourceType">
|
||||
<el-select v-model="form.resourceType" placeholder="请选择资源类型" style="width: 100%">
|
||||
<el-option v-for="item in resourceTypes" :key="item.value" :label="item.label" :value="item.value"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="数量:" prop="amount">
|
||||
<el-input
|
||||
v-model="form.amount"
|
||||
placeholder="请输入数量"
|
||||
@input="validateNumber"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="onClose">取消</el-button>
|
||||
<el-button type="primary" @click="onClick">确认添加</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
value: { // v-model 默认使用 value prop
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
userId: {
|
||||
type: Number,
|
||||
default: null
|
||||
},
|
||||
nickname:{
|
||||
type:String,
|
||||
default:'',
|
||||
},
|
||||
},
|
||||
|
||||
data(){
|
||||
return {
|
||||
dialogVisible:this.value,
|
||||
localUserId:this.userId,
|
||||
localNickname:this.nickname,
|
||||
form:{
|
||||
resourceType:'gold',
|
||||
amount:'',
|
||||
reason:''
|
||||
},
|
||||
resourceTypes:[
|
||||
{value:'gold', label:'金币'},
|
||||
{value:'diamond', label:'钻石'},
|
||||
],
|
||||
rules:{
|
||||
resourceType:[
|
||||
{required:true, message:'请选择资源类型', trigger:'change'},
|
||||
],
|
||||
amount:[
|
||||
{required:true, message:'请输入数量', trigger:'blur'},
|
||||
{validator:this.validateAmount,trigger: 'blur'}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
watch:{
|
||||
value(newVal){
|
||||
// console.log("1userid:", this.userId)
|
||||
// console.log("visible prop changed:", newVal)
|
||||
this.dialogVisible = newVal
|
||||
},
|
||||
dialogVisible(newVal){
|
||||
// console.log("2userid:", this.userId)
|
||||
// console.log("dialogVisible visible prop changed:", newVal)
|
||||
this.$emit('input', newVal) // v-model 默认使用 input 事件
|
||||
}
|
||||
},
|
||||
|
||||
methods:{
|
||||
onClose(){
|
||||
this.dialogVisible = false
|
||||
// console.log("关闭。dialogVisible:", this.dialogVisible)
|
||||
// console.log("userid:", this.localUserId+' nickname:'+this.localNickname)
|
||||
// this.$emit('input', false) // v-model 默认使用 input 事件
|
||||
},
|
||||
validateAmount(rule, value, callback){
|
||||
if(!value){
|
||||
callback(new Error('请输入数量'))
|
||||
}else if (!/^\d+$/.test(value)) {
|
||||
callback(new Error('请输入正整数'))
|
||||
} else if (parseInt(value) < 1) {
|
||||
callback(new Error('数量必须大于0'))
|
||||
} else {
|
||||
callback()
|
||||
}
|
||||
},
|
||||
validateNumber(value){
|
||||
this.form.amount = value.replace(/[^\d]/g, '')
|
||||
},
|
||||
onClick(){
|
||||
this.$refs.resourceForm.validate((valid)=>{
|
||||
if(valid){
|
||||
const resourceData = {
|
||||
userId: this.userId,
|
||||
...this.form,
|
||||
amount: parseInt(this.form.amount) // 确保是数字类型
|
||||
}
|
||||
this.$emit('confirm', resourceData)
|
||||
this.dialogVisible = false
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.dialog-footer {
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
@ -28,17 +28,25 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="200">
|
||||
<template #default="scope">
|
||||
<el-button size="small" type="danger">封号|解封</el-button>
|
||||
<el-button size="small">添加资源</el-button>
|
||||
<el-button size="small" type="danger" >封号|解封</el-button>
|
||||
<el-button size="small" @click="openAddResourceDialog(scope.row)">添加资源</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<!-- 添加资源对话框 -->
|
||||
<add-resource-dialog
|
||||
v-model="dialogVisible"
|
||||
:user-id="selectedUserId"
|
||||
:nickname="selectedNickname"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
<script>
|
||||
import AddResourceDialog from '@/view/gameuser/addResourceDialog.vue'
|
||||
import {
|
||||
getUserById,
|
||||
getAccountByUid,
|
||||
@ -46,8 +54,17 @@ import {
|
||||
|
||||
export default {
|
||||
name: 'UserManagement',
|
||||
components:{
|
||||
AddResourceDialog,
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
// 控制对话框
|
||||
dialogVisible: false,
|
||||
selectedUserId: null,
|
||||
selectedNickname:null,
|
||||
|
||||
searchInfo :{
|
||||
id: 0,
|
||||
nickname: '',
|
||||
@ -80,6 +97,13 @@ export default {
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
openAddResourceDialog(user){
|
||||
this.selectedUserId = user.id
|
||||
this.selectedNickname = user.nickname
|
||||
// console.log("open dialog.user:"+this.selectedUserId+' nickname:'+this.selectedNickname)
|
||||
this.dialogVisible = true
|
||||
},
|
||||
|
||||
async onGetUser(){
|
||||
// 显示加载状态
|
||||
const loading = this.$loading({
|
||||
@ -118,7 +142,7 @@ export default {
|
||||
return
|
||||
}
|
||||
const retAccount = await getAccountByUid({id:+response.data.user.account_id})
|
||||
console.error('获取玩家帐号数据:', retAccount)
|
||||
// console.error('获取玩家帐号数据:', retAccount)
|
||||
this.userList = [
|
||||
{
|
||||
id:response.data.user.id,
|
||||
|
Loading…
x
Reference in New Issue
Block a user