commit
This commit is contained in:
@@ -198,6 +198,12 @@ public class Sys_user extends BaseModel implements Serializable {
|
||||
@DataCenterColumn(name = "教职工类别码", key = "JZGLBMC")
|
||||
private String personType;
|
||||
|
||||
@Column
|
||||
@Comment("用人方式码")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 30)
|
||||
@DataCenterColumn(name = "用人方式码", key = "YRFSMC")
|
||||
private String employmentType;
|
||||
|
||||
@Column
|
||||
@Comment("编制类别码")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 30)
|
||||
|
||||
+1
-1
@@ -35,7 +35,7 @@ import java.util.List;
|
||||
*/
|
||||
@IocBean
|
||||
@At("/platform/condolence/branchUnionApproval")
|
||||
@Api("职工慰问分工会审核")
|
||||
@Api("职工慰问分工会主席审核")
|
||||
@Ok("json:full")
|
||||
public class CondolenceBranchUnionApprovalController {
|
||||
|
||||
|
||||
+152
-3
@@ -3,6 +3,8 @@ package com.budwk.app.zhgh.staffbenefit.condolence.controller;
|
||||
import cn.dev33.satoken.annotation.SaCheckLogin;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.dev33.satoken.annotation.SaMode;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Dict;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.budwk.app.base.annotation.SLog;
|
||||
import com.budwk.app.base.constant.RoleConstant;
|
||||
@@ -11,17 +13,23 @@ import com.budwk.app.base.param.PageForm;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.base.sms.SmsService;
|
||||
import com.budwk.app.base.utils.PageUtil;
|
||||
import com.budwk.app.base.utils.SysOfficeTemplateUtil;
|
||||
import com.budwk.app.flow.engine.FlowEngine;
|
||||
import com.budwk.app.flow.entity.ProcessTask;
|
||||
import com.budwk.app.flow.vo.ProcessTaskVO;
|
||||
import com.budwk.app.sys.views.View_user;
|
||||
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.zhgh.staffbenefit.condolence.model.Condolence;
|
||||
import com.budwk.app.zhgh.staffbenefit.condolence.model.CondolenceType;
|
||||
import com.budwk.app.zhgh.staffbenefit.condolence.service.CondolenceService;
|
||||
import com.deepoove.poi.XWPFTemplate;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.dao.util.cri.SqlExpressionGroup;
|
||||
@@ -34,6 +42,20 @@ import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.net.URLEncoder;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipOutputStream;
|
||||
|
||||
/**
|
||||
* @ClassName CondolenceApplyController
|
||||
* @Author JyuHsin
|
||||
@@ -45,12 +67,19 @@ import org.nutz.mvc.annotation.Param;
|
||||
@At("/platform/condolence/mine")
|
||||
@Api("职工慰问我的")
|
||||
@Ok("json:full")
|
||||
@Slf4j
|
||||
public class CondolenceMineController {
|
||||
|
||||
@Inject
|
||||
private SysOfficeTemplateUtil sysOfficeTemplateUtil;
|
||||
@Inject
|
||||
private CondolenceService condolenceService;
|
||||
@Inject
|
||||
private FlowEngine flowEngine;
|
||||
@Inject
|
||||
private SmsService smsService;
|
||||
@Inject
|
||||
private Dao dao;
|
||||
|
||||
@At("/")
|
||||
@Ok("beetl:/platform/zhgh/staffbenefit/condolence/mine/index.html")
|
||||
@@ -106,13 +135,13 @@ public class CondolenceMineController {
|
||||
cnd.andEX("year(info.createTime)", "=", year);
|
||||
cnd.andEX("info.type", "=", type);
|
||||
cnd.and("info.createdBy", "=", SecurityUtil.getUserId());
|
||||
cnd.groupBy("info.id");
|
||||
|
||||
if (StrUtil.isNotBlank(pageForm.getPageOrderName()) && StrUtil.isNotBlank(pageForm.getPageOrderBy())) {
|
||||
cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy()));
|
||||
} else {
|
||||
cnd.desc("info.createTime");
|
||||
}
|
||||
|
||||
sql.setCondition(cnd);
|
||||
Pagination<NutMap> pagination = condolenceService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
return Result.success(pagination);
|
||||
@@ -140,6 +169,126 @@ public class CondolenceMineController {
|
||||
//smsService.send("20182040", "这是一条由智慧工会系统发出的测试消息。");
|
||||
return Result.success(nutMap);
|
||||
}
|
||||
@Inject
|
||||
private SmsService smsService;
|
||||
|
||||
@At
|
||||
@Ok("void")
|
||||
public void doExport(String id, HttpServletResponse response) throws Exception {
|
||||
Condolence condolence = condolenceService.fetch(id);
|
||||
if (condolence == null) {
|
||||
throw new RuntimeException("慰问记录不存在");
|
||||
}
|
||||
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
info.*,
|
||||
type.name as typeName,
|
||||
type.uploadFileDesc,
|
||||
ins.id AS instanceId
|
||||
FROM
|
||||
`condolence` info
|
||||
LEFT JOIN wf_process_instance ins ON ins.businessNo = info.id
|
||||
LEFT JOIN condolence_type type ON type.id = info.type
|
||||
WHERE
|
||||
ins.state = 20 AND info.id = @id
|
||||
""").setParam("id", id);
|
||||
sql.setCallback(Sqls.callback.map());
|
||||
dao.execute(sql);
|
||||
NutMap info = (NutMap) sql.getResult();
|
||||
HashMap<String, Object> docData = new HashMap<>();
|
||||
|
||||
docData.put("applyUserName", condolence.getApplyUserName());
|
||||
docData.put("applyMobile", condolence.getApplyMobile());
|
||||
docData.put("helpUserName", condolence.getHelpUserName());
|
||||
docData.put("helpMobile", condolence.getHelpMobile());
|
||||
docData.put("applyUnionName", condolence.getApplyUnionName());
|
||||
docData.put("type", info.getString("typeName"));
|
||||
docData.put("uploadFileDesc", info.getString("uploadFileDesc"));
|
||||
|
||||
//附件名称导出
|
||||
if (condolence.getFiles() != null && !condolence.getFiles().isEmpty()) {
|
||||
List<String> fileNames = condolence.getFiles().stream()
|
||||
.map(file -> file.getStr("name"))
|
||||
.filter(StrUtil::isNotBlank)
|
||||
.collect(Collectors.toList());
|
||||
docData.put("fileNames", String.join("\n", fileNames));
|
||||
} else {
|
||||
docData.put("fileNames", "无");
|
||||
}
|
||||
|
||||
docData.put("info", info);
|
||||
docData.put("way", condolence.getWay());
|
||||
|
||||
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||
LocalDateTime createTime = LocalDateTime.parse(condolence.getCreateTime(), formatter);
|
||||
String fileName = "工会会员慰问报销审批单_" +
|
||||
DateUtil.format(createTime, "yyyyMMdd") + ".docx";
|
||||
|
||||
List<ProcessTaskVO> doneTaskVos = new ArrayList<>();
|
||||
List<ProcessTask> doneTaskList = flowEngine.processTaskService().getDoneTaskList(info.getLong("instanceId"), null);
|
||||
for (ProcessTask doneTask : doneTaskList) {
|
||||
ProcessTaskVO taskVO = flowEngine.processTaskService().findById(doneTask.getId());
|
||||
doneTaskVos.add(taskVO);
|
||||
}
|
||||
|
||||
doneTaskVos.stream().filter(task -> "分工会主席审核".equals(task.getDisplayName()))
|
||||
.max(Comparator.comparing(ProcessTaskVO::getCreatedAt))
|
||||
.ifPresent(v -> {
|
||||
Dict taskFormData = v.getTaskFormData();
|
||||
HashMap<String, Object> approval = new HashMap<>();
|
||||
|
||||
approval.put("date", DateUtil.format(v.getFinishTime(), "yyyy年MM月dd日"));
|
||||
approval.put("user", taskFormData.getStr("tf_userName"));
|
||||
if (StrUtil.isNotBlank(taskFormData.getStr("tf_sign"))) {
|
||||
approval.put("sign", sysOfficeTemplateUtil.createPictureRenderData(taskFormData.getStr("tf_sign")));
|
||||
}
|
||||
approval.put("opinion", taskFormData.getStr("tf_opinion"));
|
||||
docData.put("fgh", approval);
|
||||
});
|
||||
|
||||
doneTaskVos.stream().filter(task -> "校工会会计审核".equals(task.getDisplayName()))
|
||||
.max(Comparator.comparing(ProcessTaskVO::getCreatedAt))
|
||||
.ifPresent(v -> {
|
||||
Dict taskFormData = v.getTaskFormData();
|
||||
HashMap<String, Object> approval = new HashMap<>();
|
||||
|
||||
approval.put("date", DateUtil.format(v.getFinishTime(), "yyyy年MM月dd日"));
|
||||
approval.put("user", taskFormData.getStr("tf_userName"));
|
||||
if (StrUtil.isNotBlank(taskFormData.getStr("tf_sign"))) {
|
||||
approval.put("sign", sysOfficeTemplateUtil.createPictureRenderData(taskFormData.getStr("tf_sign")));
|
||||
}
|
||||
approval.put("opinion", taskFormData.getStr("tf_opinion"));
|
||||
docData.put("kj", approval);
|
||||
});
|
||||
|
||||
doneTaskVos.stream().filter(task -> "工会主席审核".equals(task.getDisplayName()))
|
||||
.max(Comparator.comparing(ProcessTaskVO::getCreatedAt))
|
||||
.ifPresent(v -> {
|
||||
Dict taskFormData = v.getTaskFormData();
|
||||
HashMap<String, Object> approval = new HashMap<>();
|
||||
|
||||
approval.put("date", DateUtil.format(v.getFinishTime(), "yyyy年MM月dd日"));
|
||||
approval.put("user", taskFormData.getStr("tf_userName"));
|
||||
if (StrUtil.isNotBlank(taskFormData.getStr("tf_sign"))) {
|
||||
approval.put("sign", sysOfficeTemplateUtil.createPictureRenderData(taskFormData.getStr("tf_sign")));
|
||||
}
|
||||
approval.put("opinion", taskFormData.getStr("tf_opinion"));
|
||||
docData.put("xgh", approval);
|
||||
});
|
||||
|
||||
|
||||
response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document");
|
||||
response.setHeader("content-disposition", "attachment;filename="
|
||||
+ URLEncoder.encode(fileName, "UTF-8"));
|
||||
|
||||
try {
|
||||
XWPFTemplate.compile(sysOfficeTemplateUtil.getTemplate("condolence"))
|
||||
.render(docData)
|
||||
.write(response.getOutputStream());
|
||||
} catch (IOException e) {
|
||||
log.error("导出慰问审批单失败,ID: {}, 错误信息: {}", id, e.getMessage());
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -33,7 +33,7 @@ import java.util.List;
|
||||
*/
|
||||
@IocBean
|
||||
@At("/platform/condolence/schoolPrincipalApproval")
|
||||
@Api("职工慰问校工会预审")
|
||||
@Api("职工慰问校工会会计审核")
|
||||
@Ok("json:full")
|
||||
public class CondolenceSchoolPrincipalApprovalController {
|
||||
|
||||
|
||||
+1
-1
@@ -35,7 +35,7 @@ import java.util.List;
|
||||
*/
|
||||
@IocBean
|
||||
@At("/platform/condolence/schoolUnionApproval")
|
||||
@Api("职工慰问校工会审核")
|
||||
@Api("职工慰问工会主席审核")
|
||||
@Ok("json:full")
|
||||
public class CondolenceSchoolUnionApprovalController {
|
||||
|
||||
|
||||
@@ -65,6 +65,11 @@ public class Condolence extends BaseModel {
|
||||
@ColDefine(type = ColType.VARCHAR, width = 100)
|
||||
private String applyUnitName;
|
||||
|
||||
@Column
|
||||
@Comment("申请人手机号")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 20)
|
||||
private String applyMobile;
|
||||
|
||||
@Column
|
||||
@Comment("补助人ID")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
@@ -100,6 +105,11 @@ public class Condolence extends BaseModel {
|
||||
@ColDefine(type = ColType.VARCHAR, width = 100)
|
||||
private String helpUnitName;
|
||||
|
||||
@Column
|
||||
@Comment("补助人手机号")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 20)
|
||||
private String helpMobile;
|
||||
|
||||
@Column
|
||||
@Comment("类型")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 20)
|
||||
|
||||
@@ -99,6 +99,32 @@ public class WelfareListController {
|
||||
return Result.success(welfareListService.notWelfareUserPageData(pageForm));
|
||||
}
|
||||
|
||||
@At
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@ApiOperation("批量删除福利会员")
|
||||
@SaCheckPermission("welfare.list.mange")
|
||||
@SLog(tag = "福利名单管理", msg = "批量删除福利会员")
|
||||
public Result batchDelete(@Param("ids") String[] ids, @Param("projectId") String projectId) {
|
||||
if (ids == null || ids.length == 0) {
|
||||
return Result.error("请选择要删除的数据");
|
||||
}
|
||||
|
||||
List<WelfareList> welfareLists = welfareListService.query(Cnd.where("id", "in", ids));
|
||||
List<String> userIds = welfareLists.stream()
|
||||
.map(WelfareList::getUserId)
|
||||
.filter(StrUtil::isNotBlank)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
welfareListService.delete(ids);
|
||||
|
||||
if (StrUtil.isNotBlank(projectId) && !userIds.isEmpty()) {
|
||||
welfareListService.dao().clear(WelfareUserSelection.class,
|
||||
Cnd.where("welfareId", "=", projectId).and("selectUserId", "in", userIds));
|
||||
}
|
||||
|
||||
return Result.success("成功删除" + ids.length + "条数据");
|
||||
}
|
||||
|
||||
@At
|
||||
@SaCheckPermission("welfare.list.mange")
|
||||
@ApiOperation("添加用户到福利名单")
|
||||
|
||||
@@ -145,11 +145,18 @@ module.exports = {
|
||||
return true
|
||||
},
|
||||
afterRead(files) {
|
||||
this.fileList.map((f) => {
|
||||
if (f.file && f.file.name === files.file.name) {
|
||||
f.status = "loading"
|
||||
const filesArray = Array.isArray(files) ? files : [files]
|
||||
|
||||
filesArray.forEach(file => {
|
||||
if (file && file.file) {
|
||||
this.fileList.map((f) => {
|
||||
if (f.file && f.file.name === file.file.name) {
|
||||
f.status = "loading"
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
const uploadPromises = this.fileList
|
||||
.filter((f) => f.status === "loading")
|
||||
.map((f) => {
|
||||
|
||||
@@ -79,6 +79,7 @@ layout("/layouts/platform.html"){
|
||||
<el-table-column prop="arrivalAtSchoolDate" label="来校时间" sortable width="120"></el-table-column>
|
||||
<el-table-column prop="preparedBy" label="编制类别" sortable width="120"></el-table-column>
|
||||
<el-table-column prop="personType" label="教职工类别" sortable width="120"></el-table-column>
|
||||
<el-table-column prop="employmentType" label="用人方式" sortable width="120"></el-table-column>
|
||||
<el-table-column prop="technicalTitle" label="技术职称" sortable width="120"></el-table-column>
|
||||
<el-table-column prop="position" label="干部职务" sortable width="120" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column prop="education" label="学历" show-overflow-tooltip sortable width="120"></el-table-column>
|
||||
|
||||
@@ -9,69 +9,101 @@ layout("/layouts/platform.html"){
|
||||
class="flow-task-form">
|
||||
<el-descriptions :column="3" border>
|
||||
<el-descriptions-item label="申请人姓名">{{formData.applyUserName}}</el-descriptions-item>
|
||||
<el-descriptions-item label="申请人电话">
|
||||
<el-form-item prop="applyMobile" label="申请人电话">
|
||||
<el-input maxlength="20" v-model="formData.applyMobile" placeholder="系统自动填充,也可手动修改"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="申请人工号">{{formData.applyLoginName}}</el-descriptions-item>
|
||||
<el-descriptions-item label="申请人单位">{{formData.applyUnitName}}</el-descriptions-item>
|
||||
<el-descriptions-item label="申请人工会">{{formData.applyUnionName}}</el-descriptions-item>
|
||||
<el-descriptions-item></el-descriptions-item>
|
||||
|
||||
|
||||
<el-descriptions-item label="慰问对象">
|
||||
<el-form-item prop="helpUserId" label="慰问对象">
|
||||
<el-select
|
||||
style="width: 100%"
|
||||
v-model="formData.helpUserId"
|
||||
filterable
|
||||
clearable
|
||||
remote
|
||||
reserve-keyword
|
||||
placeholder="请输入姓名或工号查询"
|
||||
:remote-method="createRemoteMethod(helpUserOptions)"
|
||||
@change="helpUserChange">
|
||||
style="width: 100%"
|
||||
v-model="formData.helpUserId"
|
||||
filterable
|
||||
clearable
|
||||
remote
|
||||
reserve-keyword
|
||||
placeholder="请输入姓名或工号查询"
|
||||
:remote-method="createRemoteMethod(helpUserOptions)"
|
||||
@change="helpUserChange">
|
||||
<el-option
|
||||
v-for="item in helpUserOptions"
|
||||
:key="item.id"
|
||||
:label="item.userName+'('+item.loginName+')'+'('+item.unitName+')'"
|
||||
:value="item.id">
|
||||
v-for="item in helpUserOptions"
|
||||
:key="item.id"
|
||||
:label="item.userName+'('+item.loginName+')'+'('+item.unitName+')'"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<!-- <el-descriptions-item label="经办人">
|
||||
<el-form-item prop="handlerUserId" label="经办人">
|
||||
<el-select
|
||||
style="width: 100%"
|
||||
v-model="formData.handlerUserId"
|
||||
filterable
|
||||
clearable
|
||||
remote
|
||||
reserve-keyword
|
||||
placeholder="请输入姓名或工号查询"
|
||||
:remote-method="createRemoteMethod(handlerUserOptions)"
|
||||
@change="handlerUserChange">
|
||||
<el-option
|
||||
v-for="item in handlerUserOptions"
|
||||
:key="item.id"
|
||||
:label="item.userName+'('+item.loginName+')'+'('+item.unitName+')'"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
<el-descriptions-item label="慰问对象电话">
|
||||
<el-form-item prop="helpMobile" label="慰问对象电话">
|
||||
<el-input maxlength="20" v-model="formData.helpMobile" placeholder="选择慰问对象自动填充,也可手动输入"></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>-->
|
||||
<el-descriptions-item label="证明人">
|
||||
<el-form-item prop="certifierUserId" label="证明人">
|
||||
<el-select
|
||||
style="width: 100%"
|
||||
v-model="formData.certifierUserId"
|
||||
filterable
|
||||
clearable
|
||||
remote
|
||||
reserve-keyword
|
||||
placeholder="请输入姓名或工号查询"
|
||||
:remote-method="createRemoteMethod(certifierUserOptions)"
|
||||
@change="certifierUserChange">
|
||||
</el-descriptions-item>
|
||||
<!-- <el-descriptions-item label="经办人">
|
||||
<el-form-item prop="handlerUserId" label="经办人">
|
||||
<el-select
|
||||
style="width: 100%"
|
||||
v-model="formData.handlerUserId"
|
||||
filterable
|
||||
clearable
|
||||
remote
|
||||
reserve-keyword
|
||||
placeholder="请输入姓名或工号查询"
|
||||
:remote-method="createRemoteMethod(handlerUserOptions)"
|
||||
@change="handlerUserChange">
|
||||
<el-option
|
||||
v-for="item in handlerUserOptions"
|
||||
:key="item.id"
|
||||
:label="item.userName+'('+item.loginName+')'+'('+item.unitName+')'"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>-->
|
||||
<!-- <el-descriptions-item label="证明人">-->
|
||||
<!-- <el-form-item prop="certifierUserId" label="证明人">-->
|
||||
<!-- <el-select-->
|
||||
<!-- style="width: 100%"-->
|
||||
<!-- v-model="formData.certifierUserId"-->
|
||||
<!-- filterable-->
|
||||
<!-- clearable-->
|
||||
<!-- remote-->
|
||||
<!-- reserve-keyword-->
|
||||
<!-- placeholder="请输入姓名或工号查询"-->
|
||||
<!-- :remote-method="createRemoteMethod(certifierUserOptions)"-->
|
||||
<!-- @change="certifierUserChange">-->
|
||||
<!-- <el-option-->
|
||||
<!-- v-for="item in certifierUserOptions"-->
|
||||
<!-- :key="item.id"-->
|
||||
<!-- :label="item.userName+'('+item.loginName+')'+'('+item.unitName+')'"-->
|
||||
<!-- :value="item.id">-->
|
||||
<!-- </el-option>-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-descriptions-item>-->
|
||||
<el-descriptions-item label="收款人">
|
||||
<el-form-item prop="payUserId" label="收款人">
|
||||
<el-select style="width: 100%"
|
||||
v-model="formData.payUserId"
|
||||
filterable
|
||||
clearable
|
||||
remote
|
||||
reserve-keyword
|
||||
placeholder="请输入姓名或工号查询"
|
||||
:remote-method="createRemoteMethod(payUserOptions)"
|
||||
@change="payUserChange">
|
||||
<el-option
|
||||
v-for="item in certifierUserOptions"
|
||||
:key="item.id"
|
||||
:label="item.userName+'('+item.loginName+')'+'('+item.unitName+')'"
|
||||
:value="item.id">
|
||||
v-for="item in payUserOptions"
|
||||
:key="item.id"
|
||||
:label="item.userName+'('+item.loginName+')'+'('+item.unitName+')'"
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@@ -102,49 +134,49 @@ layout("/layouts/platform.html"){
|
||||
<el-descriptions-item label="慰问时间">
|
||||
<el-form-item label="慰问时间" prop="occurTime">
|
||||
<el-date-picker
|
||||
clearable
|
||||
style="width: 100%"
|
||||
v-model="formData.occurTime"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="请选择慰问时间">
|
||||
clearable
|
||||
style="width: 100%"
|
||||
v-model="formData.occurTime"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="请选择慰问时间">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="收款账户">
|
||||
<el-form-item prop="bankCardNumber" label="收款账户">
|
||||
<el-input maxlength="20" v-model="formData.bankCardNumber" placeholder="请填写收款账户"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<!-- <el-descriptions-item label="收款账户">-->
|
||||
<!-- <el-form-item prop="bankCardNumber" label="收款账户">-->
|
||||
<!-- <el-input maxlength="20" v-model="formData.bankCardNumber" placeholder="请填写收款账户"-->
|
||||
<!-- ></el-input>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-descriptions-item>-->
|
||||
|
||||
<el-descriptions-item label="户名">
|
||||
<el-form-item prop="bankUserName" label="户名">
|
||||
<el-input maxlength="20" v-model="formData.bankUserName"
|
||||
placeholder="请填写户名"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<!-- <el-descriptions-item label="户名">-->
|
||||
<!-- <el-form-item prop="bankUserName" label="户名">-->
|
||||
<!-- <el-input maxlength="20" v-model="formData.bankUserName"-->
|
||||
<!-- placeholder="请填写户名"-->
|
||||
<!-- ></el-input>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-descriptions-item>-->
|
||||
|
||||
<el-descriptions-item label="开户行" >
|
||||
<el-form-item prop="bankOfDeposit" label="开户行">
|
||||
<el-input maxlength="20" v-model="formData.bankOfDeposit"
|
||||
placeholder="请填写开户行"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
<!-- <el-descriptions-item label="开户行">-->
|
||||
<!-- <el-form-item prop="bankOfDeposit" label="开户行">-->
|
||||
<!-- <el-input maxlength="20" v-model="formData.bankOfDeposit"-->
|
||||
<!-- placeholder="请填写开户行"-->
|
||||
<!-- ></el-input>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-descriptions-item>-->
|
||||
|
||||
<template v-if="['2'].includes(formData.typeCode)">
|
||||
<el-descriptions-item label="入院时间">
|
||||
<el-form-item label="入院时间" prop="hospitalizationTime">
|
||||
<el-date-picker
|
||||
clearable
|
||||
style="width: 100%"
|
||||
v-model="formData.hospitalizationTime"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="请选择入院时间">
|
||||
clearable
|
||||
style="width: 100%"
|
||||
v-model="formData.hospitalizationTime"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="请选择入院时间">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
@@ -152,12 +184,12 @@ layout("/layouts/platform.html"){
|
||||
<el-descriptions-item label="出院时间">
|
||||
<el-form-item label="出院时间" prop="leaveHospitalTime">
|
||||
<el-date-picker
|
||||
clearable
|
||||
style="width: 100%"
|
||||
v-model="formData.leaveHospitalTime"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="请选择出院时间">
|
||||
clearable
|
||||
style="width: 100%"
|
||||
v-model="formData.leaveHospitalTime"
|
||||
type="date"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="请选择出院时间">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
@@ -165,9 +197,9 @@ layout("/layouts/platform.html"){
|
||||
<el-descriptions-item label="当年第几次住院">
|
||||
<el-form-item prop="thisYearHospitalizationNum" label="当年第几次住院">
|
||||
<el-input-number style="width: 100%" v-model="formData.thisYearHospitalizationNum"
|
||||
placeholder="请输入当年第几次住院"
|
||||
:min="0"
|
||||
:max="10000"></el-input-number>
|
||||
placeholder="请输入当年第几次住院"
|
||||
:min="0"
|
||||
:max="10000"></el-input-number>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
</template>
|
||||
@@ -191,11 +223,11 @@ layout("/layouts/platform.html"){
|
||||
</template>
|
||||
<el-form-item prop="files" label="附件">
|
||||
<file-upload
|
||||
:value.sync="formData.files"
|
||||
:upload_number="5"
|
||||
upload_result_category="array"
|
||||
complete_result
|
||||
upload_mode="drag"
|
||||
:value.sync="formData.files"
|
||||
:upload_number="5"
|
||||
upload_result_category="array"
|
||||
complete_result
|
||||
upload_mode="drag"
|
||||
></file-upload>
|
||||
</el-form-item>
|
||||
</el-descriptions-item>
|
||||
@@ -225,29 +257,29 @@ layout("/layouts/platform.html"){
|
||||
taskId: GetQueryString("taskId"),
|
||||
formData: {},
|
||||
formRules: {
|
||||
helpUserId: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
payUserId: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
type: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
way: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
money: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
occurTime: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
child: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
hospital: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
hospitalHouseNum: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
hospitalHouseBedNum: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
hospitalBy: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
deadImmediateFamily: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
remark: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
files: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
signature: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
handlerUserId: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
certifierUserId: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
bankCardNumber: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
bankUserName: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
bankOfDeposit: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
thisYearHospitalizationNum: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
leaveHospitalTime: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
hospitalizationTime: [{ required: true, message: "必填", trigger: ["change", "blur"] }],
|
||||
helpUserId: [{required: true, message: "必填", trigger: ["change", "blur"]}],
|
||||
payUserId: [{required: true, message: "必填", trigger: ["change", "blur"]}],
|
||||
type: [{required: true, message: "必填", trigger: ["change", "blur"]}],
|
||||
way: [{required: true, message: "必填", trigger: ["change", "blur"]}],
|
||||
money: [{required: true, message: "必填", trigger: ["change", "blur"]}],
|
||||
occurTime: [{required: true, message: "必填", trigger: ["change", "blur"]}],
|
||||
child: [{required: true, message: "必填", trigger: ["change", "blur"]}],
|
||||
hospital: [{required: true, message: "必填", trigger: ["change", "blur"]}],
|
||||
hospitalHouseNum: [{required: true, message: "必填", trigger: ["change", "blur"]}],
|
||||
hospitalHouseBedNum: [{required: true, message: "必填", trigger: ["change", "blur"]}],
|
||||
hospitalBy: [{required: true, message: "必填", trigger: ["change", "blur"]}],
|
||||
deadImmediateFamily: [{required: true, message: "必填", trigger: ["change", "blur"]}],
|
||||
remark: [{required: true, message: "必填", trigger: ["change", "blur"]}],
|
||||
files: [{required: true, message: "必填", trigger: ["change", "blur"]}],
|
||||
signature: [{required: true, message: "必填", trigger: ["change", "blur"]}],
|
||||
handlerUserId: [{required: true, message: "必填", trigger: ["change", "blur"]}],
|
||||
certifierUserId: [{required: true, message: "必填", trigger: ["change", "blur"]}],
|
||||
bankCardNumber: [{required: true, message: "必填", trigger: ["change", "blur"]}],
|
||||
bankUserName: [{required: true, message: "必填", trigger: ["change", "blur"]}],
|
||||
bankOfDeposit: [{required: true, message: "必填", trigger: ["change", "blur"]}],
|
||||
thisYearHospitalizationNum: [{required: true, message: "必填", trigger: ["change", "blur"]}],
|
||||
leaveHospitalTime: [{required: true, message: "必填", trigger: ["change", "blur"]}],
|
||||
hospitalizationTime: [{required: true, message: "必填", trigger: ["change", "blur"]}],
|
||||
},
|
||||
chooseType: {},
|
||||
payUserOptions: [],
|
||||
@@ -266,7 +298,7 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
selectQueryUser(keyword, options) {
|
||||
options.length = 0
|
||||
this.$axios.post("/platform/condolence/apply/listUser", { keyword: keyword }).then((res) => {
|
||||
this.$axios.post("/platform/condolence/apply/listUser", {keyword: keyword}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
options.push(...res.data)
|
||||
}
|
||||
@@ -275,19 +307,20 @@ layout("/layouts/platform.html"){
|
||||
helpUserChange(val) {
|
||||
const user = this.helpUserOptions.find(o => o.id === val)
|
||||
if (user) {
|
||||
const { userName, loginName, unitId, unitName, unionId, unionName } = user
|
||||
const {userName, loginName, unitId, unitName, unionId, unionName, mobile} = user
|
||||
this.$set(this.formData, "helpUserName", userName)
|
||||
this.$set(this.formData, "helpLoginName", loginName)
|
||||
this.$set(this.formData, "helpUnitId", unitId)
|
||||
this.$set(this.formData, "helpUnitName", unitName)
|
||||
this.$set(this.formData, "helpUnionId", unionId)
|
||||
this.$set(this.formData, "helpUnionName", unionName)
|
||||
this.$set(this.formData, "helpMobile", mobile)
|
||||
}
|
||||
},
|
||||
handlerUserChange(val) {
|
||||
const user = this.handlerUserOptions.find(o => o.id === val)
|
||||
if (user) {
|
||||
const { userName, loginName, unitId, unitName, unionId, unionName } = user
|
||||
const {userName, loginName, unitId, unitName, unionId, unionName} = user
|
||||
this.$set(this.formData, "handlerUserName", userName)
|
||||
this.$set(this.formData, "handlerLoginName", loginName)
|
||||
this.$set(this.formData, "handlerUnitId", unitId)
|
||||
@@ -299,7 +332,7 @@ layout("/layouts/platform.html"){
|
||||
certifierUserChange(val) {
|
||||
const user = this.certifierUserOptions.find(o => o.id === val)
|
||||
if (user) {
|
||||
const { userName, loginName, unitId, unitName, unionId, unionName } = user
|
||||
const {userName, loginName, unitId, unitName, unionId, unionName} = user
|
||||
this.$set(this.formData, "certifierUserName", userName)
|
||||
this.$set(this.formData, "certifierLoginName", loginName)
|
||||
this.$set(this.formData, "certifierUnitId", unitId)
|
||||
@@ -311,7 +344,7 @@ layout("/layouts/platform.html"){
|
||||
payUserChange(val) {
|
||||
const user = this.payUserOptions.find(o => o.id === val)
|
||||
if (user) {
|
||||
const { userName, loginName } = user
|
||||
const {userName, loginName} = user
|
||||
this.$set(this.formData, "payUserName", userName)
|
||||
this.$set(this.formData, "payLoginName", loginName)
|
||||
}
|
||||
@@ -330,7 +363,7 @@ layout("/layouts/platform.html"){
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(() => {
|
||||
this.$axios.post("/platform/condolence/apply/save", { data: JSON.stringify(this.formData) }).then(res => {
|
||||
this.$axios.post("/platform/condolence/apply/save", {data: JSON.stringify(this.formData)}).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success(res.msg)
|
||||
commonUtil.pjaxPush("/platform/condolence/mine")
|
||||
@@ -381,17 +414,18 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
init() {
|
||||
if (this.bizId) {
|
||||
this.$axios.post("/platform/condolence/mine/info", { id: this.bizId }).then((res) => {
|
||||
this.$axios.post("/platform/condolence/mine/info", {id: this.bizId}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.formData = res.data
|
||||
this.selectQueryUser(this.formData.helpLoginName, this.helpUserOptions)
|
||||
this.selectQueryUser(this.formData.payLoginName, this.payUserOptions)
|
||||
this.selectQueryUser(this.formData.certifierLoginName, this.certifierUserOptions)
|
||||
this.selectQueryUser(this.formData.handlerLoginName, this.handlerUserOptions)
|
||||
this.chooseType = this.typeOptions.find(o => o.id === this.formData.type)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
const { username, loginname, id, unit, union, mobile } = this.$store.state.user
|
||||
const {username, loginname, id, unit, union, mobile} = this.$store.state.user
|
||||
this.formData = {
|
||||
applyUserName: username,
|
||||
applyLoginName: loginname,
|
||||
@@ -399,7 +433,8 @@ layout("/layouts/platform.html"){
|
||||
applyUnitId: unit?.id,
|
||||
applyUnitName: unit?.name,
|
||||
applyUnionId: union?.id,
|
||||
applyUnionName: union?.name
|
||||
applyUnionName: union?.name,
|
||||
applyMobile: mobile
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
+4
@@ -81,6 +81,10 @@ layout("/layouts/platform.html"){
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<user-opinion-textarea v-model="formData.tf_opinion"></user-opinion-textarea>
|
||||
</el-form-item>
|
||||
<el-form-item label="电子签名" prop="tf_sign"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<pc-signature v-model="formData.tf_sign"></pc-signature>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-row type="flex" justify="end">
|
||||
<el-button @click="$refs.guava.index()" size="small">取消</el-button>
|
||||
|
||||
@@ -7,18 +7,22 @@ const condolenceInfo = {
|
||||
</div>
|
||||
<el-descriptions :column="3" border>
|
||||
<el-descriptions-item label="申请人姓名">{{ viewData.applyUserName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="申请人电话">{{ viewData.applyMobile }}</el-descriptions-item>
|
||||
<el-descriptions-item label="申请人工号">{{ viewData.applyLoginName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="申请人单位">{{ viewData.applyUnitName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="申请人工会">{{ viewData.applyUnionName }}</el-descriptions-item>
|
||||
<el-descriptions-item></el-descriptions-item>
|
||||
<el-descriptions-item label="慰问对象">{{ viewData.helpUserName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="慰问对象电话">{{ viewData.helpMobile }}</el-descriptions-item>
|
||||
<!-- <el-descriptions-item label="经办人">{{ viewData.handlerUserName }}</el-descriptions-item>-->
|
||||
<el-descriptions-item label="证明人">{{ viewData.certifierUserName }}</el-descriptions-item>
|
||||
<!-- <el-descriptions-item label="证明人">{{ viewData.certifierUserName }}</el-descriptions-item>-->
|
||||
<el-descriptions-item label="收款人">{{ viewData.payUserName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="慰问类型">{{ viewData.typeName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="慰问金额">{{ viewData.money }}</el-descriptions-item>
|
||||
<el-descriptions-item label="慰问时间">{{ viewData.occurTime }}</el-descriptions-item>
|
||||
<el-descriptions-item label="收款账户">{{ viewData.bankCardNumber }}</el-descriptions-item>
|
||||
<el-descriptions-item label="户名">{{ viewData.bankUserName }}</el-descriptions-item>
|
||||
<el-descriptions-item label="开户行">{{ viewData.bankOfDeposit }}</el-descriptions-item>
|
||||
<!-- <el-descriptions-item label="收款账户">{{ viewData.bankCardNumber }}</el-descriptions-item>-->
|
||||
<!-- <el-descriptions-item label="户名">{{ viewData.bankUserName }}</el-descriptions-item>-->
|
||||
<!-- <el-descriptions-item label="开户行">{{ viewData.bankOfDeposit }}</el-descriptions-item>-->
|
||||
<template v-if="['2'].includes(viewData.typeCode)">
|
||||
<el-descriptions-item label="入院时间">{{ viewData.hospitalizationTime }}</el-descriptions-item>
|
||||
<el-descriptions-item label="出院时间">{{ viewData.leaveHospitalTime }}</el-descriptions-item>
|
||||
@@ -68,6 +72,12 @@ const condolenceInfo = {
|
||||
<el-descriptions-item label="办理意见" v-if="!task.ext.isFirstTaskNode">{{
|
||||
task.taskFormData.opinion }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="签字" :span="3" v-if="!task.ext.isFirstTaskNode">
|
||||
<el-image :src="task.taskFormData.tf_sign"
|
||||
v-if="task.taskFormData.tf_sign"
|
||||
class="signature-image"></el-image>
|
||||
<span v-else>暂无签字</span>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -62,6 +62,7 @@ layout("/layouts/platform.html"){
|
||||
<el-button @click="onView(row)" size="mini" type="primary">查看</el-button>
|
||||
<el-button v-if="row.taskKey === 'startTask' || !row.instanceId" @click="onEdit(row)" size="mini" type="primary">编辑</el-button>
|
||||
<el-button v-if="row.canRevoke" size="mini" type="danger" @click="onRevoke(row)">撤回</el-button>
|
||||
<el-button v-if="row.instanceState === 20" @click="doExport(row)" size="mini" type="primary">导出报销单</el-button>
|
||||
<el-button v-if="row.taskKey === 'startTask' || !row.instanceId" @click="onDelete(row.id)" size="mini" type="danger">
|
||||
删除
|
||||
</el-button>
|
||||
@@ -102,6 +103,9 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
doExport(row) {
|
||||
window.location.href = "/platform/condolence/mine/doExport?id=" + (row.id || '')
|
||||
},
|
||||
onAdd() {
|
||||
commonUtil.pjaxPush('/platform/condolence/apply')
|
||||
},
|
||||
|
||||
+4
@@ -101,6 +101,10 @@ layout("/layouts/platform.html"){
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<user-opinion-textarea v-model="formData.tf_opinion"></user-opinion-textarea>
|
||||
</el-form-item>
|
||||
<el-form-item label="电子签名" prop="tf_sign"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<pc-signature v-model="formData.tf_sign"></pc-signature>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-row type="flex" justify="end">
|
||||
<el-button @click="$refs.guava.index()" size="small">取消</el-button>
|
||||
|
||||
+4
@@ -101,6 +101,10 @@ layout("/layouts/platform.html"){
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<user-opinion-textarea v-model="formData.tf_opinion"></user-opinion-textarea>
|
||||
</el-form-item>
|
||||
<el-form-item label="电子签名" prop="tf_sign"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<pc-signature v-model="formData.tf_sign"></pc-signature>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-row type="flex" justify="end">
|
||||
<el-button @click="$refs.guava.index()" size="small">取消</el-button>
|
||||
|
||||
@@ -115,7 +115,7 @@ layout("/layouts/platform.html"){
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item prop="provideTime" label="发放时间">
|
||||
<el-form-item prop="provideTime" label="使用期限">
|
||||
<el-date-picker
|
||||
style="width: 100%"
|
||||
v-model="formData.provideTime"
|
||||
|
||||
@@ -130,6 +130,9 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<el-card class="mt10" shadow="never">
|
||||
<table-tool :app="this" label="福利名单">
|
||||
<el-button @click="batchDelete" size="small" type="primary">
|
||||
批量删除
|
||||
</el-button>
|
||||
<el-button :disabled="!pageForm.projectId" @click="openExport" icon="el-icon-download" size="small" type="primary">
|
||||
导出名单
|
||||
</el-button>
|
||||
@@ -148,14 +151,17 @@ layout("/layouts/platform.html"){
|
||||
</table-tool>
|
||||
|
||||
<el-table
|
||||
:data="tableData"
|
||||
:size="tableSize"
|
||||
@sort-change="pageOrder"
|
||||
ref="tableRef"
|
||||
row-key="id"
|
||||
style="width: 100%"
|
||||
v-loading="tableLoading"
|
||||
:data="tableData"
|
||||
:size="tableSize"
|
||||
@sort-change="pageOrder"
|
||||
@selection-change="handleSelectionChange"
|
||||
ref="tableRef"
|
||||
row-key="id"
|
||||
style="width: 100%"
|
||||
v-loading="tableLoading"
|
||||
>
|
||||
<el-table-column type="selection" width="55"></el-table-column>
|
||||
|
||||
<el-table-column :index="indexMethod" label="序号" type="index" width="80px"></el-table-column>
|
||||
|
||||
<el-table-column
|
||||
@@ -278,6 +284,8 @@ layout("/layouts/platform.html"){
|
||||
|
||||
welfareListUserDrawer: false,
|
||||
|
||||
selectedRows: [],
|
||||
|
||||
showImportDialog: false
|
||||
}
|
||||
},
|
||||
@@ -317,6 +325,35 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
})
|
||||
},
|
||||
batchDelete() {
|
||||
if (!this.selectedRows || this.selectedRows.length === 0) {
|
||||
this.$message.warning("请至少选择一条数据")
|
||||
return
|
||||
}
|
||||
|
||||
var that = this
|
||||
this.$confirm("您确定要删除选中的 " + this.selectedRows.length + " 条数据吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(async () => {
|
||||
const ids = this.selectedRows.map(row => row.id)
|
||||
const resp = await this.$axios.post("/platform/welfare/list/mange/batchDelete",
|
||||
"ids=" + ids.join("&ids=") + "&projectId=" + this.pageForm.projectId,
|
||||
{ headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }
|
||||
)
|
||||
if (resp.code === 0) {
|
||||
this.$message.success(resp.msg || "删除成功")
|
||||
this.$refs.tableRef.clearSelection()
|
||||
this.doSearch()
|
||||
} else {
|
||||
this.$message.error(resp.msg)
|
||||
}
|
||||
})
|
||||
},
|
||||
handleSelectionChange(val) {
|
||||
this.selectedRows = val
|
||||
},
|
||||
getWelfareList() {
|
||||
this.$axios.post("/platform/welfare/project/mange/getWelfareList", { year: this.pageForm.year }).then((res) => {
|
||||
this.projectSelectOptions = res.data
|
||||
|
||||
+108
-52
@@ -20,6 +20,14 @@ layout("/layouts/platform_h5.html"){
|
||||
<van-cell-group title="基本信息" class="form-section">
|
||||
<van-field label="申请人姓名" :rules="[{ required: true }]" v-model="formData.applyUserName" readonly
|
||||
required name="applyUserName"></van-field>
|
||||
<van-field
|
||||
v-model="formData.applyMobile"
|
||||
label="申请人电话"
|
||||
maxlength="20"
|
||||
clearable
|
||||
name="applyMobile"
|
||||
placeholder="系统自动填充,也可手动修改"
|
||||
></van-field>
|
||||
<van-field label="申请人工号" :rules="[{ required: true }]" v-model="formData.applyLoginName" readonly
|
||||
required name="applyLoginName"></van-field>
|
||||
<van-field label="申请人单位" :rules="[{ required: true }]" v-model="formData.applyUnitName" readonly
|
||||
@@ -62,6 +70,15 @@ layout("/layouts/platform_h5.html"){
|
||||
<van-empty description="暂无数据" v-else></van-empty>
|
||||
</van-action-sheet>
|
||||
|
||||
<van-field
|
||||
v-model="formData.helpMobile"
|
||||
label="慰问对象电话"
|
||||
maxlength="20"
|
||||
clearable
|
||||
name="helpMobile"
|
||||
placeholder="选择慰问对象自动填充,也可手动输入"
|
||||
></van-field>
|
||||
|
||||
<!-- <van-field
|
||||
v-model="formData.handlerUserName"
|
||||
name="handlerUserName"
|
||||
@@ -97,32 +114,67 @@ layout("/layouts/platform_h5.html"){
|
||||
<van-empty description="暂无数据" v-else></van-empty>
|
||||
</van-action-sheet>-->
|
||||
|
||||
<!-- <van-field-->
|
||||
<!-- v-model="formData.certifierUserName"-->
|
||||
<!-- name="certifierUserName"-->
|
||||
<!-- label="证明人"-->
|
||||
<!-- required-->
|
||||
<!-- readonly-->
|
||||
<!-- :rules="[{ required: true }]"-->
|
||||
<!-- placeholder="请点击选择证明人"-->
|
||||
<!-- @click="certifierUserSelectShow = true"-->
|
||||
<!-- is-link-->
|
||||
<!-- ></van-field>-->
|
||||
<!-- <van-action-sheet v-model="certifierUserSelectShow" title="证明人" class="height100">-->
|
||||
<!-- <van-search-->
|
||||
<!-- v-model="searchKeyword"-->
|
||||
<!-- :show-action="false"-->
|
||||
<!-- :reverse-color="false"-->
|
||||
<!-- input-align="left"-->
|
||||
<!-- placeholder="请输入工号或姓名选择证明人"-->
|
||||
<!-- @input="(val) => {userRemoteMethod(val, 'certifier')}"-->
|
||||
<!-- @clear="(val) => {userRemoteMethod(val, 'certifier')}"-->
|
||||
<!-- shape="round"-->
|
||||
<!-- ></van-search>-->
|
||||
<!-- <div class="van-action-sheet__content mt5" v-if="userOptions && userOptions.length>0">-->
|
||||
<!-- <template>-->
|
||||
<!-- <template v-for="item in userOptions">-->
|
||||
<!-- <van-button native-type="button" @click="certifierUserChange(item)"-->
|
||||
<!-- class="van-action-sheet__item van-hairline--bottom">-->
|
||||
<!-- <span class="van-action-sheet__name">{{item.userName}}({{item.loginName}})</span>-->
|
||||
<!-- </van-button>-->
|
||||
<!-- </template>-->
|
||||
<!-- </template>-->
|
||||
<!-- </div>-->
|
||||
<!-- <van-empty description="暂无数据" v-else></van-empty>-->
|
||||
<!-- </van-action-sheet>-->
|
||||
|
||||
<van-field
|
||||
v-model="formData.certifierUserName"
|
||||
name="certifierUserName"
|
||||
label="证明人"
|
||||
required
|
||||
readonly
|
||||
:rules="[{ required: true }]"
|
||||
placeholder="请点击选择证明人"
|
||||
@click="certifierUserSelectShow = true"
|
||||
is-link
|
||||
v-model="formData.payUserName"
|
||||
name="payUserName"
|
||||
label="收款人"
|
||||
required
|
||||
readonly
|
||||
:rules="[{ required: true }]"
|
||||
placeholder="请点击选择收款人"
|
||||
@click="payUserSelectShow = true"
|
||||
is-link
|
||||
></van-field>
|
||||
<van-action-sheet v-model="certifierUserSelectShow" title="证明人" class="height100">
|
||||
<van-action-sheet v-model="payUserSelectShow" title="收款人" class="height100">
|
||||
<van-search
|
||||
v-model="searchKeyword"
|
||||
:show-action="false"
|
||||
:reverse-color="false"
|
||||
input-align="left"
|
||||
placeholder="请输入工号或姓名选择证明人"
|
||||
@input="(val) => {userRemoteMethod(val, 'certifier')}"
|
||||
@clear="(val) => {userRemoteMethod(val, 'certifier')}"
|
||||
shape="round"
|
||||
v-model="searchKeyword"
|
||||
:show-action="false"
|
||||
:reverse-color="false"
|
||||
input-align="left"
|
||||
placeholder="请输入工号或姓名选择收款人"
|
||||
@input="(val) => {userRemoteMethod(val, 'pay')}"
|
||||
@clear="(val) => {userRemoteMethod(val, 'pay')}"
|
||||
shape="round"
|
||||
></van-search>
|
||||
<div class="van-action-sheet__content mt5" v-if="userOptions && userOptions.length>0">
|
||||
<template>
|
||||
<template v-for="item in userOptions">
|
||||
<van-button native-type="button" @click="certifierUserChange(item)"
|
||||
<van-button native-type="button" @click="payUserChange(item)"
|
||||
class="van-action-sheet__item van-hairline--bottom">
|
||||
<span class="van-action-sheet__name">{{item.userName}}({{item.loginName}})</span>
|
||||
</van-button>
|
||||
@@ -194,38 +246,38 @@ layout("/layouts/platform_h5.html"){
|
||||
></van-datetime-picker>
|
||||
</van-popup>
|
||||
|
||||
<van-field
|
||||
v-model="formData.bankCardNumber"
|
||||
label="收款账户"
|
||||
maxlength="20"
|
||||
clearable
|
||||
name="bankCardNumber"
|
||||
placeholder="请填写收款账户"
|
||||
:rules="[{ required: true }]"
|
||||
required
|
||||
></van-field>
|
||||
<!-- <van-field-->
|
||||
<!-- v-model="formData.bankCardNumber"-->
|
||||
<!-- label="收款账户"-->
|
||||
<!-- maxlength="20"-->
|
||||
<!-- clearable-->
|
||||
<!-- name="bankCardNumber"-->
|
||||
<!-- placeholder="请填写收款账户"-->
|
||||
<!-- :rules="[{ required: true }]"-->
|
||||
<!-- required-->
|
||||
<!-- ></van-field>-->
|
||||
|
||||
<van-field
|
||||
v-model="formData.bankUserName"
|
||||
label="户名"
|
||||
placeholder="请填写户名"
|
||||
:rules="[{ required: true }]"
|
||||
required
|
||||
maxlength="20"
|
||||
name="bankUserName"
|
||||
></van-field>
|
||||
<van-field
|
||||
v-model="formData.bankOfDeposit"
|
||||
label="开户行"
|
||||
maxlength="30"
|
||||
type="textarea"
|
||||
rows="4"
|
||||
autosize
|
||||
placeholder="请填写开户行"
|
||||
:rules="[{ required: true }]"
|
||||
required
|
||||
name="bankOfDeposit"
|
||||
></van-field>
|
||||
<!-- <van-field-->
|
||||
<!-- v-model="formData.bankUserName"-->
|
||||
<!-- label="户名"-->
|
||||
<!-- placeholder="请填写户名"-->
|
||||
<!-- :rules="[{ required: true }]"-->
|
||||
<!-- required-->
|
||||
<!-- maxlength="20"-->
|
||||
<!-- name="bankUserName"-->
|
||||
<!-- ></van-field>-->
|
||||
<!-- <van-field-->
|
||||
<!-- v-model="formData.bankOfDeposit"-->
|
||||
<!-- label="开户行"-->
|
||||
<!-- maxlength="30"-->
|
||||
<!-- type="textarea"-->
|
||||
<!-- rows="4"-->
|
||||
<!-- autosize-->
|
||||
<!-- placeholder="请填写开户行"-->
|
||||
<!-- :rules="[{ required: true }]"-->
|
||||
<!-- required-->
|
||||
<!-- name="bankOfDeposit"-->
|
||||
<!-- ></van-field>-->
|
||||
|
||||
<template v-if="['2'].includes(formData.typeCode)">
|
||||
<van-field
|
||||
@@ -437,6 +489,8 @@ layout("/layouts/platform_h5.html"){
|
||||
this.certifierUserSelectShow = true
|
||||
} else if (type === "handler") {
|
||||
this.handlerUserSelectShow = true
|
||||
}else if (type === "pay") {
|
||||
this.payUserSelectShow = true
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -445,7 +499,7 @@ layout("/layouts/platform_h5.html"){
|
||||
return res.data
|
||||
},
|
||||
helpUserChange(user) {
|
||||
const { id, userName, loginName, unitId, unitName, unionId, unionName } = user
|
||||
const { id, userName, loginName, unitId, unitName, unionId, unionName, mobile } = user
|
||||
this.$set(this.formData, "helpUserId", id)
|
||||
this.$set(this.formData, "helpUserName", userName)
|
||||
this.$set(this.formData, "helpLoginName", loginName)
|
||||
@@ -453,6 +507,7 @@ layout("/layouts/platform_h5.html"){
|
||||
this.$set(this.formData, "helpUnitName", unitName)
|
||||
this.$set(this.formData, "helpUnionId", unionId)
|
||||
this.$set(this.formData, "helpUnionName", unionName)
|
||||
this.$set(this.formData, "helpMobile", mobile)
|
||||
this.helpUserSelectShow = false
|
||||
this.searchKeyword = ""
|
||||
this.userOptions = []
|
||||
@@ -553,7 +608,8 @@ layout("/layouts/platform_h5.html"){
|
||||
applyUnitId: unit?.id,
|
||||
applyUnitName: unit?.name,
|
||||
applyUnionId: union?.id,
|
||||
applyUnionName: union?.name
|
||||
applyUnionName: union?.name,
|
||||
applyMobile: mobile
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
+8
-1
@@ -7,7 +7,7 @@ layout("/layouts/platform_h5.html"){
|
||||
</style>
|
||||
|
||||
<div id="app">
|
||||
<van-nav-bar title="分工会审核" left-text="返回" left-arrow @click-left="historyBack" fixed placeholder></van-nav-bar>
|
||||
<van-nav-bar title="分工会主席审核" left-text="返回" left-arrow @click-left="historyBack" fixed placeholder></van-nav-bar>
|
||||
|
||||
<van-sticky offset-top="46px">
|
||||
<van-search
|
||||
@@ -70,6 +70,13 @@ layout("/layouts/platform_h5.html"){
|
||||
maxlength="100"
|
||||
show-word-limit
|
||||
></van-field>
|
||||
<van-cell-group title="电子签名" class="form-section">
|
||||
<van-field class="more-text" name="tf_sign" label="">
|
||||
<template #input>
|
||||
<h5-signature v-model="formData.tf_sign" slot="input"></h5-signature>
|
||||
</template>
|
||||
</van-field>
|
||||
</van-cell-group>
|
||||
</van-form>
|
||||
<div style="display: flex; justify-content: space-between; column-gap: 10px; padding: 10px">
|
||||
<van-button type="danger" block @click="handleTaskAction(6)">退回</van-button>
|
||||
|
||||
@@ -6,20 +6,23 @@ const condolenceInfo = {
|
||||
<div class="detail-container">
|
||||
<van-cell-group title="基本信息">
|
||||
<van-cell title="申请人姓名">{{ viewData.applyUserName }}</van-cell>
|
||||
<van-cell title="申请人电话">{{ viewData.applyMobile }}</van-cell>
|
||||
<van-cell title="申请人工号">{{ viewData.applyLoginName }}</van-cell>
|
||||
<van-cell title="申请人单位">{{ viewData.applyUnitName }}</van-cell>
|
||||
<van-cell title="申请人工会">{{ viewData.applyUnionName }}</van-cell>
|
||||
<van-cell title="慰问对象">{{ viewData.helpUserName }}</van-cell>
|
||||
<van-cell title="慰问对象电话">{{ viewData.helpMobile }}</van-cell>
|
||||
<!-- <van-cell title="经办人">{{ viewData.handlerUserName }}</van-cell>-->
|
||||
<van-cell title="证明人">{{ viewData.certifierUserName }}</van-cell>
|
||||
<!-- <van-cell title="证明人">{{ viewData.certifierUserName }}</van-cell>-->
|
||||
<van-cell title="收款人">{{ viewData.payUserName }}</van-cell>
|
||||
<van-cell title="慰问类型">{{ viewData.typeName }}</van-cell>
|
||||
<van-cell title="慰问金额">{{ viewData.money }}</van-cell>
|
||||
<van-cell title="慰问时间">{{ viewData.occurTime }}</van-cell>
|
||||
<van-cell title="收款账户">{{ viewData.bankCardNumber }}</van-cell>
|
||||
<van-cell title="户名">{{ viewData.bankUserName }}</van-cell>
|
||||
<van-cell class="direction-column-cell" title="开户行">
|
||||
{{ viewData.bankOfDeposit || '暂无' }}
|
||||
</van-cell>
|
||||
<!-- <van-cell title="收款账户">{{ viewData.bankCardNumber }}</van-cell>-->
|
||||
<!-- <van-cell title="户名">{{ viewData.bankUserName }}</van-cell>-->
|
||||
<!-- <van-cell class="direction-column-cell" title="开户行">-->
|
||||
<!-- {{ viewData.bankOfDeposit || '暂无' }}-->
|
||||
<!-- </van-cell>-->
|
||||
<template v-if="['2'].includes(viewData.typeCode)">
|
||||
<van-cell title="入院时间">{{ viewData.hospitalizationTime }}</van-cell>
|
||||
<van-cell title="出院时间">{{ viewData.leaveHospitalTime }}</van-cell>
|
||||
@@ -58,6 +61,11 @@ const condolenceInfo = {
|
||||
<van-cell title="办理意见" v-if="!task.ext.isFirstTaskNode" class="direction-column-cell">
|
||||
<div v-html="task.taskFormData.tf_opinion"></div>
|
||||
</van-cell>
|
||||
<van-cell class="direction-column-cell" title="签字"v-if="!task.ext.isFirstTaskNode">
|
||||
<van-image :src="task.taskFormData.tf_sign" v-if="task.taskFormData.tf_sign"
|
||||
class="signature-image"></van-image>
|
||||
<span v-else>暂无签字</span>
|
||||
</van-cell>
|
||||
</van-cell-group>
|
||||
</template>
|
||||
</div>
|
||||
|
||||
+8
-1
@@ -7,7 +7,7 @@ layout("/layouts/platform_h5.html"){
|
||||
</style>
|
||||
|
||||
<div id="app">
|
||||
<van-nav-bar title="校工会预审" left-text="返回" left-arrow @click-left="historyBack" fixed placeholder></van-nav-bar>
|
||||
<van-nav-bar title="校工会会计审核" left-text="返回" left-arrow @click-left="historyBack" fixed placeholder></van-nav-bar>
|
||||
|
||||
<van-sticky offset-top="46px">
|
||||
<van-search
|
||||
@@ -70,6 +70,13 @@ layout("/layouts/platform_h5.html"){
|
||||
maxlength="100"
|
||||
show-word-limit
|
||||
></van-field>
|
||||
<van-cell-group title="电子签名" class="form-section">
|
||||
<van-field class="more-text" name="tf_sign" label="">
|
||||
<template #input>
|
||||
<h5-signature v-model="formData.tf_sign" slot="input"></h5-signature>
|
||||
</template>
|
||||
</van-field>
|
||||
</van-cell-group>
|
||||
</van-form>
|
||||
<div style="display: flex; justify-content: space-between; column-gap: 10px; padding: 10px">
|
||||
<van-button type="danger" block @click="handleTaskAction(6)">退回</van-button>
|
||||
|
||||
+8
-1
@@ -7,7 +7,7 @@ layout("/layouts/platform_h5.html"){
|
||||
</style>
|
||||
|
||||
<div id="app">
|
||||
<van-nav-bar title="校工会审核" left-text="返回" left-arrow @click-left="historyBack" fixed placeholder></van-nav-bar>
|
||||
<van-nav-bar title="工会主席审核" left-text="返回" left-arrow @click-left="historyBack" fixed placeholder></van-nav-bar>
|
||||
|
||||
<van-sticky offset-top="46px">
|
||||
<van-search
|
||||
@@ -70,6 +70,13 @@ layout("/layouts/platform_h5.html"){
|
||||
maxlength="100"
|
||||
show-word-limit
|
||||
></van-field>
|
||||
<van-cell-group title="电子签名" class="form-section">
|
||||
<van-field class="more-text" name="tf_sign" label="">
|
||||
<template #input>
|
||||
<h5-signature v-model="formData.tf_sign" slot="input"></h5-signature>
|
||||
</template>
|
||||
</van-field>
|
||||
</van-cell-group>
|
||||
</van-form>
|
||||
<div style="display: flex; justify-content: space-between; column-gap: 10px; padding: 10px">
|
||||
<van-button type="danger" block @click="handleTaskAction(6)">退回</van-button>
|
||||
|
||||
Reference in New Issue
Block a user