updateUser.vue 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <template>
  2. <el-dialog title="更新成员信息" :visible.sync="dialogFormVisible" @close="close">
  3. <el-form ref="form" label-position="top" :model="form" :rules="rules">
  4. <el-row :gutter="20">
  5. <el-col :span="12">
  6. <el-form-item label="项目经理" prop="projectManId">
  7. <el-input
  8. v-model="form.projectManName"
  9. readonly
  10. suffix-icon="el-icon-search"
  11. @focus="handleSelectUser('projectManId', 'projectManName')" />
  12. </el-form-item>
  13. </el-col>
  14. <el-col :span="12">
  15. <el-form-item label="交付经理" prop="deliverManId">
  16. <el-input
  17. v-model="form.deliverManName"
  18. readonly
  19. suffix-icon="el-icon-search"
  20. @focus="handleSelectUser('deliverManId', 'deliverManName')" />
  21. </el-form-item>
  22. </el-col>
  23. </el-row>
  24. </el-form>
  25. <template #footer>
  26. <el-button @click="close">取 消</el-button>
  27. <el-button :disabled="!form.deliverManId && !form.projectManId" type="primary" @click="save">确 定</el-button>
  28. </template>
  29. <!-- 选择支持人员弹窗 -->
  30. <select-user ref="selectUser" @save="selectUser" />
  31. </el-dialog>
  32. </template>
  33. <script>
  34. import deliverApi from '@/api/work/deliver'
  35. import SelectUser from '@/components/select/SelectUser'
  36. export default {
  37. name: 'WorkOrderFeedback',
  38. components: {
  39. SelectUser,
  40. },
  41. props: {},
  42. data() {
  43. return {
  44. form: {
  45. deliverManId: undefined,
  46. deliverManName: undefined,
  47. projectManId: undefined,
  48. projectManName: undefined,
  49. id: 0,
  50. },
  51. rules: {
  52. // deliverManId: [{ required: true, message: '不能为空', trigger: ['blur', 'change'] }],
  53. // deliverManName: [{ required: true, message: '不能为空', trigger: ['blur', 'change'] }],
  54. },
  55. dialogFormVisible: false,
  56. orderTypeList: [],
  57. dingtalkForm: undefined,
  58. curKey: '',
  59. curName: '',
  60. }
  61. },
  62. mounted() {},
  63. methods: {
  64. handleSelectUser(key, name) {
  65. this.curKey = key
  66. this.curName = name
  67. this.$refs.selectUser.open()
  68. },
  69. selectUser(val) {
  70. if (val && val.length > 0) {
  71. this.form[this.curKey] = val[0].id
  72. this.form[this.curName] = val.map((item) => item.nickName).join()
  73. }
  74. },
  75. open(row) {
  76. this.form = {
  77. deliverManId: row.deliverManId,
  78. deliverManName: row.deliverManName,
  79. projectManId: row.projectManId,
  80. projectManName: row.projectManName,
  81. id: row.id,
  82. }
  83. this.dialogFormVisible = true
  84. },
  85. close() {
  86. this.$refs['form'].resetFields()
  87. this.form = this.$options.data().form
  88. this.dialogFormVisible = false
  89. },
  90. save() {
  91. this.$refs['form'].validate(async (valid) => {
  92. if (valid) {
  93. const { msg } = await deliverApi.updateDeliverOrder(this.form)
  94. this.$baseMessage(msg, 'success', 'vab-hey-message-success')
  95. this.$emit('fetch-data')
  96. this.close()
  97. }
  98. })
  99. },
  100. },
  101. }
  102. </script>