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.

1029 lines
33 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. <template>
  2. <div>
  3. <el-card>
  4. <div class="publiccss">用户管理</div>
  5. <el-button type="primary" @click="newlyincreased" style="margin-top: 20px"
  6. >新增</el-button
  7. >
  8. <el-row style="margin-top: 10px">
  9. <el-form ref="form" :model="form">
  10. <el-col :span="6">
  11. <el-form-item label="用户查询">
  12. <el-input
  13. v-model="pages.Filter"
  14. clearable
  15. @clear="getlist"
  16. style="width: 200px"
  17. ></el-input>
  18. </el-form-item>
  19. </el-col>
  20. <!-- <el-col :span="6">
  21. <el-form-item label="手机号">
  22. <el-input
  23. v-model="pages.Filter"
  24. style="width: 200px"
  25. ></el-input>
  26. </el-form-item>
  27. </el-col> -->
  28. <!-- <el-col :span="6">
  29. <el-form-item label="姓名">
  30. <el-input
  31. v-model="pages.Filter"
  32. style="width: 200px"
  33. ></el-input>
  34. </el-form-item>
  35. </el-col> -->
  36. <el-col :span="6">
  37. <el-button type="primary" @click="inquireabout">查询</el-button>
  38. </el-col>
  39. </el-form>
  40. </el-row>
  41. <el-table
  42. :data="tableData"
  43. style="width: 100%; margin-top: 20px"
  44. border=""
  45. >
  46. <el-table-column type="index" label="#"></el-table-column>
  47. <el-table-column prop="userName" label="用户名" width="">
  48. </el-table-column>
  49. <el-table-column prop="email" label="邮箱" width=""> </el-table-column>
  50. <!-- <el-table-column prop="email" label="所属角色" width=""> </el-table-column> -->
  51. <el-table-column prop="phoneNumber" label="手机号" width="">
  52. </el-table-column>
  53. <el-table-column prop="surname" label="姓名" width="">
  54. </el-table-column>
  55. <!-- <el-table-column prop="name" label="名称" width=""> </el-table-column> -->
  56. <!-- <el-table-column prop="lastModificationTime" label="开始时间">
  57. <template slot-scope="scope">
  58. {{ scope.row.creationTime | dateFormat }}
  59. </template>
  60. </el-table-column>
  61. <el-table-column prop="lastModificationTime" label="结束时间">
  62. <template slot-scope="scope">
  63. {{ scope.row.lastModificationTime | dateFormat }}
  64. </template>
  65. </el-table-column> -->
  66. <el-table-column label="操作" width="430">
  67. <template slot-scope="scope">
  68. <el-button type="primary" @click="deleates(scope.row)"
  69. >删除</el-button
  70. >
  71. <el-button type="primary" @click="editmony(scope.row)"
  72. >编辑</el-button
  73. >
  74. <!-- <el-button type="primary" @click="binding(scope.row)"
  75. >绑定组织</el-button
  76. > -->
  77. <el-button type="primary" @click="bandinuser(scope.row)"
  78. >绑定角色</el-button
  79. >
  80. <el-button type="primary" @click="editpassword(scope.row)"
  81. >修改密码</el-button
  82. >
  83. </template>
  84. </el-table-column>
  85. </el-table>
  86. <!-- <el-pagination
  87. @size-change="handleSizeChange"
  88. @current-change="handleCurrentChange"
  89. :page-sizes="[2, 10, 20, 30]"
  90. :page-size="5"
  91. layout="total, sizes, prev, pager, next, jumper"
  92. :total="total - 1"
  93. >
  94. </el-pagination> -->
  95. <!-- 编辑 -->
  96. <el-dialog
  97. :title="title == 1 ? '新增用户' : '修改用户'"
  98. :visible.sync="dialogVisible"
  99. width="40%"
  100. :close-on-click-modal="false"
  101. >
  102. <el-tabs
  103. v-model="activeName"
  104. v-if="title == 2 ? true : false"
  105. @tab-click="handleClick"
  106. >
  107. <el-tab-pane label="用户信息" name="first">
  108. <el-form
  109. v-if="dialogVisible"
  110. ref="form"
  111. :model="form"
  112. label-width="80px"
  113. :rules="rules"
  114. >
  115. <el-row>
  116. <el-col :span="12">
  117. <el-form-item label="姓名" prop="surname">
  118. <el-input v-model="form.surname"></el-input> </el-form-item
  119. ></el-col>
  120. <el-col :span="12">
  121. <el-form-item label="用户名" prop="userName">
  122. <el-input v-model="form.userName"></el-input> </el-form-item
  123. ></el-col>
  124. <!-- <el-col :span="12">
  125. <el-form-item label="名称" prop="name">
  126. <el-input v-model="form.name"></el-input> </el-form-item
  127. ></el-col> -->
  128. <el-col :span="12">
  129. <el-form-item label="手机号" prop="phoneNumber">
  130. <el-input
  131. v-model="form.phoneNumber"
  132. ></el-input> </el-form-item
  133. ></el-col>
  134. <!-- <el-col :span="12">
  135. <el-form-item label="邮箱" >
  136. <el-input v-model="form.email"></el-input> </el-form-item
  137. ></el-col> -->
  138. <el-col>
  139. <el-form-item label="是否激活">
  140. <el-checkbox v-model="form.isActive"></el-checkbox>
  141. </el-form-item>
  142. </el-col>
  143. <el-col :span="12">
  144. <el-form-item
  145. label="密码"
  146. prop="password"
  147. v-if="title == 1 ? true : false"
  148. >
  149. <el-input v-model="form.password"></el-input> </el-form-item
  150. ></el-col>
  151. <!-- <el-col :span="12">
  152. <el-form-item label="所属角色" prop="roleNames">
  153. <el-select
  154. v-model="form.roleNames"
  155. placeholder="请选择"
  156. @change="onchang"
  157. >
  158. <el-option
  159. v-for="item in options"
  160. :key="item.id"
  161. :label="item.name"
  162. :value="item.name"
  163. >
  164. </el-option>
  165. </el-select>
  166. </el-form-item>
  167. </el-col> -->
  168. </el-row>
  169. </el-form>
  170. </el-tab-pane>
  171. <!-- 选择角色 -->
  172. <el-tab-pane label="角色">
  173. <el-checkbox-group v-model="form.roleNames">
  174. <el-checkbox
  175. v-model="item.id"
  176. :label="item.name"
  177. v-for="(item, index) in checkList"
  178. :key="index"
  179. @change="handleCheckAllChange"
  180. >
  181. </el-checkbox>
  182. </el-checkbox-group>
  183. </el-tab-pane>
  184. <el-tab-pane label="组织架构">
  185. <!-- :default-checked-keys="defaultKeys" -->
  186. <!-- <el-tree
  187. :props="{
  188. label: 'displayName',
  189. children: 'treeChildren',
  190. }"
  191. :default-checked-keys="defaultKeys"
  192. :default-expand-all="true"
  193. show-checkbox
  194. :data="organizationalstructure"
  195. node-key="id"
  196. @check="iscrentd"
  197. ref="trees"
  198. >
  199. </el-tree> -->
  200. <el-cascader
  201. v-model="defaultKeys"
  202. :options="organizationalstructure"
  203. :show-all-levels="false"
  204. :props="{
  205. label: 'displayName',
  206. children: 'treeChildren',
  207. checkStrictly: true,
  208. value: 'id',
  209. }"
  210. ></el-cascader>
  211. </el-tab-pane>
  212. <el-tab-pane label="科室设置">
  213. <!-- :default-checked-keys="defaultKeys" /api/app/abpuserdepartment/createmany-->
  214. <el-tree
  215. :props="{
  216. label: 'displayName',
  217. children: 'treeChildren',
  218. }"
  219. :default-checked-keys="defaultchekedKeys"
  220. :default-expand-all="true"
  221. show-checkbox
  222. :data="setupdepartments"
  223. node-key="id"
  224. @check="iscrentddepartment"
  225. ref="department"
  226. >
  227. </el-tree>
  228. </el-tab-pane>
  229. </el-tabs>
  230. <!-- //新增 -->
  231. <el-form
  232. v-show="title == 1 ? true : false"
  233. v-if="dialogVisible"
  234. ref="form"
  235. :model="form"
  236. label-width="80px"
  237. :rules="rules"
  238. >
  239. <el-tabs>
  240. <el-tab-pane label="用户信息">
  241. <el-row>
  242. <el-col :span="12">
  243. <el-form-item label="姓名" prop="surname">
  244. <el-input v-model="form.surname"></el-input> </el-form-item
  245. ></el-col>
  246. <el-col :span="12">
  247. <el-form-item label="用户名" prop="userName">
  248. <el-input v-model="form.userName"></el-input> </el-form-item
  249. ></el-col>
  250. <!-- <el-col :span="12">
  251. <el-form-item label="名称" prop="userName">
  252. <el-input
  253. v-model="form.usesurnamerName"
  254. ></el-input> </el-form-item
  255. ></el-col> -->
  256. <!-- <el-col :span="12">
  257. <el-form-item label="名称" prop="name">
  258. <el-input v-model="form.name"></el-input> </el-form-item
  259. ></el-col> -->
  260. <el-col :span="12">
  261. <el-form-item label="手机号" prop="phoneNumber">
  262. <el-input
  263. v-model="form.phoneNumber"
  264. ></el-input> </el-form-item
  265. ></el-col>
  266. <!-- <el-col :span="12">
  267. <el-form-item label="邮箱" >
  268. <el-input v-model="form.email"></el-input> </el-form-item
  269. ></el-col> -->
  270. <el-col :span="12">
  271. <el-form-item
  272. label="密码"
  273. prop="password"
  274. v-if="title == 1 ? true : false"
  275. >
  276. <el-input
  277. show-password
  278. v-model="form.password"
  279. type="password"
  280. autocomplete="new-password"
  281. ></el-input> </el-form-item
  282. ></el-col>
  283. <!-- <el-col :span="12">
  284. <el-form-item label="所属角色" prop="roleNames">
  285. <el-select
  286. v-model="form.roleNames"
  287. placeholder="请选择"
  288. @change="onchang"
  289. >
  290. <el-option
  291. v-for="item in options"
  292. :key="item.id"
  293. :label="item.name"
  294. :value="item.name"
  295. >
  296. </el-option>
  297. </el-select>
  298. </el-form-item>
  299. </el-col> -->
  300. <el-col :span="12">
  301. <el-form-item label="是否激活">
  302. <el-checkbox
  303. v-model="form.isActive"
  304. :checked="true"
  305. ></el-checkbox>
  306. </el-form-item>
  307. </el-col>
  308. </el-row>
  309. </el-tab-pane>
  310. <!-- 角色111 -->
  311. <el-tab-pane label="角色">
  312. <el-checkbox-group v-model="roleNames">
  313. <el-checkbox
  314. v-model="item.id"
  315. :label="item.name"
  316. v-for="(item, index) in options"
  317. :key="index"
  318. >
  319. </el-checkbox>
  320. </el-checkbox-group>
  321. </el-tab-pane>
  322. <!-- 组织11 -->
  323. <el-tab-pane label="组织">
  324. <el-cascader
  325. :options="organizationalstructure"
  326. :show-all-levels="false"
  327. :props="{
  328. label: 'displayName',
  329. children: 'treeChildren',
  330. checkStrictly: true,
  331. value: 'id',
  332. }"
  333. ></el-cascader>
  334. <!-- <el-tree
  335. :data="newachitecture"
  336. show-checkbox
  337. :default-expand-all="true"
  338. @check="ischesc"
  339. node-key="id"
  340. ref="tree"
  341. :default-expanded-keys="nodekes"
  342. :default-checked-keys="[5]"
  343. :props="{ label: 'displayName', children: 'treeChildren' }"
  344. >
  345. </el-tree> -->
  346. </el-tab-pane>
  347. <el-tab-pane label="科室设置">
  348. <el-tree
  349. :data="newdepartment"
  350. show-checkbox
  351. :default-expand-all="true"
  352. @check="ischesc"
  353. node-key="id"
  354. ref="tree"
  355. :default-expanded-keys="nodekes"
  356. :default-checked-keys="[5]"
  357. :props="{ label: 'displayName', children: 'treeChildren' }"
  358. >
  359. </el-tree>
  360. </el-tab-pane>
  361. </el-tabs>
  362. </el-form>
  363. <span slot="footer" class="dialog-footer">
  364. <el-button @click="dialogVisible = false"> </el-button>
  365. <el-button type="primary" @click="addlsit"> </el-button>
  366. </span>
  367. </el-dialog>
  368. <!-- 绑定用户组织弹框 -->
  369. <el-dialog
  370. title="绑定组织"
  371. :visible.sync="bindingdialogVisible"
  372. width="30%"
  373. :close-on-click-modal="false"
  374. >
  375. <el-row>
  376. <el-col :span="8">当前组织:</el-col>
  377. <!-- <el-col :span="16" v-for="(item, index) in values" :key="index">{{
  378. item.displayName
  379. }}</el-col> -->
  380. <el-col :span="8" v-for="(item, index) in values" :key="index">{{
  381. item
  382. }}</el-col>
  383. </el-row>
  384. <el-cascader
  385. style="margin-top: 10px"
  386. v-model="values"
  387. :options="option"
  388. :props="{
  389. value: 'displayName',
  390. label: 'displayName',
  391. children: 'treeChildren',
  392. checkStrictly: true,
  393. }"
  394. @change="handleChange"
  395. ></el-cascader>
  396. <span slot="footer" class="dialog-footer">
  397. <el-button @click="bindingdialogVisible = false"> </el-button>
  398. <el-button type="primary" @click="binduser"> </el-button>
  399. </span>
  400. </el-dialog>
  401. <!-- 用户绑定管理弹框 -->
  402. <el-dialog
  403. title="绑定角色"
  404. :visible.sync="useerdialogVisible"
  405. width="30%"
  406. :close-on-click-modal="false"
  407. >
  408. <el-row>
  409. <el-col :span="8">所属角色:</el-col>
  410. <el-col :span="16" v-for="(item, index) in bingdusers" :key="index">{{
  411. item.name
  412. }}</el-col>
  413. </el-row>
  414. <el-select
  415. v-model="uservalue"
  416. multiple
  417. placeholder="请选择"
  418. style="margin-top: 15px"
  419. >
  420. <el-option
  421. v-for="item in useroptions"
  422. :key="item.id"
  423. :label="item.name"
  424. :value="item.name"
  425. >
  426. </el-option>
  427. </el-select>
  428. <span slot="footer" class="dialog-footer">
  429. <el-button @click="useerdialogVisible = false"> </el-button>
  430. <el-button type="primary" @click="Identifyusers"> </el-button>
  431. </span>
  432. </el-dialog>
  433. <!-- 修改密码弹框 -->
  434. <el-dialog
  435. :title="'修改密码' + '用户' + usersName"
  436. :visible.sync="editpassworddialogVisible"
  437. width="30%"
  438. :close-on-click-modal="false"
  439. >
  440. <el-form ref="form" :model="form" label-width="80px">
  441. <el-form-item label="新密码">
  442. <el-input v-model="newPassWord" max="16" min="6"></el-input>
  443. </el-form-item>
  444. </el-form>
  445. <el-form ref="form" :model="form" label-width="80px">
  446. <el-form-item label="确认密码">
  447. <el-input v-model="confarmPassWord" max="16" min="6"></el-input>
  448. </el-form-item>
  449. </el-form>
  450. <span slot="footer" class="dialog-footer">
  451. <el-button @click="editpassworddialogVisible = false"
  452. > </el-button
  453. >
  454. <el-button type="primary" @click="Changepassword"> </el-button>
  455. </span>
  456. </el-dialog>
  457. </el-card>
  458. </div>
  459. </template>
  460. <script>
  461. import {
  462. usreslist,
  463. newlists,
  464. delestsid,
  465. editmodify,
  466. getbook,
  467. userorganizat,
  468. organizationtree,
  469. userbind,
  470. usersroles,
  471. useraffiliation,
  472. reverseselection,
  473. usersinits,
  474. selectbinding,
  475. lognis,
  476. } from "../../request/ruquset";
  477. import { mapState } from "vuex";
  478. import { isValid } from "@/utlis/validate";
  479. import { getapi, postapi } from "@/api/api";
  480. // let validatePassword = (rule, value, callback) => {
  481. // var reg1 =
  482. // /^(?=.*\d)(?=.*[a-zA-Z])(?=.*[~!@#$%^&*.])[\da-zA-Z~!@#$%^&*.]{6,}$/; //密码必须是8位以上、必须含有字母、数字、特殊符号
  483. // var reg2 = /(123|234|345|456|567|678|789|012)/; //不能有3个连续数字
  484. // if (!reg1.test(value)) {
  485. // callback(new Error("密码必须是6位以上、必须含有字母、数字、特殊符号"));
  486. // } else if (reg2.test(value)) {
  487. // callback(new Error("不能有3个连续数字"));
  488. // } else {
  489. // callback();
  490. // }
  491. // };
  492. let validatePassword = /^[a-zA-Z0-9@\$\^\.\*\\?]\{6,15}$/;
  493. export default {
  494. data() {
  495. return {
  496. confarmPassWord: "", //确认密码
  497. usersName: "", //用户名
  498. defaultchekedKeys: [], //默认选中的科室
  499. department: [], //选中的科室
  500. setupdepartments: [], //设置科室
  501. newPassWord: "", //新密码
  502. editpassworddialogVisible: false, //修改密码
  503. nodekes: [],
  504. activeName: "first",
  505. chaxunform: {
  506. surname: "",
  507. phoneNumber: "",
  508. userName: "",
  509. },
  510. useroptions: [],
  511. options: [],
  512. uservalue: [],
  513. useerdialogVisible: false,
  514. bindingdialogVisible: false,
  515. values: [],
  516. option: [],
  517. crdetcascader: [], //绑定组织显示
  518. //表单校验
  519. rules: {
  520. password: [
  521. {
  522. required: true,
  523. trigger: "blur",
  524. message: "密码不能为空",
  525. },
  526. {
  527. min: 6,
  528. max: 15,
  529. message: "长度在 6 到 15 个字符",
  530. trigger: "blur",
  531. },
  532. // {
  533. // required: true,
  534. // trigger: "blur",
  535. // validator: validatePassword,
  536. // },
  537. ],
  538. email: [
  539. {
  540. required: true,
  541. message: "请输入邮箱地址",
  542. trigger: "blur",
  543. },
  544. {
  545. type: "email",
  546. message: "请输入正确的邮箱地址",
  547. trigger: ["blur", "change"],
  548. },
  549. ],
  550. phoneNumber: [
  551. { required: true, message: "请输入手机号", trigger: "blur" },
  552. ],
  553. userName: [
  554. { required: true, message: "请输入用户名", trigger: "blur" },
  555. ],
  556. surname: [
  557. { required: true, message: "请输入用户名称", trigger: "change" },
  558. ],
  559. roleNames: [
  560. { required: true, message: "请选择所属用户", trigger: "change" },
  561. ],
  562. nam: [{ required: true, message: "请输入名", trigger: "change" }],
  563. },
  564. tableData: [],
  565. optionsArr: [],
  566. dialogVisible: false,
  567. modetype: "",
  568. total: 0,
  569. form: {
  570. surname: "fas",
  571. name: "ww",
  572. email: "45148415@qq.com",
  573. surname: "",
  574. phoneNumber: "",
  575. password: "1q2w3E*",
  576. roleNames: [],
  577. userName: "",
  578. password: "1q2w3E*",
  579. isActive: true,
  580. },
  581. roleNames: [],
  582. are: [],
  583. checkList: [], //多选框
  584. pages: {
  585. SkipCount: 0,
  586. MaxResultCount: 100,
  587. Filter: "",
  588. // Filter:{
  589. // userName:this.form.userName,
  590. // phoneNumber:this.form.phoneNumber,
  591. // surname: this.form.surname,
  592. // }
  593. },
  594. title: 1,
  595. rowid: "",
  596. userid: "",
  597. bingdusers: [], //s所属用户角色
  598. organizationalstructure: [], //组织架构
  599. defaultKeys: [], //选中的
  600. newachitecture: [], //新增弹框获取组织数据
  601. // customer:[]
  602. password: "",
  603. passwordid: "",
  604. newdepartment: [], //新增科室
  605. };
  606. },
  607. computed: {
  608. ...mapState(["changepassword"]),
  609. },
  610. created() {
  611. this.password = this.changepassword;
  612. console.log(this.password);
  613. this.getlist();
  614. this.idkes = localStorage.getItem("dataidkes");
  615. },
  616. methods: {
  617. iscrentddepartment() {
  618. this.department = this.$refs.department.getCheckedKeys(true);
  619. console.log(this.department, "www");
  620. },
  621. //修改密码确定按钮
  622. Changepassword() {
  623. if (this.newPassWord == "") {
  624. this.$message.warning("请输入新密码");
  625. } else if (this.confarmPassWord == "") {
  626. this.$message.warning("请输入确认密码");
  627. } else if (this.newPassWord != this.confarmPassWord) {
  628. this.$message.warning("二次输入密码不一致");
  629. } else {
  630. postapi("/api/identity/users/resetpassword", {
  631. userId: this.passwordid,
  632. newPassWord: this.newPassWord,
  633. }).then((res) => {
  634. this.$message.success("修改成功");
  635. this.editpassworddialogVisible = false;
  636. });
  637. }
  638. console.log(this.newPassWord);
  639. },
  640. //修改密码
  641. editpassword(row) {
  642. this.editpassworddialogVisible = true;
  643. this.passwordid = row.id;
  644. this.usersName = row.userName;
  645. },
  646. //新增选择的
  647. ischesc() {
  648. console.log("333", this.$refs.tree.getCheckedKeys(true));
  649. this.nodekes = this.$refs.tree.getCheckedKeys(true);
  650. },
  651. //选中的组织
  652. iscrentd() {
  653. console.log("222", this.$refs.trees.getCheckedKeys(true));
  654. this.defaultKeys = this.$refs.trees.getCheckedKeys(true);
  655. // console.log("222", this.$refs.tree.defaultKeys(true));
  656. },
  657. //选中适合的值
  658. handleCheckAllChange() {
  659. // this.form.roleNames = this.roleNames;
  660. // console.log(this.activeName);
  661. console.log(this.form.roleNames);
  662. },
  663. //table页切换
  664. handleClick() {
  665. console.log(this.activeName);
  666. if (this.activeName == "1") {
  667. //获取当前绑定用户
  668. useraffiliation(this.form.id).then((res) => {
  669. console.log(res.data.items);
  670. if (res.data.items && res.data.items.length > 0) {
  671. let val = res.data.items.map((item) => {
  672. return item.name;
  673. });
  674. this.$set(this.form, "roleNames", val);
  675. } else {
  676. this.$set(this.form, "roleNames", []);
  677. }
  678. });
  679. }
  680. },
  681. //用户列表查询
  682. inquireabout() {
  683. this.getlist();
  684. // usreslist()
  685. },
  686. onchang(v) {
  687. // this.form.roleNames[0] = v;
  688. console.log(v);
  689. },
  690. //级联选择器
  691. handleChange(value) {
  692. this.values = value;
  693. console.log(value);
  694. },
  695. getlist() {
  696. usreslist(this.pages).then((res) => {
  697. this.tableData = res.data.items;
  698. this.total = res.data.totalCount;
  699. console.log(res);
  700. });
  701. },
  702. //绑定
  703. binding(row) {
  704. this.bindingdialogVisible = true;
  705. console.log(row);
  706. this.rowid = row.id;
  707. organizationtree().then((res) => {
  708. this.option = res.data;
  709. console.log(this.option);
  710. });
  711. // reverseselection(row.id).then((res) => {
  712. // this.crdetcascader = res.data;
  713. // console.log(res);
  714. // });
  715. // userorganizat(row.id, this.idkes ).then((res) => {
  716. // console.log(res);
  717. // });
  718. },
  719. //绑定用户角色
  720. bandinuser(row) {
  721. this.useerdialogVisible = true;
  722. this.userid = row.id;
  723. usersroles().then((res) => {
  724. this.useroptions = res.data.items;
  725. console.log(res);
  726. });
  727. useraffiliation(row.id).then((res) => {
  728. res.data.items.forEach((element) => {
  729. console.log(element);
  730. this.uservalue = element[name];
  731. });
  732. // this.uservalue=res.data.items[name]
  733. this.bingdusers = res.data.items;
  734. // console.log(res);
  735. });
  736. // this.form.roleNames.push(row.userName)
  737. // userbind(row.id,{roleNames:this.form.roleNames}).then(res=>{
  738. // console.log(res)
  739. // })
  740. // console.log(row);
  741. },
  742. //确定绑定
  743. Identifyusers() {
  744. // let are = [];
  745. // console.log(this.uservalue);
  746. // are.push(this.uservalue);
  747. // this.uservalue = are;
  748. if (this.uservalue !== "") {
  749. userbind(this.userid, { roleNames: this.uservalue }).then((res) => {
  750. this.$message.success("绑定成功");
  751. this.getlist();
  752. this.useerdialogVisible = false;
  753. });
  754. } else {
  755. this.$message.success("请选择用户");
  756. }
  757. },
  758. //绑定
  759. binduser() {
  760. console.log(this.values);
  761. console.log(this.rowid);
  762. console.log(this.idkes);
  763. if (this.values.length == 0) {
  764. this.$message.success("请选中");
  765. } else {
  766. userorganizat(this.rowid, this.idkes).then((res) => {
  767. this.bindingdialogVisible = false;
  768. this.getlist();
  769. this.$message.success("操作成功");
  770. // this.values = [];
  771. // console.log(res);
  772. });
  773. }
  774. },
  775. //新增用户
  776. newlyincreased() {
  777. this.dialogVisible = true;
  778. this.title = 1;
  779. if (this.title == 1) {
  780. this.form = {};
  781. }
  782. getbook().then((res) => {
  783. // res.data.items.forEach((element) => {
  784. // this.form.roleNames = element.name;
  785. // console.log(element);
  786. // });
  787. this.options = res.data.items;
  788. console.log(res, "====>>>>>res");
  789. });
  790. organizationtree().then((res) => {
  791. this.newachitecture = res.data;
  792. this.newdepartment = res.data;
  793. this.organizationalstructure = res.data;
  794. console.log(res, "1w");
  795. });
  796. console.log(this.title);
  797. },
  798. //确定添加或修改
  799. addlsit() {
  800. console.log(this.roleNames);
  801. this.$refs.form.validate((valid) => {
  802. if (valid) {
  803. if (this.title == 1) {
  804. let arrs = [];
  805. // arrs.push(this.roleNames);
  806. // console.log(arrs)
  807. let obj = {
  808. userName: this.form.userName,
  809. name: this.form.name,
  810. surname: this.form.surname,
  811. email: this.form.email,
  812. usesurnamerName: this.form.usesurnamerName,
  813. phoneNumber: this.form.phoneNumber,
  814. password: this.form.password,
  815. roleNames: this.roleNames,
  816. isActive: true,
  817. };
  818. if (this.roleNames.length == 0) {
  819. this.$message.success("请选择角色");
  820. } else {
  821. newlists(obj).then((res) => {
  822. if (res.code == 1) {
  823. this.dialogVisible = false;
  824. this.$message.success("新增成功");
  825. // selectbinding({orgId:this.nodekes}).then(r=>{
  826. // this.$message.success('绑定成功')
  827. // })
  828. }
  829. this.roleNames = [];
  830. this.getlist();
  831. console.log(res);
  832. });
  833. }
  834. } else if (this.title == 2) {
  835. console.log(this.form.roleNames);
  836. // this.roleNames=arrs
  837. let obj = {
  838. userName: this.form.userName,
  839. name: this.form.name,
  840. surname: this.form.surname,
  841. email: this.form.email,
  842. usesurnamerName: this.form.usesurnamerName,
  843. phoneNumber: this.form.phoneNumber,
  844. password: this.form.password,
  845. roleNames: this.form.roleNames,
  846. isActive: true,
  847. // roleNames: this.form.roleNames,
  848. };
  849. if (this.form.roleNames.length != 0) {
  850. console.log(this.form.roleNames);
  851. // let tempArr=[]
  852. editmodify(this.form.id, obj).then((res) => {
  853. if (res.code == 1) {
  854. this.$message.success("修改成功");
  855. this.dialogVisible = false;
  856. this.getlist();
  857. }
  858. console.log(res);
  859. if (res.code == 1) {
  860. selectbinding({
  861. userId: this.form.id,
  862. orgId: this.defaultKeys,
  863. }).then((res) => {
  864. console.log(res);
  865. postapi(
  866. `/api/app/abpuserdepartment/createmany?UserId=${this.form.id}`,
  867. this.department
  868. ).then((res) => {
  869. // this.$message.success("操作成功");
  870. });
  871. // this.$message.success("修改绑定组织成功");
  872. });
  873. // postapi(
  874. // `/api/app/abpuserdepartment/createmany?UserId=${this.form.id}`,
  875. // this.department
  876. // ).then((res) => {
  877. // // this.$message.success("操作成功");
  878. // });
  879. console.log("aaaaaa");
  880. }
  881. });
  882. } else {
  883. this.$message.success("请选则用户");
  884. }
  885. }
  886. }
  887. });
  888. },
  889. //删除方法
  890. deleates(row) {
  891. let id = row.id;
  892. // delestsid(id).then((res) => {
  893. // console.log(res);
  894. // this.getlist();
  895. // this.$message.success("删除成功");
  896. // });
  897. this.$confirm("是否确定删除, 是否继续?", "提示", {
  898. confirmButtonText: "确定",
  899. cancelButtonText: "取消",
  900. type: "warning",
  901. })
  902. .then(() => {
  903. postapi(`/api/identity/users/delete?id=${row.id}`).then((res) => {
  904. this.getlist();
  905. this.$message.success("删除成功");
  906. });
  907. })
  908. .catch(() => {});
  909. console.log(row);
  910. },
  911. //编辑修改
  912. editmony(row) {
  913. console.log(row, "======>>>>>>editmony");
  914. this.dialogVisible = true;
  915. // this.form.roleNames = row.roleNames;
  916. console.log(this.form.roleNames);
  917. this.title = 2;
  918. // this.form.roleNames = this.roleNames;
  919. if (this.title == 2) {
  920. // row里面没有roleNames字段
  921. const form = JSON.parse(JSON.stringify(row));
  922. console.log(form, "form");
  923. this.form = {
  924. ...form,
  925. roleNames: [],
  926. };
  927. this.form.roleNames = [];
  928. //获取组织架构
  929. organizationtree().then((res) => {
  930. this.organizationalstructure = res.data;
  931. this.setupdepartments = res.data;
  932. console.log(res, "sssssss");
  933. });
  934. useraffiliation(this.form.id).then((res) => {
  935. console.log(res.data.items);
  936. if (res.data.items && res.data.items.length > 0) {
  937. let val = res.data.items.map((item) => {
  938. return item.name;
  939. });
  940. this.$set(this.form, "roleNames", val);
  941. } else {
  942. this.$set(this.form, "roleNames", []);
  943. }
  944. });
  945. //科室编辑
  946. getapi(
  947. `/api/app/abpuserdepartment/getuserdepartment?UserId=${row.id}`
  948. ).then((res) => {
  949. // default-checked-keys
  950. this.defaultchekedKeys = res.data;
  951. console.log(res, "科室");
  952. });
  953. }
  954. // useraffiliation(row.id).then((res) => {
  955. // this.form.roleNames = res.data.items[0].name;
  956. // // res.data.items.forEach(item=>{
  957. // // this.form.roleNames=item.name
  958. // // console.log(item)
  959. // // })
  960. // console.log("form", this.form);
  961. // // console.log(res);
  962. // console.log(res, "=====10010");
  963. // this.$forceUpdate();
  964. // });
  965. console.log(this.title);
  966. getbook().then((res) => {
  967. console.log(res, "===>>>res");
  968. const { code, data } = res;
  969. if (code == 1) {
  970. let options = data.items;
  971. this.checkList = options;
  972. // console.log(this.checkList, "checkList");
  973. this.options = options;
  974. // this.options = options.map((item, index) => {
  975. // return {
  976. // id: item.name,
  977. // name: item.name,
  978. // };
  979. // });
  980. console.log("options", this.options);
  981. }
  982. });
  983. console.log(row);
  984. usersinits(row.id).then((res) => {
  985. console.log("zzz这里", res);
  986. let list = res.data;
  987. this.defaultKeys = list.map((item) => {
  988. return item.id;
  989. });
  990. console.log("defaultKeys", this.defaultKeys);
  991. });
  992. },
  993. //分页
  994. handleSizeChange(v) {
  995. this.pages.MaxResultCount = v;
  996. this.getlist();
  997. },
  998. handleCurrentChange(v) {
  999. this.pages.SkipCount = v;
  1000. this.getlist();
  1001. },
  1002. },
  1003. };
  1004. </script>
  1005. <style lang="less" scoped></style>