Просмотр исходного кода

1.人员管理模块调整
2.财务模块费用调整
3.协议模块增加搜索

haizhouwang 2 лет назад
Родитель
Сommit
c03bcf7818

+ 17 - 2
src/components/TemplateTable/index.vue

@@ -1,5 +1,5 @@
 <template>
-  <div>
+  <div ref="commonTable">
     <!-- 搜索栏 -->
     <el-form
       v-if="formList.length > 0"
@@ -7,6 +7,7 @@
       :model="searchDataClone"
       label-width="105px"
       ref="searchDataClone"
+      id="commonTable"
       class="demo-form-inline device-wrapper"
     >
       <el-form-item v-for="f in formList" :key="f.prop" :label="f.label" :prop="f.prop">
@@ -105,6 +106,7 @@
         border
         size="small"
         style="width: 100%" 
+        :height="tableHeight"
         v-loading="tableConfig.loading" 
         element-loading-text="数据加载中" 
         element-loading-spinner="el-icon-loading" 
@@ -168,7 +170,7 @@
 
         </el-table>
       <!-- 分页 -->
-      <div class="block">
+      <div class="block" ref="bottomFixed">
         <el-pagination
             v-if="tableConfig.isPaginationShow && pagination.totalSize"
             style="margin-top: 10px"
@@ -231,6 +233,7 @@ export default {
   },
   data() {
     return {
+      tableHeight:0,
       InsCompanyList:[],
       searchDataClone:{}
     };
@@ -238,6 +241,18 @@ export default {
   created() {
     this.companyFun()
   },
+  mounted() {
+    setTimeout(() => {
+      var divHg =0;
+      if(document.getElementById("commonTable")!=null){
+        divHg = document.getElementById("commonTable").clientHeight
+      }else{
+        divHg = 100
+      }
+      let bottomTop = this.$refs.bottomFixed.offsetTop;
+      this.tableHeight =window.innerHeight - bottomTop - divHg -80 + "px";
+    }, 10);
+  },
   filters: {
         formateDate(val) {
             return formatDateTime(val)

+ 16 - 0
src/http/moudules/user.js

@@ -312,4 +312,20 @@ export const recruitinQqueryType= (params) => {
       method: 'get',
       params
   })
+}
+// 查询渠道管理列表
+export const findUserList = (data) => {
+  return axios({
+    url: '/user/findUserList',
+    method: 'post',
+    data
+  })
+}
+// 渠道数据统计
+export const quTeamNum = (data) => {
+  return axios({
+    url: '/user/quTeamNum',
+    method: 'post',
+    data
+  })
 }

+ 23 - 16
src/views/AgreementManage/CarInsurance/AgreementEntry.vue

@@ -15,13 +15,12 @@
         <!-- 右侧列表页面Start -->
         <SplitArea :size="rightSplitWidth">
           <!-- 工具区域Start -->
-          <el-row style="margin: 0px 20px;">
-            <!-- <kt-button :size="Size" style="color: #409EFF;" icon="el-icon-circle-plus" label="添加" type="text" perms="sys:user:add" @click="handleAdd" /> -->
-            <kt-button style="background-color: #52C578;border:#52C578;margin-left: 15px;" icon="fa fa-plus" label="添加协议"
-              type="primary" perms="sys:dept:add" @click="handleAdd" />
-          </el-row>
-          <el-form class="queryForm" ref="queryFormRef" :model="queryForm" label-width="80px">
-            <el-row style="margin-bottom: 15px;">
+          <el-form class="queryForm" ref="queryFormRef" :model="queryForm" label-width="80px;" style="margin:20px 0">
+            <el-row style="display: flex;align-items: center;" :span="24">
+              <el-col :span="3">
+                <kt-button style="margin-left: 15px; padding:10px;margin:10px 0 10px 30px" icon="fa fa-plus" label="添加协议"
+              type="success" perms="sys:dept:add" @click="handleAdd" />
+            </el-col>
               <el-col :span="8">
                 <el-form-item label="录入时间">
                   <el-date-picker value-format="yyyy-MM-dd" v-model="queryForm.date" style="margin-left: 20px;width:90%" :size="overSize"
@@ -29,19 +28,20 @@
                   </el-date-picker>
                 </el-form-item>
               </el-col>
-              <!-- <el-col :span="4">
-                <el-form-item label="审核状态">
-                  <el-select :size="overSize" v-model="queryForm.status" placeholder="请选择审核状态" clearable
+              <el-col :span="5">
+                <el-form-item label="是否有效">
+                  <el-select :size="overSize" v-model="queryForm.validStatus" placeholder="请选择" clearable
                     style="width: 100%;">
-                    <el-option v-for="item in approvalStatusoptions" :key="item.dictValue" :label="item.dictTag"
-                      :value="item.dictValue"></el-option>
-
+                    <el-option label="有效"
+                      :value="1"></el-option>
+                    <el-option label="无效"
+                      :value="0"></el-option>
                   </el-select>
                 </el-form-item>
-              </el-col> -->
+              </el-col>
               <el-col :span="4" style="display: flex;align-items: center;justify-content: center;">
                 <el-form-item>
-                  <el-button :size="overSize" @click="queryEsmInfo">查询</el-button>
+                  <el-button :size="overSize" icon="el-icon-search" type="primary" style="padding:10px;" @click="queryEsmInfo">查询</el-button>
                 </el-form-item>
               </el-col>
             </el-row>
@@ -64,6 +64,11 @@
               :formatter="agreestatusFormatter"></el-table-column>
             <el-table-column prop="updateTime" label="修改时间" align="center" width="130"
               :formatter="updatetimeFormatter"></el-table-column>
+            <el-table-column prop="validStatus" label="是否有效" align="center" width="80">
+              <template slot-scope="scope">
+                <span :size="overSize" type="primary" @click="uplatequery(scope.$index, scope.row)">{{scope.row.validStatus==1?'有效':'无效'}}</span>
+              </template>
+            </el-table-column>
             <el-table-column prop="modifiedBy" label="修改人" align="center" width="130"></el-table-column>
             <el-table-column label="操作" align="center" width="200" fixed="right">
               <template slot-scope="scope">
@@ -992,6 +997,7 @@ export default {
         status: "1",
         startDate:'',//开始时间
         endDate:'',//结束时间
+        validStatus:''
       },
       containsSubChecked: true,
       pageResult: [],
@@ -1275,7 +1281,6 @@ export default {
 
     })
     this.defaultattributionform = JSON.parse(JSON.stringify(this.attributionform))
-    console.log(this.approvalStatusoptions)
   },
   mounted() {
     this.labelWidth='auto';
@@ -2205,6 +2210,7 @@ export default {
         companiesType: this.supplierType,
         startDate: this.queryForm.startDate,
         endDate: this.queryForm.endDate,
+        validStatus:this.queryForm.validStatus
         // auditStatus:this.queryForm.status
       }
       this.$api.insCompany.agreementPage(parmas).then(res => {
@@ -2525,6 +2531,7 @@ export default {
 
 .queryForm .el-form-item {
   margin-bottom: 0px;
+  display: flex;
 }
 
 .products {

+ 6 - 12
src/views/FinancialManagement/ExpenseManagement/ExpenseApplyFor.vue

@@ -55,12 +55,6 @@
             placeholder="选择日期"
           >
           </el-date-picker>
-          <!-- <el-input
-            v-model="queryFrom.applyTime"
-            placeholder="请输入申请部门"
-            class="widths"
-            clearable
-          ></el-input> -->
         </el-form-item>
         <el-form-item>
           <el-button type="primary" size="small" @click="queryStaffInfo"
@@ -249,6 +243,7 @@
                     children: 'child',
                     label: 'category',
                     value: 'category',
+                    checkStrictly:true
                   }"
                 ></el-cascader>
               </td>
@@ -714,12 +709,11 @@ export default {
     //获取资金用途树数据
     getTreeList() {
       this.$api.expense.getAccountExpensesTreeList().then((res) => {
-        let arr = res.data;
-        res.data.forEach((item) => {
-          item.child.forEach((childItem) => {
-            delete childItem.child;
-          });
-        });
+        // res.data.forEach((item) => {
+        //   item.child.forEach((childItem) => {
+            
+        //   });
+        // });
         this.fundFlowData = res.data;
       });
     },

+ 23 - 32
src/views/FinancialManagement/ExpenseManagement/ExpenseMessage.vue

@@ -13,14 +13,20 @@
 
     <!-- 表格 -->
     <el-table
+    class="expendtable"
+      :stripe="true"
+      default-expand-all
+      :header-cell-style="{
+        background: '#F2F7FC',
+        fontWeight: '900',
+        color: '#606266',
+      }"
       :data="tableData"
       style="width: 100%; margin-bottom: 20px; margin-top: 30px"
       row-key="expensesId"
       border
-      default-expand-all
       :tree-props="{ children: 'child', hasChildren: 'hasChildren' }"
     >
-      <!-- <el-table-column type="index" align="center" label="序号" width="50"> </el-table-column> -->
       <el-table-column prop="category" align="center" label="类目">
       </el-table-column>
       <el-table-column prop="remark" align="center" label="备注">
@@ -47,27 +53,6 @@
         </template>
       </el-table-column>
     </el-table>
-    <!-- <kt-common-table
-      :operationWidth="operationWidth"
-      class="ktTable"
-      permsEdit="sys:agent:view"
-      ref="dataTable"
-      :data="pageResult"
-      :columns="columns"
-      :showBatchDelete="false"
-      :showOperation="true"
-      editButtonName="编辑"
-      :button3Name="button3Name"
-      :button2Name="button2Name"
-      :button3Background="button3Background"
-      :button2Background="button2Background"
-      @handleButton3="handleTableDelete"
-      @handleButton2="addHandeFn"
-      @findPage="findPage"
-      @handleEdit="handleTableEdit"
-      :isshowpagination="true"
-    ></kt-common-table> -->
-
     <!-- 新增弹出框 -->
     <el-dialog
       class="dialog"
@@ -156,11 +141,11 @@ export default {
     };
   },
   watch: {
-    dialogFormVisible(n){
-      if(!n){
+    dialogFormVisible(n) {
+      if (!n) {
         this.handleClose();
       }
-    }
+    },
   },
   methods: {
     //删除
@@ -202,8 +187,8 @@ export default {
     },
     //弹框取消
     handleClose() {
-      this.formDataId=""; //编辑id
-      this.parentId=""; //新建子类父id
+      this.formDataId = ""; //编辑id
+      this.parentId = ""; //新建子类父id
       this.dialogFormVisible = false;
       this.$refs.formData.resetFields();
     },
@@ -236,8 +221,9 @@ export default {
       }
       this.$refs[formData].validate((valid) => {
         if (valid) {
-          if (this.formDataId) {//修改
-            this.$api.expense.updateAccountExpenses(params).then(res=>{
+          if (this.formDataId) {
+            //修改
+            this.$api.expense.updateAccountExpenses(params).then((res) => {
               if (res.code == 200) {
                 this.$message({
                   message: "添加成功",
@@ -251,8 +237,9 @@ export default {
               }
               this.dialogFormVisible = false;
               this.findPage();
-            })
-          }else{//新增
+            });
+          } else {
+            //新增
             this.$api.expense.insertAccountExpenses(params).then((res) => {
               if (res.code == 200) {
                 this.$message({
@@ -359,5 +346,9 @@ export default {
 .frame >>> .el-date-editor {
   width: 100%;
 }
+.expendtable >>> .el-table__body-wrapper{
+  overflow-y: auto;
+  height: 600px;
+}
 </style>
   

+ 18 - 0
src/views/PeopleManage/Agent/AgentExamine.vue

@@ -717,8 +717,26 @@ export default {
     },
     findLeftTreeData: function () {
       this.$api.dept.findDeptTree().then((res) => {
+        this.treeDataRecursion(res.data, 2);
         this.ztreeNodes = res.data;
       });
+    },
+     //树过滤五级机构递归
+     treeDataRecursion(data, num, one) {
+      data = data || this.ztreeNodes;
+      one = one || 0;
+      one++;
+      for (let i = 0; i < data.length; i++) {
+        if (data[i].comlevel == 5 && data[i].managementSource != num) {
+          data.splice(i, 1);
+          i = i - 1;
+        } else if (one > 5 && data[i].comlevel == null) {
+          data.splice(i, 1);
+          i = i - 1;
+        } else {
+          this.treeDataRecursion(data[i].children, num, one);
+        }
+      }
     },
     onZTreeClick: function (evt, treeId, treeNode) {
       // 点击事件

Разница между файлами не показана из-за своего большого размера
+ 433 - 213
src/views/PeopleManage/Agent/AgentManage.vue


+ 436 - 0
src/views/PeopleManage/Player/PerformanceManage.vue

@@ -0,0 +1,436 @@
+<template>
+  <!--布局容器-->
+  <div class="container" style="width: 99%; margin-top: 0px">
+    <!-- 顶部查询 -->
+    <el-row class="top">
+      <el-form
+        v-model="pageRequest"
+        size="small"
+        label-width="95px"
+        class="form"
+      >
+        <el-form-item label="团队用户" label-width="95px" prop="revenueOutlay">
+          <el-select
+            v-model="pageRequest.teamOrUserFlag"
+            placeholder="请选择团队或用户查询"
+          >
+            <el-option label="团队" value="1"></el-option>
+            <el-option label="用户" value="2"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item
+          v-show="pageRequest.teamOrUserFlag == 1"
+          label="部门名称"
+          label-width="95px"
+          prop="deptName"
+        >
+          <el-input
+            v-model="pageRequest.deptName"
+            placeholder="请输入部门名称"
+            class="widths"
+            clearable
+          ></el-input>
+        </el-form-item>
+        <el-form-item
+          v-show="pageRequest.teamOrUserFlag == 2"
+          label="用户名称"
+          label-width="95px"
+          prop="applySector"
+        >
+          <el-input
+            v-model="pageRequest.userName"
+            placeholder="请输入用户名称"
+            class="widths"
+            clearable
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="日期区间" label-width="95px" prop="applyTime">
+          <el-date-picker
+            v-model="pageRequest.date"
+            type="daterange"
+            range-separator="至"
+            value-format="yyyy-MM-dd"
+            start-placeholder="开始日期"
+            end-placeholder="结束日期"
+            @change="dateChange"
+          >
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" size="small" @click="queryStaffInfo"
+            >查询</el-button
+          >
+        </el-form-item>
+      </el-form>
+    </el-row>
+    <!-- 表格 -->
+    <kt-common-table
+      v-loading="loading"
+      element-loading-text="拼命加载中..."
+      element-loading-spinner="el-icon-loading"
+      :operationWidth="operationWidth"
+      class="ktTable"
+      permsEdit="sys:agent:view"
+      ref="dataTable"
+      :data="pageResult"
+      :columns="columns"
+      :showBatchDelete="false"
+      :showOperation="showOperation"
+      editButtonName="详情"
+      @findPage="findPage"
+      :isshowpagination="true"
+      @handleEdit="handleDetail"
+    ></kt-common-table>
+    <el-dialog
+      class="dialog detailtTable"
+      :title="title"
+      :close-on-click-modal="false"
+      :before-close="resetForm"
+      :visible.sync="detailDialog"
+      width="60%"
+    >
+      <div class="dialog-body">
+        <el-table
+          v-loading="loading"
+          element-loading-text="拼命加载中..."
+          element-loading-spinner="el-icon-loading"
+          :data="detailData"
+          :stripe="true"
+          style="
+            width: 100%;
+          "
+          row-key=""
+          border
+          default-expand-all
+          :header-cell-style="{
+            background: '#F2F7FC',
+            fontWeight: '900',
+            color: '#606266',
+          }"
+        >
+          <el-table-column type="index" label="序号" align="center" width="50">
+          </el-table-column>
+          <el-table-column
+            v-for="(item, index) in detailColumns"
+            :key="index"
+            :min-width="item.minWidth"
+            :prop="item.prop"
+            align="center"
+            :label="item.label"
+          >
+          </el-table-column>
+        </el-table>
+      </div>
+      <div slot="footer" class="dialog-footer">
+        <div class="bottomFixed" style="padding-bottom: 50px;" ref="bottomFixed">
+          <el-pagination
+            @size-change="handleSizeChange"
+            layout="total, sizes, prev, pager, next, jumper"
+            @current-change="refreshPageRequest"
+            :current-page="detailParams.pageNo"
+            :page-size="detailParams.pageSize"
+            :page-sizes="[10, 20, 50, 100, 200, 300, 400, 500]"
+            :total="detailParams.totalSize"
+            style="float: left; margin-left: 20px"
+          >
+          </el-pagination>
+        </div>
+        <el-button @click="resetForm" size="small">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+      <script>
+import KtCommonTable from "@/views/Core/KtCommonTable.vue"; //表格组件
+import KtButton from "@/views/Core/KtButton"; // 按钮权限组件
+import CommonUtil from "@/utils/comutil.js";
+
+export default {
+  name: "InvoiceInformation",
+  components: { KtCommonTable, KtButton },
+  created() {},
+  mounted() {},
+  data() {
+    return {
+      title: "详情",
+      loading: true,
+      detailDialog: false,
+      showOperation:true,
+      operationWidth: 100, //操作列宽度
+      queryFrom: {
+        //查询条件
+      },
+      pageResult: {}, //表格参数
+      pageRequest: {
+        // 列表查询条件
+        pageNo: 1,
+        pageSize: 10,
+        teamOrUserFlag: "1", //团队还是人员 1是团队 2是人员
+        deptName: "", //部门名称
+        userName: "", //人员名称
+        date: [], //日期区间数组
+        createTimeStart: "", //日期开始时间
+        createTimeEnd: "", //日期结束时间
+      },
+      columns: [
+        { prop: "deptName", label: "部门名称", type: "text" },
+        { prop: "quoteNum", label: "报价次数", type: "text" },
+        { prop: "submitNum", label: "提交核保次数", type: "text" },
+        { prop: "hasInsuredNum", label: "已承保数量", type: "text" },
+        { prop: "syPremiumSum", label: "商业保费", type: "text" },
+        { prop: "taxaMountSum", label: "车船税", type: "text" },
+        { prop: "jqPremiumSum", label: "交强险费用", type: "text" },
+        {
+          prop: "totalSumpremium",
+          label: "总承保保费总数",
+          type: "text",
+        },
+      ],
+      detailData: [],
+      detailParams: {
+        pageNo: 1,
+        pageSize: 10,
+        teamOrUserFlag: "2",
+      },
+      detailColumns: [
+        {
+          prop: "userName",
+          label: "成员名称",
+          type: "text",
+          minWidth: "100",
+        },
+        {
+          prop: "quoteNum",
+          label: "报价次数",
+          type: "text",
+          minWidth: "100",
+          minWidth: "100",
+        },
+        {
+          prop: "submitNum",
+          label: "提交核保次数",
+          type: "text",
+          minWidth: "100",
+        },
+        {
+          prop: "hasInsuredNum",
+          label: "已承保数量",
+          type: "text",
+          minWidth: "100",
+        },
+        {
+          prop: "syPremiumSum",
+          label: "商业保费",
+          type: "text",
+          minWidth: "100",
+        },
+        { prop: "taxaMountSum", label: "车船税", type: "text" },
+        {
+          prop: "jqPremiumSum",
+          label: "交强险费用",
+          type: "text",
+          minWidth: "100",
+        },
+        {
+          prop: "totalSumpremium",
+          label: "总承保保费总数",
+          type: "text",
+          minWidth: "120",
+        },
+      ],
+    };
+  },
+  methods: {
+    //选择时间区间
+    dateChange(e) {
+      if (e == null) {
+        this.pageRequest.createTimeStart = "";
+        this.pageRequest.createTimeEnd = "";
+      } else {
+        this.pageRequest.createTimeStart = e[0];
+        this.pageRequest.createTimeEnd = e[1];
+      }
+    },
+    // 换页刷新
+    refreshPageRequest: function (pageNum) {
+      this.detailParams.pageNo = pageNum;
+      this.getDetailData();
+    },
+    // 每页条数发生改变
+    handleSizeChange(pageSize) {
+      this.detailParams.pageSize = pageSize;
+      this.getDetailData();
+    },
+    //取消隐藏弹框
+    resetForm() {
+      this.detailDialog = false;
+      detailParams.pageNo = 1;
+      detailParams.pageSize = 10;
+    },
+    //查看详情
+    handleDetail(index) {
+      let row = index.row;
+      this.detailParams.deptId = row.deptId;
+      this.detailParams.deptName = row.deptName;
+      this.getDetailData();
+      this.detailDialog = true;
+      
+    },
+    // 详情接口
+    getDetailData() {
+      this.loading = true;
+      let obj = JSON.parse(JSON.stringify(this.detailParams));
+      this.$api.user.quTeamNum(obj).then((res) => {
+        if (res.code == 200) {
+          this.detailData = res.data.records;
+          this.detailParams.pageNo = res.data.current;
+          this.detailParams.pageSize = res.data.size;
+          this.detailParams.totalPages = res.data.pages;
+          this.detailParams.totalSize = res.data.total;
+          this.loading = false;
+        } else {
+          this.$message.error(res.msg);
+        }
+      });
+    },
+    //获取页面数据
+    findPage(data) {
+      this.loading = true;
+      if (data && data.pageRequest) {
+        this.pageRequest.pageNo = data.pageRequest.pageNum;
+        this.pageRequest.pageSize = data.pageRequest.pageSize;
+      }
+      this.$api.user
+        .quTeamNum(this.pageRequest)
+        .then((res) => {
+          if (res.code == 200) {
+            this.pageResult = {
+              content: res.data.records,
+              pageNum: res.data.current,
+              pageSize: res.data.size,
+              totalPages: res.data.pages,
+              totalSize: res.data.total,
+            };
+            this.loading = false;
+          } else {
+            this.$message.error(res.msg);
+          }
+        })
+        .then(data != null ? data.callback : "");
+    },
+    // 查询
+    queryStaffInfo() {
+      if (this.pageRequest.teamOrUserFlag == 1) {
+        this.$set(this.columns, 0, {
+          prop: "deptName",
+          label: "部门名称",
+          type: "text",
+        });
+        this.showOperation = true;
+        this.pageRequest.userName = "";
+      } else {
+        this.$set(this.columns, 0, {
+          prop: "userName",
+          label: "成员名称",
+          type: "text",
+        });
+        this.pageRequest.deptName = "";
+        this.showOperation = false;
+      }
+      this.pageRequest.pageNo = 1;
+      this.pageRequest.pageSize = 10;
+      this.findPage();
+    },
+  },
+};
+</script>
+      
+<style scoped>
+.operation {
+  margin-left: 14px !important;
+  margin-top: 15px !important ;
+}
+.form {
+  display: flex;
+  margin-top: 14px;
+  align-items: center;
+  margin-left: -12px;
+  margin-bottom: 20px;
+}
+.el-pagination {
+  font-weight: normal;
+}
+.el-card__body {
+  padding: 12px !important;
+}
+.footer .footerdiv {
+  display: flex;
+  align-items: center;
+}
+.container .el-form-item {
+  margin-bottom: -14px !important;
+}
+.form .el-form-item__label {
+  font-size: 15px !important;
+  font-weight: 600 !important;
+}
+
+.ktTable {
+  margin-top: 20px;
+}
+.el-row {
+  margin-top: 18px;
+}
+.top {
+  margin-top: 0px;
+}
+
+.el-date-editor--daterange.el-input__inner {
+  width: 300px;
+}
+/deep/ .el-select--small {
+  width: 100%;
+}
+.frame {
+  width: 100%;
+  background-color: #fff;
+  padding: 20px;
+  -webkit-box-sizing: border-box;
+  box-sizing: border-box;
+  margin-bottom: 15px;
+  border-radius: 6px;
+  border: 1px solid #ebeef5;
+  -webkit-transition: all 0.2s ease-in-out;
+  transition: all 0.2s ease-in-out;
+  -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+  box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+}
+/deep/ .el-dialog__body {
+  height: 550px;
+}
+.addremove-box {
+  width: 100%;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  font-size: 25px;
+  margin-top: 10px;
+}
+.addremove-box > i {
+  cursor: pointer;
+}
+.frame >>> .el-date-editor {
+  width: 100%;
+}
+.detailtTable >>> .bottomFixed {
+  position: relative !important;
+}
+.detailtTable >>> .el-table__body-wrapper{
+    overflow-y: auto;
+    height: 500px;
+}
+.detailtTable >>> .el-dialog{
+    margin-top: 10vh !important;
+}
+</style>
+      

+ 563 - 447
src/views/PeopleManage/Player/PlayerManage.vue

@@ -1,480 +1,596 @@
 <template>
-    <div>
-      <el-main ref="elMain" style="padding: 0px">
-        <Split :gutterSize="2" style="height: calc(100vh - 120px)">
-          <!-- 左侧树Start -->
-          <SplitArea :size="leftSplitWidth" :minSize="240">
+  <div>
+    <el-main ref="elMain" style="padding: 0px">
+      <Split :gutterSize="2" style="height: calc(100vh - 120px)">
+        <!-- 左侧树Start -->
+        <SplitArea :size="leftSplitWidth" :minSize="240">
+          <div>
             <div>
-              <div>
-                <kt-button style="
-                    background-color: #ffc000;
-                    border: #ffc000;
-                  " icon="fa fa-plus" label="添加人员" type="primary" perms="sys:agent:add" @click="handleAddButton" />
-              </div>
-              <el-divider></el-divider>
-              <!-- 左侧树形结构 -->
-              <el-tree :data="ztreeNodes" :props="{ children: 'children', label: 'name' }" node-key="id"
-                :default-expanded-keys="['9']" @node-click="onZTreeClick"></el-tree>
+              <kt-button
+                style="background-color: #ffc000; border: #ffc000"
+                icon="fa fa-plus"
+                label="添加人员"
+                type="primary"
+                perms="sys:agent:add"
+                @click="handleAddButton"
+              />
             </div>
-          </SplitArea>
-          <!-- 左侧树End -->
-  
-          <!-- 右侧列表页面Start -->
-          <SplitArea :size="rightSplitWidth">
-            <templateTable :formList="formList" :searchData.sync="queryFrom" :tableConfig="tableConfig"
-              :data="pageResult" @getList="findPage" @handleSearchList="handleSearchList" :pagination="pageData">
-            </templateTable>
-          </SplitArea>
-          <!-- 右侧列表页面End -->
-        </Split>
-      </el-main>
-  
-      <!-- 新增修改界面 -->
-      <el-dialog :title="dialogTitle" width="60%" :visible.sync="dialogVisible" :close-on-click-modal="false"
-        :before-close="handleDialogBefore" @close="closeDialog" v-dialogDrag>
-        <el-tabs v-model="activeName">
-          <el-tab-pane label="基本信息" name="1">
-            <el-form :model="formData" :rules="formDataRules" ref="formData" :inline="true" label-width="130px" size="small">
-              <el-row>
-                <el-col :span="8">
-                  <el-form-item label="机构名称" prop="deptId">
-                    <el-cascader style="width:200px" :options="ztreeNodes" v-model="formData.deptId" clearable
+            <el-divider></el-divider>
+            <!-- 左侧树形结构 -->
+            <el-tree
+              :data="ztreeNodes"
+              :props="{ children: 'children', label: 'name' }"
+              node-key="id"
+              :default-expanded-keys="['9']"
+              @node-click="onZTreeClick"
+            ></el-tree>
+          </div>
+        </SplitArea>
+        <!-- 左侧树End -->
+
+        <!-- 右侧列表页面Start -->
+        <SplitArea :size="rightSplitWidth">
+          <templateTable
+            :formList="formList"
+            :searchData.sync="queryFrom"
+            :tableConfig="tableConfig"
+            :data="pageResult"
+            @getList="findPage"
+            @handleSearchList="handleSearchList"
+            :pagination="pageData"
+          >
+          </templateTable>
+        </SplitArea>
+        <!-- 右侧列表页面End -->
+      </Split>
+    </el-main>
+
+    <!-- 新增修改界面 -->
+    <el-dialog
+      :title="dialogTitle"
+      width="60%"
+      :visible.sync="dialogVisible"
+      :close-on-click-modal="false"
+      :before-close="handleDialogBefore"
+      @close="closeDialog"
+      v-dialogDrag
+    >
+      <el-tabs v-model="activeName">
+        <el-tab-pane label="基本信息" name="1">
+          <el-form
+            :model="formData"
+            :rules="formDataRules"
+            ref="formData"
+            :inline="true"
+            label-width="130px"
+            size="small"
+          >
+            <el-row>
+              <el-col :span="8">
+                <el-form-item label="机构名称" prop="deptId">
+                  <el-cascader
+                    style="width: 200px"
+                    :options="ztreeNodes"
+                    v-model="formData.deptId"
+                    clearable
                     :disabled="dialogTitle == '编辑渠道信息'"
-                      :show-all-levels="false" :props="{
-                        value: 'id',
-                        label: 'name',
-                        checkStrictly: true,
-                      }" @change="handleChange">
-                    </el-cascader>
-                  </el-form-item></el-col>
-                <el-col :span="8">
-                  <el-form-item label="员工工号" prop="id">
-                    <el-input v-model="formData.id" disabled></el-input>
-                  </el-form-item>
-                </el-col>
-                <el-col :span="8">
-                  <el-form-item label="手机号" prop="mobile">
-                    <el-input v-model="formData.mobile"></el-input>
-                  </el-form-item>
-                </el-col>
-                <el-col :span="8">
-                  <el-form-item label="名称" prop="name">
-                    <el-input v-model="formData.name"></el-input>
-                  </el-form-item>
-                </el-col>
-                <el-col :span="8">
-                  <el-form-item  v-if="dialogPassword" label="密码" prop="word">
-                    <el-input  v-model="formData.password" :class="isShow==true?'disc':'none'" ></el-input>
-                    <i class="el-icon-view icon" @click="isShowFun()"></i>
-                    <!-- <el-input style="width:200px"  v-model="formData.password" autocomplete="new-password"
+                    :show-all-levels="false"
+                    :props="{
+                      value: 'id',
+                      label: 'name',
+                      checkStrictly: true,
+                    }"
+                    @change="handleChange"
+                  >
+                  </el-cascader> </el-form-item
+              ></el-col>
+              <el-col :span="8">
+                <el-form-item label="员工工号" prop="id">
+                  <el-input v-model="formData.id" disabled></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="手机号" prop="mobile">
+                  <el-input v-model="formData.mobile"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="名称" prop="name">
+                  <el-input v-model="formData.name"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item v-if="dialogPassword" label="密码" prop="word">
+                  <el-input
+                    v-model="formData.password"
+                    :class="isShow == true ? 'disc' : 'none'"
+                  ></el-input>
+                  <i class="el-icon-view icon" @click="isShowFun()"></i>
+                  <!-- <el-input style="width:200px"  v-model="formData.password" autocomplete="new-password"
                       show-password></el-input> -->
-                      
-                  </el-form-item>
-                </el-col>
-               
-                <el-col :span="8">
-                  <el-form-item label="状态" prop="status">
-                    <el-select :disabled="dialogTitle == '新增渠道信息'"  style="width:200px" v-model="formData.status" placeholder="请选择">
-                      <el-option v-for="val in user_statusoptions" :label="val.label" :value="val.value"
-                        :key="val.id"></el-option>
-                    </el-select>
-                  </el-form-item>
-                </el-col>
-                <el-col :span="8">
-                  <el-form-item label="角色" prop="roleId">
-                    <el-select style="width:200px" v-model="formData.roleId" placeholder="请选择" disabled>
-                      <el-option v-for="val in roles" :label="val.name" :value="val.id + ''" :key="val.id"></el-option>
-                    </el-select>
-                  </el-form-item>
-                </el-col>
-                <el-col :span="8">
-                  <el-form-item label="业务员" prop="referrerId">
-                    <el-select style="width:200px" v-model="formData.referrerId" placeholder="请选择">
-                      <el-option v-for="val in recommenderOptions" :label="val.name" :value="val.id"
-                        :key="val.id"></el-option>
-                    </el-select>
-                  </el-form-item>
-                </el-col>
-                <el-col :span="8">
-                  <el-form-item label="业务员工号" prop="referrerName">
-                    <el-input  v-model="formData.referrerId" disabled></el-input>
-                  </el-form-item>
-                </el-col>
-              </el-row>
-            </el-form>
-            <div style="text-align: right;">
-                <el-button size="small" type="primary" style="background-color: #ffc000; border: 1px solid #ffc000" @click="closeDialog">取消</el-button>
-                <el-button size="small" type="primary" @click="submitForm">提交</el-button>
-            </div>
-          </el-tab-pane>
-        </el-tabs>
-  
-      </el-dialog>
-  
-    </div>
-  </template>
+                </el-form-item>
+              </el-col>
+
+              <el-col :span="8">
+                <el-form-item label="状态" prop="status">
+                  <el-select
+                    :disabled="dialogTitle == '新增渠道信息'"
+                    style="width: 200px"
+                    v-model="formData.status"
+                    placeholder="请选择"
+                  >
+                    <el-option
+                      v-for="val in user_statusoptions"
+                      :label="val.label"
+                      :value="val.value"
+                      :key="val.id"
+                    ></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="角色" prop="roleId">
+                  <el-select
+                    style="width: 200px"
+                    v-model="formData.roleId"
+                    placeholder="请选择"
+                    disabled
+                  >
+                    <el-option
+                      v-for="val in roles"
+                      :label="val.name"
+                      :value="val.id + ''"
+                      :key="val.id"
+                    ></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="业务员" prop="referrerId">
+                  <el-select
+                    style="width: 200px"
+                    v-model="formData.referrerId"
+                    placeholder="请选择"
+                  >
+                    <el-option
+                      v-for="val in recommenderOptions"
+                      :label="val.name"
+                      :value="val.id"
+                      :key="val.id"
+                    ></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
+                <el-form-item label="业务员工号" prop="referrerName">
+                  <el-input v-model="formData.referrerId" disabled></el-input>
+                </el-form-item>
+              </el-col>
+            </el-row>
+          </el-form>
+          <div style="text-align: right">
+            <el-button
+              size="small"
+              type="primary"
+              style="background-color: #ffc000; border: 1px solid #ffc000"
+              @click="closeDialog"
+              >取消</el-button
+            >
+            <el-button size="small" type="primary" @click="submitForm"
+              >提交</el-button
+            >
+          </div>
+        </el-tab-pane>
+      </el-tabs>
+    </el-dialog>
+  </div>
+</template>
   
   <script>
-  import KtButton from "@/views/Core/KtButton"; // 按钮权限组件
-  import tree from "@/components/ztree.vue"; // 机构树组件
-  import templateTable from '../../../components/TemplateTable/index.vue'
-  import peopleImage from '@/components/PeopleImage/index.vue'
-  export default {
-    components: {
-      KtButton,
-      tree,
-      templateTable,
-      peopleImage
-    },
-    data() {
-      return {
-        activeName: '1', //弹框tab索引
-        isShow:true, //密码是否显示 
-        formList: [ //树右侧搜索数据列
-          {
-            label: "工号",
-            prop: "userId",
-            type: 'input'
-          },
+import KtButton from "@/views/Core/KtButton"; // 按钮权限组件
+import tree from "@/components/ztree.vue"; // 机构树组件
+import templateTable from "../../../components/TemplateTable/index.vue";
+import peopleImage from "@/components/PeopleImage/index.vue";
+export default {
+  components: {
+    KtButton,
+    tree,
+    templateTable,
+    peopleImage,
+  },
+  data() {
+    return {
+      activeName: "1", //弹框tab索引
+      isShow: true, //密码是否显示
+      formList: [
+        //树右侧搜索数据列
+        {
+          label: "工号",
+          prop: "userId",
+          type: "input",
+        },
+        {
+          label: "姓名",
+          prop: "name",
+          type: "input",
+        },
+        {
+          label: "手机号",
+          prop: "mobile",
+          type: "input",
+        },
+        {
+          label: "状态",
+          prop: "status",
+          type: "select",
+          options: JSON.parse(localStorage.getItem("user_statusoptions")),
+        },
+        {
+          label: "角色",
+          prop: "roleId",
+          type: "select",
+          options: [
+            { label: "出单员", value: "19" },
+            { label: "团队长", value: "21" },
+          ],
+        },
+      ],
+      tableConfig: {
+        columns: [
+          // 数据列
+          { prop: "deptId", label: "部门编码", type: "text" },
           {
-            label: "姓名",
-            prop: "name",
-            type: 'input'
+            prop: "pdeptName",
+            label: "机构名称",
+            type: "text",
           },
+          { prop: "deptName", label: "部门名称", type: "text" },
+
+          { prop: "userId", label: "工号", type: "text" },
+          { prop: "name", label: "姓名", type: "text" },
+          { prop: "mobile", label: "联系电话", type: "text" },
           {
-            label: "手机号",
-            prop: "mobile",
-            type: 'input'
+            prop: "roleId",
+            label: "角色",
+            type: "text",
           },
           {
-            label: "状态",
             prop: "status",
-            type: "select",
-            options: JSON.parse(localStorage.getItem('user_statusoptions'))
+            label: "状态",
+            type: "text",
           },
-          // {
-          //   label: "角色",
-          //   prop: "roleId",
-          //   type: "select",
-          //   options: [{label: "出单员", value: "1"},{label: "团队长", value: "2"}]
-          // },
         ],
-        tableConfig: {
-          columns: [
-            // 数据列
-            { prop: "deptId", label: "部门编码", type: 'text' },
-            {
-              prop: "pdeptName",
-              label: "机构名称", type: 'text',
-            },
-            { prop: "deptName", label: "部门名称", type: 'text', },
-  
-            { prop: "userId", label: "工号", type: 'text', },
-            { prop: "name", label: "姓名", type: 'text', },
-            { prop: "mobile", label: "联系电话", type: 'text', },
-            {
-              prop: "roleId",
-              label: "角色", type: 'text',
-            },
-            {
-              prop: "status",
-              label: "状态", type: 'text',
-            },],
-          loading: true,
-          isPaginationShow: true,
-          isShowIndex: true,
-          optBtns: [
-            {
-              type: 'primary',
-              label: '编辑',
-              icon: "fa fa-edit",
-              click: (row, index) => { return this.handleTableEdit(row) },
-            }
-          ]
-        },
-        recommenderOptions: [],
-        pageData: {
-          pageNum: 1,
-          pageSize: 10,
-          totalSize: 0
-        },
-        deptId: JSON.parse(localStorage.getItem('user_data')).deptId,
-        formData: {
-          roleId: '19',
-        },
-        formDataRules: {
-          deptId: [{ required: true, message: "请选择机构", trigger: "change" }],
-          mobile: [
-            { required: true, message: "请输入手机号", trigger: "blur" },
-            { min: 11, max: 11, message: "请输入11位手机号码", trigger: "blur" },
-            {
-              pattern:
-                /^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\d{8}$/,
-              message: "请输入正确的手机号",
-              trigger: "blur",
+        loading: true,
+        isPaginationShow: true,
+        isShowIndex: true,
+        optBtns: [
+          {
+            type: "primary",
+            label: "编辑",
+            icon: "fa fa-edit",
+            click: (row, index) => {
+              return this.handleTableEdit(row);
             },
-          ],
-          name: [{ required: true, message: "请填写名称", trigger: "blur" }],
-          // password: [{ required: true, message: "请填写密码", trigger: "blur" }],
-          status: [{ required: true, message: "请选择状态", trigger: "change" }],
-          // roleId: [{ required: true, message: "请填写角色", trigger: "blur" }],
-          referrerId:[{ required: true, message: "请选择业务员", trigger: "change" }],
-        },
-        filterObject: {},
-        peopleid: "",
-        peopledeptid: "",
-        /**Split 开始 */
-        leftSplitWidth: 20,
-        rightSplitWidth: 80,
-        ztreeObj: null,
-        ztreeSetting: {
-          check: {
-            enable: false,
           },
-          data: {
-            simpleData: {
-              enable: true,
-              pIdKey: "parentId",
-            },
+        ],
+      },
+      recommenderOptions: [],
+      pageData: {
+        pageNum: 1,
+        pageSize: 10,
+      },
+      deptId: JSON.parse(localStorage.getItem("user_data")).deptId,
+      formData: {
+        roleId: "19",
+      },
+      formDataRules: {
+        deptId: [{ required: true, message: "请选择机构", trigger: "change" }],
+        mobile: [
+          { required: true, message: "请输入手机号", trigger: "blur" },
+          { min: 11, max: 11, message: "请输入11位手机号码", trigger: "blur" },
+          {
+            pattern:
+              /^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\d{8}$/,
+            message: "请输入正确的手机号",
+            trigger: "blur",
           },
-          view: {
-            showIcon: false,
+        ],
+        name: [{ required: true, message: "请填写名称", trigger: "blur" }],
+        // password: [{ required: true, message: "请填写密码", trigger: "blur" }],
+        status: [{ required: true, message: "请选择状态", trigger: "change" }],
+        // roleId: [{ required: true, message: "请填写角色", trigger: "blur" }],
+        referrerId: [
+          { required: true, message: "请选择业务员", trigger: "change" },
+        ],
+      },
+      filterObject: {},
+      peopleid: "",
+      peopledeptid: "",
+      /**Split 开始 */
+      leftSplitWidth: 20,
+      rightSplitWidth: 80,
+      ztreeObj: null,
+      ztreeSetting: {
+        check: {
+          enable: false,
+        },
+        data: {
+          simpleData: {
+            enable: true,
+            pIdKey: "parentId",
           },
         },
-        ztreeNodes: [],
-        currentTreeNode: null,
-        queryFrom: {},// 右侧列表查询数据Start
-        pageResult: [],
-        containsSubDeptChecked: true, //是否包含下级机构
-        dialogTitle: "", //弹框title
-        dialogVisible: false, // 新增编辑界面是否显示
-        user_statusoptions: JSON.parse(localStorage.getItem('user_statusoptions')),
-        roles: JSON.parse(localStorage.getItem('find_all')),
-        option: [], //机构列表
-        dialogPassword:true, //密码是否显示
-      };
-    },
-    created() {
-      this.findLeftTreeData(); // 获取机构树的数据
-      this.findPage()
+        view: {
+          showIcon: false,
+        },
+      },
+      ztreeNodes: [],
+      currentTreeNode: null,
+      queryFrom: {}, // 右侧列表查询数据Start
+      pageResult: [],
+      containsSubDeptChecked: true, //是否包含下级机构
+      dialogTitle: "", //弹框title
+      dialogVisible: false, // 新增编辑界面是否显示
+      user_statusoptions: JSON.parse(
+        localStorage.getItem("user_statusoptions")
+      ),
+      roles: JSON.parse(localStorage.getItem("find_all")),
+      option: [], //机构列表
+      dialogPassword: true, //密码是否显示
+    };
+  },
+  created() {
+    this.findLeftTreeData(); // 获取机构树的数据
+    this.findPage();
+  },
+  mounted() {
+    //用像素初始化左边的split的宽度
+    this.changeTreeWidth(240); // 初始化树的宽度
+  },
+  watch: {
+    containsSubDeptChecked() {
+      this.findPage();
     },
-    mounted() {
-      //用像素初始化左边的split的宽度
-      this.changeTreeWidth(240); // 初始化树的宽度
+  },
+  methods: {
+    // 初始化树的宽度
+    changeTreeWidth(widthVal) {
+      this.leftSplitWidth = Math.ceil(
+        (widthVal / this.$refs.elMain.$el.clientWidth) * 100
+      );
+      this.rightSplitWidth = 100 - this.leftSplitWidth;
     },
-    watch: {
-      containsSubDeptChecked() {
-        this.findPage();
-      },
+    // 获取机构树的数据
+    findLeftTreeData() {
+      this.$api.dept.findDeptTree().then((res) => {
+        this.treeDataRecursion(res.data, 1);
+        this.ztreeNodes = res.data;
+      });
     },
-    methods: {
-      // 初始化树的宽度
-      changeTreeWidth(widthVal) {
-        this.leftSplitWidth = Math.ceil(
-          (widthVal / this.$refs.elMain.$el.clientWidth) * 100
-        );
-        this.rightSplitWidth = 100 - this.leftSplitWidth;
-      },
-      // 获取机构树的数据
-      findLeftTreeData() {
-        this.$api.dept.findDeptTree().then((res) => {
-          this.ztreeNodes = res.data;
-        });
-      },
-      // 点击事件
-      onZTreeClick(evt, treeId, treeNode) {
-        this.currentTreeNode = evt;
-        this.deptId = this.currentTreeNode.id;
-        this.pageData.pageNum = 1;
-        this.findPage();
-      },
-      //联级选择器触发事件
-      handleChange(val) {
-        if (val && val.length !== 0) {
-          this.formData.referrerId = ''
-          this.formData.deptId = val.at(-1);
-          this.$api.user.selectfindByreferrerId({ deptId: this.formData.deptId }).then((res) => {
-            this.recommenderOptions = res.data
-          });
+    //树过滤五级机构递归
+    treeDataRecursion(data, num, one) {
+      data = data || this.ztreeNodes;
+      one = one || 0;
+      one++;
+      for (let i = 0; i < data.length; i++) {
+        if (data[i].comlevel == 5 && data[i].managementSource != num) {
+          data.splice(i, 1);
+          i = i - 1;
+        } else if (one > 5 && data[i].comlevel == null) {
+          data.splice(i, 1);
+          i = i - 1;
+        } else {
+          this.treeDataRecursion(data[i].children, num, one);
         }
-      },
-      // 右侧列表的方法Start
-      findPage(data) {
-        this.tableConfig.loading = true;
+      }
+    },
+    // 点击事件
+    onZTreeClick(evt, treeId, treeNode) {
+      this.currentTreeNode = evt;
+      this.deptId = this.currentTreeNode.id;
+      this.pageData.pageNum = 1;
+      this.findPage();
+    },
+    //联级选择器触发事件
+    handleChange(val) {
+      if (val && val.length !== 0) {
+        this.formData.referrerId = "";
+        this.formData.deptId = val.at(-1);
         this.$api.user
-          .findPage({ ...this.pageData, dto: { ...data, roleId: '19', deptId: this.deptId } })
+          .selectfindByreferrerId({ deptId: this.formData.deptId })
           .then((res) => {
-            if (res.code == 200 && res.data.content.length > 0) {
-              res.data.content.forEach(val => {
-                if (val.status && val.status !== '' && val.status !== null) {
-                  val.status = this.user_statusoptions.find(ele => ele.value == val.status).label
-                }
-                if (val.roleId && val.roleId !== '' && val.roleId !== null) {
-                  val.roleId = this.roles.find(ele => ele.id == val.roleId).name
-                }
-              })
-            }
-            this.tableConfig.loading = false;
-            this.pageResult = res.data.content;
-            this.pageData.pageNum = res.data.pageNum;
-            this.pageData.pageSize = res.data.pageSize;
-            this.pageData.totalSize = res.data.totalSize;
-          })
-      },
-      isShowFun(){
-        this.isShow=!this.isShow
-      },
-      handleSearchList(data) {
-        this.findPage(data)
-      },
-      //编辑
-      async handleTableEdit(params) {
-        this.dialogPassword = false
-        this.dataForm = {
-          SFZ_01: "",
-          SFZ_02: "",
-          Z6Z_00: "",
-          LD_00: "",
-          YP_00: "",
-          DX_00: "",
-        };
-        this.activeName = '1'
-        let res = await this.$api.user.getUserDatail(params.userId)
-        if (res.code == 200) {
-          this.$api.user.selectfindByreferrerId({ deptId: res.data.sysUser.deptId }).then((res) => {
-            this.recommenderOptions = res.data
+            this.recommenderOptions = res.data;
           });
-          res.data.sysUser.status += ''
-          this.formData = res.data.sysUser
-          this.formData.password = ''
-          this.dialogTitle = "编辑渠道信息";
-          this.dialogVisible = true;
-        }
-        else {
-          this.$message.error(res.msg);
-        }
-      },
-      //添加人员
-      handleAddButton() {
-        //级联渲染部门列表
-        this.$api.user.selectfindByreferrerId({ deptId: this.deptId }).then((res) => {
-          this.recommenderOptions = res.data
+      }
+    },
+    // 右侧列表的方法Start
+    findPage(data) {
+      this.tableConfig.loading = true;
+      this.$api.user
+        .findUserList({
+          ...this.pageData,
+          dto: { ...data, deptId: this.deptId, agentFlag: "1" },
+        })
+        .then((res) => {
+          if (res.code == 200 && res.data.records.length > 0) {
+            res.data.records.forEach((val) => {
+              if (val.status && val.status !== "" && val.status !== null) {
+                val.status = this.user_statusoptions.find(
+                  (ele) => ele.value == val.status
+                ).label;
+              }
+              if (val.roleId && val.roleId !== "" && val.roleId !== null) {
+                val.roleId = this.roles.find(
+                  (ele) => ele.id == val.roleId
+                ).name;
+              }
+            });
+          }
+          this.tableConfig.loading = false;
+          this.pageResult = res.data.records;
+          this.pageData.pageNum = res.data.current;
+          this.pageData.pageSize = res.data.size;
+          this.pageData.totalSize = res.data.total;
         });
-        if (this.currentTreeNode == null) {
-          this.$message.info("请选择所属公司或部门");
-          return;
-        }
-        let statusArr = this.user_statusoptions.filter(item=>item.label=='正常')
-        this.dialogPassword = true
-        this.formData = {
-          roleId: '19',
-          status: '',
-          referrerId:'',
-          deptId: this.deptId
-        }
-        this.formData.status = statusArr.length > 0 ? statusArr[0].value : ''
-        this.activeName = '1'
-        this.dialogTitle = "新增渠道信息";
+    },
+    isShowFun() {
+      this.isShow = !this.isShow;
+    },
+    handleSearchList(data) {
+      this.findPage(data);
+    },
+    //编辑
+    async handleTableEdit(params) {
+      this.dialogPassword = false;
+      this.dataForm = {
+        SFZ_01: "",
+        SFZ_02: "",
+        Z6Z_00: "",
+        LD_00: "",
+        YP_00: "",
+        DX_00: "",
+      };
+      this.activeName = "1";
+      let res = await this.$api.user.getUserDatail(params.userId);
+      if (res.code == 200) {
+        this.$api.user
+          .selectfindByreferrerId({ deptId: res.data.sysUser.deptId })
+          .then((res) => {
+            this.recommenderOptions = res.data;
+          });
+        res.data.sysUser.status += "";
+        this.formData = res.data.sysUser;
+        this.formData.password = "";
+        this.dialogTitle = "编辑渠道信息";
         this.dialogVisible = true;
-  
-      },
-      // 退出对话框之前确认提示
-      handleDialogBefore(done) {
-        this.$confirm("确认关闭?")
-          .then((_) => {
-            done();
-          })
-          .catch((_) => { });
-      },
-      // 清空数据
-      closeDialog() {
-        this.dialogVisible = false;
-      },
-      // 提交
-      submitForm() {
-        this.$refs.formData.validate((valid) => {
-          if (valid) {
-            this.$confirm("确认提交吗?", "提示", {})
-              .then(() => {
-                if (this.dialogTitle == '新增渠道信息') {
-                  this.$api.user.saveUserInfo({sysUser: this.formData}).then((res) => {
-                    if (res.code == 200) {
-                      this.$message({
-                        message: "保存成功",
-                        type: "success",
-                      });
-                      this.dialogVisible = false;
-                      this.$refs["formData"].resetFields();
-                      this.activeName = '1'
-                      this.findPage();
-                    } else {
-                      this.$message({
-                        message: `保存失败,请重新添加,(${res.msg})`,
-                        type: "error",
-                      });
-                    }
-                  });
-                }
-                else{
-                  this.$api.user.updateUserInfo(this.formData.id,{sysUser: this.formData }).then((res) => {
-                    if (res.code == 200) {
-                      this.$message({
-                        message: "编辑成功",
-                        type: "success",
-                      });
-                      this.dialogVisible = false;
-                      this.$refs["formData"].resetFields();
-                      this.activeName = '1'
-                      this.findPage();
-                    } else {
-                      this.$message({
-                        message: `编辑失败,请重新添加,(${res.msg})`,
-                        type: "error",
-                      });
-                    }
-                  });
-                }
-  
-              })
-          }
+      } else {
+        this.$message.error(res.msg);
+      }
+    },
+    //添加人员
+    handleAddButton() {
+      //级联渲染部门列表
+      this.$api.user
+        .selectfindByreferrerId({ deptId: this.deptId })
+        .then((res) => {
+          this.recommenderOptions = res.data;
         });
-      },
-    }
-  };
-  </script>
+      if (this.currentTreeNode == null) {
+        this.$message.info("请选择所属公司或部门");
+        return;
+      }
+      let statusArr = this.user_statusoptions.filter(
+        (item) => item.label == "正常"
+      );
+      this.dialogPassword = true;
+      this.formData = {
+        roleId: "19",
+        status: "",
+        referrerId: "",
+        deptId: this.deptId,
+      };
+      this.formData.status = statusArr.length > 0 ? statusArr[0].value : "";
+      this.activeName = "1";
+      this.dialogTitle = "新增渠道信息";
+      this.dialogVisible = true;
+    },
+    // 退出对话框之前确认提示
+    handleDialogBefore(done) {
+      this.$confirm("确认关闭?")
+        .then((_) => {
+          done();
+        })
+        .catch((_) => {});
+    },
+    // 清空数据
+    closeDialog() {
+      this.dialogVisible = false;
+    },
+    // 提交
+    submitForm() {
+      this.$refs.formData.validate((valid) => {
+        if (valid) {
+          this.$confirm("确认提交吗?", "提示", {}).then(() => {
+            if (this.dialogTitle == "新增渠道信息") {
+              this.$api.user
+                .saveUserInfo({ sysUser: this.formData })
+                .then((res) => {
+                  if (res.code == 200) {
+                    this.$message({
+                      message: "保存成功",
+                      type: "success",
+                    });
+                    this.dialogVisible = false;
+                    this.$refs["formData"].resetFields();
+                    this.activeName = "1";
+                    this.findPage();
+                  } else {
+                    this.$message({
+                      message: `保存失败,请重新添加,(${res.msg})`,
+                      type: "error",
+                    });
+                  }
+                });
+            } else {
+              this.$api.user
+                .updateUserInfo(this.formData.id, { sysUser: this.formData })
+                .then((res) => {
+                  if (res.code == 200) {
+                    this.$message({
+                      message: "编辑成功",
+                      type: "success",
+                    });
+                    this.dialogVisible = false;
+                    this.$refs["formData"].resetFields();
+                    this.activeName = "1";
+                    this.findPage();
+                  } else {
+                    this.$message({
+                      message: `编辑失败,请重新添加,(${res.msg})`,
+                      type: "error",
+                    });
+                  }
+                });
+            }
+          });
+        }
+      });
+    },
+  },
+};
+</script>
   
   <style scoped>
-  .el-divider--horizontal {
-    margin: 4px 0;
-  }
-  
-  /* 顶部查询条件样式Start */
-  .queryFrom .el-row {
-    margin: 10px 0px;
-  }
-  
-  .queryFrom .el-form-item {
-    margin-bottom: 0px;
-  
-  }
-  
-  .queryFrom .queryButton .el-form-item__content {
-    margin-left: 0px !important;
-  }
-  .disc{
-    -webkit-text-security:disc;
-    position: relative;
-  }
-  .none{
-    -webkit-text-security:none;
-    position: relative;
-  }
-  .icon{
-    color: #ccc;
-    position: absolute;
-    right: 0;
-    top:10px;
-    text-align: center
-  }
-  </style>
+.el-divider--horizontal {
+  margin: 4px 0;
+}
+
+/* 顶部查询条件样式Start */
+.queryFrom .el-row {
+  margin: 10px 0px;
+}
+
+.queryFrom .el-form-item {
+  margin-bottom: 0px;
+}
+
+.queryFrom .queryButton .el-form-item__content {
+  margin-left: 0px !important;
+}
+.disc {
+  -webkit-text-security: disc;
+  position: relative;
+}
+.none {
+  -webkit-text-security: none;
+  position: relative;
+}
+.icon {
+  color: #ccc;
+  position: absolute;
+  right: 0;
+  top: 10px;
+  text-align: center;
+}
+</style>
   

+ 69 - 137
src/views/PeopleManage/Seo/TeamSeo.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <div class="queryFrom" title="检索区">
+    <div class="queryFrom" id="queryForm" title="检索区">
       <el-form ref="queryFormRef" :model="queryFrom" label-width="80px">
         <el-row>
           <el-col :span="5">
@@ -45,9 +45,13 @@
       </el-form>
     </div>
     <el-table
+      v-loading="loading"
+      element-loading-text="拼命加载中..."
+      element-loading-spinner="el-icon-loading"
       :border="true"
       :data="tableData"
       style="width: 100%"
+      :height="tableHeight"
       :header-cell-style="{
         background: '#F2F7FC',
         fontWeight: '700',
@@ -62,15 +66,6 @@
         prop="deptName"
         label="机构名称"
       >
-        <!-- <template slot-scope="scope">
-          <span
-            v-for="(companyItem, companyIndex) in ztreeNodes"
-            :key="companyIndex"
-            v-if="scope.row.deptid.split('D')[0] == companyItem.id"
-          >
-            {{ companyItem.name }}
-          </span>
-        </template> -->
       </el-table-column>
       <el-table-column
         header-align="center"
@@ -80,24 +75,6 @@
         width="180"
       >
       </el-table-column>
-      <!-- <el-table-column header-align="center" align="center" prop="depName" label="部门名称"> </el-table-column> -->
-      <!-- <el-table-column
-        header-align="center"
-        align="center"
-        prop="jobcode"
-        label="岗位"
-      >
-        <template slot-scope="scope">
-          <span
-            v-for="(jobItem, jobIndex) in jobcodeoptions"
-            :key="jobIndex"
-            v-if="scope.row.jobcode == jobItem.value"
-          >
-            {{ jobItem.label }}
-          </span>
-        </template>
-      </el-table-column> -->
-
       <el-table-column
         header-align="center"
         align="center"
@@ -147,13 +124,6 @@
         label="二级团队(人数)"
       >
       </el-table-column>
-      <el-table-column
-        header-align="center"
-        align="center"
-        prop="level3num"
-        label="三级团队(人数)"
-      >
-      </el-table-column>
       <el-table-column
         header-align="center"
         align="center"
@@ -169,7 +139,19 @@
         </template>
       </el-table-column>
     </el-table>
-
+    <div class="bottomFixed" style="padding-bottom: 50px;margin-top:30px" ref="bottomFixed">
+      <el-pagination
+        @size-change="handleSizeChange"
+        layout="total, sizes, prev, pager, next, jumper"
+        @current-change="refreshPageRequest"
+        :current-page="querylParams.pageNum"
+        :page-size="querylParams.pageSize"
+        :page-sizes="[10, 20, 50, 100, 200, 300, 400, 500]"
+        :total="querylParams.totalSize"
+        style="float: left; margin-left: 20px"
+      >
+      </el-pagination>
+    </div>
     <el-dialog
       title="人员信息"
       width="1000px"
@@ -743,7 +725,9 @@
 export default {
   data() {
     return {
-      sexoptions: JSON.parse(localStorage.getItem('sexOptions')) ,
+      tableHeight:0,//表格高度
+      loading:false,
+      sexoptions: JSON.parse(localStorage.getItem("sexOptions")),
       activeTabs: "first",
       dialogVisible: false, // 新增编辑界面是否显示
       deptInfo: {}, //选中机构的基本信息
@@ -902,27 +886,53 @@ export default {
         "赫哲族",
         "珞巴族",
       ],
+      //分页参数
+      querylParams: {
+        pageNum: 1,
+        pageSize: 10,
+      },
     };
   },
   created() {
-    //获取所有下拉框数据(字典)
-    // this.getDictItems("comlevel");
-    // this.getDictItems("comattribute");
-    // this.getDictItems("comtype");
-    // this.getDictItems("jobcode");
     this.queryTeam();
   },
+  mounted(){
+    setTimeout(() => {
+      var divHg = document.getElementById("queryForm").clientHeight;
+      let bottomTop = this.$refs.bottomFixed.offsetTop;
+      this.tableHeight =window.innerHeight - bottomTop - divHg -80 + "px";
+    }, 10);
+  },
   methods: {
+    // 换页刷新
+    refreshPageRequest: function (pageNum) {
+      this.querylParams.pageNum = pageNum;
+      this.queryTeam();
+    },
+    // 每页条数发生改变
+    handleSizeChange(pageSize) {
+      this.querylParams.pageSize = pageSize;
+      this.queryTeam();
+    },
     queryTeam() {
-      this.$api.user.newQueryTeamNum(this.queryFrom).then((res) => {
-        if(res.code==200){
-          res.data.forEach(val=>{
-            if(val.sex&& val.sex!==''&& val.sex!==null){
-              val.sex=this.sexoptions.find(ele=>ele.value==val.sex).label
+      this.loading=true;
+      this.$api.user.newQueryTeamNum({...this.queryFrom,...this.querylParams}).then((res) => {
+        if (res.code == 200) {
+          this.querylParams.pageNum = res.data.current;
+          this.querylParams.pageSize = res.data.size;
+          this.querylParams.totalPages = res.data.pages;
+          this.querylParams.totalSize = res.data.total;
+          res.data.records.forEach((val) => {
+            if (val.sex && val.sex !== "" && val.sex !== null) {
+              val.sex = this.sexoptions.find(
+                (ele) => ele.value == val.sex
+              ).label;
             }
-          })
-          this.tableData = res.data;
-         
+          });
+          this.tableData = res.data.records;
+          this.loading=false;
+        }else{
+          this.$message.error(res.msg)
         }
       });
     },
@@ -937,93 +947,18 @@ export default {
           this[typeName + "options"] = [];
         });
     },
-
-    // findLeftTreeData: function () {
-    //   // 获取数据
-    //   this.$api.dept.findLeftDeptTree("99").then((res) => {
-    //     this.ztreeNodes = res.data;
-    //   });
-    // },
-
     handleTableEdit(params) {
       // 编辑代理人员
       this.activeTabs = "first";
-      // if (params.row.deptid != "") {
-      //   this.$api.dept
-      //     .getDeptById(params.row.deptid.split("D")[0])
-      //     .then((deptRes) => {
-      //       this.deptInfo = deptRes.data;
-      //        this.departmentList = [];
-      //        for (var i = 0; i < this.ztreeNodes.length; i++) {
-      //          if (
-      //            this.ztreeNodes[i].id.indexOf(
-      //              params.row.deptid.split("D")[0] + "D"
-      //            ) >= 0
-      //          ) {
-      //            this.departmentList.push({
-      //              label: this.ztreeNodes[i].name,
-      //              value: this.ztreeNodes[i].id,
-      //            });
-      //          }
-      //        }
-      //       if (params.row.deptid != "") {
-      //         this.$api.user.selectByDeptId(params.row.deptid).then((res2) => {
-      //           console.log(res2);
-      //           if (res2.data != null) {
-      //             if (res2.code == 200) {
-      //               this.teamleaderid = res2.data.id;
-      //               this.teamleadername = res2.data.name;
-      //             }
-      //           }
-      //         });
-      //       }
-
-      //       this.$api.user.findById(params.row.id).then((personRes) => {
-      //         Object.assign(this.dataForm, personRes.data.sysUser);
-      //         Object.assign(this.dataForm, personRes.data.esmUserInternal);
-      //         Object.assign(this.dataForm, personRes.data.esmUserAgent);
-      //         this.dataForm.status = personRes.data.sysUser.status;
-      //         this.dataForm.status1 = personRes.data.sysUser.status;
-      //         if (personRes.data.esmUserAgent != null) {
-      //           this.$api.user
-      //             .findBasePersonById(personRes.data.esmUserAgent.recommenderid)
-      //             .then((res1) => {
-      //               if (res1.code == 200) {
-      //                 this.dataForm.recommenderid = res1.data.id;
-      //                 this.dataForm.recommendername = res1.data.name;
-      //               }
-      //             });
-      //         }
-
-      //         this.dialogVisible = true;
-      //       });
-      //     });
-      // } else {
-       
-        this.$api.user.getUserDatail(params.row.id).then((result) => {
-          // console.log(personRes.data);
-          // Object.assign(this.dataForm, personRes.data.sysUser);
-          // Object.assign(this.dataForm, personRes.data.esmUserInternal);
-          // Object.assign(this.dataForm, personRes.data.esmUserAgent);
-          // this.dataForm.status = personRes.data.sysUser.status;
-          // this.dataForm.status1 = personRes.data.sysUser.status;
-          // if (personRes.data.esmUserAgent != null) {
-          //   this.$api.user
-          //     .findBasePersonById(personRes.data.esmUserAgent.recommenderid)
-          //     .then((res1) => {
-          //       console.log(res1.data);
-          //       if (res1.code == 200) {
-          //         this.dataForm.recommenderid = res1.data.id;
-          //         this.dataForm.recommendername = res1.data.name;
-          //       }
-          //     });
-          // }
-          if(result.code==200){
-            this.dataForm= {...result.data.sysUser,...result.data.sysUserInfo} 
-          }
-          this.dialogVisible = true;
-        });
-      // }
+      this.$api.user.getUserDatail(params.row.id).then((result) => {
+        if (result.code == 200) {
+          this.dataForm = {
+            ...result.data.sysUser,
+            ...result.data.sysUserInfo,
+          };
+        }
+        this.dialogVisible = true;
+      });
     },
     handleDialogBefore(done) {
       this.$confirm("确认关闭?")
@@ -1043,7 +978,6 @@ export default {
     },
     // 上传图片的方法Start
     beforeAvatarUpload(file) {
-      console.log(file);
       const isJPG = file.type === "image/jpeg" || file.type === "image/png";
       const isLt2M = file.size / 1024 / 1024 < 2;
       if (!isJPG) {
@@ -1055,7 +989,6 @@ export default {
       return isJPG && isLt2M;
     },
     httpRequest(options) {
-      console.log(options);
       let file = options.file;
       let filename = options.filename;
       let reader = new FileReader();
@@ -1065,7 +998,6 @@ export default {
       reader.onload = () => {
         let base64Str = reader.result;
         this.dataForm[options.filename] = base64Str;
-        console.log(options.filename);
       };
     },
   },

+ 18 - 0
src/views/PeopleManage/TeamLeader/TeamLeaderExamine.vue

@@ -543,8 +543,26 @@ export default {
     },
     findLeftTreeData: function () {
       this.$api.dept.findDeptTree().then((res) => {
+        this.treeDataRecursion(res.data, 2);
         this.ztreeNodes = res.data;
       });
+    },
+     //树过滤五级机构递归
+     treeDataRecursion(data, num, one) {
+      data = data || this.ztreeNodes;
+      one = one || 0;
+      one++;
+      for (let i = 0; i < data.length; i++) {
+        if (data[i].comlevel == 5 && data[i].managementSource != num) {
+          data.splice(i, 1);
+          i = i - 1;
+        } else if (one > 5 && data[i].comlevel == null) {
+          data.splice(i, 1);
+          i = i - 1;
+        } else {
+          this.treeDataRecursion(data[i].children, num, one);
+        }
+      }
     },
     onZTreeClick: function (evt, treeId, treeNode) {
       // 点击事件

+ 22 - 8
src/views/PeopleManage/TeamLeader/TeamLeaderManage.vue

@@ -727,21 +727,25 @@ export default {
     },
     findLeftTreeData: function () {
       this.$api.dept.findDeptTree().then((res) => {
-        console.log(res);
-        // this.treeDataRecursion(res.data, 1);
-        // console.log(res.data);
+        this.treeDataRecursion(res.data, 2);
         this.ztreeNodes = res.data;
       });
     },
     //树过滤五级机构递归
-    treeDataRecursion(data, num) {
+    treeDataRecursion(data, num,one) {
       data = data || this.ztreeNodes;
+      one = one || 0;
+      one++;
       for (let i = 0; i < data.length; i++) {
         if (data[i].comlevel == 5 && data[i].managementSource != num) {
+          // console.log(data[i].managementSource!=num)
+          data.splice(i, 1);
+          i = i - 1;
+        } else if (one > 5 && data[i].comlevel == null) {
           data.splice(i, 1);
           i = i - 1;
         } else {
-          this.treeDataRecursion(data[i].children, num);
+          this.treeDataRecursion(data[i].children, num, one);
         }
       }
     },
@@ -803,15 +807,16 @@ export default {
         userId: this.pageData.userId,
         status: this.pageData.status,
         roleId: "21",
+        agentFlag: "2",
       };
       this.$api.user
-        .findPage({
+        .findUserList({
           dto,
           pageNum: this.pageData.pageNum,
           pageSize: this.pageData.pageSize,
         })
         .then((res) => {
-          res.data.content.forEach((val) => {
+          res.data.records.forEach((val) => {
             if (val.sex && val.sex !== "" && val.sex !== null) {
               val.sex = this.sexoptions.find(
                 (ele) => ele.value == val.sex
@@ -824,7 +829,16 @@ export default {
             }
             val.roleId = val.roleName;
           });
-          this.pageResult = res.data;
+          this.pageResult = {
+            content: res.data.records,
+            pageNum: res.data.current,
+            pageSize: res.data.size,
+            totalPages: res.data.pages,
+            totalSize: res.data.total,
+          };
+          this.pageData.pageNum = res.data.current;
+          this.pageData.pageSize = res.data.size;
+          this.pageData.totalSize = res.data.total;
         });
     },
     beforeTabLeave() {

Некоторые файлы не были показаны из-за большого количества измененных файлов