admin/addon/aliapp/shop/view/release/index.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}