|
@@ -1,108 +1,128 @@
|
|
<template>
|
|
<template>
|
|
- <div>
|
|
|
|
- <el-card shadow="never">
|
|
|
|
- <template #header>
|
|
|
|
- <CardTitle title="基本信息" />
|
|
|
|
- </template>
|
|
|
|
- <!-- <div style="margin-bottom: 12px; text-align: end;">
|
|
|
|
- <div v-if="isEdit">
|
|
|
|
- <el-button @click="isEdit = false">取消</el-button>
|
|
|
|
- <el-button type="primary" @click="isEdit = false">保存</el-button>
|
|
|
|
- </div>
|
|
|
|
- <el-button v-else type="primary" @click="isEdit = true">修改</el-button>
|
|
|
|
- </div> -->
|
|
|
|
- <el-descriptions class="margin-top" :column="2" border>
|
|
|
|
- <el-descriptions-item label="用户头像">
|
|
|
|
- <el-image v-if="data.avatarData" class="h-100px w-100px" :src="data.avatarData" fit="contain" hide-on-click-modal :preview-src-list="[data.avatarData]"/>
|
|
|
|
- </el-descriptions-item>
|
|
|
|
- <el-descriptions-item label="性别">{{ data.genderInf }}</el-descriptions-item>
|
|
|
|
- <el-descriptions-item label="用户名">{{ data.name }}</el-descriptions-item>
|
|
|
|
- <el-descriptions-item label="联系电话">{{ data.phone }}</el-descriptions-item>
|
|
|
|
- <el-descriptions-item label="工作年限">{{ data.workYear }}年</el-descriptions-item>
|
|
|
|
- <el-descriptions-item label="出生日期">{{ data.birthday }}</el-descriptions-item>
|
|
|
|
- <el-descriptions-item label="婚姻状况">{{ data.marital_status }}</el-descriptions-item>
|
|
|
|
- <el-descriptions-item label="学历">{{ data.degree }}</el-descriptions-item>
|
|
|
|
- <el-descriptions-item label="邮箱">{{ data.email }}</el-descriptions-item>
|
|
|
|
- <el-descriptions-item label="现居">{{ data.city }}</el-descriptions-item>
|
|
|
|
- </el-descriptions>
|
|
|
|
- </el-card>
|
|
|
|
- </div>
|
|
|
|
|
|
+ <el-card shadow="never">
|
|
|
|
+ <template #header>
|
|
|
|
+ <CardTitle title="基本信息" />
|
|
|
|
+ </template>
|
|
|
|
+ <el-form
|
|
|
|
+ ref="formRef"
|
|
|
|
+ :model="formData"
|
|
|
|
+ :rules="formRules"
|
|
|
|
+ label-width="100px"
|
|
|
|
+ >
|
|
|
|
+ <el-form-item label="用户头像" prop="avatar">
|
|
|
|
+ <UploadImg v-model="formData.avatar" height="140px" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="用户姓名" prop="name">
|
|
|
|
+ <el-input v-model="formData.name" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="性别" prop="sex">
|
|
|
|
+ <el-select v-model="formData.sex" placeholder="请选择性别">
|
|
|
|
+ <el-option
|
|
|
|
+ v-for="dict in getIntDictOptions(DICT_TYPE.MENDUNER_SEX)" :key="dict.value" :label="dict.label" :value="dict.value.toString()" />
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="联系电话" prop="phone">
|
|
|
|
+ <el-input v-model="formData.phone" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="邮箱" prop="email">
|
|
|
|
+ <el-input v-model="formData.email" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="出生日期" prop="birthday">
|
|
|
|
+ <el-date-picker v-model="formData.birthday" type="date" :disabledDate="disabledDates" value-format="x" placeholder="选择出生日期" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="学历" prop="eduType">
|
|
|
|
+ <el-select v-model="formData.eduType" placeholder="请选择学历">
|
|
|
|
+ <el-option
|
|
|
|
+ v-for="dict in getIntDictOptions(DICT_TYPE.MENDUNER_EDUCATION_TYPE)" :key="dict.value" :label="dict.label" :value="dict.value.toString()" />
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="工作经验" prop="expType">
|
|
|
|
+ <el-select v-model="formData.expType" placeholder="请选择工作经验">
|
|
|
|
+ <el-option
|
|
|
|
+ v-for="dict in getIntDictOptions(DICT_TYPE.MENDUNER_EXP_TYPE)" :key="dict.value" :label="dict.label" :value="dict.value.toString()" />
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="婚姻状况" prop="maritalStatus">
|
|
|
|
+ <el-select v-model="formData.maritalStatus" placeholder="请选择婚姻状况">
|
|
|
|
+ <el-option
|
|
|
|
+ v-for="dict in getIntDictOptions(DICT_TYPE.MENDUNER_MARITAL_STATUS)" :key="dict.value" :label="dict.label" :value="dict.value.toString()" />
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="首次工作时间" prop="firstWorkTime">
|
|
|
|
+ <el-date-picker v-model="formData.firstWorkTime" type="date" :disabledDate="disabledDates" value-format="x" placeholder="选择首次工作时间" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="现居城市" prop="areaId">
|
|
|
|
+ <el-cascader v-model="formData.areaId" :options="areaTreeData" :props="{ label: 'name', value: 'id', emitPath: false, checkStrictly: true }" class="!w-240px" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="个人优势" prop="advantage">
|
|
|
|
+ <el-input v-model="formData.advantage" :rows="8" type="textarea" placeholder="请输入您的个人优势" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-form>
|
|
|
|
+ <!-- <div class="text-right mt-2">
|
|
|
|
+ <el-button @click="submitForm" type="primary">保 存</el-button>
|
|
|
|
+ </div> -->
|
|
|
|
+ </el-card>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
<script setup>
|
|
defineOptions({ name: 'EnterpriseDetailsInfo'})
|
|
defineOptions({ name: 'EnterpriseDetailsInfo'})
|
|
-// import { DICT_TYPE } from '@/utils/dict'
|
|
|
|
-// import { formatDate } from '@/utils/formatTime'
|
|
|
|
-// import { PersonInfoApi } from '@/api/menduner/system/person'
|
|
|
|
|
|
+import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
|
|
|
|
+import { cloneDeep } from 'lodash-es'
|
|
|
|
+import { timesTampChange } from '@/utils/transform/date'
|
|
|
|
+import { getDict } from '@/hooks/web/useDictionaries'
|
|
|
|
|
|
const props = defineProps({
|
|
const props = defineProps({
|
|
- // id: String,
|
|
|
|
- // userId: String,
|
|
|
|
data: Object
|
|
data: Object
|
|
})
|
|
})
|
|
|
|
|
|
-// const isEdit = ref(false)
|
|
|
|
|
|
+const formRef = ref()
|
|
|
|
+const formData = ref({
|
|
|
|
+ avatar: undefined,
|
|
|
|
+ sex: undefined,
|
|
|
|
+ phone: undefined,
|
|
|
|
+ email: undefined,
|
|
|
|
+ birthday: undefined,
|
|
|
|
+ eduType: undefined,
|
|
|
|
+ expType: undefined,
|
|
|
|
+ maritalStatus: undefined,
|
|
|
|
+ major: undefined,
|
|
|
|
+ firstWorkTime: undefined,
|
|
|
|
+ areaId: undefined,
|
|
|
|
+ advantage: undefined
|
|
|
|
+})
|
|
|
|
+const formRules = reactive({
|
|
|
|
+ // schoolName: [{ required: true, message: '学校名称不能为空', trigger: 'blur' }],
|
|
|
|
+ // major: [{ required: true, message: '专业名称不能为空', trigger: 'blur' }],
|
|
|
|
+ // educationType: [{ required: true, message: '学历不能为空', trigger: 'blur' }],
|
|
|
|
+ // startDate: [{ required: true, message: '开始时间不能为空', trigger: 'blur' }],
|
|
|
|
+ // endDate: [{ required: true, message: '结束时间不能为空', trigger: 'blur' }]
|
|
|
|
+})
|
|
|
|
|
|
-// 获取人才详情
|
|
|
|
-// const info = ref({
|
|
|
|
-// id: "1843909447483768834",
|
|
|
|
-// userId: "804044393148452864",
|
|
|
|
-// foreignName: "Oscar",
|
|
|
|
-// name: "沈和威",
|
|
|
|
-// sex: "0",
|
|
|
|
-// avatar: "https://www.mendunerhr.com/images/1726804566749_804044393148452864_mini.jpg",
|
|
|
|
-// phone: null,
|
|
|
|
-// email: "812320386@qq.com",
|
|
|
|
-// wxCode: null,
|
|
|
|
-// birthday: 828547200000,
|
|
|
|
-// maritalStatus: null,
|
|
|
|
-// areaId: null,
|
|
|
|
-// regId: null,
|
|
|
|
-// jobType: "0",
|
|
|
|
-// jobStatus: "2",
|
|
|
|
-// firstWorkTime: 1356969600000,
|
|
|
|
-// advantage: null,
|
|
|
|
-// expType: "7",
|
|
|
|
-// eduType: "3",
|
|
|
|
-// tagList: null,
|
|
|
|
-// createTime: 1728457245120,
|
|
|
|
-// updateTime: 1732688920332
|
|
|
|
-// })
|
|
|
|
-// const getInfo = async () => {
|
|
|
|
-// const data = await PersonInfoApi.getPersonDetails(props.id)
|
|
|
|
-// info.value = data
|
|
|
|
-// }
|
|
|
|
-// if (props.id) getInfo()
|
|
|
|
|
|
+watch(() => props.data, (newVal) => {
|
|
|
|
+ formData.value = cloneDeep(newVal)
|
|
|
|
+}, { deep: true })
|
|
|
|
|
|
-// 会员套餐列表
|
|
|
|
-// const packageList = ref([])
|
|
|
|
-// const getPackageList = async () => {
|
|
|
|
-// const data = await PersonInfoApi.getPersonPackageList()
|
|
|
|
-// packageList.value = data
|
|
|
|
-// }
|
|
|
|
-// getPackageList()
|
|
|
|
|
|
+// 未来的时间不可选
|
|
|
|
+const disabledDates = (date) => {
|
|
|
|
+ return date.getTime() > Date.now()
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// 地区列表
|
|
|
|
+const areaTreeData = ref([])
|
|
|
|
+const getDictData = async () => {
|
|
|
|
+ const { data } = await getDict('areaTreeData', {}, 'areaTreeData')
|
|
|
|
+ const obj = data.find(e => e.name === '中国')
|
|
|
|
+ const list = obj?.children ? obj.children.map(e =>{
|
|
|
|
+ // 市辖区直接显示区
|
|
|
|
+ const municipality = e.children && e.children.length && e.children[0].name === '市辖区'
|
|
|
|
+ if (municipality && e.children[0].children?.length) e.children = e.children[0].children
|
|
|
|
+ return e
|
|
|
|
+ }) : []
|
|
|
|
+ areaTreeData.value = list.length ? list : []
|
|
|
|
+}
|
|
|
|
+getDictData()
|
|
|
|
|
|
-// 获取用户详情
|
|
|
|
-// const user = ref({
|
|
|
|
-// id: "804044393148452864",
|
|
|
|
-// username: "13539831035",
|
|
|
|
-// password: "$2a$04$3QZFv24b5l8OxwHijZZQY.GDxXZZbdYvl8Y8cJXtBxQ2UDsCPnSBe",
|
|
|
|
-// email: "812320386@qq.com",
|
|
|
|
-// phone: "13539831035",
|
|
|
|
-// avatar: "https://www.mendunerhr.com/images/1726804566749_804044393148452864_mini.jpg",
|
|
|
|
-// status: "0",
|
|
|
|
-// registerIp: null,
|
|
|
|
-// registerTerminal: null,
|
|
|
|
-// vipFlag: null,
|
|
|
|
-// vipExpireDate: null,
|
|
|
|
-// inviteCode: null,
|
|
|
|
-// loginIp: "",
|
|
|
|
-// loginDate: null,
|
|
|
|
-// createTime: 1728291312047
|
|
|
|
-// })
|
|
|
|
-// const getUserDetails = async () => {
|
|
|
|
-// const data = await PersonInfoApi.getUserDetails(props.userId)
|
|
|
|
-// user.value = data
|
|
|
|
|
|
+// const submitForm = async () => {
|
|
|
|
+// await formRef.value.validate()
|
|
// }
|
|
// }
|
|
-// getUserDetails()
|
|
|
|
</script>
|
|
</script>
|