Explorar o código

feature(首页):首页调整,添加免责声明和隐私政策,客户添加新建项目功能

wanglj %!s(int64=3) %!d(string=hai) anos
pai
achega
eace54e43b

BIN=BIN
src/assets/login_images/login.png


BIN=BIN
src/assets/login_images/login_bgd.png


BIN=BIN
src/assets/login_images/login_bottom.png


BIN=BIN
src/assets/login_images/login_top.png


+ 9 - 1
src/config/setting.config.js

@@ -1,3 +1,11 @@
+/*
+ * @Author: wanglj 471442253@qq.com
+ * @Date: 2023-01-04 18:13:15
+ * @LastEditors: wanglj
+ * @LastEditTime: 2023-01-11 19:05:22
+ * @Description: file content
+ * @FilePath: \opms_frontend\src\config\setting.config.js
+ */
 /**
  * @description 导出通用配置
  */
@@ -19,7 +27,7 @@ module.exports = {
   // 路由模式,可选值为 history 或 hash
   routerMode: 'hash',
   // 不经过token校验的路由,白名单路由建议配置到与login页面同级,如果需要放行带传参的页面,请使用query传参,配置时只配置path即可
-  routesWhiteList: ['/login', '/404', '/403'],
+  routesWhiteList: ['/login', '/404', '/403', '/policy', '/disclaimer'],
   // 加载时显示文字
   loadingText: '正在加载中...',
   // token名称

+ 12 - 0
src/router/index.js

@@ -31,6 +31,18 @@ export const constantRoutes = [
       hidden: true,
     },
   },
+  // 免责声明
+  {
+    path: '/disclaimer',
+    component: () => import('@/views/system/components/disclaimer'),
+    hidden: true,
+  },
+  // 隐私政策
+  {
+    path: '/policy',
+    component: () => import('@/views/system/components/policy'),
+    hidden: true,
+  },
 ]
 
 export const asyncRoutes = [

+ 2 - 2
src/views/customer/components/Allocate.vue

@@ -2,7 +2,7 @@
  * @Author: wanglj 471442253@qq.com
  * @Date: 2022-12-26 14:34:34
  * @LastEditors: wanglj
- * @LastEditTime: 2023-01-11 11:19:43
+ * @LastEditTime: 2023-01-11 18:25:24
  * @Description: file content
  * @FilePath: \opms_frontend\src\views\customer\components\allocate.vue
 -->
@@ -70,7 +70,7 @@
       },
       selectUser(userList) {
         this.userList = userList
-        this.form.allocate = userList.map((item) => item.userName).join()
+        this.form.allocate = userList.map((item) => item.nickName).join()
       },
       async handleSubmit() {
         if (!this.userList.length) return this.$message.warning('请选择销售代表')

+ 2 - 2
src/views/customer/components/Shift.vue

@@ -2,7 +2,7 @@
  * @Author: wanglj 471442253@qq.com
  * @Date: 2022-12-26 17:21:07
  * @LastEditors: wanglj
- * @LastEditTime: 2023-01-11 11:34:48
+ * @LastEditTime: 2023-01-11 18:25:49
  * @Description: file content
  * @FilePath: \opms_frontend\src\views\customer\components\Shift.vue
 -->
@@ -65,7 +65,7 @@
       },
       selectUser(userList) {
         this.userList = userList
-        this.form.salesName = userList[0].userName
+        this.form.salesName = userList[0].nickName
       },
       async handleSubmit() {
         if (!this.userList.length) return this.$message.warning('请选择销售代表')

+ 16 - 3
src/views/customer/detail.vue

@@ -2,7 +2,7 @@
  * @Author: wanglj 471442253@qq.com
  * @Date: 2022-12-26 09:30:47
  * @LastEditors: wanglj
- * @LastEditTime: 2023-01-11 16:32:28
+ * @LastEditTime: 2023-01-11 18:33:13
  * @Description: file content
  * @FilePath: \opms_frontend\src\views\customer\detail.vue
 -->
@@ -18,7 +18,7 @@
               <template v-if="privateCus == 1">
                 <el-button v-permissions="['customer:shift']" @click="handleShift">转移客户</el-button>
                 <el-button v-permissions="['customer:open']" @click="handleToOpen">移入公海</el-button>
-                <el-button>创建项目</el-button>
+                <el-button @click="handleBusiness">创建项目</el-button>
               </template>
               <template v-else>
                 <el-button v-permissions="['customer:receive']" @click="handleReceive">领取客户</el-button>
@@ -312,6 +312,8 @@
     <ToOpen ref="toOpen" @refresh="backToOpen" />
     <!-- 跟进详情 -->
     <FollowDetail ref="followDetail" />
+    <!-- 添加项目 -->
+    <Businessedit ref="businessedit" :cust-info="custInfo" />
   </div>
 </template>
 
@@ -327,7 +329,8 @@
   import Allocate from './components/Allocate'
   import Shift from './components/Shift'
   import ToOpen from './components/ToOpen'
-  import FollowDetail from './components/FollowDetail.vue'
+  import FollowDetail from './components/FollowDetail'
+  import Businessedit from '../proj/business/components/BusinessEdit'
 
   export default {
     name: 'CustomerDetail',
@@ -338,6 +341,7 @@
       Shift,
       ToOpen,
       FollowDetail,
+      Businessedit,
     },
     data() {
       return {
@@ -372,6 +376,7 @@
         items: [], //项目
         contracts: [], //合同
         appro: [],
+        custInfo: {},
       }
     },
     computed: {
@@ -578,6 +583,14 @@
         row.showComment = !row.showComment
         this.$forceUpdate()
       },
+      // 创建项目
+      handleBusiness() {
+        this.custInfo = {
+          custId: parseInt(this.id),
+          custName: this.detail.custName,
+        }
+        this.$refs.businessedit.dialogFormVisible = true
+      },
     },
   }
 </script>

+ 19 - 15
src/views/index/index.vue

@@ -2,7 +2,7 @@
  * @Author: wanglj 471442253@qq.com
  * @Date: 2022-12-13 10:28:33
  * @LastEditors: wanglj
- * @LastEditTime: 2023-01-10 11:05:36
+ * @LastEditTime: 2023-01-11 19:16:12
  * @Description: file content
  * @FilePath: \opms_frontend\src\views\index\index.vue
 -->
@@ -459,23 +459,23 @@
         }
       }
       .chart-row {
-        height: calc(40% - 12px);
-        .el-card {
-          height: 100%;
-          display: flex;
-          flex-direction: column;
-          ::v-deep .el-card__body {
-            flex: 1;
-            > div {
-              height: 100%;
-              width: 100%;
-            }
-          }
-        }
+        // height: calc(40% - 12px);
+        // .el-card {
+        //   height: 100%;
+        //   display: flex;
+        //   flex-direction: column;
+        //   ::v-deep .el-card__body {
+        //     flex: 1;
+        //     > div {
+        //       height: 100%;
+        //       width: 100%;
+        //     }
+        //   }
+        // }
       }
     }
     .right {
-      width: 400px;
+      width: 450px;
       .detail {
         height: 64px;
         border: 1px solid rgb(235, 237, 240);
@@ -600,4 +600,8 @@
   ::v-deep .el-timeline-item__tail {
     border-left: 2px dashed #e4e7ed;
   }
+  #funnel,
+  #bar {
+    height: 300px;
+  }
 </style>

+ 126 - 62
src/views/login/index.vue

@@ -1,54 +1,66 @@
 <template>
   <div class="login-container">
-    <el-row>
-      <el-col :lg="14" :md="11" :sm="24" :xl="14" :xs="24">
-        <div style="color: transparent">占位符</div>
-      </el-col>
-      <el-col :lg="9" :md="12" :sm="24" :xl="9" :xs="24">
-        <el-form ref="form" class="login-form" label-position="left" :model="form" :rules="rules">
-          <div class="title">hello !</div>
-          <div class="title-tips">{{ translateTitle('欢迎来到') }}{{ title }}!</div>
-          <el-form-item prop="username" style="margin-top: 40px">
-            <el-input
-              v-model.trim="form.username"
-              v-focus
-              :placeholder="translateTitle('请输入用户名')"
-              tabindex="1"
-              type="text">
-              <template #prefix>
-                <vab-icon icon="user-line" />
-              </template>
-            </el-input>
-          </el-form-item>
-          <el-form-item prop="password">
-            <el-input
-              :key="passwordType"
-              ref="password"
-              v-model.trim="form.password"
-              :placeholder="translateTitle('请输入密码')"
-              tabindex="2"
-              :type="passwordType"
-              @keyup.enter.native="handleLogin">
-              <template #prefix>
-                <vab-icon icon="lock-line" />
-              </template>
-              <template v-if="passwordType === 'password'" #suffix>
-                <vab-icon class="show-password" icon="eye-off-line" @click="handlePassword" />
-              </template>
-              <template v-else #suffix>
-                <vab-icon class="show-password" icon="eye-line" @click="handlePassword" />
-              </template>
-            </el-input>
-          </el-form-item>
-          <el-button class="login-btn" :loading="loading" type="primary" @click="handleLogin">
-            {{ translateTitle('登录') }}
-          </el-button>
-        </el-form>
-      </el-col>
-      <el-col :lg="1" :md="1" :sm="24" :xl="1" :xs="24">
-        <div style="color: transparent">占位符</div>
-      </el-col>
-    </el-row>
+    <header>
+      <div class="container">
+        <img alt="" :src="require('@/assets/login_images/login_top.png')" />
+      </div>
+    </header>
+    <div class="content">
+      <div class="container">
+        <div class="login">
+          <div class="left"></div>
+          <el-form ref="form" class="login-form" label-position="left" :model="form" :rules="rules">
+            <div class="title">{{ translateTitle('登录') }}</div>
+            <!-- <div class="title-tips">{{ translateTitle('欢迎来到') }}{{ title }}!</div> -->
+            <el-form-item prop="username" style="margin-top: 40px">
+              <el-input
+                v-model.trim="form.username"
+                v-focus
+                :placeholder="translateTitle('请输入用户名')"
+                tabindex="1"
+                type="text">
+                <template #prefix>
+                  <vab-icon icon="user-line" />
+                </template>
+              </el-input>
+            </el-form-item>
+            <el-form-item prop="password">
+              <el-input
+                :key="passwordType"
+                ref="password"
+                v-model.trim="form.password"
+                :placeholder="translateTitle('请输入密码')"
+                tabindex="2"
+                :type="passwordType"
+                @keyup.enter.native="handleLogin">
+                <template #prefix>
+                  <vab-icon icon="lock-line" />
+                </template>
+                <template v-if="passwordType === 'password'" #suffix>
+                  <vab-icon class="show-password" icon="eye-off-line" @click="handlePassword" />
+                </template>
+                <template v-else #suffix>
+                  <vab-icon class="show-password" icon="eye-line" @click="handlePassword" />
+                </template>
+              </el-input>
+            </el-form-item>
+            <el-button class="login-btn" :loading="loading" type="primary" @click="handleLogin">
+              {{ translateTitle('登录') }}
+            </el-button>
+          </el-form>
+        </div>
+      </div>
+    </div>
+    <footer>
+      <div class="container">
+        <img alt="" :src="require('@/assets/login_images/login_bottom.png')" />
+        <div class="links">
+          <a class="pd" href="http://www.dashoo.cn" target="_blank">关于大数华创</a>
+          <router-link class="pd" target="_blank" :to="{ path: '/disclaimer' }">免责声明</router-link>
+          <router-link class="pd" target="_blank" :to="{ path: '/policy' }">隐私政策</router-link>
+        </div>
+      </div>
+    </footer>
   </div>
 </template>
 
@@ -165,23 +177,76 @@
 <style lang="scss" scoped>
   .login-container {
     height: 100vh;
-    background: url('~@/assets/login_images/background.jpeg') center center fixed no-repeat;
     background-size: cover;
+    .container {
+      width: 1160px;
+      height: 100%;
+      margin: 0 auto;
+    }
+    header {
+      height: 100px;
+      background: #fff;
+      .container {
+        display: flex;
+        align-items: center;
+      }
+    }
+    footer {
+      height: 130px;
+      background: #fff;
+      .container {
+        display: flex;
+        align-items: center;
+        justify-content: space-between;
+        .links a {
+          color: #6e717c;
+          font-size: 18px;
+          letter-spacing: 1px;
+          padding-left: 10px;
+          & + a {
+            margin-left: 10px;
+            border-left: 1px solid #6e717c;
+          }
+        }
+      }
+    }
+    .content {
+      display: flex;
+      height: calc(100% - 230px);
+      background: url('~@/assets/login_images/login_bgd.png') center center fixed no-repeat;
+      background-size: cover;
+      .container {
+        display: flex;
+        align-items: center;
+      }
+      .login {
+        width: 100%;
+        height: 580px;
+        display: flex;
+        border-radius: 32px;
+        overflow: hidden;
+        background: #fff;
+        box-shadow: 0px 3px 20px 1px rgba(0, 0, 0, 0.16);
+      }
+      .left {
+        width: 60%;
+        height: 100%;
+        background: url('~@/assets/login_images/login.png') center center no-repeat;
+      }
+    }
   }
 
   .login-form {
-    position: relative;
-    max-width: 100%;
-    padding: 7.5vh 10.5vh 12.5vh 10.5vh;
-    margin: calc((100vh - 475px) / 2) 5vw 5vw;
-    overflow: hidden;
-    background: url('~@/assets/login_images/login_form.png');
-    background-size: 100% 100%;
+    width: 40%;
+    padding: 60px;
+    background: #ecf0f6;
 
     .title {
-      font-size: 44px;
-      font-weight: 500;
+      font-size: 32px;
+      font-weight: bold;
       color: $base-color-black;
+      text-align: center;
+      margin-bottom: 80px;
     }
 
     .title-tips {
@@ -193,9 +258,9 @@
 
     .login-btn {
       display: inherit;
-      width: 220px;
+      width: 100%;
       height: 50px;
-      margin-top: 5px;
+      margin-top: 50px;
       border: 0;
       border-radius: 99px;
 
@@ -295,7 +360,6 @@
           padding-left: 35px;
           font-size: $base-font-size-default;
           line-height: 58px;
-          background: #f6f4fc;
           border: 0;
         }
       }

+ 6 - 1
src/views/proj/business/components/BusinessEdit.vue

@@ -15,7 +15,11 @@
         </el-col>
         <el-col :span="12">
           <el-form-item label="关联客户" prop="custName">
-            <el-input v-model="form.custName" :disabled="custInfo.custName" readonly @focus="handleSelectCustomer" />
+            <el-input
+              v-model="form.custName"
+              :disabled="Boolean(custInfo.custName)"
+              readonly
+              @focus="handleSelectCustomer" />
           </el-form-item>
         </el-col>
         <el-col :span="12">
@@ -211,6 +215,7 @@
     watch: {
       custInfo: function (val) {
         this.form.custId = val.custId
+        this.queryContact.custId = val.custId
         this.form.custName = val.custName
         this.customerInfo = val
       },

+ 137 - 0
src/views/system/components/disclaimer.vue

@@ -0,0 +1,137 @@
+<template>
+  <div class="content">
+    <p style="text-align: center; line-height: 36px">
+      <span class="title">免责声明</span>
+    </p>
+    <p class="phase">
+      <span class="text">
+        请务必认真阅读和理解本《免责声明》(以下简称声明)中规定的所有权和限制。除非您接受本《声明》条款,否则您无权访问和使用本软件产品。用户可以自由选择是否使用本软件产品。
+      </span>
+    </p>
+    <span class="sndtitle">一、适用范围</span>
+    <p class="phase">
+      <span class="text">
+        权利声明本“软件”的一切知识产权,以及与“软件”相关的所有信息内容,包括但不限于:文字表述及其组合、图标、图饰、图像、图表、色彩、界面设计、版面框架、有关数据、附加程序、印刷材料或电子文档等均为本公司所有,受著作权法和国际著作权条约以及其他知识产权法律法规的保护。
+      </span>
+    </p>
+    <span class="sndtitle">二、许可范围</span>
+    <p class="phase">
+      <span class="text">本声明适用于本公司与您约定提供的各项服务。</span>
+    </p>
+    <span class="sndtitle">三、权利限制</span>
+    <p class="phase">
+      <span class="text">
+        禁止反向工程、反向编译和反向汇编:用户不得对本软件产品进行反向工程(Reverse
+        engineer)、反向编译(decompile)或反向汇编(disassemble),同时不得改动编译在程序文件内部的任何资源。除法律、法规明文规定允许上述活动外,用户必须遵守此声明限制。用户不得复制、分发和传播本软件,包括所有有关本软件产品的软件电子文档、版权和商标,亦包括本声明。
+      </span>
+    </p>
+    <span class="sndtitle">四、软件使用</span>
+    <p class="phase">
+      <span class="text">1.软件的修改和升级:本公司保留为用户提供本软件的修改、升级版本的权利。</span>
+    </p>
+    <p class="phase">
+      <span class="text">
+        2.本软件不含有任何旨在破坏用户计算机数据和获取用户隐私信息的恶意代码,不含有任何跟踪、监视用户计算机的功能代码,不会监控用户网上、网下的行为,不会收集用户使用其它软件、文档等信息,不会泄漏用户隐私。
+      </span>
+    </p>
+    <p class="phase">
+      <span class="text">
+        3.用户应在遵守法律及本声明的前提下使用本软件。用户无权实施包括但不限于下列行为:不得删除或者改变本软件上的所有权利管理电子信息;不得故意避幵或者破坏著作权人为保护本软件著作权而采取的技术措施;用户不得利用本软件误导、欺骗他人;违反国家规定,对计算机信息系统功能进行删除、修改、增加、干扰,造成计算机信息系统不能正常运行;未经允许,进入计算机信息网络或者使用计算机信息网络资源;未经允许,对计算机信息网络功能进行删除、修改或者增加的;未经允许,对计算机信息网络中存储、处理或者传输的数据和应用程序进行删除、修改或者增加;破坏本软件系统的正常运行,故意传播计算机病毒等破坏性程序;其他任何危害计算机网络安全的。
+      </span>
+    </p>
+    <p class="phase">
+      <span class="text">
+        4.对于从非本公司指定网站使用本软件产品以及从非本公司发行的介质上获得的本软件产品,本公司无法保证该软件是否感染计算机病毒、是否隐藏有伪装的特洛伊木马程序或者黑客软件,使用此类软件,将可能导致不可预测的风险,建议用户不要轻易使用,本公司不承担任何由此产生的一切法律责任。
+      </span>
+    </p>
+    <span class="sndtitle">五、免责与责任限制</span>
+    <p class="phase">
+      <span class="text">
+        1.本软件经过详细的测试,但不能保证软件完全没有错误。如果出现错误的情况,用户可以将情况报告本公司,获得技术支持。
+      </span>
+    </p>
+    <p class="phase">
+      <span class="text">
+        2.使用本软件风险由用户自行承担,在适用法律允许的最大范围内,对因使用或不能使用本软件所产生的损害及风险,包括但不限于直接或间接的个人损害、商业赢利的丧失、贸易中断、商业信息的丢失或任何其它经济损失,本公司不承担任何责任。
+      </span>
+    </p>
+    <p class="phase">
+      <span class="text">
+        3.对于因电信系统或互联网网络故障、计算机故障或病毒、信息损坏或丢失、计算机系统问题或其它任何不可抗力原因而产生损失,本公司不承担任何责任。
+      </span>
+    </p>
+    <p class="phase">
+      <span class="text">
+        4.用户违反本声明规定,对本公司公司造成损害的。本公司有权采取包括但不限于中断使用许可、停止提供服务、限制使用、法律追究等措施。
+      </span>
+    </p>
+    <span class="sndtitle">六、法律及争议解决</span>
+    <p class="phase">
+      <span class="text">1.本声明适用中华人民共和国法律。</span>
+    </p>
+    <p class="phase">
+      <span class="text">
+        2.因本声明引起的或与本声明有关的任何争议,各方应友好协商解决。协商不成的,任何一方均可将有关争议提交至青岛仲裁委员会并按照其届时有效的仲裁规则仲裁;仲裁裁决是终局的,对各方均有约束力。
+      </span>
+    </p>
+    <p>
+      <span class="sndtitle">七、其它条款</span>
+    </p>
+    <p class="phase">
+      <span class="text">
+        1.如果本声明中的任何条款无论因何种原因完全或部分无效或不具有执行力,或违反任何适用的法律,则该条款被视为删除,但本声明的其余条款仍应有效并且约束力。
+      </span>
+    </p>
+    <p class="phase">
+      <span class="text">
+        2.本公司有权根据有关法律、法规的变化以及公司经营状况和经营策略的调整等修改本声明。修改后的声明会随附于新版本软件。当发生有关争议时,以最新的声明文本为准。如果不同意改动的内容,用户可以自行放弃使用本软件。如果用户继续使用本软件,则视为您接受本声明的变动。
+      </span>
+    </p>
+    <p class="phase">
+      <span class="text">3.本声明的一切解释权与修改权归本公司所有。</span>
+    </p>
+  </div>
+</template>
+<script>
+  export default {
+    name: 'Disclaimer',
+    data() {
+      return {}
+    },
+  }
+</script>
+<style scoped>
+  .content {
+    margin: 0 auto;
+    width: 80%;
+    color: #808080;
+    background-color: #fff;
+    padding: 15px 50px;
+    border: 1px solid #e9e9e9;
+    -webkit-box-shadow: 0 1px 50px rgba(0, 0, 0, 0.1);
+    box-shadow: 0 1px 50px rgba(0, 0, 0, 0.1);
+  }
+  .title {
+    font-size: 28px;
+    font-family: 宋体;
+    font-weight: bold;
+  }
+  .sndtitle {
+    font-size: 24px;
+    font-family: 宋体;
+    font-weight: bold;
+  }
+  .phase {
+    text-align: left;
+    text-indent: 32px;
+  }
+  .date {
+    text-align: right;
+  }
+  .text {
+    font-size: 16px;
+    font-family: 宋体;
+    color: black;
+    letter-spacing: 0;
+  }
+</style>

+ 196 - 0
src/views/system/components/policy.vue

@@ -0,0 +1,196 @@
+<template>
+  <div class="content">
+    <p style="text-align: center; line-height: 36px">
+      <span class="title">隐私政策</span>
+    </p>
+    <p class="date">本隐私政策生效日期:2017年1月1日</p>
+    <p class="phase">
+      <span class="text">
+        青岛大数华创科技有限公司(以下可称为本公司或我们)非常尊重用户信息的保护,在您使用本公司平台提供的服务时,我们将按照本隐私政策收集、使用及共享您的信息。本隐私政策包含了我们收集、存储、使用、共享和保护您的信息的条款,我们希望通过本隐私政策向您清晰地介绍我们对您的信息的处理方式。因此我们建议您完整地阅读本隐私政策,以帮助您了解维护自己隐私权的方式。如您对本隐私政策有任何疑问,您可以通过本公司公布的联系方式与我们联系。如果您不同意本隐私政策任何内容,您应停止使用本公司服务。当您使用本公司服务时,即表示您已同意我们按照本隐私政策来合法使用和保护您的信息。
+      </span>
+    </p>
+    <span class="sndtitle">一、适用范围</span>
+    <p class="phase">
+      <span class="text">
+        为用户提供更好、更优、更个性化的服务是本公司坚持不懈的追求。本隐私政策适用于本公司提供的各项服务,您登陆系统平台、使用本公司提供的服务,包括但不限于:我们提供系统平台、网站、及不断创新研发的产品及服务。
+      </span>
+    </p>
+    <p class="phase">
+      <span class="text">
+        如您使用本公司提供的某项或某几项服务有其单独的隐私政策的,该等服务对应的隐私政策将与本隐私政策一起构成一份完整的本公司隐私政策。
+      </span>
+    </p>
+    <p class="phase">
+      <span class="text">
+        需要特别说明的是,本隐私政策不适用于展示在、链接到或再封装我们的服务的那些适用其他的隐私政策、并由第三方提供的服务。虽然第三方展示在、链接到或再封装我们的服务,但我们并不了解或控制其行为,因此也不为其行为负责;在您已查看并接受其隐私政策之前,请谨慎访问或使用其服务。
+      </span>
+    </p>
+    <span class="sndtitle">二、我们如何收集信息</span>
+    <p class="phase">
+      <span class="text">我们收集信息是为了向您提供更好、更优、更个性化的服务,我们收集信息的方式如下:&nbsp;</span>
+    </p>
+    <p class="phase">
+      <span class="text">1.您向我们提供的信息</span>
+    </p>
+    <p class="phase">
+      <span class="text">
+        当您开通本公司服务及您在使用本公司提供的相关服务及产品时填写、提交或接入的信息,包括您的姓名、联系电话、电子邮箱、通讯地址、企业信息、产品信息、您使用过程中产生的相关数据等。
+      </span>
+    </p>
+    <p class="phase">
+      <span class="text">2.在您使用服务过程中收集的信息</span>
+    </p>
+    <p class="phase">
+      <span class="text">
+        为了确保操作环境安全,识别账号异常状态等用途,我们会收集您对我们产品或服务使用方式的信息,并将这些信息进行关联,这些信息包括:
+      </span>
+    </p>
+    <p class="phase">
+      <span class="text">(1)账号信息</span>
+    </p>
+    <p class="phase">
+      <span class="text">
+        当您使用我们的平台账号或服务时,我们会自动收集您对我们服务的使用情况及数据信息。我们将基于本公司数据服务合法采集的数据,以及通过其他合法渠道获得的数据,通过汇聚、清洗、计算等处理方式构建庞大的数据库,并基于此数据库构建数据智能平台。该平台通过数据加智能引擎服务的方式进行产品评估,帮助优化系统产品和产品使用效果。
+      </span>
+    </p>
+    <p class="phase">
+      <span class="text">(2)其他信息</span>
+    </p>
+    <p class="phase">
+      <span class="text">
+        除上述信息外,我们还可能为了提供服务及改进服务质量的合理需要而收集您的其他信息,包括您与我们的客户服务团队联系时提供的相关信息,您参与问卷调查时向我们发送的问卷答复信息。
+      </span>
+    </p>
+    <p class="phase">
+      <span class="text"></span>
+    </p>
+    <p class="phase">
+      <span class="text"></span>
+    </p>
+    <span class="sndtitle">三、我们如何使用信息</span>
+    <p class="phase">
+      <span class="text">
+        我们使用收集来的信息是为了向您提供服务及提升服务质量,为了实现这一目的,我们会把您的信息用于下列用途:
+      </span>
+    </p>
+    <p class="phase">
+      <span class="text">1.向您提供本公司各项服务,并维护、改进这些服务。</span>
+    </p>
+    <p class="phase">
+      <span class="text">
+        2.我们可能使用您的信息以预防、发现、调查欺诈、侵权、危害安全、非法或违反与我们的协议、政策或规则的行为,以保护您或我们的合法权益。
+      </span>
+    </p>
+    <p class="phase">
+      <span class="text">
+        3.我们可能会将来自某项服务的信息与来自其他服务的信息结合起来,用于为了给您提供更加个性化的服务使用。
+      </span>
+    </p>
+    <p class="phase">
+      <span class="text">4.联系您解决问题。</span>
+    </p>
+    <p class="phase">
+      <span class="text">5.经您许可的其他用途。</span>
+    </p>
+    <span class="sndtitle">四、我们如何共享信息</span>
+    <p class="phase">
+      <span class="text">
+        我们对您的信息承担保密义务,不会为满足第三方的营销或非法目的而向其出售或出租您的信息。除下列情况外,我们不会与任何第三方共享您的信息:
+      </span>
+    </p>
+    <p class="phase">
+      <span class="text">1.事先获得您的同意或授权。</span>
+    </p>
+    <p class="phase">
+      <span class="text">2.根据法律法规的规定或行政或司法机构的要求。</span>
+    </p>
+    <p class="phase">
+      <span class="text">
+        3.如您是知识产权投诉人并已提起投诉,应被投诉人要求,向被投诉人披露,以便双方处理可能的权利纠纷。
+      </span>
+    </p>
+    <p class="phase">
+      <span class="text">4.只有共享您的信息,才能提供您需要的服务,或处理您与他人的纠纷或争议。</span>
+    </p>
+    <span class="sndtitle">五、您的信息保护</span>
+    <p class="phase">
+      <span class="text">
+        为了保障您的信息安全,我们将按照行业通行标准、努力采取合理的物理、电子和管理方面的安全措施来保护您的信息,并尽最大合理努力使您的信息不会被泄漏、毁损或者丢失,包括但不限于信息加密存储、数据中心的访问控制。您信息的访问权限仅限于为根据本隐私政策完成工作任务或进行技术维护工作需要处理您信息的人员。
+      </span>
+    </p>
+    <p class="phase">
+      <span class="text">
+        我们收集的信息保存于不向公众开放的安全运行环境之中。为避免未经授权访问您的信息,我们将其保存在有防火墙保护并可能加密的服务器之中。但是,没有任何系统是绝对安全的,请您理解在信息网络上不存在“完善的安全措施”。即使我们做出了很大努力,仍有可能无法杜绝对您的信息的非法访问。此外,由于无法判断他人的陈述是否属实,我们可能会被不可靠的、有误导性的或非法的信息所蒙蔽。
+      </span>
+    </p>
+    <p class="phase">
+      <span class="text">
+        如果您或您的最终用户不接受本隐私政策并提供我们所要求的信息,那么您将无法使用我们的服务或使用我们提供的全部功能。但您需要了解,提供该信息意味着您已经充分理解这些信息可能会有被盗、非法拥有或滥用的风险,以及由此带来的您的人身安全、财产和声誉等方面的损失。
+      </span>
+    </p>
+    <span class="sndtitle">六、本隐私政策的修订</span>
+    <p class="phase">
+      <span class="text">
+        我们可能适时会对本隐私政策进行调整或变更,本隐私政策的任何更新将以标注更新时间的方式公布在本公司系统平台上,除法律法规或监管规定另有强制性规定外,经调整或变更的内容一经通知或公布后的7日后生效。如您在隐私政策调整或变更后继续使用本公司提供的任一服务或使用系统账号的,我们相信这代表您已充分阅读、理解并接受修改后的隐私政策并受其约束。
+      </span>
+    </p>
+    <p>
+      <span class="sndtitle">七、联系我们</span>
+    </p>
+    <p class="phase">
+      <span class="text">如果您对本隐私政策有任何问题、建议或投诉,您可以通过以下方式反馈我们:</span>
+    </p>
+    <p class="phase">
+      <span class="text">1.邮箱:dashoo@dashoo.cn</span>
+    </p>
+    <p class="phase">
+      <span class="text">2.电话:4006129186</span>
+    </p>
+    <p class="phase">
+      <span class="text">3.网站留言:http://www.dashoo.cn/</span>
+    </p>
+  </div>
+</template>
+<script>
+  export default {
+    name: 'Policy',
+    data() {
+      return {}
+    },
+  }
+</script>
+<style scoped>
+  .content {
+    margin: 0 auto;
+    width: 80%;
+    color: #808080;
+    background-color: #fff;
+    padding: 15px 50px;
+    border: 1px solid #e9e9e9;
+    -webkit-box-shadow: 0 1px 50px rgba(0, 0, 0, 0.1);
+    box-shadow: 0 1px 50px rgba(0, 0, 0, 0.1);
+  }
+  .title {
+    font-size: 28px;
+    font-family: 宋体;
+    font-weight: bold;
+  }
+  .sndtitle {
+    font-size: 24px;
+    font-family: 宋体;
+    font-weight: bold;
+  }
+  .phase {
+    text-align: left;
+    text-indent: 32px;
+  }
+  .date {
+    text-align: right;
+  }
+  .text {
+    font-size: 16px;
+    font-family: 宋体;
+    color: black;
+    letter-spacing: 0;
+  }
+</style>