完善详情页开发

master
李春波 2 years ago
parent 38f623a8af
commit 10e452ff07
  1. 20
      app/admin/controller/MiniProgramController.php
  2. 15
      app/common/service/wechat/MiniProgram.php
  3. 10
      front/src/config/data.js
  4. 109
      front/src/views/authorizer/detail.vue
  5. 65
      front/src/views/platform/account.vue
  6. 3850
      front/yarn.lock

@ -13,8 +13,24 @@ class MiniProgramController extends BaseController
$id = $request->post('id');
$row = Authorizers::where('id', $id)->find();
$miniprogram = new MiniProgram($row['platform_id']);
$row['visit_status'] = $miniprogram->getVisitStatus($row['appid']);
$row['version'] = $miniprogram->getVersionInfo($row['appid']);
// $row['visit_status'] = $miniprogram->getVisitStatus($row['appid']);
$version = $miniprogram->getVersionInfo($row['appid']);
$version['release_info']['release_qrcode'] = base64_encode($miniprogram->getQrCode($row['appid']));
$version['exp_info']['exp_qrcode'] = base64_encode($miniprogram->getExpQrCode($row['appid']));
// $json = [
// 'errcode' => 0,
// 'errmsg' => 'ok',
// 'auditid' => 1234567,
// 'status' => 4,
// 'reason' => '账号信息不合规范',
// 'ScreenShot' => 'xx|yy|zz',
// 'user_version' => 'V1.5',
// 'user_desc' => 'xxx',
// 'submit_audit_time' => '1640763673'
// ];
$version['audit_info'] = $miniprogram->getLatestAuditStatus($row['appid']);
// $version['audit_info'] = $json;
$row['version'] = $version;
return success($row);
}
}

@ -33,4 +33,19 @@ class MiniProgram extends OpenPlatform
return $this->getMiniProgram($appid)->base->httpPostJson('wxa/getversioninfo', []);
}
public function getQrCode($appid)
{
return $this->getMiniProgram($appid)->app_code->getUnlimit('wxcomponent');
}
public function getExpQrCode($appid)
{
return $this->getMiniProgram($appid)->code->getQrCode();
}
public function getLatestAuditStatus($appid)
{
return $this->getMiniProgram($appid)->code->getLatestAuditStatus();
}
}

@ -36,9 +36,17 @@ export default {
'-1': '未认证',
'0': '微信认证'
},
//服务状态
// 服务状态
visit_status: {
0: '已暂停服务',
1: '正常'
},
// 审核状态
audit_status: {
0: '审核成功',
1: '审核被拒绝',
2: '审核中',
3: '已撤回',
4: '审核延后'
}
}

@ -1,46 +1,90 @@
<template>
<page-header-wrapper :title="false">
<a-card :bordered="false" title="线上版本">
<a-descriptions>
<a-descriptions-item :span="3" label="版本号">
{{ release_info['release_version'] }}
</a-descriptions-item>
<a-descriptions-item :span="3" label="发布时间">
{{ release_info['release_time'] | momentUnix }}
</a-descriptions-item>
<a-descriptions-item :span="3" label="版本描述">
{{ release_info['release_desc'] }}
</a-descriptions-item>
</a-descriptions>
<a-row>
<a-col span="8">
<a-descriptions>
<a-descriptions-item :span="3" label="版本号">
{{ release_info['release_version'] }}
</a-descriptions-item>
<a-descriptions-item :span="3" label="发布时间">
{{ release_info['release_time'] | momentUnix }}
</a-descriptions-item>
<a-descriptions-item :span="3" label="版本描述">
{{ release_info['release_desc'] }}
</a-descriptions-item>
</a-descriptions>
</a-col>
<a-col v-if="release_info['release_qrcode']" span="16">
<img :src="'data:image/jpge;base64,' + release_info['release_qrcode']" alt="" width="150">
</a-col>
</a-row>
</a-card>
<a-card :bordered="false" title="审核版本">
hello
</a-card>
<a-card :bordered="false" title="体验版本">
<a-descriptions>
<a-dropdown slot="extra">
<a-menu slot="overlay">
<a-menu-item v-for="(item) in audit_option" :key="item.value">{{ item.content }}</a-menu-item>
</a-menu>
<a-button type="primary"> 操作
<a-icon type="down"/>
</a-button>
</a-dropdown>
<span v-if="audit_info.errcode === 85058"> 暂无提交审核的版本或者版本已发布上线 </span>
<a-descriptions v-else-if="audit_info.errcode === 0">
<a-descriptions-item :span="3" label="版本号">
{{ exp_info['exp_version'] }}
{{ audit_info['user_version'] }}
</a-descriptions-item>
<a-descriptions-item :span="3" label="发布时间">
{{ exp_info['exp_time'] | momentUnix }}
<a-descriptions-item :span="3" label="审核ID">
{{ audit_info['auditid'] }}
</a-descriptions-item>
<a-descriptions-item :span="3" label="提交时间">
{{ audit_info['submit_audit_time'] | momentUnix }}
</a-descriptions-item>
<a-descriptions-item :span="3" label="版本描述">
{{ exp_info['exp_desc'] }}
{{ audit_info['user_desc'] }}
</a-descriptions-item>
<a-descriptions-item :span="3" label="审核状态">
{{ enum_data.audit_status[audit_info['status']] }}
</a-descriptions-item>
<a-descriptions-item v-if="audit_info['status'] === 1" :span="3" label="驳回原因">
{{ audit_info['reason'] }}
</a-descriptions-item>
</a-descriptions>
<span v-else> {{ audit_info['errmsg'] }} </span>
</a-card>
<a-card :bordered="false" title="体验版本">
<a-col span="8">
<a-descriptions>
<a-descriptions-item :span="3" label="版本号">
{{ exp_info['exp_version'] }}
</a-descriptions-item>
<a-descriptions-item :span="3" label="发布时间">
{{ exp_info['exp_time'] | momentUnix }}
</a-descriptions-item>
<a-descriptions-item :span="3" label="版本描述">
{{ exp_info['exp_desc'] }}
</a-descriptions-item>
</a-descriptions>
</a-col>
<a-col v-if="exp_info['exp_qrcode']" span="16">
<img :src="'data:image/jpge;base64,' + exp_info['exp_qrcode']" alt="" width="150">
</a-col>
</a-card>
</page-header-wrapper>
</template>
<script>
import {getDetail} from '@/api/miniprogram'
import data from "@/config/data";
export default {
name: 'Version',
data() {
return {
enum_data: data,
release_info: {},
exp_info: {},
audit_info: {},
}
},
methods: {
@ -48,10 +92,37 @@ export default {
getDetail({id}).then(res => {
this.release_info = res.data.version.release_info
this.exp_info = res.data.version.exp_info
this.audit_info = res.data.version.audit_info
})
}
},
computed: {
audit_option() {
if (this.audit_info?.status === 0) {
return [{
content: '提交发布',
value: 4,
}]
}
if (this.audit_info?.status === 1 || this.audit_info?.status === 3) {
return [{
content: '提交审核',
value: 1,
}]
}
if (this.audit_info?.status === 2 || this.audit_info?.status === 4) {
return [{
content: '加急审核',
value: 2,
}, {
content: '撤回审核',
value: 3,
}]
}
return []
}
},
created() {
const {id} = this.$route.query
this.getDetail(id)

@ -1,5 +1,27 @@
<template>
<page-header-wrapper title="开放平台参数配置">
<page-header-wrapper :title="false">
<template v-slot:content>
<div class="normal_flex">
<div class="blue_circle"></div>
<div>需要在<a href="https://open.weixin.qq.com/" target="_blank">开放平台</a>后台配置 "授权事件接收配置"
"消息与事件接收配置" 才能生效
</div>
</div>
<div class="normal_flex">
<div class="blue_circle"></div>
<div>
授权事件接收配置
<span v-clipboard:copy="authorizer_url" class="text_copy" @click="onCopy">{{ authorizer_url }}</span>
</div>
</div>
<div class="normal_flex">
<div class="blue_circle"></div>
<div>
消息与事件接收配置
<span v-clipboard:copy="authorizer_event" class="text_copy" @click="onCopy">{{ authorizer_event }}</span>
</div>
</div>
</template>
<a-card :bordered="false">
<div class="table-page-search-wrapper">
<a-form layout="inline">
@ -66,6 +88,12 @@ import {Ellipsis, STable} from '@/components'
import {addPlatform, deletePlatform, editPlatform, getPlatform} from '@/api/platform'
import CreateForm from './modules/CreateForm'
import data from "@/config/data";
import Message from "ant-design-vue/lib/message";
import Vue from 'vue';
import VueClipboard from 'vue-clipboard2';
VueClipboard.config.autoSetContainer = true;
Vue.use(VueClipboard);
const columns = [
{
@ -110,7 +138,7 @@ export default {
components: {
STable,
Ellipsis,
CreateForm
CreateForm,
},
data() {
return {
@ -139,7 +167,14 @@ export default {
created() {
// getRoleList({ t: new Date() })
},
computed: {},
computed: {
authorizer_url() {
return 'https://' + window.location.hostname + '/wechat'
},
authorizer_event() {
return 'https://' + window.location.hostname + '/wechat/$APPID$'
}
},
methods: {
handleAdd() {
this.mdl = null
@ -195,7 +230,31 @@ export default {
}).catch(e => {
console.log(e)
})
},
onCopy() {
Message.success('复制成功')
}
}
}
</script>
<style lang="less" scoped>
.text_copy {
color: #1890ff;
cursor: pointer;
}
.normal_flex {
display: flex;
align-items: center;
flex-wrap: wrap;
.blue_circle {
min-width: 10px;
width: 10px;
height: 10px;
border-radius: 50%;
background-color: #1890ff;
margin-right: 10px;
}
}
</style>

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save