Browse Source

代码同步

xiao547607 4 years ago
parent
commit
3afeca5a1c

+ 1 - 1
.env.development

@@ -1,7 +1,7 @@
 OUT_PUT_DIR=dist/shinestar-portal
 
 #VUE_APP_BACKEND_URL=http://wisdomhouse.sudaonline.net
-VUE_APP_BACKEND_URL=http://127.0.0.1:8086/shinestar-server
+VUE_APP_BACKEND_URL=http://ykt-test.xiaoxinda.com/shinestar-server
 #VUE_APP_BACKEND_URL=http://xpgjapi.xiaoxinda.com
 
 #手机企业版

+ 1 - 1
.env.test

@@ -1,7 +1,7 @@
 OUT_PUT_DIR=dist/shinestar-portal
 
 #VUE_APP_BACKEND_URL=http://wisdomhouse.sudaonline.net
-VUE_APP_BACKEND_URL=https://ykt-test.xiaoxinda.com/shinestar-server/
+VUE_APP_BACKEND_URL=http://ykt-test.xiaoxinda.com/shinestar-server
 
 #手机企业版
 VUE_APP_COMPANY_HEALTH_WECHAT_QY_URL=http://wisdomhousewechat.sudaonline.net/prevention/motemwall.html 

BIN
src/assets/logo.png


BIN
src/assets/logo2.png


BIN
src/assets/logo_bak.png


+ 0 - 9
src/routers/modules/base.js

@@ -504,15 +504,6 @@ var routers = [
                         title: '问题反馈管理'
                 }
         },
-        {
-                path: '/base/oldPersonInfo/list',
-                name: 'baseOldPersonInfo',
-                component: () => import('@/views/old/oldPersonInfo-list.vue'),
-                meta: {
-                        roles: ["admin"],
-                        title: '长者管理'
-                }
-        },
         {
                 path: '/base/applicationExamine/list',
                 name: 'baseApplicationExamineList',

+ 0 - 108
src/routers/modules/business copy.js

@@ -1,108 +0,0 @@
-var routers = [
-        {
-                //考勤记录
-                path: '/business/workAttendance/list',
-                name: 'BusinessWorkAttendanceList',
-                // route level code-splitting
-                // this generates a separate chunk (about.[hash].js) for this route
-                // which is lazy-loaded when the route is visited.
-                component: () => import('@/views/business/workAttendance-list.vue'),
-                meta: {
-                        roles: ["admin"],
-                        title: '考勤记录'
-                }
-        },
-        {
-                //补卡申请记录
-                path: '/business/fillAttendance/list',
-                name: 'BusinessFillAttendanceList',
-                // route level code-splitting
-                // this generates a separate chunk (about.[hash].js) for this route
-                // which is lazy-loaded when the route is visited.
-                component: () => import('@/views/business/fillAttendance-list.vue'),
-                meta: {
-                        roles: ["admin"],
-                        title: '补卡申请记录'
-                }
-        },
-        {
-                //异地打卡记录
-                path: '/business/clockOut/list',
-                name: 'BusinessClockOutList',
-                // route level code-splitting
-                // this generates a separate chunk (about.[hash].js) for this route
-                // which is lazy-loaded when the route is visited.
-                component: () => import('@/views/business/clockOut-list.vue'),
-                meta: {
-                        roles: ["admin"],
-                        title: '外勤打卡记录'
-                }
-        },
-        {
-                //请假记录
-                path: '/business/requestForLeave/list',
-                name: 'business-requestForLeave-list',
-                // route level code-splitting
-                // this generates a separate chunk (about.[hash].js) for this route
-                // which is lazy-loaded when the route is visited.
-                component: () => import('@/views/business/requestForLeave-list.vue'),
-                meta: {
-                        roles: ["admin"],
-                        title: '请假记录'
-                }
-        },
-        {
-                //账单推送管理
-                path: '/business/billPush/list',
-                name: 'businessBillPushList',
-                // route level code-splitting
-                // this generates a separate chunk (about.[hash].js) for this route
-                // which is lazy-loaded when the route is visited.
-                component: () => import('@/views/business/billPush-list.vue'),
-                meta: {
-                        roles: ["admin"],
-                        title: '账单推送管理'
-                }
-        },
-        {
-                //账单推送统计
-                path: '/business/billPush/statisticsList',
-                name: 'businessBillPushStatisticsList',
-                // route level code-splitting
-                // this generates a separate chunk (about.[hash].js) for this route
-                // which is lazy-loaded when the route is visited.
-                component: () => import('@/views/business/billPush-statistics-list.vue'),
-                meta: {
-                        roles: ["admin"],
-                        title: '账单推送统计'
-                }
-        },
-        {
-                //租户账单管理
-                path: '/business/billPush/checkIn-list',
-                name: 'businessbillPushCheckInList',
-                // route level code-splitting
-                // this generates a separate chunk (about.[hash].js) for this route
-                // which is lazy-loaded when the route is visited.
-                component: () => import('@/views/business/billPush-checkIn-list.vue'),
-                meta: {
-                        roles: ["admin"],
-                        title: '租户账单管理'
-                }
-        },
-        {
-                //班次考勤表
-                path: '/business/workScheduleReport/list',
-                name: 'BusinessWorkScheduleReport',
-                // route level code-splitting
-                // this generates a separate chunk (about.[hash].js) for this route
-                // which is lazy-loaded when the route is visited.
-                component: () => import('@/views/business/workScheduleReport.vue'),
-                meta: {
-                        roles: ["admin"],
-                        title: '班次考勤表'
-                }
-        },
-]
-
-export default routers;

+ 0 - 76
src/routers/modules/sys copy.js

@@ -1,76 +0,0 @@
-var routers = [
-        {
-                path: '/sys/user/list',
-                name: 'SysUserList',
-                // route level code-splitting
-                // this generates a separate chunk (about.[hash].js) for this route
-                // which is lazy-loaded when the route is visited.
-                component: () => import('@/views/sys/user-list.vue'),
-                meta: {
-                        roles: ["admin"],
-                        title: '用户管理'
-                }
-        },
-        {
-                path: '/sys/role/list',
-                name: 'SysRoleList',
-                // route level code-splitting
-                // this generates a separate chunk (about.[hash].js) for this route
-                // which is lazy-loaded when the route is visited.
-                component: () => import('@/views/sys/role-list.vue'),
-                meta: {
-                        roles: ["admin"],
-                        title: '角色管理'
-                }
-        },
-        {
-                path: '/sys/menu/list',
-                name: 'SysMenuList',
-                // route level code-splitting
-                // this generates a separate chunk (about.[hash].js) for this route
-                // which is lazy-loaded when the route is visited.
-                component: () => import('@/views/sys/menu-list.vue'),
-                meta: {
-                        roles: ["admin"],
-                        title: '菜单管理'
-                }
-        },
-        {
-                path: '/sys/permission/list',
-                name: 'SysPermissionList',
-                // route level code-splitting
-                // this generates a separate chunk (about.[hash].js) for this route
-                // which is lazy-loaded when the route is visited.
-                component: () => import('@/views/sys/permission-list.vue'),
-                meta: {
-                        roles: ["admin"],
-                        title: '接口权限管理'
-                }
-        },
-        {
-                path: '/sys/dataDictionary/list',
-                name: 'SysDataDictionaryList',
-                // route level code-splitting
-                // this generates a separate chunk (about.[hash].js) for this route
-                // which is lazy-loaded when the route is visited.
-                component: () => import('@/views/sys/dataDictionary-list.vue'),
-                meta: {
-                        roles: ["admin"],
-                        title: '数据字典管理'
-                }
-        },
-        {
-                path: '/sys/log/list',
-                name: 'SysLogList',
-                // route level code-splitting
-                // this generates a separate chunk (about.[hash].js) for this route
-                // which is lazy-loaded when the route is visited.
-                component: () => import('@/views/sys/log-list.vue'),
-                meta: {
-                        roles: ["admin"],
-                        title: '日志管理'
-                }
-        },
-]
-
-export default routers;

+ 1 - 1
src/views/Login.vue

@@ -2,7 +2,7 @@
   <div class="login-container">
     <div class="login-form">
       <h3>
-        <img src="../assets/logo.png" width="269" height="65"/>
+        <img src="../assets/logo.png" width="400" height="65"/>
       </h3>
       <el-card class="box-card">
         <el-form

+ 2 - 2
src/views/layout/index.vue

@@ -2,7 +2,7 @@
   <el-container class="outter-container">
     <el-header>
       <h3>
-        <img src="../../assets/logo.png" height="50" />
+        <img src="../../assets/logo2.png" height="50" />
       </h3>
       <div class="user-info">
         <i class="el-icon-s-custom"></i>
@@ -10,7 +10,7 @@
         <a href="#" @click="openChangePwDialog()" style="margin-right:10px;">修改密码</a>
         <a href="#" @click="logout()">退出</a>
       </div>
-      <div style="position:absolute;bottom:0px;left:255px;right:185px;">
+      <div style="position:absolute;bottom:0px;left:345px;right:185px;">
         <tags-view />
       </div>
     </el-header>

+ 0 - 492
src/views/old/oldPersonInfo-detail.vue

@@ -1,492 +0,0 @@
-
-<style scoped>
-.user-panel {
-  margin: 10px auto;
-}
-</style>
-<template>
-  <el-dialog
-    :visible.sync="showDialog"
-    :title="title"
-    :modal-append-to-body="false"
-    style="text-align: left"
-    @close="closeDialog"
-    :close-on-click-modal="false"
-    width="900px"
-  >
-    <div class="user-panel" v-loading="loading">
-      <el-form
-        ref="form"
-        :model="formModel"
-        :rules="ruleValidate"
-        :label-width="'100px'"
-      >
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="姓名" prop="name">
-              <el-input
-                v-model="formModel.name"
-                placeholder="请输入姓名"
-              ></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="手机号" prop="phone">
-              <el-input
-                v-model="formModel.phone"
-                placeholder="请输入手机号"
-              ></el-input>
-            </el-form-item>
-          </el-col>
-        </el-row>        
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="单位" prop="companyId">
-              <el-select-tree
-                :props="props"
-                :options="companyResult"
-                v-model="formModel.companyId"
-                height="200"
-                style="width:330px;"
-                size="large"
-              ></el-select-tree>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="用户身份" prop="personRoleId">
-              <el-select
-                filterable
-                placeholder="请选择"
-                style="width: 280px"
-                v-model="formModel.personRoleId"
-              >
-                <el-option
-                  v-for="role in personRoleResult"
-                  :key="role.personRoleName"
-                  :label="role.personRoleName"
-                  :value="role.id"
-                ></el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="24">
-            <el-form-item label="身份证" prop="idCard">
-              <el-input
-                v-model="formModel.idCard"
-                placeholder="请输入身份证"
-              ></el-input>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="24">
-            <el-form-item label="关联单位" prop="personCompany">
-              <el-select
-                v-model="formModel.personCompany"
-                filterable
-                multiple
-                placeholder="请选择"
-                style="width: 100%"
-              >
-                <el-option
-                  v-for="company in companyResult"
-                  :key="company.id"
-                  :label="company.name"
-                  :value="company.id"
-                ></el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="24">
-            <el-form-item label="照片" prop="faceImageUrl">
-              <el-upload
-                class="avatar-uploader"
-                name="photoFile"
-                :action="uploadUrl"
-                :show-file-list="false"
-                :headers="headers"
-                :data="uploadData"
-                :on-success="handleAvatarSuccess"
-                :before-upload="beforeAvatarUpload"
-              >
-                <img v-if="fileUrl" :src="fileUrl" class="avatar" />
-                <i v-else class="el-icon-plus avatar-uploader-icon"></i>
-              </el-upload>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="24">
-            <el-form-item label="开放权限">
-              <el-checkbox v-model="formModel.faceEnabled"
-                >人脸识别</el-checkbox
-              >
-              <el-checkbox v-model="formModel.cardEnabled">门禁卡</el-checkbox>
-              <el-checkbox v-model="formModel.appEnabled">手机开锁</el-checkbox>
-              <el-checkbox v-model="formModel.guestEnabled"
-                >访客权限</el-checkbox
-              >
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="同步人脸信息" prop="faceBound">
-              <el-radio-group v-model="formModel.faceBound">
-                <el-radio :label="true">是</el-radio>
-                <el-radio :label="false">否</el-radio>
-              </el-radio-group>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="微信通知" prop="wechatNoticeEnabled">
-              <el-radio-group v-model="formModel.wechatNoticeEnabled">
-                <el-radio :label="true">接受</el-radio>
-                <el-radio :label="false">拒绝</el-radio>
-              </el-radio-group>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item label="是否允许查看本单位数据" prop="allowViewLocal">
-              <el-radio-group v-model="formModel.allowViewLocal">
-                <el-radio :label="true">是</el-radio>
-                <el-radio :label="false">否</el-radio>
-              </el-radio-group>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <!-- <el-row>
-          <el-col :span="12">
-            <el-form-item :label="companyPosition1" prop="position1">
-              <el-input
-                v-model="formModel.position1"
-                placeholder="请输入一级位置"
-              ></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item :label="companyPosition2" prop="position2">
-              <el-input
-                v-model="formModel.position2"
-                placeholder="请输入二级位置"
-              ></el-input>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item :label="companyPosition3" prop="position3">
-              <el-input
-                v-model="formModel.position3"
-                placeholder="请输入三级位置"
-              ></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item :label="companyPosition4" prop="position4">
-              <el-input
-                v-model="formModel.position4"
-                placeholder="请输入四级位置"
-              ></el-input>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item :label="companyPosition5" prop="position5">
-              <el-input
-                v-model="formModel.position5"
-                placeholder="请输入五级位置"
-              ></el-input>
-            </el-form-item>
-          </el-col>
-        </el-row> -->
-      </el-form>
-    </div>
-    <span slot="footer" class="dialog-footer">
-      <el-button @click="closeDialog">取 消</el-button>
-      <el-button type="primary" @click="handleSubmit" :loading="submitting"
-        >确 定</el-button
-      >
-    </span>
-  </el-dialog>
-</template>
-<script>
-import Constant from "@/constant";
-import personInfoApi from "@/api/base/personInfo";
-import dataDictionaryApi from "@/api/sys/dataDictionary";
-import personCompanyApi from "@/api/base/personCompany";
-import companyInfoApi from "@/api/base/companyInfo";
-import personRoleInfoApi from "@/api/base/personRoleInfo";
-import SelectTree from "@/components/SelectTree";
-
-import { getToken } from "@/utils/auth"; // get token from cookie
-
-export default {
-  props: [
-    "businessKey",
-    "title",
-    "companyResult",
-    "companyPosition1",
-    "companyPosition2",
-    "companyPosition3",
-    "companyPosition4",
-    "companyPosition5",
-  ],
-  watch: {
-    "formModel.companyId":function(newVal,oldVal){
-        var self = this;
-
-        if(newVal!=null){
-          var formData = new FormData();
-          formData.append("companyId", newVal);
-
-          //查询单位下角色
-          personRoleInfoApi.listByCompanyId(formData)
-          .then(response=>{
-              var jsonData = response.data;
-
-              if (jsonData.result) {
-                self.personRoleResult = jsonData.data;
-              }
-          })
-        }
-    }
-  },
-  data() {
-    let checkIdCard = (rule, value, callback) => {
-      var identNumber = value;
-      if (!/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(identNumber)) {
-        return callback(new Error("格式错误"));
-      } else if (!/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(identNumber)) {
-        //身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X。
-        return callback(new Error("格式错误"));
-      } else {
-        return callback();
-      }
-    };
-    return {
-      formModel: {},
-      ruleValidate: {
-        companyId: [{ required: true, message: "请选择单位", trigger: "blur" }],
-        name: [{ required: true, message: "姓名不能为空", trigger: "blur" }],
-        phone: [{ required: true, message: "手机号不能为空", trigger: "blur" }],
-        personRoleId: [{ required: true, message: "请选择身份", trigger: "blur" }]
-        // idCard: [
-        //   { required: false, message: "身份证不能为空", trigger: "blur" },
-        //   {
-        //     validator: checkIdCard,
-        //     trigger: "blur"
-        //   }
-        // ]
-      },
-      showDialog: true,
-      loading: false,
-      submitting: false,
-      checkList: [],
-      //上传地址
-      uploadUrl: Constant.serverUrl + "/uploadPicture",
-      uploadData: {
-        subFolder: "personInfo",
-      },
-      fileUrl: "",
-      headers: {
-        Authorization: getToken(),
-      },
-      personRoleResult: [],
-      treeData: [],
-      props: {
-        // 配置项(必选)
-        value: "id",
-        label: "name",
-        children: "children",
-      },
-      parkList: [],
-    };
-  },
-  created() {
-    var self = this;
-
-    companyInfoApi.list({ type: "3" }).then((response) => {
-      var jsonData = response.data;
-      this.parkList = jsonData.data;
-    });
-
-    this.loadTree();
-  },
-  methods: {
-    getSelectedValue(value) {
-      this.formModel.companyId = value;
-    },
-    getSelectedParkValue(value) {
-      this.formModel.parkId = value;
-    },
-    loadTree() {
-      var formData = new FormData();
-      companyInfoApi.loadChildren(formData).then((resp) => {
-        var jsonData = resp.data;
-
-        if (jsonData.result) {
-          this.treeData = jsonData.data;
-        } else {
-          this.$message.error(jsonData.message + "");
-        }
-      });
-    },
-    loadChildren(tree, treeNode, resolve) {
-      var formData = new FormData();
-      formData.append("parentId", tree.id);
-
-      companyInfoApi.loadChildren(formData).then((resp) => {
-        var jsonData = resp.data;
-
-        if (jsonData.result) {
-          resolve(jsonData.data);
-        } else {
-          this.$message.error(jsonData.message + "");
-        }
-      });
-    },
-    closeDialog() {
-      this.$emit("close", false);
-    },
-    handleSubmit() {
-      var self = this;
-
-      this.$refs["form"].validate((valid) => {
-        if (valid) {
-          (function () {
-            var id = self.formModel.id;
-            //数组转换为字符串
-            //用户身份
-            // if (
-            //   self.formModel.popedom != null &&
-            //   self.formModel.popedom != ""
-            // ) {
-            //   var popedom = self.formModel.popedom.join(",");
-            //   self.formModel.popedom = popedom;
-            // } else {
-            //   self.formModel.popedom = "";
-            // }
-
-            //子单位
-            if (
-              self.formModel.personCompany != null &&
-              self.formModel.personCompany != ""
-            ) {
-              var personCompany = self.formModel.personCompany.join(",");
-              self.formModel.personCompany = personCompany;
-            } else {
-              self.formModel.personCompany = "";
-            }
-
-            if (self.formModel.companyId == null) {
-              self.formModel.companyId = "";
-            }
-
-            if (id == null || id.length == 0) {
-              return personInfoApi.add(self.formModel);
-            } else {
-              return personInfoApi.update(self.formModel);
-            }
-          })().then(function (response) {
-            var jsonData = response.data;
-
-            if (jsonData.result) {
-              self.$message({
-                message: "保存成功!",
-                type: "success",
-              });
-
-              self.$emit("close", true);
-            } else {
-              self.$message({
-                message: jsonData.message + "",
-                type: "warning",
-              });
-
-              self.$emit("close", false);
-            }
-          });
-        }
-      });
-    },
-    handleAvatarSuccess(res, file) {
-      var self = this;
-      self.formModel.faceImageUrl = res.data;
-      self.fileUrl =
-        res.data + "?x-oss-process=image/resize,m_lfit,h_400,w_400";
-    },
-    beforeAvatarUpload(file) {
-      const isJPG = file.type === "image/jpeg";
-      const isLt2M = file.size / 1024 / 1024 < 2;
-
-      if (!isJPG) {
-        this.$message.error("上传头像图片只能是 JPG 格式!");
-      }
-      if (!isLt2M) {
-        this.$message.error("上传头像图片大小不能超过 2MB!");
-      }
-      return isJPG && isLt2M;
-    },
-  },
-  mounted: function () {
-    var self = this;
-    (function () {
-      if (self.businessKey.length == 0) {
-        return personInfoApi.create();
-      } else {
-        return personInfoApi.edit(self.businessKey);
-      }
-    })()
-      .then((response) => {
-        var jsonData = response.data;
-        self.loading = false;
-
-        if (jsonData.result) {
-          self.formModel = jsonData.data;
-          let faceImageUrl = self.formModel.faceImageUrl;
-          if (faceImageUrl != null) {
-            self.fileUrl =
-              faceImageUrl + "?x-oss-process=image/resize,m_lfit,h_400,w_400";
-          }
-
-          if (self.businessKey.length == 0) {
-            //self.formModel.popedom = ["1"];
-          } else {
-            // var popedom = self.formModel.popedom;
-            // if (popedom != "") {
-            //   self.formModel.popedom = popedom.split(",");
-            // }
-
-            var personCompany = self.formModel.personCompany;
-            if (personCompany != "") {
-              self.formModel.personCompany = personCompany.split(",");
-            }
-
-            var wechatNoticeEnabled = self.formModel.wechatNoticeEnabled;
-            if (wechatNoticeEnabled != "") {
-              self.formModel.wechatNoticeEnabled = true;
-            }
-          }
-        } else {
-          self.$message.error(jsonData.message + "");
-        }
-      })
-      .catch((error) => {
-        self.$message.error(error + "");
-      });
-  },
-  components: {
-    "el-select-tree": SelectTree,
-  },
-};
-</script>

+ 0 - 1645
src/views/old/oldPersonInfo-list.vue

@@ -1,1645 +0,0 @@
-<template>
-  <div style="position: relative">
-    <el-breadcrumb separator=">">
-      <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
-      <el-breadcrumb-item>
-        <a href="#">系统管理</a>
-      </el-breadcrumb-item>
-      <el-breadcrumb-item>
-        <a href="/personInfo">长者管理</a>
-      </el-breadcrumb-item>
-    </el-breadcrumb>
-    <el-divider></el-divider>
-    <!--
-        要resetFields起作用,必须配置:model和prop
-    -->
-    <el-form
-      ref="queryForm"
-      :model="queryModel"
-      inline
-      class="demo-form-inline"
-    >
-      <div>
-        <el-form-item label="编号" prop="id">
-          <el-input
-            type="text"
-            size="mini"
-            style="width: 120px"
-            v-model="queryModel.id"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="姓名" prop="name">
-          <el-input
-            type="text"
-            size="mini"
-            v-model="queryModel.name"
-            style="width: 120px"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="手机号" prop="phone">
-          <el-input
-            type="text"
-            size="mini"
-            v-model="queryModel.phone"
-            style="width: 120px"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="身份证" prop="idCard">
-          <el-input
-            type="text"
-            size="mini"
-            v-model="queryModel.idCard"
-            style="width: 190px"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="绑定设备名称" prop="derviceName">
-          <el-input
-            type="text"
-            size="mini"
-            v-model="queryModel.derviceName"
-            style="width: 120px"
-          ></el-input>
-        </el-form-item>
-        <el-form-item>
-          <el-button
-            type="primary"
-            size="mini"
-            icon="ios-search"
-            @click="changePage(1)"
-            :loading="loading"
-            >查询</el-button
-          >&nbsp;
-          <el-button
-            type="info"
-            size="mini"
-            style="margin-left: 8px"
-            @click="handleReset('queryForm')"
-            >重置</el-button
-          >&nbsp;
-        </el-form-item>
-      </div>
-      <div>
-        <el-form-item label="单位" prop="companyCode">
-          <!-- <el-select
-              v-model="queryModel.companyCode"
-              size="mini"
-              filterable
-              placeholder="请选择"
-              style="width:220px"
-            >
-              <el-option
-                v-for="company in companyResult"
-                :key="company.id"
-                :label="company.name"
-                :value="company.code"
-              ></el-option>
-          </el-select>-->
-          <el-select-tree
-            size="mini"
-            :props="props"
-            :options="companyResult"
-            v-model="queryModel.parentId"
-            height="200"
-          ></el-select-tree
-          >&nbsp;
-          <el-checkbox v-model="queryModel.subordinate"
-            >是否包含下级单位</el-checkbox
-          >
-        </el-form-item>
-        <el-form-item label="是否上传照片" prop="isUploadPhoto">
-          <el-select
-            v-model="queryModel.isUploadPhoto"
-            size="mini"
-            filterable
-            placeholder="请选择"
-            style="width: 120px"
-          >
-            <el-option value label="全部"></el-option>
-            <el-option value="1" label="已上传"></el-option>
-            <el-option value="0" label="未上传"></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="是否同步" prop="faceBound">
-          <el-select
-            v-model="queryModel.faceBound"
-            size="mini"
-            filterable
-            placeholder="请选择"
-            style="width: 120px"
-          >
-            <el-option value label="全部"></el-option>
-            <el-option value="1" label="已同步"></el-option>
-            <el-option value="0" label="未同步"></el-option>
-          </el-select>
-        </el-form-item>
-      </div>
-      <!-- <div>
-        <el-form-item v-if="position1Show" :label="position1" prop="position1">
-          <el-input
-            type="text"
-            size="mini"
-            v-model="queryModel.position1"
-          ></el-input>
-        </el-form-item>
-        <el-form-item v-if="position2Show" :label="position2" prop="position2">
-          <el-input
-            type="text"
-            size="mini"
-            v-model="queryModel.position2"
-          ></el-input>
-        </el-form-item>
-        <el-form-item v-if="position3Show" :label="position3" prop="position3">
-          <el-input
-            type="text"
-            size="mini"
-            v-model="queryModel.position3"
-          ></el-input>
-        </el-form-item>
-        <el-form-item v-if="position4Show" :label="position4" prop="position4">
-          <el-input
-            type="text"
-            size="mini"
-            v-model="queryModel.position4"
-          ></el-input>
-        </el-form-item>
-        <el-form-item v-if="position5Show" :label="position5" prop="position5">
-          <el-input
-            type="text"
-            size="mini"
-            v-model="queryModel.position5"
-          ></el-input>
-        </el-form-item>
-      </div> -->
-    </el-form>
-    <el-divider></el-divider>
-    <el-row class="button-group">
-      <el-button
-        type="primary"
-        size="small"
-        plain
-        icon="el-icon-remove"
-        @click="handleAdd"
-        >新增</el-button
-      >
-      <el-button
-        type="primary"
-        size="small"
-        plain
-        icon="el-icon-remove"
-        :disabled="multipleSelection.length == 0"
-        @click="handleBatchDelete"
-        >删除选中项</el-button
-      >
-      <el-button
-        type="primary"
-        size="small"
-        plain
-        icon="el-icon-remove"
-        :disabled="multipleSelection.length == 0"
-        @click="handleBatchClearFaceImg"
-        >清除设备照片</el-button
-      >
-      <el-button
-        type="primary"
-        size="small"
-        plain
-        icon="el-icon-upload2"
-        @click="batchImportVisible = true"
-        >导入</el-button
-      >
-      <el-button
-        type="primary"
-        size="small"
-        plain
-        icon="el-icon-download"
-        :loading="xlsLoading"
-        @click="downloadAll"
-        >导出数据</el-button
-      >
-      <el-button
-        type="primary"
-        size="small"
-        plain
-        icon="el-icon-refresh"
-        :disabled="multipleSelection.length == 0"
-        @click="dataSync"
-        >数据同步</el-button
-      >
-      <el-button
-        type="primary"
-        size="small"
-        plain
-        icon="el-icon-refresh"
-        :disabled="multipleSelection.length == 0"
-        @click="handleBatchEnabledFace"
-        >开启自动同步</el-button
-      >
-      <el-button
-        type="primary"
-        size="small"
-        plain
-        icon="el-icon-refresh"
-        :disabled="multipleSelection.length == 0"
-        @click="handleBatchEnabledFace"
-        >人脸授权</el-button
-      >
-      <el-button
-        type="primary"
-        size="small"
-        plain
-        icon="el-icon-refresh"
-        :disabled="multipleSelection.length == 0"
-        @click="batchBoundDevice = true"
-        >关联设备</el-button
-      >
-      <el-button
-        type="primary"
-        size="small"
-        plain
-        icon="el-icon-refresh"
-        :disabled="multipleSelection.length == 0"
-        @click="batchUnBoundDevice = true"
-        >解绑设备</el-button
-      >
-    </el-row>
-    <el-table
-      ref="formTable"
-      :data="tableData"
-      v-loading="loading"
-      :height="tableHeight"
-      stripe
-      @sort-change="sortChange"
-      @selection-change="handleSelectionChange"
-    >
-      <el-table-column type="selection" width="55"></el-table-column>
-      <el-table-column
-        prop="id"
-        label="人员编号"
-        width="80"
-        fixed="left"
-      ></el-table-column>
-      <el-table-column
-        prop="name"
-        label="姓名"
-        width="80"
-        fixed="left"
-      ></el-table-column>
-      <el-table-column
-        prop="faceImageUrl"
-        label="人员照片"
-        width="80"
-        fixed="left"
-      >
-        <template slot-scope="{ row }">
-          <a :href="row.faceImageUrl" target="_blank">
-            <el-avatar
-              :size="48"
-              shape="circle"
-              :src="
-                row.faceImageUrl +
-                '?x-oss-process=image/resize,m_fill,w_64,h_64'
-              "
-              :key="row.id"
-            ></el-avatar>
-          </a>
-        </template>
-      </el-table-column>
-      <el-table-column
-        prop="companyName"
-        label="主要单位"
-        width="250"
-        show-overflow-tooltip
-      ></el-table-column>
-      <el-table-column
-        prop="popedomName"
-        label="主要身份"
-        width="120"
-        show-overflow-tooltip
-      ></el-table-column>
-      <el-table-column
-        prop="mechanism"
-        label="所有单位身份"
-        width="250"
-        show-overflow-tooltip
-      ></el-table-column>
-      <el-table-column
-        prop="phone"
-        label="手机号"
-        width="180"
-      ></el-table-column>
-      <el-table-column
-        prop="idCard"
-        label="身份证"
-        width="100"
-        show-overflow-tooltip
-      ></el-table-column>
-      <el-table-column
-        prop="deviceName"
-        label="绑定设备"
-        width="150"
-        show-overflow-tooltip
-      ></el-table-column>
-      <el-table-column prop="openId" label="是否绑定公众号" width="180">
-        <template slot-scope="{ row }">{{
-          row.openId == null ? "否" : "是"
-        }}</template>
-      </el-table-column>
-      <el-table-column prop="faceBound" label="是否同步人脸信息" width="180">
-        <template slot-scope="{ row }">{{
-          row.faceBound ? "是" : "否"
-        }}</template>
-      </el-table-column>
-      <el-table-column label="是否自动同步" width="120">
-        <template slot-scope="{ row }">
-          <el-switch
-            v-model="row.isSync"
-            @change="enabledTo(row, 'sync', row.faceEnabled)"
-            active-color="#13ce66"
-            inactive-color="#ff4949"
-            :disabled="disabled"
-          ></el-switch>
-        </template>
-      </el-table-column>
-      <el-table-column label="人脸授权">
-        <template slot-scope="{ row }">
-          <el-switch
-            v-model="row.faceEnabled"
-            @change="enabledTo(row, 'face', row.faceEnabled)"
-            active-color="#13ce66"
-            inactive-color="#ff4949"
-            :disabled="disabled"
-          ></el-switch>
-        </template>
-      </el-table-column>
-      <!-- <el-table-column label="刷卡授权">
-        <template slot-scope="{ row }">
-          <el-switch
-            v-model="row.cardEnabled"
-            @change="enabledTo(row, 'card', '')"
-            active-color="#13ce66"
-            inactive-color="#ff4949"
-            :disabled="disabled"
-          ></el-switch>
-        </template>
-      </el-table-column>
-      <el-table-column label="手机授权">
-        <template slot-scope="{ row }">
-          <el-switch
-            v-model="row.appEnabled"
-            @change="enabledTo(row, 'app', '')"
-            active-color="#13ce66"
-            inactive-color="#ff4949"
-            :disabled="disabled"
-          ></el-switch>
-        </template>
-      </el-table-column> -->
-      <!-- <el-table-column label="密码">
-        <template slot-scope="{row}">
-          <el-switch v-model="row.passwordEnabled" @change="enabledTo(row.id,'face')" active-color="#13ce66" inactive-color="#ff4949"></el-switch>
-        </template>
-      </el-table-column>-->
-      <!-- <el-table-column label="访客授权">
-        <template slot-scope="{ row }">
-          <el-switch
-            v-model="row.guestEnabled"
-            @change="enabledTo(row, 'guest', '')"
-            active-color="#13ce66"
-            inactive-color="#ff4949"
-            :disabled="disabled"
-          ></el-switch>
-        </template>
-      </el-table-column> -->
-      <el-table-column label="接收微信通知">
-        <template slot-scope="{ row }">
-          <el-switch
-            v-model="row.wechatNoticeEnabled"
-            @change="enabledTo(row, 'wechatNotice', '')"
-            active-color="#13ce66"
-            inactive-color="#ff4949"
-            :disabled="disabled"
-          ></el-switch>
-        </template>
-      </el-table-column>
-      <el-table-column
-        prop="openId"
-        label="微信openid"
-        width="180"
-      ></el-table-column>
-      <el-table-column label="操作" width="300" fixed="right">
-        <template slot-scope="{ row }">
-          <el-row>
-            <el-col>
-              <span v-if="row.delFlag">
-                <el-link
-                  type="danger"
-                  :underline="false"
-                  @click="handleClearFaceImg(row)"
-                  >清除图片</el-link
-                >-
-              </span>
-              <span v-else>
-                <el-link
-                  type="primary"
-                  :underline="false"
-                  @click="handleEdit(row)"
-                  >编辑</el-link
-                >-
-                <el-link
-                  type="danger"
-                  :underline="false"
-                  @click="handleDelete(row)"
-                  >删除</el-link
-                >-
-                <el-link
-                  type="primary"
-                  :underline="false"
-                  @click="bindRole(row)"
-                  >机构身份管理</el-link
-                >-
-                <span v-if="row.faceBound">
-                  <el-link
-                    type="primary"
-                    :underline="false"
-                    :disabled="true"
-                    @click="uploadData(row)"
-                    >数据同步</el-link
-                  >-
-                </span>
-                <span v-if="!row.faceBound">
-                  <el-link
-                    type="primary"
-                    :underline="false"
-                    @click="uploadData(row)"
-                    >数据同步</el-link
-                  >-
-                </span>
-              </span>
-            </el-col>
-          </el-row>
-          <el-row>
-            <el-col>
-              <el-link
-                type="primary"
-                :underline="false"
-                @click="bindDevice(row)"
-                >关联设备</el-link
-              >-
-              <el-link type="primary" :underline="false" @click="showBound(row)"
-                >已关联设备</el-link
-              >-
-              <el-link
-                type="primary"
-                :underline="false"
-                @click="showLifeRecord(row)"
-                >生活记录</el-link
-              >-
-            </el-col>
-          </el-row>
-          <el-row>
-            <el-col>
-              <el-link
-                type="primary"
-                :underline="false"
-                @click="bindWechat(row)"
-                >微信绑定</el-link
-              >-
-              <el-link
-                type="primary"
-                :underline="false"
-                @click="unbindWechat(row)"
-                >微信解绑</el-link
-              >
-            </el-col>
-          </el-row>
-        </template>
-      </el-table-column>
-    </el-table>
-    <el-pagination
-      :current-page.sync="pageIndex"
-      :total="totalElements"
-      :page-sizes="pageSizeList"
-      @current-change="changePage"
-      @size-change="pageSizeChange"
-      layout="total, sizes, prev, pager, next, jumper"
-    ></el-pagination>
-    <personInfo-detail
-      v-if="showModal"
-      :businessKey="businessKey"
-      :title="modalTitle"
-      :companyResult="companyResult"
-      :companyPosition1="position1"
-      :companyPosition2="position2"
-      :companyPosition3="position3"
-      :companyPosition4="position4"
-      :companyPosition5="position5"
-      @close="onDetailModalClose"
-    ></personInfo-detail>
-    <personDeviceRelation-list
-      v-if="showDeviceModal"
-      :personId="personId"
-      @close="onDetailModalClose"
-    ></personDeviceRelation-list>
-    <personDeviceRelation-BoundList
-      v-if="showBoundModal"
-      :personId="personId"
-      @close="onDetailModalClose"
-    ></personDeviceRelation-BoundList>
-    <!--批量导入S-->
-    <!--生活记录 start-->
-    <lifeRecord-list
-      v-if="showRecordModal"
-      :personId="businessKey"
-      @close="recordModalClose"
-    ></lifeRecord-list>
-    <!--生活记录 end-->
-    <el-dialog
-      title="批量导入人员"
-      :visible.sync="batchImportVisible"
-      :modal-append-to-body="false"
-      style="text-align: left"
-      :close-on-click-modal="false"
-    >
-      <el-form label-width="150px">
-        <el-form-item label="模板下载">
-          <el-link
-            href="http://rccs.oss-cn-hangzhou.aliyuncs.com/smart/personInfo/2020/10/小鹏管家人员导入模板.xls"
-            type="primary"
-            target="_blank"
-            >点击下载模板</el-link
-          >
-        </el-form-item>
-        <el-form-item label="单位">
-          <el-select-tree
-            size="large"
-            :props="props"
-            :options="companyResult"
-            v-model="uploadXlsData.companyId"
-            height="200"
-            width="300px"
-          ></el-select-tree>
-        </el-form-item>
-        <el-form-item label="用户身份" prop="personRoleId">
-          <el-select
-            filterable
-            placeholder="请选择"
-            style="width: 300px;"
-            v-model="uploadXlsData.personRoleId"
-          >
-            <el-option
-              v-for="role in personRoleResult"
-              :key="role.personRoleName"
-              :label="role.personRoleName"
-              :value="role.id"
-            ></el-option>
-          </el-select>
-        </el-form-item>        
-        <el-form-item label="上传文件">
-          <el-upload
-            class="upload-demo"
-            accept=".xls"
-            :action="uploadUrlXls"
-            :data="uploadXlsData"
-            :headers="headers"
-            :on-preview="handleBatchImportPreview"
-            name="uploadFile"
-            :multiple="true"
-            :limit="1"
-            :on-remove="handleBatchImportRemove"
-            :before-remove="beforeBatchImportRemove"
-            :before-upload="beforeUpload"
-            :on-exceed="handleBatchImportExceed"
-            :on-success="handleBatchImportSuccess"
-            :file-list="batchImportFileList"
-          >
-            <el-button size="small" type="primary" :loading="xlsLoading"
-              >点击上传</el-button
-            >
-            <div slot="tip" class="el-upload__tip">
-              只能上传xls文件,且不超过500kb
-            </div>
-          </el-upload>
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="batchImportVisible = false"
-          >关 闭</el-button
-        >
-      </div>
-    </el-dialog>
-    <!--批量导入E-->
-    <!-- 批量绑定设备 -->
-    <el-dialog
-      title="绑定设备"
-      :visible.sync="batchBoundDevice"
-      :modal-append-to-body="false"
-      style="text-align: left"
-      :close-on-click-modal="false"
-    >
-      <el-form
-        label-width="150px"
-        v-loading="boundDeviceDisabled"
-        element-loading-text="正在操作,请稍等"
-        element-loading-spinner="el-icon-loading"
-        element-loading-background="rgba(0, 0, 0, 0.8)"
-      >
-        <el-form-item label="设备">
-          <el-select
-            v-model="boundDeviceIds"
-            filterable
-            placeholder="请选择"
-            multiple
-            style="width: 300px"
-          >
-            <el-option
-              v-for="devices in deviceResult"
-              :key="devices.id"
-              :label="devices.aliasName"
-              :value="devices.id"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button @click="closeBatchBoundDevice">关 闭</el-button>
-        <el-button type="primary" @click="handleBatchBoundDevice"
-          >确 定</el-button
-        >
-      </div>
-    </el-dialog>
-    <!-- 批量绑定设备end -->
-    <!-- 批量解绑设备 -->
-    <el-dialog
-      title="解绑设备"
-      :visible.sync="batchUnBoundDevice"
-      :modal-append-to-body="false"
-      style="text-align: left"
-      :close-on-click-modal="false"
-    >
-      <el-form label-width="150px" v-loading="boundDeviceDisabled">
-        <el-form-item label="设备">
-          <el-select v-model="boundUnDeviceId" filterable placeholder="请选择">
-            <el-option
-              v-for="devices in deviceResult"
-              :key="devices.id"
-              :label="devices.aliasName"
-              :value="devices.id"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button @click="closeBatchUnBoundDevice">关 闭</el-button>
-        <el-button type="primary" @click="handleBatchUnBoundDevice">确 定</el-button>
-      </div>
-    </el-dialog>
-    <!-- 批量解绑设备end -->
-    <el-dialog
-      title="扫码绑定微信"
-      :visible.sync="bindWechatVisible"
-      :modal-append-to-body="false"
-      :close-on-click-modal="false"
-      width="340px"
-    >
-      <div v-loading="bindWechatLoading">
-        <img :src="bindWechatUrl" style="width: 300px; fit-object: cover" />
-      </div>
-    </el-dialog>
-    <personPopedom-list
-      v-if="showRoleModal"
-      :personId="personId"
-      @close="onDetailModalClose"
-    ></personPopedom-list>
-  </div>
-</template>
-<script>
-import Constant from "@/constant";
-import PersonInfoDetail from "./oldPersonInfo-detail";
-import PersonDeviceRelationList from "../base/personDeviceRelation-list";
-import PersonDeviceRelationBoundList from "../base/personDeviceRelation-BoundList";
-import PersonPopedomList from "../base/personPopedom-list";
-
-import personInfoApi from "@/api/base/oldPersonInfo";
-import companyInfoApi from "@/api/base/companyInfo";
-import personRoleInfoApi from "@/api/base/personRoleInfo";
-import companyPositionApi from "@/api/base/companyPosition";
-import deviceInfoApi from "@/api/base/deviceInfo";
-import personDeviceRelationApi from "@/api/base/personDeviceRelation";
-import SelectTree from "@/components/SelectTree";
-import LifeRecordList from "../base//lifeRecord-list";
-
-import { getToken } from "@/utils/auth"; // get token from cookie
-import NProgress from "nprogress"; // progress bar
-import "nprogress/nprogress.css"; // progress bar style
-
-export default {
-  name: "BasePersonInfoList",
-  data() {
-    var self = this;
-
-    return {
-      queryModel: {
-        id: "",
-        companyCode: "",
-        parentId: "",
-        name: "",
-        phone: "",
-        idCard: "",
-        faceBound: "",
-        isUploadPhoto: "",
-        subordinate: false,
-        position1: "",
-        position2: "",
-        position3: "",
-        position4: "",
-        position5: "",
-        derviceName: "",
-        parkId: "",
-      },
-      loading: false,
-      tableData: [],
-      pageIndex: 1,
-      pageSize: 30,
-      totalPages: 0,
-      totalElements: 0,
-      field: "",
-      direction: "",
-      pageSizeList: [30, 100, 500],
-      multipleSelection: [],
-      showModal: false,
-      modalTitle: "",
-      businessKey: "",
-      companyResult: [],
-      batchImportVisible: false,
-      batchImportFileList: [],
-      uploadUrlXls: Constant.serverUrl + "/base/personInfo/importXls",
-      uploadXlsData: {
-        subFolder: "company",
-        companyId: "",
-        personRoleId: ""
-      },
-      personRoleResult: [],
-      headers: {
-        Authorization: getToken(),
-      },
-      disabled: false,
-      position1: "",
-      position2: "",
-      position3: "",
-      position4: "",
-      position5: "",
-      position1Show: false,
-      position2Show: false,
-      position3Show: false,
-      position4Show: false,
-      position5Show: false,
-      showDeviceModal: false,
-      showBoundModal: false,
-      personId: "",
-      batchBoundDevice: false,
-      batchUnBoundDevice: false,
-      deviceResult: "",
-      boundDeviceIds: [],
-      boundUnDeviceId: "",
-      xlsLoading: false,
-      tableHeight: 400,
-      boundDeviceDisabled: false,
-      treeData: [],
-      props: {
-        // 配置项(必选)
-        value: "id",
-        label: "name",
-        children: "children",
-      },
-      showRecordModal: false,
-      bindWechatVisible: false,
-      bindWechatUrl: "",
-      bindWechatLoading: false,
-      parkList: [],
-      showRoleModal: false,
-    };
-  },
-  watch: {
-    "uploadXlsData.companyId":function(newVal,oldVal){
-        var self = this;
-
-        if(newVal!=null){
-          var formData = new FormData();
-          formData.append("companyId", newVal);
-
-          //查询单位下角色
-          personRoleInfoApi.listByCompanyId(formData)
-          .then(response=>{
-              var jsonData = response.data;
-
-              if (jsonData.result) {
-                self.personRoleResult = jsonData.data;
-              }
-          })
-        }
-    }
-  },
-  created() {
-    var self = this;
-
-    companyInfoApi.treeList().then(function (response) {
-      var jsonData = response.data;
-      if (jsonData.result) {
-        if (jsonData.data != null && jsonData.data != "") {
-          self.companyResult = jsonData.data;
-        }
-      }
-    });
-
-    // companyInfoApi.list({ type: "3" }).then((response) => {
-    //   var jsonData = response.data;
-    //   this.parkList = jsonData.data;
-    // });
-
-    deviceInfoApi.list().then(function (response) {
-      var jsonData = response.data;
-      if (jsonData.result) {
-        if (jsonData.data != null && jsonData.data != "") {
-          self.deviceResult = jsonData.data;
-        }
-      }
-    });
-
-    companyPositionApi.detailForCompany().then(function (response) {
-      var jsonData = response.data.data;
-      if (jsonData.position1Name != null && jsonData.position1Name != "") {
-        self.position1 = jsonData.position1Name;
-        self.position1Show = true;
-      }
-      if (jsonData.position2Name != null && jsonData.position2Name != "") {
-        self.position2 = jsonData.position2Name;
-        self.position2Show = true;
-      }
-      if (jsonData.position3Name != null && jsonData.position3Name != "") {
-        self.position3 = jsonData.position3Name;
-        self.position3Show = true;
-      }
-      if (jsonData.position4Name != null && jsonData.position4Name != "") {
-        self.position4 = jsonData.position4Name;
-        self.position4Show = true;
-      }
-      if (jsonData.position5Name != null && jsonData.position5Name != "") {
-        self.position5 = jsonData.position5Name;
-        self.position5Show = true;
-      }
-    });
-
-    this.loadTree();
-  },
-  methods: {
-    getSelectedValue(value) {
-      this.queryModel.parentId = value;
-    },
-    loadTree() {
-      var formData = new FormData();
-
-      companyInfoApi.loadChildren(formData).then((resp) => {
-        var jsonData = resp.data;
-
-        if (jsonData.result) {
-          this.treeData = jsonData.data;
-        } else {
-          this.$message.error(jsonData.message + "");
-        }
-      });
-    },
-    loadChildren(tree, treeNode, resolve) {
-      console.log(tree);
-
-      var formData = new FormData();
-      formData.append("parentId", tree.id);
-
-      companyInfoApi.loadChildren(formData).then((resp) => {
-        var jsonData = resp.data;
-
-        if (jsonData.result) {
-          resolve(jsonData.data);
-        } else {
-          this.$message.error(jsonData.message + "");
-        }
-      });
-    },
-    changePage(pageIndex) {
-      var self = this;
-
-      self.loading = true;
-
-      self.pageIndex = pageIndex;
-      var formData = new FormData();
-
-      formData.append("pageIndex", self.pageIndex);
-      formData.append("pageSize", self.pageSize);
-
-      if (self.queryModel.parentId == null) {
-        self.queryModel.parentId = "";
-      }
-      formData.append("companyCode", self.queryModel.companyCode);
-      formData.append("parentId", self.queryModel.parentId);
-
-      formData.append("subordinate", self.queryModel.subordinate);
-
-      formData.append("id", self.queryModel.id);
-      formData.append("name", self.queryModel.name);
-      formData.append("phone", self.queryModel.phone);
-      formData.append("idCard", self.queryModel.idCard);
-      formData.append("faceBound", self.queryModel.faceBound);
-      formData.append("isUploadPhoto", self.queryModel.isUploadPhoto);
-
-      formData.append("position1", self.queryModel.position1);
-      formData.append("position2", self.queryModel.position2);
-      formData.append("position3", self.queryModel.position3);
-      formData.append("position4", self.queryModel.position4);
-      formData.append("position5", self.queryModel.position5);
-
-      formData.append("derviceName", self.queryModel.derviceName);
-
-      if (self.queryModel.parkId == null) {
-        self.queryModel.parkId = "";
-      }
-      formData.append("parkId", self.queryModel.parkId);
-
-      if (this.field != null) {
-        formData.append("field", this.field);
-      }
-
-      if (this.direction != null) {
-        formData.append("direction", this.direction);
-      }
-
-      personInfoApi
-        .pageList(formData)
-        .then(function (response) {
-          self.loading = false;
-
-          var jsonData = response.data.data;
-
-          self.tableData = jsonData.data;
-          self.totalPages = jsonData.totalPages;
-          self.totalElements = jsonData.recordsTotal;
-
-          //页面高度-列表上面的高度-分页栏高度
-          //45为分页栏的高度
-          self.tableHeight =
-            window.innerHeight - self.$refs.formTable.$el.offsetTop - 110;
-        })
-        .catch((error) => {
-          self.loading = false;
-          // self.$message.error(error + "");
-        });
-    },
-    pageSizeChange(pageSize) {
-      this.pageSize = pageSize;
-      this.changePage(this.pageIndex);
-    },
-    sortChange(data) {
-      this.field = data.column.field;
-      this.changePage(this.pageIndex);
-    },
-    handleSelectionChange(val) {
-      this.multipleSelection = val;
-    },
-    handleReset(name) {
-      this.$refs[name].resetFields();
-    },
-    handleAdd() {
-      this.modalTitle = "新增";
-      this.businessKey = "";
-      this.showModal = true;
-    },
-    handleEdit(record) {
-      this.modalTitle = "编辑";
-      this.businessKey = record.id;
-      this.showModal = true;
-    },
-    handleDelete(record) {
-      var self = this;
-      self
-        .$confirm("是否确认删除?", "提示", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning",
-        })
-        .then(() => {
-          self.loading = true;
-          personInfoApi.remove(record.id).then(function (response) {
-            var jsonData = response.data;
-            self.loading = false;
-            if (jsonData.result) {
-              // var index = self.tableData.indexOf(record);
-              // self.tableData.splice(index, 1);
-              self.changePage(self.pageIndex);
-
-              self.$message({
-                type: "success",
-                message: "删除成功!",
-              });
-            }
-          });
-        })
-        .catch(() => {
-          self.loading = false;
-        });
-    },
-    handleBatchDelete() {
-      var self = this;
-      var idList = this.multipleSelection.map((record) => {
-        return record.id;
-      });
-
-      this.$confirm("是否确认删除选中项?", "提示", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning",
-      }).then(() => {
-        self.loading = true;
-        personInfoApi
-          .batchRemove(idList)
-          .then(function (response) {
-            var jsonData = response.data;
-            self.loading = false;
-            if (jsonData.result) {
-              self.changePage(self.pageIndex);
-
-              self.$message({
-                type: "success",
-                message: "删除成功!",
-              });
-            }
-          })
-          .catch(() => {
-            self.loading = false;
-          });
-      });
-    },
-    onDetailModalClose(refreshed) {
-      //保存成功后回调
-      this.showModal = false;
-      this.showDeviceModal = false;
-      this.showBoundModal = false;
-      this.showRoleModal = false;
-
-      if (refreshed) {
-        this.changePage(this.pageIndex);
-      }
-    },
-    bindDevice(record) {
-      //绑定设备
-      this.personId = record.id;
-      this.showDeviceModal = true;
-    },
-    showBound(record) {
-      //展示绑定设备
-      //人员信息ID
-      this.personId = record.id;
-      this.showBoundModal = true;
-    },
-    beforeUpload(file, fileList) {
-      //导入前判断
-      var self = this;
-      var companyId = self.uploadXlsData.companyId;
-
-      if (companyId==null || companyId.length==0) {
-        self.$message({
-          type: "warning",
-          message: "请选择单位!",
-        });
-        self.xlsLoading = false;
-        return false;
-      } else {
-        self.xlsLoading = true;
-        return true;
-      }
-    },
-    //批量导入-上传成功
-    handleBatchImportSuccess(response, file, fileList) {
-      var self = this;
-      self.xlsLoading = false;
-      self.uploadXlsData.companyId = null;
-      
-      if (response.result) {
-        self.$message.success(response.message);
-        this.batchImportFileList = [];
-        this.changePage(1);
-
-        this.batchImportVisible = false;
-      } else {
-        //this.$message.error(response.message);
-        this.batchImportFileList = [];
-        this.changePage(1);
-
-        if (response.data != null) {
-          //下载有错误信息提示的报表
-          //window.open(response.data);
-          self.$message({
-            showClose: true,
-            dangerouslyUseHTMLString: true,
-            message:
-              response.message +
-              `,<a href="${response.data}" target="_blank">点击下载未导入的数据报表</a>&nbsp;`,
-            duration: 30000,
-          });
-        }
-      }
-    },
-    //批量导入-预览
-    handleBatchImportPreview(file) {
-      console.log(file.url);
-    },
-    //批量导入-移除
-    handleBatchImportRemove(file, fileList) {
-      console.log(file, fileList);
-    },
-    //批量导入-移除前操作
-    beforeBatchImportRemove(file, fileList) {
-      console.log(file, fileList);
-    },
-    //批量导入-文件超出个数限制时的钩子
-    handleBatchImportExceed(files, fileList) {
-      this.$message.warning(
-        `当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${
-          files.length + fileList.length
-        } 个文件`
-      );
-    },
-    downloadAll() {
-      //导出
-      var self = this;
-      var formData = new FormData();
-
-      if (self.queryModel.parentId == null) {
-        self.queryModel.parentId = "";
-      }
-      formData.append("companyCode", self.queryModel.companyCode);
-      formData.append("parentId", self.queryModel.parentId);
-      formData.append("subordinate", self.queryModel.subordinate);
-
-      formData.append("id", self.queryModel.id);
-      formData.append("name", self.queryModel.name);
-      formData.append("phone", self.queryModel.phone);
-      formData.append("idCard", self.queryModel.idCard);
-      formData.append("faceBound", self.queryModel.faceBound);
-      formData.append("isUploadPhoto", self.queryModel.isUploadPhoto);
-
-      formData.append("position1", self.queryModel.position1);
-      formData.append("position2", self.queryModel.position2);
-      formData.append("position3", self.queryModel.position3);
-      formData.append("position4", self.queryModel.position4);
-      formData.append("position5", self.queryModel.position5);
-
-      self.xlsLoading = true;
-
-      personInfoApi.exportXls(formData).then(function (response) {
-        self.xlsLoading = false;
-        var jsonData = response.data;
-        if (jsonData.result) {
-          if (jsonData.data != null) {
-            if(document.location.href.startsWith("https://")){
-                jsonData.data = jsonData.data.replace("http://","https://");
-            }
-
-            self.$message({
-              showClose: true,
-              type: "success",
-              dangerouslyUseHTMLString: true,
-              message: `报表已生成,<a href="${jsonData.data}" target="_blank">点击下载报表</a>&nbsp;`,
-              duration: 30000,
-            });
-          }
-        }
-      });
-    },
-    enabledTo(row, type, value) {
-      var self = this;
-
-      if (type == "wechatNotice") {
-        var formData = new FormData();
-        formData.append("id", row.id);
-
-        personInfoApi.enabledWechatNotice(formData);
-      } else {
-        this.$confirm("该操作会对设备上的信息进行操作,请确认?", "提示", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning",
-        })
-          .then(() => {
-            //self.loading = true;
-            if (!self.disabled) {
-              var formData = new FormData();
-              formData.append("id", row.id);
-              if ("face" == type) {
-                personInfoApi.enabledFace(formData);
-              } else if ("card" == type) {
-                personInfoApi.enabledCard(formData);
-              } else if ("app" == type) {
-                personInfoApi.enabledApp(formData);
-              } else if ("guest" == type) {
-                personInfoApi.enabledGuest(formData);
-              } else if ("wechatNotice" == type) {
-                personInfoApi.enabledWechatNotice(formData);
-              } else if ("sync" == type) {
-                personInfoApi.enabledSync(formData);
-              }
-
-              //关闭开关,是自动同步到服务器
-              //打开开关需要手动同步服务器
-              // if (!value) {
-              //   //如果是打开开关,则修改状态
-              //   row.faceBound = false;
-              // }
-
-              self.disabled = true;
-
-              setTimeout(function () {
-                self.disabled = false;
-                //self.loading = false;
-              }, 1000); //一秒内不能重复点击
-            } else {
-              self.$message({
-                type: "success",
-                message: "操作过快!",
-              });
-            }
-          })
-          .catch(() => {
-            // self.loading = false;
-            if (row.faceEnabled) {
-              row.faceEnabled = false;
-            } else {
-              row.faceEnabled = true;
-            }
-          });
-      }
-    },
-    uploadData(record) {
-      //同步人脸数据
-      var self = this;
-      self.loading = true;
-      var uploadSync = new Array(0);
-      uploadSync.push(record.id);
-
-      personInfoApi.dataSync(uploadSync).then(function (response) {
-        var jsonData = response.data;
-        self.loading = false;
-        if (jsonData.result) {
-          if (jsonData.data) {
-            self.changePage(self.pageIndex);
-            self.$message({
-              type: "success",
-              message: "同步成功!",
-            });
-          } else {
-            if (jsonData.message != null) {
-              //下载有错误信息提示的报表
-              //window.open(response.data);
-              self.$message({
-                showClose: true,
-                dangerouslyUseHTMLString: true,
-                message:
-                  "错误" +
-                  `,<a href="${jsonData.message}" target="_blank">点击下载错误报表</a>&nbsp;`,
-                duration: 30000,
-              });
-            }
-          }
-        } else {
-          self.$message({
-            type: "warning",
-            message: jsonData.message,
-          });
-        }
-      });
-    },
-    dataSync() {
-      //批量同步人脸
-      var self = this;
-      var idList = this.multipleSelection.map((record) => {
-        return record.id;
-      });
-
-      this.$confirm("是否确认同步选中项?", "提示", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning",
-      })
-        .then(() => {
-          self.loading = true;
-          personInfoApi.dataSync(idList).then(function (response) {
-            var jsonData = response.data;
-            self.loading = false;
-            if (jsonData.result) {
-              if (jsonData.data) {
-                self.changePage(self.pageIndex);
-                self.$message({
-                  type: "success",
-                  message: "同步成功!",
-                });
-              } else {
-                if (jsonData.message != null) {
-                  //下载有错误信息提示的报表
-                  //window.open(response.data);
-                  self.$message({
-                    showClose: true,
-                    dangerouslyUseHTMLString: true,
-                    message:
-                      "错误" +
-                      `,<a href="${jsonData.message}" target="_blank">点击下载错误报表</a>&nbsp;`,
-                    duration: 30000,
-                  });
-                }
-              }
-            } else {
-              self.$message({
-                type: "warning",
-                message: jsonData.message,
-              });
-            }
-          });
-        })
-        .catch(() => {
-          self.loading = false;
-        });
-    },
-    handleBatchBoundDevice() {
-      //批量人脸
-      var self = this;
-      //self.loading = true;
-      self.boundDeviceDisabled = true;
-
-      //选择设备
-      let boundDeviceIds = self.boundDeviceIds;
-
-      var idList = this.multipleSelection.map((record) => {
-        return record.id;
-      });
-
-      boundDeviceIds.forEach((boundDeviceId) => {
-        var formData = new FormData();
-
-        formData.append("persons", idList);
-        formData.append("deviceId", boundDeviceId);
-
-        personDeviceRelationApi
-          .batchBindPerson(formData)
-          .then(function (response) {
-            var jsonData = response.data;
-            //self.loading = false;
-            self.boundDeviceDisabled = false;
-            if (jsonData.result) {
-              self.changePage(self.pageIndex);
-              self.batchBoundDevice = false;
-              self.boundDeviceId = "";
-              self.$message({
-                type: "success",
-                message: "绑定成功!",
-              });
-            } else {
-              self.$message({
-                showClose: true,
-                dangerouslyUseHTMLString: true,
-                message: `有部分人员绑定失败,<a href="${jsonData.message}" target="_blank">点击下载错误信息报表</a>&nbsp;`,
-                duration: 30000,
-              });
-            }
-          });
-      });
-    },
-    handleBatchUnBoundDevice() {
-      //批量人脸
-      var self = this;
-      //self.loading = true;
-      self.boundDeviceDisabled = true;
-
-      var idList = this.multipleSelection.map((record) => {
-        return record.id;
-      });
-      var formData = new FormData();
-
-      formData.append("persons", idList);
-      formData.append("deviceId", self.boundUnDeviceId);
-      personDeviceRelationApi
-        .batchUnBindPerson(formData)
-        .then(function (response) {
-          var jsonData = response.data;
-          //self.loading = false;
-          self.boundDeviceDisabled = false;
-          if (jsonData.result) {
-            self.changePage(self.pageIndex);
-            self.batchBoundDevice = false;
-            self.boundDeviceId = "";
-            self.$message({
-              type: "success",
-              message: "解除绑定成功!",
-            });
-          }
-        });
-    },
-    closeBatchBoundDevice() {
-      var self = this;
-      self.batchBoundDevice = false;
-      self.boundDeviceId = "";
-    },
-    closeBatchUnBoundDevice() {
-      var self = this;
-      self.batchUnBoundDevice = false;
-      self.boundUnDeviceId = "";
-    },
-    handleBatchEnabledFace() {
-      //批量人脸授权
-      var self = this;
-      self.loading = true;
-
-      let boundDeviceId = self.boundDeviceId;
-
-      var idList = this.multipleSelection.map((record) => {
-        return record.id;
-      });
-      var formData = new FormData();
-
-      formData.append("ids", idList);
-
-      personInfoApi.enabledFaceList(idList).then(function (response) {
-        var jsonData = response.data;
-        self.loading = false;
-        if (jsonData.result) {
-          self.changePage(self.pageIndex);
-          self.$message({
-            type: "success",
-            message: "授权成功!",
-          });
-        } else {
-          self.$message({
-            type: "warning",
-            message: jsonData.message,
-          });
-        }
-      });
-    },
-    bindWechat(record) {
-      this.bindWechatVisible = true;
-      this.bindWechatLoading = true;
-      this.bindWechatUrl = "";
-
-      personInfoApi
-        .bindWechat(record.id + "," + record.phone)
-        .then((response) => {
-          var jsonData = response.data;
-          this.bindWechatLoading = false;
-
-          if (jsonData.result) {
-            this.bindWechatUrl = jsonData.data;
-          } else {
-            this.$message.warning(jsonData.message);
-          }
-        });
-    },
-    unbindWechat(record) {
-      var self = this;
-      this.$confirm("是否确认微信解绑?", "提示", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning",
-      }).then(() => {
-        self.loading = true;
-        personInfoApi
-          .unbindWechat(record.id)
-          .then(function (response) {
-            var jsonData = response.data;
-            self.loading = false;
-            if (jsonData.result) {
-              self.changePage(self.pageIndex);
-
-              self.$message({
-                type: "success",
-                message: "解绑成功!",
-              });
-            }
-          })
-          .catch(() => {
-            self.loading = false;
-          });
-      });
-    },
-    showLifeRecord(record) {
-      this.showRecordModal = true;
-      this.businessKey = record.id;
-    },
-    recordModalClose(refreshed) {
-      this.showRecordModal = false;
-    },
-    handleClearFaceImg(record) {
-      var self = this;
-      self
-        .$confirm("是否确认清除?", "提示", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning",
-        })
-        .then(() => {
-          self.loading = true;
-          personInfoApi.clearFaceImg(record.id).then(function (response) {
-            var jsonData = response.data;
-            self.loading = false;
-            if (jsonData.result) {
-              self.$message({
-                type: "success",
-                message: "清除成功!",
-              });
-            } else {
-              self.$message({
-                showClose: true,
-                dangerouslyUseHTMLString: true,
-                message:
-                  "发生错误" +
-                  `,<a href="${jsonData.message}" target="_blank">点击下载错误信息</a>&nbsp;`,
-                duration: 30000,
-              });
-            }
-          });
-        })
-        .catch(() => {
-          self.loading = false;
-        });
-    },
-    handleBatchClearFaceImg() {
-      var self = this;
-      var idList = this.multipleSelection.map((record) => {
-        return record.id;
-      });
-
-      this.$confirm("是否确认清除设备上的照片?", "提示", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning",
-      }).then(() => {
-        self.loading = true;
-        personInfoApi
-          .batchClearFaceImg(idList)
-          .then(function (response) {
-            var jsonData = response.data;
-            self.loading = false;
-            if (jsonData.result) {
-              self.changePage(self.pageIndex);
-
-              self.$message({
-                type: "success",
-                message: "清除成功!",
-              });
-            }
-          })
-          .catch(() => {
-            self.loading = false;
-          });
-      });
-    },
-    bindRole(record) {
-      //绑定设备
-      this.personId = record.id;
-      this.showRoleModal = true;
-    },
-  },
-  async mounted() {
-    var self = this;
-
-    this.changePage(1);
-    //self.tableHeight = window.innerHeight - self.$refs.queryForm.$el.offsetTop - 100;
-  },
-  components: {
-    "personInfo-detail": PersonInfoDetail,
-    "personDeviceRelation-list": PersonDeviceRelationList,
-    "personDeviceRelation-BoundList": PersonDeviceRelationBoundList,
-    "el-select-tree": SelectTree,
-    "lifeRecord-list": LifeRecordList,
-    "personPopedom-list": PersonPopedomList,
-  },
-};
-</script>
-<style lang="scss" scoped>
-.el-breadcrumb {
-  margin: 10px;
-  line-height: 20px;
-}
-
-.el-divider {
-  margin: 5px 0;
-}
-
-.demo-form-inline {
-  margin-left: 10px;
-  text-align: left;
-  background-color: white;
-}
-
-.button-group {
-  margin-left: 10px;
-  text-align: left;
-}
-
-.sticky-panel {
-  background-color: #fff;
-}
-</style>