详情页开发

master
李春波 2 years ago
parent 81799f2e03
commit 38f623a8af
  1. 20
      app/admin/controller/MiniProgramController.php
  2. 9
      app/common/service/wechat/MiniProgram.php
  3. 14
      front/src/api/miniprogram.js
  4. 4
      front/src/config/router.config.js
  5. 5
      front/src/utils/filter.js
  6. 32
      front/src/views/authorizer/authorizerList.vue
  7. 59
      front/src/views/authorizer/detail.vue

@ -0,0 +1,20 @@
<?php
namespace app\admin\controller;
use app\admin\model\Authorizers;
use app\common\service\wechat\MiniProgram;
use support\Request;
class MiniProgramController extends BaseController
{
public function detail(Request $request)
{
$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']);
return success($row);
}
}

@ -4,7 +4,6 @@ namespace app\common\service\wechat;
use app\admin\model\Authorizers;
use Psr\SimpleCache\InvalidArgumentException;
use Tinywan\ExceptionHandler\Exception\BadRequestHttpException;
class MiniProgram extends OpenPlatform
@ -15,10 +14,6 @@ class MiniProgram extends OpenPlatform
return $this->app->miniProgram($platform['appid'], $platform['refreshtoken']);
}
/**
* @throws InvalidArgumentException
* @throws BadRequestHttpException
*/
public function getToken($appid): array
{
try {
@ -28,10 +23,6 @@ class MiniProgram extends OpenPlatform
}
}
/**
* @throws InvalidArgumentException
* @throws BadRequestHttpException
*/
public function getVisitStatus($appid)
{
return $this->getMiniProgram($appid)->base->httpPostJson('wxa/getvisitstatus', []);

@ -0,0 +1,14 @@
import request from '@/utils/request'
const api = {
detail: '/miniprogram/detail',
}
export function getDetail(parameter) {
return request({
url: api.detail,
method: 'post',
data: parameter
})
}

@ -136,7 +136,7 @@ export const asyncRouterMap = [
hideChildrenInMenu: true,
children: [
{
name: 'authorizer',
name: 'authorizer-list',
path: '/authorizer/list',
component: () => import('@/views/authorizer/authorizerList'),
meta: {title: '授权管理', keepAlive: true, icon: bxAnaalyse},
@ -145,7 +145,7 @@ export const asyncRouterMap = [
name: 'authorizer-detail',
path: '/authorizer/detail',
component: () => import('@/views/authorizer/detail'),
meta: {title: '详情', keepAlive: true, icon: bxAnaalyse},
meta: {title: '版本管理', keepAlive: true, icon: bxAnaalyse},
},
]
},

@ -1,6 +1,7 @@
import Vue from 'vue'
import moment from 'moment'
import 'moment/locale/zh-cn'
moment.locale('zh-cn')
Vue.filter('NumberFormat', function (value) {
@ -18,3 +19,7 @@ Vue.filter('dayjs', function (dataStr, pattern = 'YYYY-MM-DD HH:mm:ss') {
Vue.filter('moment', function (dataStr, pattern = 'YYYY-MM-DD HH:mm:ss') {
return moment(dataStr).format(pattern)
})
Vue.filter('momentUnix', function (dataStr, pattern = 'YYYY-MM-DD HH:mm:ss') {
return moment.unix(dataStr).format(pattern)
})

@ -6,20 +6,6 @@
<div>授权帐号指的是获得公众号或者小程序管理员授权的帐号服务商可为授权帐号提供代开发代运营等服务</div>
</div>
</template>
<a-modal
:footer="null"
:visible="jsonDataVisible"
title="原始报文"
width="1000px"
@cancel="() => jsonDataVisible = false"
>
<json-viewer
:copyable="{copyText: '复制', copiedText: '复制成功'}"
:value="jsonData"
:expand-depth='3'
expanded
></json-viewer>
</a-modal>
<a-card :bordered="false">
<div class="table-page-search-wrapper">
<a-form layout="inline">
@ -83,12 +69,26 @@
<a @click="originalMessage(row.appid)">原始报文</a>
<template v-if="row.app_type === 1">
<a-divider type="vertical"/>
<a @click="detail(row.appid)">版本管理</a>
<a @click="detail(row.id)">版本管理</a>
</template>
</template>
</span>
</s-table>
</a-card>
<a-modal
:footer="null"
:visible="jsonDataVisible"
title="原始报文"
width="1000px"
@cancel="() => jsonDataVisible = false"
>
<json-viewer
:copyable="{copyText: '复制', copiedText: '复制成功'}"
:expand-depth='3'
:value="jsonData"
expanded
></json-viewer>
</a-modal>
</page-header-wrapper>
</template>
@ -284,7 +284,7 @@ export default {
this.$router.push({
path: '/authorizer/detail',
query: {
id: 123
id: id
}
})
}

@ -1,11 +1,62 @@
<template>
<div>
hello
</div>
<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-card>
<a-card :bordered="false" title="审核版本">
hello
</a-card>
<a-card :bordered="false" title="体验版本">
<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-card>
</page-header-wrapper>
</template>
<script setup>
<script>
import {getDetail} from '@/api/miniprogram'
export default {
name: 'Version',
data() {
return {
release_info: {},
exp_info: {},
}
},
methods: {
getDetail(id) {
getDetail({id}).then(res => {
this.release_info = res.data.version.release_info
this.exp_info = res.data.version.exp_info
})
}
},
created() {
const {id} = this.$route.query
this.getDetail(id)
},
}
</script>
<style lang="less" scoped>

Loading…
Cancel
Save