生育休假申请修改,新增工会干部培训
This commit is contained in:
+118
-17
@@ -12,7 +12,8 @@ layout("/layouts/platform.html"){
|
||||
<el-descriptions-item label="职工姓名">{{formData.userName}}</el-descriptions-item>
|
||||
<el-descriptions-item label="性别">{{formData.sex}}</el-descriptions-item>
|
||||
<el-descriptions-item label="民族">{{formData.nation}}</el-descriptions-item>
|
||||
<el-descriptions-item label="出生年月" >{{formData.birthday}}</el-descriptions-item>
|
||||
<!-- 修改出生年月的显示方式 -->
|
||||
<el-descriptions-item label="出生年月">{{formatDate(formData.birthday)}}</el-descriptions-item>
|
||||
<el-descriptions-item label="工作单位" >{{formData.unitName}}</el-descriptions-item>
|
||||
<el-descriptions-item label="电话" >{{formData.mobile}}</el-descriptions-item>
|
||||
|
||||
@@ -60,41 +61,45 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<table-tool label="假期类别"></table-tool>
|
||||
<el-descriptions :column="2" border>
|
||||
<el-descriptions-item label="陪产假" v-if="formData.sex === '男性' || formData.sex === '男'">
|
||||
<el-descriptions-item label="陪产假" v-if="isMale">
|
||||
<el-form-item label="陪产假" prop="withLeave">
|
||||
<el-input v-model="formData.withLeave" placeholder="请输入陪产天数"
|
||||
type="number"></el-input>
|
||||
type="number" :disabled="true"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="育儿假" v-if="formData.sex === '男性' || formData.sex === '男'">
|
||||
<el-descriptions-item label="育儿假" v-if="isMale">
|
||||
<el-form-item label="育儿假" prop="parentalLeave">
|
||||
<el-input v-model="formData.parentalLeave" placeholder="请输入育儿假天数"
|
||||
type="number"></el-input>
|
||||
type="number" :disabled="true"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="产假" v-if="formData.sex === '女性' || formData.sex === '女'">
|
||||
<el-descriptions-item label="产假" v-if="isFemale">
|
||||
<el-form-item label="产假" prop="maternityLeave">
|
||||
<el-input v-model="formData.maternityLeave" placeholder="请输入产假天数"
|
||||
type="number"></el-input>
|
||||
type="number" :disabled="true"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="延长假" v-if="formData.sex === '女性' || formData.sex === '女'">
|
||||
<el-descriptions-item label="延长假" v-if="isFemale">
|
||||
<el-form-item label="延长假" prop="extendLeave">
|
||||
<el-input v-model="formData.extendLeave" placeholder="请输入延长假天数"
|
||||
type="number"></el-input>
|
||||
type="number" :disabled="true"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="多胞胎" v-if="formData.sex === '女性' || formData.sex === '女'">
|
||||
<el-descriptions-item label="多胞胎" v-if="isFemale">
|
||||
<el-form-item label="多胞胎" prop="birthsLeave">
|
||||
<el-input v-model="formData.birthsLeave" placeholder="请输入多胞胎天数"
|
||||
type="number"></el-input>
|
||||
<el-select v-model="formData.birthsLeave" placeholder="请选择多胞胎天数"
|
||||
clearable style="width: 100%">
|
||||
<el-option label="15" :value="15"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="难产假" v-if="formData.sex === '女性' || formData.sex === '女'">
|
||||
<el-descriptions-item label="难产假" v-if="isFemale">
|
||||
<el-form-item label="难产假" prop="difficultLeave">
|
||||
<el-input v-model="formData.difficultLeave" placeholder="请输入难产假天数"
|
||||
type="number"></el-input>
|
||||
<el-select v-model="formData.difficultLeave" placeholder="请选择难产假天数"
|
||||
clearable style="width: 100%">
|
||||
<el-option label="15" :value="15"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
@@ -198,14 +203,92 @@ layout("/layouts/platform.html"){
|
||||
});
|
||||
|
||||
return total;
|
||||
}
|
||||
},
|
||||
// 是否为男性
|
||||
isMale() {
|
||||
return this.formData.sex === '男性' || this.formData.sex === '男';
|
||||
},
|
||||
// 是否为女性
|
||||
isFemale() {
|
||||
return this.formData.sex === '女性' || this.formData.sex === '女';
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
totalLeaveDays(newVal) {
|
||||
this.$set(this.formData, 'leaveDays', newVal);
|
||||
// 当合计天数或开始时间变化时,自动计算结束时间
|
||||
this.calculateEndTime();
|
||||
},
|
||||
'formData.startTime'() {
|
||||
// 当开始时间变化时,自动计算结束时间
|
||||
this.calculateEndTime();
|
||||
},
|
||||
// 监听性别变化,设置默认值
|
||||
isMale(newVal) {
|
||||
if (newVal) {
|
||||
// 男性默认设置
|
||||
this.$set(this.formData, 'loverSex', '女性');
|
||||
this.$set(this.formData, 'withLeave', 15);
|
||||
this.$set(this.formData, 'parentalLeave', 10);
|
||||
}
|
||||
},
|
||||
isFemale(newVal) {
|
||||
if (newVal) {
|
||||
// 女性默认设置
|
||||
this.$set(this.formData, 'loverSex', '男性');
|
||||
this.$set(this.formData, 'maternityLeave', 98);
|
||||
this.$set(this.formData, 'extendLeave', 60);
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 添加日期格式化方法
|
||||
formatDate(date) {
|
||||
if (!date) return '';
|
||||
// 如果已经是 yyyy-MM-dd 格式,直接返回
|
||||
if (typeof date === 'string' && /^\d{4}-\d{2}-\d{2}/.test(date)) {
|
||||
// 如果包含时间,只取日期部分
|
||||
if (date.length > 10) {
|
||||
return date.substring(0, 10);
|
||||
}
|
||||
return date;
|
||||
}
|
||||
// 否则转换为 yyyy-MM-dd 格式
|
||||
try {
|
||||
const d = new Date(date);
|
||||
if (isNaN(d.getTime())) {
|
||||
return date;
|
||||
}
|
||||
const year = d.getFullYear();
|
||||
const month = String(d.getMonth() + 1).padStart(2, '0');
|
||||
const day = String(d.getDate()).padStart(2, '0');
|
||||
return year + '-' + month + '-' + day;
|
||||
} catch (e) {
|
||||
return date;
|
||||
}
|
||||
},
|
||||
// 计算休假时间止
|
||||
calculateEndTime() {
|
||||
// 如果是男性,则不自动计算结束时间
|
||||
if (this.isMale) {
|
||||
return;
|
||||
}
|
||||
if (this.formData.startTime && this.formData.leaveDays) {
|
||||
const startDate = new Date(this.formData.startTime);
|
||||
if (!isNaN(startDate.getTime())) {
|
||||
// 创建新的日期对象,避免修改原始日期
|
||||
const endDate = new Date(startDate);
|
||||
// 添加天数(leaveDays - 1,因为包含开始日期)
|
||||
endDate.setDate(endDate.getDate() + this.formData.leaveDays - 1);
|
||||
// 格式化为 yyyy-MM-dd
|
||||
const year = endDate.getFullYear();
|
||||
const month = String(endDate.getMonth() + 1).padStart(2, '0');
|
||||
const day = String(endDate.getDate()).padStart(2, '0');
|
||||
// 使用字符串拼接代替模板字符串,避免与Beetl冲突
|
||||
this.$set(this.formData, 'endTime', year + '-' + month + '-' + day);
|
||||
}
|
||||
}
|
||||
},
|
||||
// 保存
|
||||
onSave() {
|
||||
this.$confirm("您确定保存吗?", "提示", {
|
||||
@@ -301,9 +384,27 @@ layout("/layouts/platform.html"){
|
||||
birthday: birthday,
|
||||
mobile:mobile
|
||||
}
|
||||
console.log('FormData birthday:', this.formData.birthday);
|
||||
|
||||
// 根据性别设置默认值
|
||||
if (this.isMale) {
|
||||
// 男性默认设置
|
||||
this.$set(this.formData, 'loverSex', '女性');
|
||||
this.$set(this.formData, 'withLeave', 15);
|
||||
this.$set(this.formData, 'parentalLeave', 10);
|
||||
// 男性默认产假和延长假为0,因为男性不休产假
|
||||
this.$set(this.formData, 'maternityLeave', 0);
|
||||
this.$set(this.formData, 'extendLeave', 0);
|
||||
} else if (this.isFemale) {
|
||||
// 女性默认设置
|
||||
this.$set(this.formData, 'loverSex', '男性');
|
||||
this.$set(this.formData, 'maternityLeave', 98);
|
||||
this.$set(this.formData, 'extendLeave', 60);
|
||||
// 女性默认陪产假和育儿假为0
|
||||
this.$set(this.formData, 'withLeave', 0);
|
||||
this.$set(this.formData, 'parentalLeave', 0);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
},
|
||||
created() {
|
||||
|
||||
@@ -10,15 +10,13 @@ const maternityLeaveInfo = {
|
||||
<el-descriptions-item label="职工姓名">{{viewData.userName}}</el-descriptions-item>
|
||||
<el-descriptions-item label="性别">{{viewData.sex}}</el-descriptions-item>
|
||||
<el-descriptions-item label="民族">{{viewData.nation}}</el-descriptions-item>
|
||||
<el-descriptions-item label="出生年月">{{viewData.birthday}}</el-descriptions-item>
|
||||
<el-descriptions-item label="单位">{{viewData.unitName}}</el-descriptions-item>
|
||||
<el-descriptions-item label="出生年月">{{formatDate(viewData.birthday)}}</el-descriptions-item> <el-descriptions-item label="单位">{{viewData.unitName}}</el-descriptions-item>
|
||||
<el-descriptions-item label="电话">{{viewData.mobile}}</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="爱人姓名">{{viewData.loverName}}</el-descriptions-item>
|
||||
<el-descriptions-item label="性别">{{viewData.loverSex}}</el-descriptions-item>
|
||||
<el-descriptions-item label="民族">{{viewData.loverNation}}</el-descriptions-item>
|
||||
<el-descriptions-item label="出生年月">{{viewData.loverBirthday}}</el-descriptions-item>
|
||||
<el-descriptions-item label="单位" span="2">{{viewData.loverUnitName}}</el-descriptions-item>
|
||||
<el-descriptions-item label="出生年月">{{formatDate(viewData.loverBirthday)}}</el-descriptions-item> <el-descriptions-item label="单位" span="2">{{viewData.loverUnitName}}</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
<table-tool label="假期类型"></table-tool>
|
||||
<el-descriptions :column="2" border class="flow-task-form">
|
||||
@@ -43,10 +41,10 @@ const maternityLeaveInfo = {
|
||||
<el-descriptions-item label="寒假">{{viewData.winterLeave}}</el-descriptions-item>
|
||||
<el-descriptions-item label="暑假">{{viewData.summerLeave}}</el-descriptions-item>
|
||||
<el-descriptions-item label="合计" :span="2">{{viewData.leaveDays}}</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="休假时间起">{{viewData.startTime}}</el-descriptions-item>
|
||||
<el-descriptions-item label="休假时间止">{{viewData.endTime}}</el-descriptions-item>
|
||||
<el-descriptions-item label="子女出生日">{{viewData.childrenBirthday}}</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="休假时间起">{{formatDate(viewData.startTime)}}</el-descriptions-item>
|
||||
<el-descriptions-item label="休假时间止">{{formatDate(viewData.endTime)}}</el-descriptions-item>
|
||||
<el-descriptions-item label="子女出生日">{{formatDate(viewData.childrenBirthday)}}</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
|
||||
<template v-for="task in doneTasks">
|
||||
@@ -101,6 +99,31 @@ const maternityLeaveInfo = {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 添加日期格式化方法
|
||||
formatDate(date) {
|
||||
if (!date) return '';
|
||||
// 如果已经是 yyyy-MM-dd 格式,直接返回
|
||||
if (typeof date === 'string' && /^\d{4}-\d{2}-\d{2}/.test(date)) {
|
||||
// 如果包含时间,只取日期部分
|
||||
if (date.length > 10) {
|
||||
return date.substring(0, 10);
|
||||
}
|
||||
return date;
|
||||
}
|
||||
// 否则转换为 yyyy-MM-dd 格式
|
||||
try {
|
||||
const d = new Date(date);
|
||||
if (isNaN(d.getTime())) {
|
||||
return date;
|
||||
}
|
||||
const year = d.getFullYear();
|
||||
const month = String(d.getMonth() + 1).padStart(2, '0');
|
||||
const day = String(d.getDate()).padStart(2, '0');
|
||||
return year + '-' + month + '-' + day;
|
||||
} catch (e) {
|
||||
return date;
|
||||
}
|
||||
},
|
||||
// 打开
|
||||
onOpen(row) {
|
||||
this.row = row
|
||||
|
||||
@@ -35,6 +35,7 @@ layout("/layouts/platform.html"){
|
||||
<el-button v-if="row.canRevoke" @click="onRevoke(row)" size="mini" type="danger">撤回
|
||||
</el-button>
|
||||
<el-button v-if="row.taskKey === 'startTask' || !row.instanceId" @click="onDelete(row.id)" size="mini" type="danger">删除</el-button>
|
||||
<el-button @click="doExportApply(row)" size="mini" type="primary">申请表导出</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -69,6 +70,10 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
,
|
||||
methods: {
|
||||
// 导出示例
|
||||
doExportApply(row){
|
||||
this.$downLoad('/platform/maternityLeave/mine/doExportApply?id=' + row.id)
|
||||
},
|
||||
onView(row) {
|
||||
this.$refs.guava.view(()=>{
|
||||
this.$refs.maternityLeaveInfoRef.onOpen(row)
|
||||
|
||||
Reference in New Issue
Block a user