Ver Fonte

Merge branch 'dev' of http://www.baoxianzhanggui.com:8090/sxzgd/vue-insagent-pc into dev

baijunde há 2 anos atrás
pai
commit
9548781966

+ 8 - 8
src/views/FinancialManagement/AcountWithdrawal/AcountBalance.vue

@@ -197,9 +197,9 @@ export default {
         { prop: "name", label: "姓名", minWidth: 80 },
         { prop: "deptId", label: "机构代码", minWidth: 160 },
         { prop: "deptName", label: "机构名称", minWidth: 100 },
-        { prop: "sumAmount", label: "总金额", minWidth: 100 },
-        { prop: "sumAmountWithdrawal", label: "提现金额", minWidth: 100 },
-        { prop: "sumAmountAccount", label: "已到账总金额", minWidth: 100 },
+        { prop: "sumAmountWithdrawal", label: "总收益金额", minWidth: 100 },
+        { prop: "sumAmount", label: "提现金额", minWidth: 100 },
+        { prop: "sumAmountAccount", label: "已提现金额", minWidth: 100 },
         { prop: "sumAmountPayment", label: "支付中总金额  ", minWidth: 100 },
         { prop: "zgCoin", label: "掌柜币", minWidth: 100 },
         { prop: "zgCoinAmountWithdrawal", label: "掌柜币提现总金额", minWidth: 100 },
@@ -433,11 +433,11 @@ export default {
         .then((res) => {
           if (res.code == 200) {
             let resData = {
-              content: res.data.records,
-              pageNum: res.data.current,
-              pageSize: res.data.size,
-              totalPages: res.data.pages,
-              totalSize: res.data.total,
+              content: res.data.content,
+              pageNum: res.data.pageNum,
+              pageSize: res.data.pageSize,
+              totalPages: res.data.totalPages,
+              totalSize: res.data.totalSize,
             }
             this.pageResult = resData;
           }

+ 93 - 34
src/views/PeopleManage/PcLoginRecord.vue

@@ -20,6 +20,7 @@
             :value="option.code"></el-option>
         </el-select>
         <el-button size="small" type="primary" @click="onSearch">搜索</el-button>
+        <el-button size="small" type="primary" @click="deptPeopleVisible=true;getUserDeptTreeFun()">机构人员树</el-button>
         <!-- <el-button size="small" type="primary" @click="onCircular">圆形定位</el-button> -->
         <!-- <el-button size="small" type="primary" @click="map.remove(circle)">删除定位</el-button> -->
       </div>
@@ -48,7 +49,7 @@
       </div>
        <!-- <MobileZoomDiv> -->
         <div v-if="personnelVisible">
-        <vdr title="人员详情" @visiblefun="personnelVisible = false" :width="700" :height="340">
+        <vdr title="人员详情" @visiblefun="personnelVisible = false" :width="700" >
           <el-table :data="personnelData" border style="width: 100%; " :header-cell-style="{
             background: '#F7F7F9',
             fontWeight: '700',
@@ -102,7 +103,7 @@
       <!-- </MobileZoomDiv> -->
       <!-- <MobileZoomDivTR> -->
       <div v-if="infoWindowVisible">
-        <vdr title="历史记录" @visiblefun="infoWindowVisible = false" :width="550" :height="525">
+        <vdr title="历史记录" @visiblefun="infoWindowVisible = false"  >
           <el-table :data="tableData" border style="width: 98%; max-height: 45vh;
             overflow-y: auto; " :cell-style="{ padding: '3px 8px' }" :header-cell-style="{
               background: '#F2F7FC',
@@ -222,11 +223,26 @@
             <el-table-column prop="userName" label="姓名">
             </el-table-column>
             <el-table-column prop="carNumber" label="车险录单">
+              <template slot-scope="scope">
+              <el-tooltip class="item" effect="dark" :content="scope.row.carNumberTime" placement="bottom">
+                  <span >{{ scope.row.carNumber }}</span>
+                </el-tooltip>
+              </template > 
             </el-table-column>
             <el-table-column prop="orderNumber" label="订单查询">
+              <template slot-scope="scope">
+              <el-tooltip class="item" effect="dark" :content="scope.row.orderNumberTime" placement="bottom">
+                  <span >{{ scope.row.orderNumber }}</span>
+                </el-tooltip>
+              </template > 
             </el-table-column>
             <el-table-column prop="walletNumber" label="钱包">
-            </el-table-column>
+              <template slot-scope="scope">
+              <el-tooltip class="item" effect="dark" :content="scope.row.walletNumberTime" placement="bottom">
+                  <span >{{ scope.row.walletNumber }}</span>
+                </el-tooltip>
+              </template > 
+            </el-table-column>  
           </el-table>
           <!-- <div class="bottomFixed">
             <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="pageNum"
@@ -237,17 +253,30 @@
         </vdr>
       </div>
 
-      <!-- <div >
-        <vdr title="机构树" @visiblefun="personnelVisible = false" :width="700" :height="340">
-          <el-tree
-              :data="ztreeNodes"
-              :props="{ children: 'children', label: 'name' }"
-              node-key="id"
-              :default-expanded-keys="['9']"
-              @node-click="onZTreeClick"
-            ></el-tree>
-        </vdr>
-      </div> -->
+      <div class="info-window" v-if="deptPeopleVisible">
+          <!-- <p class="close flex j-s">
+          <span>历史记录</span>
+          <span style="color: #c3c3c3;font-size:18px" @click="infoWindowVisible = false"> ×</span>
+        </p> -->
+        <div class="close flex j-s" style="padding:10px 0" >
+          <el-switch
+          v-model="deptPeopleValue"
+          @change="deptPeopleFun"
+          size="small"
+          active-text="机构树"
+          :disabled="ztreeNodeAll.type==1"
+          inactive-text="人员树">
+        </el-switch>
+        <span class="el-icon-close" style="color: #c3c3c3;cursor: pointer" @click="deptPeopleVisible = false"> </span>
+        </div>
+        <el-tree
+            :data="ztreeNodes"
+            :props="{ children: 'children', label: 'name' }"
+            node-key="id"
+            :default-expanded-keys="['9']"
+            @node-click="onZTreeClick"
+          ></el-tree>
+      </div>
       <div class="info-window input-card" v-if="circle">
         <el-button size="small" round @click="circleEditor.open()" style="margin-bottom: 5px">开始编辑</el-button>
         <el-button size="small" round @click="circleEditor.close()" style="margin-left:0">结束编辑</el-button>
@@ -272,7 +301,12 @@ var myChart;
 export default {
   data() {
     return {
+      deptPeopleVisible:false,
+      deptPeopleType:0,
+      deptPeopleId:'',
       ztreeNodes:[],
+      ztreeNodeAll:{},
+      deptPeopleValue:true,
       pageNum: 1, //当前页面
       pageSize: 5, //每页显示条数
       totalSum: 0, //全部的数据条数
@@ -348,21 +382,40 @@ export default {
     window.personnelclick = () => {
       this.personnelVisible = true;
     };
-    // this.$api.user
-    //     .getUserDeptTree()
-    //     .then(res => {
-    //       if (res.code == 200) {
-    //         this.ztreeNodes = [res.data];
-    //       }
-    //     });
+   
   },
   destroyed() {
     // 销毁地图,并清空地图容器.该方法执行后,地图对象被注销,内存释放,地图容器被清空。
     this.map.destroy();
   },
   methods: {
+    getUserDeptTreeFun(){
+      this.$api.user
+        .getUserDeptTree()
+        .then(res => {
+          if (res.code == 200) {
+            this.ztreeNodes = res.data.deptList;
+            this.ztreeNodeAll = res.data;
+          }
+        });
+    },
+    deptPeopleFun(val){
+     if(val){
+      this.ztreeNodes = this.ztreeNodeAll.deptList;
+     }
+     else{
+      this.ztreeNodes = this.ztreeNodeAll.userList;
+     }
+    },
     onZTreeClick: function (evt, treeId, treeNode) {
-    ;
+      if(this.deptPeopleValue){
+        this.deptPeopleType=1
+      }
+      else{
+        this.deptPeopleType=2
+      }
+      this.deptPeopleId=evt.id
+      this.initMap();
     },
     operateDateFun(val) {
       this.operateDate = val
@@ -515,6 +568,8 @@ export default {
       }
       let api = this.positionType == 1 ? 'queryPcAddressInfo' : 'queryPcAddressHistoryInfo'
       this.$api.user[api]({
+        queryId: this.deptPeopleId,
+        type: this.deptPeopleType,
         lng: this.position[0], lat: this.position[1], source: this.source, pageSize: 5,
         pageNum: this.personnelPageNum, ...data
       })
@@ -756,7 +811,7 @@ export default {
         this.initMap();
       }
       else {
-        this.queryAnalysis({ startTime: this.historyData[0], endTime: this.historyData[1] });
+          this.queryAnalysis({ startTime: this.historyData[0], endTime: this.historyData[1] });
       }
     },
     onLineChange(val) {
@@ -844,7 +899,7 @@ export default {
           mapStyle: "amap://styles/normal" //地图样式,彩色
         });
         _this.map.on("complete", () => {
-          _this.$api.user.queryPositionLoginRecord({ source: this.source, ...this.province }).then(res => {
+          _this.$api.user.queryPositionLoginRecord({ source: this.source,queryId: this.deptPeopleId,type: this.deptPeopleType, ...this.province }).then(res => {
             if (res.code == 200) {
               if (res.data && res.data.length > 0) {
                 //处理后台返回要用到的数据
@@ -952,6 +1007,8 @@ export default {
       }
       let api = this.positionType == 1 ? 'queryPcAddressInfo' : 'queryPcAddressHistoryInfo'
       this.$api.user[api]({
+        queryId: this.deptPeopleId,
+        type: this.deptPeopleType,
         lng: e.target._position[0], lat: e.target._position[1], source: this.source, pageSize: 5,
         pageNum: this.personnelPageNum, ...data
       })
@@ -1029,16 +1086,18 @@ export default {
   }
 }
 
-// .info-window {
-//   position: absolute;
-//   top: 60px;
-//   left: 20px;
-//   z-index: 100;
-//   background-color: white;
-//   padding: 10px;
-//   width: 32vw;
-//   box-shadow: 0px 5px 10px #ddd;
-// }
+.info-window {
+  position: absolute;
+  top: 60px;
+  left: 20px;
+  z-index: 100;
+  background-color: white;
+  padding: 10px;
+  width: 22vw;
+  box-shadow: 0px 5px 10px #ddd;
+  height: 45vh;
+    overflow-y: auto;
+}
 
 .infohis-window {
   position: absolute;

+ 2 - 0
src/views/PeopleManage/Staff/StaffManage.vue

@@ -1076,6 +1076,7 @@ export default {
     // 提交
     submitForm() {
       this.$refs.formDataDetails.submit();
+      this.formData.leaderName=''
       setTimeout(() => {
         this.$refs.formData.validate((valid) => {
           if (valid && this.detailValid) {
@@ -1098,6 +1099,7 @@ export default {
                   (val) => val.id == this.formData.leaderId
                 ).name;
               }
+              
               if (this.dialogTitle == "新增后线人员") {
                 this.$api.user
                   .saveUserInfo({

+ 107 - 10
src/views/PeopleManage/UserMap.vue

@@ -18,6 +18,7 @@
           :value="option.code"></el-option>
       </el-select>
       <el-button size="small" type="primary" @click="onSearch">搜索</el-button>
+      <el-button size="small" type="primary" @click="deptPeopleVisible=true;getUserDeptTreeFun()">机构人员树</el-button>
     </div>
     <div class="line-window">
       <span><i style=" background: #54B569 ;"></i>在线</span>
@@ -49,7 +50,7 @@
      <!-- <MobileZoomDiv> -->
       <!-- 人员详情 -->
       <div v-if="personnelVisible">
-      <vdr title="人员详情" @visiblefun="personnelVisible = false" :width="700" :height="340">
+      <vdr title="人员详情" @visiblefun="personnelVisible = false" :width="770" >
         <el-table :data="personnelData" border style="width: 100%; " :header-cell-style="{
           background: '#F7F7F9',
           fontWeight: '700',
@@ -67,6 +68,8 @@
           </el-table-column>
           <el-table-column prop="id" label="工号">
           </el-table-column>
+          <el-table-column prop="deptName" label="所属机构" width="150">
+          </el-table-column>
           <el-table-column prop="leaderName" label="管理人">
           </el-table-column>
           <el-table-column prop="address" label="地址">
@@ -84,7 +87,7 @@
                 size="small">
                 历史记录
               </el-button>
-              <el-button style="color:#3865E9 " @click.native.prevent="operatelRecords(scope.row)" type="text"
+              <el-button st yle="color:#3865E9 " @click.native.prevent="operatelRecords(scope.row)" type="text"
                 size="small">
                 操作记录
               </el-button>
@@ -105,11 +108,7 @@
     <!-- </MobileZoomDiv> -->
     <!-- <MobileZoomDivTR> -->
     <div v-if="infoWindowVisible">
-      <vdr title="历史记录" @visiblefun="infoWindowVisible = false" :width="550" :height="525">
-        <!-- <p class="close flex j-s">
-          <span>历史记录</span>
-          <span style="color: #c3c3c3;font-size:18px" @click="infoWindowVisible = false"> ×</span>
-        </p> -->
+      <vdr title="历史记录" @visiblefun="infoWindowVisible = false"  :width="720">
         <el-table :data="tableData" border style="width: 98%; max-height: 45vh;
     overflow-y: auto;" :cell-style="{ padding: '3px 8px' }" :header-cell-style="{
       background: '#F2F7FC',
@@ -120,6 +119,8 @@
           </el-table-column>
           <el-table-column prop="userName" label="姓名" width="100">
           </el-table-column>
+          <el-table-column prop="deptName" label="所属机构"  width="150">
+          </el-table-column>
           <el-table-column prop="address" label="地址">
           </el-table-column>
           <el-table-column prop="createTime" label="登录时间">
@@ -208,7 +209,7 @@
 
    
     <div v-if="operatelVisible">
-      <vdr title="操作记录" @visiblefun="operatelVisible = false">
+      <vdr title="操作记录" @visiblefun="operatelVisible = false" :width="800">
         <div style="margin-bottom: 10px;">
           <span style="color: #262626;font-weight: 700;font-size: 14px;">时间筛选 </span>
           <el-date-picker v-model="operateDate" type="datetimerange" size="small" @change="operateDateFun"
@@ -227,19 +228,67 @@
           </el-table-column>
           <el-table-column prop="userName" label="姓名">
           </el-table-column>
+          <el-table-column prop="deptName" label="所属机构" width="150">
+          </el-table-column>
           <el-table-column prop="carNumber" label="车险录单">
+            <template slot-scope="scope">
+              <el-tooltip class="item" effect="dark" :content="scope.row.carNumberTime" placement="bottom">
+                  <span >{{ scope.row.carNumber }}</span>
+                </el-tooltip>
+              </template > 
           </el-table-column>
           <el-table-column prop="memberNumber" label="会员分享">
+            <template slot-scope="scope">
+              <el-tooltip class="item" effect="dark" :content="scope.row.memberNumberTime" placement="bottom">
+                  <span >{{ scope.row.memberNumber }}</span>
+                </el-tooltip>
+              </template > 
           </el-table-column>
           <el-table-column prop="managementNumber" label="会员管理">
+            <template slot-scope="scope">
+              <el-tooltip class="item" effect="dark" :content="scope.row.managementNumberTime" placement="bottom">
+                  <span >{{ scope.row.managementNumber }}</span>
+                </el-tooltip>
+              </template > 
           </el-table-column>
           <el-table-column prop="walletNumber" label="钱包">
+            <template slot-scope="scope">
+              <el-tooltip class="item" effect="dark" :content="scope.row.walletNumberTime" placement="bottom">
+                  <span >{{ scope.row.walletNumber }}</span>
+                </el-tooltip>
+              </template > 
           </el-table-column>
           <el-table-column prop="posterNumber" label="海报管理">
+            <template slot-scope="scope">
+              <el-tooltip class="item" effect="dark" :content="scope.row.posterNumberTime" placement="bottom">
+                  <span >{{ scope.row.posterNumber }}</span>
+                </el-tooltip>
+              </template > 
           </el-table-column>
         </el-table>
       </vdr>
+
     </div>
+    <div class="info-window" v-if="deptPeopleVisible">
+        <div class="close flex j-s" style="padding:15px 0" >
+          <el-switch
+          v-model="deptPeopleValue"
+          @change="deptPeopleFun"
+          size="small"
+          active-text="机构树"
+          :disabled="ztreeNodeAll.type==1"
+          inactive-text="人员树">
+        </el-switch>
+        <span class="el-icon-close" style="color: #c3c3c3;cursor: pointer" @click="deptPeopleVisible = false"> </span>
+        </div>
+        <el-tree
+            :data="ztreeNodes"
+            :props="{ children: 'children', label: 'name' }"
+            node-key="id"
+            :default-expanded-keys="['9']"
+            @node-click="onZTreeClick"
+          ></el-tree>
+      </div>
   </div>
 </template>
 
@@ -258,6 +307,12 @@ var myChart;
 export default {
   data() {
     return {
+      deptPeopleVisible:false,
+      deptPeopleType:0,
+      deptPeopleId:'',
+      ztreeNodes:[],
+      ztreeNodeAll:{},
+      deptPeopleValue:true,
       pageNum: 1, //当前页面
       pageSize: 5, //每页显示条数
       totalSum: 0, //全部的数据条数
@@ -333,12 +388,48 @@ export default {
     window.personnelclick = () => {
       this.personnelVisible = true;
     };
+    this.$api.user
+        .getUserDeptTree()
+        .then(res => {
+          if (res.code == 200) {
+            this.ztreeNodes = res.data.deptList;
+            this.ztreeNodeAll = res.data;
+          }
+        });
   },
   destroyed() {
     // 销毁地图,并清空地图容器.该方法执行后,地图对象被注销,内存释放,地图容器被清空。
     this.map.destroy();
   },
   methods: {
+    getUserDeptTreeFun(){
+      this.$api.user
+        .getUserDeptTree()
+        .then(res => {
+          if (res.code == 200) {
+            this.ztreeNodes = res.data.deptList;
+            this.ztreeNodeAll = res.data;
+          }
+        });
+    },
+    deptPeopleFun(val){
+     if(val){
+      this.ztreeNodes = this.ztreeNodeAll.deptList;
+     }
+     else{
+      this.ztreeNodes = this.ztreeNodeAll.userList;
+     }
+    },
+    onZTreeClick: function (evt, treeId, treeNode) {
+      if(this.deptPeopleValue){
+        this.deptPeopleType=1
+      }
+      else{
+        this.deptPeopleType=2
+      }
+      this.deptPeopleId=evt.id
+      this.initMap();
+    },
     operatelRecords(row) {
       this.rowId = this.positionType == 1 ? row.id : row.userId
       this.operatelVisible = true
@@ -495,6 +586,8 @@ export default {
       }
       this.$api.user
         .queryGeographyInfo({
+          queryId: this.deptPeopleId,
+          type: this.deptPeopleType,
           lng: this.position[0], lat: this.position[1], pageSize: 5,
           pageNum: this.personnelPageNum, ...data
         })
@@ -695,7 +788,7 @@ export default {
         });
 
         _this.map.on("complete", () => {
-          _this.$api.user.queryPosition({ source: this.source, ...this.province }).then(res => {
+          _this.$api.user.queryPosition({ source: this.source,queryId: this.deptPeopleId,type: this.deptPeopleType, ...this.province }).then(res => {
             if (res.code == 200) {
               if (res.data.list && res.data.list.length > 0) {
                 // _this.onlineNum = res.data.manNum; //在线人数
@@ -841,6 +934,8 @@ export default {
       }
       let api = this.positionType == 1 ? 'queryGeographyInfo' : 'queryGeographyRecord'
       this.$api.user[api]({
+        queryId: this.deptPeopleId,
+        type: this.deptPeopleType,
         lng: e.target._position[0], lat: e.target._position[1], pageSize: 5,
         pageNum: this.personnelPageNum, ...data
       })
@@ -959,8 +1054,10 @@ export default {
   z-index: 100;
   background-color: white;
   padding: 10px;
-  width: 35vw;
+  width: 22vw;
   box-shadow: 0px 5px 10px #ddd;
+  height: 45vh;
+    overflow-y: auto;
 }
 
 .infohis-window {

+ 17 - 7
src/views/PeopleManage/vdr.vue

@@ -1,14 +1,16 @@
 <template>
-    <vdr :w="operateWidth" :h="operateHight" :x="operateX" :y="operateY" style="z-index:999" class-name="my-class"
+    <vdr :w="operateWidth" :h="operateHight"    :active="true"
+    @resizing="onResize"  :x="operateX" :y="operateY"
+    @dragging="onDrag" style="z-index:999" class-name="my-class"
         class="infohis-window">
         <div class="close flex j-s" style="padding:15px 0" v-if="title">
             <span>{{ title }}</span>
             <div>
-                <span style="color: #c3c3c3;font-size:18px;cursor: pointer" @click="visiblefun"> ×</span>
+                <span class="el-icon-close" style="color: #c3c3c3;cursor: pointer" @click="visiblefun"></span>
                 <span v-if="isOperate==false" style="color: #c3c3c3;font-size:18px;cursor: pointer"
                     @click="operateWidthFun()" class="el-icon-rank"> </span>
                 <span v-else style="color: #c3c3c3;font-size:18px;cursor: pointer"
-                    @click="isOperate=false;operateWidth=width;operateHight=height " class="el-icon-top-left"> </span>
+                    @click="isOperate=false;operateWidth=width;operateHight=height || 'auto'" class="el-icon-top-left"> </span>
             </div>
         </div>
         <slot></slot>
@@ -34,14 +36,22 @@ export default {
     data() {
         return {
             operateWidth: this.width ||600,
-            operateHight: this.height || 290,
-            operateX: 0,
-            operateY: 0,
-            isOperate:false
+            operateHight: this.height || 'auto',
+            isOperate:false,
+            operateX:0,
+            operateY:0,
         };
     },
  
     methods: {
+        onResize(x, y, width, height) {
+            this.operateWidth = Math.min(window.innerWidth - x, width); // 保证宽度不超出容器宽度
+            this.operateHight = Math.min(window.innerHeight - y, height); // 保证宽度不超出容器宽度
+        },
+        onDrag(x, y) {
+            this.operateX = x; // 更新x位置
+            this.operateY = y; // 更新x位置
+        },
         visiblefun() {
             this.$emit("visiblefun")
         },