瀏覽代碼

Merge remote-tracking branch 'origin/master'

kouchengxing 4 年之前
父節點
當前提交
b8df940c2d

+ 110 - 0
dgtis-ui/src/api/customerInformation/customerInformation.js

@@ -0,0 +1,110 @@
+import request from '@/utils/request'
+import { praseStrEmpty } from "@/utils/ruoyi";
+
+// 查询用户列表
+export function listUser(query) {
+  return request({
+    url: '/system/user/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询用户详细
+export function getUser(userId) {
+  return request({
+    url: '/system/user/' + praseStrEmpty(userId),
+    method: 'get'
+  })
+}
+
+// 新增用户
+export function addUser(data) {
+  return request({
+    url: '/system/user',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改用户
+export function updateUser(data) {
+  return request({
+    url: '/system/user',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除用户
+export function delUser(userId) {
+  return request({
+    url: '/system/user/' + userId,
+    method: 'delete'
+  })
+}
+
+// 用户密码重置
+export function resetUserPwd(userId, password) {
+  const data = {
+    userId,
+    password
+  }
+  return request({
+    url: '/system/user/resetPwd',
+    method: 'put',
+    data: data
+  })
+}
+
+// 用户状态修改
+export function changeUserStatus(userId, status) {
+  const data = {
+    userId,
+    status
+  }
+  return request({
+    url: '/system/user/changeStatus',
+    method: 'put',
+    data: data
+  })
+}
+
+// 查询用户个人信息
+export function getUserProfile() {
+  return request({
+    url: '/system/user/profile',
+    method: 'get'
+  })
+}
+
+// 修改用户个人信息
+export function updateUserProfile(data) {
+  return request({
+    url: '/system/user/profile',
+    method: 'put',
+    data: data
+  })
+}
+
+// 用户密码重置
+export function updateUserPwd(oldPassword, newPassword) {
+  const data = {
+    oldPassword,
+    newPassword
+  }
+  return request({
+    url: '/system/user/profile/updatePwd',
+    method: 'put',
+    params: data
+  })
+}
+
+// 用户头像上传
+export function uploadAvatar(data) {
+  return request({
+    url: '/system/user/profile/avatar',
+    method: 'post',
+    data: data
+  })
+}

二進制
dgtis-ui/src/assets/image/login-background1.jpg


二進制
dgtis-ui/src/assets/image/login-background3.jpg


二進制
dgtis-ui/src/assets/image/login-background4.jpg


+ 16 - 2
dgtis-ui/src/assets/styles/index.scss

@@ -271,7 +271,21 @@ aside {
   z-index: 1000 !important;
 }
 .infoLeft{
-  .el-input--mini .el-input__inner {
-    width: 100px;
+  .el-input--mini {
+    width: 98px;
+    .el-input__inner{
+      width: 100%;
+    }
+  }
+  .formItemFull{
+    .el-input--mini {
+      width: 90%;
+    }
+    &:nth-child(n+2){
+      margin-top: 10px;
+    }
+    .el-select{
+      width: 100%;
+    }
   }
 }

+ 26 - 3
dgtis-ui/src/assets/styles/lunbo.css

@@ -82,18 +82,41 @@ body {
   height: 82%;
   background: url("../image/lunboBg.png") 53% 50% no-repeat;
   background-size: 80% 90%;
-  margin-left: 25%;
+  margin-left: 50%;
 }
 .lineImg{
   width: 150px;
   position: absolute;
   top: 6px;
-  left: 198px;
+  right: -151px;
+}
+.lunboSearchBtn{
+  position: absolute;
+  top: 160px;
+  right: -20px;
+  background: #FFF !important;
+  border-color: #048EF3 !important;
+  z-index: 99;
+}
+.lunboSearchBtn i{
+  color: #048EF3 !important;
 }
 .infoLeft{
+  width: 50%;
   position: absolute;
   top: 50px;
-  left: 10px;
+  left: 7px;
+}
+.labelM label{
+  width: 124px !important;
+}
+.formItem{
+  width: 50%;
+  float: left;
+  margin-right: 0 !important;
+}
+.formItem:nth-child(n+3){
+  margin-top: 10px;
 }
 .infoRight{
   position: absolute;

+ 2 - 2
dgtis-ui/src/views/dashboard/BarTwoWayChart.vue

@@ -67,7 +67,7 @@
             containLabel: false,
             bottom:'45%',
             top:'20%',
-            backgroundColor:'#FDF0F7',
+            backgroundColor:'#FCF0D3',
             borderColor:'#F5EEF1',
           }, {
             // left: '60%',
@@ -196,7 +196,7 @@
             barWidth: '50%',
             type: 'bar',
             itemStyle: {
-              color: '#F29EC2',
+              color: '#F29700',
             },
             data: that.data.seriesData[0]
           },

+ 1 - 1
dgtis-ui/src/views/dashboard/PieChart2.vue

@@ -74,7 +74,7 @@
               radius: ['20%', '45%'],
               center: ['40%', '50%'],
               label: {
-                formatter: '有{b}个\n保单的\n人数为:\n{c}人'
+                formatter: '{b}:\n{d}%'
               },
               data: this.data.seriesData,
             }

+ 122 - 39
dgtis-ui/src/views/index.vue

@@ -33,20 +33,53 @@
             </div>
             <div class="infoLeft">
               <img class="lineImg" src="../assets/image/line.png" alt="">
-              <el-form v-if="lunboActiveIndex == 1" ref="conditionData" :model="conditionData" label-width="90px">
-                <el-form-item label="产品名称:" size="mini">
+              <el-button class="lunboSearchBtn" icon="el-icon-search" circle @click="toUserInfoList"></el-button>
+              <el-form v-if="lunboActiveIndex == 0" ref="conditionData" :model="conditionData" label-width="96px">
+                <el-form-item class="formItemFull" label="业绩归属:" size="mini">
+                  <el-input v-model="conditionData.yj"></el-input>
+                </el-form-item>
+                <el-form-item class="formItemFull" label="年缴费区间:" size="mini">
+                  <el-input v-model="conditionData.jfS" style="width: 43%;"></el-input>
+                  &nbsp;-&nbsp;
+                  <el-input v-model="conditionData.jfE" style="width: 43%;"></el-input>
+                </el-form-item>
+                <el-form-item class="formItemFull" label="投保年份:" size="mini">
+                  <el-input v-model="conditionData.money"></el-input>
+                </el-form-item>
+                <el-form-item class="formItemFull" label="险种类别:" size="mini">
+                  <el-select v-model="conditionData.num">
+                    <el-option label="险种类别1" value="有效"></el-option>
+                    <el-option label="险种类别2" value="无效"></el-option>
+                    <el-option label="险种类别3" value="无效"></el-option>
+                    <el-option label="险种类别4" value="无效"></el-option>
+                  </el-select>
+                </el-form-item>
+                <el-form-item class="formItemFull" label="保额区间:" size="mini">
+                  <el-input v-model="conditionData.name" style="width: 43%;"></el-input>
+                  &nbsp;-&nbsp;
+                  <el-input v-model="conditionData.name" style="width: 43%;"></el-input>
+                </el-form-item>
+              </el-form>
+              <el-form v-if="lunboActiveIndex == 1" :inline="true" ref="conditionData" :model="conditionData" label-width="96px">
+                <el-form-item class="formItem" label="年龄:" size="mini">
                   <el-input v-model="conditionData.name"></el-input>
                 </el-form-item>
-                <el-form-item class="mt10" label="保单状态:" size="mini">
-                  <el-select v-model="conditionData.status">
-                    <el-option label="有效" value="有效"></el-option>
-                    <el-option label="无效" value="无效"></el-option>
+                <el-form-item class="formItem" label="性别:" size="mini">
+                  <el-select v-model="conditionData.num">
+                    <el-option label="男" value="男"></el-option>
+                    <el-option label="女" value="女"></el-option>
                   </el-select>
                 </el-form-item>
-                <el-form-item class="mt10" label="首期保费:" size="mini">
-                  <el-input v-model="conditionData.money"></el-input>
+                <el-form-item class="formItem" label="省份:" size="mini">
+                  <el-select v-model="conditionData.num">
+                    <el-option label="河南" value="河南"></el-option>
+                    <el-option label="河北" value="河北"></el-option>
+                  </el-select>
+                </el-form-item>
+                <el-form-item class="formItem" label="学历:" size="mini">
+                  <el-input v-model="conditionData.name"></el-input>
                 </el-form-item>
-                <el-form-item class="mt10" label="保单数量:" size="mini">
+                <el-form-item class="formItem" label="保单件数:" size="mini">
                   <el-select v-model="conditionData.num">
                     <el-option label="3张以下" value="有效"></el-option>
                     <el-option label="4-7张" value="无效"></el-option>
@@ -54,34 +87,80 @@
                     <el-option label="10张以上" value="无效"></el-option>
                   </el-select>
                 </el-form-item>
+                <el-form-item class="formItem" label="客户类型:" size="mini">
+                  <el-select v-model="conditionData.num">
+                    <el-option label="客户类型1" value="有效"></el-option>
+                    <el-option label="客户类型2" value="无效"></el-option>
+                    <el-option label="客户类型3" value="无效"></el-option>
+                    <el-option label="客户类型4" value="无效"></el-option>
+                  </el-select>
+                </el-form-item>
+                <el-form-item class="formItem" label="核心客户号:" size="mini">
+                  <el-input v-model="conditionData.name"></el-input>
+                </el-form-item>
+                <el-form-item class="formItem" label="客户层级:" size="mini">
+                  <el-input v-model="conditionData.name"></el-input>
+                </el-form-item>
+                <el-form-item class="formItemFull labelM" label="参与方进入时间:" size="mini">
+                  <el-date-picker
+                    v-model="cyfDate"
+                    type="date"
+                    placeholder="选择日期">
+                  </el-date-picker>
+                </el-form-item>
+              </el-form>
+              <el-form v-if="lunboActiveIndex == 2" ref="conditionData" :model="conditionData" label-width="96px">
+                <el-form-item class="formItemFull" label="年收入:" size="mini">
+                  <el-input v-model="conditionData.name"></el-input>
+                </el-form-item>
+              </el-form>
+              <el-form v-if="lunboActiveIndex == 3" ref="conditionData" :model="conditionData" label-width="96px">
+                <el-form-item class="formItemFull" label="投保对象:" size="mini">
+                  <el-input v-model="conditionData.name"></el-input>
+                </el-form-item>
+              </el-form>
+              <el-form v-if="lunboActiveIndex == 4" ref="conditionData" :model="conditionData" label-width="196px">
+                <el-form-item class="formItemFull" label="是否理赔:" size="mini">
+                  <el-radio v-model="conditionData.radio" label="1">是</el-radio>
+                  <el-radio v-model="conditionData.radio" label="2">否</el-radio>
+                </el-form-item>
+                <el-form-item class="formItemFull" label="是否有效:" size="mini">
+                  <el-radio v-model="conditionData.radio" label="1">是</el-radio>
+                  <el-radio v-model="conditionData.radio" label="2">否</el-radio>
+                </el-form-item>
+                <el-form-item class="formItemFull" label="是否关注官微:" size="mini">
+                  <el-radio v-model="conditionData.radio" label="1">是</el-radio>
+                  <el-radio v-model="conditionData.radio" label="2">否</el-radio>
+                </el-form-item>
+                <el-form-item class="formItemFull" label="是否注册官微:" size="mini">
+                  <el-radio v-model="conditionData.radio" label="1">是</el-radio>
+                  <el-radio v-model="conditionData.radio" label="2">否</el-radio>
+                </el-form-item>
               </el-form>
-              <div v-else>
-
-              </div>
             </div>
-            <div class="infoRight">
-              <div v-if="lunboActiveIndex == 1">
-                <div class="infoItem">
-                  <div class="infoItemTitle">基本信息</div>
-                  <el-row class="infoCon">
-                    <el-col :span="12">性别:{{conditionData.sex}}</el-col>
-                    <el-col :span="12">年龄:{{conditionData.age}}</el-col>
-                  </el-row>
-                </div>
-                <div class="infoItem">
-                  <div class="infoItemTitle">客户标签</div>
-                  <el-row class="infoCon">
-                    <el-col :span="12" v-for="(item,index) in conditionData.tag" :key="index">{{item}}</el-col>
-                  </el-row>
-                </div>
-              </div>
-              <div v-else>
+<!--            <div class="infoRight">-->
+<!--              <div v-if="lunboActiveIndex == 0">-->
+<!--                <div class="infoItem">-->
+<!--                  <div class="infoItemTitle">基本信息</div>-->
+<!--                  <el-row class="infoCon">-->
+<!--                    <el-col :span="12">性别:{{conditionData.sex}}</el-col>-->
+<!--                    <el-col :span="12">年龄:{{conditionData.age}}</el-col>-->
+<!--                  </el-row>-->
+<!--                </div>-->
+<!--                <div class="infoItem">-->
+<!--                  <div class="infoItemTitle">客户标签</div>-->
+<!--                  <el-row class="infoCon">-->
+<!--                    <el-col :span="12" v-for="(item,index) in conditionData.tag" :key="index">{{item}}</el-col>-->
+<!--                  </el-row>-->
+<!--                </div>-->
+<!--              </div>-->
+<!--              <div v-else>-->
 
-              </div>
-              <div>
-                <el-button class="searchBtn" type="primary" size="mini">查询</el-button>
-              </div>
-            </div>
+<!--              </div>-->
+<!--              <div>-->
+<!--                <el-button class="searchBtn" type="primary" size="mini">查询</el-button>-->
+<!--              </div>-->
+<!--            </div>-->
           </div>
         </el-col>
       </el-row>
@@ -138,6 +217,7 @@
     },
     data() {
       return {
+        // 客户年龄段性别分布
         barTwoWayChartData:{
           legendData:["男生", "女生"],
           xAxisData:["儿童", "少年", "青年", "中年", "老年", "大龄", "高龄"],
@@ -146,6 +226,7 @@
             [5,12,12,19,19,23,23]
           ]
         },
+        // 险种类别
         barChartData:{
           yAxisName:'单位:万',
           color:['#028FF3','#F29700'],
@@ -161,6 +242,7 @@
             },
           ]
         },
+        // 拥有保单件数分布
         pieChartData:{
           color:['#0084F1','#ED475B','#F39801','#00C7FF'],
           seriesData:[
@@ -170,6 +252,7 @@
             { value: 100, name: '>10' },
           ]
         },
+        // 近10年有效客户数
         barChartVistorsData:{
           yAxisName:'数量:万个',
           color:['#048EF3','#7FE59A','#FAD889','#F29EC2'],
@@ -199,7 +282,7 @@
         },
         width:'100%',
         height:'80%',
-        lunboActiveIndex:'1',
+        lunboActiveIndex:'0',
         lunboData:[
           {
             iconSrc:require('../assets/image/productInfo.png'),
@@ -231,6 +314,7 @@
           age:'23',
           tag:['万能险大户','百万医疗','单身女青年','理性用户'],
         },
+        cyfDate:'',
       }
     },
     created() {
@@ -279,6 +363,9 @@
 
         });
       },
+      toUserInfoList(){
+        this.$router.push({ path:'/userInfoList'})
+      }
     }
   };
 </script>
@@ -320,10 +407,6 @@
       }
     }
   }
-
-  .mt20{
-    margin-top: 20px;
-  }
   .ht100p{
     height: 100%;
   }

+ 6 - 3
dgtis-ui/src/views/login.vue

@@ -41,11 +41,12 @@
         </el-form-item>
         <el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">记住密码</el-checkbox>
         <el-form-item style="width:100%;">
+<!--          style="width:100%;background: #F39800;border-color: #F39800;"-->
           <el-button
             :loading="loading"
             size="medium"
             type="primary"
-            style="width:100%;background: #F39800;border-color: #F39800;"
+            style="width:100%;"
             @click.native.prevent="handleLogin"
           >
             <span v-if="!loading">登 录</span>
@@ -158,7 +159,7 @@ export default {
   justify-content: flex-end;
   align-items: center;
   height: 83%;
-  background-image: url("../assets/image/login-background.png");
+  background-image: url("../assets/image/login-background4.jpg");
   background-size: cover;
   padding: 0 80px;
   box-sizing: border-box;
@@ -172,7 +173,8 @@ export default {
 .orangeLine{
   height: 18px;
   width: 4px;
-  background: #F39800;
+  /*background: #F39800;*/
+  background: #46a6ff;
   display: inline-block;
   position: absolute;
   left: -25px;
@@ -183,6 +185,7 @@ export default {
   background: #ffffff;
   width: 400px;
   padding: 25px 25px 5px 25px;
+  opacity:0.9;
   .el-input {
     height: 38px;
     input {

+ 2 - 2
dgtis-ui/src/views/system/userInfoList/index.vue

@@ -41,7 +41,7 @@
                     size="mini"
                     icon="el-icon-copy-document"
                     @click="toOverview(scope.row)"
-                    v-hasPermi="['system:user:edit']"
+                    v-hasPermi="['business:customerInformation:overview']"
                   >概览</el-button>
                   <el-button
                     v-if="scope.row.userId !== 1"
@@ -49,7 +49,7 @@
                     type="cyan"
                     icon="el-icon-warning-outline"
                     @click="toDetail(scope.row)"
-                    v-hasPermi="['system:user:remove']"
+                    v-hasPermi="['business:customerInformation:detail']"
                   >详情</el-button>
                 </template>
               </el-table-column>