484 lines
10 KiB
Vue
Raw Normal View History

2025-04-22 10:22:33 +08:00
<template>
<BasicLayout>
2025-05-13 15:39:44 +08:00
<view class="px-15 pb-15">
2025-04-22 10:22:33 +08:00
<BasicForm @register="register"> </BasicForm>
</view>
<template #bottom>
<view class="flex-row items-center pb-10 pt-5">
<u-button
text="返回"
class="ml-15 mr-7"
:plain="true"
@click="navigateBack"
/>
<u-button
2025-05-13 15:39:44 +08:00
text="下一步"
2025-04-22 10:22:33 +08:00
class="mr-15 mr-7"
type="primary"
@click="submit"
/>
</view>
</template>
</BasicLayout>
</template>
<script setup lang="ts">
import { navigateBack, navigateTo } from "@/utils/uniapp";
import { useForm } from "@/components/BasicForm/hooks/useForm";
2025-05-13 15:39:44 +08:00
import { dicApi, findDicTreeByPidApi } from "@/api/system/dic";
import { useDataStore } from "@/store/modules/data";
import { map } from "lodash";
import dayjs from "dayjs";
2025-06-04 20:52:34 +08:00
import {
findAllNjBjTree,
findAllXxXqNjTree,
kmFindAllApi,
} from "@/api/base/server";
2025-05-13 15:39:44 +08:00
const { getFile, setFile } = useDataStore();
const jsjg = ref("");
2025-04-22 10:22:33 +08:00
2025-05-13 15:39:44 +08:00
// 计算日期与当前日期相差的年数
const calculateYearDiff = (startDate: string) => {
if (!startDate) return "";
const start = dayjs(startDate);
const now = dayjs();
2025-05-13 15:43:34 +08:00
console.log(now.diff(start, "year"));
2025-05-13 15:39:44 +08:00
return now.diff(start, "year");
};
const [register, { getValue, setValue }] = useForm({
2025-04-22 10:22:33 +08:00
schema: [
{
2025-05-13 15:39:44 +08:00
title: "基础信息",
},
{
field: "jsdah",
label: "档案号",
component: "BasicInput",
componentProps: {
disabled: true,
},
},
{
field: "jsxm",
2025-04-22 10:22:33 +08:00
label: "姓名",
component: "BasicInput",
componentProps: {},
},
{
2025-05-13 15:39:44 +08:00
field: "jsxbId",
label: "性别",
component: "BasicPicker",
componentProps: {
api: dicApi,
param: { pid: 13001 },
rangeKey: "dictionaryValue",
savaKey: "dictionaryCode",
},
},
{
field: "jsjgId",
2025-04-22 10:22:33 +08:00
label: "籍贯",
2025-05-13 15:39:44 +08:00
component: "BasicDataPicker",
componentProps: {
api: findDicTreeByPidApi,
param: { pid: 3701 },
rangeKey: "dictionaryValue",
savaKey: "dictionaryCode",
onChange: (e: any) => {
jsjg.value = map(e.detail.value, (item) => {
return item.text;
}).join("");
},
},
},
{
field: "mzId",
label: "民族",
2025-04-22 10:22:33 +08:00
component: "BasicPicker",
2025-05-13 15:39:44 +08:00
componentProps: {
api: dicApi,
param: { pid: 19204295 },
rangeKey: "dictionaryValue",
savaKey: "dictionaryCode",
},
2025-04-22 10:22:33 +08:00
},
{
2025-05-13 15:39:44 +08:00
field: "sfzh",
2025-04-22 10:22:33 +08:00
label: "身份证号",
component: "BasicInput",
componentProps: {},
},
{
2025-05-13 15:39:44 +08:00
field: "age",
2025-04-22 10:22:33 +08:00
label: "年龄",
component: "BasicInput",
componentProps: {},
},
{
2025-05-13 15:39:44 +08:00
field: "cstime",
2025-04-22 10:22:33 +08:00
label: "出生日期",
component: "BasicDateTimes",
componentProps: {},
},
{
2025-05-13 15:39:44 +08:00
field: "zzmmId",
2025-04-22 10:22:33 +08:00
label: "政治面貌",
component: "BasicPicker",
2025-05-13 15:39:44 +08:00
componentProps: {
api: dicApi,
param: { pid: 385536488 },
rangeKey: "dictionaryValue",
savaKey: "dictionaryCode",
},
2025-04-22 10:22:33 +08:00
},
{
2025-05-13 15:39:44 +08:00
field: "rdtime",
2025-04-22 10:22:33 +08:00
label: "入党时间",
component: "BasicDateTimes",
componentProps: {},
},
{
2025-05-13 15:39:44 +08:00
field: "lxdh",
label: "联系电话",
2025-04-22 10:22:33 +08:00
component: "BasicInput",
componentProps: {},
},
{
2025-05-13 15:39:44 +08:00
field: "dzyx",
label: "电子邮箱",
2025-04-22 10:22:33 +08:00
component: "BasicInput",
componentProps: {},
},
2025-06-04 20:52:34 +08:00
{
field: "cgtime",
label: "参加工作时间",
component: "BasicDateTimes",
componentProps: {
change: (e: any) => {
const yearDiff = calculateYearDiff(e);
setValue({ jsgl: yearDiff });
},
},
},
{
field: "jsgl",
label: "工龄",
component: "BasicInput",
componentProps: {
disabled: true,
},
},
{
field: "jsTime",
label: "任教开始时间",
component: "BasicDateTimes",
componentProps: {
change: (e: any) => {
const yearDiff = calculateYearDiff(e);
setValue({ jl: yearDiff });
},
},
},
{
field: "jl",
label: "教龄",
component: "BasicInput",
componentProps: {
disabled: true,
placeholder: "请选择教龄时间",
},
},
{
field: "jrdwtime",
label: "进入本单位时间",
component: "BasicDateTimes",
componentProps: {
change: (e: any) => {
const yearDiff = calculateYearDiff(e);
setValue({ jrdwnx: yearDiff });
},
},
},
{
field: "jrdwnx",
label: "进入本单位年限",
component: "BasicInput",
componentProps: {
placeholder: "请选择进入本单位时间",
disabled: true,
},
},
2025-05-13 15:39:44 +08:00
2025-06-04 20:52:34 +08:00
{
field: "jrly",
label: "进入来源",
component: "BasicPicker",
componentProps: {
api: dicApi,
param: { pid: 2026977361 },
rangeKey: "dictionaryValue",
savaKey: "dictionaryCode",
},
},
{
field: "bzqkId",
label: "编制情况",
component: "BasicPicker",
componentProps: {
api: dicApi,
param: { pid: 290357612 },
rangeKey: "dictionaryValue",
savaKey: "dictionaryCode",
},
},
{
field: "zdqkId",
label: "在岗情况",
component: "BasicPicker",
componentProps: {
api: dicApi,
param: { pid: 810984651 },
rangeKey: "dictionaryValue",
savaKey: "dictionaryCode",
},
},
2025-04-22 10:22:33 +08:00
{
2025-05-13 15:39:44 +08:00
field: "sbkh",
label: "社保卡号",
2025-04-22 10:22:33 +08:00
component: "BasicInput",
componentProps: {},
},
{
2025-05-13 15:39:44 +08:00
title: "学历情况",
2025-04-22 10:22:33 +08:00
},
{
2025-05-13 15:39:44 +08:00
field: "dyxlId",
2025-04-22 10:22:33 +08:00
label: "初始学历",
component: "BasicPicker",
2025-05-13 15:39:44 +08:00
componentProps: {
api: dicApi,
param: { pid: 1914632204 },
rangeKey: "dictionaryValue",
savaKey: "dictionaryCode",
},
2025-04-22 10:22:33 +08:00
},
{
2025-05-13 15:39:44 +08:00
field: "dybyyx",
2025-04-22 10:22:33 +08:00
label: "全日制学历毕业院校",
component: "BasicInput",
componentProps: {},
},
{
2025-05-13 15:39:44 +08:00
field: "dybyzy",
label: "全日制学历专业",
2025-04-22 10:22:33 +08:00
component: "BasicInput",
componentProps: {},
},
{
2025-05-13 15:39:44 +08:00
field: "zhxlId",
label: "最后学历",
component: "BasicPicker",
componentProps: {
api: dicApi,
param: { pid: 1914632204 },
rangeKey: "dictionaryValue",
savaKey: "dictionaryCode",
},
},
{
field: "zhbyyx",
2025-04-22 10:22:33 +08:00
label: "最后学历毕业院校",
component: "BasicInput",
componentProps: {},
},
{
2025-05-13 15:39:44 +08:00
field: "zhbyzy",
2025-04-22 10:22:33 +08:00
label: "最后学历专业",
component: "BasicInput",
componentProps: {},
},
{
2025-05-13 15:39:44 +08:00
field: "zhbynytime",
2025-04-22 10:22:33 +08:00
label: "最后学历毕业年月",
component: "BasicDateTimes",
componentProps: {},
},
{
2025-05-13 15:39:44 +08:00
field: "xwlbId",
2025-04-22 10:22:33 +08:00
label: "学位类别",
2025-05-13 15:39:44 +08:00
component: "BasicInput",
2025-04-22 10:22:33 +08:00
componentProps: {},
},
{
2025-05-13 15:39:44 +08:00
field: "xw",
2025-04-22 10:22:33 +08:00
label: "学位",
2025-05-13 15:39:44 +08:00
component: "BasicPicker",
componentProps: {
api: dicApi,
param: { pid: 1513282965 },
rangeKey: "dictionaryValue",
savaKey: "dictionaryCode",
},
2025-04-22 10:22:33 +08:00
},
{
2025-05-13 15:39:44 +08:00
field: "xwzy",
2025-04-22 10:22:33 +08:00
label: "学位专业",
component: "BasicInput",
componentProps: {},
},
{
2025-05-13 15:39:44 +08:00
title: "教师资格",
},
{
field: "zgxdId",
2025-04-22 10:22:33 +08:00
label: "教师资格学段",
2025-05-13 15:39:44 +08:00
component: "BasicPicker",
componentProps: {
api: dicApi,
param: { pid: 1680570189 },
rangeKey: "dictionaryValue",
savaKey: "dictionaryCode",
},
2025-04-22 10:22:33 +08:00
},
{
2025-05-13 15:39:44 +08:00
field: "zgxkId",
2025-04-22 10:22:33 +08:00
label: "教师资格学科",
2025-05-13 15:39:44 +08:00
component: "BasicPicker",
componentProps: {
api: dicApi,
param: { pid: 1029593616 },
rangeKey: "dictionaryValue",
savaKey: "dictionaryCode",
},
2025-04-22 10:22:33 +08:00
},
{
2025-05-13 15:39:44 +08:00
field: "zgzs",
2025-04-22 10:22:33 +08:00
label: "教师资格证书号",
component: "BasicInput",
componentProps: {},
},
{
2025-05-13 15:39:44 +08:00
field: "zgnytime",
2025-04-22 10:22:33 +08:00
label: "教师资格取得年月",
component: "BasicDateTimes",
componentProps: {},
},
{
2025-05-13 15:39:44 +08:00
field: "zgzctime",
2025-04-22 10:22:33 +08:00
label: "教师资格注册时间",
component: "BasicDateTimes",
componentProps: {},
},
{
2025-06-04 20:52:34 +08:00
title: "任教任职",
2025-05-13 15:39:44 +08:00
},
{
2025-06-04 20:52:34 +08:00
field: "gwjbId",
label: "岗位级别",
component: "BasicPicker",
2025-05-13 15:39:44 +08:00
componentProps: {
2025-06-04 20:52:34 +08:00
api: dicApi,
param: { pid: 260783972 },
rangeKey: "dictionaryValue",
savaKey: "dictionaryCode",
2025-05-13 15:39:44 +08:00
},
},
{
2025-06-04 20:52:34 +08:00
field: "gwrztime",
label: "岗位任职时间",
component: "BasicDateTimes",
componentProps: {},
2025-04-22 10:22:33 +08:00
},
{
2025-06-04 20:52:34 +08:00
field: "xqxjId",
label: "薪级",
component: "BasicPicker",
2025-05-13 15:39:44 +08:00
componentProps: {
2025-06-04 20:52:34 +08:00
api: dicApi,
param: { pid: 434953981 },
rangeKey: "dictionaryValue",
savaKey: "dictionaryCode",
2025-05-13 15:39:44 +08:00
},
},
{
2025-06-04 20:52:34 +08:00
field: "dzzw",
label: "职务",
component: "BasicPicker",
2025-05-13 15:39:44 +08:00
componentProps: {
2025-06-04 20:52:34 +08:00
api: dicApi,
param: { pid: 434953981 },
rangeKey: "dictionaryValue",
savaKey: "dictionaryCode",
2025-05-13 15:39:44 +08:00
},
2025-04-22 10:22:33 +08:00
},
{
2025-06-04 20:52:34 +08:00
field: "zrxk",
label: "主任学科",
component: "BasicPicker",
2025-05-13 15:39:44 +08:00
componentProps: {
2025-06-04 20:52:34 +08:00
api: kmFindAllApi,
rangeKey: "kmmc",
savaKey: "id",
2025-05-13 15:39:44 +08:00
},
2025-04-22 10:22:33 +08:00
},
{
2025-06-04 20:52:34 +08:00
field: "jrxk",
label: "兼任学科",
component: "BasicPicker",
2025-05-13 15:39:44 +08:00
componentProps: {
2025-06-04 20:52:34 +08:00
api: kmFindAllApi,
rangeKey: "kmmc",
savaKey: "id",
2025-05-13 15:39:44 +08:00
},
},
{
2025-06-04 20:52:34 +08:00
field: "qtzw",
label: "其他职务",
2025-04-22 10:22:33 +08:00
component: "BasicInput",
componentProps: {},
},
2025-05-13 15:39:44 +08:00
{
2025-06-04 20:52:34 +08:00
field: "njId",
label: "年级",
component: "BasicTree",
2025-05-13 15:39:44 +08:00
componentProps: {
2025-06-04 20:52:34 +08:00
api: findAllXxXqNjTree,
rangeKey: "title",
savaKey: "key",
2025-05-13 15:39:44 +08:00
},
},
{
2025-06-04 20:52:34 +08:00
field: "bzrBjId",
label: "班主任班级",
component: "BasicTree",
2025-05-13 15:39:44 +08:00
componentProps: {
2025-06-04 20:52:34 +08:00
api: findAllNjBjTree,
rangeKey: "title",
savaKey: "key",
2025-05-13 15:39:44 +08:00
},
},
2025-04-22 10:22:33 +08:00
],
});
2025-05-13 15:39:44 +08:00
setValue(getFile);
2025-04-22 10:22:33 +08:00
2025-05-13 15:39:44 +08:00
async function submit() {
try {
const value = await getValue();
setFile({ ...getFile, ...value, jsjg: jsjg.value });
navigateTo("/pages/view/hr/teacherProfile/TitleInfo");
} catch (error) {}
2025-04-22 10:22:33 +08:00
}
</script>
<style lang="scss" scoped>
.delete-icon {
position: absolute;
right: 0;
top: 0;
z-index: 1;
}
</style>