jh-admin/addon/aliapp/shop/view/release/index.html

407 lines
17 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{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="versionUpload()">发布新版本</button>
{else/}
<button class="layui-btn" style="background-color: #e36f26;" onclick="versionUpload()">更换版本号</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>
<script type="text/html" id="version_upload">
<div class="layui-form multuple-list-box">
<div class="layui-form-item">
<label class="layui-form-label">您当前版本</label>
<div class="layui-input-block">
<div>{$userVersion}</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">平台版本号</label>
<div class="layui-input-block">
<input name="app_version" value="{$version}" type="template_version" disabled class="layui-input len-short">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">自定义版本号</label>
<div class="layui-input-block">
{if $isNewest}
<input name="app_version" value="{$version}" type="app_version" disabled class="layui-input len-short">
{else/}
<input name="app_version" value="{$version}" type="app_version" class="layui-input len-short">
{/if}
</div>
<div class="word-aux">如商家版本高出平台可以自行更改,低于平台版本无效修改</div>
</div>
<div class="form-row sm">
<button class="layui-btn layui-btn" lay-submit lay-filter="save" >提交</button>
<button class="layui-btn layui-btn-primary" onclick="back()">返回</button>
</div>
</div>
</script>
{/block}
{block name="script"}
<script>
var table, form,laytpl,repeat_flag = false,version_upload;//防重复标识;
layui.use(['form','laytpl'], function() {
form = layui.form;
laytpl = layui.laytpl;
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);
}
});
/**
* 监听提交
*/
form.on('submit(save)', function(data) {
// if (repeat_flag) return;
// repeat_flag = true;
console.log(data)
let field= data.field;
submitOneVersionUpload('version_upload',field)
});
function submitOneVersionUpload(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);
layer.close(version_upload);
// 返回处理
resultProcessing(key,res);
});
});
}
});
function versionUpload(){
laytpl($("#version_upload").html()).render({}, function(html) {
version_upload= layer.open({
type: 1,
title: "发布新版本",
area: ['500px', '300px'],
content: html,
success: function(res){
console.log(res);
}
});
});
}
// 发起操作请求
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,
...data
};
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')
});
}else {
setTimeout(function () {
location.reload();
},3000)
}
break;
default:
setTimeout(function () {
location.reload();
},3000)
}
}
// 版本同步
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){
console.log(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}