diff --git a/admin/apps/game/domain/comm_resource.go b/admin/apps/game/domain/comm_resource.go index 73b0d23..4f0af17 100644 --- a/admin/apps/game/domain/comm_resource.go +++ b/admin/apps/game/domain/comm_resource.go @@ -67,7 +67,7 @@ func (svc *CommonResourceService) initCommonResourcesRepo(db *gorm.DB) { { roleMailRepo := r(consts.ResourcesName_MailRole, "个人邮件", repo.NewCommonResourceRepo(db, &model.RoleMail{}), ShowMethod_Get|ShowMethod_Post) roleMailRepo.RowBtns = []*ResourceBtnInfo{ - {&api.ResourceBtnInfo{Key: consts.BtnKeyRow_RoleMailReview, Name: "确认审核", BtnColorType: "primary"}, svc.handleServerUpOrDown}, + {&api.ResourceBtnInfo{Key: consts.BtnKeyRow_RoleMailReview, Name: "确认审核", BtnColorType: "primary"}, svc.handleReviewRows}, } } // 个人邮件发放就没法撤回? @@ -215,6 +215,9 @@ func (svc *CommonResourceService) Create(ctx context.Context, projectId int, res createNeedReview = true obj["ReviewCheckStatus"] = consts.OpReviewStatus_Pending obj["ReviewNeedCharacters"] = getRsp.ReviewCharacters + } else { + obj["ReviewCheckStatus"] = consts.OpReviewStatus_DirectOk + obj["ReviewNeedCharacters"] = make([]string, 0) } } diff --git a/admin/apps/game/domain/comm_resource_selection.go b/admin/apps/game/domain/comm_resource_selection.go index 937c48d..f764560 100644 --- a/admin/apps/game/domain/comm_resource_selection.go +++ b/admin/apps/game/domain/comm_resource_selection.go @@ -201,8 +201,8 @@ func (svc *CommonResourceService) handleReviewRows(ctx context.Context, projectE if resourceRepo.Repo.Need(projectEt, resourceName) { for _, dtoObj := range params.Rows { - opRowId := dtoObj["ID"].(int) - _, dbEt, find, err := resourceRepo.Repo.GetById(projectEt, opRowId) + opRowId := dtoObj["ID"].(float64) + _, dbEt, find, err := resourceRepo.Repo.GetById(projectEt, int(opRowId)) if err != nil { return nil, err } @@ -217,11 +217,12 @@ func (svc *CommonResourceService) handleReviewRows(ctx context.Context, projectE return nil, errcode.New(errcode.ParamsInvalid, "resource %v db data already review:%v", resourceName, opRowId) } + dbObj["ProjectId"] = projectEt.GetProjectID() dbObj["ReviewCheckStatus"] = consts.OpReviewStatus_Ok dbObj["ReviewUserId"] = userId dbObj["ReviewUserName"] = getRsp.User.UserName - _, err = resourceRepo.Repo.Edit(projectEt, dtoObj) + _, err = resourceRepo.Repo.Edit(projectEt, dbObj) if err != nil { return nil, err } diff --git a/admin/apps/game/model/rolemail.go b/admin/apps/game/model/rolemail.go index 101c7b0..e2cc24c 100644 --- a/admin/apps/game/model/rolemail.go +++ b/admin/apps/game/model/rolemail.go @@ -56,5 +56,6 @@ func (m *RoleMail) GetStatusChoices(project *Project) []*dto.CommonDtoFieldChoic return []*dto.CommonDtoFieldChoice{ {Desc: "审核通过已发放", Value: consts.OpReviewStatus_Ok, Type: 2}, // type: 0:plain 1:primary 2:success 3:info 4:warning 5:danger {Desc: "待审核", Value: consts.OpReviewStatus_Pending, Type: 3}, + {Desc: "已发放", Value: consts.OpReviewStatus_DirectOk, Type: 2}, } } diff --git a/admin/apps/user/model/character.go b/admin/apps/user/model/character.go index d43eed8..641054c 100644 --- a/admin/apps/user/model/character.go +++ b/admin/apps/user/model/character.go @@ -19,7 +19,7 @@ type Permission struct { type Character struct { ID int `gorm:"primarykey" readonly:"true"` Name string `name:"角色名" desc:"区别一组用户的名字,例如qa、策划、运营" gorm:"type:varchar(255);unique" required:"true" uneditable:"true"` - WriteOpCheckCharacters []string `gorm:"type:varchar(255);" name:"操作审核员" desc:"不选表示敏感操作无需审核" choices:"GetCharChoices" multi_choice:"true"` + WriteOpCheckCharacters []string `gorm:"type:json;serializer:json" name:"操作审核员" desc:"不选表示敏感操作无需审核" type:"[]string" choices:"GetCharChoices" multi_choice:"true"` // 权限列表,格式就是 ["project:::", "sys:user:get", ...], // 例如项目3封禁功能的列表获取权限:"project:3:ban:list" Permissions []string `gorm:"type:json;serializer:json" name:"权限列表" type:"Permissions"` diff --git a/admin/internal/consts/consts.go b/admin/internal/consts/consts.go index 004d76d..06f8aa0 100644 --- a/admin/internal/consts/consts.go +++ b/admin/internal/consts/consts.go @@ -95,6 +95,7 @@ const ( ) const ( - OpReviewStatus_Ok = "reviewed" // 审核通过 - OpReviewStatus_Pending = "pending" // 待审核 + OpReviewStatus_Ok = "reviewed" // 审核通过 + OpReviewStatus_Pending = "pending" // 待审核 + OpReviewStatus_DirectOk = "dir_reviewed" // 无须审核直接通过 ) diff --git a/admin/uniugm.db b/admin/uniugm.db index 3a433d1..2ed1b39 100644 Binary files a/admin/uniugm.db and b/admin/uniugm.db differ diff --git a/ui/src/components/restful/table.vue b/ui/src/components/restful/table.vue index 46a464f..1bc2428 100644 --- a/ui/src/components/restful/table.vue +++ b/ui/src/components/restful/table.vue @@ -15,6 +15,7 @@ import empty from '@/components/restful/empty.vue'; import {getWhereConditionDesc} from "@/utils/string.js"; import UserDetail from "@/components/game/userDetail.vue"; import router from "@/router/index.js"; +import userStore from "@/stores/user.js"; const props = defineProps({ rowClickDialogBtns: Array, @@ -206,6 +207,10 @@ onMounted(() => { listData(); }) +const curCharacter = userStore().userInfo.character + +console.log("当前用户角色:", curCharacter) + const dialogAddVisible = ref(false) const dialogEditVisible = ref(false) const dialogAddFormRef = ref(null) @@ -395,19 +400,41 @@ const handleDelete = (index, row) => { } +function itemBagSelectChange() { + console.log("选择礼包:", selectedItemBag.value) + let hasValidInput = false + if (selectedItemBag.value != null) { + selectedItemBag.value.forEach(bag => { + if (bag.name !== undefined && bag.name !== '') { + bag.items.forEach((bagItem) => { + if (typeof dialogObjectForm.value.Attach === typeof "") { + dialogObjectForm.value.Attach = []; + } + let d = {id: bagItem.item_id, num: bagItem.item_num, desc: bagItem.desc, item_type: bagItem.item_type}; + dialogObjectForm.value.Attach.push(d); + }) + console.log("添加礼包:", bag) + hasValidInput = true; + } + }) + } + + // if (!hasValidInput) { + // console.log("礼包:", selectedItemBag.value) + // ElMessage('请选择礼包!') + // } + + if (dialogAddVisible.value) { + dialogAddFormRef.value.validateField("Attach"); + } else if (dialogEditVisible.value) { + // console.log("删除道具,准备校验表单规则", rules.value) + // console.log("删除道具,准备校验表单规则", dialogEditFormRef.value) + dialogEditFormRef.value.validateField("Attach"); + } +} + function addItem(fieldDescInfo) { let hasValidInput = false; - if (selectedItemBag.value != null && selectedItemBag.value.name !== undefined && selectedItemBag.value.name !== '') { - selectedItemBag.value.items.forEach((bagItem) => { - if (typeof dialogObjectForm.value.Attach === typeof "") { - dialogObjectForm.value.Attach = []; - } - let d = {id: bagItem.item_id, num: bagItem.item_num, desc: bagItem.desc, item_type: bagItem.item_type}; - dialogObjectForm.value.Attach.push(d); - }) - console.log("添加礼包:", selectedItemBag.value) - hasValidInput = true; - } if (selectedItem.value !== null && selectedItem.value.value !== undefined && selectedItem.value.value !== '') { if (selectedItemNum.value <= 0) { ElMessage('请输入有效道具数量!') @@ -430,7 +457,6 @@ function addItem(fieldDescInfo) { } if (!hasValidInput) { console.log("道具:", selectedItem.value) - console.log("礼包:", selectedItemBag.value) ElMessage('请选择道具或者礼包!') } @@ -693,8 +719,21 @@ const handleGenRandAccount = () => {