transfer.vue 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. <template>
  2. <el-dialog :visible.sync="transferVisible" width="35%" @close="close">
  3. <el-form ref="form" :model="form" label-width="150px" :rules="rules">
  4. <el-form-item label="执行部门:" prop="groupId">
  5. <deptSelect v-model="form.groupId" @changeGroup="searchDeptNodeClick" />
  6. </el-form-item>
  7. <el-form-item label="执行人员:" prop="qualityId">
  8. <el-select
  9. v-model="form.qualityId"
  10. @change="changeExecutor"
  11. filterable
  12. style="width: 100%"
  13. >
  14. <el-option
  15. v-for="item in executorList"
  16. :key="item.id"
  17. :value="item.id"
  18. :label="item.name"
  19. ></el-option>
  20. </el-select>
  21. </el-form-item>
  22. </el-form>
  23. <span slot="footer" class="dialog-footer">
  24. <el-button @click="close">取 消 </el-button>
  25. <el-button type="primary" @click="consfirm">确 定</el-button>
  26. </span>
  27. </el-dialog>
  28. </template>
  29. <script>
  30. import deptSelect from '@/components/CommomSelect/dept-select.vue';
  31. import { transferQualityWork } from '@/api/inspectionWork';
  32. import { getUserPage } from '@/api/system/organization';
  33. export default {
  34. name: 'Transfer',
  35. props: {
  36. transferVisible: {
  37. type: Boolean,
  38. default: false
  39. },
  40. id: {
  41. type: String,
  42. default: ''
  43. }
  44. },
  45. components: {
  46. deptSelect
  47. },
  48. data() {
  49. return {
  50. form: {
  51. id: '',
  52. groupId: '',
  53. groupName: '',
  54. qualityId: '',
  55. qualityName: ''
  56. },
  57. rules: {
  58. groupId: [
  59. { required: true, message: '请选择执行部门', trigger: 'change' }
  60. ],
  61. qualityId: [
  62. { required: true, message: '请选择执行人员:', trigger: 'change' }
  63. ]
  64. },
  65. executorList: []
  66. };
  67. },
  68. methods: {
  69. searchDeptNodeClick(info, row) {
  70. console.log(info, row);
  71. if (info) {
  72. const params = { groupId: info };
  73. this.form.groupId = info;
  74. this.form.groupName = row.name;
  75. this.getUserList(params);
  76. } else {
  77. this.form.qualityId = null;
  78. this.form.qualityName = null;
  79. this.executorList = [];
  80. }
  81. },
  82. // 获取审核人列表、巡点检人员
  83. async getUserList(params) {
  84. try {
  85. let data = { pageNum: 1, size: -1 };
  86. // 如果传了参数就是获取巡点检人员数据
  87. if (params) {
  88. data = Object.assign(data, params);
  89. }
  90. const res = await getUserPage(data);
  91. this.executorList = res.list;
  92. this.form.qualityId = null;
  93. this.form.qualityName = null;
  94. } catch (error) {}
  95. },
  96. changeExecutor(val) {
  97. console.log(val);
  98. if (val) {
  99. this.form.qualityId = val;
  100. this.form.qualityName = this.executorList.find(
  101. (item) => item.id === val
  102. ).name;
  103. }
  104. },
  105. consfirm() {
  106. this.$refs.form.validate(async (valid) => {
  107. if (valid) {
  108. await transferQualityWork(this.form);
  109. this.$emit('success', this.form.id);
  110. }
  111. });
  112. console.log(this.form);
  113. },
  114. close() {
  115. this.$emit('update:transferVisible', false);
  116. }
  117. },
  118. created() {
  119. this.form.id = this.id;
  120. }
  121. };
  122. </script>
  123. <style lang="scss" scoped></style>