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.

952 lines
30 KiB

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