提交 0ca19dde 作者: 施汉文

合并分支 'release' 到 'master'

Release

查看合并请求 !47
...@@ -2,72 +2,142 @@ ...@@ -2,72 +2,142 @@
<div class="vipToolsContent"> <div class="vipToolsContent">
<div class="gameList"> <div class="gameList">
<!-- VIP 自助工具 暂时不显示 --> <!-- VIP 自助工具 暂时不显示 -->
<div class="gameListItemApp rowFlex columnCenter spaceBetween" v-if="false"> <div
class="gameListItemApp rowFlex columnCenter spaceBetween"
v-if="false"
>
<p class="rowFlex columnCenter"> <p class="rowFlex columnCenter">
<img src="@/assets/icon/svg/vipIcon.svg" alt="vipIcon" style="width: 16px;height: 16px;margin-right: 5px;"> <img
src="@/assets/icon/svg/vipIcon.svg"
alt="vipIcon"
style="width: 16px; height: 16px; margin-right: 5px"
/>
VIP自助工具 VIP自助工具
</p> </p>
<el-button size="mini" :disabled="accountSelect == ''" @click="sendVipGift">发送</el-button> <el-button
size="mini"
:disabled="accountSelect == ''"
@click="sendVipGift"
>发送</el-button
>
</div> </div>
<!-- 自助链接(举报、申诉、礼包申请) --> <!-- 自助链接(举报、申诉、礼包申请) -->
<div class="gameListItemApp rowFlex columnCenter spaceBetween"> <div class="gameListItemApp rowFlex columnCenter spaceBetween">
<p class="rowFlex columnCenter"> <p class="rowFlex columnCenter">
<i class="el-icon-s-operation" style="font-size:16px;margin-right:5px;"></i> <i
class="el-icon-s-operation"
style="font-size: 16px; margin-right: 5px"
></i>
自助链接(举报、申诉、礼包申请) 自助链接(举报、申诉、礼包申请)
</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="gameListItemApp rowFlex columnCenter spaceBetween"> <div class="gameListItemApp rowFlex columnCenter spaceBetween">
<p class="rowFlex columnCenter"> <p class="rowFlex columnCenter">
<i class="el-icon-s-operation" style="font-size:16px;margin-right:5px;"></i> <i
class="el-icon-s-operation"
style="font-size: 16px; margin-right: 5px"
></i>
专属 H5 链接(种花) 专属 H5 链接(种花)
</p> </p>
<el-button size="mini" :disabled="accountSelect == ''" @click="showFlowerLinkDialog">发送</el-button> <el-button
size="mini"
:disabled="accountSelect == ''"
@click="showFlowerLinkDialog"
>发送</el-button
>
</div> </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>
<span class="giftCode">礼包码</span> <span class="giftCode">礼包码</span>
</p> </p>
<i :class="showGameCode ? 'el-icon-arrow-right' : 'el-icon-arrow-down'"></i> <i
:class="showGameCode ? 'el-icon-arrow-right' : 'el-icon-arrow-down'"
></i>
</div> </div>
<el-collapse-transition> <el-collapse-transition>
<el-collapse v-show="showGameCode" v-if="giftCodeGame.length > 0" :disabled="disabled" class="giftGameCollapse"> <el-collapse
<el-collapse-item v-for="(item, index) in giftCodeGame" :key="index" :title="item.label" v-show="showGameCode"
style="margin-bottom: 10px;"> v-if="giftCodeGame.length > 0"
:disabled="disabled"
class="giftGameCollapse"
>
<el-collapse-item
v-for="(item, index) in giftCodeGame"
:key="index"
:title="item.label"
style="margin-bottom: 10px"
>
<div v-if="giftCodeGame.length > 0"> <div v-if="giftCodeGame.length > 0">
<div v-for="(items, indexs) in item.children" :key="indexs" class="gameListItemChange"> <div
v-for="(items, indexs) in item.children"
:key="indexs"
class="gameListItemChange"
>
<div class="gameListItemApp gameListItemAppAC"> <div class="gameListItemApp gameListItemAppAC">
<p v-if="items.gift_package_group_name" class="gameName">{{ items.gift_package_group_name }}</p> <p v-if="items.gift_package_group_name" class="gameName">
<div class="rowFlex columnCenter spaceBetween" style="margin-left: 20px;"> {{ items.gift_package_group_name }}
</p>
<div
class="rowFlex columnCenter spaceBetween"
style="margin-left: 20px"
>
<p class="rowFlex columnCenter spaceBetween"> <p class="rowFlex columnCenter spaceBetween">
<el-popover placement="top" width="300" trigger="hover"> <el-popover placement="top" width="300" trigger="hover">
<div>{{ items.name }}</div> <div>{{ items.name }}</div>
<div slot="reference" class="gameName">{{ items.name }}</div> <div slot="reference" class="gameName">
{{ items.name }}
</div>
</el-popover> </el-popover>
<el-popover placement="top" trigger="hover"> <el-popover placement="top" trigger="hover">
<div class="contentPopover" v-html="items.content"> <div
</div> class="contentPopover"
<el-button slot="reference" type="text" size="medium" v-html="items.content"
style="margin-right: 10px;">礼包内容</el-button> ></div>
<el-button
slot="reference"
type="text"
size="medium"
style="margin-right: 10px"
>礼包内容</el-button
>
</el-popover> </el-popover>
</p> </p>
<el-button size="mini" type="primary" :loading="loading" <el-button
@click="sendGameCodeCopyDialog(items)">发送礼包码</el-button> size="mini"
</div> type="primary"
:loading="loading"
@click="sendGameCodeCopyDialog(items)"
>发送礼包码</el-button
>
</div> </div>
</div> </div>
</div> </div>
<div v-else class="rowFlex allCenter">
暂无游戏
</div> </div>
<div v-else class="rowFlex allCenter">暂无游戏</div>
</el-collapse-item> </el-collapse-item>
</el-collapse> </el-collapse>
</el-collapse-transition> </el-collapse-transition>
</div> </div>
<giftCodeDialog v-if="dialogVisible" :game-name="game_name" :dialogVisible.sync="dialogVisible" <giftCodeDialog
@result="getGiftCodeSubmit" /> v-if="dialogVisible"
:game-name="game_name"
:dialogVisible.sync="dialogVisible"
@result="getGiftCodeSubmit"
/>
<!-- 种花链接弹窗 --> <!-- 种花链接弹窗 -->
<flowerLinkDialog <flowerLinkDialog
v-if="flowerLinkDialogVisible" v-if="flowerLinkDialogVisible"
...@@ -79,220 +149,222 @@ ...@@ -79,220 +149,222 @@
</div> </div>
</template> </template>
<script> <script>
import { mapState, mapMutations } from 'vuex' 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' import flowerLinkDialog from "./flowerLinkDialog.vue";
export default { export default {
name: 'vipTools', name: "vipTools",
data() { data() {
return { return {
disabled: true, disabled: true,
showGameCode: false, showGameCode: false,
giftCodeGame: [], giftCodeGame: [],
dialogVisible: false, dialogVisible: false,
game_name: '', game_name: "",
flowerLinkDialogVisible: false, flowerLinkDialogVisible: false,
giftCodeForm: { giftCodeForm: {
member_id: '', member_id: "",
username: '', username: "",
role_name: '', role_name: "",
role_id: '', role_id: "",
gift_package_id: '', gift_package_id: "",
}, },
loading: false loading: false,
} };
}, },
components: { components: {
giftCodeDialog, giftCodeDialog,
flowerLinkDialog flowerLinkDialog,
}, },
mounted() { mounted() {
this.requestGiftCode() this.requestGiftCode();
}, },
destroyed() { destroyed() {
this.giftCodeForm = { this.giftCodeForm = {
member_id: '', member_id: "",
username: '', username: "",
role_name: '', role_name: "",
role_id: '', role_id: "",
gift_package_id: '' gift_package_id: "",
} };
}, },
computed: { computed: {
...mapState('game', ['accountSelect', 'bindGameUserList', 'chatUserInfo']), ...mapState("game", ["accountSelect", "bindGameUserList", "chatUserInfo"]),
...mapState('user', ['userid']), ...mapState("user", ["userid"]),
},
props: {
}, },
props: {},
watch: { watch: {
accountSelect(newVal, oldVal) { accountSelect(newVal, oldVal) {
if (newVal && newVal !== '' && this.bindGameUserList.length > 0) { if (newVal && newVal !== "" && this.bindGameUserList.length > 0) {
this.disabled = false this.disabled = false;
} else { } else {
this.disabled = true this.disabled = true;
}
} }
}, },
},
methods: { methods: {
initGiftCodeForm() { initGiftCodeForm() {
const username = this.bindGameUserList.find(item => item.member_id === this.accountSelect).username const username = this.bindGameUserList.find(
(item) => item.member_id === this.accountSelect
).username;
this.giftCodeForm = { this.giftCodeForm = {
member_id: this.accountSelect, member_id: this.accountSelect,
username: username, username: username,
role_name: '', role_name: "",
role_id: '', role_id: "",
gift_package_id: '', gift_package_id: "",
} };
}, },
sendVipGift() { sendVipGift() {
if (this.bindGameUserList.length > 0) { if (this.bindGameUserList.length > 0) {
createVipUrl({ member_id: this.accountSelect }).then(res => { createVipUrl({ member_id: this.accountSelect }).then((res) => {
if (res.data.url && res.data.url != '') { if (res.data.url && res.data.url != "") {
this.sendChatMessage(res.data.url, 'text') this.sendChatMessage(res.data.url, "text");
} else { } else {
this.$message.warning('暂无vip链接') this.$message.warning("暂无vip链接");
} }
}) });
} else { } else {
this.$message.warning('请先关联游戏账号') this.$message.warning("请先关联游戏账号");
} }
}, },
sendChatMessage(content, type) { sendChatMessage(content, type) {
let message = {} let message = {};
if (type == 'text') { if (type == "text") {
message = { message = {
msgtype: 'text', msgtype: "text",
text: { text: {
content: content content: content,
}, },
success: (res) => { success: (res) => {
console.log(res, '发送文本成功') console.log(res, "发送文本成功");
}, },
fail: (err) => { fail: (err) => {
console.log(err, '发送文本失败') console.log(err, "发送文本失败");
} },
} };
} else if (type == 'link') { } else if (type == "link") {
message = { message = {
msgtype: 'news', msgtype: "news",
news: content, news: content,
success: (res) => { success: (res) => {
console.log(res, '发送 news 成功') console.log(res, "发送 news 成功");
}, },
fail: (err) => { fail: (err) => {
console.log(err, '发送 news 失败') console.log(err, "发送 news 失败");
} },
} };
} else if (type == 'image') { } else if (type == "image") {
message = { message = {
msgtype: 'image', msgtype: "image",
image: { image: {
mediaid: content mediaid: content,
}, },
success: (res) => { success: (res) => {
console.log(res, '发送 image 成功') console.log(res, "发送 image 成功");
}, },
fail: (err) => { fail: (err) => {
console.log(err, '发送 image 失败') console.log(err, "发送 image 失败");
} },
} };
} }
console.log(message, '1231') console.log(message, "1231");
this.$ww.sendChatMessage(message) this.$ww.sendChatMessage(message);
}, },
// 显示种花链接弹窗 // 显示种花链接弹窗
showFlowerLinkDialog() { showFlowerLinkDialog() {
if (this.accountSelect === '') { if (this.accountSelect === "") {
this.$message.warning('请先关联游戏账号') this.$message.warning("请先关联游戏账号");
return return;
} }
this.flowerLinkDialogVisible = true this.flowerLinkDialogVisible = true;
}, },
// 处理种花链接发送成功 // 处理种花链接发送成功
handleFlowerLinkSuccess(url) { handleFlowerLinkSuccess(url) {
if (url) { if (url) {
const list = [{ msgtype: 'text', text: { content: url }}] this.sendChatMessage(url, "text");
this.set_sendSkillMessage(list) this.$message.success("发送成功");
this.$message.success('发送成功')
} }
}, },
// 发送举报申诉自助链接 // 发送举报申诉自助链接
async sendReportLink() { async sendReportLink() {
const res = await getZyouAuthLink() const res = await getZyouAuthLink();
if (res.status_code == 1) { if (res.status_code == 1) {
const link = { const link = {
title: '服务中心', title: "服务中心",
imgUrl: 'https://companywxcdn.zwnet.cn/company_wx/service/avatars/20250308/t3zztJ5FMMSnSXRtG3K8X5HaxsZMdk8W1741420608159.jpg', imgUrl:
desc: '点击此处提交申请', "https://companywxcdn.zwnet.cn/company_wx/service/avatars/20250308/t3zztJ5FMMSnSXRtG3K8X5HaxsZMdk8W1741420608159.jpg",
link: res.data.url desc: "点击此处提交申请",
} link: res.data.url,
this.sendChatMessage(link, 'link') };
this.sendChatMessage(link, "link");
} else { } else {
this.$message.warning('暂无申诉自助链接') this.$message.warning("暂无申诉自助链接");
} }
}, },
async requestGiftCode() { async requestGiftCode() {
this.giftCodeGame = [] this.giftCodeGame = [];
// 1 企微 2 微信 // 1 企微 2 微信
const data = { const data = {
userid: this.userid, userid: this.userid,
user_type: 1 user_type: 1,
} };
const res = await giftCodeList(data) const res = await giftCodeList(data);
if (res.status_code == 1 && res.data.length > 0) { if (res.status_code == 1 && res.data.length > 0) {
// this.giftCodeGame = res.data // this.giftCodeGame = res.data
this.handleChildren(res.data) this.handleChildren(res.data);
this.giftCodeGame = res.data this.giftCodeGame = res.data;
} else { } else {
this.giftCodeGame = { this.giftCodeGame = {
label: '礼包码', label: "礼包码",
children: [] children: [],
} };
} }
}, },
handleChildren(list) { handleChildren(list) {
list.map(item => { list.map((item) => {
item.main_game_id?item.label = item.main_game_name + '/' + item.main_game_id:item.label = item.main_game_name item.main_game_id
item.value = item.main_game_id ? (item.label = item.main_game_name + "/" + item.main_game_id)
item.children = item.gift_package_list : (item.label = item.main_game_name);
item.group_name = item.gift_package_group_name item.value = item.main_game_id;
}) item.children = item.gift_package_list;
item.group_name = item.gift_package_group_name;
});
}, },
// 确定提交 // 确定提交
getGiftCodeSubmit(form) { getGiftCodeSubmit(form) {
const { member_id, role_id, username, role_name } = form const { member_id, role_id, username, role_name } = form;
this.giftCodeForm.username = username this.giftCodeForm.username = username;
this.giftCodeForm.role_name = role_name this.giftCodeForm.role_name = role_name;
this.giftCodeForm.member_id = member_id this.giftCodeForm.member_id = member_id;
this.giftCodeForm.role_id = role_id this.giftCodeForm.role_id = role_id;
this.sendGameCode() this.sendGameCode();
}, },
sendGameCodeCopyDialog(items) { sendGameCodeCopyDialog(items) {
if (items.package_type !== 1 && items.package_type!==4) { if (items.package_type !== 1 && items.package_type !== 4) {
if (this.accountSelect && this.bindGameUserList.length > 0) { if (this.accountSelect && this.bindGameUserList.length > 0) {
this.game_name = items.name this.game_name = items.name;
this.initGiftCodeForm() this.initGiftCodeForm();
this.giftCodeForm.gift_package_id = items.id this.giftCodeForm.gift_package_id = items.id;
if (items.package_type == 3) { if (items.package_type == 3) {
this.dialogVisible = true this.dialogVisible = true;
} else { } else {
this.sendGameCode() this.sendGameCode();
} }
} else { } else {
this.$message.warning('请先关联游戏账号') this.$message.warning("请先关联游戏账号");
} }
} else { } else {
this.giftCodeForm.gift_package_id = items.id this.giftCodeForm.gift_package_id = items.id;
this.sendGameCode() this.sendGameCode();
} }
}, },
// 发送礼包码 // 发送礼包码
async sendGameCode(items) { async sendGameCode(items) {
this.loading = true this.loading = true;
const data = { const data = {
userid: this.chatUserInfo.userid, userid: this.chatUserInfo.userid,
external_userid: this.chatUserInfo.external_userid, external_userid: this.chatUserInfo.external_userid,
...@@ -301,58 +373,64 @@ export default { ...@@ -301,58 +373,64 @@ export default {
role_name: this.giftCodeForm.role_name, role_name: this.giftCodeForm.role_name,
role_id: this.giftCodeForm.role_id, role_id: this.giftCodeForm.role_id,
gift_package_id: this.giftCodeForm.gift_package_id, gift_package_id: this.giftCodeForm.gift_package_id,
user_type: 3 user_type: 3,
} };
const res = await sendGiftCode(data) const res = await sendGiftCode(data);
if (res.status_code === 1) { if (res.status_code === 1) {
this.$message.success('发送成功') this.$message.success("发送成功");
this.sendChatMessage(res.data, 'text') this.sendChatMessage(res.data, "text");
} else { } else {
this.$message.error(res.msg || '发送失败') this.$message.error(res.msg || "发送失败");
} }
this.loading = false this.loading = false;
}, },
handleAccount() { handleAccount() {
if (this.bindGameUserList.length > 0) { if (this.bindGameUserList.length > 0) {
const account = this.bindGameUserList.find(item => item.member_id == this.accountSelect) const account = this.bindGameUserList.find(
(item) => item.member_id == this.accountSelect
);
if (account) { if (account) {
return true return true;
} else { } else {
return false return false;
} }
} else { } else {
return false return false;
} }
}, },
sendMessage(item, type) { sendMessage(item, type) {
const result = this.handleAccount() const result = this.handleAccount();
if (!result) { if (!result) {
this.$message.warning('请稍后再试') this.$message.warning("请稍后再试");
return false return false;
} }
let str = '' let str = "";
if (type == 2) { if (type == 2) {
str = '网页游戏链接:' str = "网页游戏链接:";
} else if (type == 3) { } else if (type == 3) {
str = '安卓游戏链接:' str = "安卓游戏链接:";
} else if (type == 4) { } else if (type == 4) {
str = 'IOS游戏链接:' str = "IOS游戏链接:";
} else { } else {
} }
const username = this.bindGameUserList.find(item => item.member_id == this.accountSelect).username const username = this.bindGameUserList.find(
passwardEncryption({ member_id: this.accountSelect }).then(res => { (item) => item.member_id == this.accountSelect
this.sendChatMessage(`${str}${item.url} \n账号:${username} \n密码:${res.data.password}`, 'text') ).username;
}).catch(err => { passwardEncryption({ member_id: this.accountSelect })
this.sendChatMessage(`${str}${item.url} \n账号:${username}`, 'text') .then((res) => {
console.log(err) this.sendChatMessage(
`${str}${item.url} \n账号:${username} \n密码:${res.data.password}`,
"text"
);
}) })
.catch((err) => {
this.sendChatMessage(`${str}${item.url} \n账号:${username}`, "text");
console.log(err);
});
}, },
showPopover() { showPopover() {},
},
} };
}
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.vipToolsContent { .vipToolsContent {
...@@ -367,7 +445,7 @@ export default { ...@@ -367,7 +445,7 @@ export default {
} }
.sendLink:hover { .sendLink:hover {
color: #409EFF; color: #409eff;
} }
.giftGameCollapse { .giftGameCollapse {
...@@ -395,7 +473,7 @@ export default { ...@@ -395,7 +473,7 @@ export default {
} }
.btnActive { .btnActive {
background: #409EFF; background: #409eff;
color: #fff; color: #fff;
} }
} }
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
<el-collapse v-model="collapseActive"> <el-collapse v-model="collapseActive">
<div <div
v-for="(items, indexs) in roleList" v-for="(items, indexs) in roleList"
:key="indexs" :key="items.role_id"
class="contentItem" class="contentItem"
> >
<div class="title"></div> <div class="title"></div>
...@@ -170,6 +170,14 @@ ...@@ -170,6 +170,14 @@
</div> </div>
<div class="item rowFlex columnCenter spaceBetween"> <div class="item rowFlex columnCenter spaceBetween">
<div class="rowFlex columnCenter"> <div class="rowFlex columnCenter">
<span class="label">主服开服天数:</span>
<p class="text" v-if="items.main_server_open_day">
{{ items?.main_server_open_day }}天
</p>
</div>
</div>
<div class="item rowFlex columnCenter spaceBetween">
<div class="rowFlex columnCenter">
<span class="label">开/合服天数:</span> <span class="label">开/合服天数:</span>
<p class="text" v-if="items.server_day"> <p class="text" v-if="items.server_day">
{{ items?.server_day }}天 {{ items?.server_day }}天
...@@ -305,6 +313,8 @@ export default { ...@@ -305,6 +313,8 @@ export default {
role_id: this.roleList[index].role_id, role_id: this.roleList[index].role_id,
}); });
this.roleList[index].server_day = res.data.data?.server_day; this.roleList[index].server_day = res.data.data?.server_day;
this.roleList[index].main_server_open_day =
res.data.data?.main_server_open_day;
this.roleList = [...this.roleList]; this.roleList = [...this.roleList];
} }
}, },
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论