From 1a2cc996d29c0cdffb2cf2eae2f034146e0e4613 Mon Sep 17 00:00:00 2001
From: Your Name <123456>
Date: 星期二, 22 三月 2022 16:56:37 +0800
Subject: [PATCH] ''

---
 src/views/systemManage/userManage/index.vue |  846 +++++++++++++++++++++++++++++++++----------------------
 1 files changed, 503 insertions(+), 343 deletions(-)

diff --git a/src/views/systemManage/userManage/index.vue b/src/views/systemManage/userManage/index.vue
index 4bf8644..6db12dd 100644
--- a/src/views/systemManage/userManage/index.vue
+++ b/src/views/systemManage/userManage/index.vue
@@ -49,6 +49,7 @@
                 <el-form-item>
                     <el-button
                         v-if="getBtnPermission('add')"
+                        v-show="userType != 3"
                         class="filter-item"
                         style="margin-left: 10px;"
                         type="primary"
@@ -59,6 +60,7 @@
                 <el-form-item>
                     <el-button
                         v-if="getBtnPermission('import')"
+                        v-show="userType != 3"
                         class="filter-item"
                         style="margin-left: 10px;"
                         type="primary"
@@ -66,77 +68,66 @@
                         @click="showImportHandle"
                     >导入</el-button>
                 </el-form-item>
-                <el-form-item>
-                    <el-button
-                        v-if="getBtnPermission('import')"
-                        v-show="userType != 3"
-                        class="filter-item"
-                        style="margin-left: 10px;"
-                        type="primary"
-                        icon="el-icon-upload2"
-                        @click="showImportHandle2"
-                    >导入统一社会信用代码</el-button>
-                </el-form-item>
             </el-form>
         </div>
-        <div style="display: block;margin-top: -10px">
-            <div class="basic_search">
-                <span>区域:</span>
-                <el-select v-model="queryForm.province" clearable filterable @change="changeArea('province')">
-                    <el-option
-                        v-for="item in provinceList"
-                        :key="item.id"
-                        :label="item.name"
-                        :value="item.name"
-                    >
-                    </el-option>
-                </el-select>
-            </div>
-            <div class="basic_search">
-                <el-select v-model="queryForm.city" prop="city" clearable filterable @change="changeArea('city')">
-                    <el-option
-                        v-for="item in cityList"
-                        :key="item.id"
-                        :label="item.name"
-                        :value="item.name"
-                    >
-                    </el-option>
-                </el-select>
-            </div>
-            <div class="basic_search">
-                <el-select v-model="queryForm.area" clearable filterable @change="changeArea('area')">
-                    <el-option
-                        v-for="item in districtList"
-                        :key="item.id"
-                        :label="item.name"
-                        :value="item.name"
-                    >
-                    </el-option>
-                </el-select>
-            </div>
-            <div class="basic_search">
-                <el-select v-model="queryForm.town" clearable filterable @change="changeArea('town')" >
-                    <el-option
-                        v-for="item in streetList"
-                        :key="item.id"
-                        :label="item.name"
-                        :value="item.name"
-                    >
-                    </el-option>
-                </el-select>
-            </div>
-            <div class="basic_search">
-                <el-select v-model="queryForm.community" clearable filterable>
-                    <el-option
-                        v-for="item in committeeList"
-                        :key="item.id"
-                        :label="item.name"
-                        :value="item.name"
-                    >
-                    </el-option>
-                </el-select>
-            </div>
-        </div>
+        <!--        <div style="display: block;margin-top: -10px;margin-bottom: 10px">-->
+        <!--            <div class="basic_search">-->
+        <!--                <span>区域:</span>-->
+        <!--                <el-select v-model="queryForm.province" clearable filterable @change="changeArea('province')">-->
+        <!--                    <el-option-->
+        <!--                        v-for="item in provinceList"-->
+        <!--                        :key="item.id"-->
+        <!--                        :label="item.name"-->
+        <!--                        :value="item.name"-->
+        <!--                    >-->
+        <!--                    </el-option>-->
+        <!--                </el-select>-->
+        <!--            </div>-->
+        <!--            <div class="basic_search">-->
+        <!--                <el-select v-model="queryForm.city" prop="city" clearable filterable @change="changeArea('city')">-->
+        <!--                    <el-option-->
+        <!--                        v-for="item in cityList"-->
+        <!--                        :key="item.id"-->
+        <!--                        :label="item.name"-->
+        <!--                        :value="item.name"-->
+        <!--                    >-->
+        <!--                    </el-option>-->
+        <!--                </el-select>-->
+        <!--            </div>-->
+        <!--            <div class="basic_search">-->
+        <!--                <el-select v-model="queryForm.area" clearable filterable @change="changeArea('area')">-->
+        <!--                    <el-option-->
+        <!--                        v-for="item in districtList"-->
+        <!--                        :key="item.id"-->
+        <!--                        :label="item.name"-->
+        <!--                        :value="item.name"-->
+        <!--                    >-->
+        <!--                    </el-option>-->
+        <!--                </el-select>-->
+        <!--            </div>-->
+        <!--            <div class="basic_search">-->
+        <!--                <el-select v-model="queryForm.town" clearable filterable @change="changeArea('town')" >-->
+        <!--                    <el-option-->
+        <!--                        v-for="item in streetList"-->
+        <!--                        :key="item.id"-->
+        <!--                        :label="item.name"-->
+        <!--                        :value="item.name"-->
+        <!--                    >-->
+        <!--                    </el-option>-->
+        <!--                </el-select>-->
+        <!--            </div>-->
+        <!--            <div class="basic_search">-->
+        <!--                <el-select v-model="queryForm.community" clearable filterable>-->
+        <!--                    <el-option-->
+        <!--                        v-for="item in committeeList"-->
+        <!--                        :key="item.id"-->
+        <!--                        :label="item.name"-->
+        <!--                        :value="item.name"-->
+        <!--                    >-->
+        <!--                    </el-option>-->
+        <!--                </el-select>-->
+        <!--            </div>-->
+        <!--        </div>-->
         <div class="table_content">
             <el-table
                 v-loading="listLoading"
@@ -149,71 +140,110 @@
                 @sort-change="sortUserChange"
             >
                 <el-table-column type="index" label="" align="center" width="60"/>
-                <el-table-column label="用户名" prop="username" align="center" sortable="custom">
+                <el-table-column label="用户名" prop="username" align="center" sortable="custom" width="100px">
                     <template slot-scope="scope">
                         <span>{{ scope.row.username }}</span>
                     </template>
                 </el-table-column>
-                <el-table-column label="单位" prop="company" align="center" width="150" sortable="custom">
+                <el-table-column label="真实姓名" prop="realname" align="center" sortable="custom" width="100px">
+                    <template slot-scope="scope">
+                        <span>{{ scope.row.realname }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column label="身份证号" prop="idcard" align="center" sortable="custom" width="100px">
+                    <template slot-scope="scope">
+                        <span>{{ scope.row.idcard }}</span>
+                    </template>
+                </el-table-column>
+                <el-table-column label="单位" prop="company" align="center" sortable="custom" width="100px">
                     <template slot-scope="scope">
                         <span>{{ scope.row.company }}</span>
                     </template>
                 </el-table-column>
-                <el-table-column label="办公电话" prop="phone" align="center" sortable="custom">
+                <el-table-column label="部门" prop="department" align="center" sortable="custom" width="100px">
                     <template slot-scope="scope">
-                        <span>{{ scope.row.phone }}</span>
+                        <span>{{ scope.row.department }}</span>
                     </template>
                 </el-table-column>
-                <el-table-column label="手机号" prop="mobile" align="center" sortable="custom">
-                    <template slot-scope="scope">
-                        <span>{{ scope.row.mobile }}</span>
-                    </template>
-                </el-table-column>
-                <el-table-column label="邮箱" prop="email" align="center" sortable="custom">
-                    <template slot-scope="scope">
-                        <span>{{ scope.row.email }}</span>
-                    </template>
-                </el-table-column>
-                <el-table-column label="部门" prop="department" align="center" sortable="custom">
-                    <template slot-scope="scope">
-                        <span>{{ scope.row.department? scope.row.department.name:'' }}</span>
-                    </template>
-                </el-table-column>
-                <el-table-column label="职务" prop="job" align="center" sortable="custom">
+                <el-table-column label="职位" prop="job" align="center" sortable="custom" width="100px">
                     <template slot-scope="scope">
                         <span>{{ scope.row.job }}</span>
                     </template>
                 </el-table-column>
-                <el-table-column label="统一社会信用代码" prop="code" align="center" sortable="custom">
+                <el-table-column label="用户类型" prop="type" align="center" width="100px">
                     <template slot-scope="scope">
-                        <span>{{ scope.row.code }}</span>
+                        <span>{{ scope.row.type | parseType}}</span>
                     </template>
                 </el-table-column>
-                <el-table-column label="用户分类" prop="type" align="center">
-                    <template slot-scope="scope">
-                        <span>{{ scope.row.type | filterUserType }}</span>
-                    </template>
-                </el-table-column>
-                <el-table-column label="角色" prop="role" align="center">
+                <el-table-column label="角色" prop="role" align="center" width="100px">
                     <template slot-scope="scope">
                         <span>{{ scope.row.roles | parseRoles }}</span>
                     </template>
                 </el-table-column>
-                <el-table-column label="管辖地区" prop="province" align="center" width="300" sortable="custom">
+                <el-table-column label="人员MAC地址" prop="deviceNo" align="center" width="100px">
                     <template slot-scope="scope">
-                        <span>{{ scope.row.province+'-'+scope.row.city+'-'+scope.row.area+'-'+scope.row.town+'-'+scope.row.community | parseGX}}</span>
+                        <span>{{ scope.row.deviceNo}}</span>
                     </template>
                 </el-table-column>
-                <el-table-column label="更新时间" prop="lastmodifieddate" align="center" sortable="custom">
+                <el-table-column label="人脸数据" prop="role" align="center" width="100px">
                     <template slot-scope="scope">
-                        <span>{{ scope.row.lastmodifieddate | parseTime('{y}-{m}-{d}') }}</span>
+                        <span>{{ scope.row.code == null || scope.row.code === '' ?"":"已采集" }}</span>
                     </template>
                 </el-table-column>
-                <el-table-column label="操作" align="center" width="180" class-name="small-padding fixed-width">
+                <el-table-column label="是否通过考试" prop="ispass" align="center" width="100px">
+                    <template slot-scope="scope">
+                        <div v-for="item in isList">
+                            <div v-if="item.id === scope.row.ispass">
+                                <span>{{item.name}}</span>
+                            </div>
+                        </div>
+                    </template>
+                </el-table-column>
+                <el-table-column label="考试合格有效期" prop="starttime" align="center" width="300px">
+                    <template slot-scope="scope">
+                        <span>{{ scope.row.starttime}}</span>
+                        <span>-</span>
+                        <span>{{ scope.row.endtime}}</span>
+                    </template>
+
+                </el-table-column>
+                <el-table-column label="是否单位负责人" prop="iscompany" align="center" width="100px">
+                    <template slot-scope="scope">
+                        <div v-for="item in isList">
+                            <div v-if="item.id === scope.row.iscompany">
+                                <span>{{item.name}}</span>
+                            </div>
+                        </div>
+                    </template>
+                </el-table-column>
+                <el-table-column label="是否部门负责人" prop="isdepartment" align="center" width="100px">
+                    <template slot-scope="scope">
+                        <div v-for="item in isList">
+                            <div v-if="item.id === scope.row.isdepartment">
+                                <span>{{item.name}}</span>
+                            </div>
+                        </div>
+                    </template>
+                </el-table-column>
+                <el-table-column label="状态" prop="status" align="center" width="100px">
+                    <template slot-scope="scope">
+                        <span>{{ scope.row.status | parseStatus }}</span>
+                    </template>
+                </el-table-column>
+
+                <!--                <el-table-column label="更新时间" prop="lastmodifieddate" align="center" sortable="custom">-->
+                <!--                    <template slot-scope="scope">-->
+                <!--                        <span>{{ scope.row.lastmodifieddate | parseTime('{y}-{m}-{d}') }}</span>-->
+                <!--                    </template>-->
+                <!--                </el-table-column>-->
+                <el-table-column label="操作" align="center" width="250" class-name="small-padding fixed-width" fixed="right">
                     <template slot-scope="scope">
                         <el-button type="text" @click="showEditHandle(scope.row)">编辑</el-button>
                         <el-button  v-show="userType != 3" :disabled="disableRole(scope.row)" type="text" align="center" @click="showAssignRole(scope.row)">分配角色</el-button>
-                        <el-button   :disabled="scope.row.type==1" type="text" style="color:red;" @click="deleteHandle(scope.row)">删除</el-button>
+                        <el-button type="text" @click="showWorkLicense(scope.row)">查看工作证</el-button>
+                        <el-button  v-show="userType != 3" :disabled="scope.row.type==1" type="text" style="color:red;" @click="deleteHandle(scope.row)">删除</el-button>
+                        <el-button  v-if="scope.row.cardId === ''" v-show="userType !== 3" :disabled="scope.row.type===1" type="text" @click="bindCardHandle(scope.row)">绑定人员卡</el-button>
+                        <el-button  v-else v-show="userType !== 3" :disabled="scope.row.type===1" type="text" style="color:red;" @click="setInvalidDel(scope.row)">删除人员卡</el-button>
                     </template>
                 </el-table-column>
             </el-table>
@@ -231,108 +261,175 @@
                 @current-change="handleCurrentChange"
             />
         </div>
-        <el-dialog :title="dialogStatus==='create'?'新增':'编辑'" :visible.sync="dialogFormVisible" :modal-append-to-body="false" :close-on-click-modal="false" width="700px">
-            <el-form ref="dataForm" :rules="dataFormRules" :model="dataForm" label-position="right" label-width="100px" style="margin-left:50px;width:500px;" element-loading-text="保存中...">
-                <el-form-item label="用户名:" prop="username">
-                    <el-input v-model.trim="dataForm.username"/>
-                </el-form-item>
+        <el-dialog :title="dialogStatus==='create'?'新增':'编辑'" :visible.sync="dialogFormVisible" :modal-append-to-body="false" :close-on-click-modal="false" width="50%">
+            <el-form ref="dataForm" :rules="dialogStatus==='create'?dataFormRules:rules" :model="dataForm" label-position="right" label-width="150px" style="padding-right: 50px" element-loading-text="保存中...">
+                <el-row>
+                    <el-col :span="12">
+                        <el-form-item label="用户名(手机号):" prop="username">
+                            <el-input v-model.trim="dataForm.username"/>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="真实姓名:" prop="realname">
+                            <el-input v-model.trim="dataForm.realname"/>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
                 <div v-if="dialogStatus=='create'">
-                    <el-form-item label="密码:" prop="password">
-                        <el-input v-model.trim="dataForm.password" :type="passwordType" placeholder="请输入密码">
-                            <el-button slot="append" icon="el-icon-view" @click="showPwd"/>
-                        </el-input>
-                    </el-form-item>
-                    <el-form-item label="确认密码:" prop="confirmPassword">
-                        <el-input v-model.trim="dataForm.confirmPassword" :type="confirmPasswordType" placeholder="请输入确认密码" @change="passwordChangeEvent">
-                            <el-button slot="append" icon="el-icon-view" @click="showConfirmPwd"/>
-                        </el-input>
-                    </el-form-item>
+                    <el-row>
+                        <el-col :span="12">
+                            <el-form-item label="密码:" prop="password">
+                                <el-input v-model.trim="dataForm.password" :type="passwordType" placeholder="请输入密码">
+                                    <el-button slot="append" icon="el-icon-view" @click="showPwd"/>
+                                </el-input>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="12">
+                            <el-form-item label="确认密码:" prop="confirmPassword">
+                                <el-input v-model.trim="dataForm.confirmPassword" :type="confirmPasswordType" placeholder="请输入确认密码" @change="passwordChangeEvent">
+                                    <el-button slot="append" icon="el-icon-view" @click="showConfirmPwd"/>
+                                </el-input>
+                            </el-form-item>
+                        </el-col>
+                    </el-row>
+
                 </div>
                 <div v-else>
-                    <el-form-item label="密码:">
-                        <el-input v-model.trim="dataForm.password" :type="passwordType" placeholder="请输入密码">
-                            <el-button slot="append" icon="el-icon-view" @click="showPwd"/>
-                        </el-input>
-                    </el-form-item>
-                    <el-form-item label="确认密码:">
-                        <el-input v-model.trim="dataForm.confirmPassword" :type="confirmPasswordType" placeholder="请输入确认密码" @change="passwordChangeEvent">
-                            <el-button slot="append" icon="el-icon-view" @click="showConfirmPwd"/>
-                        </el-input>
-                    </el-form-item>
+                    <el-row>
+                        <el-col :span="12">
+                            <el-form-item label="密码:" prop="password">
+                                <el-input v-model.trim="dataForm.password" :type="passwordType" placeholder="请输入密码">
+                                    <el-button slot="append" icon="el-icon-view" @click="showPwd"/>
+                                </el-input>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :span="12">
+                            <el-form-item label="确认密码:" prop="confirmPassword">
+                                <el-input v-model.trim="dataForm.confirmPassword" :type="confirmPasswordType" placeholder="请输入确认密码" @change="passwordChangeEvent">
+                                    <el-button slot="append" icon="el-icon-view" @click="showConfirmPwd"/>
+                                </el-input>
+                            </el-form-item>
+                        </el-col>
+                    </el-row>
                 </div>
-                <el-form-item label="单位:" prop="company">
-                    <el-input v-model.trim="dataForm.company"/>
-                </el-form-item>
-                <el-form-item label="办公电话:" prop="phone">
-                    <el-input v-model.trim="dataForm.phone"/>
-                </el-form-item>
-                <el-form-item label="手机号:" prop="mobile">
-                    <el-input v-model.trim="dataForm.mobile" oninput="value=value.replace(/^\.+|[^\d.]/g,'')"/>
-                </el-form-item>
-                <el-form-item label="邮箱:" prop="email">
-                    <el-input v-model.trim="dataForm.email"/>
-                </el-form-item>
-                <el-form-item label="部门:" prop="department">
-                    <el-input v-model.trim="dataForm.department"/>
-                </el-form-item>
-                <el-form-item label="职务:" prop="job">
-                    <el-input v-model.trim="dataForm.job"/>
-                </el-form-item>
-                <el-form-item label="统一社会信用代码:" prop="job">
-                    <el-input v-model.trim="dataForm.code"/>
-                </el-form-item>
-                <el-form-item label="管辖地区:">
-                    <el-select v-model="dataForm.province" filterable placeholder="请选择省份" @change="resetCity">
-                        <el-option
-                            v-for="item in provinceList"
-                            :key="item.name"
-                            :label="item.name"
-                            :value="item.name">
-                        </el-option>
-                    </el-select>
-                    <el-select v-model="dataForm.city"  placeholder="请选择城市" @change="resetArea">
-                        <el-option
-                            v-for="item in cityList"
-                            :key="item.name"
-                            :label="item.name"
-                            :value="item.name"
-                        >
-                        </el-option>
-                    </el-select>
-                    <el-select v-model="dataForm.area"  placeholder="请选择区县" @change="resetTown">
-                        <el-option
-                            v-for="item in areaList"
-                            :key="item.name"
-                            :label="item.name"
-                            :value="item.name"
-                        >
-                        </el-option>
-                    </el-select>
-                    <el-select v-model="dataForm.town"  placeholder="请选择街道" @change="resetCommunity">
-                        <el-option
-                            v-for="item in townList"
-                            :key="item.name"
-                            :label="item.name"
-                            :value="item.name"
-                        >
-                        </el-option>
-                    </el-select>
-                    <el-select v-model="dataForm.community"  placeholder="请选择社区">
-                        <el-option
-                            v-for="item in communityList"
-                            :key="item.name"
-                            :label="item.name"
-                            :value="item.name"
-                        >
-                        </el-option>
-                    </el-select>
-                </el-form-item>
-                <el-form-item label="用户类型:" prop="type">
-                    <el-select v-model.trim="dataForm.type" placeholder="请选择用户类型" auto-complete="on" style="width:100%;">
-                        <el-option v-show="userType != 3" :value="2" label="管理员"/>
-                        <el-option :value="3" label="普通用户"/>
-                    </el-select>
-                </el-form-item>
+                <el-row>
+                    <el-col :span="12">
+                        <el-form-item label="身份证号:" prop="idcard">
+                            <el-input v-model.trim="dataForm.idcard"/>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="邮箱:" prop="email">
+                            <el-input v-model.trim="dataForm.email"/>
+                        </el-form-item>
+                    </el-col>
+
+                </el-row>
+                <el-row>
+                    <el-col :span="12">
+                        <el-form-item label="单位:" prop="company">
+                            <el-select v-model.trim="dataForm.company"  auto-complete="on" style="width:100%;">
+                                <el-option
+                                    v-for="item in companyList"
+                                    :key="item.id"
+                                    :value="item.company"
+                                    :label="item.company"
+                                >
+                                </el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="部门:" prop="department">
+                            <el-select v-model.trim="dataForm.department"  auto-complete="on" style="width:100%;">
+                                <el-option
+                                    v-for="item in departmentList"
+                                    :key="item.id"
+                                    :value="item.department"
+                                    :label="item.department"
+                                >
+                                </el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+
+                </el-row>
+                <el-row>
+                    <el-col :span="12">
+                        <el-form-item label="职务:" prop="job">
+                            <el-input v-model.trim="dataForm.job"/>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="用户类型:" prop="type">
+                            <el-select v-model.trim="dataForm.type" placeholder="请选择用户类型" auto-complete="on" style="width:100%;">
+                                <el-option
+                                    v-for="item in typeList"
+                                    :key="item.id"
+                                    :value="item.id"
+                                    :label="item.name"
+                                >
+                                </el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+
+                </el-row>
+                <el-row>
+                    <el-col :span="12">
+                        <el-form-item label="是否单位负责人:" prop="iscompany">
+                            <el-select v-model.trim="dataForm.iscompany"   style="width:100%;">
+                                <el-option
+                                    v-for="item in isList"
+                                    :key="item.id"
+                                    :value="item.id"
+                                    :label="item.name"
+                                >
+                                </el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="是否部门负责人:" prop="isdepartment">
+                            <el-select v-model.trim="dataForm.isdepartment" style="width:100%;">
+                                <el-option
+                                    v-for="item in isList"
+                                    :key="item.id"
+                                    :value="item.id"
+                                    :label="item.name"
+                                >
+                                </el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+                <el-row>
+                    <el-col :span="12">
+                        <el-form-item label="状态:" prop="status">
+                            <el-select v-model.trim="dataForm.status"  auto-complete="on" style="width:100%;">
+                                <el-option
+                                    v-for="item in statusList"
+                                    :key="item.id"
+                                    :value="item.id"
+                                    :label="item.name"
+                                >
+                                </el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="定位卡编号:" prop="empNo">
+                            <el-input v-model.trim="dataForm.empNo"></el-input>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+                <el-row>
+                    <el-col :span="12">
+                        <el-form-item label="定位卡MAC地址:" prop="deviceNo">
+                            <el-input v-model.trim="dataForm.deviceNo"></el-input>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
             </el-form>
             <div slot="footer" class="dialog-footer">
                 <el-button @click="dialogFormVisible = false">取消</el-button>
@@ -379,38 +476,48 @@
             </div>
         </el-dialog>
         <el-dialog
-            :visible.sync="importDialogFormVisible2"
+            :visible.sync="bindDialogFormVisible"
             :modal-append-to-body="false"
             :close-on-click-modal="false"
-            title="用户统一社会信用代码导入"
-            width="700px"
+            title="绑定人员卡"
+            width="550px"
         >
             <el-form
                 ref="importForm"
                 label-position="right"
                 label-width="120px"
-                style="margin-left:50px;width:500px;"
-                element-loading-text="导入中..."
-            >
-                <el-form-item label="导入文件:">
-                    <input ref="importLabInput2" type="file" accept=".xls, .xlsx" >
-                </el-form-item>
-                <el-form-item label="excel参考模板:">
-                    <el-button type="text" @click="viewHandle2">下载模板</el-button>
-                </el-form-item>
+                style="margin-left:30px;width:400px;">
+                <el-row>
+                    <el-col :span="24">
+                        <el-form-item label="定位卡编号:" prop="empNo">
+                            <el-input v-model.trim="cardDataForm.empNo"></el-input>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+                <el-row>
+                    <el-col :span="24">
+                        <el-form-item label="定位卡MAC地址:" prop="deviceNo">
+                            <el-input v-model.trim="cardDataForm.deviceNo"></el-input>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+
             </el-form>
             <div slot="footer" class="dialog-footer">
-                <el-button @click="importDialogFormVisible2 = false">取消</el-button>
-                <el-button :disabled="importDisabled2" type="primary" @click="importHandle2()">导入</el-button>
+                <el-button @click="bindDialogFormVisible = false">取消</el-button>
+                <el-button type="primary" @click="bindCard()">确认</el-button>
             </div>
         </el-dialog>
         <div style="clear: both;"/>
+        <workLicense ref="workLicense"></workLicense>
     </div>
 </template>
 
 <script>
+    import workLicense from './components/workLicense/index'
     import { mapGetters } from 'vuex'
-    import { userList, createUser, deleteUser, updateUser, importUser,importUserCode, importDistrict,getDistrict,getDistrictByName,updateUserRole} from '@/api/user'
+    import { userList, createUser, deleteUser, updateUser, importUser,
+        importDistrict,getDistrict,getDistrictByName,updateUserRole,setInvalidDel,bindCard} from '@/api/user'
     import { checkBtnPermission } from '@/utils/permission'
     import { roleList } from '@/api/role'
     import { parseTime, computePageCount, parseUserType } from '@/utils'
@@ -418,8 +525,9 @@
     import Cookies from 'js-cookie'
     import { Message, MessageBox } from 'element-ui'
     import {getCityListData, getProvinceListData} from "@/api/area";
+    import { getAllCompany } from '../../../api/unitManage'
+    import { getAllDepartment } from '../../../api/departmentManage'
     const exampleFile = require('@/assets/example/user.xlsx')
-    const exampleFile2 = require('@/assets/example/userCode.xlsx')
     export default {
         name: 'UserTable',
         filters: {
@@ -435,6 +543,20 @@
                     message = message.substring(0, message.lastIndexOf(','))
                 }
                 return message
+            },
+            parseType(type){
+                let typeList = [{id:1,name:'超级管理员'},{id:2,name:'管理员'},{id:3,name:'普通用户'}]
+                if(type){
+                    let a = typeList.find(item => item.id === type)
+                    return a.name
+                }
+            },
+            parseStatus(status){
+                if(status === 1){
+                    return "正常"
+                }else if(status === 0){
+                    return "停用"
+                }
             },
             filterSafety(value) {
                 if (value) {
@@ -483,6 +605,9 @@
                 'username'
             ])
         },
+        components:{
+            workLicense
+        },
         data() {
             let _ref = this;
             const validateEmail = (rule, value, callback) => {
@@ -509,6 +634,7 @@
                 tableKey: 0,
                 userData: null,
                 listLoading: true,
+                iscompanyList:[{id:1,name:'否'},{id:0,name:'是'}],
                 queryForm: {
                     username: '',
                     company:'',
@@ -524,42 +650,58 @@
                     id: '',
                     username: '',
                     password: '',
-                    email: '',
-                    phone: '',
-                    mobile: '',
-                    company: '',
-                    department: '',
-                    province: '',
-                    city: '',
-                    area: '',
-                    town: '',
-                    community: '',
-                    type:'',
+                    realname:'',
+                    idcard:'',
+                    email:'',
+                    company:'',
+                    department:'',
                     job:'',
-                    code:'',
+                    type:'',
+                    iscompany:'',
+                    isdepartment:'',
+                    ispass:'',
+                    starttime:'',
+                    endtime:'',
+                    status:'',
+                    createdby:'',
+                    createddate:'',
+                    lastmodifiedby:'',
+                    lastmodifieddate:'',
+                    empNo:'',
+                    deviceNo:'',
+                },
+                cardDataForm:{
+                    username:'',
+                    empNo:'',
+                    deviceNo:''
                 },
                 importDialogFormVisible: false,
-                importDialogFormVisible2: false,
                 importDisabled: false,
-                importDisabled2: false,
                 dialogFormVisible: false,
-                dialogFormVisible2: false,
+                bindDialogFormVisible: false,
                 dialogStatus: '',
                 dataFormRules: {
-                    name: [{ required: true, message: '用户名不能为空', trigger: 'blur' }],
-                    email: [{ validator: validateEmail, trigger: 'blur' }],
+                    username: [{ required: true, message: '用户名不能为空', trigger: 'blur' }],
+                    realname: [{ required: true, message: '真实姓名不能为空', trigger: 'blur' }],
+                    // email: [{ validator: validateEmail, trigger: 'blur' }],
                     password: [{ required: true, message: '密码不能为空', trigger: 'blur' }],
                     confirmPassword: [{ required: true, message: '确认密码不能为空', trigger: 'blur' }],
-                    type: [{ required: true, message: '用户类型不能为空', trigger: 'blur' }]
+                    type: [{ required: true, message: '用户类型不能为空', trigger: 'change' }],
+                    status: [{ required: true, message: '状态不能为空', trigger: 'change' }],
+                    isanalysis: [{ required: true, message: '是否气体检测中心不能为空', trigger: 'change' }]
                 },
-                provinceList:[],
-                cityList:[],
-                areaList:[],
-                townList:[],
-                communityList:[],
-                districtList:[],
-                streetList:[],
-                committeeList:[],
+                rules: {
+                    username: [{ required: true, message: '用户名不能为空', trigger: 'blur' }],
+                    realname: [{ required: true, message: '真实姓名不能为空', trigger: 'blur' }],
+                    // email: [{ validator: validateEmail, trigger: 'blur' }],
+                    // password: [{ required: true, message: '密码不能为空', trigger: 'blur' }],
+                    // confirmPassword: [{ required: true, message: '确认密码不能为空', trigger: 'blur' }],
+                    type: [{ required: true, message: '用户类型不能为空', trigger: 'change' }],
+                    status: [{ required: true, message: '状态不能为空', trigger: 'change' }],
+                    isanalysis: [{ required: true, message: '是否气体检测中心不能为空', trigger: 'change' }]
+                },
+                isList:[{id:1,name:'是'},{id:0,name:'否'}],
+                typeList:[{id:1,name:'超级管理员'},{id:2,name:'管理员'},{id:3,name:'普通用户'}],
                 dialogUserRoleFormVisible: false,
                 userRoleDataForm: {
                     userRoles: [],
@@ -573,13 +715,16 @@
                 confirmPasswordType: 'password',
                 templateRadio: '',
                 instituteList: [],
-                departmentList: []
+                departmentList: [],
+                companyList:[],
+                statusList:[{id:1,name:'正常'},{id:0,name:'停用'}],
             }
         },
         created() {
-            console.log(this.userType)
             this.getUserList()
             this.getProvince()
+            this.getDepartmentData()
+            this.getCompanyData()
         },
         methods: {
             refreshHandle: function() {
@@ -604,7 +749,7 @@
                 params['type'] = _this.userType
                 for (const i in _this.queryForm) {
                     if (_this.queryForm[i] != undefined && _this.queryForm[i].toString() != '') {
-                        params[i] = this.queryForm[i]
+                        params[i] = _this.queryForm[i]
                     }
                 }
                 _this.listLoading = true
@@ -618,7 +763,7 @@
                         _this.currentPage = result.pageIndex
                         _this.userData = result.result
                     } else {
-                        parseError({ error: res.message, vm: _this })
+                        parseError({ error: res.data.message, vm: _this })
                     }
                     _this.listLoading = false
                 }).catch(error => {
@@ -626,6 +771,11 @@
                     parseError({ error: error, vm: _this })
                 })
             },
+
+            showWorkLicense(row){
+                this.$refs.workLicense.openWorkLicense(row)
+            },
+
             createHandle: function() {
                 this.$refs['dataForm'].validate((valid) => {
                     const _this = this
@@ -646,7 +796,7 @@
                                 })
                                 _this.getUserList()
                             } else {
-                                parseError({ error: res.message, vm: _this })
+                                parseError({ error: res.data.message, vm: _this })
                             }
                         }).catch(error => {
                             parseError({ error: error, vm: _this })
@@ -682,7 +832,7 @@
                         })
                         _this.getUserList()
                     } else {
-                        parseError({ error: res.message, vm: _this })
+                        parseError({ error: res.data.message, vm: _this })
                     }
                 }).catch(error => {
                     parseError({ error: error, vm: _this })
@@ -693,23 +843,52 @@
                     id: '',
                     username: '',
                     password: '',
-                    email: '',
-                    phone: '',
-                    mobile: '',
-                    company: '',
-                    department: '',
-                    province: '',
-                    city: '',
-                    area: '',
-                    town: '',
-                    community: '',
-                    type: '',
-                    job: ''
+                    realname:'',
+                    idcard:'',
+                    email:'',
+                    company:'',
+                    department:'',
+                    job:'',
+                    type:'',
+                    iscompany:'',
+                    isdepartment:'',
+                    ispass:'',
+                    starttime:'',
+                    endtime:'',
+                    status:'',
+                    createdby:'',
+                    createddate:'',
+                    lastmodifiedby:'',
+                    lastmodifieddate:'',
                 }
-                this.cityList = []
-                this.areaList = []
-                this.townList = []
-                this.communityList = []
+            },
+            getDepartmentData(){
+                getAllDepartment().then(res=>{
+                    if(res.data.code === '200'){
+                        this.departmentList = res.data.result
+                    }else{
+                        this.$message({
+                            type:'warning',
+                            message:res.data.message
+                        })
+                    }
+                }).catch(error =>{
+                    parseError({error:error,vm:this})
+                })
+            },
+            getCompanyData(){
+                getAllCompany().then(res=>{
+                    if(res.data.code === '200'){
+                        this.companyList = res.data.result
+                    }else{
+                        this.$message({
+                            type:'warning',
+                            message:res.data.message
+                        })
+                    }
+                }).catch(error =>{
+                    parseError({error:error,vm:this})
+                })
             },
             showCreateHandle() {
                 this.resetDataForm()
@@ -741,7 +920,7 @@
                                 })
                                 _this.getUserList()
                             } else {
-                                parseError({ error: res.message, vm: _this })
+                                parseError({ error: res.data.message, vm: _this })
                             }
                         }).catch(error => {
                             parseError({ error: error, vm: _this })
@@ -758,7 +937,7 @@
                         const roleList = res.result
                         _this.roleList = roleList
                     } else {
-                        parseError({ error: res.message, vm: _this })
+                        parseError({ error: res.data.message, vm: _this })
                     }
                 })
             },
@@ -799,7 +978,7 @@
                                 })
                                 _this.getUserList()
                             } else {
-                                parseError({ error: res.message, vm: _this })
+                                parseError({ error: res.data.message, vm: _this })
                             }
                         })
                     }
@@ -807,43 +986,12 @@
             },
             showEditHandle: function(row) {
                 this.resetDataForm()
-                this.dialogStatus = 'editor'
-                this.dataForm.id = row.id
-                this.dataForm.username = row.username
-                this.dataForm.email = row.email
-                this.dataForm.phone = row.phone
-                this.dataForm.company = row.company
-                this.dataForm.department = row.department
-                this.dataForm.province = row.province
-                this.dataForm.city = row.city
-                this.dataForm.area = row.area
-                this.dataForm.town = row.town
-                this.dataForm.community = row.community
-                this.dataForm.job = row.job
-                this.dataForm.type = row.type
+                this.dataForm = row
+                this.dataForm.password = null
+                this.dialogStatus = 'update'
                 this.dialogFormVisible = true
                 this.$nextTick(() => {
                     this.$refs['dataForm'].clearValidate()
-                })
-                const _this = this
-                const params = {}
-                params['province'] = row.province
-                params['city'] = row.city
-                params['area'] = row.area
-                params['town'] = row.town
-                params['community'] = row.community
-                getDistrictByName(params).then(response => {
-                    const res = response.data
-                    if (res.code == 200){
-                        this.provinceList = res.result.provinceList;
-                        this.cityList = res.result.cityList;
-                        this.areaList = res.result.areaList;
-                        this.townList = res.result.townList;
-                        this.communityList = res.result.communityList;
-                    } else {
-                        parseError({ error: res.message, vm: _this })
-                    }
-                }).catch(error => {
                 })
 
             },
@@ -900,15 +1048,8 @@
                 this.importDisabled = false
                 this.importDialogFormVisible = true
             },
-            showImportHandle2() {
-                this.importDisabled2 = false
-                this.importDialogFormVisible2 = true
-            },
             viewHandle() {
                 window.open(exampleFile, '_blank')
-            },
-            viewHandle2() {
-                window.open(exampleFile2, '_blank')
             },
             importHandle() {
                 const _this = this
@@ -931,35 +1072,7 @@
                             })
                             _this.getUserList()
                         } else {
-                            parseError({ error: res.message, vm: _this })
-                        }
-                    })
-                    .catch((error) => {
-                        parseError({ error: error, vm: _this })
-                    })
-            },
-            importHandle2() {
-                const _this = this
-                const formData = new FormData()
-                const userName = Cookies.get('userName')
-                formData.append('operator', userName)
-                const files = this.$refs['importLabInput2'].files
-                if (files && files.length > 0) {
-                    formData.append('file', files[0])
-                }
-                formData.append('action', 'import')
-                importUserCode(formData)
-                    .then((response) => {
-                        const res = response.data
-                        if (res.code == 200) {
-                            _this.importDialogFormVisible = false
-                            _this.$message({
-                                message: '导入成功',
-                                type: 'success'
-                            })
-                            _this.getUserList()
-                        } else {
-                            parseError({ error: res.message, vm: _this })
+                            parseError({ error: res.data.message, vm: _this })
                         }
                     })
                     .catch((error) => {
@@ -976,7 +1089,7 @@
                     if (res.code == 200){
                         this.provinceList = res.result;
                     } else {
-                        parseError({ error: res.message, vm: _this })
+                        parseError({ error: res.data.message, vm: _this })
                     }
                 }).catch(error => {
                 })
@@ -999,7 +1112,7 @@
                         this.dataForm.town = '';
                         this.dataForm.community = '';
                     } else {
-                        parseError({ error: res.message, vm: _this })
+                        parseError({ error: res.data.message, vm: _this })
                     }
                 }).catch(error => {
                 })
@@ -1020,7 +1133,7 @@
                         this.dataForm.town = '';
                         this.dataForm.community = '';
                     } else {
-                        parseError({ error: res.message, vm: _this })
+                        parseError({ error: res.data.message, vm: _this })
                     }
                 }).catch(error => {
                 })
@@ -1039,7 +1152,7 @@
                         this.dataForm.town = '';
                         this.dataForm.community = '';
                     } else {
-                        parseError({ error: res.message, vm: _this })
+                        parseError({ error: res.data.message, vm: _this })
                     }
                 }).catch(error => {
                 })
@@ -1056,7 +1169,7 @@
                         this.communityList = res.result;
                         this.dataForm.community = '';
                     } else {
-                        parseError({ error: res.message, vm: _this })
+                        parseError({ error: res.data.message, vm: _this })
                     }
                 }).catch(error => {
                 })
@@ -1114,6 +1227,53 @@
                     }
                 }
             },//市、镇、街道、委员会
+
+            bindCardHandle(row){
+                this.cardDataForm = {
+                    username:'',
+                    empNo:'',
+                    deviceNo:''
+                };
+
+                this.cardDataForm.username = row.username;
+                this.bindDialogFormVisible = true;
+            },
+
+            bindCard(){
+                const _this = this;
+                bindCard(_this.cardDataForm).then(response => {
+                    const res = response.data
+                    if (res.code === '200'){
+                        _this.$message({
+                            message: '绑定成功',
+                            type: 'success'
+                        })
+                        this.bindDialogFormVisible = false;
+                        _this.getUserList();
+                    } else {
+                        parseError({ error: res.message, vm: _this })
+                    }
+                }).catch(error => {
+
+                })
+            },
+            setInvalidDel(row){
+                const _this = this;
+                setInvalidDel(row).then(response => {
+                    const res = response.data
+                    if (res.code === '200'){
+                        _this.$message({
+                            message: '删除成功',
+                            type: 'success'
+                        })
+                        _this.getUserList();
+                    } else {
+                        parseError({ error: res.message, vm: _this })
+                    }
+                }).catch(error => {
+                })
+
+            },
         }
     }
 </script>

--
Gitblit v1.9.2