女职工卫生费75%

This commit is contained in:
=
2025-11-03 08:52:46 +08:00
parent 1968db5e9a
commit f290949019
36 changed files with 1536 additions and 347 deletions
@@ -20,7 +20,7 @@ layout("/layouts/platform.html"){
@change="doSearch"
></el-date-picker>
</search-item>
<search-item label="活动状态" style="width: 340px">
<search-item label="活动状态" style="width: 340px">
<el-select v-model="pageForm.activityType" @change="doSearch" style="width: 100%"
placeholder="请选择活动状态" filterable>
<el-option :value="1" label="全部"></el-option>
@@ -198,14 +198,14 @@ const basicForm = {
</template>
</el-table-column>
<el-table-column :label="trainType + '名称'" prop="courseName">
<el-table-column :label="trainType + '人员'" prop="courseName">
<template v-slot="{row}">
<el-input size="small" v-model="row.courseName"
:placeholder="'请输入' + trainType + '名称'"></el-input>
</template>
</el-table-column>
<el-table-column label="类型" prop="courseType" sortable>
<el-table-column label="联谊类型" prop="courseType" sortable>
<template v-slot="{row}">
<el-select size="small" v-model="row.courseType"
@change="(val) => {courseTypeChange(val, row)}">
@@ -267,7 +267,7 @@ const basicForm = {
<el-table-column :label="trainType + '负责人'" prop="courseInstructor">
<template v-slot="{row}">
<el-input size="small" v-model="row.courseInstructor"
:placeholder="'请输入' + trainType + '负责人'"></el-input>
:placeholder="'请输入' + trainType + '交友联谊负责人'"></el-input>
</template>
</el-table-column>
@@ -280,7 +280,7 @@ const basicForm = {
<el-table-column :label="trainType + '时间'">
<template v-slot="scope">
<el-button @click="openSetUpCourseTime(scope.$index)" type="text">设置{{ trainType
}}时间
}}交友联谊时间
</el-button>
</template>
</el-table-column>
@@ -379,7 +379,7 @@ const basicForm = {
},
historicalActList: [],
trainTypeList: [],
trainType: "培训班",
trainType: "",
activityGroupList: [],
pickerOptions: {
disabledDate(time) {
@@ -13,7 +13,7 @@ const info = {
<el-descriptions-item label="报名结束时间">{{viewData.activitySignUpEndTime}}</el-descriptions-item>
</el-descriptions>
</el-tab-pane>
<el-tab-pane :label="trainType + '信息'">
<el-tab-pane label="活动信息">
<el-table :data="viewData.courseList" class="mt20">
<el-table-column :label="trainType + '名称'" prop="courseName"></el-table-column>
<el-table-column label="类型" prop="courseTypeName"></el-table-column>
@@ -26,9 +26,9 @@ const info = {
</el-table-column>
<el-table-column label="校区" prop="campus"></el-table-column>
<el-table-column label="负责人" prop="courseInstructor"></el-table-column>
<el-table-column label="上课时间" prop="courseTimeList" width="200px">
<el-table-column label="活动时间" prop="courseTimeList" width="200px">
<template v-slot="{ row }">
<el-button @click="openViewCourseTime(row.courseTimeList)" type="text">点击查看课程时间</el-button>
<el-button @click="openViewCourseTime(row.courseTimeList)" type="text">点击查看活动时间</el-button>
</template>
</el-table-column>
</el-table>
@@ -71,7 +71,7 @@ const info = {
if (resp.code === 0) {
this.viewData = resp.data
const type = this.dict.type.FELLOWSHIP_TYPE.find((o) => o.code === resp.data.trainType)
this.trainType = type?.name || "培训班"
this.trainType = type?.name || ""
}
})
},
@@ -37,9 +37,9 @@ layout("/layouts/platform.html"){
</table-tool>
<el-table :data="tableData" :size="tableSize">
<el-table-column :index="indexMethod" label="序号" type="index" width="80px"></el-table-column>
<el-table-column :label="trainType" prop="courseName" show-overflow-tooltip></el-table-column>
<el-table-column label="活动名称" prop="courseName" show-overflow-tooltip></el-table-column>
<el-table-column label="类型" prop="courseType" sortable show-overflow-tooltip></el-table-column>
<el-table-column :label="trainType + '地点'" prop="courseLocation" sortable show-overflow-tooltip></el-table-column>
<el-table-column label="活动地点" prop="courseLocation" sortable show-overflow-tooltip></el-table-column>
<el-table-column label="负责人" prop="courseInstructor" sortable show-overflow-tooltip></el-table-column>
<el-table-column label="最多报名人数" prop="coursePeopleNumber" sortable align="center" header-align="center" show-overflow-tooltip>
<template v-slot="{row}">
@@ -250,7 +250,7 @@ const basicForm = {
this.formData.mobileSignColumnList[index].columnType = "JSON"
this.formData.mobileSignColumnList[index].isDisabled = true
} else {
this.formData.mobileSignColumnList[index].columnType = ""
// this.formData.mobileSignColumnList[index].columnType = ""
this.formData.mobileSignColumnList[index].isDisabled = false
}
},
@@ -326,9 +326,13 @@ const basicForm = {
initData(row) {
if(row && row.id) {
this.formData = JSON.parse(JSON.stringify(row))
this.formData.mobileSignColumnList.forEach((item) => {
item.isDisabled = item.columnFormType === "FILE"
})
if (!this.formData.mobileSignColumnList || !Array.isArray(this.formData.mobileSignColumnList)) {
this.formData.mobileSignColumnList = [{ isRequired: false }]
} else {
this.formData.mobileSignColumnList.forEach((item) => {
item.isDisabled = item.columnFormType === "FILE"
})
}
} else {
this.formData = {
mobileSignColumnList: [{ isRequired: false }],
@@ -16,7 +16,7 @@ layout("/layouts/platform.html"){
<template>
<el-card shadow="never">
<search @search="doSearch">
<search-item label="类型名称">
<search-item label="类型名称">
<el-input clearable placeholder="请输入类型名称" v-model="pageForm.typeName"></el-input>
</search-item>
</search>
@@ -32,15 +32,9 @@ layout("/layouts/platform.html"){
<table-tool label="人员调整"></table-tool>
<el-table :data="tableData" :size="tableSize">
<el-table-column :index="indexMethod" label="序号" type="index" width="80px"></el-table-column>
<el-table-column :label="trainType" prop="courseName" show-overflow-tooltip></el-table-column>
<el-table-column label="活动名称" prop="courseName" show-overflow-tooltip></el-table-column>
<el-table-column label="类型" prop="courseType" sortable show-overflow-tooltip></el-table-column>
<el-table-column :label="trainType + '地点'" prop="courseLocation" sortable show-overflow-tooltip></el-table-column>
<el-table-column
:label="trainType === '培训班' ? '讲师' : '负责人'"
prop="courseInstructor"
sortable
show-overflow-tooltip
></el-table-column>
<el-table-column label="活动地点" prop="courseLocation" sortable show-overflow-tooltip></el-table-column>
<el-table-column label="最多报名人数" prop="coursePeopleNumber" sortable show-overflow-tooltip>
<template v-slot="{row}">
<span v-if="row.reserveMode === 1">
@@ -20,13 +20,13 @@ layout("/layouts/platform.html"){
<el-option :label="item.activityName" :value="item.id" v-for="item in activityList" :key="item.id"></el-option>
</el-select>
</search-item>
<search-item :label="trainType + ''">
<search-item :label="trainType">
<el-select @change="courseChange" :placeholder="'请选择' + trainType" style="width: 100%" v-model="pageForm.courseId">
<el-option :label="item.courseName" :value="item.id" v-for="item in courseList" :key="item.id"></el-option>
</el-select>
</search-item>
<search-item label="人员信息">
<el-input clearable placeholder="输入姓名或工号搜索" v-model="pageForm.userKeyWord"></el-input>
<search-item label="姓名/工号">
<el-input clearable placeholder="输入姓名或工号" v-model="pageForm.userKeyWord"></el-input>
</search-item>
</search>
</el-card>
@@ -110,11 +110,11 @@ layout("/layouts/platform.html"){
{ label: "联系方式", prop: "mobile" },
{ label: "单位", prop: "unitname", sortable: true },
{ label: "分工会", prop: "unionname", sortable: true },
{ label: "课程", prop: "courseNames", sortable: true },
{ label: "活动名称", prop: "courseNames", sortable: true },
{ label: "缺席次数", prop: "absentCount" },
{ label: "是否黑名单", prop: "isDisabled", sortable: true }
],
trainType: "培训班",
trainType: "",
courseList: [],
course: {},
reserveMode: 1,
@@ -194,7 +194,7 @@ layout("/layouts/platform.html"){
async activityChange(val) {
const activity = this.activityList.find((o) => o.id === val)
const type = this.dict.type.FELLOWSHIP_TYPE.find(o => o.code === activity.trainType)
this.trainType = type?.name || "培训班"
this.trainType = type?.name || "活动名称"
const resp = await this.$axios.post(loc() + "/getCourseByActivityId", { activityId: val })
this.courseList = resp.data
this.pageForm.courseId = ""
@@ -238,33 +238,6 @@ layout("/layouts/platform.html"){
this.$set(this.formData, 'money', null);
}
},
// 添加日期格式化方法
/*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;
}
},*/
// 保存
onSave() {
if (!this.checkBalance()) {
@@ -6,7 +6,7 @@ const EXERCISECARD_INFO = {
<el-descriptions-item label="工号">{{viewData.loginName}}</el-descriptions-item>
<el-descriptions-item label="职工姓名">{{viewData.userName}}</el-descriptions-item>
<el-descriptions-item label="性别">{{viewData.sex}}</el-descriptions-item>
<el-descriptions-item label="出生年月">{{formatDate(viewData.birthday)}}</el-descriptions-item>
<el-descriptions-item label="出生年月">{{$moment(viewData.birthday).format('YYYY-MM-DD')}}</el-descriptions-item>
<el-descriptions-item label="工会">{{viewData.unionName}}</el-descriptions-item>
<el-descriptions-item label="单位">{{viewData.unitName}}</el-descriptions-item>
<el-descriptions-item label="初始额度">{{viewData.initMoney}}</el-descriptions-item>
@@ -36,32 +36,6 @@ const EXERCISECARD_INFO = {
}
},
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
@@ -40,13 +40,13 @@ const unionReimburseInfo = {
<el-descriptions-item label="联系方式" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">{{viewData.condolenceMobile}}</el-descriptions-item>
<el-descriptions-item label="慰问类型" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">{{viewData.typeName}}</el-descriptions-item>
<el-descriptions-item label="慰问金额" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">{{viewData.money}}</el-descriptions-item>
<el-descriptions-item label="慰问时间" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">{{formatDate(viewData.condolenceTime)}}</el-descriptions-item>
<el-descriptions-item label="慰问时间" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">{{$moment(viewData.condolenceTime).format('YYYY-MM-DD')}}</el-descriptions-item>
<el-descriptions-item label="活动名称" v-if="viewData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'">{{viewData.activityName}}</el-descriptions-item>
<el-descriptions-item label="活动类型" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_2'">{{viewData.activityType}}</el-descriptions-item>
<el-descriptions-item label="活动人数" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_2'">{{viewData.activityNumber}}</el-descriptions-item>
<el-descriptions-item label="活动地点" v-if="viewData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'">{{viewData.activityPlace}}</el-descriptions-item>
<el-descriptions-item label="报销金额" v-if="viewData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'">{{viewData.money}}</el-descriptions-item>
<el-descriptions-item label="活动时间" v-if="viewData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'">{{formatDate(viewData.activityTime)}}</el-descriptions-item>
<el-descriptions-item label="活动时间" v-if="viewData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'">{{$moment(viewData.activityTime).format('YYYY-MM-DD')}}</el-descriptions-item>
<el-descriptions-item label="发票张数" v-if="viewData.reimburseType === 'UNION_REIMBURSE_TYPE_1'">{{viewData.invoiceNumber}}</el-descriptions-item>
<el-descriptions-item label="发票号码" v-if="viewData.reimburseType === 'UNION_REIMBURSE_TYPE_1'">{{viewData.invoice}}</el-descriptions-item>
<el-descriptions-item label="支付内容" :span="2">{{viewData.paymentNotes}}</el-descriptions-item>
@@ -110,32 +110,6 @@ const unionReimburseInfo = {
this.getInfo()
this.getDoneTasks()
},
// 添加日期格式化方法
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;
}
},
// 获取申请信息
getInfo() {
this.$axios.post('/platform/unionReimburse/apply/info', {id: this.row.id}).then((res) => {
@@ -0,0 +1,172 @@
const formEdit = {
template: /*language=HTML*/ `
<el-dialog :title="formData.id ? '编辑项目' : '新增项目'" :visible="visible" width="70%" :close-on-click-modal="false" :before-close="handleClose">
<el-form :model="formData" :rules="formRules" label-width="110px" ref="form">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="事项名称" prop="projectName">
<el-input v-model="formData.projectName" placeholder="请输入事项名称" maxlength="50"
show-word-limit></el-input>
</el-col>
</el-form-item>
<el-col :span="12">
<el-form-item prop="activityGroupId" label="面向对象">
<div style="display: flex; justify-content: space-between">
<div style="width: 99%">
<el-select prop="groupId" placeholder="参与人员范围"
v-model="formData.activityGroupId"
style="width: 99%;"
clearable
filterable>
<el-option v-for="item in activityGroupList"
:label="item.groupName"
:value="item.groupId"
:key="item.groupId"
></el-option>
</el-select>
</div>
<div>
<el-button
@click="$refs.drawerUserScope.userScopeDialog = true"
type="primary">设置
</el-button>
</div>
</div>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="开始时间" prop="startTime">
<el-date-picker v-model="formData.startTime" type="datetime"
placeholder="请选择活动开始时间"
value-format="yyyy-MM-dd HH:mm:ss" style="width: 100%">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="结束时间" prop="endTime">
<el-date-picker v-model="formData.endTime" type="datetime"
placeholder="请选择活动结束时间"
value-format="yyyy-MM-dd HH:mm:ss" style="width: 100%">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="内容详情" prop="content">
<text-editor v-model="formData.content"></text-editor>
</el-form-item>
<el-form-item prop="files" label="附件">
<file-upload :upload_number="5" :value.sync="formData.files"
upload_result_type="url"
upload_text="请上传附件"
complete_result upload_mode="drag"
upload_result_category="array"></file-upload>
</el-form-item>
</el-form>
<div slot="footer" style="text-align: right">
<el-button @click="handleClose">取消</el-button>
<el-button @click="doSubmit" type="primary" :loading="submitting">确定</el-button>
</div>
<drawer-user-scope
@group_change="getActivityGroup"
ref="drawerUserScope"
:group_id.sync="formData.activityGroupId"
></drawer-user-scope>
</el-dialog>
`,
components: {
"drawer-user-scope": httpVueLoader("/components/module/activity/DrawerUserScope.vue")
},
data() {
// 日期验证器
const validateDateRange = (rule, value, callback) => {
const { startTime, endTime } = this.formData
if (rule.field === "endTime" && startTime && endTime) {
if (new Date(endTime) <= new Date(startTime)) {
callback(new Error("结束时间必须晚于开始时间"))
return
}
}
callback()
}
return {
visible: false,
submitting: false,
formData: {},
activityGroupList: [],
formRules: {
projectName: [
{ required: true, message: "请输入事项名称", trigger: "blur" },
{ min: 1, max: 50, message: "长度在 1 到 50 个字符", trigger: "blur" }
],
startTime: [
{ required: true, message: "请选择活动开始时间", trigger: "blur" }
],
endTime: [
{ required: true, message: "请选择活动结束时间", trigger: "blur" },
{ validator: validateDateRange, trigger: "blur" }
],
content: [{ required: true, message: "内容详情", trigger: "blur" }]
}
}
},
methods: {
// 处理关闭弹窗
handleClose() {
this.visible = false;
},
// 打开表单
onOpen(id) {
this.visible = true
this.formData = {}
if (id) {
// 如果是编辑模式,加载数据
this.$axios.post("/platform/womanSanitary/project/findOne", { id: id }).then((res) => {
if (res.code === 0) {
this.formData = res.data
}
})
}
},
async getActivityGroup() {
const { data } = await $.get("/platform/activity/basic/scope/getActivityUserScopeGroup")
this.activityGroupList = data
},
async doSubmit() {
const valid = await this.$refs['form'].validate()
if (!valid) return
this.submitting = true
this.$confirm("您确定保存吗?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(() => {
this.$axios.post('/platform/womanSanitary/project/save', {data: JSON.stringify(this.formData)}).then(res => {
if (res.code === 0) {
this.visible = false
this.$message.success(res.msg)
this.submitting = false
// 通过 $emit 触发父组件的刷新方法
this.$emit('refresh')
}
})
}).catch(() => {
this.submitting = false;
})
}
},
async created() {
await this.getActivityGroup()
}
}
@@ -0,0 +1,51 @@
const projectInfo = {
template: /*language=HTML*/ `
<div>
<div class="process-title">事项信息</div>
<el-descriptions :column="2" border class="flow-task-form">
<el-descriptions-item label="年度">{{viewData.year}}</el-descriptions-item>
<el-descriptions-item label="事项名称">{{viewData.projectName}}</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="详细信息" :span="2">
<div v-html="stripHtmlTags(viewData.content)"></div>
</el-descriptions-item>
<el-descriptions-item label="附件" :span="2">
<file-preview v-if="viewData.files && viewData.files.length > 0" :files="viewData.files" complete_result></file-preview>
<span v-else>暂无附件</span>
</el-descriptions-item>
</el-descriptions>
</div>
`,
store,
data() {
return {
visible: false,
viewData: {},
row: null
}
},
methods: {
// 打开
onOpen(projectId) {
this.projectId = projectId
this.visible = true
this.getInfo()
},
// 获取申请信息
getInfo() {
this.$axios.post('/platform/womanSanitary/project/findOne', {id: this.projectId}).then((res) => {
if (res.code === 0) {
this.viewData = res.data
}
})
},
// 去除HTML标签的方法
stripHtmlTags(html) {
if (!html) return '';
// 去除所有HTML标签
return html.replace(/<[^>]*>/g, '');
}
}
}
@@ -0,0 +1,189 @@
<!--#
layout("/layouts/platform.html"){
#-->
<div id="app">
<guava ref="guava">
<el-card shadow="never">
<search @search="doSearch">
<search-item label="年度">
<el-date-picker v-model="pageForm.year" type="year" value-format="yyyy" placeholder="请选择"
style="width: 100%"></el-date-picker>
</search-item>
<search-item label="姓名/工号">
<el-input placeholder="请输入姓名或工号" clearable v-model="pageForm.searchKeyword"></el-input>
</search-item>
<search-item label="性别">
<el-select v-model="pageForm.sex" placeholder="请选择性别" clearable style="width: 100%">
<el-option label="男" value="男"></el-option>
<el-option label="女" value="女"></el-option>
</el-select>
</search-item>
<search-item label="所属工会">
<el-select v-model="pageForm.unionId" @change="doSearch" style="width: 100%"
placeholder="请选择所属工会" clearable>
<el-option v-for="item in unionOptions"
:value="item.id"
:key="item.id"
:label="item.name"
></el-option>
</el-select>
</search-item>
<search-item label="所属单位">
<el-select v-model="pageForm.unitId" @change="doSearch" style="width: 100%"
placeholder="请选择所属单位" clearable>
<el-option v-for="item in unitOptions"
:value="item.id"
:key="item.id"
:label="item.name"
></el-option>
</el-select>
</search-item>
</search>
</el-card>
<el-card shadow="never">
<table-tool>
<el-button type="primary" size="small" icon="el-icon-upload2" @click="openImport">导入人员</el-button>
<el-button type="primary" size="small" @click="isIssue">确认发放</el-button>
</table-tool>
<el-table :data="tableData" @sort-change="pageOrder" style="width: 100%">
<el-table-column type="index" width="50px" label="序号" :index="indexMethod"></el-table-column>
<el-table-column prop="loginName" label="工号"></el-table-column>
<el-table-column prop="userName" label="姓名"></el-table-column>
<el-table-column prop="sex" label="性别"></el-table-column>
<el-table-column prop="unionName" label="所属工会"></el-table-column>
<el-table-column prop="unitName" label="所属单位"></el-table-column>
<el-table-column prop="mobile" label="联系方式"></el-table-column>
<el-table-column prop="money" label="发放金额"></el-table-column>
<el-table-column prop="issue" label="是否发放">
<template slot-scope="{row}">
<span :style="{color: row.issue ? '#67C23A' : ''}">{{ row.issue ? '已发放' : '未发放' }}</span>
</template>
</el-table-column>
<el-table-column prop="applyTime" label="录入时间"></el-table-column>
<el-table-column label="操作" fixed="right" width="300px">
<template slot-scope="{row}">
<el-button
@click="setIssue(row.id)"
size="mini"
:type="row.issue ? 'info' : 'primary'">
{{ row.issue ? '设置未发放' : '设置发放' }}</el-button>
<el-button v-if="$auth.hasRole('SYSADMIN')" @click="onDelete(row.id)" size="mini" type="danger">删除</el-button>
</template>
</el-table-column>
</el-table>
<!--#include("/layouts/pagination.html"){}#-->
</el-card>
<el-dialog title="人员导入" :visible.sync="importDialog" width="50%" :close-on-click-modal="false" :close-on-press-escape="false">
<file-import
ref="viewImport"
temp_url="/platform/womanSanitary/manage/downloadTemplate"
post_url="/platform/womanSanitary/manage/importData"
@flush="successImport"
></file-import>
</el-dialog>
</guava>
</div>
<script>
new Vue({
el: "#app",
store,
//分页数据
mixins: [initTableMixins],
data() {
return {
pageDataUrl: "/platform/womanSanitary/manage/pageData",
unionOptions: [],
unitOptions: [],
userOptions: [],
importDialog: false,
checkedFields: []
}
},
components: {
"file-import": httpVueLoader("/components/plugins/sysImport/index.vue?v=" + new Date().getTime())
},
methods: {
openImport() {
this.importDialog = true
},
successImport() {
this.importDialog = false
this.pageData()
},
setIssue(id) {
// 根据ID找到对应的行数据
const row = this.tableData.find(item => item.id === id);
if (!row) return;
// 切换发放状态
const newIssueStatus = !row.issue;
// 修复:确保actionText变量正确定义
const actionText = newIssueStatus ? '发放' : '取消发放';
this.$axios.post("/platform/womanSanitary/manage/setIssue", {
id: id,
issue: newIssueStatus
}).then((res) => {
if (res.code === 0) {
this.$message.success(`成功`);
// 更新表格数据中的状态
row.issue = newIssueStatus;
} else {
this.$message.error(res.msg || `失败`);
}
}).catch(() => {
this.$message.error(`请求失败`);
});
},
isIssue() {
// 确认发放所有列表数据
this.$confirm("您确定要发放所有显示的数据吗?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(() => {
this.$axios.post("/platform/womanSanitary/manage/batchIssue").then((res) => {
if (res.code === 0) {
this.$message.success("发放成功");
this.pageData(); // 重新加载数据
} else {
this.$message.error(res.msg || "发放失败");
}
}).catch(() => {
this.$message.error("发放请求失败");
});
}).catch(() => {
// 用户取消操作
});
},
onDelete(id) {
this.$confirm("您确定要删除吗?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(() => {
this.$axios.post("/platform/womanSanitary/manage/delete", {id}).then((res) => {
if (res.code === 0) {
this.$message.success(res.msg)
this.pageData()
}
})
})
},
},
created() {
this.pageData()
//工会查询
this.$businessTool.listUnion().then((res) => (this.unionOptions = res))
//单位查询
this.$businessTool.listUnit().then((res) => (this.unitOptions = res))
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,121 @@
<!--#
layout("/layouts/platform.html"){
#-->
<div id="app" v-cloak>
<el-card shadow="never">
<search @search="doSearch">
<search-item label="年度">
<el-date-picker placeholder="请选择年度" type="year" style="width: 100%" v-model="pageForm.year" value-format="yyyy"></el-date-picker>
</search-item>
<search-item label="事项名称">
<el-input placeholder="请输入事项名称查询" clearable v-model="pageForm.searchKeyword"></el-input>
</search-item>
</search>
</el-card>
<el-card shadow="never">
<table-tool>
<el-button size="mini" type="primary" icon="el-icon-plus" @click="openAdd">新增</el-button>
</table-tool>
<el-table :data="tableData">
<el-table-column type="index" width="50px" label="序号" :index="indexMethod"></el-table-column>
<el-table-column prop="projectName" label="事项名称" show-overflow-tooltip></el-table-column>
<el-table-column prop="year" label="年度" show-overflow-tooltip></el-table-column>
<el-table-column prop="startTime" label="开始时间"></el-table-column>
<el-table-column prop="endTime" label="结束时间"></el-table-column>
<!-- <el-table-column prop="isOpen" label="是否发布">-->
<!-- <template slot-scope="{row}">-->
<!-- <el-switch @change="switchChange(row)" active-color="#13ce66"-->
<!-- inactive-color="#ff4949"-->
<!-- v-model="row.isOpen"></el-switch>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="操作" width="200px" fixed="right">
<template slot-scope="{row}">
<el-button size="mini" type="primary" @click="openEdit(row)">编辑</el-button>
<el-button size="mini" type="danger" @click="onDelete(row.id)">删除</el-button>
</template>
</el-table-column>
</el-table>
<!--#include("/layouts/pagination.html"){}#-->
</el-card>
<form-edit ref="formEditRef" @refresh="doSearch"></form-edit>
</div>
<script>
<!--#include('../common/formEdit.js'){}#-->
new Vue({
el: "#app",
mixins: [initTableMixins],
components: {
"form-edit": formEdit
},
data() {
return {
pageForm: {
year: moment().format('YYYY') + "",
},
}
},
methods: {
pageData() {
this.tableLoading = true
this.$axios
.post("/platform/womanSanitary/project/pageData", this.pageForm)
.then((res) => {
if (res.code === 0) {
this.tableData = res.data.list
this.pageForm.totalCount = res.data.totalCount
}
})
.finally(() => {
this.tableLoading = false
})
},
openAdd() {
this.$refs.formEditRef.onOpen()
},
openEdit(row) {
this.$refs.formEditRef.onOpen(row.id)
},
async switchChange(row) {
const resp = await this.$axios.post("/platform/womanSanitary/project/switchChange", row)
if (resp.code === 0) {
this.pageData()
this.$message.success(resp.msg)
} else {
this.$message.warning(resp.msg)
}
},
onDelete(id) {
// 查找当前行数据以获取关联人员数
const row = this.tableData.find(item => item.id === id);
let msg = row && row.count > 0 ? '该事项下有' + row.count + '条数据,' : ''
this.$confirm(msg + "您确定要删除吗?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
})
.then(async () => {
const { code, msg } = await this.$axios.post("/platform/womanSanitary/project/delete", { id: id })
if (code === 0) {
this.$message.success(msg)
this.doSearch()
}
})
.catch(() => {})
}
},
created() {
this.pageData()
}
})
</script>
<!--#
}
#-->
@@ -0,0 +1,118 @@
<!--#
layout("/layouts/platform.html"){
#-->
<div id="app">
<guava ref="guava">
<el-card shadow="never">
<search @search="doSearch">
<search-item label="年度">
<el-date-picker v-model="pageForm.year" type="year" value-format="yyyy" placeholder="请选择"
style="width: 100%"></el-date-picker>
</search-item>
<search-item label="姓名/工号">
<el-input placeholder="请输入姓名或工号" clearable v-model="pageForm.searchKeyword"></el-input>
</search-item>
<search-item label="性别">
<el-select v-model="pageForm.sex" placeholder="请选择性别" clearable style="width: 100%">
<el-option label="男" value="男"></el-option>
<el-option label="女" value="女"></el-option>
</el-select>
</search-item>
<search-item label="所属工会">
<el-select v-model="pageForm.unionId" @change="doSearch" style="width: 100%"
placeholder="请选择所属工会" clearable>
<el-option v-for="item in unionOptions"
:value="item.id"
:key="item.id"
:label="item.name"
></el-option>
</el-select>
</search-item>
<search-item label="所属单位">
<el-select v-model="pageForm.unitId" @change="doSearch" style="width: 100%"
placeholder="请选择所属单位" clearable>
<el-option v-for="item in unitOptions"
:value="item.id"
:key="item.id"
:label="item.name"
></el-option>
</el-select>
</search-item>
</search>
</el-card>
<el-card shadow="never">
<table-tool>
<el-button type="primary" size="small" @click="">导出</el-button>
</table-tool>
<el-table :data="tableData" @sort-change="pageOrder" style="width: 100%">
<el-table-column type="index" width="50px" label="序号" :index="indexMethod"></el-table-column>
<el-table-column prop="loginName" label="工号"></el-table-column>
<el-table-column prop="userName" label="姓名"></el-table-column>
<el-table-column prop="sex" label="性别"></el-table-column>
<el-table-column prop="unionName" label="所属工会"></el-table-column>
<el-table-column prop="unitName" label="所属单位"></el-table-column>
<el-table-column prop="money" label="发放金额"></el-table-column>
<el-table-column prop="issue" label="是否发放"></el-table-column>
<el-table-column prop="applyTime" label="录入时间"></el-table-column>
<el-table-column label="操作" fixed="right" width="300px">
<template slot-scope="{row}">
<el-button v-if="$auth.hasRole('SYSADMIN')" @click="onDelete(row.id)" size="mini" type="danger">删除</el-button>
</template>
</el-table-column>
</el-table>
<!--#include("/layouts/pagination.html"){}#-->
</el-card>
</guava>
</div>
<script>
new Vue({
el: "#app",
store,
//分页数据
mixins: [initTableMixins],
data() {
return {
pageDataUrl: "/platform/womanSanitary/query/pageData",
unionOptions: [],
unitOptions: [],
userOptions: [],
importDialog: false,
checkedFields: []
}
},
methods: {
// isIssue() {
// },
onDelete(id) {
this.$confirm("您确定要删除吗?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(() => {
this.$axios.post("/platform/exerciseCard/query/delete", {id}).then((res) => {
if (res.code === 0) {
this.$message.success(res.msg)
this.pageData()
}
})
})
},
},
created() {
this.pageData()
//工会查询
this.$businessTool.listUnion().then((res) => (this.unionOptions = res))
//单位查询
this.$businessTool.listUnit().then((res) => (this.unitOptions = res))
}
})
</script>
<!--#
}
#-->
@@ -9,15 +9,15 @@ const DSZNFMTX_INFO = {
<el-descriptions :column="3" border class="flow-task-form">
<el-descriptions-item label="职工姓名">{{viewData.userName}}</el-descriptions-item>
<el-descriptions-item label="性别">{{viewData.sex}}</el-descriptions-item>
<el-descriptions-item label="出生年月">{{formatDate(viewData.birthday)}}</el-descriptions-item>
<el-descriptions-item label="出生年月">{{$moment(viewData.birthday).format('YYYY-MM-DD')}}</el-descriptions-item>
<el-descriptions-item label="原工作单位">{{viewData.unitName}}</el-descriptions-item>
<el-descriptions-item label="退休时间" >{{formatDate(viewData.retireTime)}}</el-descriptions-item>
<el-descriptions-item label="退休时间" >{{$moment(viewData.retireTime).format('YYYY-MM-DD')}}</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="工作单位" :span="2">{{viewData.loverUnitName}}</el-descriptions-item>
<el-descriptions-item label="结婚日期">{{formatDate(viewData.marryTime)}}</el-descriptions-item>
<el-descriptions-item label="子女出生日">{{formatDate(viewData.childrenBirthday)}}</el-descriptions-item>
<el-descriptions-item label="领独生子女证时间">{{formatDate(viewData.getCertificateTime)}}</el-descriptions-item>
<el-descriptions-item label="结婚日期">{{$moment(viewData.marryTime).format('YYYY-MM-DD')}}</el-descriptions-item>
<el-descriptions-item label="子女出生日">{{$moment(viewData.childrenBirthday).format('YYYY-MM-DD')}}</el-descriptions-item>
<el-descriptions-item label="领独生子女证时间">{{$moment(viewData.getCertificateTime).format('YYYY-MM-DD')}}</el-descriptions-item>
<el-descriptions-item label="独生子女光荣证号">{{viewData.childrenGraceNumber}}</el-descriptions-item>
<el-descriptions-item label="办证机关">{{viewData.office}}</el-descriptions-item>
<el-descriptions-item label="奖励金额">{{viewData.bonus}}</el-descriptions-item>
@@ -88,32 +88,6 @@ const DSZNFMTX_INFO = {
}
},
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
@@ -12,7 +12,7 @@ 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="出生年月">{{formatDate(formData.birthday)}}</el-descriptions-item>
<el-descriptions-item label="出生年月">{{$moment(formData.birthday).format('YYYY-MM-DD')}}</el-descriptions-item>
<el-descriptions-item label="工作单位" >{{formData.unitName}}</el-descriptions-item>
<el-descriptions-item label="电话" >{{formData.mobile}}</el-descriptions-item>
@@ -253,31 +253,6 @@ layout("/layouts/platform.html"){
}
},
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() {
// 如果是男性,则不自动计算结束时间
@@ -10,13 +10,14 @@ 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="出生年月">{{formatDate(viewData.birthday)}}</el-descriptions-item> <el-descriptions-item label="单位">{{viewData.unitName}}</el-descriptions-item>
<el-descriptions-item label="出生年月">{{$moment(viewData.birthday).format('YYYY-MM-DD')}}</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="出生年月">{{formatDate(viewData.loverBirthday)}}</el-descriptions-item> <el-descriptions-item label="单位" span="2">{{viewData.loverUnitName}}</el-descriptions-item>
<el-descriptions-item label="出生年月">{{$moment(viewData.loverBirthday).format('YYYY-MM-DD')}}</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">
@@ -42,9 +43,9 @@ const maternityLeaveInfo = {
<el-descriptions-item label="暑假">{{viewData.summerLeave}}</el-descriptions-item>
<el-descriptions-item label="合计" :span="2">{{viewData.leaveDays}}</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-item label="休假时间起">{{$moment(viewData.startTime).format('YYYY-MM-DD')}}</el-descriptions-item>
<el-descriptions-item label="休假时间止">{{$moment(viewData.endTime).format('YYYY-MM-DD')}}</el-descriptions-item>
<el-descriptions-item label="子女出生日">{{$moment(viewData.childrenBirthday).format('YYYY-MM-DD')}}</el-descriptions-item>
</el-descriptions>
<template v-for="task in doneTasks">
@@ -107,32 +108,6 @@ const maternityLeaveInfo = {
this.getDoneTasks()
},
// 添加日期格式化方法
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;
}
},
// 获取申请信息
getInfo() {
this.$axios.post('/platform/maternityLeave/apply/findOne', {id: this.row.id}).then((res) => {
@@ -10,7 +10,7 @@ const childManageInfo = {
<el-descriptions-item label="入学年份">{{viewData.childrenYear}}</el-descriptions-item>
<el-descriptions-item label="姓名">{{viewData.childrenName}}</el-descriptions-item>
<el-descriptions-item label="身份证号">{{viewData.childrenIdCard}}</el-descriptions-item>
<el-descriptions-item label="出生日期">{{formatDate(viewData.childrenBirthday)}}</el-descriptions-item>
<el-descriptions-item label="出生日期">{{$moment(viewData.childrenBirthday).format('YYYY-MM-DD')}}</el-descriptions-item>
<el-descriptions-item label="性别">{{viewData.childrenSex}}</el-descriptions-item>
<el-descriptions-item label="国籍">{{viewData.childrenCountry}}</el-descriptions-item>
<el-descriptions-item label="就读学校">{{viewData.childrenCurrentSchool}}</el-descriptions-item>
@@ -42,31 +42,6 @@ const childManageInfo = {
this.row = row
this.getInfo()
},
// 添加日期格式化方法
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;
}
},
// 获取申请信息
getInfo() {
this.$axios.post('/platform/childManage/write/findOne', {id: this.row.id}).then((res) => {
@@ -34,13 +34,13 @@ const UNION_REIMBURSE_INFO = {
<van-cell title="联系方式" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">{{ viewData.condolenceMobile }}</van-cell>
<van-cell title="慰问类型" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">{{ viewData.typeName }}</van-cell>
<van-cell title="慰问金额" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">{{ viewData.money }}</van-cell>
<van-cell title="慰问时间" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">{{ formatDate(viewData.condolenceTime) }}</van-cell>
<van-cell title="慰问时间" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_1'">{{$moment(viewData.condolenceTime).format('YYYY-MM-DD')}}</van-cell>
<van-cell title="活动名称" v-if="viewData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'">{{ viewData.activityName }}</van-cell>
<van-cell title="活动类型" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_2'">{{ viewData.activityType }}</van-cell>
<van-cell title="活动人数" v-if="viewData.reimburseProject === 'UNION_REIMBURSE_PROJECT_2'">{{ viewData.activityNumber }}</van-cell>
<van-cell title="活动地点" v-if="viewData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'">{{ viewData.activityPlace }}</van-cell>
<van-cell title="报销金额" v-if="viewData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'">{{ viewData.money }}</van-cell>
<van-cell title="活动时间" v-if="viewData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'">{{ formatDate(viewData.activityTime) }}</van-cell>
<van-cell title="活动时间" v-if="viewData.reimburseProject !== 'UNION_REIMBURSE_PROJECT_1'">{{$moment(viewData.activityTime).format('YYYY-MM-DD')}}</van-cell>
<van-cell title="发票张数" v-if="viewData.reimburseType === 'UNION_REIMBURSE_TYPE_1'">{{ viewData.invoiceNumber }}</van-cell>
<van-cell title="发票号码" v-if="viewData.reimburseType === 'UNION_REIMBURSE_TYPE_1'">{{ viewData.invoice }}</van-cell>
<van-cell title="支付内容">{{ viewData.paymentNotes }}</van-cell>
@@ -111,31 +111,6 @@ const UNION_REIMBURSE_INFO = {
this.getInfo()
this.getDoneTasks()
},
// 添加日期格式化方法
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;
}
},
// 关闭
onClose(){
this.visible = false
@@ -6,15 +6,15 @@ const DSZNFMTX_INFO = {
<van-cell-group title="基本信息">
<van-cell title="职工姓名">{{ viewData.userName }}</van-cell>
<van-cell title="性别">{{ viewData.sex }}</van-cell>
<van-cell title="出生年月">{{ formatDate(viewData.birthday) }}</van-cell>
<van-cell title="出生年月">{{$moment(viewData.birthday).format('YYYY-MM-DD')}}</van-cell>
<van-cell title="原工作单位">{{ viewData.unitName }}</van-cell>
<van-cell title="退休时间">{{ formatDate(viewData.retireTime) }}</van-cell>
<van-cell title="退休时间">{{$moment(viewData.retireTime).format('YYYY-MM-DD')}}</van-cell>
<van-cell title="爱人姓名">{{ viewData.loverName }}</van-cell>
<van-cell title="性别">{{ viewData.loverSex }}</van-cell>
<van-cell title="工作单位">{{ viewData.loverUnitName }}</van-cell>
<van-cell title="结婚日期">{{ formatDate(viewData.marryTime) }}</van-cell>
<van-cell title="子女出生日">{{ formatDate(viewData.childrenBirthday) }}</van-cell>
<van-cell title="领独生子女光时间">{{ formatDate(viewData.getCertificateTime) }}</van-cell>
<van-cell title="结婚日期">{{$moment(viewData.marryTime).format('YYYY-MM-DD')}}</van-cell>
<van-cell title="子女出生日">{{$moment(viewData.childrenBirthday).format('YYYY-MM-DD')}}</van-cell>
<van-cell title="领独生子女光时间">{{$moment(viewData.getCertificateTime).format('YYYY-MM-DD')}}</van-cell>
<van-cell title="独生子女光荣证号">{{ viewData.childrenGraceNumber }}</van-cell>
<van-cell title="办证机关">{{ viewData.office }}</van-cell>
<van-cell title="奖励金额">{{ viewData.bonus }}</van-cell>
@@ -39,7 +39,7 @@ const DSZNFMTX_INFO = {
{{ task.ext.initiatorName}}({{task.ext.initiatorAccount}})
</van-cell>
<van-cell title="申请时间">
{{ formatDate(task.finishTime) }}
{{task.finishTime}}
</van-cell>
<van-cell title="办理结果">
<dict-tag :options="dict.type.PROCESS_TASK_SUBMIT_TYPE"
@@ -51,7 +51,7 @@ const DSZNFMTX_INFO = {
{{ task.taskFormData.userName}}({{task.taskFormData.loginName}})
</van-cell>
<van-cell title="办理时间">
{{ formatDate(task.finishTime) }}
{{task.finishTime}}
</van-cell>
<van-cell title="办理结果">
<dict-tag :options="dict.type.PROCESS_TASK_SUBMIT_TYPE"
@@ -86,31 +86,6 @@ const DSZNFMTX_INFO = {
}
},
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
@@ -7,13 +7,13 @@ const MATERNITY_LEAVE_INFO = {
<van-cell title="职工姓名">{{ viewData.userName }}</van-cell>
<van-cell title="性别">{{ viewData.sex }}</van-cell>
<van-cell title="民族">{{ viewData.nation }}</van-cell>
<van-cell title="出生年月">{{ formatDate(viewData.birthday) }}</van-cell>
<van-cell title="出生年月">{{$moment(viewData.birthday).format('YYYY-MM-DD')}}</van-cell>
<van-cell title="单位">{{ viewData.unitName }}</van-cell>
<van-cell title="电话">{{ viewData.mobile }}</van-cell>
<van-cell title="爱人姓名">{{ viewData.loverName }}</van-cell>
<van-cell title="性别">{{ viewData.loverSex }}</van-cell>
<van-cell title="民族">{{ viewData.loverNation }}</van-cell>
<van-cell title="出生年月">{{ formatDate(viewData.loverBirthday) }}</van-cell>
<van-cell title="出生年月">{{$moment(viewData.loverBirthday).format('YYYY-MM-DD')}}</van-cell>
<van-cell title="单位">{{ viewData.loverUnitName }}</van-cell>
</van-cell-group>
@@ -27,9 +27,9 @@ const MATERNITY_LEAVE_INFO = {
<van-cell title="寒假">{{ viewData.winterLeave }}</van-cell>
<van-cell title="暑假">{{ viewData.summerLeave }}</van-cell>
<van-cell title="合计">{{ viewData.leaveDays }}</van-cell>
<van-cell title="休假时间起">{{ formatDate(viewData.startTime) }}</van-cell>
<van-cell title="休假时间止">{{ formatDate(viewData.endTime) }}</van-cell>
<van-cell title="子女出生日">{{ formatDate(viewData.childrenBirthday) }}</van-cell>
<van-cell title="休假时间起">{{$moment(viewData.startTime).format('YYYY-MM-DD')}}</van-cell>
<van-cell title="休假时间止">{{$moment(viewData.endTime).format('YYYY-MM-DD')}}</van-cell>
<van-cell title="子女出生日">{{$moment(viewData.childrenBirthday).format('YYYY-MM-DD')}}</van-cell>
</van-cell-group>
@@ -89,31 +89,6 @@ const MATERNITY_LEAVE_INFO = {
}
},
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
this.visible = true
@@ -11,7 +11,7 @@
</dict-tag></van-cell>
<van-cell title="入学年份">{{ viewData.childrenYear }}</van-cell>
<van-cell title="身份证号">{{ viewData.childrenIdCard }}</van-cell>
<van-cell title="出生日期">{{ formatDate(viewData.childrenBirthday) }}</van-cell>
<van-cell title="出生日期">{{$moment(viewData.childrenBirthday).format('YYYY-MM-DD')}}</van-cell>
<van-cell title="性别">{{ viewData.childrenSex }}</van-cell>
<van-cell title="国籍">{{ viewData.childrenCountry }}</van-cell>
<van-cell title="就读学校">{{ viewData.childrenCurrentSchool }}</van-cell>
@@ -50,31 +50,6 @@
this.visible = true
this.getInfo()
},
// 添加日期格式化方法
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;
}
},
// 关闭
onClose(){
this.visible = false