刘恒 1 rok temu
rodzic
commit
3608938f8c

BIN
src/assets/img/inline.png


BIN
src/assets/index/Frame12.png


+ 1 - 0
src/components/form/FormRow.vue

@@ -142,6 +142,7 @@
       v-show="showManage"
     >
       <a-cascader
+              change-on-select
         placeholder="请选择管理人"
         v-model="formState.leaderId"
         allowClear

+ 5 - 0
src/pages/business/agent.vue

@@ -223,6 +223,11 @@ const columns = [
     title: "归属机构",
     dataIndex: "deptName",
   },
+  {
+    title: "管理人",
+    dataIndex: "leaderName",
+    // scopedSlots: { customRender: "parterCompanyName" },
+  },
   {
     title: "机构来源",
     dataIndex: "managementSource",

+ 55 - 20
src/pages/business/channel.vue

@@ -169,24 +169,27 @@
           </a-form-item>
         </a-form>
 
-        <standard-table
-          bordered
-          :columns="columns"
-          :dataSource="tableList"
-          :pagination="pagination"
-          @clear="onClear"
-          @change="onChange"
-          :loading="loading"
-        >
-          <div slot="operation" slot-scope="{ text, record }">
-            <a-button type="link" @click="watchMessage({ text, record })"
-              >详情</a-button
-            >
-          </div>
-          <div slot="managementSource" slot-scope="{ text }">
-            {{ text == "1" ? "渠道" : "代理人" }}
-          </div>
-        </standard-table>
+        <div class="table" style="width: 100%">
+          <standard-table
+            bordered
+            :columns="columns"
+            :dataSource="tableList"
+            :pagination="pagination"
+            @clear="onClear"
+            @change="onChange"
+            :loading="loading"
+            :scroll="{ x: 'calc(1500px + 50%)', y: 600 }"
+          >
+            <div slot="operation" slot-scope="{ text, record }">
+              <a-button type="link" @click="watchMessage({ text, record })"
+                >详情</a-button
+              >
+            </div>
+            <div slot="managementSource" slot-scope="{ text }">
+              {{ text == "1" ? "渠道" : "代理人" }}
+            </div>
+          </standard-table>
+        </div>
       </div>
     </div>
   </div>
@@ -202,19 +205,28 @@ const columns = [
   {
     title: "姓名",
     dataIndex: "userName",
+    width: 100,
   },
   {
     title: "工号",
     dataIndex: "userId",
+    width: 200,
+
     // scopedSlots: { customRender: "parterCompanyName" },
   },
   {
     title: "归属机构",
     dataIndex: "deptName",
+    width: 300,
+  },
+  {
+    title: "管理人",
+    dataIndex: "leaderName",
   },
   {
     title: "机构来源",
-    dataIndex: "managementSource",
+
+    ataIndex: "managementSource",
     scopedSlots: { customRender: "managementSource" },
   },
   {
@@ -237,9 +249,31 @@ const columns = [
     title: "非车险保费",
     dataIndex: "jypremium",
   },
+  {
+    title: "单交订单数",
+    dataIndex: "riskCodeDj",
+  },
+  {
+    title: "单商订单数",
+    dataIndex: "riskCodeDs",
+  },
+  {
+    title: "单三订单数",
+    dataIndex: "riskCodeDsan",
+  },
+  {
+    title: "交三订单数",
+    dataIndex: "riskCodeJs",
+  },
+  {
+    title: "交商订单数",
+    dataIndex: "riskCodeJshang",
+  },
   {
     title: "操作",
     dataIndex: "operation",
+    fixed: "right",
+    width: 100,
     scopedSlots: { customRender: "operation" },
   },
 ];
@@ -433,7 +467,8 @@ export default {
   }
 }
 .back-line-main {
-  flex: 1;
+  flex: none;
+  width: 80%;
   display: flex;
   flex-direction: column;
   .back-line-header {

+ 2 - 2
src/pages/business/index.vue

@@ -281,7 +281,7 @@ export default {
   watch: {
     "formState.days"(val) {
       this.pagination.current = 1;
-      this.pagination.defaultPageSize = 10;
+      // this.pagination.defaultPageSize = 10;
       if (val != 0) this.getList();
     },
     "formState.riskCode"() {
@@ -319,7 +319,7 @@ export default {
     },
     timeChange(val) {
       this.pagination.current = 1;
-      this.pagination.defaultPageSize = 10;
+      // this.pagination.defaultPageSize = 10;
       this.formState.createtimeStart = val[0];
       this.formState.createtimeEnd = val[1];
       this.formState.days = 0;

+ 16 - 1
src/pages/business/sales.vue

@@ -12,6 +12,12 @@
         <div class="back-line-header-title">
           <h2>合计</h2>
           <div>
+            <dl>
+              <dt><span>总人数</span></dt>
+              <dd>
+                <span>{{ amount.totalNumber || 0 }}</span>
+              </dd>
+            </dl>
             <dl>
               <dt><span>签单保费</span></dt>
               <dd>
@@ -188,7 +194,12 @@ const columns = [
     dataIndex: "userId",
     // scopedSlots: { customRender: "parterCompanyName" },
   },
-
+  
+  {
+    title: "管理人",
+    dataIndex: "leaderName",
+    // scopedSlots: { customRender: "parterCompanyName" },
+  },
   {
     title: "签单保费",
     dataIndex: "sumPremium",
@@ -445,6 +456,10 @@ export default {
           background: url("../../assets/img/business6.png");
           color: #47a2eb;
         }
+        > dl:nth-child(7) {
+          background: url("../../assets/img/business6.png");
+          color: #f879cd;
+        }
       }
       span {
         display: block;

+ 163 - 14
src/pages/personnelManage/backLine.vue

@@ -131,31 +131,91 @@
           </dd>
         </dl>
       </div>
-      <div>
+    </div>
+    <div class="back-line-message">
+      <div style="width: 100%">
         <dl>
-          <dt><img src="@/assets/img/users.png" alt="" /></dt>
+          <dt><img src="@/assets/img/inline.png" alt="" /></dt>
           <dd>
             <p class="other-module">
               在职分布
               <span class="other">
                 <span>
-                  <i :style="{ background: '#3ECBC4' }"></i>
+                  <i :style="{ background: '#78D3F8' }"></i>
+                  <a>修改待审核</a>
+                </span>
+                <span>
+                  <i :style="{ background: '#65789B' }"></i>
+                  <a>修改审核驳回</a>
+                </span>
+                <span>
+                  <i :style="{ background: '#5B8FF9' }"></i>
                   <a>在职</a>
                 </span>
                 <span>
-                  <i :style="{ background: '#F2657D' }"></i>
+                  <i :style="{ background: '#CDDDFD' }"></i>
                   <a>离司</a>
                 </span>
+                <span>
+                  <i :style="{ background: '#F6BD16' }"></i>
+                  <a>入司待审核</a>
+                </span>
+                <span>
+                  <i :style="{ background: '#7262FD' }"></i>
+                  <a>入司审核驳回</a>
+                </span>
+                <span>
+                  <i :style="{ background: '#61DDAA' }"></i>
+                  <a>离司待审核</a>
+                </span>
+                <span>
+                  <i :style="{ background: '#0BB3B3' }"></i>
+                  <a>离司审核驳回</a>
+                </span>
               </span>
             </p>
             <div>
+              <!-- 修改 -->
+              <div
+                v-if="backLinePersonnel.pendingApprovalProportion > 0"
+                :style="{
+                  width:
+                    (backLinePersonnel.pendingApprovalProportion * 100).toFixed(
+                      0
+                    ) + '%',
+                  background: '#78D3F8',
+                }"
+              >
+                {{
+                  (backLinePersonnel.pendingApprovalProportion * 100).toFixed(
+                    0
+                  ) + "%"
+                }}
+              </div>
+              <div
+                v-if="backLinePersonnel.reviewRejectedProportion > 0"
+                :style="{
+                  width:
+                    (backLinePersonnel.reviewRejectedProportion * 100).toFixed(
+                      0
+                    ) + '%',
+                  background: '#65789B',
+                }"
+              >
+                {{
+                  (backLinePersonnel.reviewRejectedProportion * 100).toFixed(
+                    0
+                  ) + "%"
+                }}
+              </div>
+              <!-- 在职/离司 -->
               <div
                 v-if="backLinePersonnel.onJobUserProportion > 0"
                 :style="{
                   width:
                     (backLinePersonnel.onJobUserProportion * 100).toFixed(0) +
                     '%',
-                  background: '#3ECBC4',
+                  background: '#5B8FF9',
                 }"
               >
                 {{
@@ -168,7 +228,7 @@
                   width:
                     (backLinePersonnel.departUserProportion * 100).toFixed(0) +
                     '%',
-                  background: '#F2657D',
+                  background: '#CDDDFD',
                 }"
               >
                 {{
@@ -176,10 +236,90 @@
                   "%"
                 }}
               </div>
+
+              <!-- 入司 -->
+              <div
+                v-if="backLinePersonnel.companyReviewProportion > 0"
+                :style="{
+                  width:
+                    (backLinePersonnel.companyReviewProportion * 100).toFixed(
+                      0
+                    ) + '%',
+                  background: '#F6BD16',
+                }"
+              >
+                {{
+                  (backLinePersonnel.companyReviewProportion * 100).toFixed(0) +
+                  "%"
+                }}
+              </div>
+              <div
+                v-if="backLinePersonnel.entryReviewProportion > 0"
+                :style="{
+                  width:
+                    (backLinePersonnel.entryReviewProportion * 100).toFixed(0) +
+                    '%',
+                  background: '#7262FD',
+                }"
+              >
+                {{
+                  (backLinePersonnel.entryReviewProportion * 100).toFixed(0) +
+                  "%"
+                }}
+              </div>
+
+              <!--离司 -->
+              <div
+                v-if="backLinePersonnel.leavingCompanyReviewProportion > 0"
+                :style="{
+                  width:
+                    (
+                      backLinePersonnel.leavingCompanyReviewProportion * 100
+                    ).toFixed(0) + '%',
+                  background: '#61DDAA',
+                }"
+              >
+                {{
+                  (
+                    backLinePersonnel.leavingCompanyReviewProportion * 100
+                  ).toFixed(0) + "%"
+                }}
+              </div>
+              <div
+                v-if="backLinePersonnel.departureReviewRejectedProportion > 0"
+                :style="{
+                  width:
+                    (
+                      backLinePersonnel.departureReviewRejectedProportion * 100
+                    ).toFixed(0) + '%',
+                  background: '#0BB3B3',
+                }"
+              >
+                {{
+                  (
+                    backLinePersonnel.departureReviewRejectedProportion * 100
+                  ).toFixed(0) + "%"
+                }}
+              </div>
             </div>
             <h2 class="other-people">
-              <span>在职:{{ backLinePersonnel.onJobUser }}人</span>
-              <span>离司:{{ backLinePersonnel.departUser }}人</span>
+              <span>修改待审核:{{ backLinePersonnel.pendingApproval }}人</span>
+              <span
+                >修改审核驳回:{{ backLinePersonnel.reviewRejected }}人</span
+              >
+
+              <span> 在职: {{ backLinePersonnel.onJobUser }}人</span>
+              <span> 离司: {{ backLinePersonnel.departUser }}人</span>
+              <span> 入司待审核: {{ backLinePersonnel.companyReview }}人</span>
+              <span> 入司审核驳回: {{ backLinePersonnel.entryReview }}人</span>
+              <span>
+                离司待审核:
+                {{ backLinePersonnel.leavingCompanyReview }}人</span
+              >
+              <span>
+                离司审核驳回:
+                {{ backLinePersonnel.departureReviewRejected }}人</span
+              >
             </h2>
           </dd>
         </dl>
@@ -236,6 +376,8 @@ export default {
   .back-line-hearder {
     padding: 15px;
     box-sizing: border-box;
+    box-shadow: 0px 2px 8px 0px rgba(42, 85, 229, 0.15);
+    border: 2px solid rgba(255, 255, 255, 0.2);
     h1 {
       margin: 0;
     }
@@ -261,7 +403,7 @@ export default {
       }
     }
   }
-  > div:last-child {
+  > div.back-line-message {
     margin-top: 24px;
     display: flex;
     flex-wrap: wrap;
@@ -269,10 +411,12 @@ export default {
     justify-content: space-between;
     > div {
       // flex: ;
-      width: 24%;
+      width: 32%;
       height: 100%;
       background: #fff;
       border-radius: 8px;
+      box-shadow: 0px 2px 8px 0px rgba(42, 85, 229, 0.15);
+      border: 2px solid rgba(255, 255, 255, 0.2);
       > dl {
         display: flex;
         align-items: center;
@@ -316,14 +460,19 @@ export default {
             display: flex;
             align-items: center;
             border-radius: 8px;
+            overflow: hidden;
             // padding: 0 15px;
             // box-sizing: border-box;
             > div {
               display: flex;
               align-items: center;
+              justify-content: center;
               flex: none;
               height: 35px;
               color: #fff;
+              // min-width: 50px;
+              // max-width: 800px;
+              // text-align: center;
               // border-radius: 8px;
             }
             > div.on {
@@ -340,8 +489,8 @@ export default {
               background: #ffc43f;
               border-radius: 0 8px 8px 0;
               // text-align: right;
-              justify-content: flex-end;
-              padding-right: 15px;
+              // justify-content: flex-end;
+              // padding-right: 15px;
               box-sizing: border-box;
             }
           }
@@ -353,7 +502,7 @@ export default {
     display: flex;
     > div {
       flex: none;
-      width: 20%;
+      width: 33%;
     }
   }
 }
@@ -390,6 +539,6 @@ export default {
   justify-content: space-between;
   padding-top: 5px;
   box-sizing: border-box;
-  color: #aaa;
+  color: #333333;
 }
 </style>

+ 18 - 0
src/pages/personnelManage/channel.vue

@@ -4,6 +4,9 @@
       <div class="back-line-header-title">
         <h2>渠道人员详情</h2>
         <div>
+          <span>合计:{{ channelTotal.allNumber || 0 }}</span>
+          <span>开单:{{ channelTotal.issueNumber || 0 }}</span>
+          <span>未开单:{{ channelTotal.notIssueNumber || 0 }}</span>
           <span>时间筛选</span>
           <a-range-picker
             v-model="formState.time"
@@ -80,6 +83,7 @@
         </a-form-item>
         <a-form-item label="管理人" :labelCol="{ span: 5 }" :colon="false">
           <a-cascader
+            change-on-select
             style="width: 300px"
             placeholder="请选择管理人"
             v-model="formState.leaderId"
@@ -238,6 +242,7 @@ export default {
 
       list: [],
       manageList: [],
+      channelTotal: {},
     };
   },
   watch: {
@@ -357,6 +362,19 @@ export default {
             this.pageInfo.total = 0;
           }
         });
+
+      this.$API.personnel
+        .getChannelTotal({
+          ...this.formState,
+          managementSource: 1,
+          leaderId: this.formState.leaderId[this.formState.leaderId.length - 1],
+        })
+        .then((res) => {
+          console.log(res);
+          if (res.data.code === 200) {
+            this.channelTotal = { ...res.data.data };
+          }
+        });
     },
     onClear() {
       this.$message.info("您清空了勾选的所有行");

+ 1 - 0
src/pages/personnelManage/sales.vue

@@ -80,6 +80,7 @@
         </a-form-item>
         <a-form-item label="管理人" :labelCol="{ span: 5 }" :colon="false">
           <a-cascader
+              change-on-select
             style="width: 300px"
             placeholder="请选择管理人"
             v-model="formState.leaderId"

+ 1 - 0
src/pages/sys/permissionsAuth.vue

@@ -57,6 +57,7 @@
 
             <a-form-item label="管理人" :labelCol="{ span: 5 }" :colon="false">
               <a-cascader
+              change-on-select
                 style="width: 300px"
                 placeholder="请选择管理人"
                 v-model="formState.leaderId"

+ 1 - 0
src/pages/task/agent.vue

@@ -75,6 +75,7 @@
 
         <a-form-item label="管理人" :labelCol="{ span: 5 }" :colon="false">
           <a-cascader
+              change-on-select
             style="width: 300px"
             placeholder="请选择管理人"
             v-model="formState.leaderId"

+ 3 - 0
src/pages/task/channel.vue

@@ -83,12 +83,15 @@
 
           <a-form-item label="管理人" :labelCol="{ span: 5 }" :colon="false">
             <a-cascader
+              change-on-select
+             
               style="width: 300px"
               placeholder="请选择管理人"
               v-model="formState.leaderId"
               allowClear
               :options="manageList"
               :display-render="displayRender"
+              
             >
             </a-cascader>
           </a-form-item>

+ 3 - 2
src/pages/task/dianxiao.vue

@@ -83,6 +83,7 @@
 
           <a-form-item label="管理人" :labelCol="{ span: 5 }" :colon="false">
             <a-cascader
+              change-on-select
               style="width: 300px"
               placeholder="请选择管理人"
               v-model="formState.leaderId"
@@ -522,7 +523,7 @@ export default {
           pageSize: this.pageInfo.defaultPageSize,
           userId: item.userId,
           beginDate: this.formState.beginDate,
-          managementSource:item.managementSource,
+          managementSource: item.managementSource,
           endDate: this.formState.endDate,
         })
         .then((res) => {
@@ -693,7 +694,7 @@ export default {
 }
 
 dl {
-  width: 346px;
+  max-width: 500px;
   height: 78px;
   background: #ffffff;
   border-radius: 4px 4px 4px 4px;

+ 1 - 0
src/pages/withdrawaltask/tixian.vue

@@ -144,6 +144,7 @@
 
           <a-form-item label="管理人" :labelCol="{ span: 5 }" :colon="false">
             <a-cascader
+              change-on-select
               style="width: 300px"
               placeholder="请选择管理人"
               v-model="formState.leaderId"

+ 6 - 1
src/services/personnel.js

@@ -43,6 +43,10 @@ export async function getManageUser(data) {
 export async function exportList(data) {
   return request(`/userStatistics/QxFrontlineAgentExcel`, METHOD.POST, data)
 }
+//渠道统计增加合计
+export async function getChannelTotal(data) {
+  return request(`/userStatistics/getIssueNumber`, METHOD.POST, data)
+}
 
 
 
@@ -59,6 +63,7 @@ export default {
   getTeamUserDetails,
   getChannelDetails,
   getManageUser,
-  exportList
+  exportList,
+  getChannelTotal
 
 }