12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010 |
- <template>
- <div class="page-container">
- <div class="search-container" v-show="showSearch">
- <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px" class="search_form">
- <div class="search_input">
- <el-form-item label="姓名">
- <el-input v-model="queryParams.realName" placeholder="请输入姓名" clearable size="small" style="width: 240px" @keyup.enter.native="handleQuery" />
- </el-form-item>
- <el-form-item label="电话号码">
- <el-input v-model="queryParams.phonenumber" placeholder="请输入电话号码" clearable size="small" style="width: 240px" @keyup.enter.native="handleQuery" />
- </el-form-item>
- </div>
- <div class="search_btn">
- <el-form-item>
- <el-button type="primary" icon="el-icon-search" size="small" @click="handleQuery">搜索</el-button>
- <el-button icon="el-icon-refresh" size="small" @click="resetQuery">重置</el-button>
- </el-form-item>
- </div>
- </el-form>
- </div>
- <div class="content-container">
-
- <TreeChoice :dataList="deptOptions" nodeKey="id" nodeVal="label" @itemClick="handleNodeClick" />
- <div class="main">
- <div class="table-nav">
- <div class="tags">
- <div class="tag">员工</div>
- </div>
-
- <div class="actions">
- <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['system:user:add']">添加</el-button>
- <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" v-hasPermi="['system:user:export']">导出</el-button>
- <el-button type="info" plain icon="el-icon-upload2" size="mini" @click="handleImport" v-hasPermi="['system:user:import']" style="margin-right: 10px">导入</el-button>
- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
- </div>
- </div>
-
- <el-table v-loading="loading" border :data="userList">
- <el-table-column label="序号" align="center" prop="userId" v-if="columns[0].visible" width="60">
- <template slot-scope="scope">
- <span>{{ scope.$index + 1 }}</span>
- </template>
- </el-table-column>
- <el-table-column label="头像" align="center" v-if="columns[1].visible" width="60">
- <template slot-scope="scope">
- <img v-bind:src="scope.row.avatar" class="img-circle img_height" @click="modifyAvatar(scope.row)" />
-
- </template>
- </el-table-column>
- <el-table-column label="姓名" align="center" prop="realName" v-if="columns[2].visible" :show-overflow-tooltip="true" width="120" />
- <el-table-column label="公司部门" align="center" prop="deptNames" v-if="columns[3].visible" :show-overflow-tooltip="true" width="160" />
- <el-table-column label="级别职务" align="center" prop="levelJobNames" v-if="columns[4].visible" width="160" />
- <el-table-column label="性质岗位" align="center" prop="naturePostNames" v-if="columns[5].visible" width="160" />
- <el-table-column label="角色权限" align="center" prop="roleJurisdictionNames" v-if="columns[6].visible" width="160" />
- <el-table-column label="手机号码" align="center" prop="phonenumber" v-if="columns[7].visible" width="150" />
- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
- <template slot-scope="scope" v-if="scope.row.userId !== 1">
- <el-button size="mini" type="text" icon="el-icon-edit" @click="getDutiesPowers(scope.row)" v-hasPermi="['system:user:edit']">职责权力</el-button>
- <el-button size="mini" type="text" icon="el-icon-edit" @click="getRolePermissions(scope.row)" v-hasPermi="['system:user:edit']">功能权限</el-button>
- <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['system:user:edit']">数据权限</el-button>
- <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['system:user:edit']">修改</el-button>
- <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['system:user:remove']">删除</el-button>
- </template>
- </el-table-column>
- </el-table>
-
- <pagination :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" />
- </div>
- </div>
-
- <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
- <div class="option">
- <div class="account"><a href="javascript:void(0);" @click="getAccountInfo">账号信息</a></div>
- <div class="basics"><a href="javascript:void(0);" @click="getBasicsInfo">基础信息</a></div>
- </div>
-
- <el-form ref="accountForm" :model="accountForm" :rules="rules" label-width="90px" v-show="accountShow">
- <el-row>
- <el-col :span="12">
- <el-form-item label="序号" prop="userId">
- <el-input v-model="accountForm.userId" placeholder="请输入序号" maxlength="30" disabled />
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="编号" prop="userNumber">
- <el-input v-model="accountForm.userNumber" placeholder="请输入编号" maxlength="30" />
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="12">
- <el-form-item label="姓名" prop="realName">
- <el-input v-model="accountForm.realName" placeholder="请输入姓名" maxlength="11" />
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="手机号" prop="phonenumber">
- <el-input v-model="accountForm.phonenumber" placeholder="请输入手机号" />
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="12">
- <el-form-item label="账号状态" prop="status">
- <el-radio v-model="accountForm.status" label="0">正常</el-radio>
- <el-radio v-model="accountForm.status" label="1">停用</el-radio>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="性别" prop="sex">
- <el-radio v-model="accountForm.sex" label="0">男</el-radio>
- <el-radio v-model="accountForm.sex" label="1">女</el-radio>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="24">
- <el-form-item label="身份证号" prop="idNumber">
- <el-input v-model="accountForm.idNumber" placeholder="请输入身份证号" />
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="24">
- <el-form-item label="公司部门" prop="deptIds">
- <el-cascader ref="deptCascader" :options="deptOptions" :props="props" clearable style="width: 100%" @change="deptCascaderChange"></el-cascader>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="24">
- <el-form-item label="职称级别" prop="levelJobIds">
- <el-cascader ref="levelCascader" :options="levelList" :props="props" clearable style="width: 100%" @change="levelCascaderChange"></el-cascader>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="24">
- <el-form-item label="性质岗位" prop="naturePostIds">
- <el-cascader ref="natureCascader" :options="natureList" :props="props" clearable style="width: 100%" @change="natureCascaderChange"></el-cascader>
- </el-form-item>
- </el-col>
- </el-row>
- </el-form>
-
- <el-form ref="basicsForm" :model="basicsForm" :rules="rules" label-width="90px" v-show="basicsShow" class="basics_form">
- <el-row>
- <el-col :span="12">
- <el-form-item label="年龄">
- <el-input placeholder="请输入年龄" maxlength="30" />
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="出生日期">
- <el-input placeholder="请输入出生日期" maxlength="30" />
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="12">
- <el-form-item label="QQ号">
- <el-input placeholder="请输入QQ号" maxlength="11" />
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="企业微信号">
- <el-input placeholder="请输入企业微信号" />
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="12">
- <el-form-item label="学历">
- <el-select placeholder="请选择" style="width: 100%">
- <el-optio></el-optio>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="原籍">
- <el-input placeholder="请输入原籍" />
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="12">
- <el-form-item label="现住址">
- <el-input placeholder="请输入现住址" />
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="家庭成员">
- <el-input placeholder="请输入家庭成员" />
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="12">
- <el-form-item label="婚姻状况">
- <el-select placeholder="请选择" style="width: 100%">
- <el-optio></el-optio>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="家庭收入">
- <el-input placeholder="请输入家庭收入" />
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="24">
- <el-form-item label="性格">
- <el-row>
- <el-col :span="6">
- <el-checkbox>内向</el-checkbox>
- </el-col>
- <el-col :span="6">
- <el-checkbox>外向</el-checkbox>
- </el-col>
- <el-col :span="6">
- <el-checkbox>中性</el-checkbox>
- </el-col>
- <el-col :span="6">
- <el-checkbox>偏外向</el-checkbox>
- </el-col>
- <el-col :span="6">
- <el-checkbox>保守</el-checkbox>
- </el-col>
- <el-col :span="6">
- <el-checkbox>开放</el-checkbox>
- </el-col>
- <el-col :span="6">
- <el-checkbox>依偎</el-checkbox>
- </el-col>
- <el-col :span="6">
- <el-checkbox>独立</el-checkbox>
- </el-col>
- </el-row>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="24">
- <el-form-item label="擅长">
- <el-row>
- <el-col :span="6">
- <el-checkbox>公关</el-checkbox>
- </el-col>
- <el-col :span="6">
- <el-checkbox>销售</el-checkbox>
- </el-col>
- <el-col :span="6">
- <el-checkbox>技术</el-checkbox>
- </el-col>
- <el-col :span="6">
- <el-checkbox>交际</el-checkbox>
- </el-col>
- <el-col :span="6">
- <el-checkbox>管理</el-checkbox>
- </el-col>
- <el-col :span="6">
- <el-checkbox>沟通</el-checkbox>
- </el-col>
- <el-col :span="6">
- <el-checkbox>培训</el-checkbox>
- </el-col>
- <el-col :span="6">
- <el-checkbox>电脑</el-checkbox>
- </el-col>
- </el-row>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="8">
- <el-form-item label="原工作单位">
- <el-input placeholder="请输入原单位" />
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="职务">
- <el-input placeholder="请输入职务" />
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="收入">
- <el-input placeholder="请输入收入" />
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="8">
- <el-form-item label="开始时间">
- <el-input placeholder="请输入开始时间" />
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="结束时间">
- <el-input placeholder="请输入结束时间" />
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item>
- <el-button class="addInfo" type="primary" icon="el-icon-plus">添加一条</el-button>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="24">
- <el-form-item label="工作特长">
- <el-input placeholder="请输入工作特长" />
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="24">
- <el-form-item label="期望职位">
- <el-input placeholder="请输入期望职位" />
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="24">
- <el-form-item label="期望收入">
- <el-input placeholder="请输入期望收入" />
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-form-item label="性格">
- <el-row>
- <el-col :span="6">
- <el-checkbox>靠父母</el-checkbox>
- </el-col>
- <el-col :span="6">
- <el-checkbox>依偎另一半</el-checkbox>
- </el-col>
- <el-col :span="6">
- <el-checkbox>独立</el-checkbox>
- </el-col>
- <el-col :span="6">
- <el-checkbox>自强</el-checkbox>
- </el-col>
- </el-row>
- </el-form-item>
- </el-row>
- <el-row>
- <el-col :span="24">
- <el-form-item label="梦想">
- <el-input placeholder="请输入梦想" />
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="24">
- <el-form-item label="喜爱">
- <el-row>
- <el-col :span="6">
- <el-checkbox>爬山</el-checkbox>
- </el-col>
- <el-col :span="6">
- <el-checkbox>看海</el-checkbox>
- </el-col>
- <el-col :span="6">
- <el-checkbox>旅游</el-checkbox>
- </el-col>
- <el-col :span="6">
- <el-checkbox>逛街</el-checkbox>
- </el-col>
- <el-col :span="6">
- <el-checkbox>看电视</el-checkbox>
- </el-col>
- <el-col :span="6">
- <el-checkbox>玩游戏</el-checkbox>
- </el-col>
- <el-col :span="6">
- <el-checkbox>锻炼</el-checkbox>
- </el-col>
- </el-row>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-form-item label="身高">
- <el-col :xs="12" :sm="12" :lg="{ span: '4-8' }" class="card-panel-col">
- <el-checkbox>大高个</el-checkbox>
- </el-col>
- <el-col :xs="12" :sm="12" :lg="{ span: '4-8' }" class="card-panel-col">
- <el-checkbox>高个</el-checkbox>
- </el-col>
- <el-col :xs="12" :sm="12" :lg="{ span: '4-8' }" class="card-panel-col">
- <el-checkbox>正常</el-checkbox>
- </el-col>
- <el-col :xs="12" :sm="12" :lg="{ span: '4-8' }" class="card-panel-col">
- <el-checkbox>偏矮</el-checkbox>
- </el-col>
- <el-col :xs="12" :sm="12" :lg="{ span: '4-8' }" class="card-panel-col">
- <el-checkbox>矮个</el-checkbox>
- </el-col>
- </el-form-item>
- </el-row>
- <el-row>
- <el-form-item label="颜值">
- <el-col :xs="12" :sm="12" :lg="{ span: '4-8' }" class="card-panel-col">
- <el-checkbox>很好</el-checkbox>
- </el-col>
- <el-col :xs="12" :sm="12" :lg="{ span: '4-8' }" class="card-panel-col">
- <el-checkbox>较好</el-checkbox>
- </el-col>
- <el-col :xs="12" :sm="12" :lg="{ span: '4-8' }" class="card-panel-col">
- <el-checkbox>正常</el-checkbox>
- </el-col>
- <el-col :xs="12" :sm="12" :lg="{ span: '4-8' }" class="card-panel-col">
- <el-checkbox>偏弱</el-checkbox>
- </el-col>
- <el-col :xs="12" :sm="12" :lg="{ span: '4-8' }" class="card-panel-col">
- <el-checkbox>很弱</el-checkbox>
- </el-col>
- </el-form-item>
- </el-row>
- <el-row>
- <el-col :span="12">
- <el-form-item label="体质">
- <el-select placeholder="请选择" style="width: 100%">
- <el-optio></el-optio>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="病史">
- <el-select placeholder="请选择" style="width: 100%">
- <el-optio></el-optio>
- </el-select>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-form-item label="刑法">
- <el-row>
- <el-col :span="6">
- <el-checkbox>无</el-checkbox>
- </el-col>
- <el-col :span="6">
- <el-checkbox>拘留</el-checkbox>
- </el-col>
- <el-col :span="6">
- <el-checkbox>取保</el-checkbox>
- </el-col>
- <el-col :span="6">
- <el-checkbox>实刑</el-checkbox>
- </el-col>
- </el-row>
- </el-form-item>
- </el-row>
- <el-row>
- <el-col :span="12">
- <el-form-item label="备用联系人">
- <el-select placeholder="请选择" style="width: 100%">
- <el-optio></el-optio>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="性别">
- <el-select placeholder="请选择" style="width: 100%">
- <el-optio></el-optio>
- </el-select>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="24">
- <el-form-item label="与之关系">
- <el-row>
- <el-col :span="6">
- <el-checkbox>夫妻</el-checkbox>
- </el-col>
- <el-col :span="6">
- <el-checkbox>父母</el-checkbox>
- </el-col>
- <el-col :span="6">
- <el-checkbox>兄弟</el-checkbox>
- </el-col>
- <el-col :span="6">
- <el-checkbox>姐妹</el-checkbox>
- </el-col>
- <el-col :span="6">
- <el-checkbox>朋友</el-checkbox>
- </el-col>
- <el-col :span="6">
- <el-checkbox>同学</el-checkbox>
- </el-col>
- <el-col :span="6">
- <el-checkbox>战友</el-checkbox>
- </el-col>
- </el-row>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="12">
- <el-form-item label="联系电话">
- <el-input placeholder="请输入联系电话" />
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="工作单位">
- <el-input placeholder="请输入工作单位" />
- </el-form-item>
- </el-col>
- </el-row>
- </el-form>
- <div slot="footer" class="dialog-footer">
- <el-button size="small" @click="cancel">取 消</el-button>
- <el-button size="small" type="primary" @click="submitForm">确 定</el-button>
- </div>
- </el-dialog>
-
- <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
- <el-upload
- ref="upload"
- :limit="1"
- accept=".xlsx, .xls"
- :headers="upload.headers"
- :action="upload.url + '?updateSupport=' + upload.updateSupport"
- :disabled="upload.isUploading"
- :on-progress="handleFileUploadProgress"
- :on-success="handleFileSuccess"
- :auto-upload="false"
- drag
- >
- <i class="el-icon-upload"></i>
- <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
- <div class="el-upload__tip text-center" slot="tip">
- <div class="el-upload__tip" slot="tip"> <el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的用户数据 </div>
- <span>仅允许导入xls、xlsx格式文件。</span>
- <el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline" @click="importTemplate">下载模板</el-link>
- </div>
- </el-upload>
- <div slot="footer" class="dialog-footer">
- <el-button size="small" type="primary" @click="submitFileForm">确 定</el-button>
- <el-button size="small" @click="upload.open = false">取 消</el-button>
- </div>
- </el-dialog>
-
- <el-dialog title="功能权限" :visible.sync="dialogTableRolePermissions">
- <el-table border>
- <el-table-column label="名称" align="center" width="180"></el-table-column>
- <el-table-column label="描述" align="center"></el-table-column>
- </el-table>
- <div slot="footer" class="dialog-footer">
- <el-button size="small" @click="cancalRolePermissions">取 消</el-button>
- <el-button size="small" type="primary" @click="saveRolePermissions">保 存</el-button>
- </div>
- </el-dialog>
-
- <el-dialog title="责权信息" :visible.sync="dialogPower" width="30%" :before-close="handleClose">
- <div class="">
- <span>级别职务:</span>
- <el-select v-model="jodId" placeholder="请选择" @change="changeJob()">
- <el-option v-for="item in levelJobs" :key="item.jobId" :label="item.jobName" :value="item.jobId"> </el-option>
- </el-select>
- </div>
- <div class="responsibility">
- <span>责任</span>
- </div>
- <el-input type="textarea" :rows="3" v-model="responsibility" :disabled="true" placeholder="请输入内容"> </el-input>
- <div class="responsibility">
- <span>权利</span>
- </div>
- <el-input type="textarea" :rows="3" v-model="right" :disabled="true" placeholder="请输入内容"> </el-input>
- </el-dialog>
-
- <userAvatar ref="userAvatar" />
- </div>
- </template>
- <script>
- import { getUser, delUser, addUser, updateUser, getStaffList, getLevelTreeSelect, getResponsibilityRight, getNatureTreeSelect, getAuthRole } from '@/api/system/employeenInfo'
- import { getToken } from '@/utils/auth'
- import { treeselect } from '@/api/system/dept'
- import userAvatar from './profile/userAvatar.vue'
- import Treeselect from '@riophae/vue-treeselect'
- import TreeChoice from '@/components/treeChoice/index.vue'
- import '@riophae/vue-treeselect/dist/vue-treeselect.css'
- export default {
- name: 'employeenInfo',
- dicts: ['sys_normal_disable', 'sys_user_sex'],
- components: { Treeselect, TreeChoice, userAvatar },
- data() {
- return {
-
- loading: true,
-
- showSearch: true,
-
- total: 0,
-
- userList: null,
-
- title: '',
-
- deptOptions: undefined,
-
- open: false,
-
- postOptions: [],
-
- roleOptions: [],
-
- accountForm: {
- userId: null
- },
-
- basicsForm: {},
- defaultProps: {
- children: 'children',
- label: 'label'
- },
-
- upload: {
-
- open: false,
-
- title: '',
-
- isUploading: false,
-
- updateSupport: 0,
-
- headers: { Authorization: 'Bearer ' + getToken() },
-
- url: process.env.VUE_APP_BASE_API + '/system/user/importData'
- },
-
- queryParams: {
- pageNum: 1,
- pageSize: 10,
- realName: undefined,
- phonenumber: undefined
- },
-
- columns: [
- { key: 0, label: `序号`, visible: true },
- { key: 1, label: `头像`, visible: true },
- { key: 2, label: `姓名`, visible: true },
- { key: 3, label: `公司部门`, visible: true },
- { key: 4, label: `级别职务`, visible: true },
- { key: 5, label: `性质岗位`, visible: true },
- { key: 6, label: `角色权限`, visible: true },
- { key: 7, label: `手机号码`, visible: true }
- ],
-
- rules: {
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- },
- dialogTableRolePermissions: false,
- dialogPower: false,
- accountShow: true,
- basicsShow: false,
- props: { multiple: true },
-
- levelList: [],
- natureList: [],
- levelJobs: [],
- jodId: '',
- responsibility: '',
- right: '',
- }
- },
- created() {
- this.getList()
- this.getTreeselect()
- },
- methods: {
-
- getList() {
- this.loading = true
- getStaffList(this.queryParams).then((response) => {
- this.userList = response.rows
- this.total = response.total
- this.loading = false
- })
- },
-
- getTreeselect() {
- treeselect().then((response) => {
- this.deptOptions = response.data
- })
- },
-
- handleNodeClick(data) {
- this.queryParams.deptId = data.id
- this.getList()
- },
-
- cancel() {
- this.open = false
- this.reset()
- },
-
- reset() {
- this.form = {
- userId: undefined,
- deptId: undefined,
-
- nickName: undefined,
- password: undefined,
- phonenumber: undefined,
- email: undefined,
- sex: undefined,
- status: '0',
- remark: undefined,
- postIds: [],
- roleIds: []
- }
- this.resetForm('form')
- },
-
- handleQuery() {
- this.queryParams.pageNum = 1
- this.getList()
- },
-
- resetQuery() {
- this.resetForm('queryForm')
- this.handleQuery()
- },
-
- handleAdd() {
- this.reset()
- this.getTreeselect()
- this.open = true
- this.title = '添加用户'
- this.getLevelList()
- this.getNatureList()
- this.accountForm.userId =
- Math.max.apply(
- Math,
- this.userList.map(function (item) {
- return item.userId
- })
- ) + 1
-
-
-
-
-
- },
-
- getRolePermissions(row) {
- getAuthRole(row.userId).then((res) => {
- console.log(res)
- })
- this.dialogTableRolePermissions = true
- },
-
- saveRolePermissions() {
- this.dialogTableRolePermissions = false
- },
-
- cancalRolePermissions() {
- this.dialogTableRolePermissions = false
- },
-
- getDutiesPowers(row) {
- let staff = this.userList.find((item, index, c) => item.userId === row.userId)
- this.levelJobs = staff.levelJobs
- this.jodId = this.levelJobs[0].jobId
- console.log(this.levelJobs)
- this.dialogPower = true
- },
-
- changeJob(val) {
-
- console.log(123)
- },
-
- getAccountInfo() {
- this.accountShow = true
- this.basicsShow = false
- },
-
- getBasicsInfo() {
- this.accountShow = false
- this.basicsShow = true
- },
-
- modifyAvatar(row) {
- this.$refs.userAvatar.editCropper()
- },
-
- handleClose() {
- this.dialogPower = false
- },
-
- getLevelList() {
- getLevelTreeSelect().then((res) => {
- if (res.code == 200) {
- this.levelList = res.data
- } else {
- this.$msg({ type: 'error', message: res.msg })
- }
- })
- },
-
- getNatureList() {
- getNatureTreeSelect().then((res) => {
- if (res.code == 200) {
- this.natureList = res.data
- } else {
- this.$msg({ type: 'error', message: res.msg })
- }
- })
- },
-
- deptCascaderChange(val) {
- let getCheckedNodes = this.$refs.deptCascader.getCheckedNodes()
- const newArr = getCheckedNodes.map((item, index, c) => item.data.id)
- this.accountForm.deptIds = newArr.join(',')
- console.log(this.accountForm.deptIds)
- },
-
- levelCascaderChange(val) {
- let getCheckedNodes = this.$refs.levelCascader.getCheckedNodes()
- const newArr = getCheckedNodes.map((item, index, c) => item.data.id)
- this.accountForm.levelJobIds = newArr.join(',')
- console.log(this.accountForm.levelJobIds)
- },
-
- natureCascaderChange(val) {
- let getCheckedNodes = this.$refs.natureCascader.getCheckedNodes()
- const newArr = getCheckedNodes.map((item, index, c) => item.data.id)
- this.accountForm.naturePostIds = newArr.join(',')
- console.log(this.accountForm.naturePostIds)
- },
-
- handleUpdate(row) {
- this.reset()
- this.getTreeselect()
- const userId = row.userId || this.ids
- getUser(userId).then((response) => {
- this.form = response.data
- this.postOptions = response.posts
- this.roleOptions = response.roles
- this.form.postIds = response.postIds
- this.form.roleIds = response.roleIds
- this.open = true
- this.title = '修改用户'
- this.form.password = ''
- })
- },
-
- submitForm: function () {
- console.log(this.accountForm)
- this.$refs['accountForm'].validate((valid) => {
- if (valid) {
- if (this.form.userId != undefined) {
- updateUser(this.form).then((response) => {
- this.$modal.msgSuccess('修改成功')
- this.open = false
- this.getList()
- })
- } else {
- addUser(this.accountForm).then((response) => {
- this.$modal.msgSuccess('新增成功')
- this.open = false
- this.getList()
- })
- }
- }
- })
- },
-
- handleDelete(row) {
-
- this.$modal
- .confirm('是否确认删除用户编号为"' + row.userId + '"的数据项?')
- .then(function () {
- return delUser(row.userId)
- })
- .then(() => {
- this.getList()
- this.$modal.msgSuccess('删除成功')
- })
- .catch(() => {})
- },
-
- handleExport() {
- this.download(
- 'system/user/export',
- {
- ...this.queryParams
- },
- `user_${new Date().getTime()}.xlsx`
- )
- },
-
- handleImport() {
- this.upload.title = '用户导入'
- this.upload.open = true
- },
-
- importTemplate() {
- this.download('system/user/importTemplate', {}, `user_template_${new Date().getTime()}.xlsx`)
- },
-
- handleFileUploadProgress(event, file, fileList) {
- this.upload.isUploading = true
- },
-
- handleFileSuccess(response, file, fileList) {
- this.upload.open = false
- this.upload.isUploading = false
- this.$refs.upload.clearFiles()
- this.$alert(response.msg, '导入结果', { dangerouslyUseHTMLString: true })
- this.getList()
- },
-
- submitFileForm() {
- this.$refs.upload.submit()
- }
- }
- }
- </script>
- <style scoped>
- .responsibility {
- width: 108px;
- height: 32px;
- margin-top: 20px;
- font-weight: bold;
- }
- .option {
- display: flex;
- margin-bottom: 10px;
- border-bottom: 1px solid #dfe6ec;
- }
- .account {
- width: 90px;
- height: 40px;
- text-align: center;
- line-height: 40px;
- font-size: 14px;
- border: 1px solid #dfe6ec;
- border-top-left-radius: 5px;
- border-right: none;
- border-bottom: none;
- }
- .basics {
- width: 90px;
- height: 40px;
- text-align: center;
- line-height: 40px;
- font-size: 14px;
- border: 1px solid #dfe6ec;
- border-bottom: none;
- }
- .basics_form {
- overflow: auto;
- height: 600px;
- }
- .img_height {
- height: 32px;
- width: 32px;
- vertical-align: middle;
- cursor: pointer;
- }
- .el-col-lg-4-8 {
- width: 20%;
- }
- .search_form {
- display: flex;
- justify-content: space-between;
- }
- .search_form .el-form-item {
- margin-bottom: 0;
- }
- </style>
|