{"version":3,"file":"js/app.3f22ce42.js","mappings":"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","sources":["webpack://tainchen/./src/App.vue","webpack://tainchen/./src/const/language.js","webpack://tainchen/./src/i18n/config.js","webpack://tainchen/./src/stores/modules/users.js","webpack://tainchen/./src/stores/modules/language.js","webpack://tainchen/./src/components/Snackbar/Snackbar.vue","webpack://tainchen/./src/stores/modules/snackbar.js","webpack://tainchen/src/components/Snackbar/Snackbar.vue","webpack://tainchen/./src/components/Snackbar/Snackbar.vue?a2e9","webpack://tainchen/./src/components/Snackbar/Snackbar.vue?7c6a","webpack://tainchen/src/App.vue","webpack://tainchen/./src/App.vue?b495","webpack://tainchen/./src/App.vue?0e40","webpack://tainchen/./src/plugins/vuetify.js","webpack://tainchen/./src/i18n/zh/home.js","webpack://tainchen/./src/i18n/zh/book.js","webpack://tainchen/./src/i18n/zh/about.js","webpack://tainchen/./src/i18n/zh/product.js","webpack://tainchen/./src/i18n/zh/project.js","webpack://tainchen/./src/i18n/zh/news.js","webpack://tainchen/./src/i18n/zh/contact.js","webpack://tainchen/./src/i18n/zh/solution.js","webpack://tainchen/./src/i18n/zh/nav.js","webpack://tainchen/./src/i18n/zh/join.js","webpack://tainchen/./src/i18n/zh/index.js","webpack://tainchen/./src/i18n/en/home.js","webpack://tainchen/./src/i18n/en/book.js","webpack://tainchen/./src/i18n/en/about.js","webpack://tainchen/./src/i18n/en/product.js","webpack://tainchen/./src/i18n/en/project.js","webpack://tainchen/./src/i18n/en/news.js","webpack://tainchen/./src/i18n/en/contact.js","webpack://tainchen/./src/i18n/en/solution.js","webpack://tainchen/./src/i18n/en/nav.js","webpack://tainchen/./src/i18n/en/join.js","webpack://tainchen/./src/i18n/en/index.js","webpack://tainchen/./src/i18n/index.js","webpack://tainchen/./src/components/Home.vue","webpack://tainchen/./src/config.js","webpack://tainchen/./src/util/request.js","webpack://tainchen/./src/util/http.js","webpack://tainchen/./src/api/book.js","webpack://tainchen/./src/plugins/SplitText.js","webpack://tainchen/./src/plugins/jqueryVender.js","webpack://tainchen/src/components/Home.vue","webpack://tainchen/./src/components/Home.vue?06aa","webpack://tainchen/./src/components/Home.vue?f1b4","webpack://tainchen/./src/components/About.vue","webpack://tainchen/./src/util/util.js","webpack://tainchen/src/components/About.vue","webpack://tainchen/./src/components/About.vue?e147","webpack://tainchen/./src/components/About.vue?5a46","webpack://tainchen/./src/components/Product.vue","webpack://tainchen/src/components/Product.vue","webpack://tainchen/./src/components/Product.vue?f2e4","webpack://tainchen/./src/components/Product.vue?3e3d","webpack://tainchen/./src/components/Solution.vue","webpack://tainchen/src/components/Solution.vue","webpack://tainchen/./src/components/Solution.vue?6512","webpack://tainchen/./src/components/Solution.vue?3f7b","webpack://tainchen/./src/components/Contact.vue","webpack://tainchen/src/components/Contact.vue","webpack://tainchen/./src/components/Contact.vue?e837","webpack://tainchen/./src/components/Contact.vue?cec4","webpack://tainchen/./src/components/News.vue","webpack://tainchen/./src/api/news.js","webpack://tainchen/./src/api/newsCate.js","webpack://tainchen/src/components/News.vue","webpack://tainchen/./src/components/News.vue?ce8f","webpack://tainchen/./src/components/News.vue?14f4","webpack://tainchen/./src/components/Project.vue","webpack://tainchen/src/components/Project.vue","webpack://tainchen/./src/components/Project.vue?dfe6","webpack://tainchen/./src/components/Project.vue?c3d3","webpack://tainchen/./src/components/Join.vue","webpack://tainchen/./src/api/salary.js","webpack://tainchen/src/components/Join.vue","webpack://tainchen/./src/components/Join.vue?a312","webpack://tainchen/./src/components/Join.vue?b0ac","webpack://tainchen/./src/router/index.js","webpack://tainchen/./src/main.js","webpack://tainchen/webpack/bootstrap","webpack://tainchen/webpack/runtime/chunk loaded","webpack://tainchen/webpack/runtime/compat get default export","webpack://tainchen/webpack/runtime/define property getters","webpack://tainchen/webpack/runtime/global","webpack://tainchen/webpack/runtime/hasOwnProperty shorthand","webpack://tainchen/webpack/runtime/make namespace object","webpack://tainchen/webpack/runtime/publicPath","webpack://tainchen/webpack/runtime/jsonp chunk loading","webpack://tainchen/webpack/startup"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-app',[_c('v-navigation-drawer',{attrs:{\"app\":\"\",\"temporary\":\"\",\"right\":\"\"},model:{value:(_vm.drawer),callback:function ($$v) {_vm.drawer=$$v},expression:\"drawer\"}},[_c('v-list',[_vm._l((_vm.$t('nav.navDataList')),function(item,index){return _c('div',{key:index,staticClass:\"drawer-nav-item\",class:[_vm.navDataIndex === index ? 'active' : ''],on:{\"click\":function($event){return _vm.handleNavigate(index)}}},[_vm._v(\" \"+_vm._s(item.name)+\" \")])}),_c('div',{staticClass:\"drawer-nav-item\"},[_c('v-list',{attrs:{\"outlined\":\"\"}},_vm._l((_vm.languageDataList),function(item,index){return _c('v-list-item',{key:index,attrs:{\"outlined\":\"\",\"link\":\"\"},on:{\"click\":function($event){return _vm.handleChangeLanguage(item.value)}}},[_c('v-list-item-content',{staticClass:\"justify-center\"},[_vm._v(_vm._s(item.text))])],1)}),1)],1)],2)],1),_c('v-app-bar',{staticClass:\"app-bar\",attrs:{\"app\":\"\",\"color\":_vm.appBarBgColor,\"flat\":true,\"max-height\":\"67\"}},[_c('v-row',[_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"6\",\"sm\":\"6\",\"md\":\"6\",\"lg\":\"3\",\"xl\":\"3\"}},[_c('a',{attrs:{\"href\":\"/\"}},[_c('v-img',{attrs:{\"src\":require(\"@/assets/images/logo.png\"),\"max-width\":\"139\",\"max-height\":\"34\"}})],1)]),(_vm.$vuetify.breakpoint.lg || _vm.$vuetify.breakpoint.xl)?_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('div',{staticClass:\"menu d-flex align-center justify-center\"},_vm._l((_vm.$t('nav.navDataList')),function(item,index){return _c('div',{key:index,staticClass:\"li\",class:[_vm.navDataIndex === index ? 'active' : ''],style:({color: _vm.appBarLiColor}),on:{\"click\":function($event){return _vm.handleNavigate(index)}}},[_vm._v(\" \"+_vm._s(item.name)+\" \")])}),0)]):_vm._e(),(_vm.$vuetify.breakpoint.lg || _vm.$vuetify.breakpoint.xl)?_c('v-col',{staticClass:\"pa-0 d-flex justify-end\",attrs:{\"cols\":\"6\",\"sm\":\"6\",\"md\":\"6\",\"lg\":\"3\",\"xl\":\"3\"}},[_c('v-menu',{attrs:{\"open-on-hover\":\"\",\"bottom\":\"\",\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({staticClass:\"change_language d-flex align-center\",style:({color: _vm.appBarLiColor})},'div',attrs,false),on),[_c('span',{staticClass:\"iconfont icon-language\"}),_vm._v(\" \"+_vm._s(_vm.curLanguage)+\" \")])]}}],null,false,3165365832)},[_c('v-list',{attrs:{\"outlined\":\"\"}},_vm._l((_vm.languageDataList),function(item,index){return _c('v-list-item',{key:index,attrs:{\"outlined\":\"\",\"link\":\"\"},on:{\"click\":function($event){return _vm.handleChangeLanguage(item.value)}}},[_c('v-list-item-content',[_vm._v(_vm._s(item.text))])],1)}),1)],1)],1):_c('v-col',{staticClass:\"pa-0 d-flex justify-end\",attrs:{\"cols\":\"6\",\"sm\":\"6\",\"md\":\"6\",\"lg\":\"4\",\"xl\":\"4\"}},[_c('v-app-bar-nav-icon',{on:{\"click\":function($event){_vm.drawer = true}}})],1)],1)],1),_c('v-main',[_c('router-view',{key:_vm.$route.fullPath}),_c('div',{staticClass:\"icons\"},[_c('div',{staticClass:\"btn trans3 d-flex align-center justify-center mapBtn animated fadeInRight\"},[_c('div',{staticClass:\"iconfont icon-dingwei\"}),_c('div',{staticClass:\"msgBox trans3 d-flex align-center justify-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('home.address'))+\" \")])]),_c('div',{staticClass:\"btn trans3 d-flex align-center justify-center atBtn animated fadeInRight del02\"},[_c('div',{staticClass:\"iconfont icon-youxiang\"}),_c('div',{staticClass:\"msgBox trans3 d-flex align-center justify-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('home.email'))+\" \")])])])],1),(_vm.isShowFooter)?_c('v-footer',{staticClass:\"v-footer\",attrs:{\"padless\":\"\"}},[_c('div',{staticClass:\"footer\"},[_c('v-divider'),_c('div',{staticClass:\"txt d-flex flex-column justify-center align-center flex-sm-row\"},[_c('a',{attrs:{\"href\":\"https://beian.miit.gov.cn/#/Integrated/recordQuery\",\"target\":\"_blank\"}},[_c('div',{},[_vm._v(\"皖 ICP 备 2023016662 号 -1\")])]),_c('v-img',{staticClass:\"badge\",attrs:{\"src\":require(\"@/assets/images/badge.png\"),\"alt\":\"\",\"max-width\":15}})],1)],1)]):_vm._e(),_c('Snackbar')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export const language = \"tian-chen-language\";","// 当前语言\r\nimport {language} from \"@/const/language\";\r\n\r\nconst languageDataList = [\r\n {\r\n text: \"简体中文\",\r\n value: \"zh-CN\",\r\n },\r\n {\r\n text: \"English\",\r\n value: \"en-US\",\r\n },\r\n];\r\n\r\nconst curLanguage = {\r\n text: _lang().text,\r\n value: _lang().value\r\n}\r\n\r\nfunction _lang() {\r\n const langText = localStorage.getItem(language + '-text');\r\n const langValue = localStorage.getItem(language + '-value');\r\n const curLang = {};\r\n\r\n if (langText && langValue) {\r\n curLang.text = langText;\r\n curLang.value = langValue;\r\n } else {\r\n curLang.text = languageDataList[0].text\r\n curLang.value = languageDataList[0].value\r\n }\r\n\r\n return curLang;\r\n}\r\n\r\nexport {\r\n languageDataList,\r\n curLanguage\r\n};","import { defineStore } from \"pinia\";\r\n\r\n// useStore 可以是 useUser、useCart 之类的任何东西\r\n// 第一个参数是应用程序中 store 的唯一 id\r\nexport const useUsers = defineStore(\"users\", {\r\n // other options...\r\n // 推荐使用 完整类型推断的箭头函数\r\n state: () => {\r\n return {\r\n isAdmin: true,\r\n };\r\n },\r\n actions: {\r\n\r\n },\r\n});\r\n\r\n\r\n","import {defineStore} from \"pinia\";\r\nimport {language} from \"@/const/language\";\r\nimport {\r\n curLanguage\r\n} from '@/i18n/config.js'\r\n\r\nimport {\r\n languageDataList\r\n} from '@/i18n/config.js'\r\n\r\n// 第一个参数是应用程序中 store 的唯一 id\r\nexport const useLanguage = defineStore(\"language\", {\r\n state: () => {\r\n return {\r\n curLanguage: {\r\n text: curLanguage.text,\r\n value: curLanguage.value // 获取浏览器的语言\r\n }\r\n };\r\n },\r\n\r\n actions: {\r\n // 获取语言\r\n GetLanguage() {\r\n return this.curLanguage\r\n },\r\n\r\n // 设置语言\r\n SetLanguage(lang) {\r\n for (let i = 0; i < languageDataList.length; i++) {\r\n let tmp = languageDataList[i];\r\n if (lang === tmp.value) {\r\n this.curLanguage.text = tmp.text;\r\n localStorage.setItem(language + '-text', tmp.text)\r\n break;\r\n }\r\n }\r\n\r\n this.curLanguage.value = lang;\r\n localStorage.setItem(language + '-value', lang)\r\n }\r\n },\r\n});\r\n\r\n\r\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-snackbar',{attrs:{\"top\":\"\",\"text\":\"\",\"color\":_vm.color},scopedSlots:_vm._u([{key:\"action\",fn:function({ attrs }){return [(_vm.showClose)?_c('v-btn',_vm._b({attrs:{\"icon\":\"\",\"color\":_vm.color},on:{\"click\":_vm.close}},'v-btn',attrs,false),[_c('v-icon',[_vm._v(\"mdi-close\")])],1):_vm._e()]}}]),model:{value:(_vm.visible),callback:function ($$v) {_vm.visible=$$v},expression:\"visible\"}},[_vm._v(\" \"+_vm._s(_vm.msg)+\" \")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","// 第一个参数是应用程序中 store 的唯一 id\r\nimport {defineStore} from \"pinia/dist/pinia\";\r\n\r\n/**\r\n * @param msg 信息\r\n * @param color snackbar 颜色\r\n * @param visible 是否可见\r\n * @param showClose 关闭按钮\r\n * @param timeout 停留持续时间\r\n */\r\nexport const useSnackbar = defineStore(\"snackbar\", {\r\n state: () => {\r\n return {\r\n msg: '',\r\n color: '',\r\n visible: false,\r\n showClose: true,\r\n timeout: 5000,\r\n };\r\n },\r\n\r\n actions: {\r\n openSnackbar(options) {\r\n let timeout = this.timeout\r\n console.log(\"context, options\", timeout, options)\r\n this._open({\r\n msg: options.msg,\r\n color: options.color\r\n })\r\n\r\n const timer = setTimeout(() => {\r\n clearTimeout(timer);\r\n\r\n this._close();\r\n }, timeout)\r\n },\r\n\r\n close() {\r\n this._close();\r\n },\r\n\r\n _open(options) {\r\n this.visible = true\r\n this.msg = options.msg\r\n this.color = options.color\r\n },\r\n\r\n _close() {\r\n this.visible = false\r\n },\r\n },\r\n});\r\n","<template>\r\n <v-snackbar top text v-model=\"visible\" :color=\"color\">\r\n {{ msg }}\r\n <!-- 关闭按钮 -->\r\n <template v-slot:action=\"{ attrs }\">\r\n <v-btn v-bind=\"attrs\" v-if=\"showClose\" icon @click=\"close\" :color=\"color\"\r\n >\r\n <v-icon>mdi-close</v-icon>\r\n </v-btn>\r\n </template>\r\n </v-snackbar>\r\n</template>\r\n\r\n<script>\r\nimport {useSnackbar} from \"@/stores/modules/snackbar\";\r\n\r\nexport default {\r\n name: \"Snackbar\",\r\n\r\n data() {\r\n return {\r\n msg: \"\"\r\n };\r\n },\r\n\r\n computed: {\r\n visible() {\r\n this.msg = useSnackbar().msg;\r\n return useSnackbar().visible;\r\n },\r\n\r\n showClose() {\r\n return useSnackbar().showClose;\r\n },\r\n\r\n color() {\r\n return useSnackbar().color;\r\n },\r\n },\r\n\r\n methods: {\r\n close() {\r\n useSnackbar().close();\r\n },\r\n },\r\n};\r\n</script>","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Snackbar.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Snackbar.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Snackbar.vue?vue&type=template&id=2100e308\"\nimport script from \"./Snackbar.vue?vue&type=script&lang=js\"\nexport * from \"./Snackbar.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\r\n <v-app>\r\n <!--菜单-->\r\n <v-navigation-drawer\r\n app\r\n\r\n v-model=\"drawer\"\r\n temporary\r\n right\r\n >\r\n <v-list\r\n >\r\n <div class=\"drawer-nav-item\" :class=\"[navDataIndex === index ? 'active' : '']\"\r\n v-for=\"(item, index) in $t('nav.navDataList')\" :key=\"index\" @click=\"handleNavigate(index)\">\r\n {{ item.name }}\r\n </div>\r\n <div class=\"drawer-nav-item\">\r\n <v-list outlined>\r\n <v-list-item outlined\r\n v-for=\"(item, index) in languageDataList\"\r\n :key=\"index\"\r\n link\r\n @click=\"handleChangeLanguage(item.value)\"\r\n >\r\n <v-list-item-content class=\"justify-center\">{{ item.text }}</v-list-item-content>\r\n </v-list-item>\r\n </v-list>\r\n </div>\r\n </v-list>\r\n </v-navigation-drawer>\r\n\r\n <v-app-bar\r\n class=\"app-bar\"\r\n\r\n app\r\n :color=\"appBarBgColor\"\r\n :flat=\"true\"\r\n max-height=\"67\"\r\n >\r\n <v-row>\r\n <!--logo-->\r\n <v-col cols=\"6\" sm=\"6\" md=\"6\" lg=\"3\" xl=\"3\" class=\"pa-0\">\r\n <a href=\"/\">\r\n <v-img\r\n src=\"@/assets/images/logo.png\"\r\n max-width=\"139\"\r\n max-height=\"34\"\r\n ></v-img>\r\n </a>\r\n </v-col>\r\n\r\n <!--链接-->\r\n <v-col cols=\"6\" v-if=\"$vuetify.breakpoint.lg || $vuetify.breakpoint.xl\">\r\n <!-- <v-row class=\"menu d-flex align-center justify-center\">-->\r\n <!-- <v-col cols=\"1\" class=\"li\" :class=\"[navDataIndex === index ? 'active' : '']\" :style=\"{color: appBarLiColor}\"-->\r\n <!-- v-for=\"(item, index) in $t('nav.navDataList')\" :key=\"index\" @click=\"handleNavigate(index)\">-->\r\n <!-- {{ item.name }}-->\r\n <!-- </v-col>-->\r\n <!-- </v-row>-->\r\n <div class=\"menu d-flex align-center justify-center\">\r\n <div class=\"li\" :class=\"[navDataIndex === index ? 'active' : '']\" :style=\"{color: appBarLiColor}\"\r\n v-for=\"(item, index) in $t('nav.navDataList')\" :key=\"index\" @click=\"handleNavigate(index)\">\r\n {{ item.name }}\r\n </div>\r\n </div>\r\n </v-col>\r\n\r\n <!--语言切换按钮-->\r\n <v-col v-if=\"$vuetify.breakpoint.lg || $vuetify.breakpoint.xl\" cols=\"6\" sm=\"6\" md=\"6\" lg=\"3\" xl=\"3\"\r\n class=\"pa-0 d-flex justify-end\">\r\n\r\n <v-menu\r\n open-on-hover\r\n bottom\r\n offset-y\r\n >\r\n <template v-slot:activator=\"{ on, attrs }\">\r\n <div v-bind=\"attrs\" v-on=\"on\" class=\"change_language d-flex align-center\" :style=\"{color: appBarLiColor}\">\r\n <span class=\"iconfont icon-language\"></span>\r\n {{ curLanguage }}\r\n </div>\r\n </template>\r\n\r\n <v-list outlined>\r\n <v-list-item outlined\r\n v-for=\"(item, index) in languageDataList\"\r\n :key=\"index\"\r\n link\r\n @click=\"handleChangeLanguage(item.value)\"\r\n >\r\n <v-list-item-content>{{ item.text }}</v-list-item-content>\r\n </v-list-item>\r\n </v-list>\r\n </v-menu>\r\n\r\n </v-col>\r\n\r\n <!--打开抽屉按钮-->\r\n <v-col cols=\"6\" sm=\"6\" md=\"6\" lg=\"4\" xl=\"4\" class=\"pa-0 d-flex justify-end\" v-else>\r\n <v-app-bar-nav-icon\r\n @click=\"drawer = true\"\r\n >\r\n </v-app-bar-nav-icon>\r\n </v-col>\r\n </v-row>\r\n </v-app-bar>\r\n\r\n <v-main>\r\n <router-view :key=\"$route.fullPath\"></router-view>\r\n\r\n <div class=\"icons\">\r\n <div class=\"btn trans3 d-flex align-center justify-center mapBtn animated fadeInRight\">\r\n <div class=\"iconfont icon-dingwei\"></div>\r\n <div class=\"msgBox trans3 d-flex align-center justify-center\">\r\n {{ $t('home.address') }}\r\n </div>\r\n </div>\r\n <!-- <div class=\"btn trans3 d-flex align-center justify-center telBtn animated fadeInRight del02\">-->\r\n <!-- <div class=\"iconfont icon-call\"></div>-->\r\n <!-- <div class=\"msgBox trans3 d-flex align-center justify-center\">-->\r\n <!-- {{ $t('home.tel') }}-->\r\n <!-- </div>-->\r\n <!-- </div>-->\r\n <div class=\"btn trans3 d-flex align-center justify-center atBtn animated fadeInRight del02\">\r\n <div class=\"iconfont icon-youxiang\"></div>\r\n <div class=\"msgBox trans3 d-flex align-center justify-center\">\r\n {{ $t('home.email') }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </v-main>\r\n\r\n <v-footer\r\n\r\n padless\r\n class=\"v-footer\"\r\n v-if=\"isShowFooter\"\r\n >\r\n <div class=\"footer\">\r\n <v-divider></v-divider>\r\n <div class=\"txt d-flex flex-column justify-center align-center flex-sm-row\">\r\n <a href=\"https://beian.miit.gov.cn/#/Integrated/recordQuery\" target=\"_blank\">\r\n <div class=\"\">皖 ICP 备 2023016662 号 -1</div>\r\n </a>\r\n <v-img src=\"@/assets/images/badge.png\" alt=\"\" :max-width=\"15\" class=\"badge\"></v-img>\r\n<!-- <a href=\"https://www.beian.gov.cn/portal/registerSystemInfo?recordcode=11011302001865\" target=\"_blank\">-->\r\n<!-- <div class=\"\">沪公网安备 31011402003368</div>-->\r\n<!-- </a>-->\r\n </div>\r\n </div>\r\n </v-footer>\r\n\r\n <Snackbar/>\r\n\r\n </v-app>\r\n</template>\r\n\r\n<script>\r\n\r\nimport {\r\n languageDataList\r\n} from '@/i18n/config.js'\r\n\r\nimport {\r\n useLanguage\r\n} from '@/stores'\r\n\r\nimport Snackbar from '@/components/Snackbar/Snackbar.vue'\r\n\r\nexport default {\r\n components: {\r\n Snackbar\r\n },\r\n\r\n data() {\r\n return {\r\n // 背景\r\n appBarBgColor: \"rgba(1,1,1,0)\",\r\n\r\n // 颜色\r\n appBarLiColor: \"#ffffff\",\r\n\r\n // 当前语言\r\n curLanguage: useLanguage().GetLanguage().text,\r\n\r\n // 语言列表\r\n languageDataList: languageDataList,\r\n\r\n // 抽屉\r\n drawer: false,\r\n\r\n // 导航\r\n navDataIndex: -1,\r\n\r\n // 导航列表\r\n navDataList: this.$t('nav.navDataList'),\r\n\r\n // 控制底部显示\r\n isShowFooter: true,\r\n }\r\n },\r\n\r\n mounted() {\r\n // console.log(\"useLanguage\", useLanguage().GetLanguage())\r\n // console.log(\"this.$router\", this.$router.history.current.path);\r\n // console.log(\"this.$t.nav\", this.$t('nav.navDataList'))\r\n\r\n // console.log(\"this.$route.path\", this.$route.path);\r\n\r\n for (let i = 0; i < this.navDataList.length; i++) {\r\n // console.log(\"this.navDataList[i].path\",this.navDataList[i].path);\r\n // console.log(\"this.navDataList[i].path1111111\",this.$route.path.search(this.navDataList[i].path));\r\n // // if (this.navDataList[i].path === this.$route.path) {\r\n if (this.$route.path.search(this.navDataList[i].path) !== -1) {\r\n this.navDataIndex = i;\r\n break;\r\n }\r\n }\r\n\r\n this._setNavBar();\r\n },\r\n\r\n methods: {\r\n // 跳转\r\n handleNavigate(index) {\r\n this.navDataIndex = index;\r\n\r\n // if(\r\n // index === 0 ||\r\n // index === 1 ||\r\n // index === 2 ||\r\n // index === 3 ||\r\n // index === 5\r\n // ) {\r\n // return false;\r\n // }\r\n\r\n this.$router.push(this.navDataList[index].path);\r\n this._setNavBar();\r\n },\r\n\r\n // 切换语言\r\n handleChangeLanguage(lang) {\r\n useLanguage().SetLanguage(lang);\r\n this.curLanguage = useLanguage().GetLanguage().text;\r\n this.$i18n.locale = lang\r\n },\r\n\r\n // 设置导航和底部\r\n _setNavBar() {\r\n // console.log(\"_setNavBar\", this.$router, this.$route.path)\r\n if (this.$route.path === '/' || this.$route.path === '/home') {\r\n this.appBarBgColor = \"rgba(1,1,1,0)\";\r\n this.appBarLiColor = \"#ffffff\";\r\n this.isShowFooter = false;\r\n } else {\r\n this.appBarBgColor = \"#ffffff\";\r\n this.appBarLiColor = \"#000000\";\r\n this.isShowFooter = true;\r\n }\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.drawer-nav-item {\r\n height: 50px;\r\n //background: red;\r\n text-align: center;\r\n line-height: 50px;\r\n cursor: pointer;\r\n font-size: 15px;\r\n\r\n &:hover {\r\n background-color: #f3f3f3;\r\n }\r\n\r\n &.active {\r\n font-weight: bold;\r\n }\r\n\r\n}\r\n\r\n.app-bar {\r\n .row {\r\n margin: 0 !important;\r\n }\r\n\r\n .col {\r\n padding: 0 !important;\r\n }\r\n\r\n .menu {\r\n height: 100%;\r\n\r\n .li {\r\n color: #ffffff;\r\n font-size: 15px;\r\n cursor: pointer;\r\n text-align: center;\r\n margin: 0 20px !important;\r\n white-space: nowrap;\r\n\r\n &.active {\r\n font-weight: bold;\r\n }\r\n\r\n &:hover {\r\n font-weight: bold;\r\n }\r\n\r\n &:first-child {\r\n margin-left: 0 !important;\r\n }\r\n\r\n &:last-child {\r\n margin-right: 0 !important;\r\n }\r\n }\r\n }\r\n\r\n .change_language {\r\n cursor: pointer;\r\n //position: absolute;\r\n //right: 50px;\r\n //top: 25px;\r\n //margin-right: 70px;\r\n font-size: 16px;\r\n //color: #ffffff;\r\n\r\n .iconfont {\r\n font-size: 26px;\r\n display: block;\r\n margin-right: 10px;\r\n }\r\n\r\n //&:hover{color: black;}\r\n }\r\n\r\n}\r\n\r\n.v-footer {\r\n background-color: #ffffff;\r\n\r\n .footer {\r\n width: 100%;\r\n text-align: center;\r\n\r\n .txt {\r\n height: 64px;\r\n padding-top: 22px;\r\n color: #cecfd7;\r\n font-size: 14px;\r\n\r\n //display: flex;\r\n //align-items: center;\r\n //justify-content: center;\r\n\r\n .badge {\r\n margin: 0 10px 0 12px;\r\n }\r\n }\r\n }\r\n}\r\n\r\n// 右下角联系\r\n.icons {\r\n position: fixed;\r\n right: 30px;\r\n bottom: 20px;\r\n z-index: 20;\r\n\r\n .btn {\r\n width: 50px;\r\n height: 50px;\r\n background-color: rgba(255, 255, 255, .7);\r\n border-radius: 100%;\r\n margin-bottom: 15px;\r\n cursor: pointer;\r\n position: relative;\r\n\r\n .iconfont {\r\n font-size: 20px;\r\n }\r\n\r\n .icon-call {\r\n font-weight: bold;\r\n }\r\n\r\n &:hover {\r\n background-color: black;\r\n color: white;\r\n\r\n .msgBox {\r\n opacity: 1;\r\n transform: translate(0px, 0);\r\n right: 70px;\r\n }\r\n }\r\n\r\n .msgBox {\r\n height: 55px;\r\n padding: 0 20px;\r\n position: absolute;\r\n background-color: white;\r\n right: -100vh;\r\n opacity: 0;\r\n transform: translate(10px, 0);\r\n white-space: nowrap;\r\n color: black;\r\n\r\n &::after {\r\n content: \"\";\r\n width: 0;\r\n height: 0;\r\n border-top: 9px solid transparent;\r\n border-bottom: 9px solid transparent;\r\n border-left: 9px solid white;\r\n position: absolute;\r\n right: -8px;\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n\r\n<style>\r\n/*自定义字体*/\r\n@import \"@/assets/font/iconfont.css\";\r\n@import \"@/assets/css/animate.css\";\r\n</style>\r\n\r\n<style lang=\"scss\">\r\n.v-main {\r\n padding: 0 !important;\r\n background-color: #ffffff !important;\r\n}\r\n\r\n// 通用按钮hover & mouseout动画\r\n.animated-eve-btn {\r\n position: relative;\r\n\r\n &:hover {\r\n .txt-out {\r\n transform: translate(0, -20px);\r\n opacity: 0;\r\n }\r\n\r\n .txt-in {\r\n transform: translate(0, 0px);\r\n opacity: 1;\r\n }\r\n }\r\n\r\n .txt-out {\r\n position: absolute;\r\n }\r\n\r\n .txt-in {\r\n opacity: 0;\r\n transform: translate(0, 20px);\r\n font-weight: bold;\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=24d6630a&scoped=true\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=24d6630a&prod&scoped=true&lang=scss\"\nimport style1 from \"./App.vue?vue&type=style&index=1&id=24d6630a&prod&lang=css\"\nimport style2 from \"./App.vue?vue&type=style&index=2&id=24d6630a&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"24d6630a\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport Vuetify from 'vuetify/lib/framework';\r\n\r\nVue.use(Vuetify);\r\n\r\nexport default new Vuetify({\r\n});\r\n","export default {\r\n title: \"天宸能科\",\r\n desc: \"科技本然 非凡天成\",\r\n learnMoreBtn: \"了解更多\",\r\n\r\n address:\"上海市浦东新区银城中路168号上海银行大厦7F\",\r\n tel:\"021-8888 8888\",\r\n email:\"tcenertech@tcenertech.com\",\r\n\r\n moreTit:\"预约咨询\",\r\n morePhone:\"手机号码\",\r\n moreName:\"姓名\",\r\n moreTips:\"专业客服会根据预约情况与您联系,请耐心等待。\",\r\n moreSend:\"点击提交\",\r\n moreSendSucc:\"您的信息已成功提交~\",\r\n}","export default {\r\n form: {\r\n title: \"预约咨询\",\r\n input: {\r\n mobile: {\r\n label: \"手机号码\",\r\n placeholder: \"请输入正确手机号码\",\r\n },\r\n // 验证码\r\n verifyCode: {\r\n label: \"验证码\",\r\n placeholder: \"请输入验证码\",\r\n btn: \"获取验证码\"\r\n }\r\n },\r\n tips: \"专业客服会根据预约情况与您联系,请耐心等待。\",\r\n submit: \"点击提交\"\r\n }\r\n}","export default {\r\n header: {\r\n title: \"你好,我们是天宸能科。\",\r\n desc: \"天宸绿色能源科技(芜湖)有限公司(TC ENERTECH)是上市公司天宸股份(600620)的全资子公司,\",\r\n desc1: \"是一家专业从事新能源光伏板、储能系统、逆变器、EMS等全系储能产品的研发、生产、销售的科技型技术企业。\",\r\n },\r\n\r\n gufen: {\r\n title: \"天宸股份\",\r\n desc: \"天宸股份(股票代码“600620.SH”)最具历史及影响力的上市公司之一,成立于1989年,并与1992年正式上市,公司以“远见决定未来”为信念,以可持续发展为标准,经过20余年的多元化的发展与壮大,成为集房地产、大健康产业、交运物流、光储能源等多业态综合性的上市公司。现今,天宸股份在房地产、商贸、能源等多项领域已建立50余个企业,涉及资产规模达到千亿以上。2023年集团正式进入新能源赛道,将充分整合集团优质资源,力争在短期内成为行业名片,成就集团发展的又一个重要产业。\",\r\n },\r\n\r\n lvse: {\r\n title: \"天宸绿色能源科技(芜湖)有限公司\",\r\n desc: \"天宸能科是天宸股份(股票代码:600620)全资子公司,总部设在上海,是一家致力于为不同场景提供多元化能源解决方案的科技型企业。集方案设计、项目投建、系统搭建、智能运维等全链条综合性能源服务,同时也能提供储能新能源光伏板、储能系统、逆变器、EMS 等全系储能产品的能源科技公司。\",\r\n },\r\n\r\n wenhua: {\r\n title: \"天宸文化\",\r\n pic: [\r\n {\r\n title: \"我们的理念\",\r\n content: \"科技本然 非凡天成\",\r\n },\r\n {\r\n title: \"我们的目标\",\r\n content: \"成为世界领先的能源科技公司\",\r\n },\r\n ]\r\n }\r\n}","export default {\r\n aboutInfo: {\r\n title: \"我们的储能产品\",\r\n desc: \"天宸储能管理团队具有丰富项目管理交付经验\",\r\n desc1: \"具备方案设计、项目投建、系统搭建、智能运维的全链条产业能力\",\r\n },\r\n part3: [\r\n {\r\n title: \"用户储能系统\",\r\n content: \"包含户用系列壁挂式、堆t叠式电池组,户用堆叠式一体机,机架式ups电池组系列等\"\r\n }, {\r\n title: \"工商业储能系统\",\r\n content: \"自研储能电池系统+逆变器系统;容量大、功率密度高、占地面积小;具有多级保护功能,安全性高;高度集成,施工简单,部署灵活,用途广泛。\"\r\n }, {\r\n title: \"集中式储能系统\",\r\n content: \"系统采用模块化设计、集储能电池、BMS、储能转换器、温控、配电、消防、照明子系统于一体;高度模块化,便于运输、安装和维护;独创的BMS和PACK技术提升电芯寿命。\"\r\n },\r\n ],\r\n detail: {\r\n tips: \"单击查看大图\"\r\n }\r\n}","export default {\r\n part1: \"项目投建\",\r\n part2: [\r\n {\r\n title: \"Epc合作\",\r\n content: \"前期共同开发模式,与EPC合作方配合,获取集成订单\",\r\n },\r\n {\r\n title: \"用户侧投运\",\r\n content: \"业主方意向为行业龙头、上市公司、世界500强企业等,收益高而稳定\",\r\n },\r\n {\r\n title: \"电站项目投资\",\r\n content: \"少数权益参与前期指标获取,参投后获取项目开发权、产品集成交付和运维权\",\r\n }\r\n ],\r\n}","export default {\r\n aboutInfo: {\r\n title: \"科技本然 非凡天成\",\r\n desc: \"Tech Makes Extraordinary\",\r\n },\r\n\r\n part1: {\r\n title: \"资讯中心\",\r\n newsType1: \"公司新闻\",\r\n newsType2: \"行业动态\",\r\n },\r\n loadMore: \"了解更多\",\r\n noNoMore: \"没有更多\",\r\n}","export default {\r\n aboutInfo: {\r\n title: \"技术支持\",\r\n desc: \"我们提供专业的技术支持团队,随时为客户解答产品使用和故障排除方面的问题。\",\r\n desc1: \"可以通过电话、电子邮件及在线支持平台联系我们的团队。\",\r\n },\r\n\r\n companyInfo: {\r\n title: \"天宸绿色能源科技(芜湖)有限公司\",\r\n address: \"上海市浦东新区银城中路168号上海银行大厦7F\",\r\n map: \"查看地图\",\r\n wxTip: '微信公众号',\r\n },\r\n}","export default {\r\n yiti:{\r\n title: \"一体化综合解决方案\",\r\n desc: \"我们不断开拓新的应用场景,包括但不限于家庭能源储备、商业能源管理、工业能源存储等领域。同时,根据不同场景的需求,提供更多定制化的产品和解决方案\",\r\n },\r\n\r\n dianwang: {\r\n title: \"24h微电网优势\",\r\n desc: {\r\n item1: {\r\n title: \"可持续性\",\r\n desc: \"减少对传统能源的依赖,降低能源消耗和环境污染\",\r\n },\r\n item2: {\r\n title: \"稳定性\",\r\n desc: \"通过智能能源管理系统,与传统电网协同运行,稳定可靠\",\r\n },\r\n item3: {\r\n title: \"高效性\",\r\n desc: \"降低能源浪费和电能损耗,实现能源最优化配置\",\r\n },\r\n item4: {\r\n title: \"弹性和灵活性\",\r\n desc: \"根据用户需求和能源供给进行调整优化,适应不同工况和环境要求\",\r\n },\r\n }\r\n },\r\n}","export default {\r\n navDataList: [\r\n {\r\n id: 1,\r\n name: '关于我们',\r\n path: '/about'\r\n }, {\r\n id: 2,\r\n name: '储能产品',\r\n path: '/product'\r\n }, {\r\n id: 3,\r\n name: '解决方案',\r\n path: '/solution'\r\n }, {\r\n id: 4,\r\n name: '项目投建',\r\n path: '/project'\r\n }, {\r\n id: 5,\r\n name: '资讯中心',\r\n path: '/news'\r\n }, {\r\n id: 6,\r\n name: '联系我们',\r\n path: '/contact'\r\n }, {\r\n id: 7,\r\n name: '加入我们',\r\n path: '/join'\r\n }\r\n ]\r\n}","export default {\r\n listPart: {\r\n left: {\r\n title: \"加入我们\"\r\n },\r\n right: {\r\n search: {\r\n placeholder: '搜索职位',\r\n searchBtn: '搜索'\r\n },\r\n list: {\r\n money: \"薪资\"\r\n }\r\n }\r\n },\r\n\r\n detailPart: {\r\n money: \"薪资\",\r\n descTitle: \"职位描述\",\r\n detailBtn: {\r\n text: \"简历投递\",\r\n tips: \"单击复制投递地址\"\r\n }\r\n }\r\n}","import home from './home'\r\nimport book from './book'\r\nimport about from './about'\r\nimport product from './product'\r\nimport project from './project'\r\nimport news from './news'\r\nimport contact from './contact'\r\nimport solution from './solution'\r\nimport nav from './nav'\r\nimport join from './join'\r\n\r\nexport default {\r\n home: home,\r\n book: book,\r\n about: about,\r\n product: product,\r\n project: project,\r\n news: news,\r\n contact: contact,\r\n solution: solution,\r\n nav: nav,\r\n join: join,\r\n}","export default {\r\n title: \"TC ENERTECH\",\r\n desc: \"Tech Makes Extraordinary\",\r\n learnMoreBtn: \"Learn More\",\r\n\r\n address:\"7F, Shanghai Bank Tower, 168 Yincheng Middle Road, Pudong New Area, Shanghai\",\r\n tel:\"021-8888 8888\",\r\n email:\"tcenertech@tcenertech.com\",\r\n\r\n moreTit:\"consult\",\r\n morePhone:\"Phone\",\r\n moreName:\"Name\",\r\n moreTips:\"Professional customer service will contact you, please be patient.\",\r\n moreSend:\"Recognize\",\r\n moreSendSucc:\"Your information has been successfully submitted.\",\r\n}","export default {\r\n form: {\r\n title: \"consult\",\r\n input: {\r\n mobile: {\r\n label: \"Phone\",\r\n placeholder: \"Please enter the correct phone number\",\r\n },\r\n // 验证码\r\n verifyCode: {\r\n label: \"Captcha\",\r\n placeholder: \"SMS authentication code\",\r\n btn: \"send\"\r\n }\r\n },\r\n tips: \"Professional customer service will contact you, please be patient.\",\r\n submit: \"Recognize\"\r\n }\r\n}","export default {\r\n header: {\r\n title: \"Hello, we are TC ENERTECH.\",\r\n desc: \"Tianchen Green Energy Technology (Wuhu) Co., Ltd. 「TC ENERTECH」 is a wholly-owned subsidiary of the listed company Tianchen Co., Ltd. (600620),\",\r\n desc1: \"specializing in energy storage battery products, with global leading technological strength and rich industry experience. Our products are widely used in energy storage systems, renewable energy, electric vehicles, and other fields, making us a leader in the energy storage battery industry.\"\r\n },\r\n\r\n gufen: {\r\n title: \"Tianchen Co., Ltd.\",\r\n desc: \"Tianchen Co., Ltd. (stock code “600620.SH”) is one of the most historic and influential listed companies, established in 1989 and officially listed in 1992. With the belief that 'Vision Determines the Future' and the standard of sustainable development, the company has grown and diversified over the past 20 years to become a comprehensive listed company encompassing real estate, big health industry, transportation and logistics, and optical storage energy, among other sectors. Today, Tianchen Co., Ltd. has established over 50 enterprises in various fields such as real estate, commerce, and energy, with asset scale reaching over tens of billions. In 2023, the group officially entered the new energy sector, aiming to fully integrate the group's quality resources and strive to become an industry benchmark in the short term, creating another important industry for the group's development.\"\r\n },\r\n\r\n lvse: {\r\n title: \"Tianchen Green Energy Technology (Wuhu) Co., Ltd.\",\r\n desc: \"Tianchen Green Energy Technology (Wuhu) Co., Ltd. is a wholly-owned subsidiary of Tianchen Co., Ltd. (stock code: 600620), headquartered in Shanghai. It is a technology company dedicated to providing diversified energy solutions for different scenarios. The company offers comprehensive energy services across the entire chain, including solution design, project investment and construction, system integration, and intelligent operation and maintenance. It also provides a full range of energy storage products such as energy storage photovoltaic panels, energy storage systems, inverters, and EMS.\"\r\n },\r\n\r\n wenhua: {\r\n title: \"Tianchen Culture\",\r\n pic: [\r\n {\r\n title: \"Our Philosophy\",\r\n content: \"Inherent in Technology, Extraordinary by Nature\",\r\n },\r\n {\r\n title: \"Our Goal\",\r\n content: \"To become the world's leading energy technology company\",\r\n },\r\n ]\r\n },\r\n}\r\n","export default {\r\n aboutInfo: {\r\n title: \"Our energy storage products\",\r\n desc: \"The Tianchen Energy Storage Management Team has rich experience in project management and delivery\",\r\n desc1: \"and has full chain industrial capabilities in scheme design, project investment and construction, system construction, and intelligent operation and maintenance\",\r\n },\r\n part3: [\r\n {\r\n title: \"User energy storage system\",\r\n content: \"Including household series wall mounted and stacked battery packs, household stacked all-in-one machine, rack mounted UPS battery pack series, etc\"\r\n }, {\r\n title: \"Industrial and commercial energy storage system\",\r\n content: \"Self developed energy storage battery system+inverter system; Large capacity, high power density, and small footprint; Equipped with multi-level protection function and high security; Highly integrated, easy to construct, flexible to deploy, and widely used.\"\r\n }, {\r\n title: \"Centralized energy storage system\",\r\n content: \"The system adopts a modular design, integrating energy storage batteries, BMS, energy storage converters, temperature control, power distribution, fire protection, and lighting subsystems into one; Highly modular, easy to transport, install, and maintain; Unique BMS and PACK technologies enhance battery life. \"\r\n },\r\n ],\r\n detail: {\r\n tips: \"Click to view larger image\"\r\n }\r\n}","export default {\r\n part1: \"Project investment and construction\",\r\n part2: [\r\n {\r\n title: \"Epc Collaboration\",\r\n content: \"Joint development model in the early stage, cooperating with EPC partners to obtain integrated orders\",\r\n },\r\n {\r\n title: \"User side commissioning\",\r\n content: \"The owner intends to be an industry leader, listed company, Fortune 500 company, etc., with high and stable returns\",\r\n },\r\n {\r\n title: \"Investment in power plant projects\",\r\n content: \"Minority interests participate in the acquisition of early indicators, and after participating in the investment, obtain project development rights, product integration delivery, and operation and maintenance rights\",\r\n }\r\n ],\r\n}","export default {\r\n aboutInfo: {\r\n title: \"Technology is naturally extraordinary and natural\",\r\n desc: \"Tech Makes Extraordinary\",\r\n },\r\n\r\n part1: {\r\n title: \"NEWS\",\r\n newsType1: \"Company News\",\r\n newsType2: \"Industry Dynamics\",\r\n },\r\n loadMore: \"Learn more\",\r\n noNoMore: \"No more\",\r\n}","export default {\r\n aboutInfo: {\r\n title: \"technical support\",\r\n desc: \"We provide a professional technical support team to answer customers' questions about product use and troubleshooting at any time.\",\r\n desc1: \"You can contact our team through phone, email, and online support platforms.\",\r\n },\r\n\r\n companyInfo: {\r\n title: \"TC GREEN ENERTECH Technology (Wuhu) Co., Ltd\",\r\n address: \"7F, Shanghai Bank Tower, 168 Yincheng Middle Road, Pudong New Area, Shanghai\",\r\n map: \"Map\",\r\n wxTip: 'WeChat official account',\r\n },\r\n}","export default {\r\n yiti: {\r\n title: \"Integrated Energy Solution for Optical Storage and Charging\",\r\n desc: \"We continuously explore new application scenarios, including but not limited to home energy reserves, commercial energy management, and industrial energy storage. At the same time, we provide more customized products and solutions based on the needs of different scenarios.\",\r\n },\r\n\r\n dianwang: {\r\n title: \"Advantages of a 24-Hour Microgrid\",\r\n desc: {\r\n item1: {\r\n title: \"Sustainability\",\r\n desc: \"Reduce dependence on traditional energy, decrease energy consumption and environmental pollution.\",\r\n },\r\n item2: {\r\n title: \"Stability\",\r\n desc: \"Operate stably and reliably in coordination with traditional power grids through intelligent energy management systems.\",\r\n },\r\n item3: {\r\n title: \"Efficiency\",\r\n desc: \"Reduce energy waste and power loss, achieving optimal energy allocation.\",\r\n },\r\n item4: {\r\n title: \"Flexibility and Adaptability\",\r\n desc: \"Adjust and optimize based on user needs and energy supply, adapting to different working conditions and environmental requirements.\",\r\n },\r\n }\r\n },\r\n}\r\n","export default {\r\n navDataList: [\r\n {\r\n id: 1,\r\n name: 'About us',\r\n path: '/about'\r\n }, {\r\n id: 2,\r\n name: 'Energy storage',\r\n path: '/product'\r\n }, {\r\n id: 3,\r\n name: 'TC service',\r\n path: '/solution'\r\n }, {\r\n id: 4,\r\n name: 'Project invest',\r\n path: '/project'\r\n }, {\r\n id: 5,\r\n name: 'TC news',\r\n path: '/news'\r\n }, {\r\n id: 6,\r\n name: 'Contact us',\r\n path: '/contact'\r\n }, {\r\n id: 7,\r\n name: 'Join us',\r\n path: '/join'\r\n }\r\n ]\r\n}","export default {\r\n listPart: {\r\n left: {\r\n title: \"Join us\"\r\n },\r\n right: {\r\n search: {\r\n placeholder: 'Search for position',\r\n searchBtn: 'Search'\r\n },\r\n list: {\r\n money: \"salary\"\r\n }\r\n }\r\n },\r\n\r\n detailPart: {\r\n money: \"salary\",\r\n descTitle: \"Description\",\r\n detailBtn: {\r\n text: \"Resume submission\",\r\n tips: \"Click to copy the delivery address\"\r\n }\r\n }\r\n}","import home from './home'\r\nimport book from './book'\r\nimport about from './about'\r\nimport product from './product'\r\nimport project from './project'\r\nimport news from './news'\r\nimport contact from './contact'\r\nimport solution from './solution'\r\nimport nav from './nav'\r\nimport join from './join'\r\n\r\nexport default {\r\n home: home,\r\n book: book,\r\n about: about,\r\n product: product,\r\n project: project,\r\n news: news,\r\n contact: contact,\r\n solution: solution,\r\n nav: nav,\r\n join: join,\r\n}","import Vue from 'vue'\r\nimport Vuei18n from 'vue-i18n'\r\n\r\nimport zh from './zh/index.js'\r\nimport en from './en/index.js'\r\n\r\nimport {\r\n curLanguage\r\n} from '@/i18n/config.js'\r\n\r\nVue.use(Vuei18n)\r\n\r\nconst i18n = new Vuei18n({\r\n locale: curLanguage.value,\r\n messages: { // 文案\r\n zh, // 文案的中文版\r\n en // 文案的英文版\r\n }\r\n})\r\nexport default i18n\r\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"my-container\"},[(_vm.isStart)?_c('div',{staticClass:\"homePage\"},[_c('div',{staticClass:\"slogan d-flex justify-center\"},[_c('div',{staticClass:\"content d-flex flex-column align-center\"},[_c('div',{staticClass:\"animated fadeInUp50 dur1-2\",style:({letterSpacing: _vm.languageStore.curLanguage.text=='English' ? '0px !important' : '31px !important'}),attrs:{\"id\":\"title\"}},[_vm._v(\" \"+_vm._s(_vm.$t('home.title'))+\" \")]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isShowTitle),expression:\"isShowTitle\"}],class:{en:_vm.languageStore.curLanguage.text=='English'},attrs:{\"id\":\"desc\"}},[_vm._v(_vm._s(_vm.$t('home.desc'))+\" \")]),_c('div',{staticClass:\"more animated fadeInUp50 dur1-2 del04\"},[_c('v-btn',{staticClass:\"btn animated-eve-btn trans3\",attrs:{\"rounded\":\"\",\"color\":\"#ffffff\",\"width\":\"177\",\"height\":\"42\",\"text\":true,\"elevation\":\"0\"},on:{\"click\":function($event){return _vm.handleMore()}}},[_c('span',{staticClass:\"txt-out trans7\"},[_vm._v(_vm._s(_vm.$t('home.learnMoreBtn')))]),_vm._l((_vm.$t('home.learnMoreBtn')),function(item,index){return _c('span',{key:index,staticClass:\"txt-in trans3\",class:['trans-del'+index]},[_vm._v(_vm._s(item))])})],2)],1)])]),_c('div',{staticClass:\"shadow animated fadeIn dur2\"}),_c('div',{staticClass:\"bgBtns d-flex align-center justify-center animated fadeIn del1\"},_vm._l((_vm.homeBgList.length),function(item,index){return _c('div',{key:index,staticClass:\"item d-flex align-center justify-center\",class:{active:_vm.bgIndex==index},on:{\"click\":function($event){return _vm.handlerChangeBgImg(index, false)}}})}),0)]):_vm._e(),_c('div',{staticClass:\"homeBg\"},_vm._l((_vm.homeBgList),function(item,i){return _c('div',{key:i,staticClass:\"item\"},[_c('img',{attrs:{\"src\":item.src}})])}),0),(_vm.morePageVisible)?_c('div',{staticClass:\"morePage\"},[_c('div',{staticClass:\"box d-flex align-center justify-center\",style:({width: _vm.$vuetify.breakpoint.smAndDown ? '90% !important' : ''})},[_c('div',{staticClass:\"logo animated fadeIn del09 dur1-2\"},[_c('v-img',{attrs:{\"max-width\":180,\"src\":require(\"@/assets/images/logo.png\")}})],1),_c('div',{staticClass:\"intro\"},[_c('div',{staticClass:\"tit animated fadeInUp50 del05\"},[_vm._v(_vm._s(_vm.$t('home.moreTit')))]),_c('div',{staticClass:\"ipt animated fadeInUp50 del07\"},[_c('v-form',{ref:\"form\",staticClass:\"form d-flex flex-column\",attrs:{\"lazy-validation\":\"\"},model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('home.morePhone'),\"rules\":_vm.form.mobileRules},model:{value:(_vm.form.mobile),callback:function ($$v) {_vm.$set(_vm.form, \"mobile\", $$v)},expression:\"form.mobile\"}})],1)],1),_c('div',{staticClass:\"tips animated fadeInUp50 del09\"},[_vm._v(_vm._s(_vm.$t('home.moreTips')))]),_c('v-btn',{staticClass:\"submit animated fadeInUp50 del1-1 animated-eve-btn\",attrs:{\"disabled\":!_vm.valid},on:{\"click\":_vm.handleSubmit}},[_c('span',{staticClass:\"txt-out trans7\"},[_vm._v(_vm._s(_vm.$t('home.moreSend')))]),_vm._l((_vm.$t('home.moreSend')),function(item,index){return _c('span',{key:index,staticClass:\"txt-in trans3\",class:['trans-del'+index]},[_vm._v(_vm._s(item))])})],2)],1)]),_c('div',{staticClass:\"hit\",on:{\"click\":_vm.onCloseMore}})]):_vm._e(),_c('v-snackbar',{attrs:{\"multi-line\":_vm.multiLine,\"top\":true},scopedSlots:_vm._u([{key:\"action\",fn:function({ attrs }){return [_c('v-btn',_vm._b({attrs:{\"color\":\"red\",\"text\":\"\"},on:{\"click\":function($event){_vm.snackbar = false}}},'v-btn',attrs,false),[_c('v-icon',[_vm._v(\"mdi-close\")])],1)]}}]),model:{value:(_vm.snackbar),callback:function ($$v) {_vm.snackbar=$$v},expression:\"snackbar\"}},[_vm._v(\" \"+_vm._s(_vm.$t('home.moreSendSucc'))+\" \")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\r\n // 本地\r\n // apiUrl: \"http://192.168.1.41:8000/api/newenergywebsite/\",\r\n\r\n // 测试\r\n // apiUrl: \"http://energy-pc-dev-api.00ok3.cn/api/newenergywebsite/\",\r\n\r\n // 正式\r\n apiUrl: \"https://www.tcenertech.com/api/newenergywebsite/\",\r\n}","import axios from 'axios' // 使用前要先安装依赖:npm install axios\r\nimport config from \"@/config.js\";\r\nimport {useSnackbar} from \"@/stores/modules/snackbar\";\r\n\r\n// 创建axios实例\r\nconst service = axios.create({\r\n // 这里可以放一下公用属性等。\r\n baseURL: config.apiUrl, // 用于配置请求接口公用部分,请求时会自动拼接在你定义的url前面。\r\n withCredentials: false, // 跨域请求时是否需要访问凭证\r\n timeout: 60 * 1000, // 请求超时时间\r\n // 请求头\r\n headers: {}\r\n})\r\n\r\n// 请求拦截器\r\nservice.interceptors.request.use(config => {\r\n // 这里可以进行请求加密等操作。如添加token,cookie,修改数据传输格式等。\r\n config.headers['Content-type'] = 'application/json';\r\n return config;\r\n}, (error) => {\r\n // 对请求错误做些什么\r\n console.log(\"request-error\", error);\r\n return Promise.reject(error);\r\n})\r\n\r\nservice.interceptors.response.use(response => {\r\n // 对响应数据做点什么\r\n // console.log(\"response\", response);\r\n if(response.status === 200) {\r\n //对数据进行处理,如:脱壳\r\n let {data} = response\r\n return data\r\n } else {\r\n return Promise.reject(error);\r\n }\r\n}, error => {\r\n useSnackbar().openSnackbar({\r\n msg: error.message,\r\n color: 'error'\r\n });\r\n // 对响应错误做点什么\r\n console.log(\"response-error\", error);\r\n return Promise.reject(error);\r\n})\r\n\r\nexport default service;\r\n","import request from './request';\r\n\r\n const http = {\r\n get(url, params, headers) {\r\n const config = {\r\n method: 'GET',\r\n url: url,\r\n params: params ? params : {},\r\n headers: headers ? headers : {}\r\n }\r\n return request(config);\r\n },\r\n post(url, data, headers) {\r\n const config = {\r\n method: 'POST',\r\n url: url,\r\n data: data ? data : {},\r\n headers: headers ? headers : {}\r\n }\r\n return request(config);\r\n }\r\n}\r\n\r\nexport default http\r\n","// import Vue from \"vue\";\r\n// import config from \"@/config.js\";\r\nimport http from \"@/util/http\";\r\n\r\nconst api = {\r\n add: \"book/add\",\r\n}\r\n\r\n// 获取新闻列表\r\nfunction BookAdd(param) {\r\n const params = Object.assign({}, param)\r\n return http.post(api.add, params)\r\n // return new Promise((resolve, reject) => {\r\n // return Vue.axios.post(config.apiUrl + api.add, params).then((response) => {\r\n // resolve(response.data)\r\n // }).catch(error => {\r\n // reject(error)\r\n // })\r\n // })\r\n}\r\n\r\nexport {\r\n BookAdd,\r\n}","\"use strict\";\r\n\r\n// // coded by: Ayhanexe with <3\r\n// // I do not care about money\r\n// // This code is fully free\r\n// // use it as you want ;)\r\nexport class SplitText {\r\n #options = {\r\n charClass: \"aki__char\",\r\n wordClass: \"aki__word\",\r\n lineClass: \"aki__line\",\r\n globalClass: \"aki_wrapper\",\r\n emptySpaceName: \"__AKI__EMPTY__SPACE__\",\r\n };\r\n\r\n #rawChars = [];\r\n chars = [];\r\n #rawWords = [];\r\n words = [];\r\n lines = [];\r\n\r\n constructor(elementOrSelector) {\r\n this.init(elementOrSelector);\r\n\r\n this.target = null;\r\n this.textContent = null;\r\n }\r\n\r\n #isElement(obj) {\r\n try {\r\n return obj instanceof HTMLElement;\r\n } catch (e) {\r\n return (\r\n typeof obj === \"object\" &&\r\n obj.nodeType === 1 &&\r\n typeof obj.style === \"object\" &&\r\n typeof obj.ownerDocument === \"object\"\r\n );\r\n }\r\n }\r\n\r\n #createElement(tagname, content = \"\", htmlAttributes = {}, ...cssClass) {\r\n const __element__ = document.createElement(tagname);\r\n __element__.classList.add(...cssClass);\r\n __element__.innerHTML = content;\r\n\r\n for (const [key, value] of Object.entries(htmlAttributes)) {\r\n __element__.setAttribute(key, value);\r\n }\r\n\r\n return __element__;\r\n }\r\n\r\n #splitChars() {\r\n const textChars = `${this.textContent}`.split(\"\");\r\n\r\n textChars.forEach((char) => {\r\n const charElement = this.#createElement(\r\n \"div\",\r\n `${char}`,\r\n {\r\n style: \"position:relative; display:inline-block;\",\r\n },\r\n `${this.#options.globalClass}`,\r\n `${this.#options.charClass}`\r\n );\r\n\r\n this.#rawChars.push(char === \" \" ? \" \" : charElement);\r\n this.chars.push(charElement);\r\n });\r\n this.#rawChars.push(\" \");\r\n }\r\n\r\n #splitWords() {\r\n let startIndex = 0;\r\n this.#rawChars.forEach((rawChar, index) => {\r\n if (rawChar === \" \") {\r\n const wordArray = this.#rawChars\r\n .slice(startIndex, index)\r\n .filter((word) => word !== \" \");\r\n\r\n const wordDiv = this.#createElement(\r\n \"div\",\r\n \"\",\r\n {\r\n style: \"position:relative; display:inline-block;\",\r\n },\r\n `${this.#options.globalClass}`,\r\n `${this.#options.wordClass}`\r\n );\r\n\r\n wordArray.forEach((word) => {\r\n wordDiv.append(word);\r\n });\r\n\r\n this.words.push(wordDiv);\r\n this.#rawWords.push(wordDiv, \" \");\r\n startIndex = index;\r\n }\r\n });\r\n }\r\n\r\n #splitLines() {\r\n let startIndex = 0;\r\n let lineArrays = [];\r\n\r\n const appendToLineArray = () => {\r\n\r\n lineArrays.forEach((lineArray) => {\r\n const lineDiv = this.#createElement(\r\n \"div\",\r\n \"\",\r\n {\r\n style: \"position:relative; display:inline-block\",\r\n },\r\n `${this.#options.globalClass}`,\r\n `${this.#options.lineClass}`\r\n );\r\n \r\n lineArray.forEach(lineWord => {\r\n lineDiv.append(lineWord)\r\n lineDiv.append(\" \")\r\n })\r\n this.lines.push(lineDiv);\r\n this.target.append(lineDiv);\r\n });\r\n };\r\n\r\n this.words.reduce((oldOffsetTop, word, index) => {\r\n const currentOffsetTop = word.offsetTop;\r\n \r\n if (\r\n (oldOffsetTop !== currentOffsetTop && oldOffsetTop !== null) ||\r\n index === this.words.length - 1\r\n ) {\r\n const computedIndex =\r\n index === this.words.length - 1 ? index + 1 : index;\r\n const lineArray = this.words.slice(startIndex, computedIndex);\r\n lineArrays.push(lineArray);\r\n startIndex = index;\r\n }\r\n\r\n return currentOffsetTop;\r\n }, null);\r\n \r\n appendToLineArray();\r\n }\r\n\r\n #combineAll() {\r\n this.words.forEach((word) => {\r\n this.target.append(word);\r\n this.target.append(\" \");\r\n });\r\n this.#splitLines();\r\n }\r\n\r\n #splitStart() {\r\n this.#splitChars();\r\n this.#splitWords();\r\n this.#combineAll();\r\n }\r\n\r\n #getTextContent() {\r\n this.textContent = this.target.textContent;\r\n }\r\n\r\n #clearContent(element) {\r\n element.innerHTML = \"\";\r\n }\r\n\r\n #logError(message) {\r\n console.error(`${message}`, \"color:red\", \"color:inherit\");\r\n }\r\n\r\n #logAndThrowError(message) {\r\n if (message.includes(\"%c\")) {\r\n console.error(`${message}`, \"color:red\", \"color:inherit\");\r\n } else {\r\n console.error(`${message}`);\r\n }\r\n throw \"SplitTextException! ⬆️\";\r\n }\r\n\r\n init(elementOrSelector) {\r\n if (this.#isElement(elementOrSelector)) {\r\n this.target = elementOrSelector;\r\n this.#getTextContent();\r\n } else {\r\n if (elementOrSelector !== \"\") {\r\n const element = document.querySelector(`${elementOrSelector}`);\r\n if (element) {\r\n this.target = element;\r\n this.#getTextContent();\r\n // window.addEventListener(\"resize\", () => resizeFunction(element))\r\n } else {\r\n this.#logAndThrowError(\r\n `can't found %c${elementOrSelector}%c in DOM tree!`\r\n );\r\n }\r\n } else {\r\n this.#logAndThrowError(\r\n `selector is empty! %cplease give a valid%c selector!`\r\n );\r\n }\r\n }\r\n\r\n this.#clearContent(this.target);\r\n this.#splitStart();\r\n }\r\n}\r\n","import $ from \"jquery\";\r\nwindow.$ = $\r\nwindow.jQuery = $\r\nexport default $","<template>\r\n <div class=\"my-container\">\r\n <div class=\"homePage\" v-if=\"isStart\">\r\n\r\n <!-- 广告语 -->\r\n <div class=\"slogan d-flex justify-center\">\r\n <div class=\"content d-flex flex-column align-center\">\r\n <!-- <div class=\"logo animated fadeInUp50 dur1-2\">-->\r\n <!-- <v-img-->\r\n <!-- :max-width=\"170\"-->\r\n <!-- src=\"@/assets/images/home/logo.png\"-->\r\n <!-- ></v-img>-->\r\n <!-- </div>-->\r\n <div id=\"title\" class=\"animated fadeInUp50 dur1-2\"\r\n :style=\"{letterSpacing: languageStore.curLanguage.text=='English' ? '0px !important' : '31px !important'}\">\r\n {{ $t('home.title') }}\r\n </div>\r\n <div id=\"desc\" v-show=\"isShowTitle\" :class=\"{en:languageStore.curLanguage.text=='English'}\">{{\r\n $t('home.desc')\r\n }}\r\n </div>\r\n\r\n <div class=\"more animated fadeInUp50 dur1-2 del04\">\r\n <v-btn\r\n class=\"btn animated-eve-btn trans3\"\r\n rounded\r\n color=\"#ffffff\"\r\n width=\"177\"\r\n height=\"42\"\r\n :text=\"true\"\r\n elevation=\"0\"\r\n\r\n @click=\"handleMore()\"\r\n >\r\n <span class=\"txt-out trans7\">{{ $t('home.learnMoreBtn') }}</span>\r\n <span class=\"txt-in trans3\" :class=\"['trans-del'+index]\" v-for=\"(item,index) in $t('home.learnMoreBtn')\"\r\n :key=\"index\">{{ item }}</span>\r\n </v-btn>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"shadow animated fadeIn dur2\"></div>\r\n <!-- 背景切换控制按钮 -->\r\n <div class=\"bgBtns d-flex align-center justify-center animated fadeIn del1\">\r\n <div class=\"item d-flex align-center justify-center\" v-for=\"(item,index) in homeBgList.length\" :key=\"index\"\r\n :class=\"{active:bgIndex==index}\" @click=\"handlerChangeBgImg(index, false)\"></div>\r\n </div>\r\n </div>\r\n <div class=\"homeBg\" >\r\n <div class=\"item\" v-for=\"(item,i) in homeBgList\" :key=\"i\">\r\n <img :src=\"item.src\"/>\r\n </div>\r\n </div>\r\n <!-- 更多Page -->\r\n <div class=\"morePage\" v-if=\"morePageVisible\">\r\n <div class=\"box d-flex align-center justify-center\" :style=\"{width: $vuetify.breakpoint.smAndDown ? '90% !important' : ''}\">\r\n <div class=\"logo animated fadeIn del09 dur1-2\">\r\n <v-img\r\n :max-width=\"180\"\r\n src=\"@/assets/images/logo.png\"\r\n ></v-img>\r\n </div>\r\n <div class=\"intro\">\r\n <div class=\"tit animated fadeInUp50 del05\">{{ $t('home.moreTit') }}</div>\r\n <div class=\"ipt animated fadeInUp50 del07\">\r\n <v-form\r\n class=\"form d-flex flex-column\"\r\n ref=\"form\"\r\n v-model=\"valid\"\r\n lazy-validation\r\n >\r\n <v-text-field :label=\"$t('home.morePhone')\" v-model=\"form.mobile\" :rules=\"form.mobileRules\">\r\n </v-text-field>\r\n </v-form>\r\n </div>\r\n <div class=\"tips animated fadeInUp50 del09\">{{ $t('home.moreTips') }}</div>\r\n <!-- 提交-->\r\n <v-btn class=\"submit animated fadeInUp50 del1-1 animated-eve-btn\" :disabled=\"!valid\" @click=\"handleSubmit\">\r\n <span class=\"txt-out trans7\">{{ $t('home.moreSend') }}</span>\r\n <span class=\"txt-in trans3\" :class=\"['trans-del'+index]\" v-for=\"(item,index) in $t('home.moreSend')\"\r\n :key=\"index\">{{ item }}</span>\r\n </v-btn>\r\n </div>\r\n </div>\r\n <div class=\"hit\" @click=\"onCloseMore\"></div>\r\n </div>\r\n <!-- 预约提示-->\r\n <v-snackbar\r\n v-model=\"snackbar\"\r\n :multi-line=\"multiLine\"\r\n :top=\"true\"\r\n >\r\n {{ $t('home.moreSendSucc') }}\r\n\r\n <template v-slot:action=\"{ attrs }\">\r\n <v-btn\r\n color=\"red\"\r\n text\r\n v-bind=\"attrs\"\r\n @click=\"snackbar = false\"\r\n >\r\n <v-icon>mdi-close</v-icon>\r\n </v-btn>\r\n </template>\r\n </v-snackbar>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport {BookAdd} from \"@/api/book\";\r\n\r\nimport {gsap} from 'gsap';\r\nimport {CSSPlugin} from 'gsap/CSSPlugin'\r\nimport {SplitText} from '@/plugins/SplitText'\r\nimport {useLanguage} from '@/stores'\r\nimport $ from \"@/plugins/jqueryVender.js\"\r\n\r\nlet myTimer = null;\r\n// 注册插件\r\ngsap.registerPlugin(SplitText);\r\ngsap.registerPlugin(CSSPlugin);\r\nexport default {\r\n // eslint-disable-next-line vue/multi-word-component-names\r\n name: 'Home',\r\n\r\n props: {},\r\n\r\n computed: {\r\n languageStore() {\r\n return useLanguage();\r\n },\r\n },\r\n\r\n watch: {\r\n switchingNum(newVal, oldVal) {\r\n console.log('newVal', newVal, 'oldVal', oldVal);\r\n if (newVal >= 2) {\r\n this.switchingNum = 0;\r\n this.isSwitching = false;\r\n }\r\n }\r\n },\r\n\r\n data() {\r\n return {\r\n isStart: false,\r\n isShowTitle: false,\r\n multiLine: true,\r\n\r\n // 提示\r\n snackbar: false,\r\n\r\n homeBgList: [\r\n {src: require(\"@/assets/images/home/20240327/1.jpg\")},\r\n {src: require(\"@/assets/images/home/20240327/2.jpg\")},\r\n {src: require(\"@/assets/images/home/20240327/3.jpg\")},\r\n {src: require(\"@/assets/images/home/20240327/4.jpg\")},\r\n {src: require(\"@/assets/images/home/20240327/5.jpg\")},\r\n {src: require(\"@/assets/images/home/20240327/6.jpg\")},\r\n ],\r\n\r\n valid: true,\r\n form: {\r\n mobile: '',\r\n mobileRules: [\r\n v => /^1[3-9]\\d{9}$/.test(v) || this.$t('book.form.input.mobile.placeholder')\r\n ],\r\n },\r\n\r\n // 当前背景 index\r\n bgIndex: 0,\r\n // 上一张背景 index\r\n preBgIndex: 0,\r\n // 切换中(控制按钮点击)\r\n isSwitching: false,\r\n // 切换次数(控制按钮点击)\r\n switchingNum: 0,\r\n\r\n model: 0,\r\n carouselDataList: [],\r\n\r\n morePageVisible: false,\r\n }\r\n },\r\n\r\n created() {\r\n // this.isMobile = this.$vuetify.breakpoint.mobile\r\n },\r\n\r\n mounted() {\r\n this.lang = this.$i18n.locale;\r\n console.log('this.lang:', this.lang)\r\n\r\n\r\n useLanguage().$subscribe((mutation, state) => {\r\n const element = document.getElementById('desc');\r\n while (element.firstChild) {\r\n element.removeChild(element.firstChild);\r\n }\r\n element.innerHTML = this.$t('home.desc')\r\n this.addAnimate();\r\n console.log(\"# watch-----------languageStore:\", this.languageStore.lang, mutation, state.lang);\r\n })\r\n // 背景图处理\r\n let $item = $(\".homeBg .item\");\r\n $item.hide();\r\n $item.eq(0).show();\r\n this.autoPlayBg();\r\n\r\n //$item.eq(0).css({\"z-index\":2});\r\n gsap.set($item.eq(0), {\r\n opacity: 0,\r\n scaleX: 1.2,\r\n scaleY: 1.2,\r\n // \"-webkit-filter\": \"brightness(15)\",\r\n // \"filter\": \"brightness(5)\"\r\n })\r\n gsap.to($item.eq(0), {\r\n duration: 2,\r\n opacity: 1,\r\n // \"-webkit-filter\": \"brightness(1)\",\r\n // \"filter\": \"brightness(1)\",\r\n x: 0\r\n })\r\n\r\n gsap.to($item.eq(0), {\r\n duration: 7, scaleX: 1, scaleY: 1,\r\n })\r\n\r\n const timer1 = setTimeout(() => {\r\n clearTimeout(timer1);\r\n\r\n this.isStart = true;\r\n const timer2 = setTimeout(() => {\r\n clearTimeout(timer2);\r\n\r\n this.addAnimate();\r\n this.isShowTitle = true;\r\n }, 100)\r\n }, 1000)\r\n //languageStore.$subscribe()\r\n },\r\n\r\n methods: {\r\n\r\n // 提交预约表单\r\n handleSubmit() {\r\n // this.snackbar = true;\r\n let valid = false;\r\n valid = this.$refs.form.validate();\r\n\r\n if (valid) {\r\n BookAdd({\r\n mobile: this.form.mobile\r\n }).then((sRes) => {\r\n console.log(\"sRes\", sRes)\r\n this.snackbar = true;\r\n }).catch().finally();\r\n }\r\n console.log(\"val\", valid);\r\n },\r\n\r\n // 更换背景\r\n handlerChangeBgImg(index, type) {\r\n if (this.bgIndex === index) {\r\n return false;\r\n }\r\n\r\n if (this.isSwitching) {\r\n return false;\r\n }\r\n\r\n this.isSwitching = true;\r\n\r\n if (index !== \"null\" && this.bgIndex == index) return;\r\n // 位移方向\r\n //let dir = \"right\";\r\n this.preBgIndex = this.bgIndex;\r\n\r\n\r\n if (type == \"auto\") {\r\n this.bgIndex++;\r\n } else {\r\n this.bgIndex = index;\r\n }\r\n\r\n //if(this.bgIndex < this.preBgIndex)dir = \"left\"\r\n if (this.bgIndex >= this.homeBgList.length) this.bgIndex = 0;\r\n let $item = $(\".homeBg .item\").eq(this.bgIndex);\r\n let $preItem = $(\".homeBg .item\").eq(this.preBgIndex);\r\n $(\".homeBg .item\").hide();\r\n $(\".homeBg .item\").css({\"z-index\": 0})\r\n $item.show().css({\"z-index\": 2});\r\n $preItem.show().css({\"z-index\": 1});\r\n\r\n let $itemSetX = \"100%\";\r\n\r\n if (this.bgIndex < this.preBgIndex) {\r\n $itemSetX = \"-100%\";\r\n } else {\r\n $itemSetX = \"100%\";\r\n }\r\n\r\n gsap.set($item, {\r\n opacity: 1,\r\n x: $itemSetX,\r\n scaleX: 1,\r\n scaleY: 1,\r\n // \"-webkit-filter\": \"brightness(5)\",\r\n // \"filter\": \"brightness(5)\"\r\n })\r\n\r\n gsap.to($preItem, {\r\n duration: 0.8,\r\n opacity: 0,\r\n // \"-webkit-filter\": \"brightness(5)\",\r\n // \"filter\": \"brightness(5)\",\r\n x: 0,\r\n ease: \"cubic.inOut\",\r\n onComplete: () => {\r\n console.log(\"$preItem-complete\", this.switchingNum);\r\n this.switchingNum++;\r\n }\r\n })\r\n\r\n // gsap.to($item, {\r\n // duration: 1.5,\r\n // opacity: 1,\r\n // })\r\n\r\n gsap.to($item, {\r\n duration: 0.8,\r\n // \"-webkit-filter\": \"brightness(1)\",\r\n // \"filter\": \"brightness(1)\",\r\n x: 0,\r\n ease: \"cubic.inOut\",\r\n onComplete: () => {\r\n console.log(\"$item-complete\", this.switchingNum);\r\n this.switchingNum++;\r\n }\r\n })\r\n\r\n // gsap.to($item, {\r\n // duration: 7,\r\n // scaleX: 1,\r\n // scaleY: 1\r\n // })\r\n //console.log('#-------dir:', dir, this.preBgIndex, this.bgIndex, index)\r\n\r\n if (myTimer) {\r\n clearTimeout(myTimer)\r\n myTimer = null;\r\n }\r\n this.autoPlayBg();\r\n //this.bgIndex = index;\r\n },\r\n\r\n // 自动播放\r\n autoPlayBg() {\r\n // console.log('auto pay bg...');\r\n // return false;\r\n if (myTimer) {\r\n clearTimeout(myTimer)\r\n myTimer = null;\r\n }\r\n myTimer = setTimeout(() => {\r\n this.handlerChangeBgImg(\"null\", \"auto\");\r\n //this.autoPlayBg(\"null\",\"auto\");\r\n }, 5000)\r\n },\r\n\r\n addAnimate() {\r\n console.log('#-------------ele1:')\r\n const timeline = new gsap.timeline()\r\n const text = new SplitText(\"#desc\");\r\n gsap.set(text.chars, {\r\n perspective: 400\r\n })\r\n timeline.from(text.chars, {\r\n duration: 1.1,\r\n opacity: 0,\r\n y: 50,\r\n ease: \"back\",\r\n scale: 0,\r\n rotationX: 180,\r\n transformOrigin: \"0% 50% -50\",\r\n stagger: 0.07\r\n })\r\n },\r\n\r\n // 跳转至预约页面\r\n handleMore() {\r\n this.morePageVisible = true;\r\n const timer = setTimeout(() => {\r\n clearTimeout(timer);\r\n\r\n gsap.set(\".morePage\", {opacity: 0})\r\n gsap.set(\".morePage .box\", {x: -420})\r\n gsap.to(\".morePage\", {duration: .7, opacity: 1})\r\n gsap.to(\".morePage .box\", {duration: .7, delay: 0.3, x: 0, ease: \"cubic.inOut\"})\r\n }, 60)\r\n },\r\n\r\n // 关闭更多页面\r\n onCloseMore() {\r\n gsap.to(\".morePage .box\", {duration: 1, x: -420, ease: \"expo.inOut\"})\r\n gsap.to(\".morePage\", {\r\n duration: .5, delay: 0.7, ease: \"cubic.out\", opacity: 0, onComplete: () => {\r\n this.morePageVisible = false;\r\n }\r\n })\r\n }\r\n\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n\r\n.my-container {\r\n position: relative;\r\n width: 100%;\r\n height: 100%;\r\n overflow: hidden;\r\n}\r\n\r\n.homePage {\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n overflow: hidden;\r\n left: 0;\r\n top: 0;\r\n\r\n .header {\r\n z-index: 1;\r\n position: absolute;\r\n top: 0;\r\n\r\n width: 100%;\r\n //padding: 20px 0;\r\n\r\n .change_language {\r\n cursor: pointer;\r\n position: absolute;\r\n right: 50px;\r\n top: 25px;\r\n //margin-right: 70px;\r\n font-size: 16px;\r\n color: #ffffff;\r\n\r\n .iconfont {\r\n font-size: 26px;\r\n display: block;\r\n margin-right: 10px;\r\n }\r\n\r\n //&:hover{color: black;}\r\n }\r\n }\r\n\r\n .shadow {\r\n width: 100%;\r\n height: 100%;\r\n background-image: linear-gradient(rgba(33, 71, 116, .3), rgba(0, 0, 0, 0));\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n z-index: 1;\r\n }\r\n\r\n .bgBtns {\r\n width: 100%;\r\n height: 30px;\r\n position: absolute;\r\n z-index: 10;\r\n bottom: 5%;\r\n\r\n .item {\r\n width: 44px;\r\n height: 44px;\r\n margin: 0 8px;\r\n cursor: pointer;\r\n\r\n &::after {\r\n content: \" \";\r\n display: block;\r\n width: 100%;\r\n height: 3px;\r\n border-radius: 3px;\r\n background-color: rgba(255, 255, 255, .5);\r\n }\r\n\r\n &.active:after {\r\n background-color: white;\r\n }\r\n\r\n &:hover:after {\r\n background-color: white;\r\n }\r\n }\r\n }\r\n\r\n .slogan {\r\n margin-top: 86+67px;\r\n z-index: 2;\r\n position: absolute;\r\n top: 0;\r\n\r\n width: 100%;\r\n\r\n .content {\r\n color: #ffffff;\r\n\r\n .logo {\r\n }\r\n\r\n #title {\r\n font-size: 56.2px !important;\r\n //letter-spacing: 31px !important;\r\n line-height: 1;\r\n\r\n @media only screen and (max-width: 600px) {\r\n font-size: 50px !important;\r\n letter-spacing: 20px !important;\r\n }\r\n }\r\n\r\n #desc {\r\n //font-size: 60px;\r\n font-size: 24.1px !important;\r\n //font-weight: normal !important;\r\n margin-top: 16px;\r\n //width: 100%;\r\n height: 50px;\r\n letter-spacing: 10px !important;\r\n\r\n @media only screen and (max-width: 600px) {\r\n font-size: 18px !important;\r\n letter-spacing: 5px !important;\r\n }\r\n\r\n &.en {\r\n letter-spacing: 6px !important;\r\n font-weight: normal;\r\n }\r\n }\r\n\r\n .more {\r\n font-size: 12.3px;\r\n margin-top: 40px;\r\n\r\n .btn {\r\n border: 1px solid;\r\n font-size: 16px;\r\n\r\n\r\n &:hover {\r\n border-color: black !important;\r\n background-color: black;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n.homeBg {\r\n width: 100%;\r\n height: 100%;\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n z-index: 0;\r\n\r\n .item {\r\n width: 100%;\r\n height: 100%;\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n overflow: hidden;\r\n //filter: brightness(5);\r\n img {\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n display: block;\r\n }\r\n }\r\n}\r\n\r\n//更多Page\r\n.morePage {\r\n width: 100%;\r\n height: 100%;\r\n position: fixed;\r\n z-index: 100;\r\n opacity: 0;\r\n left: 0;\r\n top: 0;\r\n background-color: rgba(0, 0, 0, .35);\r\n\r\n .hit {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n\r\n .box {\r\n width: 420px;\r\n height: 100%;\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n z-index: 1;\r\n background-color: white;\r\n color: black;\r\n\r\n .tit {\r\n font-size: 24px;\r\n }\r\n\r\n .logo {\r\n width: 139px;\r\n height: 35px;\r\n position: absolute;\r\n left: 40px;\r\n top: 15px;\r\n }\r\n\r\n .intro {\r\n height: 400px;\r\n padding: 0 40px;\r\n }\r\n\r\n .ipt {\r\n margin-top: 20px;\r\n }\r\n\r\n .tips {\r\n margin-top: 25px;\r\n font-size: 16px;\r\n }\r\n\r\n .submit {\r\n width: 343px;\r\n height: 50px;\r\n margin-top: 25px;\r\n color: white;\r\n background-color: black;\r\n border-radius: 50px;\r\n }\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=ea266f04&scoped=true\"\nimport script from \"./Home.vue?vue&type=script&lang=js\"\nexport * from \"./Home.vue?vue&type=script&lang=js\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=ea266f04&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ea266f04\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-container',{staticClass:\"px-0 py-0\",attrs:{\"fluid\":\"\"}},[_c('div',{staticClass:\"header-image\"},[_c('v-img',{attrs:{\"src\":require(\"@/assets/images/about/20240327/1.jpg\"),\"width\":\"100%\"}}),(_vm.$vuetify.breakpoint.smAndDown)?_c('div',{staticClass:\"about-info-xs d-flex flex-column align-center justify-center\"},[_c('div',{staticClass:\"about-info-title text-center\"},[_vm._v(_vm._s(_vm.$t(\"about.header.title\")))]),_c('div',{staticClass:\"about-info-desc text-center px-10\"},[_c('div',{},[_vm._v(_vm._s(_vm.$t(\"about.header.desc\")))]),_c('div',{},[_vm._v(_vm._s(_vm.$t(\"about.header.desc1\")))])])]):_c('div',{staticClass:\"about-info\"},[_c('div',{staticClass:\"about-info-title text-center\"},[_vm._v(_vm._s(_vm.$t(\"about.header.title\")))]),_c('div',{staticClass:\"about-info-desc text-center\"},[_c('div',{},[_vm._v(_vm._s(_vm.$t(\"about.header.desc\")))]),_c('div',{},[_vm._v(_vm._s(_vm.$t(\"about.header.desc1\")))])])])],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"1\"}}),_c('v-col',{staticClass:\"main pa-0\",attrs:{\"cols\":\"10\"}},[_c('v-row',{staticClass:\"gufen-title my-title\",attrs:{\"id\":\"gufen-title\",\"justify\":\"center\"}},[_vm._v(_vm._s(_vm.$t('about.gufen.title')))]),_c('v-row',{staticClass:\"gufen-desc d-flex justify-center\",attrs:{\"id\":\"gufen-desc\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('div',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm.$t('about.gufen.desc')))])])],1),_c('v-row',{staticClass:\"gufen-pic d-flex justify-center\",attrs:{\"id\":\"gufen-pic\"}},[_c('v-img',{attrs:{\"src\":require(\"@/assets/images/about/20240327/gufen-pic.jpg\"),\"width\":\"100%\"}})],1),_c('v-row',{staticClass:\"lvse-title my-title d-flex justify-center\",attrs:{\"id\":\"lvse-title\"}},[_vm._v(_vm._s(_vm.$t('about.lvse.title')))]),_c('v-row',{staticClass:\"lvse-desc d-flex justify-center\",attrs:{\"id\":\"lvse-desc\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('div',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm.$t('about.lvse.desc')))])])],1),_c('v-row',{staticClass:\"lvse-pic\",attrs:{\"id\":\"lvse-pic\"}},[_c('v-img',{attrs:{\"src\":require(\"@/assets/images/about/20240327/3.png\"),\"width\":\"100%\"}})],1),_c('v-row',{staticClass:\"lvse-pic-1\",attrs:{\"id\":\"lvse-pic-1\"}},[_c('v-img',{attrs:{\"src\":require(\"@/assets/images/about/20240327/lvse-pic-1.jpg\"),\"width\":\"100%\"}})],1),_c('v-row',{staticClass:\"wenhua\",attrs:{\"id\":\"wenhua\",\"justify\":\"center\"}},[_c('div',{staticClass:\"wenhua-title\"},[_c('div',{staticClass:\"wenhua-title-txt my-title\"},[_vm._v(_vm._s(_vm.$t('about.wenhua.title')))]),_c('div',{staticClass:\"wenhua-title-line\"})])]),_c('v-row',{staticClass:\"wenhua-pic\",attrs:{\"id\":\"wenhua-pic\"}},_vm._l((_vm.list),function(item,index){return _c('v-col',{key:index,staticClass:\"l-item\",class:[_vm.$vuetify.breakpoint.smAndDown ? 'pa-0' : 'l-item-px'],attrs:{\"xs\":\"12\",\"sm\":\"12\",\"md\":\"6\",\"lg\":\"6\",\"xl\":\"6\"}},[_c('div',{staticClass:\"box\"},[_c('div',{staticClass:\"text\"},[_c('div',{staticClass:\"txt-1\"},[_vm._v(_vm._s(item.title))]),_c('div',{staticClass:\"txt-2\"},[_vm._v(_vm._s(item.text))])]),_c('v-img',{staticClass:\"image\",attrs:{\"src\":item.img,\"width\":\"100%\"}})],1)])}),1)],1),_c('v-col',{attrs:{\"cols\":\"1\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nexport function isContain(dom) {\r\n // 获取可视窗口的盖度。\r\n const screenHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;\r\n // 获取滚动条滚动的高度\r\n const scrollTop = document.documentElement.scrollTop;\r\n // 获取元素偏移的高度。就是距离可视窗口的偏移量。\r\n const offsetTop = dom.offsetTop;\r\n return offsetTop - scrollTop <= screenHeight;\r\n}\r\n\r\n/**\r\n * 加载更多列表数据\r\n * @param {Object} resList 新列表数据\r\n * @param {Object} oldList 旧列表数据\r\n * @param {int} pageNo 当前页码\r\n */\r\nexport const getMoreListData = (resList, oldList, pageNo) => {\r\n // 如果是第一页需手动制空列表\r\n if (pageNo === 1) oldList = []\r\n // 合并新数据\r\n return oldList.concat(resList)\r\n}","<template>\r\n <v-container fluid class=\"px-0 py-0\">\r\n <div class=\"header-image\">\r\n <v-img class=\"\" src=\"@/assets/images/about/20240327/1.jpg\" width=\"100%\"></v-img>\r\n\r\n <div class=\"about-info-xs d-flex flex-column align-center justify-center\" v-if=\"$vuetify.breakpoint.smAndDown\">\r\n <div class=\"about-info-title text-center\">{{ $t(\"about.header.title\") }}</div>\r\n <div class=\"about-info-desc text-center px-10\">\r\n <div class=\"\">{{ $t(\"about.header.desc\") }}</div>\r\n <div class=\"\">{{ $t(\"about.header.desc1\") }}</div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"about-info\" v-else>\r\n <div class=\"about-info-title text-center\">{{ $t(\"about.header.title\") }}</div>\r\n <div class=\"about-info-desc text-center\">\r\n <div class=\"\">{{ $t(\"about.header.desc\") }}</div>\r\n <div class=\"\">{{ $t(\"about.header.desc1\") }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <v-row>\r\n <v-col cols=\"1\"></v-col>\r\n <v-col cols=\"10\" class=\"main pa-0\">\r\n\r\n <!-- 股份-->\r\n <v-row id=\"gufen-title\" class=\"gufen-title my-title\" justify=\"center\">{{ $t('about.gufen.title') }}</v-row>\r\n\r\n <v-row id=\"gufen-desc\" class=\"gufen-desc d-flex justify-center\">\r\n <v-col cols=\"10\">\r\n <div class=\"text-center\">{{ $t('about.gufen.desc') }}</div>\r\n </v-col>\r\n </v-row>\r\n\r\n <v-row id=\"gufen-pic\" class=\"gufen-pic d-flex justify-center\">\r\n <!-- <v-col cols=\"12\" class=\"pa-0 justify-center\">-->\r\n <v-img src=\"@/assets/images/about/20240327/gufen-pic.jpg\" width=\"100%\"></v-img>\r\n <!-- </v-col>-->\r\n </v-row>\r\n\r\n <!-- 天宸绿色能源科技(芜湖)有限公司 -->\r\n <v-row id=\"lvse-title\" class=\"lvse-title my-title d-flex justify-center\">{{ $t('about.lvse.title') }}</v-row>\r\n\r\n <v-row id=\"lvse-desc\" class=\"lvse-desc d-flex justify-center\">\r\n <v-col cols=\"10\">\r\n <div class=\"text-center\">{{ $t('about.lvse.desc') }}</div>\r\n </v-col>\r\n </v-row>\r\n\r\n <v-row id=\"lvse-pic\" class=\"lvse-pic\">\r\n <!-- <v-col cols=\"12\" class=\"pa-0\">-->\r\n <v-img src=\"@/assets/images/about/20240327/3.png\" width=\"100%\"></v-img>\r\n <!-- </v-col>-->\r\n </v-row>\r\n\r\n <v-row id=\"lvse-pic-1\" class=\"lvse-pic-1\">\r\n <!-- <v-col cols=\"12\" class=\"pa-0\">-->\r\n <v-img src=\"@/assets/images/about/20240327/lvse-pic-1.jpg\" width=\"100%\"></v-img>\r\n <!-- </v-col>-->\r\n </v-row>\r\n\r\n <!--企业文化-->\r\n <v-row id=\"wenhua\" class=\"wenhua\" justify=\"center\">\r\n <div class=\"wenhua-title\">\r\n <div class=\"wenhua-title-txt my-title\">{{ $t('about.wenhua.title') }}</div>\r\n <div class=\"wenhua-title-line\"></div>\r\n </div>\r\n </v-row>\r\n\r\n <v-row id=\"wenhua-pic\" class=\"wenhua-pic\">\r\n <v-col xs=\"12\" sm=\"12\" md=\"6\" lg=\"6\" xl=\"6\" class=\"l-item\" :class=\"[$vuetify.breakpoint.smAndDown ? 'pa-0' : 'l-item-px']\"\r\n v-for=\"(item, index) in list\"\r\n :key=\"index\">\r\n <div class=\"box\">\r\n <div class=\"text\">\r\n <div class=\"txt-1\">{{ item.title }}</div>\r\n <div class=\"txt-2\">{{ item.text }}</div>\r\n </div>\r\n <v-img class=\"image\" :src=\"item.img\" width=\"100%\"></v-img>\r\n </div>\r\n </v-col>\r\n </v-row>\r\n\r\n </v-col>\r\n <v-col cols=\"1\"></v-col>\r\n </v-row>\r\n </v-container>\r\n</template>\r\n\r\n<script>\r\nimport {isContain} from '@/util/util.js';\r\nimport {gsap} from \"gsap\";\r\nimport {useLanguage} from \"@/stores\";\r\n\r\nexport default {\r\n name: \"About\",\r\n\r\n data() {\r\n return {\r\n // 图文列表\r\n list: [],\r\n }\r\n },\r\n\r\n mounted() {\r\n window.scrollTo(0, 0);\r\n\r\n this._getList();\r\n\r\n this._watchGetList();\r\n\r\n this._animateHeaderImage();\r\n\r\n // this._partAnimate(0);\r\n // this._partAnimate(1);\r\n // this._partAnimate(2);\r\n // this._partAnimate(3);\r\n\r\n const arr = [\r\n {obj: 'gufen-title', isVisible: false,},\r\n {obj: 'gufen-desc', isVisible: false,},\r\n {obj: 'gufen-pic', isVisible: false,},\r\n {obj: 'lvse-title', isVisible: false,},\r\n {obj: 'lvse-desc', isVisible: false,},\r\n {obj: 'lvse-pic', isVisible: false,},\r\n {obj: 'lvse-pic-1', isVisible: false,},\r\n {obj: 'wenhua', isVisible: false,},\r\n {obj: 'wenhua-desc', isVisible: false,},\r\n {obj: 'wenhua-pic', isVisible: false,},\r\n ];\r\n window.onscroll = () => {\r\n for (let i = 0; i < arr.length; i++) {\r\n let temp = arr[i];\r\n this._partAnimate(temp, i);\r\n }\r\n }\r\n },\r\n\r\n methods: {\r\n _animateHeaderImage() {\r\n // 顶部图片\r\n gsap.from(\".header-image\", {\r\n y: 10,\r\n opacity: 0,\r\n duration: 1.5\r\n })\r\n\r\n // 你好,我们是天宸能科。\r\n gsap.from(\".about-info\", {\r\n y: 10,\r\n opacity: 0,\r\n duration: 1.5,\r\n delay: 0.8\r\n })\r\n },\r\n\r\n _partAnimate(obj, index) {\r\n let p = document.getElementById(obj.obj);\r\n // console.log(\"isContain\", obj, p);\r\n if (!p) {\r\n return false;\r\n }\r\n\r\n // console.log(\"isContain\");\r\n\r\n if (isContain(p)) {\r\n console.log(\"show\", isContain(p));\r\n if (obj.isVisible) {\r\n return false;\r\n }\r\n obj.isVisible = true;\r\n\r\n gsap.from(p, {\r\n y: 50,\r\n opacity: 0,\r\n duration: 1.5,\r\n delay: parseFloat(index / 10 + 0.1),\r\n });\r\n\r\n } else {\r\n console.log(\"hide\")\r\n }\r\n },\r\n\r\n _getList() {\r\n this.list = [\r\n {\r\n title: this.$t(\"about.wenhua.pic.0.title\"),\r\n text: this.$t(\"about.wenhua.pic.0.content\"),\r\n img: require('@/assets/images/about/20240327/wenhua-2.jpg')\r\n }, {\r\n title: this.$t(\"about.wenhua.pic.1.title\"),\r\n text: this.$t(\"about.wenhua.pic.1.content\"),\r\n img: require('@/assets/images/about/20240327/wenhua-1.jpg')\r\n },\r\n ]\r\n },\r\n\r\n // watch 监听 $t 切换\r\n _watchGetList() {\r\n useLanguage().$subscribe((mutation, state) => {\r\n // console.log(\"$subscribe\", this.languageStore.lang, mutation, state.lang);\r\n this._getList();\r\n })\r\n },\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.container {\r\n padding-top: 67px !important;\r\n padding-bottom: 20px !important;\r\n}\r\n\r\n.row {\r\n margin: 0 !important;\r\n}\r\n\r\n.col {\r\n padding: 0 !important;\r\n}\r\n\r\n//头图\r\n.header-image {\r\n position: relative;\r\n top: 0;\r\n\r\n .about-info {\r\n position: absolute;\r\n top: 77px;\r\n color: #ffffff;\r\n width: 100%;\r\n\r\n .about-info-title {\r\n font-size: 34.31px;\r\n }\r\n\r\n .about-info-desc {\r\n font-size: 12.37px;\r\n line-height: 20.8px;\r\n margin-top: 30px;\r\n }\r\n }\r\n\r\n .about-info-xs {\r\n position: absolute;\r\n top: 0px;\r\n color: #ffffff;\r\n width: 100%;\r\n height: 100%;\r\n\r\n .about-info-title {\r\n font-size: 24.31px;\r\n }\r\n\r\n .about-info-desc {\r\n font-size: 10.37px;\r\n line-height: 15.8px;\r\n margin-top: 15px;\r\n }\r\n }\r\n}\r\n\r\n.main {\r\n line-height: 1 !important;\r\n\r\n .gufen-title {\r\n margin-top: 77px !important;\r\n }\r\n\r\n .gufen-desc {\r\n font-size: 13.5px;\r\n margin-top: 23px !important;\r\n line-height: 20.8px;\r\n color: #646464;\r\n\r\n //padding: 0 100px;\r\n }\r\n\r\n .gufen-pic {\r\n margin-top: 40px !important;\r\n }\r\n\r\n .lvse-title {\r\n margin-top: 77px !important;\r\n }\r\n\r\n .lvse-desc {\r\n font-size: 13.5px;\r\n margin-top: 23px !important;\r\n line-height: 20.8px;\r\n color: #646464;\r\n //padding: 0 100px;\r\n }\r\n\r\n .lvse-pic {\r\n margin-top: 40px !important;\r\n }\r\n\r\n .lvse-pic-1 {\r\n margin-top: 77px !important;\r\n }\r\n\r\n .wenhua {\r\n margin-top: 77px !important;\r\n\r\n .wenhua-title {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n flex-direction: column;\r\n }\r\n\r\n .wenhua-title-txt {\r\n }\r\n\r\n .wenhua-title-line {\r\n @extend .title-line;\r\n }\r\n }\r\n\r\n .wenhua-pic {\r\n margin-top: 44px !important;\r\n\r\n .l-item {\r\n margin-bottom: 20px !important;\r\n\r\n\r\n &:first-child {\r\n padding-left: 0 !important;\r\n }\r\n\r\n &:last-child {\r\n padding-right: 0 !important;\r\n }\r\n\r\n &.l-item-px {\r\n padding: 0 27px !important;\r\n }\r\n\r\n .box {\r\n position: relative;\r\n\r\n .text {\r\n width: 100%;\r\n position: absolute;\r\n top: 61px;\r\n z-index: 1;\r\n color: #ffffff;\r\n text-align: center;\r\n padding: 0 24px;;\r\n\r\n .txt-1 {\r\n font-size: 28.13px;\r\n //line-height: 20px;\r\n }\r\n\r\n .txt-2 {\r\n margin-top: 22px;\r\n font-size: 13.5px;\r\n //line-height: 20px;\r\n font-weight: bold;\r\n }\r\n }\r\n\r\n .image {\r\n border-radius: 2px;\r\n }\r\n\r\n }\r\n }\r\n }\r\n\r\n .title-line {\r\n margin-top: 26px;\r\n\r\n width: 35%;\r\n height: 2px;\r\n background-color: #000000;\r\n }\r\n\r\n .my-title {\r\n font-size: 34.31px !important;\r\n }\r\n\r\n}\r\n</style>","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./About.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./About.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./About.vue?vue&type=template&id=930f7f5c&scoped=true\"\nimport script from \"./About.vue?vue&type=script&lang=js\"\nexport * from \"./About.vue?vue&type=script&lang=js\"\nimport style0 from \"./About.vue?vue&type=style&index=0&id=930f7f5c&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"930f7f5c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-container',{staticClass:\"px-0 py-0\",attrs:{\"fluid\":\"\"}},[_c('div',{staticClass:\"header-image\"},[_c('v-img',{attrs:{\"src\":require(\"@/assets/images/product/v100/header.jpg\"),\"width\":\"100%\"}}),(_vm.$vuetify.breakpoint.smAndDown)?_c('div',{staticClass:\"about-info-xs d-flex align-center flex-column justify-center\"},[_c('div',{staticClass:\"about-info-title text-center\"},[_vm._v(_vm._s(_vm.$t(\"product.aboutInfo.title\")))]),_c('div',{staticClass:\"about-info-desc text-center\"},[_c('div',{staticClass:\"about-info-desc-txt\"},[_vm._v(_vm._s(_vm.$t(\"product.aboutInfo.desc\")))]),_c('div',{staticClass:\"about-info-desc-txt\"},[_vm._v(_vm._s(_vm.$t(\"product.aboutInfo.desc1\")))])])]):_c('div',{staticClass:\"about-info\"},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"2\"}}),_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"8\"}},[_c('div',{staticClass:\"about-info-title text-center\"},[_vm._v(_vm._s(_vm.$t(\"product.aboutInfo.title\")))]),_c('div',{staticClass:\"about-info-desc text-center\"},[_c('div',{staticClass:\"about-info-desc-txt\"},[_vm._v(_vm._s(_vm.$t(\"product.aboutInfo.desc\")))]),_c('div',{staticClass:\"about-info-desc-txt\"},[_vm._v(_vm._s(_vm.$t(\"product.aboutInfo.desc1\")))])])]),_c('v-col',{attrs:{\"cols\":\"2\"}})],1)],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"1\"}}),_c('v-col',{staticClass:\"main\",attrs:{\"cols\":\"10\"}},[_c('v-row',{staticClass:\"part3\"},_vm._l((_vm.list),function(item,index){return _c('v-col',{key:index,staticClass:\"image-item\",attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"6\",\"lg\":\"4\",\"xl\":\"4\"}},[_c('v-img',{attrs:{\"src\":item.img,\"width\":\"100%\"},on:{\"click\":function($event){return _vm.handleOpenDetail(index)}}}),_c('v-row',{staticClass:\"title\"},[_vm._v(_vm._s(item.title))]),_c('v-row',{staticClass:\"desc\"},[_c('v-row',{staticClass:\"_desc\"},[_vm._v(_vm._s(item.desc))])],1)],1)}),1)],1),_c('v-col',{attrs:{\"cols\":\"1\"}})],1),_c('v-dialog',{staticClass:\"dialog\",attrs:{\"max-width\":\"1546\",\"transition\":\"dialog-bottom-transition\"},model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('div',{staticClass:\"dialog-main\"},[_c('v-carousel',{attrs:{\"height\":\"100%\"}},_vm._l((_vm.detail),function(item,i){return _c('v-carousel-item',{key:i},[_c('v-tooltip',{attrs:{\"top\":\"\",\"color\":\"#376dc0\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('a',{attrs:{\"href\":item.img,\"target\":\"_blank\"}},[_c('v-img',_vm._g(_vm._b({attrs:{\"src\":item.img,\"width\":\"100%\"}},'v-img',attrs,false),on))],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t('product.detail.tips')))])])],1)}),1)],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <v-container fluid class=\"px-0 py-0\">\r\n\r\n <div class=\"header-image\">\r\n <v-img src=\"@/assets/images/product/v100/header.jpg\" width=\"100%\"></v-img>\r\n <div class=\"about-info-xs d-flex align-center flex-column justify-center\" v-if=\"$vuetify.breakpoint.smAndDown\">\r\n <div class=\"about-info-title text-center\">{{ $t(\"product.aboutInfo.title\") }}</div>\r\n <div class=\"about-info-desc text-center\">\r\n <div class=\"about-info-desc-txt\">{{ $t(\"product.aboutInfo.desc\") }}</div>\r\n <div class=\"about-info-desc-txt\">{{ $t(\"product.aboutInfo.desc1\") }}</div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"about-info\" v-else>\r\n <v-row>\r\n <v-col cols=\"2\"></v-col>\r\n <v-col cols=\"8\" class=\"pa-0\">\r\n <div class=\"about-info-title text-center\">{{ $t(\"product.aboutInfo.title\") }}</div>\r\n <div class=\"about-info-desc text-center\">\r\n <div class=\"about-info-desc-txt\">{{ $t(\"product.aboutInfo.desc\") }}</div>\r\n <div class=\"about-info-desc-txt\">{{ $t(\"product.aboutInfo.desc1\") }}</div>\r\n </div>\r\n </v-col>\r\n <v-col cols=\"2\"></v-col>\r\n </v-row>\r\n </div>\r\n </div>\r\n\r\n <v-row>\r\n <v-col cols=\"1\"></v-col>\r\n <v-col cols=\"10\" class=\"main\">\r\n\r\n <v-row class=\"part3\">\r\n\r\n <v-col cols=\"12\" sm=\"12\" md=\"6\" lg=\"4\" xl=\"4\" class=\"image-item\" v-for=\"(item,index) in list\" :key=\"index\">\r\n <v-img :src=\"item.img\" width=\"100%\" @click=\"handleOpenDetail(index)\"></v-img>\r\n <v-row class=\"title\">{{ item.title }}</v-row>\r\n <v-row class=\"desc\">\r\n <v-row class=\"_desc\">{{ item.desc }}</v-row>\r\n </v-row>\r\n </v-col>\r\n\r\n </v-row>\r\n\r\n </v-col>\r\n <v-col cols=\"1\"></v-col>\r\n </v-row>\r\n\r\n <v-dialog\r\n class=\"dialog\"\r\n\r\n v-model=\"dialog\"\r\n max-width=\"1546\"\r\n transition=\"dialog-bottom-transition\"\r\n >\r\n <div class=\"dialog-main\">\r\n <v-carousel\r\n height=\"100%\"\r\n >\r\n <!-- <template v-slot:prev=\"{ on, attrs }\">-->\r\n <!-- <v-btn-->\r\n <!-- color=\"success\"-->\r\n <!-- v-bind=\"attrs\"-->\r\n <!-- v-on=\"on\"-->\r\n <!-- >Previous slide</v-btn>-->\r\n <!-- </template>-->\r\n <!-- <template v-slot:next=\"{ on, attrs }\">-->\r\n <!-- <v-btn-->\r\n <!-- color=\"info\"-->\r\n <!-- v-bind=\"attrs\"-->\r\n <!-- v-on=\"on\"-->\r\n <!-- >Next slide</v-btn>-->\r\n <!-- </template>-->\r\n\r\n <v-carousel-item\r\n v-for=\"(item,i) in detail\"\r\n :key=\"i\"\r\n >\r\n <v-tooltip top color=\"#376dc0\">\r\n <template v-slot:activator=\"{ on, attrs }\">\r\n <a :href=\"item.img\" target=\"_blank\">\r\n <v-img class=\"\" :src=\"item.img\" width=\"100%\"\r\n v-bind=\"attrs\"\r\n v-on=\"on\"\r\n ></v-img>\r\n </a>\r\n </template>\r\n <span>{{ $t('product.detail.tips') }}</span>\r\n </v-tooltip>\r\n </v-carousel-item>\r\n\r\n </v-carousel>\r\n\r\n <!-- <div class=\"close\">-->\r\n <!-- <span class=\"mdi mdi-close-circle-outline\"></span>-->\r\n <!-- </div>-->\r\n </div>\r\n </v-dialog>\r\n\r\n </v-container>\r\n</template>\r\n\r\n<script>\r\nimport {gsap} from \"gsap\";\r\nimport {useLanguage} from \"@/stores\";\r\n\r\nexport default {\r\n name: \"Product\",\r\n\r\n components: {},\r\n\r\n data() {\r\n return {\r\n list: [],\r\n\r\n dialog: false,\r\n\r\n detail: [],\r\n\r\n // 详情列表\r\n detailList: [\r\n [\r\n {\r\n img: require(\"@/assets/images/product/v100/1-1.png\"),\r\n }, {\r\n img: require(\"@/assets/images/product/v100/1-2.png\"),\r\n }, {\r\n img: require(\"@/assets/images/product/v100/1-3.png\"),\r\n }, {\r\n img: require(\"@/assets/images/product/v100/1-4.png\"),\r\n },{\r\n img: require(\"@/assets/images/product/v100/3-1.png\"),\r\n },\r\n ], [\r\n {\r\n img: require(\"@/assets/images/product/v100/2-1.png\"),\r\n },\r\n ], [{\r\n img: require(\"@/assets/images/product/v100/3-2.png\"),\r\n },\r\n ],\r\n ],\r\n }\r\n },\r\n\r\n computed: {\r\n languageStore() {\r\n return useLanguage();\r\n },\r\n },\r\n\r\n mounted() {\r\n window.scrollTo(0, 0)\r\n\r\n this._getList();\r\n\r\n this._watchGetList();\r\n\r\n this._animateHeaderImage();\r\n\r\n gsap.from(\".part3\", {\r\n y: 100,\r\n opacity: 0,\r\n duration: 1\r\n });\r\n },\r\n\r\n methods: {\r\n handleOpenDetail(i) {\r\n this.dialog = true;\r\n console.log(\"i\", i)\r\n\r\n this.detail = this.detailList[i];\r\n },\r\n\r\n _animateHeaderImage() {\r\n // 顶部图片\r\n gsap.from(\".header-image\", {\r\n y: 10,\r\n opacity: 0,\r\n duration: 1.5\r\n })\r\n\r\n //\r\n gsap.from(\".about-info\", {\r\n y: 10,\r\n opacity: 0,\r\n duration: 1.5,\r\n delay: 0.8\r\n })\r\n },\r\n\r\n _getList() {\r\n this.list = [\r\n {\r\n img: require(\"@/assets/images/product/1.png\"),\r\n title: this.$t(\"product.part3.0.title\"),\r\n desc: this.$t(\"product.part3.0.content\"),\r\n }, {\r\n img: require(\"@/assets/images/product/2.png\"),\r\n title: this.$t(\"product.part3.1.title\"),\r\n desc: this.$t(\"product.part3.1.content\"),\r\n }, {\r\n img: require(\"@/assets/images/product/3.png\"),\r\n title: this.$t(\"product.part3.2.title\"),\r\n desc: this.$t(\"product.part3.2.content\"),\r\n },\r\n ]\r\n },\r\n\r\n _watchGetList() {\r\n // watch 监听 $t 切换\r\n useLanguage().$subscribe((mutation, state) => {\r\n console.log(\"$subscribe\", this.languageStore.lang, mutation, state.lang);\r\n this._getList();\r\n })\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.container {\r\n padding-top: 67px !important;\r\n padding-bottom: 20px !important;\r\n}\r\n\r\n.row {\r\n margin: 0 !important;\r\n}\r\n\r\n.col {\r\n padding: 0 !important;\r\n}\r\n\r\n.header-image {\r\n\r\n position: relative;\r\n top: 0;\r\n\r\n .about-info {\r\n position: absolute;\r\n top: 77px;\r\n color: #ffffff;\r\n width: 100%;\r\n\r\n .about-info-title {\r\n font-size: 34.31px;\r\n }\r\n\r\n .about-info-desc {\r\n margin-top: 20px;\r\n }\r\n\r\n .about-info-desc .about-info-desc-txt {\r\n font-size: 12.37px;\r\n line-height: 20.8px;\r\n }\r\n }\r\n\r\n .about-info-xs {\r\n position: absolute;\r\n top: 0px;\r\n color: #ffffff;\r\n width: 100%;\r\n height: 100%;\r\n\r\n .about-info-title {\r\n font-size: 24.31px;\r\n }\r\n\r\n .about-info-desc {\r\n margin-top: 10px;\r\n }\r\n\r\n .about-info-desc .about-info-desc-txt {\r\n font-size: 10.37px;\r\n line-height: 15.8px;\r\n }\r\n }\r\n}\r\n\r\n.main {\r\n line-height: 1;\r\n padding: 0 !important;\r\n\r\n .part3 {\r\n margin-top: 86px !important;\r\n\r\n .image-item {\r\n padding: 0 15px !important;\r\n margin-bottom: 20px !important;\r\n cursor: pointer;\r\n\r\n .title {\r\n margin: 38px 0 0 0 !important;\r\n font-size: 14.62px !important;\r\n line-height: 18px;\r\n font-weight: bold;\r\n }\r\n\r\n .desc {\r\n margin: 18px 0 0 0 !important;\r\n\r\n ._desc {\r\n margin: 0 !important;\r\n font-size: 13.5px;\r\n color: #646464;\r\n line-height: 21px;\r\n text-align: justify;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n.dialog-main {\r\n display: flex;\r\n\r\n .close {\r\n margin-left: 40px;\r\n\r\n .mdi {\r\n font-size: 40px;\r\n }\r\n }\r\n}\r\n</style>","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Product.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Product.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Product.vue?vue&type=template&id=7ec1308f&scoped=true\"\nimport script from \"./Product.vue?vue&type=script&lang=js\"\nexport * from \"./Product.vue?vue&type=script&lang=js\"\nimport style0 from \"./Product.vue?vue&type=style&index=0&id=7ec1308f&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ec1308f\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-container',{staticClass:\"py-0 px-0\",attrs:{\"fluid\":\"\"}},[_c('div',{staticClass:\"header-image\"},[_c('video',{staticClass:\"cover-video\",attrs:{\"poster\":require(\"@/assets/images/solution/poster.png\"),\"src\":require(\"@/assets/images/solution/1.mp4\"),\"autoplay\":true,\"loop\":true},domProps:{\"muted\":true}})]),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"1\"}}),_c('v-col',{staticClass:\"main\",attrs:{\"cols\":\"10\"}},[_c('v-row',{staticClass:\"yiti-title my-title d-flex justify-center\",attrs:{\"id\":\"yiti-title\"}},[_vm._v(_vm._s(_vm.$t('solution.yiti.title')))]),_c('v-row',{staticClass:\"yiti-desc justify-center\",attrs:{\"id\":\"yiti-desc\"}},[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('div',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm.$t('solution.yiti.desc')))])])],1),_c('v-row',{staticClass:\"yiti-pic\",attrs:{\"id\":\"yiti-pic\"}},[_c('v-col',{staticClass:\"pa-0 justify-center\",attrs:{\"cols\":\"12\"}},[_c('v-img',{attrs:{\"src\":require(\"@/assets/images/solution/yiti-pic.jpg\"),\"width\":\"100%\"}})],1)],1),_c('v-row',{staticClass:\"dianwang-title my-title\",attrs:{\"id\":\"dianwang-title\",\"justify\":\"center\"}},[_c('div',{staticClass:\"d-flex flex-column align-center\"},[_c('div',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm.$t('solution.dianwang.title')))]),_c('div',{staticClass:\"dianwang-title-line\"})])]),_c('v-row',{staticClass:\"dianwang-desc\",attrs:{\"id\":\"dianwang-desc\",\"justify\":\"center\"}},[_c('v-col',{staticClass:\"pa-0 px-5 mb-7\",attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"6\",\"lg\":\"6\",\"xl\":\"6\"}},[_c('div',{staticClass:\"box d-flex justify-center flex-column\"},[_c('div',{staticClass:\"dianwang-desc-box-title\"},[_vm._v(_vm._s(_vm.$t('solution.dianwang.desc.item1.title')))]),_c('div',{staticClass:\"dianwang-desc-box-desc\"},[_vm._v(_vm._s(_vm.$t('solution.dianwang.desc.item1.desc')))])])]),_c('v-col',{staticClass:\"pa-0 px-5 mb-7\",attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"6\",\"lg\":\"6\",\"xl\":\"6\"}},[_c('div',{staticClass:\"box d-flex justify-center flex-column\"},[_c('div',{staticClass:\"dianwang-desc-box-title\"},[_vm._v(_vm._s(_vm.$t('solution.dianwang.desc.item2.title')))]),_c('div',{staticClass:\"dianwang-desc-box-desc\"},[_vm._v(_vm._s(_vm.$t('solution.dianwang.desc.item2.desc')))])])]),_c('v-col',{staticClass:\"pa-0 px-5 mb-7\",attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"6\",\"lg\":\"6\",\"xl\":\"6\"}},[_c('div',{staticClass:\"box d-flex justify-center flex-column\"},[_c('div',{staticClass:\"dianwang-desc-box-title\"},[_vm._v(_vm._s(_vm.$t('solution.dianwang.desc.item3.title')))]),_c('div',{staticClass:\"dianwang-desc-box-desc\"},[_vm._v(_vm._s(_vm.$t('solution.dianwang.desc.item3.desc')))])])]),_c('v-col',{staticClass:\"pa-0 px-5 mb-7\",attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"6\",\"lg\":\"6\",\"xl\":\"6\"}},[_c('div',{staticClass:\"box d-flex justify-center flex-column\"},[_c('div',{staticClass:\"dianwang-desc-box-title\"},[_vm._v(_vm._s(_vm.$t('solution.dianwang.desc.item4.title')))]),_c('div',{staticClass:\"dianwang-desc-box-desc\"},[_vm._v(_vm._s(_vm.$t('solution.dianwang.desc.item4.desc')))])])])],1)],1),_c('v-col',{attrs:{\"cols\":\"1\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <v-container fluid class=\"py-0 px-0\">\r\n <div class=\"header-image\">\r\n <video class=\"cover-video\" poster=\"@/assets/images/solution/poster.png\" src=\"@/assets/images/solution/1.mp4\" :muted=\"true\" :autoplay=\"true\" :loop=\"true\"></video>\r\n </div>\r\n\r\n <v-row>\r\n <v-col cols=\"1\"></v-col>\r\n <v-col cols=\"10\" class=\"main\">\r\n\r\n<!-- 一体式能源综合解决方案-->\r\n <v-row id=\"yiti-title\" class=\"yiti-title my-title d-flex justify-center\">{{ $t('solution.yiti.title') }}</v-row>\r\n\r\n <v-row id=\"yiti-desc\" class=\"yiti-desc justify-center\">\r\n <v-col cols=\"10\">\r\n <div class=\"text-center\">{{ $t('solution.yiti.desc') }}</div>\r\n </v-col>\r\n </v-row>\r\n\r\n <v-row id=\"yiti-pic\" class=\"yiti-pic\">\r\n <v-col cols=\"12\" class=\"pa-0 justify-center\">\r\n <v-img src=\"@/assets/images/solution/yiti-pic.jpg\" width=\"100%\"></v-img>\r\n </v-col>\r\n </v-row>\r\n\r\n <v-row id=\"dianwang-title\" class=\"dianwang-title my-title\" justify=\"center\">\r\n <div class=\"d-flex flex-column align-center\">\r\n <div class=\"text-center\">{{ $t('solution.dianwang.title') }}</div>\r\n <div class=\"dianwang-title-line\"></div>\r\n </div>\r\n </v-row>\r\n\r\n <v-row id=\"dianwang-desc\" class=\"dianwang-desc\" justify=\"center\">\r\n <v-col cols=\"12\" sm=\"12\" md=\"6\" lg=\"6\" xl=\"6\" class=\"pa-0 px-5 mb-7\">\r\n <div class=\"box d-flex justify-center flex-column\">\r\n <div class=\"dianwang-desc-box-title\">{{ $t('solution.dianwang.desc.item1.title') }}</div>\r\n <div class=\"dianwang-desc-box-desc\">{{ $t('solution.dianwang.desc.item1.desc') }}</div>\r\n </div>\r\n </v-col>\r\n\r\n <v-col cols=\"12\" sm=\"12\" md=\"6\" lg=\"6\" xl=\"6\" class=\"pa-0 px-5 mb-7\">\r\n <div class=\"box d-flex justify-center flex-column\">\r\n <div class=\"dianwang-desc-box-title\">{{ $t('solution.dianwang.desc.item2.title') }}</div>\r\n <div class=\"dianwang-desc-box-desc\">{{ $t('solution.dianwang.desc.item2.desc') }}</div>\r\n </div>\r\n </v-col>\r\n\r\n <v-col cols=\"12\" sm=\"12\" md=\"6\" lg=\"6\" xl=\"6\" class=\"pa-0 px-5 mb-7\">\r\n <div class=\"box d-flex justify-center flex-column\">\r\n <div class=\"dianwang-desc-box-title\">{{ $t('solution.dianwang.desc.item3.title') }}</div>\r\n <div class=\"dianwang-desc-box-desc\">{{ $t('solution.dianwang.desc.item3.desc') }}</div>\r\n </div>\r\n </v-col>\r\n\r\n <v-col cols=\"12\" sm=\"12\" md=\"6\" lg=\"6\" xl=\"6\" class=\"pa-0 px-5 mb-7\">\r\n <div class=\"box d-flex justify-center flex-column\">\r\n <div class=\"dianwang-desc-box-title\">{{ $t('solution.dianwang.desc.item4.title') }}</div>\r\n <div class=\"dianwang-desc-box-desc\">{{ $t('solution.dianwang.desc.item4.desc') }}</div>\r\n </div>\r\n </v-col>\r\n\r\n </v-row>\r\n\r\n<!-- <v-row class=\"part3\" justify=\"center\">-->\r\n<!-- <v-img src=\"@/assets/images/solution/1.png\" width=\"100%\"></v-img>-->\r\n<!-- </v-row>-->\r\n </v-col>\r\n <v-col cols=\"1\"></v-col>\r\n </v-row>\r\n </v-container>\r\n</template>\r\n\r\n<script>\r\nimport {gsap} from \"gsap\";\r\nimport {isContain} from \"@/util/util\";\r\n\r\nexport default {\r\n name: \"Solution\",\r\n\r\n mounted() {\r\n window.scrollTo(0, 0);\r\n\r\n this._animateHeaderImage();\r\n\r\n const arr = [\r\n {obj: 'yiti-title', isVisible: false,},\r\n {obj: 'yiti-desc', isVisible: false,},\r\n {obj: 'yiti-pic', isVisible: false,},\r\n {obj: 'dianwang-title', isVisible: false,},\r\n {obj: 'dianwang-desc', isVisible: false,},\r\n ];\r\n window.onscroll = () => {\r\n for (let i = 0; i < arr.length; i++) {\r\n let temp = arr[i];\r\n this._partAnimate(temp, i);\r\n }\r\n }\r\n },\r\n\r\n methods: {\r\n _animateHeaderImage() {\r\n // 顶部图片\r\n gsap.from(\".header-image\", {\r\n y: 10,\r\n opacity: 0,\r\n duration: 1.5\r\n })\r\n },\r\n\r\n _partAnimate(obj, index) {\r\n let p = document.getElementById(obj.obj);\r\n // console.log(\"isContain\", obj, p);\r\n if (!p) {\r\n return false;\r\n }\r\n\r\n // console.log(\"isContain\");\r\n\r\n if (isContain(p)) {\r\n console.log(\"show\", isContain(p));\r\n if (obj.isVisible) {\r\n return false;\r\n }\r\n obj.isVisible = true;\r\n\r\n gsap.from(p, {\r\n y: 50,\r\n opacity: 0,\r\n duration: 1.5,\r\n delay: parseFloat(index / 10 + 0.1),\r\n });\r\n\r\n } else {\r\n console.log(\"hide\")\r\n }\r\n },\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n\r\n.container {\r\n padding-top: 67px !important;\r\n background-color: #ffffff;\r\n padding-bottom: 20px !important;\r\n}\r\n\r\n.header-image {\r\n .cover-video {\r\n width: 100%;\r\n object-fit: cover;\r\n }\r\n}\r\n\r\n.row {\r\n margin: 0 !important;\r\n}\r\n\r\n.col {\r\n padding: 0 !important;\r\n}\r\n\r\n.main {\r\n line-height: 1;\r\n padding: 0 !important;\r\n\r\n .yiti-title{\r\n margin-top: 77px !important;\r\n }\r\n\r\n .yiti-desc{\r\n font-size: 13.5px;\r\n margin-top: 23px !important;\r\n line-height: 20.8px;\r\n color: #646464;\r\n }\r\n\r\n .yiti-pic{\r\n margin-top: 40px !important;\r\n }\r\n\r\n .dianwang-title {\r\n margin-top: 77px !important;\r\n }\r\n\r\n .dianwang-title-line {\r\n @extend .title-line;\r\n }\r\n\r\n .dianwang-desc {\r\n margin-top: 66px !important;\r\n\r\n font-size: 13.5px;\r\n line-height: 22px;\r\n\r\n .box {\r\n //width: 382px;\r\n height: 92px;\r\n border-left: 3px solid #9dc9d9;\r\n background-color: #fcfbff;\r\n padding: 0 29px 0 19px;\r\n\r\n .dianwang-desc-box-title {\r\n font-size: 16.88px;\r\n color: #000000;\r\n }\r\n .dianwang-desc-box-desc {\r\n color: #646464;\r\n }\r\n }\r\n }\r\n\r\n .title-line{\r\n margin-top: 26px;\r\n\r\n width: 35%;\r\n height: 2px;\r\n background-color: #000000;\r\n }\r\n\r\n .my-title {\r\n font-size: 34.31px !important;\r\n }\r\n\r\n //.part3 {\r\n // margin-top: 56px !important;\r\n //}\r\n}\r\n</style>","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Solution.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Solution.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Solution.vue?vue&type=template&id=aaf9e726&scoped=true\"\nimport script from \"./Solution.vue?vue&type=script&lang=js\"\nexport * from \"./Solution.vue?vue&type=script&lang=js\"\nimport style0 from \"./Solution.vue?vue&type=style&index=0&id=aaf9e726&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"aaf9e726\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-container',{staticClass:\"px-0 py-0\",attrs:{\"fluid\":\"\"}},[_c('div',{staticClass:\"header-image\"},[_c('v-img',{attrs:{\"src\":require(\"@/assets/images/contact/1.jpg\"),\"width\":\"100%\"}}),(_vm.$vuetify.breakpoint.smAndDown)?_c('div',{staticClass:\"about-info-xs d-flex justify-center align-center flex-column px-10\"},[_c('div',{staticClass:\"about-info-title\"},[_vm._v(_vm._s(_vm.$t(\"contact.aboutInfo.title\")))]),_c('div',{staticClass:\"about-info-desc\"},[_c('div',{},[_vm._v(_vm._s(_vm.$t(\"contact.aboutInfo.desc\")))]),_c('div',{},[_vm._v(_vm._s(_vm.$t(\"contact.aboutInfo.desc1\")))])])]):_c('div',{staticClass:\"about-info\"},[_c('div',{staticClass:\"about-info-title\"},[_vm._v(_vm._s(_vm.$t(\"contact.aboutInfo.title\")))]),_c('div',{staticClass:\"about-info-desc\"},[_c('div',{},[_vm._v(_vm._s(_vm.$t(\"contact.aboutInfo.desc\")))]),_c('div',{},[_vm._v(_vm._s(_vm.$t(\"contact.aboutInfo.desc1\")))])])])],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"2\"}}),_c('v-col',{staticClass:\"main\",attrs:{\"cols\":\"8\"}},[_c('v-row',{staticClass:\"company d-flex flex-column align-lg-start align-center\"},[_c('div',{staticClass:\"company-title\"},[_vm._v(_vm._s(_vm.$t('contact.companyInfo.title')))]),_c('div',{staticClass:\"company-desc d-flex align-center\"},[_c('div',{staticClass:\"company-address\"},[_vm._v(_vm._s(_vm.$t('contact.companyInfo.address')))]),_c('div',{staticClass:\"company-map d-flex align-center\"},[_c('a',{staticClass:\"d-flex align-center\",attrs:{\"href\":\"https://ditu.amap.com/place/B00155FXSP\",\"target\":\"_blank\"}},[_c('div',{staticClass:\"iconfont icon-dingwei\"}),_c('div',{},[_vm._v(_vm._s(_vm.$t('contact.companyInfo.map')))])])])])]),_c('v-row',{staticClass:\"contact\"},[_c('v-col',{staticClass:\"pa-0 d-flex justify-lg-start justify-center mt-0\",attrs:{\"cols\":\"12\",\"xl\":\"5\",\"lg\":\"5\",\"md\":\"12\"}},[_c('div',{staticClass:\"contact-list\",on:{\"click\":function($event){return _vm.handleContact(1)}}},[_c('div',{staticClass:\"left\"},[_c('v-img',{attrs:{\"src\":require(\"@/assets/images/contact/icon-email.png\"),\"max-width\":\"34\",\"height\":\"39\"}}),_c('div',{staticClass:\"contact-list-text\"},[_vm._v(_vm._s(_vm.email))])],1),_c('div',{staticClass:\"contact-list-icon\"},[_c('v-icon',[_vm._v(\"mdi-chevron-right\")])],1)])]),_c('v-spacer'),_c('v-col',{staticClass:\"pa-0 d-flex justify-lg-end justify-center mt-4 mt-lg-0\",attrs:{\"cols\":\"12\",\"xl\":\"5\",\"lg\":\"5\",\"md\":\"12\"}},[_c('div',{staticClass:\"contact-list\",on:{\"click\":function($event){return _vm.handleContact(2)}}},[_c('div',{staticClass:\"left\"},[_c('v-img',{attrs:{\"src\":require(\"@/assets/images/contact/icon-weixin.png\"),\"max-width\":\"34\",\"height\":\"39\"}}),_c('div',{staticClass:\"contact-list-text\"},[_vm._v(_vm._s(_vm.$t('contact.companyInfo.wxTip')))])],1),_c('div',{staticClass:\"contact-list-icon\"},[_c('v-icon',[_vm._v(\"mdi-chevron-right\")])],1)])])],1)],1),_c('v-col',{attrs:{\"cols\":\"2\"}})],1),_c('v-dialog',{staticClass:\"dialog\",attrs:{\"max-width\":\"80%\",\"transition\":\"dialog-bottom-transition\"},model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('div',{staticClass:\"dialog-main\"},[_c('v-tooltip',{attrs:{\"top\":\"\",\"color\":\"#376dc0\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('a',{attrs:{\"href\":_vm.wxImgSrc,\"target\":\"_blank\"}},[_c('v-img',_vm._g(_vm._b({attrs:{\"src\":_vm.wxImgSrc}},'v-img',attrs,false),on))],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('product.detail.tips')))])])],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <v-container fluid class=\"px-0 py-0\">\r\n\r\n <div class=\"header-image\">\r\n <v-img class=\"\" src=\"@/assets/images/contact/1.jpg\" width=\"100%\"></v-img>\r\n\r\n <div class=\"about-info-xs d-flex justify-center align-center flex-column px-10\" v-if=\"$vuetify.breakpoint.smAndDown\">\r\n <div class=\"about-info-title\">{{ $t(\"contact.aboutInfo.title\") }}</div>\r\n <div class=\"about-info-desc\">\r\n <div class=\"\">{{ $t(\"contact.aboutInfo.desc\") }}</div>\r\n <div class=\"\">{{ $t(\"contact.aboutInfo.desc1\") }}</div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"about-info\" v-else>\r\n <div class=\"about-info-title\">{{ $t(\"contact.aboutInfo.title\") }}</div>\r\n <div class=\"about-info-desc\">\r\n <div class=\"\">{{ $t(\"contact.aboutInfo.desc\") }}</div>\r\n <div class=\"\">{{ $t(\"contact.aboutInfo.desc1\") }}</div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <v-row>\r\n <v-col cols=\"2\"></v-col>\r\n <v-col cols=\"8\" class=\"main\">\r\n <v-row class=\"company d-flex flex-column align-lg-start align-center\">\r\n <div class=\"company-title\">{{ $t('contact.companyInfo.title') }}</div>\r\n <div class=\"company-desc d-flex align-center\">\r\n <div class=\"company-address\">{{ $t('contact.companyInfo.address') }}</div>\r\n <div class=\"company-map d-flex align-center\">\r\n <a href=\"https://ditu.amap.com/place/B00155FXSP\" target=\"_blank\" class=\"d-flex align-center\">\r\n <div class=\"iconfont icon-dingwei\"></div>\r\n <div class=\"\">{{ $t('contact.companyInfo.map') }}</div>\r\n </a>\r\n </div>\r\n </div>\r\n </v-row>\r\n\r\n <v-row class=\"contact\">\r\n <!-- w:439 h:86-->\r\n<!-- <v-col cols=\"12\" xl=\"5\" lg=\"5\" md=\"12\" class=\"pa-0 d-flex justify-lg-start justify-center mt-0\">-->\r\n<!-- <div class=\"contact-list\" @click=\"handleContact(0)\">-->\r\n<!-- <div class=\"left\">-->\r\n<!-- <v-img src=\"@/assets/images/contact/icon-tel.png\" max-width=\"34\" height=\"39\"></v-img>-->\r\n<!-- <div class=\"contact-list-text\">{{tel}}</div>-->\r\n<!-- </div>-->\r\n<!-- <div class=\"contact-list-icon\">-->\r\n<!-- <v-icon>mdi-chevron-right</v-icon>-->\r\n<!-- </div>-->\r\n<!-- </div>-->\r\n<!-- </v-col>-->\r\n\r\n <v-col cols=\"12\" xl=\"5\" lg=\"5\" md=\"12\" class=\"pa-0 d-flex justify-lg-start justify-center mt-0\">\r\n <div class=\"contact-list\" @click=\"handleContact(1)\">\r\n <div class=\"left\">\r\n <v-img src=\"@/assets/images/contact/icon-email.png\" max-width=\"34\" height=\"39\"></v-img>\r\n <div class=\"contact-list-text\">{{email}}</div>\r\n </div>\r\n <div class=\"contact-list-icon\">\r\n <v-icon>mdi-chevron-right</v-icon>\r\n </div>\r\n </div>\r\n </v-col>\r\n\r\n <v-spacer></v-spacer>\r\n\r\n <v-col cols=\"12\" xl=\"5\" lg=\"5\" md=\"12\" class=\"pa-0 d-flex justify-lg-end justify-center mt-4 mt-lg-0\">\r\n <div class=\"contact-list\" @click=\"handleContact(2)\">\r\n <div class=\"left\">\r\n <v-img src=\"@/assets/images/contact/icon-weixin.png\" max-width=\"34\" height=\"39\"></v-img>\r\n <div class=\"contact-list-text\">{{ $t('contact.companyInfo.wxTip') }}</div>\r\n </div>\r\n <div class=\"contact-list-icon\">\r\n <v-icon>mdi-chevron-right</v-icon>\r\n </div>\r\n\r\n </div>\r\n </v-col>\r\n </v-row>\r\n </v-col>\r\n <v-col cols=\"2\"></v-col>\r\n </v-row>\r\n\r\n <v-dialog\r\n class=\"dialog\"\r\n\r\n v-model=\"dialog\"\r\n max-width=\"80%\"\r\n transition=\"dialog-bottom-transition\"\r\n >\r\n <div class=\"dialog-main\">\r\n\r\n <v-tooltip top color=\"#376dc0\">\r\n <template v-slot:activator=\"{ on, attrs }\">\r\n <a :href=\"wxImgSrc\" target=\"_blank\">\r\n <v-img class=\"\" :src=\"wxImgSrc\" v-bind=\"attrs\" v-on=\"on\"></v-img>\r\n </a>\r\n </template>\r\n <span>{{ $t('product.detail.tips') }}</span>\r\n </v-tooltip>\r\n\r\n </div>\r\n </v-dialog>\r\n\r\n\r\n </v-container>\r\n</template>\r\n\r\n<script>\r\n\r\nimport {gsap} from 'gsap';\r\nimport {isContain} from '@/util/util.js';\r\nimport useClipboard from \"vue-clipboard3\";\r\nimport {useSnackbar} from \"@/stores/modules/snackbar\";\r\n\r\nexport default {\r\n // eslint-disable-next-line vue/multi-word-component-names\r\n name: \"Contact\",\r\n\r\n data() {\r\n return {\r\n isScroll: false,\r\n\r\n tel: \"021-8888 8888\",\r\n email: \"tcenertech@tcenertech.com\",\r\n\r\n dialog: false,\r\n\r\n wxImgSrc: require(\"@/assets/images/contact/wx.gif\"),\r\n }\r\n },\r\n\r\n mounted() {\r\n\r\n window.scrollTo(0, 0);\r\n\r\n this._animateHeaderImage();\r\n\r\n // this._part3Animate();\r\n //\r\n // window.onscroll = () => {\r\n // this._part3Animate();\r\n // }\r\n },\r\n\r\n methods: {\r\n async handleContact(index) {\r\n switch (index) {\r\n case 0:\r\n // 拨打电话\r\n window.open('tel:'+ this.tel, '_blank');\r\n break;\r\n case 1:\r\n // 复制\r\n try {\r\n await useClipboard().toClipboard(this.email)\r\n useSnackbar().openSnackbar({\r\n msg: \"复制成功\",\r\n color: 'success'\r\n });\r\n } catch (e) {\r\n console.error(e);\r\n console.error('复制失败')\r\n }\r\n break;\r\n case 2:\r\n\r\n this.dialog = true;\r\n\r\n break;\r\n default:\r\n break;\r\n }\r\n },\r\n\r\n _animateHeaderImage() {\r\n // 顶部图片\r\n gsap.from(\".header-image\", {\r\n y: 10,\r\n opacity: 0,\r\n duration: 1.5\r\n })\r\n\r\n gsap.from(\".about-info\", {\r\n y: 10,\r\n opacity: 0,\r\n duration: 1.5,\r\n delay: 0.5\r\n })\r\n },\r\n }\r\n}\r\n\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.container {\r\n padding-top: 67px !important;\r\n padding-bottom: 20px !important;\r\n}\r\n\r\n.header-image {\r\n position: relative;\r\n top: 0;\r\n\r\n .about-info {\r\n position: absolute;\r\n top: 240px;\r\n left: 120px;\r\n color: #ffffff;\r\n width: 100%;\r\n\r\n //&.about-info-md{\r\n // top: 120px !important;\r\n // left: 60px !important;\r\n //}\r\n\r\n .about-info-title {\r\n font-size: 34.31px;\r\n }\r\n\r\n .about-info-desc {\r\n font-size: 13.5px;\r\n line-height: 20.8px;\r\n margin-top: 16px;\r\n }\r\n }\r\n\r\n .about-info-xs {\r\n position: absolute;\r\n top: 0px;\r\n color: #ffffff;\r\n width: 100%;\r\n height: 100%;\r\n\r\n .about-info-title {\r\n font-size: 24.31px;\r\n }\r\n\r\n .about-info-desc {\r\n font-size: 10.5px;\r\n line-height: 15.8px;\r\n margin-top: 12px;\r\n }\r\n }\r\n}\r\n\r\n.row {\r\n margin: 0 !important;\r\n}\r\n\r\n.col {\r\n padding: 0 !important;\r\n}\r\n\r\n.main {\r\n line-height: 1;\r\n padding: 0 !important;\r\n\r\n margin-top: 86px;\r\n\r\n .company-title {\r\n font-size: 19.6px;\r\n }\r\n\r\n .company-desc {\r\n margin-top: 25px;\r\n }\r\n\r\n .company-address {\r\n font-size: 14.6px;\r\n }\r\n\r\n .company-map {\r\n margin-left: 36px;\r\n font-size: 15.3px;\r\n color: #1d2088;\r\n font-weight: bold;\r\n cursor: pointer;\r\n\r\n & > a {\r\n text-decoration-line: none;\r\n }\r\n\r\n .iconfont {\r\n margin-right: 8px;\r\n }\r\n }\r\n\r\n .contact {\r\n margin-top: 86px !important;\r\n\r\n .contact-list {\r\n border: 1px solid #d3d3d3;\r\n border-left: none;\r\n border-right: none;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n //width: 469px;\r\n width: 100%;\r\n height: 86px;\r\n cursor: pointer;\r\n\r\n padding: 0 30px 0 20px;\r\n\r\n .left {\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n .contact-list-text {\r\n margin-left: 16px;\r\n font-size: 14.6px;\r\n color: #000000;\r\n }\r\n }\r\n }\r\n}\r\n</style>","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Contact.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Contact.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Contact.vue?vue&type=template&id=77ec7098&scoped=true\"\nimport script from \"./Contact.vue?vue&type=script&lang=js\"\nexport * from \"./Contact.vue?vue&type=script&lang=js\"\nimport style0 from \"./Contact.vue?vue&type=style&index=0&id=77ec7098&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"77ec7098\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-container',{staticClass:\"py-0 px-0\",attrs:{\"fluid\":\"\"}},[_c('div',{staticClass:\"header-image\"},[_c('v-img',{attrs:{\"src\":require(\"@/assets/images/news/1.jpg\"),\"width\":\"100%\"}}),(_vm.$vuetify.breakpoint.smAndDown)?_c('div',{staticClass:\"about-info-xs\"},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"2\"}}),_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"8\"}},[_c('div',{staticClass:\"about-info-title text-center\"},[_vm._v(_vm._s(_vm.$t(\"news.aboutInfo.title\")))]),_c('div',{staticClass:\"about-info-desc text-center\"},[_vm._v(_vm._s(_vm.$t(\"news.aboutInfo.desc\")))])]),_c('v-col',{attrs:{\"cols\":\"2\"}})],1)],1):_c('div',{staticClass:\"about-info\"},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"2\"}}),_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"8\"}},[_c('div',{staticClass:\"about-info-title text-center\"},[_vm._v(_vm._s(_vm.$t(\"news.aboutInfo.title\")))]),_c('div',{staticClass:\"about-info-desc text-center\"},[_vm._v(_vm._s(_vm.$t(\"news.aboutInfo.desc\")))])]),_c('v-col',{attrs:{\"cols\":\"2\"}})],1)],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"2\"}}),_c('v-col',{staticClass:\"main\",attrs:{\"cols\":\"8\"}},[_c('v-row',{staticClass:\"part1\",attrs:{\"id\":\"part1\",\"justify\":\"center\"}},[_c('v-col',{staticClass:\"news-title\"},[_vm._v(_vm._s(_vm.$t('news.part1.title')))]),(!_vm.detailId)?_c('v-col',{staticClass:\"d-flex justify-end align-end\"},_vm._l((_vm.cateList),function(item,index){return _c('div',{key:index,staticClass:\"news-type\",class:[_vm.newsTypeIndex === index ? 'active' : ''],on:{\"click\":function($event){return _vm.handleCate(index)}}},[_vm._v(\" \"+_vm._s(item.title)+\" \")])}),0):_vm._e()],1),_c('v-row',{staticClass:\"part2\",class:[_vm.detailId ? 'justify-center' : ''],attrs:{\"id\":\"part2\"}},[(!_vm.detailId)?_vm._l((_vm.list),function(item2,index2){return _c('v-col',{key:index2,staticClass:\"l-item\",attrs:{\"cols\":\"12\",\"sm\":\"12\",\"md\":\"6\",\"lg\":\"4\",\"xl\":\"4\"}},[_c('v-card',{staticClass:\"card\",on:{\"click\":function($event){return _vm.handleView(index2)}}},[_c('v-img',{attrs:{\"src\":item2.image,\"width\":\"100%\"}}),_c('v-card-title',{staticClass:\"l-item-title\"},[_vm._v(_vm._s(item2.title))]),_c('v-card-text',{staticClass:\"l-item-desc\"},[_vm._v(_vm._s(item2.releaseAt))])],1)],1)}):[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('div',{staticClass:\"detail\"},[_c('div',{staticClass:\"detail-info\"},[_c('div',{staticClass:\"detail-info-date\"},[_vm._v(_vm._s(_vm.detail.releaseAt))]),_c('div',{staticClass:\"detail-info-title\"},[_vm._v(_vm._s(_vm.detail.title))])]),_c('div',{staticClass:\"news-detail-content\",domProps:{\"innerHTML\":_vm._s(_vm.detail.content)}})])])]],2),(!_vm.detailId)?[_c('v-row',{staticClass:\"part3\",attrs:{\"id\":\"part3\",\"justify\":\"center\"}},[_c('v-btn',{staticClass:\"btn\",attrs:{\"outlined\":\"\",\"loading\":_vm.isLoading},on:{\"click\":function($event){return _vm.handleMore()}}},[_vm._v(\" \"+_vm._s(_vm.isNoMore ? _vm.$t('news.noNoMore') : _vm.$t('news.loadMore'))+\" \")])],1)]:_vm._e()],2),_c('v-col',{attrs:{\"cols\":\"2\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import http from '@/util/http';\r\n\r\nconst api = {\r\n list: \"news/list\",\r\n view: \"news/view\",\r\n}\r\n\r\n// 获取新闻列表\r\nfunction NewsList(param) {\r\n const params = Object.assign({\r\n newType: 1,\r\n page: 1,\r\n pageSize: 2,\r\n }, param)\r\n return http.get(api.list, params)\r\n // return new Promise((resolve, reject) => {\r\n // return Vue.axios.get(config.apiUrl + api.list + \"?page=\" + params.page +\"&pageSize=\" + params.pageSize + \"&newsType=\" + params.newType).then((response) => {\r\n // resolve(response.data)\r\n // }).catch(error => {\r\n // reject(error)\r\n // })\r\n // })\r\n}\r\n\r\n// 新闻详情\r\nfunction NewsView(param) {\r\n const params = Object.assign({\r\n id: 0,\r\n }, param)\r\n return http.get(api.view, params)\r\n // return new Promise((resolve, reject) => {\r\n // return Vue.axios.get(config.apiUrl + api.view + \"?id=\" + params.id).then((response) => {\r\n // resolve(response.data)\r\n // }).catch(error => {\r\n // reject(error)\r\n // })\r\n // })\r\n}\r\n\r\nexport {\r\n NewsList,\r\n NewsView,\r\n}","// import Vue from \"vue\";\r\n// import config from \"@/config.js\";\r\n\r\nimport http from '@/util/http';\r\n\r\nconst api = {\r\n all: \"news/cate/all\",\r\n}\r\n\r\nfunction NewsCateAll() {\r\n return http.get(api.all)\r\n // return new Promise((resolve, reject) => {\r\n // return Vue.axios.get(config.apiUrl + api.all).then((response) => {\r\n // resolve(response.data)\r\n // }).catch(error => {\r\n // reject(error)\r\n // }).finally(() => {\r\n // // console.log(\"网络错误\")\r\n // })\r\n // })\r\n}\r\n\r\nexport {\r\n NewsCateAll\r\n}","<template>\r\n <v-container fluid class=\"py-0 px-0\">\r\n\r\n <div class=\"header-image\">\r\n <v-img class=\"\" src=\"@/assets/images/news/1.jpg\" width=\"100%\"></v-img>\r\n <div class=\"about-info-xs\" v-if=\"$vuetify.breakpoint.smAndDown\">\r\n <v-row>\r\n <v-col cols=\"2\"></v-col>\r\n <v-col cols=\"8\" class=\"pa-0\">\r\n <div class=\"about-info-title text-center\">{{ $t(\"news.aboutInfo.title\") }}</div>\r\n <div class=\"about-info-desc text-center\">{{ $t(\"news.aboutInfo.desc\") }}</div>\r\n </v-col>\r\n <v-col cols=\"2\"></v-col>\r\n </v-row>\r\n </div>\r\n\r\n <div class=\"about-info\" v-else>\r\n <v-row>\r\n <v-col cols=\"2\"></v-col>\r\n <v-col cols=\"8\" class=\"pa-0\">\r\n <div class=\"about-info-title text-center\">{{ $t(\"news.aboutInfo.title\") }}</div>\r\n <div class=\"about-info-desc text-center\">{{ $t(\"news.aboutInfo.desc\") }}</div>\r\n </v-col>\r\n <v-col cols=\"2\"></v-col>\r\n </v-row>\r\n </div>\r\n </div>\r\n\r\n <v-row>\r\n <v-col cols=\"2\"></v-col>\r\n <v-col cols=\"8\" class=\"main\">\r\n <v-row id=\"part1\" justify=\"center\" class=\"part1\">\r\n <v-col class=\"news-title\">{{ $t('news.part1.title') }}</v-col>\r\n <v-col v-if=\"!detailId\" class=\"d-flex justify-end align-end\">\r\n <div class=\"news-type\" :class=\"[newsTypeIndex === index ? 'active' : '']\" v-for=\"(item, index) in cateList\"\r\n :key=\"index\" @click=\"handleCate(index)\">\r\n {{ item.title }}\r\n </div>\r\n </v-col>\r\n </v-row>\r\n\r\n <!-- 列表 -->\r\n <v-row id=\"part2\" class=\"part2\" :class=\"[detailId ? 'justify-center' : '']\">\r\n <!-- 列表-->\r\n <template v-if=\"!detailId\">\r\n <v-col cols=\"12\" sm=\"12\" md=\"6\" lg=\"4\" xl=\"4\" class=\"l-item\" v-for=\"(item2, index2) in list\" :key=\"index2\">\r\n <v-card class=\"card\" @click=\"handleView(index2)\">\r\n <v-img\r\n :src=\"item2.image\"\r\n width=\"100%\"\r\n ></v-img>\r\n <v-card-title class=\"l-item-title\">{{ item2.title }}</v-card-title>\r\n <v-card-text class=\"l-item-desc\">{{ item2.releaseAt }}</v-card-text>\r\n </v-card>\r\n </v-col>\r\n </template>\r\n <!-- 详情-->\r\n <template v-else>\r\n <v-col cols=\"10\">\r\n <div class=\"detail\">\r\n <div class=\"detail-info\">\r\n <div class=\"detail-info-date\">{{ detail.releaseAt }}</div>\r\n <div class=\"detail-info-title\">{{ detail.title }}</div>\r\n </div>\r\n <div class=\"news-detail-content\" v-html=\"detail.content\"></div>\r\n </div>\r\n </v-col>\r\n </template>\r\n </v-row>\r\n\r\n <!-- 了解更多-->\r\n <template v-if=\"!detailId\">\r\n <v-row id=\"part3\" justify=\"center\" class=\"part3\">\r\n <v-btn class=\"btn\" outlined @click=\"handleMore()\" :loading=\"isLoading\">\r\n {{ isNoMore ? $t('news.noNoMore') : $t('news.loadMore') }}\r\n </v-btn>\r\n </v-row>\r\n </template>\r\n </v-col>\r\n <v-col cols=\"2\"></v-col>\r\n </v-row>\r\n </v-container>\r\n</template>\r\n\r\n<script>\r\nimport {getMoreListData, isContain} from \"@/util/util\";\r\nimport {gsap} from \"gsap\";\r\nimport {NewsList, NewsView} from \"@/api/news\";\r\nimport {NewsCateAll} from \"@/api/newsCate\";\r\n// import {\r\n// useMessage\r\n// } from \"@/stores/modules/message\"\r\n\r\nexport default {\r\n // eslint-disable-next-line vue/multi-word-component-names\r\n name: \"News\",\r\n\r\n data() {\r\n return {\r\n list: [],\r\n\r\n isScroll: false,\r\n\r\n isLoading: false,\r\n\r\n // 页码\r\n page: 1,\r\n\r\n // 分页偏移量\r\n pageSize: 10,\r\n\r\n // 当前新闻类型下标\r\n newsTypeIndex: 1,\r\n\r\n cateList: [],\r\n\r\n // 没有更多\r\n isNoMore: false,\r\n\r\n detail: {\r\n id: '',\r\n content: ''\r\n },\r\n\r\n detailId: false,\r\n }\r\n },\r\n\r\n mounted() {\r\n // console.log(\"this.$router\", this.$route.params.id);\r\n window.scrollTo(0, 0);\r\n\r\n // 资讯中心\r\n gsap.from(\".part1\", {\r\n y: -30,\r\n opacity: 0,\r\n duration: 1\r\n })\r\n\r\n this._animateHeaderImage();\r\n\r\n // window.onscroll = () => {\r\n // this._partAnimate();\r\n // }\r\n\r\n // 设置详情 id\r\n this.detailId = this.$route.params.id;\r\n if (this.detailId) {\r\n this._getDetail();\r\n this._getNewsCateAll();\r\n } else {\r\n this._getNewsCateAll().then(() => {\r\n this._getList();\r\n }).catch().finally();\r\n }\r\n },\r\n\r\n activated() {\r\n },\r\n\r\n methods: {\r\n // 详情\r\n handleView(index) {\r\n this.detailId = this.list[index].id;\r\n // this.$router.push(\"/news/\" + this.detailId);\r\n this.$router.push({\r\n path: \"/news/\" + this.detailId,\r\n });\r\n this._getDetail();\r\n },\r\n\r\n // 选择类型\r\n handleCate(index) {\r\n\r\n // 类型下标\r\n this.newsTypeIndex = index;\r\n\r\n this.list = [];\r\n this.page = 1;\r\n this.isNoMore = false;\r\n\r\n this._getList();\r\n },\r\n\r\n // 加载更多按钮\r\n handleMore() {\r\n // console.log(\"handleMore\");\r\n if (this.isNoMore) {\r\n return;\r\n }\r\n if (this.isLoading) {\r\n return;\r\n }\r\n this.isLoading = true;\r\n this._getList();\r\n },\r\n\r\n _animateHeaderImage() {\r\n // 顶部图片\r\n gsap.from(\".header-image\", {\r\n y: 10,\r\n opacity: 0,\r\n duration: 1.5\r\n })\r\n\r\n gsap.from(\".about-info\", {\r\n y: 10,\r\n opacity: 0,\r\n duration: 1.5,\r\n delay: 0.5\r\n })\r\n },\r\n\r\n // 列表动画\r\n _part2Animate(list) {\r\n const timer = setTimeout(() => {\r\n clearTimeout(timer);\r\n\r\n let $dom = document.getElementsByClassName(\"l-item\");\r\n\r\n let tmp = [];\r\n\r\n let num = 1;\r\n for (let i = $dom.length - 1; i >= 0; i--) {\r\n if (num <= list.length) {\r\n tmp.push($dom[i]);\r\n }\r\n num++\r\n }\r\n // console.log(\"tmp1\", tmp);\r\n tmp = tmp.reverse();\r\n // console.log(\"tmp2\", tmp);\r\n\r\n // let tl = gsap.timeline();\r\n for (let i = 0; i < tmp.length; i++) {\r\n gsap.from(tmp[i], {\r\n y: 0,\r\n duration: 0.8,\r\n delay: 0.5 * i\r\n })\r\n gsap.to(tmp[i], {\r\n opacity: 1,\r\n delay: 0.1 * i,\r\n })\r\n }\r\n }, 500)\r\n },\r\n\r\n // // 加载更多动画\r\n // _partAnimate() {\r\n // const p = document.getElementById(\"part3\");\r\n // if (!p) {\r\n // return false;\r\n // }\r\n // if (this.isScroll) {\r\n // return false;\r\n // }\r\n // this.isScroll = true;\r\n //\r\n // if (isContain(p)) {\r\n // // console.log(\"show\");\r\n //\r\n // gsap.from(\"#part3\", {\r\n // y: 100,\r\n // opacity: 0,\r\n // duration: 1\r\n // });\r\n // } else {\r\n // // console.log(\"hide\")\r\n // }\r\n // },\r\n\r\n // 列表数据\r\n _getList() {\r\n NewsList({\r\n newsType: this.cateList[this.newsTypeIndex].id,\r\n page: this.page,\r\n pageSize: this.pageSize,\r\n }).then((eRes) => {\r\n // console.log(\"NewsList\", eRes);\r\n\r\n // useMessage().success(\"dddddd\");\r\n\r\n if (eRes.data.list && eRes.data.list.length > 0) {\r\n // this.list = eRes.data.list\r\n\r\n this.list = getMoreListData(eRes.data.list, this.list, this.page);\r\n\r\n // console.log(\"this.list\", this.list)\r\n\r\n this._part2Animate(eRes.data.list);\r\n\r\n this.page++\r\n } else {\r\n this.isNoMore = true;\r\n }\r\n\r\n }).catch().finally(() => {\r\n this.isLoading = false;\r\n });\r\n },\r\n\r\n // 新闻分类\r\n _getNewsCateAll() {\r\n this.isLoading = true;\r\n\r\n return new Promise((resolve, reject) => {\r\n NewsCateAll().then((sRes) => {\r\n // console.log(\"NewsCateAll1\", sRes);\r\n this.cateList = sRes.data.all;\r\n resolve(sRes);\r\n }).catch((eRes) => {\r\n reject(eRes);\r\n }).finally();\r\n })\r\n },\r\n\r\n // 新闻详情\r\n _getDetail() {\r\n // 测试\r\n // this.detail.content = \"<img src='/images/1.png' style='width: 100%' />\";\r\n\r\n NewsView({\r\n id: this.detailId\r\n }).then((sRes) => {\r\n // console.log(\"getDetail\", sRes);\r\n this.detail = sRes.data;\r\n }).catch().finally();\r\n }\r\n }\r\n\r\n}\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n\r\n.container {\r\n padding-top: 67px !important;\r\n padding-bottom: 20px !important;\r\n}\r\n\r\n.header-image {\r\n\r\n position: relative;\r\n top: 0;\r\n\r\n .about-info {\r\n position: absolute;\r\n top: 77px;\r\n color: #ffffff;\r\n width: 100%;\r\n\r\n .about-info-title {\r\n font-size: 34.31px;\r\n }\r\n\r\n .about-info-desc {\r\n font-size: 16.88px;\r\n line-height: 21px;\r\n margin-top: 14px;\r\n }\r\n }\r\n .about-info-xs {\r\n position: absolute;\r\n top: 77px;\r\n color: #ffffff;\r\n width: 100%;\r\n\r\n .about-info-title {\r\n font-size: 24.31px;\r\n }\r\n\r\n .about-info-desc {\r\n font-size: 12.88px;\r\n line-height: 18px;\r\n margin-top: 10px;\r\n }\r\n }\r\n}\r\n\r\n.row {\r\n margin: 0 !important;\r\n}\r\n\r\n.col {\r\n padding: 0 !important;\r\n}\r\n\r\n.main {\r\n line-height: 1;\r\n padding: 0 !important;\r\n color: #000000;\r\n\r\n margin-top: 86px;\r\n\r\n .part1 {\r\n padding: 0 5px !important;\r\n\r\n .news-title {\r\n font-size: 20.81px;\r\n font-weight: bold;\r\n }\r\n\r\n .news-type {\r\n font-size: 11.25px;\r\n cursor: pointer;\r\n\r\n &.active {\r\n font-weight: bold;\r\n }\r\n\r\n &:first-child {\r\n margin-right: 29px;\r\n }\r\n }\r\n }\r\n\r\n .part2 {\r\n margin-top: 34px !important;\r\n\r\n .l-item {\r\n margin-bottom: 35px !important;\r\n padding: 0 5px !important;\r\n opacity: 0;\r\n\r\n .card {\r\n box-shadow: unset !important;\r\n border-radius: 0 !important;\r\n //width: 271px !important;\r\n //height: 207px !important;\r\n }\r\n\r\n .l-item-title {\r\n //padding: 17px 17px 17px 0 !important;\r\n font-size: 14.62px;\r\n margin-top: 18px !important;\r\n padding: 0 !important;\r\n line-height: 18px !important;\r\n }\r\n\r\n .l-item-desc {\r\n //padding: 0 9px 9px 0 !important;\r\n font-size: 11.25px;\r\n margin-top: 10px !important;\r\n padding: 0 !important;\r\n line-height: 1 !important;\r\n }\r\n }\r\n\r\n // 详情\r\n .detail-info {\r\n .detail-info-date {\r\n font-size: 15px;\r\n color: #908d89;\r\n }\r\n\r\n .detail-info-title {\r\n margin-top: 23px;\r\n font-size: 27.76px;\r\n line-height: 34px;\r\n }\r\n }\r\n\r\n .news-detail-content {\r\n margin-top: 55px;\r\n }\r\n }\r\n\r\n .part3 {\r\n margin-top: 62px !important;\r\n\r\n .btn {\r\n width: 153px;\r\n height: 35px;\r\n border: 1px solid #000000;\r\n border-radius: 0;\r\n background-color: rgba(1, 1, 1, 0);\r\n font-size: 12.37px !important;\r\n }\r\n }\r\n\r\n}\r\n</style>\r\n\r\n<style lang=\"scss\">\r\n.news-detail-content{\r\n p {\r\n margin-bottom: 0 !important;\r\n }\r\n}\r\n</style>","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./News.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./News.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./News.vue?vue&type=template&id=4257028e&scoped=true\"\nimport script from \"./News.vue?vue&type=script&lang=js\"\nexport * from \"./News.vue?vue&type=script&lang=js\"\nimport style0 from \"./News.vue?vue&type=style&index=0&id=4257028e&prod&scoped=true&lang=scss\"\nimport style1 from \"./News.vue?vue&type=style&index=1&id=4257028e&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4257028e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-container',{staticClass:\"py-0 px-0\",attrs:{\"fluid\":\"\"}},[_c('div',{staticClass:\"header-image\"},[_c('v-img',{attrs:{\"src\":require(\"@/assets/images/project/v100/header.png\"),\"width\":\"100%\"}}),(_vm.$vuetify.breakpoint.smAndDown)?_c('div',{staticClass:\"about-info-xs d-flex justify-center align-center\"},[_c('div',{staticClass:\"about-info-title text-center\"},[_vm._v(_vm._s(_vm.$t(\"project.part1\")))])]):_c('div',{staticClass:\"about-info\"},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"2\"}}),_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"8\"}},[_c('div',{staticClass:\"about-info-title text-center\"},[_vm._v(_vm._s(_vm.$t(\"project.part1\")))])]),_c('v-col',{attrs:{\"cols\":\"2\"}})],1)],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"1\"}}),_c('v-col',{staticClass:\"main\",attrs:{\"cols\":\"10\"}},[_c('v-row',{staticClass:\"part2\",attrs:{\"id\":\"part2\"}},_vm._l((_vm.list),function(item,index){return _c('v-col',{key:index,staticClass:\"l-item\",attrs:{\"xs\":\"12\",\"sm\":\"6\",\"md\":\"6\",\"lg\":\"4\",\"xl\":\"4\"}},[_c('div',{staticClass:\"box\"},[_c('div',{staticClass:\"text\"},[_c('div',{staticClass:\"txt-1\"},[_vm._v(_vm._s(item.title))]),_c('div',{staticClass:\"txt-2\"},[_vm._v(_vm._s(item.text))])]),_c('v-img',{staticClass:\"image\",attrs:{\"src\":item.img,\"width\":\"100%\"}})],1)])}),1)],1),_c('v-col',{attrs:{\"cols\":\"1\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <v-container fluid class=\"py-0 px-0\">\r\n <div class=\"header-image\">\r\n <v-img src=\"@/assets/images/project/v100/header.png\" width=\"100%\"></v-img>\r\n\r\n <div class=\"about-info-xs d-flex justify-center align-center\" v-if=\"$vuetify.breakpoint.smAndDown\">\r\n <div class=\"about-info-title text-center\">{{ $t(\"project.part1\") }}</div>\r\n </div>\r\n\r\n <div class=\"about-info\" v-else>\r\n <v-row>\r\n <v-col cols=\"2\"></v-col>\r\n <v-col cols=\"8\" class=\"pa-0\">\r\n <div class=\"about-info-title text-center\">{{ $t(\"project.part1\") }}</div>\r\n </v-col>\r\n <v-col cols=\"2\"></v-col>\r\n </v-row>\r\n </div>\r\n </div>\r\n\r\n <v-row>\r\n <v-col cols=\"1\"></v-col>\r\n <v-col cols=\"10\" class=\"main\">\r\n\r\n <!--图文-->\r\n <v-row id=\"part2\" class=\"part2\">\r\n <v-col xs=\"12\" sm=\"6\" md=\"6\" lg=\"4\" xl=\"4\" class=\"l-item\"\r\n v-for=\"(item, index) in list\"\r\n :key=\"index\">\r\n <div class=\"box\">\r\n <div class=\"text\">\r\n <div class=\"txt-1\">{{ item.title }}</div>\r\n <div class=\"txt-2\">{{ item.text }}</div>\r\n </div>\r\n <v-img class=\"image\" :src=\"item.img\" width=\"100%\"></v-img>\r\n </div>\r\n </v-col>\r\n </v-row>\r\n\r\n </v-col>\r\n <v-col cols=\"1\"></v-col>\r\n </v-row>\r\n </v-container>\r\n</template>\r\n\r\n<script>\r\nimport {gsap} from \"gsap\";\r\nimport {useLanguage} from \"@/stores\";\r\n\r\nexport default {\r\n name: \"Project\",\r\n\r\n data() {\r\n return {\r\n // 图文列表\r\n list: []\r\n }\r\n },\r\n\r\n computed: {\r\n languageStore() {\r\n return useLanguage();\r\n },\r\n },\r\n\r\n mounted() {\r\n window.scrollTo(0, 0)\r\n\r\n this._getList();\r\n\r\n this._watchGetList();\r\n\r\n this._animateHeaderImage();\r\n\r\n\r\n gsap.from(\".part2\", {\r\n y: 50,\r\n opacity: 0,\r\n duration: 1\r\n });\r\n },\r\n\r\n methods: {\r\n _animateHeaderImage() {\r\n // 顶部图片\r\n gsap.from(\".header-image\", {\r\n y: 10,\r\n opacity: 0,\r\n duration: 1.5\r\n })\r\n\r\n //\r\n gsap.from(\".about-info\", {\r\n y: 10,\r\n opacity: 0,\r\n duration: 1.5,\r\n delay: 0.5\r\n })\r\n },\r\n\r\n _getList() {\r\n this.list = [\r\n {\r\n title: this.$t(\"project.part2.0.title\"),\r\n text: this.$t(\"project.part2.0.content\"),\r\n img: require('@/assets/images/project/v100/1.jpg')\r\n },\r\n {\r\n title: this.$t(\"project.part2.1.title\"),\r\n text: this.$t(\"project.part2.1.content\"),\r\n img: require('@/assets/images/project/v100/2.jpg')\r\n },\r\n {\r\n title: this.$t(\"project.part2.2.title\"),\r\n text: this.$t(\"project.part2.2.content\"),\r\n img: require('@/assets/images/project/v100/3.jpg')\r\n },\r\n ]\r\n },\r\n\r\n _watchGetList() {\r\n // watch 监听 $t 切换\r\n useLanguage().$subscribe((mutation, state) => {\r\n console.log(\"$subscribe\", this.languageStore.lang, mutation, state.lang);\r\n this._getList();\r\n })\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.container {\r\n padding-top: 67px !important;\r\n padding-bottom: 20px !important;\r\n}\r\n\r\n.row {\r\n margin: 0 !important;\r\n}\r\n\r\n.col {\r\n padding: 0 !important;\r\n}\r\n\r\n.header-image {\r\n\r\n position: relative;\r\n top: 0;\r\n\r\n .about-info {\r\n position: absolute;\r\n top: 77px;\r\n color: #101010;\r\n width: 100%;\r\n\r\n .about-info-title {\r\n font-size: 34.31px;\r\n }\r\n }\r\n\r\n .about-info-xs {\r\n position: absolute;\r\n top: 0px;\r\n color: #101010;\r\n width: 100%;\r\n height: 100%;\r\n\r\n .about-info-title {\r\n font-size: 24.31px;\r\n }\r\n }\r\n}\r\n\r\n.main {\r\n line-height: 1;\r\n padding: 0 !important;\r\n\r\n .part2 {\r\n margin-top: 86px !important;\r\n\r\n .l-item {\r\n margin-bottom: 20px !important;\r\n padding: 0 6px !important;\r\n\r\n .box {\r\n position: relative;\r\n\r\n .text {\r\n width: 100%;\r\n position: absolute;\r\n top: 44px;\r\n z-index: 1;\r\n color: #ffffff;\r\n text-align: center;\r\n padding: 0 24px;;\r\n\r\n\r\n .txt-1 {\r\n font-size: 15.75px;\r\n line-height: 20px;\r\n }\r\n\r\n .txt-2 {\r\n margin-top: 14px;\r\n font-size: 13.5px;\r\n line-height: 20px;\r\n //font-weight: bold;\r\n //font-weight: unset;\r\n }\r\n }\r\n\r\n .image {\r\n border-radius: 2px;\r\n }\r\n\r\n }\r\n }\r\n }\r\n}\r\n</style>","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Project.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Project.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Project.vue?vue&type=template&id=01def48e&scoped=true\"\nimport script from \"./Project.vue?vue&type=script&lang=js\"\nexport * from \"./Project.vue?vue&type=script&lang=js\"\nimport style0 from \"./Project.vue?vue&type=style&index=0&id=01def48e&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"01def48e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-container',{staticClass:\"px-0 py-0\",attrs:{\"fluid\":\"\"}},[_c('div',{staticClass:\"header-image\"},[_c('v-img',{attrs:{\"src\":require(\"@/assets/images/join/1.jpg\"),\"width\":\"100%\"}}),(_vm.$vuetify.breakpoint.xsOnly)?_c('div',{staticClass:\"about-info-xs d-flex justify-center align-center\"},[_c('div',{staticClass:\"about-info-title\"},[_vm._v(_vm._s(_vm.$t('join.listPart.left.title')))])]):_c('div',{staticClass:\"about-info\"},[_c('div',{staticClass:\"about-info-title\"},[_vm._v(_vm._s(_vm.$t('join.listPart.left.title')))])])],1),(!_vm.detailId)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"1\",\"sm\":\"1\",\"md\":\"3\"}}),_c('v-col',{staticClass:\"main pa-0 d-flex flex-column align-center\",attrs:{\"cols\":\"10\",\"sm\":\"10\",\"md\":\"6\"}},[_c('div',{staticClass:\"join-search\"},[_c('div',{staticClass:\"icon\"},[_c('span',{staticClass:\"mdi mdi-magnify\"})]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.searchSalaryName),expression:\"searchSalaryName\"}],staticClass:\"input-poster\",attrs:{\"type\":\"text\",\"placeholder\":_vm.$t('join.listPart.right.search.placeholder')},domProps:{\"value\":(_vm.searchSalaryName)},on:{\"input\":function($event){if($event.target.composing)return;_vm.searchSalaryName=$event.target.value}}}),_c('div',{staticClass:\"btn-poster\",on:{\"click\":function($event){return _vm.handleSearch()}}},[_vm._v(_vm._s(_vm.$t('join.listPart.right.search.searchBtn')))])]),_c('div',{staticClass:\"list\"},_vm._l((_vm.list),function(item,index){return _c('div',{key:index,staticClass:\"list-item\",on:{\"click\":function($event){return _vm.handleView(index)}}},[_c('div',{staticClass:\"list-item-title\"},[_vm._v(_vm._s(item.title))]),_c('div',{staticClass:\"list-item-info\"},[_vm._v(_vm._s(item.address)+\" | \"+_vm._s(_vm.$t('join.listPart.right.list.money'))+\":\"+_vm._s(item.salary)+\" \")]),_c('div',{staticClass:\"join-list-item-desc\",domProps:{\"innerHTML\":_vm._s(item.dc)}})])}),0),(_vm.allListCount > 0)?_c('div',{staticClass:\"bottom\"},[_c('v-pagination',{attrs:{\"length\":_vm.allPage,\"color\":\"#1d2088\"},on:{\"next\":_vm.handleNextPage,\"previous\":_vm.handlePrevPage,\"input\":_vm.handleInputPage},model:{value:(_vm.pageNum),callback:function ($$v) {_vm.pageNum=$$v},expression:\"pageNum\"}})],1):_vm._e()]),_c('v-col',{attrs:{\"cols\":\"1\",\"sm\":\"1\",\"md\":\"3\"}})],1):_c('v-row',[_c('v-col',{attrs:{\"cols\":\"1\",\"md\":\"3\"}}),_c('v-col',{staticClass:\"main pa-0\",attrs:{\"cols\":\"10\",\"md\":\"6\"}},[_c('div',{staticClass:\"detail\"},[_c('div',{staticClass:\"detail-title\"},[_vm._v(_vm._s(_vm.detail.title))]),_c('div',{staticClass:\"detail-info\"},[_vm._v(_vm._s(_vm.detail.address)+\" | \"+_vm._s(_vm.$t('join.detailPart.money'))+\":\"+_vm._s(_vm.detail.salary))]),_c('div',{staticClass:\"detail-desc\"},[_c('div',{staticClass:\"desc-title\"},[_c('div',{staticClass:\"line\"}),_c('div',{staticClass:\"text\"},[_vm._v(_vm._s(_vm.$t('join.detailPart.descTitle')))])]),_c('div',{staticClass:\"join-desc-content\"},[_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.detail.content)}})])]),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({staticClass:\"detail-btn d-flex flex-column align-center justify-center flex-sm-row\",on:{\"click\":function($event){return _vm.handleCopy()}}},'div',attrs,false),on),[_c('div',{},[_vm._v(_vm._s(_vm.$t('join.detailPart.detailBtn.text'))+\":\")]),_c('div',{},[_vm._v(_vm._s(_vm.detail.deliveryAddress))])])]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('join.detailPart.detailBtn.tips')))])])],1)]),_c('v-col',{attrs:{\"cols\":\"1\",\"md\":\"3\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import http from '@/util/http';\r\n\r\nconst api = {\r\n list: \"salary/list\",\r\n view: \"salary/view\",\r\n}\r\n\r\n// 获取新闻列表\r\nfunction SalaryList(param) {\r\n const params = Object.assign({\r\n page: 1,\r\n pageSize: 2,\r\n }, param)\r\n return http.get(api.list, params)\r\n // return new Promise((resolve, reject) => {\r\n // return Vue.axios.get(config.apiUrl + api.list + \"?page=\" + params.page +\"&pageSize=\" + params.pageSize + \"&salaryType=\" + params.newType).then((response) => {\r\n // resolve(response.data)\r\n // }).catch(error => {\r\n // reject(error)\r\n // })\r\n // })\r\n}\r\n\r\n// 新闻详情\r\nfunction SalaryView(param) {\r\n const params = Object.assign({\r\n id: 0,\r\n }, param)\r\n return http.get(api.view, params)\r\n // return new Promise((resolve, reject) => {\r\n // return Vue.axios.get(config.apiUrl + api.view + \"?id=\" + params.id).then((response) => {\r\n // resolve(response.data)\r\n // }).catch(error => {\r\n // reject(error)\r\n // })\r\n // })\r\n}\r\n\r\nexport {\r\n SalaryList,\r\n SalaryView,\r\n}","<template>\r\n <v-container fluid class=\"px-0 py-0\">\r\n\r\n <div class=\"header-image\">\r\n <v-img class=\"\" src=\"@/assets/images/join/1.jpg\" width=\"100%\"></v-img>\r\n\r\n <div class=\"about-info-xs d-flex justify-center align-center\" v-if=\"$vuetify.breakpoint.xsOnly\">\r\n <div class=\"about-info-title\">{{ $t('join.listPart.left.title') }}</div>\r\n </div>\r\n\r\n <div class=\"about-info\" v-else>\r\n <div class=\"about-info-title\">{{ $t('join.listPart.left.title') }}</div>\r\n </div>\r\n\r\n </div>\r\n\r\n <v-row v-if=\"!detailId\">\r\n <v-col cols=\"1\" sm=\"1\" md=\"3\" ></v-col>\r\n <v-col cols=\"10\" sm=\"10\" md=\"6\" class=\"main pa-0 d-flex flex-column align-center\">\r\n\r\n <div class=\"join-search\">\r\n <div class=\"icon\"><span class=\"mdi mdi-magnify\"></span></div>\r\n <input class=\"input-poster\" type=\"text\" :placeholder=\"$t('join.listPart.right.search.placeholder')\"\r\n v-model=\"searchSalaryName\">\r\n <div class=\"btn-poster\" @click=\"handleSearch()\">{{ $t('join.listPart.right.search.searchBtn') }}</div>\r\n </div>\r\n <div class=\"list\">\r\n <div class=\"list-item\" v-for=\"(item, index) in list\" :key=\"index\" @click=\"handleView(index)\">\r\n <div class=\"list-item-title\">{{ item.title }}</div>\r\n <div class=\"list-item-info\">{{ item.address }} | {{\r\n $t('join.listPart.right.list.money')\r\n }}:{{ item.salary }}\r\n </div>\r\n <div class=\"join-list-item-desc\" v-html=\"item.dc\"></div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"bottom\" v-if=\"allListCount > 0\">\r\n <v-pagination\r\n v-model=\"pageNum\"\r\n :length=\"allPage\"\r\n color=\"#1d2088\"\r\n @next=\"handleNextPage\"\r\n @previous=\"handlePrevPage\"\r\n @input=\"handleInputPage\"\r\n ></v-pagination>\r\n </div>\r\n\r\n </v-col>\r\n <v-col cols=\"1\" sm=\"1\" md=\"3\" ></v-col>\r\n </v-row>\r\n\r\n <v-row v-else>\r\n <v-col cols=\"1\" md=\"3\"></v-col>\r\n <v-col cols=\"10\" md=\"6\" class=\"main pa-0\">\r\n <!--详情-->\r\n <div class=\"detail\">\r\n <div class=\"detail-title\">{{ detail.title }}</div>\r\n <div class=\"detail-info\">{{ detail.address }} | {{ $t('join.detailPart.money') }}:{{ detail.salary }}</div>\r\n <div class=\"detail-desc\">\r\n <div class=\"desc-title\">\r\n <div class=\"line\"></div>\r\n <div class=\"text\">{{ $t('join.detailPart.descTitle') }}</div>\r\n </div>\r\n <div class=\"join-desc-content\">\r\n <div v-html=\"detail.content\"></div>\r\n </div>\r\n </div>\r\n\r\n <v-tooltip top>\r\n <template v-slot:activator=\"{ on, attrs }\">\r\n <div class=\"detail-btn d-flex flex-column align-center justify-center flex-sm-row \"\r\n v-bind=\"attrs\"\r\n v-on=\"on\"\r\n @click=\"handleCopy()\"\r\n >\r\n <div class=\"\">{{ $t('join.detailPart.detailBtn.text') }}:</div>\r\n <div class=\"\">{{ detail.deliveryAddress }}</div>\r\n </div>\r\n </template>\r\n <span>{{ $t('join.detailPart.detailBtn.tips') }}</span>\r\n </v-tooltip>\r\n\r\n </div>\r\n </v-col>\r\n <v-col cols=\"1\" md=\"3\"></v-col>\r\n </v-row>\r\n </v-container>\r\n</template>\r\n\r\n<script>\r\nimport {getMoreListData} from '@/util/util.js';\r\n// import {gsap} from \"gsap\";\r\nimport {SalaryView, SalaryList} from \"@/api/salary\";\r\nimport {useSnackbar} from \"@/stores/modules/snackbar\";\r\n\r\nimport useClipboard from 'vue-clipboard3'\r\nimport {gsap} from \"gsap\";\r\n\r\nexport default {\r\n\r\n // eslint-disable-next-line vue/multi-word-component-names\r\n name: \"Join\",\r\n\r\n data() {\r\n return {\r\n pageNum: 1,\r\n\r\n allPage: 1,\r\n\r\n allListCount: 0,\r\n\r\n list: [],\r\n\r\n detail: {\r\n id: '',\r\n title: '',\r\n address: '',\r\n salary: '',\r\n content: ''\r\n },\r\n\r\n detailId: false,\r\n\r\n searchSalaryName: \"\",\r\n\r\n // 没有更多\r\n isNoMore: false,\r\n }\r\n },\r\n\r\n mounted() {\r\n window.scrollTo(0, 0);\r\n\r\n this._animateHeaderImage();\r\n\r\n // 设置搜索薪资名称\r\n this.searchSalaryName = this.$route.params.search;\r\n\r\n // 设置详情 id\r\n this.detailId = this.$route.params.id;\r\n\r\n if (this.detailId) {\r\n this._getDetail();\r\n } else {\r\n this._getList();\r\n }\r\n },\r\n\r\n methods: {\r\n handlePrevPage() {\r\n window.scrollTo(0, 0)\r\n this.list = [];\r\n if (this.pageNum > 1) {\r\n this.pageNum--;\r\n }\r\n this._getList();\r\n },\r\n\r\n handleInputPage(e) {\r\n window.scrollTo(0, 0)\r\n console.log(\"handleInputPage\", e)\r\n this.list = [];\r\n this.pageNum = e;\r\n this._getList();\r\n },\r\n\r\n handleNextPage() {\r\n window.scrollTo(0, 0)\r\n this.list = [];\r\n if (this.pageNum < this.allPage) {\r\n this.pageNum++;\r\n }\r\n this._getList();\r\n },\r\n\r\n // 拷贝简历投递地址\r\n async handleCopy() {\r\n console.log(\"handleCopy\");\r\n // 复制\r\n try {\r\n await useClipboard().toClipboard(this.detail.deliveryAddress)\r\n useSnackbar().openSnackbar({\r\n msg: \"复制成功\",\r\n color: 'success'\r\n });\r\n } catch (e) {\r\n console.error(e);\r\n console.error('复制失败')\r\n }\r\n },\r\n\r\n // 更新职位名称\r\n handleSearch() {\r\n this.list = [];\r\n this.pageNum = 1;\r\n\r\n this.$router.push({\r\n path: \"/join/\" + this.searchSalaryName,\r\n });\r\n\r\n this._getList();\r\n },\r\n\r\n // 查看详情\r\n handleView(index) {\r\n this.detailId = this.list[index].id;\r\n this.$router.push({\r\n path: \"/join/\" + this.detailId,\r\n });\r\n this._getDetail();\r\n },\r\n\r\n _animateHeaderImage() {\r\n // 顶部图片\r\n gsap.from(\".header-image\", {\r\n y: 10,\r\n opacity: 0,\r\n duration: 1.5\r\n })\r\n\r\n gsap.from(\".about-info\", {\r\n y: 10,\r\n opacity: 0,\r\n duration: 1.5,\r\n delay: 0.5\r\n })\r\n },\r\n\r\n // 新闻详情\r\n _getDetail() {\r\n console.log(\"_getDetail\")\r\n // 测试\r\n // this.detail.content = \"<img src='/images/1.png' style='width: 100%' />\";\r\n\r\n SalaryView({\r\n id: this.detailId\r\n }).then((sRes) => {\r\n // console.log(\"getDetail\", sRes);\r\n this.detail = sRes.data;\r\n }).catch().finally();\r\n },\r\n\r\n // 列表数据\r\n _getList() {\r\n SalaryList({\r\n salaryName: this.searchSalaryName,\r\n page: this.pageNum,\r\n pageSize: this.pageSize,\r\n }).then((eRes) => {\r\n\r\n if (eRes.data.list && eRes.data.list.length > 0) {\r\n // this.list = eRes.data.list\r\n\r\n this.list = getMoreListData(eRes.data.list, this.list, this.pageNum);\r\n\r\n } else {\r\n this.isNoMore = true;\r\n }\r\n\r\n this.allPage = eRes.data.pageCount;\r\n this.allListCount = eRes.data.totalCount;\r\n\r\n }).catch().finally(() => {\r\n this.isLoading = false;\r\n });\r\n },\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.container {\r\n padding-top: 67px !important;\r\n padding-bottom: 20px !important;\r\n}\r\n\r\n.header-image {\r\n position: relative;\r\n top: 0;\r\n\r\n .about-info {\r\n position: absolute;\r\n top: 0px;\r\n color: #ffffff;\r\n width: 100%;\r\n height: 100%;\r\n\r\n .about-info-title {\r\n font-size: 34.31px;\r\n position: absolute;\r\n top: 138px;\r\n left: 100px;\r\n }\r\n }\r\n\r\n .about-info-xs {\r\n position: absolute;\r\n top: 0px;\r\n //left: 100px;\r\n color: #ffffff;\r\n width: 100%;\r\n height: 100%;\r\n\r\n .about-info-title {\r\n font-size: 24.31px;\r\n }\r\n }\r\n}\r\n\r\n.row {\r\n margin: 0 !important;\r\n}\r\n\r\n.col {\r\n padding: 0 !important;\r\n}\r\n\r\n.main {\r\n line-height: 1 !important;\r\n margin-top: 86px;\r\n\r\n\r\n //margin-left: 46px;\r\n\r\n .join-search {\r\n\r\n width: 100%;\r\n //width: 802px;\r\n height: 55px;\r\n display: flex;\r\n align-items: center;\r\n border: 2px solid #cecece;\r\n border-radius: 30px;\r\n position: relative;\r\n padding-left: 15px;\r\n border-right: none;\r\n\r\n .icon {\r\n font-size: 24px !important;\r\n color: #cecece;\r\n //margin-top: 12px;\r\n }\r\n\r\n .input-poster {\r\n color: #000000;\r\n //width: 603px;\r\n width: 77%;\r\n height: 100%;\r\n outline: none;\r\n border: none;\r\n }\r\n\r\n .input-poster::placeholder {\r\n color: #cecece;\r\n font-size: 16.5px;\r\n }\r\n\r\n .btn-poster {\r\n height: 55px;\r\n width: 144px;\r\n background-color: #1d2088;\r\n color: #ffffff;\r\n font-size: 16.5px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n border-radius: 28px;\r\n position: absolute;\r\n right: 0;\r\n cursor: pointer;\r\n user-select: none;\r\n }\r\n }\r\n\r\n .list {\r\n //width: 802px;\r\n width: 100%;\r\n\r\n .list-item {\r\n margin-top: 51px !important;\r\n cursor: pointer;\r\n\r\n .list-item-title {\r\n font-size: 21px;\r\n color: #000000;\r\n line-height: 36px;\r\n }\r\n\r\n .list-item-info {\r\n color: #646464;\r\n line-height: 38px;\r\n font-size: 18px;\r\n }\r\n\r\n .join-list-item-desc {\r\n //color: #8f969f;\r\n //font-size: 13.5px;\r\n //line-height: 20px;\r\n }\r\n }\r\n }\r\n\r\n .detail {\r\n\r\n margin-top: 50px;\r\n\r\n .detail-title {\r\n font-size: 27.74px;\r\n }\r\n\r\n .detail-info {\r\n margin-top: 26px;\r\n font-size: 13.5px;\r\n color: #646464;\r\n }\r\n\r\n .detail-desc {\r\n margin-top: 58px;\r\n\r\n .desc-title {\r\n font-size: 21px;\r\n display: flex;\r\n align-items: center;\r\n\r\n .line {\r\n width: 5px;\r\n height: 19px;\r\n background-color: #376dc0;\r\n }\r\n\r\n .text {\r\n margin-left: 5px;\r\n margin-top: 2px;\r\n }\r\n }\r\n\r\n .join-desc-content {\r\n margin-top: 21px;\r\n\r\n //p {\r\n // margin-bottom: 0 !important;\r\n //}\r\n\r\n //font-size: 13.5px;\r\n //color: #8f969f;\r\n //line-height: 20px;\r\n }\r\n }\r\n\r\n .detail-btn {\r\n margin-top: 53px;\r\n //width: 476px;\r\n height: 42px;\r\n background-color: #1d2088;\r\n font-size: 16.5px;\r\n //display: flex;\r\n //justify-content: center;\r\n //align-items: center;\r\n color: #ffffff;\r\n border-radius: 5px;\r\n cursor: pointer;\r\n //padding: 14px 48px;\r\n\r\n }\r\n }\r\n}\r\n</style>\r\n\r\n<style lang=\"scss\">\r\n.join-desc-content,.join-list-item-desc {\r\n p {\r\n margin-bottom: 0 !important;\r\n }\r\n}\r\n</style>","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Join.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Join.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Join.vue?vue&type=template&id=604c5d34&scoped=true\"\nimport script from \"./Join.vue?vue&type=script&lang=js\"\nexport * from \"./Join.vue?vue&type=script&lang=js\"\nimport style0 from \"./Join.vue?vue&type=style&index=0&id=604c5d34&prod&scoped=true&lang=scss\"\nimport style1 from \"./Join.vue?vue&type=style&index=1&id=604c5d34&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"604c5d34\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue' //1.导入vue2的构造函数\r\nimport VueRouter from 'vue-router' //2.导入3.x路由的构造函数\r\n\r\nimport Home from '@/components/Home.vue' //3.导入需要使用路由切换的组件,@表示根目录\r\n// import Book from '@/components/Book.vue'\r\nimport About from \"@/components/About\";\r\nimport Product from \"@/components/Product\";\r\nimport Solution from \"@/components/Solution\";\r\nimport Contact from \"@/components/Contact\";\r\nimport News from \"@/components/News\";\r\nimport Project from \"@/components/Project\";\r\nimport Join from \"@/components/Join\";\r\n\r\nconst originalPush = VueRouter.prototype.push\r\nVueRouter.prototype.push = function push(location) {\r\n return originalPush.call(this, location).catch(err => err)\r\n}\r\n\r\nVue.use(VueRouter) //4.调用Vue.use()函数,把路由配置为Vue的插件\r\n\r\n//5.创建路由对象\r\nconst router = new VueRouter({\r\n //5.1声明路由规则\r\n routes: [\r\n {path: '/', redirect: '/home'},\r\n {path: '/home', component: Home},\r\n // {path: '/book', component: Book},\r\n {path: '/about', component: About},\r\n {path: '/product', component: Product},\r\n {path: '/solution', component: Solution},\r\n {path: '/project', component: Project},\r\n {path: '/news/:id?', component: News},\r\n {path: '/contact', component: Contact},\r\n // 详情\r\n {path: '/join/:id(\\\\d+)?', component: Join},\r\n // 搜索\r\n {path: '/join/:search?', component: Join},\r\n ],\r\n})\r\n\r\n//6.向外导出路由对象\r\nexport default router","import Vue from 'vue'\r\nimport App from './App.vue'\r\nimport vuetify from './plugins/vuetify'\r\nimport i18n from './i18n/index.js'\r\nimport {createPinia, PiniaVuePlugin} from \"pinia\";\r\nimport router from './router'\r\n\r\nVue.config.productionTip = false\r\n\r\nVue.config.errorHandler = (err) => {\r\n console.log(\"errorHandler\", err);\r\n}\r\n\r\nVue.use(PiniaVuePlugin);\r\n\r\nconst pinia = createPinia();\r\n\r\nnew Vue({\r\n router,\r\n vuetify,\r\n pinia,\r\n i18n,\r\n render: h => h(App)\r\n}).$mount('#app')\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t524: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunktainchen\"] = self[\"webpackChunktainchen\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [504], function() { return __webpack_require__(1555); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["_c","index","staticClass","class","on","_s","_vm","key","attrs","$event","appBarBgColor","require","style","appBarLiColor","click","_e","scopedSlots","color","$route","staticRenderFns","render","language","languageDataList","text","value","curLanguage","_lang","langText","localStorage","getItem","langValue","curLang","defineStore","state","isAdmin","actions","useLanguage","GetLanguage","this","SetLanguage","lang","i","length","tmp","setItem","fn","visible","callback","expression","useSnackbar","msg","showClose","timeout","openSnackbar","options","console","log","_open","timer","setTimeout","clearTimeout","_close","close","name","data","computed","methods","component","components","Snackbar","drawer","navDataIndex","navDataList","$t","isShowFooter","mounted","path","search","_setNavBar","handleNavigate","$router","push","handleChangeLanguage","$i18n","locale","Vue","use","Vuetify","title","desc","learnMoreBtn","address","tel","email","moreTit","morePhone","moreName","moreTips","moreSend","moreSendSucc","form","input","mobile","label","placeholder","verifyCode","btn","tips","submit","header","desc1","gufen","lvse","wenhua","pic","content","aboutInfo","part3","detail","part1","part2","newsType1","newsType2","loadMore","noNoMore","companyInfo","map","wxTip","yiti","dianwang","item1","item2","item3","item4","id","listPart","left","right","searchBtn","list","money","detailPart","descTitle","detailBtn","home","book","about","product","project","news","contact","solution","nav","join","Vuei18n","i18n","messages","zh","en","letterSpacing","directives","languageStore","homeBgList","active","item","model","multiLine","snackbar","_v","apiUrl","service","axios","create","baseURL","config","withCredentials","headers","interceptors","request","error","Promise","reject","response","status","message","http","get","url","params","method","post","api","add","BookAdd","param","Object","assign","_options","WeakMap","_rawChars","_rawWords","_SplitText_brand","WeakSet","SplitText","constructor","elementOrSelector","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","charClass","wordClass","lineClass","globalClass","emptySpaceName","_defineProperty","init","target","textContent","_assertClassBrand","_isElement","call","_getTextContent","element","document","querySelector","_logAndThrowError","_clearContent","_splitStart","obj","HTMLElement","e","nodeType","ownerDocument","_createElement","tagname","htmlAttributes","cssClass","__element__","createElement","classList","innerHTML","entries","setAttribute","_splitChars","textChars","split","forEach","char","charElement","_classPrivateFieldGet","chars","_splitWords","startIndex","rawChar","wordArray","slice","filter","word","wordDiv","append","words","_splitLines","lineArrays","appendToLineArray","lineArray","lineDiv","lineWord","lines","reduce","oldOffsetTop","currentOffsetTop","offsetTop","computedIndex","_combineAll","includes","window","$","jQuery","myTimer","gsap","registerPlugin","CSSPlugin","props","watch","switchingNum","newVal","oldVal","isSwitching","isStart","isShowTitle","src","valid","mobileRules","v","test","bgIndex","preBgIndex","carouselDataList","morePageVisible","created","$subscribe","mutation","getElementById","firstChild","removeChild","addAnimate","$item","hide","eq","show","autoPlayBg","set","opacity","scaleX","scaleY","to","duration","x","timer1","timer2","handleSubmit","$refs","validate","then","sRes","catch","finally","handlerChangeBgImg","type","$preItem","css","$itemSetX","ease","onComplete","timeline","perspective","from","y","scale","rotationX","transformOrigin","stagger","handleMore","delay","onCloseMore","$vuetify","_l","img","isContain","dom","screenHeight","innerHeight","documentElement","clientHeight","body","scrollTop","getMoreListData","resList","oldList","pageNo","concat","scrollTo","_getList","_watchGetList","_animateHeaderImage","arr","isVisible","onscroll","temp","_partAnimate","p","parseFloat","dialog","$$v","detailList","handleOpenDetail","domProps","isScroll","wxImgSrc","handleContact","open","useClipboard","toClipboard","cateList","handleCate","detailId","index2","view","NewsList","newType","page","pageSize","NewsView","all","NewsCateAll","isLoading","newsTypeIndex","isNoMore","_getDetail","_getNewsCateAll","activated","handleView","_part2Animate","$dom","getElementsByClassName","num","reverse","newsType","eRes","resolve","rawName","searchSalaryName","composing","allListCount","allPage","handlePrevPage","pageNum","SalaryList","SalaryView","salary","handleInputPage","handleNextPage","handleCopy","deliveryAddress","handleSearch","salaryName","pageCount","totalCount","originalPush","VueRouter","prototype","location","err","router","routes","redirect","Home","About","Product","Solution","Project","News","Contact","Join","productionTip","errorHandler","PiniaVuePlugin","pinia","createPinia","vuetify","h","App","$mount","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","m","deferred","O","result","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","keys","every","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","g","globalThis","Function","prop","hasOwnProperty","Symbol","toStringTag","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","bind","__webpack_exports__"],"sourceRoot":""}