ToFormalize.vue 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. <script setup>
  2. import { apiCustomerUser } from '@/api/customer'
  3. const show = defineModel('show', { type: Boolean, default: false })
  4. const props = defineProps({
  5. data: Object,
  6. })
  7. const emits = defineEmits(["success"])
  8. const formRef = ref()
  9. const formData = ref({
  10. RealName: '',
  11. SellerId: null,
  12. CompanyId: null,
  13. UserId: null,
  14. UserType: null
  15. })
  16. const formRules = {
  17. RealName: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
  18. SellerId: [{ required: true, message: '请选择营业部', trigger: 'change' }],
  19. UserType: [{ required: true, message: '请选择客户类型', trigger: 'blur' }],
  20. CompanyId: [{ required: true, message: '请选择机构', trigger: 'blur' }],
  21. }
  22. const options = ref([
  23. { label: '个人投资者', value: 1 },
  24. { label: '机构投资者', value: 2 },
  25. ])
  26. // 获取部门数据
  27. const departArr = ref([])
  28. async function getDepartList() {
  29. const res = await apiCustomerUser.companySearch()
  30. if (res.Ret !== 200) return
  31. const list = res.Data || []
  32. departArr.value = list
  33. }
  34. watch(() => show.value, (newval) => {
  35. if (newval) {
  36. formData.value.RealName = props.data.RealName
  37. formData.value.Mobile = props.data.Mobile
  38. formData.value.UserId = props.data.UserId
  39. formRef.value ? formRef.value.clearValidate() : '';
  40. getDepartList()
  41. }
  42. })
  43. async function handleSubmitForm() {
  44. await formRef.value.validate()
  45. const {RealName, SellerId, CompanyId, UserId, UserType} = formData.value
  46. const res=await apiCustomerUser.usersTransFormal({
  47. RealName,
  48. SellerId,
  49. CompanyId,
  50. UserId,
  51. UserType
  52. })
  53. if(res.Ret!==200) return
  54. ElMessage.success('操作成功')
  55. show.value=false
  56. emits("success")
  57. }
  58. </script>
  59. <template>
  60. <el-dialog
  61. v-model="show"
  62. :close-on-click-modal="false"
  63. :modal-append-to-body="false"
  64. width="30%"
  65. title="转正式"
  66. >
  67. <div class="dialog-content">
  68. <el-form
  69. label-width="80px"
  70. :rules="formRules"
  71. ref="formRef"
  72. :model="formData"
  73. >
  74. <el-form-item label="姓名" prop="RealName">
  75. <el-input
  76. v-model="formData.RealName"
  77. style="width: 100%"
  78. ></el-input>
  79. </el-form-item>
  80. <el-form-item label="手机号">
  81. <span>{{ formData.Mobile }}</span>
  82. </el-form-item>
  83. <el-form-item label="客户类型" prop="UserType">
  84. <el-select
  85. v-model="formData.UserType"
  86. placeholder="请选择客户类型"
  87. size="large"
  88. style="width: 100%"
  89. >
  90. <el-option
  91. v-for="item in options"
  92. :key="item.value"
  93. :label="item.label"
  94. :value="item.value"
  95. />
  96. </el-select>
  97. </el-form-item>
  98. <el-form-item label="所属机构" prop="CompanyId" v-if="formData.UserType === 2">
  99. <el-select
  100. v-model="formData.CompanyId"
  101. placeholder="请选择客户类型"
  102. size="large"
  103. filterable
  104. no-match-text="暂无该机构,请前往客户列表添加投资者机构!"
  105. style="width: 100%"
  106. >
  107. <el-option
  108. v-for="item in departArr"
  109. :key="item.CompanyId"
  110. :label="item.CompanyName"
  111. :value="item.CompanyId"
  112. />
  113. </el-select>
  114. </el-form-item>
  115. <el-form-item label="营业部" prop="SellerId" v-if="formData.UserType === 1">
  116. <all-user-for-depart
  117. style="width: 100%"
  118. :props="{
  119. emitPath: false,
  120. }"
  121. :filterable="true"
  122. onlySelectUser
  123. :size="'large'"
  124. v-model="formData.SellerId"
  125. placeholder="请选择营业部"
  126. />
  127. </el-form-item>
  128. </el-form>
  129. </div>
  130. <template #footer>
  131. <div class="btn-content">
  132. <el-button
  133. type="primary"
  134. style="width: 80px; margin-right: 24px"
  135. @click="handleSubmitForm"
  136. >保存</el-button
  137. >
  138. <el-button style="width: 80px" @click="show = false">取消</el-button>
  139. </div>
  140. </template>
  141. </el-dialog>
  142. </template>
  143. <style scoped lang="scss">
  144. .dialog-content {
  145. padding: 0 50px;
  146. }
  147. .btn-content {
  148. text-align: center;
  149. padding-bottom: 20px;
  150. }
  151. </style>