342 lines
14 KiB
HTML
342 lines
14 KiB
HTML
{extend name="app/shop/view/base.html"/}
|
|
{block name="resources"}
|
|
<style>
|
|
.prompt-block .prompt {
|
|
display: inline-block;
|
|
}
|
|
.prompt-block .prompt {
|
|
width: 18px;
|
|
height: 18px;
|
|
line-height: 18px;
|
|
position: relative;
|
|
}
|
|
.user-head-img{
|
|
width:40px;
|
|
height:40px;
|
|
margin-right:20px;
|
|
}
|
|
.qrcode-content{
|
|
width: 100%;
|
|
height: 100%;
|
|
display: inline-flex;
|
|
flex-direction: row;
|
|
flex-wrap: nowrap;
|
|
align-content: center;
|
|
justify-content: center;
|
|
align-items: center;
|
|
}
|
|
.qrcode-content .qrcode-content-img{
|
|
width: 120px;
|
|
}
|
|
</style>
|
|
{/block}
|
|
|
|
{block name="main"}
|
|
|
|
<div class="layui-collapse ns-tips">
|
|
<div class="layui-colla-item">
|
|
<h2 class="layui-colla-title">操作提示</h2>
|
|
<ul class="layui-colla-content layui-show">
|
|
<li>通过平台注册小程序需要完善基础信息</li>
|
|
{if $is_baseinfo==0}
|
|
<li style="color:#d55959;">未完善基础信息将无法通过审核<a style="color: #0d73f9;margin-left: 10px" href="{:addon_url('aliapp/shop/aliapp/editapp')}">去完善</a></li>
|
|
{/if}
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<!-- 顶部操作内容 -->
|
|
<div class="single-filter-box top">
|
|
<div class="right">
|
|
{if $isNewest}
|
|
<button class="layui-btn" onclick="operationRequest('version_upload')">发布新版本</button>
|
|
{/if}
|
|
<button class="layui-btn" style="background-color: #009688;" onclick="versionSynchronization()">同步线上版本</button>
|
|
<button class="layui-btn" style="background-color: #FFB800;" onclick="qrcodeCreate()">体验二维码</button>
|
|
</div>
|
|
<div class="left"></div>
|
|
</div>
|
|
<!-- 列表 -->
|
|
<table id="listContent" lay-filter="listContent"></table>
|
|
<!-- 操作 -->
|
|
<script type="text/html" id="operation">
|
|
<div class="table-btn">
|
|
{{# if(d.is_newest_version){ }}
|
|
<!-- 审核中相关按钮 INIT: 开发中, AUDITING: 审核中, AUDIT_REJECT: 审核驳回, WAIT_RELEASE: 待上架, BASE_AUDIT_PASS: 准入不可营销, GRAY: 灰度中, RELEASE: 已上架, OFFLINE: 已下架, AUDIT_OFFLINE: 已下架 -->
|
|
{{# if(d.version_status == 'AUDITING'){ }}
|
|
<a class="layui-btn" lay-event="audit_cancel">审核撤销</a>
|
|
{{# }else if(d.version_status == 'AUDIT_REJECT' || d.version_status == 'BASE_AUDIT_PASS' || d.version_status == 'OFFLINE' || d.version_status == 'AUDIT_OFFLINE'){ }}
|
|
<a class="layui-btn" lay-event="audited_cancel">退回开发</a>
|
|
<a class="layui-btn" lay-event="reason_rejection">驳回原因</a>
|
|
{{# }else if(d.version_status == 'WAIT_RELEASE' || d.version_status == 'OFFLINE' || d.version_status == 'AUDIT_OFFLINE'){ }}
|
|
<a class="layui-btn" lay-event="version_online">上架</a>
|
|
<a class="layui-btn" lay-event="version_gray_online">灰度上架</a>
|
|
{{# }else if(d.version_status == 'GRAY'){ }}
|
|
<a class="layui-btn" lay-event="version_gray_cancel">结束灰度</a>
|
|
{{# }else if(d.version_status == 'GRAY' || d.version_status == 'RELEASE'){ }}
|
|
<a class="layui-btn" lay-event="version_offline">下架</a>
|
|
<a class="layui-btn" lay-event="version_rollback">回滚</a>
|
|
{{# }else if(d.version_status == 'GRAY' || d.version_status == 'OFFLINE' || d.version_status == 'AUDIT_OFFLINE'){ }}
|
|
<a class="layui-btn" lay-event="version_rollback">回滚</a>
|
|
{{# }else{ }}
|
|
<a class="layui-btn" lay-event="delete">删除</a>
|
|
<a class="layui-btn" lay-event="audit_submit">提交审核</a>
|
|
<!-- 体验版相关按钮 -->
|
|
{{# if(d.is_experience_version == 0){ }}
|
|
<a class="layui-btn" lay-event="release_experience_version">发布体验版</a>
|
|
{{# }else if(d.is_experience_version == 1){ }}
|
|
<a class="layui-btn" lay-event="cancel_experience_version">取消体验版</a>
|
|
<a class="layui-btn" lay-event="see_experience_version">查看体验版状态</a>
|
|
{{# } }}
|
|
{{# } }}
|
|
{{# }else{ }}
|
|
{{# if(d.is_experience_version == 1){ }}
|
|
<a class="layui-btn" lay-event="cancel_experience_version">取消体验版</a>
|
|
{{# } }}
|
|
{{# if(d.version_status == 'AUDITING'){ }}
|
|
<a class="layui-btn" lay-event="audit_cancel">审核撤销</a>
|
|
{{# }else if(d.version_status == 'AUDIT_REJECT' || d.version_status == 'BASE_AUDIT_PASS' || d.RELEASE == 'OFFLINE' || d.RELEASE == 'AUDIT_OFFLINE'){ }}
|
|
<a class="layui-btn" lay-event="audited_cancel">退回开发</a>
|
|
<a class="layui-btn" lay-event="reason_rejection">驳回原因</a>
|
|
{{# }else{ }}
|
|
<a class="layui-btn" lay-event="delete">删除</a>
|
|
{{# } }}
|
|
{{# } }}
|
|
</div>
|
|
</script>
|
|
{/block}
|
|
|
|
{block name="script"}
|
|
<script>
|
|
var table,
|
|
form,
|
|
repeat_flag = false;//防重复标识;
|
|
|
|
layui.use(['form'], function() {
|
|
form = layui.form;
|
|
form.render();
|
|
// 内容获取
|
|
table = new Table({
|
|
elem: '#listContent',
|
|
url: ns.url("aliapp://shop/AppletRelease/index"),
|
|
cols: [[
|
|
{align: 'center', field: 'id', title: 'ID', width: '5%', unresize: 'false'},
|
|
{align: 'center', field: 'version', title: '版本', unresize: 'area'},
|
|
{
|
|
align: 'center', templet: function (d) {
|
|
|
|
return ns.time_to_date(d.create_time, "YYYY-MM-DD hh:mm:ss");
|
|
}, title: '发布时间', unresize: 'false'
|
|
},
|
|
{
|
|
align: 'center', field: 'ali_create_status_text', title: '版本构建状态', unresize: 'false'
|
|
},
|
|
{
|
|
align: 'center', field: 'version_status_text', title: '版本状态', unresize: 'false'
|
|
},
|
|
{
|
|
align: 'center', templet: function (d) {
|
|
return parseInt(d.is_experience_version) === 0 ? '不是' : '是';
|
|
}, title: '是否为体验版', unresize: 'false'
|
|
},
|
|
{title: '操作', toolbar: '#operation', unresize: 'false', align: 'right'}
|
|
]],
|
|
});
|
|
// 监听工具栏操作
|
|
table.tool(function(obj) {
|
|
let data = obj.data;
|
|
let key = obj.event;
|
|
if(key === 'reason_rejection'){
|
|
reasonRejection(data);
|
|
}else{
|
|
operationRequest(key,data);
|
|
}
|
|
});
|
|
});
|
|
// 发起操作请求
|
|
function operationRequest(key,data = {}){
|
|
let config = getApiConfig(key);
|
|
let params = getApiParams(key,data);
|
|
layer.confirm(config['tips'], {icon: 3, title:'提示'}, function(confirmIndex){
|
|
layer.close(confirmIndex);
|
|
let index = ns.loading('open', config['loading_tips']);
|
|
requestApi("aliapp://shop/AppletRelease/publishingProcessProcessing",params,function (res) {
|
|
layer.close(index);
|
|
// 返回处理
|
|
resultProcessing(key,res);
|
|
});
|
|
});
|
|
}
|
|
// 接口配置信息
|
|
function getApiConfig(key){
|
|
let config = {
|
|
delete:{
|
|
title: '删除版本',
|
|
tips:'确定删除当前版本吗?',// 询问语句
|
|
loading_tips: '删除中,请耐心等待......',// 加载栏提示语句
|
|
},
|
|
release_experience_version:{
|
|
title: '发布体验版本',
|
|
tips:'确认发布当前版本为体验版吗?',
|
|
loading_tips: '发布中,请耐心等待......',
|
|
},
|
|
cancel_experience_version:{
|
|
title: '取消体验版',
|
|
tips:'确认取消当前版本的体验版?',
|
|
loading_tips: '取消中,请耐心等待......',
|
|
},
|
|
see_experience_version:{
|
|
title: '查看体验版状态',
|
|
tips:'确认查看当前版本的状态?',
|
|
loading_tips: '查询中,请耐心等待......',
|
|
},
|
|
audit_submit:{
|
|
title: '提交审核',
|
|
tips:'确定提交审核吗?',
|
|
loading_tips: '正在提交中,请耐心等待......',
|
|
},
|
|
audit_cancel:{
|
|
title: '审核撤销',
|
|
tips:'确定撤销审核吗?',
|
|
loading_tips: '正在撤销中,请耐心等待......',
|
|
},
|
|
audited_cancel:{
|
|
title: '退回开发',
|
|
tips:'确定退回开发吗?退回后可以从新提交审核!',
|
|
loading_tips: '正在退回中,请耐心等待......',
|
|
},
|
|
version_online:{
|
|
title: '上架',
|
|
tips:'确定发布当前版本为正式版本吗?',
|
|
loading_tips: '正在发布中,请耐心等待......',
|
|
},
|
|
version_gray_online:{
|
|
title: '灰度上架',
|
|
tips:'确定灰度上架当前版本吗?',
|
|
loading_tips: '正在灰度上架中,请耐心等待......',
|
|
},
|
|
version_gray_cancel:{
|
|
title: '结束灰度',
|
|
tips:'确定结束当前版本的灰度测试吗?',
|
|
loading_tips: '正在结束灰度中,请耐心等待......',
|
|
},
|
|
version_offline:{
|
|
title: '下架',
|
|
tips:'确定下架当前版本吗?',
|
|
loading_tips: '正在下架中,请耐心等待......',
|
|
},
|
|
version_rollback:{
|
|
title: '回滚',
|
|
tips:'确定回滚当前版本吗?回滚后会自动上架上一个正式版本!',
|
|
loading_tips: '正在回滚中,请耐心等待......',
|
|
},
|
|
version_upload:{
|
|
title: '发布新版本',
|
|
tips:'确定发布新版本吗?发布后将只能对新版本进行操作,不可对当前版本进行任何操作!',
|
|
loading_tips: '正在发布中,请耐心等待......',
|
|
},
|
|
};
|
|
|
|
return config[key] ?? {};
|
|
}
|
|
// 获取提交参数
|
|
function getApiParams(key,data){
|
|
switch (key) {
|
|
case 'version_upload':
|
|
return {
|
|
type: key,
|
|
};
|
|
break;
|
|
default:
|
|
return {
|
|
id: data.id,
|
|
type: key,
|
|
};
|
|
}
|
|
}
|
|
// 返回信息处理
|
|
function resultProcessing(key,res){
|
|
switch (key) {
|
|
case 'see_experience_version': break;
|
|
case 'version_upload':
|
|
if(res.message.indexOf("门店不存在") > -1) {
|
|
layer.alert(res.message, function(index){
|
|
window.location.href = ns.url('store://shop/store/lists')
|
|
});
|
|
}
|
|
else if(res.message.indexOf("配置小程序") > -1) {
|
|
layer.alert(res.message, function(index){
|
|
window.location.href = ns.url('aliapp://shop/aliapp/setting')
|
|
});
|
|
}
|
|
break;
|
|
default:
|
|
location.reload();
|
|
// table.reload({
|
|
// page: {
|
|
// curr: 1
|
|
// },
|
|
// });
|
|
}
|
|
}
|
|
|
|
// 版本同步
|
|
function versionSynchronization(){
|
|
let index = ns.loading('open');
|
|
requestApi("aliapp://shop/AppletRelease/versionSynchronization",{ },function (res) {
|
|
table.reload({
|
|
page: {
|
|
curr: 1
|
|
},
|
|
});
|
|
|
|
layer.close(index);
|
|
})
|
|
}
|
|
// 查看推广二维码
|
|
function qrcodeCreate() {
|
|
let index = ns.loading('open', '正在生成二维码,请耐心等待......');
|
|
requestApi("aliapp://shop/AppletRelease/qrcodeCreate",{ },function (res) {
|
|
layer.close(index);
|
|
let data = res.data;
|
|
// 生成html
|
|
// qr_code_url=方形二维码图片链接地址
|
|
// qr_code_url_circle_blue=圆形二维码地址-白色slogan
|
|
// qr_code_url_circle_white=圆形二维码地址-蓝色slogan
|
|
let html =
|
|
`<div class="qrcode-content">
|
|
<img class="qrcode-content-img" src="${data['exp_qr_code_url']}" />
|
|
</div>`;
|
|
// 显示二维码
|
|
layer.open({
|
|
type: 1,
|
|
title: "体验二维码",
|
|
area: ['350px', '300px'],
|
|
btn: ["关闭"],
|
|
content: html,
|
|
});
|
|
},false);
|
|
}
|
|
// 查看驳回原因
|
|
function reasonRejection(data){
|
|
layer.alert(data.audit_reason);
|
|
}
|
|
|
|
|
|
// 发起请求
|
|
function requestApi(api,data,fun,show_message = true){
|
|
if (repeat_flag) return false;
|
|
repeat_flag = true;
|
|
$.ajax({
|
|
url: ns.url(api),
|
|
data: data,
|
|
dataType: 'JSON',
|
|
type: 'POST',
|
|
success: function(res) {
|
|
if(show_message) layer.msg(res.message);
|
|
repeat_flag = false;
|
|
if(typeof fun === 'function') fun(res);
|
|
}
|
|
});
|
|
}
|
|
</script>
|
|
{/block} |