123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- 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);
- });
- }
- }
- };
- });
|