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.

975 lines
31 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
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="'修改密码' + '当前用户' + usersName"
  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" max="16" min="6"></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 { isValid } from "@/utlis/validate";
  441. import { getapi, postapi } from "@/api/api";
  442. // let validatePassword = (rule, value, callback) => {
  443. // var reg1 =
  444. // /^(?=.*\d)(?=.*[a-zA-Z])(?=.*[~!@#$%^&*.])[\da-zA-Z~!@#$%^&*.]{6,}$/; //密码必须是8位以上、必须含有字母、数字、特殊符号
  445. // var reg2 = /(123|234|345|456|567|678|789|012)/; //不能有3个连续数字
  446. // if (!reg1.test(value)) {
  447. // callback(new Error("密码必须是6位以上、必须含有字母、数字、特殊符号"));
  448. // } else if (reg2.test(value)) {
  449. // callback(new Error("不能有3个连续数字"));
  450. // } else {
  451. // callback();
  452. // }
  453. // };
  454. let validatePassword = /^[a-zA-Z0-9@\$\^\.\*\\?]\{6,15}$/;
  455. export default {
  456. data() {
  457. return {
  458. usersName: "", //用户名
  459. defaultchekedKeys: [], //默认选中的科室
  460. department: [], //选中的科室
  461. setupdepartments: [], //设置科室
  462. newPassWord: "", //新密码
  463. editpassworddialogVisible: false, //修改密码
  464. nodekes: [],
  465. activeName: "first",
  466. chaxunform: {
  467. surname: "",
  468. phoneNumber: "",
  469. userName: "",
  470. },
  471. useroptions: [],
  472. options: [],
  473. uservalue: [],
  474. useerdialogVisible: false,
  475. bindingdialogVisible: false,
  476. values: [],
  477. option: [],
  478. crdetcascader: [], //绑定组织显示
  479. //表单校验
  480. rules: {
  481. password: [
  482. {
  483. required: true,
  484. trigger: "blur",
  485. message: "密码不能为空",
  486. },
  487. {
  488. min: 6,
  489. max: 15,
  490. message: "长度在 6 到 15 个字符",
  491. trigger: "blur",
  492. },
  493. // {
  494. // required: true,
  495. // trigger: "blur",
  496. // validator: validatePassword,
  497. // },
  498. ],
  499. email: [
  500. {
  501. required: true,
  502. message: "请输入邮箱地址",
  503. trigger: "blur",
  504. },
  505. {
  506. type: "email",
  507. message: "请输入正确的邮箱地址",
  508. trigger: ["blur", "change"],
  509. },
  510. ],
  511. surname: [
  512. { required: true, message: "请输入用户名称", trigger: "change" },
  513. ],
  514. roleNames: [
  515. { required: true, message: "请选择所属用户", trigger: "change" },
  516. ],
  517. nam: [{ required: true, message: "请输入名", trigger: "change" }],
  518. },
  519. tableData: [],
  520. optionsArr: [],
  521. dialogVisible: false,
  522. modetype: "",
  523. total: 0,
  524. form: {
  525. surname: "fas",
  526. name: "ww",
  527. email: "45148415@qq.com",
  528. surname: "",
  529. phoneNumber: "",
  530. password: "1q2w3E*",
  531. roleNames: [],
  532. userName: "",
  533. password: "1q2w3E*",
  534. isActive: true,
  535. },
  536. roleNames: [],
  537. are: [],
  538. checkList: [], //多选框
  539. pages: {
  540. SkipCount: 0,
  541. MaxResultCount: 100,
  542. Filter: "",
  543. // Filter:{
  544. // userName:this.form.userName,
  545. // phoneNumber:this.form.phoneNumber,
  546. // surname: this.form.surname,
  547. // }
  548. },
  549. title: 1,
  550. rowid: "",
  551. userid: "",
  552. bingdusers: [], //s所属用户角色
  553. organizationalstructure: [], //组织架构
  554. defaultKeys: [], //选中的
  555. newachitecture: [], //新增弹框获取组织数据
  556. // customer:[]
  557. password: "",
  558. passwordid: "",
  559. newdepartment: [], //新增科室
  560. };
  561. },
  562. computed: {
  563. ...mapState(["changepassword"]),
  564. },
  565. created() {
  566. this.password = this.changepassword;
  567. console.log(this.password);
  568. this.getlist();
  569. this.idkes = localStorage.getItem("dataidkes");
  570. },
  571. methods: {
  572. iscrentddepartment() {
  573. this.department = this.$refs.department.getCheckedKeys(true);
  574. console.log(this.department, "www");
  575. },
  576. //修改密码确定按钮
  577. Changepassword() {
  578. if (this.newPassWord == "") {
  579. this.$message.warning("请输入新密码");
  580. } else {
  581. postapi("/api/identity/users/resetpassword", {
  582. userId: this.passwordid,
  583. newPassWord: this.newPassWord,
  584. }).then((res) => {
  585. this.$message.success("修改成功");
  586. this.editpassworddialogVisible = false;
  587. });
  588. }
  589. console.log(this.newPassWord);
  590. },
  591. //修改密码
  592. editpassword(row) {
  593. this.editpassworddialogVisible = true;
  594. this.passwordid = row.id;
  595. this.usersName = row.userName;
  596. },
  597. //新增选择的
  598. ischesc() {
  599. console.log("333", this.$refs.tree.getCheckedKeys(true));
  600. this.nodekes = this.$refs.tree.getCheckedKeys(true);
  601. },
  602. //选中的组织
  603. iscrentd() {
  604. console.log("222", this.$refs.trees.getCheckedKeys(true));
  605. this.defaultKeys = this.$refs.trees.getCheckedKeys(true);
  606. // console.log("222", this.$refs.tree.defaultKeys(true));
  607. },
  608. //选中适合的值
  609. handleCheckAllChange() {
  610. // this.form.roleNames = this.roleNames;
  611. // console.log(this.activeName);
  612. console.log(this.form.roleNames);
  613. },
  614. //table页切换
  615. handleClick() {
  616. console.log(this.activeName);
  617. if (this.activeName == "1") {
  618. //获取当前绑定用户
  619. useraffiliation(this.form.id).then((res) => {
  620. console.log(res.data.items);
  621. if (res.data.items && res.data.items.length > 0) {
  622. let val = res.data.items.map((item) => {
  623. return item.name;
  624. });
  625. this.$set(this.form, "roleNames", val);
  626. } else {
  627. this.$set(this.form, "roleNames", []);
  628. }
  629. });
  630. }
  631. },
  632. //用户列表查询
  633. inquireabout() {
  634. this.getlist();
  635. // usreslist()
  636. },
  637. onchang(v) {
  638. // this.form.roleNames[0] = v;
  639. console.log(v);
  640. },
  641. //级联选择器
  642. handleChange(value) {
  643. this.values = value;
  644. console.log(value);
  645. },
  646. getlist() {
  647. usreslist(this.pages).then((res) => {
  648. this.tableData = res.data.items;
  649. this.total = res.data.totalCount;
  650. console.log(res);
  651. });
  652. },
  653. //绑定
  654. binding(row) {
  655. this.bindingdialogVisible = true;
  656. console.log(row);
  657. this.rowid = row.id;
  658. organizationtree().then((res) => {
  659. this.option = res.data;
  660. console.log(this.option);
  661. });
  662. // reverseselection(row.id).then((res) => {
  663. // this.crdetcascader = res.data;
  664. // console.log(res);
  665. // });
  666. // userorganizat(row.id, this.idkes ).then((res) => {
  667. // console.log(res);
  668. // });
  669. },
  670. //绑定用户角色
  671. bandinuser(row) {
  672. this.useerdialogVisible = true;
  673. this.userid = row.id;
  674. usersroles().then((res) => {
  675. this.useroptions = res.data.items;
  676. console.log(res);
  677. });
  678. useraffiliation(row.id).then((res) => {
  679. res.data.items.forEach((element) => {
  680. console.log(element);
  681. this.uservalue = element[name];
  682. });
  683. // this.uservalue=res.data.items[name]
  684. this.bingdusers = res.data.items;
  685. // console.log(res);
  686. });
  687. // this.form.roleNames.push(row.userName)
  688. // userbind(row.id,{roleNames:this.form.roleNames}).then(res=>{
  689. // console.log(res)
  690. // })
  691. // console.log(row);
  692. },
  693. //确定绑定
  694. Identifyusers() {
  695. // let are = [];
  696. // console.log(this.uservalue);
  697. // are.push(this.uservalue);
  698. // this.uservalue = are;
  699. if (this.uservalue !== "") {
  700. userbind(this.userid, { roleNames: this.uservalue }).then((res) => {
  701. this.$message.success("绑定成功");
  702. this.getlist();
  703. this.useerdialogVisible = false;
  704. });
  705. } else {
  706. this.$message.success("请选择用户");
  707. }
  708. },
  709. //绑定
  710. binduser() {
  711. console.log(this.values);
  712. console.log(this.rowid);
  713. console.log(this.idkes);
  714. if (this.values.length == 0) {
  715. this.$message.success("请选中");
  716. } else {
  717. userorganizat(this.rowid, this.idkes).then((res) => {
  718. this.bindingdialogVisible = false;
  719. this.getlist();
  720. this.$message.success("操作成功");
  721. // this.values = [];
  722. // console.log(res);
  723. });
  724. }
  725. },
  726. //新增用户
  727. newlyincreased() {
  728. this.dialogVisible = true;
  729. this.title = 1;
  730. if (this.title == 1) {
  731. this.form = {};
  732. }
  733. getbook().then((res) => {
  734. // res.data.items.forEach((element) => {
  735. // this.form.roleNames = element.name;
  736. // console.log(element);
  737. // });
  738. this.options = res.data.items;
  739. console.log(res, "====>>>>>res");
  740. });
  741. organizationtree().then((res) => {
  742. this.newachitecture = res.data;
  743. this.newdepartment = res.data;
  744. console.log(res, "1w");
  745. });
  746. console.log(this.title);
  747. },
  748. //确定添加或修改
  749. addlsit() {
  750. console.log(this.roleNames);
  751. this.$refs.form.validate((valid) => {
  752. if (valid) {
  753. if (this.title == 1) {
  754. let arrs = [];
  755. // arrs.push(this.roleNames);
  756. // console.log(arrs)
  757. let obj = {
  758. userName: this.form.userName,
  759. name: this.form.name,
  760. surname: this.form.surname,
  761. email: this.form.email,
  762. usesurnamerName: this.form.usesurnamerName,
  763. phoneNumber: this.form.phoneNumber,
  764. password: this.form.password,
  765. roleNames: this.roleNames,
  766. isActive: true,
  767. };
  768. if (this.roleNames.length == 0) {
  769. this.$message.success("请选择角色");
  770. } else {
  771. newlists(obj).then((res) => {
  772. this.dialogVisible = false;
  773. this.$message.success("新增成功");
  774. if (res.code == 1) {
  775. // selectbinding({orgId:this.nodekes}).then(r=>{
  776. // this.$message.success('绑定成功')
  777. // })
  778. }
  779. this.roleNames = [];
  780. this.getlist();
  781. console.log(res);
  782. });
  783. }
  784. } else if (this.title == 2) {
  785. console.log(this.form.roleNames);
  786. // this.roleNames=arrs
  787. let obj = {
  788. userName: this.form.userName,
  789. name: this.form.name,
  790. surname: this.form.surname,
  791. email: this.form.email,
  792. usesurnamerName: this.form.usesurnamerName,
  793. phoneNumber: this.form.phoneNumber,
  794. password: this.form.password,
  795. roleNames: this.form.roleNames,
  796. isActive: true,
  797. // roleNames: this.form.roleNames,
  798. };
  799. if (this.form.roleNames.length != 0) {
  800. console.log(this.form.roleNames);
  801. // let tempArr=[]
  802. editmodify(this.form.id, obj).then((res) => {
  803. if (res.status == 200) {
  804. }
  805. this.$message.success("修改成功");
  806. this.dialogVisible = false;
  807. this.getlist();
  808. console.log(res);
  809. if (res.code == 1) {
  810. selectbinding({
  811. userId: this.form.id,
  812. orgId: this.defaultKeys,
  813. }).then((res) => {
  814. console.log(res);
  815. postapi(
  816. `/api/app/abpuserdepartment/createmany?UserId=${this.form.id}`,
  817. this.department
  818. ).then((res) => {
  819. // this.$message.success("操作成功");
  820. });
  821. // this.$message.success("修改绑定组织成功");
  822. });
  823. // postapi(
  824. // `/api/app/abpuserdepartment/createmany?UserId=${this.form.id}`,
  825. // this.department
  826. // ).then((res) => {
  827. // // this.$message.success("操作成功");
  828. // });
  829. console.log("aaaaaa");
  830. }
  831. });
  832. } else {
  833. this.$message.success("请选则用户");
  834. }
  835. }
  836. }
  837. });
  838. },
  839. //删除方法
  840. deleates(row) {
  841. let id = row.id;
  842. // delestsid(id).then((res) => {
  843. // console.log(res);
  844. // this.getlist();
  845. // this.$message.success("删除成功");
  846. // });
  847. this.$confirm("是否确定删除, 是否继续?", "提示", {
  848. confirmButtonText: "确定",
  849. cancelButtonText: "取消",
  850. type: "warning",
  851. })
  852. .then(() => {
  853. postapi(`/api/identity/users/delete?id=${row.id}`).then((res) => {
  854. this.getlist();
  855. this.$message.success("删除成功");
  856. });
  857. })
  858. .catch(() => {});
  859. console.log(row);
  860. },
  861. //编辑修改
  862. editmony(row) {
  863. console.log(row, "======>>>>>>editmony");
  864. this.dialogVisible = true;
  865. // this.form.roleNames = row.roleNames;
  866. console.log(this.form.roleNames);
  867. this.title = 2;
  868. // this.form.roleNames = this.roleNames;
  869. if (this.title == 2) {
  870. // row里面没有roleNames字段
  871. const form = JSON.parse(JSON.stringify(row));
  872. console.log(form, "form");
  873. this.form = {
  874. ...form,
  875. roleNames: [],
  876. };
  877. this.form.roleNames = [];
  878. //获取组织架构
  879. organizationtree().then((res) => {
  880. this.organizationalstructure = res.data;
  881. this.setupdepartments = res.data;
  882. console.log(res, "sssssss");
  883. });
  884. useraffiliation(this.form.id).then((res) => {
  885. console.log(res.data.items);
  886. if (res.data.items && res.data.items.length > 0) {
  887. let val = res.data.items.map((item) => {
  888. return item.name;
  889. });
  890. this.$set(this.form, "roleNames", val);
  891. } else {
  892. this.$set(this.form, "roleNames", []);
  893. }
  894. });
  895. //科室编辑
  896. getapi(
  897. `/api/app/abpuserdepartment/getuserdepartment?UserId=${row.id}`
  898. ).then((res) => {
  899. // default-checked-keys
  900. this.defaultchekedKeys = res.data;
  901. console.log(res, "科室");
  902. });
  903. }
  904. // useraffiliation(row.id).then((res) => {
  905. // this.form.roleNames = res.data.items[0].name;
  906. // // res.data.items.forEach(item=>{
  907. // // this.form.roleNames=item.name
  908. // // console.log(item)
  909. // // })
  910. // console.log("form", this.form);
  911. // // console.log(res);
  912. // console.log(res, "=====10010");
  913. // this.$forceUpdate();
  914. // });
  915. console.log(this.title);
  916. getbook().then((res) => {
  917. console.log(res, "===>>>res");
  918. const { code, data } = res;
  919. if (code == 1) {
  920. let options = data.items;
  921. this.checkList = options;
  922. // console.log(this.checkList, "checkList");
  923. this.options = options;
  924. // this.options = options.map((item, index) => {
  925. // return {
  926. // id: item.name,
  927. // name: item.name,
  928. // };
  929. // });
  930. console.log("options", this.options);
  931. }
  932. });
  933. console.log(row);
  934. usersinits(row.id).then((res) => {
  935. console.log("zzz这里", res);
  936. let list = res.data;
  937. this.defaultKeys = list.map((item) => {
  938. return item.id;
  939. });
  940. console.log("defaultKeys", this.defaultKeys);
  941. });
  942. },
  943. //分页
  944. handleSizeChange(v) {
  945. this.pages.MaxResultCount = v;
  946. this.getlist();
  947. },
  948. handleCurrentChange(v) {
  949. this.pages.SkipCount = v;
  950. this.getlist();
  951. },
  952. },
  953. };
  954. </script>
  955. <style lang="less" scoped></style>