瀏覽代碼

更新企业登录用户信息,包含修改登录邮箱

lifanagju_citu 5 月之前
父節點
當前提交
77628fb261

+ 5 - 0
src/api/menduner/system/enterprise/userBind/index.ts

@@ -68,6 +68,11 @@ export const EnterpriseUserBindApi = {
     return await request.put({ url: `/menduner/system/enterprise-user-bind/update-email`, data })
   },
 
+  // 更新企业登录用户
+  updateEnterpriseInfo: async (data) => {
+    return await request.put({ url: `/menduner/system/enterprise-user-bind/update`, data })
+  },
+
   // 修改门墩儿-登录密码
   updateEnterprisePassword: async (data) => {
     return await request.put({ url: `/menduner/system/enterprise-user-bind/update-password`, data })

+ 143 - 0
src/views/menduner/system/enterprise/userbind/Edit.vue

@@ -0,0 +1,143 @@
+<template>
+  <Dialog title="编辑企业用户信息" v-model="dialogVisible">
+    <el-form
+      ref="formRef"
+      :model="formData"
+      :rules="formRules"
+      label-width="120px"
+      v-loading="formLoading"
+      @submit.prevent
+    >
+      <el-form-item label="头像" prop="avatar">
+        <UploadImg v-model="formData.avatar" />
+      </el-form-item>
+      <el-form-item label="姓名" prop="name">
+        <el-input v-model="formData.name" placeholder="请输入用户姓名" />
+      </el-form-item>
+      <!-- <el-form-item label="性别" prop="sex">
+        <el-radio-group v-model="formData.sex">
+          <el-radio
+            v-for="dict in getStrDictOptions(DICT_TYPE.MENDUNER_SEX)"
+            :key="dict.value"
+            :label="dict.value"
+          >
+            {{ dict.label }}
+          </el-radio>
+        </el-radio-group>
+      </el-form-item> -->
+      <el-form-item label="用户手机号码" prop="phone">
+        <el-input v-model="formData.phone" placeholder="请输入用户手机号码" />
+      </el-form-item>
+      <el-form-item label="企业邮箱" prop="email">
+        <el-input v-model="formData.email" placeholder="请输入企业邮箱" />
+      </el-form-item>
+      <el-form-item label="所属岗位名称" prop="postName">
+        <el-input v-model="formData.postName" placeholder="请输入所属岗位名称" />
+      </el-form-item>
+    </el-form>
+    <template #footer>
+      <el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button>
+      <el-button @click="dialogVisible = false">取 消</el-button>
+    </template>
+  </Dialog>
+</template>
+
+<script setup lang="ts">
+// import { getStrDictOptions, DICT_TYPE } from '@/utils/dict'
+import { EnterpriseUserBindApi } from '@/api/menduner/system/enterprise/userBind'
+
+defineOptions({ name: 'EnterpriseUserBindForm' })
+
+const { t } = useI18n() // 国际化
+const message = useMessage() // 消息弹窗
+
+const dialogVisible = ref(false) // 弹窗的是否展示
+const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
+const formData = ref({
+  id: undefined,
+  enterpriseId: undefined,
+  userId: undefined,
+  postName: undefined,
+  phone: undefined,
+  name: undefined,
+  avatar: '',
+  email: undefined
+})
+
+/** 重置表单 */
+const resetForm = () => {
+  formData.value = {
+    id: undefined,
+    enterpriseId: undefined,
+    userId: undefined,
+    postName: undefined,
+    phone: undefined,
+    name: undefined,
+    avatar: '',
+    email: undefined
+  }
+  formRef.value?.resetFields()
+}
+
+const validateEmail = (rule: any, value: any, callback: any) => {
+  if (!value) {
+    callback(new Error('请输入企业邮箱'))
+  } else {
+    if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value)) {
+      callback(new Error('请输入正确的企业邮箱地址'))
+    }
+    callback()
+  }
+}
+
+const formRules = reactive({
+  avatar: [{ required: true, message: '头像不能为空', trigger: 'blur' }],
+  // postName: [{ required: true, message: '岗位名称不能为空', trigger: 'blur' }],
+  name: [{ required: true, message: '姓名不能为空', trigger: 'blur' }],
+  // sex: [{ required: true, message: '性别不能为空', trigger: 'blur' }],
+  phone: [
+    { required: true, message: '用户手机号码不能为空', trigger: 'blur' },
+    { pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: '请输入正确的手机号码', trigger: 'blur' }
+  ],
+  email: [{ required: true, validator: validateEmail, trigger: 'blur' }]
+})
+const formRef = ref() // 表单 Ref
+
+/** 打开弹窗 */
+const open = async (id: number) => {
+  dialogVisible.value = true
+  resetForm()
+  // 修改时,设置数据
+  if (id) {
+    formLoading.value = true
+    try {
+      const data = await EnterpriseUserBindApi.getEnterpriseUserBind(id)
+      Object.keys(formData.value).forEach(key => {
+        formData.value[key] = data[key]
+      })
+    } finally {
+      formLoading.value = false
+    }
+  }
+}
+defineExpose({ open }) // 提供 open 方法,用于打开弹窗
+
+/** 提交表单 */
+const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
+const submitForm = async () => {
+  // 校验表单
+  await formRef.value.validate()
+  // 提交请求
+  formLoading.value = true
+  try {
+    const params = { userType: '2', ...formData.value }
+    await EnterpriseUserBindApi.updateEnterpriseInfo(params)
+    message.success(t('common.updateSuccess'))
+    dialogVisible.value = false
+    emit('success')
+  } finally {
+    formLoading.value = false
+  }
+}
+
+</script>

+ 17 - 6
src/views/menduner/system/enterprise/userbind/index.vue

@@ -110,7 +110,8 @@
       <el-table-column label="操作" align="center">
         <template #default="scope">
           <el-button link type="primary" @click="openDetail(scope.row.id, scope.row.enterpriseId, scope.row.userId)">详情</el-button>
-          <el-button link type="primary" @click="openEditEmail(scope.row.id)">修改登录邮箱</el-button>
+          <!-- <el-button link type="primary" @click="openEditEmail(scope.row.id)">修改登录邮箱</el-button> -->
+          <el-button link type="primary" @click="openEdit(scope.row.id)">编辑</el-button>
           <el-button link type="primary" @click="openEditPassword(scope.row.id)">修改登录密码</el-button>
           <el-button v-if="scope.row.status === '0'" link type="danger" @click="handleActions(scope.row.id, 'disabled')">禁用</el-button>
           <el-button v-if="scope.row.status === '1'" link type="success" @click="handleActions(scope.row.id, 'enable')">启用</el-button>
@@ -127,7 +128,10 @@
   </ContentWrap>
 
   <!-- 修改用户登录邮箱 -->
-  <EditEmail ref="editEmailRef" @success="getList" />
+  <!-- <EditEmail ref="editEmailRef" @success="getList" /> -->
+
+  <!-- 编辑 -->
+  <Edit ref="editRef" @success="getList" />
 
   <!-- 修改用户登录密码 -->
   <EditPassword ref="editPasswordRef" @success="getList" />
@@ -138,7 +142,8 @@ import { getIntDictOptions, DICT_TYPE } from '@/utils/dict'
 import { dateFormatter } from '@/utils/formatTime'
 import download from '@/utils/download'
 import { EnterpriseUserBindApi, EnterpriseUserBindVO } from '@/api/menduner/system/enterprise/userBind'
-import EditEmail from './EditEmail.vue'
+// import EditEmail from './EditEmail.vue'
+import Edit from './Edit.vue'
 import EditPassword from './EditPassword.vue'
 
 /** 门墩儿-企业登录用户 列表 */
@@ -205,9 +210,15 @@ const resetQuery = () => {
 }
 
 /* 修改用户邮箱 */
-const editEmailRef = ref()
-const openEditEmail = (id: number) => {
-  editEmailRef.value.open(id)
+// const editEmailRef = ref()
+// const openEditEmail = (id: number) => {
+//   editEmailRef.value.open(id)
+// }
+
+/* 编辑 */
+const editRef = ref()
+const openEdit = (id: number) => {
+  editRef.value.open(id)
 }
 
 /* 修改用户登录密码 */