You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1729 lines
56 KiB
1729 lines
56 KiB
<template>
|
|
<div class="box">
|
|
<div>
|
|
<div class="middlebox">
|
|
<div class="contenttitle">
|
|
权限管理 /
|
|
<span class="contenttitleBold">用户管理</span>
|
|
</div>
|
|
<div class="seachinput">
|
|
<el-select
|
|
v-model="departments"
|
|
placeholder="请选择账号"
|
|
filterable
|
|
:filter-method="remoteMethodes"
|
|
default-first-option
|
|
@change="quckDepartments"
|
|
clearable
|
|
size="small"
|
|
>
|
|
<el-option
|
|
v-for="item in quckDepartment"
|
|
:key="item.id"
|
|
:label="item.surname"
|
|
:value="item.id"
|
|
>
|
|
</el-option>
|
|
</el-select>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div style="display: flex; margin-top: 7px">
|
|
<div
|
|
:style="
|
|
'width: 208px;overflow: scroll;height:' +
|
|
(window.pageHeight < 600 ? 480 : window.pageHeight - 100) +
|
|
'px;background-color: #fff; border-radius: 8px'
|
|
"
|
|
>
|
|
<div style="margin-top: 10px">
|
|
<el-tree
|
|
:data="treedata"
|
|
:props="defaultProps"
|
|
@node-click="handleNodeClick"
|
|
highlight-current
|
|
node-key="id"
|
|
ref="itemType"
|
|
>
|
|
<span class="custom-tree-node" slot-scope="{ node, data }">
|
|
<div>
|
|
<span class="treeicons">
|
|
<!-- <i
|
|
class="el-icon-document-remove"
|
|
v-if="data.parentId == null"
|
|
></i> -->
|
|
<img
|
|
style="width: 20px; height: 20px; vertical-align: sub"
|
|
src="@/assets/images/order.png"
|
|
v-if="!data.parentId"
|
|
/>
|
|
</span>
|
|
<span :class="!data.parentId ? 'maxtitle' : 'mintitle'">{{
|
|
node.label
|
|
}}</span>
|
|
</div>
|
|
</span>
|
|
</el-tree>
|
|
</div>
|
|
</div>
|
|
<div style="display: block">
|
|
<div style="margin-left: 15px; display: flex">
|
|
<div
|
|
:style="
|
|
'width:' +
|
|
(window.pageWidth - 200 - 110 - 50 - 14) +
|
|
'px;padding: 15px;background-color: #fff;border-radius: 8px;'
|
|
"
|
|
>
|
|
<el-table
|
|
:data="tableData"
|
|
row-key="id"
|
|
:height="
|
|
window.pageHeight < 600 ? 450 : window.pageHeight - 130
|
|
"
|
|
class="el-table__body-wrapper tbody"
|
|
highlight-current-row
|
|
@row-click="rowick"
|
|
ref="tableData"
|
|
>
|
|
<el-table-column
|
|
type="index"
|
|
label="序号"
|
|
min-width="50"
|
|
align="center"
|
|
></el-table-column>
|
|
<el-table-column prop="userName" label="账号" min-width="100">
|
|
</el-table-column>
|
|
<el-table-column prop="email" label="邮箱" min-width="150">
|
|
</el-table-column>
|
|
<!-- <el-table-column prop="email" label="所属角色" width=""> </el-table-column> -->
|
|
<el-table-column
|
|
prop="phoneNumber"
|
|
label="手机号"
|
|
min-width="130"
|
|
>
|
|
</el-table-column>
|
|
<el-table-column prop="surname" label="姓名" min-width="100">
|
|
</el-table-column>
|
|
<!-- <el-table-column label="操作" min-width="400">
|
|
<template slot-scope="scope">
|
|
<el-button
|
|
type="primary"
|
|
@click="newlyincreased"
|
|
size="small">新增</el-button
|
|
>
|
|
<el-button type="primary" @click="editmony(scope.row)"
|
|
size="small">编辑</el-button
|
|
>
|
|
<el-button type="primary" @click="deleates(scope.row)"
|
|
size="small">删除</el-button
|
|
>
|
|
<el-button type="primary" @click="bandinuser(scope.row)"
|
|
size="small">绑定角色</el-button
|
|
>
|
|
<el-button type="primary" @click="editpassword(scope.row)"
|
|
size="small">修改密码</el-button
|
|
>
|
|
<el-button type="primary" @click="btnMenu(scope.row)"
|
|
size="small">菜单权限</el-button
|
|
>
|
|
</template>
|
|
</el-table-column> -->
|
|
</el-table>
|
|
</div>
|
|
<!-- 按钮区域 -->
|
|
<div style="margin-left: 10px">
|
|
<el-button type="" @click="newlyincreased" class="commonbutton"
|
|
>新增</el-button
|
|
>
|
|
<div style="margin-top: 10px">
|
|
<el-button type="" @click="editmony" class="commonbutton"
|
|
>编辑</el-button
|
|
>
|
|
</div>
|
|
<div style="margin-top: 10px">
|
|
<el-button type="" @click="deleates" class="deleteButton"
|
|
>删除</el-button
|
|
>
|
|
</div>
|
|
<div style="margin-top: 10px">
|
|
<el-button type="" @click="bandinuser" class="commonbutton"
|
|
>绑定角色</el-button
|
|
>
|
|
</div>
|
|
<div style="margin-top: 10px">
|
|
<el-button type="" @click="editpassword" class="commonbutton"
|
|
>修改密码</el-button
|
|
>
|
|
</div>
|
|
<div style="margin-top: 10px">
|
|
<el-button type="" @click="btnMenu" class="commonbutton"
|
|
>菜单权限</el-button
|
|
>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- 编辑 -->
|
|
<el-dialog
|
|
:title="title == 1 ? '新增用户' : '修改用户'"
|
|
:visible.sync="dialogVisible"
|
|
width="700px"
|
|
:close-on-click-modal="false"
|
|
>
|
|
<el-tabs
|
|
v-model="activeName"
|
|
v-if="title == 2 ? true : false"
|
|
@tab-click="handleClick"
|
|
style="height: 400px"
|
|
>
|
|
<el-tab-pane label="用户信息" name="first">
|
|
<el-form
|
|
v-if="dialogVisible"
|
|
ref="form"
|
|
:model="form"
|
|
label-width="80px"
|
|
:rules="ruless"
|
|
>
|
|
<el-row>
|
|
<el-col :span="12">
|
|
<el-form-item label="姓名" prop="surname">
|
|
<el-input
|
|
v-model="form.surname"
|
|
size="small"
|
|
/> </el-form-item
|
|
></el-col>
|
|
<el-col :span="12">
|
|
<el-form-item label="用户名" prop="userName">
|
|
<el-input
|
|
v-model="form.userName"
|
|
size="small"
|
|
/> </el-form-item
|
|
></el-col>
|
|
|
|
<!-- <el-col :span="12">
|
|
<el-form-item label="名称" prop="name">
|
|
<el-input v-model="form.name"></el-input> </el-form-item
|
|
></el-col> -->
|
|
<el-col :span="12">
|
|
<el-form-item label="手机号" prop="phoneNumber">
|
|
<el-input
|
|
v-model="form.phoneNumber"
|
|
size="small"
|
|
/> </el-form-item
|
|
></el-col>
|
|
<el-col :span="12">
|
|
<el-form-item label="邮箱">
|
|
<el-input
|
|
v-model="form.email"
|
|
size="small"
|
|
></el-input> </el-form-item
|
|
></el-col>
|
|
<el-col :span="12">
|
|
<el-form-item label="科室">
|
|
<!--
|
|
<div style="margin-top: -30px">
|
|
当前选中的组织<span> {{ orgIds }}</span>
|
|
</div>
|
|
-->
|
|
<el-cascader
|
|
v-model="orgId"
|
|
:options="organizationalstructure"
|
|
ref="example"
|
|
popper-class="example"
|
|
@change="cascaderchang"
|
|
:props="{
|
|
expandTrigger: 'hover',
|
|
label: 'displayName',
|
|
children: 'treeChildren',
|
|
checkStrictly: true,
|
|
value: 'id',
|
|
}"
|
|
size="small"
|
|
style="width: 100%"
|
|
/>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-form-item label="是否激活">
|
|
<el-checkbox
|
|
v-model="form.isActive"
|
|
true-label="true"
|
|
false-label="false"
|
|
></el-checkbox>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-form-item label="操作类别" prop="operatorType">
|
|
<el-select
|
|
v-model="form.operatorType"
|
|
placeholder="请选择操作类别"
|
|
size="small"
|
|
>
|
|
<el-option
|
|
v-for="item in operatorType"
|
|
:key="item.id"
|
|
:label="item.displayName"
|
|
:value="item.id"
|
|
></el-option>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-form-item label="签名图片">
|
|
<el-upload
|
|
class="avatar-uploader"
|
|
:action="actionUrl"
|
|
:show-file-list="false"
|
|
:on-change="getFile"
|
|
>
|
|
<i class="el-icon-plus avatar-uploader-icon"></i>
|
|
</el-upload>
|
|
<div v-if="form.userSign" style="display: inline-block;position: relative;">
|
|
<img
|
|
ref="phoUrl"
|
|
:src="form.userSign"
|
|
class="avatar"
|
|
/>
|
|
<span class="el-upload-delete">
|
|
<i class="el-icon-circle-close" @click="handleRemove"></i>
|
|
</span>
|
|
</div>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-form-item label="用户图片">
|
|
<el-upload
|
|
class="avatar-uploader"
|
|
:action="actionUrl"
|
|
:show-file-list="false"
|
|
:on-change="getFiles"
|
|
>
|
|
<i class="el-icon-plus avatar-uploader-icon"></i>
|
|
</el-upload>
|
|
<div v-if="form.userPhoto" style="display: inline-block;position: relative;">
|
|
<img ref="phoUrl" :src="form.userPhoto" class="avatar" />
|
|
<span class="el-upload-delete">
|
|
<i class="el-icon-circle-close" @click="handleRemoves"></i>
|
|
</span>
|
|
</div>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-form-item
|
|
label="密码"
|
|
prop="password"
|
|
v-if="title == 1 ? true : false"
|
|
>
|
|
<el-input v-model="form.password"></el-input> </el-form-item
|
|
></el-col>
|
|
</el-row>
|
|
</el-form>
|
|
</el-tab-pane>
|
|
<!-- 选择角色 -->
|
|
<el-tab-pane label="角色">
|
|
<el-checkbox-group v-model="form.roleNames">
|
|
<el-checkbox
|
|
v-model="item.id"
|
|
:label="item.name"
|
|
v-for="(item, index) in checkList"
|
|
:key="index"
|
|
@change="handleCheckAllChange"
|
|
>
|
|
</el-checkbox>
|
|
</el-checkbox-group>
|
|
</el-tab-pane>
|
|
<el-tab-pane label="科室操作权限">
|
|
<div style="overflow-y: scroll; height: 350px">
|
|
<el-tree
|
|
:props="{
|
|
label: 'displayName',
|
|
children: 'treeChildren',
|
|
}"
|
|
:default-checked-keys="department"
|
|
:default-expand-all="true"
|
|
show-checkbox
|
|
:data="setupdepartments"
|
|
node-key="id"
|
|
@check="iscrentddepartment"
|
|
ref="department"
|
|
size="small"
|
|
/>
|
|
</div>
|
|
</el-tab-pane>
|
|
<el-tab-pane label="项目类别权限">
|
|
<div style="overflow-y: scroll; height: 350px">
|
|
<el-tree
|
|
:props="{
|
|
label: 'displayName',
|
|
children: 'treeChildren',
|
|
}"
|
|
:default-checked-keys="haveitemtype"
|
|
:default-expand-all="true"
|
|
show-checkbox
|
|
:data="itemtype"
|
|
node-key="id"
|
|
@check="iscrentditemtype"
|
|
ref="haveitemtype"
|
|
size="small"
|
|
/>
|
|
</div>
|
|
</el-tab-pane>
|
|
</el-tabs>
|
|
<!-- //新增 -->
|
|
<el-form
|
|
v-show="title == 1 ? true : false"
|
|
v-if="dialogVisible"
|
|
ref="form"
|
|
:model="form"
|
|
label-width="80px"
|
|
:rules="rules"
|
|
>
|
|
<el-tabs style="height: 400px">
|
|
<el-tab-pane label="用户信息">
|
|
<el-row>
|
|
<el-col :span="12">
|
|
<el-form-item label="姓名" prop="surname">
|
|
<el-input
|
|
v-model="form.surname"
|
|
size="small"
|
|
></el-input> </el-form-item
|
|
></el-col>
|
|
<el-col :span="12">
|
|
<el-form-item label="用户名" prop="userName">
|
|
<el-input
|
|
v-model="form.userName"
|
|
size="small"
|
|
></el-input> </el-form-item
|
|
></el-col>
|
|
<!-- <el-col :span="12">
|
|
<el-form-item label="名称" prop="userName">
|
|
<el-input
|
|
v-model="form.usesurnamerName"
|
|
></el-input> </el-form-item
|
|
></el-col> -->
|
|
<!-- <el-col :span="12">
|
|
<el-form-item label="名称" prop="name">
|
|
<el-input v-model="form.name"></el-input> </el-form-item
|
|
></el-col> -->
|
|
<el-col :span="12">
|
|
<el-form-item label="手机号" prop="phoneNumber">
|
|
<el-input
|
|
v-model="form.phoneNumber"
|
|
size="small"
|
|
></el-input> </el-form-item
|
|
></el-col>
|
|
<el-col :span="12">
|
|
<el-form-item label="邮箱">
|
|
<el-input
|
|
v-model="form.email"
|
|
size="small"
|
|
></el-input> </el-form-item
|
|
></el-col>
|
|
<el-col :span="12">
|
|
<el-form-item
|
|
label="密码"
|
|
prop="password"
|
|
v-if="title == 1 ? true : false"
|
|
>
|
|
<el-input
|
|
show-password
|
|
v-model="form.password"
|
|
type="password"
|
|
autocomplete="new-password"
|
|
size="small"
|
|
></el-input> </el-form-item
|
|
></el-col>
|
|
<el-col :span="12">
|
|
<el-form-item label="是否激活">
|
|
<el-checkbox
|
|
v-model="form.isActive"
|
|
true-label="true"
|
|
false-label="false"
|
|
></el-checkbox>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="12">
|
|
<el-form-item label="操作类别" prop="operatorType">
|
|
<el-select
|
|
v-model="form.operatorType"
|
|
placeholder="请选择操作类别"
|
|
size="small"
|
|
>
|
|
<el-option
|
|
v-for="item in operatorType"
|
|
:key="item.id"
|
|
:label="item.displayName"
|
|
:value="item.id"
|
|
></el-option>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-form-item label="签名图片">
|
|
<el-upload
|
|
class="avatar-uploader"
|
|
:action="actionUrl"
|
|
:show-file-list="false"
|
|
:on-change="getFile"
|
|
>
|
|
<i class="el-icon-plus avatar-uploader-icon"></i>
|
|
</el-upload>
|
|
<div v-if="form.userSign" style="display: inline-block;position: relative;">
|
|
<img
|
|
ref="phoUrl"
|
|
:src="form.userSign"
|
|
class="avatar"
|
|
/>
|
|
<span class="el-upload-delete">
|
|
<i class="el-icon-circle-close" @click="handleRemove"></i>
|
|
</span>
|
|
</div>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="12">
|
|
<el-form-item label="用户图片">
|
|
<el-upload
|
|
class="avatar-uploader"
|
|
:action="actionUrl"
|
|
:show-file-list="false"
|
|
:on-change="getFiles"
|
|
>
|
|
<i class="el-icon-plus avatar-uploader-icon"></i>
|
|
</el-upload>
|
|
<div v-if="form.userPhoto" style="display: inline-block;position: relative;">
|
|
<img ref="phoUrl" :src="form.userPhoto" class="avatar" />
|
|
<span class="el-upload-delete">
|
|
<i class="el-icon-circle-close" @click="handleRemoves"></i>
|
|
</span>
|
|
</div>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
</el-tab-pane>
|
|
<!-- 角色111 -->
|
|
<el-tab-pane label="角色">
|
|
<el-checkbox-group v-model="form.roleNames">
|
|
<el-checkbox
|
|
v-model="item.id"
|
|
:label="item.name"
|
|
v-for="(item, index) in options"
|
|
:key="index"
|
|
>
|
|
</el-checkbox>
|
|
</el-checkbox-group>
|
|
</el-tab-pane>
|
|
<!-- 组织11 -->
|
|
<el-tab-pane label="所属科室">
|
|
<el-cascader
|
|
v-model="orgId"
|
|
:options="organizationalstructure"
|
|
ref="examples"
|
|
popper-class="example"
|
|
:show-all-levels="false"
|
|
@change="cascaderchangs"
|
|
:props="{
|
|
label: 'displayName',
|
|
children: 'treeChildren',
|
|
checkStrictly: true,
|
|
value: 'id',
|
|
expandTrigger: 'hover',
|
|
}"
|
|
size="small"
|
|
></el-cascader>
|
|
<!-- <el-tree
|
|
:data="newachitecture"
|
|
show-checkbox
|
|
:default-expand-all="true"
|
|
@check="ischesc"
|
|
node-key="id"
|
|
ref="tree"
|
|
:default-expanded-keys="nodekes"
|
|
:default-checked-keys="[5]"
|
|
:props="{ label: 'displayName', children: 'treeChildren' }"
|
|
>
|
|
</el-tree> -->
|
|
</el-tab-pane>
|
|
<el-tab-pane label="科室操作权限">
|
|
<div style="overflow-y: scroll; height: 350px">
|
|
<el-tree
|
|
:data="newdepartment"
|
|
show-checkbox
|
|
:default-expand-all="true"
|
|
@check="iscrentddepartments"
|
|
node-key="id"
|
|
ref="tree"
|
|
:props="{ label: 'displayName', children: 'treeChildren' }"
|
|
size="small"
|
|
>
|
|
</el-tree>
|
|
</div>
|
|
</el-tab-pane>
|
|
<el-tab-pane label="项目类别权限">
|
|
<div style="overflow-y: scroll; height: 350px">
|
|
<el-tree
|
|
:data="newitemtype"
|
|
show-checkbox
|
|
:default-expand-all="true"
|
|
@check="iscrentditemtypes"
|
|
node-key="id"
|
|
ref="newitemtype"
|
|
:props="{ label: 'displayName', children: 'treeChildren' }"
|
|
size="small"
|
|
>
|
|
</el-tree>
|
|
</div>
|
|
</el-tab-pane>
|
|
</el-tabs>
|
|
</el-form>
|
|
<span slot="footer" class="dialog-footer">
|
|
<el-button @click="cancellation" class="difference">取 消</el-button>
|
|
<el-button type="primary" @click="addlsit" class="commonbutton"
|
|
>确 定</el-button
|
|
>
|
|
</span>
|
|
</el-dialog>
|
|
|
|
<!-- 绑定用户组织弹框 -->
|
|
<el-dialog
|
|
title="绑定组织"
|
|
:visible.sync="bindingdialogVisible"
|
|
width="30%"
|
|
:close-on-click-modal="false"
|
|
>
|
|
<el-row>
|
|
<el-col :span="8">当前组织:</el-col>
|
|
<!-- <el-col :span="16" v-for="(item, index) in values" :key="index">{{
|
|
item.displayName
|
|
}}</el-col> -->
|
|
<el-col :span="8" v-for="(item, index) in values" :key="index">{{
|
|
item
|
|
}}</el-col>
|
|
</el-row>
|
|
<el-cascader
|
|
style="margin-top: 10px"
|
|
v-model="values"
|
|
:options="option"
|
|
:props="{
|
|
value: 'displayName',
|
|
label: 'displayName',
|
|
children: 'treeChildren',
|
|
checkStrictly: true,
|
|
}"
|
|
@change="handleChange"
|
|
></el-cascader>
|
|
<span slot="footer" class="dialog-footer">
|
|
<el-button @click="bindingdialogVisible = false">取 消</el-button>
|
|
<el-button type="primary" @click="binduser">确 定</el-button>
|
|
</span>
|
|
</el-dialog>
|
|
<!-- 用户绑定管理弹框 -->
|
|
<el-dialog
|
|
title="绑定角色"
|
|
:visible.sync="useerdialogVisible"
|
|
width="30%"
|
|
:close-on-click-modal="false"
|
|
>
|
|
<el-row>
|
|
<el-col :span="8">所属角色:</el-col>
|
|
<el-col :span="16" v-for="(item, index) in bingdusers" :key="index">{{
|
|
item.name
|
|
}}</el-col>
|
|
</el-row>
|
|
<el-select
|
|
v-model="uservalue"
|
|
multiple
|
|
placeholder="请选择"
|
|
style="margin-top: 15px"
|
|
size="small"
|
|
>
|
|
<el-option
|
|
v-for="item in useroptions"
|
|
:key="item.id"
|
|
:label="item.name"
|
|
:value="item.name"
|
|
>
|
|
</el-option>
|
|
</el-select>
|
|
<span slot="footer" class="dialog-footer">
|
|
<el-button @click="useerdialogVisible = false" class="difference"
|
|
>取 消</el-button
|
|
>
|
|
<el-button type="primary" @click="Identifyusers" class="commonbutton"
|
|
>确 定</el-button
|
|
>
|
|
</span>
|
|
</el-dialog>
|
|
<!-- 修改密码弹框 -->
|
|
<el-dialog
|
|
:title="`修改用户${usersName}密码`"
|
|
:visible.sync="editpassworddialogVisible"
|
|
width="30%"
|
|
:close-on-click-modal="false"
|
|
>
|
|
<el-form ref="form" :model="form" label-width="80px">
|
|
<el-form-item label="新密码">
|
|
<el-input
|
|
v-model="newPassWord"
|
|
max="16"
|
|
min="6"
|
|
size="small"
|
|
></el-input>
|
|
</el-form-item>
|
|
</el-form>
|
|
<el-form ref="form" :model="form" label-width="80px">
|
|
<el-form-item label="确认密码">
|
|
<el-input
|
|
v-model="confarmPassWord"
|
|
max="16"
|
|
min="6"
|
|
size="small"
|
|
></el-input>
|
|
</el-form-item>
|
|
</el-form>
|
|
<span slot="footer" class="dialog-footer">
|
|
<el-button
|
|
@click="editpassworddialogVisible = false"
|
|
class="difference"
|
|
>取 消</el-button
|
|
>
|
|
<el-button type="primary" @click="Changepassword" class="commonbutton"
|
|
>确 定</el-button
|
|
>
|
|
</span>
|
|
</el-dialog>
|
|
|
|
<!--查看用户菜单权限-->
|
|
<el-dialog
|
|
title="查看用户菜单权限"
|
|
:visible.sync="dialogWin.MenuPageSet"
|
|
width="300px"
|
|
:close-on-click-modal="false"
|
|
>
|
|
<MenuPageSet :params="dialogParams.MenuPageSet" />
|
|
</el-dialog>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
<script>
|
|
import {
|
|
usreslist,
|
|
newlists,
|
|
delestsid,
|
|
editmodify,
|
|
getbook,
|
|
userorganizat,
|
|
organizationtree,
|
|
userbind,
|
|
usersroles,
|
|
useraffiliation,
|
|
reverseselection,
|
|
usersinits,
|
|
selectbinding,
|
|
lognis,
|
|
} from "../../request/ruquset";
|
|
import { mapState } from "vuex";
|
|
import { isValid } from "@/utlis/validate";
|
|
import { getapi, postapi } from "@/api/api";
|
|
import { tcdate, deepCopy, objCopy } from "../../utlis/proFunc";
|
|
import MenuPageSet from "../../components/menuPage/MenuPageSet.vue";
|
|
|
|
// let validatePassword = (rule, value, callback) => {
|
|
// var reg1 =
|
|
// /^(?=.*\d)(?=.*[a-zA-Z])(?=.*[~!@#$%^&*.])[\da-zA-Z~!@#$%^&*.]{6,}$/; //密码必须是8位以上、必须含有字母、数字、特殊符号
|
|
// var reg2 = /(123|234|345|456|567|678|789|012)/; //不能有3个连续数字
|
|
// if (!reg1.test(value)) {
|
|
// callback(new Error("密码必须是6位以上、必须含有字母、数字、特殊符号"));
|
|
// } else if (reg2.test(value)) {
|
|
// callback(new Error("不能有3个连续数字"));
|
|
// } else {
|
|
// callback();
|
|
// }
|
|
// };
|
|
// let validatePassword = /^[a-zA-Z0-9@\$\^\.\*\\?]\{6,15}$/;
|
|
export default {
|
|
components: {
|
|
MenuPageSet,
|
|
},
|
|
data() {
|
|
return {
|
|
treedata: [],
|
|
defaultProps: {
|
|
children: "treeChildren",
|
|
label: "displayName",
|
|
},
|
|
orgIds: "",
|
|
orgId: "",
|
|
confarmPassWord: "", //确认密码
|
|
usersName: "", //用户名
|
|
department: [], //选中的科室
|
|
setupdepartments: [], //设置科室
|
|
newPassWord: "", //新密码
|
|
editpassworddialogVisible: false, //修改密码
|
|
nodekes: [],
|
|
activeName: "first",
|
|
chaxunform: {
|
|
surname: "",
|
|
phoneNumber: "",
|
|
userName: "",
|
|
},
|
|
useroptions: [],
|
|
options: [],
|
|
uservalue: [],
|
|
useerdialogVisible: false,
|
|
bindingdialogVisible: false,
|
|
values: [],
|
|
option: [],
|
|
crdetcascader: [], //绑定组织显示
|
|
|
|
dialogParams: {
|
|
MenuPageSet: { opra: "role" }, //默认角色
|
|
},
|
|
|
|
//表单校验
|
|
rules: {
|
|
password: [
|
|
{
|
|
required: true,
|
|
trigger: "blur",
|
|
message: "密码不能为空",
|
|
},
|
|
{
|
|
min: 6,
|
|
max: 15,
|
|
message: "长度在 6 到 15 个字符",
|
|
trigger: "blur",
|
|
},
|
|
// {
|
|
// required: true,
|
|
// trigger: "blur",
|
|
// validator: validatePassword,
|
|
// },
|
|
],
|
|
email: [
|
|
{
|
|
required: true,
|
|
message: "请输入邮箱地址",
|
|
trigger: "blur",
|
|
},
|
|
{
|
|
type: "email",
|
|
message: "请输入正确的邮箱地址",
|
|
trigger: ["blur", "change"],
|
|
},
|
|
],
|
|
phoneNumber: [
|
|
{ required: true, message: "请输入手机号", trigger: "blur" },
|
|
],
|
|
|
|
userName: [
|
|
{ required: true, message: "请输入用户名", trigger: "blur" },
|
|
],
|
|
surname: [
|
|
{ required: true, message: "请输入用户名称", trigger: "change" },
|
|
],
|
|
roleNames: [
|
|
{ required: true, message: "请选择所属用户", trigger: "change" },
|
|
],
|
|
operatorType: [
|
|
{ required: true, message: "请选择操作类别", trigger: "change" },
|
|
],
|
|
nam: [{ required: true, message: "请输入名", trigger: "change" }],
|
|
},
|
|
ruless: {
|
|
password: [
|
|
{
|
|
required: true,
|
|
trigger: "blur",
|
|
message: "密码不能为空",
|
|
},
|
|
{
|
|
min: 6,
|
|
max: 15,
|
|
message: "长度在 6 到 15 个字符",
|
|
trigger: "blur",
|
|
},
|
|
],
|
|
email: [
|
|
{
|
|
required: true,
|
|
message: "请输入邮箱地址",
|
|
trigger: "blur",
|
|
},
|
|
{
|
|
type: "email",
|
|
message: "请输入正确的邮箱地址",
|
|
trigger: ["blur", "change"],
|
|
},
|
|
],
|
|
phoneNumber: [
|
|
{ required: true, message: "请输入手机号", trigger: "blur" },
|
|
],
|
|
|
|
userName: [
|
|
{ required: true, message: "请输入用户名", trigger: "blur" },
|
|
],
|
|
surname: [
|
|
{ required: true, message: "请输入用户名称", trigger: "change" },
|
|
],
|
|
roleNames: [
|
|
{ required: true, message: "请选择所属用户", trigger: "change" },
|
|
],
|
|
operatorType: [
|
|
{ required: true, message: "请选择操作类别", trigger: "change" },
|
|
],
|
|
nam: [{ required: true, message: "请输入名", trigger: "change" }],
|
|
},
|
|
tableData: [],
|
|
optionsArr: [],
|
|
dialogVisible: false,
|
|
modetype: "",
|
|
total: 0,
|
|
form: {
|
|
surname: "",
|
|
name: "",
|
|
email: "",
|
|
surname: "",
|
|
phoneNumber: "",
|
|
password: "",
|
|
roleNames: [],
|
|
userName: "",
|
|
password: "",
|
|
isActive: true,
|
|
userSign: "",
|
|
userPhoto: "",
|
|
operatorType: "",
|
|
},
|
|
roleNames: [],
|
|
are: [],
|
|
checkList: [], //多选框
|
|
pages: {
|
|
SkipCount: 0,
|
|
MaxResultCount: 1000,
|
|
},
|
|
title: 1,
|
|
rowid: "",
|
|
userid: "",
|
|
bingdusers: [], //s所属用户角色
|
|
organizationalstructure: [], //组织架构
|
|
defaultKeys: [], //选中的
|
|
newachitecture: [], //新增弹框获取组织数据
|
|
// customer:[]
|
|
password: "",
|
|
passwordid: "",
|
|
newdepartment: [], //新增科室
|
|
curRow: {},
|
|
itemtype: [],
|
|
haveitemtype: [],
|
|
newitemtype: [],
|
|
departments: "",
|
|
quckDepartment: [],
|
|
initTableData: [],
|
|
actionUrl: "",
|
|
operatorType: [
|
|
{
|
|
id: "0",
|
|
displayName: "操作员",
|
|
},
|
|
{
|
|
id: "1",
|
|
displayName: "医生",
|
|
},
|
|
{
|
|
id: "2",
|
|
displayName: "总检医生",
|
|
},
|
|
{
|
|
id: "3",
|
|
displayName: "医生和总检医生",
|
|
},
|
|
],
|
|
};
|
|
},
|
|
computed: {
|
|
...mapState(["window", "dialogWin", "dataTransOpts", "changepassword"]),
|
|
},
|
|
created() {
|
|
this.password = this.changepassword;
|
|
this.btnQuery();
|
|
this.gettreedata();
|
|
this.idkes = window.sessionStorage.getItem("dataidkes");
|
|
},
|
|
|
|
methods: {
|
|
handleRemove(){
|
|
this.form.userSign=this.$options.data().form.userSign
|
|
},
|
|
handleRemoves(){
|
|
this.form.userPhoto=this.$options.data().form.userPhoto
|
|
},
|
|
quckDepartments(e) {
|
|
if (e) {
|
|
let currentKey = "";
|
|
this.quckDepartment.forEach((item) => {
|
|
if (e == item.id) {
|
|
currentKey = item.organizationUnitId;
|
|
}
|
|
});
|
|
this.$refs["itemType"].setCurrentKey(currentKey);
|
|
let selected = this.$refs["itemType"].getCurrentNode();
|
|
if (
|
|
this.$refs["itemType"].getNode(selected) &&
|
|
this.$refs["itemType"].getNode(selected).parent
|
|
) {
|
|
this.expandParents(this.$refs["itemType"].getNode(selected).parent);
|
|
}
|
|
postapi(
|
|
"/api/identity/users/getlistinorganizationunit",{
|
|
organizationUnitId:currentKey
|
|
}
|
|
).then((res) => {
|
|
if (res.code != -1) {
|
|
this.tableData = res.data;
|
|
this.tableData.forEach((item, index) => {
|
|
if (e == item.id) {
|
|
this.$refs["tableData"].setCurrentRow(item);
|
|
this.rowick(item);
|
|
this.searchup(item, index);
|
|
}
|
|
});
|
|
}
|
|
});
|
|
} else {
|
|
this.remoteMethodes();
|
|
}
|
|
},
|
|
remoteMethodes(keyWords) {
|
|
if (keyWords) {
|
|
this.quckDepartment = [];
|
|
this.initTableData.forEach((item) => {
|
|
if (
|
|
item.userName.toLowerCase().indexOf(keyWords.toLowerCase()) > -1 ||
|
|
item.simpleCode.toLowerCase().indexOf(keyWords.toLowerCase()) > -1
|
|
|| item.surname.toLowerCase().indexOf(keyWords.toLowerCase()) > -1
|
|
) {
|
|
this.quckDepartment.push(item);
|
|
}
|
|
});
|
|
} else {
|
|
this.quckDepartment = deepCopy(this.initTableData);
|
|
}
|
|
},
|
|
expandParents(node) {
|
|
node.expanded = true;
|
|
if (node.parent) {
|
|
this.expandParents(node.parent);
|
|
}
|
|
},
|
|
searchup(data, index) {
|
|
this.$nextTick(() => {
|
|
if (index == 0) {
|
|
index = 1;
|
|
}
|
|
const targetTop = this.$refs["tableData"].$el
|
|
.querySelectorAll(".el-table__body tr")
|
|
[index - 1].getBoundingClientRect().top;
|
|
const containerTop = this.$refs["tableData"].$el
|
|
.querySelector(".el-table__body")
|
|
.getBoundingClientRect().top;
|
|
const scrollParent = this.$refs["tableData"].$el.querySelector(
|
|
".el-table__body-wrapper"
|
|
);
|
|
scrollParent.scrollTop = targetTop - containerTop;
|
|
});
|
|
},
|
|
getFile(file, fileList) {
|
|
//上传头像
|
|
this.getBase64(file.raw).then((res) => {
|
|
this.form.userSign = res;
|
|
console.log(res);
|
|
});
|
|
},
|
|
getFiles(file, fileList) {
|
|
//上传头像
|
|
this.getBase64(file.raw).then((res) => {
|
|
this.form.userPhoto = res;
|
|
});
|
|
},
|
|
getBase64(file) {
|
|
//把图片转成base64编码
|
|
return new Promise(function (resolve, reject) {
|
|
let reader = new FileReader();
|
|
let imgResult = "";
|
|
reader.readAsDataURL(file);
|
|
reader.onload = function () {
|
|
imgResult = reader.result;
|
|
};
|
|
reader.onerror = function (error) {
|
|
reject(error);
|
|
};
|
|
reader.onloadend = function () {
|
|
resolve(imgResult);
|
|
};
|
|
});
|
|
},
|
|
cancellation() {
|
|
this.dialogVisible = false;
|
|
this.form = this.$options.data().form;
|
|
this.roleNames = this.$options.data().roleNames;
|
|
this.department = this.$options.data().department;
|
|
this.orgId = this.$options.data().orgId;
|
|
this.haveitemtype = this.$options.data().haveitemtype;
|
|
},
|
|
cascaderchang(v) {
|
|
if (v.length > 1) {
|
|
this.orgId = this.orgId.slice(-1)[0];
|
|
} else {
|
|
this.orgId = this.orgId[0];
|
|
}
|
|
this.$refs.example.toggleDropDownVisible();
|
|
},
|
|
cascaderchangs(v) {
|
|
if (v.length > 1) {
|
|
this.orgId = this.orgId.slice(-1)[0];
|
|
} else {
|
|
this.orgId = this.orgId[0];
|
|
}
|
|
this.$refs.examples.toggleDropDownVisible();
|
|
},
|
|
gettreedata() {
|
|
getapi("/api/app/organization-units/by-code-all").then((res) => {
|
|
if (res.code != -1) {
|
|
this.treedata = res.data;
|
|
}
|
|
});
|
|
},
|
|
handleNodeClick(data) {
|
|
this.department = data.displayName;
|
|
postapi(
|
|
"/api/identity/users/getlistinorganizationunit",{
|
|
organizationUnitId:data.id
|
|
}
|
|
).then((res) => {
|
|
if (res.code != -1) {
|
|
this.tableData = res.data;
|
|
}
|
|
});
|
|
},
|
|
rowick(row) {
|
|
this.curRow = row;
|
|
// posjrctid(row.id).then((res) => {
|
|
// this.curRow = { ...res.data };
|
|
// });
|
|
},
|
|
iscrentddepartment() {
|
|
this.department = this.$refs.department.getCheckedKeys(true);
|
|
},
|
|
iscrentddepartments() {
|
|
this.department = this.$refs.tree.getCheckedKeys(true);
|
|
},
|
|
iscrentditemtype() {
|
|
this.haveitemtype = this.$refs.haveitemtype.getCheckedKeys(true);
|
|
},
|
|
iscrentditemtypes() {
|
|
this.haveitemtype = this.$refs.newitemtype.getCheckedKeys(true);
|
|
},
|
|
//修改密码确定按钮
|
|
Changepassword() {
|
|
if (this.newPassWord == "") {
|
|
this.$message.warning("请输入新密码");
|
|
} else if (this.confarmPassWord == "") {
|
|
this.$message.warning("请输入确认密码");
|
|
} else if (this.newPassWord != this.confarmPassWord) {
|
|
this.$message.warning("二次输入密码不一致");
|
|
} else {
|
|
postapi("/api/identity/users/resetpassword", {
|
|
userId: this.passwordid,
|
|
newPassWord: this.newPassWord,
|
|
}).then((res) => {
|
|
if (res.code != -1) {
|
|
this.editpassworddialogVisible = false;
|
|
//this.$message.success("修改成功");
|
|
}
|
|
});
|
|
}
|
|
},
|
|
//修改密码
|
|
editpassword() {
|
|
if (this.curRow.id == undefined) {
|
|
this.$message.warning("请选择操作的数据");
|
|
} else {
|
|
this.editpassworddialogVisible = true;
|
|
this.passwordid = this.curRow.id;
|
|
this.usersName = this.curRow.surname;
|
|
}
|
|
},
|
|
// 查看用户菜单权限
|
|
btnMenu(row) {
|
|
if (this.curRow.id == undefined) {
|
|
this.$message.warning("请选择操作的数据");
|
|
} else {
|
|
this.dialogParams.MenuPageSet.opra = "user";
|
|
this.dataTransOpts.tableS.adp_users.id = this.curRow.id;
|
|
this.dialogWin.MenuPageSet = true;
|
|
setTimeout(() => {
|
|
this.dataTransOpts.refresh.role_menu_info.M++;
|
|
}, 20);
|
|
}
|
|
},
|
|
|
|
//新增选择的
|
|
ischesc() {
|
|
this.nodekes = this.$refs.tree.getCheckedKeys(true);
|
|
},
|
|
//选中的组织
|
|
iscrentd() {
|
|
this.defaultKeys = this.$refs.trees.getCheckedKeys(true);
|
|
// console.log("222", this.$refs.tree.defaultKeys(true));
|
|
},
|
|
//选中适合的值
|
|
handleCheckAllChange() {
|
|
// this.form.roleNames = this.roleNames;
|
|
// console.log(this.activeName);
|
|
},
|
|
//table页切换
|
|
handleClick() {
|
|
if (this.activeName == "1") {
|
|
//获取当前绑定用户
|
|
useraffiliation(this.form.id).then((res) => {
|
|
if (res.code != -1) {
|
|
if (res.data.items && res.data.items.length > 0) {
|
|
let val = res.data.items.map((item) => {
|
|
return item.name;
|
|
});
|
|
this.$set(this.form, "roleNames", val);
|
|
} else {
|
|
this.$set(this.form, "roleNames", []);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
},
|
|
|
|
//用户列表查询
|
|
// inquireabout() {
|
|
// this.btnQuery();
|
|
// // usreslist()
|
|
// },
|
|
btnQuery() {
|
|
postapi("/api/identity/users/getlistinorganizationunit").then((res) => {
|
|
if (res.code != -1) {
|
|
this.tableData = res.data;
|
|
this.quckDepartment = [...res.data];
|
|
this.initTableData = [...res.data];
|
|
}
|
|
});
|
|
},
|
|
|
|
onchang(v) {
|
|
// this.form.roleNames[0] = v;
|
|
},
|
|
//级联选择器
|
|
handleChange(value) {
|
|
this.values = value;
|
|
},
|
|
|
|
// getlist() {
|
|
// usreslist(this.pages).then((res) => {
|
|
// this.tableData = res.data.items;
|
|
|
|
// this.total = res.data.totalCount;
|
|
// console.log(res);
|
|
// });
|
|
// },
|
|
|
|
//绑定
|
|
binding(row) {
|
|
this.bindingdialogVisible = true;
|
|
this.rowid = row.id;
|
|
organizationtree().then((res) => {
|
|
if (res.code != -1) {
|
|
this.option = res.data;
|
|
}
|
|
});
|
|
|
|
// reverseselection(row.id).then((res) => {
|
|
// this.crdetcascader = res.data;
|
|
// console.log(res);
|
|
// });
|
|
// userorganizat(row.id, this.idkes ).then((res) => {
|
|
// console.log(res);
|
|
// });
|
|
},
|
|
//绑定用户角色
|
|
bandinuser() {
|
|
if (this.curRow.id == undefined) {
|
|
this.$message.warning("请选择操作的数据");
|
|
} else {
|
|
this.useerdialogVisible = true;
|
|
this.userid = this.curRow.id;
|
|
usersroles().then((res) => {
|
|
if (res.code != -1) {
|
|
this.useroptions = res.data.items;
|
|
}
|
|
});
|
|
useraffiliation(this.curRow.id).then((res) => {
|
|
if (res.code != -1) {
|
|
res.data.items.forEach((element) => {
|
|
this.uservalue = element[name];
|
|
});
|
|
// this.uservalue=res.data.items[name]
|
|
this.bingdusers = res.data.items;
|
|
}
|
|
|
|
// console.log(res);
|
|
});
|
|
// this.form.roleNames.push(row.userName)
|
|
// userbind(row.id,{roleNames:this.form.roleNames}).then(res=>{
|
|
// console.log(res)
|
|
// })
|
|
// console.log(row);
|
|
}
|
|
},
|
|
//确定绑定
|
|
Identifyusers() {
|
|
// let are = [];
|
|
// console.log(this.uservalue);
|
|
// are.push(this.uservalue);
|
|
// this.uservalue = are;
|
|
if (this.uservalue !== "") {
|
|
userbind(this.userid, { roleNames: this.uservalue }).then((res) => {
|
|
if (res.code != -1) {
|
|
this.btnQuery();
|
|
this.useerdialogVisible = false;
|
|
//this.$message.success("绑定成功");
|
|
}
|
|
});
|
|
} else {
|
|
this.$message.warning("请选择用户");
|
|
}
|
|
},
|
|
//绑定
|
|
binduser() {
|
|
if (this.values.length == 0) {
|
|
this.$message.warning("请选中");
|
|
} else {
|
|
userorganizat(this.rowid, this.idkes).then((res) => {
|
|
if (res.code != -1) {
|
|
this.bindingdialogVisible = false;
|
|
this.btnQuery();
|
|
//this.$message.success("操作成功");
|
|
}
|
|
// this.values = [];
|
|
// console.log(res);
|
|
});
|
|
}
|
|
},
|
|
//新增用户
|
|
newlyincreased() {
|
|
this.dialogVisible = true;
|
|
this.title = 1;
|
|
if (this.title == 1) {
|
|
this.form = this.$options.data().form;
|
|
this.orgId = this.department;
|
|
}
|
|
getbook().then((res) => {
|
|
// res.data.items.forEach((element) => {
|
|
// this.form.roleNames = element.name;
|
|
// console.log(element);
|
|
// });
|
|
if (res.code != -1) {
|
|
this.options = res.data.items;
|
|
}
|
|
});
|
|
|
|
organizationtree().then((res) => {
|
|
if (res.code != -1) {
|
|
this.newachitecture = res.data;
|
|
this.newdepartment = res.data;
|
|
this.organizationalstructure = res.data;
|
|
tcdate(this.organizationalstructure);
|
|
}
|
|
});
|
|
getapi("/api/app/item-type/by-code-all").then((res) => {
|
|
if (res.code != -1) {
|
|
this.newitemtype = [...res.data];
|
|
}
|
|
});
|
|
},
|
|
//确定添加或修改
|
|
addlsit() {
|
|
this.$refs.form.validate((valid) => {
|
|
if (valid) {
|
|
if (this.title == 1) {
|
|
let arrs = [];
|
|
|
|
// arrs.push(this.roleNames);
|
|
// console.log(arrs)
|
|
let obj = {
|
|
userName: this.form.userName,
|
|
name: this.form.name,
|
|
surname: this.form.surname,
|
|
email: this.form.email,
|
|
usesurnamerName: this.form.usesurnamerName,
|
|
phoneNumber: this.form.phoneNumber,
|
|
password: this.form.password,
|
|
roleNames: this.form.roleNames,
|
|
isActive: this.form.isActive,
|
|
email: this.form.email,
|
|
operatorType: this.form.operatorType,
|
|
userSign: this.form.userSign,
|
|
userPhoto: this.form.userPhoto,
|
|
};
|
|
if (this.form.roleNames.length == 0) {
|
|
this.$message.warning("请选择角色");
|
|
} else if (this.orgId == "" || this.orgId == null) {
|
|
this.$message.warning("请选择科室");
|
|
} else {
|
|
newlists(obj).then((res) => {
|
|
if (res.code != -1) {
|
|
this.form = res.data;
|
|
postapi(
|
|
`/api/app/abpuserdepartment/createmany?UserId=${this.form.id}`,
|
|
this.department
|
|
).then((res) => {
|
|
if (res.code != -1) {
|
|
postapi(
|
|
"/api/app/organization-units/user-organization-unit",
|
|
{ userId: this.form.id, orgId: this.orgId }
|
|
).then((res) => {
|
|
if (res.code != -1) {
|
|
postapi(
|
|
`/api/app/UserItemType/CreateMany?UserId=${this.form.id}`,
|
|
this.haveitemtype
|
|
).then((res) => {
|
|
if (res.code != -1) {
|
|
this.dialogVisible = false;
|
|
//this.$message.success("新增成功");
|
|
this.form = this.$options.data().form;
|
|
this.roleNames = this.$options.data().roleNames;
|
|
this.department = this.$options.data().department;
|
|
this.curRow = this.$options.data().curRow;
|
|
this.orgId = this.$options.data().orgId;
|
|
this.haveitemtype =
|
|
this.$options.data().haveitemtype;
|
|
this.$refs["tableData"].setCurrentRow("");
|
|
this.btnQuery();
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
} else if (this.title == 2) {
|
|
// this.roleNames=arrs
|
|
let obj = {
|
|
userName: this.form.userName,
|
|
name: this.form.name,
|
|
surname: this.form.surname,
|
|
email: this.form.email,
|
|
usesurnamerName: this.form.usesurnamerName,
|
|
phoneNumber: this.form.phoneNumber,
|
|
password: this.form.password,
|
|
roleNames: this.form.roleNames,
|
|
isActive: this.form.isActive,
|
|
email: this.form.email,
|
|
operatorType: this.form.operatorType,
|
|
userSign: this.form.userSign,
|
|
userPhoto: this.form.userPhoto,
|
|
// roleNames: this.form.roleNames,
|
|
};
|
|
if (this.orgId == "" || this.orgId == null) {
|
|
return this.$message.warning("请选择科室");
|
|
}
|
|
console.log(this.form.roleNames);
|
|
if (this.form.roleNames.length == 0) {
|
|
this.$message.warning("请选则用户角色");
|
|
return;
|
|
}
|
|
|
|
let msg = "";
|
|
//更新用户与所属角色
|
|
postapi(`/api/identity/users/update?id=${this.form.id}`, obj).then(
|
|
(res) => {
|
|
if (res.code != -1) {
|
|
//更新科室权限
|
|
postapi(
|
|
`/api/app/abpuserdepartment/createmany?UserId=${this.form.id}`,
|
|
this.department
|
|
).then((res) => {
|
|
if (res.code != -1) {
|
|
postapi(
|
|
"/api/app/organization-units/user-organization-unit",
|
|
{ userId: this.form.id, orgId: this.orgId }
|
|
).then((res) => {
|
|
if (res.code != -1) {
|
|
postapi(
|
|
`/api/app/UserItemType/CreateMany?UserId=${this.form.id}`,
|
|
this.haveitemtype
|
|
).then((res) => {
|
|
if (res.code != -1) {
|
|
this.dialogVisible = false;
|
|
this.form = this.$options.data().form;
|
|
this.roleNames = this.$options.data().roleNames;
|
|
this.department = this.$options.data().department;
|
|
this.curRow = this.$options.data().curRow;
|
|
this.orgId = this.$options.data().orgId;
|
|
this.haveitemtype =
|
|
this.$options.data().haveitemtype;
|
|
this.$refs["tableData"].setCurrentRow("");
|
|
//this.$message.success("操作成功!");
|
|
this.btnQuery();
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
}
|
|
);
|
|
}
|
|
}
|
|
});
|
|
},
|
|
//删除方法
|
|
deleates() {
|
|
if (this.curRow.id == undefined) {
|
|
this.$message.warning("请选择删除的数据");
|
|
} else {
|
|
let id = this.curRow.id.id;
|
|
// delestsid(id).then((res) => {
|
|
// console.log(res);
|
|
// this.btnQuery();
|
|
// console.log("删除成功");
|
|
// });
|
|
this.$confirm("是否确定删除, 是否继续?", "提示", {
|
|
confirmButtonText: "确定",
|
|
cancelButtonText: "取消",
|
|
type: "warning",
|
|
cancelButtonClass: "difference",
|
|
confirmButtonClass: "commonbutton",
|
|
})
|
|
.then(() => {
|
|
postapi(`/api/identity/users/delete?id=${this.curRow.id}`).then(
|
|
(res) => {
|
|
if (res.code != -1) {
|
|
this.btnQuery();
|
|
this.curRow = this.$options.data().curRow;
|
|
//this.$message.success("删除成功");
|
|
}
|
|
}
|
|
);
|
|
})
|
|
.catch(() => {});
|
|
}
|
|
},
|
|
|
|
//编辑修改
|
|
editmony() {
|
|
if (this.curRow.id == undefined) {
|
|
this.$message.warning("请选择操作的数据");
|
|
} else {
|
|
this.dialogVisible = true;
|
|
this.title = 2;
|
|
// this.form.roleNames = this.roleNames;
|
|
if (this.title == 2) {
|
|
// row里面没有roleNames字段
|
|
//const form = JSON.parse(JSON.stringify(row));
|
|
getapi("/api/identity/users/getinfo", {
|
|
id: this.curRow.id,
|
|
}).then((res) => {
|
|
if (res.code != -1) {
|
|
const form = deepCopy(res.data);
|
|
this.form = {
|
|
...form,
|
|
roleNames: [],
|
|
};
|
|
this.form.roleNames = [];
|
|
}
|
|
});
|
|
//获取组织架构
|
|
organizationtree().then((res) => {
|
|
if (res.code != -1) {
|
|
this.organizationalstructure = res.data;
|
|
tcdate(this.organizationalstructure);
|
|
this.setupdepartments = res.data;
|
|
}
|
|
});
|
|
// postapi(`/api/app/abpuserdepartment/createmany?UserId=${this.form.id}`,{orgId:this.orgId[0]}).then(res=>{
|
|
// console.log(res,'wwwwwwwwwwwww');
|
|
// })
|
|
useraffiliation(this.curRow.id).then((res) => {
|
|
if (res.code != -1) {
|
|
if (res.data.items && res.data.items.length > 0) {
|
|
let val = res.data.items.map((item) => {
|
|
return item.name;
|
|
});
|
|
this.$set(this.form, "roleNames", val);
|
|
} else {
|
|
this.$set(this.form, "roleNames", []);
|
|
}
|
|
}
|
|
});
|
|
|
|
//根据用户ID查组织信息
|
|
getapi(
|
|
`/api/app/organization-units/organization-unit-by-user-id/${this.curRow.id}`
|
|
).then((res) => {
|
|
if (res.code != -1 && res.data.length > 0) {
|
|
this.orgId = res.data[0].id;
|
|
}
|
|
});
|
|
|
|
//获取科室权限 编辑
|
|
getapi(
|
|
`/api/app/abpuserdepartment/getuserdepartment?UserId=${this.curRow.id}`
|
|
).then((res) => {
|
|
// default-checked-keys
|
|
if (res.code != -1) {
|
|
this.department = res.data;
|
|
}
|
|
});
|
|
}
|
|
|
|
// useraffiliation(row.id).then((res) => {
|
|
// this.form.roleNames = res.data.items[0].name;
|
|
// // res.data.items.forEach(item=>{
|
|
// // this.form.roleNames=item.name
|
|
// // console.log(item)
|
|
// // })
|
|
// console.log("form", this.form);
|
|
// // console.log(res);
|
|
// console.log(res, "=====10010");
|
|
// this.$forceUpdate();
|
|
// });
|
|
getbook().then((res) => {
|
|
const { code, data } = res;
|
|
if (code != -1) {
|
|
let options = data.items;
|
|
this.checkList = options;
|
|
// console.log(this.checkList, "checkList");
|
|
this.options = options;
|
|
// this.options = options.map((item, index) => {
|
|
// return {
|
|
// id: item.name,
|
|
// name: item.name,
|
|
// };
|
|
// });
|
|
}
|
|
});
|
|
getapi("/api/app/item-type/by-code-all").then((res) => {
|
|
if (res.code != -1) {
|
|
this.itemtype = [...res.data];
|
|
}
|
|
});
|
|
postapi(
|
|
`/api/app/UserItemType/GetUserItemType?UserId=${this.curRow.id}`
|
|
).then((res) => {
|
|
if (res.code != -1) {
|
|
this.haveitemtype = [...res.data];
|
|
}
|
|
});
|
|
}
|
|
},
|
|
//分页
|
|
handleSizeChange(v) {
|
|
this.pages.MaxResultCount = v;
|
|
this.btnQuery();
|
|
},
|
|
handleCurrentChange(v) {
|
|
this.pages.SkipCount = v;
|
|
this.btnQuery();
|
|
},
|
|
},
|
|
};
|
|
</script>
|
|
<style scoped>
|
|
@import "../../assets/css/global_button.css";
|
|
@import "../../assets/css/global_dialog.css";
|
|
@import "../../assets/css/global_table.css";
|
|
@import "../../assets/css/global_form.css";
|
|
@import "../../assets/css/global_input.css";
|
|
@import "../../assets/css/global.css";
|
|
.box {
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
.layeredleftright {
|
|
width: 100%;
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
:deep .el-form-item {
|
|
margin-bottom: 14px;
|
|
}
|
|
/* el-dialog的头部样式 */
|
|
:deep .el-dialog__header {
|
|
padding: 11px 20px 11px;
|
|
}
|
|
/* el-dialog的主体样式 */
|
|
:deep .el-dialog__body {
|
|
padding: 0px 20px 0px;
|
|
}
|
|
/* el-divider样式 */
|
|
:deep .el-divider--horizontal {
|
|
margin: 0px 0 12px;
|
|
}
|
|
/* el-dialog的底部样式 */
|
|
:deep .el-dialog__footer {
|
|
padding: 0px 20px 14px;
|
|
}
|
|
:deep .el-table tr {
|
|
height: 33px;
|
|
}
|
|
:deep .el-tree-node > .el-tree-node__children {
|
|
overflow: visible;
|
|
}
|
|
.seachinput {
|
|
width: 250px;
|
|
margin-right: 110px;
|
|
}
|
|
:deep .seachinput .el-select {
|
|
width: 100%;
|
|
}
|
|
:deep.avatar-uploader{
|
|
display: inline-block;
|
|
}
|
|
:deep.avatar-uploader .el-upload {
|
|
border: 1px dashed #d9d9d9;
|
|
border-radius: 6px;
|
|
cursor: pointer;
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
:deep.avatar-uploader .el-upload:hover {
|
|
border-color: #409eff;
|
|
}
|
|
:deep.avatar-uploader-icon {
|
|
font-size: 28px;
|
|
color: #8c939d;
|
|
width: 80px;
|
|
height: 80px;
|
|
line-height: 80px;
|
|
text-align: center;
|
|
}
|
|
.avatar {
|
|
width: 80px;
|
|
height: 80px;
|
|
display: block;
|
|
}
|
|
.el-upload-delete{
|
|
position: absolute;
|
|
top: 0;
|
|
right: 0;
|
|
line-height: 0;
|
|
font-size: 18px;
|
|
|
|
}
|
|
</style>
|