<template>
|
<div class="app-container">
|
<el-card class="box-card">
|
<div slot="header" class="clearfix">
|
<span>企业微信功能测试</span>
|
</div>
|
|
<el-tabs v-model="activeTab">
|
<!-- AccessToken测试 -->
|
<el-tab-pane label="AccessToken测试" name="token">
|
<el-form ref="tokenForm" :model="tokenForm" label-width="120px">
|
<el-form-item label="CorpID">
|
<el-input v-model="tokenForm.corpId" placeholder="请输入企业微信CorpID" />
|
</el-form-item>
|
<el-form-item label="CorpSecret">
|
<el-input v-model="tokenForm.corpSecret" placeholder="请输入企业微信CorpSecret" show-password />
|
</el-form-item>
|
<el-form-item>
|
<el-button type="primary" @click="getToken">获取AccessToken</el-button>
|
<el-button type="success" @click="refreshToken">刷新AccessToken</el-button>
|
</el-form-item>
|
</el-form>
|
|
<el-divider />
|
|
<div v-if="tokenResult">
|
<h4>测试结果:</h4>
|
<pre>{{ tokenResult }}</pre>
|
</div>
|
</el-tab-pane>
|
|
<!-- 消息发送测试 -->
|
<el-tab-pane label="消息发送测试" name="message">
|
<el-form ref="messageForm" :model="messageForm" label-width="120px">
|
<el-form-item label="用户ID">
|
<el-input v-model="messageForm.userId" placeholder="请输入系统用户ID" />
|
</el-form-item>
|
<el-form-item label="企业微信用户ID">
|
<el-input v-model="messageForm.qyUserId" placeholder="请输入企业微信用户ID" />
|
</el-form-item>
|
<el-form-item label="消息标题">
|
<el-input v-model="messageForm.title" placeholder="请输入消息标题" />
|
</el-form-item>
|
<el-form-item label="消息内容">
|
<el-input v-model="messageForm.content" type="textarea" :rows="4" placeholder="请输入消息内容" />
|
</el-form-item>
|
<el-form-item label="通知链接">
|
<el-input v-model="messageForm.notifyUrl" placeholder="请输入通知链接" />
|
</el-form-item>
|
<el-form-item>
|
<el-button type="primary" @click="sendMessage">发送通知消息</el-button>
|
<el-button type="success" @click="sendTextMessage">发送文本消息</el-button>
|
</el-form-item>
|
</el-form>
|
|
<el-divider />
|
|
<div v-if="messageResult">
|
<h4>测试结果:</h4>
|
<pre>{{ messageResult }}</pre>
|
</div>
|
</el-tab-pane>
|
|
<!-- 服务状态检查 -->
|
<el-tab-pane label="服务状态检查" name="status">
|
<el-button type="primary" @click="checkServiceStatus">检查服务状态</el-button>
|
|
<el-divider />
|
|
<div v-if="statusResult">
|
<h4>服务状态:</h4>
|
<el-tag :type="statusResult.enabled ? 'success' : 'danger'">
|
{{ statusResult.enabled ? '已启用' : '已禁用' }}
|
</el-tag>
|
<p v-if="statusResult.message">{{ statusResult.message }}</p>
|
</div>
|
</el-tab-pane>
|
</el-tabs>
|
</el-card>
|
</div>
|
</template>
|
|
<script>
|
import { getToken, refreshToken, sendMessage, sendTextMessage, checkServiceStatus } from '@/api/system/qywechat/index'
|
|
export default {
|
name: 'QyWechatTest',
|
data() {
|
return {
|
activeTab: 'token',
|
tokenForm: {
|
corpId: 'wx248505bfbab6d0c1',
|
corpSecret: '2MCilqWYC0FWjOQ894sbb-s7Lb5sVH4HHuJgOsd9l1k'
|
},
|
messageForm: {
|
userId: '',
|
qyUserId: '',
|
title: '测试消息标题',
|
content: '这是一条测试消息内容',
|
notifyUrl: 'https://www.example.com'
|
},
|
tokenResult: null,
|
messageResult: null,
|
statusResult: null
|
}
|
},
|
methods: {
|
// 获取AccessToken
|
async getToken() {
|
try {
|
const response = await getToken()
|
this.tokenResult = JSON.stringify(response, null, 2)
|
this.$message.success('获取AccessToken成功')
|
} catch (error) {
|
this.tokenResult = error.message || '获取AccessToken失败'
|
this.$message.error('获取AccessToken失败: ' + (error.message || '未知错误'))
|
}
|
},
|
|
// 刷新AccessToken
|
async refreshToken() {
|
try {
|
const response = await refreshToken()
|
this.tokenResult = JSON.stringify(response, null, 2)
|
this.$message.success('刷新AccessToken成功')
|
} catch (error) {
|
this.tokenResult = error.message || '刷新AccessToken失败'
|
this.$message.error('刷新AccessToken失败: ' + (error.message || '未知错误'))
|
}
|
},
|
|
// 发送通知消息
|
async sendMessage() {
|
if (!this.messageForm.userId) {
|
this.$message.warning('请输入用户ID')
|
return
|
}
|
if (!this.messageForm.title) {
|
this.$message.warning('请输入消息标题')
|
return
|
}
|
if (!this.messageForm.content) {
|
this.$message.warning('请输入消息内容')
|
return
|
}
|
|
try {
|
const params = {
|
userId: this.messageForm.userId,
|
title: this.messageForm.title,
|
content: this.messageForm.content
|
}
|
const response = await sendMessage(params)
|
this.messageResult = JSON.stringify(response, null, 2)
|
this.$message.success('发送通知消息成功')
|
} catch (error) {
|
this.messageResult = error.message || '发送通知消息失败'
|
this.$message.error('发送通知消息失败: ' + (error.message || '未知错误'))
|
}
|
},
|
|
// 发送文本消息
|
async sendTextMessage() {
|
if (!this.messageForm.qyUserId) {
|
this.$message.warning('请输入企业微信用户ID')
|
return
|
}
|
if (!this.messageForm.content) {
|
this.$message.warning('请输入消息内容')
|
return
|
}
|
|
try {
|
const params = {
|
qyUserId: this.messageForm.qyUserId,
|
title: this.messageForm.title || '测试消息',
|
content: this.messageForm.content,
|
notifyUrl: this.messageForm.notifyUrl
|
}
|
const response = await sendTextMessage(params)
|
this.messageResult = JSON.stringify(response, null, 2)
|
this.$message.success('发送文本消息成功')
|
} catch (error) {
|
this.messageResult = error.message || '发送文本消息失败'
|
this.$message.error('发送文本消息失败: ' + (error.message || '未知错误'))
|
}
|
},
|
|
// 检查服务状态
|
async checkServiceStatus() {
|
try {
|
const response = await checkServiceStatus()
|
this.statusResult = {
|
enabled: response.data,
|
message: response.msg
|
}
|
this.$message.success('检查服务状态成功')
|
} catch (error) {
|
this.statusResult = {
|
enabled: false,
|
message: error.message || '检查服务状态失败'
|
}
|
this.$message.error('检查服务状态失败: ' + (error.message || '未知错误'))
|
}
|
}
|
}
|
}
|
</script>
|
|
<style scoped>
|
.box-card {
|
margin-bottom: 20px;
|
}
|
|
.el-divider {
|
margin: 20px 0;
|
}
|
|
pre {
|
background-color: #f5f5f5;
|
padding: 10px;
|
border-radius: 4px;
|
white-space: pre-wrap;
|
word-wrap: break-word;
|
}
|
</style>
|