Compare commits
20 Commits
HongKongPr
...
master
Author | SHA1 | Date | |
---|---|---|---|
|
4c0d840705 | ||
|
2b2bd9da53 | ||
|
f6091b0b28 | ||
|
170ba990fa | ||
|
bc299037e5 | ||
|
1d0d54e445 | ||
|
00f30db09e | ||
|
ca024d9a16 | ||
|
44aeb78e4f | ||
|
70f4c35039 | ||
|
380dde983a | ||
|
a7deaea24e | ||
|
cc4295f008 | ||
|
3ee03375b8 | ||
|
3589d6a3f0 | ||
|
f0de39f135 | ||
|
399922bb77 | ||
|
11056a74a4 | ||
|
98301d80fe | ||
|
25e15aa336 |
192
01.html
192
01.html
@ -1,192 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Document</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="typeoption" id="position_thread">
|
||||
<table class="cgtl mbm" v-if="load">
|
||||
<caption>
|
||||
个人信息
|
||||
</caption>
|
||||
<tbody>
|
||||
<tr v-if="info.profession">
|
||||
<th>目前专业:</th>
|
||||
<td v-text="info.profession"></td>
|
||||
</tr>
|
||||
|
||||
<tr v-if="info.estate">
|
||||
<th>目前状态:</th>
|
||||
<td v-text="info.estate_text"></td>
|
||||
</tr>
|
||||
|
||||
<tr v-if="info.undergraduate_school">
|
||||
<th>本科学校:</th>
|
||||
<td v-text="info.undergraduate_school"></td>
|
||||
</tr>
|
||||
|
||||
<tr v-if="info.gpa_score">
|
||||
<th>GPA:</th>
|
||||
<td v-text="info.gpa_score"></td>
|
||||
</tr>
|
||||
|
||||
<tr v-if="info.gpa_ranking">
|
||||
<th>排名:</th>
|
||||
<td v-text="info.gpa_ranking"></td>
|
||||
</tr>
|
||||
|
||||
<tr v-if="info.master_school">
|
||||
<th>硕士学校:</th>
|
||||
<td v-text="info.master_school"></td>
|
||||
</tr>
|
||||
|
||||
<tr v-if="info.master_achievement">
|
||||
<th>成绩:</th>
|
||||
<td v-text="info.master_achievement"></td>
|
||||
</tr>
|
||||
|
||||
<tr v-if="info.gre_total">
|
||||
<th>GRE</th>
|
||||
<td>总分: <span v-text="info.gre_total"></span> V: <span v-text="info.gre_v"></span> Q: <span v-text="info.gre_q"></span> AW: <span v-text="info.gre_aw"></span></td>
|
||||
</tr>
|
||||
|
||||
<tr v-if="info.ielts_total">
|
||||
<th>IELTS</th>
|
||||
<td>总分:<span v-text="info.ielts_total"></span> R:<span v-text="info.ielts_r"></span> L:<span v-text="info.ielts_l"></span> S:<span v-text="info.ielts_s"></span> W:<span v-text="info.ielts_w"></span></td>
|
||||
</tr>
|
||||
|
||||
<tr v-if="info.toefl_total">
|
||||
<th>TOEFL</th>
|
||||
<td>总分:<span v-text="info.toefl_total"></span> R:<span v-text="info.toefl_r"></span> L:<span v-text="info.toefl_l"></span> S:<span v-text="info.toefl_s"></span> W:<span v-text="info.toefl_w"></span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="cgtl mbm" v-else="">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>数据加载中.. <img src="http://www.gter.net/static/img/loading-black.gif" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="cgtl mbm" v-if="load">
|
||||
<caption>
|
||||
申请信息
|
||||
</caption>
|
||||
<tbody>
|
||||
<tr v-if="thread.profession">
|
||||
<th>申请专业</th>
|
||||
<td v-text="thread.profession"></td>
|
||||
</tr>
|
||||
|
||||
<tr v-if="thread.profession_cid">
|
||||
<th>专业分类</th>
|
||||
<td>
|
||||
<span v-text="thread.profession_text"></span>
|
||||
<span v-if="thread.profession_cid && thread.apply_llm">LL.M</span>
|
||||
<span v-if="thread.profession_cid && thread.apply_jd">J.D</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr v-if="thread.apply_doctor || thread.apply_master">
|
||||
<th>学位</th>
|
||||
<td>
|
||||
<span v-if="thread.apply_doctor">申博</span>
|
||||
<span v-if="thread.apply_master" v-text="thread.apply_master_text"></span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr v-if="thread.country">
|
||||
<th>国家或地区</th>
|
||||
<td v-text="thread.country"></td>
|
||||
</tr>
|
||||
|
||||
<tr v-if="thread.experience">
|
||||
<th>科研经验</th>
|
||||
<td v-text="thread.experience_text"></td>
|
||||
</tr>
|
||||
|
||||
<tr v-if="thread.scholarship">
|
||||
<th>是否要奖学金</th>
|
||||
<td>是</td>
|
||||
</tr>
|
||||
|
||||
<tr v-if="thread.profession_cid==2 && thread.lsat">
|
||||
<th>LSAT</th>
|
||||
<td v-text="thread.lsat"></td>
|
||||
</tr>
|
||||
|
||||
<tr v-if="thread.profession_cid==2 && thread.sex>0">
|
||||
<th>性别</th>
|
||||
<td v-text="thread.sex_text"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table v-if="load && thread.paper" cellpadding="0" cellspacing="0" class="cgtl mbm">
|
||||
<caption>
|
||||
论文发表
|
||||
</caption>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td v-html="thread.paper">...</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table v-if="load && thread.recommendation" cellpadding="0" cellspacing="0" class="cgtl mbm">
|
||||
<caption>
|
||||
推荐信
|
||||
</caption>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td v-html="thread.recommendation">...</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table v-if="load && thread.hope" cellpadding="0" cellspacing="0" class="cgtl mbm">
|
||||
<caption>
|
||||
定位期望
|
||||
</caption>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td v-html="thread.hope">...</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<script>
|
||||
new Vue({
|
||||
el:'#position_thread',
|
||||
data:{
|
||||
key: '0f3949ebfda1e40e21ce37526326c0d8',
|
||||
tid: '2613455',
|
||||
session: '3d3ecbefcf5b45c59c66327135cc263d',
|
||||
load: false,
|
||||
info: [],
|
||||
thread: [],
|
||||
},
|
||||
ready: function() {
|
||||
this.loaddata()
|
||||
},
|
||||
methods: {
|
||||
loaddata: function()
|
||||
{
|
||||
this.load = false;
|
||||
this.$http.post('//www.gter.net/position_thread.json', {tid: this.tid, session: this.session, key: this.key }, {emulateJSON: true}).then(function(res) {
|
||||
var data = typeof res.data=='string' ? JSON.parse(res.data) : res.data;
|
||||
this.thread = data.thread
|
||||
this.info = data.info
|
||||
if (this.thread.id) {
|
||||
this.load = true;
|
||||
}
|
||||
})
|
||||
},
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
dist/css/356.f7682b16.css
vendored
Normal file
1
dist/css/356.f7682b16.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/css/39.c6e7e71d.css
vendored
1
dist/css/39.c6e7e71d.css
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
dist/css/878.0c2853cd.css
vendored
Normal file
1
dist/css/878.0c2853cd.css
vendored
Normal file
@ -0,0 +1 @@
|
||||
.container[data-v-500ea229]{padding-top:1.3rem;padding-bottom:1.3rem}.container .search-input-box[data-v-500ea229]{margin-left:.32rem}.container .search-input-box .search-input[data-v-500ea229]{width:8.2rem;height:.96rem;border-radius:2.56rem;background:#ebebeb}.container .search-input-box .search-input .search-input-cross[data-v-500ea229],.container .search-input-box .search-input .search-input-icon[data-v-500ea229]{width:.4rem;height:.4rem}.container .search-input-box .search-input .search-input-icon[data-v-500ea229]{padding:0 .4rem}.container .search-input-box .search-input .search-input-cross[data-v-500ea229]{padding-right:.4rem}.container .search-input-box .search-input .search-input-input[data-v-500ea229]{height:100%;font-size:.4rem}.container .search-input-box .search-input-cancel[data-v-500ea229]{color:#000;font-size:.36rem;padding-left:.46rem;width:.74rem}.container .numberResults[data-v-500ea229]{font-size:.32rem;color:#555;margin:.64rem .32rem .48rem}.container .numberResults .number[data-v-500ea229]{color:#000;font-weight:650;margin:0 .1667rem}.container .result-box[data-v-500ea229]{justify-content:center;flex-direction:column;overflow:auto}.container .result-box .result-item[data-v-500ea229]{margin-bottom:.32rem;width:9.36rem;height:3.96rem;background-color:#fff;border:none;border-radius:.32rem;box-shadow:0 0 .16rem rgba(0,0,0,.08);padding:.4rem;box-sizing:border-box;flex-direction:column;position:relative}.container .result-box .result-item .result-header[data-v-500ea229]{margin-bottom:.32rem}.container .result-box .result-item .result-header .result-label[data-v-500ea229]{font-size:.28rem;height:.52rem;line-height:.52rem;background:#333;color:#fff;display:inline-block;border-radius:.16rem;padding:0 .12rem;margin-right:.12rem}.container .result-box .result-item .result-header .result-title[data-v-500ea229]{color:#000;font-size:.37333rem;line-height:.65rem;display:inline}.container .result-box .result-item .result-header .result-title[data-v-500ea229] em{color:#f95d5d}.container .result-box .result-item .result-content[data-v-500ea229]{line-height:.52rem;font-size:.3rem;color:#7f7f7f;height:1.04rem}.container .result-box .result-item .reply-visible[data-v-500ea229]{font-size:.32rem;height:1.04rem;background:hsla(0,0%,95%,.7)}.container .result-box .result-item .result-info[data-v-500ea229]{align-items:self-end;justify-content:space-between}.container .result-box .result-item .result-info .user-info .icon-head[data-v-500ea229]{width:.64rem;height:.64rem;border-radius:50%}.container .result-box .result-item .result-info .user-info .user-name[data-v-500ea229]{font-size:.32rem;color:#333;margin-left:.2rem}.container .result-box .result-item .result-info .item-data[data-v-500ea229]{font-size:.28rem}.container .result-box .result-item .result-info .item-data .item-data-item[data-v-500ea229]:last-of-type{margin-left:.4rem}.container .result-box .result-item .result-info .item-data .item-data-item .icon-look[data-v-500ea229]{width:.4267rem;height:.18rem;margin-right:.16rem}.container .result-box .result-item .result-info .item-data .item-data-item .icon-msg[data-v-500ea229]{width:.32rem;height:.28rem;margin-right:.16rem}.container .paging[data-v-500ea229]{margin-top:.48rem}.container .paging[data-v-500ea229] .el-pagination.is-background .el-pager li:not(.disabled).active{background:#62b1ff;border-radius:50%}.container .paging[data-v-500ea229] .el-pagination .btn-next .el-icon,.container .paging[data-v-500ea229] .el-pagination .btn-prev .el-icon{font-size:.4rem}.container .result-empty-box[data-v-500ea229]{height:70vh;width:9.36rem;background:#fff;margin:0 auto;border-radius:.32rem}.container .result-empty-box .result-empty-icon[data-v-500ea229]{width:2.04rem;height:2.4rem}
|
1
dist/css/879.b9149ecf.css
vendored
1
dist/css/879.b9149ecf.css
vendored
@ -1 +0,0 @@
|
||||
.container[data-v-128503e4]{padding-top:1.3rem;padding-bottom:1.3rem}.container .search-input-box[data-v-128503e4]{margin-left:.32rem}.container .search-input-box .search-input[data-v-128503e4]{width:8.2rem;height:.96rem;border-radius:2.56rem;background:#ebebeb}.container .search-input-box .search-input .search-input-cross[data-v-128503e4],.container .search-input-box .search-input .search-input-icon[data-v-128503e4]{width:.4rem;height:.4rem}.container .search-input-box .search-input .search-input-icon[data-v-128503e4]{padding:0 .4rem}.container .search-input-box .search-input .search-input-cross[data-v-128503e4]{padding-right:.4rem}.container .search-input-box .search-input .search-input-input[data-v-128503e4]{height:100%;font-size:.4rem}.container .search-input-box .search-input-cancel[data-v-128503e4]{color:#000;font-size:.36rem;padding-left:.46rem;width:.74rem}.container .numberResults[data-v-128503e4]{font-size:.32rem;color:#555;margin:.64rem .32rem .48rem}.container .numberResults .number[data-v-128503e4]{color:#000;font-weight:650;margin:0 .1667rem}.container .result-box[data-v-128503e4]{justify-content:center;flex-direction:column;overflow:auto}.container .result-box .result-item[data-v-128503e4]{margin-bottom:.32rem;width:9.36rem;height:3.96rem;background-color:#fff;border:none;border-radius:.32rem;box-shadow:0 0 .16rem rgba(0,0,0,.08);padding:.4rem;box-sizing:border-box;flex-direction:column;position:relative}.container .result-box .result-item .result-header[data-v-128503e4]{margin-bottom:.32rem}.container .result-box .result-item .result-header .result-label[data-v-128503e4]{font-size:.28rem;height:.52rem;line-height:.52rem;background:#333;color:#fff;display:inline-block;border-radius:.16rem;padding:0 .12rem;margin-right:.12rem}.container .result-box .result-item .result-header .result-title[data-v-128503e4]{color:#000;font-size:.37333rem;line-height:.65rem;display:inline}.container .result-box .result-item .result-header .result-title[data-v-128503e4] em{color:#f95d5d}.container .result-box .result-item .result-content[data-v-128503e4]{line-height:.52rem;font-size:.3rem;color:#7f7f7f;height:1.04rem}.container .result-box .result-item .reply-visible[data-v-128503e4]{font-size:.32rem;height:1.04rem;background:hsla(0,0%,95%,.7)}.container .result-box .result-item .result-info[data-v-128503e4]{align-items:self-end;justify-content:space-between}.container .result-box .result-item .result-info .user-info .icon-head[data-v-128503e4]{width:.64rem;height:.64rem;border-radius:50%}.container .result-box .result-item .result-info .user-info .user-name[data-v-128503e4]{font-size:.32rem;color:#333;margin-left:.2rem}.container .result-box .result-item .result-info .item-data[data-v-128503e4]{font-size:.28rem}.container .result-box .result-item .result-info .item-data .item-data-item[data-v-128503e4]:last-of-type{margin-left:.4rem}.container .result-box .result-item .result-info .item-data .item-data-item .icon-look[data-v-128503e4]{width:.4267rem;height:.18rem;margin-right:.16rem}.container .result-box .result-item .result-info .item-data .item-data-item .icon-msg[data-v-128503e4]{width:.32rem;height:.28rem;margin-right:.16rem}.container .paging[data-v-128503e4]{margin-top:.48rem}.container .paging[data-v-128503e4] .el-pagination.is-background .el-pager li:not(.disabled).active{background:#62b1ff;border-radius:50%}.container .paging[data-v-128503e4] .el-pagination .btn-next .el-icon,.container .paging[data-v-128503e4] .el-pagination .btn-prev .el-icon{font-size:.4rem}.container .result-empty-box[data-v-128503e4]{height:70vh;width:9.36rem;background:#fff;margin:0 auto;border-radius:.32rem}.container .result-empty-box .result-empty-icon[data-v-128503e4]{width:2.04rem;height:2.4rem}
|
1
dist/css/chunk-vendors~7b6a7b5f.6f1d11ce.css
vendored
1
dist/css/chunk-vendors~7b6a7b5f.6f1d11ce.css
vendored
File diff suppressed because one or more lines are too long
1
dist/css/chunk-vendors~7b6a7b5f.8608dd3a.css
vendored
Normal file
1
dist/css/chunk-vendors~7b6a7b5f.8608dd3a.css
vendored
Normal file
File diff suppressed because one or more lines are too long
19
dist/index.html
vendored
19
dist/index.html
vendored
File diff suppressed because one or more lines are too long
1
dist/js/124.79130f1c.js
vendored
Normal file
1
dist/js/124.79130f1c.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
"use strict";(self["webpackChunkninepage"]=self["webpackChunkninepage"]||[]).push([[124],{9143:function(e,t,n){n.r(t),n.d(t,{default:function(){return l}});var a=function(){var e=this,t=e._self._c;return t("div",[t("header-nav",{attrs:{issearch:!0,needgetuser:!0}},[t("template",{slot:"header-title"},[e._v("帖子详情")])],2),t("router-view",{key:e.key})],1)},r=[],u=n(517),s={name:"detail",data(){return{}},computed:{key(){return this.$route.path+Math.random()}},mounted(){},methods:{},components:{HeaderNav:u.Z}},d=s,i=n(1001),o=(0,i.Z)(d,a,r,!1,null,"10593ad7",null),l=o.exports}}]);
|
1
dist/js/233.18adb6c9.js
vendored
1
dist/js/233.18adb6c9.js
vendored
File diff suppressed because one or more lines are too long
1
dist/js/337.4b2508a0.js
vendored
Normal file
1
dist/js/337.4b2508a0.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
"use strict";(self["webpackChunkninepage"]=self["webpackChunkninepage"]||[]).push([[337],{5817:function(e,t,n){n.r(t),n.d(t,{default:function(){return h}});var r=function(){var e=this,t=e._self._c;return t("div",[t("header-nav",{attrs:{issearch:!1,needgetuser:!0}},[t("template",{slot:"header-title"},[e._v("搜索帖子")])],2),t("router-view",{key:e.key})],1)},a=[],u=n(517),s={name:"search",data(){return{}},computed:{key(){return this.$route.path+Math.random()}},mounted(){},methods:{},components:{HeaderNav:u.Z}},o=s,c=n(1001),d=(0,c.Z)(o,r,a,!1,null,"24c9f798",null),h=d.exports}}]);
|
1
dist/js/354.bc2d16ec.js
vendored
Normal file
1
dist/js/354.bc2d16ec.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
"use strict";(self["webpackChunkninepage"]=self["webpackChunkninepage"]||[]).push([[354],{6170:function(e,t,n){n.r(t),n.d(t,{default:function(){return o}});var r=function(){var e=this,t=e._self._c;return t("div",[t("header-nav",{attrs:{issearch:!0,needgetuser:!0}},[t("template",{slot:"header-title"},[e._v("我的寄托")])],2),t("router-view")],1)},a=[],u=n(517),s={name:"user",data(){return{}},mounted(){},methods:{},components:{HeaderNav:u.Z}},d=s,i=n(1001),l=(0,i.Z)(d,r,a,!1,null,"7090fd6a",null),o=l.exports}}]);
|
1
dist/js/483.9b9ef662.js
vendored
1
dist/js/483.9b9ef662.js
vendored
@ -1 +0,0 @@
|
||||
"use strict";(self["webpackChunkninepage"]=self["webpackChunkninepage"]||[]).push([[483],{5817:function(e,t,n){n.r(t),n.d(t,{default:function(){return h}});var r=function(){var e=this,t=e._self._c;return t("div",[t("header-nav",{attrs:{issearch:!1,needgetuser:!0}},[t("template",{slot:"header-title"},[e._v("搜索帖子")])],2),t("router-view",{key:e.key})],1)},a=[],u=n(4917),s={name:"search",data(){return{}},computed:{key(){return this.$route.path+Math.random()}},mounted(){},methods:{},components:{HeaderNav:u.Z}},o=s,c=n(1001),d=(0,c.Z)(o,r,a,!1,null,"24c9f798",null),h=d.exports}}]);
|
1
dist/js/517.b66c61bd.js
vendored
Normal file
1
dist/js/517.b66c61bd.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/js/561.862fb303.js
vendored
1
dist/js/561.862fb303.js
vendored
@ -1 +0,0 @@
|
||||
"use strict";(self["webpackChunkninepage"]=self["webpackChunkninepage"]||[]).push([[561],{9143:function(e,t,n){n.r(t),n.d(t,{default:function(){return l}});var a=function(){var e=this,t=e._self._c;return t("div",[t("header-nav",{attrs:{issearch:!0,needgetuser:!0}},[t("template",{slot:"header-title"},[e._v("帖子详情")])],2),t("router-view",{key:e.key})],1)},r=[],u=n(4917),s={name:"detail",data(){return{}},computed:{key(){return this.$route.path+Math.random()}},mounted(){},methods:{},components:{HeaderNav:u.Z}},d=s,i=n(1001),o=(0,i.Z)(d,a,r,!1,null,"10593ad7",null),l=o.exports}}]);
|
1
dist/js/584.43395d1c.js
vendored
1
dist/js/584.43395d1c.js
vendored
@ -1 +0,0 @@
|
||||
"use strict";(self["webpackChunkninepage"]=self["webpackChunkninepage"]||[]).push([[584],{6170:function(e,t,n){n.r(t),n.d(t,{default:function(){return o}});var r=function(){var e=this,t=e._self._c;return t("div",[t("header-nav",{attrs:{issearch:!0,needgetuser:!0}},[t("template",{slot:"header-title"},[e._v("我的寄托")])],2),t("router-view")],1)},a=[],u=n(4917),s={name:"user",data(){return{}},mounted(){},methods:{},components:{HeaderNav:u.Z}},d=s,i=n(1001),l=(0,i.Z)(d,r,a,!1,null,"7090fd6a",null),o=l.exports}}]);
|
1
dist/js/718.165fc1ef.js
vendored
Normal file
1
dist/js/718.165fc1ef.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/js/831.6fddd3bb.js
vendored
Normal file
1
dist/js/831.6fddd3bb.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
"use strict";(self["webpackChunkninepage"]=self["webpackChunkninepage"]||[]).push([[831],{2013:function(e,t,n){n.r(t),n.d(t,{default:function(){return u}});var a=function(){var e=this,t=e._self._c;return t("div",[t("header-nav",{attrs:{issearch:!0,needgetuser:!0}},[t("template",{slot:"header-title"},[e._v("寄托天下论坛")])],2),t("nav",[t("router-link",{attrs:{to:e.recommendURl,exact:""}},[e._v("推荐阅读")]),t("router-link",{attrs:{to:e.collect,exact:""}},[e._v("收藏的版块")]),t("router-link",{attrs:{to:e.allSections,exact:""}},[e._v("全部版块")])],1),t("div",{staticClass:"publish flexcolumn flexcenter",on:{click:function(t){return t.stopPropagation(),e.$skipUrl(e.invitationPost)}}},[t("svg-icon",{attrs:{"icon-class":"add","class-name":"icon-publish"}}),e._v(" 发帖 ")],1),t("router-view",{key:e.key})],1)},l=[],o=n(517),i=n(6799),r={name:"Index",data(){return{favorite:[],recommend:[],fid:null,allSections:"/allSections",collect:"/collect",recommendURl:"/recommend",invitationPost:i.a}},computed:{key(){return this.$route.path+Math.random()}},watch:{"$store.state.homeRequestState":{handler(e,t){let{favoriteList:n,recommendList:a}=this.$store.state;this.favorite=n,this.recommend=a},immediate:!0},$route:{handler(e,t){let n=e.fullPath;-1!=n.indexOf("allSections")&&(this.allSections=n),-1!=n.indexOf("collect")&&(this.collect=n),-1!=n.indexOf("recommend")&&(this.recommendURl=n)},immediate:!0}},mounted(){},components:{HeaderNav:o.Z},methods:{}},s=r,c=n(1001),d=(0,c.Z)(s,a,l,!1,null,null,null),u=d.exports}}]);
|
1
dist/js/878.25f811f5.js
vendored
Normal file
1
dist/js/878.25f811f5.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/js/879.5b9e6015.js
vendored
1
dist/js/879.5b9e6015.js
vendored
File diff suppressed because one or more lines are too long
1
dist/js/917.8692ef86.js
vendored
1
dist/js/917.8692ef86.js
vendored
File diff suppressed because one or more lines are too long
1
dist/js/94.fc6edfaa.js
vendored
1
dist/js/94.fc6edfaa.js
vendored
@ -1 +0,0 @@
|
||||
"use strict";(self["webpackChunkninepage"]=self["webpackChunkninepage"]||[]).push([[94],{2013:function(e,t,n){n.r(t),n.d(t,{default:function(){return u}});var a=function(){var e=this,t=e._self._c;return t("div",[t("header-nav",{attrs:{issearch:!0,needgetuser:!0}},[t("template",{slot:"header-title"},[e._v("寄托天下论坛")])],2),t("nav",[t("router-link",{attrs:{to:e.recommendURl,exact:""}},[e._v("推荐阅读")]),t("router-link",{attrs:{to:e.collect,exact:""}},[e._v("收藏的版块")]),t("router-link",{attrs:{to:e.allSections,exact:""}},[e._v("全部版块")])],1),t("div",{staticClass:"publish flexcolumn flexcenter",on:{click:function(t){return t.stopPropagation(),e.$skipUrl(e.invitationPost)}}},[t("svg-icon",{attrs:{"icon-class":"add","class-name":"icon-publish"}}),e._v(" 发帖 ")],1),t("router-view",{key:e.key})],1)},l=[],o=n(4917),i=n(6799),r={name:"Index",data(){return{favorite:[],recommend:[],fid:null,allSections:"/allSections",collect:"/collect",recommendURl:"/recommend",invitationPost:i.a}},computed:{key(){return this.$route.path+Math.random()}},watch:{"$store.state.homeRequestState":{handler(e,t){let{favoriteList:n,recommendList:a}=this.$store.state;this.favorite=n,this.recommend=a},immediate:!0},$route:{handler(e,t){let n=e.fullPath;-1!=n.indexOf("allSections")&&(this.allSections=n),-1!=n.indexOf("collect")&&(this.collect=n),-1!=n.indexOf("recommend")&&(this.recommendURl=n)},immediate:!0}},mounted(){},components:{HeaderNav:o.Z},methods:{}},s=r,c=n(1001),d=(0,c.Z)(s,a,l,!1,null,null,null),u=d.exports}}]);
|
1
dist/js/app~42f9d7e6.9764086e.js
vendored
Normal file
1
dist/js/app~42f9d7e6.9764086e.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/js/app~42f9d7e6.eaa8d909.js
vendored
1
dist/js/app~42f9d7e6.eaa8d909.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
545
dist/js/jweixin-1.3.2.js
vendored
Normal file
545
dist/js/jweixin-1.3.2.js
vendored
Normal file
@ -0,0 +1,545 @@
|
||||
;((e, n) => {
|
||||
"function" == typeof define && (define.amd || define.cmd)
|
||||
? define(function () {
|
||||
return n(e)
|
||||
})
|
||||
: n(e, !0)
|
||||
})(this, function (r, e) {
|
||||
var a, c, n, i, t, s, d, o, l, u, p, f, m, g, h, I, S, y, v, _, w, T
|
||||
if (!r.jWeixin)
|
||||
return (
|
||||
(a = { config: "preVerifyJSAPI", onMenuShareTimeline: "menu:share:timeline", onMenuShareAppMessage: "menu:share:appmessage", onMenuShareQQ: "menu:share:qq", onMenuShareWeibo: "menu:share:weiboApp", onMenuShareQZone: "menu:share:QZone", previewImage: "imagePreview", getLocation: "geoLocation", openProductSpecificView: "openProductViewWithPid", addCard: "batchAddCard", openCard: "batchViewCard", chooseWXPay: "getBrandWCPayRequest", openEnterpriseRedPacket: "getRecevieBizHongBaoRequest", startSearchBeacons: "startMonitoringBeacons", stopSearchBeacons: "stopMonitoringBeacons", onSearchBeacons: "onBeaconsInRange", consumeAndShareCard: "consumedShareCard", openAddress: "editAddress" }),
|
||||
(c = (() => {
|
||||
var e,
|
||||
n = {}
|
||||
for (e in a) n[a[e]] = e
|
||||
return n
|
||||
})()),
|
||||
(i = (n = r.document).title),
|
||||
(t = navigator.userAgent.toLowerCase()),
|
||||
(f = navigator.platform.toLowerCase()),
|
||||
(s = !(!f.match("mac") && !f.match("win"))),
|
||||
(d = -1 != t.indexOf("wxdebugger")),
|
||||
(o = -1 != t.indexOf("micromessenger")),
|
||||
(l = -1 != t.indexOf("android")),
|
||||
(u = -1 != t.indexOf("iphone") || -1 != t.indexOf("ipad")),
|
||||
(p = (f = t.match(/micromessenger\/(\d+\.\d+\.\d+)/) || t.match(/micromessenger\/(\d+\.\d+)/)) ? f[1] : ""),
|
||||
(m = { initStartTime: L(), initEndTime: 0, preVerifyStartTime: 0, preVerifyEndTime: 0 }),
|
||||
(g = { version: 1, appId: "", initTime: 0, preVerifyTime: 0, networkType: "", isPreVerifyOk: 1, systemType: u ? 1 : l ? 2 : -1, clientVersion: p, url: encodeURIComponent(location.href) }),
|
||||
(h = {}),
|
||||
(I = { _completes: [] }),
|
||||
(S = { state: 0, data: {} }),
|
||||
B(function () {
|
||||
m.initEndTime = L()
|
||||
}),
|
||||
(y = !1),
|
||||
(v = []),
|
||||
(_ = {
|
||||
config: function (e) {
|
||||
C("config", (h = e))
|
||||
var o = !1 !== h.check
|
||||
B(function () {
|
||||
if (o)
|
||||
k(
|
||||
a.config,
|
||||
{ verifyJsApiList: V(h.jsApiList) },
|
||||
((I._complete = function (e) {
|
||||
;(m.preVerifyEndTime = L()), (S.state = 1), (S.data = e)
|
||||
}),
|
||||
(I.success = function (e) {
|
||||
g.isPreVerifyOk = 0
|
||||
}),
|
||||
(I.fail = function (e) {
|
||||
I._fail ? I._fail(e) : (S.state = -1)
|
||||
}),
|
||||
(t = I._completes).push(function () {
|
||||
var n
|
||||
s ||
|
||||
d ||
|
||||
h.debug ||
|
||||
p < "6.0.2" ||
|
||||
g.systemType < 0 ||
|
||||
((n = new Image()),
|
||||
(g.appId = h.appId),
|
||||
(g.initTime = m.initEndTime - m.initStartTime),
|
||||
(g.preVerifyTime = m.preVerifyEndTime - m.preVerifyStartTime),
|
||||
_.getNetworkType({
|
||||
isInnerInvoke: !0,
|
||||
success: function (e) {
|
||||
;(g.networkType = e.networkType), (n.src = "https://open.weixin.qq.com/sdk/report?v=" + g.version + "&o=" + g.isPreVerifyOk + "&s=" + g.systemType + "&c=" + g.clientVersion + "&a=" + g.appId + "&n=" + g.networkType + "&i=" + g.initTime + "&p=" + g.preVerifyTime + "&u=" + g.url)
|
||||
},
|
||||
}))
|
||||
}),
|
||||
(I.complete = function (e) {
|
||||
for (var n = 0, i = t.length; n < i; ++n) t[n]()
|
||||
I._completes = []
|
||||
}),
|
||||
I)
|
||||
),
|
||||
(m.preVerifyStartTime = L())
|
||||
else {
|
||||
S.state = 1
|
||||
for (var e = I._completes, n = 0, i = e.length; n < i; ++n) e[n]()
|
||||
I._completes = []
|
||||
}
|
||||
var t
|
||||
}),
|
||||
_.invoke ||
|
||||
((_.invoke = function (e, n, i) {
|
||||
r.WeixinJSBridge && WeixinJSBridge.invoke(e, P(n), i)
|
||||
}),
|
||||
(_.on = function (e, n) {
|
||||
r.WeixinJSBridge && WeixinJSBridge.on(e, n)
|
||||
}))
|
||||
},
|
||||
ready: function (e) {
|
||||
;(0 != S.state || (I._completes.push(e), !o && h.debug)) && e()
|
||||
},
|
||||
error: function (e) {
|
||||
p < "6.0.2" || (-1 == S.state ? e(S.data) : (I._fail = e))
|
||||
},
|
||||
checkJsApi: function (e) {
|
||||
k(
|
||||
"checkJsApi",
|
||||
{ jsApiList: V(e.jsApiList) },
|
||||
((e._complete = function (e) {
|
||||
l && (i = e.checkResult) && (e.checkResult = JSON.parse(i))
|
||||
var n,
|
||||
i = e,
|
||||
t = i.checkResult
|
||||
for (n in t) {
|
||||
var o = c[n]
|
||||
o && ((t[o] = t[n]), delete t[n])
|
||||
}
|
||||
}),
|
||||
e)
|
||||
)
|
||||
},
|
||||
onMenuShareTimeline: function (e) {
|
||||
M(
|
||||
a.onMenuShareTimeline,
|
||||
{
|
||||
complete: function () {
|
||||
k("shareTimeline", { title: e.title || i, desc: e.title || i, img_url: e.imgUrl || "", link: e.link || location.href, type: e.type || "link", data_url: e.dataUrl || "" }, e)
|
||||
},
|
||||
},
|
||||
e
|
||||
)
|
||||
},
|
||||
onMenuShareAppMessage: function (n) {
|
||||
M(
|
||||
a.onMenuShareAppMessage,
|
||||
{
|
||||
complete: function (e) {
|
||||
"favorite" === e.scene ? k("sendAppMessage", { title: n.title || i, desc: n.desc || "", link: n.link || location.href, img_url: n.imgUrl || "", type: n.type || "link", data_url: n.dataUrl || "" }) : k("sendAppMessage", { title: n.title || i, desc: n.desc || "", link: n.link || location.href, img_url: n.imgUrl || "", type: n.type || "link", data_url: n.dataUrl || "" }, n)
|
||||
},
|
||||
},
|
||||
n
|
||||
)
|
||||
},
|
||||
onMenuShareQQ: function (e) {
|
||||
M(
|
||||
a.onMenuShareQQ,
|
||||
{
|
||||
complete: function () {
|
||||
k("shareQQ", { title: e.title || i, desc: e.desc || "", img_url: e.imgUrl || "", link: e.link || location.href }, e)
|
||||
},
|
||||
},
|
||||
e
|
||||
)
|
||||
},
|
||||
onMenuShareWeibo: function (e) {
|
||||
M(
|
||||
a.onMenuShareWeibo,
|
||||
{
|
||||
complete: function () {
|
||||
k("shareWeiboApp", { title: e.title || i, desc: e.desc || "", img_url: e.imgUrl || "", link: e.link || location.href }, e)
|
||||
},
|
||||
},
|
||||
e
|
||||
)
|
||||
},
|
||||
onMenuShareQZone: function (e) {
|
||||
M(
|
||||
a.onMenuShareQZone,
|
||||
{
|
||||
complete: function () {
|
||||
k("shareQZone", { title: e.title || i, desc: e.desc || "", img_url: e.imgUrl || "", link: e.link || location.href }, e)
|
||||
},
|
||||
},
|
||||
e
|
||||
)
|
||||
},
|
||||
startRecord: function (e) {
|
||||
k("startRecord", {}, e)
|
||||
},
|
||||
stopRecord: function (e) {
|
||||
k("stopRecord", {}, e)
|
||||
},
|
||||
onVoiceRecordEnd: function (e) {
|
||||
M("onVoiceRecordEnd", e)
|
||||
},
|
||||
playVoice: function (e) {
|
||||
k("playVoice", { localId: e.localId }, e)
|
||||
},
|
||||
pauseVoice: function (e) {
|
||||
k("pauseVoice", { localId: e.localId }, e)
|
||||
},
|
||||
stopVoice: function (e) {
|
||||
k("stopVoice", { localId: e.localId }, e)
|
||||
},
|
||||
onVoicePlayEnd: function (e) {
|
||||
M("onVoicePlayEnd", e)
|
||||
},
|
||||
uploadVoice: function (e) {
|
||||
k("uploadVoice", { localId: e.localId, isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1 }, e)
|
||||
},
|
||||
downloadVoice: function (e) {
|
||||
k("downloadVoice", { serverId: e.serverId, isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1 }, e)
|
||||
},
|
||||
translateVoice: function (e) {
|
||||
k("translateVoice", { localId: e.localId, isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1 }, e)
|
||||
},
|
||||
chooseImage: function (e) {
|
||||
k(
|
||||
"chooseImage",
|
||||
{ scene: "1|2", count: e.count || 9, sizeType: e.sizeType || ["original", "compressed"], sourceType: e.sourceType || ["album", "camera"] },
|
||||
((e._complete = function (e) {
|
||||
if (l) {
|
||||
var n = e.localIds
|
||||
try {
|
||||
n && (e.localIds = JSON.parse(n))
|
||||
} catch (e) {}
|
||||
}
|
||||
}),
|
||||
e)
|
||||
)
|
||||
},
|
||||
getLocation: function (e) {},
|
||||
getLocation: function (e) {
|
||||
;(e = e || {}),
|
||||
k(
|
||||
a.getLocation,
|
||||
{ type: e.type || "wgs84" },
|
||||
((e._complete = function (e) {
|
||||
delete e.type
|
||||
}),
|
||||
e)
|
||||
)
|
||||
},
|
||||
previewImage: function (e) {
|
||||
k(a.previewImage, { current: e.current, urls: e.urls }, e)
|
||||
},
|
||||
uploadImage: function (e) {
|
||||
k("uploadImage", { localId: e.localId, isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1 }, e)
|
||||
},
|
||||
downloadImage: function (e) {
|
||||
k("downloadImage", { serverId: e.serverId, isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1 }, e)
|
||||
},
|
||||
getLocalImgData: function (e) {
|
||||
!1 === y
|
||||
? ((y = !0),
|
||||
k(
|
||||
"getLocalImgData",
|
||||
{ localId: e.localId },
|
||||
((e._complete = function (e) {
|
||||
var n
|
||||
;(y = !1), 0 < v.length && ((n = v.shift()), wx.getLocalImgData(n))
|
||||
}),
|
||||
e)
|
||||
))
|
||||
: v.push(e)
|
||||
},
|
||||
getNetworkType: function (e) {
|
||||
k(
|
||||
"getNetworkType",
|
||||
{},
|
||||
((e._complete = function (e) {
|
||||
var n = e,
|
||||
e = n.errMsg,
|
||||
i = ((n.errMsg = "getNetworkType:ok"), n.subtype)
|
||||
if ((delete n.subtype, i)) n.networkType = i
|
||||
else {
|
||||
var i = e.indexOf(":"),
|
||||
t = e.substring(i + 1)
|
||||
switch (t) {
|
||||
case "wifi":
|
||||
case "edge":
|
||||
case "wwan":
|
||||
n.networkType = t
|
||||
break
|
||||
default:
|
||||
n.errMsg = "getNetworkType:fail"
|
||||
}
|
||||
}
|
||||
}),
|
||||
e)
|
||||
)
|
||||
},
|
||||
openLocation: function (e) {
|
||||
k("openLocation", { latitude: e.latitude, longitude: e.longitude, name: e.name || "", address: e.address || "", scale: e.scale || 28, infoUrl: e.infoUrl || "" }, e)
|
||||
},
|
||||
hideOptionMenu: function (e) {
|
||||
k("hideOptionMenu", {}, e)
|
||||
},
|
||||
showOptionMenu: function (e) {
|
||||
k("showOptionMenu", {}, e)
|
||||
},
|
||||
closeWindow: function (e) {
|
||||
k("closeWindow", {}, (e = e || {}))
|
||||
},
|
||||
hideMenuItems: function (e) {
|
||||
k("hideMenuItems", { menuList: e.menuList }, e)
|
||||
},
|
||||
showMenuItems: function (e) {
|
||||
k("showMenuItems", { menuList: e.menuList }, e)
|
||||
},
|
||||
hideAllNonBaseMenuItem: function (e) {
|
||||
k("hideAllNonBaseMenuItem", {}, e)
|
||||
},
|
||||
showAllNonBaseMenuItem: function (e) {
|
||||
k("showAllNonBaseMenuItem", {}, e)
|
||||
},
|
||||
scanQRCode: function (e) {
|
||||
k(
|
||||
"scanQRCode",
|
||||
{ needResult: (e = e || {}).needResult || 0, scanType: e.scanType || ["qrCode", "barCode"] },
|
||||
((e._complete = function (e) {
|
||||
var n
|
||||
u && (n = e.resultStr) && ((n = JSON.parse(n)), (e.resultStr = n && n.scan_code && n.scan_code.scan_result))
|
||||
}),
|
||||
e)
|
||||
)
|
||||
},
|
||||
openAddress: function (e) {
|
||||
k(
|
||||
a.openAddress,
|
||||
{},
|
||||
((e._complete = function (e) {
|
||||
;((e = e).postalCode = e.addressPostalCode), delete e.addressPostalCode, (e.provinceName = e.proviceFirstStageName), delete e.proviceFirstStageName, (e.cityName = e.addressCitySecondStageName), delete e.addressCitySecondStageName, (e.countryName = e.addressCountiesThirdStageName), delete e.addressCountiesThirdStageName, (e.detailInfo = e.addressDetailInfo), delete e.addressDetailInfo
|
||||
}),
|
||||
e)
|
||||
)
|
||||
},
|
||||
openProductSpecificView: function (e) {
|
||||
k(a.openProductSpecificView, { pid: e.productId, view_type: e.viewType || 0, ext_info: e.extInfo }, e)
|
||||
},
|
||||
addCard: function (e) {
|
||||
for (var n = e.cardList, i = [], t = 0, o = n.length; t < o; ++t) {
|
||||
var r = n[t],
|
||||
r = { card_id: r.cardId, card_ext: r.cardExt }
|
||||
i.push(r)
|
||||
}
|
||||
k(
|
||||
a.addCard,
|
||||
{ card_list: i },
|
||||
((e._complete = function (e) {
|
||||
if ((n = e.card_list)) {
|
||||
for (var n, i = 0, t = (n = JSON.parse(n)).length; i < t; ++i) {
|
||||
var o = n[i]
|
||||
;(o.cardId = o.card_id), (o.cardExt = o.card_ext), (o.isSuccess = !!o.is_succ), delete o.card_id, delete o.card_ext, delete o.is_succ
|
||||
}
|
||||
;(e.cardList = n), delete e.card_list
|
||||
}
|
||||
}),
|
||||
e)
|
||||
)
|
||||
},
|
||||
chooseCard: function (e) {
|
||||
k(
|
||||
"chooseCard",
|
||||
{ app_id: h.appId, location_id: e.shopId || "", sign_type: e.signType || "SHA1", card_id: e.cardId || "", card_type: e.cardType || "", card_sign: e.cardSign, time_stamp: e.timestamp + "", nonce_str: e.nonceStr },
|
||||
((e._complete = function (e) {
|
||||
;(e.cardList = e.choose_card_info), delete e.choose_card_info
|
||||
}),
|
||||
e)
|
||||
)
|
||||
},
|
||||
openCard: function (e) {
|
||||
for (var n = e.cardList, i = [], t = 0, o = n.length; t < o; ++t) {
|
||||
var r = n[t],
|
||||
r = { card_id: r.cardId, code: r.code }
|
||||
i.push(r)
|
||||
}
|
||||
k(a.openCard, { card_list: i }, e)
|
||||
},
|
||||
consumeAndShareCard: function (e) {
|
||||
k(a.consumeAndShareCard, { consumedCardId: e.cardId, consumedCode: e.code }, e)
|
||||
},
|
||||
chooseWXPay: function (e) {
|
||||
k(a.chooseWXPay, x(e), e)
|
||||
},
|
||||
openEnterpriseRedPacket: function (e) {
|
||||
k(a.openEnterpriseRedPacket, x(e), e)
|
||||
},
|
||||
startSearchBeacons: function (e) {
|
||||
k(a.startSearchBeacons, { ticket: e.ticket }, e)
|
||||
},
|
||||
stopSearchBeacons: function (e) {
|
||||
k(a.stopSearchBeacons, {}, e)
|
||||
},
|
||||
onSearchBeacons: function (e) {
|
||||
M(a.onSearchBeacons, e)
|
||||
},
|
||||
openEnterpriseChat: function (e) {
|
||||
k("openEnterpriseChat", { useridlist: e.userIds, chatname: e.groupName }, e)
|
||||
},
|
||||
launchMiniProgram: function (e) {
|
||||
k(
|
||||
"launchMiniProgram",
|
||||
{
|
||||
targetAppId: e.targetAppId,
|
||||
path: (e => {
|
||||
var n
|
||||
if ("string" == typeof e && 0 < e.length) return (n = e.split("?")[0]), (n += ".html"), void 0 !== (e = e.split("?")[1]) ? n + "?" + e : n
|
||||
})(e.path),
|
||||
envVersion: e.envVersion,
|
||||
},
|
||||
e
|
||||
)
|
||||
},
|
||||
miniProgram: {
|
||||
navigateBack: function (e) {
|
||||
;(e = e || {}),
|
||||
B(function () {
|
||||
k("invokeMiniProgramAPI", { name: "navigateBack", arg: { delta: e.delta || 1 } }, e)
|
||||
})
|
||||
},
|
||||
navigateTo: function (e) {
|
||||
B(function () {
|
||||
k("invokeMiniProgramAPI", { name: "navigateTo", arg: { url: e.url } }, e)
|
||||
})
|
||||
},
|
||||
redirectTo: function (e) {
|
||||
B(function () {
|
||||
k("invokeMiniProgramAPI", { name: "redirectTo", arg: { url: e.url } }, e)
|
||||
})
|
||||
},
|
||||
switchTab: function (e) {
|
||||
B(function () {
|
||||
k("invokeMiniProgramAPI", { name: "switchTab", arg: { url: e.url } }, e)
|
||||
})
|
||||
},
|
||||
reLaunch: function (e) {
|
||||
B(function () {
|
||||
k("invokeMiniProgramAPI", { name: "reLaunch", arg: { url: e.url } }, e)
|
||||
})
|
||||
},
|
||||
postMessage: function (e) {
|
||||
B(function () {
|
||||
k("invokeMiniProgramAPI", { name: "postMessage", arg: e.data || {} }, e)
|
||||
})
|
||||
},
|
||||
getEnv: function (e) {
|
||||
B(function () {
|
||||
e({ miniprogram: "miniprogram" === r.__wxjs_environment })
|
||||
})
|
||||
},
|
||||
},
|
||||
}),
|
||||
(w = 1),
|
||||
(T = {}),
|
||||
n.addEventListener(
|
||||
"error",
|
||||
function (e) {
|
||||
var n, i, t
|
||||
l ||
|
||||
((t = (n = e.target).tagName), (i = n.src), "IMG" != t && "VIDEO" != t && "AUDIO" != t && "SOURCE" != t) ||
|
||||
(-1 != i.indexOf("wxlocalresource://") &&
|
||||
(e.preventDefault(),
|
||||
e.stopPropagation(),
|
||||
(t = n["wx-id"]) || ((t = w++), (n["wx-id"] = t)),
|
||||
T[t] ||
|
||||
((T[t] = !0),
|
||||
wx.ready(function () {
|
||||
wx.getLocalImgData({
|
||||
localId: i,
|
||||
success: function (e) {
|
||||
n.src = e.localData
|
||||
},
|
||||
})
|
||||
}))))
|
||||
},
|
||||
!0
|
||||
),
|
||||
n.addEventListener(
|
||||
"load",
|
||||
function (e) {
|
||||
var n
|
||||
l || ((n = (e = e.target).tagName), "IMG" != n && "VIDEO" != n && "AUDIO" != n && "SOURCE" != n) || ((n = e["wx-id"]) && (T[n] = !1))
|
||||
},
|
||||
!0
|
||||
),
|
||||
e && (r.wx = r.jWeixin = _),
|
||||
_
|
||||
)
|
||||
function k(n, e, i) {
|
||||
r.WeixinJSBridge
|
||||
? WeixinJSBridge.invoke(n, P(e), function (e) {
|
||||
A(n, e, i)
|
||||
})
|
||||
: C(n, i)
|
||||
}
|
||||
function M(n, i, t) {
|
||||
r.WeixinJSBridge
|
||||
? WeixinJSBridge.on(n, function (e) {
|
||||
t && t.trigger && t.trigger(e), A(n, e, i)
|
||||
})
|
||||
: C(n, t || i)
|
||||
}
|
||||
function P(e) {
|
||||
return ((e = e || {}).appId = h.appId), (e.verifyAppId = h.appId), (e.verifySignType = "sha1"), (e.verifyTimestamp = h.timestamp + ""), (e.verifyNonceStr = h.nonceStr), (e.verifySignature = h.signature), e
|
||||
}
|
||||
function x(e) {
|
||||
return { timeStamp: e.timestamp + "", nonceStr: e.nonceStr, package: e.package, paySign: e.paySign, signType: e.signType || "SHA1" }
|
||||
}
|
||||
function A(e, n, i) {
|
||||
"openEnterpriseChat" == e && (n.errCode = n.err_code), delete n.err_code, delete n.err_desc, delete n.err_detail
|
||||
var t = n.errMsg,
|
||||
e =
|
||||
(t ||
|
||||
((t = n.err_msg),
|
||||
delete n.err_msg,
|
||||
(t = ((e, n) => {
|
||||
var i,
|
||||
t = c[e]
|
||||
return t && (e = t), (t = "ok"), n && ((i = n.indexOf(":")), ("access denied" != (t = (t = (t = -1 != (t = -1 != (t = "failed" == (t = "confirm" == (t = n.substring(i + 1)) ? "ok" : t) ? "fail" : t).indexOf("failed_") ? t.substring(7) : t).indexOf("fail_") ? t.substring(5) : t).replace(/_/g, " ")).toLowerCase()) && "no permission to execute" != t) || (t = "permission denied"), "" == (t = "config" == e && "function not exist" == t ? "ok" : t)) && (t = "fail"), (n = e + ":" + t)
|
||||
})(e, t)),
|
||||
(n.errMsg = t)),
|
||||
(i = i || {})._complete && (i._complete(n), delete i._complete),
|
||||
(t = n.errMsg || ""),
|
||||
h.debug && !i.isInnerInvoke && alert(JSON.stringify(n)),
|
||||
t.indexOf(":"))
|
||||
switch (t.substring(e + 1)) {
|
||||
case "ok":
|
||||
i.success && i.success(n)
|
||||
break
|
||||
case "cancel":
|
||||
i.cancel && i.cancel(n)
|
||||
break
|
||||
default:
|
||||
i.fail && i.fail(n)
|
||||
}
|
||||
i.complete && i.complete(n)
|
||||
}
|
||||
function V(e) {
|
||||
if (e) {
|
||||
for (var n = 0, i = e.length; n < i; ++n) {
|
||||
var t = e[n],
|
||||
t = a[t]
|
||||
t && (e[n] = t)
|
||||
}
|
||||
return e
|
||||
}
|
||||
}
|
||||
function C(e, n) {
|
||||
var i
|
||||
!h.debug || (n && n.isInnerInvoke) || ((i = c[e]) && (e = i), n && n._complete && delete n._complete, console.log('"' + e + '",', n || ""))
|
||||
}
|
||||
function L() {
|
||||
return new Date().getTime()
|
||||
}
|
||||
function B(e) {
|
||||
o && (r.WeixinJSBridge ? e() : n.addEventListener && n.addEventListener("WeixinJSBridgeReady", e, !1))
|
||||
}
|
||||
})
|
@ -1,47 +1,51 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport" />
|
||||
<!-- <link rel="icon" href="<%= BASE_URL %>/img/favicon.ico"> -->
|
||||
<!-- <link rel="icon" href="<%= BASE_URL %>/img/favicon.ico"> -->
|
||||
<link rel="icon" href="https://ansnid.oss-cn-shenzhen.aliyuncs.com/forum/img/favicon.ico" />
|
||||
<!-- <title><%= htmlWebpackPlugin.options.title %></title> -->
|
||||
<title>寄托家园留学论坛_出国留学经验分享|留学申请|留学考试|DIY留学</title>
|
||||
<meta name="application-name" content="寄托家园留学论坛" />
|
||||
<meta name="msapplication-tooltip" content="寄托家园留学论坛" />
|
||||
<meta name="Keywords" content="美国留学,加拿大留学,香港留学,新加坡留学,英国留学,欧洲留学, 留学经验分享,DIY留学,留学申请,留学流程,留学费用,出国留学,留学论坛, 留学网站,留学考试,GRE,TOEFL,IBT,GMAT,IELTS,SAT,VISA,文书,签证" />
|
||||
<meta name="Description" content="提供最有用的出国留学资讯和最热心的留学交流论坛。在BBS上,你可以咨询签证,面试,机经,offer,奖学金,名校专业等,也可以分享雅思、托福、GRE的学习心得。无论你留学在美国、加拿大、英国还是澳洲,都能在留学论坛上找到寄托情感的归宿。" />
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0"
|
||||
name="viewport" />
|
||||
<!-- <link rel="icon" href="<%= BASE_URL %>/img/favicon.ico"> -->
|
||||
<!-- <link rel="icon" href="<%= BASE_URL %>/img/favicon.ico"> -->
|
||||
<link rel="icon" href="https://ansnid.oss-cn-shenzhen.aliyuncs.com/forum/img/favicon.ico">
|
||||
<!-- <title><%= htmlWebpackPlugin.options.title %></title> -->
|
||||
<title>寄托家园留学论坛_出国留学经验分享|留学申请|留学考试|DIY留学 </title>
|
||||
<meta name="application-name" content="寄托家园留学论坛" />
|
||||
<meta name="msapplication-tooltip" content="寄托家园留学论坛" />
|
||||
<meta name="Keywords"
|
||||
content="美国留学,加拿大留学,香港留学,新加坡留学,英国留学,欧洲留学, 留学经验分享,DIY留学,留学申请,留学流程,留学费用,出国留学,留学论坛, 留学网站,留学考试,GRE,TOEFL,IBT,GMAT,IELTS,SAT,VISA,文书,签证">
|
||||
<meta name="Description"
|
||||
content="提供最有用的出国留学资讯和最热心的留学交流论坛。在BBS上,你可以咨询签证,面试,机经,offer,奖学金,名校专业等,也可以分享雅思、托福、GRE的学习心得。无论你留学在美国、加拿大、英国还是澳洲,都能在留学论坛上找到寄托情感的归宿。">
|
||||
<title>寄托论坛</title>
|
||||
</head>
|
||||
|
||||
<title>寄托论坛</title>
|
||||
</head>
|
||||
<body>
|
||||
<noscript>
|
||||
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
|
||||
</noscript>
|
||||
<div id="app"></div>
|
||||
<div style="display: none">
|
||||
<!-- <script type="text/javascript" src="//v1.cnzz.com/z_stat.php?id=1281224882&web_id=1281224882"></script> -->
|
||||
<script>
|
||||
let $baseURL = "https://framework.x-php.com/forum/"
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
const script = document.createElement("script")
|
||||
script.src = (["localhost"].includes(location.hostname) ? "" : $baseURL) + "/js/jweixin-1.3.2.js"
|
||||
document.head.appendChild(script)
|
||||
})
|
||||
</script>
|
||||
|
||||
<body>
|
||||
<noscript>
|
||||
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled.
|
||||
Please enable it to continue.</strong>
|
||||
</noscript>
|
||||
<div id="app"></div>
|
||||
<div style="display:none;">
|
||||
<script type="text/javascript" src="//v1.cnzz.com/z_stat.php?id=1281224882&web_id=1281224882"></script>
|
||||
<script type="text/javascript">
|
||||
var _hmt = _hmt || [];
|
||||
(function () {
|
||||
var hm = document.createElement("script");
|
||||
hm.src = "//hm.baidu.com/hm.js?4bd66cbe45a640b607fe46c48f658746";
|
||||
var s = document.getElementsByTagName("script")[0];
|
||||
s.parentNode.insertBefore(hm, s);
|
||||
})();
|
||||
</script>
|
||||
</div>
|
||||
<script defer src="//stat.gter.net/script.js" data-website-id="28aa17dc7c163e7e7cf88d0c556a729b"></script>
|
||||
<script type="text/javascript">
|
||||
var _hmt = _hmt || []
|
||||
;(function () {
|
||||
var hm = document.createElement("script")
|
||||
hm.src = "//hm.baidu.com/hm.js?4bd66cbe45a640b607fe46c48f658746"
|
||||
var s = document.getElementsByTagName("script")[0]
|
||||
s.parentNode.insertBefore(hm, s)
|
||||
})()
|
||||
</script>
|
||||
</div>
|
||||
|
||||
<!-- 这个统计代码 明天加在H5论坛页面 -->
|
||||
<!-- built files will be auto injected -->
|
||||
</body>
|
||||
|
||||
</html>
|
||||
<!-- 这个统计代码 明天加在H5论坛页面 -->
|
||||
<!-- built files will be auto injected -->
|
||||
</body>
|
||||
</html>
|
||||
|
545
public/js/jweixin-1.3.2.js
Normal file
545
public/js/jweixin-1.3.2.js
Normal file
@ -0,0 +1,545 @@
|
||||
;((e, n) => {
|
||||
"function" == typeof define && (define.amd || define.cmd)
|
||||
? define(function () {
|
||||
return n(e)
|
||||
})
|
||||
: n(e, !0)
|
||||
})(this, function (r, e) {
|
||||
var a, c, n, i, t, s, d, o, l, u, p, f, m, g, h, I, S, y, v, _, w, T
|
||||
if (!r.jWeixin)
|
||||
return (
|
||||
(a = { config: "preVerifyJSAPI", onMenuShareTimeline: "menu:share:timeline", onMenuShareAppMessage: "menu:share:appmessage", onMenuShareQQ: "menu:share:qq", onMenuShareWeibo: "menu:share:weiboApp", onMenuShareQZone: "menu:share:QZone", previewImage: "imagePreview", getLocation: "geoLocation", openProductSpecificView: "openProductViewWithPid", addCard: "batchAddCard", openCard: "batchViewCard", chooseWXPay: "getBrandWCPayRequest", openEnterpriseRedPacket: "getRecevieBizHongBaoRequest", startSearchBeacons: "startMonitoringBeacons", stopSearchBeacons: "stopMonitoringBeacons", onSearchBeacons: "onBeaconsInRange", consumeAndShareCard: "consumedShareCard", openAddress: "editAddress" }),
|
||||
(c = (() => {
|
||||
var e,
|
||||
n = {}
|
||||
for (e in a) n[a[e]] = e
|
||||
return n
|
||||
})()),
|
||||
(i = (n = r.document).title),
|
||||
(t = navigator.userAgent.toLowerCase()),
|
||||
(f = navigator.platform.toLowerCase()),
|
||||
(s = !(!f.match("mac") && !f.match("win"))),
|
||||
(d = -1 != t.indexOf("wxdebugger")),
|
||||
(o = -1 != t.indexOf("micromessenger")),
|
||||
(l = -1 != t.indexOf("android")),
|
||||
(u = -1 != t.indexOf("iphone") || -1 != t.indexOf("ipad")),
|
||||
(p = (f = t.match(/micromessenger\/(\d+\.\d+\.\d+)/) || t.match(/micromessenger\/(\d+\.\d+)/)) ? f[1] : ""),
|
||||
(m = { initStartTime: L(), initEndTime: 0, preVerifyStartTime: 0, preVerifyEndTime: 0 }),
|
||||
(g = { version: 1, appId: "", initTime: 0, preVerifyTime: 0, networkType: "", isPreVerifyOk: 1, systemType: u ? 1 : l ? 2 : -1, clientVersion: p, url: encodeURIComponent(location.href) }),
|
||||
(h = {}),
|
||||
(I = { _completes: [] }),
|
||||
(S = { state: 0, data: {} }),
|
||||
B(function () {
|
||||
m.initEndTime = L()
|
||||
}),
|
||||
(y = !1),
|
||||
(v = []),
|
||||
(_ = {
|
||||
config: function (e) {
|
||||
C("config", (h = e))
|
||||
var o = !1 !== h.check
|
||||
B(function () {
|
||||
if (o)
|
||||
k(
|
||||
a.config,
|
||||
{ verifyJsApiList: V(h.jsApiList) },
|
||||
((I._complete = function (e) {
|
||||
;(m.preVerifyEndTime = L()), (S.state = 1), (S.data = e)
|
||||
}),
|
||||
(I.success = function (e) {
|
||||
g.isPreVerifyOk = 0
|
||||
}),
|
||||
(I.fail = function (e) {
|
||||
I._fail ? I._fail(e) : (S.state = -1)
|
||||
}),
|
||||
(t = I._completes).push(function () {
|
||||
var n
|
||||
s ||
|
||||
d ||
|
||||
h.debug ||
|
||||
p < "6.0.2" ||
|
||||
g.systemType < 0 ||
|
||||
((n = new Image()),
|
||||
(g.appId = h.appId),
|
||||
(g.initTime = m.initEndTime - m.initStartTime),
|
||||
(g.preVerifyTime = m.preVerifyEndTime - m.preVerifyStartTime),
|
||||
_.getNetworkType({
|
||||
isInnerInvoke: !0,
|
||||
success: function (e) {
|
||||
;(g.networkType = e.networkType), (n.src = "https://open.weixin.qq.com/sdk/report?v=" + g.version + "&o=" + g.isPreVerifyOk + "&s=" + g.systemType + "&c=" + g.clientVersion + "&a=" + g.appId + "&n=" + g.networkType + "&i=" + g.initTime + "&p=" + g.preVerifyTime + "&u=" + g.url)
|
||||
},
|
||||
}))
|
||||
}),
|
||||
(I.complete = function (e) {
|
||||
for (var n = 0, i = t.length; n < i; ++n) t[n]()
|
||||
I._completes = []
|
||||
}),
|
||||
I)
|
||||
),
|
||||
(m.preVerifyStartTime = L())
|
||||
else {
|
||||
S.state = 1
|
||||
for (var e = I._completes, n = 0, i = e.length; n < i; ++n) e[n]()
|
||||
I._completes = []
|
||||
}
|
||||
var t
|
||||
}),
|
||||
_.invoke ||
|
||||
((_.invoke = function (e, n, i) {
|
||||
r.WeixinJSBridge && WeixinJSBridge.invoke(e, P(n), i)
|
||||
}),
|
||||
(_.on = function (e, n) {
|
||||
r.WeixinJSBridge && WeixinJSBridge.on(e, n)
|
||||
}))
|
||||
},
|
||||
ready: function (e) {
|
||||
;(0 != S.state || (I._completes.push(e), !o && h.debug)) && e()
|
||||
},
|
||||
error: function (e) {
|
||||
p < "6.0.2" || (-1 == S.state ? e(S.data) : (I._fail = e))
|
||||
},
|
||||
checkJsApi: function (e) {
|
||||
k(
|
||||
"checkJsApi",
|
||||
{ jsApiList: V(e.jsApiList) },
|
||||
((e._complete = function (e) {
|
||||
l && (i = e.checkResult) && (e.checkResult = JSON.parse(i))
|
||||
var n,
|
||||
i = e,
|
||||
t = i.checkResult
|
||||
for (n in t) {
|
||||
var o = c[n]
|
||||
o && ((t[o] = t[n]), delete t[n])
|
||||
}
|
||||
}),
|
||||
e)
|
||||
)
|
||||
},
|
||||
onMenuShareTimeline: function (e) {
|
||||
M(
|
||||
a.onMenuShareTimeline,
|
||||
{
|
||||
complete: function () {
|
||||
k("shareTimeline", { title: e.title || i, desc: e.title || i, img_url: e.imgUrl || "", link: e.link || location.href, type: e.type || "link", data_url: e.dataUrl || "" }, e)
|
||||
},
|
||||
},
|
||||
e
|
||||
)
|
||||
},
|
||||
onMenuShareAppMessage: function (n) {
|
||||
M(
|
||||
a.onMenuShareAppMessage,
|
||||
{
|
||||
complete: function (e) {
|
||||
"favorite" === e.scene ? k("sendAppMessage", { title: n.title || i, desc: n.desc || "", link: n.link || location.href, img_url: n.imgUrl || "", type: n.type || "link", data_url: n.dataUrl || "" }) : k("sendAppMessage", { title: n.title || i, desc: n.desc || "", link: n.link || location.href, img_url: n.imgUrl || "", type: n.type || "link", data_url: n.dataUrl || "" }, n)
|
||||
},
|
||||
},
|
||||
n
|
||||
)
|
||||
},
|
||||
onMenuShareQQ: function (e) {
|
||||
M(
|
||||
a.onMenuShareQQ,
|
||||
{
|
||||
complete: function () {
|
||||
k("shareQQ", { title: e.title || i, desc: e.desc || "", img_url: e.imgUrl || "", link: e.link || location.href }, e)
|
||||
},
|
||||
},
|
||||
e
|
||||
)
|
||||
},
|
||||
onMenuShareWeibo: function (e) {
|
||||
M(
|
||||
a.onMenuShareWeibo,
|
||||
{
|
||||
complete: function () {
|
||||
k("shareWeiboApp", { title: e.title || i, desc: e.desc || "", img_url: e.imgUrl || "", link: e.link || location.href }, e)
|
||||
},
|
||||
},
|
||||
e
|
||||
)
|
||||
},
|
||||
onMenuShareQZone: function (e) {
|
||||
M(
|
||||
a.onMenuShareQZone,
|
||||
{
|
||||
complete: function () {
|
||||
k("shareQZone", { title: e.title || i, desc: e.desc || "", img_url: e.imgUrl || "", link: e.link || location.href }, e)
|
||||
},
|
||||
},
|
||||
e
|
||||
)
|
||||
},
|
||||
startRecord: function (e) {
|
||||
k("startRecord", {}, e)
|
||||
},
|
||||
stopRecord: function (e) {
|
||||
k("stopRecord", {}, e)
|
||||
},
|
||||
onVoiceRecordEnd: function (e) {
|
||||
M("onVoiceRecordEnd", e)
|
||||
},
|
||||
playVoice: function (e) {
|
||||
k("playVoice", { localId: e.localId }, e)
|
||||
},
|
||||
pauseVoice: function (e) {
|
||||
k("pauseVoice", { localId: e.localId }, e)
|
||||
},
|
||||
stopVoice: function (e) {
|
||||
k("stopVoice", { localId: e.localId }, e)
|
||||
},
|
||||
onVoicePlayEnd: function (e) {
|
||||
M("onVoicePlayEnd", e)
|
||||
},
|
||||
uploadVoice: function (e) {
|
||||
k("uploadVoice", { localId: e.localId, isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1 }, e)
|
||||
},
|
||||
downloadVoice: function (e) {
|
||||
k("downloadVoice", { serverId: e.serverId, isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1 }, e)
|
||||
},
|
||||
translateVoice: function (e) {
|
||||
k("translateVoice", { localId: e.localId, isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1 }, e)
|
||||
},
|
||||
chooseImage: function (e) {
|
||||
k(
|
||||
"chooseImage",
|
||||
{ scene: "1|2", count: e.count || 9, sizeType: e.sizeType || ["original", "compressed"], sourceType: e.sourceType || ["album", "camera"] },
|
||||
((e._complete = function (e) {
|
||||
if (l) {
|
||||
var n = e.localIds
|
||||
try {
|
||||
n && (e.localIds = JSON.parse(n))
|
||||
} catch (e) {}
|
||||
}
|
||||
}),
|
||||
e)
|
||||
)
|
||||
},
|
||||
getLocation: function (e) {},
|
||||
getLocation: function (e) {
|
||||
;(e = e || {}),
|
||||
k(
|
||||
a.getLocation,
|
||||
{ type: e.type || "wgs84" },
|
||||
((e._complete = function (e) {
|
||||
delete e.type
|
||||
}),
|
||||
e)
|
||||
)
|
||||
},
|
||||
previewImage: function (e) {
|
||||
k(a.previewImage, { current: e.current, urls: e.urls }, e)
|
||||
},
|
||||
uploadImage: function (e) {
|
||||
k("uploadImage", { localId: e.localId, isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1 }, e)
|
||||
},
|
||||
downloadImage: function (e) {
|
||||
k("downloadImage", { serverId: e.serverId, isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1 }, e)
|
||||
},
|
||||
getLocalImgData: function (e) {
|
||||
!1 === y
|
||||
? ((y = !0),
|
||||
k(
|
||||
"getLocalImgData",
|
||||
{ localId: e.localId },
|
||||
((e._complete = function (e) {
|
||||
var n
|
||||
;(y = !1), 0 < v.length && ((n = v.shift()), wx.getLocalImgData(n))
|
||||
}),
|
||||
e)
|
||||
))
|
||||
: v.push(e)
|
||||
},
|
||||
getNetworkType: function (e) {
|
||||
k(
|
||||
"getNetworkType",
|
||||
{},
|
||||
((e._complete = function (e) {
|
||||
var n = e,
|
||||
e = n.errMsg,
|
||||
i = ((n.errMsg = "getNetworkType:ok"), n.subtype)
|
||||
if ((delete n.subtype, i)) n.networkType = i
|
||||
else {
|
||||
var i = e.indexOf(":"),
|
||||
t = e.substring(i + 1)
|
||||
switch (t) {
|
||||
case "wifi":
|
||||
case "edge":
|
||||
case "wwan":
|
||||
n.networkType = t
|
||||
break
|
||||
default:
|
||||
n.errMsg = "getNetworkType:fail"
|
||||
}
|
||||
}
|
||||
}),
|
||||
e)
|
||||
)
|
||||
},
|
||||
openLocation: function (e) {
|
||||
k("openLocation", { latitude: e.latitude, longitude: e.longitude, name: e.name || "", address: e.address || "", scale: e.scale || 28, infoUrl: e.infoUrl || "" }, e)
|
||||
},
|
||||
hideOptionMenu: function (e) {
|
||||
k("hideOptionMenu", {}, e)
|
||||
},
|
||||
showOptionMenu: function (e) {
|
||||
k("showOptionMenu", {}, e)
|
||||
},
|
||||
closeWindow: function (e) {
|
||||
k("closeWindow", {}, (e = e || {}))
|
||||
},
|
||||
hideMenuItems: function (e) {
|
||||
k("hideMenuItems", { menuList: e.menuList }, e)
|
||||
},
|
||||
showMenuItems: function (e) {
|
||||
k("showMenuItems", { menuList: e.menuList }, e)
|
||||
},
|
||||
hideAllNonBaseMenuItem: function (e) {
|
||||
k("hideAllNonBaseMenuItem", {}, e)
|
||||
},
|
||||
showAllNonBaseMenuItem: function (e) {
|
||||
k("showAllNonBaseMenuItem", {}, e)
|
||||
},
|
||||
scanQRCode: function (e) {
|
||||
k(
|
||||
"scanQRCode",
|
||||
{ needResult: (e = e || {}).needResult || 0, scanType: e.scanType || ["qrCode", "barCode"] },
|
||||
((e._complete = function (e) {
|
||||
var n
|
||||
u && (n = e.resultStr) && ((n = JSON.parse(n)), (e.resultStr = n && n.scan_code && n.scan_code.scan_result))
|
||||
}),
|
||||
e)
|
||||
)
|
||||
},
|
||||
openAddress: function (e) {
|
||||
k(
|
||||
a.openAddress,
|
||||
{},
|
||||
((e._complete = function (e) {
|
||||
;((e = e).postalCode = e.addressPostalCode), delete e.addressPostalCode, (e.provinceName = e.proviceFirstStageName), delete e.proviceFirstStageName, (e.cityName = e.addressCitySecondStageName), delete e.addressCitySecondStageName, (e.countryName = e.addressCountiesThirdStageName), delete e.addressCountiesThirdStageName, (e.detailInfo = e.addressDetailInfo), delete e.addressDetailInfo
|
||||
}),
|
||||
e)
|
||||
)
|
||||
},
|
||||
openProductSpecificView: function (e) {
|
||||
k(a.openProductSpecificView, { pid: e.productId, view_type: e.viewType || 0, ext_info: e.extInfo }, e)
|
||||
},
|
||||
addCard: function (e) {
|
||||
for (var n = e.cardList, i = [], t = 0, o = n.length; t < o; ++t) {
|
||||
var r = n[t],
|
||||
r = { card_id: r.cardId, card_ext: r.cardExt }
|
||||
i.push(r)
|
||||
}
|
||||
k(
|
||||
a.addCard,
|
||||
{ card_list: i },
|
||||
((e._complete = function (e) {
|
||||
if ((n = e.card_list)) {
|
||||
for (var n, i = 0, t = (n = JSON.parse(n)).length; i < t; ++i) {
|
||||
var o = n[i]
|
||||
;(o.cardId = o.card_id), (o.cardExt = o.card_ext), (o.isSuccess = !!o.is_succ), delete o.card_id, delete o.card_ext, delete o.is_succ
|
||||
}
|
||||
;(e.cardList = n), delete e.card_list
|
||||
}
|
||||
}),
|
||||
e)
|
||||
)
|
||||
},
|
||||
chooseCard: function (e) {
|
||||
k(
|
||||
"chooseCard",
|
||||
{ app_id: h.appId, location_id: e.shopId || "", sign_type: e.signType || "SHA1", card_id: e.cardId || "", card_type: e.cardType || "", card_sign: e.cardSign, time_stamp: e.timestamp + "", nonce_str: e.nonceStr },
|
||||
((e._complete = function (e) {
|
||||
;(e.cardList = e.choose_card_info), delete e.choose_card_info
|
||||
}),
|
||||
e)
|
||||
)
|
||||
},
|
||||
openCard: function (e) {
|
||||
for (var n = e.cardList, i = [], t = 0, o = n.length; t < o; ++t) {
|
||||
var r = n[t],
|
||||
r = { card_id: r.cardId, code: r.code }
|
||||
i.push(r)
|
||||
}
|
||||
k(a.openCard, { card_list: i }, e)
|
||||
},
|
||||
consumeAndShareCard: function (e) {
|
||||
k(a.consumeAndShareCard, { consumedCardId: e.cardId, consumedCode: e.code }, e)
|
||||
},
|
||||
chooseWXPay: function (e) {
|
||||
k(a.chooseWXPay, x(e), e)
|
||||
},
|
||||
openEnterpriseRedPacket: function (e) {
|
||||
k(a.openEnterpriseRedPacket, x(e), e)
|
||||
},
|
||||
startSearchBeacons: function (e) {
|
||||
k(a.startSearchBeacons, { ticket: e.ticket }, e)
|
||||
},
|
||||
stopSearchBeacons: function (e) {
|
||||
k(a.stopSearchBeacons, {}, e)
|
||||
},
|
||||
onSearchBeacons: function (e) {
|
||||
M(a.onSearchBeacons, e)
|
||||
},
|
||||
openEnterpriseChat: function (e) {
|
||||
k("openEnterpriseChat", { useridlist: e.userIds, chatname: e.groupName }, e)
|
||||
},
|
||||
launchMiniProgram: function (e) {
|
||||
k(
|
||||
"launchMiniProgram",
|
||||
{
|
||||
targetAppId: e.targetAppId,
|
||||
path: (e => {
|
||||
var n
|
||||
if ("string" == typeof e && 0 < e.length) return (n = e.split("?")[0]), (n += ".html"), void 0 !== (e = e.split("?")[1]) ? n + "?" + e : n
|
||||
})(e.path),
|
||||
envVersion: e.envVersion,
|
||||
},
|
||||
e
|
||||
)
|
||||
},
|
||||
miniProgram: {
|
||||
navigateBack: function (e) {
|
||||
;(e = e || {}),
|
||||
B(function () {
|
||||
k("invokeMiniProgramAPI", { name: "navigateBack", arg: { delta: e.delta || 1 } }, e)
|
||||
})
|
||||
},
|
||||
navigateTo: function (e) {
|
||||
B(function () {
|
||||
k("invokeMiniProgramAPI", { name: "navigateTo", arg: { url: e.url } }, e)
|
||||
})
|
||||
},
|
||||
redirectTo: function (e) {
|
||||
B(function () {
|
||||
k("invokeMiniProgramAPI", { name: "redirectTo", arg: { url: e.url } }, e)
|
||||
})
|
||||
},
|
||||
switchTab: function (e) {
|
||||
B(function () {
|
||||
k("invokeMiniProgramAPI", { name: "switchTab", arg: { url: e.url } }, e)
|
||||
})
|
||||
},
|
||||
reLaunch: function (e) {
|
||||
B(function () {
|
||||
k("invokeMiniProgramAPI", { name: "reLaunch", arg: { url: e.url } }, e)
|
||||
})
|
||||
},
|
||||
postMessage: function (e) {
|
||||
B(function () {
|
||||
k("invokeMiniProgramAPI", { name: "postMessage", arg: e.data || {} }, e)
|
||||
})
|
||||
},
|
||||
getEnv: function (e) {
|
||||
B(function () {
|
||||
e({ miniprogram: "miniprogram" === r.__wxjs_environment })
|
||||
})
|
||||
},
|
||||
},
|
||||
}),
|
||||
(w = 1),
|
||||
(T = {}),
|
||||
n.addEventListener(
|
||||
"error",
|
||||
function (e) {
|
||||
var n, i, t
|
||||
l ||
|
||||
((t = (n = e.target).tagName), (i = n.src), "IMG" != t && "VIDEO" != t && "AUDIO" != t && "SOURCE" != t) ||
|
||||
(-1 != i.indexOf("wxlocalresource://") &&
|
||||
(e.preventDefault(),
|
||||
e.stopPropagation(),
|
||||
(t = n["wx-id"]) || ((t = w++), (n["wx-id"] = t)),
|
||||
T[t] ||
|
||||
((T[t] = !0),
|
||||
wx.ready(function () {
|
||||
wx.getLocalImgData({
|
||||
localId: i,
|
||||
success: function (e) {
|
||||
n.src = e.localData
|
||||
},
|
||||
})
|
||||
}))))
|
||||
},
|
||||
!0
|
||||
),
|
||||
n.addEventListener(
|
||||
"load",
|
||||
function (e) {
|
||||
var n
|
||||
l || ((n = (e = e.target).tagName), "IMG" != n && "VIDEO" != n && "AUDIO" != n && "SOURCE" != n) || ((n = e["wx-id"]) && (T[n] = !1))
|
||||
},
|
||||
!0
|
||||
),
|
||||
e && (r.wx = r.jWeixin = _),
|
||||
_
|
||||
)
|
||||
function k(n, e, i) {
|
||||
r.WeixinJSBridge
|
||||
? WeixinJSBridge.invoke(n, P(e), function (e) {
|
||||
A(n, e, i)
|
||||
})
|
||||
: C(n, i)
|
||||
}
|
||||
function M(n, i, t) {
|
||||
r.WeixinJSBridge
|
||||
? WeixinJSBridge.on(n, function (e) {
|
||||
t && t.trigger && t.trigger(e), A(n, e, i)
|
||||
})
|
||||
: C(n, t || i)
|
||||
}
|
||||
function P(e) {
|
||||
return ((e = e || {}).appId = h.appId), (e.verifyAppId = h.appId), (e.verifySignType = "sha1"), (e.verifyTimestamp = h.timestamp + ""), (e.verifyNonceStr = h.nonceStr), (e.verifySignature = h.signature), e
|
||||
}
|
||||
function x(e) {
|
||||
return { timeStamp: e.timestamp + "", nonceStr: e.nonceStr, package: e.package, paySign: e.paySign, signType: e.signType || "SHA1" }
|
||||
}
|
||||
function A(e, n, i) {
|
||||
"openEnterpriseChat" == e && (n.errCode = n.err_code), delete n.err_code, delete n.err_desc, delete n.err_detail
|
||||
var t = n.errMsg,
|
||||
e =
|
||||
(t ||
|
||||
((t = n.err_msg),
|
||||
delete n.err_msg,
|
||||
(t = ((e, n) => {
|
||||
var i,
|
||||
t = c[e]
|
||||
return t && (e = t), (t = "ok"), n && ((i = n.indexOf(":")), ("access denied" != (t = (t = (t = -1 != (t = -1 != (t = "failed" == (t = "confirm" == (t = n.substring(i + 1)) ? "ok" : t) ? "fail" : t).indexOf("failed_") ? t.substring(7) : t).indexOf("fail_") ? t.substring(5) : t).replace(/_/g, " ")).toLowerCase()) && "no permission to execute" != t) || (t = "permission denied"), "" == (t = "config" == e && "function not exist" == t ? "ok" : t)) && (t = "fail"), (n = e + ":" + t)
|
||||
})(e, t)),
|
||||
(n.errMsg = t)),
|
||||
(i = i || {})._complete && (i._complete(n), delete i._complete),
|
||||
(t = n.errMsg || ""),
|
||||
h.debug && !i.isInnerInvoke && alert(JSON.stringify(n)),
|
||||
t.indexOf(":"))
|
||||
switch (t.substring(e + 1)) {
|
||||
case "ok":
|
||||
i.success && i.success(n)
|
||||
break
|
||||
case "cancel":
|
||||
i.cancel && i.cancel(n)
|
||||
break
|
||||
default:
|
||||
i.fail && i.fail(n)
|
||||
}
|
||||
i.complete && i.complete(n)
|
||||
}
|
||||
function V(e) {
|
||||
if (e) {
|
||||
for (var n = 0, i = e.length; n < i; ++n) {
|
||||
var t = e[n],
|
||||
t = a[t]
|
||||
t && (e[n] = t)
|
||||
}
|
||||
return e
|
||||
}
|
||||
}
|
||||
function C(e, n) {
|
||||
var i
|
||||
!h.debug || (n && n.isInnerInvoke) || ((i = c[e]) && (e = i), n && n._complete && delete n._complete, console.log('"' + e + '",', n || ""))
|
||||
}
|
||||
function L() {
|
||||
return new Date().getTime()
|
||||
}
|
||||
function B(e) {
|
||||
o && (r.WeixinJSBridge ? e() : n.addEventListener && n.addEventListener("WeixinJSBridgeReady", e, !1))
|
||||
}
|
||||
})
|
@ -6,7 +6,10 @@
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script src="../public/js/jweixin-1.3.2.js"></script>
|
||||
|
||||
<script>
|
||||
|
||||
export default {
|
||||
name: "App",
|
||||
data() {
|
||||
@ -57,7 +60,7 @@ export default {
|
||||
if (Object.keys(this.$store.state.user).length !== 0) {
|
||||
this.useSocket()
|
||||
clearInterval(timer)
|
||||
}
|
||||
}
|
||||
}, 1000)
|
||||
},
|
||||
|
||||
@ -65,7 +68,7 @@ export default {
|
||||
// 开启socket
|
||||
useSocket() {
|
||||
let token = this.getMiucmsSessionCookie() || ""
|
||||
this.socketTask = new WebSocket(`wss://app.gter.net/socket?token=${token}`)
|
||||
this.socketTask = new WebSocket(`wss://socket.gter.net?token=${token}`)
|
||||
this.socketTask.onopen = () => {
|
||||
let user = this.$store.state.user || {}
|
||||
if (user && token) {
|
||||
|
@ -18,8 +18,8 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="head-arrows" :class="{animation: headMorePopState}" v-if="headMorePopState"></div>
|
||||
<div class="head-more-pop" :class="{animation: headMorePopState}">
|
||||
<div class="head-arrows" :class="{ animation: headMorePopState }" v-if="headMorePopState"></div>
|
||||
<div class="head-more-pop" :class="{ animation: headMorePopState }">
|
||||
<div class="head-more-userinfo flex1 flexacenter">
|
||||
<div class="head-more-left flexacenter" v-if="islogin">
|
||||
<router-link class="flexacenter" to="/user" @click.native="headMorePopState = !headMorePopState">
|
||||
@ -46,7 +46,7 @@
|
||||
</div>
|
||||
|
||||
<div class="tab-list">
|
||||
<a class="tab-item flexacenter" :href="item.url" target="_blank" :class="{pitch: item.current == 1}" v-for="(item, index) in menu" :key="index">{{ item.name }}</a>
|
||||
<a class="tab-item flexacenter" :href="item.url" target="_blank" :class="{ pitch: item.current == 1 }" v-for="(item, index) in menu" :key="index">{{ item.name }}</a>
|
||||
</div>
|
||||
|
||||
<div class="head-more-post flexcenter" @click.stop="$skipUrl(invitationPost, false)">
|
||||
@ -69,7 +69,7 @@
|
||||
<script>
|
||||
import SearchBox from "../components/SearchBox.vue"
|
||||
|
||||
import {invitationPost} from "@/utils/bizarreUrl"
|
||||
import { invitationPost } from "@/utils/bizarreUrl"
|
||||
|
||||
export default {
|
||||
name: "HeaderNav",
|
||||
@ -98,11 +98,10 @@ export default {
|
||||
if (JSON.stringify(user) === "{}") this.$store.dispatch("getUserInfo", this)
|
||||
else {
|
||||
this.userInfo = user
|
||||
this.islogin = user.uid > 0 ? true : false
|
||||
this.islogin = user.uid > 0 || user.uin > 0 ? true : false
|
||||
this.hotSearchkeywords = this.$store.state.hotSearchkeywords
|
||||
this.menu = this.$store.state.menu
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
methods: {
|
||||
|
@ -2,11 +2,12 @@ import Vue from 'vue'
|
||||
import App from './App.vue'
|
||||
import router from './router'
|
||||
import store from './store'
|
||||
import { Message, Pagination, Alert, Loading } from 'element-ui';
|
||||
import { Message, Pagination, Alert, Loading, Dialog } from 'element-ui';
|
||||
import 'element-ui/lib/theme-chalk/index.css';
|
||||
import { skipUrl, pageStop, pageMove, goTologin, copy, startupUnderLoading, closeUnderLoading, formattedDate, updateURLSearchParams, clearCookies } from "@/utils/common.js"
|
||||
import http from "@/utils/request"
|
||||
|
||||
|
||||
Vue.config.productionTip = false
|
||||
|
||||
Vue.prototype.$loginUrl = "https://passport.gter.net/" // 跳转登录的url
|
||||
@ -26,7 +27,8 @@ Vue.prototype.$closeUnderLoading = closeUnderLoading // 关闭加载提示 elem
|
||||
Vue.prototype.$formattedDate = formattedDate // 时间戳转格式
|
||||
Vue.prototype.$updateURLSearchParams = updateURLSearchParams // 不刷新的情况下修改url
|
||||
Vue.prototype.$clearCookies = clearCookies // 清空Cookies
|
||||
Vue.prototype.$baseURL = "https://ansnid.oss-cn-shenzhen.aliyuncs.com/forum" // 清空Cookies
|
||||
|
||||
Vue.prototype.$baseURL = $baseURL // 清空Cookies
|
||||
|
||||
//svg文件引入
|
||||
import './icons'
|
||||
@ -44,6 +46,7 @@ if (!Array.isArray) {
|
||||
Vue.use(Pagination);
|
||||
Vue.use(Alert);
|
||||
Vue.use(Loading);
|
||||
Vue.use(Dialog);
|
||||
|
||||
// v-focus
|
||||
Vue.directive('focus', {
|
||||
|
@ -1,143 +1,158 @@
|
||||
import Vue from 'vue'
|
||||
import VueRouter from 'vue-router'
|
||||
import Vue from "vue"
|
||||
import VueRouter from "vue-router"
|
||||
|
||||
Vue.use(VueRouter)
|
||||
|
||||
const VueRouterPush = VueRouter.prototype.push
|
||||
VueRouter.prototype.push = function push(to) {
|
||||
return VueRouterPush.call(this, to).catch(err => err)
|
||||
return VueRouterPush.call(this, to).catch(err => err)
|
||||
}
|
||||
|
||||
//标题js
|
||||
import getPageTitle from "@/utils/title-config";
|
||||
import getPageTitle from "@/utils/title-config"
|
||||
|
||||
const Index = () => import('views/index/index')
|
||||
const Recommend = () => import('views/index/recommend/Recommend')
|
||||
const Collect = () => import('views/index/collect/Collect')
|
||||
const AllSections = () => import('views/index/allSections/AllSections')
|
||||
const search = () => import('views/search/search')
|
||||
const SearchResult = () => import('views/search/searchResult/SearchResult')
|
||||
const user = () => import('views/user/user')
|
||||
const userIndex = () => import('views/user/UserIndex')
|
||||
const detail = () => import('views/detail/detail')
|
||||
const detailIndex = () => import('views/detail/detailIndex')
|
||||
const Index = () => import("views/index/index")
|
||||
const Recommend = () => import("views/index/recommend/Recommend")
|
||||
const Collect = () => import("views/index/collect/Collect")
|
||||
const AllSections = () => import("views/index/allSections/AllSections")
|
||||
const search = () => import("views/search/search")
|
||||
const SearchResult = () => import("views/search/searchResult/SearchResult")
|
||||
const user = () => import("views/user/user")
|
||||
const userIndex = () => import("views/user/UserIndex")
|
||||
const detail = () => import("views/detail/detail")
|
||||
const detailIndex = () => import("views/detail/detailIndex")
|
||||
|
||||
const routes = [
|
||||
{
|
||||
// 首页
|
||||
// path: '*',
|
||||
path: '/',
|
||||
name: 'Index',
|
||||
redirect: "/recommend",
|
||||
component: Index,
|
||||
children: [
|
||||
{
|
||||
path: '/recommend',
|
||||
name: 'Recommend',
|
||||
component: Recommend,
|
||||
meta: {
|
||||
title: "推荐版块"
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/collect',
|
||||
name: 'Collect',
|
||||
component: Collect,
|
||||
meta: {
|
||||
title: "收藏的版块"
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/allSections',
|
||||
name: 'AllSections',
|
||||
component: AllSections,
|
||||
meta: {
|
||||
title: "全部版块"
|
||||
}
|
||||
},
|
||||
]
|
||||
}, {
|
||||
path: '/searchResult', // 搜索结果
|
||||
name: 'search',
|
||||
redirect: "/searchResult",
|
||||
component: search,
|
||||
children: [
|
||||
{
|
||||
path: '/searchResult',
|
||||
name: 'Recommend',
|
||||
component: SearchResult,
|
||||
meta: {
|
||||
title: "搜索帖子"
|
||||
}
|
||||
},
|
||||
]
|
||||
}, {
|
||||
path: '/user', // 我的
|
||||
name: 'user',
|
||||
redirect: "/userIndex",
|
||||
component: user,
|
||||
children: [
|
||||
{
|
||||
path: '/userIndex',
|
||||
name: 'userIndex',
|
||||
component: userIndex,
|
||||
meta: {
|
||||
title: "我的寄托"
|
||||
}
|
||||
},
|
||||
]
|
||||
}, {
|
||||
path: '/detail', // 帖子详情
|
||||
name: 'detail',
|
||||
redirect: "/detailIndex",
|
||||
component: detail,
|
||||
children: [
|
||||
{
|
||||
path: '/detailIndex',
|
||||
name: 'detailIndex',
|
||||
component: detailIndex,
|
||||
meta: {
|
||||
title: "帖子详情"
|
||||
}
|
||||
},
|
||||
]
|
||||
}
|
||||
{
|
||||
// 首页
|
||||
// path: '*',
|
||||
path: "/",
|
||||
name: "Index",
|
||||
redirect: "/recommend",
|
||||
component: Index,
|
||||
children: [
|
||||
{
|
||||
path: "/recommend",
|
||||
name: "Recommend",
|
||||
component: Recommend,
|
||||
meta: {
|
||||
title: "推荐版块",
|
||||
},
|
||||
},
|
||||
{
|
||||
path: "/collect",
|
||||
name: "Collect",
|
||||
component: Collect,
|
||||
meta: {
|
||||
title: "收藏的版块",
|
||||
},
|
||||
},
|
||||
{
|
||||
path: "/allSections",
|
||||
name: "AllSections",
|
||||
component: AllSections,
|
||||
meta: {
|
||||
title: "全部版块",
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
path: "/searchResult", // 搜索结果
|
||||
name: "search",
|
||||
redirect: "/searchResult",
|
||||
component: search,
|
||||
children: [
|
||||
{
|
||||
path: "/searchResult",
|
||||
name: "Recommend",
|
||||
component: SearchResult,
|
||||
meta: {
|
||||
title: "搜索帖子",
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
path: "/user", // 我的
|
||||
name: "user",
|
||||
redirect: "/userIndex",
|
||||
component: user,
|
||||
children: [
|
||||
{
|
||||
path: "/userIndex",
|
||||
name: "userIndex",
|
||||
component: userIndex,
|
||||
meta: {
|
||||
title: "我的寄托",
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
path: "/detail", // 帖子详情
|
||||
name: "detail",
|
||||
redirect: "/detailIndex",
|
||||
component: detail,
|
||||
children: [
|
||||
{
|
||||
path: "/detailIndex",
|
||||
name: "detailIndex",
|
||||
component: detailIndex,
|
||||
meta: {
|
||||
title: "帖子详情",
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
]
|
||||
|
||||
const router = new VueRouter({
|
||||
mode: 'history',
|
||||
// mode: 'hash',
|
||||
// mode: process.env.NODE_ENV == "development" ? 'hash' : 'history',
|
||||
// base: process.env.BASE_URL,
|
||||
routes
|
||||
mode: "history",
|
||||
// mode: 'hash',
|
||||
// mode: process.env.NODE_ENV == "development" ? 'hash' : 'history',
|
||||
// base: process.env.BASE_URL,
|
||||
routes,
|
||||
})
|
||||
|
||||
// 判断是不是首次 加载
|
||||
let isInitialNavigation = true
|
||||
|
||||
router.beforeEach(async (to, from, next) => {
|
||||
if (to.meta.title) document.title = getPageTitle(to.meta.title);
|
||||
if (to.meta.title) document.title = getPageTitle(to.meta.title)
|
||||
|
||||
if (isInitialNavigation) {
|
||||
isInitialNavigation = false
|
||||
} else {
|
||||
if (window._hmt) {
|
||||
if (to.path) {
|
||||
window._hmt.push(['_trackPageview', '/#' + to.fullPath])
|
||||
}
|
||||
}
|
||||
if (isInitialNavigation) {
|
||||
isInitialNavigation = false
|
||||
} else {
|
||||
if (window._hmt) {
|
||||
if (to.path) {
|
||||
window._hmt.push(["_trackPageview", "/#" + to.fullPath])
|
||||
}
|
||||
}
|
||||
|
||||
if (window._czc) {
|
||||
let location = window.location
|
||||
let contentUrl = location.pathname + location.hash
|
||||
let refererUrl = "/"
|
||||
// 用于发送某个URL的PV统计请求
|
||||
window._czc.push(["_trackPageview", contentUrl, refererUrl])
|
||||
}
|
||||
// if (window._czc) {
|
||||
// let location = window.location
|
||||
// let contentUrl = location.pathname + location.hash
|
||||
// let refererUrl = "/"
|
||||
// // 用于发送某个URL的PV统计请求
|
||||
// window._czc.push(["_trackPageview", contentUrl, refererUrl])
|
||||
// }
|
||||
}
|
||||
|
||||
}
|
||||
if (typeof wx !== "undefined") {
|
||||
// console.log("to.fullPath", to.fullPath)
|
||||
|
||||
next();
|
||||
});
|
||||
setTimeout(() => {
|
||||
wx.miniProgram.postMessage({
|
||||
data: location.href,
|
||||
})
|
||||
}, 200)
|
||||
// wx.miniProgram.postMessage({
|
||||
// data: to.fullPath,
|
||||
// })
|
||||
}
|
||||
|
||||
next()
|
||||
})
|
||||
|
||||
export default router
|
||||
|
@ -1,122 +1,135 @@
|
||||
import Vue from 'vue'
|
||||
import Vuex from 'vuex'
|
||||
import Vue from "vue"
|
||||
import Vuex from "vuex"
|
||||
|
||||
Vue.use(Vuex)
|
||||
|
||||
export default new Vuex.Store({
|
||||
state: {
|
||||
historicalSearch: [], // 历史数据
|
||||
allForumList: [], // 全部板块数据
|
||||
homeRequestState: false, // 首页推荐和收藏接口的数据请求状态 这个是是否需要发送请求,因为用户点击收藏后需要重新获取
|
||||
getUserInfoState: false, // 这个是是否在请求状态
|
||||
favoriteList: [], // 收藏板块 数据
|
||||
recommendList: [], // 推荐板块数据
|
||||
menu: [],
|
||||
user: {}, // 用户信息
|
||||
hotSearchkeywords: [], // 热门搜索
|
||||
loading: null,
|
||||
},
|
||||
getters: {
|
||||
},
|
||||
state: {
|
||||
historicalSearch: [], // 历史数据
|
||||
allForumList: [], // 全部板块数据
|
||||
homeRequestState: false, // 首页推荐和收藏接口的数据请求状态 这个是是否需要发送请求,因为用户点击收藏后需要重新获取
|
||||
getUserInfoState: false, // 这个是是否在请求状态
|
||||
favoriteList: [], // 收藏板块 数据
|
||||
recommendList: [], // 推荐板块数据
|
||||
menu: [],
|
||||
user: {}, // 用户信息
|
||||
hotSearchkeywords: [], // 热门搜索
|
||||
loading: null,
|
||||
},
|
||||
getters: {},
|
||||
|
||||
mutations: {
|
||||
setHistoricalSearch(state, payload) {
|
||||
if (!Array.isArray(payload)) payload = [payload]
|
||||
let targetArr = [...new Set([...payload, ...state.historicalSearch])]
|
||||
if (targetArr.length > 10) targetArr = targetArr.slice(0, 10)
|
||||
mutations: {
|
||||
setHistoricalSearch(state, payload) {
|
||||
if (!Array.isArray(payload)) payload = [payload]
|
||||
let targetArr = [...new Set([...payload, ...state.historicalSearch])]
|
||||
if (targetArr.length > 10) targetArr = targetArr.slice(0, 10)
|
||||
|
||||
state.historicalSearch = targetArr
|
||||
localStorage.setItem('historicalSearch', JSON.stringify(targetArr))
|
||||
state.historicalSearch = targetArr
|
||||
localStorage.setItem("historicalSearch", JSON.stringify(targetArr))
|
||||
},
|
||||
|
||||
setAllForumList(state, payload) {
|
||||
state.allForumList = payload
|
||||
},
|
||||
|
||||
setHomeRequestState(state, payload) {
|
||||
state.homeRequestState = payload
|
||||
},
|
||||
|
||||
setFavoriteList(state, payload) {
|
||||
state.favoriteList = payload
|
||||
},
|
||||
|
||||
setRecommendList(state, payload) {
|
||||
state.recommendList = payload
|
||||
},
|
||||
|
||||
setUser(state, payload) {
|
||||
state.user = payload
|
||||
},
|
||||
|
||||
setHotSearchkeywords(state, payload) {
|
||||
state.hotSearchkeywords = payload
|
||||
},
|
||||
|
||||
setgetUserInfoState(state, payload) {
|
||||
state.getUserInfoState = payload
|
||||
},
|
||||
|
||||
setMenu(state, payload) {
|
||||
state.menu = payload
|
||||
},
|
||||
},
|
||||
|
||||
setAllForumList(state, payload) {
|
||||
state.allForumList = payload
|
||||
actions: {
|
||||
// 获取历史搜索的数据
|
||||
fetchHistoricalSearch({ commit }) {
|
||||
let historicalSearch = JSON.parse(localStorage.getItem("historicalSearch")) || []
|
||||
commit("setHistoricalSearch", historicalSearch)
|
||||
},
|
||||
|
||||
// 获取全部板块的数据
|
||||
getAllForum({ commit }, that) {
|
||||
that.$http
|
||||
.get("/api/home/allForum")
|
||||
.then(res => {
|
||||
if (res.code != 200) return
|
||||
let allForumList = res.data
|
||||
commit("setAllForumList", allForumList)
|
||||
})
|
||||
.catch(err => {
|
||||
that.$message.error(err.message)
|
||||
})
|
||||
},
|
||||
|
||||
// 获取用户信息 获取收藏信息那些数据
|
||||
getUserInfo({ state, commit }, that) {
|
||||
if (state.getUserInfoState) return
|
||||
commit("setgetUserInfoState", true)
|
||||
that.$http
|
||||
.post("/api/home")
|
||||
.then(res => {
|
||||
if (res.code != 200) return
|
||||
let data = res.data
|
||||
let { config, favorite, hotSearchkeywords, recommend, user, menu } = data
|
||||
|
||||
const islogin = user.uin > 0 || user.uid > 0 ? true : false
|
||||
// console.log("islogin", islogin)
|
||||
commit("setHomeRequestState", true)
|
||||
commit("setUser", user)
|
||||
commit("setFavoriteList", favorite)
|
||||
commit("setRecommendList", recommend)
|
||||
commit("setHotSearchkeywords", hotSearchkeywords)
|
||||
commit("setMenu", menu)
|
||||
|
||||
if (user.uid > 0 || user.uin > 0) {
|
||||
// 这个是顶部用户数据的 这样不用监听是否请求成功
|
||||
setTimeout(() => {
|
||||
if (typeof xstat !== "undefined") {
|
||||
xstat.identify({
|
||||
uid: user.uid,
|
||||
uin: user.uin,
|
||||
})
|
||||
}
|
||||
}, 600)
|
||||
}
|
||||
|
||||
if (that.userInfo) {
|
||||
// 这个是顶部用户数据的 这样不用监听是否请求成功
|
||||
that.userInfo = user
|
||||
that.islogin = user.uid > 0 || user.uin > 0 ? true : false
|
||||
that.hotSearchkeywords = hotSearchkeywords
|
||||
that.menu = menu
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
that.$message.error(err.message)
|
||||
})
|
||||
.finally(() => {
|
||||
// that.$closeUnderLoading(that)
|
||||
commit("setgetUserInfoState", false)
|
||||
})
|
||||
},
|
||||
},
|
||||
|
||||
setHomeRequestState(state, payload) {
|
||||
state.homeRequestState = payload
|
||||
},
|
||||
|
||||
setFavoriteList(state, payload) {
|
||||
state.favoriteList = payload
|
||||
},
|
||||
|
||||
setRecommendList(state, payload) {
|
||||
state.recommendList = payload
|
||||
},
|
||||
|
||||
setUser(state, payload) {
|
||||
state.user = payload
|
||||
},
|
||||
|
||||
setHotSearchkeywords(state, payload) {
|
||||
state.hotSearchkeywords = payload
|
||||
},
|
||||
|
||||
setgetUserInfoState(state, payload) {
|
||||
state.getUserInfoState = payload
|
||||
},
|
||||
|
||||
setMenu(state, payload) {
|
||||
state.menu = payload
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
actions: {
|
||||
// 获取历史搜索的数据
|
||||
fetchHistoricalSearch({ commit }) {
|
||||
let historicalSearch = JSON.parse(localStorage.getItem('historicalSearch')) || []
|
||||
commit('setHistoricalSearch', historicalSearch)
|
||||
},
|
||||
|
||||
// 获取全部板块的数据
|
||||
getAllForum({ commit }, that) {
|
||||
that.$http.get("/api/home/allForum").then(res => {
|
||||
if (res.code != 200) return;
|
||||
let allForumList = res.data
|
||||
commit('setAllForumList', allForumList)
|
||||
}).catch(err => {
|
||||
that.$message.error(err.message)
|
||||
})
|
||||
|
||||
},
|
||||
|
||||
// 获取用户信息 获取收藏信息那些数据
|
||||
getUserInfo({ state, commit }, that) {
|
||||
if (state.getUserInfoState) return
|
||||
commit('setgetUserInfoState', true)
|
||||
that.$http.post("/api/home").then(res => {
|
||||
if (res.code != 200) return;
|
||||
let data = res.data
|
||||
let { config, favorite, hotSearchkeywords, recommend, user, menu } = data
|
||||
|
||||
commit('setHomeRequestState', true)
|
||||
commit('setUser', user)
|
||||
commit('setFavoriteList', favorite)
|
||||
commit('setRecommendList', recommend)
|
||||
commit('setHotSearchkeywords', hotSearchkeywords)
|
||||
commit('setMenu', menu)
|
||||
|
||||
if (that.userInfo) { // 这个是顶部用户数据的 这样不用监听是否请求成功
|
||||
that.userInfo = user
|
||||
that.islogin = user.uid > 0 ? true : false;
|
||||
that.hotSearchkeywords = hotSearchkeywords
|
||||
that.menu = menu
|
||||
}
|
||||
|
||||
}).catch(err => {
|
||||
that.$message.error(err.message)
|
||||
}).finally(() => {
|
||||
// that.$closeUnderLoading(that)
|
||||
commit('setgetUserInfoState', false)
|
||||
})
|
||||
},
|
||||
|
||||
|
||||
},
|
||||
modules: {
|
||||
|
||||
}
|
||||
modules: {},
|
||||
})
|
||||
|
||||
|
@ -32,7 +32,7 @@ service.interceptors.request.use(
|
||||
// config['headers']['authorization'] = "661aiz52k5e6vqgmkxnz0wvbv8nciz8h"
|
||||
|
||||
// if (process.env.NODE_ENV == "development") config['headers']['authorization'] = "0h870ovk2xckoqfsh8a3t3sg4sg5z7eg"
|
||||
if (process.env.NODE_ENV == "development") config["headers"]["authorization"] = "95paemsnrr393p9vikpp16qo72"
|
||||
if (process.env.NODE_ENV == "development") config["headers"]["authorization"] = "fed3c5700b07f543d336c9efe03c82c2"
|
||||
|
||||
return config
|
||||
},
|
||||
|
@ -29,6 +29,21 @@
|
||||
<a class="edit-box flexcenter" v-if="info.isauthor == 1" :href="`https://www.gter.net/bbs/post/edit.html?tid=${tid}&pid=${info.pid}`">
|
||||
<img class="edit-icom" src="@/assets/img/detail/edit.png" />
|
||||
</a>
|
||||
|
||||
<div class="manager-box" v-if="managementauthority">
|
||||
<div class="dot-box flexflex" @click="openAdminOperate(null)">
|
||||
<div class="item"></div>
|
||||
<div class="item"></div>
|
||||
<div class="item"></div>
|
||||
</div>
|
||||
<template v-if="adminOperateState">
|
||||
<div class="operate-mask" @click="closeAdminOperate"></div>
|
||||
<div class="operate">
|
||||
<div class="item" @click="popUupDialog(0)">删除该帖</div>
|
||||
<div class="item" @click="popUupDialog(1)">删帖且禁言</div>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
<template v-if="type == 5">
|
||||
<div class="summary-content">
|
||||
@ -165,6 +180,20 @@
|
||||
<div class="edit-box flexcenter" v-if="item.ismyself == 1" @click.stop="openEditPop(item)">
|
||||
<img class="edit-icom" src="@/assets/img/detail/edit.png" />
|
||||
</div>
|
||||
<div class="manager-box" v-if="managementauthority">
|
||||
<div class="dot-box flexflex" @click="openAdminOperate(index)">
|
||||
<div class="item"></div>
|
||||
<div class="item"></div>
|
||||
<div class="item"></div>
|
||||
</div>
|
||||
<template v-if="item.adminOperateState">
|
||||
<div class="operate-mask" @click="closeAdminOperate"></div>
|
||||
<div class="operate">
|
||||
<div class="item" @click="popUupDialog(0)">删除该楼</div>
|
||||
<div class="item" @click="popUupDialog(1)">删楼且禁言</div>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-content flex1" @click.stop="handleReplyPop(item)" v-html="item.message"></div>
|
||||
@ -527,6 +556,11 @@ export default {
|
||||
9: "CS/EE",
|
||||
10: "生农医药",
|
||||
},
|
||||
|
||||
adminOperateState: false, // 管理员面板 显示状态
|
||||
deletePostToken: "",
|
||||
managementauthority: 0, // 是否是管理员
|
||||
adminOperateListIndex: null, // 管理员面板 列表下标
|
||||
}
|
||||
},
|
||||
|
||||
@ -538,7 +572,7 @@ export default {
|
||||
"$store.state.user": {
|
||||
handler(newV, oldV) {
|
||||
if (JSON.stringify(newV) != "{}") {
|
||||
this.islogin = newV.uid > 0 ? true : false
|
||||
this.islogin = newV.uid > 0 || newV.uin > 0 ? true : false
|
||||
this.tid = this.$route.query["tid"]
|
||||
this.postList.page = this.$route.query["page"] || 1
|
||||
|
||||
@ -569,7 +603,7 @@ export default {
|
||||
let data = res.data
|
||||
let info = data.info
|
||||
|
||||
console.log(data.type)
|
||||
this.managementauthority = data.managementauthority
|
||||
|
||||
info["message"] = info["message"].trim()
|
||||
|
||||
@ -1134,8 +1168,8 @@ export default {
|
||||
if (thread.apply_llm) value += " LL.M"
|
||||
if (thread.apply_jd) value += " J.D"
|
||||
} else if (key == "country") {
|
||||
thread.country.forEach(element => {
|
||||
value += element.name + "、"
|
||||
thread.country.forEach((element, i) => {
|
||||
value += element.name + (i > 1 ? "、" : "")
|
||||
})
|
||||
} else if (key == "scholarship") {
|
||||
value = "是"
|
||||
@ -1143,7 +1177,7 @@ export default {
|
||||
if (thread.profession_cid == 2) value = thread[key] == 1 ? "男" : "女"
|
||||
else value = null
|
||||
} else if (key == "lsat") {
|
||||
if (thread.profession_cid == 2) value = thread['lsat']
|
||||
if (thread.profession_cid == 2) value = thread["lsat"]
|
||||
else value = null
|
||||
} else if (key == "experience") {
|
||||
value = experience[thread[key]]
|
||||
@ -1165,6 +1199,60 @@ export default {
|
||||
this.locationThreadData = obj1
|
||||
})
|
||||
},
|
||||
|
||||
// 打开管理员 面板
|
||||
openAdminOperate(index) {
|
||||
this.deletePostToken = ""
|
||||
this.adminOperateListIndex = null
|
||||
|
||||
if (index == null) {
|
||||
this.adminOperateState = true
|
||||
this.deletePostToken = this.token
|
||||
return
|
||||
}
|
||||
this.postList.list[index]["adminOperateState"] = true
|
||||
this.deletePostToken = this.postList.list[index].token
|
||||
this.adminOperateListIndex = index
|
||||
|
||||
this.$forceUpdate()
|
||||
// this.postList = this.token
|
||||
},
|
||||
|
||||
// 关闭管理员 面板
|
||||
closeAdminOperate() {
|
||||
this.adminOperateState = false
|
||||
|
||||
this.postList.list.forEach(element => {
|
||||
element["adminOperateState"] = false
|
||||
})
|
||||
this.$forceUpdate()
|
||||
},
|
||||
|
||||
// 弹出提示框
|
||||
popUupDialog(hackinguser) {
|
||||
this.closeAdminOperate()
|
||||
const userConfirmed = confirm(`确定要${hackinguser ? "删除且禁言" : "删除"}?`)
|
||||
if (userConfirmed) this.deletePost(hackinguser)
|
||||
},
|
||||
|
||||
// 删帖
|
||||
deletePost(hackinguser) {
|
||||
console.log(this.adminOperateListIndex, "this.adminOperateListIndex")
|
||||
// return
|
||||
this.$http.post("/api/manage/delete", { token: this.deletePostToken, hackinguser }).then(res => {
|
||||
if (res.code != 200) return
|
||||
console.log(this.adminOperateListIndex)
|
||||
if (this.adminOperateListIndex != null) {
|
||||
location.reload()
|
||||
return
|
||||
}
|
||||
if (document.referrer) window.history.back()
|
||||
else window.location.href = "/"
|
||||
|
||||
this.openHintBox(res.message)
|
||||
this.deletePostToken = ""
|
||||
})
|
||||
},
|
||||
},
|
||||
|
||||
components: {
|
||||
@ -1338,6 +1426,57 @@ export default {
|
||||
width: 0.4rem;
|
||||
}
|
||||
}
|
||||
|
||||
.manager-box {
|
||||
position: relative;
|
||||
|
||||
.dot-box {
|
||||
margin-left: 0.4533rem;
|
||||
height: 0.8rem;
|
||||
align-items: center;
|
||||
.item {
|
||||
width: 0.0667rem;
|
||||
height: 0.0667rem;
|
||||
border-radius: 50%;
|
||||
background: #8a8a8a;
|
||||
border: 0.0133rem #7f7f7f solid;
|
||||
&:not(:last-of-type) {
|
||||
margin-right: 0.04rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.operate-mask {
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
// background: rgba(138, 138, 138, 0.6);
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.operate {
|
||||
box-shadow: 0 0 0.3rem rgba(0, 0, 0, 0.1);
|
||||
background: #fff;
|
||||
position: absolute;
|
||||
top: 0.8rem;
|
||||
right: 0;
|
||||
font-size: 0.36rem;
|
||||
width: 2.9067rem;
|
||||
border-radius: 0.1rem;
|
||||
|
||||
.item {
|
||||
height: 1.0667rem;
|
||||
line-height: 1.0667rem;
|
||||
text-align: center;
|
||||
color: #333;
|
||||
|
||||
&:not(:last-of-type) {
|
||||
border-bottom: 0.0133rem solid #f0f0f0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.card-content {
|
||||
|
@ -55,7 +55,7 @@
|
||||
|
||||
<div v-if="count > limit" class="paging flexcenter">
|
||||
<el-pagination small background layout="prev, pager, next" @current-change="currentChange()"
|
||||
:current-page.sync="page" :page-size="limit" :total="count">
|
||||
:current-page.sync="page" :page-size="limit" :total="count * 1">
|
||||
</el-pagination>
|
||||
</div>
|
||||
|
||||
|
@ -8,7 +8,7 @@ function resolve(dir) {
|
||||
}
|
||||
module.exports = defineConfig({
|
||||
transpileDependencies: true,
|
||||
publicPath: process.env.NODE_ENV === 'production' ? "https://ansnid.oss-cn-shenzhen.aliyuncs.com/forum" : '/',
|
||||
publicPath: process.env.NODE_ENV === 'production' ? "https://framework.x-php.com/forum/" : '/',
|
||||
// publicPath: "https://x-cloud-project.oss-cn-guangzhou.aliyuncs.com/forum",
|
||||
configureWebpack: {
|
||||
optimization: {
|
||||
|
Loading…
x
Reference in New Issue
Block a user