提交 5f805c29 作者: 毛细亚

新增种花链接

上级 5593e9ce
...@@ -1467,3 +1467,32 @@ export function sendEmail(data) { ...@@ -1467,3 +1467,32 @@ export function sendEmail(data) {
}) })
}) })
} }
// 获取种花道具列表
export function getPropList(data) {
return new Promise((resolve, reject) => {
cross_systemRequest({
system: 'zhangyou',
api: '/api/member/getPropData',
params: data
}).then((res) => {
resolve(res)
}).catch((error) => {
reject(error)
})
})
}
// 种花专属链接
export function getFlowerLink(data) {
return new Promise((resolve, reject) => {
cross_systemRequest({
system: 'zhangyou',
api: '/api/member/getPropUrl',
params: data
}).then((res) => {
resolve(res)
}).catch((error) => {
reject(error)
})
})
}
\ No newline at end of file
<template>
<el-drawer
title="选择角色"
:visible="dialogVisible"
direction="rtl"
size="400px"
@close="close"
>
<div class="flower-link-dialog">
<el-form
:model="form"
label-position="top"
:rules="rules"
ref="formRef"
>
<el-form-item label="W账号" prop="member_id">
<el-select
v-model="form.member_id"
placeholder="请选择W账号"
style="width: 100%"
@change="handleAccountChange"
>
<el-option
v-for="item in bindGameUserList"
:key="item.member_id"
:label="item.username"
:value="item.member_id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="角色" prop="role_id">
<el-select
v-model="form.role_id"
placeholder="请选择角色"
style="width: 100%"
@change="handleRoleChange"
>
<el-option
v-for="item in roleList"
:key="item.role_id"
:label="item.role_name"
:value="item.role_id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="道具" prop="prop_id">
<el-select
v-model="form.prop_id"
placeholder="请选择道具"
style="width: 100%"
:disabled="!form.role_id"
>
<el-option
v-for="item in propList"
:key="item.prop_id"
:label="item.prop_name"
:value="item.prop_id"
></el-option>
</el-select>
</el-form-item>
</el-form>
<div class="drawer-footer">
<el-button @click="close">取消</el-button>
<el-button type="primary" :loading="loading" @click="submitForm">确定</el-button>
</div>
</div>
</el-drawer>
</template>
<script>
import { getRoleHoLo, getPropList, getFlowerLink } from '@/api/game'
export default {
name: 'FlowerLinkDialog',
props: {
dialogVisible: {
type: Boolean,
default: false
},
bindGameUserList: {
type: Array,
default: () => []
},
member_id: {
type: String,
default: ''
}
},
data() {
return {
form: {
member_id: '',
role_id: '',
prop_id: ''
},
rules: {
member_id: [{ required: true, message: '请选择W账号', trigger: 'change' }],
role_id: [{ required: true, message: '请选择角色', trigger: 'change' }],
prop_id: [{ required: true, message: '请选择道具', trigger: 'change' }]
},
loading: false,
roleList: [],
propList: [],
}
},
mounted() {
this.form.member_id = this.member_id
this.handleAccountChange(this.member_id)
},
methods: {
// 处理W账号变化
async handleAccountChange(memberId) {
this.form.role_id = ''
this.form.prop_id = ''
this.roleList = []
this.propList = []
if (memberId) {
await this.requestRoleList(memberId)
}
},
// 处理角色变化
async handleRoleChange(roleId) {
this.form.prop_id = ''
this.propList = []
if (roleId && this.form.member_id) {
await this.requestPropList(this.form.member_id, roleId)
}
},
// 请求角色列表
requestRoleList(memberId) {
return new Promise((resolve, reject) => {
const data = {
api_search_name: '',
member_id: memberId,
search_type: 'list',
page: 1,
page_size: 100
}
getRoleHoLo(data).then(
(res) => {
if (res.status_code == 1) {
this.roleList = res.data.data || []
} else {
this.roleList = []
this.$message.error(res.msg || '获取角色列表失败')
}
resolve()
},
(err) => {
reject(err)
}
)
})
},
// 请求道具列表
requestPropList(memberId, roleId) {
return new Promise((resolve, reject) => {
const data = {
member_id: memberId,
role_id: roleId
}
getPropList(data).then(
(res) => {
if (res.status_code == 1) {
this.propList = res.data.data || []
} else {
this.propList = []
this.$message.error(res.msg || '获取道具列表失败')
}
resolve()
},
(err) => {
reject(err)
}
)
})
},
// 提交表单
submitForm() {
this.$refs.formRef.validate(async (valid) => {
if (valid) {
try {
this.loading = true
// 获取选中的道具信息,用于获取main_game_id
const selectedProp = this.propList.find(item => item.prop_id === this.form.prop_id)
if (!selectedProp) {
this.$message.error('未找到选中的道具信息')
return
}
// 请求种花专属链接
const res = await getFlowerLink({
main_game_id: selectedProp.main_game_id,
prop_id: this.form.prop_id
})
if (res.status_code == 1) {
// 发送成功,通过事件通知父组件
this.$emit('success', res.data.data.url)
this.close()
} else {
this.$message.error(res.msg || '获取种花链接失败')
}
} catch (error) {
this.$message.error(res.msg)
} finally {
this.loading = false
}
}
})
},
// 重置表单
close() {
this.form = {
member_id: this.member_id,
role_id: '',
prop_id: ''
}
this.roleList = []
this.propList = []
this.$emit('update:dialogVisible', false)
if (this.$refs.formRef) {
this.$refs.formRef.resetFields()
}
}
}
}
</script>
<style lang="scss" scoped>
.flower-link-dialog {
padding: 20px;
padding-top: 0px;
}
.el-form {
margin-bottom: 30px;
}
.el-form-item {
margin-bottom: 20px;
}
.el-form-item__label {
font-weight: 500;
}
.drawer-footer {
position: absolute;
bottom: 20px;
left: 20px;
right: 20px;
display: flex;
justify-content: flex-end;
padding-top: 20px;
border-top: 1px solid #ebeef5;
background-color: #fff;
}
</style>
...@@ -17,6 +17,14 @@ ...@@ -17,6 +17,14 @@
</p> </p>
<el-button size="mini" :disabled="accountSelect == ''" @click="sendReportLink">发送</el-button> <el-button size="mini" :disabled="accountSelect == ''" @click="sendReportLink">发送</el-button>
</div> </div>
<!-- 专属种花链接 -->
<div class="gameListItem rowFlex columnCenter spaceBetween">
<p class="rowFlex columnCenter">
<i class="el-icon-s-operation" style="font-size:16px;margin-right:5px;"></i>
专属 H5 链接(种花)
</p>
<el-button size="mini" :disabled="accountSelect == ''" @click="showFlowerLinkDialog">发送</el-button>
</div>
<div class="rowFlex columnCenter spaceBetween gameCodeTitle" @click="showGameCode = !showGameCode"> <div class="rowFlex columnCenter spaceBetween gameCodeTitle" @click="showGameCode = !showGameCode">
<p class="rowFlex columnCenter spaceBetween"> <p class="rowFlex columnCenter spaceBetween">
<svg-icon icon-class="gift" style="font-size:20px;margin-right: 5px;margin-top: -2px;"></svg-icon> <svg-icon icon-class="gift" style="font-size:20px;margin-right: 5px;margin-top: -2px;"></svg-icon>
...@@ -60,6 +68,14 @@ ...@@ -60,6 +68,14 @@
</div> </div>
<giftCodeDialog v-if="dialogVisible" :game-name="game_name" :dialogVisible.sync="dialogVisible" <giftCodeDialog v-if="dialogVisible" :game-name="game_name" :dialogVisible.sync="dialogVisible"
@result="getGiftCodeSubmit" /> @result="getGiftCodeSubmit" />
<!-- 种花链接弹窗 -->
<flowerLinkDialog
v-if="flowerLinkDialogVisible"
:dialogVisible.sync="flowerLinkDialogVisible"
:member_id="accountSelect"
:bindGameUserList="bindGameUserList"
@success="handleFlowerLinkSuccess"
/>
</div> </div>
</template> </template>
<script> <script>
...@@ -67,6 +83,7 @@ import { mapState, mapMutations } from 'vuex' ...@@ -67,6 +83,7 @@ import { mapState, mapMutations } from 'vuex'
import { passwardEncryption, createVipUrl } from '@/api/game' import { passwardEncryption, createVipUrl } from '@/api/game'
import { giftCodeList, sendGiftCode, getZyouAuthLink } from '@/api/works' import { giftCodeList, sendGiftCode, getZyouAuthLink } from '@/api/works'
import giftCodeDialog from './giftCodeDialog.vue' import giftCodeDialog from './giftCodeDialog.vue'
import flowerLinkDialog from './flowerLinkDialog.vue'
export default { export default {
name: 'vipTools', name: 'vipTools',
data() { data() {
...@@ -76,6 +93,7 @@ export default { ...@@ -76,6 +93,7 @@ export default {
giftCodeGame: [], giftCodeGame: [],
dialogVisible: false, dialogVisible: false,
game_name: '', game_name: '',
flowerLinkDialogVisible: false,
giftCodeForm: { giftCodeForm: {
member_id: '', member_id: '',
username: '', username: '',
...@@ -87,7 +105,8 @@ export default { ...@@ -87,7 +105,8 @@ export default {
} }
}, },
components: { components: {
giftCodeDialog giftCodeDialog,
flowerLinkDialog
}, },
mounted() { mounted() {
this.requestGiftCode() this.requestGiftCode()
...@@ -185,6 +204,22 @@ export default { ...@@ -185,6 +204,22 @@ export default {
console.log(message, '1231') console.log(message, '1231')
this.$ww.sendChatMessage(message) this.$ww.sendChatMessage(message)
}, },
// 显示种花链接弹窗
showFlowerLinkDialog() {
if (this.accountSelect === '') {
this.$message.warning('请先关联游戏账号')
return
}
this.flowerLinkDialogVisible = true
},
// 处理种花链接发送成功
handleFlowerLinkSuccess(url) {
if (url) {
const list = [{ msgtype: 'text', text: { content: url }}]
this.set_sendSkillMessage(list)
this.$message.success('发送成功')
}
},
// 发送举报申诉自助链接 // 发送举报申诉自助链接
async sendReportLink() { async sendReportLink() {
const res = await getZyouAuthLink() const res = await getZyouAuthLink()
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论