jinx 4 лет назад
Родитель
Сommit
8fad4295c5
85 измененных файлов с 966 добавлено и 897 удалено
  1. 29 53
      pc/README.md
  2. 2 2
      pc/build/webpack.base.conf.js
  3. 25 22
      pc/build/webpack.dev.conf.en.js
  4. 3 5
      pc/build/webpack.dev.conf.js
  5. 5 5
      pc/index.html
  6. 5 5
      pc/main.html
  7. 1 1
      pc/package.json
  8. 3 3
      pc/src/App.vue
  9. 1 1
      pc/src/assets/font/iconfont.json
  10. BIN
      pc/src/assets/images/core-products/sxz/case1.png
  11. BIN
      pc/src/assets/images/core-products/sxz/case2.png
  12. BIN
      pc/src/assets/images/core-products/sxz/case3.png
  13. BIN
      pc/src/assets/images/core-products/sxz/case4.png
  14. 1 1
      pc/src/components/card/index.vue
  15. 2 33
      pc/src/components/common/comparePic.vue
  16. 2 2
      pc/src/components/compare/index.vue
  17. 6 6
      pc/src/components/tablePaging/index.vue
  18. 1 1
      pc/src/components/toast/extendtoast.vue
  19. 1 1
      pc/src/components/toast/style.scss
  20. 1 1
      pc/src/components/toast/toast.js
  21. 6 8
      pc/src/config/mall.js
  22. 4 4
      pc/src/lang/en/modules/agent.js
  23. 9 10
      pc/src/lang/en/modules/conduct.js
  24. 1 3
      pc/src/lang/en/modules/header.js
  25. 1 0
      pc/src/lang/en/modules/login.js
  26. 1 4
      pc/src/lang/en/modules/manage.js
  27. 1 1
      pc/src/lang/en/modules/service.js
  28. 6 6
      pc/src/lang/zh/modules/conduct.js
  29. 0 2
      pc/src/lang/zh/modules/header.js
  30. 1 0
      pc/src/lang/zh/modules/login.js
  31. 1 4
      pc/src/lang/zh/modules/manage.js
  32. 1 1
      pc/src/lang/zh/modules/service.js
  33. 3 1
      pc/src/main.js
  34. 1 1
      pc/src/page/about/mstyle.scss
  35. 1 1
      pc/src/page/about/style.scss
  36. 1 1
      pc/src/page/binocular/index.vue
  37. 7 7
      pc/src/page/binocular/style.scss
  38. 1 1
      pc/src/page/capacity/index.vue
  39. 6 5
      pc/src/page/cases/index.vue
  40. 1 1
      pc/src/page/chat/index.vue
  41. 1 1
      pc/src/page/coreProducts/index.vue
  42. 23 44
      pc/src/page/coreProducts/sxz.vue
  43. 3 61
      pc/src/page/distributor/index.vue
  44. 8 8
      pc/src/page/eight/style.scss
  45. 1 1
      pc/src/page/home/style.scss
  46. 1 1
      pc/src/page/home2/index.vue
  47. 1 1
      pc/src/page/introduce/style.scss
  48. 1 1
      pc/src/page/introtow/style.scss
  49. 1 1
      pc/src/page/layout/aside/temp/ctemp/detail.scss
  50. 2 2
      pc/src/page/layout/aside/temp/ctemp/list.vue
  51. 0 1
      pc/src/page/layout/aside/temp/ltemp/forget.vue
  52. 78 87
      pc/src/page/layout/header/index.vue
  53. 1 1
      pc/src/page/layout/header/istyle.scss
  54. 2 3
      pc/src/page/layout/shop.vue
  55. 11 10
      pc/src/page/layout/shopHeader/index.vue
  56. 203 0
      pc/src/page/location/style.scss
  57. 4 6
      pc/src/page/login/components/login.vue
  58. 10 10
      pc/src/page/login/components/register/index.vue
  59. 1 1
      pc/src/page/mall/kankanPro/index.vue
  60. 1 1
      pc/src/page/mall/pay/index.vue
  61. 5 6
      pc/src/page/manage/index.vue
  62. 1 10
      pc/src/page/manage/style.scss
  63. 1 2
      pc/src/page/manage/temp/device.vue
  64. 5 5
      pc/src/page/manage/temp/information.vue
  65. 30 100
      pc/src/page/manage/temp/scene.vue
  66. 1 2
      pc/src/page/news/index.vue
  67. 274 0
      pc/src/page/purchase/index.vue
  68. 1 1
      pc/src/page/purchasetow/style.scss
  69. 1 1
      pc/src/page/purchasezhijia/style.scss
  70. 18 56
      pc/src/page/service/temp/app.vue
  71. 5 13
      pc/src/page/service/temp/index.vue
  72. 30 63
      pc/src/page/service/video.vue
  73. 1 1
      pc/src/page/zhijia/style.scss
  74. 16 20
      pc/src/router/index.js
  75. 10 10
      pc/src/store/language/cn/home.js
  76. 13 9
      pc/src/store/language/cn/manage.js
  77. 1 1
      pc/src/store/language/cn/toast.js
  78. 2 2
      pc/src/store/language/en/about.js
  79. 9 9
      pc/src/store/language/en/home.js
  80. 1 1
      pc/src/store/language/en/toast.js
  81. 28 73
      pc/src/store/language/home_cn.js
  82. 13 62
      pc/src/store/language/home_en.js
  83. 5 4
      pc/src/store/language/index.js
  84. 0 1
      pc/src/util/http.js
  85. 1 1
      pc/src/util/index.js

+ 29 - 53
pc/README.md

@@ -1,54 +1,30 @@
-# 四维看看官网项目
-
-# 项目目录
-    |-- build                               构建相关
-        |-- build.en.js                     国际版构建程序入口
-        |-- build.js                        普通版/国内版构建程序入口
-        |-- webpack.dev.conf.en             国际版开发环境配置
-        |-- webpack.prod.conf.en            国际版生产环境配置
-        |-- webpack.dev.conf                国内版开发环境配置
-        |-- webpack.prod.conf               国内版生产环境配置
-    |-- config                              开发和构建的相关环境变量配置
-    |-- src                                 业务代码
-      |-- apis                              API接口定义调用层
-      |-- assets                            公共样式、相关图片资源
-      |-- components                        公用组件
-        |-- shared                          全局组件,在里面定义组件会自动注册为全局组件
-      |-- config                            相关前端写死的配置
-      |-- router                            前端路由配置
-      |-- store                             状态管理器
-      |-- utils                             工具函数
-      |-- page                             对应的页面
-
-# 功能分支
-- master: 国内版
-- international: 国际版
-- feat-takeALook 带看功能分支(基本未开发)
-- rebase-usercenter-mobile 移动端个人中心重构分支(大部分开发完成)
-
-# 开发
-- npm i
-- npm run dev(国内版)/ npm run dev:en(国际版)
-
-# 测试环境部署
-### 国内版
-- npm run build:zh
-- 图片会在构建时自动上传
-- FTP上传:/测试服务器-120.25.146.52/root/user/java/apache-tomcat-8.0.47/webapps/4dkankan_v2/WEB-INF/classes/web
-
-### 国际版
-- 切换到international分支
-- npm run build:en
-- 手动上传图片到亚马孙S3
-- FTP上传:/测试服务器-120.25.146.52/root/user/java/apache-tomcat-8.0.47/webapps/4dkankan_v2/WEB-INF/classes/web/new4Dkankan
-
-# 生产环境部署
-### 国内版
-- npm run build
-- FTP上传:/4dkankan/root/user/java/apache-tomcat-8.0.51-4dkankan/webapps/4dkankan_v2/WEB-INF/classes/web
-
-### 国际版
-- 切换到international分支
-- npm run build:en
-- FTP上传:/aws-控制服务器/home/ubuntu/java/apache-tomcat-8.0.52-4dkankan/webapps/4dkankan_v2/WEB-INF/classes/web
+# y
 
+> A Vue.js project
+
+## Build Setup
+
+``` bash
+# install dependencies
+npm install
+
+# serve with hot reload at localhost:8080
+npm run dev
+
+# build for production with minification
+npm run build
+
+# build for production and view the bundle analyzer report
+npm run build --report
+
+# run unit tests
+npm run unit
+
+# run e2e tests
+npm run e2e
+
+# run all tests
+npm test
+```
+
+For a detailed explanation on how things work, check out the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader).

+ 2 - 2
pc/build/webpack.base.conf.js

@@ -38,7 +38,7 @@ module.exports = {
     extensions: ['.js', '.vue', '.json'],
     alias: {
       'vue$': 'vue/dist/vue.esm.js',
-      '@': resolve('src')
+      '@': resolve('src'),
     }
   },
   module: {
@@ -60,7 +60,7 @@ module.exports = {
         options: {
           limit: 10000,
           name: utils.assetsPath('v2/images/[path][name].[ext]'),
-          publicPath: isProd ? 'https://4dscene.4dage.com/new4dkk/' : ''
+          publicPath: isProd ?  'https://eurs3.4dkankan.com/website/' : ''
         }
       },
       {

+ 25 - 22
pc/build/webpack.dev.conf.en.js

@@ -17,10 +17,7 @@ const PORT = process.env.PORT && Number(process.env.PORT)
 
 const devWebpackConfig = merge(baseWebpackConfig, {
   module: {
-    rules: utils.styleLoaders({
-      sourceMap: config.dev.cssSourceMap,
-      usePostCSS: true
-    })
+    rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap, usePostCSS: true })
   },
   // cheap-module-eval-source-map is faster for development
   devtool: config.dev.devtool,
@@ -29,10 +26,9 @@ const devWebpackConfig = merge(baseWebpackConfig, {
   devServer: {
     clientLogLevel: 'warning',
     historyApiFallback: {
-      rewrites: [{
-        from: /.*/,
-        to: path.posix.join(config.dev.assetsPublicPath, 'index.html')
-      }]
+      rewrites: [
+        { from: /.*/, to: path.posix.join(config.dev.assetsPublicPath, 'index.html') },
+      ],
     },
     hot: true,
     contentBase: false, // since we use CopyWebpackPlugin.
@@ -41,21 +37,26 @@ const devWebpackConfig = merge(baseWebpackConfig, {
     port: PORT || config.dev.port,
     open: config.dev.autoOpenBrowser,
     overlay: config.dev.errorOverlay
-      ? {
-        warnings: false,
-        errors: true
-      }
+      ? { warnings: false, errors: true }
       : false,
     publicPath: config.dev.assetsPublicPath,
     proxy: config.dev.proxyTable,
     quiet: true, // necessary for FriendlyErrorsPlugin
     watchOptions: {
-      poll: config.dev.poll
+      poll: config.dev.poll,
     },
     proxy: {
       '/api': {
         target: 'https://test.4dkankan.com',
-        changeOrigin: true
+        changeOrigin: true,
+      },
+      '/www': {
+        target: 'https://test.4dkankan.com',
+        changeOrigin: true,
+      },
+      '/node-upload': {
+        target: 'http://vrhouse2.4dkankan.com',
+        changeOrigin: true,
       }
     },
     setup: wepackDevServer
@@ -74,11 +75,13 @@ const devWebpackConfig = merge(baseWebpackConfig, {
       inject: true
     }),
     // copy custom static assets
-    new CopyWebpackPlugin([{
-      from: path.resolve(__dirname, '../static'),
-      to: config.dev.assetsSubDirectory,
-      ignore: ['.*']
-    }])
+    new CopyWebpackPlugin([
+      {
+        from: path.resolve(__dirname, '../static'),
+        to: config.dev.assetsSubDirectory,
+        ignore: ['.*']
+      }
+    ])
   ]
 })
 
@@ -96,11 +99,11 @@ module.exports = new Promise((resolve, reject) => {
       // Add FriendlyErrorsPlugin
       devWebpackConfig.plugins.push(new FriendlyErrorsPlugin({
         compilationSuccessInfo: {
-          messages: [`Your application is running here: http://${devWebpackConfig.devServer.host}:${port}`]
+          messages: [`Your application is running here: http://${devWebpackConfig.devServer.host}:${port}`],
         },
         onErrors: config.dev.notifyOnErrors
-          ? utils.createNotifierCallback()
-          : undefined
+        ? utils.createNotifierCallback()
+        : undefined
       }))
 
       resolve(devWebpackConfig)

+ 3 - 5
pc/build/webpack.dev.conf.js

@@ -11,8 +11,8 @@ const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')
 const portfinder = require('portfinder')
 const wepackDevServer = require('./wepack.dev.server')
 
-const HOST = '192.168.0.77'
-// const HOST = '0.0.0.0'
+// const HOST = '192.168.0.172'
+const HOST = '0.0.0.0'
 const PORT = process.env.PORT && Number(process.env.PORT)
 
 const devWebpackConfig = merge(baseWebpackConfig, {
@@ -47,9 +47,7 @@ const devWebpackConfig = merge(baseWebpackConfig, {
     },
     proxy: {
       '/api': {
-        // target: 'https://test.4dkankan.com',
-        // target: 'https://testusa.4dkankan.com',
-        target: 'http://192.168.0.50:8080',
+        target: 'https://test.4dkankan.com',
         changeOrigin: true
       },
       '/www': {

+ 5 - 5
pc/index.html

@@ -11,12 +11,12 @@
     <meta name="browsermode" content="application">
     <meta name="full-screen" content="yes">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
-    <meta name="description" content="">
-    <!-- <link rel="shortcut icon" href="//4dkk.4dage.com/FDKKIMG/icon/kankan_icon.ico"> -->
-    <!-- <link rel="icon" type="image/png" href="//4dkk.4dage.com/FDKKIMG/icon/kankan_icon192.png" sizes="192x192"> -->
+    <meta name="description" content="世界上首款消费级3D相机—四维看看(4DKanKan)。技术核心三要素:易操作;自动化;高精度。主要应用领域为数字文博、数字地产、数字电商、数字餐饮、数字家居等。">
+    <link rel="shortcut icon" href="//4dkk.4dage.com/FDKKIMG/icon/kankan_icon.ico">
+    <link rel="icon" type="image/png" href="//4dkk.4dage.com/FDKKIMG/icon/kankan_icon192.png" sizes="192x192">
     <link rel="stylesheet" href="//at.alicdn.com/t/font_941679_7vwx5e680s5.css">
-    <!-- <link rel="apple-touch-icon" sizes="180x180" href="//4dkk.4dage.com/FDKKIMG/icon/kankan_icon180.png"> -->
-    <title>Realtor Easier</title>
+    <link rel="apple-touch-icon" sizes="180x180" href="//4dkk.4dage.com/FDKKIMG/icon/kankan_icon180.png">
+    <title>四维看看</title>
     <script>
       var _hmt = _hmt || [];
       (function() {

+ 5 - 5
pc/main.html

@@ -11,11 +11,11 @@
     <meta name="browsermode" content="application">
     <meta name="full-screen" content="yes">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
-    <meta name="description" content="">
-    <!-- <link rel="shortcut icon" href="//4dkk.4dage.com/FDKKIMG/icon/kankan_icon.ico"> -->
-    <!-- <link rel="icon" type="image/png" href="//4dkk.4dage.com/FDKKIMG/icon/kankan_icon192.png" sizes="192x192">
-    <link rel="apple-touch-icon" sizes="180x180" href="//4dkk.4dage.com/FDKKIMG/icon/kankan_icon180.png"> -->
-    <title>Realtor Easier</title>
+    <meta name="description" content="世界上首款消费级3D相机—四维看看(4DKanKan)。技术核心三要素:易操作;自动化;高精度。主要应用领域为数字文博、数字地产、数字电商、数字餐饮、数字家居等。">
+    <link rel="shortcut icon" href="//4dkk.4dage.com/FDKKIMG/icon/kankan_icon.ico">
+    <link rel="icon" type="image/png" href="//4dkk.4dage.com/FDKKIMG/icon/kankan_icon192.png" sizes="192x192">
+    <link rel="apple-touch-icon" sizes="180x180" href="//4dkk.4dage.com/FDKKIMG/icon/kankan_icon180.png">
+    <title>四维看看</title>
 </head>
 <body>
   <script>

+ 1 - 1
pc/package.json

@@ -14,7 +14,7 @@
     "lint": "eslint --ext .js,.vue src test/unit test/e2e/specs",
     "build:zh": "node build/build.js",
     "build:en": "node build/build.en.js",
-    "preview": "http-server ../ -p 3030"
+    "preview": "http-server ../dist -p 3030"
   },
   "dependencies": {
     "axios": "^0.18.0",

+ 3 - 3
pc/src/App.vue

@@ -1,6 +1,5 @@
 <template>
-  <!-- <div id="app" :style="{transform:scale!==1 && gre150? `scale(${scale})`:'none','paddingTop':deviceLogin?'0px':'80px'}"> -->
-  <div id="app">
+  <div id="app" :style="{transform:scale!==1 && gre150? `scale(${scale})`:'none','paddingTop':deviceLogin?'0px':'80px'}">
     <router-view />
   </div>
 </template>
@@ -141,7 +140,7 @@ export default {
 <style lang="scss">
 
 #app {
-  // padding-top: 80px;
+  padding-top: 80px;
   width: 100%;
   transform-origin: left top;
   min-width: 1316px;
@@ -154,6 +153,7 @@ export default {
   top: 0;
   width: 100%;
   z-index: 999;
+
 }
 
 .hidden-nav{

+ 1 - 1
pc/src/assets/font/iconfont.json

@@ -1,6 +1,6 @@
 {
   "id": "941679",
-  "name": "Realtor Easier",
+  "name": "四维看看官网",
   "font_family": "iconfont",
   "css_prefix_text": "icon-",
   "description": "",

BIN
pc/src/assets/images/core-products/sxz/case1.png


BIN
pc/src/assets/images/core-products/sxz/case2.png


BIN
pc/src/assets/images/core-products/sxz/case3.png


BIN
pc/src/assets/images/core-products/sxz/case4.png


+ 1 - 1
pc/src/components/card/index.vue

@@ -56,7 +56,7 @@ export default {
       // let temp = url.replace('//pro', '//test')
       // let temp1 = temp.replace('//www', '//test')
       // window.open(temp.replace('//www', '//test'), '_blank')
-      let temp = url.replace('show.html', 'showPC.html')
+      let temp = url.replace('showProMobile.html', 'spc.html')
 
       window.open(temp.replace('http://', 'https://') + (this.language === 'en' ? '&lang=en' : ''), '_blank')
     }

+ 2 - 33
pc/src/components/common/comparePic.vue

@@ -18,42 +18,11 @@ export default {
   },
   data () {
     return {
-      newPosition: 70,
-      maxWidth: 0
+      newPosition: 50,
+      maxWidth: 0,
     }
   },
-  mounted () {
-    let fn = e => {
-      // if (window.scrill)
-      if (window.scrollY >= 1953) {
-        document.removeEventListener('scroll', fn)
-          let newPostion = 70
-          let isFirst = true
-          let initAnimation = () => {
-            if (newPostion > 70) {
-              return
-            } else if (newPostion > 30 && newPostion <= 70) {
-              isFirst ? newPostion-- : newPostion++
-            } else if (newPostion == 30) {
-              isFirst = false
-              newPostion++
-            }
-            this.setPosition(newPostion)
-            requestAnimationFrame(initAnimation)
-          }
-          initAnimation()
-      }
-    }
-    
-    document.addEventListener('scroll', fn)
-    fn()
-    this.$once('hook:beforeDestroy', () => {
-      document.removeEventListener('scroll', fn)
-    })
-  },
-  
   methods: {
-
     handleMousedown (event) {
       this.onDragStart(event)
       window.addEventListener('mousemove', this.onDragging)

+ 2 - 2
pc/src/components/compare/index.vue

@@ -170,7 +170,7 @@ export default {
   .overlap .l-move::before {
     width: 40px;
     z-index: 15;
-    background: url(https://4dscene.4dage.com/new4dkk/images/border-linear.png) left top no-repeat;
+    background: url(https://eurs3.4dkankan.com/website/images/border-linear.png) left top no-repeat;
   }
   /* .overlap .r-move::before {
     width: 0;
@@ -184,7 +184,7 @@ export default {
     top: 0;
     width: 40px;
     z-index: 15;
-    background: url(https://4dscene.4dage.com/new4dkk/images/border-linear-r.png) right top no-repeat;
+    background: url(https://eurs3.4dkankan.com/website/images/border-linear-r.png) right top no-repeat;
   }
 
   .c-video{

+ 6 - 6
pc/src/components/tablePaging/index.vue

@@ -123,13 +123,13 @@ export default {
     height: 20px;
     margin-right: 22px;
     cursor: pointer;
-    background-image: url(https://4dscene.4dage.com/new4dkk/images/btn_leftArrow_normal.png);
-    background-image: image-set(url(https://4dscene.4dage.com/new4dkk/images/btn_leftArrow_normal.png) 1x);
+    background-image: url(https://eurs3.4dkankan.com/website/images/btn_leftArrow_normal.png);
+    background-image: image-set(url(https://eurs3.4dkankan.com/website/images/btn_leftArrow_normal.png) 1x);
     background-repeat: no-repeat;
     background-position: 0 2px;
     // &:hover{
-    // background-image: url(https://4dscene.4dage.com/new4dkk/images/btn_leftArrow_hover.png);
-    // background-image: image-set(url(https://4dscene.4dage.com/new4dkk/images/btn_leftArrow_hover.png) 1x);
+    // background-image: url(https://eurs3.4dkankan.com/website/images/btn_leftArrow_hover.png);
+    // background-image: image-set(url(https://eurs3.4dkankan.com/website/images/btn_leftArrow_hover.png) 1x);
     // }
   }
   .page-current{
@@ -159,8 +159,8 @@ export default {
     height: 20px;
     margin-left: 22px;
     cursor: pointer;
-    background-image: url(https://4dscene.4dage.com/new4dkk/images/btn_rightArrow_normal.png);
-    background-image: image-set(url(https://4dscene.4dage.com/new4dkk/images/btn_rightArrow_normal.png) 1x);
+    background-image: url(https://eurs3.4dkankan.com/website/images/btn_rightArrow_normal.png);
+    background-image: image-set(url(https://eurs3.4dkankan.com/website/images/btn_rightArrow_normal.png) 1x);
     background-repeat: no-repeat;
     background-position: 0 2px;
   }

+ 1 - 1
pc/src/components/toast/extendtoast.vue

@@ -4,7 +4,7 @@
 
 <script>
 import Toast from './index.vue'
-let baseUrl = process.env.IS_INTERNATIONAL ? '/' : 'https://4dscene.4dage.com/new4dkk/'
+let baseUrl = process.env.IS_INTERNATIONAL ? 'https://eurs3.4dkankan.com/website/' : 'https://4dscene.4dage.com/new4dkk/'
 
 let imgs = {
   success: baseUrl + 'images/icon/success.png',

+ 1 - 1
pc/src/components/toast/style.scss

@@ -373,7 +373,7 @@ $border-color: #e7e7e7;
       }
       .cooperation{
         top: 0!important;
-        width: 670px;
+        width: 650px;
         .toclient{
           margin-top: 15px;
           margin-bottom: 7px;

+ 1 - 1
pc/src/components/toast/toast.js

@@ -1,6 +1,6 @@
 import ToastComponent from './index.vue'
 const Toast = {}
-let baseUrl = 'https://4dscene.4dage.com/new4dkk/'
+let baseUrl = 'https://eurs3.4dkankan.com/website/'
 // 注册Toast
 Toast.install = function (Vue) {
   // 生成一个Vue的子类

+ 6 - 8
pc/src/config/mall.js

@@ -1,9 +1,6 @@
-import {
-  i18n
-} from '@/lang'
-
-function formatNum (num) {
-  return (num.toFixed(0) + '').replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,')
+import { i18n } from '@/lang'
+function formatNum(num){
+  return (num.toFixed(0) + '').replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,');
 }
 
 let cameraName = {
@@ -49,16 +46,17 @@ const goodsMap = {
   7: {
     name: i18n.t('mall.jiaojia'),
     img: `${window.$app.$cdn}images/zhijia.png`,
-    detail: [`${i18n.t('mall.jiaojia')}(${i18n.t('mall.zhijiaColor')})`],
+    detail:  [`${i18n.t('mall.jiaojia')}(${i18n.t('mall.zhijiaColor')})`],
     price: zhijiaPrice,
     skuSn: 'U15604134406280073'
   }
 }
 
+
 export default {
   formatNum,
   price,
   zhijiaPrice,
   showPrice: formatNum(price),
   goodsMap
-}
+}

+ 4 - 4
pc/src/lang/en/modules/agent.js

@@ -1,10 +1,10 @@
 module.exports = {
     "bannerTitle": "Become a distributor of 4DKanKan",
     "planTitle": "Outline of 4DKanKan Distributor Program",
-    "planDesc1": "The patented AI space reconstruction algorithm technology from 4Dage has won numerous awards and has reconstructed more than 300,000 space models worldwide.",
-    "planDesc2": "This innovative approach of space reconstruction is gradually changing the business model of various industries (Real-estate, Architecture, Museum, Tourism, Journalism, Insurance Claims, Criminal Investigation, Etc.). ",
-    "planDesc3": "Our 4DKanKan Distributor Program invites professionals from all industries to participate in our “Digital Everything” scheme, open up new markets together, and share profits.",
-    "planDesc4": "If you are interested in the idea of 3D capturing the world and would like to incorporate it into your career plan, this is an excellent opportunity for cooperation.",
+    "planDesc1": "The Patented AI Space Reconstruction Algorithm Technology from 4Dage Has Won Numerous Awards and Has Reconstructed More than 300,000 Space Models Worldwide.",
+    "planDesc2": "This Innovative Approach of Space Reconstruction Is Gradually Changing the Business Model of Various Industries (Real-estate, Architecture, Museum, Tourism, Journalism, Insurance Claims, Criminal Investigation, Etc.).",
+    "planDesc3": "Our 4DKanKan Distributor Program Invites Professionals From All Industries to Participate in Our “Digital Everything” Scheme, Open up New Market Together and Share Profits.",
+    "planDesc4": "If You Are Interested in the Idea of ​​3D Capturing the World and Would Like to Incorporate It into Your Career Plan, This Is An Excellent Opportunity For Cooperation.",
     "advanTitle": "Benefits of Being our Valued Distributor",
     "advan": {
         "item1Title": "Share the Profit",

+ 9 - 10
pc/src/lang/en/modules/conduct.js

@@ -11,14 +11,13 @@ module.exports = {
         "itemTitle6": "Autonomous Space Modeling in 10 Minutes. (About 100㎡)",
         "itemTitle7": "Multifunctional Editing Tool, Let Space Tell the Story"
     },
-    sxz: {
-        bannerTitle: '四维·随心装',
-        bannerSubTitle: '快速打造心中家的模样',
-        itemTitle1: '快速打造3D家装效果,让人工智能真正服务于生活',
-        itemTitle2: '实物家具建模,让您所见即所得',
-        itemTitle3: '高效全屋渲染,秒级响应拒绝等待',
-        itemTitle4: '变装前后同屏看,一眼对比屋内变化',
-        itemTitle6: '样例展示'
+    "sxz": {
+        "bannerTitle": "随心装 . 快速打造心中家的模样",
+        "itemTitle1": "1:1精准复刻真实房源",
+        "itemTitle2": "实物家具建模,让您所见即所得",
+        "itemTitle3": "快速打造3D家装效果,让人工智能真正服务于生活",
+        "itemTitle4": "高效全屋渲染,秒级响应拒绝等待",
+        "itemTitle5": "变装前后同屏看,一眼对比屋内变化"
     },
     "coreTech": {
         "bannerTitle": "Technology",
@@ -38,13 +37,13 @@ module.exports = {
     },
     "conductHouse": {
         "bannerTitle": "Real Estate<br/>Mass Reconstruction<br/>of the Real Houses",
-        "itemTitle1": "AI Automated Modeling, Efficient Reconstruct the Real Houses",
+        "itemTitle1": "AI Automatic Modeling, Efficient Reconstruct the Real Houses",
         "itemTitle2": "Display All the Details, More Efficient for Sales and Rental Decisions",
         "itemTitle3": "Multidimensional Display the Information of Real-estate with Higher Efficiency",
         "itemTitle4": "Multifunctional Editing Tool, Let Houses Display Better"
     },
     "conductExhibition": {
-        "bannerTitle": "Exhibition<br/>Participate in Exhibitions<br/>without Any Restrictions",
+        "bannerTitle": "Exhibition<br/>Participate in Exhibitions<br/>without Any Limitations",
         "itemTitle1": "Online Visiting and Negotiation, Exchange Business Cards Freely",
         "itemTitle2": "No Barriers to Communication, Easy to Get All the Information",
         "itemTitle3": "Reduce the Cost of Exhibitions, Promote Transactions Effectively",

+ 1 - 3
pc/src/lang/en/modules/header.js

@@ -3,7 +3,7 @@ module.exports = {
     "solutions": "Solutions",
     "kankan_space": "KanKan-Space",
     "core_tech": "Technology",
-    "service": "Support",
+    "service": "Services",
     "about": "About Us",
     "online_shop": "Shopping Mall",
     "solutionsHouse": "Real-estate Marketing",
@@ -21,8 +21,6 @@ module.exports = {
     "mallPro": "4DKanKan Pro",
     "mallPeijian": "Tripod Set",
     "addService": "Cloud Capacity",
-    corePruductItemPro: '四维看看Pro',
-    corePruductItemSxz: '四维·随心装',
     "footer": {
         "bannerTitle": "4DKanKan-Let the space tell the story",
         "find": "Findings",

+ 1 - 0
pc/src/lang/en/modules/login.js

@@ -19,6 +19,7 @@ module.exports = {
     "cluse": "I have read 《4DKanKan User Agreement》",
     "findPassword": "Password Reset",
     "emailPlaceholder": "Please enter your email address",
+    accountPlaceholder: 'Please enter your user name',
     "hasAccount": "Already had an account, ",
     "zhijieLogin": "Log in Now",
     "resendTime": "{time}s resend",

+ 1 - 4
pc/src/lang/en/modules/manage.js

@@ -12,10 +12,7 @@ module.exports = {
         "createTime": "Time",
         "collaborative": "Collaborate",
         "canNotSelectTip": "This scene is being calculated or calculated incorrectly and cannot be checked.",
-        archived: "Archived",
-        startTime: 'Start time',
-        endTime: 'End time',
-        search: 'Search'
+        archived: "Archived"
     },
     "deviceAdmin": {
         "addDevice": "Add",

+ 1 - 1
pc/src/lang/en/modules/service.js

@@ -1,5 +1,5 @@
 module.exports = {
-    "title": "Support",
+    "title": "Service Support",
     "mVideo": "Video Tutorial",
     "use": "User Tutorial",
     "app": "APP Download",

+ 6 - 6
pc/src/lang/zh/modules/conduct.js

@@ -12,13 +12,13 @@ module.exports = {
         "itemTitle7": "强大编辑后台,让空间延伸表达"
     },
     sxz: {
-        bannerTitle: '四维 • 随心装',
-        bannerSubTitle: '快速打造心中家的模样',
-        itemTitle1: '快速打造3D家装效果,让人工智能真正服务于生活',
+        bannerTitle: '随心装 . 快速打造心中家的模样',
+        itemTitle1: '1:1精准复刻真实房源',
         itemTitle2: '实物家具建模,让您所见即所得',
-        itemTitle3: '高效全屋渲染,秒级响应拒绝等待',
-        itemTitle4: '变装前后同屏看,一眼对比屋内变化',
-        itemTitle6: '样例展示'
+        itemTitle3: '快速打造3D家装效果,让人工智能真正服务于生活',
+        itemTitle4: '高效全屋渲染,秒级响应拒绝等待',
+        itemTitle5: '变装前后同屏看,一眼对比屋内变化',
+        itemTitle6: '优秀作品'
     },
     "coreTech": {
         "bannerTitle": "核心技术",

+ 0 - 2
pc/src/lang/zh/modules/header.js

@@ -21,8 +21,6 @@ module.exports = {
     mallPro: '四维看看Pro',
     mallPeijian: '精选配件',
     addService: '增值服务',
-    corePruductItemPro: '四维看看Pro',
-    corePruductItemSxz: '四维 • 随心装',
     "footer": {
         "bannerTitle": "四维看看,让空间讲故事",
         "find": "发现精彩",

+ 1 - 0
pc/src/lang/zh/modules/login.js

@@ -19,6 +19,7 @@ module.exports = {
   cluse: '我已阅读并同意《四维看看用户协议》',
   findPassword: '找回密码',
   emailPlaceholder: '请输入邮箱地址',
+  accountPlaceholder: '请输入用户名',
   hasAccount: '已有账号,',
   zhijieLogin: '直接登录',
   resendTime: '{time}s后重新发送',

+ 1 - 4
pc/src/lang/zh/modules/manage.js

@@ -12,10 +12,7 @@ module.exports = {
     createTime: '拍摄时间',
     collaborative: '协作',
     canNotSelectTip: '该场景计算中或计算错误,无法进行勾选。',
-    archived: '已封存',
-    startTime: '开始时间',
-    endTime: '结束时间',
-    search: '查询'
+    archived: '已封存'
   },
   deviceAdmin: {
     addDevice: '新增相机',

+ 1 - 1
pc/src/lang/zh/modules/service.js

@@ -5,6 +5,6 @@ module.exports = {
     "app": "APP下载",
     "clause": "保修条款",
     appDownload: {
-      downloadTip: '使用四维看看Pro的过程中,需要下载APP控制相机。请在手机软件商店搜索【四维看看Pro】或扫描下方二维码下载安装。'
+      downloadTip: '使用四维看看Pro的过程中,需要下载APP控制相机。请在手机软件商店搜索【四维看看Pro】或扫描下方二维码完成安装。'
     }
 }

+ 3 - 1
pc/src/main.js

@@ -8,7 +8,7 @@ import { i18n } from './lang'
 import './register-components'
 // import axios from './util/http.js'
 // import router from './router'
-Vue.prototype.$cdn = process.env.IS_INTERNATIONAL ? 'https://4dscene.4dage.com/new4dkk/' : 'https://4dscene.4dage.com/new4dkk/'
+Vue.prototype.$cdn = process.env.IS_INTERNATIONAL ? 'https://eurs3.4dkankan.com/website/' : 'https://4dscene.4dage.com/new4dkk/'
 
 Vue.use(vuex)
 Vue.use(Toast)
@@ -19,6 +19,8 @@ let router = require('./router').default
 
 Vue.prototype.$http = axios
 // Vue.prototype.$serverName = 'http://192.168.0.10:8080/'
+// Vue.prototype.$serverName = 'https://eur.4dkankan.com/'
+
 Vue.prototype.$serverName = ''
 
 // Vue.prototype.$serverName = 'https://test.4dkankan.com'

+ 1 - 1
pc/src/page/about/mstyle.scss

@@ -57,7 +57,7 @@
       }
       h3::before {
         content: "";
-        background: url(https://4dscene.4dage.com/new4dkk/images/cicle.png) center no-repeat;
+        background: url(https://eurs3.4dkankan.com/website/images/cicle.png) center no-repeat;
         z-index: 1000;
         display: inline-block;
         width: 12px;

+ 1 - 1
pc/src/page/about/style.scss

@@ -154,7 +154,7 @@ $txt_delay: 0.2s;
         }
         h3::before {
           content: "";
-          background: url(https://4dscene.4dage.com/new4dkk/images/cicle.png) center no-repeat;
+          background: url(https://eurs3.4dkankan.com/website/images/cicle.png) center no-repeat;
           z-index: 1000;
           display: inline-block;
           width: 18px;

+ 1 - 1
pc/src/page/binocular/index.vue

@@ -57,7 +57,7 @@
         <h2 class="b-title">{{langBinocular.guide[0].title[0]}}</h2>
         <p class="b-label" v-html="langBinocular.guide[0].title[1]"></p>
         <div class="f-img">
-          <iframe src="https://www.4dkankan.com/showPC.html?m=5cQcvVwp" frameborder="0"/>
+          <iframe src="https://eur.4dkankan.com/showPC.html?m=5cQcvVwp" frameborder="0"/>
         </div>
       </div>
       <div class="fkkj-layout plate">

+ 7 - 7
pc/src/page/binocular/style.scss

@@ -9,7 +9,7 @@ $txt_delay: 0.2s;
 }
 .product-layout {
   overflow: hidden;
-  // background: url("https://4dscene.4dage.com/new4dkk/images/background.jpg") top -135px center no-repeat;
+  // background: url("https://eurs3.4dkankan.com/website/images/background.jpg") top -135px center no-repeat;
 }
 
 .btns{
@@ -202,12 +202,12 @@ $txt_delay: 0.2s;
         font-weight: 600;
       }
       .apple {
-        background: url("https://4dscene.4dage.com/new4dkk/images/apple.png")
+        background: url("https://eurs3.4dkankan.com/website/images/apple.png")
           #4d4d4d left 30px center no-repeat;
         background-size: 32px auto;
       }
       .android {
-        background: url("https://4dscene.4dage.com/new4dkk/images/android.png")
+        background: url("https://eurs3.4dkankan.com/website/images/android.png")
           #2fd36a left 30px center no-repeat;
         background-size: 32px auto;
       }
@@ -245,7 +245,7 @@ $txt_delay: 0.2s;
   overflow: hidden;
   position: relative;
   padding: 150px 0 30px;
-  background: url("https://4dscene.4dage.com/new4dkk/images/linear_bg.png")
+  background: url("https://eurs3.4dkankan.com/website/images/linear_bg.png")
     #010101 top center no-repeat;
   background-size: 100% auto;
   // background:linear-gradient(
@@ -291,7 +291,7 @@ $txt_delay: 0.2s;
     align-items: center;
     margin: 23px auto 60px;
     height: 700px;
-    background: url("https://4dscene.4dage.com/new4dkk/images/fk_wangge.png")
+    background: url("https://eurs3.4dkankan.com/website/images/fk_wangge.png")
       left -400px top no-repeat;
     background-size: 100%;
 
@@ -520,7 +520,7 @@ $txt_delay: 0.2s;
       width: 75vw;
       margin: -20px auto 0;
       height: 42vw;
-      background-image: url("https://4dscene.4dage.com/new4dkk/images/boomImg.png");
+      background-image: url("https://eurs3.4dkankan.com/website/images/boomImg.png");
       background-repeat: no-repeat;
       background-position: 0% 0px;
       background-size: cover;
@@ -631,7 +631,7 @@ $txt_delay: 0.2s;
     margin-top: 60px;
     .button {
       padding: 0 98px;
-      // background: url('https://4dscene.4dage.com/new4dkk/images/product_icon_arrow.png') #1fe4dc center left 30% no-repeat;
+      // background: url('https://eurs3.4dkankan.com/website/images/product_icon_arrow.png') #1fe4dc center left 30% no-repeat;
       margin-left: 8px;
     }
   }

+ 1 - 1
pc/src/page/capacity/index.vue

@@ -54,7 +54,7 @@ export default {
 
 <style lang="scss" scoped>
 .capatity-layout{
-    background: url(https://4dscene.4dage.com/new4dkk/images/person-bg.png) #eee no-repeat top center;
+    background: url(https://eurs3.4dkankan.com/website/images/person-bg.png) #eee no-repeat top center;
     background-size: 100% 400px;
     .capatity-con{
       width: 1100px;

+ 6 - 5
pc/src/page/cases/index.vue

@@ -23,7 +23,7 @@
         <div  class="card_active card" :style="{'animation-delay': i*0.1 + 's'}">
           <card :data="item" ></card>
         </div>
-
+        
       </h-col>
     </h-row>
   </div>
@@ -76,7 +76,7 @@ const types = [
   {
     id: 0,
     name: i18n.t('kankanSpace.typeOther')
-  }
+  },
 ]
 
 const sub_types = [
@@ -94,9 +94,10 @@ const sub_types = [
     icon: 'case_new',
     name: i18n.t('kankanSpace.new'),
     id: 2
-  }
+  },
 ]
 
+
 export default {
   // import引入的组件需要注入到对象中才能使用
   components: {
@@ -125,7 +126,7 @@ export default {
   computed: {
     ...mapState({
       langCases: state => state.language.home.cases,
-      language: state => state.language.current
+      language: state => state.language.current,
     })
   },
   // 监控data中的数据变化
@@ -276,7 +277,7 @@ export default {
     width: 256px;
     padding-left: 20px;
   }
-
+  
 }
 .paging {
   // border-left: #e5e5e5 1px solid;

+ 1 - 1
pc/src/page/chat/index.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="chat-layout" v-if="false">
+  <div class="chat-layout">
     <div class="hover-btn" @click="showAside=!showAside">
       <vcenter>
         <img :class="{'img-active':!showAside}" src="@/assets/images/home/chat-logo.png" alt="">

+ 1 - 1
pc/src/page/coreProducts/index.vue

@@ -39,7 +39,7 @@ export default {
         },
         {
           name: this.$t('conduct.coreProduct.itemTitle4'),
-          img: this.$cdn + 'v2/video/qiumu.mp4',
+          img: this.$cdn + `v2/video/qiumu.mp4`,
           runAnimation: true
         },
         {

+ 23 - 44
pc/src/page/coreProducts/sxz.vue

@@ -1,10 +1,7 @@
 <template>
   <div class="sxz-container">
     <div class="banner">
-      <div class="container">
-        <h1>{{ $t('conduct.sxz.bannerTitle') }}<a target="_blank" href="https://sxz.4dkankan.com">{{ $t('home.bannerMoreBtn') }}</a></h1>
-        <h4 class="sub-title">{{ $t('conduct.sxz.bannerSubTitle') }}</h4>
-      </div>
+      <div class="container" v-html="$t('conduct.sxz.bannerTitle')"></div>
     </div>
     <div class="plate-w" ref="homeLayout">
       <div class="plate item" v-for="(item,i) in sequenceArr" :key="i">
@@ -24,6 +21,7 @@
           <h2 class="common-title">{{ cases.name }}</h2>
           <ul class="case-list">
             <li v-for="item in cases.list" :key="item.link" :style="{'background-image': `url(${item.img})`}" @click="toLink(item.link)">
+              <h2>{{ item.name }}</h2>
             </li>
           </ul>
         </div>
@@ -44,7 +42,7 @@ export default {
     return {
       sequenceArr: [
         {
-          name: this.$t('conduct.sxz.itemTitle1'),
+          name: this.$t('conduct.sxz.itemTitle3'),
           img: require('@/assets/images/core-products/sxz/item-1.png'),
           runAnimation: true
         },
@@ -54,13 +52,13 @@ export default {
           runAnimation: true
         },
         {
-          name: this.$t('conduct.sxz.itemTitle3'),
+          name: this.$t('conduct.sxz.itemTitle4'),
           img: [require('@/assets/images/core-products/sxz/r06_s.jpeg'), require('@/assets/images/core-products/sxz/r06.jpeg')],
           runAnimation: true
         },
         {
-          name: this.$t('conduct.sxz.itemTitle4'),
-          iframeLink: 'https://www.4dkankan.com/decor.html?m=t-nn57rQe&m2=vr-t-nn57rQe-039',
+          name: this.$t('conduct.sxz.itemTitle5'),
+          iframeLink: '//www.4dkankan.com/decor.html?m=t-V7Wsf2Y&m2=vr-t-V7Wsf2Y-011',
           runAnimation: true
         }
       ],
@@ -68,17 +66,25 @@ export default {
         name: this.$t('conduct.sxz.itemTitle6'),
         list: [
           {
-            img: require('@/assets/images/core-products/sxz/case-1.png'),
+            name: '轻奢三房',
+            img: require('@/assets/images/core-products/sxz/case1.png'),
+            link: 'https://test.4dkankan.com/spc.html?m=vr-t-5JCEMWu-003'
+          },
+          {
+            name: '轻奢三房',
+            img: require('@/assets/images/core-products/sxz/case2.png'),
+            link: 'https://www.4dkankan.com/spc.html?m=vr-t-V7Wsf2Y-011'
+          },
+          {
+            name: '轻奢三房',
+            img: require('@/assets/images/core-products/sxz/case3.png'),
             link: 'https://www.4dkankan.com/spc.html?m=vr-t-nn57rQe-039'
           },
           {
-            img: require('@/assets/images/core-products/sxz/case-2.png'),
+            name: '轻奢三房',
+            img: require('@/assets/images/core-products/sxz/case4.png'),
             link: 'https://www.4dkankan.com/spc.html?m=vr-t-g9Ob6XN-069'
           },
-          {
-            img: require('@/assets/images/core-products/sxz/case-3.png'),
-            link: 'https://test.4dkankan.com/spc.html?m=vr-t-5JCEMWu-003'
-          }
         ]
       }
     }
@@ -114,37 +120,10 @@ export default {
     font-size: 40px;
     margin-bottom: 0;
     line-height: 56px;
-    padding: 160px 0;
     .container {
+      display: flex;
       align-items: center;
     }
-    h1 {
-      font-weight: 400;
-      font-size: 40px;
-      a {
-        color: #909090;
-        font-size: 16px;
-        line-height: 20px;
-        margin-left: 25px;
-        cursor: pointer;
-        position: relative;
-        display: inline-block;
-        &::after {
-          content: '';
-          display: block;
-          width: 100%;
-          height: 1px;
-          background: #909090;
-          margin-top: 1px;
-        }
-      }
-    }
-  .sub-title {
-    font-size: 20px;
-    margin-top: 20px;
-    font-weight: 400;
-    line-height: 28px;
-  }
   }
   .item {
     padding: 110px 0 0;
@@ -160,7 +139,7 @@ export default {
   .common-title {
     margin-top: 0;
     margin-bottom: 50px;
-    font-size: 40px;
+    font-size: 30px;
   }
   .img-item-w {
     position: relative;
@@ -171,7 +150,7 @@ export default {
     display: flex;
     li {
       flex: 1;
-      height: 255px;
+      height: 453px;
       margin-right: 20px;
       font-size: 24px;
       color: #202020;

+ 3 - 61
pc/src/page/distributor/index.vue

@@ -84,15 +84,7 @@
                 <p class="label">*{{ $t('agent.jinxiaoForm.phoneLabel') }}</p>
                 <h-row :gutter="10">
                   <h-col :span="8">
-                    <div class=" area-div" ref="quhaoMenu" @click.stop="showSelect=!showSelect">
-                      <span>{{codeActive[1]}}</span>
-                      <ul v-if="showSelect" >
-                        <li @click="selectItem(item)"  v-for="(item,i) in selectCall" :key="i">
-                          {{language==='en'?item[2]:item[0]}}{{item[1]}}
-                        </li>
-                      </ul>
-                    </div>
-                    <!-- <input type="text"  v-model="form.areaCode" placeholder="+86" value="+86"> -->
+                    <input type="text"  v-model="form.areaCode" placeholder="+86" value="+86">
                   </h-col>
                   <h-col :span="16">
                     <input maxLength="11" oninput="value=value.replace(/[^\d]/g,'')" type="text"  v-model="form.phone" :placeholder="$t('agent.jinxiaoForm.phonePlaceholder')">
@@ -117,13 +109,9 @@ import { getPosition } from '@/util'
 import { mapState } from 'vuex'
 import Api from '@/apis'
 import {reg} from '@/util'
-import selectCall from '@/util/country.js'
 export default {
   data () {
     return {
-      selectCall,
-      showSelect: false,
-      codeActive: ['中国', '+86', 'China'],
       form: {
         address: '',
         areaCode: '+86',
@@ -189,20 +177,12 @@ export default {
   components: {
   },
   mounted () {
-    let fn = () => {
-      this.showSelect = false
-    }
-    document.addEventListener('click', fn)
-    this.$once('hook:beforeDestroy', function () {
-      window.removeEventListener('click', fn)
-    })
   },
   destroyed () {
   },
   methods: {
     async saveAduit () {
       if (this.validator()) {
-        this.form.areaCode = Number(this.codeActive[1].substr(1))
         let res = await this.$http({
         method: 'post',
         data: this.form,
@@ -229,9 +209,7 @@ export default {
         }
       })
       }
-    },
-    selectItem (item) {
-      this.codeActive = item
+      
     },
     validator () {
       let check = value => {
@@ -402,41 +380,5 @@ export default {
     cursor: pointer;
   }
 }
-.area-div{
-      position: relative;
-      cursor: pointer;
-      &> span {
-        display: block;
-        background: #fff;
-        border: 1px solid #909090;
-        line-height: 38px;
-        vertical-align: middle;
-        margin-top: 10px;
-        box-sizing: border-box;
-        padding: 0 10px;
-      }
-      ul{
-        position: absolute;
-        top: 60px;
-        box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
-        left: 0;
-        background: #fff;
-        min-width: 230px;
-        width: auto;
-        height: 230px;
-        padding: 0 10px;
-        overflow: auto;
-        transition: all .3s ease;
-        li{
-          height: 40px;
-          line-height: 50px;
-          color: #999;
-          font-size: 14px;
-          cursor: pointer;
-          &:hover{
-            color: #000;
-          }
-        }
-      }
-    }
+
 </style>

+ 8 - 8
pc/src/page/eight/style.scss

@@ -208,11 +208,11 @@ $num_time: 0.6s;
         font-weight: 600;
       }
       .apple{
-        background: url(https://4dscene.4dage.com/new4dkk/images/apple.png) #4d4d4d left 30px center no-repeat;
+        background: url(https://eurs3.4dkankan.com/website/images/apple.png) #4d4d4d left 30px center no-repeat;
         background-size: 32px auto;
       }
       .android{
-        background: url(https://4dscene.4dage.com/new4dkk/images/android.png) #2fd36a left 30px center no-repeat;
+        background: url(https://eurs3.4dkankan.com/website/images/android.png) #2fd36a left 30px center no-repeat;
         background-size: 32px auto;
       }
     }
@@ -335,7 +335,7 @@ $num_time: 0.6s;
         width: 57.5vw;
         height: 20vw;
         margin-left: 280px;
-        background-image: url(https://4dscene.4dage.com/new4dkk/images/xinpian.png);
+        background-image: url(https://eurs3.4dkankan.com/website/images/xinpian.png);
         background-repeat: no-repeat;
         background-position: 0% 0px;
         background-size: cover;
@@ -407,7 +407,7 @@ $num_time: 0.6s;
 
 .plate05{
   padding: 155px 0 0;
-  background: url(https://4dscene.4dage.com/new4dkk/images/lin-bg.png) #060606 top center no-repeat;
+  background: url(https://eurs3.4dkankan.com/website/images/lin-bg.png) #060606 top center no-repeat;
   background-size: 100% auto;
   // .num-lighting{
   //   height: 0;
@@ -511,13 +511,13 @@ $num_time: 0.6s;
     .qxd-4{
       margin-top: 40px;
       padding: 144px 0 172px;
-      background: url(https://4dscene.4dage.com/new4dkk/images/battery-bg.png) top center no-repeat;
+      background: url(https://eurs3.4dkankan.com/website/images/battery-bg.png) top center no-repeat;
       .qxd-4-battery{
         margin: 0 auto;
         width: 679px;
         height: 131px;
         position: relative;
-        background: url(https://4dscene.4dage.com/new4dkk/images/battery-right.png) top center no-repeat;
+        background: url(https://eurs3.4dkankan.com/website/images/battery-right.png) top center no-repeat;
         .b-l{
           $skew_num:25deg;
           $position:23px;
@@ -576,7 +576,7 @@ $num_time: 0.6s;
         .lighting{
           width: 80px;
           height: 130px;
-          background-image: url(https://4dscene.4dage.com/new4dkk/images/lighting.png);
+          background-image: url(https://eurs3.4dkankan.com/website/images/lighting.png);
           background-repeat: no-repeat;
           background-position: 0% 0px;
           background-size: cover;
@@ -624,7 +624,7 @@ $num_time: 0.6s;
       width: 75vw;
       margin: 0 auto;
       height: 42vw;
-      background-image: url("https://4dscene.4dage.com/new4dkk/images/boomImg8-1.png");
+      background-image: url("https://eurs3.4dkankan.com/website/images/boomImg8-1.png");
       background-repeat: no-repeat;
       background-position: 0% 0px;
       background-size: cover;

+ 1 - 1
pc/src/page/home/style.scss

@@ -243,7 +243,7 @@
           padding-right: 30px;
           padding-top: 10px;
           display: inline-block;
-          background: url(https://4dscene.4dage.com/new4dkk/images/index_icon_record_arrow.png) no-repeat top right;
+          background: url(https://eurs3.4dkankan.com/website/images/index_icon_record_arrow.png) no-repeat top right;
         }
 
         p {

+ 1 - 1
pc/src/page/home2/index.vue

@@ -2,7 +2,7 @@
   <div class="home-layout">
     <div class="plate01">
       <div class="my-video">
-        <video :src="`${$cdn}v2/video/4dkankan_banner_video.mp4`" autoplay muted loop></video>
+        <video :src="`${$cdn}v2/video/bannerVideoV2.mp4`" autoplay muted loop></video>
         <div class="container">
           <div class="video-info">
           <h1>{{ $t('common.kankan') }}</h1>

+ 1 - 1
pc/src/page/introduce/style.scss

@@ -41,7 +41,7 @@
   }
 
   .introduce-bg{
-    background: url(https://4dscene.4dage.com/new4dkk/images/person-bg.png) no-repeat top center;
+    background: url(https://eurs3.4dkankan.com/website/images/person-bg.png) no-repeat top center;
     background-size: cover;
     .introduce-con{
       padding: 30px 0;

+ 1 - 1
pc/src/page/introtow/style.scss

@@ -3,7 +3,7 @@
   $theme-color:#1fe4dc;
 
   .introduce-bg{
-    background: url(https://4dscene.4dage.com/new4dkk/images/person-bg.png) no-repeat top center;
+    background: url(https://eurs3.4dkankan.com/website/images/person-bg.png) no-repeat top center;
     background-size: cover;
     .introduce-con{
       padding: 30px 0;

+ 1 - 1
pc/src/page/layout/aside/temp/ctemp/detail.scss

@@ -352,7 +352,7 @@ input {
           border: 1px solid #e7e7e7;
         }
         .fobid{
-          cursor: url(https://4dscene.4dage.com/new4dkk/images/forbid.png),auto;
+          cursor: url(https://eurs3.4dkankan.com/website/images/forbid.png),auto;
           color: #ccc;
           background-color: #f7f8fa;
           border-color: #e6e7eb;

+ 2 - 2
pc/src/page/layout/aside/temp/ctemp/list.vue

@@ -357,7 +357,7 @@ $border-color: #e7e7e7;
             border: 1px solid #e7e7e7;
           }
           .fobid {
-            cursor: url(https://4dscene.4dage.com/new4dkk/images/forbid.png), auto;
+            cursor: url(https://eurs3.4dkankan.com/website/images/forbid.png), auto;
             color: #ccc;
             background-color: #f7f8fa;
             border-color: #e6e7eb;
@@ -467,7 +467,7 @@ $border-color: #e7e7e7;
           border: 1px solid #e7e7e7;
         }
         .fobid{
-          cursor: url(https://4dscene.4dage.com/new4dkk/images/forbid.png),auto;
+          cursor: url(https://eurs3.4dkankan.com/website/images/forbid.png),auto;
           color: #ccc;
           background-color: #f7f8fa;
           border-color: #e6e7eb;

+ 0 - 1
pc/src/page/layout/aside/temp/ltemp/forget.vue

@@ -70,7 +70,6 @@ export default {
       // if (!reg.phone.test(this.phone)) {
       //   return
       // }
-
       let res = await this.$store.dispatch('getAuthCode', {
         phone: this.phone,
         code: this.codeActive[1].substr(1)

+ 78 - 87
pc/src/page/layout/header/index.vue

@@ -2,13 +2,13 @@
   <div class="header-layout" :class="language === 'zh' ? '' : 'isInternational'">
     <div class="container clear">
       <div class="logo-layout">
-        <!-- <router-link :to="{name: 'home'}" class="log1o"> -->
+        <router-link :to="{name: 'home'}" class="logo">
           <vcenter>
-            <img :src=" require('@/assets/images/home/logo.png')" alt>
+            <img :src="language === 'en' ? `${$cdn}v2/img/%E7%BB%84%203802.png` : require('@/assets/images/home/logo-cn.png')" alt>
           </vcenter>
-        <!-- </router-link> -->
+        </router-link>
       </div>
-      <!-- <div class="menu">
+      <div class="menu">
         <div
           class="list"
           ref="list"
@@ -39,11 +39,11 @@
                 <li v-for="item in languageList" :key="item.name" :style="{'background-image': `url(${item.img})`}" @click="changeLanguage(item.value)">{{ item.name }}</li>
               </ul>
             </a>
-          </div> -->
+          </div>
           <!-- <span class="language en" :class="{'is-active': language === 'en'}" @click="changeLanguage('en')">EN</span>
           <span class="language" :class="{'is-active': language !== 'en'}" @click="changeLanguage('zh')">中</span> -->
-        <!-- </div> -->
-        <!-- <div class="loginAndRegis"  v-if="!isLogin"><span @click="$router.push('/login/login')">{{$t('login.login')}}</span>|<span @click="$router.push('/login/register')">{{$t('login.register')}}</span></div>
+        </div>
+        <div class="loginAndRegis"  v-if="!isLogin"><span @click="$router.push('/login/login')">{{$t('login.login')}}</span>|<span @click="$router.push('/login/register')">{{$t('login.register')}}</span></div>
         <div v-else class="user-w">
           <div class="user avatar" v-if="info.head"  :style="{'background-image': `url(${info.head})`}" @click="$router.push('/information')"></div>
           <div class="list">
@@ -58,7 +58,7 @@
         <div class="cart" @click="handleCartClick" v-if="isLogin">
           <h-icon type="xingouwuche" class="icon" />
           <span v-if="cartCount">{{cartCount}}</span>
-        </div> -->
+        </div>
       </div>
     </div>
   </div>
@@ -84,80 +84,77 @@ export default {
       isWide,
       count: 0,
       navs: [
-        {text: this.$t('header.core_product'),
-          items: [
-            {
-              text: this.$t('header.corePruductItemPro'),
-              link: '/coreProducts'
-            },
-            {
-              text: this.$t('header.corePruductItemSxz'),
-              link: '/sxz'
-            }
-          ]
+        {text: this.$t('header.core_product'),  link: '/coreProducts'
+          // items: [
+          //   {
+          //     text: this.$t('header.core_product'),
+          //     link: '/coreProducts'
+          //   },
+          //   {
+          //     text: '随心装',
+          //     link: '/sxz'
+          //   }
+          // ]
         },
-        {text: this.$t('header.solutions'),
-          items: [
-            {
-              text: this.$t('header.solutionsHouse'),
-              link: '/conductHouse'
-            },
-            {
-              text: this.$t('header.solutionsExi'),
-              link: '/conductExhibition'
-            },
-            {
-              text: this.$t('header.solutionsSubject'),
-              link: '/conductSubject'
-            },
-            {
-              text: this.$t('header.solutionsShop'),
-              link: '/conductShop'
-            },
-            {
-              text: this.$t('header.solutionsSec'),
-              link: '/conductSecury'
-            }
-          ]},
-        {text: this.$t('header.kankan_space'),
-          link: '/cases/全部'
+        {text: this.$t('header.solutions'), items: [
+          {
+            text: this.$t('header.solutionsHouse'),
+            link: '/conductHouse'
+          },
+          {
+            text: this.$t('header.solutionsExi'),
+            link: '/conductExhibition'
+          },
+          {
+            text: this.$t('header.solutionsSubject'),
+            link: '/conductSubject'
+          },
+          {
+            text: this.$t('header.solutionsShop'),
+            link: '/conductShop'
+          },
+          {
+            text: this.$t('header.solutionsSec'),
+            link: '/conductSecury'
+          },
+        ]},
+        {text: this.$t('header.kankan_space'), 
+        link: '/cases/全部'
         },
-        {text: this.$t('header.core_tech'), link: '/location'},
-        {text: this.$t('header.service'),
-          items: [
-            {
-              text: this.$t('header.serviceApp'),
-              link: '/service/app/pro'
-            },
-            {
-              text: this.$t('header.serviceUse'),
-              link: '/service/use/pro'
-            },
-            {
-              text: this.$t('header.serviceBaoxiu'),
-              link: '/service/clause/pro'
-            },
-            {
-              text: this.$t('header.serviceVideo'),
-              link: '/service/mVideo/all'
-            }
-          ]},
-        {text: this.$t('header.about'),
-          items: [
-            {
-              text: this.$t('header.aboutCompany'),
-              link: '/about'
-            },
-            {
-              text: this.$t('header.aboutNews'),
-              link: '/news'
-            },
-            {
-              text: this.$t('header.aboutAgent'),
-              link: '/distributor'
-            }
-
-          ]}
+        {text: this.$t('header.core_tech'),  link: '/location'},
+        {text: this.$t('header.service'),  items: [
+          {
+            text: this.$t('header.serviceApp'),
+            link: '/service/app/pro'
+          },
+          {
+            text: this.$t('header.serviceUse'),
+            link: '/service/use/pro'
+          },
+          {
+            text: this.$t('header.serviceBaoxiu'),
+            link: '/service/clause/pro'
+          },
+          {
+            text: this.$t('header.serviceVideo'),
+            link: '/service/mVideo/all'
+          }
+        ]},
+        {text: this.$t('header.about'),  items: [
+          {
+            text: this.$t('header.aboutCompany'),
+            link: '/about'
+          },
+          {
+            text: this.$t('header.aboutNews'),
+            link: '/news'
+          },
+          {
+            text: this.$t('header.aboutAgent'),
+            link: '/distributor'
+          },
+          
+        ]}
       ]
     }
   },
@@ -225,12 +222,6 @@ export default {
       })
       this.count = count
     }
-    if (this.language === 'en') {
-      this.$set(this.navs, '0', {
-        text: this.$t('header.core_product'),
-        link: '/coreProducts'
-      })
-    }
   },
   destroyed () {
     window.removeEventListener('resize', this.sizeHandle)
@@ -238,7 +229,7 @@ export default {
   components: { vcenter },
   watch: {
     language (newVal) {
-      // document.title = newVal === 'en' ? '4DKanKan' : '四维看看'
+      document.title = newVal === 'en' ? '4DKanKan' : '四维看看'
     }
   }
 }

+ 1 - 1
pc/src/page/layout/header/istyle.scss

@@ -1,7 +1,7 @@
 .header-layout {
   $mc: .5s cubic-bezier(.77, 0, .175, 1);
   $ts: all $mc;
-  background-color: #000;
+  background-color: #fff;
   color: #fff;
   justify-content: space-between;
   color: #202020;

+ 2 - 3
pc/src/page/layout/shop.vue

@@ -7,7 +7,7 @@
     <div class="mask" :class="{active: showMask}" :style="{zIndex: maskZIndex}"></div>
     <ichat />
     <router-view />
-    <!-- <ifooter v-if="$route.name!=='about'" /> -->
+    <ifooter v-if="$route.name!=='about'" />
   </div>
 </template>
 
@@ -85,8 +85,7 @@ export default {
     (async () => {
       let res = await this.$store.dispatch('checkToken')
       if (localStorage.currentName === 'manage' && res) {
-        // this.$router.push({name: 'home'})
-        this.$router.push('/login/login')
+        this.$router.push({name: 'home'})
       }
     })()
 

+ 11 - 10
pc/src/page/layout/shopHeader/index.vue

@@ -2,13 +2,13 @@
   <div class="header-layout">
     <div class="container clear">
       <div class="logo-layout">
-        <!-- <router-link :to="{name: 'home'}" class="logo"> -->
+        <router-link :to="{name: 'home'}" class="logo">
           <vcenter>
-            <img :src=" require('@/assets/images/home/logo.png')" alt>
+            <img :src="language === 'en' ? `${$cdn}v2/img/%E7%BB%84%203802.png` : require('@/assets/images/home/logo-cn.png')" alt>
           </vcenter>
-        <!-- </router-link> -->
+        </router-link>
       </div>
-      <!-- <div class="menu">
+      <div class="menu">
         <div
           class="list"
           ref="list"
@@ -26,7 +26,7 @@
               </li>
             </ul>
           </a>
-
+          
         </div>
       </div>
       <div class="ctrl">
@@ -58,7 +58,7 @@
           <h-icon type="xingouwuche" class="icon" />
           <span v-if="cartCount">{{cartCount}}</span>
         </div>
-      </div> -->
+      </div>
     </div>
   </div>
 </template>
@@ -84,7 +84,7 @@ export default {
       navs: [
         { text: this.$t('header.mallPro'), link: '/mall/kankanPro' },
         { text: this.$t('header.mallPeijian'), link: '/mall/zhijia' },
-        { text: this.$t('header.addService'), link: '/mall/cloudCapacity' }
+        { text: this.$t('header.addService'), link: '/mall/cloudCapacity' },
         // { text: this.$t('header.solutions'), items: [
         //   {
         //     text: this.$t('header.solutionsHouse'),
@@ -177,7 +177,7 @@ export default {
   components: { vcenter },
   watch: {
     language (newVal) {
-      // document.title = newVal === 'en' ? '4DKanKan' : '四维看看'
+      document.title = newVal === 'en' ? '4DKanKan' : '四维看看'
     }
   }
 }
@@ -213,7 +213,7 @@ export default {
 .header-layout {
   $mc: .5s cubic-bezier(.77, 0, .175, 1);
   $ts: all $mc;
-  background-color: #000;
+  background-color: #fff;
   color: #fff;
   justify-content: space-between;
   color: #202020;
@@ -281,6 +281,7 @@ export default {
       }
     }
 
+    
   }
   .list {
       justify-content: space-between;
@@ -410,7 +411,7 @@ export default {
   transition: all linear 0.5s;
   padding-top: 6px;
   white-space: nowrap;
-
+  
   background: #fff;
   &::before {
     position: absolute;

+ 203 - 0
pc/src/page/location/style.scss

@@ -0,0 +1,203 @@
+$loca-ani:0.5s;
+.b-title{
+  margin-bottom: 21px;
+  color: #2d2d2d;
+
+}
+.b-label{
+  color: #95979B;
+
+}
+
+.location-layout{
+  overflow: hidden;
+  .plate01{
+    background: url(https://eurs3.4dkankan.com/website/images/hxjs-bg1.png) no-repeat;
+    background-size: cover;
+    .layout{
+      max-width: 1280px;
+      margin: 0 0 0 425px;
+      display: flex;
+      overflow: hidden;
+      justify-content: space-between;
+      align-items: center;
+      .info{
+        padding: 160px 0 100px;
+        color: #fff;
+        .info-con{
+          display: flex;
+          justify-content: space-between;
+          width: 580px;
+          margin-top: 50px;
+          position: relative;
+          left: -20px;
+          .b-label{
+            margin-top: 56px;
+          }
+          .item{
+            margin: 30px 0;
+            width: 32%;
+            text-align: center;
+            .icon{
+              width: 70px;
+              height: 70px;
+              background-repeat: no-repeat;
+              background-position: 0% 0px;
+              display: inline-block;
+              background-size: cover;
+              vertical-align: middle;
+              overflow-x: hidden;
+            }
+            p{
+              display: inline-block;
+              vertical-align: middle;
+              margin-top: 20px;
+              text-align: center;
+              width: 100%;
+            }
+          }
+        }
+        p{
+          width:580px;
+        }
+      }
+      .p1-model{
+        position: relative;
+        img{
+          width: 100%;
+        }
+        .pulse{
+          background: #fff;
+          border: 2px solid #1fe4dc;
+          border-radius: 50%;
+          height: 15px;
+          width: 15px;
+          position: absolute;
+          left: 10%;
+          top: 10%;
+          margin: 12px 0px 0px -7px;
+          z-index: 90;
+          &::after{
+            content: "";
+            border-radius: 50%;
+            height: 35px;
+            width: 35px;
+            position: absolute;
+            margin: -12px 0 0 -12px;
+            animation: pulsate 2s ease-out;
+            animation-iteration-count: infinite;
+            opacity: 0;
+            filter: alpha(opacity=0);
+            box-shadow: 0 0 1px 2px rgba(31, 228, 220, 1);
+            animation-delay: 1.1s;
+          }
+        }
+      }
+      
+    }
+  }
+
+  .plate02{
+    position: relative;
+    padding: 50px 0 0;
+    text-align: center;
+    height: 900px;
+   
+    .p2-imgcon{
+      width: 1000px;
+      position: relative;
+      margin: 80px auto 0;
+      img{
+        position: absolute;
+        top: 10%;
+        width: 100%;
+        left: 0;
+        z-index: 90;
+        &:last-of-type{
+          opacity: 0;
+          z-index: 99;
+          transition: 1s opacity ease;
+        }
+      }
+      .p2_img2_active{
+        opacity: 1!important;
+      }
+    }
+    .wave{
+      position: absolute;
+      bottom: 0;
+      left: 0;
+    }
+  }
+
+  .plate03{
+    padding: 50px 0 80px;
+    background: #f4f4f4;
+    text-align: center;
+    
+    .info{
+      margin: 0 auto;
+      width: 1200px;
+      .terminal{
+        margin-top: 60px;
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+        li{
+          text-align: center;
+          .b-label{
+            margin-top: 20px;
+          }
+          img{
+            width: 100%;
+          }
+        }
+      }
+    }
+  }
+}
+
+@media screen and (min-width: 2000px) {
+  .location-layout {
+    .plate01 {
+      .layout{
+        margin: 0 auto!important;
+      }
+    }
+  }
+}
+
+@media screen and (max-width: 1600px) {
+  .location-layout {
+    .plate01{
+      .layout{
+        margin-left: 130px;
+      }
+    }
+    .plate06{
+      .top,.bottom{
+        .intro{
+          margin-left: 200px;
+        }
+      }
+    }
+  }
+}
+
+@media screen and (max-width: 1200px) {
+  .location-layout {
+    .plate03{
+      .info{
+        width: 1024px;
+        .txt{
+          margin-left: 20px;
+        }
+      }
+      .bottom,.top{
+        .intro{
+          margin-left: 30px; 
+        }
+      }
+    }
+  }
+}

+ 4 - 6
pc/src/page/login/components/login.vue

@@ -4,8 +4,8 @@
       <div class="login-tab" :class="{'is-active': !type || type === 'codeLogin'}" @click="toOtherLogin('')">{{$t('login.userLogin')}}</div><div class="login-tab" :class="{'is-active': type==='camera'}" @click="toOtherLogin('camera')">{{$t('login.cameraLogin')}}</div>
     </div>
     <div class="account-login" v-if="!type">
-      <input type="text" v-if="!isInternational" oninput="value=value.replace(/[^\d]/g,'')" maxlength="11" class="input" :placeholder="isInternational? $t('login.emailPlaceholder') : $t('login.phonePlaceholder')" v-model="form.phone">
-      <input type="text" v-else class="input" :placeholder="isInternational? $t('login.emailPlaceholder') : $t('login.phonePlaceholder')" v-model="form.phone">
+      <input type="text" v-if="!isInternational" oninput="value=value.replace(/[^\d]/g,'')" maxlength="11" class="input" :placeholder="isInternational? $t('login.accountPlaceholder') : $t('login.phonePlaceholder')" v-model="form.phone">
+      <input type="text" v-else class="input" :placeholder="isInternational? $t('login.accountPlaceholder') : $t('login.phonePlaceholder')" v-model="form.phone">
       <div class="password-w">
         <input maxLength="16" :type="showPassword ? 'test' : 'password'" class="input password" :placeholder="$t('login.passwordPlaceholder')" v-model="form.password" @keyup.enter="login">
         <h-icon :type="showPassword ? 'mimakejian' : 'mimabukejian'" class="password-visible" @click="showPassword=!showPassword" />
@@ -17,7 +17,7 @@
       <div class="checkbox"><input type="checkbox" v-model="rememberMe" id="rember" /><label for="rember">{{$t('login.rememberPassword')}}</label></div>
       <div class="login-btn"  @click="login" >{{$t('login.login')}}</div>
       <div class="others">
-        <a class="other-actions" @click="$router.push('/login/forget')">{{ $t('login.forgetPassword') }}<span class="line" @click.stop=""></span></a>
+        <a class="other-actions" @click="$router.push('/login/forget')">{{ $t('login.forgetPassword') }}</a>
         <a class="other-actions" @click="$router.push(isInternational ? '/login/register?type=email' : '/login/register')">{{ $t('login.registerAccount') }}</a>
       </div>
     </div>
@@ -219,7 +219,7 @@ export default {
   &:first-child {
     margin-right: 34px;
     position: relative;
-    .line {
+    &::after {
       content: '';
       height: 14px;
       width: 1px;
@@ -228,8 +228,6 @@ export default {
       right: -18px;
       top: 50%;
       margin-top: -7px;
-      cursor: initial;
-      display: block;
     }
   }
 }

+ 10 - 10
pc/src/page/login/components/register/index.vue

@@ -11,7 +11,7 @@
           <span class="sanjiao"></span>
           <phoneAddressSelect  v-show="showPhoneArea" @select="changeArea" />
         </div>
-        
+
         <input oninput="value=value.replace(/[^\d]/g,'')" maxlength="11" :placeholder="$t('login.phonePlaceholder')" class="phone" type="text" v-model="form.phone">
       </div>
       <div class="code-w">
@@ -38,7 +38,7 @@
         <input :placeholder="$t('login.codePlaceholder')"  type="text" v-model="emailForm.authCode">
         <div class="send-code-btn" :class="{'is-disabled': interEmailTime}" @click="getEmailAuthCode">{{ interEmailTime ? $t('login.resendTime', { time: interEmailTime }) : $t('login.sendCodeBtnText')}}</div>
       </div>
-      
+
       <div class="password-w" :class="{'show-tip': !emailForm.password && passwordTip}" @mouseleave="passwordTip=false" @click="focusInput('emialInput')" >
         <input maxLength="16" ref="emialInput" :placeholder="passwordTip ? '' : $t('login.setPassword')" autocomplete="new-password "  v-model="emailForm.password" type="password" @mouseover="passwordTip=true" >
         <p>{{$t('login.passwordTip')}}</p>
@@ -47,7 +47,7 @@
         <input maxLength="16" :placeholder="confirmPassWordTip ? '' : $t('login.rePassword')" ref="emialConfirmInput" autocomplete="new-password" v-model="emailForm.confirmPass" type="password"  @mouseenter="confirmPassWordTip=true" >
         <p>{{$t('login.passwordTip')}}</p>
       </div>
-      
+
       <!-- <div class="right-tips"><span @click="type = 'phone'">手机号码注册</span></div> -->
     </div>
     <div class="xieyi-w">
@@ -80,7 +80,7 @@ export default {
         authCode: '',
         nickname: '',
         password: '',
-        confirmPass: '',
+        confirmPass: ''
       },
       emailForm: {
         phone: '',
@@ -90,7 +90,7 @@ export default {
       }
     }
   },
-  computed : {
+  computed: {
     ...mapState({
       langToast: state => state.language.home.toast,
       isInternational: state => state.isInternational,
@@ -105,7 +105,7 @@ export default {
         authCode: '',
         nickname: '',
         password: '',
-        confirmPass: '',
+        confirmPass: ''
       }
       this.emailForm = {
         phone: '',
@@ -148,7 +148,7 @@ export default {
       let res = await this.$store.dispatch('getAuthCode', {
         phone: this.form.phone,
         code: Number(this.selectArea[1].substr(1)),
-        type: 'resigter',
+        type: 'resigter'
       })
       if (res) {
         this.interl && clearInterval(this.interl)
@@ -173,7 +173,7 @@ export default {
         this.$toast.show('warn', (this.language === 'en' ? 'E-mail' : '邮箱') + this.langToast['7'])
         return
       }
-      let patt = /^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/
+      let patt = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/
       if (!patt.test(this.emailForm.phone)) {
         this.$alert(this.$t('login.currentEmailTip'))
         return
@@ -259,7 +259,7 @@ export default {
         msgAuthCode: form.authCode,
         nickName: form.phone,
         country,
-        confirmPwd: temp[1],
+        confirmPwd: temp[1]
       }
       let res = await this.$http({
         method: 'post',
@@ -477,4 +477,4 @@ export default {
       right: 10px;
       top: 16px;
     }
-</style>
+</style>

+ 1 - 1
pc/src/page/mall/kankanPro/index.vue

@@ -231,7 +231,7 @@ export default {
         },
         {
           name: this.$t('conduct.coreProduct.itemTitle4'),
-          img: this.$cdn + 'v2/video/qiumu.mp4',
+          img: `${this.$cdn}v2/video/qiumu.mp4`,
           runAnimation: true
         },
         {

+ 1 - 1
pc/src/page/mall/pay/index.vue

@@ -3,7 +3,7 @@
     <div class="container">
       <div class="pay-header">
         <div class="logo">
-          <img :src="language === 'en' ? `https://4dscene.oss-cn-shenzhen.aliyuncs.com/new4dkk/v2/img/%E7%BB%84%203802.png` : require('@/assets/images/home/logo-cn.png')" alt="">
+          <img :src="language === 'en' ? `${$cdn}v2/img/%E7%BB%84%203802.png` : require('@/assets/images/home/logo-cn.png')" alt="">
         </div>
         <p>{{ $t('mall.payCenter') }}</p>
       </div>

+ 5 - 6
pc/src/page/manage/index.vue

@@ -23,7 +23,7 @@
               </div>
             </div>
           </div>
-          <!-- <div class="open-btn" :style="{backgroundColor:'#1fe4dc'}" @click="toastKR(detail.userId)">{{langMain.btnType.buy[detail.spaceId?'xufei':'name']}}</div> -->
+          <div class="open-btn" :style="{backgroundColor:'#1fe4dc'}" @click="toastKR(detail.userId)">{{langMain.btnType.buy[detail.spaceId?'xufei':'name']}}</div>
       </div>
     </div>
     <div class="manage-body ">
@@ -31,7 +31,7 @@
         <div class="mc-left">
           <div v-for="(item,index) in settings" :key="index">
             <ul class="list-items">
-              <li v-for="(sub,i) in item.items" :key="i" :class="{'is-en': language !== 'zh'}">
+              <li v-for="(sub,i) in item.items" :key="i">
                 <span @click="tabHandle(sub)" :class="{active:active.name===sub.name,'logout-span':sub.name === '退出登录'||sub.name === 'Log out'}">{{sub.name}}</span>
               </li>
             </ul>
@@ -106,10 +106,9 @@ export default {
         case 'logout':
           this.$toast.showConfirm('warn', this.language === 'en' ? 'Are you sure to log out?' : '确定要退出登录吗?', async () => {
             await this.$store.dispatch('logout')
-            // this.$router.push({
-            //   name: 'login'
-            // })
-            this.$router.push('/login/login')
+            this.$router.push({
+              name: 'home'
+            })
           })
           break
 

+ 1 - 10
pc/src/page/manage/style.scss

@@ -1,11 +1,6 @@
 .manage-layout{
-  
   $font-color:#2d2d2d;
   $theme-color:#1fe4dc;
-  position: relative;
-  width: 100vw;
-  height: 100vh;
-  background: #f4f4f6;
   .manage-bg{
     background: url(https://4dscene.4dage.com/new4dkk/images/person-bg.png) no-repeat top center;
     background-size: cover;
@@ -143,7 +138,7 @@
   }
   .manage-body{
     min-height: 676px;
-    padding: 100px 0;
+    padding: 80px 0;
     background-color: #f4f4f6;
     .container {
       display: flex;
@@ -164,9 +159,6 @@
           line-height: 36px;
           text-align: right;
           padding-right: 110px;
-          &.is-en {
-            padding-right: 50px;
-          }
           span{
             cursor: pointer;
             display: inline-block;
@@ -205,7 +197,6 @@
     .mc-right{
       width: 100%;
       background: #fff;
-      position: relative;
       .mc-title{
         margin-left: 40px;
         margin-top: 34px;

+ 1 - 2
pc/src/page/manage/temp/device.vue

@@ -150,8 +150,7 @@ export default {
       tabActive: 4,
       currentPage: 1,
       total: 0,
-      // isImgType: isImgType,
-      isImgType: true,
+      isImgType: isImgType,
       searchKey: '',
       pageSize: 8,
       isWide: window.innerWidth > 1300,

+ 5 - 5
pc/src/page/manage/temp/information.vue

@@ -52,18 +52,18 @@
               type="text"
             >
           </p>
-          <!-- <label class="check-con" @click="isReceive=!isReceive">
+          <label class="check-con" @click="isReceive=!isReceive">
             <span class="check-box">
               <span class="checkbox-inner" :class="{'checkbox-inner-checked':isReceive}"></span>
             </span>
             <span style="font-size:14px;color:#000;" v-html="langAccount.isReceive"></span>
-          </label> -->
+          </label>
           <div @click="saveNickName" class="btn parmary">{{langAccount.save}}</div>
         </div>
       </div>
     </edit>
 
-    <!-- <edit
+    <edit
       :name="langAccount.address"
       @clickOper="handleOper('addressStatus')"
       :oper="addressStatus?langAccount.edit:langAccount.show"
@@ -99,7 +99,7 @@
         </div>
         <div class="btn parmary" @click="uAddress">{{langAccount.save}}</div>
       </div>
-    </edit> -->
+    </edit>
   </div>
 </template>
 
@@ -451,7 +451,7 @@ export default {
   $info-width: 120px;
 
   width: 90%;
-  // padding-bottom: 100px;
+  padding-bottom: 100px;
   input {
     appearance: none;
     line-height: 36px;

+ 30 - 100
pc/src/page/manage/temp/scene.vue

@@ -17,19 +17,6 @@
           <span class="button" @click="multCop">{{ $t('manage.sceneAdmin.collaborative') }}</span>
           <span class="button default" @click="multDel">{{ $t('common.delete') }}</span>
         </div>
-        <div class="main-list">
-          <i @click="changeType(true)" class="iconfont icon-main_grid" :title="langScenes.pictle" :class="{active:isImgType}"></i>
-          <i @click="changeType(false)" class="iconfont icon-main_list" :title="langScenes.listtle" :class="{active:!isImgType}"></i>
-        </div>
-      </div>
-
-      <div class="search-w">
-        <div class="date-w">
-          <span class="label">{{ $t('manage.sceneAdmin.createTime') }}</span>
-          <vueDate showClear v-model="startTime" :placeholder="$t('manage.sceneAdmin.startTime')" :isDateDisabled="isAfter" :weekdays="weekdays" :months="months"></vueDate>
-          <span>-</span>
-          <vueDate showClear v-model="endTime" :placeholder="$t('manage.sceneAdmin.endTime')" :isDateDisabled="isBefore" :weekdays="weekdays" :months="months"></vueDate>
-        </div>
         <div class="tab-search">
           <input
             v-model="searchKey"
@@ -37,10 +24,12 @@
             type="text"
             :placeholder="langScenes.placeholder.searchID"
           />
-
-          <!-- <i class="iconfont icon-sousuo" @click="gotoSearch(searchKey)"></i> -->
+          <i class="iconfont icon-sousuo" @click="gotoSearch(searchKey)"></i>
+        </div>
+        <div class="main-list">
+          <i @click="changeType(true)" class="iconfont icon-main_grid" :title="langScenes.pictle" :class="{active:isImgType}"></i>
+          <i @click="changeType(false)" class="iconfont icon-main_list" :title="langScenes.listtle" :class="{active:!isImgType}"></i>
         </div>
-        <div class="search-btn" @click="gotoSearch(searchKey)">{{ $t('manage.sceneAdmin.search')}}</div>
       </div>
     </div>
 
@@ -188,9 +177,8 @@ import { mapState } from 'vuex'
 import tableList from '@/components/table'
 import {scene} from './iscene'
 import Paging from '@/components/Paging'
-import vueDate from '@/components/common/vueDate/vueDatePick'
 export default {
-  components: { Paging, tableList, vueDate },
+  components: { Paging, tableList },
   data () {
     let imgs = [
       {
@@ -225,7 +213,7 @@ export default {
       isImgType: isImgType,
       lwidth: 853,
       lheight: 480,
-      url: 'https://www.4dkankan.com/showProPC.html?m=KcMeJlOr8',
+      url: 'https://eur.4dkankan.com/showProPC.html?m=KcMeJlOr8',
       item: '',
       ulActive: '',
       tabActive: 1,
@@ -237,11 +225,7 @@ export default {
           name: this.$t('manage.sceneAdmin.collaborativeScene'),
           id: 2
         }
-      ],
-      startTime: '',
-      endTime: '',
-      weekdays: ['一', '二', '三', '四', '五', '六', '日'],
-      months: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月']
+      ]
     }
   },
   watch: {
@@ -292,7 +276,7 @@ export default {
       }
     }),
     htmlCode () {
-      return `<iframe src="${this.url}" width="${this.lwidth}" height="${this.lheight}" allowfullscreen="true" frameborder="0"></iframe>`
+      return `<iframe src="${this.url}" width="${this.lwidth}" allowfullscreen="true" height="${this.lheight}" frameborder="0"></iframe>`
     }
   },
   mounted () {
@@ -314,10 +298,6 @@ export default {
       this.getCooTotal()
       this.getList()
     }
-    if (this.language !== 'zh') {
-      this.weekdays = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
-      this.months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
-    }
   },
   methods: {
     changeType (status) {
@@ -413,7 +393,9 @@ export default {
       this.showShare = true
     },
     goto (url) {
-      let temp = url.replace('show.html', 'showPC.html')
+      let temp = url.replace('smobile.html', 'spc.html')
+      // let temp1 = temp.replace('//www', '//test')
+      // window.open(temp.replace('//www', '//test'), '_blank')
       window.open(temp.replace('http://', 'https://') + (this.language === 'en' ? '&lang=en' : ''), '_blank')
     },
     getSceneImg (item) {
@@ -445,10 +427,8 @@ export default {
             break
         }
       }
+
       url = pStr ? url.replace(page, pStr) : url
-      // 预留代码 为了跳转根域名
-      let queryParams = url.split('.html')[1]
-      console.log(window.location.origin + '/' + pStr + '.html' + queryParams)
 
       window.open(url.replace('http://', 'https://') + (this.language === 'en' ? '&lang=en' : ''), '_blank')
     },
@@ -512,9 +492,7 @@ export default {
         pageSize: this.pageSize,
         cameraId,
         searchKey: this.searchKey.trim(),
-        cameraType,
-        startTime: new Date(this.startTime).getTime(),
-        endTime: new Date(this.endTime).getTime() + 86400000
+        cameraType
       }
       if (this.tabActive === 2) {
         await this.$store.dispatch('getCooperationScene', params)
@@ -558,14 +536,6 @@ export default {
       }
 
       document.body.removeChild(textArea)
-    },
-    isBefore (date) {
-      const startDate = new Date(this.startTime)
-      return date < startDate
-    },
-    isAfter (date) {
-      const endDate = new Date(this.endTime)
-      return date > endDate
     }
   }
 }
@@ -629,29 +599,7 @@ $font-color: #2d2d2d;
           margin-left: 10px;
         }
       }
-
-      .main-list{
-        display: inline-block;
-        margin-left: 20px;
-        .iconfont{
-          cursor: pointer;
-          font-size: 20px;
-          margin-left: 5px;
-        }
-        .active{
-          color: #1fe4dc;
-        }
-      }
-    }
-    .search-w {
-      position: absolute;
-      top: 0;
-      right: 40px;
-      top: 38px;
-      display: flex;
-      font-size: 12px;
-    }
-    .tab-search{
+      .tab-search{
         position: relative;
         width: 230px;
         border: 1px solid #ccc;
@@ -673,6 +621,20 @@ $font-color: #2d2d2d;
           border: 0;
         }
       }
+      .main-list{
+        display: inline-block;
+        margin-left: 20px;
+        .iconfont{
+          cursor: pointer;
+          font-size: 20px;
+          margin-left: 5px;
+        }
+        .active{
+          color: #1fe4dc;
+        }
+      }
+    }
+
   }
   > ul {
     padding: 30px 0 0 40px;
@@ -710,7 +672,7 @@ $font-color: #2d2d2d;
         top: 10px;
         width: 35px;
         height: 35px;
-        background-image: url(https://4dscene.4dage.com/new4dkk/images/share-btn.png);
+        background-image: url(https://eurs3.4dkankan.com/website/images/share-btn.png);
         background-color: rgba(0, 0, 0, 0.3);
         background-position: center;
         background-repeat: no-repeat;
@@ -1127,35 +1089,3 @@ $font-color: #2d2d2d;
   }
 }
 </style>
-
-<style lang="less">
-.scene-layout {
-  .search-w {
-    input {
-      line-height: 28px;
-      border: 1px solid #ccc;
-    }
-    .date-w {
-      margin-right: 15px;
-      .label {
-        margin-right: 10px;
-        font-size: 14px;
-      }
-    }
-    .vdpWithInput {
-      input {
-        width: 140px;
-        padding: 0 10px;
-      }
-    }
-    .search-btn {
-      padding: 0 20px;
-      line-height: 28px;
-      background: #1fe4dc;
-      margin-left: 15px;
-      cursor: pointer;
-      // font-weight: bold;
-    }
-  }
-}
-</style>

+ 1 - 2
pc/src/page/news/index.vue

@@ -112,7 +112,7 @@ export default {
         en: '../www/newsList/news-en.json'
       }
       http.get(`${urlMap[this.language]}`).then(res => {
-        this.newsData = res.data.sort((a, b) => new Date(b.time) - new Date(a.time))
+        this.newsData = res.data
       })
     }
   }
@@ -200,7 +200,6 @@ export default {
     display: inline-block;
     cursor: pointer;
     margin-bottom: 66px;
-    height: 489px;
     &:last-child {
       margin-right: 0;
     }

+ 274 - 0
pc/src/page/purchase/index.vue

@@ -0,0 +1,274 @@
+<template>
+  <div class="purchase-layout" v-show="split">
+    <div class="plate01">
+      <div class="main-detail">
+        <browse
+          :idata='browdata'
+          :iactive='browactive'
+          :floder="'probrowse'"
+          class="product-img"
+          :style="{marginLeft:(split - 350)+ 'px'}"
+         />
+        <!-- <img
+          class="product-img"
+          :style="{marginLeft:(split - 170)+ 'px'}"
+          :src="`${$cdn}images/banner_pro-white.png`"
+          alt
+        > -->
+        <div class="layout">
+          <img class="pro-logo" :src="language==='en'?`${$cdn}images/pro-logo-en.png`:`${$cdn}images/pro-logo.png`" alt="">
+          <p class="sub b-label" v-html="langPurchase.dec"></p>
+          <p class="price">
+             {{langPurchase.price}}
+            <span>{{langPurchase.yushou}}</span>
+          </p>
+          <template>
+            <p class="title first-title">{{langPurchase.color.key}}</p>
+            <div class="detail-box">
+              <i class="iconfont icon-yuandian">{{langPurchase.color.val}}</i>
+            </div>
+            <p class="title">{{langPurchase.service.key}}</p>
+            <div class="detail-box sceond-box">
+              <i class="iconfont icon-yuandian">{{langPurchase.service.type}}</i>
+              <!-- <span @click="scrollTo('rlgz')">{{langPurchase.why}}</span> -->
+              <ul>
+                <li v-for="(item, i) in langPurchase.service.val" :key="i">{{item}}</li>
+              </ul>
+            </div>
+            <p class="title ">{{langPurchase.gift.peijian}}</p>
+            <div class="detail-box zhijia" :style="{padding:language==='en'?'10px 2.5% 10px 3.5%':'10px 3.5%'}" :class="{'no-active':!selectParts}" @click="selectParts=!selectParts">
+              <img :src="`${$cdn}images/tag-icon.png`" class="t-click" alt>
+              <img :src="`${$cdn}images/zhijia.png`" alt>
+              <div>
+                <p>{{langPurchase.gift.val}}</p>
+                <p>{{langPurchase.gift.price}}</p>
+              </div>
+            </div>
+            <p class="title peijian">
+              <img :src="`${$cdn}images/perjian-warn.png`" alt="">
+              <span @click="$router.push({name:'purchasezhijia'})">{{langPurchase.gift.key}}</span>
+            </p>
+          </template>
+          <template v-if="language!=='en'">
+            <p class="title" style="margin-top:20px;">{{langPurchase.count.key}}</p>
+            <spinner class="spinner" @count="handleSpinner"/>
+          </template>
+          <div>
+            <div class="btns">
+              <div v-if="language!=='en'" class="button add-cart" @click="addcart">
+                <vcenter>
+                  <span>加入购物车</span>
+                </vcenter>
+              </div>
+              <div class="button"  @click="pay">
+                <vcenter>
+                  <span>{{langPurchase.buy}}</span>
+                </vcenter>
+              </div>
+            </div>
+            <div class="btn-dec" >{{langPurchase.tiaokuan}}</div>
+          </div>
+        </div>
+      </div>
+    </div>
+    <div class="plate02" >
+      <div class="b-title">{{langPurchase.guige.name}}</div>
+      <div class="params-img-con">
+        <img class="params-img" :src="`${$cdn}images/product_img_content_6_w.png`" alt="">
+      </div>
+      <div class="params-body">
+        <div class="params-con">
+          <div class="params-item" v-for="(item,index) in langPurchase.guige.arr" :key="index">
+            <div class="p-l">{{item.name}}</div>
+            <div class="p-r">
+              <div v-html="sub" v-for="(sub,i) in item.val" :key="i"></div>
+            </div>
+          </div>
+        </div>
+        <div class="sub">
+          <p>{{langPurchase.guige.dec}}</p>
+        </div>
+      </div>
+    </div>
+    <!-- <div class="plate03" ref="rlgz">
+      <div class="p03">
+        <div class="b-title">{{langPurchase.pricename}}</div>
+        <priceTable/>
+        <ul class="qa-con">
+          <li v-for="(item,i) in langPurchase.pricetxt" :key="i">
+            <p>{{item.q}}</p>
+            <p v-html="item.a"></p>
+          </li>
+          <p class="promise">{{langPurchase.notice}}</p>
+        </ul>
+        <p class="peijian" @click="$router.push({name:'pricedetail'})">
+          <img :src="`${$cdn}images/perjian-warn.png`" alt="">
+          <span>{{langPurchase.view}}</span>
+        </p>
+      </div>
+    </div> -->
+  </div>
+</template>
+
+<script>
+import { mapState } from 'vuex'
+import spinner from '@/components/spinner'
+import vcenter from '@/components/vcenter'
+import browse from '@/components/browse'
+import priceTable from '@/components/priceTable'
+import { getPosition } from '@/util'
+
+export default {
+  components: {
+    spinner,
+    vcenter,
+    browse,
+    priceTable
+  },
+  computed: {
+    ...mapState({
+      split: state => state.ui.navDivision,
+      isLogin: state => state.user.name,
+      langPurchase: state => state.language.home.purchase,
+      language: state => state.language.current,
+      langToast: state => state.language.home.toast,
+      token: state => state.user.token,
+      cart: state => JSON.parse(state.user.cart)
+    })
+  },
+  data () {
+    let detail = {
+      left: [
+        '数据永久存储',
+        '高速上传计算队列',
+        '场景分享、热点编辑、隐私加密'
+      ],
+      right: ['多种个性化功能', '附送30G终身容量']
+    }
+    let guige = [
+      {
+        name: '容量和内存',
+        val: ['LPDDR4X双通道', '6G内存', 'UFS 2.1', '64GB 机身存储']
+      },
+      {
+        name: '机身尺寸和重量',
+        val: ['高度 = 153.3m', '宽度 = 74.5mm', '厚度 = 7.9mm', '重量 = 170g']
+      },
+      {
+        name: '处理器平台',
+        val: [
+          'Qualcomm® 骁龙™ 845 处理器',
+          '10nm 先进制程',
+          '单核主频可达 2.8GHz',
+          'Adreno™ 630 图形处理器,主频可达 700MHz',
+          '配备人工智能引擎(AI Engine)'
+        ]
+      },
+      {
+        name: '网络',
+        val: ['支持 VoLTE 高质量宽带', '支持三载波聚', '支持 LTE B41 4x4 MIMO']
+      },
+      {
+        name: '屏幕',
+        val: [
+          '6.17 英寸 In-Cell 全高清显示屏',
+          '2242 x 1080 分辨率,403 ppi',
+          '康宁®第三代大猩猩®玻璃'
+        ]
+      }
+    ]
+    let browdata = [
+      {
+        small: 'small-0',
+        big: 'big-0',
+        video: true
+      }, {
+        small: 'small-1',
+        big: 'big-1'
+      },
+      {
+        small: 'small-2',
+        big: 'big-2'
+      },
+      {
+        small: 'small-3',
+        big: 'big-3'
+      }]
+    let browactive = browdata[0]
+    return {
+      detail,
+      guige,
+      browactive,
+      browdata,
+      count: 1,
+      selectParts: true
+    }
+  },
+  methods: {
+    handleSpinner (data) {
+      this.count = data
+    },
+    async addcart () {
+      if (!this.token) {
+        return this.$bus.$emit('showAside')
+      }
+      let zhijia = {
+        goodsId: 7,
+        goodsCount: this.count,
+        skuSn: 'U15604134406280073'
+      }
+      let params = {
+        goodsId: 4,
+        goodsCount: this.count,
+        skuSn: 'U15609161635760015'
+      }
+      await this.$store.dispatch('addCart', params)
+      this.selectParts && await this.$store.dispatch('addCart', zhijia)
+      this.$toast.show('success', this.langToast['39'])
+    },
+    pay () {
+      if (this.language === 'en') {
+        return window.open('https://www.alibaba.com/product-detail/4DKanKan-Pro-3D-camera-3D-space_62183626283.html?spm=a2700.icbuShop.74.1.66b35b10I4miJd')
+      }
+      let params = {
+        type: 'detail',
+        sku: [{
+          goodsId: 4,
+          goodsCount: this.count,
+          price: 12800,
+          skuSn: 'U15609161635760015'
+        }],
+        fromList: false
+      }
+      let zhijia = {
+        goodsId: 7,
+        goodsCount: this.count,
+        price: 899,
+        skuSn: 'U15604134406280073'
+      }
+      this.selectParts && params.sku.push(zhijia)
+      this.$bus.$emit('showAside', params)
+    },
+    scrollTo (href) {
+      this.interval = null
+      let inter = 0
+      let tag = getPosition(this.$refs[href]).y - 90
+      let speed = Math.ceil(tag / 40)
+      this.interval = setInterval(() => {
+        window.scrollTo(0, inter)
+        inter += speed
+        if ((window.scrollY || window.pageYOffset) >= tag) {
+          clearInterval(this.interval)
+        }
+      })
+    }
+  },
+  beforeDestroy () {
+    clearInterval(this.interval)
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+@import "./style.scss";
+</style>

+ 1 - 1
pc/src/page/purchasetow/style.scss

@@ -26,7 +26,7 @@
 }
 
 .plate01{
-  background: url(https://4dscene.4dage.com/new4dkk/images/purchase_bg.png) #f8f9fc top center no-repeat;
+  background: url(https://eurs3.4dkankan.com/website/images/purchase_bg.png) #f8f9fc top center no-repeat;
   padding: 0 0 100px;
   .main-detail{
     padding-top: 80px;

+ 1 - 1
pc/src/page/purchasezhijia/style.scss

@@ -26,7 +26,7 @@
 }
 
 .plate01{
-  background: url(https://4dscene.4dage.com/new4dkk/images/purchase_bg.png) #f8f9fc top center no-repeat;
+  background: url(https://eurs3.4dkankan.com/website/images/purchase_bg.png) #f8f9fc top center no-repeat;
   padding: 0 0 100px;
   .main-detail{
     padding-top: 20px;

+ 18 - 56
pc/src/page/service/temp/app.vue

@@ -10,17 +10,8 @@
         <img :src=" language==='en'?`https://4dscene.4dage.com/new4dkk/images/pro-logo-en.png`:`https://4dscene.4dage.com/new4dkk/images/pro-logo.png`" alt srcset>
         <h2></h2>
         <p>{{ $t('service.appDownload.downloadTip')}}</p>
-        <div class="download-w">
-          <div class="app ios">
-            <img class="qrcode" :src="`${$cdn}images/iosQrcodeWithIcon.png`" >
-            <div class="icon">IOS</div>
-          </div>
-          <div class="app android">
-            <img class="qrcode" :src="`${$cdn}images/androidQrcodeWithIcon.png`" >
-            <div class="icon">Android</div>
-          </div>
-        </div>
-        <!-- <div>
+
+        <div>
           <p>
             <a class="button">
               <img :src="`${$cdn}images/service_icon_ios@2x.png`" >
@@ -35,9 +26,8 @@
             </a>
             <img class="qrcode" :src="`${$cdn}images/anzhuoqrcode.png`">
           </p>
-        </div> -->
+        </div>
       </div>
-      <div class="mobile-scan"></div>
     </div>
   </div>
 </template>
@@ -57,14 +47,10 @@ export default {
 </script>
 
 <style lang="scss" scoped>
-.app-download {
-  background: #F7F7F7;
-}
+
 .container {
-  padding: 80px 0 196px;
-  position: relative;
   .common-title {
-    margin: 0 0 65px;
+    margin: 80px 0 65px;
   }
   .logo {
     float: left;
@@ -113,7 +99,19 @@ export default {
           background-color: #7fc651;
         }
 
-        
+        .qrcode{
+          pointer-events: none;
+          overflow: hidden;
+          opacity: 0;
+        }
+
+        &:hover {
+          .qrcode{
+            opacity: 1;
+            width: 180px;
+            margin-top: 20px;
+          }
+        }
       }
 
       .button {
@@ -133,41 +131,5 @@ export default {
 
     }
   }
-  .download-w {
-    display: flex;
-  }
-  .app {
-    width: 172px;
-    height: 212px;
-    background: url(~@/assets/images/refactor/appDownload/app-bg.png) no-repeat center center;
-    background-size: cover;
-    text-align: center;
-    &.ios {
-      margin-right: 80px;
-    }
-    .qrcode{
-      pointer-events: none;
-      overflow: hidden;
-      opacity: 1;
-      width: 122px;
-      margin: 20px auto 0;
-      display: block;
-      
-    }
-    .icon {
-      color: #909090;
-      margin-top: 16px;
-      font-size: 14px;
-    }
-  }
-}
-.mobile-scan {
-  width: 195px;
-  height: 380px;
-  background: url(~@/assets/images/refactor/appDownload/mobile-scan.png) no-repeat center center;
-  background-size: cover;
-  position: absolute;
-  right: 0;
-  bottom: -135px;
 }
 </style>

+ 5 - 13
pc/src/page/service/temp/index.vue

@@ -3,7 +3,6 @@
     <div class="banner">
       <div class="container">
         <h1>{{$t('service.title')}}</h1>
-        <h-icon type="jiantou"  class="jiantou" />
         <ul>
           <li :class="{'is-active': $route.path === item.path}" v-for="item in listItem" :key="item.name" @click="$router.push(item.path)">{{ item.name }}</li>
         </ul>
@@ -94,27 +93,20 @@ export default {
 }
 .banner {
   width: 100%;
-  height: 200px;
+  height: 290px;
   background: url(~@/assets/images/refactor/appDownload/banner.jpg) no-repeat center center;
-  .container {
-    display: flex;
-    align-items: center;
-    .jiantou {
-      color: #707070;
-      margin: 0 26px;
-      transform: rotate(180deg);
-    }
-  }
   h1 {
     font-size: 40px;
     font-weight: normal;
+    padding-top: 107px;
     line-height: 50px;
+    margin-bottom: 30px;
   }
   ul {
     display: flex;
   }
   li {
-    margin-right: 33px;
+    padding: 0 30px;
     font-size: 16px;
     color: #909090;
     cursor: pointer;
@@ -127,7 +119,7 @@ export default {
     }
   }
 }
-@media screen and (max-width: 1600px) {
+  @media screen and (max-width: 1600px) {
   // .fix-layout{
   //   margin-right: auto!important;
   //   max-width: 900px!important;

+ 30 - 63
pc/src/page/service/video.vue

@@ -1,32 +1,31 @@
 <template>
   <div class="video-w">
     <div class="container">
-      <ul class="setion">
-        <li class="common-title" :class="{'is-active': activeTab === i}" v-for="(item,i) in langVideoCourse" @click="activeTab=i" :key="i">{{item.name}}</li>
-      </ul>
-      <h-row class="i-ul" :gutter="20">
-        <h-col :span="langVideoCourse[activeTab].items.length > 2 ? 6 : 12"  v-for="(sub,idx) in langVideoCourse[activeTab].items" :key="idx">
-          <div class="i-li" :class="{small: langVideoCourse[activeTab].items.length > 2}" @click="itemHandle(sub)">
-            <div class="img-w">
-              <img class="li-img" :src="`${$cdn}course/img/${sub.code}.jpg?version=7`" alt="">
-              <div class="hover-item">
-                <img :src="`${$cdn}course/img/video-play.png`" alt="">
-                <p>{{sub.name}}</p>
-              </div>
+    <div class="setion" v-for="(item,i) in langVideoCourse" :key="i">
+      <p class="common-title">{{item.name}}</p>
+      <!-- <p class="b-label">{{item.sub}}</p> -->
+      <ul class="i-ul">
+        <li :class="{small: item.items.length > 2}" :style="{width:`${90/item.items.length*2}%`}" @click="itemHandle(sub)" v-for="(sub,idx) in item.items" :key="idx">
+          <div class="img-w">
+            <img class="li-img" :src="`${$cdn}course/img/${sub.code}.jpg`" alt="">
+            <div class="hover-item">
+              <img :src="`${$cdn}course/img/video_play@2x.png`" alt="">
+              <p>{{sub.name}}</p>
             </div>
-            <p class="li-p" >{{sub.name}}</p>
           </div>
-        </h-col>
-      </h-row>
+          <p class="li-p" >{{sub.name}}<img class="bofang" :src="`${$cdn}course/img/video_play@2x.png`" alt=""></p>
+          
+        </li>
+      </ul>
     </div>
   </div>
+  </div>
 </template>
 
 <script>
 import { mapState } from 'vuex'
 
 export default {
-
   computed: {
     ...mapState({
       language: state => state.language.current,
@@ -35,7 +34,7 @@ export default {
   },
   data () {
     return {
-      activeTab: 0
+
     }
   },
   methods: {
@@ -60,50 +59,20 @@ export default {
   .setion{
     margin: 0 0 0;
     padding-top: 86px;
-    display: flex;
-    .common-title {
+    .common-title{
       margin: 0;
-      padding-right: 34px;
-      margin-right: 32px;
-      position: relative;
-      color: #909090;
-      &.is-active {
-        color: #202020;
-        &::after {
-          display: block;
-        }
-      }
-      &::after {
-        display: none;
-      }
-      &:last-child {
-          &::before {
-          display: none;
-        }
-      }
-      &::before {
-        content: '';
-        display: block;
-        height: 33px;
-        width: 1px;
-        background: #909090;
-        position: absolute;
-        right: 0;
-        top: 50%;
-        transform: translateY(-50%);
-      }
     }
-  }
-  .i-ul{
-      // display: flex;
-      // justify-content: space-between;
-      // align-items: center;
-      // flex-wrap: wrap;
+    .i-ul{
+      display: flex;
+      justify-content: space-between;
+      align-items: center;
+      flex-wrap: wrap;
       width: 100%;
       margin-top: 64px;
-      .i-li {
+      li{
         position: relative;
-        margin-bottom: 33px;
+        max-width: 49%;
+        margin-top: 20px;
         background: #fff;
         .li-img{
           width: 100%;
@@ -144,15 +113,12 @@ export default {
           height: 100%;
           cursor: pointer;
           text-align: center;
-          // padding-top: 125px;
+          padding-top: 100px;
           transition: top 0.2s linear;
-          display: flex;
-          flex-direction: column;
-          justify-content: center;
           img {
             width: 70px;
             height: 70px;
-            margin: 0 auto 9px;
+            margin: 0 auto;
           }
           p {
             font-size: 40px;
@@ -175,18 +141,19 @@ export default {
             cursor: pointer;
           }
           .hover-item {
-            // padding-top: 50px;
+            padding-top: 40px;
             img {
               width: 50px;
               height: 50px;
             }
             p {
-              font-size: 24px;
+              font-size: 20px;
             }
           }
         }
       }
     }
+  }
 }
 
 </style>

+ 1 - 1
pc/src/page/zhijia/style.scss

@@ -92,7 +92,7 @@
   }
   .plate02 {
     position: relative;
-    background: url(https://4dscene.4dage.com/new4dkk/images/zhijia-bg2.png) top
+    background: url(https://eurs3.4dkankan.com/website/images/zhijia-bg2.png) top
       center #1e1e21 no-repeat;
     background-size: 100% 100%;
     padding: 140px 0 155px;

+ 16 - 20
pc/src/router/index.js

@@ -10,18 +10,12 @@ let router = new Router({
   routes: [
     {
       path: '/',
-      component: resolve => require(['@/page/login'], resolve),
-      // component: resolve => require(['@/page/layout/normal'], resolve),
+      component: resolve => require(['@/page/layout/normal'], resolve),
       children: [
         {
           path: '/',
           name: 'home',
           component: resolve => require(['@/page/home2'], resolve)
-          // name: 'login',
-          // meta: {
-          //   hideFooter: true
-          // },
-          // component: resolve => require(['@/page/login'], resolve)
         },
         {
           path: '/coreProducts',
@@ -120,29 +114,29 @@ let router = new Router({
         {
           path: 'kankanPro',
           name: 'mallHome',
-          component: resolve => require(['@/page/mall/kankanPro'], resolve)
+          component: resolve => require(['@/page/mall/kankanPro'], resolve),
         },
         {
           path: 'zhijia',
-          component: resolve => require(['@/page/mall/zhijia'], resolve)
+          component: resolve => require(['@/page/mall/zhijia'], resolve),
         },
         {
           path: 'cart',
-          component: resolve => require(['@/page/mall/cart'], resolve)
+          component: resolve => require(['@/page/mall/cart'], resolve),
         },
         {
           path: 'confirm',
-          component: resolve => require(['@/page/mall/confirm'], resolve)
+          component: resolve => require(['@/page/mall/confirm'], resolve),
         },
         {
           path: 'pay',
           name: 'pay',
-          component: resolve => require(['@/page/mall/pay'], resolve)
+          component: resolve => require(['@/page/mall/pay'], resolve),
         },
         {
           path: 'cloudCapacity',
           name: 'cloudCapacity',
-          component: resolve => require(['@/page/mall/cloudCapacity'], resolve)
+          component: resolve => require(['@/page/mall/cloudCapacity'], resolve),
         },
         {
           path: '/',
@@ -166,7 +160,7 @@ let router = new Router({
               path: '/order',
               component: resolve => require(['@/page/manage/temp/order'], resolve),
               meta: {requireAuth: true}
-
+    
             },
             {
               name: 'consumption',
@@ -197,7 +191,7 @@ let router = new Router({
           path: '/introtow/:id',
           name: 'introtow',
           component: resolve => require(['@/page/introtow'], resolve)
-        }
+        },
       ]
     },
     {
@@ -245,7 +239,7 @@ let router = new Router({
     //   name: 'binocular',
     //   component: resolve => require(['@/page/binocular'], resolve)
     // },
-
+    
     {
       path: '/eight',
       name: 'eight',
@@ -291,7 +285,8 @@ let router = new Router({
     //   name: 'introduce',
     //   component: resolve => require(['@/page/introduce'], resolve)
     // },
-
+    
+    
     {
       path: '/service/down',
       name: 'service_down',
@@ -317,7 +312,6 @@ let router = new Router({
       name: 'cases_app',
       component: resolve => require(['@/page/cases/app'], resolve)
     }
-
   ],
   scrollBehavior (to, from, savedPosition) {
     if (to.hash === '') {
@@ -332,7 +326,7 @@ router.beforeEach((to, from, next) => {
   let token = store.state.user.token
   if (to.path == '/dev') {
     import('./../components/dev').then(dev => {
-      dev.configuration()
+        dev.configuration()
     })
     return
   }
@@ -341,7 +335,9 @@ router.beforeEach((to, from, next) => {
     if (token) {
       next()
     } else {
-      next()
+      next({
+        name: 'home'
+      })
     }
   } else {
     localStorage.currentName = ''

+ 10 - 10
pc/src/store/language/cn/home.js

@@ -70,11 +70,11 @@ export default{
     }
   },
   items: [
-    {url: 'https://www.4dkankan.com/showProPC.html?m=t-0Q99SHE',
+    {url: 'https://eur.4dkankan.com/showProPC.html?m=t-0Q99SHE',
       image: baseUrl + 'images/phone_11.png',
       icon: baseUrl + 'images/phone_icon_11.png',
       text: '黑白咖啡' },
-    {url: 'https://www.4dkankan.com/showPC.html?m=x2kIkoCB',
+    {url: 'https://eur.4dkankan.com/showPC.html?m=x2kIkoCB',
       image: baseUrl + 'images/phone_7.jpg',
       icon: baseUrl + 'images/phone_icon_7.png',
       text: '万豪酒店' },
@@ -82,31 +82,31 @@ export default{
       image: baseUrl + 'images/phone_2.jpg',
       icon: baseUrl + 'images/phone_icon_2.png',
       text: '广东省博物馆' },
-    {url: 'http://www.4dkankan.com/showPC.html?m=laaVIiT7',
+    {url: 'http://eur.4dkankan.com/showPC.html?m=laaVIiT7',
       image: baseUrl + 'images/phone_3.jpg',
       icon: baseUrl + 'images/phone_icon_3.png',
       text: '海昏侯考古成果展' },
-    {url: 'http://www.4dkankan.com/showPC.html?m=OOM185Kf',
+    {url: 'http://eur.4dkankan.com/showPC.html?m=OOM185Kf',
       image: baseUrl + 'images/phone_4.jpg',
       icon: baseUrl + 'images/phone_icon_4.png',
       text: '华发地产' },
-    {url: 'http://www.4dkankan.com/showPC.html?m=djryzBtW',
+    {url: 'http://eur.4dkankan.com/showPC.html?m=djryzBtW',
       image: baseUrl + 'images/phone_5.jpg',
       icon: baseUrl + 'images/phone_icon_5.png',
       text: '欧派橱柜' },
-    {url: 'http://www.4dkankan.com/showPC.html?m=ImlLYDW8',
+    {url: 'http://eur.4dkankan.com/showPC.html?m=ImlLYDW8',
       image: baseUrl + 'images/phone_6.jpg',
       icon: baseUrl + 'images/phone_icon_6.png',
       text: '融信地产' },
-    {url: 'https://www.4dkankan.com/showPC.html?m=X99yIvTq',
+    {url: 'https://eur.4dkankan.com/showPC.html?m=X99yIvTq',
       image: baseUrl + 'images/phone_1.jpg',
       icon: baseUrl + 'images/phone_icon_1.png',
       text: '德国陶瓷博物馆' },
-    {url: 'https://www.4dkankan.com/showPC.html?m=iTz0LxLs',
+    {url: 'https://eur.4dkankan.com/showPC.html?m=iTz0LxLs',
       image: baseUrl + 'images/phone_8.jpg',
       icon: baseUrl + 'images/phone_icon_8.png',
       text: '万科地产' },
-    {url: 'https://www.4dkankan.com/showPC.html?m=0mVvxHHT',
+    {url: 'https://eur.4dkankan.com/showPC.html?m=0mVvxHHT',
       image: baseUrl + 'images/phone_9.jpg',
       icon: baseUrl + 'images/phone_icon_9.png',
       text: '伟星地产' },
@@ -156,7 +156,7 @@ export default{
     },
     {
       name: '720度8K画质,身临其境',
-      img: '7test',
+      img: 7,
       runAnimation: true
     },
     {

+ 13 - 9
pc/src/store/language/cn/manage.js

@@ -19,7 +19,7 @@ export default{
   information: {
     nameArr: {
       information: '账号信息',
-      scene: '我的场景',
+      scene: '场景管理',
       order: '我的订单',
       device: '我的相机',
       consumption: '消费记录',
@@ -33,24 +33,28 @@ export default{
           name: '账号信息',
           to: {name: 'information'}
         }, {
-          name: '我的场景',
+          name: '场景管理',
           to: {name: 'scene'}
         }, {
           name: '我的相机',
           to: {name: 'device'}
         }, {
-          name: '修改密码',
-          to: {
-            name: 'change'
-          }
+          name: '我的订单',
+          to: {name: 'order'}
         }, {
-          name: '退出登录',
-          to: 'logout'
+          name: '消费记录',
+          to: {name: 'consumption'}
         }]
       },
       {
         name: 'security',
-        items: []
+        items: [{
+          name: '修改密码',
+          to: {name: 'change'}
+        }, {
+          name: '退出登录',
+          to: 'logout'
+        }]
       }
     ],
     deviceSettings: [

+ 1 - 1
pc/src/store/language/cn/toast.js

@@ -21,7 +21,7 @@ export default{
   '20': '请完善发票信息',
   '21': '请输入18位的税务登记号',
   '22': '请输入正确的手机号码',
-  '23': '注册成功,是否立刻登录?',
+  '23': '账号注册成功,请登录',
   '24': '密码修改成功,请重新登录',
   '25': '没有找到相应的记录',
   '26': '确定要解绑当前相机吗?',

+ 2 - 2
pc/src/store/language/en/about.js

@@ -9,7 +9,7 @@ export default{
       txt: [
         'In June 2017, 4DAGE and German Research Center for Artificial Intelligence initiated CGAII, the signing ceremony of which was witnessed by the Chinese Premier and German Chancellor. Supported by technological competence from the two countries, CGAII strongly facilitates the research and application of AI vision.',
         'As the phased product in this Chinese-German cooperation project, 4DKanKan Pro has broken into the industry monopolized by American tech enterprises with its latest technology, and greatly reduced the costs and time of 3D modeling.',
-        'Before 4DKanKan Pro, CGAII has launched the world’s first consumer 3D camera, 4D KanKan Lite, in May 2018.'
+        'Before 4DKanKan Pro, CGAII has launched the world’s first consumer 3D camera, 4D KanKan Lite, in May 2018'
       ],
       img: baseUrl + 'images/cgaii-logo-en.png'
     },
@@ -31,7 +31,7 @@ export default{
         year: '2020',
         txt: [
           '<i>2020.01</i>In January, 4DKanKan won the new generation of artificial intelligence industry innovation key tasks of the Ministry of Industry and Information Technology.',
-          '<i>2020.02</i>In February, to combat COVID-19, 4Dage united more than 100 local museums to initiated the “Stay at home with online 3D museums” activity voluntarily to freely expose the resources of 3D museums to the general public, and the number of online visitors has reached 150 million.',
+          '<i>2020.02</i>In February, to combat COVID-19, 4Dage united more than 100 local museums to initiated the “Stay at home with online 3D museums” activity voluntarily to to freely expose the resources of 3D museums to the general public, and the number of online visitors has reached 150 million.',
           '<i>2020.03</i>In March, a new generation of 3D space camera 4DKanKan Pro was listed on the China Police Equipment Network, 4DKanKan Pro, as an artificial intelligence police equipment product help upgrade smart police.',
           '<i>2020.03</i>In March, 4Dage Exclusively Provides 3D Technical Support for the World\'s Top Art Fair. It was reported by the American business magazine Bloomberg Businessweek because its digital museum has provided great help to people.'
         ]

+ 9 - 9
pc/src/store/language/en/home.js

@@ -64,11 +64,11 @@ export default{
     sub: 'Exclusive 10 GB cloud capacity for 5 years for the early birds.'
   },
   items: [
-    {url: 'https://www.4dkankan.com/showProPC.html?m=t-0Q99SHE',
+    {url: 'https://eur.4dkankan.com/showProPC.html?m=t-0Q99SHE',
       image: baseUrl + 'images/phone_11.png',
       icon: baseUrl + 'images/phone_icon_11.png',
       text: 'Coffee Canteen' },
-    {url: 'https://www.4dkankan.com/showPC.html?m=x2kIkoCB',
+    {url: 'https://eur.4dkankan.com/showPC.html?m=x2kIkoCB',
       image: baseUrl + 'images/phone_7.jpg',
       icon: baseUrl + 'images/phone_icon_7.png',
       text: 'Marriott Hotel' },
@@ -76,31 +76,31 @@ export default{
       image: baseUrl + 'images/phone_2.jpg',
       icon: baseUrl + 'images/phone_icon_2.png',
       text: 'Guangdong Museum' },
-    {url: 'http://www.4dkankan.com/showPC.html?m=laaVIiT7',
+    {url: 'http://eur.4dkankan.com/showPC.html?m=laaVIiT7',
       image: baseUrl + 'images/phone_3.jpg',
       icon: baseUrl + 'images/phone_icon_3.png',
       text: 'Haihunhou Archaeological Exhibition' },
-    {url: 'http://www.4dkankan.com/showPC.html?m=OOM185Kf',
+    {url: 'http://eur.4dkankan.com/showPC.html?m=OOM185Kf',
       image: baseUrl + 'images/phone_4.jpg',
       icon: baseUrl + 'images/phone_icon_4.png',
       text: 'Huafa Real Estate' },
-    {url: 'http://www.4dkankan.com/showPC.html?m=djryzBtW',
+    {url: 'http://eur.4dkankan.com/showPC.html?m=djryzBtW',
       image: baseUrl + 'images/phone_5.jpg',
       icon: baseUrl + 'images/phone_icon_5.png',
       text: 'OPPEIN Kitchen Cabinets' },
-    {url: 'http://www.4dkankan.com/showPC.html?m=ImlLYDW8',
+    {url: 'http://eur.4dkankan.com/showPC.html?m=ImlLYDW8',
       image: baseUrl + 'images/phone_6.jpg',
       icon: baseUrl + 'images/phone_icon_6.png',
       text: 'Ronshine Real Estate' },
-    {url: 'https://www.4dkankan.com/showPC.html?m=X99yIvTq',
+    {url: 'https://eur.4dkankan.com/showPC.html?m=X99yIvTq',
       image: baseUrl + 'images/phone_1.jpg',
       icon: baseUrl + 'images/phone_icon_1.png',
       text: 'German Ceramic Museum' },
-    {url: 'https://www.4dkankan.com/showPC.html?m=iTz0LxLs',
+    {url: 'https://eur.4dkankan.com/showPC.html?m=iTz0LxLs',
       image: baseUrl + 'images/phone_8.jpg',
       icon: baseUrl + 'images/phone_icon_8.png',
       text: 'Vanke Real Estate' },
-    {url: 'https://www.4dkankan.com/showPC.html?m=0mVvxHHT',
+    {url: 'https://eur.4dkankan.com/showPC.html?m=0mVvxHHT',
       image: baseUrl + 'images/phone_9.jpg',
       icon: baseUrl + 'images/phone_icon_9.png',
       text: 'Weixing Real Estate' },

+ 1 - 1
pc/src/store/language/en/toast.js

@@ -21,7 +21,7 @@ export default{
   '20': 'Please complete the invoice information.',
   '21': 'Please enter the 18-digits tax number.',
   '22': 'Please enter a correct mobile number.',
-  '23': 'Signed up successfully. Log in now?',
+  '23': 'Signed up successfully. Log in now.',
   '24': 'Password reset. Please re-log in.',
   '25': 'No record found.',
   '26': 'Are you sure to unbind the current camera?',

+ 28 - 73
pc/src/store/language/home_cn.js

@@ -245,100 +245,55 @@ export default {
   },
   videoCourse: {
     content: [
-    //   {
-    //     name: '视频教程',
-    //     sub: '快速上手以及详细教学',
-    //     items: [
-    //       {
-    //         code: 'img_guide01@2x',
-    //         name: '快速上手指南'
-    //       },
-    //       {
-    //         code: 'img_guide02@2x',
-    //         name: '完整版操作指南'
-    //       }
-    //     ]
-    //   },
-    //   {
-    //     name: '功能教学',
-    //     sub: '功能模块拆解分段学习',
-    //     items: [
-    //       {
-    //         code: 'img_01getready@2x',
-    //         name: '使用前准备'
-    //       },
-    //       {
-    //         code: 'img_03shotstep@2x',
-    //         name: '拍摄流程'
-    //       },
-    //       {
-    //         code: 'img_08shotmode@2x',
-    //         name: '拍摄方式'
-    //       },
-    //       {
-    //         code: 'img_05point@2x',
-    //         name: '点位调整功能'
-    //       },
-    //       {
-    //         code: 'img_06video@2x',
-    //         name: '球幕视频功能'
-    //       },
-    //       {
-    //         code: 'img_02editmb@2x',
-    //         name: '编辑模型-手机APP端模型编辑'
-    //       },
-    //       {
-    //         code: 'img_04editpc@2x',
-    //         name: '编辑模型-PC端模型编辑'
-    //       },
-    //       {
-    //         code: 'img_07share@2x',
-    //         name: '上传分享'
-    //       }
-    //     ]
-    //   },
       {
         name: '视频教程',
+        sub: '快速上手以及详细教学',
         items: [
           {
-            code: 'jiqiao-10',
-            name: '快速上手'
+            code: 'img_guide01@2x',
+            name: '快速上手指南'
           },
           {
-            code: 'jiqiao-1',
-            name: '开箱指引'
-          },
+            code: 'img_guide02@2x',
+            name: '完整版操作指南'
+          }
+        ]
+      },
+      {
+        name: '分段教学',
+        sub: '功能模块拆解分段学习',
+        items: [
           {
-            code: 'jiqiao-2',
-            name: '连接设备'
+            code: 'img_01getready@2x',
+            name: '使用前准备'
           },
           {
-            code: 'jiqiao-3',
-            name: '场景拍摄'
+            code: 'img_03shotstep@2x',
+            name: '拍摄流程'
           },
           {
-            code: 'jiqiao-4',
-            name: '路线规划'
+            code: 'img_08shotmode@2x',
+            name: '拍摄方式'
           },
           {
-            code: 'jiqiao-5',
-            name: '关联点位'
+            code: 'img_05point@2x',
+            name: '点位调整功能'
           },
           {
-            code: 'jiqiao-6',
-            name: '球幕视频'
+            code: 'img_06video@2x',
+            name: '球幕视频功能'
           },
           {
-            code: 'jiqiao-7',
-            name: '上传分享'
+            code: 'img_02editmb@2x',
+            name: '编辑模型-手机APP端模型编辑'
           },
           {
-            code: 'jiqiao-8',
-            name: '浏览场景'
+            code: 'img_04editpc@2x',
+            name: '编辑模型-PC端模型编辑'
           },
           {
-            code: 'jiqiao-9',
-            name: '多楼层拍摄'
+            code: 'img_07share@2x',
+            name: '上传分享'
           }
         ]
       }

+ 13 - 62
pc/src/store/language/home_en.js

@@ -253,29 +253,25 @@ export default {
   },
   videoCourse: {
     content: [
-      // {
-      //   name: 'Video Course',
-      //   sub: 'Quick Start and Detailed Teaching',
-      //   items: [
-      //     {
-      //       code: 'img_guide01@2x',
-      //       name: 'Quick Start Course'
-      //     },
-      //     {
-      //       code: 'img_guide02@2x',
-      //       name: 'Full Version Course'
-      //     }
-      //   ]
-      // },
       {
         name: 'Video Course',
-        sub: 'Function Segemented Instruction',
+        sub: 'Quick Start and Detailed Teaching',
         items: [
           {
-            code: 'img_guide01_v1',
+            code: 'img_guide01@2x',
             name: 'Quick Start Course'
           },
           {
+            code: 'img_guide02@2x',
+            name: 'Full Version Course'
+          }
+        ]
+      },
+      {
+        name: 'Segmented Instruction',
+        sub: 'Function Segemented Instruction',
+        items: [
+          {
             code: 'img_01getready@2x',
             name: 'Preparation before Use'
           },
@@ -308,52 +304,7 @@ export default {
             name: 'Upload and Share'
           }
         ]
-      },
-      // {
-      //   name: 'Video Course',
-      //   items: [
-      //     {
-      //       code: 'jiqiao-10',
-      //       name: 'Quick Start Course'
-      //     },
-      //     {
-      //       code: 'jiqiao-1',
-      //       name: '开箱指引'
-      //     },
-      //     {
-      //       code: 'jiqiao-2',
-      //       name: '连接设备'
-      //     },
-      //     {
-      //       code: 'jiqiao-3',
-      //       name: '场景拍摄'
-      //     },
-      //     {
-      //       code: 'jiqiao-4',
-      //       name: '路线规划'
-      //     },
-      //     {
-      //       code: 'jiqiao-5',
-      //       name: '关联点位'
-      //     },
-      //     {
-      //       code: 'jiqiao-6',
-      //       name: '球幕视频'
-      //     },
-      //     {
-      //       code: 'jiqiao-7',
-      //       name: '上传分享'
-      //     },
-      //     {
-      //       code: 'jiqiao-8',
-      //       name: '浏览场景'
-      //     },
-      //     {
-      //       code: 'jiqiao-9',
-      //       name: '多楼层拍摄'
-      //     }
-      //   ]
-      // }
+      }
     ]
   },
   home,

+ 5 - 4
pc/src/store/language/index.js

@@ -17,13 +17,13 @@ if (!current) {
   current = window.navigator.language || window.navigator.userLanguage || null
   console.log('自动获取浏览器语言:' + current)
   if (current && !/^zh/.test(current)) {
-    current = 'en'
-  } else {
+      current = 'en'
+  }else{
     current = 'zh'
   }
 }
 
-// document.title = current === 'en' ? '4DKanKan' : '四维看看'
+document.title = current === 'en' ? '4DKanKan' : '四维看看'
 let languageMap = {
   zh: cn,
   en: en,
@@ -45,7 +45,7 @@ export default {
         name: 'English',
         img: require('@/assets/images/home/USA@2x.jpg'),
         value: 'en'
-      }
+      },
       // {
       //   name: 'Français',
       //   img: require('@/assets/images/home/France@2x.jpg'),
@@ -61,6 +61,7 @@ export default {
       })
       state.current = language
       localStorage.setItem('language', language)
+      
     }
   }
 }

+ 0 - 1
pc/src/util/http.js

@@ -6,7 +6,6 @@ import Vue from 'vue'
 let vue = new Vue()
 // import qs from 'qs'
 const exceptUrls = ['/sso/user/logout', '/sso/user/sendUserInfo', '/user/order/queryOrderStatus', '/user/checkToken']
-// axios.defaults.baseURL = process.env.NODE_ENV === 'development' ? 'https://test.4dkankan.com/api' : '/api'
 axios.defaults.baseURL = process.env.NODE_ENV === 'development' ? '/api' : '/api'
 
 // axios.defaults.baseURL = process.env.NODE_ENV === 'development' ? 'http://192.168.0.207:8087/api' : '/api'

+ 1 - 1
pc/src/util/index.js

@@ -29,7 +29,7 @@ module.exports = {
   reg: {
     idCard: /^\d{6}(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|[xX])$/,
     phone: /^1(?:3\d|4[4-9]|5[0-35-9]|6[67]|7[013-8]|8\d|9\d)\d{8}$/,
-    email: /^[A-Za-z\d]+([_.-][A-Za-z\d]+)*@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,4}$/,
+    email: /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/,
     guhua: /^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}$/
   },
   isEmptyObject: function (obj) {