You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
167 lines
6.0 KiB
167 lines
6.0 KiB
10 months ago
|
define([
|
||
|
'mixins/router',
|
||
|
'api/home',
|
||
|
'api/auth',
|
||
|
'api/public',
|
||
|
'api/special'
|
||
|
], function (routerMixin, homeApi, authApi, publicApi, specialApi) {
|
||
|
return {
|
||
|
mixins: [routerMixin],
|
||
|
data: function () {
|
||
|
return {
|
||
|
userInfo: {
|
||
|
avatar: ''
|
||
|
},
|
||
|
publicData: {},
|
||
|
agreeContent: {},
|
||
|
loginVisible: false,
|
||
|
agreeVisible: false,
|
||
|
isLogin: false,
|
||
|
router: router
|
||
|
};
|
||
|
},
|
||
|
watch: {
|
||
|
'publicData.kefu_token': function () {
|
||
|
if (window.canCustomerServer) {
|
||
|
window.canCustomerServer.destroy();
|
||
|
window.canCustomerServer = null;
|
||
|
}
|
||
|
var option = {
|
||
|
openUrl: this.publicData.service_url,
|
||
|
token: this.publicData.kefu_token,
|
||
|
isShowTip: false,
|
||
|
domId: 'customerServerTip',
|
||
|
};
|
||
|
if (this.userInfo.phone) {
|
||
|
option.sendUserData = {
|
||
|
nickName: this.userInfo.nickname,
|
||
|
phone: this.userInfo.phone,
|
||
|
avatar: this.userInfo.avatar
|
||
|
}
|
||
|
}
|
||
|
window.canCustomerServer = new initCustomerServer(option);
|
||
|
window.canCustomerServer.init();
|
||
|
}
|
||
|
},
|
||
|
created: function () {
|
||
|
var vm = this;
|
||
|
this.public_data();
|
||
|
this.get_host_search();
|
||
|
this.get_home_navigation();
|
||
|
this.agree_content();
|
||
|
this.get_grade_cate();
|
||
|
var request = new XMLHttpRequest();
|
||
|
request.onreadystatechange = function () {
|
||
|
if (request.readyState === request.DONE) {
|
||
|
if (request.status === 200) {
|
||
|
var text = request.responseText;
|
||
|
if (text) {
|
||
|
var markStart = text.indexOf('<script>');
|
||
|
if (markStart !== -1) {
|
||
|
text = text.slice(markStart + 8);
|
||
|
var markEnd = text.indexOf('</script>');
|
||
|
if (markEnd !== -1) {
|
||
|
text = text.slice(0, markEnd);
|
||
|
}
|
||
|
}
|
||
|
var scriptEl = document.createElement('script');
|
||
|
scriptEl.innerHTML = text;
|
||
|
document.body.appendChild(scriptEl);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
};
|
||
|
request.open('GET', '../public_api/get_website_statistics');
|
||
|
request.send();
|
||
|
// 登陆状态
|
||
|
homeApi.user_login().then(function () {
|
||
|
vm.isLogin = true;
|
||
|
vm.user_info();
|
||
|
}).catch(function (err) {
|
||
|
if (window.location.href.includes('/web/my/index')) {
|
||
|
vm.$message.error(err.msg);
|
||
|
vm.loginVisible = true;
|
||
|
}
|
||
|
});
|
||
|
},
|
||
|
methods: {
|
||
|
// 公共数据
|
||
|
public_data: function () {
|
||
|
var vm = this;
|
||
|
publicApi.public_data().then(function (res) {
|
||
|
for (var key in res.data) {
|
||
|
if (Object.hasOwnProperty.call(res.data, key)) {
|
||
|
vm.$set(vm.publicData, key, res.data[key]);
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
},
|
||
|
// 热搜
|
||
|
get_host_search: function () {
|
||
|
var vm = this;
|
||
|
publicApi.get_host_search().then(function (res) {
|
||
|
vm.$set(vm.publicData, 'host_search', res.data);
|
||
|
}).catch(function (err) {
|
||
|
vm.$message.error(err.msg);
|
||
|
});
|
||
|
},
|
||
|
// 用户协议
|
||
|
agree_content: function () {
|
||
|
var vm = this;
|
||
|
publicApi.agree().then(function (res) {
|
||
|
vm.agreeContent = res.data;
|
||
|
}).catch(function (err) {
|
||
|
vm.$message.error(err.msg);
|
||
|
});
|
||
|
},
|
||
|
// 大分类
|
||
|
get_grade_cate: function () {
|
||
|
var vm = this;
|
||
|
specialApi.get_grade_cate().then(function (res) {
|
||
|
vm.$set(vm.publicData, 'grade_cate', res.data);
|
||
|
}).catch(function (err) {
|
||
|
vm.$message.error(err.msg);
|
||
|
});
|
||
|
},
|
||
|
loginOpen: function () {
|
||
|
this.loginVisible = true;
|
||
|
},
|
||
|
// 关闭登录弹窗
|
||
|
loginClose: function (type) {
|
||
|
this.loginVisible = false;
|
||
|
if (type) {
|
||
|
if (this.isReload) {
|
||
|
window.location.reload();
|
||
|
} else {
|
||
|
this.isLogin = true;
|
||
|
this.user_info();
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
agreeOpen: function () {
|
||
|
this.agreeVisible = true;
|
||
|
},
|
||
|
agreeClose: function () {
|
||
|
this.agreeVisible = false;
|
||
|
},
|
||
|
// 用户信息
|
||
|
user_info: function () {
|
||
|
var vm = this;
|
||
|
authApi.user_info().then(function (res) {
|
||
|
vm.userInfo = res.data;
|
||
|
}).catch(function (err) {
|
||
|
vm.$message.error(err.msg);
|
||
|
});
|
||
|
},
|
||
|
// 顶部导航
|
||
|
get_home_navigation: function () {
|
||
|
var vm = this;
|
||
|
publicApi.get_home_navigation().then(function (res) {
|
||
|
vm.$set(vm.publicData, 'navList', res.data);
|
||
|
}).catch(function (err) {
|
||
|
vm.$message.error(err.msg);
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
};
|
||
|
});
|