change: 账户修改,liense工具下载

main
hcj 9 months ago
parent a6f3e31e71
commit c228536503
  1. 1
      .env.development
  2. 4
      package.json
  3. BIN
      pc_test.zip
  4. BIN
      public/assets/empty/noEvaluate.png
  5. BIN
      public/assets/empty/noTrainClass.png
  6. BIN
      public/assets/empty/noUsePerson.png
  7. 54
      src/App.vue
  8. 8
      src/api/my/testb.js
  9. 10
      src/api/train/index.js
  10. 51
      src/components/emptyPage/index.vue
  11. 29
      src/components/envMessageBox/index.vue
  12. 60
      src/components/myUpload/index.vue
  13. 7
      src/const/dict/commondict.js
  14. 3
      src/main.js
  15. 65
      src/page/common/mobileTip.vue
  16. 292
      src/page/community/index.vue
  17. 1
      src/page/homepage/crowdsourcing/publishtasks.vue
  18. 318
      src/page/homepage/tool/tooldetails.vue
  19. 2
      src/page/homepage/tool/toolmarker.vue
  20. 288
      src/page/homepage/traininstitute/train.vue
  21. 19
      src/page/personalpage/demand/index.vue
  22. 111
      src/page/personalpage/myBm/index.vue
  23. 5
      src/page/personalpage/myreview/index.vue
  24. 96
      src/page/personalpage/testmanagement/mytool.vue
  25. 5
      src/page/personalpage/testtool/myorder.vue
  26. 501
      src/page/personalpage/testtreasure/testKit.vue
  27. 18
      src/router/router.js
  28. 1
      src/style/index.scss
  29. 1
      src/style/variable.scss
  30. 39
      src/util/cpoyText.js
  31. 12
      src/util/runEnv.js
  32. 8
      vue.config.js

@ -6,6 +6,7 @@ VUE_APP_BASE_API = '/prod-api'
VUE_APP_BASE_TARGET = 'http://192.168.0.229:9999' VUE_APP_BASE_TARGET = 'http://192.168.0.229:9999'
# VUE_APP_BASE_TARGET = 'http://192.168.0.129:9999' # VUE_APP_BASE_TARGET = 'http://192.168.0.129:9999'
# VUE_APP_BASE_TARGET = 'http://172.16.36.180:9999' # VUE_APP_BASE_TARGET = 'http://172.16.36.180:9999'
# VUE_APP_BASE_TARGET = 'http://172.16.36.176:9998' # VUE_APP_BASE_TARGET = 'http://172.16.36.176:9998'

@ -38,7 +38,9 @@
"@vue/cli-plugin-babel": "^3.0.0-rc.5", "@vue/cli-plugin-babel": "^3.0.0-rc.5",
"@vue/cli-service": "^3.0.0-rc.5", "@vue/cli-service": "^3.0.0-rc.5",
"vue-template-compiler": "^2.5.16", "vue-template-compiler": "^2.5.16",
"webpack-bundle-analyzer": "^4.10.2" "webpack-bundle-analyzer": "^4.10.2",
"sass": "^1.77.8",
"sass-loader": "^7.1.0"
}, },
"postcss": { "postcss": {
"plugins": { "plugins": {

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

@ -4,40 +4,62 @@
</div> </div>
</template> </template>
<script>
// /pc
import runEnv from './util/runEnv';
export default {
components: {
},
created() {
runEnv()
}
}
</script>
<style> <style>
/* 在线客服样式 */ /* 在线客服样式 */
div[qzwz="0"] { div[qzwz="0"] {
display: none; display: none;
} }
#ttkefu_linkstate { #ttkefu_linkstate {
display: none; display: none;
} }
#ttkefu_minwindow_max { #ttkefu_minwindow_max {
display: none; display: none;
} }
#ttkefu_minwindow_close { #ttkefu_minwindow_close {
display: none !important; display: none !important;
} }
.foot_btn_out :first-child { .foot_btn_out :first-child {
display: none !important; display: none !important;
} }
.ShortcutOption { .ShortcutOption {
display: none !important; display: none !important;
} }
body{
margin:0px;
background-color:#EEEEEE;
min-width: 1200px;
}
.app-container{
padding:0px;
overflow-x:hidden;
}
.mui-bar-tab .mui-tab-item-tao.mui-active { body {
margin: 0px;
background-color: #EEEEEE;
/* min-width: 1200px; */
}
.app-container {
padding: 0px;
overflow-x: hidden;
}
.mui-bar-tab .mui-tab-item-tao.mui-active {
color: #007aff; color: #007aff;
} }
.mui-bar-tab .mui-tab-item-tao { .mui-bar-tab .mui-tab-item-tao {
display: table-cell; display: table-cell;
overflow: hidden; overflow: hidden;
@ -49,6 +71,7 @@ div[qzwz="0"] {
text-overflow: ellipsis; text-overflow: ellipsis;
color: #929292; color: #929292;
} }
.mui-bar-tab .mui-tab-item-tao .mui-icon { .mui-bar-tab .mui-tab-item-tao .mui-icon {
top: 3px; top: 3px;
width: 24px; width: 24px;
@ -58,11 +81,10 @@ div[qzwz="0"] {
} }
.mui-bar-tab .mui-tab-item-tao .mui-icon~.mui-tab-label { .mui-bar-tab .mui-tab-item-tao .mui-icon~.mui-tab-label {
font-size:11px; font-size: 11px;
display:block; display: block;
overflow:hidden; overflow: hidden;
text-overflow:ellipsis; text-overflow: ellipsis;
} }
</style> </style>

@ -30,6 +30,14 @@ export function setaddaccount(data) {
data:data data:data
}) })
} }
//修改账户
export function updateAccount(data) {
return request({
url: '/mpay/update/account',
method: 'post',
data:data
})
}
//提现申请 //提现申请
export function withdrawapp(data) { export function withdrawapp(data) {
return request({ return request({

@ -104,3 +104,13 @@ export function getCourse(params,id) {
params params
}) })
} }
// 上传结课资料
export function uploadEndClassReport(data) {
return request({
url: '/train/uploadReport',
method: 'post',
data
})
}

@ -0,0 +1,51 @@
<template>
<div class="emptyWrapper">
<img :src="imgSrc" alt="">
<p>
<slot></slot>
</p>
</div>
</template>
<script>
export default {
props: {
imgSrc: {
type: String
}
},
created() {
console.log(this.imgSrc);
},
data() {
return {
}
}
}
</script>
<style lang="scss" scoped>
.emptyWrapper {
width: 100%;
height: 100%;
height: calc(100vh - 100px);
text-align: center;
position: relative;
img {
position: absolute;
left: 50%;
transform: translate(-50%);
height: 273px;
top: 20%;
}
p {
position: absolute;
left: 50%;
transform: translate(-50%);
top: calc(20% + 193px);
}
}
</style>

@ -0,0 +1,29 @@
<template>
<div class="envMessage">
<label for="xx">请在电脑浏览器打开 http://bjkeyware.com</label>
<button style="" click="copyUrl">一键复制</button>
</div>
</template>
<script>
export default {
methods:{
copyUrl(){
console.log('1');
document.execCommand('xxxxx')
}
}
}
</script>
<style lang="scss" scoped>
.envMessage{
position: fixed;
z-index: 100;
width: 200px;
background-color: aqua;
left: 50vw;
transform: translateX(-50%);
top: 0;
}
</style>

@ -0,0 +1,60 @@
<template>
<el-upload class="upload-demo myupload" :action="action" :headers="headers" :on-preview="handlePreview"
:on-remove="handleRemove" :before-remove="beforeRemove" :on-success="successUpload" :limit="3"
:on-exceed="handleExceed" :before-upload="beforeAvatarUpload">
<slot></slot>
</el-upload>
</template>
<script>
import { mapGetters } from "vuex";
export default {
data() {
return {
action: process.env.VUE_APP_BASE_API + '/upload',
name: ''
};
},
computed: {
...mapGetters(['token']),
headers() {
return { Authorization: "Bearer " + this.token };
},
},
methods: {
handleRemove(file, fileList) {
console.log(file, fileList);
},
handlePreview(file) {
console.log(file);
},
handleExceed(files, fileList) {
},
beforeRemove(file, fileList) {
// return this.$confirm(` ${file.name}`);
},
successUpload(response) {
console.log(response);
this.$emit('upload', response, this.name)
},
beforeAvatarUpload(file, fileList) {
this.name = file.name
const filetype = file.name.slice(file.name.lastIndexOf('.', file.name.length))
console.log(filetype);
const isType = ['.doc', '.docx'].some(item => { return item == filetype })
console.log(isType);
if (!isType) {
this.$message.error('只能上传doc、docx格式文件!');
return false
}
}
}
}
</script>
<style lang="scss">
.myupload .el-upload-list {
display: none;
}
</style>

@ -26,3 +26,10 @@ export const processStatuslist =[
// {label: '未确认实施结果,过期下架', value:7}, // {label: '未确认实施结果,过期下架', value:7},
{label: '实施结果不合格', value:8}, {label: '实施结果不合格', value:8},
] ]
// 培训班ID
export const trainClassIdMap = {
'0':'校企合作班',
'1':'线下培训进阶班',
'2':'可靠性人才培训班',
'3':'师资培训班'
}

@ -54,6 +54,7 @@ window.downloadHttp = downloadHttp;
Vue.prototype.downloadFast = downloadFast; Vue.prototype.downloadFast = downloadFast;
Vue.prototype.downloadHttp = downloadHttp; Vue.prototype.downloadHttp = downloadHttp;
//过滤器全局名称,对应过滤函数方法名 //过滤器全局名称,对应过滤函数方法名
Vue.filter("currency",currency) Vue.filter("currency",currency)
@ -61,7 +62,7 @@ Vue.filter("currency",currency)
Vue.use(MintUI); Vue.use(MintUI);
Vue.use(ElementUI); Vue.use(ElementUI);
Vue.config.productionTip = false Vue.config.productionTip = false
new Vue({ const app = new Vue({
router,store,axios, router,store,axios,
render: h => h(App) render: h => h(App)
}).$mount('#app') }).$mount('#app')

@ -0,0 +1,65 @@
<template>
<div class="mobileWrap">
<div class="tipText">
<p>关键测试宝pc端</p>
<p>请使用电脑浏览器访问</p>
</div>
<div class="urlCopy">
<div>https://www.bjkeyware.com/</div>
<div class="copyBtn" @click="copyUrl">复制</div>
</div>
</div>
</template>
<script>
import copyText from '../../util/cpoyText';
export default {
methods: {
copyUrl() {
const url = 'https://www.bjkeyware.com'
const result = copyText(url)
this.$message.success(result)
}
}
}
</script>
<style lang="scss" scoped>
.mobileWrap {
width: 100vw;
height: 100vh;
text-align: center;
overflow: hidden;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
background: linear-gradient(0deg, #88B6FB, #FFFFFF);
.tipText {
width: 296px;
height: 85px;
font-family: PingFang SC;
font-weight: 500;
font-size: 18px;
color: #1A1A1A;
line-height: 14px;
}
.urlCopy {
width: 75vw;
line-height: 35px;
background: #C6D9F7;
text-align: center;
border-radius: 4px;
padding: 0 25px;
display: flex;
justify-content: center;
.copyBtn {
margin-left: 25px;
color: #227BF4;
}
}
}
</style>

@ -0,0 +1,292 @@
<template>
<div>
<div v-clickoutside="hideReplyBtn" @click="inputFocus" class="my-reply">
<el-avatar class="header-img" :size="40" :src="myHeader"></el-avatar>
<div class="reply-info" >
<div
tabindex="0"
contenteditable="true"
id="replyInput"
spellcheck="false"
placeholder="输入评论..."
class="reply-input"
@focus="showReplyBtn"
@input="onDivInput($event)"
>
</div>
</div>
<div class="reply-btn-box" v-show="btnShow">
<el-button class="reply-btn" size="medium" @click="sendComment" type="primary">发表评论</el-button>
</div>
</div>
<div v-for="(item,i) in comments" :key="i" class="author-title reply-father">
<el-avatar class="header-img" :size="40" :src="item.headImg"></el-avatar>
<div class="author-info">
<span class="author-name">{{item.name}}</span>
<span class="author-time">{{item.time}}</span>
</div>
<div class="icon-btn">
<span @click="showReplyInput(i,item.name,item.id)"><i class="iconfont el-icon-s-comment"></i>{{item.commentNum}}</span>
<i class="iconfont el-icon-caret-top"></i>{{item.like}}
</div>
<div class="talk-box">
<p>
<span class="reply">{{item.comment}}</span>
</p>
</div>
<div class="reply-box">
<div v-for="(reply,j) in item.reply" :key="j" class="author-title">
<el-avatar class="header-img" :size="40" :src="reply.fromHeadImg"></el-avatar>
<div class="author-info">
<span class="author-name">{{reply.from}}</span>
<span class="author-time">{{reply.time}}</span>
</div>
<div class="icon-btn">
<span @click="showReplyInput(i,reply.from,reply.id)"><i class="iconfont el-icon-s-comment"></i>{{reply.commentNum}}</span>
<i class="iconfont el-icon-caret-top"></i>{{reply.like}}
</div>
<div class="talk-box">
<p>
<span>回复 {{reply.to}}:</span>
<span class="reply">{{reply.comment}}</span>
</p>
</div>
<div class="reply-box">
</div>
</div>
</div>
<div v-show="_inputShow(i)" class="my-reply my-comment-reply">
<el-avatar class="header-img" :size="40" :src="myHeader"></el-avatar>
<div class="reply-info" >
<div tabindex="0" contenteditable="true" spellcheck="false" placeholder="输入评论..." @input="onDivInput($event)" class="reply-input reply-comment-input"></div>
</div>
<div class=" reply-btn-box">
<el-button class="reply-btn" size="medium" @click="sendCommentReply(i,j)" type="primary">发表评论</el-button>
</div>
</div>
</div>
</div>
</template>
<script>
const clickoutside = {
//
bind(el, binding, vnode) {
function documentHandler(e) {
//
if (el.contains(e.target)) {
return false;
}
//
if (binding.expression) {
// binding.valuehandleClose
binding.value(e);
}
}
// 便unbind
el.vueClickOutside = documentHandler;
document.addEventListener('click', documentHandler);
},
update() {},
unbind(el, binding) {
//
document.removeEventListener('click', el.vueClickOutside);
delete el.vueClickOutside;
},
};
export default {
name:'ArticleComment',
data(){
return{
btnShow: false,
index:'0',
replyComment:'',
myName:'Lana Del Rey',
myHeader:'https://ae01.alicdn.com/kf/Hd60a3f7c06fd47ae85624badd32ce54dv.jpg',
myId:19870621,
to:'',
toId:-1,
comments:[
{
name:'Lana Del Rey',
id:19870621,
headImg:'https://ae01.alicdn.com/kf/Hd60a3f7c06fd47ae85624badd32ce54dv.jpg',
comment:'我发布一张新专辑Norman Fucking Rockwell,大家快来听啊',
time:'2019年9月16日 18:43',
commentNum:2,
like:15,
inputShow:false,
reply:[
{
from:'Taylor Swift',
fromId:19891221,
fromHeadImg:'https://ae01.alicdn.com/kf/H94c78935ffa64e7e977544d19ecebf06L.jpg',
to:'Lana Del Rey',
toId:19870621,
comment:'我很喜欢你的新专辑!!',
time:'2019年9月16日 18:43',
commentNum:1,
like:15,
inputShow:false
},
{
from:'Ariana Grande',
fromId:1123,
fromHeadImg:'https://ae01.alicdn.com/kf/Hf6c0b4a7428b4edf866a9fbab75568e6U.jpg',
to:'Lana Del Rey',
toId:19870621,
comment:'别忘记宣传我们的合作单曲啊',
time:'2019年9月16日 18:43',
commentNum:0,
like:5,
inputShow:false
}
]
},
{
name:'Taylor Swift',
id:19891221,
headImg:'https://ae01.alicdn.com/kf/H94c78935ffa64e7e977544d19ecebf06L.jpg',
comment:'我发行了我的新专辑Lover',
time:'2019年9月16日 18:43',
commentNum:1,
like:5,
inputShow:false,
reply:[
{
from:'Lana Del Rey',
fromId:19870621,
fromHeadImg:'https://ae01.alicdn.com/kf/Hd60a3f7c06fd47ae85624badd32ce54dv.jpg',
to:'Taylor Swift',
toId:19891221,
comment:'新专辑和speak now 一样棒!',
time:'2019年9月16日 18:43',
commentNum:25,
like:5,
inputShow:false
}
]
},
{
name:'Norman Fucking Rockwell',
id:20190830,
headImg:'https://ae01.alicdn.com/kf/Hdd856ae4c81545d2b51fa0c209f7aa28Z.jpg',
comment:'Plz buy Norman Fucking Rockwell on everywhere',
time:'2019年9月16日 18:43',
commentNum:0,
like:5,
inputShow:false,
reply:[]
},
]
}
},
directives: {clickoutside},
methods: {
inputFocus(){
var replyInput = document.getElementById('replyInput');
replyInput.style.padding= "8px 8px"
replyInput.style.border ="2px solid blue"
replyInput.focus()
},
showReplyBtn(){
this.btnShow = true
},
hideReplyBtn(){
this.btnShow = false
replyInput.style.padding= "10px"
replyInput.style.border ="none"
},
showReplyInput(i,name,id){
this.comments[this.index].inputShow = false
this.index =i
this.comments[i].inputShow = true
this.to = name
this.toId = id
},
_inputShow(i){
return this.comments[i].inputShow
},
sendComment(){
if(!this.replyComment){
this.$message({
showClose: true,
type:'warning',
message:'评论不能为空'
})
}else{
let a ={}
let input = document.getElementById('replyInput')
let timeNow = new Date().getTime();
let time= this.dateStr(timeNow);
a.name= this.myName
a.comment =this.replyComment
a.headImg = this.myHeader
a.time = time
a.commentNum = 0
a.like = 0
this.comments.push(a)
this.replyComment = ''
input.innerHTML = '';
}
},
sendCommentReply(i,j){
if(!this.replyComment){
this.$message({
showClose: true,
type:'warning',
message:'评论不能为空'
})
}else{
let a ={}
let timeNow = new Date().getTime();
let time= this.dateStr(timeNow);
a.from= this.myName
a.to = this.to
a.fromHeadImg = this.myHeader
a.comment =this.replyComment
a.time = time
a.commentNum = 0
a.like = 0
this.comments[i].reply.push(a)
this.replyComment = ''
document.getElementsByClassName("reply-comment-input")[i].innerHTML = ""
}
},
onDivInput: function(e) {
this.replyComment = e.target.innerHTML;
},
dateStr(date){
//js
var time=new Date().getTime();
// js php
time=parseInt((time-date)/1000);
//
var s;
if(time<60*10){//十分钟内
return '刚刚';
}else if((time<60*60)&&(time>=60*10)){
//1
s = Math.floor(time/60);
return s+"分钟前";
}else if((time<60*60*24)&&(time>=60*60)){
//124
s = Math.floor(time/60/60);
return s+"小时前";
}else if((time<60*60*24*30)&&(time>=60*60*24)){
//130
s = Math.floor(time/60/60/24);
return s+"天前";
}else{
//30ddd
var date= new Date(parseInt(date));
return date.getFullYear()+"/"+(date.getMonth()+1)+"/"+date.getDate();
}
}
},
}
</script>

@ -154,6 +154,7 @@
<el-input v-model="taskform.contactName" placeholder="请输入姓名"></el-input> <el-input v-model="taskform.contactName" placeholder="请输入姓名"></el-input>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="联系电话" prop="contactTel" style="width: 48%"> <el-form-item label="联系电话" prop="contactTel" style="width: 48%">
<div style="display: flex; justify-content: space-between"> <div style="display: flex; justify-content: space-between">
<el-input v-model="taskform.contactTel" placeholder="请输入手机号"></el-input> <el-input v-model="taskform.contactTel" placeholder="请输入手机号"></el-input>

@ -36,58 +36,32 @@
</div> </div>
<div class="tabbarBox container"> <div class="tabbarBox container">
<div class="tabbarBoxTab"> <div class="tabbarBoxTab">
<div <div :class="{ tabbarBoxitemact: activetab == 'cpjjBox' }" class="tabbarBoxTabitem"
:class="{ tabbarBoxitemact: activetab == 'cpjjBox' }" @click="scrollFn('cpjjBox')">
class="tabbarBoxTabitem"
@click="scrollFn('cpjjBox')"
>
产品简介 产品简介
</div> </div>
<div <div v-show="functions.length" :class="{ tabbarBoxitemact: activetab == 'cpgnBox' }"
v-show="functions.length" class="tabbarBoxTabitem" @click="scrollFn('cpgnBox')">
:class="{ tabbarBoxitemact: activetab == 'cpgnBox' }"
class="tabbarBoxTabitem"
@click="scrollFn('cpgnBox')"
>
产品功能 产品功能
</div> </div>
<div <div v-show="highlights.length" :class="{ tabbarBoxitemact: activetab == 'cpldBox' }"
v-show="highlights.length" class="tabbarBoxTabitem" @click="scrollFn('cpldBox')">
:class="{ tabbarBoxitemact: activetab == 'cpldBox' }"
class="tabbarBoxTabitem"
@click="scrollFn('cpldBox')"
>
产品亮点 产品亮点
</div> </div>
<div <div :class="{ tabbarBoxitemact: activetab == 'cpjgBox' }" class="tabbarBoxTabitem"
:class="{ tabbarBoxitemact: activetab == 'cpjgBox' }" @click="scrollFn('cpjgBox')">
class="tabbarBoxTabitem"
@click="scrollFn('cpjgBox')"
>
产品价格 产品价格
</div> </div>
<div <div :class="{ tabbarBoxitemact: activetab == 'fwzcBox' }" class="tabbarBoxTabitem"
:class="{ tabbarBoxitemact: activetab == 'fwzcBox' }" @click="scrollFn('fwzcBox')" v-show="tool.package || tool.instructionManual || tool.userGuide">
class="tabbarBoxTabitem"
@click="scrollFn('fwzcBox')"
v-show="tool.package || tool.instructionManual || tool.userGuide"
>
服务与支持 服务与支持
</div> </div>
<div <div :class="{ tabbarBoxitemact: activetab == 'cpspBox' }" class="tabbarBoxTabitem"
:class="{ tabbarBoxitemact: activetab == 'cpspBox' }" @click="scrollFn('cpspBox')" v-show="tool.vedio">
class="tabbarBoxTabitem"
@click="scrollFn('cpspBox')"
v-show="tool.vedio"
>
产品视频 产品视频
</div> </div>
<div <div :class="{ tabbarBoxitemact: activetab == 'cjwtBox' }" class="tabbarBoxTabitem"
:class="{ tabbarBoxitemact: activetab == 'cjwtBox' }" @click="scrollFn('cjwtBox')" v-show="tool.productQA">
class="tabbarBoxTabitem"
@click="scrollFn('cjwtBox')"
v-show="tool.productQA"
>
常见问题 常见问题
</div> </div>
</div> </div>
@ -127,28 +101,24 @@
服务与支持 服务与支持
</div> </div>
<div class="fwyzcbox" v-show="tool.package || tool.instructionManual || tool.userGuide"> <div class="fwyzcbox" v-show="tool.package || tool.instructionManual || tool.userGuide">
<div <div style="
style="
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
margin: 20px 0 0px 0; margin: 20px 0 0px 0;
height: 50px; height: 50px;
background: #f4f5fa; background: #f4f5fa;
" " v-if="tool.package">
v-if="tool.package"
>
<p class="download" style="font-size: 14px; margin: 0 25px"> <p class="download" style="font-size: 14px; margin: 0 25px">
<img <img style="margin-right: 10px; vertical-align: bottom" src="/assets/tool/pdf.png"
style="margin-right: 10px; vertical-align: bottom" alt="" />下载软件包
src="/assets/tool/pdf.png"
alt=""
/>
</p> </p>
<el-button class="downBtn" @click="warnBuy">下载 <i class="el-icon-download"></i></el-button> <el-button class="downBtn" @click="warnBuy">{{ (tool.package.indexOf('http') == '-1') ? '下载' :'复制下载链接' }}
<i class="el-icon-copy-document" v-if="tool.package.indexOf('http') != '-1'"></i>
<i class="el-icon-download" v-else></i>
</el-button>
</div> </div>
<div <div style="
style="
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
@ -156,20 +126,14 @@
height: 50px; height: 50px;
background: #f4f5fa; background: #f4f5fa;
margin-top: 20px; margin-top: 20px;
" " v-if="tool.instructionManual">
v-if="tool.instructionManual"
>
<p class="download" style="font-size: 14px; margin: 0 25px"> <p class="download" style="font-size: 14px; margin: 0 25px">
<img <img style="margin-right: 10px; vertical-align: bottom" src="/assets/tool/pdf.png"
style="margin-right: 10px; vertical-align: bottom" alt="" />下载安装手册
src="/assets/tool/pdf.png"
alt=""
/>
</p> </p>
<el-button class="downBtn" @click="downloadReadme">下载 <i class="el-icon-download"></i></el-button> <el-button class="downBtn" @click="downloadReadme">下载 <i class="el-icon-download"></i></el-button>
</div> </div>
<div <div style="
style="
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
@ -177,19 +141,13 @@
height: 50px; height: 50px;
background: #f4f5fa; background: #f4f5fa;
margin-top: 20px; margin-top: 20px;
" " v-if="tool.userGuide">
v-if="tool.userGuide"
>
<p class="download" style="font-size: 14px; margin: 0 25px"> <p class="download" style="font-size: 14px; margin: 0 25px">
<img <img style="margin-right: 10px; vertical-align: bottom" src="/assets/tool/pdf.png"
style="margin-right: 10px; vertical-align: bottom" alt="" />下载用户手册
src="/assets/tool/pdf.png"
alt=""
/>
</p> </p>
<el-button class="downBtn" @click="downloadInstruction" <el-button class="downBtn" @click="downloadInstruction">下载 <i
>下载 <i class="el-icon-download"></i class="el-icon-download"></i></el-button>
></el-button>
</div> </div>
</div> </div>
<div class="cpldBoxTitle" id="cpspBox" v-show="tool.vedio">产品视频</div> <div class="cpldBoxTitle" id="cpspBox" v-show="tool.vedio">产品视频</div>
@ -197,23 +155,14 @@
<video width="385px" controls="controls" class="avatar" :src="tool.vedio"></video> <video width="385px" controls="controls" class="avatar" :src="tool.vedio"></video>
</div> </div>
<div class="cpldBoxTitle" id="cjwtBox" v-show="tool.productQA">常见问题</div> <div class="cpldBoxTitle" id="cjwtBox" v-show="tool.productQA">常见问题</div>
<div <div style="background: #ffffff; font-size: 14px; font-weight: 400; color: #000000; line-height: 35px"
style="background: #ffffff; font-size: 14px; font-weight: 400; color: #000000; line-height: 35px" v-show="tool.productQA">
v-show="tool.productQA"
>
<p style="white-space: pre-line">{{ tool.productQA }}</p> <p style="white-space: pre-line">{{ tool.productQA }}</p>
</div> </div>
</div> </div>
<el-dialog <el-dialog :title="title" :visible.sync="paydiaopen" width="574px" :close-on-click-modal="false" append-to-body
:title="title" @close="closeBuyDialog()" class="paydialog">
:visible.sync="paydiaopen"
width="574px"
:close-on-click-modal="false"
append-to-body
@close="closeBuyDialog()"
class="paydialog"
>
<el-divider></el-divider> <el-divider></el-divider>
<el-form :model="buyTool" label-width="100px" class="demo-ruleForm" style="margin-top: 20px"> <el-form :model="buyTool" label-width="100px" class="demo-ruleForm" style="margin-top: 20px">
<el-form-item label="商品名称:"> <el-form-item label="商品名称:">
@ -221,11 +170,7 @@
</el-form-item> </el-form-item>
<el-form-item label="服务类型:"> <el-form-item label="服务类型:">
<el-select v-model="serviceType" size="small" placeholder="请选择"> <el-select v-model="serviceType" size="small" placeholder="请选择">
<el-option <el-option v-if="buyTool.deliverType == 'SaaS'" label="测试服务(按次计)" value="测试服务(按次计)">
v-if="buyTool.deliverType == 'SaaS'"
label="测试服务(按次计)"
value="测试服务(按次计)"
>
</el-option> </el-option>
<el-option label="使用时长(按月计)" value="使用时长(按月计)"> </el-option> <el-option label="使用时长(按月计)" value="使用时长(按月计)"> </el-option>
</el-select> </el-select>
@ -238,21 +183,12 @@
<span v-else>{{ serviceType == '测试服务(按次计)' ? buyTool.priceTime : buyTool.price }}</span> <span v-else>{{ serviceType == '测试服务(按次计)' ? buyTool.priceTime : buyTool.price }}</span>
</el-form-item> </el-form-item>
<el-form-item label="购买数量:"> <el-form-item label="购买数量:">
<span <span v-if="
v-if="
(serviceType == '测试服务(按次计)' && buyTool.priceTime == 0) || (serviceType == '测试服务(按次计)' && buyTool.priceTime == 0) ||
(serviceType == '使用时长(按月计)' && buyTool.price == 0) (serviceType == '使用时长(按月计)' && buyTool.price == 0)
" ">1</span>
>1</span <el-input-number v-else size="mini" v-model="buyAmount" :min="1" :max="999"
> label="购买数量"></el-input-number>
<el-input-number
v-else
size="mini"
v-model="buyAmount"
:min="1"
:max="999"
label="购买数量"
></el-input-number>
</el-form-item> </el-form-item>
<el-form-item label="交付方式:"> <el-form-item label="交付方式:">
{{ buyTool.deliverType }} {{ buyTool.deliverType }}
@ -267,16 +203,13 @@
<el-row> <el-row>
<el-col class="paytypebtn"> <el-col class="paytypebtn">
<el-radio size="small" v-model="paymentType" label="A01" border> <el-radio size="small" v-model="paymentType" label="A01" border>
<img class="btnpayimg" src="/assets/home/zfb.png" alt="" />支付宝</el-radio <img class="btnpayimg" src="/assets/home/zfb.png" alt="" />支付宝</el-radio>
>
<el-radio size="small" v-model="paymentType" label="W01" border> <el-radio size="small" v-model="paymentType" label="W01" border>
<img class="btnpayimg" src="/assets/home/wx.png" alt="" />微信</el-radio <img class="btnpayimg" src="/assets/home/wx.png" alt="" />微信</el-radio>
>
<el-radio size="small" v-model="paymentType" label="WALLET" border :disabled="myLQDDisable"> <el-radio size="small" v-model="paymentType" label="WALLET" border :disabled="myLQDDisable">
<img class="btnpayimg" src="/assets/home/lingqian.png" alt="" />{{ <img class="btnpayimg" src="/assets/home/lingqian.png" alt="" />{{
myLQDDisable ? '零钱不足' : '零钱' myLQDDisable ? '零钱不足' : '零钱'
}}</el-radio }}</el-radio>
>
</el-col> </el-col>
</el-row> </el-row>
</el-form-item> </el-form-item>
@ -285,15 +218,8 @@
<el-button @click="immediatelypay">立即支付</el-button> <el-button @click="immediatelypay">立即支付</el-button>
</div> </div>
</el-dialog> </el-dialog>
<el-dialog <el-dialog title="待支付" :visible.sync="boxShow" width="600px" :before-close="handleClose" class="qcode"
title="待支付" :close-on-click-modal="false" @close="closeCode">
:visible.sync="boxShow"
width="600px"
:before-close="handleClose"
class="qcode"
:close-on-click-modal="false"
@close="closeCode"
>
<div style="width: 500px; margin: 0 auto; text-align: center"> <div style="width: 500px; margin: 0 auto; text-align: center">
<!-- <canvas width="150px" height="150px"></canvas> <!-- <canvas width="150px" height="150px"></canvas>
<div id="qrcode" ref="qrcode"></div> --> <div id="qrcode" ref="qrcode"></div> -->
@ -306,13 +232,7 @@
</div> </div>
</div> </div>
</el-dialog> </el-dialog>
<el-dialog <el-dialog title="钱包支付" :visible.sync="qianbaoShow" width="600px" class="qcode" :close-on-click-modal="false">
title="钱包支付"
:visible.sync="qianbaoShow"
width="600px"
class="qcode"
:close-on-click-modal="false"
>
<div style="display: flex"> <div style="display: flex">
<div style="width: 100px; line-height: 40px">交易密码:</div> <div style="width: 100px; line-height: 40px">交易密码:</div>
<el-input v-model="jypassword" type="password" show-password></el-input> <el-input v-model="jypassword" type="password" show-password></el-input>
@ -321,13 +241,8 @@
<el-button @click="qianbaozhifu">立即支付</el-button> <el-button @click="qianbaozhifu">立即支付</el-button>
</div> </div>
</el-dialog> </el-dialog>
<el-dialog <el-dialog title="设置密码" :visible.sync="nopasswordDialog" width="600px" class="qcode"
title="设置密码" :close-on-click-modal="false">
:visible.sync="nopasswordDialog"
width="600px"
class="qcode"
:close-on-click-modal="false"
>
<div style="font-weight: 500; font-size: 16px; color: #333333; text-align: center"> <div style="font-weight: 500; font-size: 16px; color: #333333; text-align: center">
您还未设置过交易密码 您还未设置过交易密码
</div> </div>
@ -339,6 +254,7 @@
</template> </template>
<script> <script>
import store from '@/store' import store from '@/store'
import cpoyText from '@/util/cpoyText.js'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import { findByvalue, findLabelValueByProp } from '@/util/util' import { findByvalue, findLabelValueByProp } from '@/util/util'
import { getTool, getFunction, queryOrderState, buyTool, noPayBuy } from '@/api/toolInfo/market' import { getTool, getFunction, queryOrderState, buyTool, noPayBuy } from '@/api/toolInfo/market'
@ -386,7 +302,7 @@ export default {
toolslist: [], toolslist: [],
mp4InfoActive: {}, mp4InfoActive: {},
serviceType: '使用时长(按月计)', serviceType: '使用时长(按月计)',
baseUrl: process.env.VUE_APP_BASE_TARGET, baseUrl: process.env.VUE_APP_BASE_API,
} }
}, },
components: { components: {
@ -485,9 +401,9 @@ export default {
this.$router.back() this.$router.back()
}, },
// //
handleChange(value) {}, handleChange(value) { },
//tab //tab
handleClick(tab, event) {}, handleClick(tab, event) { },
/** 查询列表 */ /** 查询列表 */
getList() { getList() {
this.loading = true this.loading = true
@ -509,7 +425,7 @@ export default {
this.total = response.total this.total = response.total
this.loading = false this.loading = false
}) })
.catch((err) => {}) .catch((err) => { })
}, },
@ -524,9 +440,19 @@ export default {
.then(() => { .then(() => {
this.$router.push('/login?type=log') this.$router.push('/login?type=log')
}) })
.catch(() => {}) .catch(() => { })
} else { } else {
this.tool.package && window.open(this.tool.package,'_self') if (!this.tool.package) {
return
}
// this.tool.package && window.open(this.tool.package,'_self')
if (this.tool.package.indexOf('http') == -1) {
window.open(this.baseUrl + this.tool.package, '_self')
} else {
const result = cpoyText(this.tool.package)
result && this.$message.success('复制成功')
}
} }
// this.$alert("") // this.$alert("")
}, },
@ -541,9 +467,9 @@ export default {
.then(() => { .then(() => {
this.$router.push('/login?type=log') this.$router.push('/login?type=log')
}) })
.catch(() => {}) .catch(() => { })
} else { } else {
this.tool.instructionManual && window.open(this.tool.instructionManual,'_self') this.tool.instructionManual && window.open(this.tool.instructionManual, '_self')
} }
}, },
// //
@ -557,9 +483,9 @@ export default {
.then(() => { .then(() => {
this.$router.push('/login?type=log') this.$router.push('/login?type=log')
}) })
.catch(() => {}) .catch(() => { })
} else { } else {
this.tool.userGuide && window.open(this.tool.userGuide,'_self') this.tool.userGuide && window.open(this.tool.userGuide, '_self')
} }
}, },
// //
@ -573,7 +499,7 @@ export default {
.then(() => { .then(() => {
this.$router.push('/login?type=log') this.$router.push('/login?type=log')
}) })
.catch(() => {}) .catch(() => { })
} else { } else {
addShoppingCart(this.id, this.amount).then((response) => { addShoppingCart(this.id, this.amount).then((response) => {
if (response.code == 200) { if (response.code == 200) {
@ -607,7 +533,7 @@ export default {
.then(() => { .then(() => {
this.$router.push('/login?type=log') this.$router.push('/login?type=log')
}) })
.catch(() => {}) .catch(() => { })
} else { } else {
this.paydiaopen = true this.paydiaopen = true
this.buyTool = this.tool this.buyTool = this.tool
@ -849,42 +775,51 @@ export default {
height: 400px; height: 400px;
background: url('/assets/tool/topbg.png') no-repeat 100%; background: url('/assets/tool/topbg.png') no-repeat 100%;
} }
.container { .container {
width: 1200px; width: 1200px;
margin: auto; margin: auto;
} }
.topBgBox { .topBgBox {
display: flex; display: flex;
padding-top: 60px; padding-top: 60px;
box-sizing: border-box; box-sizing: border-box;
} }
.topBgimg { .topBgimg {
width: 82px; width: 82px;
height: 86px; height: 86px;
margin-right: 40px; margin-right: 40px;
} }
.topBgimg img { .topBgimg img {
width: 82px; width: 82px;
height: 86px; height: 86px;
} }
.topBgContent { .topBgContent {
width: 580px; width: 580px;
} }
.topBgContentT { .topBgContentT {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
} }
.topBgContentTL { .topBgContentTL {
font-weight: bold; font-weight: bold;
font-size: 32px; font-size: 32px;
color: #000000; color: #000000;
} }
.nopay { .nopay {
font-weight: 800; font-weight: 800;
font-size: 20px; font-size: 20px;
color: #de3834; color: #de3834;
} }
.topBgContentP { .topBgContentP {
font-weight: 500; font-weight: 500;
font-size: 14px; font-size: 14px;
@ -896,6 +831,7 @@ export default {
-webkit-box-orient: vertical; -webkit-box-orient: vertical;
margin: 40px 0; margin: 40px 0;
} }
.topBgContentB { .topBgContentB {
width: 100%; width: 100%;
height: 40px; height: 40px;
@ -911,9 +847,11 @@ export default {
box-sizing: border-box; box-sizing: border-box;
margin-bottom: 20px; margin-bottom: 20px;
} }
.tabbarBox { .tabbarBox {
padding-bottom: 50px; padding-bottom: 50px;
} }
.tabbarBoxTab { .tabbarBoxTab {
height: 89px; height: 89px;
display: flex; display: flex;
@ -922,6 +860,7 @@ export default {
border-bottom: 1px solid #f5f5f5; border-bottom: 1px solid #f5f5f5;
margin-bottom: 60px; margin-bottom: 60px;
} }
.tabbarBoxTabitem { .tabbarBoxTabitem {
height: 100%; height: 100%;
font-weight: 500; font-weight: 500;
@ -932,11 +871,13 @@ export default {
display: flex; display: flex;
align-items: center; align-items: center;
} }
.tabbarBoxitemact { .tabbarBoxitemact {
font-weight: bold; font-weight: bold;
color: #0066eb; color: #0066eb;
border-bottom: 4px solid #0066eb; border-bottom: 4px solid #0066eb;
} }
.cpjjBox { .cpjjBox {
display: flex; display: flex;
align-items: center; align-items: center;
@ -944,30 +885,36 @@ export default {
padding-right: 35px; padding-right: 35px;
box-sizing: border-box; box-sizing: border-box;
} }
.cpjjBoximg { .cpjjBoximg {
width: 468px; width: 468px;
height: 360px; height: 360px;
} }
.cpjjBoxCon { .cpjjBoxCon {
width: 630px; width: 630px;
} }
.cpjjBoxConT { .cpjjBoxConT {
font-weight: bold; font-weight: bold;
font-size: 24px; font-size: 24px;
color: #000000; color: #000000;
margin-bottom: 30px; margin-bottom: 30px;
} }
.cpjjBoxConC { .cpjjBoxConC {
font-weight: 500; font-weight: 500;
font-size: 14px; font-size: 14px;
color: #333333; color: #333333;
line-height: 32px; line-height: 32px;
} }
.cpgnBox { .cpgnBox {
width: 100%; width: 100%;
background: #f7f8fc; background: #f7f8fc;
overflow: hidden; overflow: hidden;
} }
.cpgnBoxTitle { .cpgnBoxTitle {
margin: 35px 0 45px 0; margin: 35px 0 45px 0;
font-weight: bold; font-weight: bold;
@ -975,11 +922,13 @@ export default {
color: #000000; color: #000000;
text-align: center; text-align: center;
} }
.cpgnCon { .cpgnCon {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
flex-wrap: wrap; flex-wrap: wrap;
} }
.cpgnConitem { .cpgnConitem {
width: 590px; width: 590px;
background: url('/assets/tool/bg2.png') no-repeat; background: url('/assets/tool/bg2.png') no-repeat;
@ -989,6 +938,7 @@ export default {
overflow: hidden; overflow: hidden;
padding: 34px 0; padding: 34px 0;
} }
.cpgnConitemTitle { .cpgnConitemTitle {
font-weight: bold; font-weight: bold;
font-size: 16px; font-size: 16px;
@ -997,6 +947,7 @@ export default {
padding: 0 34px; padding: 0 34px;
box-sizing: border-box; box-sizing: border-box;
} }
.cpgnConitemDesc { .cpgnConitemDesc {
font-weight: 500; font-weight: 500;
font-size: 14px; font-size: 14px;
@ -1005,9 +956,11 @@ export default {
padding: 0 34px; padding: 0 34px;
box-sizing: border-box; box-sizing: border-box;
} }
.cpldBox { .cpldBox {
overflow: hidden; overflow: hidden;
} }
.cpldBoxTitle { .cpldBoxTitle {
font-weight: bold; font-weight: bold;
font-size: 24px; font-size: 24px;
@ -1015,12 +968,14 @@ export default {
margin: 45px 0; margin: 45px 0;
text-align: center; text-align: center;
} }
.cpldBoxCon { .cpldBoxCon {
display: grid; display: grid;
grid-template-columns: 280px 280px 280px 280px; grid-template-columns: 280px 280px 280px 280px;
justify-content: space-between; justify-content: space-between;
/* flex-wrap: wrap; */ /* flex-wrap: wrap; */
} }
.cpldBoxConitem { .cpldBoxConitem {
width: 280px; width: 280px;
/* height: 220px; */ /* height: 220px; */
@ -1037,11 +992,13 @@ export default {
margin-bottom: 20px; margin-bottom: 20px;
padding-top: 24px; padding-top: 24px;
} }
.cpldBoxConitemimg { .cpldBoxConitemimg {
width: 70px; width: 70px;
height: 70px; height: 70px;
margin-bottom: 32px; margin-bottom: 32px;
} }
.cpldBoxConitemtext { .cpldBoxConitemtext {
font-weight: 500; font-weight: 500;
font-size: 14px; font-size: 14px;
@ -1053,12 +1010,14 @@ export default {
-webkit-line-clamp: 2; -webkit-line-clamp: 2;
-webkit-box-orient: vertical; */ -webkit-box-orient: vertical; */
} }
.cpldBoxConjg { .cpldBoxConjg {
display: flex; display: flex;
height: 93px; height: 93px;
background: #f7f8fc; background: #f7f8fc;
border-radius: 6px; border-radius: 6px;
} }
.cpldBoxConimgbox { .cpldBoxConimgbox {
width: 93px; width: 93px;
height: 93px; height: 93px;
@ -1068,10 +1027,12 @@ export default {
align-items: center; align-items: center;
justify-content: center; justify-content: center;
} }
.cpldBoxConimg { .cpldBoxConimg {
width: 41px; width: 41px;
height: 41px; height: 41px;
} }
.cpldBoxConimgboxtext { .cpldBoxConimgboxtext {
flex: 1; flex: 1;
font-weight: 500; font-weight: 500;
@ -1088,27 +1049,32 @@ export default {
.person { .person {
background: #ffffff; background: #ffffff;
} }
.bgnk { .bgnk {
width: 920px; width: 920px;
margin: 30px auto; margin: 30px auto;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
} }
.nobgnk { .nobgnk {
width: 920px; width: 920px;
margin: 20px auto; margin: 20px auto;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
} }
.keydap { .keydap {
font-size: 18px; font-size: 18px;
font-weight: bold; font-weight: bold;
color: #1a1a1a; color: #1a1a1a;
line-height: 35px; line-height: 35px;
} }
.el-divider--horizontal { .el-divider--horizontal {
margin: 0; margin: 0;
} }
/* .keyda :nth-child(2){ /* .keyda :nth-child(2){
font-weight: bold; font-weight: bold;
color: #666666; color: #666666;
@ -1123,6 +1089,7 @@ export default {
color: #333333; color: #333333;
line-height: 35px; line-height: 35px;
} }
/* .toolprice :nth-child(1){ /* .toolprice :nth-child(1){
color: #666666; color: #666666;
font-size:14px; font-size:14px;
@ -1132,7 +1099,7 @@ export default {
color: #333333; color: #333333;
font-size:14px; font-size:14px;
} */ } */
.joinpurch >>> .el-button { .joinpurch>>>.el-button {
margin-top: 15px; margin-top: 15px;
font-size: 15px !important; font-size: 15px !important;
border: none; border: none;
@ -1142,41 +1109,49 @@ export default {
background: #f7a130; background: #f7a130;
border-radius: 4px; border-radius: 4px;
} }
.joinpurch123 { .joinpurch123 {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
margin-top: 20px; margin-top: 20px;
} }
.joinpurch123 >>> .el-button {
.joinpurch123>>>.el-button {
width: 496px; width: 496px;
height: 50px; height: 50px;
background: #2084f9; background: #2084f9;
border-radius: 6px; border-radius: 6px;
color: #ffffff; color: #ffffff;
} }
.goodsde >>> .el-tabs__item {
.goodsde>>>.el-tabs__item {
font-size: 18px; font-size: 18px;
color: #333333; color: #333333;
} }
.goodsde >>> .el-tabs__item.is-active {
.goodsde>>>.el-tabs__item.is-active {
font-size: 18px; font-size: 18px;
font-weight: bold; font-weight: bold;
color: #0066eb; color: #0066eb;
} }
.goodsde >>> .el-tabs__item:hover {
.goodsde>>>.el-tabs__item:hover {
font-size: 18px; font-size: 18px;
font-weight: bold; font-weight: bold;
color: #0066eb; color: #0066eb;
} }
.goodsde >>> .el-tabs__active-bar {
.goodsde>>>.el-tabs__active-bar {
background-color: #0066eb; background-color: #0066eb;
} }
.dvied { .dvied {
width: 4px; width: 4px;
height: 18px; height: 18px;
background: #0066eb; background: #0066eb;
} }
.sourcecode { .sourcecode {
width: 530px; width: 530px;
height: 93px; height: 93px;
@ -1188,6 +1163,7 @@ export default {
/* margin-left:30px; */ /* margin-left:30px; */
/* padding:10px 0 */ /* padding:10px 0 */
} }
.sourcecode :nth-child(1) { .sourcecode :nth-child(1) {
/* width: 93px; */ /* width: 93px; */
/* height: 93px; */ /* height: 93px; */
@ -1196,17 +1172,20 @@ export default {
color: #1a1a1a; color: #1a1a1a;
/* margin:10px 0 */ /* margin:10px 0 */
} }
.sourcecode :nth-child(2) { .sourcecode :nth-child(2) {
font-size: 14px; font-size: 14px;
font-weight: 400; font-weight: 400;
color: #333333; color: #333333;
} }
.paydialog >>> .el-form-item__content {
.paydialog>>>.el-form-item__content {
font-weight: 500; font-weight: 500;
font-size: 16px; font-size: 16px;
color: #333333; color: #333333;
} }
.paydialog >>> .el-form-item__label {
.paydialog>>>.el-form-item__label {
font-weight: 500; font-weight: 500;
font-size: 16px; font-size: 16px;
color: #808080; color: #808080;
@ -1217,32 +1196,38 @@ export default {
font-weight: bold; font-weight: bold;
margin-right: 20px; margin-right: 20px;
} */ } */
.paydialog >>> .el-divider--horizontal { .paydialog>>>.el-divider--horizontal {
margin: -30px 0 10px 0; margin: -30px 0 10px 0;
} }
.paydialog >>> .el-dialog__title {
.paydialog>>>.el-dialog__title {
font-weight: bold; font-weight: bold;
color: #0969bd; color: #0969bd;
} }
.paydialog >>> .el-form-item {
.paydialog>>>.el-form-item {
margin-bottom: 10px; margin-bottom: 10px;
} }
.goodsde { .goodsde {
width: 920px; width: 920px;
background: #fff; background: #fff;
margin: 0px auto; margin: 0px auto;
padding: 30px 0; padding: 30px 0;
} }
.menuListBtn { .menuListBtn {
float: left; float: left;
margin-right: 50px; margin-right: 50px;
font-size: 18px; font-size: 18px;
} }
.menuListBtn:hover { .menuListBtn:hover {
cursor: pointer; cursor: pointer;
color: #0066eb; color: #0066eb;
font-weight: bold; font-weight: bold;
} }
.activeBtn { .activeBtn {
color: #0066eb; color: #0066eb;
font-weight: bold; font-weight: bold;
@ -1254,12 +1239,14 @@ export default {
color: #1a1a1a; color: #1a1a1a;
margin-top: 40px; margin-top: 40px;
} }
.product { .product {
font-size: 14px; font-size: 14px;
font-weight: 400; font-weight: 400;
color: #333333; color: #333333;
line-height: 37px; line-height: 37px;
} }
.product::before { .product::before {
content: ''; content: '';
display: inline-block; display: inline-block;
@ -1270,6 +1257,7 @@ export default {
margin-right: 6px; margin-right: 6px;
margin-bottom: 2px; margin-bottom: 2px;
} }
.downBtn { .downBtn {
background: #0066eb; background: #0066eb;
border: none; border: none;
@ -1279,6 +1267,7 @@ export default {
padding: 8px 20px; padding: 8px 20px;
line-height: 0; line-height: 0;
} }
.downBtn:hover { .downBtn:hover {
background: #0066eb; background: #0066eb;
border: none; border: none;
@ -1288,6 +1277,7 @@ export default {
padding: 8px 20px; padding: 8px 20px;
line-height: 0; line-height: 0;
} }
.downBtn:focus { .downBtn:focus {
background: #0066eb; background: #0066eb;
border: none; border: none;
@ -1304,6 +1294,7 @@ export default {
background: #ffffff; background: #ffffff;
margin: 30px 0 15px 15px; margin: 30px 0 15px 15px;
} }
.rightBottomBox { .rightBottomBox {
width: 264px; width: 264px;
height: 500px; height: 500px;
@ -1320,6 +1311,7 @@ export default {
z-index: 3; z-index: 3;
box-shadow: 0px 5px 15px rgb(0 0 0 / 10%); box-shadow: 0px 5px 15px rgb(0 0 0 / 10%);
} }
@media screen and (max-width: 1500px) { @media screen and (max-width: 1500px) {
.bgnk { .bgnk {
width: 920px; width: 920px;
@ -1327,30 +1319,36 @@ export default {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
} }
.nobgnk { .nobgnk {
width: 920px; width: 920px;
margin: 20px auto; margin: 20px auto;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
} }
.goodsde { .goodsde {
width: 920px; width: 920px;
margin: 0px auto; margin: 0px auto;
padding: 30px 0; padding: 30px 0;
} }
} }
.btnpayimg { .btnpayimg {
width: 17px; width: 17px;
height: 17px; height: 17px;
margin-right: 5px; margin-right: 5px;
} }
.paytypebtn >>> .el-radio__input {
.paytypebtn>>>.el-radio__input {
display: none; display: none;
} }
.paytypebtn >>> .el-radio {
.paytypebtn>>>.el-radio {
margin-right: 0; margin-right: 0;
} }
.paytypebtn >>> .el-radio__label {
.paytypebtn>>>.el-radio__label {
display: flex; display: flex;
align-items: center; align-items: center;
padding: 0; padding: 0;

@ -131,6 +131,7 @@ export default {
deliverType: '', // deliverType: '', //
toolslist: [], // toolslist: [], //
currentPage: 1, currentPage: 1,
typeName:null,
total: '', total: '',
pageNum: 1, pageNum: 1,
pageSize: 20, pageSize: 20,
@ -178,6 +179,7 @@ export default {
pageNum: this.pageNum, pageNum: this.pageNum,
pageSize: this.pageSize, pageSize: this.pageSize,
status: 1, status: 1,
typeName:this.typeName
} }
Object.keys(data).forEach((keyd) => { Object.keys(data).forEach((keyd) => {
if (!data[keyd] || data[keyd] == '' || data[keyd] == '0' || data[keyd] == "''") { if (!data[keyd] || data[keyd] == '' || data[keyd] == '0' || data[keyd] == "''") {

File diff suppressed because it is too large Load Diff

@ -1,6 +1,6 @@
<template> <template>
<div class="crowdnum"> <div class="crowdnum">
<el-table :data="sactionData"> <el-table v-if="sactionData.length" :data="sactionData">
<el-table-column label="用户名" align="center" key="name" prop="name" /> <el-table-column label="用户名" align="center" key="name" prop="name" />
<el-table-column label="手机号" align="center" key="phone" prop="phone"></el-table-column> <el-table-column label="手机号" align="center" key="phone" prop="phone"></el-table-column>
<el-table-column label="技能服务" align="center" key="service" prop="service"></el-table-column> <el-table-column label="技能服务" align="center" key="service" prop="service"></el-table-column>
@ -31,12 +31,18 @@
:total="total"> :total="total">
</el-pagination> </el-pagination>
</div> --> </div> -->
<emptyPage imgSrc="/assets/empty/noUsePerson.png" v-else>暂无用人记录</emptyPage>
</div> </div>
</template> </template>
<script> <script>
import emptyPage from '@/components/emptyPage/index.vue'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import { querydemand } from '@/api/my/testb' import { querydemand } from '@/api/my/testb'
export default { export default {
components: {
emptyPage
},
data() { data() {
return { return {
sactionData: [], sactionData: [],
@ -58,21 +64,24 @@ export default {
} }
</script> </script>
<style scoped> <style scoped>
.crowdnum >>> .el-table th { .crowdnum>>>.el-table th {
background-color: #f7f7f7; background-color: #f7f7f7;
color: #666666; color: #666666;
text-align: center; text-align: center;
} }
.crowdnum >>> .el-table td {
.crowdnum>>>.el-table td {
/* text-align:center; */ /* text-align:center; */
background-color: #ffffff; background-color: #ffffff;
height: 60px; height: 60px;
color: #333333; color: #333333;
} }
.crowdnum >>> .el-table--border th {
.crowdnum>>>.el-table--border th {
border-right: #f7f7f7; border-right: #f7f7f7;
} }
.crowdnum >>> .el-tooltip__popper {
.crowdnum>>>.el-tooltip__popper {
width: 33vw; width: 33vw;
} }
</style> </style>

@ -12,35 +12,46 @@
<div v-if="item.status == 5" class="sign_sataus" style="background: #fc5c1d">已结束</div> <div v-if="item.status == 5" class="sign_sataus" style="background: #fc5c1d">已结束</div>
</div> </div>
<div style="width: 100%; height: 1px; background-color: #ebebeb; margin: 15px 0"></div> <div style="width: 100%; height: 1px; background-color: #ebebeb; margin: 15px 0"></div>
<div <div style="
style="
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
font-size: 14px; font-size: 14px;
margin: 0 35px 0 28px; margin: 0 35px 0 28px;
align-items: center; align-items: center;
" ">
>
<p style="color: #666666">报名时间{{ dateFormat(new Date(item.registrationTime)) }}</p> <p style="color: #666666">报名时间{{ dateFormat(new Date(item.registrationTime)) }}</p>
<p style="color: #333333">开课日期{{ dateFormat(new Date(item.trainStartTime), 'yyyy-MM-dd') }}</p> <p style="color: #333333">开课日期{{ dateFormat(new Date(item.trainStartTime), 'yyyy-MM-dd') }}</p>
<p style="color: #333333">结课时间{{ dateFormat(new Date(item.trainEndTime), 'yyyy-MM-dd') }}</p> <p style="color: #333333">结课时间{{ dateFormat(new Date(item.trainEndTime), 'yyyy-MM-dd') }}</p>
</div> </div>
<div> <div class="downloadAbount" @click="curCourse(item)">
<div class="unloadFire" v-if="item.attachment" @click="downLoad(item)">资料下载</div> <div class="catCourse" v-if="item.attachment" @click="downLoad(item)">资料下载</div>
<!-- <div class="catCourse" @click="">查看课程</div> --> <div class="catCourse" v-if="item.reportAttachment" @click="endReportDownload(item)">{{ item.reportName
}}
</div>
<myUpload v-if="reportShow(item)" class="unloadFire" @upload="uploadReport">{{ item.reportName ?
'覆盖上传报告'
: '上传结课报告' }}</myUpload>
</div> </div>
</div> </div>
<emptyPage v-if="signlist.length == 0" imgSrc="/assets/empty/noTrainClass.png">暂无培训班</emptyPage>
</div> </div>
</template> </template>
<script> <script>
const endDay = 2 //
import emptyPage from '@/components/emptyPage/index.vue'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import { getmySignUpList } from '@/api/train/index.js' import { getmySignUpList, uploadEndClassReport } from '@/api/train/index.js'
import { dateFormat } from '@/util/util' import { dateFormat } from '@/util/util'
import myUpload from '@/components/myUpload/index.vue'
export default { export default {
components: {
myUpload, emptyPage
},
data() { data() {
return { return {
signlist: [], signlist: [],
base: process.env.VUE_APP_BASE_TARGET, base: process.env.VUE_APP_BASE_API,
currentCourse: {}
} }
}, },
mounted() { mounted() {
@ -52,6 +63,21 @@ export default {
}) })
}, },
computed: { computed: {
reportShow() {
return function (val) {
const nowTime = new Date().getTime()
const endTime = new Date(val.trainEndTime).getTime()
console.log('endtIME'+new Date(val.trainEndTime));
const sub = (endTime - nowTime) / (1000 * 60 * 60 * 24)
console.log(sub);
if (sub < 0) {
return false
} else if (sub < endDay) {
return true
}
return false
}
},
...mapGetters(['userinform']), ...mapGetters(['userinform']),
}, },
@ -62,22 +88,42 @@ export default {
window.open(this.base + row.attachment, '_self') window.open(this.base + row.attachment, '_self')
} }
}, },
catCourse(param){ curCourse(item) {
this.currentCourse = item
},
async uploadReport(item, name) {
const data = {
trainingStudentId: this.currentCourse.studentId,
reportName: name,
reportAttachment: item.filePath
}
const res = await uploadEndClassReport(data)
if (res.code == 200) {
this.$message.success('上传成功')
}
},
endReportDownload(row) {
if (row.reportAttachment) {
window.open(this.base + row.reportAttachment, '_self')
}
},
catCourse(param) {
// console.log(param.trainClassId); // console.log(param.trainClassId);
this.$router.push({path:'/console/course',query:{id:param.trainClassId}}) this.$router.push({ path: '/console/course', query: { id: param.trainClassId } })
} }
}, },
} }
</script> </script>
<style scoped> <style scoped lang="scss">
.crowdnum { .crowdnum {
width: 49%; width: 49%;
background: #ffffff; background: #ffffff;
box-shadow: 0px 1px 12px 0px rgba(17, 19, 21, 0.06); box-shadow: 0px 1px 12px 0px rgba(17, 19, 21, 0.06);
padding: 25px 0 30px 0; padding: 25px 0 25px 0;
margin-bottom: 20px; margin-bottom: 20px;
position: relative; position: relative;
} }
.sign_sataus { .sign_sataus {
width: 75px; width: 75px;
height: 28px; height: 28px;
@ -88,18 +134,39 @@ export default {
line-height: 28px; line-height: 28px;
text-align: center; text-align: center;
} }
.unloadFire {
position: absolute; .catCourse {
bottom: 12px;
right: 130px;
cursor: pointer;
font-weight: 500;
font-size: 14px;
color: #0066eb; color: #0066eb;
}
.catCourse{
cursor: pointer; cursor: pointer;
}
.downloadAbount {
display: flex;
color: #0066eb;
font-weight: 500; font-weight: 500;
justify-content: flex-end;
padding: 0 36px;
text-align: center;
align-items: center;
.catCourse {
color: #0066eb; color: #0066eb;
margin-left: 15px;
cursor: pointer;
}
.unloadFire {
margin-left: 15px;
width: 116px;
line-height: 28px;
background: #F0F4FA;
border-radius: 14px;
border: 1px solid #92C0FC;
font-size: 14px;
color: #0066EB;
cursor: pointer;
}
} }
</style> </style>

@ -18,7 +18,7 @@
</div> </div>
</div> </div>
<!-- 分页 --> <!-- 分页 -->
<div style="width: 100%; margin-top: 30px; text-align: center"> <div v-if="viewList.length" style="width: 100%; margin-top: 30px; text-align: center">
<el-pagination <el-pagination
background background
@current-change="handleCurrentChange" @current-change="handleCurrentChange"
@ -28,13 +28,16 @@
> >
</el-pagination> </el-pagination>
</div> </div>
<emptyPage v-else imgSrc="/assets/empty/noEvaluate.png">暂无评价</emptyPage>
</div> </div>
</template> </template>
<script> <script>
import emptyPage from '@/components/emptyPage/index.vue'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import { getMyreviewList } from '@/api/review/myreview.js' import { getMyreviewList } from '@/api/review/myreview.js'
export default { export default {
components:{emptyPage},
data() { data() {
return { return {
value1: 3, value1: 3,

@ -17,10 +17,8 @@
<p style="font-weight: bold; color: #1a1a1a; font-size: 18px">{{ tool.name }}</p> <p style="font-weight: bold; color: #1a1a1a; font-size: 18px">{{ tool.name }}</p>
<!-- <p style="font-size: 14px">规格{{ tool.deliverType == 'License' ? '按月' : '按次' }}</p> --> <!-- <p style="font-size: 14px">规格{{ tool.deliverType == 'License' ? '按月' : '按次' }}</p> -->
<p style="font-size: 14px">交付方式{{ tool.deliver_type }}</p> <p style="font-size: 14px">交付方式{{ tool.deliver_type }}</p>
<p <p v-if="tool.deliver_type == 'SaaS' && (tool.remark == 'times' || tool.remark == 'time')"
v-if="tool.deliver_type == 'SaaS' && (tool.remark == 'times' || tool.remark == 'time')" style="font-size: 14px">
style="font-size: 14px"
>
剩余次数{{ tool.remains }} 剩余次数{{ tool.remains }}
</p> </p>
<p v-if="tool.deliver_type == 'SaaS' && tool.remark == 'month'" style="font-size: 14px"> <p v-if="tool.deliver_type == 'SaaS' && tool.remark == 'month'" style="font-size: 14px">
@ -33,39 +31,20 @@
<el-button >查看工具详情</el-button> <el-button >查看工具详情</el-button>
</router-link> --> </router-link> -->
<!-- License只有按月 按钮下载安装+注册码 --> <!-- License只有按月 按钮下载安装+注册码 -->
<el-button <el-button v-if="tool.deliver_type == 'License'" style="background: #0165e9"
v-if="tool.deliver_type == 'License'" @click="downLoad(tool.packagePath)">{{ (tool.packagePath.indexOf('http' == -1) ? '下载' : '复制下载链接') }}</el-button>
style="background: #0165e9" <el-button v-if="tool.deliver_type == 'License'" style="background: #f2a51a"
@click="downLoad(tool.packagePath)" @click="zhuceCodeFn(tool.tool_id)">注册码</el-button>
>下载安装</el-button
>
<el-button
v-if="tool.deliver_type == 'License'"
style="background: #f2a51a"
@click="zhuceCodeFn(tool.tool_id)"
>注册码</el-button
>
<!-- SaaS按月 按钮在线试用+专属账密 --> <!-- SaaS按月 按钮在线试用+专属账密 -->
<el-button <el-button v-if="tool.deliver_type == 'SaaS' && tool.remark == 'month'"
v-if="tool.deliver_type == 'SaaS' && tool.remark == 'month'" style="background: #0165e9" @click="useOnline(tool.toolUrl)">在线使用</el-button>
style="background: #0165e9" <el-button v-if="tool.deliver_type == 'SaaS' && tool.remark == 'month'"
@click="useOnline(tool.toolUrl)" style="background: #f2a51a" @click="myPass(tool.upasswd)">专属账密</el-button>
>在线使用</el-button
>
<el-button
v-if="tool.deliver_type == 'SaaS' && tool.remark == 'month'"
style="background: #f2a51a"
@click="myPass(tool.upasswd)"
>专属账密</el-button
>
<!-- SaaS按次 按钮立即使用 --> <!-- SaaS按次 按钮立即使用 -->
<el-button <el-button
v-if="tool.deliver_type == 'SaaS' && (tool.remark == 'times' || tool.remark == 'time')" v-if="tool.deliver_type == 'SaaS' && (tool.remark == 'times' || tool.remark == 'time')"
style="background: #0165e9" style="background: #0165e9" @click="useTool(tool)">立即使用</el-button>
@click="useTool(tool)"
>立即使用</el-button
>
</div> </div>
</div> </div>
<div v-if="onTools.length == 0" style="width: 170px; margin: 30px auto"> <div v-if="onTools.length == 0" style="width: 170px; margin: 30px auto">
@ -75,20 +54,14 @@
<div v-loading="loading" v-if="currentool == '失效工具'" style="display: flex; flex-wrap: wrap"> <div v-loading="loading" v-if="currentool == '失效工具'" style="display: flex; flex-wrap: wrap">
<div v-for="(tool, key) of offTools" :key="key" class="contrl"> <div v-for="(tool, key) of offTools" :key="key" class="contrl">
<div class="yishixiao">已失效</div> <div class="yishixiao">已失效</div>
<img <img style="width: 120px; object-fit: contain; margin: -10px 25px" v-if="tool.icon != null"
style="width: 120px; object-fit: contain; margin: -10px 25px" :src="tool.icon" alt="" />
v-if="tool.icon != null"
:src="tool.icon"
alt=""
/>
<div style="text-align: left"> <div style="text-align: left">
<p style="font-weight: bold; color: #1a1a1a; font-size: 18px">{{ tool.name }}</p> <p style="font-weight: bold; color: #1a1a1a; font-size: 18px">{{ tool.name }}</p>
<!-- <p style="font-size: 14px">规格{{ tool.deliverType == 'License' ? '按月' : '按次' }}</p> --> <!-- <p style="font-size: 14px">规格{{ tool.deliverType == 'License' ? '按月' : '按次' }}</p> -->
<p style="font-size: 14px">交付方式{{ tool.deliver_type }}</p> <p style="font-size: 14px">交付方式{{ tool.deliver_type }}</p>
<p <p v-if="tool.deliver_type == 'SaaS' && (tool.remark == 'times' || tool.remark == 'time')"
v-if="tool.deliver_type == 'SaaS' && (tool.remark == 'times' || tool.remark == 'time')" style="font-size: 14px">
style="font-size: 14px"
>
剩余次数{{ tool.remains }} 剩余次数{{ tool.remains }}
</p> </p>
<p v-if="tool.deliver_type == 'SaaS' && tool.remark == 'month'" style="font-size: 14px"> <p v-if="tool.deliver_type == 'SaaS' && tool.remark == 'month'" style="font-size: 14px">
@ -114,27 +87,18 @@
</div> </div>
<task-upload ref="taskUpload" @handleSuccess="MyToolslist"></task-upload> <task-upload ref="taskUpload" @handleSuccess="MyToolslist"></task-upload>
<!-- 弹层 --> <!-- 弹层 -->
<el-dialog <el-dialog title="请输入机器码获取注册码" :visible.sync="jiqimaOpen" width="550px" :close-on-click-modal="false"
title="请输入机器码获取注册码" @close="jiqimaOpenClose">
:visible.sync="jiqimaOpen"
width="550px"
:close-on-click-modal="false"
@close="jiqimaOpenClose"
>
<el-input v-model="jiqicode" placeholder="请输入机器码"></el-input> <el-input v-model="jiqicode" placeholder="请输入机器码"></el-input>
<div style="display: flex; justify-content: center; align-items: center; margin-top: 20px"> <div style="display: flex; justify-content: center; align-items: center; margin-top: 20px">
<el-button <el-button style="
style="
width: 250px; width: 250px;
height: 44px; height: 44px;
background: linear-gradient(90deg, #5ea6fd, #1a81f9); background: linear-gradient(90deg, #5ea6fd, #1a81f9);
border-radius: 22px; border-radius: 22px;
font-size: 16px; font-size: 16px;
color: #ffffff; color: #ffffff;
" " @click="getZCCode">确定</el-button>
@click="getZCCode"
>确定</el-button
>
</div> </div>
</el-dialog> </el-dialog>
<el-dialog title="注册码" :visible.sync="zhucemaOpen" width="550px" :close-on-click-modal="false"> <el-dialog title="注册码" :visible.sync="zhucemaOpen" width="550px" :close-on-click-modal="false">
@ -159,6 +123,7 @@ import { uploadTask } from '@/api/task/task'
import TaskUpload from './TaskUpload' import TaskUpload from './TaskUpload'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import { dateFormat } from '@/util/util' import { dateFormat } from '@/util/util'
import Axios from 'axios'
export default { export default {
components: { TaskUpload }, components: { TaskUpload },
data() { data() {
@ -197,9 +162,13 @@ export default {
downLoad(url) { downLoad(url) {
if (url) { if (url) {
if (url.indexOf('http') == -1) { if (url.indexOf('http') == -1) {
window.open(this.base + url,'_self') // navigator.clipboard.writeText(this.base + url);
// this.$message.success('')
window.open(this.base + url, '_self')
} else { } else {
window.open(url,'_self') // window.open(url, '_self')
navigator.clipboard.writeText(url);
this.$message.success('复制成功')
} }
} else { } else {
this.$message.warning('下载失败,请联系管理员') this.$message.warning('下载失败,请联系管理员')
@ -298,19 +267,23 @@ export default {
line-height: 35px; line-height: 35px;
text-align: center; text-align: center;
} }
.dvied { .dvied {
width: 4px; width: 4px;
height: 18px; height: 18px;
background: #0066eb; background: #0066eb;
} }
.toolclass >>> .el-radio-button__inner {
.toolclass>>>.el-radio-button__inner {
width: 200px; width: 200px;
height: 40px; height: 40px;
} }
.toolclass >>> .el-radio-button__orig-radio:checked + .el-radio-button__inner {
.toolclass>>>.el-radio-button__orig-radio:checked+.el-radio-button__inner {
background-color: #0066eb; background-color: #0066eb;
border-color: #0066eb; border-color: #0066eb;
} }
.contrl { .contrl {
position: relative; position: relative;
background: #ffffff; background: #ffffff;
@ -322,7 +295,8 @@ export default {
margin-top: 30px; margin-top: 30px;
margin-right: 30px; margin-right: 30px;
} }
.contrl >>> .el-button {
.contrl>>>.el-button {
/* width: 120px; */ /* width: 120px; */
height: 34px; height: 34px;
background: #0066eb; background: #0066eb;
@ -331,11 +305,13 @@ export default {
margin-right: 15px; margin-right: 15px;
line-height: 10px; line-height: 10px;
} }
.copybtn { .copybtn {
color: #0066eb; color: #0066eb;
margin-left: 20px; margin-left: 20px;
cursor: pointer; cursor: pointer;
} }
.dialogtext { .dialogtext {
font-weight: 500; font-weight: 500;
font-size: 16px; font-size: 16px;

@ -4,7 +4,7 @@
<div class="dvied"></div> <div class="dvied"></div>
<div style="font-weight: bold;color: #333333;font-size: 18px;margin-left:10px">我的订单</div> <div style="font-weight: bold;color: #333333;font-size: 18px;margin-left:10px">我的订单</div>
</div> --> </div> -->
<div style="background: #FFFFFF;border-radius: 4px;"> <div v-if="orderslist.length" style="background: #FFFFFF;border-radius: 4px;">
<div class="ordenum"> <div class="ordenum">
<el-form :model="queryParam" :rules="queryParam" label-position="left" label-width="70px" class="baseinfo"> <el-form :model="queryParam" :rules="queryParam" label-position="left" label-width="70px" class="baseinfo">
<div style="display:flex;padding-top: 10px;padding-left: 20px;background: #edecec;flex-wrap:wrap;"> <div style="display:flex;padding-top: 10px;padding-left: 20px;background: #edecec;flex-wrap:wrap;">
@ -87,13 +87,16 @@
</div> </div>
</div> </div>
</div> </div>
<emptyPage imgSrc="/assets/empty/noUsePerson.png" v-else>暂无订单</emptyPage>
</div> </div>
</template> </template>
<script> <script>
import {mapGetters} from "vuex"; import {mapGetters} from "vuex";
import emptyPage from '@/components/emptyPage/index.vue'
import {getMyOrder} from "@/api/my/my"; import {getMyOrder} from "@/api/my/my";
import {findByvalue, findLabelValueByProp} from "@/util/util"; import {findByvalue, findLabelValueByProp} from "@/util/util";
export default{ export default{
components:{emptyPage},
data(){ data(){
return{ return{
// orderObj:{ // orderObj:{

@ -15,53 +15,34 @@
余额提现 余额提现
</div> </div>
</div> </div>
<div <div style="width: 100%; height: 1px; background-color: #ebebeb; margin: 14px 0 19px 0">
style="width: 100%; height: 1px; background-color: #ebebeb; margin: 14px 0 19px 0" </div>
></div>
<div style="padding: 0px 30px" class="applydraw"> <div style="padding: 0px 30px" class="applydraw">
<p> <p>
<span style="font-size: 16px; color: #000000ff">转出到</span> <span style="font-size: 16px; color: #000000ff">转出到</span>
<span style="font-size: 13px; color: #808080ff; margin-left: 10px" <span style="font-size: 13px; color: #808080ff; margin-left: 10px">请选择余额转出到哪里</span>
>请选择余额转出到哪里</span
>
</p> </p>
<el-select <el-select v-model="Withdrawalform.withdraw" style="width: 500px" @change="settype"
v-model="Withdrawalform.withdraw" placeholder="请选择添加类型">
style="width: 500px"
@change="settype"
placeholder="请选择添加类型"
>
<el-option label="支付宝" value="alipay" /> <el-option label="支付宝" value="alipay" />
<el-option label="银行卡" value="bank" /> <el-option label="银行卡" value="bank" />
</el-select> </el-select>
<br /> <br />
<el-input <el-input v-if="Withdrawalform.withdraw == 'alipay' && accountdata.alipay"
v-if="Withdrawalform.withdraw == 'alipay' && accountdata.alipay" :value="`${accountdata.alipay}(${accountdata.name})`" style="margin-top: 20px"
:value="`${accountdata.alipay}(${accountdata.name})`" disabled></el-input>
style="margin-top: 20px" <el-input v-if="Withdrawalform.withdraw == 'bank' && accountdata.bankAccount"
disabled :value="`${accountdata.bankAccount}(${accountdata.name})`" style="margin-top: 20px"
></el-input> disabled></el-input>
<el-input
v-if="Withdrawalform.withdraw == 'bank' && accountdata.bankAccount"
:value="`${accountdata.bankAccount}(${accountdata.name})`"
style="margin-top: 20px"
disabled
></el-input>
<br /> <br />
<el-input <el-input v-if="Withdrawalform.withdraw == 'bank' && accountdata.bankAccount"
v-if="Withdrawalform.withdraw == 'bank' && accountdata.bankAccount" :value="accountdata.bankDeposit" style="margin-top: 20px" disabled></el-input>
:value="accountdata.bankDeposit"
style="margin-top: 20px"
disabled
></el-input>
<div style="border: 1px dashed #ebebeb; margin: 20px 0; width: 500px"></div> <div style="border: 1px dashed #ebebeb; margin: 20px 0; width: 500px"></div>
<div style="display: flex; align-items: center"> <div style="display: flex; align-items: center">
<p style="font-size: 16px; color: #000000ff">提现金额</p> <p style="font-size: 16px; color: #000000ff">提现金额</p>
<i style="color: #fd5d5dff; margin: 0 5px" class="el-icon-warning"></i> <i style="color: #fd5d5dff; margin: 0 5px" class="el-icon-warning"></i>
<span style="font-size: 13px; color: #808080ff" <span style="font-size: 13px; color: #808080ff">提现金额将在7个工作日到账请耐心等待</span>
>提现金额将在7个工作日到账请耐心等待</span
>
</div> </div>
<el-input v-model="Withdrawalform.recordAmount" style="width: 500px"></el-input> <el-input v-model="Withdrawalform.recordAmount" style="width: 500px"></el-input>
<p style="font-size: 14px; color: #4d4d4dff"> <p style="font-size: 14px; color: #4d4d4dff">
@ -72,98 +53,66 @@
<div style="border: 1px dashed #ebebeb; margin: 20px 0; width: 500px"></div> <div style="border: 1px dashed #ebebeb; margin: 20px 0; width: 500px"></div>
<p> <p>
<span style="font-size: 16px; color: #000000ff">交易密码</span> <span style="font-size: 16px; color: #000000ff">交易密码</span>
<span v-if="accountdata.password" style="font-size: 13px; color: #808080ff; margin-left: 10px" <span v-if="accountdata.password"
>保证交易密码的安全</span style="font-size: 13px; color: #808080ff; margin-left: 10px">保证交易密码的安全</span>
> <span v-else style="font-size: 13px; color: #808080ff; margin-left: 10px">您还未设置过交易密码
<span v-else style="font-size: 13px; color: #808080ff; margin-left: 10px" <span style="color: #2587f9;margin-left:5px"
>您还未设置过交易密码 <span style="color: #2587f9;margin-left:5px" @click="activeName='3'">去设置</span></span @click="activeName = '3'">去设置</span></span>
>
</p> </p>
<el-input <el-input show-password auto-complete="new-password"
show-password v-model="Withdrawalform.password"></el-input>
auto-complete="new-password"
v-model="Withdrawalform.password"
></el-input>
<div style="border: 1px dashed #ebebeb; margin: 20px 0; width: 500px"></div> <div style="border: 1px dashed #ebebeb; margin: 20px 0; width: 500px"></div>
<p> <p>
<span style="font-size: 16px; color: #000000ff">备注</span> <span style="font-size: 16px; color: #000000ff">备注</span>
<span style="font-size: 13px; color: #808080ff; margin-left: 10px" <span style="font-size: 13px; color: #808080ff; margin-left: 10px">备注信息非必需</span>
>备注信息非必需</span
>
</p> </p>
<el-input type="textarea" v-model="Withdrawalform.remark"></el-input> <el-input type="textarea" v-model="Withdrawalform.remark"></el-input>
<div style="margin-top: 25px"> <div style="margin-top: 25px">
<el-button <el-button v-if="Withdrawalform.withdraw == 'alipay'"
v-if="Withdrawalform.withdraw == 'alipay'" :disabled="!accountdata.alipay" @click="Withdapply('applyfor')" type="primary"
:disabled="!accountdata.alipay" class="butwidthdraw">提现申请</el-button>
@click="Withdapply('applyfor')" <el-button v-if="Withdrawalform.withdraw == 'bank'"
type="primary" :disabled="!accountdata.bankAccount" @click="Withdapply('applyfor')"
class="butwidthdraw" type="primary" class="butwidthdraw">提现申请</el-button>
>提现申请</el-button <el-button @click="Withdapply('cancel')" type="primary" style="
>
<el-button
v-if="Withdrawalform.withdraw == 'bank'"
:disabled="!accountdata.bankAccount"
@click="Withdapply('applyfor')"
type="primary"
class="butwidthdraw"
>提现申请</el-button
>
<el-button
@click="Withdapply('cancel')"
type="primary"
style="
background: transparent; background: transparent;
border: 1px solid #e0e0e0; border: 1px solid #e0e0e0;
margin-left: 15px; margin-left: 15px;
color: #666666ff; color: #666666ff;
" " class="butwidthdraw">取消</el-button>
class="butwidthdraw"
>取消</el-button
>
</div> </div>
</div> </div>
</div> </div>
<div v-else class="kitborder"> <div v-else class="kitborder">
<div <div style="
style="
display: flex; display: flex;
align-items: center; align-items: center;
margin-left: 30px; margin-left: 30px;
margin-top: -10px; margin-top: -10px;
justify-content: space-between; justify-content: space-between;
" ">
>
<div style="display: flex; align-items: center"> <div style="display: flex; align-items: center">
<div class="dvied"></div> <div class="dvied"></div>
<div style="font-weight: bold; color: #333333; font-size: 19px; margin-left: 10px"> <div style="font-weight: bold; color: #333333; font-size: 19px; margin-left: 10px">
测试宝余额 测试宝余额
</div> </div>
</div> </div>
<div <div style="display: flex; align-items: center; font-size: 15px; cursor: pointer"
style="display: flex; align-items: center; font-size: 15px; cursor: pointer" @click="accountdatadia">
@click="accountdatadia" <p v-if="accountdata.alipay && accountdata.bankAccount"
> style="color: #2286fa; margin: 0 5px">
<p
v-if="accountdata.alipay && accountdata.bankAccount"
style="color: #2286fa; margin: 0 5px"
>
查看账户 查看账户
</p> </p>
<p v-else style="color: #2286fa; margin: 0 5px"> <p v-else style="color: #2286fa; margin: 0 5px">
<i style="color: #2286fa" class="el-icon-circle-plus-outline"></i> <i style="color: #2286fa" class="el-icon-circle-plus-outline"></i>
添加账户 添加账户
<span <span v-if="!accountdata.alipay && !accountdata.bankAccount"
v-if="!accountdata.alipay && !accountdata.bankAccount" style="color: #333333; font-size: 14px">(还未添加账户,无法提现)</span>
style="color: #333333; font-size: 14px"
>(还未添加账户,无法提现)</span
>
</p> </p>
</div> </div>
</div> </div>
<div <div style="width: 100%; height: 1px; background-color: #ebebeb; margin: 14px 0 19px 0">
style="width: 100%; height: 1px; background-color: #ebebeb; margin: 14px 0 19px 0" </div>
></div>
<div style="padding: 0px 30px; font-size: 17px"> <div style="padding: 0px 30px; font-size: 17px">
<div style="display: flex; color: #333333; align-items: center; margin: -10px 0 10px 0"> <div style="display: flex; color: #333333; align-items: center; margin: -10px 0 10px 0">
<p style="font-size: 28px; color: #fd461aff">¥{{ accountdata.balance }}</p> <p style="font-size: 28px; color: #fd461aff">¥{{ accountdata.balance }}</p>
@ -172,12 +121,10 @@
</div> </div>
<div> <div>
<!-- <el-button type="info" disabled>充值</el-button> --> <!-- <el-button type="info" disabled>充值</el-button> -->
<el-button <el-button @click="openwitd" type="primary"
@click="openwitd" :disabled="accountdata.availableBalance == 0">提现</el-button>
type="primary" <!-- <el-button @click="accountReset" type="primary"
:disabled="accountdata.availableBalance == 0" :disabled="!accountdata.alipay && !accountdata.balance">重置</el-button> -->
>提现</el-button
>
</div> </div>
</div> </div>
</div> </div>
@ -190,9 +137,8 @@
交易记录 交易记录
</div> </div>
</div> </div>
<div <div style="width: 100%; height: 1px; background-color: #ebebeb; margin: 14px 0 19px 0">
style="width: 100%; height: 1px; background-color: #ebebeb; margin: 14px 0 19px 0" </div>
></div>
<div style="margin: 30px"> <div style="margin: 30px">
<el-table :data="sactionData"> <el-table :data="sactionData">
<el-table-column label="序号" width="100px" align="center"> <el-table-column label="序号" width="100px" align="center">
@ -200,12 +146,7 @@
{{ scope.$index + 1 }} {{ scope.$index + 1 }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="交易名称" align="center" key="recordName" prop="recordName" />
label="交易名称"
align="center"
key="recordName"
prop="recordName"
/>
<el-table-column label="交易类型" align="center" key="recordType" prop="recordType"> <el-table-column label="交易类型" align="center" key="recordType" prop="recordType">
<template slot-scope="scope"> <template slot-scope="scope">
<!-- <span v-if="scope.row.recordType==0" style="color:#e6a23c">充值</span> <!-- <span v-if="scope.row.recordType==0" style="color:#e6a23c">充值</span>
@ -218,36 +159,22 @@
<span v-if="scope.row.recordType == 3">收入</span> <span v-if="scope.row.recordType == 3">收入</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="交易金额(元)" align="center" key="recordAmount"
label="交易金额(元)" prop="recordAmount">
align="center"
key="recordAmount"
prop="recordAmount"
>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ hasDot(scope.row.recordAmount) }}</span> <span>{{ hasDot(scope.row.recordAmount) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="交易状态" align="center" key="recordStatus" prop="recordStatus">
label="交易状态"
align="center"
key="recordStatus"
prop="recordStatus"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag <el-tag :type="scope.row.recordStatus == 0
:type="
scope.row.recordStatus == 0
? 'primary' ? 'primary'
: scope.row.recordStatus == 1 : scope.row.recordStatus == 1
? 'success' ? 'success'
: scope.row.recordStatus == 2 : scope.row.recordStatus == 2
? 'warning' ? 'warning'
: 'danger' : 'danger'
" " effect="dark" style="cursor: pointer">
effect="dark"
style="cursor: pointer"
>
<span v-if="scope.row.recordStatus == 0">处理中</span> <span v-if="scope.row.recordStatus == 0">处理中</span>
<span v-if="scope.row.recordStatus == 1">已完成</span> <span v-if="scope.row.recordStatus == 1">已完成</span>
<span v-if="scope.row.recordStatus == 2">已取消</span> <span v-if="scope.row.recordStatus == 2">已取消</span>
@ -266,14 +193,9 @@
</el-table> </el-table>
</div> </div>
<div v-if="total > 10" style="width: 100%; margin-top: 30px; text-align: center"> <div v-if="total > 10" style="width: 100%; margin-top: 30px; text-align: center">
<el-pagination <el-pagination background @current-change="getSactionDataFn"
background :current-page="queryParams.pageNum" :page-size="queryParams.pageSize"
@current-change="getSactionDataFn" layout="total, prev, pager, next, jumper" :total="total">
:current-page="queryParams.pageNum"
:page-size="queryParams.pageSize"
layout="total, prev, pager, next, jumper"
:total="total"
>
</el-pagination> </el-pagination>
<!-- <el-pagination <!-- <el-pagination
background background
@ -295,9 +217,8 @@
交易密码 交易密码
</div> </div>
</div> </div>
<div <div style="width: 100%; height: 1px; background-color: #ebebeb; margin: 14px 0 19px 0">
style="width: 100%; height: 1px; background-color: #ebebeb; margin: 14px 0 19px 0" </div>
></div>
<div style="margin: 30px"> <div style="margin: 30px">
<p style="color: #a6a6a6; font-size: 13px">*请确保交易密码与登录密码不同!</p> <p style="color: #a6a6a6; font-size: 13px">*请确保交易密码与登录密码不同!</p>
<p style="color: #a6a6a6; font-size: 13px"> <p style="color: #a6a6a6; font-size: 13px">
@ -308,12 +229,8 @@
<span style="color: #1989fa">个人信息</span> <span style="color: #1989fa">个人信息</span>
<span>页面验证工作手机</span> <span>页面验证工作手机</span>
</p> </p>
<el-form <el-form ref="sactionform" :model="sactionform" :rules="sactionFormRules"
ref="sactionform" label-width="120px">
:model="sactionform"
:rules="sactionFormRules"
label-width="120px"
>
<el-form-item label="手机号码"> <el-form-item label="手机号码">
<span v-if="userinform.phonenumber">+86 {{ userinform.phonenumber }}</span> <span v-if="userinform.phonenumber">+86 {{ userinform.phonenumber }}</span>
</el-form-item> </el-form-item>
@ -327,9 +244,8 @@
<el-input v-model="sactionform.code" maxlength="6" auto-complete="off"> <el-input v-model="sactionform.code" maxlength="6" auto-complete="off">
<el-button slot="suffix" @click="getVerify" :disabled="tranVerify.disabled"> <el-button slot="suffix" @click="getVerify" :disabled="tranVerify.disabled">
<span v-show="tranVerify.show" style="color: #0066eb">获取验证码</span> <span v-show="tranVerify.show" style="color: #0066eb">获取验证码</span>
<span v-show="!tranVerify.show" class="count" <span v-show="!tranVerify.show" class="count">{{ tranVerify.count }}
>{{ tranVerify.count }} s</span </span>
>
</el-button> </el-button>
</el-input> </el-input>
</el-form-item> </el-form-item>
@ -341,99 +257,98 @@
</div> </div>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
<el-dialog <el-dialog class="dialogacount"
class="dialogacount" :title="motify ? '重置账户' : (accountdata.alipay && accountdata.bankAccount) ? '查看账户' : '添加账户'"
:title="accountdata.alipay && accountdata.bankAccount ? '查看账户' : '添加账户'" :visible.sync="addacount" width="550px" :close-on-click-modal="false" append-to-body
:visible.sync="addacount" @close="dialogClose">
width="550px"
:close-on-click-modal="false"
append-to-body
@close="addacount = false"
>
<el-divider></el-divider> <el-divider></el-divider>
<p class="selectadd">选择添加类型</p> <p class="selectadd">{{ motify ? '' : '请选择添加类型' }}</p>
<el-select <el-select v-model="accountform.paytype" style="width: 100%" @change="settypedialog"
v-model="accountform.paytype" v-show="!motify" placeholder="请选择添加类型">
style="width: 100%" <el-option v-show="motify ? accountdata.alipay : true" label="支付宝" value="1" />
@change="settypedialog" <el-option v-show="motify ? accountdata.bankAccount : true" label="银行卡" value="2" />
placeholder="请选择添加类型"
>
<el-option label="支付宝" value="1" />
<el-option label="银行卡" value="2" />
</el-select> </el-select>
<div style="border: 1px dashed #ebebeb; margin: 20px 0"></div> <div style="border: 1px dashed #ebebeb; margin: 20px 0" v-show="!motify"></div>
<div v-if="accountform.paytype == 1" style="display: flex; align-items: center"> <div v-if="accountform.paytype == 1 && !motify"
<img style="width: 19px; height: 19px; margin-right: 5px" src="/assets/crowd/payb.png" alt="" /> style="display: flex; align-items: center;justify-content: space-between">
<div style="display: flex;align-items: center;">
<img style="width: 19px; height: 19px; margin-right: 5px" src="/assets/crowd/payb.png"
alt="" />
<p class="selectadd">支付宝账号</p> <p class="selectadd">支付宝账号</p>
</div> </div>
<div v-if="accountform.paytype == 2" style="display: flex; align-items: center"> <div class="resetBtn" @click="accountReset('1')" v-show="!motify && accountdata.alipay">重置账户
<img </div>
style="width: 18px; height: 15px; margin-right: 5px" </div>
src="/assets/crowd/bankcad.png"
alt="" <div v-if="accountform.paytype == 2"
/> style="display: flex; align-items: center;justify-content: space-between;">
<div style="display: flex;align-items: center;">
<img style="width: 18px; height: 15px; margin-right: 5px" src="/assets/crowd/bankcad.png"
alt="" />
<p class="selectadd">银行卡账号</p> <p class="selectadd">银行卡账号</p>
</div> </div>
<div class="resetBtn" @click="accountReset('2')" v-show="!motify && accountdata.alipay">重置账户
</div>
</div>
<el-form ref="accountform" :model="accountform" :rules="accountformRules" label-width="80px"> <el-form ref="accountform" :model="accountform" :rules="accountformRules" label-width="80px">
<el-form-item v-if="accountform.paytype == 1" label="姓 名:" prop="name"> <el-form-item v-if="accountform.paytype == 1" label="姓 名:" prop="name">
<el-input v-model="accountform.name" :disabled="Boolean(accountdata.alipay)"></el-input> <el-input v-model="accountform.name"
:disabled="Boolean(accountdata.alipay) && !motify"></el-input>
</el-form-item> </el-form-item>
<el-form-item v-if="accountform.paytype == 2" label="姓 名:" prop="name"> <el-form-item v-if="accountform.paytype == 2" label="姓 名:" prop="name">
<el-input <el-input v-model="accountform.name"
v-model="accountform.name" :disabled="Boolean(accountdata.bankAccount) && !motify"></el-input>
:disabled="Boolean(accountdata.bankAccount)"
></el-input>
</el-form-item> </el-form-item>
<div v-if="accountform.paytype == 1"> <div v-if="accountform.paytype == 1">
<el-form-item label="账 号:" prop="alipay"> <el-form-item label="账 号:" prop="alipay">
<el-input <el-input :disabled="Boolean(accountdata.alipay) && !motify"
:disabled="Boolean(accountdata.alipay)" v-model="accountform.alipay"></el-input>
v-model="accountform.alipay"
></el-input>
</el-form-item> </el-form-item>
</div> </div>
<div v-if="accountform.paytype == 2"> <div v-if="accountform.paytype == 2">
<el-form-item label="开户行:" prop="bankDeposit"> <el-form-item label="开户行:" prop="bankDeposit">
<el-input <el-input v-model="accountform.bankDeposit"
v-model="accountform.bankDeposit" :disabled="Boolean(accountdata.bankAccount) && !motify"></el-input>
:disabled="Boolean(accountdata.bankAccount)"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="账 号:" prop="bankAccount"> <el-form-item label="账 号:" prop="bankAccount">
<el-input <el-input v-model="accountform.bankAccount"
v-model="accountform.bankAccount" :disabled="Boolean(accountdata.bankAccount) && !motify"></el-input>
:disabled="Boolean(accountdata.bankAccount)" </el-form-item>
></el-input> </div>
<div v-if="motify">
<el-form-item label="手机号:" prop="mobile">
<el-input v-model="accountform.mobile" disabled></el-input>
</el-form-item>
<el-form-item label="验证码:" prop="code">
<div style="display: flex;">
<el-input v-model="accountform.code"
:disabled="Boolean(accountdata.code) && !motify"></el-input>
<el-button type="primary" @click="getCode" :disabled="verifyCodeText.disabled"
style="width: 150px;">{{
verifyCodeText.text
}}</el-button>
</div>
</el-form-item> </el-form-item>
</div> </div>
<!-- <el-form-item label="账 号:" prop="bankAccount"> <!-- <el-form-item label="账 号:" prop="bankAccount">
<el-input v-model="accountform.bankAccount" ></el-input> <el-input v-model="accountform.bankAccount" ></el-input>
</el-form-item> --> </el-form-item> -->
<div style="display: flex; margin-top: 30px"> <div v-if="motify" style="text-align: center;">
<el-button <el-button type="primary" style="border-radius: 5px;" @click="acsumbit"
v-if="accountform.paytype == 1" class="acountbtn">确定</el-button>
:disabled="Boolean(accountdata.alipay)"
type="primary"
@click="acsumbit('determine')"
class="acountbtn"
>确定</el-button
>
<el-button
v-else
type="primary"
:disabled="Boolean(accountdata.bankAccount)"
@click="acsumbit('determine')"
class="acountbtn"
>确定</el-button
>
<el-button
type="primary"
@click="acsumbit('cancel')"
class="acountbtn"
style="border: 1px solid #e0e0e0; background: #ffffff; color: #666666"
>取消</el-button
>
</div> </div>
<div v-else style="display: flex; margin-top: 30px">
<el-button v-if="accountform.paytype == 1"
:disabled="Boolean(accountdata.alipay) && !motify" type="primary"
@click="acsumbit('determine')" class="acountbtn">确定</el-button>
<el-button v-else type="primary" :disabled="Boolean(accountdata.bankAccount) && !motify"
@click="acsumbit('determine')" class="acountbtn">确定</el-button>
<!-- 修改账户 -->
<el-button type="primary" @click="acsumbit('cancel')" class="acountbtn"
style="border: 1px solid #e0e0e0; background: #ffffff; color: #666666">取消</el-button>
</div>
</el-form> </el-form>
</el-dialog> </el-dialog>
</div> </div>
@ -442,7 +357,7 @@
</template> </template>
<script> <script>
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import { queryAccount, queryRecord, setaddaccount, withdrawapp } from '@/api/my/testb' import { queryAccount, queryRecord, setaddaccount, withdrawapp, updateAccount } from '@/api/my/testb'
import { isMobile } from '@/util/validate' import { isMobile } from '@/util/validate'
import { getCodeUserLogin, scatpasswd } from '@/api/system/login' import { getCodeUserLogin, scatpasswd } from '@/api/system/login'
import { encrypt, decrypt } from '@/util/encrypt' import { encrypt, decrypt } from '@/util/encrypt'
@ -473,6 +388,7 @@ export default {
return { return {
isWithdrawal: false, // isWithdrawal: false, //
addacount: false, addacount: false,
motify: false,
activeName: '1', activeName: '1',
accountdata: {}, accountdata: {},
sactionData: [], sactionData: [],
@ -496,6 +412,11 @@ export default {
bankDeposit: '', bankDeposit: '',
bankAccount: '', bankAccount: '',
}, },
verifyCodeText: {
text: '获取验证码',
timer: '',
disable: false
},
accountformRules: { accountformRules: {
name: [ name: [
{ required: true, message: '姓名不能为空', trigger: 'blur' }, { required: true, message: '姓名不能为空', trigger: 'blur' },
@ -542,6 +463,13 @@ export default {
}, },
}, },
], ],
mobile: [
{ required: true, message: '', trigger: 'blur' },
],
code: [
{ required: true, message: '请输入验证码', trigger: 'blur' },
// { min: 6, message: '6', trigger: 'blur' },
],
}, },
Withdrawalform: { withdraw: 'alipay', recordAmount: '', password: '' }, Withdrawalform: { withdraw: 'alipay', recordAmount: '', password: '' },
queryParams: { queryParams: {
@ -594,6 +522,15 @@ export default {
} }
} }
}, },
dialogClose() {
this.addacount = false
this.motify = false
clearInterval(this.verifyCodeText.timer) //
this.verifyCodeText.timer = null
this.verifyCodeText.disabled = false
this.verifyCodeText.text = '获取验证码'
this.$refs.accountform.clearValidate()
},
// //
getVerify() { getVerify() {
if (!this.sactionform.newpassword) { if (!this.sactionform.newpassword) {
@ -605,6 +542,7 @@ export default {
this.$message.warning('手机格式不对') this.$message.warning('手机格式不对')
return return
} }
this.tranVerify.disabled = true this.tranVerify.disabled = true
// //
getCodeUserLogin(phone) getCodeUserLogin(phone)
@ -629,7 +567,34 @@ export default {
} }
} }
}) })
.catch((err) => {}) .catch((err) => { })
},
getCode() {
const phone = this.userinform.phonenumber
this.verifyCodeText.disabled = true
getCodeUserLogin(phone)
.then((res) => {
if (res.code == 200) {
this.accountform.uuid = res.uuid
this.$message.success('短信发送成功,请注意查收')
const TIME_COUNT = 60 //
if (!this.verifyCodeText.timer) {
this.verifyCodeText.text = TIME_COUNT
this.verifyCodeText.disabled = true
this.verifyCodeText.timer = setInterval(() => {
if (this.verifyCodeText.text > 0 && this.verifyCodeText.text <= TIME_COUNT) {
this.verifyCodeText.text--
} else {
this.verifyCodeText.disabled = false
// this.verifyCodeText.show = true
clearInterval(this.verifyCodeText.timer) //
this.verifyCodeText.timer = null
this.verifyCodeText.text = '获取验证码'
}
}, 1000)
}
}
})
}, },
// //
onSubmit() { onSubmit() {
@ -657,6 +622,23 @@ export default {
} }
}) })
}, },
//
async accountReset(val) {
this.addacount = true
this.motify = true
this.accountform = {
paytype: '',
name: '',
bankDeposit: '',
bankAccount: '',
alipay: '',
mobile: ''
}
this.accountform.paytype = val
this.accountform.mobile = this.userinform.phonenumber
await this.$nextTick()
this.$refs.accountform.clearValidate()
},
// //
accountdatadia() { accountdatadia() {
this.addacount = true this.addacount = true
@ -684,6 +666,14 @@ export default {
settypedialog(e) { settypedialog(e) {
this.$refs.accountform.clearValidate() this.$refs.accountform.clearValidate()
}, },
//
ResetAccount() {
this.$refs.accountform.validate((valid) => {
if (valid) {
}
})
},
// //
acsumbit(type) { acsumbit(type) {
if (type == 'cancel') { if (type == 'cancel') {
@ -710,6 +700,23 @@ export default {
} }
} }
// return; // return;
if (this.motify) {
data.code = this.accountform.code
data.uuid = this.accountform.uuid
updateAccount(data).then(res => {
if (res.data.code == 200) {
this.$message.success('重置成功')
this.addacount = false
this.getAccount()
}
if (res.code == 400) {
this.$message.error(res.data.msg)
}
}).catch(err => {
console.log(err);
this.$message.error(err)
})
} else {
setaddaccount(data).then((res) => { setaddaccount(data).then((res) => {
if (res.data.code == 200) { if (res.data.code == 200) {
this.$message.success('添加成功') this.$message.success('添加成功')
@ -720,6 +727,7 @@ export default {
this.$message.error(res.data.msg) this.$message.error(res.data.msg)
} }
}) })
}
} else { } else {
} }
}) })
@ -791,32 +799,46 @@ export default {
} }
</script> </script>
<style scoped> <style scoped>
.crowdnum >>> .el-tabs--border-card { .resetBtn {
font-weight: bold;
font-size: 6rpx;
color: #1578ED;
line-height: 27rpx;
cursor: pointer;
}
.crowdnum>>>.el-tabs--border-card {
background: transparent; background: transparent;
border: none; border: none;
box-shadow: none; box-shadow: none;
} }
.crowdnum >>> .el-tabs--border-card > .el-tabs__header .el-tabs__item {
.crowdnum>>>.el-tabs--border-card>.el-tabs__header .el-tabs__item {
border: none; border: none;
color: #1a1a1a; color: #1a1a1a;
} }
.crowdnum >>> .el-tabs--border-card > .el-tabs__header .el-tabs__item.is-active {
.crowdnum>>>.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active {
color: #0066eb; color: #0066eb;
/* font-size: 16px; */ /* font-size: 16px; */
} }
.crowdnum >>> .el-tabs--border-card > .el-tabs__content {
.crowdnum>>>.el-tabs--border-card>.el-tabs__content {
padding: 30px 0; padding: 30px 0;
overflow: unset; overflow: unset;
} }
.crowdnum >>> .el-tabs--border-card > .el-tabs__header {
.crowdnum>>>.el-tabs--border-card>.el-tabs__header {
border: none; border: none;
background-color: #f7f7f7; background-color: #f7f7f7;
/* color:#1A1A1A */ /* color:#1A1A1A */
} }
.crowdnum >>> .el-tabs__item {
.crowdnum>>>.el-tabs__item {
height: 45px; height: 45px;
line-height: 45px; line-height: 45px;
} }
.kitborder { .kitborder {
/* width: 1627px; */ /* width: 1627px; */
/* height: 229px; */ /* height: 229px; */
@ -824,12 +846,14 @@ export default {
box-shadow: 0px 1px 12px 0px rgba(17, 19, 21, 0.06); box-shadow: 0px 1px 12px 0px rgba(17, 19, 21, 0.06);
padding: 25px 0 30px 0; padding: 25px 0 30px 0;
} }
.dvied { .dvied {
width: 5px; width: 5px;
height: 18px; height: 18px;
background: #1578ed; background: #1578ed;
border-radius: 3px; border-radius: 3px;
} }
.tagWithdrawal { .tagWithdrawal {
/* width: 174px; */ /* width: 174px; */
/* height: 36px; */ /* height: 36px; */
@ -839,6 +863,7 @@ export default {
text-align: center; text-align: center;
/* line-height: 36px; */ /* line-height: 36px; */
} }
.butRecharge { .butRecharge {
width: 90px; width: 90px;
height: 36px; height: 36px;
@ -848,20 +873,24 @@ export default {
background: #2286fa; background: #2286fa;
line-height: 11px; line-height: 11px;
} }
.crowdnum >>> .el-table th {
.crowdnum>>>.el-table th {
background-color: #f7f7f7; background-color: #f7f7f7;
color: #666666; color: #666666;
text-align: center; text-align: center;
} }
.crowdnum >>> .el-table td {
.crowdnum>>>.el-table td {
/* text-align:center; */ /* text-align:center; */
background-color: #ffffff; background-color: #ffffff;
height: 60px; height: 60px;
color: #333333; color: #333333;
} }
.crowdnum >>> .el-table--border th {
.crowdnum>>>.el-table--border th {
border-right: #f7f7f7; border-right: #f7f7f7;
} }
/* .kitborder{ /* .kitborder{
width:800px; width:800px;
height: 500px; height: 500px;
@ -878,13 +907,14 @@ export default {
font-size: 16px; font-size: 16px;
background-color: #0066eb; background-color: #0066eb;
} }
/* .kitborder >>> .el-input { /* .kitborder >>> .el-input {
width: 300px; width: 300px;
} }
.verifybtn >>> .el-input { .verifybtn >>> .el-input {
width: 300px; width: 300px;
} */ } */
.verifybtn >>> .el-button { .verifybtn>>>.el-button {
margin-top: -3px; margin-top: -3px;
margin-left: -28px; margin-left: -28px;
width: 100%; width: 100%;
@ -897,22 +927,27 @@ export default {
z-index: -1; z-index: -1;
/* 18798569999 */ /* 18798569999 */
} }
.verifybtn >>> .el-button.is-disabled:hover {
.verifybtn>>>.el-button.is-disabled:hover {
background: transparent; background: transparent;
} }
.dialogacount >>> .el-dialog__title {
.dialogacount>>>.el-dialog__title {
color: #000000; color: #000000;
font-size: 20px; font-size: 20px;
font-weight: bold; font-weight: bold;
} }
.dialogacount >>> .el-divider--horizontal {
.dialogacount>>>.el-divider--horizontal {
margin-top: -20px; margin-top: -20px;
} }
.selectadd { .selectadd {
color: #000000; color: #000000;
font-size: 16px; font-size: 16px;
font-weight: bold; font-weight: bold;
} }
.acountbtn { .acountbtn {
width: 250px; width: 250px;
/* height: 44px; */ /* height: 44px; */
@ -922,15 +957,19 @@ export default {
font-size: 16px; font-size: 16px;
/* line-height: 44px; */ /* line-height: 44px; */
} }
.applydraw >>> .el-input__inner {
.applydraw>>>.el-input__inner {
width: 500px !important; width: 500px !important;
} }
.applydraw >>> .el-input {
.applydraw>>>.el-input {
width: 500px; width: 500px;
} }
.applydraw >>> .el-textarea__inner {
.applydraw>>>.el-textarea__inner {
width: 500px; width: 500px;
} }
.butwidthdraw { .butwidthdraw {
width: 200px; width: 200px;
/* height: 44px; */ /* height: 44px; */

@ -4,8 +4,11 @@ import store from "@/store";
// import { Message,MessageBox } from 'element-ui' // import { Message,MessageBox } from 'element-ui'
//自定义组件 //自定义组件
import login from "@/page/logpage/log/login.vue" import login from "@/page/logpage/log/login.vue"
import runEnv from '../util/runEnv';
// import index from "@/page/homepage/index.vue" // import index from "@/page/homepage/index.vue"
const community = () => import("@/page/community/index.vue")
const index = () => import("@/page/homepage/index.vue") const index = () => import("@/page/homepage/index.vue")
const mobileTip = ()=>import("@/page/common/mobileTip.vue")
const home = () => import("@/page/homepage/home/home.vue") const home = () => import("@/page/homepage/home/home.vue")
const toolmarker = () => import("@/page/homepage/tool/toolmarker.vue") const toolmarker = () => import("@/page/homepage/tool/toolmarker.vue")
const tooldetails = () => import("@/page/homepage/tool/tooldetails.vue") const tooldetails = () => import("@/page/homepage/tool/tooldetails.vue")
@ -50,7 +53,14 @@ const router = new Router({
mode: 'history', // 去掉url中的# mode: 'history', // 去掉url中的#
// linkActiveClass:'is-active', // linkActiveClass:'is-active',
routes: [ routes: [
{
path: '/community', component: community, name: 'community' ,
},
{
path:'/mobileTip',component:mobileTip,name:'mobileTip'
},
//首页 //首页
{ {
path: '', component: index, path: '', component: index,
redirect: '/', redirect: '/',
@ -140,6 +150,14 @@ router.beforeEach((to, from, next) => {
} }
} }
if(to.path == '/') {
if(runEnv()){
next('/mobileTip')
}else{
next()
}
}
// console.log(store.getters.companyStatus); // console.log(store.getters.companyStatus);
let token = store.getters.token; let token = store.getters.token;
// if(token){ // if(token){

@ -0,0 +1 @@
@import './variable.scss'

@ -0,0 +1 @@
$bg-color: #0066eb

@ -0,0 +1,39 @@
function copyText(text) {
const textString = text.toString() // 数字没有 .length 不能执行selectText 需要转化成字符串
let input = document.querySelector('#copy-input')
if (!input) {
input = document.createElement('input')
input.id = 'copy-input'
input.readOnly = 'readOnly' // 防止ios聚焦触发键盘事件
input.style.position = 'absolute'
input.style.left = '-2000px'
input.style.zIndex = '-2000'
document.body.appendChild(input)
}
input.value = textString
// ios必须先选中文字且不支持 input.select();
selectText(input, 0, textString.length)
if (document.execCommand('copy')) {
document.execCommand('copy')
return '复制成功!'
} else {
return '复制失败!'
}
}
function selectText(textbox, startIndex, stopIndex) {
if (textbox.createTextRange) {
// ie
const range = textbox.createTextRange()
range.collapse(true)
range.moveStart('character', startIndex) // 起始光标
range.moveEnd('character', stopIndex - startIndex) // 结束光标
range.select() // 不兼容苹果
} else {
// firefox/chrome
textbox.setSelectionRange(startIndex, stopIndex)
textbox.focus()
}
}
export default copyText

@ -0,0 +1,12 @@
function runEnv() {
const info = navigator.userAgent.toLowerCase();
var isPhone = /mobile/i.test(info);
if (isPhone) {
return true
}
return false
}
export default runEnv

@ -16,6 +16,7 @@ module.exports = {
// const port = process.env.port || process.env.npm_config_port || 80 // 端口 // const port = process.env.port || process.env.npm_config_port || 80 // 端口
devServer: { devServer: {
// https:true,
host: '0.0.0.0', host: '0.0.0.0',
// port: port, // port: port,
open: true, open: true,
@ -56,6 +57,13 @@ module.exports = {
], ],
}, },
css: {
loaderOptions: {
scss: {
data: `@import "@/style/index.scss";`
}
}
},
lintOnSave: true, lintOnSave: true,
productionSourceMap: false, productionSourceMap: false,
chainWebpack: config => { chainWebpack: config => {

Loading…
Cancel
Save