Transfer.vue 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. <template>
  2. <el-dialog :title="title" :visible.sync="dialogFormVisible" width="500px" @close="close">
  3. <el-form ref="form" label-width="80px" :model="form" :rules="rules">
  4. <el-form-item label="接收对象" prop="userName">
  5. <el-input
  6. v-model="form.userName"
  7. placeholder="选择人员"
  8. readonly
  9. suffix-icon="el-icon-search"
  10. @focus="handleSelectUser" />
  11. </el-form-item>
  12. <el-form-item label="转移原因" prop="remark">
  13. <el-input
  14. v-model="form.remark"
  15. maxlength="300"
  16. placeholder="请输入转移原因"
  17. rows="5"
  18. show-word-limit
  19. type="textarea" />
  20. </el-form-item>
  21. </el-form>
  22. <template #footer>
  23. <el-button @click="close">取 消</el-button>
  24. <el-button :loading="loading" type="primary" @click="save">确 定</el-button>
  25. </template>
  26. <!-- 选择负责人弹窗 -->
  27. <select-user
  28. ref="selectUser"
  29. :query-params="{ roles: ['SalesEngineer', 'ProductLineManager', 'SalesDirector'] }"
  30. @save="selectUser" />
  31. </el-dialog>
  32. </template>
  33. <script>
  34. import to from 'await-to-js'
  35. import distrApi from '@/api/base/distr'
  36. import SelectUser from '@/components/select/SelectUser'
  37. export default {
  38. name: 'Transfer',
  39. components: { SelectUser },
  40. data() {
  41. return {
  42. title: '转移项目',
  43. dialogFormVisible: false,
  44. loading: false,
  45. sysAdminFlag: false,
  46. form: {
  47. id: undefined,
  48. ids: undefined,
  49. userId: undefined,
  50. userName: undefined,
  51. remark: undefined,
  52. },
  53. rules: {
  54. userName: [{ required: true, message: '不能为空', trigger: ['blur', 'change'] }],
  55. remark: [{ required: true, message: '不能为空', trigger: ['blur', 'change'] }],
  56. },
  57. }
  58. },
  59. methods: {
  60. handleSelectUser() {
  61. this.$refs.selectUser.open()
  62. },
  63. selectUser(val) {
  64. if (val && val.length > 0) {
  65. this.form.userId = val[0].id
  66. }
  67. this.form.userName = val.map((item) => item.nickName).join()
  68. },
  69. open(row) {
  70. this.form.id = row.id
  71. this.dialogFormVisible = true
  72. this.loading = false
  73. this.sysAdminFlag = false
  74. },
  75. sysAdminOpen(rows) {
  76. this.form.ids = rows.map((item) => parseInt(item.id))
  77. this.dialogFormVisible = true
  78. this.loading = false
  79. this.sysAdminFlag = true
  80. },
  81. close() {
  82. this.$refs['form'].resetFields()
  83. this.form = this.$options.data().form
  84. this.dialogFormVisible = false
  85. this.loading = false
  86. },
  87. save() {
  88. this.$refs['form'].validate(async (valid) => {
  89. if (valid) {
  90. this.loading = true
  91. let [err, res] = await to(distrApi.sysAdminTransferDistributor(this.form))
  92. if (err) {
  93. this.$baseMessage(res.msg, 'error')
  94. } else {
  95. this.$baseMessage(res.msg, 'success')
  96. }
  97. this.loading = false
  98. this.$emit('fetch-data')
  99. this.close()
  100. }
  101. })
  102. },
  103. },
  104. }
  105. </script>