前端代码格式化

publicsignpoll
youngS 4 years ago
parent 002c90d5e3
commit f49c067015
  1. 20
      fir_client/src/components/FirBase.vue
  2. 117
      fir_client/src/components/FirDownload.vue
  3. 12
      fir_client/src/components/FirFooter.vue
  4. 23
      fir_client/src/components/FirHeader.vue
  5. 52
      fir_client/src/components/FirLogin.vue
  6. 38
      fir_client/src/components/FirRegist.vue
  7. 32
      fir_client/src/components/FirResetPwd.vue
  8. 90
      fir_client/src/components/ShortDownload.vue
  9. 52
      fir_client/src/components/apps/FirAppInfosBase.vue
  10. 44
      fir_client/src/components/apps/FirAppInfosbaseinfo.vue
  11. 18
      fir_client/src/components/apps/FirAppInfoscombo.vue
  12. 14
      fir_client/src/components/apps/FirAppInfosdevices.vue
  13. 50
      fir_client/src/components/apps/FirAppInfossecurity.vue
  14. 58
      fir_client/src/components/apps/FirAppInfossupersign.vue
  15. 29
      fir_client/src/components/apps/FirAppInfostimeline.vue
  16. 206
      fir_client/src/components/apps/FirApps.vue
  17. 7
      fir_client/src/components/base/BackToTop.vue
  18. 56
      fir_client/src/components/base/BindDomain.vue
  19. 2
      fir_client/src/components/index/FirContact.vue
  20. 10
      fir_client/src/components/index/FirIndexBody.vue
  21. 8
      fir_client/src/components/index/FirIndexTem.vue
  22. 2
      fir_client/src/components/index/FirNews.vue
  23. 4
      fir_client/src/components/index/FirService.vue
  24. 295
      fir_client/src/components/user/FirSuperSignBase.vue
  25. 104
      fir_client/src/components/user/FirUserAdvert.vue
  26. 70
      fir_client/src/components/user/FirUserDomain.vue
  27. 107
      fir_client/src/components/user/FirUserOrders.vue
  28. 10
      fir_client/src/components/user/FirUserProfileBase.vue
  29. 80
      fir_client/src/components/user/FirUserProfileCertification.vue
  30. 12
      fir_client/src/components/user/FirUserProfileChangePwd.vue
  31. 134
      fir_client/src/components/user/FirUserProfileInfo.vue
  32. 180
      fir_client/src/components/user/FirUserStorage.vue
  33. 12
      fir_client/src/main.short.js

@ -1,22 +1,22 @@
<template> <template>
<div ref="appbase"> <div ref="appbase">
<el-dialog <el-dialog
:title="bind_domain_title"
:close-on-click-modal="false" :close-on-click-modal="false"
:close-on-press-escape="false" :close-on-press-escape="false"
:title="bind_domain_title"
:visible.sync="bind_domain_sure" :visible.sync="bind_domain_sure"
width="666px"> width="666px">
<bind-domain v-if="bind_domain_sure" :transitionName="`bind-user-domain`+ bind_domain_type" <bind-domain v-if="bind_domain_sure" :domain_type="bind_domain_type"
:domain_type="bind_domain_type"/> :transitionName="`bind-user-domain`+ bind_domain_type"/>
</el-dialog> </el-dialog>
<canvas ref="canvas" class="canvas" @mousemove="canvas_move" @mouseleave="canvas_leave"/> <canvas ref="canvas" class="canvas" @mouseleave="canvas_leave" @mousemove="canvas_move"/>
<el-container> <el-container>
<div style="margin: -5px 20px" v-if="$store.state.show_domain_msg"> <div v-if="$store.state.show_domain_msg" style="margin: -5px 20px">
<el-alert <el-alert
center
type="error"
:closable="false" :closable="false"
effect="dark"> center
effect="dark"
type="error">
<div slot="title"> <div slot="title">
<span :underline="false" <span :underline="false"
class="domian-tip-bar">应用分发请绑定您自己的域名平台分发域名可能因不可违因素更换将导致您的应用无法访问</span> class="domian-tip-bar">应用分发请绑定您自己的域名平台分发域名可能因不可违因素更换将导致您的应用无法访问</span>
@ -34,8 +34,8 @@
<el-divider/> <el-divider/>
<FirFooter/> <FirFooter/>
</el-footer> </el-footer>
<el-tooltip placement="top" content="回到顶部"> <el-tooltip content="回到顶部" placement="top">
<back-to-top :custom-style="myBackToTopStyle" :visibility-height="300" :back-position="50" <back-to-top :back-position="50" :custom-style="myBackToTopStyle" :visibility-height="300"
transition-name="fade"/> transition-name="fade"/>
</el-tooltip> </el-tooltip>
</el-container> </el-container>

@ -1,8 +1,8 @@
<template> <template>
<el-container class="container"> <el-container class="container">
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0"> <meta content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0" name="viewport">
<el-main style="margin-top: -60px" v-if="report_flag"> <el-main v-if="report_flag" style="margin-top: -60px">
<a style="color: #3888fa" @click="report_flag=false">&lt;&nbsp;返回下载页</a> <a style="color: #3888fa" @click="report_flag=false">&lt;&nbsp;返回下载页</a>
<el-header style="text-align: center;height: 20px;margin-top: 10px">举报详情</el-header> <el-header style="text-align: center;height: 20px;margin-top: 10px">举报详情</el-header>
@ -17,10 +17,10 @@
</el-form-item> </el-form-item>
<el-form-item style="margin-top: -10px"> <el-form-item style="margin-top: -10px">
<span>详细原因</span> <span>详细原因</span>
<el-input type="textarea" <el-input v-model="report_info.report_reason"
:rows="3" :rows="3"
v-model="report_info.report_reason" placeholder="请详细说明举报原因"
placeholder="请详细说明举报原因"></el-input> type="textarea"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-divider/> <el-divider/>
@ -28,7 +28,7 @@
<el-header style="text-align: center;height: 20px">举报人信息填写</el-header> <el-header style="text-align: center;height: 20px">举报人信息填写</el-header>
<el-form-item> <el-form-item>
<span>真实姓名</span> <span>真实姓名</span>
<el-input v-model="report_info.username" placeholder="请输入您的姓名" clearable></el-input> <el-input v-model="report_info.username" clearable placeholder="请输入您的姓名"></el-input>
</el-form-item> </el-form-item>
<el-form-item style="margin-top: -10px"> <el-form-item style="margin-top: -10px">
<span>联系信息</span> <span>联系信息</span>
@ -39,25 +39,25 @@
<el-row v-if="captcha.captcha_image" style="margin-top: 10px;margin-bottom: -10px"> <el-row v-if="captcha.captcha_image" style="margin-top: 10px;margin-bottom: -10px">
<el-col :span="16"> <el-col :span="16">
<el-input placeholder="请输入图片验证码" v-model="report_info.authcode" maxlength="6" clearable/> <el-input v-model="report_info.authcode" clearable maxlength="6" placeholder="请输入图片验证码"/>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-image <el-image
style="margin:0 4px;border-radius:4px;cursor:pointer;height: 40px"
:src="captcha.captcha_image" :src="captcha.captcha_image"
fit="contain" @click="get_auth_code"> fit="contain"
style="margin:0 4px;border-radius:4px;cursor:pointer;height: 40px" @click="get_auth_code">
</el-image> </el-image>
</el-col> </el-col>
</el-row> </el-row>
<el-row style="margin-top: 10px"> <el-row style="margin-top: 10px">
<el-col :span="12"> <el-col :span="12">
<el-input v-model="report_info.seicode" prefix-icon="el-icon-mobile" <el-input v-model="report_info.seicode" clearable
placeholder="验证码" clearable/> placeholder="验证码" prefix-icon="el-icon-mobile"/>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-button type="info" @click="getphonecode" plain <el-button plain style="margin:0 4px;border-radius:4px;cursor:pointer;height: 40px;width: 100%" type="info"
style="margin:0 4px;border-radius:4px;cursor:pointer;height: 40px;width: 100%"> @click="getphonecode">
获取验证码 获取验证码
</el-button> </el-button>
</el-col> </el-col>
@ -66,17 +66,17 @@
<el-form-item> <el-form-item>
<div id="captcha" ref="captcha"></div> <div id="captcha" ref="captcha"></div>
</el-form-item> </el-form-item>
<el-button style="width: 100%;height: 60px;" type="primary" plain @click="report_submit">立即举报 <el-button plain style="width: 100%;height: 60px;" type="primary" @click="report_submit">立即举报
</el-button> </el-button>
</el-form> </el-form>
</el-main> </el-main>
<div class="wechat_tip_content" v-if="(agent === 'wxandroid' || agent === 'wxapple') && !wrong"> <div v-if="(agent === 'wxandroid' || agent === 'wxapple') && !wrong" class="wechat_tip_content">
<div class="mask"> <div class="mask">
<div class="wechat_tip" v-show="agent === 'wxandroid'"> <div v-show="agent === 'wxandroid'" class="wechat_tip">
<i class="triangle-up"/>请点击右上角<br>选择"在浏览器打开" <i class="triangle-up"/>请点击右上角<br>选择"在浏览器打开"
</div> </div>
<div class="wechat_tip" v-show="agent === 'wxapple'"> <div v-show="agent === 'wxapple'" class="wechat_tip">
<i class="triangle-up"/>请点击右上角<br>选择"在Safari中打开" <i class="triangle-up"/>请点击右上角<br>选择"在Safari中打开"
</div> </div>
</div> </div>
@ -87,7 +87,7 @@
<!-- <span class="pattern right"><img src="@/assets/down_right.png"></span>--> <!-- <span class="pattern right"><img src="@/assets/down_right.png"></span>-->
</div> </div>
<el-container class="out-container " v-if="wxeasytypeflag && !report_flag"> <el-container v-if="wxeasytypeflag && !report_flag" class="out-container ">
<div class="main"> <div class="main">
<header> <header>
@ -102,7 +102,8 @@
</span> </span>
</div> </div>
<p v-if="currentappinfo.issupersign" class="scan-tips wrapper icon-warp">超级签 </p> <p v-if="currentappinfo.issupersign" class="scan-tips wrapper icon-warp">超级签 </p>
<p v-else class="scan-tips wrapper icon-warp">{{ mcurrentappinfo.release_type|getiOStype <p v-else class="scan-tips wrapper icon-warp">{{
mcurrentappinfo.release_type|getiOStype
}}</p> }}</p>
<h1 class="name wrapper"> <h1 class="name wrapper">
<span class="icon-warp" style="margin-left:0px"> <span class="icon-warp" style="margin-left:0px">
@ -118,7 +119,7 @@
<p class="scan-tips" style="margin-left:170px">扫描二维码下载<br/>或用手机浏览器输入这个网址<span <p class="scan-tips" style="margin-left:170px">扫描二维码下载<br/>或用手机浏览器输入这个网址<span
class="text-black">{{ full_url }}</span></p> class="text-black">{{ full_url }}</span></p>
<div class="release-info" v-if="currentappinfo.description && agent === ''"> <div v-if="currentappinfo.description && agent === ''" class="release-info">
<p class="version"> <p class="version">
应用描述{{ currentappinfo.description }} 应用描述{{ currentappinfo.description }}
</p> </p>
@ -127,24 +128,24 @@
<p>{{ mcurrentappinfo.app_version }}Build {{ mcurrentappinfo.build_version }}- <p>{{ mcurrentappinfo.app_version }}Build {{ mcurrentappinfo.build_version }}-
{{ mcurrentappinfo.binary_size }}</p> {{ mcurrentappinfo.binary_size }}</p>
<p>更新于{{ mcurrentappinfo.created_time |formatTime }}</p> <p>更新于{{ mcurrentappinfo.created_time |formatTime }}</p>
<p class="version" v-if="mcurrentappinfo.changelog && agent === ''"> <p v-if="mcurrentappinfo.changelog && agent === ''" class="version">
更新日志{{ mcurrentappinfo.changelog }} 更新日志{{ mcurrentappinfo.changelog }}
</p> </p>
</div> </div>
<div id="actions" class="actions" v-if="agent !==''" <div v-if="agent !==''" id="actions" class="actions"
style="margin-top: 10%;margin-bottom: 20%"> style="margin-top: 10%;margin-bottom: 20%">
<button type="button" v-if="wrong">{{ msg }}</button> <button v-if="wrong" type="button">{{ msg }}</button>
<el-button type="info" round <el-button v-else-if="agent === 'wxandroid' || agent === 'wxapple'" round
v-else-if="agent === 'wxandroid' || agent === 'wxapple'"> type="info">
不支持在微信内下载 不支持在微信内下载
</el-button> </el-button>
<div v-else style="margin-top: 10%;margin-bottom: 20%"> <div v-else style="margin-top: 10%;margin-bottom: 20%">
<div v-if="isdownload"> <div v-if="isdownload">
<div v-if="gomobile"> <div v-if="gomobile">
<button disabled="" class="loading" <button class="loading" disabled=""
style="min-width: 42px; width: 42px; padding: 21px 0; border-top-color: transparent; border-left-color: transparent;"> style="min-width: 42px; width: 42px; padding: 21px 0; border-top-color: transparent; border-left-color: transparent;">
</button> </button>
</div> </div>
@ -153,8 +154,8 @@
<div><p>正在安装请按 Home 键在桌面查看</p> <div><p>正在安装请按 Home 键在桌面查看</p>
<p v-if="!this.currentappinfo.issupersign && this.mcurrentappinfo.release_type!==1"> <p v-if="!this.currentappinfo.issupersign && this.mcurrentappinfo.release_type!==1">
<button @click="gomobileaction"> <button @click="gomobileaction">
<el-link icon="el-icon-loadings" type="primary" <el-link :underline="false" icon="el-icon-loadings"
:underline="false"> type="primary">
安装完成后,需立即信任 安装完成后,需立即信任
</el-link> </el-link>
</button> </button>
@ -167,21 +168,21 @@
<div v-else> <div v-else>
<div v-if="currentappinfo.need_password" style="margin:0 auto; width:166px"> <div v-if="currentappinfo.need_password" style="margin:0 auto; width:166px">
<el-input prefix-icon="el-icon-lock" clearable <el-input v-model="password" :underline="false"
placeholder="请输入密码" v-model="password" clearable icon="el-icon-loadings"
icon="el-icon-loadings" type="primary" placeholder="请输入密码" prefix-icon="el-icon-lock"
:underline="false"/> type="primary"/>
</div> </div>
<el-divider v-if="currentappinfo.need_password"/> <el-divider v-if="currentappinfo.need_password"/>
<button @click="download"> <button @click="download">
<el-link icon="el-icon-loadings" type="primary" <el-link :underline="false" icon="el-icon-loadings"
:underline="false"> type="primary">
下载安装 下载安装
</el-link> </el-link>
</button> </button>
<a v-if="(currentappinfo.issupersign || mcurrentappinfo.release_type === 2) && !$route.query.udid" <a v-if="(currentappinfo.issupersign || mcurrentappinfo.release_type === 2) && !$route.query.udid"
@click="jiaocheng('open')" class="jiaocheng"
class="jiaocheng" style="color: white;font-size: 18px;">?</a> style="color: white;font-size: 18px;" @click="jiaocheng('open')">?</a>
</div> </div>
</div> </div>
@ -192,13 +193,13 @@
</div> </div>
</div> </div>
</header> </header>
<div class="per-type-info section" v-if="currentappinfo.app_id && agent === ''"> <div v-if="currentappinfo.app_id && agent === ''" class="per-type-info section">
<div class="type" v-if="miscomboappinfo.release_id"> <div v-if="miscomboappinfo.release_id" class="type">
<div class="info"> <div class="info">
<p class="type-icon" v-if="iscomboappinfo.type === 0"> <p v-if="iscomboappinfo.type === 0" class="type-icon">
<i class="iconfont icon-android2"/> <i class="iconfont icon-android2"/>
</p> </p>
<p class="type-icon" v-else> <p v-else class="type-icon">
<i class="iconfont icon-ios"/> <i class="iconfont icon-ios"/>
</p> </p>
<p class="version"> <p class="version">
@ -210,7 +211,7 @@
<p class="version"> <p class="version">
更新于{{ miscomboappinfo.created_time |formatTime }} 更新于{{ miscomboappinfo.created_time |formatTime }}
</p> </p>
<p class="version" v-if="miscomboappinfo.changelog"> <p v-if="miscomboappinfo.changelog" class="version">
更新日志{{ miscomboappinfo.changelog }} 更新日志{{ miscomboappinfo.changelog }}
</p> </p>
</div> </div>
@ -218,10 +219,10 @@
<div class="type"> <div class="type">
<div class="info"> <div class="info">
<p class="type-icon" v-if="currentappinfo.type === 0"> <p v-if="currentappinfo.type === 0" class="type-icon">
<i class="iconfont icon-android2"/> <i class="iconfont icon-android2"/>
</p> </p>
<p class="type-icon" v-else> <p v-else class="type-icon">
<i class="iconfont icon-ios"/> <i class="iconfont icon-ios"/>
</p> </p>
<p class="version"> <p class="version">
@ -233,19 +234,19 @@
<p class="version"> <p class="version">
更新于{{ mcurrentappinfo.created_time|formatTime }} 更新于{{ mcurrentappinfo.created_time|formatTime }}
</p> </p>
<p class="version" v-if="mcurrentappinfo.changelog"> <p v-if="mcurrentappinfo.changelog" class="version">
更新日志{{ mcurrentappinfo.changelog }} 更新日志{{ mcurrentappinfo.changelog }}
</p> </p>
</div> </div>
</div> </div>
</div> </div>
<div class="per-type-info " v-else> <div v-else class="per-type-info ">
<div class="release-info"> <div class="release-info">
<div class="info" v-if="mcurrentappinfo.changelog"> <div v-if="mcurrentappinfo.changelog" class="info">
<h3>更新日志</h3> <h3>更新日志</h3>
{{ mcurrentappinfo.changelog }} {{ mcurrentappinfo.changelog }}
</div> </div>
<div class="info" v-if="currentappinfo.description"> <div v-if="currentappinfo.description" class="info">
<h3>应用描述</h3> <h3>应用描述</h3>
{{ currentappinfo.description }} {{ currentappinfo.description }}
</div> </div>
@ -254,7 +255,7 @@
</div> </div>
<div class="screenshots-section" v-if="imagelist && imagelist.length > 0" style="margin-top: 30%"> <div v-if="imagelist && imagelist.length > 0" class="screenshots-section" style="margin-top: 30%">
<el-divider/> <el-divider/>
<div v-if="miscomboappinfo.release_id"> <div v-if="miscomboappinfo.release_id">
<h3 v-if="currentappinfo.type === 0"> <h3 v-if="currentappinfo.type === 0">
@ -275,15 +276,15 @@
</div> </div>
</div> </div>
<div class="footer" <div v-if="(currentappinfo.issupersign || mcurrentappinfo.release_type === 2) && $route.query.udid"
v-if="(currentappinfo.issupersign || mcurrentappinfo.release_type === 2) && $route.query.udid" class="footer"
style="margin-top: 5%"> style="margin-top: 5%">
<el-tag type="success">UDID:</el-tag> <el-tag type="success">UDID:</el-tag>
<el-tag> <el-tag>
{{ $route.query.udid }} {{ $route.query.udid }}
</el-tag> </el-tag>
<br> <br>
<el-link type="warning" :underline="false">若安装异常请复制UDID发送给管理员</el-link> <el-link :underline="false" type="warning">若安装异常请复制UDID发送给管理员</el-link>
</div> </div>
<div class="footer" style="margin-top: 30%;margin-bottom: 8px"> <div class="footer" style="margin-top: 30%;margin-bottom: 8px">
@ -294,7 +295,7 @@
</div> </div>
<div v-if="agent!==''"> <div v-if="agent!==''">
<div v-if="ad_info.ad_uri" style="margin-bottom: 80px"/> <div v-if="ad_info.ad_uri" style="margin-bottom: 80px"/>
<div class="app_bottom_fixed" v-if="ad_info.ad_uri"> <div v-if="ad_info.ad_uri" class="app_bottom_fixed">
<div class="signhelp-title"> <div class="signhelp-title">
<span><a class="closead" @click="ad_info.ad_uri=undefined">关闭</a></span> <span><a class="closead" @click="ad_info.ad_uri=undefined">关闭</a></span>
</div> </div>
@ -324,7 +325,7 @@
<div class="list-wrapper" style="width: 300px;"> <div class="list-wrapper" style="width: 300px;">
<ul> <ul>
<li v-for="sign in signhelplist" :key="sign.url"> <li v-for="sign in signhelplist" :key="sign.url">
<img v-lazy="sign.url" :key="sign.url" alt=""/> <img :key="sign.url" v-lazy="sign.url" alt=""/>
<p> <p>
安装引导<br>{{ sign.msg }} 安装引导<br>{{ sign.msg }}
</p> </p>
@ -345,14 +346,14 @@
import QRCode from 'qrcodejs2' import QRCode from 'qrcodejs2'
import { import {
getdownloadurl,
getShortAppinfo,
gettask,
getAuthTokenFun,
appReport, appReport,
checkEmail, checkEmail,
checkphone, checkphone,
geetest geetest,
getAuthTokenFun,
getdownloadurl,
getShortAppinfo,
gettask
} from '@/restful/download' } from '@/restful/download'
export default { export default {

@ -5,10 +5,10 @@
<el-link :underline="false"> {{ footer.copyright }}</el-link> <el-link :underline="false"> {{ footer.copyright }}</el-link>
</div> </div>
<div style="width: 300px; margin: 0 auto; padding: 5px 0;"> <div style="width: 300px; margin: 0 auto; padding: 5px 0;">
<a style="display: inline-block; text-decoration: none; height: 20px; line-height: 20px;" <a :href="footer.gongAnBeiAn.url"
:href="footer.gongAnBeiAn.url" rel="noopener"
target="_blank" rel="noopener"> style="display: inline-block; text-decoration: none; height: 20px; line-height: 20px;" target="_blank">
<img style="float: left;" src="@/assets/beianlogo.png" alt=""/> <img alt="" src="@/assets/beianlogo.png" style="float: left;"/>
<el-link :underline="false" <el-link :underline="false"
style="float: left; height: 20px; line-height: 20px; margin: 0 0 0 5px; color: #939393;"> style="float: left; height: 20px; line-height: 20px; margin: 0 0 0 5px; color: #939393;">
{{ footer.gongAnBeiAn.text }} {{ footer.gongAnBeiAn.text }}
@ -19,8 +19,8 @@
<div> <div>
<div :underline="false" style="width: 200px; margin: 0 auto; padding: 5px 0;"> <div :underline="false" style="width: 200px; margin: 0 auto; padding: 5px 0;">
<el-link :underline="false" :href="footer.ipcBeiAn.url" target="_blank" <el-link :href="footer.ipcBeiAn.url" :underline="false" rel="nofollow noopener"
rel="nofollow noopener">{{ footer.ipcBeiAn.text }} target="_blank">{{ footer.ipcBeiAn.text }}
</el-link> </el-link>
</div> </div>
</div> </div>

@ -2,16 +2,16 @@
<div style="background-color: rgba(162,193,230,0.18);"> <div style="background-color: rgba(162,193,230,0.18);">
<el-container class="navbar-wrapper"> <el-container class="navbar-wrapper">
<el-dialog <el-dialog
title="API Token"
:visible.sync="dialogVisible" :visible.sync="dialogVisible"
width="30%"
center center
title="API Token"
width="30%"
> >
<span>可用于调用公开 API可用于登录 fly-cli请勿泄露您的 token</span> <span>可用于调用公开 API可用于登录 fly-cli请勿泄露您的 token</span>
<el-main> <el-main>
<el-tooltip content="点击复制到剪贴板"> <el-tooltip content="点击复制到剪贴板">
<el-link type="primary" v-if="token" :underline="false" v-clipboard:copy="token" <el-link v-if="token" v-clipboard:copy="token" v-clipboard:success="copy_success" :underline="false"
v-clipboard:success="copy_success">{{ token }} type="primary">{{ token }}
</el-link> </el-link>
</el-tooltip> </el-tooltip>
</el-main> </el-main>
@ -26,7 +26,8 @@
<el-breadcrumb-item :to="{ name:'FirApps'}">我的应用</el-breadcrumb-item> <el-breadcrumb-item :to="{ name:'FirApps'}">我的应用</el-breadcrumb-item>
<el-breadcrumb-item v-if="this.route_info.label" :to="{ name:route_info.name}">{{ <el-breadcrumb-item v-if="this.route_info.label" :to="{ name:route_info.name}">{{
this.route_info.label }} this.route_info.label
}}
</el-breadcrumb-item> </el-breadcrumb-item>
<el-breadcrumb-item v-if="$store.state.currentapp.name" <el-breadcrumb-item v-if="$store.state.currentapp.name"
@ -36,25 +37,25 @@
</el-breadcrumb> </el-breadcrumb>
</el-col> </el-col>
<el-col :span="2" :push="2" style="padding-top: 16px;"> <el-col :push="2" :span="2" style="padding-top: 16px;">
<div class="block"> <div class="block">
<el-avatar :size="66" :src="$store.state.userinfo.head_img"></el-avatar> <el-avatar :size="66" :src="$store.state.userinfo.head_img"></el-avatar>
</div> </div>
</el-col> </el-col>
<el-col :span="4" :push="2" style="padding-top: 16px"> <el-col :push="2" :span="4" style="padding-top: 16px">
<el-dropdown style="padding-top: 12px;" @command="handleCommand"> <el-dropdown style="padding-top: 12px;" @command="handleCommand">
<el-button type="primary" plain round> <el-button plain round type="primary">
{{ $store.state.userinfo.first_name }}<i class="el-icon-arrow-down el-icon--right"></i> {{ $store.state.userinfo.first_name }}<i class="el-icon-arrow-down el-icon--right"></i>
</el-button> </el-button>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item command="userinfo">个人资料</el-dropdown-item> <el-dropdown-item command="userinfo">个人资料</el-dropdown-item>
<el-dropdown-item command="apitoken">API token</el-dropdown-item> <el-dropdown-item command="apitoken">API token</el-dropdown-item>
<el-dropdown-item command="setdomian">设置域名</el-dropdown-item> <el-dropdown-item command="setdomian">设置域名</el-dropdown-item>
<el-dropdown-item command="setadvert" v-if="$store.state.userinfo.role>1">宣传广告 <el-dropdown-item v-if="$store.state.userinfo.role>1" command="setadvert">宣传广告
</el-dropdown-item> </el-dropdown-item>
<el-dropdown-item command="storage" v-if="$store.state.userinfo.storage_active">存储管理 <el-dropdown-item v-if="$store.state.userinfo.storage_active" command="storage">存储管理
</el-dropdown-item> </el-dropdown-item>
<el-dropdown-item command="supersign" v-if="$store.state.userinfo.supersign_active">超级签名 <el-dropdown-item v-if="$store.state.userinfo.supersign_active" command="supersign">超级签名
</el-dropdown-item> </el-dropdown-item>
<el-dropdown-item command="myorder">订单信息</el-dropdown-item> <el-dropdown-item command="myorder">订单信息</el-dropdown-item>
<el-dropdown-item command="contact">联系我们</el-dropdown-item> <el-dropdown-item command="contact">联系我们</el-dropdown-item>

@ -1,8 +1,8 @@
<template> <template>
<el-container> <el-container>
<div style="margin: 10px 0 10px 0 ;position:absolute;right:20px;top:auto;"> <div style="margin: 10px 0 10px 0 ;position:absolute;right:20px;top:auto;">
<el-button round icon="el-icon-arrow-left" @click="$router.go(-1)"/> <el-button icon="el-icon-arrow-left" round @click="$router.go(-1)"/>
<el-button round icon="el-icon-s-home" @click="$router.push({name:'FirIndex'})"/> <el-button icon="el-icon-s-home" round @click="$router.push({name:'FirIndex'})"/>
</div> </div>
<el-header> <el-header>
@ -17,41 +17,41 @@
<el-form ref="form" :model="form"> <el-form ref="form" :model="form">
<el-tabs v-model="activeName"> <el-tabs v-model="activeName">
<el-tab-pane label="用户名登录" name="username" v-if="allow_ways.up"> <el-tab-pane v-if="allow_ways.up" label="用户名登录" name="username">
<el-form-item> <el-form-item>
<el-input v-model="form.email" prefix-icon="el-icon-user" placeholder="用户名" autofocus <el-input v-model="form.email" autofocus clearable placeholder="用户名"
clearable/> prefix-icon="el-icon-user"/>
</el-form-item> </el-form-item>
</el-tab-pane> </el-tab-pane>
<el-tab-pane :label="rutitle+'登录'" name="smsemail" v-if="allow_ways.sms || allow_ways.email"> <el-tab-pane v-if="allow_ways.sms || allow_ways.email" :label="rutitle+'登录'" name="smsemail">
<el-form-item> <el-form-item>
<el-input v-model="form.email" prefix-icon="el-icon-user" :placeholder="rutitle" autofocus <el-input v-model="form.email" :placeholder="rutitle" autofocus clearable
clearable/> prefix-icon="el-icon-user"/>
</el-form-item> </el-form-item>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
<el-form-item v-if="is_captcha"> <el-form-item v-if="is_captcha">
<el-input v-model="form.password" prefix-icon="el-icon-lock" placeholder="密码" <el-input v-model="form.password" clearable placeholder="密码"
@keyup.enter.native="onSubmit" prefix-icon="el-icon-lock"
show-password clearable/> show-password @keyup.enter.native="onSubmit"/>
</el-form-item> </el-form-item>
<el-form-item v-else> <el-form-item v-else>
<el-input v-model="form.password" prefix-icon="el-icon-lock" placeholder="密码" <el-input v-model="form.password" clearable placeholder="密码"
show-password clearable/> prefix-icon="el-icon-lock" show-password/>
</el-form-item> </el-form-item>
<el-form-item style="height: 40px" v-if="captcha.captcha_image"> <el-form-item v-if="captcha.captcha_image" style="height: 40px">
<el-row style="height: 40px"> <el-row style="height: 40px">
<el-col :span="16"> <el-col :span="16">
<el-input placeholder="请输入验证码" v-model="form.authcode" maxlength="6" <el-input v-model="form.authcode" clearable maxlength="6"
@keyup.enter.native="onSubmit" clearable/> placeholder="请输入验证码" @keyup.enter.native="onSubmit"/>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-image <el-image
style="margin:0 4px;border-radius:4px;cursor:pointer;height: 40px"
:src="captcha.captcha_image" :src="captcha.captcha_image"
fit="contain" @click="get_auth_code"> fit="contain"
style="margin:0 4px;border-radius:4px;cursor:pointer;height: 40px" @click="get_auth_code">
</el-image> </el-image>
</el-col> </el-col>
</el-row> </el-row>
@ -62,31 +62,31 @@
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="danger" :disabled="login_disable" @click="onSubmit">登录</el-button> <el-button :disabled="login_disable" type="danger" @click="onSubmit">登录</el-button>
</el-form-item> </el-form-item>
<el-form-item v-if="register_enable"> <el-form-item v-if="register_enable">
<el-button type="primary" @click="onRegister" plain>注册</el-button> <el-button plain type="primary" @click="onRegister">注册</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-link :underline="false" @click="$router.push({name: 'FirResetPwd'})" plain>忘记密码</el-link> <el-link :underline="false" plain @click="$router.push({name: 'FirResetPwd'})">忘记密码</el-link>
</el-form-item> </el-form-item>
<div class="other-way" v-if="allow_ways.third && JSON.stringify(allow_ways.third).indexOf('true')!==-1"> <div v-if="allow_ways.third && JSON.stringify(allow_ways.third).indexOf('true')!==-1" class="other-way">
<hr> <hr>
<span class="info">或使用以下账户登录</span> <span class="info">或使用以下账户登录</span>
<el-popover <el-popover
v-if="allow_ways.third && allow_ways.third.wxp" v-if="allow_ways.third && allow_ways.third.wxp"
v-model="wx_visible"
placement="top" placement="top"
trigger="manual"
title="微信扫码关注公众号登录" title="微信扫码关注公众号登录"
v-model="wx_visible"> trigger="manual">
<div> <div>
<el-image :src="wx_login_qr_url" style="width: 176px;height: 166px"/> <el-image :src="wx_login_qr_url" style="width: 176px;height: 166px"/>
</div> </div>
<el-button style="color: #1fc939;border: 1px solid rgba(31,201,57,.5); width: 110px" <el-button slot="reference"
slot="reference" size="small" @click="wxLogin">微信 size="small" style="color: #1fc939;border: 1px solid rgba(31,201,57,.5); width: 110px" @click="wxLogin">微信
</el-button> </el-button>
</el-popover> </el-popover>

@ -1,8 +1,8 @@
<template> <template>
<el-container> <el-container>
<div style="margin: 10px 0 10px 0 ;position:absolute;right:20px;top:auto;"> <div style="margin: 10px 0 10px 0 ;position:absolute;right:20px;top:auto;">
<el-button round icon="el-icon-arrow-left" @click="$router.go(-1)"/> <el-button icon="el-icon-arrow-left" round @click="$router.go(-1)"/>
<el-button round icon="el-icon-s-home" @click="$router.push({name:'FirIndex'})"/> <el-button icon="el-icon-s-home" round @click="$router.push({name:'FirIndex'})"/>
</div> </div>
<el-header> <el-header>
@ -17,25 +17,25 @@
<el-form ref="form" :model="form"> <el-form ref="form" :model="form">
<el-form-item v-if="allow_ways.code"> <el-form-item v-if="allow_ways.code">
<el-input v-model="form.icode" prefix-icon="el-icon-postcard" placeholder="邀请码必填" clearable <el-input v-model="form.icode" clearable placeholder="邀请码必填" prefix-icon="el-icon-postcard"
/> />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-input v-model="form.email" prefix-icon="el-icon-user" :placeholder="rutitle" autofocus <el-input v-model="form.email" :placeholder="rutitle" autofocus clearable
clearable/> prefix-icon="el-icon-user"/>
</el-form-item> </el-form-item>
<el-form-item style="height: 40px" v-if="captcha.captcha_image"> <el-form-item v-if="captcha.captcha_image" style="height: 40px">
<el-row style="height: 40px"> <el-row style="height: 40px">
<el-col :span="16"> <el-col :span="16">
<el-input placeholder="请输入图片验证码" v-model="form.authcode" maxlength="6" clearable/> <el-input v-model="form.authcode" clearable maxlength="6" placeholder="请输入图片验证码"/>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-image <el-image
style="margin:0 4px;border-radius:4px;cursor:pointer;height: 40px"
:src="captcha.captcha_image" :src="captcha.captcha_image"
fit="contain" @click="get_auth_code"> fit="contain"
style="margin:0 4px;border-radius:4px;cursor:pointer;height: 40px" @click="get_auth_code">
</el-image> </el-image>
</el-col> </el-col>
</el-row> </el-row>
@ -45,12 +45,12 @@
<el-form-item> <el-form-item>
<el-row> <el-row>
<el-col :span="16"> <el-col :span="16">
<el-input v-model="form.seicode" prefix-icon="el-icon-mobile" <el-input v-model="form.seicode" clearable
placeholder="验证码" clearable/> placeholder="验证码" prefix-icon="el-icon-mobile"/>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-button type="info" @click="getphonecode" plain <el-button plain style="margin:0 4px;border-radius:4px;cursor:pointer;height: 40px" type="info"
style="margin:0 4px;border-radius:4px;cursor:pointer;height: 40px">获取验证码 @click="getphonecode">获取验证码
</el-button> </el-button>
</el-col> </el-col>
</el-row> </el-row>
@ -58,12 +58,12 @@
<el-form-item> <el-form-item>
<el-input v-model="form.password" prefix-icon="el-icon-lock" placeholder="密码" <el-input v-model="form.password" clearable placeholder="密码"
show-password clearable/> prefix-icon="el-icon-lock" show-password/>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-input v-model="form.password2" prefix-icon="el-icon-lock" placeholder="确认密码" <el-input v-model="form.password2" clearable placeholder="确认密码"
show-password @keyup.enter.native="onRegist" clearable/> prefix-icon="el-icon-lock" show-password @keyup.enter.native="onRegist"/>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
@ -71,11 +71,11 @@
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="danger" @click="onRegist" :disabled="register_disable">注册</el-button> <el-button :disabled="register_disable" type="danger" @click="onRegist">注册</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="onLogin" plain>我是老用户,要登录</el-button> <el-button plain type="primary" @click="onLogin">我是老用户,要登录</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>

@ -1,8 +1,8 @@
<template> <template>
<el-container> <el-container>
<div style="margin: 10px 0 10px 0 ;position:absolute;right:20px;top:auto;"> <div style="margin: 10px 0 10px 0 ;position:absolute;right:20px;top:auto;">
<el-button round icon="el-icon-arrow-left" @click="$router.go(-1)"/> <el-button icon="el-icon-arrow-left" round @click="$router.go(-1)"/>
<el-button round icon="el-icon-s-home" @click="$router.push({name:'FirIndex'})"/> <el-button icon="el-icon-s-home" round @click="$router.push({name:'FirIndex'})"/>
</div> </div>
<el-header> <el-header>
@ -14,20 +14,20 @@
<el-main> <el-main>
<el-form ref="form" :model="form"> <el-form ref="form" :model="form">
<el-form-item> <el-form-item>
<el-input v-model="form.email" prefix-icon="el-icon-user" placeholder="邮箱或手机号" autofocus <el-input v-model="form.email" autofocus clearable placeholder="邮箱或手机号"
clearable/> prefix-icon="el-icon-user"/>
</el-form-item> </el-form-item>
<el-form-item style="height: 40px" v-if="captcha.captcha_image"> <el-form-item v-if="captcha.captcha_image" style="height: 40px">
<el-row style="height: 40px"> <el-row style="height: 40px">
<el-col :span="16"> <el-col :span="16">
<el-input placeholder="请输入验证码" v-model="form.authcode" maxlength="6" <el-input v-model="form.authcode" clearable maxlength="6"
@keyup.enter.native="onSubmit" clearable/> placeholder="请输入验证码" @keyup.enter.native="onSubmit"/>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-image <el-image
style="margin:0 4px;border-radius:4px;cursor:pointer;height: 40px"
:src="captcha.captcha_image" :src="captcha.captcha_image"
fit="contain" @click="get_auth_code"> fit="contain"
style="margin:0 4px;border-radius:4px;cursor:pointer;height: 40px" @click="get_auth_code">
</el-image> </el-image>
</el-col> </el-col>
</el-row> </el-row>
@ -36,12 +36,12 @@
<el-form-item> <el-form-item>
<el-row> <el-row>
<el-col :span="16"> <el-col :span="16">
<el-input v-model="form.seicode" prefix-icon="el-icon-mobile" <el-input v-model="form.seicode" clearable
placeholder="验证码" clearable/> placeholder="验证码" prefix-icon="el-icon-mobile"/>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-button type="info" @click="onGetCode" plain <el-button plain style="margin:0 4px;border-radius:4px;cursor:pointer;height: 40px" type="info"
style="margin:0 4px;border-radius:4px;cursor:pointer;height: 40px">获取验证码 @click="onGetCode">获取验证码
</el-button> </el-button>
</el-col> </el-col>
</el-row> </el-row>
@ -51,13 +51,13 @@
<div id="captcha" ref="captcha"></div> <div id="captcha" ref="captcha"></div>
</el-form-item> </el-form-item>
<el-form-item style="margin-top: 30px"> <el-form-item style="margin-top: 30px">
<el-button type="danger" :disabled="login_disable" @click="onReset">发送重置密码邮件</el-button> <el-button :disabled="login_disable" type="danger" @click="onReset">发送重置密码邮件</el-button>
</el-form-item> </el-form-item>
<el-form-item style="margin-top: 30px"> <el-form-item style="margin-top: 30px">
<el-button type="primary" @click="onLogin">我是老用户,要登录</el-button> <el-button type="primary" @click="onLogin">我是老用户,要登录</el-button>
</el-form-item> </el-form-item>
<el-form-item v-if="register_enable" style="margin-top: 30px"> <el-form-item v-if="register_enable" style="margin-top: 30px">
<el-button type="primary" @click="onRegister" plain>注册</el-button> <el-button plain type="primary" @click="onRegister">注册</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -72,7 +72,7 @@
<script> <script>
import {loginFun} from "@/restful"; import {loginFun} from "@/restful";
import {checkEmail, geetest, checkphone} from "@/utils"; import {checkEmail, checkphone, geetest} from "@/utils";
export default { export default {
name: "FirResetPwd", name: "FirResetPwd",

@ -1,15 +1,15 @@
<template> <template>
<div class="container"> <div class="container">
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0"> <meta content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0" name="viewport">
<div style="margin-top: -60px" v-if="report_flag" class="one-key-report-dialog dialog"> <div v-if="report_flag" class="one-key-report-dialog dialog" style="margin-top: -60px">
<a style="color: #3888fa" @click="report_flag=false">&lt;&nbsp;返回下载页</a> <a style="color: #3888fa" @click="report_flag=false">&lt;&nbsp;返回下载页</a>
<header style="text-align: center;height: 20px;margin-top: 10px">举报详情</header> <header style="text-align: center;height: 20px;margin-top: 10px">举报详情</header>
<div> <div>
<div class="content-row"> <div class="content-row">
<span>举报原因</span> <span>举报原因</span>
<select v-model="report_info.report_type" style="width: 100%" class="report_select"> <select v-model="report_info.report_type" class="report_select" style="width: 100%">
<option v-for="item in report_info_list" :key="item.id" :label="item.name" <option v-for="item in report_info_list" :key="item.id" :label="item.name"
:value="item.id">{{ item.name }} :value="item.id">{{ item.name }}
@ -43,8 +43,8 @@
</div> </div>
<div class="content-row"> <div class="content-row">
<div v-if="captcha.captcha_image" class="report_captcha"> <div v-if="captcha.captcha_image" class="report_captcha">
<input placeholder="请输入图片验证码" v-model="report_info.authcode" maxlength="6" type="text"/> <input v-model="report_info.authcode" maxlength="6" placeholder="请输入图片验证码" type="text"/>
<img :src="captcha.captcha_image" fit="contain" @click="get_auth_code"/> <img :src="captcha.captcha_image" @click="get_auth_code" alt="验证码"/>
</div> </div>
<div class="report_phone"> <div class="report_phone">
@ -75,7 +75,7 @@
<div class="list-wrapper" style="width: 300px;"> <div class="list-wrapper" style="width: 300px;">
<ul> <ul>
<li v-for="sign in signhelplist" :key="sign.url"> <li v-for="sign in signhelplist" :key="sign.url">
<img v-lazy="sign.url" :key="sign.url" alt=""/> <img :key="sign.url" v-lazy="sign.url" alt="" src=""/>
<p> <p>
安装引导<br>{{ sign.msg }} 安装引导<br>{{ sign.msg }}
</p> </p>
@ -88,12 +88,12 @@
<div ref="bg" class="bg"></div> <div ref="bg" class="bg"></div>
<div class="wechat_tip_content" v-if="(agent === 'wxandroid' || agent === 'wxapple') && !wrong"> <div v-if="(agent === 'wxandroid' || agent === 'wxapple') && !wrong" class="wechat_tip_content">
<div class="mask"> <div class="mask">
<div class="wechat_tip" v-show="agent === 'wxandroid'"> <div v-show="agent === 'wxandroid'" class="wechat_tip">
<i class="triangle-up"/>请点击右上角<br>选择"在浏览器打开" <i class="triangle-up"/>请点击右上角<br>选择"在浏览器打开"
</div> </div>
<div class="wechat_tip" v-show="agent === 'wxapple'"> <div v-show="agent === 'wxapple'" class="wechat_tip">
<i class="triangle-up"/>请点击右上角<br>选择"在Safari中打开" <i class="triangle-up"/>请点击右上角<br>选择"在Safari中打开"
</div> </div>
</div> </div>
@ -104,7 +104,7 @@
<!-- <span class="pattern right"><img src="@/assets/download_pattern_right.png"></span>--> <!-- <span class="pattern right"><img src="@/assets/download_pattern_right.png"></span>-->
</div> </div>
<div class="out-container " v-if="wxeasytypeflag && !report_flag"> <div v-if="wxeasytypeflag && !report_flag" class="out-container ">
<div v-show='mcurrentappinfo.release_id' class="main"> <div v-show='mcurrentappinfo.release_id' class="main">
<header> <header>
@ -114,13 +114,12 @@
<div class="icon-container wrapper"> <div class="icon-container wrapper">
<i class="i bg-path"/> <i class="i bg-path"/>
<span class="icon"><img <span class="icon"><img
:src="mcurrentappinfo.icon_url"></span> :src="mcurrentappinfo.icon_url" alt="">
<span id="qrcode" class="qrcode">
</span> </span>
<span id="qrcode" class="qrcode"></span>
</div> </div>
<p v-if="currentappinfo.issupersign" class="scan-tips wrapper icon-warp">超级签</p> <p v-if="currentappinfo.issupersign" class="scan-tips wrapper icon-warp">超级签</p>
<p v-else class="scan-tips wrapper icon-warp">{{ mcurrentappinfo.release_type|getiOStype <p v-else class="scan-tips wrapper icon-warp">{{mcurrentappinfo.release_type|getiOStype}}</p>
}}</p>
<h1 class="name wrapper"> <h1 class="name wrapper">
<span class="icon-warp" style="margin-left:0"> <span class="icon-warp" style="margin-left:0">
<i v-if="currentappinfo.type === 0 && agent !== ''" <i v-if="currentappinfo.type === 0 && agent !== ''"
@ -135,7 +134,7 @@
<p class="scan-tips" style="margin-left:170px">扫描二维码下载<br/>或用手机浏览器输入这个网址<span <p class="scan-tips" style="margin-left:170px">扫描二维码下载<br/>或用手机浏览器输入这个网址<span
class="text-black">{{ full_url }}</span></p> class="text-black">{{ full_url }}</span></p>
<div class="release-info" v-if="currentappinfo.description && agent === ''"> <div v-if="currentappinfo.description && agent === ''" class="release-info">
<p class="version"> <p class="version">
应用描述{{ currentappinfo.description }} 应用描述{{ currentappinfo.description }}
</p> </p>
@ -144,14 +143,14 @@
<p>{{ mcurrentappinfo.app_version }}Build {{ mcurrentappinfo.build_version }}- <p>{{ mcurrentappinfo.app_version }}Build {{ mcurrentappinfo.build_version }}-
{{ mcurrentappinfo.binary_size }}</p> {{ mcurrentappinfo.binary_size }}</p>
<p>更新于{{ mcurrentappinfo.created_time |formatTime }}</p> <p>更新于{{ mcurrentappinfo.created_time |formatTime }}</p>
<p class="version" v-if="mcurrentappinfo.changelog && agent === ''"> <p v-if="mcurrentappinfo.changelog && agent === ''" class="version">
更新日志{{ mcurrentappinfo.changelog }} 更新日志{{ mcurrentappinfo.changelog }}
</p> </p>
</div> </div>
<div id="actions" class="actions" v-if="agent !==''" <div v-if="agent !==''" id="actions" class="actions"
style="margin-top: 10%;margin-bottom: 20%"> style="margin-top: 10%;margin-bottom: 20%">
<button type="button" v-if="wrong">{{ msg }}</button> <button v-if="wrong" type="button">{{ msg }}</button>
<button v-else-if="agent === 'wxandroid' || agent === 'wxapple'"> <button v-else-if="agent === 'wxandroid' || agent === 'wxapple'">
不支持在微信内下载 不支持在微信内下载
@ -160,7 +159,7 @@
<div v-else style="margin-top: 10%;margin-bottom: 20%"> <div v-else style="margin-top: 10%;margin-bottom: 20%">
<div v-if="isdownload"> <div v-if="isdownload">
<div v-if="gomobile"> <div v-if="gomobile">
<button disabled="" class="loading" <button class="loading" disabled=""
style="min-width: 42px; width: 42px; padding: 21px 0; border-top-color: transparent; border-left-color: transparent;"> style="min-width: 42px; width: 42px; padding: 21px 0; border-top-color: transparent; border-left-color: transparent;">
</button> </button>
</div> </div>
@ -169,8 +168,7 @@
<div><p>正在安装请按 Home 键在桌面查看</p> <div><p>正在安装请按 Home 键在桌面查看</p>
<p v-if="!this.currentappinfo.issupersign && this.mcurrentappinfo.release_type!==1"> <p v-if="!this.currentappinfo.issupersign && this.mcurrentappinfo.release_type!==1">
<button @click="gomobileaction"> <button @click="gomobileaction">
<a type="primary" <a type="primary">
:underline="false">
安装完成后,需立即信任 安装完成后,需立即信任
</a> </a>
</button> </button>
@ -183,15 +181,15 @@
<div v-else> <div v-else>
<div v-if="currentappinfo.need_password" style="margin:0 auto; width:166px"> <div v-if="currentappinfo.need_password" style="margin:0 auto; width:166px">
<input class="passwd" placeholder="请输入密码" v-model="password"/> <input v-model="password" class="passwd" placeholder="请输入密码"/>
</div> </div>
<br v-if="currentappinfo.need_password"/> <br v-if="currentappinfo.need_password"/>
<button @click="download"> <button @click="download">
<a :underline="false"> 下载安装 </a> <a> 下载安装 </a>
</button> </button>
<a v-if="(currentappinfo.issupersign || mcurrentappinfo.release_type === 2) && !$route.query.udid" <a v-if="(currentappinfo.issupersign || mcurrentappinfo.release_type === 2) && !$route.query.udid"
@click="jiaocheng('open')" class="jiaocheng"
class="jiaocheng" style="color: white;font-size: 18px;">?</a> style="color: white;font-size: 18px;" @click="jiaocheng('open')">?</a>
</div> </div>
</div> </div>
@ -203,13 +201,13 @@
</div> </div>
</header> </header>
<div class="per-type-info section" v-if="currentappinfo.app_id && agent === ''"> <div v-if="currentappinfo.app_id && agent === ''" class="per-type-info section">
<div class="type" v-if="miscomboappinfo.release_id"> <div v-if="miscomboappinfo.release_id" class="type">
<div class="info"> <div class="info">
<p class="type-icon" v-if="iscomboappinfo.type === 0"> <p v-if="iscomboappinfo.type === 0" class="type-icon">
<i class="iconfont icon-android2"/> <i class="iconfont icon-android2"/>
</p> </p>
<p class="type-icon" v-else> <p v-else class="type-icon">
<i class="iconfont icon-ios"/> <i class="iconfont icon-ios"/>
</p> </p>
<p class="version"> <p class="version">
@ -221,7 +219,7 @@
<p class="version"> <p class="version">
更新于{{ miscomboappinfo.created_time |formatTime }} 更新于{{ miscomboappinfo.created_time |formatTime }}
</p> </p>
<p class="version" v-if="miscomboappinfo.changelog"> <p v-if="miscomboappinfo.changelog" class="version">
更新日志{{ miscomboappinfo.changelog }} 更新日志{{ miscomboappinfo.changelog }}
</p> </p>
</div> </div>
@ -229,10 +227,10 @@
<div class="type"> <div class="type">
<div class="info"> <div class="info">
<p class="type-icon" v-if="currentappinfo.type === 0"> <p v-if="currentappinfo.type === 0" class="type-icon">
<i class="iconfont icon-android2"/> <i class="iconfont icon-android2"/>
</p> </p>
<p class="type-icon" v-else> <p v-else class="type-icon">
<i class="iconfont icon-ios"/> <i class="iconfont icon-ios"/>
</p> </p>
<p class="version"> <p class="version">
@ -244,26 +242,26 @@
<p class="version"> <p class="version">
更新于{{ mcurrentappinfo.created_time|formatTime }} 更新于{{ mcurrentappinfo.created_time|formatTime }}
</p> </p>
<p class="version" v-if="mcurrentappinfo.changelog"> <p v-if="mcurrentappinfo.changelog" class="version">
更新日志{{ mcurrentappinfo.changelog }} 更新日志{{ mcurrentappinfo.changelog }}
</p> </p>
</div> </div>
</div> </div>
</div> </div>
<div class="per-type-info " v-else> <div v-else class="per-type-info ">
<div class="release-info"> <div class="release-info">
<div class="info" v-if="mcurrentappinfo.changelog"> <div v-if="mcurrentappinfo.changelog" class="info">
<h3>更新日志</h3> <h3>更新日志</h3>
{{ mcurrentappinfo.changelog }} {{ mcurrentappinfo.changelog }}
</div> </div>
<div class="info" v-if="currentappinfo.description"> <div v-if="currentappinfo.description" class="info">
<h3>应用描述</h3> <h3>应用描述</h3>
{{ currentappinfo.description }} {{ currentappinfo.description }}
</div> </div>
</div> </div>
</div> </div>
<div class="screenshots-section" v-if="imagelist && imagelist.length > 0" style="margin-top: 30%"> <div v-if="imagelist && imagelist.length > 0" class="screenshots-section" style="margin-top: 30%">
<br/> <br/>
<div v-if="miscomboappinfo.release_id"> <div v-if="miscomboappinfo.release_id">
<h3 v-if="currentappinfo.type === 0"> <h3 v-if="currentappinfo.type === 0">
@ -284,8 +282,8 @@
</div> </div>
<div class="footer" <div v-if="(currentappinfo.issupersign || mcurrentappinfo.release_type === 2) && $route.query.udid"
v-if="(currentappinfo.issupersign || mcurrentappinfo.release_type === 2) && $route.query.udid" class="footer"
style="margin-top: 5%"> style="margin-top: 5%">
<span class="el-tag" <span class="el-tag"
style="background-color: #f0f9eb;border-color: #e1f3d8;color: #67c23a;">UDID: </span> style="background-color: #f0f9eb;border-color: #e1f3d8;color: #67c23a;">UDID: </span>
@ -303,7 +301,7 @@
</div> </div>
<div v-if="agent!==''"> <div v-if="agent!==''">
<div v-if="ad_info.ad_uri" style="margin-bottom: 80px"/> <div v-if="ad_info.ad_uri" style="margin-bottom: 80px"/>
<div class="app_bottom_fixed" v-if="ad_info.ad_uri"> <div v-if="ad_info.ad_uri" class="app_bottom_fixed">
<div class="signhelp-title"> <div class="signhelp-title">
<span><a class="closead" @click="ad_info.ad_uri=undefined">关闭</a></span> <span><a class="closead" @click="ad_info.ad_uri=undefined">关闭</a></span>
</div> </div>
@ -338,8 +336,16 @@
<script> <script>
import QRCode from 'qrcodejs2' import QRCode from 'qrcodejs2'
import {getdownloadurl, getShortAppinfo, gettask, getAuthTokenFun, appReport} from '@/restful/download' import {
import {checkEmail, checkphone, geetest} from "@/restful/download"; appReport,
checkEmail,
checkphone,
geetest,
getAuthTokenFun,
getdownloadurl,
getShortAppinfo,
gettask
} from '@/restful/download'
export default { export default {
name: "ShortDownload", name: "ShortDownload",

@ -4,13 +4,13 @@
<div class="banner"> <div class="banner">
<div class="middle-wrapper"> <div class="middle-wrapper">
<div @click="defaulttimeline"> <div @click="defaulttimeline">
<img ref="icon_url" :src="icon_url" class="appicon" style="width:100px; height:100px" alt=""> <img ref="icon_url" :src="icon_url" alt="" class="appicon" style="width:100px; height:100px">
</div> </div>
<div class="badges"> <div class="badges">
<el-tooltip content="复制到剪切板" placement="top"> <el-tooltip content="复制到剪切板" placement="top">
<span class="bundleid short" <span v-clipboard:copy="short_full_url"
v-clipboard:copy="short_full_url"
v-clipboard:success="copy_success" v-clipboard:success="copy_success"
class="bundleid short"
>&nbsp;{{ short_full_url }}</span> >&nbsp;{{ short_full_url }}</span>
</el-tooltip> </el-tooltip>
<span>{{ master_release.release_type |getapptype }}</span> <span>{{ master_release.release_type |getapptype }}</span>
@ -19,38 +19,38 @@
</el-tooltip> </el-tooltip>
<span class="bundleid ng-binding">BundleID<b class="ng-binding"> <span class="bundleid ng-binding">BundleID<b class="ng-binding">
<el-tooltip content="复制到剪切板" placement="top"> <el-tooltip content="复制到剪切板" placement="top">
<span class="bundleid short" <span v-clipboard:copy="appinfos.bundle_id"
v-clipboard:copy="appinfos.bundle_id"
v-clipboard:success="copy_success" v-clipboard:success="copy_success"
class="bundleid short"
>&nbsp;{{ appinfos.bundle_id }}</span> >&nbsp;{{ appinfos.bundle_id }}</span>
</el-tooltip> </el-tooltip>
</b></span> </b></span>
<span class="version ng-scope">{{ master_release.minimum_os_version }}&nbsp; 或者高版本</span> <span class="version ng-scope">{{ master_release.minimum_os_version }}&nbsp; 或者高版本</span>
<span class="short ng-scope" v-if="appinfos.issupersign">超级签</span> <span v-if="appinfos.issupersign" class="short ng-scope">超级签</span>
<el-popover <el-popover
v-if="$store.state.userinfo&&$store.state.userinfo.role >1 &&$store.state.userinfo.qrcode_domain_name.length>3 " v-if="$store.state.userinfo&&$store.state.userinfo.role >1 &&$store.state.userinfo.qrcode_domain_name.length>3 "
placement="right" placement="right"
width="288"> width="288">
<div style="text-align: center; margin: 0"> <div style="text-align: center; margin: 0">
<vue-qr :margin="qrinfo.margin" <vue-qr ref="qr"
:logoSrc="icon_url" :logoScale="qrinfo.logoScale" :correctLevel="qrinfo.correctLevel" :logoCornerRadius="qrinfo.logoCornerRadius"
:logoCornerRadius="qrinfo.logoCornerRadius" :logoScale="qrinfo.logoScale"
:correctLevel="qrinfo.correctLevel" :logoSrc="icon_url"
:text="short_url()" :size="266" :margin="qrinfo.margin" :size="266"
ref="qr"> :text="short_url()">
</vue-qr> </vue-qr>
<el-button type="primary" size="small" @click="save_qr()">保存本地</el-button> <el-button size="small" type="primary" @click="save_qr()">保存本地</el-button>
</div> </div>
<span class="short ng-scope" slot="reference">下载码</span> <span slot="reference" class="short ng-scope">下载码</span>
</el-popover> </el-popover>
</div> </div>
<div class="actions"> <div class="actions">
<el-button v-if="appinfos.status!==1" type="danger">该应用被封禁,请联系管理员</el-button> <el-button v-if="appinfos.status!==1" type="danger">该应用被封禁,请联系管理员</el-button>
<el-button v-else @click="appDownload" class="download" icon="el-icon-view"> <el-button v-else class="download" icon="el-icon-view" @click="appDownload">
预览 预览
</el-button> </el-button>
</div> </div>
@ -58,27 +58,27 @@
<div class="tabs-container"> <div class="tabs-container">
<el-row :gutter="1"> <el-row :gutter="1">
<el-col :span="3"> <el-col :span="3">
<a class="" ref="baseinfo" @click="baseinfo"><i class="el-icon-document"/>基本信息</a> <a ref="baseinfo" class="" @click="baseinfo"><i class="el-icon-document"/>基本信息</a>
</el-col> </el-col>
<el-col :span="3"> <el-col :span="3">
<a class="" ref="security" @click="security"><i class="el-icon-set-up"/>应用管理</a> <a ref="security" class="" @click="security"><i class="el-icon-set-up"/>应用管理</a>
</el-col> </el-col>
<el-col :span="3"> <el-col :span="3">
<a class="" ref="combo" @click="combo"><i class="el-icon-copy-document" <a ref="combo" class="" @click="combo"><i class="el-icon-copy-document"
style="transform:rotateX(180deg);"/>应用合并</a> style="transform:rotateX(180deg);"/>应用合并</a>
</el-col> </el-col>
<el-col :span="3" <el-col v-if="appinfos.type===1 || appinfos.issupersign "
v-if="appinfos.type===1 || appinfos.issupersign "> :span="3">
<a class="" ref="supersign" @click="supersign"><i <a ref="supersign" class="" @click="supersign"><i
class="el-icon-ship"/>超级签名</a> class="el-icon-ship"/>超级签名</a>
</el-col> </el-col>
<el-col :span="3" <el-col v-if="(appinfos.type===1 && master_release.release_type ===1) || appinfos.issupersign "
v-if="(appinfos.type===1 && master_release.release_type ===1) || appinfos.issupersign "> :span="3">
<a class="" ref="devices" @click="devices"><i class="el-icon-mobile-phone"/>设备列表</a> <a ref="devices" class="" @click="devices"><i class="el-icon-mobile-phone"/>设备列表</a>
</el-col> </el-col>
</el-row> </el-row>
@ -90,9 +90,9 @@
<div class="block" style="margin-top: -46px;color: #d5f9f9"> <div class="block" style="margin-top: -46px;color: #d5f9f9">
<el-slider <el-slider
v-model="$store.state.appInfoIndex[0]" v-model="$store.state.appInfoIndex[0]"
range :max="100"
:show-tooltip="false" :show-tooltip="false"
:max="100"> range>
</el-slider> </el-slider>
</div> </div>
<el-container style="padding-top: 20px;max-width: 96%"> <el-container style="padding-top: 20px;max-width: 96%">

@ -7,8 +7,8 @@
<el-input v-model="currentapp.app_id" :disabled="true"/> <el-input v-model="currentapp.app_id" :disabled="true"/>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-button type="danger" plain @click="delApp" <el-button plain style="margin:0 8px;border-radius:4px;cursor:pointer;height: 40px" type="danger"
style="margin:0 8px;border-radius:4px;cursor:pointer;height: 40px">删除应用 @click="delApp">删除应用
</el-button> </el-button>
</el-col> </el-col>
</el-row> </el-row>
@ -27,25 +27,25 @@
<el-form-item label="应用图标" style="width: 56%"> <el-form-item label="应用图标" style="width: 56%">
<el-upload <el-upload
class="avatar-uploader" :before-upload="upload_app_icon"
action="#"
:show-file-list="false" :show-file-list="false"
accept=".png , .jpg , .jpeg" accept=".png , .jpg , .jpeg"
:before-upload="upload_app_icon"> action="#"
class="avatar-uploader">
<img v-if="currentapp.icon_url" :src="currentapp.icon_url" <img v-if="currentapp.icon_url" :src="currentapp.icon_url"
class="avatar" alt=""> alt="" class="avatar">
<i v-else class="el-icon-plus avatar-uploader-icon"/> <i v-else class="el-icon-plus avatar-uploader-icon"/>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
<el-form-item label="应用描述" style="width: 66%"> <el-form-item label="应用描述" style="width: 66%">
<el-input type="textarea" v-model="currentapp.description" <el-input v-model="currentapp.description" :autosize="{ minRows: 8, maxRows: 18}"
:autosize="{ minRows: 8, maxRows: 18}"/> type="textarea"/>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-row> <el-row>
<el-col :span="15"> <el-col :span="15">
<el-button type="primary" plain @click="saveappinfo('save')" size="medium" <el-button plain size="medium" style="width: 160px;height: 50px;font-size: large;float: right" type="primary"
style="width: 160px;height: 50px;font-size: large;float: right">保存信息 @click="saveappinfo('save')">保存信息
</el-button> </el-button>
</el-col> </el-col>
</el-row> </el-row>
@ -54,26 +54,26 @@
<el-form-item label="应用截图" style="width: 100%"> <el-form-item label="应用截图" style="width: 100%">
<div class="appdownload"> <div class="appdownload">
<el-tooltip content="点击删除该应用截图" v-for="(screen) in currentapp.screenshots" :key="screen.id" <el-tooltip v-for="(screen) in currentapp.screenshots" :key="screen.id" content="点击删除该应用截图"
placement="top" effect="light"> effect="light" placement="top">
<el-image <el-image
:src="screen.url"
alt=""
class="screen-img" class="screen-img"
fit="scale-down" fit="scale-down" @click="delscreen(screen.id)">
@click="delscreen(screen.id)" <div slot="error" class="image-slot" style="text-align: center;margin-top: 80%"
:src="screen.url" alt=""> @click="delscreen(screen.id)">
<div slot="error" class="image-slot" @click="delscreen(screen.id)"
style="text-align: center;margin-top: 80%">
<i class="el-icon-picture-outline"> 加载失败</i> <i class="el-icon-picture-outline"> 加载失败</i>
</div> </div>
</el-image> </el-image>
</el-tooltip> </el-tooltip>
<div class="screen-img" <div v-if="currentapp.screenshots && currentapp.screenshots.length < 5"
v-if="currentapp.screenshots && currentapp.screenshots.length < 5"> class="screen-img">
<el-upload <el-upload
drag :before-upload="upload_app_screen"
action="#"
accept=".png , .jpg , .jpeg" accept=".png , .jpg , .jpeg"
:before-upload="upload_app_screen"> action="#"
drag>
<i class="el-icon-upload"/> <i class="el-icon-upload"/>
</el-upload> </el-upload>
</div> </div>

@ -1,7 +1,7 @@
<template> <template>
<div class="apps-app-combo page-tabcontent "> <div class="apps-app-combo page-tabcontent ">
<div class="middle-wrapper"> <div class="middle-wrapper">
<div class="request-wrapper" v-if="has_combo "> <div v-if="has_combo " class="request-wrapper">
<p class="lead text-center ng-scope">已经与 <b>{{ has_combo.name }}</b> 合并</p> <p class="lead text-center ng-scope">已经与 <b>{{ has_combo.name }}</b> 合并</p>
<table> <table>
<tr> <tr>
@ -12,19 +12,19 @@
<tr> <tr>
<td> <td>
<div class="icon"><img v-if="cmaster_release" :src="cmaster_release.icon_url" <div class="icon"><img v-if="cmaster_release" :src="cmaster_release.icon_url"
class="ng-isolate-scope" alt=""> alt="" class="ng-isolate-scope">
</div> </div>
</td> </td>
<td><i class="icon-combo"/></td> <td><i class="icon-combo"/></td>
<td> <td>
<div class="icon"><img v-if="hmaster_release" :src="hmaster_release.icon_url" <div class="icon"><img v-if="hmaster_release" :src="hmaster_release.icon_url"
class="ng-isolate-scope" alt=""> alt="" class="ng-isolate-scope">
</div> </div>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="actions" colspan="3"> <td class="actions" colspan="3">
<el-button @click="each_confirm" round>解除合并</el-button> <el-button round @click="each_confirm">解除合并</el-button>
</td> </td>
</tr> </tr>
</table> </table>
@ -41,10 +41,10 @@
<div class="apps"> <div class="apps">
<el-link v-if="comboapplists.length ===0 " :underline="false" type="danger">暂无可以合并的应用 <el-link v-if="comboapplists.length ===0 " :underline="false" type="danger">暂无可以合并的应用
</el-link> </el-link>
<div :key="comboapp.app_id" @click="each_add(comboapp.app_id)" class="app ng-scope" <div v-for="comboapp in comboapplists" :key="comboapp.app_id" class="app ng-scope"
v-for="comboapp in comboapplists"> @click="each_add(comboapp.app_id)">
<div class="icon"> <div class="icon">
<img :src="comboapp.master_release|geticon_url" class="ng-isolate-scope" alt=""> <img :src="comboapp.master_release|geticon_url" alt="" class="ng-isolate-scope">
</div> </div>
<p class="ng-binding">{{ comboapp.name }}</p></div> <p class="ng-binding">{{ comboapp.name }}</p></div>
</div> </div>
@ -56,11 +56,11 @@
</p> </p>
<div class="form-group"> <div class="form-group">
<el-input <el-input
@click="searchapps" v-model="searchKey"
clearable clearable
placeholder="输入短链接或者名字" placeholder="输入短链接或者名字"
prefix-icon="el-icon-search" prefix-icon="el-icon-search"
v-model="searchKey" @click="searchapps"
/> />
</div> </div>
</div> </div>

@ -1,6 +1,6 @@
<template> <template>
<div style="margin-top: 20px;width: 90%;margin-left: 8%"> <div style="margin-top: 20px;width: 90%;margin-left: 8%">
<el-link type="primary" v-if="this.currentapp.issupersign" style="margin-bottom: 30px;font-size: x-large" <el-link v-if="this.currentapp.issupersign" style="margin-bottom: 30px;font-size: x-large" type="primary"
@click="$router.push({name:'FirSuperSignBase',params:{act:'useddevices'},query:{bundleid: currentapp.bundle_id}})"> @click="$router.push({name:'FirSuperSignBase',params:{act:'useddevices'},query:{bundleid: currentapp.bundle_id}})">
该应用已经开启超级签请点击查看最新设备列表 该应用已经开启超级签请点击查看最新设备列表
</el-link> </el-link>
@ -9,17 +9,17 @@
:data="udidlists" :data="udidlists"
stripe stripe
style="width: 100%"> style="width: 100%">
<el-table-column width="180" <el-table-column label="设备型号"
prop="model" prop="model"
label="设备型号"> width="180">
</el-table-column> </el-table-column>
<el-table-column width="180" <el-table-column label="系统版本"
prop="version" prop="version"
label="系统版本"> width="180">
</el-table-column> </el-table-column>
<el-table-column width="380" <el-table-column label="UDID"
prop="udid" prop="udid"
label="UDID"> width="380">
</el-table-column> </el-table-column>
</el-table> </el-table>

@ -1,31 +1,31 @@
<template> <template>
<div style="margin-top: 20px;width: 66%;margin-left: 8%"> <div style="margin-top: 20px;width: 66%;margin-left: 8%">
<el-dialog <el-dialog
title="绑定应用专属下载页域名"
:close-on-click-modal="false" :close-on-click-modal="false"
:close-on-press-escape="false" :close-on-press-escape="false"
:visible.sync="bind_domain_sure" :visible.sync="bind_domain_sure"
title="绑定应用专属下载页域名"
width="666px"> width="666px">
<bind-domain v-if="bind_domain_sure" transitionName="bind-app-domain" :app_id="this.currentapp.app_id" <bind-domain v-if="bind_domain_sure" :app_id="this.currentapp.app_id" :domain_type="2"
:domain_type="2"/> transitionName="bind-app-domain"/>
</el-dialog> </el-dialog>
<el-form label-width="80px"> <el-form label-width="80px">
<el-form-item label-width="200px" label="访问密码"> <el-form-item label="访问密码" label-width="200px">
<el-tooltip placement="top"> <el-tooltip placement="top">
<div slot="content"> <div slot="content">
{{ passwordtip.msg }}<br> {{ passwordtip.msg }}<br>
<div v-if="passwordtip.val === 'on'"> <div v-if="passwordtip.val === 'on'">
<el-link icon="el-icon-edit" :underline="false" @click="setaccesspassword">修改</el-link> <el-link :underline="false" icon="el-icon-edit" @click="setaccesspassword">修改</el-link>
</div> </div>
</div> </div>
<el-switch <el-switch
v-model="passwordtip.val" v-model="passwordtip.val"
@change="showpasswordevent"
active-color="#13ce66" active-color="#13ce66"
inactive-color="#ff4949"
active-value="on" active-value="on"
inactive-value="off"> inactive-color="#ff4949"
inactive-value="off"
@change="showpasswordevent">
</el-switch> </el-switch>
</el-tooltip> </el-tooltip>
@ -33,54 +33,54 @@
</el-form-item> </el-form-item>
<el-form-item label-width="200px" label="下载页显示"> <el-form-item label="下载页显示" label-width="200px">
<el-tooltip :content="downtip.msg" placement="top"> <el-tooltip :content="downtip.msg" placement="top">
<el-switch <el-switch
@change="showdownloadevent"
v-model="downtip.val" v-model="downtip.val"
active-color="#13ce66" active-color="#13ce66"
inactive-color="#ff4949"
active-value="on" active-value="on"
inactive-value="off"> inactive-color="#ff4949"
inactive-value="off"
@change="showdownloadevent">
</el-switch> </el-switch>
</el-tooltip> </el-tooltip>
<el-link :underline="false" style="margin-left: 20px">默认开启关闭之后用户无法通过短连接访问下载该应用</el-link> <el-link :underline="false" style="margin-left: 20px">默认开启关闭之后用户无法通过短连接访问下载该应用</el-link>
</el-form-item> </el-form-item>
<el-form-item label-width="200px" label="应用专属域名"> <el-form-item label="应用专属域名" label-width="200px">
<el-input :value="currentapp.domain_name" clearable <el-input :placeholder="defualt_dtitle" :value="currentapp.domain_name"
style="width: 60%;margin-right: 10px" prefix-icon="el-icon-download" clearable prefix-icon="el-icon-download"
:placeholder="defualt_dtitle"/> style="width: 60%;margin-right: 10px"/>
<el-button @click="bind_domain_sure=true">设置域名</el-button> <el-button @click="bind_domain_sure=true">设置域名</el-button>
</el-form-item> </el-form-item>
<el-form-item label-width="200px" label="微信内访问简易模式"> <el-form-item label="微信内访问简易模式" label-width="200px">
<el-tooltip :content="wxeasytypetip.msg" placement="top"> <el-tooltip :content="wxeasytypetip.msg" placement="top">
<el-switch <el-switch
:disabled="wxeasy_disable"
@change="wxeasytypeevent"
v-model="wxeasytypetip.val" v-model="wxeasytypetip.val"
:disabled="wxeasy_disable"
active-color="#13ce66" active-color="#13ce66"
inactive-color="#ff4949"
active-value="on" active-value="on"
inactive-value="off"> inactive-color="#ff4949"
inactive-value="off"
@change="wxeasytypeevent">
</el-switch> </el-switch>
</el-tooltip> </el-tooltip>
<el-link :underline="false" style="margin-left: 20px">默认开启可以最大限度避免微信内举报封停如果绑定域名可以关闭</el-link> <el-link :underline="false" style="margin-left: 20px">默认开启可以最大限度避免微信内举报封停如果绑定域名可以关闭</el-link>
</el-form-item> </el-form-item>
<el-form-item label-width="200px" label="微信内访问跳转第三方平台"> <el-form-item label="微信内访问跳转第三方平台" label-width="200px">
<el-tooltip :content="wxredirecttip.msg" placement="top"> <el-tooltip :content="wxredirecttip.msg" placement="top">
<el-switch <el-switch
@change="wxredirectevent"
v-model="wxredirecttip.val" v-model="wxredirecttip.val"
active-color="#13ce66" active-color="#13ce66"
inactive-color="#ff4949"
active-value="on" active-value="on"
inactive-value="off"> inactive-color="#ff4949"
inactive-value="off"
@change="wxredirectevent">
</el-switch> </el-switch>
</el-tooltip> </el-tooltip>
<el-link :underline="false" style="margin-left: 20px">默认开启如果配置第三方平台在微信内访问直接跳转</el-link> <el-link :underline="false" style="margin-left: 20px">默认开启如果配置第三方平台在微信内访问直接跳转</el-link>

@ -2,43 +2,43 @@
<div style="margin-top: 20px;width: 66%;margin-left: 8%"> <div style="margin-top: 20px;width: 66%;margin-left: 8%">
<el-form label-width="80px" v-if="currentapp.type === 1 && $store.state.userinfo.supersign_active"> <el-form v-if="currentapp.type === 1 && $store.state.userinfo.supersign_active" label-width="80px">
<el-form-item label-width="200px" <el-form-item label="超级签名"
label="超级签名"> label-width="200px">
<el-tooltip :content="supersign.msg" placement="top"> <el-tooltip :content="supersign.msg" placement="top">
<el-switch <el-switch
@change="supersignevent"
v-model="supersign.val" v-model="supersign.val"
active-color="#13ce66" active-color="#13ce66"
inactive-color="#ff4949"
active-value="on" active-value="on"
inactive-value="off"> inactive-color="#ff4949"
inactive-value="off"
@change="supersignevent">
</el-switch> </el-switch>
</el-tooltip> </el-tooltip>
<el-button @click="clean_app" v-if="!currentapp.issupersign && currentapp.count !== 0" <el-button v-if="!currentapp.issupersign && currentapp.count !== 0" plain
style="margin-left: 20px" size="small" type="info" plain>清理该应用脏数据 size="small" style="margin-left: 20px" type="info" @click="clean_app">清理该应用脏数据
</el-button> </el-button>
<el-link v-else :underline="false" style="margin-left: 20px">超级签名iOS专用需要配置好苹果开发者账户方可开启</el-link> <el-link v-else :underline="false" style="margin-left: 20px">超级签名iOS专用需要配置好苹果开发者账户方可开启</el-link>
</el-form-item> </el-form-item>
<el-form-item label-width="200px" label="签名限额"> <el-form-item label="签名限额" label-width="200px">
<el-tooltip content="本应用签名使用额度,超过该额度,新设备将无法安装本应用。0代表不限额" placement="top"> <el-tooltip content="本应用签名使用额度,超过该额度,新设备将无法安装本应用。0代表不限额" placement="top">
<el-input-number v-model="currentapp.supersign_limit_number" :disabled="supersign_disable" :min="0" <el-input-number v-model="currentapp.supersign_limit_number" :disabled="supersign_disable" :min="0"
style="width: 40%;margin-right: 10px" label="签名限额"/> label="签名限额" style="width: 40%;margin-right: 10px"/>
</el-tooltip> </el-tooltip>
<el-button @click="saveappinfo({supersign_limit_number:currentapp.supersign_limit_number})" <el-button :disabled="supersign_disable"
:disabled="supersign_disable" @click="saveappinfo({supersign_limit_number:currentapp.supersign_limit_number})"
>保存 >保存
</el-button> </el-button>
<el-tooltip content="点击查看使用详情" placement="top"> <el-tooltip content="点击查看使用详情" placement="top">
<el-link :underline="false" type="primary" style="margin-left: 20px" <el-link :underline="false" style="margin-left: 20px" type="primary"
@click="$router.push({name:'FirSuperSignBase',params:{act:'useddevices'},query:{bundleid: currentapp.bundle_id}})"> @click="$router.push({name:'FirSuperSignBase',params:{act:'useddevices'},query:{bundleid: currentapp.bundle_id}})">
已经使用 <a style="color: #dd6161;font-size: larger">{{ currentapp.supersign_used_number }}</a> 已经使用 <a style="color: #dd6161;font-size: larger">{{ currentapp.supersign_used_number }}</a>
个设备额度 个设备额度
@ -47,36 +47,36 @@
</el-form-item> </el-form-item>
<el-form-item label-width="200px" label="签名类型"> <el-form-item label="签名类型" label-width="200px">
<el-select v-model="currentapp.supersign_type" placeholder="特殊签名权限" <el-select v-model="currentapp.supersign_type" :disabled="supersign_disable"
style="width: 60%;margin-right: 10px" :disabled="supersign_disable"> placeholder="特殊签名权限" style="width: 60%;margin-right: 10px">
<el-option v-for="st in sign_type_list" :key="st.id" :label="st.name" <el-option v-for="st in sign_type_list" :key="st.id" :label="st.name"
:value="st.id"/> :value="st.id"/>
</el-select> </el-select>
<el-button @click="saveappinfo({supersign_type:currentapp.supersign_type})" <el-button :disabled="supersign_disable"
:disabled="supersign_disable" @click="saveappinfo({supersign_type:currentapp.supersign_type})"
>保存 >保存
</el-button> </el-button>
</el-form-item> </el-form-item>
<el-form-item label-width="200px" label="自定义BundleID"> <el-form-item label="自定义BundleID" label-width="200px">
<el-tooltip content="新的BundleID可能会导致推送等服务失效,请了解之后进行修改" placement="top"> <el-tooltip content="新的BundleID可能会导致推送等服务失效,请了解之后进行修改" placement="top">
<el-input v-model="currentapp.new_bundle_id" clearable :disabled="supersign_disable" <el-input v-model="currentapp.new_bundle_id" :disabled="supersign_disable" :placeholder="defualt_dtitle"
style="width: 60%;margin-right: 10px" prefix-icon="el-icon-s-data" clearable prefix-icon="el-icon-s-data"
:placeholder="defualt_dtitle"/> style="width: 60%;margin-right: 10px"/>
</el-tooltip> </el-tooltip>
<el-button @click="saveappinfo({new_bundle_id:currentapp.new_bundle_id})" :disabled="supersign_disable" <el-button :disabled="supersign_disable" @click="saveappinfo({new_bundle_id:currentapp.new_bundle_id})"
>保存 >保存
</el-button> </el-button>
</el-form-item> </el-form-item>
<el-form-item label-width="200px" label="自定义应用名称"> <el-form-item label="自定义应用名称" label-width="200px">
<el-input v-model="currentapp.new_bundle_name" clearable :disabled="supersign_disable" <el-input v-model="currentapp.new_bundle_name" :disabled="supersign_disable" :placeholder="defualt_dtitle_name"
style="width: 60%;margin-right: 10px" prefix-icon="el-icon-s-data" clearable prefix-icon="el-icon-s-data"
:placeholder="defualt_dtitle_name"/> style="width: 60%;margin-right: 10px"/>
<el-button @click="saveappinfo({new_bundle_name:currentapp.new_bundle_name})" <el-button :disabled="supersign_disable"
:disabled="supersign_disable" @click="saveappinfo({new_bundle_name:currentapp.new_bundle_name})"
>保存 >保存
</el-button> </el-button>
</el-form-item> </el-form-item>

@ -1,32 +1,33 @@
<template> <template>
<el-timeline> <el-timeline>
<el-timeline-item v-for="(app) in release_apps" :key="app.release_id" <el-timeline-item v-for="(app) in release_apps" :key="app.release_id"
:timestamp="app.created_time|formatdatatimeline"
:color="app.master_color" :color="app.master_color"
:timestamp="app.created_time|formatdatatimeline"
placement="top"> placement="top">
<el-card> <el-card>
<div class="directive-view-release"> <div class="directive-view-release">
<i class="el-icon-cloudy" v-if="! app.is_master"/> <i v-if="! app.is_master" class="el-icon-cloudy"/>
<i class="el-icon-cloudy" style="background-color: rgb(139,195,248)" v-else/> <i v-else class="el-icon-cloudy" style="background-color: rgb(139,195,248)"/>
<b class="ng-binding">{{ app.app_version }} (Build {{ app.build_version }})</b> <b class="ng-binding">{{ app.app_version }} (Build {{ app.build_version }})</b>
<div class="release-metainfo ng-hide" <div v-if="app.release_type === 0"
v-if="app.release_type === 0"> class="release-metainfo ng-hide">
<small> <small>
<i class="icon-calendar"/> <i class="icon-calendar"/>
<span class="el-icon-date">&nbsp;{{ app.created_time|formattimeline }}</span> <span class="el-icon-date">&nbsp;{{ app.created_time|formattimeline }}</span>
</small> </small>
</div> </div>
<div class="release-metainfo" v-else> <div v-else class="release-metainfo">
<small> <small>
<i class="icon-calendar"/> <i class="icon-calendar"/>
<span class="el-icon-date">&nbsp;{{ app.created_time|formattimeline }}</span> <span class="el-icon-date">&nbsp;{{ app.created_time|formattimeline }}</span>
</small> &nbsp;&nbsp;·&nbsp;&nbsp; </small> &nbsp;&nbsp;·&nbsp;&nbsp;
<small>{{ app.release_type|getiOStype }}</small> <small>{{ app.release_type|getiOStype }}</small>
<small v-if="app.distribution_name" style="margin-left: 5px">&nbsp;&nbsp;·&nbsp;{{app.distribution_name}}</small> <small v-if="app.distribution_name"
style="margin-left: 5px">&nbsp;&nbsp;·&nbsp;{{ app.distribution_name }}</small>
</div> </div>
<p>{{ app.changelog }}</p> <p>{{ app.changelog }}</p>
@ -36,7 +37,7 @@
placeholder="更新日志"> placeholder="更新日志">
</textarea> </textarea>
</label> </label>
<div class="release-actions editing " v-if="app.editing.changelog"> <div v-if="app.editing.changelog" class="release-actions editing ">
<button class="btn-cancel" @click="endEdit(app,'changelog')"><span <button class="btn-cancel" @click="endEdit(app,'changelog')"><span
>取消</span></button> >取消</span></button>
<button class="btn-save" @click="updateChangelog(app,'changelog')"><span <button class="btn-save" @click="updateChangelog(app,'changelog')"><span
@ -44,20 +45,20 @@
</div> </div>
<el-input v-if="app.editing.binary_url" <el-input v-if="app.editing.binary_url"
v-model="app.binary_url" v-model="app.binary_url"
placeholder="下载地址,默认本服务器,填写第三方可以 自动跳转到第三方平台" clearable> clearable placeholder="下载地址,默认本服务器,填写第三方可以 自动跳转到第三方平台">
</el-input> </el-input>
<div class="release-actions editing " v-if="app.editing.binary_url" style="margin-top: 10px"> <div v-if="app.editing.binary_url" class="release-actions editing " style="margin-top: 10px">
<button class="btn-cancel" @click="endEdit(app,'binary_url')"><span <button class="btn-cancel" @click="endEdit(app,'binary_url')"><span
>取消</span></button> >取消</span></button>
<button class="btn-save" @click="updateChangelog(app,'binary_url')"><span <button class="btn-save" @click="updateChangelog(app,'binary_url')"><span
>保存</span></button> >保存</span></button>
</div> </div>
<div class="release-actions" v-show="!app.editing.changelog && !app.editing.binary_url "> <div v-show="!app.editing.changelog && !app.editing.binary_url " class="release-actions">
<el-tooltip class="tooltip-top" content="编辑更新日志" placement="top"> <el-tooltip class="tooltip-top" content="编辑更新日志" placement="top">
<el-button @click="startEdit(app,'changelog')" <el-button class="tooltip-top "
tooltip="编辑更新日志" tooltip="编辑更新日志"
class="tooltip-top "> @click="startEdit(app,'changelog')">
<i class="el-icon-edit"/> <i class="el-icon-edit"/>
</el-button> </el-button>
</el-tooltip> </el-tooltip>
@ -69,7 +70,7 @@
</el-button> </el-button>
</el-tooltip> </el-tooltip>
<el-tooltip class="tooltip-top" :content="app.binary_url|downcontent" placement="top"> <el-tooltip :content="app.binary_url|downcontent" class="tooltip-top" placement="top">
<el-button class="tooltip-top" tooltip="修改下载地址" <el-button class="tooltip-top" tooltip="修改下载地址"
@click="startEdit(app,'binary_url')"><i class="el-icon-link"/> <span>下载地址</span> @click="startEdit(app,'binary_url')"><i class="el-icon-link"/> <span>下载地址</span>

@ -2,32 +2,34 @@
<el-container> <el-container>
<el-header style="height: 100px"> <el-header style="height: 100px">
<el-dialog <el-dialog
:visible.sync="show_buy_download_times"
width="780px"
:close-on-click-modal="false" :close-on-click-modal="false"
:close-on-press-escape="false" :close-on-press-escape="false"
center> :visible.sync="show_buy_download_times"
center
width="780px">
<span slot="title" style="color: #313639;font-size: 28px; margin-bottom: 14px;"> <span slot="title" style="color: #313639;font-size: 28px; margin-bottom: 14px;">
购买下载次数包 购买下载次数包
</span> </span>
<div class="packages" style="max-width: 768px;"> <div class="packages" style="max-width: 768px;">
<div class="package-item" v-for="(packages,index) in data_package_prices" :key="packages.name"> <div v-for="(packages,index) in data_package_prices" :key="packages.name" class="package-item">
<div class="arraw-badge" v-if="index===1"><span></span> <span class="arraw"/></div> <div v-if="index===1" class="arraw-badge"><span></span> <span class="arraw"/></div>
<div class="package-content"> <div class="package-content">
<div class="money ">{{ packages.price / 100 }}</div> <div class="money ">{{ packages.price / 100 }}</div>
<div class="times ">{{ packages.package_size |formatMoney }}</div> <div class="times ">{{ packages.package_size |formatMoney }}</div>
<div class="unit" style="font-size: 14px;color: #869096">累计下载次数</div> <div class="unit" style="font-size: 14px;color: #869096">累计下载次数</div>
<div class="text-gift" v-if="packages.download_count_gift">{ <span>{{ packages.download_count_gift }}</span> <div v-if="packages.download_count_gift" class="text-gift">{ <span>{{
packages.download_count_gift
}}</span>
} }
</div> </div>
</div> </div>
<div class="package-actions"> <div class="package-actions">
<el-radio v-model="default_price_radio" :label="packages.name" border> <el-radio v-model="default_price_radio" :label="packages.name" border>
<span>此套餐</span> <span>此套餐</span>
<span class="pay-current" v-if="default_price_radio === packages.name" <span v-if="default_price_radio === packages.name" :style="{background:`url(${pay_image.selected}) right bottom/100% no-repeat`}"
:style="{background:`url(${pay_image.selected}) right bottom/100% no-repeat`}"/> class="pay-current"/>
</el-radio> </el-radio>
</div> </div>
@ -36,23 +38,23 @@
</div> </div>
<div> <div>
<div style="margin-top: 30px;text-align: center"> <div style="margin-top: 30px;text-align: center">
<el-radio v-model="default_pay_radio" :label="pay.name" border v-for="pay in pay_choices" <el-radio v-for="pay in pay_choices" :key="pay.name" v-model="default_pay_radio" :label="pay.name"
:key="pay.name"> border>
<span style="color: white">xxxxxxxxxxxxxx</span> <span style="color: white">xxxxxxxxxxxxxx</span>
<span style="width: 160px; height: 45px"> <span style="width: 160px; height: 45px">
<span class="pay-icon alipay" :style="{backgroundImage:`url(${pay_image.ali})`}" <span v-if="pay.type === 'ALI'" :style="{backgroundImage:`url(${pay_image.ali})`}"
v-if="pay.type === 'ALI'"/> class="pay-icon alipay"/>
<span class="pay-icon" :style="{backgroundImage:`url(${pay_image.wx})`}" <span v-if="pay.type === 'WX'" :style="{backgroundImage:`url(${pay_image.wx})`}"
v-if="pay.type === 'WX'"/> class="pay-icon"/>
<span class="pay-current" v-if="default_pay_radio === pay.name" <span v-if="default_pay_radio === pay.name" :style="{background:`url(${pay_image.selected}) right bottom/100% no-repeat` }"
:style="{background:`url(${pay_image.selected}) right bottom/100% no-repeat` }"/> class="pay-current"/>
</span> </span>
</el-radio> </el-radio>
</div> </div>
<div style="text-align: center"> <div style="text-align: center">
<el-button type="primary" :disabled="buy_button_disable" @click="buy" <el-button :disabled="buy_button_disable" style="margin-top:30px;width: 166px" type="primary"
style="margin-top:30px;width: 166px"> 立即支付 @click="buy"> 立即支付
</el-button> </el-button>
</div> </div>
@ -78,37 +80,37 @@
</el-dialog> </el-dialog>
<el-dialog <el-dialog
:title="`应用批量上传,`+multiFileList.filter(function(val){return val}).length +` 个应用待上传`" :center="true"
:visible.sync="multiupload"
@closed="closeUpload"
:destroy-on-close="true"
:close-on-click-modal="false" :close-on-click-modal="false"
:close-on-press-escape="false" :close-on-press-escape="false"
:center="true" :destroy-on-close="true"
width="766px"> :title="`应用批量上传,`+multiFileList.filter(function(val){return val}).length +` 个应用待上传`"
:visible.sync="multiupload"
width="766px"
@closed="closeUpload">
<el-table <el-table
:data="multiFileList" :data="multiFileList"
stripe
border border
height="366px" height="366px"
stripe
style="width: 100%"> style="width: 100%">
<el-table-column <el-table-column
prop="name"
align="center" align="center"
label="文件名称"> label="文件名称"
prop="name">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="size"
label="文件大小"
align="center" align="center"
label="文件大小"
prop="size"
width="80"> width="80">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.size|diskSize }} {{ scope.row.size|diskSize }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="短连接"
align="center" align="center"
label="短连接"
width="70"> width="70">
<template slot-scope="scope"> <template slot-scope="scope">
{{ uploadprocess[uploadprocessList[multiFileList.indexOf(scope.row)]].short }} {{ uploadprocess[uploadprocessList[multiFileList.indexOf(scope.row)]].short }}
@ -122,17 +124,17 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
width="80"
align="center" align="center"
label="上传进度"> label="上传进度"
width="80">
<template slot-scope="scope"> <template slot-scope="scope">
{{ uploadprocess[uploadprocessList[multiFileList.indexOf(scope.row)]].process }} % {{ uploadprocess[uploadprocessList[multiFileList.indexOf(scope.row)]].process }} %
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
width="100"
align="center" align="center"
label="上传速度"> label="上传速度"
width="100">
<template slot-scope="scope"> <template slot-scope="scope">
{{ uploadprocess[uploadprocessList[multiFileList.indexOf(scope.row)]].speed }}/s {{ uploadprocess[uploadprocessList[multiFileList.indexOf(scope.row)]].speed }}/s
</template> </template>
@ -141,25 +143,25 @@
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button plain @click="closeUpload"> </el-button> <el-button plain @click="closeUpload"> </el-button>
<el-button type="primary" plain @click="multiuploadFun" <el-button :disabled="multiuploaddisable" plain type="primary"
:disabled="multiuploaddisable">开始上传</el-button> @click="multiuploadFun">开始上传</el-button>
</span> </span>
</el-dialog> </el-dialog>
<el-dialog class="upload-app" <el-dialog :close-on-click-modal="false"
style="position: fixed"
:visible.sync="willuploadApp"
:destroy-on-close="true" :destroy-on-close="true"
:show-close="!uploading" :show-close="!uploading"
:visible.sync="willuploadApp"
class="upload-app"
style="position: fixed"
width="666px" width="666px"
:close-on-click-modal="false"
@closed="closeUpload"> @closed="closeUpload">
<div v-if="!uploading"> <div v-if="!uploading">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="6"> <el-col :span="6">
<div class="grid-content bg-purple"> <div class="grid-content bg-purple">
<div style="width: 100px;height: 100px"> <div style="width: 100px;height: 100px">
<el-avatar shape="square" :size="100" :src="analyseappinfo.icon"/> <el-avatar :size="100" :src="analyseappinfo.icon" shape="square"/>
</div> </div>
</div> </div>
</el-col> </el-col>
@ -168,14 +170,16 @@
<el-row :gutter="20" style=" margin-top: 8px;"> <el-row :gutter="20" style=" margin-top: 8px;">
<el-col :span="18"> <el-col :span="18">
{{ analyseappinfo.version }} (Build {{ analyseappinfo.buildversion }}) {{ {{ analyseappinfo.version }} (Build {{ analyseappinfo.buildversion }}) {{
analyseappinfo.release_type_id|getiOStype}} analyseappinfo.release_type_id|getiOStype
<el-link :underline="false" }}
v-if="analyseappinfo.udid && analyseappinfo.udid.length > 0" <el-link v-if="analyseappinfo.udid && analyseappinfo.udid.length > 0"
@click="showUDID(analyseappinfo)">- {{ analyseappinfo.udid.length :underline="false"
@click="showUDID(analyseappinfo)">- {{
analyseappinfo.udid.length
}} UDID }} UDID
</el-link> </el-link>
</el-col> </el-col>
<el-col :span="6" v-if="analyseappinfo.sign && analyseappinfo.type === 'iOS'"> <el-col v-if="analyseappinfo.sign && analyseappinfo.type === 'iOS'" :span="6">
<el-checkbox v-model="enable_sign">开启超级签</el-checkbox> <el-checkbox v-model="enable_sign">开启超级签</el-checkbox>
</el-col> </el-col>
</el-row> </el-row>
@ -195,7 +199,7 @@
<el-col :span="6"> <el-col :span="6">
<div class="grid-content bg-purple"> <div class="grid-content bg-purple">
<el-row :gutter="20" style="margin-top: 18px;"> <el-row :gutter="20" style="margin-top: 18px;">
<el-col :span="18" :offset="8"> <el-col :offset="8" :span="18">
<span>短连接</span> <span>短连接</span>
</el-col> </el-col>
</el-row> </el-row>
@ -219,7 +223,7 @@
<el-col :span="6"> <el-col :span="6">
<div class="grid-content bg-purple"> <div class="grid-content bg-purple">
<el-row :gutter="20" style="margin-top: 18px;"> <el-row :gutter="20" style="margin-top: 18px;">
<el-col :span="18" :offset="8"> <el-col :offset="8" :span="18">
<span>更新日志</span> <span>更新日志</span>
</el-col> </el-col>
</el-row> </el-row>
@ -229,11 +233,11 @@
<div class="grid-content bg-purple"> <div class="grid-content bg-purple">
<el-row :gutter="20" style="margin-top: 10px;"> <el-row :gutter="20" style="margin-top: 10px;">
<el-col :span="18"> <el-col :span="18">
<el-input type="textarea" <el-input v-model="analyseappinfo.changelog"
v-model="analyseappinfo.changelog"
placeholder="请输入内容" placeholder="请输入内容"
rows="5" rows="5"
show-word-limit/> show-word-limit
type="textarea"/>
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
@ -248,67 +252,68 @@
<div class="cube"> <div class="cube">
<!--前面图片 --> <!--前面图片 -->
<div class="out_front"> <div class="out_front">
<img src="@/assets/imgs/1.png" class="pic" alt=""> <img alt="" class="pic" src="@/assets/imgs/1.png">
</div> </div>
<!--后面图片 --> <!--后面图片 -->
<div class="out_back"> <div class="out_back">
<img src="@/assets/imgs/5.png" class="pic" alt=""> <img alt="" class="pic" src="@/assets/imgs/5.png">
</div> </div>
<!--左面图片 --> <!--左面图片 -->
<div class="out_left"> <div class="out_left">
<img src="@/assets/imgs/6.png" class="pic" alt=""> <img alt="" class="pic" src="@/assets/imgs/6.png">
</div> </div>
<!--右面图片 --> <!--右面图片 -->
<div class="out_right"> <div class="out_right">
<img src="@/assets/imgs/7.png" class="pic" alt=""> <img alt="" class="pic" src="@/assets/imgs/7.png">
</div> </div>
<!--上面图片 --> <!--上面图片 -->
<div class="out_top"> <div class="out_top">
<img src="@/assets/imgs/8.png" class="pic" alt=""> <img alt="" class="pic" src="@/assets/imgs/8.png">
</div> </div>
<!--下面图片 --> <!--下面图片 -->
<div class="out_bottom"> <div class="out_bottom">
<img src="@/assets/imgs/9.png" class="pic" alt=""> <img alt="" class="pic" src="@/assets/imgs/9.png">
</div> </div>
<!--小正方体 --> <!--小正方体 -->
<span class="in_front"> <span class="in_front">
<img :src="this.analyseappinfo.icon" class="in_pic" alt=""> <img :src="this.analyseappinfo.icon" alt="" class="in_pic">
</span> </span>
<span class="in_back"> <span class="in_back">
<img :src="this.analyseappinfo.icon" class="in_pic" alt=""> <img :src="this.analyseappinfo.icon" alt="" class="in_pic">
</span> </span>
<span class="in_left"> <span class="in_left">
<img :src="this.analyseappinfo.icon" class="in_pic" alt=""> <img :src="this.analyseappinfo.icon" alt="" class="in_pic">
</span> </span>
<span class="in_right"> <span class="in_right">
<img :src="this.analyseappinfo.icon" class="in_pic" alt=""> <img :src="this.analyseappinfo.icon" alt="" class="in_pic">
</span> </span>
<span class="in_top"> <span class="in_top">
<img :src="this.analyseappinfo.icon" class="in_pic" alt=""> <img :src="this.analyseappinfo.icon" alt="" class="in_pic">
</span> </span>
<span class="in_bottom"> <span class="in_bottom">
<img :src="this.analyseappinfo.icon" class="in_pic" alt=""> <img :src="this.analyseappinfo.icon" alt="" class="in_pic">
</span> </span>
</div> </div>
</div> </div>
</div> </div>
<span slot="footer" class="dialog-footer" v-if="currentfile&& currentfile.uid"> <span v-if="currentfile&& currentfile.uid" slot="footer" class="dialog-footer">
<span v-if="uploadflag === true"> <span v-if="uploadflag === true">
{{ uploadprocess[uploadprocessList[multiFileList.indexOf(currentfile)]].speed }}/s {{ uploadprocess[uploadprocessList[multiFileList.indexOf(currentfile)]].speed }}/s
<el-progress :text-inside="true" :stroke-width="26" <el-progress :percentage="uploadprocess[uploadprocessList[multiFileList.indexOf(currentfile)]].process" :stroke-width="26"
:percentage="uploadprocess[uploadprocessList[multiFileList.indexOf(currentfile)]].process"/> :text-inside="true"/>
</span> </span>
<el-button type="primary" plain <el-button v-else plain
@click="uploadcloud(analyseappinfo,currentfile,false,getappsFun)" v-else>{{ analyseappinfo.is_new|get_upload_text}}</el-button> type="primary"
@click="uploadcloud(analyseappinfo,currentfile,false,getappsFun)">{{ analyseappinfo.is_new|get_upload_text }}</el-button>
</span> </span>
</el-dialog> </el-dialog>
<el-row> <el-row>
<el-col :span="3"> <el-col :span="3">
<el-radio-group v-model="searchfromtype"> <el-radio-group v-model="searchfromtype">
<el-radio-button label="android" icon="el-icon-mobile-phone"><i <el-radio-button icon="el-icon-mobile-phone" label="android"><i
class="iconfont icon-android2"/> class="iconfont icon-android2"/>
</el-radio-button> </el-radio-button>
<el-radio-button label="ios"><i class="iconfont icon-ios"/> <el-radio-button label="ios"><i class="iconfont icon-ios"/>
@ -320,11 +325,11 @@
<el-row> <el-row>
<el-col :span="20"> <el-col :span="20">
<el-input <el-input
placeholder="请输入名称搜索"
v-model="keysearch" v-model="keysearch"
clearable
placeholder="请输入名称搜索"
@click="searchapps" @click="searchapps"
@keyup.enter.native="searchapps" @keyup.enter.native="searchapps">
clearable>
</el-input> </el-input>
</el-col> </el-col>
<el-col :span="2"> <el-col :span="2">
@ -431,7 +436,7 @@
</el-tooltip> </el-tooltip>
</div> </div>
<div> <div>
<el-button class="action" size="small" icon="el-icon-shopping-cart-1" <el-button class="action" icon="el-icon-shopping-cart-1" size="small"
@click="show_package_prices"/> @click="show_package_prices"/>
</div> </div>
</el-col> </el-col>
@ -442,20 +447,20 @@
</el-header> </el-header>
<div ref="appmain" style="margin: 40px 10px;height: 100%;width:1166px"> <div ref="appmain" style="margin: 40px 10px;height: 100%;width:1166px">
<el-row style="max-height: 460px; margin: 0 auto;" :gutter="10" class="page-apps"> <el-row :gutter="10" class="page-apps" style="max-height: 460px; margin: 0 auto;">
<el-col style="width: 30%;height: 460px ;margin-left: 2%"> <el-col style="width: 30%;height: 460px ;margin-left: 2%">
<div class=" app-animator appdownload"> <div class=" app-animator appdownload">
<div class=" card app card-ios" style="padding: 0"> <div class=" card app card-ios" style="padding: 0">
<el-upload <el-upload
drag
ref="upload" ref="upload"
:auto-upload="false"
:limit="50"
:on-change="onUploadChange" :on-change="onUploadChange"
:show-file-list="false" :show-file-list="false"
accept=".ipa , .apk" accept=".ipa , .apk"
action="#" action="#"
:auto-upload="false" drag
:limit="50"
multiple> multiple>
<i class="el-icon-upload" style="color: #fff"/> <i class="el-icon-upload" style="color: #fff"/>
<div class="el-upload__text" style="color: #fff;margin-top: 20px">拖拽到这里上传</div> <div class="el-upload__text" style="color: #fff;margin-top: 20px">拖拽到这里上传</div>
@ -465,26 +470,26 @@
</div> </div>
</el-col> </el-col>
<el-col style="width: 30%;height: 460px;margin-left: 2%" <el-col v-for="(r,index) in applists"
v-for="(r,index) in applists" :key="r.id" @click="appInfos(index)"> :key="r.id" style="width: 30%;height: 460px;margin-left: 2%" @click="appInfos(index)">
<div class=" app-animator"> <div class=" app-animator">
<div class="card app card-ios"> <div class="card app card-ios">
<i class=" type-icon iconfont icon-ios" v-if="r.type === 1"/> <i v-if="r.type === 1" class=" type-icon iconfont icon-ios"/>
<i class="type-icon iconfont icon-android2" v-if="r.type === 0"/> <i v-if="r.type === 0" class="type-icon iconfont icon-android2"/>
<div class="type-mark" v-if="r.type === 1"></div> <div v-if="r.type === 1" class="type-mark"></div>
<div class="type-mark" style="border-top: 48px solid #A4C639" v-if="r.type === 0"></div> <div v-if="r.type === 0" class="type-mark" style="border-top: 48px solid #A4C639"></div>
<a class="appicon" @click="appInfos(r)"> <a class="appicon" @click="appInfos(r)">
<img class="icon ng-isolate-scope" width="100" height="100" <img :src="r.master_release.icon_url|make_icon_url" alt="" class="icon ng-isolate-scope"
:src="r.master_release.icon_url|make_icon_url" alt=""></a> height="100" width="100"></a>
<div class="combo-info ng-scope" v-if="r.has_combo !== null "> <div v-if="r.has_combo !== null " class="combo-info ng-scope">
<i class="el-icon-copy-document" style="transform:rotateX(180deg);"/> <i class="el-icon-copy-document" style="transform:rotateX(180deg);"/>
<a @click="appInfos(r.has_combo)"> <a @click="appInfos(r.has_combo)">
<img class="icon ng-isolate-scope" width="45" height="45" <img :src="r.has_combo.master_release.icon_url|make_icon_url" alt="" class="icon ng-isolate-scope"
:src="r.has_combo.master_release.icon_url|make_icon_url" alt=""> height="45" width="45">
</a> </a>
</div> </div>
<br> <br>
@ -509,7 +514,9 @@
</tr> </tr>
<tr> <tr>
<td class="ng-binding">最新版本</td> <td class="ng-binding">最新版本</td>
<td><span class="ng-binding">{{ r.master_release.app_version }}Build {{ r.master_release.build_version }}</span> <td><span class="ng-binding">{{
r.master_release.app_version
}}Build {{ r.master_release.build_version }}</span>
</td> </td>
</tr> </tr>
<tr v-if="r.type === 1 && r.master_release.binary_url === ''"> <tr v-if="r.type === 1 && r.master_release.binary_url === ''">
@ -526,7 +533,8 @@
<td> <td>
<span> <span>
<el-tooltip :content="r.master_release.binary_url" placement="top"> <el-tooltip :content="r.master_release.binary_url" placement="top">
<a target="_blank" :href="r.master_release.binary_url">{{ r.master_release.binary_url| autoformat}}</a> <a :href="r.master_release.binary_url"
target="_blank">{{ r.master_release.binary_url| autoformat }}</a>
</el-tooltip> </el-tooltip>
</span> </span>
</td> </td>
@ -540,16 +548,16 @@
<i class="icon-pen el-icon-edit"/> 管理 <i class="icon-pen el-icon-edit"/> 管理
</el-button> </el-button>
<el-button @click="appDownload(r)" class="ng-binding"> <el-button class="ng-binding" @click="appDownload(r)">
<i class="icon-eye el-icon-view"/> 预览 <i class="icon-eye el-icon-view"/> 预览
</el-button> </el-button>
<el-button v-if="r.issupersign" @click="DeleteApp(r)" class="btn btn-remove" <el-button v-if="r.issupersign" circle class="btn btn-remove"
icon="el-icon-loading" icon="el-icon-loading"
circle/> @click="DeleteApp(r)"/>
<el-button v-else @click="DeleteApp(r)" class="btn btn-remove" icon="el-icon-delete" <el-button v-else circle class="btn btn-remove" icon="el-icon-delete"
circle/> @click="DeleteApp(r)"/>
</div> </div>
</div> </div>
@ -566,18 +574,18 @@
import {analyseApps, apputils, get_package_prices, getapps, getuploadurl, my_order} from "@/restful"; import {analyseApps, apputils, get_package_prices, getapps, getuploadurl, my_order} from "@/restful";
import { import {
dataURLtoFile, dataURLtoFile,
deepCopy,
diskSize,
format_money, format_money,
getappinfo, getappinfo,
getScrollHeight, getScrollHeight,
getScrollTop, getScrollTop,
getUserInfoFun,
getWindowHeight, getWindowHeight,
makeFiveC,
uploadaliyunoss, uploadaliyunoss,
uploadlocalstorage, uploadlocalstorage,
uploadqiniuoss, uploadqiniuoss,
getUserInfoFun,
makeFiveC,
deepCopy,
diskSize,
upspeed upspeed
} from "@/utils"; } from "@/utils";

@ -1,9 +1,10 @@
<template> <template>
<transition :name="transitionName"> <transition :name="transitionName">
<div v-show="visible" :style="customStyle" class="back-to-ceiling" @click="backToTop"> <div v-show="visible" :style="customStyle" class="back-to-ceiling" @click="backToTop">
<svg width="16" height="16" viewBox="0 0 17 17" xmlns="http://www.w3.org/2000/svg" <svg aria-hidden="true" class="Icon Icon--backToTopArrow" height="16" style="height:16px;width:16px"
class="Icon Icon--backToTopArrow" aria-hidden="true" style="height:16px;width:16px"> viewBox="0 0 17 17" width="16" xmlns="http://www.w3.org/2000/svg">
<path d="M12.036 15.59a1 1 0 0 1-.997.995H5.032a.996.996 0 0 1-.997-.996V8.584H1.03c-1.1 0-1.36-.633-.578-1.416L7.33.29a1.003 1.003 0 0 1 1.412 0l6.878 6.88c.782.78.523 1.415-.58 1.415h-3.004v7.004z"/> <path
d="M12.036 15.59a1 1 0 0 1-.997.995H5.032a.996.996 0 0 1-.997-.996V8.584H1.03c-1.1 0-1.36-.633-.578-1.416L7.33.29a1.003 1.003 0 0 1 1.412 0l6.878 6.88c.782.78.523 1.415-.58 1.415h-3.004v7.004z"/>
</svg> </svg>
</div> </div>
</transition> </transition>

@ -13,7 +13,7 @@
<div style="margin-top: 20px"> <div style="margin-top: 20px">
<div v-if="active===1"> <div v-if="active===1">
<h2>你的二级域名</h2> <h2>你的二级域名</h2>
<el-input clearable autofocus v-model="domain_name"/> <el-input v-model="domain_name" autofocus clearable/>
</div> </div>
<div v-else-if="active===2"> <div v-else-if="active===2">
<div style="text-align: center;margin: 20px 0"> <div style="text-align: center;margin: 20px 0">
@ -26,51 +26,51 @@
stripe stripe
style="width: 100%;margin-top: 20px"> style="width: 100%;margin-top: 20px">
<el-table-column <el-table-column
prop="type"
label="记录类型"
align="center" align="center"
label="记录类型"
prop="type"
width="100"> width="100">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="host"
align="center" align="center"
label="主机记录" label="主机记录"
prop="host"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-tooltip content="点击复制到剪贴板"> <el-tooltip content="点击复制到剪贴板">
<el-link v-if="scope.row.host" :underline="false" <el-link v-if="scope.row.host" v-clipboard:copy="scope.row.host"
v-clipboard:copy="scope.row.host" v-clipboard:success="copy_success"
v-clipboard:success="copy_success">{{ scope.row.host }} :underline="false">{{ scope.row.host }}
</el-link> </el-link>
</el-tooltip> </el-tooltip>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="dns"
align="center" align="center"
label="记录值" label="记录值"
prop="dns"
width="300"> width="300">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tooltip content="点击复制到剪贴板"> <el-tooltip content="点击复制到剪贴板">
<el-link v-if="scope.row.dns" :underline="false" <el-link v-if="scope.row.dns" v-clipboard:copy="scope.row.dns"
v-clipboard:copy="scope.row.dns" v-clipboard:success="copy_success"
v-clipboard:success="copy_success">{{ scope.row.dns }} :underline="false">{{ scope.row.dns }}
</el-link> </el-link>
</el-tooltip> </el-tooltip>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<el-alert title="请在域名DNS配置成功后,点击“下一步”按钮" <el-alert :closable="false"
show-icon
style="margin-top: 30px" style="margin-top: 30px"
type="warning" title="请在域名DNS配置成功后,点击“下一步”按钮"
:closable="false" type="warning"/>
show-icon/>
</div> </div>
<div v-else-if="active===3"> <div v-else-if="active===3">
<div v-if="!bind_status"> <div v-if="!bind_status">
<div style="text-align: center;margin: 20px 0"> <div style="text-align: center;margin: 20px 0">
<el-link :underline="false" type="danger" <el-link :underline="false" style="font-size: x-large"
style="font-size: x-large">绑定失败 type="danger">绑定失败
</el-link> </el-link>
</div> </div>
@ -78,7 +78,7 @@
<el-row> <el-row>
<el-col :span="16"><p>系统未检出到您的CNAME记录请检查您的配置</p></el-col> <el-col :span="16"><p>系统未检出到您的CNAME记录请检查您的配置</p></el-col>
<el-col :span="6"> <el-col :span="6">
<el-button type="danger" size="small" plain style="margin-top: 8px" <el-button plain size="small" style="margin-top: 8px" type="danger"
@click="remove_domain"> @click="remove_domain">
解除绑定 解除绑定
</el-button> </el-button>
@ -88,15 +88,15 @@
<div v-else> <div v-else>
<div style="text-align: center;margin: 20px 0"> <div style="text-align: center;margin: 20px 0">
<el-link :underline="false" type="success" <el-link :underline="false" style="font-size: x-large"
style="font-size: x-large">绑定成功 type="success">绑定成功
</el-link> </el-link>
</div> </div>
<el-row> <el-row>
<el-col :span="16"><p>{{ b_t_msg }}已绑定域名<strong>{{ domain_name }}</strong></p></el-col> <el-col :span="16"><p>{{ b_t_msg }}已绑定域名<strong>{{ domain_name }}</strong></p></el-col>
<el-col :span="6"> <el-col :span="6">
<el-button type="danger" size="small" plain style="margin-top: 8px" <el-button plain size="small" style="margin-top: 8px" type="danger"
@click="remove_domain"> @click="remove_domain">
解除绑定 解除绑定
</el-button> </el-button>
@ -110,34 +110,34 @@
stripe stripe
style="width: 100%;margin-top: 20px"> style="width: 100%;margin-top: 20px">
<el-table-column <el-table-column
prop="type"
label="记录类型"
align="center" align="center"
label="记录类型"
prop="type"
width="100"> width="100">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="host"
align="center" align="center"
label="主机记录" label="主机记录"
prop="host"
> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="dns"
align="center" align="center"
label="记录值" label="记录值"
prop="dns"
width="300"> width="300">
</el-table-column> </el-table-column>
</el-table> </el-table>
<div v-if="!bind_status" style="text-align: center;margin: 30px 0"> <div v-if="!bind_status" style="text-align: center;margin: 30px 0">
<el-button @click="check_cname" type="success" plain>已经修改配置再次检查绑定</el-button> <el-button plain type="success" @click="check_cname">已经修改配置再次检查绑定</el-button>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div v-if="active!==3" style="margin:40px 20px 0;text-align: right"> <div v-if="active!==3" style="margin:40px 20px 0;text-align: right">
<el-button @click="last" <el-button :disabled="bind_status|| active===1 "
:disabled="bind_status|| active===1 ">上一步 @click="last">上一步
</el-button> </el-button>
<el-button v-if="force_bind" @click="next(1)">强制绑定</el-button> <el-button v-if="force_bind" @click="next(1)">强制绑定</el-button>
<el-button v-else @click="next(0)">下一步</el-button> <el-button v-else @click="next(0)">下一步</el-button>

@ -17,7 +17,7 @@
</div> </div>
<p><b>flyapps@126.com</b></p> <p><b>flyapps@126.com</b></p>
<el-tooltip content="拿出手机扫描添加微信" style="margin-top: 33px"> <el-tooltip content="拿出手机扫描添加微信" style="margin-top: 33px">
<el-image :lazy="true" :src="require('@/assets/wxchat.jpg')" style="width: 160px" alt="扫描添加微信"> <el-image :lazy="true" :src="require('@/assets/wxchat.jpg')" alt="扫描添加微信" style="width: 160px">
</el-image> </el-image>
</el-tooltip> </el-tooltip>

@ -23,17 +23,17 @@
<p>THE REASON TO CHOOSING US</p> <p>THE REASON TO CHOOSING US</p>
</div> </div>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="6" v-for="(item,index) in serverList" :key="index"> <el-col v-for="(item,index) in serverList" :key="index" :span="6">
<div class="server-block" <div class="server-block"
onmouseenter="this.style.color='#28f';this.style.borderColor='#28f'" onmouseenter="this.style.color='#28f';this.style.borderColor='#28f'"
onmouseleave="this.style.color='#666';this.style.borderColor='#ccc'"> onmouseleave="this.style.color='#666';this.style.borderColor='#ccc'">
<img class="center-block" v-lazy="item.logo" alt="logo"> <img v-lazy="item.logo" alt="logo" class="center-block">
<p class="text-center">{{ item.title }}</p> <p class="text-center">{{ item.title }}</p>
<div <div
class="text-center" class="text-center"
v-html="item.content"
onmouseenter="this.style.color='#28f'" onmouseenter="this.style.color='#28f'"
onmouseleave="this.style.color='#ccc'" onmouseleave="this.style.color='#ccc'"
v-html="item.content"
></div> ></div>
</div> </div>
</el-col> </el-col>
@ -45,9 +45,9 @@
<el-main class="contactUs-container"> <el-main class="contactUs-container">
<div class="content">您身边的应用托管分发专家</div> <div class="content">您身边的应用托管分发专家</div>
<div class="content">7x24小时提供出色的不间断服务</div> <div class="content">7x24小时提供出色的不间断服务</div>
<el-button @click="$router.push({name:'FirContact'})" <el-button onmouseenter="this.style.backgroundColor='transparent'; this.style.borderColor='#ffffff'; this.style.color='#ffffff';"
onmouseleave="this.style.borderColor='#ffffff'; this.style.backgroundColor='#ffffff'; this.style.color='#3f3f3f';" onmouseleave="this.style.borderColor='#ffffff'; this.style.backgroundColor='#ffffff'; this.style.color='#3f3f3f';"
onmouseenter="this.style.backgroundColor='transparent'; this.style.borderColor='#ffffff'; this.style.color='#ffffff';" @click="$router.push({name:'FirContact'})"
>联系我们 >联系我们
</el-button> </el-button>
<div class="contactUs-contactWay"> <div class="contactUs-contactWay">

@ -4,9 +4,9 @@
<el-header class="header"> <el-header class="header">
<el-row :gutter="12"> <el-row :gutter="12">
<el-col :span="12"> <el-col :span="12">
<el-image class="logo img" :src="require('@/assets/logo.png')" alt="logo"/> <el-image :src="require('@/assets/logo.png')" alt="logo" class="logo img"/>
</el-col> </el-col>
<el-col :span="12" :offset="12"> <el-col :offset="12" :span="12">
<el-row :gutter="12" class="nav"> <el-row :gutter="12" class="nav">
<el-col :span="8"> <el-col :span="8">
<el-link @click="$router.push({name:'FirIndex'})">首页</el-link> <el-link @click="$router.push({name:'FirIndex'})">首页</el-link>
@ -35,8 +35,8 @@
<div> <div>
<router-view/> <router-view/>
</div> </div>
<el-tooltip placement="top" content="回到顶部"> <el-tooltip content="回到顶部" placement="top">
<back-to-top :custom-style="myBackToTopStyle" :visibility-height="300" :back-position="50" <back-to-top :back-position="50" :custom-style="myBackToTopStyle" :visibility-height="300"
transition-name="fade"/> transition-name="fade"/>
</el-tooltip> </el-tooltip>
<el-footer> <el-footer>

@ -6,7 +6,7 @@
<p style="color:#b2b2b2">Company News</p> <p style="color:#b2b2b2">Company News</p>
</div> </div>
<div class="nav text-center"> <div class="nav text-center">
<a href="#" class="active">公司新闻</a> <a class="active" href="#">公司新闻</a>
<a href="#">行业动态</a> <a href="#">行业动态</a>
</div> </div>
<ul class="news-container"> <ul class="news-container">

@ -6,8 +6,8 @@
</div> </div>
<div class="Service-container"> <div class="Service-container">
<transition name="el-zoom-in-center"> <transition name="el-zoom-in-center">
<el-row :gutter="20" v-show="show"> <el-row v-show="show" :gutter="20">
<el-col :span="6" v-for="(item,index) in serviceList" :key="index"> <el-col v-for="(item,index) in serviceList" :key="index" :span="6">
<div class="Service-item Service-item-wrapper"> <div class="Service-item Service-item-wrapper">
<div class="Service-item-top"> <div class="Service-item-top">
<h4>{{ item.title }}</h4> <h4>{{ item.title }}</h4>

@ -1,59 +1,59 @@
<template> <template>
<el-main> <el-main>
<el-dialog title="发布证书导入" :visible.sync="importcertDeveloperVisible" :destroy-on-close="true" <el-dialog :close-on-click-modal="false" :destroy-on-close="true" :visible.sync="importcertDeveloperVisible"
:close-on-click-modal="false" style="text-align:center" width="700px"> style="text-align:center" title="发布证书导入" width="700px">
<el-form label-width="30%"> <el-form label-width="30%">
<el-form-item label="发布证书p12文件" style="width: 80%"> <el-form-item label="发布证书p12文件" style="width: 80%">
<el-upload <el-upload
drag
ref="upload" ref="upload"
action="#" :auto-upload="false"
:before-upload="beforeAvatarUpload" :before-upload="beforeAvatarUpload"
accept=".p12"
:file-list="fileList" :file-list="fileList"
:auto-upload="false"
:limit="1" :limit="1"
accept=".p12"
action="#"
drag
> >
<i class="el-icon-upload"/> <i class="el-icon-upload"/>
<div class="el-upload__text">将p12证书文件拖到此处<em>点击上传</em></div> <div class="el-upload__text">将p12证书文件拖到此处<em>点击上传</em></div>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
<el-form-item label="发布证书p12密码" style="width: 80%"> <el-form-item label="发布证书p12密码" style="width: 80%">
<el-input label="证书密码" v-model="cert_pwd"/> <el-input v-model="cert_pwd" label="证书密码"/>
</el-form-item> </el-form-item>
<el-button @click="$refs.upload.submit()">确定导入</el-button> <el-button @click="$refs.upload.submit()">确定导入</el-button>
<el-button @click="importcertDeveloperVisible=false">取消</el-button> <el-button @click="importcertDeveloperVisible=false">取消</el-button>
</el-form> </el-form>
</el-dialog> </el-dialog>
<el-dialog :title="title" :visible.sync="dialogaddDeveloperVisible" :destroy-on-close="true" <el-dialog :close-on-click-modal="false" :destroy-on-close="true" :title="title"
:close-on-click-modal="false" style="text-align:center" width="750px"> :visible.sync="dialogaddDeveloperVisible" style="text-align:center" width="750px">
<el-form ref="storageinfoform" :model="editdeveloperinfo" <el-form ref="storageinfoform" :model="editdeveloperinfo"
label-width="80px" style="margin:0 auto;"> label-width="80px" style="margin:0 auto;">
<div v-if="editdeveloperinfo.auth_type===0"> <div v-if="editdeveloperinfo.auth_type===0">
<el-form-item label-width="110px" label="issuer_id"> <el-form-item label="issuer_id" label-width="110px">
<el-input :disabled='isedit' v-model="editdeveloperinfo.issuer_id"/> <el-input v-model="editdeveloperinfo.issuer_id" :disabled='isedit'/>
</el-form-item> </el-form-item>
<el-form-item label-width="110px" label="private_key_id"> <el-form-item label="private_key_id" label-width="110px">
<el-input v-model="editdeveloperinfo.private_key_id"/> <el-input v-model="editdeveloperinfo.private_key_id"/>
</el-form-item> </el-form-item>
<el-form-item label-width="110px" label="p8key"> <el-form-item label="p8key" label-width="110px">
<el-input type="textarea" <el-input v-model="editdeveloperinfo.p8key"
:rows="6" v-model="editdeveloperinfo.p8key" :placeholder="placeholder"/> :placeholder="placeholder" :rows="6" type="textarea"/>
</el-form-item> </el-form-item>
</div> </div>
<el-form-item label-width="110px" label="设备数量" style="text-align: left"> <el-form-item label="设备数量" label-width="110px" style="text-align: left">
<el-input-number v-model="editdeveloperinfo.usable_number" :min="0" :max="100" label="设备数量"/> <el-input-number v-model="editdeveloperinfo.usable_number" :max="100" :min="0" label="设备数量"/>
</el-form-item> </el-form-item>
<el-form-item label-width="110px" label="证书id"> <el-form-item label="证书id" label-width="110px">
<el-input :disabled='isedit' v-model="editdeveloperinfo.certid"/> <el-input v-model="editdeveloperinfo.certid" :disabled='isedit'/>
</el-form-item> </el-form-item>
<el-form-item label-width="110px" label="备注"> <el-form-item label="备注" label-width="110px">
<el-input v-model="editdeveloperinfo.description"/> <el-input v-model="editdeveloperinfo.description"/>
</el-form-item> </el-form-item>
<div style=""> <div style="">
@ -82,7 +82,7 @@
@click="isorenewcert">删除发布证书 @click="isorenewcert">删除发布证书
</el-button> </el-button>
</el-tooltip> </el-tooltip>
<el-button v-if="isedit && editdeveloperinfo.is_actived" type="success" size="small" <el-button v-if="isedit && editdeveloperinfo.is_actived" size="small" type="success"
@click="activedeveloperFun(editdeveloperinfo,'checkauth')">账户激活检测 @click="activedeveloperFun(editdeveloperinfo,'checkauth')">账户激活检测
</el-button> </el-button>
@ -94,44 +94,44 @@
</el-form> </el-form>
</el-dialog> </el-dialog>
<el-dialog title="设备消耗详细信息" :destroy-on-close="true" :visible.sync="dialogShowDeviceBillInfo" <el-dialog :close-on-click-modal="false" :destroy-on-close="true" :visible.sync="dialogShowDeviceBillInfo"
:close-on-click-modal="false" center width="750px"> center title="设备消耗详细信息" width="750px">
<el-table <el-table
:data="app_bill_info_lists"
v-loading="loading" v-loading="loading"
:data="app_bill_info_lists"
border border
stripe stripe
style="width: 100%"> style="width: 100%">
<el-table-column <el-table-column
prop="app_name"
align="center" align="center"
label="应用名称" label="应用名称"
prop="app_name"
> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="remote_addr"
align="center" align="center"
label="客户端IP"> label="客户端IP"
prop="remote_addr">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="action"
label="账单类型"
align="center" align="center"
label="账单类型"
prop="action"
width="100"> width="100">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
:formatter="deviceformatter" :formatter="deviceformatter"
align="center" align="center"
prop="created_time"
label="日期" label="日期"
prop="created_time"
width="160"> width="160">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="应用状态"
align="center" align="center"
label="应用状态"
width="110"> width="110">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag v-if="scope.row.app_status===false" type="info">应用删除</el-tag> <el-tag v-if="scope.row.app_status===false" type="info">应用删除</el-tag>
@ -141,8 +141,8 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="设备状态"
align="center" align="center"
label="设备状态"
width="110"> width="110">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag v-if="scope.row.is_used===false" type="info">已经释放</el-tag> <el-tag v-if="scope.row.is_used===false" type="info">已经释放</el-tag>
@ -155,13 +155,13 @@
</el-table> </el-table>
<div style="margin-top: 20px"> <div style="margin-top: 20px">
<el-pagination <el-pagination
@size-change="billhandleSizeChange"
@current-change="billhandleCurrentChange"
:current-page.sync="billpagination.currentPage" :current-page.sync="billpagination.currentPage"
:page-sizes="[10, 20, 50, 100]"
:page-size="billpagination.pagesize" :page-size="billpagination.pagesize"
:page-sizes="[10, 20, 50, 100]"
:total="billpagination.total"
layout="total,sizes, prev, pager, next" layout="total,sizes, prev, pager, next"
:total="billpagination.total"> @size-change="billhandleSizeChange"
@current-change="billhandleCurrentChange">
</el-pagination> </el-pagination>
</div> </div>
<span slot="footer"> <span slot="footer">
@ -169,52 +169,55 @@
</span> </span>
</el-dialog> </el-dialog>
<el-tabs v-model="activeName" type="border-card" @tab-click="handleClick" tab-position="top"> <el-tabs v-model="activeName" tab-position="top" type="border-card" @tab-click="handleClick">
<el-tab-pane label="开发者账户" name="iosdeveloper"> <el-tab-pane label="开发者账户" name="iosdeveloper">
<el-input <el-input
style="width: 30%;margin-right: 30px;margin-bottom: 10px"
v-model="appidseach" v-model="appidseach"
clearable clearable
placeholder="输入用户ID"/> placeholder="输入用户ID"
<el-button type="primary" icon="el-icon-search" @click="handleCurrentChange(pagination.currentPage)"> style="width: 30%;margin-right: 30px;margin-bottom: 10px"/>
<el-button icon="el-icon-search" type="primary" @click="handleCurrentChange(pagination.currentPage)">
搜索 搜索
</el-button> </el-button>
<div style="width: 40%;margin-right: 30px;float:right"> <div style="width: 40%;margin-right: 30px;float:right">
<el-link :underline="false">总设备量{{ developer_used_info.all_usable_number }} 已经使用平台{{ <el-link :underline="false">总设备量{{ developer_used_info.all_usable_number }} 已经使用平台{{
developer_used_info.all_use_number}} 其他{{developer_used_info.other_used_sum}} developer_used_info.all_use_number
}} 其他{{ developer_used_info.other_used_sum }}
还剩{{ developer_used_info.all_usable_number - developer_used_info.flyapp_used_sum }} 可用 还剩{{ developer_used_info.all_usable_number - developer_used_info.flyapp_used_sum }} 可用
</el-link> </el-link>
<el-progress <el-progress
type="line"
:color="developer_usedColor" :color="developer_usedColor"
:text-inside="true" :stroke-width="18" :percentage="percentage" :percentage="percentage"
status="success"/> :stroke-width="18" :text-inside="true" status="success"
type="line"/>
</div> </div>
<el-table <el-table
v-loading="loading"
:data="app_developer_lists" :data="app_developer_lists"
border border
v-loading="loading"
stripe stripe
style="width: 100%"> style="width: 100%">
<el-table-column <el-table-column
fixed
prop="issuer_id"
align="center" align="center"
fixed
label="用户 issuer_id" label="用户 issuer_id"
prop="issuer_id"
width="300"> width="300">
<template slot-scope="scope"> <template slot-scope="scope">
<el-popover trigger="hover" placement="top"> <el-popover placement="top" trigger="hover">
<p>开发者账户已使用设备数: {{ scope.row.developer_used_number }}</p> <p>开发者账户已使用设备数: {{ scope.row.developer_used_number }}</p>
<p>开发者账户可用设备数: {{ 100 - scope.row.developer_used_number }}</p> <p>开发者账户可用设备数: {{ 100 - scope.row.developer_used_number }}</p>
<p>由于您设置可用设备数: {{ scope.row.usable_number }} ,所以现在可用设备数: {{ <p>由于您设置可用设备数: {{ scope.row.usable_number }} ,所以现在可用设备数: {{
scope.row.usable_number - scope.row.developer_used_number > 0 scope.row.usable_number - scope.row.developer_used_number > 0
?scope.row.usable_number-scope.row.developer_used_number :0 }}</p> ? scope.row.usable_number - scope.row.developer_used_number : 0
}}</p>
<div slot="reference" class="name-wrapper"> <div slot="reference" class="name-wrapper">
<el-tag size="medium" v-if="scope.row.issuer_id"><i class="el-icon-key"/> {{ <el-tag v-if="scope.row.issuer_id" size="medium"><i class="el-icon-key"/> {{
scope.row.issuer_id }} scope.row.issuer_id
}}
</el-tag> </el-tag>
</div> </div>
</el-popover> </el-popover>
@ -222,49 +225,53 @@
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="is_actived"
align="center" align="center"
label="是否激活" label="是否激活"
prop="is_actived"
width="110"> width="110">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button v-if="scope.row.is_actived === true" type="success" size="small">已激活</el-button> <el-button v-if="scope.row.is_actived === true" size="small" type="success">已激活</el-button>
<el-button v-else type="danger" size="small" <el-button v-else size="small" type="danger"
@click="activedeveloperFun(scope.row,'checkauth')">点击激活 @click="activedeveloperFun(scope.row,'checkauth')">点击激活
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="certid"
label="账户状态"
align="center" align="center"
label="账户状态"
prop="certid"
width="100"> width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<el-popover trigger="hover" placement="top"> <el-popover placement="top" trigger="hover">
<p v-if="!scope.row.certid && scope.row.is_actived === true"> <p v-if="!scope.row.certid && scope.row.is_actived === true">
开发证书不可用请在编辑中导入或手动创建发布证书</p> 开发证书不可用请在编辑中导入或手动创建发布证书</p>
<p v-if="!scope.row.certid && scope.row.is_actived !== true">请先激活开发者账户</p> <p v-if="!scope.row.certid && scope.row.is_actived !== true">请先激活开发者账户</p>
<p v-if="scope.row.certid && scope.row.is_actived === true">账户已经启用</p> <p v-if="scope.row.certid && scope.row.is_actived === true">账户已经启用</p>
<div slot="reference" class="name-wrapper"> <div slot="reference" class="name-wrapper">
<el-button v-if="scope.row.certid " type="success" size="small">可用</el-button> <el-button v-if="scope.row.certid " size="small" type="success">可用</el-button>
<el-button v-else type="danger" size="small">不可用</el-button> <el-button v-else size="small" type="danger">不可用</el-button>
</div> </div>
</el-popover> </el-popover>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="usable_number"
label="可用设备"
align="center" align="center"
label="可用设备"
prop="usable_number"
width="60"> width="60">
<template slot-scope="scope"> <template slot-scope="scope">
<el-popover trigger="hover" placement="top"> <el-popover placement="top" trigger="hover">
<p>可用设备数: {{ scope.row.usable_number-scope.row.developer_used_number > 0 <p>可用设备数: {{
?scope.row.usable_number-scope.row.developer_used_number :0}}</p> scope.row.usable_number - scope.row.developer_used_number > 0
? scope.row.usable_number - scope.row.developer_used_number : 0
}}</p>
<div slot="reference" class="name-wrapper"> <div slot="reference" class="name-wrapper">
<el-tag size="medium"> {{ scope.row.usable_number-scope.row.developer_used_number > <el-tag size="medium"> {{
0 ?scope.row.usable_number-scope.row.developer_used_number :0 }} scope.row.usable_number - scope.row.developer_used_number >
0 ? scope.row.usable_number - scope.row.developer_used_number : 0
}}
</el-tag> </el-tag>
</div> </div>
</el-popover> </el-popover>
@ -272,12 +279,12 @@
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="use_number"
align="center" align="center"
label="设备消耗" label="设备消耗"
prop="use_number"
width="60"> width="60">
<template slot-scope="scope"> <template slot-scope="scope">
<el-popover trigger="hover" placement="top"> <el-popover placement="top" trigger="hover">
<p>开发者账户已使用设备数本平台: {{ scope.row.use_number }}</p> <p>开发者账户已使用设备数本平台: {{ scope.row.use_number }}</p>
<p>开发者账户已使用设备数其他: {{ scope.row.developer_used_other_number }}</p> <p>开发者账户已使用设备数其他: {{ scope.row.developer_used_other_number }}</p>
<div slot="reference" class="name-wrapper"> <div slot="reference" class="name-wrapper">
@ -289,21 +296,21 @@
<el-table-column <el-table-column
:formatter="formatter" :formatter="formatter"
prop="cert_expire_time"
label="证书到期时间"
align="center" align="center"
label="证书到期时间"
prop="cert_expire_time"
width="160"> width="160">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
align="center" align="center"
prop="description"
label="备注" label="备注"
prop="description"
> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
align="center"
fixed="right" fixed="right"
label="操作" label="操作"
align="center"
width="150"> width="150">
<template slot-scope="scope"> <template slot-scope="scope">
@ -327,7 +334,7 @@
<el-form ref="storageinfoform" :model="editdeveloperinfo" <el-form ref="storageinfoform" :model="editdeveloperinfo"
label-width="80px" style="margin:0 auto;"> label-width="80px" style="margin:0 auto;">
<el-form-item label-width="100px" label="认证类型"> <el-form-item label="认证类型" label-width="100px">
<el-select v-model="editdeveloperinfo.auth_type" placeholder="认证类型" <el-select v-model="editdeveloperinfo.auth_type" placeholder="认证类型"
style="margin-left: -100px"> style="margin-left: -100px">
<el-option v-for="st in apple_auth_list" :key="st.id" :label="st.name" <el-option v-for="st in apple_auth_list" :key="st.id" :label="st.name"
@ -335,36 +342,36 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<div v-if="editdeveloperinfo.auth_type===0"> <div v-if="editdeveloperinfo.auth_type===0">
<el-form-item label-width="110px" label="issuer_id"> <el-form-item label="issuer_id" label-width="110px">
<el-input :disabled='isedit' v-model="editdeveloperinfo.issuer_id"/> <el-input v-model="editdeveloperinfo.issuer_id" :disabled='isedit'/>
</el-form-item> </el-form-item>
<el-form-item label-width="110px" label="private_key_id"> <el-form-item label="private_key_id" label-width="110px">
<el-input v-model="editdeveloperinfo.private_key_id" :placeholder="placeholder"/> <el-input v-model="editdeveloperinfo.private_key_id" :placeholder="placeholder"/>
</el-form-item> </el-form-item>
<el-form-item label-width="110px" label="p8key"> <el-form-item label="p8key" label-width="110px">
<el-input type="textarea" <el-input v-model="editdeveloperinfo.p8key"
:rows="6" v-model="editdeveloperinfo.p8key" :placeholder="placeholder"/> :placeholder="placeholder" :rows="6" type="textarea"/>
</el-form-item> </el-form-item>
</div> </div>
<el-form-item label-width="110px" label="设备数量" style="text-align: left"> <el-form-item label="设备数量" label-width="110px" style="text-align: left">
<el-input-number v-model="editdeveloperinfo.usable_number" :min="0" :max="100" label="设备数量"/> <el-input-number v-model="editdeveloperinfo.usable_number" :max="100" :min="0" label="设备数量"/>
</el-form-item> </el-form-item>
<el-form-item label-width="110px" label="备注"> <el-form-item label="备注" label-width="110px">
<el-input v-model="editdeveloperinfo.description"/> <el-input v-model="editdeveloperinfo.description"/>
</el-form-item> </el-form-item>
<div style=""> <div style="">
<el-button @click="updateorcreate" type="primary" plain>保存信息并添加</el-button> <el-button plain type="primary" @click="updateorcreate">保存信息并添加</el-button>
</div> </div>
</el-form> </el-form>
<el-card style="margin-top: 20px;text-align: left" header="获取密钥帮助"> <el-card header="获取密钥帮助" style="margin-top: 20px;text-align: left">
<h1>获取密钥</h1> <h1>获取密钥</h1>
<p>前往 AppStore Connect 按照 <p>前往 AppStore Connect 按照
<el-button plain type="primary" size="small" @click="$router.push({name:'FirSuperSignHelp'})"> <el-button plain size="small" type="primary" @click="$router.push({name:'FirSuperSignHelp'})">
此步骤 此步骤
</el-button> </el-button>
获取 API 密钥将获取到的密钥添加到这里 获取 API 密钥将获取到的密钥添加到这里
@ -379,72 +386,72 @@
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="设备消耗" name="useddevices"> <el-tab-pane label="设备消耗" name="useddevices">
<el-input <el-input
style="width: 30%;margin-right: 30px;margin-bottom: 10px"
v-model="udidsearch" v-model="udidsearch"
clearable clearable
placeholder="输入UDID"/> placeholder="输入UDID"
style="width: 30%;margin-right: 30px;margin-bottom: 10px"/>
<el-input <el-input
style="width: 30%;margin-right: 30px;margin-bottom: 10px"
v-model="Bundleidsearch" v-model="Bundleidsearch"
clearable clearable
placeholder="输入BundleID"/> placeholder="输入BundleID"
style="width: 30%;margin-right: 30px;margin-bottom: 10px"/>
<el-input <el-input
style="width: 23%;margin-right: 30px;margin-bottom: 10px"
v-model="appidseach" v-model="appidseach"
clearable clearable
placeholder="输入用户ID"/> placeholder="输入用户ID"
<el-button type="primary" icon="el-icon-search" @click="handleCurrentChange(pagination.currentPage)"> style="width: 23%;margin-right: 30px;margin-bottom: 10px"/>
<el-button icon="el-icon-search" type="primary" @click="handleCurrentChange(pagination.currentPage)">
搜索 搜索
</el-button> </el-button>
<el-table <el-table
:data="app_devices_lists"
v-loading="loading" v-loading="loading"
:data="app_devices_lists"
border border
stripe stripe
style="width: 100%"> style="width: 100%">
<el-table-column <el-table-column
fixed
align="center" align="center"
prop="device_udid" fixed
label="设备ID" label="设备ID"
prop="device_udid"
> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="device_name"
align="center" align="center"
label="设备名称" label="设备名称"
prop="device_name"
width="120"> width="120">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="bundle_id"
align="center" align="center"
label="应用ID" label="应用ID"
prop="bundle_id"
width="180"> width="180">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="bundle_name"
align="center" align="center"
label="应用名称" label="应用名称"
prop="bundle_name"
width="160"> width="160">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="developer_id"
label="开发者ID"
align="center" align="center"
label="开发者ID"
prop="developer_id"
width="200"> width="200">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
v-if="$store.state.userinfo&&$store.state.userinfo.role == 3" v-if="$store.state.userinfo&&$store.state.userinfo.role == 3"
prop="other_uid"
align="center" align="center"
label="被使用户uid"> label="被使用户uid"
prop="other_uid">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
:formatter="deviceformatter" :formatter="deviceformatter"
prop="created_time"
align="center" align="center"
label="授权时间" label="授权时间"
prop="created_time"
width="160"> width="160">
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -453,35 +460,35 @@
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="设备管理" name="devicesudid"> <el-tab-pane label="设备管理" name="devicesudid">
<el-input <el-input
style="width: 30%;margin-right: 30px;margin-bottom: 10px"
v-model="udidsearch" v-model="udidsearch"
clearable clearable
placeholder="输入UDID"/> placeholder="输入UDID"
style="width: 30%;margin-right: 30px;margin-bottom: 10px"/>
<el-input <el-input
style="width: 30%;margin-right: 30px;margin-bottom: 10px"
v-model="Bundleidsearch" v-model="Bundleidsearch"
clearable clearable
placeholder="输入BundleID"/> placeholder="输入BundleID"
<el-button type="primary" icon="el-icon-search" @click="handleCurrentChange(pagination.currentPage)"> style="width: 30%;margin-right: 30px;margin-bottom: 10px"/>
<el-button icon="el-icon-search" type="primary" @click="handleCurrentChange(pagination.currentPage)">
搜索 搜索
</el-button> </el-button>
<el-table <el-table
:data="app_udid_lists"
v-loading="loading" v-loading="loading"
:data="app_udid_lists"
border border
stripe stripe
style="width: 100%"> style="width: 100%">
<el-table-column <el-table-column
fixed
align="center" align="center"
prop="udid" fixed
label="设备ID" label="设备ID"
prop="udid"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-popover trigger="hover" placement="top"> <el-popover placement="top" trigger="hover">
<p>Bundle_ID: {{ scope.row.bundle_id }}</p> <p>Bundle_ID: {{ scope.row.bundle_id }}</p>
<p>应用名称: {{ scope.row.bundle_name }}</p> <p>应用名称: {{ scope.row.bundle_name }}</p>
<p>UDID: {{ scope.row.udid }}</p> <p>UDID: {{ scope.row.udid }}</p>
@ -492,47 +499,47 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="imei"
label="imei"
align="center" align="center"
label="imei"
prop="imei"
width="160"> width="160">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="product"
label="设备名称"
align="center" align="center"
label="设备名称"
prop="product"
width="100"> width="100">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="version"
label="设备型号"
align="center" align="center"
label="设备型号"
prop="version"
width="100"> width="100">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="serial"
label="设备序列号"
align="center" align="center"
label="设备序列号"
prop="serial"
width="140"> width="140">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
v-if="$store.state.userinfo&&$store.state.userinfo.role == 3" v-if="$store.state.userinfo&&$store.state.userinfo.role == 3"
prop="other_uid"
align="center" align="center"
label="被使用户uid"> label="被使用户uid"
prop="other_uid">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
:formatter="deviceformatter" :formatter="deviceformatter"
prop="created_time"
label="添加时间"
align="center" align="center"
label="添加时间"
prop="created_time"
width="160"> width="160">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
align="center"
fixed="right" fixed="right"
label="操作" label="操作"
align="center"
width="110"> width="110">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
@ -551,31 +558,31 @@
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="设备消耗账单" name="devicesbill"> <el-tab-pane label="设备消耗账单" name="devicesbill">
<el-input <el-input
style="width: 30%;margin-right: 30px;margin-bottom: 10px"
v-model="udidsearch" v-model="udidsearch"
clearable clearable
placeholder="输入UDID"/> placeholder="输入UDID"
style="width: 30%;margin-right: 30px;margin-bottom: 10px"/>
<el-button type="primary" icon="el-icon-search" @click="handleCurrentChange(pagination.currentPage)"> <el-button icon="el-icon-search" type="primary" @click="handleCurrentChange(pagination.currentPage)">
搜索 搜索
</el-button> </el-button>
<el-table <el-table
:data="app_bill_lists"
v-loading="loading" v-loading="loading"
:data="app_bill_lists"
border border
stripe stripe
style="width: 100%"> style="width: 100%">
<el-table-column <el-table-column
fixed
prop="udid"
align="center" align="center"
fixed
label="设备ID" label="设备ID"
prop="udid"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-tooltip effect="dark" content="点击查看设备安装详细信息" placement="top"> <el-tooltip content="点击查看设备安装详细信息" effect="dark" placement="top">
<el-link :underline="false" @click="showDeviceBill(scope.row.udid)"> <el-link :underline="false" @click="showDeviceBill(scope.row.udid)">
{{ scope.row.udid }} {{ scope.row.udid }}
</el-link> </el-link>
@ -583,30 +590,30 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="product" align="center"
label="设备名称" label="设备名称"
width="200" prop="product"
align="center"> width="200">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="version"
align="center" align="center"
label="设备版本" label="设备版本"
prop="version"
> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="counts"
align="center" align="center"
label="设备安装次数" label="设备安装次数"
prop="counts"
width="110"> width="110">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="设备状态"
align="center" align="center"
label="设备状态"
width="110"> width="110">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag v-if="!scope.row.udid_sync_info_id" type="info">已经释放</el-tag> <el-tag v-if="!scope.row.udid_sync_info_id" type="info">已经释放</el-tag>
@ -619,15 +626,15 @@
</el-table> </el-table>
</el-tab-pane> </el-tab-pane>
<div style="margin-top: 20px" v-if="activeName!== 'adddeveloper'"> <div v-if="activeName!== 'adddeveloper'" style="margin-top: 20px">
<el-pagination <el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="pagination.currentPage" :current-page.sync="pagination.currentPage"
:page-sizes="[10, 20, 50, 100]"
:page-size="pagination.pagesize" :page-size="pagination.pagesize"
:page-sizes="[10, 20, 50, 100]"
:total="pagination.total"
layout="total,sizes, prev, pager, next" layout="total,sizes, prev, pager, next"
:total="pagination.total"> @size-change="handleSizeChange"
@current-change="handleCurrentChange">
</el-pagination> </el-pagination>
</div> </div>
</el-tabs> </el-tabs>
@ -637,7 +644,7 @@
<script> <script>
import {iosdeveloper, iosdevices, iosdevicesudid, developercert, DeviceBillInfo} from "@/restful"; import {developercert, DeviceBillInfo, iosdeveloper, iosdevices, iosdevicesudid} from "@/restful";
import {getUserInfoFun, removeAaary} from "@/utils"; import {getUserInfoFun, removeAaary} from "@/utils";
export default { export default {

@ -2,27 +2,27 @@
<el-main> <el-main>
<!-- vueCropper 剪裁图片实现--> <!-- vueCropper 剪裁图片实现-->
<el-dialog title="图片剪裁" :visible.sync="dialogVisible" append-to-body> <el-dialog :visible.sync="dialogVisible" append-to-body title="图片剪裁">
<div style="height: 500px"> <div style="height: 500px">
<vueCropper <vueCropper
ref="cropper" ref="cropper"
:img="option.img" :autoCrop="option.autoCrop"
:outputSize="option.size" :autoCropHeight="option.autoCropHeight"
:outputType="option.outputType" :autoCropWidth="option.autoCropWidth"
:info="true"
:full="option.full"
:canScale="option.canScale"
:canMove="option.canMove" :canMove="option.canMove"
:canMoveBox="option.canMoveBox" :canMoveBox="option.canMoveBox"
:autoCropWidth="option.autoCropWidth" :canScale="option.canScale"
:autoCropHeight="option.autoCropHeight" :centerBox="option.centerBox"
:original="option.original"
:autoCrop="option.autoCrop"
:fixed="option.fixed" :fixed="option.fixed"
:fixedBox="option.fixedBox"
:fixedNumber="option.fixedNumber" :fixedNumber="option.fixedNumber"
:centerBox="option.centerBox" :full="option.full"
:img="option.img"
:info="true"
:infoTrue="option.infoTrue" :infoTrue="option.infoTrue"
:fixedBox="option.fixedBox" :original="option.original"
:outputSize="option.size"
:outputType="option.outputType"
/> />
</div> </div>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
@ -32,9 +32,9 @@
</el-dialog> </el-dialog>
<el-dialog <el-dialog
:title="advert_title"
:close-on-click-modal="false" :close-on-click-modal="false"
:close-on-press-escape="false" :close-on-press-escape="false"
:title="advert_title"
:visible.sync="bind_advert_sure" :visible.sync="bind_advert_sure"
center center
width="666px"> width="666px">
@ -47,13 +47,13 @@
</el-form-item> </el-form-item>
<el-form-item label="展示图片【高80像素】"> <el-form-item label="展示图片【高80像素】">
<el-upload <el-upload
action="#"
drag
:show-file-list="false"
:auto-upload="false" :auto-upload="false"
:on-change="onUploadChange"
:show-file-list="false"
accept=".png , .jpg , .jpeg" accept=".png , .jpg , .jpeg"
style="max-height: 200px" action="#"
:on-change="onUploadChange"> drag
style="max-height: 200px">
<img v-if="upload_pic_b" :src="upload_pic_b" class="avatar"> <img v-if="upload_pic_b" :src="upload_pic_b" class="avatar">
<i v-else class="el-icon-plus avatar-uploader-icon"></i> <i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload> </el-upload>
@ -62,21 +62,21 @@
<el-input v-model="editadvertinfo.ad_uri" clearable/> <el-input v-model="editadvertinfo.ad_uri" clearable/>
</el-form-item> </el-form-item>
<el-form-item label="展示权重"> <el-form-item label="展示权重">
<el-input-number v-model="editadvertinfo.weight" :min="0" :max="100" <el-input-number v-model="editadvertinfo.weight" :max="100" :min="0"
label="展示权重"/> label="展示权重"/>
</el-form-item> </el-form-item>
<el-form-item label="是否发布"> <el-form-item label="是否发布">
<el-switch <el-switch
v-model="editadvertinfo.is_enable" v-model="editadvertinfo.is_enable"
active-color="#13ce66" active-color="#13ce66"
inactive-color="#ff4949"
active-text="发布" active-text="发布"
inactive-color="#ff4949"
inactive-text="未发布"> inactive-text="未发布">
</el-switch> </el-switch>
</el-form-item> </el-form-item>
<el-form-item label="备注"> <el-form-item label="备注">
<el-input type="textarea" v-model="editadvertinfo.description" <el-input v-model="editadvertinfo.description" :autosize="{ minRows: 3, maxRows: 6}"
:autosize="{ minRows: 3, maxRows: 6}"/> type="textarea"/>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -88,83 +88,83 @@
</el-dialog> </el-dialog>
<div> <div>
<el-input <el-input
style="width: 30%;margin-right: 30px;margin-bottom: 5px"
v-model="search_key" v-model="search_key"
clearable clearable
placeholder="输入名称搜索"/> placeholder="输入名称搜索"
<el-button type="primary" icon="el-icon-search" @click="handleCurrentChange(1)"> style="width: 30%;margin-right: 30px;margin-bottom: 5px"/>
<el-button icon="el-icon-search" type="primary" @click="handleCurrentChange(1)">
搜索 搜索
</el-button> </el-button>
<div style="float: right"> <div style="float: right">
<el-button type="primary" plain @click="bind_advert_sure=true,init_advertinfo()"> <el-button plain type="primary" @click="bind_advert_sure=true,init_advertinfo()">
添加 添加
</el-button> </el-button>
</div> </div>
<el-table <el-table
:data="advert_info_list"
v-loading="loading" v-loading="loading"
:data="advert_info_list"
border border
stripe stripe
style="width: 100%"> style="width: 100%">
<el-table-column <el-table-column
fixed
prop="ad_name"
align="center" align="center"
label="名称"> fixed
label="名称"
prop="ad_name">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
fixed
prop="ad_pic"
align="center" align="center"
label="展示图片"> fixed
label="展示图片"
prop="ad_pic">
<template slot-scope="scope"> <template slot-scope="scope">
<img :src="scope.row.ad_pic" style="max-height: 80px;width: 100%;object-fit: cover"/> <img :src="scope.row.ad_pic" style="max-height: 80px;width: 100%;object-fit: cover"/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
fixed
prop="ad_uri"
align="center" align="center"
label="点击跳转连接"> fixed
label="点击跳转连接"
prop="ad_uri">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="is_enable"
label="是否发布"
align="center" align="center"
label="是否发布"
prop="is_enable"
width="110"> width="110">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button v-if="scope.row.is_enable === true" type="success" size="small">已发布 <el-button v-if="scope.row.is_enable === true" size="small" type="success">已发布
</el-button> </el-button>
<el-button v-else type="warning" size="small">未发布 <el-button v-else size="small" type="warning">未发布
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="weight"
width="110"
align="center" align="center"
label="展示权重"> label="展示权重"
prop="weight"
width="110">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
:formatter="format_create_time" :formatter="format_create_time"
prop="created_time"
width="170"
align="center" align="center"
label="添加时间" label="添加时间"
prop="created_time"
width="170"
> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
align="center"
fixed="right" fixed="right"
label="操作" label="操作"
align="center"
width="150"> width="150">
<template slot-scope="scope"> <template slot-scope="scope">
@ -186,13 +186,13 @@
</div> </div>
<div style="margin-top: 20px;margin-bottom: 20px"> <div style="margin-top: 20px;margin-bottom: 20px">
<el-pagination <el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="pagination.currentPage" :current-page.sync="pagination.currentPage"
:page-sizes="[10, 20, 50, 100]"
:page-size="pagination.pagesize" :page-size="pagination.pagesize"
:page-sizes="[10, 20, 50, 100]"
:total="pagination.total"
layout="total,sizes, prev, pager, next" layout="total,sizes, prev, pager, next"
:total="pagination.total"> @size-change="handleSizeChange"
@current-change="handleCurrentChange">
</el-pagination> </el-pagination>
</div> </div>
</el-main> </el-main>
@ -202,7 +202,7 @@
import {advertinfo} from "@/restful"; import {advertinfo} from "@/restful";
import {VueCropper} from 'vue-cropper' import {VueCropper} from 'vue-cropper'
import {getUserInfoFun, AvatarUploadUtils, dataURLtoFile} from '@/utils' import {AvatarUploadUtils, dataURLtoFile, getUserInfoFun} from '@/utils'
export default { export default {
name: "FirUserAdvert", name: "FirUserAdvert",

@ -1,28 +1,28 @@
<template> <template>
<el-main> <el-main>
<el-dialog <el-dialog
:title="domain_title"
:close-on-click-modal="false" :close-on-click-modal="false"
:close-on-press-escape="false" :close-on-press-escape="false"
:title="domain_title"
:visible.sync="bind_domain_sure" :visible.sync="bind_domain_sure"
width="666px"> width="666px">
<bind-domain v-if="bind_domain_sure" transitionName="bind-app-domain" :app_id="current_domain_info.app_id" <bind-domain v-if="bind_domain_sure" :app_id="current_domain_info.app_id" :domain_state="true"
:domain_type="current_domain_info.domain_type" :domain_state="true"/> :domain_type="current_domain_info.domain_type" transitionName="bind-app-domain"/>
</el-dialog> </el-dialog>
<div> <div>
<el-input <el-input
style="width: 30%;margin-right: 30px;margin-bottom: 5px"
v-model="search_key" v-model="search_key"
clearable clearable
placeholder="输入域名或者应用名称搜索"/> placeholder="输入域名或者应用名称搜索"
<el-button type="primary" icon="el-icon-search" @click="handleCurrentChange(1)"> style="width: 30%;margin-right: 30px;margin-bottom: 5px"/>
<el-button icon="el-icon-search" type="primary" @click="handleCurrentChange(1)">
搜索 搜索
</el-button> </el-button>
<div style="float: right"> <div style="float: right">
<el-button type="primary" plain @click="$store.dispatch('dodomainaction', 1)"> <el-button plain type="primary" @click="$store.dispatch('dodomainaction', 1)">
设置下载页域名 设置下载页域名
</el-button> </el-button>
<el-button type="primary" plain v-if="$store.state.userinfo&&$store.state.userinfo.role >1" <el-button v-if="$store.state.userinfo&&$store.state.userinfo.role >1" plain type="primary"
@click="$store.dispatch('dodomainaction', 2)"> @click="$store.dispatch('dodomainaction', 2)">
设置下载码域名 设置下载码域名
</el-button> </el-button>
@ -30,41 +30,41 @@
<el-table <el-table
:data="domain_info_list"
v-loading="loading" v-loading="loading"
:data="domain_info_list"
border border
stripe stripe
style="width: 100%"> style="width: 100%">
<el-table-column <el-table-column
fixed
prop="domain_name"
align="center" align="center"
label="绑定域名"> fixed
label="绑定域名"
prop="domain_name">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tooltip content="点击复制到剪贴板"> <el-tooltip content="点击复制到剪贴板">
<el-link v-if="scope.row.domain_name" :underline="false" <el-link v-if="scope.row.domain_name" v-clipboard:copy="scope.row.domain_name"
v-clipboard:copy="scope.row.domain_name" v-clipboard:success="copy_success"
v-clipboard:success="copy_success">{{ scope.row.domain_name }} :underline="false">{{ scope.row.domain_name }}
</el-link> </el-link>
</el-tooltip> </el-tooltip>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="is_enable"
label="状态"
align="center" align="center"
label="状态"
prop="is_enable"
width="110"> width="110">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tooltip content="点击查看域名绑定信息" v-if="scope.row.is_enable === true" placement="left-start"> <el-tooltip v-if="scope.row.is_enable === true" content="点击查看域名绑定信息" placement="left-start">
<el-button type="success" size="small" @click="show_bind_domain_info(scope.row)">已绑定 <el-button size="small" type="success" @click="show_bind_domain_info(scope.row)">已绑定
</el-button> </el-button>
</el-tooltip> </el-tooltip>
<el-tooltip content="激活下载域名绑定信息" v-else placement="left-start"> <el-tooltip v-else content="激活下载域名绑定信息" placement="left-start">
<el-button type="warning" size="small" @click="show_bind_domain_info(scope.row)">继续绑定 <el-button size="small" type="warning" @click="show_bind_domain_info(scope.row)">继续绑定
</el-button> </el-button>
</el-tooltip> </el-tooltip>
@ -74,21 +74,23 @@
<el-table-column <el-table-column
prop="domain_type"
align="center" align="center"
label="域名类型" label="域名类型"
prop="domain_type"
width="260"> width="260">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tooltip content="点击查看应用信息" v-if="scope.row.domain_type===2 && scope.row.app_info" <el-tooltip v-if="scope.row.domain_type===2 && scope.row.app_info" content="点击查看应用信息"
placement="right-start"> placement="right-start">
<el-button type="info" plain size="small" @click="appInfos(scope.row.app_info)">{{ <el-button plain size="small" type="info" @click="appInfos(scope.row.app_info)">{{
format_domain_type(scope.row) }} format_domain_type(scope.row)
}}
</el-button> </el-button>
</el-tooltip> </el-tooltip>
<el-button v-else-if="scope.row.domain_type===1" type="success" plain size="small">{{ <el-button v-else-if="scope.row.domain_type===1" plain size="small" type="success">{{
format_domain_type(scope.row) }} format_domain_type(scope.row)
}}
</el-button> </el-button>
<el-button v-else type="primary" plain size="small">{{ format_domain_type(scope.row) }} <el-button v-else plain size="small" type="primary">{{ format_domain_type(scope.row) }}
</el-button> </el-button>
</template> </template>
@ -96,10 +98,10 @@
<el-table-column <el-table-column
:formatter="format_create_time" :formatter="format_create_time"
prop="created_time"
width="170"
align="center" align="center"
label="域名绑定时间" label="域名绑定时间"
prop="created_time"
width="170"
> >
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -108,13 +110,13 @@
</div> </div>
<div style="margin-top: 20px;margin-bottom: 20px"> <div style="margin-top: 20px;margin-bottom: 20px">
<el-pagination <el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="pagination.currentPage" :current-page.sync="pagination.currentPage"
:page-sizes="[10, 20, 50, 100]"
:page-size="pagination.pagesize" :page-size="pagination.pagesize"
:page-sizes="[10, 20, 50, 100]"
:total="pagination.total"
layout="total,sizes, prev, pager, next" layout="total,sizes, prev, pager, next"
:total="pagination.total"> @size-change="handleSizeChange"
@current-change="handleCurrentChange">
</el-pagination> </el-pagination>
</div> </div>
</el-main> </el-main>

@ -2,11 +2,11 @@
<el-main> <el-main>
<el-dialog <el-dialog
:visible.sync="wx_pay"
width="49%"
:close-on-click-modal="false" :close-on-click-modal="false"
:close-on-press-escape="false" :close-on-press-escape="false"
center> :visible.sync="wx_pay"
center
width="49%">
<div slot="title" style="margin-bottom: 10px"> <div slot="title" style="margin-bottom: 10px">
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
@ -14,7 +14,8 @@
<p class="detail">支付订单号 <span>{{ current_order_info.order_number }}</span></p> <p class="detail">支付订单号 <span>{{ current_order_info.order_number }}</span></p>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<p style="margin-top: 26px"><span class="order_text">订单金额</span><span class="amount">{{format_actual_amount(current_order_info) }}</span> <p style="margin-top: 26px"><span class="order_text">订单金额</span><span
class="amount">{{ format_actual_amount(current_order_info) }}</span>
</p> </p>
</el-col> </el-col>
@ -23,16 +24,16 @@
</div> </div>
<div class="pay_wx"> <div class="pay_wx">
<div> <div>
<div class="icon-weixin" :style="{background:`url(${pay_image.order_wx}) 0 0/100%`}"></div> <div :style="{background:`url(${pay_image.order_wx}) 0 0/100%`}" class="icon-weixin"></div>
<vue-qr :margin="qrinfo.margin" <vue-qr ref="qr"
class="code-wrap"
:logoScale="qrinfo.logoScale"
:logoCornerRadius="qrinfo.logoCornerRadius"
:correctLevel="qrinfo.correctLevel" :correctLevel="qrinfo.correctLevel"
:text="pay_code_url" :size="266" :logoCornerRadius="qrinfo.logoCornerRadius"
ref="qr"> :logoScale="qrinfo.logoScale"
:margin="qrinfo.margin"
:size="266" :text="pay_code_url"
class="code-wrap">
</vue-qr> </vue-qr>
<div class="tip-btn pay_wx"><span class="icon" :style="{backgroundImage:`url(${pay_image.scan})`}"/><span <div class="tip-btn pay_wx"><span :style="{backgroundImage:`url(${pay_image.scan})`}" class="icon"/><span
class="text">请使用微信扫码支付</span></div> class="text">请使用微信扫码支付</span></div>
<p style="margin-top: 30px">支付完成之后请刷新该页面确认支付状态</p> <p style="margin-top: 30px">支付完成之后请刷新该页面确认支付状态</p>
</div> </div>
@ -41,65 +42,65 @@
</el-dialog> </el-dialog>
<el-dialog <el-dialog
:visible.sync="show_order_info"
width="780px"
:close-on-click-modal="false" :close-on-click-modal="false"
:close-on-press-escape="false" :close-on-press-escape="false"
:visible.sync="show_order_info"
center
title="订单详情" title="订单详情"
top="6vh" top="6vh"
center> width="780px">
<div> <div>
<el-form :model="current_order_info" <el-form :model="current_order_info"
label-width="80px" style="margin:0 auto;"> label-width="80px" style="margin:0 auto;">
<el-form-item label-width="110px" label="平台订单ID"> <el-form-item label="平台订单ID" label-width="110px">
<el-input :value="current_order_info.order_number"/> <el-input :value="current_order_info.order_number"/>
</el-form-item> </el-form-item>
<el-form-item label-width="110px" label="第三方订单ID"> <el-form-item label="第三方订单ID" label-width="110px">
<el-input :value="current_order_info.payment_number"/> <el-input :value="current_order_info.payment_number"/>
</el-form-item> </el-form-item>
<el-form-item label-width="110px" label="付款方式"> <el-form-item label="付款方式" label-width="110px">
<el-input :value="format_payment_type(current_order_info)"/> <el-input :value="format_payment_type(current_order_info)"/>
</el-form-item> </el-form-item>
<el-form-item label-width="110px" label="订单状态"> <el-form-item label="订单状态" label-width="110px">
<el-input :value="format_status_type(current_order_info)"/> <el-input :value="format_status_type(current_order_info)"/>
</el-form-item> </el-form-item>
<el-form-item label-width="110px" label="订单类型"> <el-form-item label="订单类型" label-width="110px">
<el-input :value="format_order_type(current_order_info)"/> <el-input :value="format_order_type(current_order_info)"/>
</el-form-item> </el-form-item>
<el-form-item label-width="110px" label="实付金额"> <el-form-item label="实付金额" label-width="110px">
<el-input :value="format_actual_amount(current_order_info)"/> <el-input :value="format_actual_amount(current_order_info)"/>
</el-form-item> </el-form-item>
<el-form-item label-width="110px" label="购买数量"> <el-form-item label="购买数量" label-width="110px">
<el-input <el-input
:value="current_order_info.actual_download_times"/> :value="current_order_info.actual_download_times"/>
</el-form-item> </el-form-item>
<el-form-item label-width="110px" label="赠送数量"> <el-form-item label="赠送数量" label-width="110px">
<el-input <el-input
:value="current_order_info.actual_download_gift_times"/> :value="current_order_info.actual_download_gift_times"/>
</el-form-item> </el-form-item>
<el-form-item label-width="110px" label="订单创建时间"> <el-form-item label="订单创建时间" label-width="110px">
<el-input :value="format_create_time(current_order_info)"/> <el-input :value="format_create_time(current_order_info)"/>
</el-form-item> </el-form-item>
<el-form-item label-width="110px" label="订单支付时间"> <el-form-item label="订单支付时间" label-width="110px">
<el-input :value="format_pay_time(current_order_info)"/> <el-input :value="format_pay_time(current_order_info)"/>
</el-form-item> </el-form-item>
<el-form-item label-width="110px" label="订单取消时间"> <el-form-item label="订单取消时间" label-width="110px">
<el-input :value="format_cancel_time(current_order_info)"/> <el-input :value="format_cancel_time(current_order_info)"/>
</el-form-item> </el-form-item>
<el-form-item label-width="110px" label="备注"> <el-form-item label="备注" label-width="110px">
<el-input :value="current_order_info.description"/> <el-input :value="current_order_info.description"/>
</el-form-item> </el-form-item>
@ -115,53 +116,53 @@
<div> <div>
<el-input <el-input
style="width: 30%;margin-right: 30px;margin-bottom: 5px"
v-model="order_id_seach" v-model="order_id_seach"
clearable clearable
placeholder="输入订单ID"/> placeholder="输入订单ID"
<el-button type="primary" icon="el-icon-search" @click="handleCurrentChange(1)"> style="width: 30%;margin-right: 30px;margin-bottom: 5px"/>
<el-button icon="el-icon-search" type="primary" @click="handleCurrentChange(1)">
搜索 搜索
</el-button> </el-button>
<el-table <el-table
:data="order_info_list"
v-loading="loading" v-loading="loading"
:data="order_info_list"
border border
stripe stripe
style="width: 100%"> style="width: 100%">
<el-table-column <el-table-column
fixed fixed
prop="order_number" label="系统订单ID"
label="系统订单ID"> prop="order_number">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="status"
label="状态"
align="center" align="center"
label="状态"
prop="status"
width="110"> width="110">
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if="scope.row.status === 1 || scope.row.status === 2"> <div v-if="scope.row.status === 1 || scope.row.status === 2">
<el-button @click="goto_pay(scope.row)" <el-button size="small"
type="primary" size="small"> {{ format_status_type(scope.row)}} type="primary" @click="goto_pay(scope.row)"> {{ format_status_type(scope.row) }}
</el-button> </el-button>
</div> </div>
<div v-else-if="scope.row.status === 0"> <div v-else-if="scope.row.status === 0">
<el-button @click="click_order_info(scope.row)" <el-button size="small"
type="success" size="small"> {{ format_status_type(scope.row)}} type="success" @click="click_order_info(scope.row)"> {{ format_status_type(scope.row) }}
</el-button> </el-button>
</div> </div>
<div v-else-if="scope.row.status === 4 || scope.row.status ===5|| scope.row.status ===6"> <div v-else-if="scope.row.status === 4 || scope.row.status ===5|| scope.row.status ===6">
<el-button @click="click_order_info(scope.row)" <el-button size="small"
type="danger" size="small"> {{ format_status_type(scope.row)}} type="danger" @click="click_order_info(scope.row)"> {{ format_status_type(scope.row) }}
</el-button> </el-button>
</div> </div>
<div v-else> <div v-else>
<el-button @click="click_order_info(scope.row)" <el-button size="small"
type="warning" size="small"> {{ format_status_type(scope.row)}} type="warning" @click="click_order_info(scope.row)"> {{ format_status_type(scope.row) }}
</el-button> </el-button>
</div> </div>
@ -171,37 +172,37 @@
<el-table-column <el-table-column
:formatter="format_actual_amount" :formatter="format_actual_amount"
prop="actual_amount"
label="实付金额" label="实付金额"
prop="actual_amount"
width="100"> width="100">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="actual_download_times"
label="购买数量" label="购买数量"
prop="actual_download_times"
width="120"> width="120">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="actual_download_gift_times"
label="赠送数量" label="赠送数量"
prop="actual_download_gift_times"
width="90"> width="90">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
:formatter="format_payment_type" :formatter="format_payment_type"
prop="payment_type"
align="center" align="center"
label="支付方式" label="支付方式"
prop="payment_type"
width="80"> width="80">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
:formatter="format_create_time" :formatter="format_create_time"
prop="created_time"
width="170"
align="center" align="center"
label="订单创建时间" label="订单创建时间"
prop="created_time"
width="170"
> >
</el-table-column> </el-table-column>
@ -227,13 +228,13 @@
</div> </div>
<div style="margin-top: 20px;margin-bottom: 20px"> <div style="margin-top: 20px;margin-bottom: 20px">
<el-pagination <el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="pagination.currentPage" :current-page.sync="pagination.currentPage"
:page-sizes="[10, 20, 50, 100]"
:page-size="pagination.pagesize" :page-size="pagination.pagesize"
:page-sizes="[10, 20, 50, 100]"
:total="pagination.total"
layout="total,sizes, prev, pager, next" layout="total,sizes, prev, pager, next"
:total="pagination.total"> @size-change="handleSizeChange"
@current-change="handleCurrentChange">
</el-pagination> </el-pagination>
</div> </div>
</el-main> </el-main>

@ -3,11 +3,11 @@
<div class="user-info"> <div class="user-info">
<el-upload <el-upload
class="avatar-uploader" :before-upload="beforeAvatarUpload"
action="#"
:show-file-list="false" :show-file-list="false"
accept=".png , .jpg , .jpeg" accept=".png , .jpg , .jpeg"
:before-upload="beforeAvatarUpload"> action="#"
class="avatar-uploader">
<img v-if="imageUrl" :src="imageUrl" class="avatar"> <img v-if="imageUrl" :src="imageUrl" class="avatar">
<i v-else class="el-icon-plus avatar-uploader-icon"></i> <i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload> </el-upload>
@ -19,9 +19,9 @@
<div class="user_pro_tabs"> <div class="user_pro_tabs">
<el-row :gutter="12" class="row"> <el-row :gutter="12" class="row">
<el-col :span="tspan" :offset="3"> <el-col :offset="3" :span="tspan">
<div class="col-4"> <div class="col-4">
<a @click="$router.push({name:'FirUserProfileInfo'})" ref="userinfo" class=""> <a ref="userinfo" class="" @click="$router.push({name:'FirUserProfileInfo'})">
<span> <span>
<i class="el-icon-user"></i> <i class="el-icon-user"></i>
</span> </span>

@ -4,17 +4,17 @@
<el-form-item> <el-form-item>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-link :underline="false" type="success" style="font-size: x-large" <el-link v-if="certification.status === 1" :underline="false" style="font-size: x-large"
v-if="certification.status === 1">已经认证 type="success">已经认证
</el-link> </el-link>
<el-link :underline="false" type="primary" style="font-size: x-large" <el-link v-else-if="certification.status === 0" :underline="false" style="font-size: x-large"
v-else-if="certification.status === 0">审核中 type="primary">审核中
</el-link> </el-link>
<el-link v-else-if="certification.status === 2" :underline="false" type="danger" <el-link v-else-if="certification.status === 2" :underline="false" style="font-size: x-large"
style="font-size: x-large" type="danger"
>审核失败 >审核失败
</el-link> </el-link>
<el-link :underline="false" type="info" style="font-size: x-large" v-else>待认证</el-link> <el-link v-else :underline="false" style="font-size: x-large" type="info">待认证</el-link>
</el-col> </el-col>
</el-row> </el-row>
</el-form-item> </el-form-item>
@ -33,7 +33,7 @@
</el-col> </el-col>
</el-row> </el-row>
</el-form-item> </el-form-item>
<el-form-item label="手机号码" v-if="certification.mobile"> <el-form-item v-if="certification.mobile" label="手机号码">
<el-row :gutter="36"> <el-row :gutter="36">
<el-col :span="18"> <el-col :span="18">
<el-link :underline="false">{{ certification.mobile }}</el-link> <el-link :underline="false">{{ certification.mobile }}</el-link>
@ -76,16 +76,16 @@
<el-form-item label="真实姓名"> <el-form-item label="真实姓名">
<el-row :gutter="36"> <el-row :gutter="36">
<el-col :span="18"> <el-col :span="18">
<el-input v-model="form.name" :autofocus="true" prefix-icon="el-icon-user" <el-input v-model="form.name" :autofocus="true" clearable
placeholder="请输入真实姓名" clearable/> placeholder="请输入真实姓名" prefix-icon="el-icon-user"/>
</el-col> </el-col>
</el-row> </el-row>
</el-form-item> </el-form-item>
<el-form-item label="身份证号"> <el-form-item label="身份证号">
<el-row :gutter="36"> <el-row :gutter="36">
<el-col :span="18"> <el-col :span="18">
<el-input v-model="form.card" clearable prefix-icon="el-icon-s-order" <el-input v-model="form.card" clearable placeholder="请输入身份证号"
placeholder="请输入身份证号"/> prefix-icon="el-icon-s-order"/>
</el-col> </el-col>
</el-row> </el-row>
</el-form-item> </el-form-item>
@ -93,45 +93,45 @@
<el-form-item label="居住地址"> <el-form-item label="居住地址">
<el-row :gutter="36"> <el-row :gutter="36">
<el-col :span="18"> <el-col :span="18">
<el-input v-model="form.addr" clearable prefix-icon="el-icon-house" <el-input v-model="form.addr" clearable placeholder="请输入现居住地址"
placeholder="请输入现居住地址"/> prefix-icon="el-icon-house"/>
</el-col> </el-col>
</el-row> </el-row>
</el-form-item> </el-form-item>
<el-form-item label="手机号码" v-if="captcha.change_type.sms"> <el-form-item v-if="captcha.change_type.sms" label="手机号码">
<el-row :gutter="36"> <el-row :gutter="36">
<el-col :span="18"> <el-col :span="18">
<el-input v-model="form.mobile" ref="phone" clearable <el-input ref="phone" v-model="form.mobile" clearable
prefix-icon="el-icon-mobile" placeholder="请输入手机号码" maxlength="11"/> maxlength="11" placeholder="请输入手机号码" prefix-icon="el-icon-mobile"/>
</el-col> </el-col>
</el-row> </el-row>
</el-form-item> </el-form-item>
<el-form-item label="图片验证码" v-if="captcha.captcha_image"> <el-form-item v-if="captcha.captcha_image" label="图片验证码">
<el-row :gutter="11"> <el-row :gutter="11">
<el-col :span="12"> <el-col :span="12">
<el-input placeholder="请输入图片验证码" v-model="form.authcode" maxlength="6" clearable/> <el-input v-model="form.authcode" clearable maxlength="6" placeholder="请输入图片验证码"/>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-image <el-image
style="border-radius:4px;cursor:pointer;height: 40px"
:src="captcha.captcha_image" :src="captcha.captcha_image"
fit="contain" @click="get_auth_code"> fit="contain"
style="border-radius:4px;cursor:pointer;height: 40px" @click="get_auth_code">
</el-image> </el-image>
</el-col> </el-col>
</el-row> </el-row>
</el-form-item> </el-form-item>
<el-form-item label="手机验证码" v-if="captcha.change_type.sms"> <el-form-item v-if="captcha.change_type.sms" label="手机验证码">
<el-row :gutter="11"> <el-row :gutter="11">
<el-col :span="12"> <el-col :span="12">
<el-input v-model="form.auth_key" prefix-icon="el-icon-mobile" placeholder="请输入您收到的验证码" <el-input v-model="form.auth_key" clearable maxlength="6"
maxlength="6" clearable/> placeholder="请输入您收到的验证码" prefix-icon="el-icon-mobile"/>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-button type="info" @click="getsmsemailcode('sms',form.mobile)" plain <el-button plain style="border-radius:4px;cursor:pointer;height: 40px;background-color: #ecf5ff;color: #dd6161" type="info"
style="border-radius:4px;cursor:pointer;height: 40px;background-color: #ecf5ff;color: #dd6161"> @click="getsmsemailcode('sms',form.mobile)">
获取验证码 获取验证码
</el-button> </el-button>
</el-col> </el-col>
@ -147,19 +147,19 @@
</el-row> </el-row>
</el-form-item> </el-form-item>
<el-form-item label="身份证号"> <el-form-item label="身份证号">
<el-row style="height: 40px" :gutter="36"> <el-row :gutter="36" style="height: 40px">
<el-col :span="19"> <el-col :span="19">
<div class="appdownload"> <div class="appdownload">
<el-upload <el-upload
drag :before-upload="upload_one"
action="#"
accept=".png , .jpg , .jpeg" accept=".png , .jpg , .jpeg"
:before-upload="upload_one"> action="#"
drag>
<el-tooltip v-if="user_certification.one" placement="top"> <el-tooltip v-if="user_certification.one" placement="top">
<div slot="content">上传身份证<i style="color: #2abb9d!important;">国徽面</i>照片</div> <div slot="content">上传身份证<i style="color: #2abb9d!important;">国徽面</i>照片</div>
<img :src="user_certification.one" <img :src="user_certification.one"
class="avatar" alt="国徽面照片"> alt="国徽面照片" class="avatar">
</el-tooltip> </el-tooltip>
<i v-else class="avatar-uploader-icon" style="text-align: center"> <i v-else class="avatar-uploader-icon" style="text-align: center">
上传身份证<i style="color: #2abb9d!important;">国徽面</i>照片 上传身份证<i style="color: #2abb9d!important;">国徽面</i>照片
@ -169,15 +169,15 @@
<div class="appdownload"> <div class="appdownload">
<el-upload <el-upload
drag :before-upload="upload_two"
action="#"
accept=".png , .jpg , .jpeg" accept=".png , .jpg , .jpeg"
:before-upload="upload_two"> action="#"
drag>
<el-tooltip v-if="user_certification.two" placement="top"> <el-tooltip v-if="user_certification.two" placement="top">
<div slot="content">上传身份证<i style="color: #2abb9d!important;">人像面</i>照片</div> <div slot="content">上传身份证<i style="color: #2abb9d!important;">人像面</i>照片</div>
<img :src="user_certification.two" <img :src="user_certification.two"
class="avatar" alt="人像面照片"> alt="人像面照片" class="avatar">
</el-tooltip> </el-tooltip>
<i v-else class="avatar-uploader-icon" style="text-align: center"> <i v-else class="avatar-uploader-icon" style="text-align: center">
上传身份证<i style="color: #2abb9d!important;">人像面</i>照片 上传身份证<i style="color: #2abb9d!important;">人像面</i>照片
@ -187,14 +187,14 @@
<div class="appdownload"> <div class="appdownload">
<el-upload <el-upload
drag :before-upload="upload_three"
action="#"
accept=".png , .jpg , .jpeg" accept=".png , .jpg , .jpeg"
:before-upload="upload_three"> action="#"
drag>
<el-tooltip v-if="user_certification.three" placement="top"> <el-tooltip v-if="user_certification.three" placement="top">
<div slot="content">上传<i style="color: #2abb9d!important;">手持身份证</i>照片</div> <div slot="content">上传<i style="color: #2abb9d!important;">手持身份证</i>照片</div>
<img :src="user_certification.three" <img :src="user_certification.three"
class="avatar" alt="手持身份证照片"> alt="手持身份证照片" class="avatar">
</el-tooltip> </el-tooltip>
<i v-else class="avatar-uploader-icon" style="text-align: center"> <i v-else class="avatar-uploader-icon" style="text-align: center">
上传<i style="color: #2abb9d!important;">手持身份证</i>照片 上传<i style="color: #2abb9d!important;">手持身份证</i>照片
@ -220,7 +220,7 @@
<script> <script>
import {changeInfoFun, getAuthcTokenFun, user_certification} from "@/restful"; import {changeInfoFun, getAuthcTokenFun, user_certification} from "@/restful";
import {AvatarUploadUtils, getUserInfoFun, checkphone, geetest} from "@/utils"; import {AvatarUploadUtils, checkphone, geetest, getUserInfoFun} from "@/utils";
export default { export default {
name: "FirUserProfileCertification", name: "FirUserProfileCertification",

@ -5,16 +5,16 @@
<el-form-item label="当前密码"> <el-form-item label="当前密码">
<el-row :gutter="36"> <el-row :gutter="36">
<el-col :span="18"> <el-col :span="18">
<el-input v-model="form.oldpassword" show-password autofocus prefix-icon="el-icon-unlock" <el-input v-model="form.oldpassword" autofocus clearable placeholder="当前密码"
placeholder="当前密码" clearable/> prefix-icon="el-icon-unlock" show-password/>
</el-col> </el-col>
</el-row> </el-row>
</el-form-item> </el-form-item>
<el-form-item label="新密码"> <el-form-item label="新密码">
<el-row :gutter="36"> <el-row :gutter="36">
<el-col :span="18"> <el-col :span="18">
<el-input v-model="form.newpassword" show-password prefix-icon="el-icon-lock" <el-input v-model="form.newpassword" clearable placeholder="新密码"
placeholder="新密码" clearable/> prefix-icon="el-icon-lock" show-password/>
</el-col> </el-col>
</el-row> </el-row>
</el-form-item> </el-form-item>
@ -22,8 +22,8 @@
<el-form-item label="确认密码"> <el-form-item label="确认密码">
<el-row :gutter="36"> <el-row :gutter="36">
<el-col :span="18"> <el-col :span="18">
<el-input v-model="form.surepassword" show-password prefix-icon="el-icon-lock" <el-input v-model="form.surepassword" clearable placeholder="确认密码"
placeholder="确认密码" clearable/> prefix-icon="el-icon-lock" show-password/>
</el-col> </el-col>
</el-row> </el-row>
</el-form-item> </el-form-item>

@ -2,28 +2,28 @@
<div> <div>
<el-dialog <el-dialog
:close-on-click-modal="false"
:close-on-press-escape="false"
:visible.sync="show_wx_visible" :visible.sync="show_wx_visible"
width="780px"
center center
:close-on-click-modal="false" width="780px">
:close-on-press-escape="false">
<span slot="title" style="color: #313639;font-size: 28px; margin-bottom: 14px;"> <span slot="title" style="color: #313639;font-size: 28px; margin-bottom: 14px;">
微信授权登录用户信息 微信授权登录用户信息
</span> </span>
<el-tag style="margin-bottom: 10px">授权用户将可以使用微信扫码直接登录</el-tag> <el-tag style="margin-bottom: 10px">授权用户将可以使用微信扫码直接登录</el-tag>
<el-table <el-table
:data="wx_user_list" :data="wx_user_list"
stripe
border border
stripe
style="width: 100%"> style="width: 100%">
<el-table-column <el-table-column
label="昵称"
align="center" align="center"
label="昵称"
width="180"> width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<el-popover trigger="hover" placement="top"> <el-popover placement="top" trigger="hover">
<p>昵称: {{ scope.row.nickname }}</p> <p>昵称: {{ scope.row.nickname }}</p>
<p>性别: {{ scope.row.sex|sex_filter }}</p> <p>性别: {{ scope.row.sex|sex_filter }}</p>
<p>住址: {{ scope.row.address }}</p> <p>住址: {{ scope.row.address }}</p>
@ -36,8 +36,8 @@
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="头像"
align="center" align="center"
label="头像"
width="120"> width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<el-image :src="scope.row.head_img_url" style="width: 80px;height: 80px"/> <el-image :src="scope.row.head_img_url" style="width: 80px;height: 80px"/>
@ -45,19 +45,19 @@
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="关注公众号"
align="center" align="center"
label="关注公众号"
width="100"> width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<div slot="reference" class="name-wrapper"> <div slot="reference" class="name-wrapper">
<el-tag size="medium" v-if="scope.row.subscribe"></el-tag> <el-tag v-if="scope.row.subscribe" size="medium"></el-tag>
<el-tag size="medium" v-else type="danger"></el-tag> <el-tag v-else size="medium" type="danger"></el-tag>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="授权时间"
align="center" align="center"
label="授权时间"
width="200"> width="200">
<template slot-scope="scope"> <template slot-scope="scope">
<i class="el-icon-time"></i> <i class="el-icon-time"></i>
@ -65,8 +65,8 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="操作"
align="center" align="center"
label="操作"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
@ -81,21 +81,21 @@
</el-dialog> </el-dialog>
<el-form ref="form" :model="userinfo" label-width="90px"> <el-form ref="form" :model="userinfo" label-width="90px">
<el-form-item label="用户名" v-if="userinfo && userinfo.login_type && userinfo.login_type.up"> <el-form-item v-if="userinfo && userinfo.login_type && userinfo.login_type.up" label="用户名">
<el-row :gutter="36"> <el-row :gutter="36">
<el-col :span="16"> <el-col :span="16">
<el-input v-model="userinfo.username" :readonly="edituser_name !== true" <el-input ref="user_name" v-model="userinfo.username"
prefix-icon="el-icon-user" placeholder="用户名" ref="user_name" :readonly="edituser_name !== true" clearable placeholder="用户名"
clearable/> prefix-icon="el-icon-user"/>
</el-col> </el-col>
<el-col :span="1"> <el-col :span="1">
<el-button icon="el-icon-edit" @click="changeUsernameValue"> <el-button icon="el-icon-edit" @click="changeUsernameValue">
</el-button> </el-button>
</el-col> </el-col>
<el-col :span="5" v-if="edituser_name === true"> <el-col v-if="edituser_name === true" :span="5">
<el-button type="success" @click="saveUsername" plain <el-button class="save-button" plain type="success"
class="save-button"> @click="saveUsername">
保存 保存
</el-button> </el-button>
</el-col> </el-col>
@ -107,48 +107,48 @@
<el-form-item label="手机号码"> <el-form-item label="手机号码">
<el-row :gutter="36"> <el-row :gutter="36">
<el-col :span="16"> <el-col :span="16">
<el-input v-model="userinfo.mobile" ref="phone" :readonly="editphone !== true" <el-input ref="phone" v-model="userinfo.mobile" :disabled="!captcha.change_type.sms"
prefix-icon="el-icon-mobile" placeholder="手机" maxlength="11" clearable :readonly="editphone !== true" clearable maxlength="11" placeholder="手机"
:disabled="!captcha.change_type.sms"/> prefix-icon="el-icon-mobile"/>
</el-col> </el-col>
<el-col :span="1"> <el-col :span="1">
<el-button icon="el-icon-edit" @click="changePhoneValue"> <el-button icon="el-icon-edit" @click="changePhoneValue">
</el-button> </el-button>
</el-col> </el-col>
<el-col :span="5" v-if="editphone === true && captcha.change_type.sms"> <el-col v-if="editphone === true && captcha.change_type.sms" :span="5">
<el-button type="success" @click="savePhone" plain <el-button class="save-button" plain type="success"
class="save-button"> @click="savePhone">
保存 保存
</el-button> </el-button>
</el-col> </el-col>
</el-row> </el-row>
</el-form-item> </el-form-item>
<el-form-item label="图片验证码" style="height: 40px" <el-form-item v-if="editphone === true && captcha.captcha_image && captcha.change_type.sms" label="图片验证码"
v-if="editphone === true && captcha.captcha_image && captcha.change_type.sms"> style="height: 40px">
<el-row style="height: 40px" :gutter="36"> <el-row :gutter="36" style="height: 40px">
<el-col :span="14"> <el-col :span="14">
<el-input placeholder="请输入图片验证码" v-model="userinfo.authcode" maxlength="6" clearable/> <el-input v-model="userinfo.authcode" clearable maxlength="6" placeholder="请输入图片验证码"/>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-image <el-image
style="margin:0 4px;border-radius:4px;cursor:pointer;height: 40px"
:src="captcha.captcha_image" :src="captcha.captcha_image"
fit="contain" @click="get_auth_code"> fit="contain"
style="margin:0 4px;border-radius:4px;cursor:pointer;height: 40px" @click="get_auth_code">
</el-image> </el-image>
</el-col> </el-col>
</el-row> </el-row>
</el-form-item> </el-form-item>
<el-form-item label="手机验证码" v-if="editphone === true && captcha.change_type.sms"> <el-form-item v-if="editphone === true && captcha.change_type.sms" label="手机验证码">
<el-row :gutter="36"> <el-row :gutter="36">
<el-col :span="16"> <el-col :span="16">
<el-input v-model="userinfo.auth_key" prefix-icon="el-icon-mobile" placeholder="验证码" <el-input v-model="userinfo.auth_key" clearable maxlength="6"
maxlength="6" clearable/> placeholder="验证码" prefix-icon="el-icon-mobile"/>
</el-col> </el-col>
<el-col :span="7"> <el-col :span="7">
<el-button type="info" @click="getsmsemailcode('sms',userinfo.mobile)" plain <el-button class="save-button" plain type="info"
class="save-button"> @click="getsmsemailcode('sms',userinfo.mobile)">
获取验证码 获取验证码
</el-button> </el-button>
</el-col> </el-col>
@ -160,17 +160,17 @@
<el-form-item label="邮箱地址"> <el-form-item label="邮箱地址">
<el-row :gutter="36"> <el-row :gutter="36">
<el-col :span="16"> <el-col :span="16">
<el-input v-model="userinfo.email" ref="email" :readonly="editemail !== true" <el-input ref="email" v-model="userinfo.email" :disabled="!captcha.change_type.email"
prefix-icon="el-icon-bank-card" placeholder="邮箱" maxlength="20" clearable :readonly="editemail !== true" clearable maxlength="20" placeholder="邮箱"
:disabled="!captcha.change_type.email"/> prefix-icon="el-icon-bank-card"/>
</el-col> </el-col>
<el-col :span="1"> <el-col :span="1">
<el-button icon="el-icon-edit" @click="changeemailValue"> <el-button icon="el-icon-edit" @click="changeemailValue">
</el-button> </el-button>
</el-col> </el-col>
<el-col :span="5" v-if="editemail === true && captcha.change_type.email"> <el-col v-if="editemail === true && captcha.change_type.email" :span="5">
<el-button type="success" @click="saveemail" plain <el-button class="save-button" plain type="success"
class="save-button"> @click="saveemail">
保存 保存
</el-button> </el-button>
</el-col> </el-col>
@ -178,31 +178,31 @@
</el-form-item> </el-form-item>
<el-form-item label="图片验证码" style="height: 40px" <el-form-item v-if="editemail === true && captcha.captcha_image && captcha.change_type.email" label="图片验证码"
v-if="editemail === true && captcha.captcha_image && captcha.change_type.email"> style="height: 40px">
<el-row style="height: 40px" :gutter="36"> <el-row :gutter="36" style="height: 40px">
<el-col :span="14"> <el-col :span="14">
<el-input placeholder="请输入图片验证码" v-model="userinfo.authcode" maxlength="6" clearable/> <el-input v-model="userinfo.authcode" clearable maxlength="6" placeholder="请输入图片验证码"/>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-image <el-image
style="margin:0 4px;border-radius:4px;cursor:pointer;height: 40px"
:src="captcha.captcha_image" :src="captcha.captcha_image"
fit="contain" @click="get_auth_code"> fit="contain"
style="margin:0 4px;border-radius:4px;cursor:pointer;height: 40px" @click="get_auth_code">
</el-image> </el-image>
</el-col> </el-col>
</el-row> </el-row>
</el-form-item> </el-form-item>
<el-form-item label="邮箱验证码" v-if="editemail === true && captcha.change_type.email"> <el-form-item v-if="editemail === true && captcha.change_type.email" label="邮箱验证码">
<el-row :gutter="36"> <el-row :gutter="36">
<el-col :span="16"> <el-col :span="16">
<el-input v-model="userinfo.auth_key" prefix-icon="el-icon-mobile" placeholder="验证码" <el-input v-model="userinfo.auth_key" clearable maxlength="6"
maxlength="6" clearable/> placeholder="验证码" prefix-icon="el-icon-mobile"/>
</el-col> </el-col>
<el-col :span="7"> <el-col :span="7">
<el-button type="info" @click="getsmsemailcode('email',userinfo.email)" plain <el-button class="save-button" plain type="info"
class="save-button"> @click="getsmsemailcode('email',userinfo.email)">
获取验证码 获取验证码
</el-button> </el-button>
</el-col> </el-col>
@ -220,9 +220,9 @@
<el-form-item label="下载域名"> <el-form-item label="下载域名">
<el-row :gutter="36"> <el-row :gutter="36">
<el-col :span="16"> <el-col :span="16">
<el-input :value="userinfo.domain_name" :readonly="true" ref="domain_name" <el-input ref="domain_name" :readonly="true" :value="userinfo.domain_name"
prefix-icon="el-icon-download" clearable
placeholder="下载页域名" clearable/> placeholder="下载页域名" prefix-icon="el-icon-download"/>
</el-col> </el-col>
</el-row> </el-row>
</el-form-item> </el-form-item>
@ -230,16 +230,16 @@
<el-form-item label="职位"> <el-form-item label="职位">
<el-row :gutter="36"> <el-row :gutter="36">
<el-col :span="16"> <el-col :span="16">
<el-input v-model="userinfo.job" ref="position" :readonly="editposition !== true" <el-input ref="position" v-model="userinfo.job" :readonly="editposition !== true"
prefix-icon="el-icon-postcard" placeholder="职位" clearable/> clearable placeholder="职位" prefix-icon="el-icon-postcard"/>
</el-col> </el-col>
<el-col :span="1"> <el-col :span="1">
<el-button icon="el-icon-edit" @click="changePositionValue"> <el-button icon="el-icon-edit" @click="changePositionValue">
</el-button> </el-button>
</el-col> </el-col>
<el-col :span="5" v-if="editposition === true"> <el-col v-if="editposition === true" :span="5">
<el-button type="success" @click="savePositionValue" plain <el-button class="save-button" plain type="success"
class="save-button"> @click="savePositionValue">
保存 保存
</el-button> </el-button>
@ -247,17 +247,17 @@
</el-row> </el-row>
</el-form-item> </el-form-item>
<div class="other-way" <div v-if="userinfo && userinfo.login_type && userinfo.login_type.third && JSON.stringify(userinfo.login_type.third).indexOf('true')!==-1"
v-if="userinfo && userinfo.login_type && userinfo.login_type.third && JSON.stringify(userinfo.login_type.third).indexOf('true')!==-1"> class="other-way">
<hr> <hr>
<span class="info">绑定第三方账户</span> <span class="info">绑定第三方账户</span>
<el-row :gutter="20" v-if="userinfo.login_type.third && userinfo.login_type.third.wxp"> <el-row v-if="userinfo.login_type.third && userinfo.login_type.third.wxp" :gutter="20">
<el-col :span="6" :offset="6"> <el-col :offset="6" :span="6">
<el-popover <el-popover
v-model="wx_visible"
placement="top" placement="top"
trigger="manual"
title="打开微信扫一扫进行绑定" title="打开微信扫一扫进行绑定"
v-model="wx_visible"> trigger="manual">
<div> <div>
<el-image :src="wx_login_qr_url" style="width: 176px;height: 166px"/> <el-image :src="wx_login_qr_url" style="width: 176px;height: 166px"/>
</div> </div>

@ -1,70 +1,70 @@
<template> <template>
<el-main> <el-main>
<h2 v-if="is_admin_storage">管理员存储您配置的存储将决定其他用户配置的默认存储请谨慎修改</h2> <h2 v-if="is_admin_storage">管理员存储您配置的存储将决定其他用户配置的默认存储请谨慎修改</h2>
<el-dialog :title="title" :visible.sync="dialogstorageVisible" :destroy-on-close="true" <el-dialog :close-on-click-modal="false" :destroy-on-close="true" :title="title"
:close-on-click-modal="false"> :visible.sync="dialogstorageVisible">
<el-form v-if="editstorageinfo.id !==-1" ref="storageinfoform" :model="editstorageinfo" <el-form v-if="editstorageinfo.id !==-1" ref="storageinfoform" :model="editstorageinfo"
label-width="80px" style="margin:0 auto;"> label-width="80px" style="margin:0 auto;">
<el-form-item label-width="100px" label="存储类型"> <el-form-item label="存储类型" label-width="100px">
<el-select :disabled='disabled' v-model="editstorageinfo.storage_type" placeholder="存储类型" <el-select v-model="editstorageinfo.storage_type" :disabled='disabled' placeholder="存储类型"
style="margin-left: -100px"> style="margin-left: -100px">
<el-option v-for="st in storage_list" :key="st.id" :label="st.name" :value="st.id"/> <el-option v-for="st in storage_list" :key="st.id" :label="st.name" :value="st.id"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<div v-if="editstorageinfo.storage_type"> <div v-if="editstorageinfo.storage_type">
<el-form-item label-width="110px" label="存储名称"> <el-form-item label="存储名称" label-width="110px">
<el-input :disabled='disabled' v-model="editstorageinfo.name"/> <el-input v-model="editstorageinfo.name" :disabled='disabled'/>
</el-form-item> </el-form-item>
<el-form-item label-width="110px" label="key"> <el-form-item label="key" label-width="110px">
<el-input :disabled='disabled' v-model="editstorageinfo.access_key"/> <el-input v-model="editstorageinfo.access_key" :disabled='disabled'/>
</el-form-item> </el-form-item>
<el-form-item label-width="110px" label="secret"> <el-form-item label="secret" label-width="110px">
<el-input :disabled='disabled' v-model="editstorageinfo.secret_key" placeholder="为空表示不修改该信息"/> <el-input v-model="editstorageinfo.secret_key" :disabled='disabled' placeholder="为空表示不修改该信息"/>
</el-form-item> </el-form-item>
<el-form-item label-width="110px" label="bucket_name"> <el-form-item label="bucket_name" label-width="110px">
<el-input :disabled='disabled' v-model="editstorageinfo.bucket_name"/> <el-input v-model="editstorageinfo.bucket_name" :disabled='disabled'/>
</el-form-item> </el-form-item>
<el-form-item label-width="110px" label="下载域名"> <el-form-item label="下载域名" label-width="110px">
<el-input :disabled='disabled' v-model="editstorageinfo.domain_name"/> <el-input v-model="editstorageinfo.domain_name" :disabled='disabled'/>
</el-form-item> </el-form-item>
<div v-if="editstorageinfo.storage_type === 2"> <div v-if="editstorageinfo.storage_type === 2">
<el-form-item label-width="110px" label="sts_role_arn"> <el-form-item label="sts_role_arn" label-width="110px">
<el-input :disabled='disabled' <el-input v-model="editstorageinfo.sts_role_arn"
v-model="editstorageinfo.sts_role_arn"/> :disabled='disabled'/>
</el-form-item> </el-form-item>
<el-form-item label-width="110px" label="endpoint"> <el-form-item label="endpoint" label-width="110px">
<el-input :disabled='disabled' <el-input v-model="editstorageinfo.endpoint"
v-model="editstorageinfo.endpoint"/> :disabled='disabled'/>
</el-form-item> </el-form-item>
<el-form-item label-width="110px" label="下载授权方式"> <el-form-item label="下载授权方式" label-width="110px">
<el-select v-model="editstorageinfo.download_auth_type" <el-select v-model="editstorageinfo.download_auth_type"
placeholder="下载授权方式" :disabled="disabled"
style="width: 80%" :disabled="disabled"> placeholder="下载授权方式" style="width: 80%">
<el-option v-for="st in editstorageinfo.download_auth_type_choices" :key="st.id" <el-option v-for="st in editstorageinfo.download_auth_type_choices" :key="st.id"
:label="st.name" :label="st.name"
:value="st.id"/> :value="st.id"/>
</el-select> </el-select>
<el-form-item label-width="120px" style="margin-top: 10px;margin-left: 70px;width: 60%" <el-form-item v-if="editstorageinfo.download_auth_type === 2" label="CDN鉴权主KEY"
label="CDN鉴权主KEY" label-width="120px"
v-if="editstorageinfo.download_auth_type === 2"> style="margin-top: 10px;margin-left: 70px;width: 60%">
<el-input :disabled='disabled' placeholder="CDN鉴权主KEY" <el-input v-model="editstorageinfo.cnd_auth_key" :disabled='disabled'
v-model="editstorageinfo.cnd_auth_key"/> placeholder="CDN鉴权主KEY"/>
</el-form-item> </el-form-item>
</el-form-item> </el-form-item>
</div> </div>
<el-form-item label-width="110px" label="备注"> <el-form-item label="备注" label-width="110px">
<el-input :disabled='disabled' v-model="editstorageinfo.description"/> <el-input v-model="editstorageinfo.description" :disabled='disabled'/>
</el-form-item> </el-form-item>
<el-button v-if="!disabled" @click="updateorcreate">保存</el-button> <el-button v-if="!disabled" @click="updateorcreate">保存</el-button>
@ -74,9 +74,9 @@
</el-form> </el-form>
</el-dialog> </el-dialog>
<el-tabs v-model="activeName" @tab-click="handleClick" tab-position="top" type="border-card"> <el-tabs v-model="activeName" tab-position="top" type="border-card" @tab-click="handleClick">
<el-tab-pane label="存储选择" name="change"> <el-tab-pane label="存储选择" name="change">
<el-select v-model="use_storage_id" filterable :placeholder="selectlabel" @change="select_storage"> <el-select v-model="use_storage_id" :placeholder="selectlabel" filterable @change="select_storage">
<el-option-group <el-option-group
v-for="storage_group in fstorage_lists" v-for="storage_group in fstorage_lists"
:key="storage_group.group_name" :key="storage_group.group_name"
@ -90,13 +90,13 @@
</el-option-group> </el-option-group>
</el-select> </el-select>
<div v-if="use_storage_id!==org_storage_id" style="margin-top: 20px"> <div v-if="use_storage_id!==org_storage_id" style="margin-top: 20px">
<el-button style="margin-left: 10px" round type="info" <el-button icon="el-icon-thumb" round style="margin-left: 10px"
icon="el-icon-thumb" type="info"
@click="change_storage_info(0)"> @click="change_storage_info(0)">
迁移数据并保存 迁移数据并保存
</el-button> </el-button>
<el-button style="margin-left: 10px" round type="danger" <el-button icon="el-icon-thumb" round style="margin-left: 10px"
icon="el-icon-thumb" type="danger"
@click="change_storage_info(1)"> @click="change_storage_info(1)">
强制迁移忽略数据迁移失败错误可能会导致数据丢失 强制迁移忽略数据迁移失败错误可能会导致数据丢失
</el-button> </el-button>
@ -104,8 +104,8 @@
<el-divider/> <el-divider/>
<el-form v-if="storageinfo.id && storageinfo.id !==-1" ref="storageinfoform" :model="storageinfo" <el-form v-if="storageinfo.id && storageinfo.id !==-1" ref="storageinfoform" :model="storageinfo"
label-width="80px" style="width: 39%;margin:0 auto;"> label-width="80px" style="width: 39%;margin:0 auto;">
<el-form-item label-width="110px" label="存储类型"> <el-form-item label="存储类型" label-width="110px">
<el-select :disabled='Sdisabled' v-model="storageinfo.storage_type" placeholder="存储类型" <el-select v-model="storageinfo.storage_type" :disabled='Sdisabled' placeholder="存储类型"
style="margin-left: -60px"> style="margin-left: -60px">
<el-option v-for="st in storage_list" :key="st.id" :label="st.name" <el-option v-for="st in storage_list" :key="st.id" :label="st.name"
:value="st.id"/> :value="st.id"/>
@ -114,51 +114,51 @@
<div v-if="storageinfo.storage_type"> <div v-if="storageinfo.storage_type">
<el-form-item label-width="110px" label="存储名称"> <el-form-item label="存储名称" label-width="110px">
<el-input :disabled='Sdisabled' v-model="storageinfo.name"/> <el-input v-model="storageinfo.name" :disabled='Sdisabled'/>
</el-form-item> </el-form-item>
<el-form-item label-width="110px" label="key"> <el-form-item label="key" label-width="110px">
<el-input :disabled='Sdisabled' v-model="storageinfo.access_key"/> <el-input v-model="storageinfo.access_key" :disabled='Sdisabled'/>
</el-form-item> </el-form-item>
<el-form-item label-width="110px" label="bucket_name"> <el-form-item label="bucket_name" label-width="110px">
<el-input :disabled='Sdisabled' v-model="storageinfo.bucket_name"/> <el-input v-model="storageinfo.bucket_name" :disabled='Sdisabled'/>
</el-form-item> </el-form-item>
<el-form-item label-width="110px" label="下载域名"> <el-form-item label="下载域名" label-width="110px">
<el-input :disabled='Sdisabled' v-model="storageinfo.domain_name"/> <el-input v-model="storageinfo.domain_name" :disabled='Sdisabled'/>
</el-form-item> </el-form-item>
<div v-if="storageinfo.storage_type === 2"> <div v-if="storageinfo.storage_type === 2">
<el-form-item label-width="110px" label="sts_role_arn"> <el-form-item label="sts_role_arn" label-width="110px">
<el-input :disabled='Sdisabled' <el-input v-model="storageinfo.sts_role_arn"
v-model="storageinfo.sts_role_arn"/> :disabled='Sdisabled'/>
</el-form-item> </el-form-item>
<el-form-item label-width="110px" label="endpoint"> <el-form-item label="endpoint" label-width="110px">
<el-input :disabled='Sdisabled' <el-input v-model="storageinfo.endpoint"
v-model="storageinfo.endpoint"/> :disabled='Sdisabled'/>
</el-form-item> </el-form-item>
<el-form-item label-width="110px" label="下载授权方式"> <el-form-item label="下载授权方式" label-width="110px">
<el-select v-model="storageinfo.download_auth_type" <el-select v-model="storageinfo.download_auth_type"
placeholder="下载授权方式" :disabled="disabled"
style="width: 100%" :disabled="disabled"> placeholder="下载授权方式" style="width: 100%">
<el-option v-for="st in storageinfo.download_auth_type_choices" :key="st.id" <el-option v-for="st in storageinfo.download_auth_type_choices" :key="st.id"
:label="st.name" :label="st.name"
:value="st.id"/> :value="st.id"/>
</el-select> </el-select>
<el-form-item label-width="120px" style="margin-top: 10px;width: 100%" label="CDN鉴权主KEY" <el-form-item v-if="storageinfo.download_auth_type === 2" label="CDN鉴权主KEY" label-width="120px"
v-if="storageinfo.download_auth_type === 2"> style="margin-top: 10px;width: 100%">
<el-input :disabled='disabled' placeholder="CDN鉴权主KEY" <el-input v-model="storageinfo.cnd_auth_key" :disabled='disabled'
v-model="storageinfo.cnd_auth_key"/> placeholder="CDN鉴权主KEY"/>
</el-form-item> </el-form-item>
</el-form-item> </el-form-item>
</div> </div>
<el-form-item label-width="110px" label="备注"> <el-form-item label="备注" label-width="110px">
<el-input :disabled='Sdisabled' v-model="storageinfo.description"/> <el-input v-model="storageinfo.description" :disabled='Sdisabled'/>
</el-form-item> </el-form-item>
</div> </div>
@ -168,42 +168,42 @@
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="存储管理" name="edit"> <el-tab-pane label="存储管理" name="edit">
<el-table <el-table
v-loading="loading"
:data="storage_info_lists" :data="storage_info_lists"
border border
v-loading="loading"
stripe stripe
style="width: 100%"> style="width: 100%">
<el-table-column <el-table-column
fixed fixed
prop="name"
label="存储名称" label="存储名称"
prop="name"
width="180"> width="180">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="storage_type_display"
label="存储类型" label="存储类型"
prop="storage_type_display"
width="100"> width="100">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="domain_name" label="下载域名"
label="下载域名"> prop="domain_name">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="bucket_name"
label="bucket_name" label="bucket_name"
prop="bucket_name"
width="130"> width="130">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
:formatter="formatter" :formatter="formatter"
prop="updated_time"
label="修改时间" label="修改时间"
prop="updated_time"
width="170"> width="170">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="description" label="备注"
label="备注"> prop="description">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
fixed="right" fixed="right"
@ -211,14 +211,14 @@
width="120"> width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if="scope.row.id === org_storage_id"> <div v-if="scope.row.id === org_storage_id">
<el-button v-if="scope.row.id === org_storage_id" @click="showstorage(scope.row)" <el-button v-if="scope.row.id === org_storage_id" size="small"
type="success" size="small">使用中 type="success" @click="showstorage(scope.row)">使用中
</el-button> </el-button>
</div> </div>
<div v-else> <div v-else>
<el-button @click="showstorage(scope.row)" type="text" size="small">查看</el-button> <el-button size="small" type="text" @click="showstorage(scope.row)">查看</el-button>
<el-button @click="editstorage(scope.row)" type="text" size="small">编辑</el-button> <el-button size="small" type="text" @click="editstorage(scope.row)">编辑</el-button>
<el-button @click="del_storage_info(scope.row)" type="text" size="small">删除</el-button> <el-button size="small" type="text" @click="del_storage_info(scope.row)">删除</el-button>
</div> </div>
</template> </template>
@ -228,7 +228,7 @@
<el-tab-pane label="存储新增" name="add"> <el-tab-pane label="存储新增" name="add">
<el-form ref="storageinfoform" :model="editstorageinfo" <el-form ref="storageinfoform" :model="editstorageinfo"
label-width="80px" style="margin:0 auto;"> label-width="80px" style="margin:0 auto;">
<el-form-item label-width="100px" label="存储类型"> <el-form-item label="存储类型" label-width="100px">
<el-select v-model="editstorageinfo.storage_type" placeholder="存储类型" <el-select v-model="editstorageinfo.storage_type" placeholder="存储类型"
style="margin-left: -100px"> style="margin-left: -100px">
<el-option v-for="st in storage_list" :key="st.id" :label="st.name" <el-option v-for="st in storage_list" :key="st.id" :label="st.name"
@ -237,36 +237,36 @@
</el-form-item> </el-form-item>
<div v-if="editstorageinfo.storage_type"> <div v-if="editstorageinfo.storage_type">
<el-form-item label-width="110px" label="存储名称"> <el-form-item label="存储名称" label-width="110px">
<el-input v-model="editstorageinfo.name"/> <el-input v-model="editstorageinfo.name"/>
</el-form-item> </el-form-item>
<el-form-item label-width="110px" label="key"> <el-form-item label="key" label-width="110px">
<el-input v-model="editstorageinfo.access_key"/> <el-input v-model="editstorageinfo.access_key"/>
</el-form-item> </el-form-item>
<el-form-item label-width="110px" label="secret"> <el-form-item label="secret" label-width="110px">
<el-input v-model="editstorageinfo.secret_key"/> <el-input v-model="editstorageinfo.secret_key"/>
</el-form-item> </el-form-item>
<el-form-item label-width="110px" label="bucket_name"> <el-form-item label="bucket_name" label-width="110px">
<el-input v-model="editstorageinfo.bucket_name"/> <el-input v-model="editstorageinfo.bucket_name"/>
</el-form-item> </el-form-item>
<el-form-item label-width="110px" label="下载域名"> <el-form-item label="下载域名" label-width="110px">
<el-input v-model="editstorageinfo.domain_name"/> <el-input v-model="editstorageinfo.domain_name"/>
</el-form-item> </el-form-item>
<div v-if="editstorageinfo.storage_type === 2"> <div v-if="editstorageinfo.storage_type === 2">
<el-form-item label-width="110px" label="sts_role_arn"> <el-form-item label="sts_role_arn" label-width="110px">
<el-input <el-input
v-model="editstorageinfo.sts_role_arn"/> v-model="editstorageinfo.sts_role_arn"/>
</el-form-item> </el-form-item>
<el-form-item label-width="110px" label="endpoint"> <el-form-item label="endpoint" label-width="110px">
<el-input <el-input
v-model="editstorageinfo.endpoint"/> v-model="editstorageinfo.endpoint"/>
</el-form-item> </el-form-item>
<el-form-item label-width="110px" label="下载授权方式"> <el-form-item label="下载授权方式" label-width="110px">
<el-select v-model="editstorageinfo.download_auth_type" <el-select v-model="editstorageinfo.download_auth_type"
placeholder="下载授权方式" placeholder="下载授权方式"
style="width: 80%"> style="width: 80%">
@ -275,18 +275,18 @@
:value="st.id"/> :value="st.id"/>
</el-select> </el-select>
<el-form-item label-width="120px" style="margin-top: 10px;margin-left: 70px;width: 60%" <el-form-item v-if="editstorageinfo.download_auth_type === 2" label="CDN鉴权主KEY"
label="CDN鉴权主KEY" label-width="120px"
v-if="editstorageinfo.download_auth_type === 2"> style="margin-top: 10px;margin-left: 70px;width: 60%">
<el-input placeholder="CDN鉴权主KEY" <el-input v-model="editstorageinfo.cnd_auth_key"
v-model="editstorageinfo.cnd_auth_key"/> placeholder="CDN鉴权主KEY"/>
</el-form-item> </el-form-item>
</el-form-item> </el-form-item>
</div> </div>
<el-form-item label-width="110px" label="备注"> <el-form-item label="备注" label-width="110px">
<el-input v-model="editstorageinfo.description"/> <el-input v-model="editstorageinfo.description"/>
</el-form-item> </el-form-item>

@ -5,20 +5,20 @@ import router from "@/router/download";
import 'element-ui/lib/theme-chalk/index.css' import 'element-ui/lib/theme-chalk/index.css'
import { import {
Button, Button,
Col,
Container, Container,
Divider, Divider,
Form,
FormItem,
Header,
Input, Input,
Link, Link,
Main, Main,
Message, Message,
Select, Notification,
Option, Option,
Header,
Form,
FormItem,
Row, Row,
Col, Select
Notification
} from "element-ui"; } from "element-ui";
import VueLazyload from 'vue-lazyload' import VueLazyload from 'vue-lazyload'

Loading…
Cancel
Save