Shift.vue 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. <!--
  2. * @Author: wanglj 471442253@qq.com
  3. * @Date: 2022-12-26 17:21:07
  4. * @LastEditors: wanglj
  5. * @LastEditTime: 2023-01-11 18:25:49
  6. * @Description: file content
  7. * @FilePath: \opms_frontend\src\views\customer\components\Shift.vue
  8. -->
  9. <template>
  10. <el-dialog title="转移客户" :visible.sync="visible" width="30%" @close="handleClose">
  11. <select-user
  12. ref="selectUser"
  13. :query-params="{ roles: ['SalesEngineer', 'ProductLineManager'] }"
  14. @save="selectUser" />
  15. <el-form ref="form" label-width="80px" :model="form" :rules="rules">
  16. <el-form-item label="接收对象" prop="SalesName">
  17. <el-input v-model="form.salesName" readonly suffix-icon="el-icon-search" @focus="choose" />
  18. </el-form-item>
  19. <el-form-item label="转移相关" prop="about">
  20. <el-checkbox-group v-model="form.about">
  21. <el-checkbox label="客户" />
  22. </el-checkbox-group>
  23. </el-form-item>
  24. <el-form-item label="转移原因" prop="remark">
  25. <el-input v-model="form.remark" maxlength="500" resize="none" :rows="5" show-word-limit type="textarea" />
  26. </el-form-item>
  27. </el-form>
  28. <span slot="footer">
  29. <el-button size="mini" @click="visible = false">取消</el-button>
  30. <el-button size="mini" type="primary" @click="handleSubmit">确定</el-button>
  31. </span>
  32. </el-dialog>
  33. </template>
  34. <script>
  35. import SelectUser from '@/components/select/SelectUser'
  36. import to from 'await-to-js'
  37. import api from '@/api/customer'
  38. export default {
  39. components: {
  40. SelectUser,
  41. },
  42. data() {
  43. return {
  44. visible: false,
  45. form: {
  46. salesName: '',
  47. about: ['客户'],
  48. remark: '',
  49. },
  50. rules: {
  51. salesName: [{ required: true, message: '请选择接收对象', trigger: 'change' }],
  52. about: [{ required: true, message: '请选择转移相关', trigger: 'change' }],
  53. remark: [{ required: true, message: '请选择转移原因', trigger: 'change' }],
  54. },
  55. userList: [],
  56. sysAdminFlag: false,
  57. }
  58. },
  59. methods: {
  60. handleClose() {
  61. this.$refs.form.resetFields()
  62. this.form.salesName = ''
  63. this.userList = []
  64. },
  65. choose() {
  66. this.$refs.selectUser.open()
  67. },
  68. selectUser(userList) {
  69. this.userList = userList
  70. this.form.salesName = userList[0].nickName
  71. },
  72. open(rows) {
  73. this.form.Ids = rows.map((item) => parseInt(item.id))
  74. this.visible = true
  75. this.sysAdminFlag = false
  76. },
  77. sysAdminOpen(rows) {
  78. this.form.ids = rows.map((item) => parseInt(item.id))
  79. this.visible = true
  80. this.sysAdminFlag = true
  81. },
  82. async handleSubmit() {
  83. if (!this.userList.length) return this.$message.warning('请选择销售代表')
  84. let params = { ...this.form }
  85. params.SalesId = this.userList[0].id
  86. let [err, res] = []
  87. if (this.sysAdminFlag) {
  88. ;[err, res] = await to(api.sysAdminTransCustomer(params))
  89. } else {
  90. ;[err, res] = await to(api.updateBytransfer(params))
  91. }
  92. if (err) return
  93. this.$message.success(res.msg)
  94. this.visible = false
  95. this.$emit('refresh')
  96. },
  97. },
  98. }
  99. </script>
  100. <style></style>