|
@@ -206,7 +206,7 @@
|
|
<form:input style="background-color: #f1f1f1" path="accumulationFundId" htmlEscape="false" readonly="true" class="form-control layui-input number" maxlength="12"/>
|
|
<form:input style="background-color: #f1f1f1" path="accumulationFundId" htmlEscape="false" readonly="true" class="form-control layui-input number" maxlength="12"/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- <div class="layui-item layui-col-sm6 lw7">
|
|
|
|
|
|
+ <%--<div class="layui-item layui-col-sm6 lw7">
|
|
<label class="layui-form-label">微信号:</label>
|
|
<label class="layui-form-label">微信号:</label>
|
|
<div class="layui-input-block">
|
|
<div class="layui-input-block">
|
|
<form:input style="background-color: #f1f1f1" path="wechatId" htmlEscape="false" readonly="true" class="form-control layui-input"/>
|
|
<form:input style="background-color: #f1f1f1" path="wechatId" htmlEscape="false" readonly="true" class="form-control layui-input"/>
|
|
@@ -217,21 +217,21 @@
|
|
<div class="layui-input-block">
|
|
<div class="layui-input-block">
|
|
<form:input style="background-color: #f1f1f1" path="qqId" htmlEscape="false" readonly="true" class="form-control layui-input number" minlength="5" maxlength="10"/>
|
|
<form:input style="background-color: #f1f1f1" path="qqId" htmlEscape="false" readonly="true" class="form-control layui-input number" minlength="5" maxlength="10"/>
|
|
</div>
|
|
</div>
|
|
- </div>
|
|
|
|
|
|
+ </div>--%>
|
|
<div class="layui-item layui-col-sm6 lw7">
|
|
<div class="layui-item layui-col-sm6 lw7">
|
|
<label class="layui-form-label">入职日期:</label>
|
|
<label class="layui-form-label">入职日期:</label>
|
|
<div class="layui-input-block">
|
|
<div class="layui-input-block">
|
|
<input style="background-color: #f1f1f1" name="entryDate" value="<fmt:formatDate value="${workStaffBasicInfo.entryDate}" pattern="yyyy-MM-dd"/>" type="text" readonly="true" class="form-control layui-input" />
|
|
<input style="background-color: #f1f1f1" name="entryDate" value="<fmt:formatDate value="${workStaffBasicInfo.entryDate}" pattern="yyyy-MM-dd"/>" type="text" readonly="true" class="form-control layui-input" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- <div class="layui-item layui-col-sm6 lw7">
|
|
|
|
|
|
+ <%--<div class="layui-item layui-col-sm6 lw7">
|
|
<label class="layui-form-label">试用岗位:</label>
|
|
<label class="layui-form-label">试用岗位:</label>
|
|
<div class="layui-input-block">
|
|
<div class="layui-input-block">
|
|
<form:input style="background-color: #f1f1f1" path="tryOutJob" htmlEscape="false" readonly="true" class="form-control layui-input"/>
|
|
<form:input style="background-color: #f1f1f1" path="tryOutJob" htmlEscape="false" readonly="true" class="form-control layui-input"/>
|
|
</div>
|
|
</div>
|
|
- </div>
|
|
|
|
|
|
+ </div>--%>
|
|
<div class="layui-item layui-col-sm6 lw7">
|
|
<div class="layui-item layui-col-sm6 lw7">
|
|
- <label class="layui-form-label double-line">试用期(月):</label>
|
|
|
|
|
|
+ <label class="layui-form-label">试用期(月):</label>
|
|
<div class="layui-input-block">
|
|
<div class="layui-input-block">
|
|
<form:input style="background-color: #f1f1f1" path="trialPeriod" htmlEscape="false" readonly="true" class="form-control layui-input number" maxlength="2"/>
|
|
<form:input style="background-color: #f1f1f1" path="trialPeriod" htmlEscape="false" readonly="true" class="form-control layui-input number" maxlength="2"/>
|
|
</div>
|
|
</div>
|
|
@@ -244,6 +244,13 @@
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="layui-item layui-col-sm6 lw7">
|
|
<div class="layui-item layui-col-sm6 lw7">
|
|
|
|
+ <label class="layui-form-label">职 位:</label>
|
|
|
|
+ <div class="layui-input-block">
|
|
|
|
+ <input name="duty" value="${workStaffBasicInfo.duty}" type="text" readonly="true" class="form-control layui-input" />
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ <div class="layui-item layui-col-sm6 lw7">
|
|
<label class="layui-form-label"><span class="require-item">*</span>归属部门:</label>
|
|
<label class="layui-form-label"><span class="require-item">*</span>归属部门:</label>
|
|
<div class="layui-input-block">
|
|
<div class="layui-input-block">
|
|
<input style="background-color: #f1f1f1" name="office.name" value="${workStaffBasicInfo.office.name}" type="text" readonly="true" class="form-control layui-input" />
|
|
<input style="background-color: #f1f1f1" name="office.name" value="${workStaffBasicInfo.office.name}" type="text" readonly="true" class="form-control layui-input" />
|
|
@@ -256,36 +263,30 @@
|
|
<input style="background-color: #f1f1f1" id="roleName" value="${workStaffBasicInfo.roleName}" type="text" readonly class="form-control layui-input" />
|
|
<input style="background-color: #f1f1f1" id="roleName" value="${workStaffBasicInfo.roleName}" type="text" readonly class="form-control layui-input" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- <div class="layui-item layui-col-sm6 lw7">
|
|
|
|
|
|
+ <%--<div class="layui-item layui-col-sm6 lw7">
|
|
<label class="layui-form-label"><span class="require-item">*</span>最高学历:</label>
|
|
<label class="layui-form-label"><span class="require-item">*</span>最高学历:</label>
|
|
<div class="layui-input-block ">
|
|
<div class="layui-input-block ">
|
|
<input style="background-color: #f1f1f1" id="highestEducation" value="${workStaffBasicInfo.highestEducation}" type="text" readonly class="form-control layui-input" />
|
|
<input style="background-color: #f1f1f1" id="highestEducation" value="${workStaffBasicInfo.highestEducation}" type="text" readonly class="form-control layui-input" />
|
|
</div>
|
|
</div>
|
|
- </div>
|
|
|
|
|
|
+ </div>--%>
|
|
<div class="layui-item layui-col-sm12 with-textarea">
|
|
<div class="layui-item layui-col-sm12 with-textarea">
|
|
<label class="layui-form-label">备注:</label>
|
|
<label class="layui-form-label">备注:</label>
|
|
<div class="layui-input-block">
|
|
<div class="layui-input-block">
|
|
<form:textarea style="background-color: #f1f1f1" path="remarks" htmlEscape="false" readonly="true" rows="4" maxlength="500" class="form-control "/>
|
|
<form:textarea style="background-color: #f1f1f1" path="remarks" htmlEscape="false" readonly="true" rows="4" maxlength="500" class="form-control "/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- <div class="layui-item layui-col-sm12 with-textarea">
|
|
|
|
|
|
+ <%--<div class="layui-item layui-col-sm12 with-textarea">
|
|
<label class="layui-form-label">个人简介:</label>
|
|
<label class="layui-form-label">个人简介:</label>
|
|
<div class="layui-input-block">
|
|
<div class="layui-input-block">
|
|
<form:textarea style="background-color: #f1f1f1" path="individualResume" htmlEscape="false" readonly="true" rows="4" maxlength="500" class="form-control "/>
|
|
<form:textarea style="background-color: #f1f1f1" path="individualResume" htmlEscape="false" readonly="true" rows="4" maxlength="500" class="form-control "/>
|
|
</div>
|
|
</div>
|
|
- </div>
|
|
|
|
|
|
+ </div>--%>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<%--<div class="layui-item layui-col-sm6 lw7">
|
|
<%--<div class="layui-item layui-col-sm6 lw7">
|
|
- <label class="layui-form-label">职 位:</label>
|
|
|
|
- <div class="layui-input-block">
|
|
|
|
- <input name="duty" value="${workStaffBasicInfo.duty}" type="text" readonly="true" class="form-control layui-input" />
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="layui-item layui-col-sm6 lw7">
|
|
|
|
<label class="layui-form-label">职 级:</label>
|
|
<label class="layui-form-label">职 级:</label>
|
|
<div class="layui-input-block with-icon">
|
|
<div class="layui-input-block with-icon">
|
|
<form:input path="jobGrade.name" htmlEscape="false" readonly="true" class="form-control layui-input required"/>
|
|
<form:input path="jobGrade.name" htmlEscape="false" readonly="true" class="form-control layui-input required"/>
|
|
@@ -404,72 +405,63 @@
|
|
<fmt:formatDate value="${education.endDate}" pattern="yyyy-MM-dd"/>
|
|
<fmt:formatDate value="${education.endDate}" pattern="yyyy-MM-dd"/>
|
|
</td>
|
|
</td>
|
|
<td class="text-left op-td">
|
|
<td class="text-left op-td">
|
|
- <c:if test="${not empty education.eduPhotoStr}"><img src="${education.eduPhotoStr}" width="24" height="24" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${education.eduPhotoStr}','90%','90%')" alt=""></c:if>
|
|
|
|
|
|
+ <c:if test="${not empty education.eduPhotoStr}">
|
|
|
|
+ <%-- 安全处理带签名链接中的 & 符号 --%>
|
|
|
|
+ <c:set var="safePhotoUrl" value="${fn:replace(education.eduPhotoStr, '&', '&')}" />
|
|
|
|
+
|
|
|
|
+ <%-- 图片展示 --%>
|
|
|
|
+ <img src="${safePhotoUrl}" width="24" height="24"
|
|
|
|
+ style="cursor:pointer; vertical-align:middle;"
|
|
|
|
+ onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${safePhotoUrl}','90%','90%')"
|
|
|
|
+ alt="图片预览" title="点击预览图片" />
|
|
|
|
+
|
|
|
|
+ <%-- 提取扩展名 --%>
|
|
|
|
+ <c:set var="extArr" value="${fn:split(education.eduPhoto, '.')}" />
|
|
|
|
+ <c:set var="ext" value="${fn:toLowerCase(extArr[fn:length(extArr) - 1])}" />
|
|
|
|
+ <c:set var="downloadFileName" value="学历图片.${ext}" />
|
|
|
|
+ <%-- 下载按钮 --%>
|
|
|
|
+ <a href="javascript:void(0);"
|
|
|
|
+ title="下载图片"
|
|
|
|
+ style="color: #28a745; margin-left: 5px; text-decoration: none;"
|
|
|
|
+ onclick="downloadFile('${ctx}', '${education.eduPhoto}', '${downloadFileName}')">
|
|
|
|
+ <i class="fa fa-download"></i>
|
|
|
|
+ </a>
|
|
|
|
+ </c:if>
|
|
</td>
|
|
</td>
|
|
|
|
+
|
|
<td class="text-left op-td">
|
|
<td class="text-left op-td">
|
|
- <c:if test="${not empty education.degreePhotoStr}"><img src="${education.degreePhotoStr}" width="24" height="24" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${education.degreePhotoStr}','90%','90%')" alt=""></c:if>
|
|
|
|
|
|
+ <c:if test="${not empty education.degreePhotoStr}">
|
|
|
|
+ <%-- 安全处理带签名链接中的 & 符号 --%>
|
|
|
|
+ <c:set var="safeDegreeUrl" value="${fn:replace(education.degreePhotoStr, '&', '&')}" />
|
|
|
|
+
|
|
|
|
+ <%-- 图片展示 --%>
|
|
|
|
+ <img src="${safeDegreeUrl}" width="24" height="24"
|
|
|
|
+ style="cursor:pointer; vertical-align:middle;"
|
|
|
|
+ onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${safeDegreeUrl}','90%','90%')"
|
|
|
|
+ alt="图片预览" title="点击预览图片" />
|
|
|
|
+
|
|
|
|
+ <%-- 提取扩展名 --%>
|
|
|
|
+ <c:set var="degreeExtArr" value="${fn:split(education.degreePhoto, '.')}" />
|
|
|
|
+ <c:set var="degreeExt" value="${fn:toLowerCase(degreeExtArr[fn:length(degreeExtArr) - 1])}" />
|
|
|
|
+ <c:set var="degreeDownloadFileName" value="学位证书.${degreeExt}" />
|
|
|
|
+
|
|
|
|
+ <%-- 下载按钮 --%>
|
|
|
|
+ <a href="javascript:void(0);"
|
|
|
|
+ title="下载学位证书"
|
|
|
|
+ style="color: #28a745; margin-left: 5px; text-decoration: none;"
|
|
|
|
+ onclick="downloadFile('${ctx}', '${education.degreePhoto}', '${degreeDownloadFileName}')">
|
|
|
|
+ <i class="fa fa-download"></i>
|
|
|
|
+ </a>
|
|
|
|
+ </c:if>
|
|
</td>
|
|
</td>
|
|
- </tr>
|
|
|
|
- </c:forEach>
|
|
|
|
- </tbody>
|
|
|
|
- </table>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="form-group layui-row">
|
|
|
|
- <div class="form-group-label"><h2>劳动关系</h2></div>
|
|
|
|
- <div class="layui-item layui-col-xs12 form-table-container">
|
|
|
|
- <table id="labourTable" class="table table-bordered table-condensed details">
|
|
|
|
- <thead>
|
|
|
|
- <tr>
|
|
|
|
- <th width="12%">合同类型</th>
|
|
|
|
- <th width="12%">合同编号</th>
|
|
|
|
- <th width="12%">合同期限</th>
|
|
|
|
- <th width="11%">合同起始日期</th>
|
|
|
|
- <th width="11%">合同终止日期</th>
|
|
|
|
- <th width="11%">试用期结束日期</th>
|
|
|
|
- <th width="11%">办理日期</th>
|
|
|
|
- <th width="20%">文件</th>
|
|
|
|
- </tr>
|
|
|
|
- </thead>
|
|
|
|
- <tbody id="labourList">
|
|
|
|
- <c:forEach items="${workStaffBasicInfo.labourList}" var="buyDetails" varStatus="status">
|
|
|
|
- <tr>
|
|
|
|
- <td>${fns:getDictLabel(buyDetails.contractType, 'relsp_cType', '')}</td>
|
|
|
|
- <td>${buyDetails.contractNum}</td>
|
|
|
|
- <td>${fns:getDictLabel(buyDetails.contractLimit, 'contract_limit', '')}</td>
|
|
|
|
- <td><fmt:formatDate value="${buyDetails.contractStartTime}" pattern="yyyy-MM-dd"/></td>
|
|
|
|
- <td><fmt:formatDate value="${buyDetails.contractEndTime}" pattern="yyyy-MM-dd"/></td>
|
|
|
|
- <td><fmt:formatDate value="${buyDetails.tryEndTime}" pattern="yyyy-MM-dd"/></td>
|
|
|
|
- <td><fmt:formatDate value="${buyDetails.transactTime}" pattern="yyyy-MM-dd"/></td>
|
|
|
|
- <%--试用期结束时间<td><fmt:formatDate value="${buyDetails.tryEndTime}" pattern="yyyy-MM-dd"/></td>--%>
|
|
|
|
|
|
|
|
- <c:forEach items="${buyDetails.workAttachments}" var = "workClientAttachment" varStatus="status">
|
|
|
|
- <c:choose>
|
|
|
|
- <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')
|
|
|
|
- or fn:containsIgnoreCase(workClientAttachment.attachmentName,'png')
|
|
|
|
- or fn:containsIgnoreCase(workClientAttachment.attachmentName,'gif')
|
|
|
|
- or fn:containsIgnoreCase(workClientAttachment.attachmentName,'bmp')
|
|
|
|
- or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpeg')}">
|
|
|
|
- <td><img src="${workClientAttachment.url}" width="24" height="24" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${workClientAttachment.url}','90%','90%')" alt="${workClientAttachment.attachmentName}"></td>
|
|
|
|
- </c:when>
|
|
|
|
- <c:otherwise>
|
|
|
|
- <c:choose>
|
|
|
|
- <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
|
|
|
|
- <td><a href="javascript:void(0)" onclick="preview('预览','${workClientAttachment.url}','90%','90%','1')">${workClientAttachment.attachmentName}</a></td>
|
|
|
|
- </c:when>
|
|
|
|
- <c:otherwise>
|
|
|
|
- <td><a href="javascript:void(0)" onclick="preview('预览','${workClientAttachment.url}','90%','90%')">${workClientAttachment.attachmentName}</a></td>
|
|
|
|
- </c:otherwise>
|
|
|
|
- </c:choose>
|
|
|
|
- </c:otherwise>
|
|
|
|
- </c:choose>
|
|
|
|
- </c:forEach>
|
|
|
|
</tr>
|
|
</tr>
|
|
</c:forEach>
|
|
</c:forEach>
|
|
</tbody>
|
|
</tbody>
|
|
</table>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
+
|
|
<div class="form-group layui-row">
|
|
<div class="form-group layui-row">
|
|
<div class="form-group-label"><h2>外语语种</h2></div>
|
|
<div class="form-group-label"><h2>外语语种</h2></div>
|
|
<div class="layui-item layui-col-xs12 form-table-container">
|
|
<div class="layui-item layui-col-xs12 form-table-container">
|
|
@@ -480,7 +472,7 @@
|
|
<th width="20%"><span class="require-item">*</span>熟练程度</th>
|
|
<th width="20%"><span class="require-item">*</span>熟练程度</th>
|
|
<th width="20%">证书名称</th>
|
|
<th width="20%">证书名称</th>
|
|
<th width="20%">获证日期</th>
|
|
<th width="20%">获证日期</th>
|
|
- <th width="20%">文件</th>
|
|
|
|
|
|
+ <th width="20%">文件<span style="color: #FF8C69; font-size: 10px; font-weight: normal; margin-left: 5px;">(图片)</span></th>
|
|
</tr>
|
|
</tr>
|
|
</thead>
|
|
</thead>
|
|
<tbody id="languageList">
|
|
<tbody id="languageList">
|
|
@@ -499,7 +491,45 @@
|
|
<fmt:formatDate value="${language.certifDate}" pattern="yyyy-MM-dd"/>
|
|
<fmt:formatDate value="${language.certifDate}" pattern="yyyy-MM-dd"/>
|
|
</td>
|
|
</td>
|
|
<td>
|
|
<td>
|
|
- <c:if test="${not empty language.filePathStr}"><img src="${language.filePathStr}" width="24" height="24" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${language.filePathStr}','90%','90%')" alt=""></c:if>
|
|
|
|
|
|
+ <c:if test="${not empty language.filePathStr}">
|
|
|
|
+ <%-- 安全处理URL中的 & --%>
|
|
|
|
+ <c:set var="safeFilePath" value="${fn:replace(language.filePathStr, '&', '&')}" />
|
|
|
|
+
|
|
|
|
+ <%-- 先从 language.fileName 里提取扩展名 --%>
|
|
|
|
+ <c:set var="fileNameArr" value="${fn:split(language.fileName, '.')}" />
|
|
|
|
+ <c:set var="fileExt" value="${fn:toLowerCase(fileNameArr[fn:length(fileNameArr) - 1])}" />
|
|
|
|
+
|
|
|
|
+ <%-- 如果没有后缀,尝试从 filePathStr 里提取 --%>
|
|
|
|
+ <c:choose>
|
|
|
|
+ <c:when test="${fn:contains(language.fileName, '.')}">
|
|
|
|
+ <%-- 已经有后缀 --%>
|
|
|
|
+ <c:set var="downloadFileName" value="${language.fileName}" />
|
|
|
|
+ </c:when>
|
|
|
|
+ <c:otherwise>
|
|
|
|
+ <%-- 从路径最后部分提取后缀 --%>
|
|
|
|
+ <c:set var="pathParts" value="${fn:split(language.filePathStr, '/')}"/>
|
|
|
|
+ <c:set var="lastPart" value="${pathParts[fn:length(pathParts) - 1]}" />
|
|
|
|
+ <c:set var="lastPartArr" value="${fn:split(lastPart, '.')}" />
|
|
|
|
+ <c:set var="pathExt" value="${fn:toLowerCase(lastPartArr[fn:length(lastPartArr) - 1])}" />
|
|
|
|
+ <c:set var="downloadFileName" value="${language.fileName}.${pathExt}" />
|
|
|
|
+ </c:otherwise>
|
|
|
|
+ </c:choose>
|
|
|
|
+
|
|
|
|
+ <%-- 显示图片缩略图 --%>
|
|
|
|
+ <img src="${safeFilePath}" width="24" height="24"
|
|
|
|
+ style="cursor:pointer; vertical-align:middle;"
|
|
|
|
+ onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${safeFilePath}','90%','90%')"
|
|
|
|
+ alt="文件预览" title="点击预览" />
|
|
|
|
+
|
|
|
|
+ <%-- 下载按钮 --%>
|
|
|
|
+ <a href="javascript:void(0);"
|
|
|
|
+ title="下载文件"
|
|
|
|
+ style="color: #28a745; margin-left: 5px; text-decoration: none;"
|
|
|
|
+ onclick="downloadFile('${ctx}', '${language.filePath}', '${downloadFileName}')">
|
|
|
|
+ <i class="fa fa-download"></i>
|
|
|
|
+ </a>
|
|
|
|
+ </c:if>
|
|
|
|
+
|
|
</td>
|
|
</td>
|
|
</tr>
|
|
</tr>
|
|
</c:forEach>
|
|
</c:forEach>
|
|
@@ -563,7 +593,7 @@
|
|
<th width="11%">注册日期</th>
|
|
<th width="11%">注册日期</th>
|
|
<th width="11%"><span class="require-item">*</span>发证日期</th>
|
|
<th width="11%"><span class="require-item">*</span>发证日期</th>
|
|
<th width="10%">发证机关</th>
|
|
<th width="10%">发证机关</th>
|
|
- <th width="10%">文件</th>
|
|
|
|
|
|
+ <th width="10%">文件<span style="color: #FF8C69; font-size: 10px; font-weight: normal; margin-left: 5px;">(图片)</span></th>
|
|
</tr>
|
|
</tr>
|
|
</thead>
|
|
</thead>
|
|
<tbody id="certificateList">
|
|
<tbody id="certificateList">
|
|
@@ -585,7 +615,45 @@
|
|
${certificate.issuingAuthority}
|
|
${certificate.issuingAuthority}
|
|
</td>
|
|
</td>
|
|
<td >
|
|
<td >
|
|
- <c:if test="${not empty certificate.filePathStr}"><img src="${certificate.filePathStr}" width="24" height="24" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${certificate.filePathStr}','90%','90%')" alt=""></c:if>
|
|
|
|
|
|
+ <c:if test="${not empty certificate.filePathStr}">
|
|
|
|
+ <%-- 安全处理URL中的 & --%>
|
|
|
|
+ <c:set var="safeFilePath" value="${fn:replace(certificate.filePathStr, '&', '&')}" />
|
|
|
|
+
|
|
|
|
+ <%-- 先从 certificate.fileName 里提取扩展名 --%>
|
|
|
|
+ <c:set var="fileNameArr" value="${fn:split(certificate.fileName, '.')}" />
|
|
|
|
+ <c:set var="fileExt" value="${fn:toLowerCase(fileNameArr[fn:length(fileNameArr) - 1])}" />
|
|
|
|
+
|
|
|
|
+ <%-- 如果没有后缀,尝试从 filePathStr 里提取 --%>
|
|
|
|
+ <c:choose>
|
|
|
|
+ <c:when test="${fn:contains(certificate.fileName, '.')}">
|
|
|
|
+ <%-- 已经有后缀 --%>
|
|
|
|
+ <c:set var="downloadFileName" value="${certificate.fileName}" />
|
|
|
|
+ </c:when>
|
|
|
|
+ <c:otherwise>
|
|
|
|
+ <%-- 从路径最后部分提取后缀 --%>
|
|
|
|
+ <c:set var="pathParts" value="${fn:split(certificate.filePathStr, '/')}"/>
|
|
|
|
+ <c:set var="lastPart" value="${pathParts[fn:length(pathParts) - 1]}" />
|
|
|
|
+ <c:set var="lastPartArr" value="${fn:split(lastPart, '.')}" />
|
|
|
|
+ <c:set var="pathExt" value="${fn:toLowerCase(lastPartArr[fn:length(lastPartArr) - 1])}" />
|
|
|
|
+ <c:set var="downloadFileName" value="${certificate.fileName}.${pathExt}" />
|
|
|
|
+ </c:otherwise>
|
|
|
|
+ </c:choose>
|
|
|
|
+
|
|
|
|
+ <%-- 显示图片缩略图 --%>
|
|
|
|
+ <img src="${safeFilePath}" width="24" height="24"
|
|
|
|
+ style="cursor:pointer; vertical-align:middle;"
|
|
|
|
+ onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${safeFilePath}','90%','90%')"
|
|
|
|
+ alt="文件预览" title="点击预览" />
|
|
|
|
+
|
|
|
|
+ <%-- 下载按钮 --%>
|
|
|
|
+ <a href="javascript:void(0);"
|
|
|
|
+ title="下载文件"
|
|
|
|
+ style="color: #28a745; margin-left: 5px; text-decoration: none;"
|
|
|
|
+ onclick="downloadFile('${ctx}', '${certificate.filePath}', '${downloadFileName}')">
|
|
|
|
+ <i class="fa fa-download"></i>
|
|
|
|
+ </a>
|
|
|
|
+ </c:if>
|
|
|
|
+
|
|
</td>
|
|
</td>
|
|
</tr>
|
|
</tr>
|
|
</c:forEach>
|
|
</c:forEach>
|
|
@@ -604,7 +672,7 @@
|
|
<th width="15%"><span class="require-item">*</span>取得日期</th>
|
|
<th width="15%"><span class="require-item">*</span>取得日期</th>
|
|
<th width="15%"><span class="require-item">*</span>取得途径</th>
|
|
<th width="15%"><span class="require-item">*</span>取得途径</th>
|
|
<th width="20%"><span class="require-item">*</span>审批单位</th>
|
|
<th width="20%"><span class="require-item">*</span>审批单位</th>
|
|
- <th width="15%">文件</th>
|
|
|
|
|
|
+ <th width="15%">文件<span style="color: #FF8C69; font-size: 10px; font-weight: normal; margin-left: 5px;">(图片)</span></th>
|
|
</tr>
|
|
</tr>
|
|
</thead>
|
|
</thead>
|
|
<tbody id="titleList">
|
|
<tbody id="titleList">
|
|
@@ -626,7 +694,44 @@
|
|
${title.approvalAuthority}
|
|
${title.approvalAuthority}
|
|
</td>
|
|
</td>
|
|
<td>
|
|
<td>
|
|
- <c:if test="${not empty title.filePathStr}"><img src="${title.filePathStr}" width="24" height="24" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${title.filePathStr}','90%','90%')" alt=""></c:if>
|
|
|
|
|
|
+ <c:if test="${not empty title.filePathStr}">
|
|
|
|
+ <%-- 安全处理URL中的 & --%>
|
|
|
|
+ <c:set var="safeFilePath" value="${fn:replace(title.filePathStr, '&', '&')}" />
|
|
|
|
+
|
|
|
|
+ <%-- 先从 title.fileName 里提取扩展名 --%>
|
|
|
|
+ <c:set var="fileNameArr" value="${fn:split(title.fileName, '.')}" />
|
|
|
|
+ <c:set var="fileExt" value="${fn:toLowerCase(fileNameArr[fn:length(fileNameArr) - 1])}" />
|
|
|
|
+
|
|
|
|
+ <%-- 如果没有后缀,尝试从 filePathStr 里提取 --%>
|
|
|
|
+ <c:choose>
|
|
|
|
+ <c:when test="${fn:contains(title.fileName, '.')}">
|
|
|
|
+ <%-- 已经有后缀 --%>
|
|
|
|
+ <c:set var="downloadFileName" value="${title.fileName}" />
|
|
|
|
+ </c:when>
|
|
|
|
+ <c:otherwise>
|
|
|
|
+ <%-- 从路径最后部分提取后缀 --%>
|
|
|
|
+ <c:set var="pathParts" value="${fn:split(title.filePathStr, '/')}"/>
|
|
|
|
+ <c:set var="lastPart" value="${pathParts[fn:length(pathParts) - 1]}" />
|
|
|
|
+ <c:set var="lastPartArr" value="${fn:split(lastPart, '.')}" />
|
|
|
|
+ <c:set var="pathExt" value="${fn:toLowerCase(lastPartArr[fn:length(lastPartArr) - 1])}" />
|
|
|
|
+ <c:set var="downloadFileName" value="${title.fileName}.${pathExt}" />
|
|
|
|
+ </c:otherwise>
|
|
|
|
+ </c:choose>
|
|
|
|
+
|
|
|
|
+ <%-- 显示图片缩略图 --%>
|
|
|
|
+ <img src="${safeFilePath}" width="24" height="24"
|
|
|
|
+ style="cursor:pointer; vertical-align:middle;"
|
|
|
|
+ onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${safeFilePath}','90%','90%')"
|
|
|
|
+ alt="文件预览" title="点击预览" />
|
|
|
|
+
|
|
|
|
+ <%-- 下载按钮 --%>
|
|
|
|
+ <a href="javascript:void(0);"
|
|
|
|
+ title="下载文件"
|
|
|
|
+ style="color: #28a745; margin-left: 5px; text-decoration: none;"
|
|
|
|
+ onclick="downloadFile('${ctx}', '${title.filePath}', '${downloadFileName}')">
|
|
|
|
+ <i class="fa fa-download"></i>
|
|
|
|
+ </a>
|
|
|
|
+ </c:if>
|
|
</td>
|
|
</td>
|
|
</tr>
|
|
</tr>
|
|
</c:forEach>
|
|
</c:forEach>
|
|
@@ -685,7 +790,7 @@
|
|
<th width="10%"><span class="require-item">*</span>培训类型</th>
|
|
<th width="10%"><span class="require-item">*</span>培训类型</th>
|
|
<th width="10%">学时</th>
|
|
<th width="10%">学时</th>
|
|
<th width="10%"><span class="require-item">*</span>所获证书</th>
|
|
<th width="10%"><span class="require-item">*</span>所获证书</th>
|
|
- <th width="10%">文件</th>
|
|
|
|
|
|
+ <th width="10%">文件<span style="color: #FF8C69; font-size: 10px; font-weight: normal; margin-left: 5px;">(图片)</span></th>
|
|
<th width="10%">备注</th>
|
|
<th width="10%">备注</th>
|
|
</tr>
|
|
</tr>
|
|
</thead>
|
|
</thead>
|
|
@@ -717,7 +822,44 @@
|
|
${training.certificate}
|
|
${training.certificate}
|
|
</td>
|
|
</td>
|
|
<td>
|
|
<td>
|
|
- <c:if test="${not empty training.filePathStr}"><img src="${training.filePathStr}" width="24" height="24" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${training.filePathStr}','90%','90%')" alt="${training.fileName}"></c:if>
|
|
|
|
|
|
+ <c:if test="${not empty training.filePathStr}">
|
|
|
|
+ <%-- 安全处理URL中的 & --%>
|
|
|
|
+ <c:set var="safeFilePath" value="${fn:replace(training.filePathStr, '&', '&')}" />
|
|
|
|
+
|
|
|
|
+ <%-- 先从 training.fileName 里提取扩展名 --%>
|
|
|
|
+ <c:set var="fileNameArr" value="${fn:split(training.fileName, '.')}" />
|
|
|
|
+ <c:set var="fileExt" value="${fn:toLowerCase(fileNameArr[fn:length(fileNameArr) - 1])}" />
|
|
|
|
+
|
|
|
|
+ <%-- 如果没有后缀,尝试从 filePathStr 里提取 --%>
|
|
|
|
+ <c:choose>
|
|
|
|
+ <c:when test="${fn:contains(training.fileName, '.')}">
|
|
|
|
+ <%-- 已经有后缀 --%>
|
|
|
|
+ <c:set var="downloadFileName" value="${training.fileName}" />
|
|
|
|
+ </c:when>
|
|
|
|
+ <c:otherwise>
|
|
|
|
+ <%-- 从路径最后部分提取后缀 --%>
|
|
|
|
+ <c:set var="pathParts" value="${fn:split(training.filePathStr, '/')}"/>
|
|
|
|
+ <c:set var="lastPart" value="${pathParts[fn:length(pathParts) - 1]}" />
|
|
|
|
+ <c:set var="lastPartArr" value="${fn:split(lastPart, '.')}" />
|
|
|
|
+ <c:set var="pathExt" value="${fn:toLowerCase(lastPartArr[fn:length(lastPartArr) - 1])}" />
|
|
|
|
+ <c:set var="downloadFileName" value="${training.fileName}.${pathExt}" />
|
|
|
|
+ </c:otherwise>
|
|
|
|
+ </c:choose>
|
|
|
|
+
|
|
|
|
+ <%-- 显示图片缩略图 --%>
|
|
|
|
+ <img src="${safeFilePath}" width="24" height="24"
|
|
|
|
+ style="cursor:pointer; vertical-align:middle;"
|
|
|
|
+ onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${safeFilePath}','90%','90%')"
|
|
|
|
+ alt="文件预览" title="点击预览" />
|
|
|
|
+
|
|
|
|
+ <%-- 下载按钮 --%>
|
|
|
|
+ <a href="javascript:void(0);"
|
|
|
|
+ title="下载文件"
|
|
|
|
+ style="color: #28a745; margin-left: 5px; text-decoration: none;"
|
|
|
|
+ onclick="downloadFile('${ctx}', '${training.filePath}', '${downloadFileName}')">
|
|
|
|
+ <i class="fa fa-download"></i>
|
|
|
|
+ </a>
|
|
|
|
+ </c:if>
|
|
</td>
|
|
</td>
|
|
<td>
|
|
<td>
|
|
${training.remarks}
|
|
${training.remarks}
|
|
@@ -844,6 +986,96 @@
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="form-group layui-row">
|
|
<div class="form-group layui-row">
|
|
|
|
+ <div class="form-group-label"><h2>劳动合同</h2></div>
|
|
|
|
+ <div class="layui-item layui-col-xs12 form-table-container">
|
|
|
|
+ <table id="labourTable" class="table table-bordered table-condensed details">
|
|
|
|
+ <thead>
|
|
|
|
+ <tr>
|
|
|
|
+ <th width="12%">合同类型</th>
|
|
|
|
+ <th width="12%">合同编号</th>
|
|
|
|
+ <th width="12%">合同期限</th>
|
|
|
|
+ <th width="11%">合同起始日期</th>
|
|
|
|
+ <th width="11%">合同终止日期</th>
|
|
|
|
+ <th width="11%">试用期结束日期</th>
|
|
|
|
+ <th width="11%">办理日期</th>
|
|
|
|
+ <th width="20%">文件</th>
|
|
|
|
+ </tr>
|
|
|
|
+ </thead>
|
|
|
|
+ <tbody id="labourList">
|
|
|
|
+ <c:forEach items="${workStaffBasicInfo.laborContractList}" var="buyDetails" varStatus="status">
|
|
|
|
+ <tr>
|
|
|
|
+ <td>${fns:getDictLabel(buyDetails.contractType, 'relsp_cType', '')}</td>
|
|
|
|
+ <td>${buyDetails.contractNum}</td>
|
|
|
|
+ <td>${fns:getDictLabel(buyDetails.contractLimit, 'contract_limit', '')}</td>
|
|
|
|
+ <td><fmt:formatDate value="${buyDetails.contractStartTime}" pattern="yyyy-MM-dd"/></td>
|
|
|
|
+ <td><fmt:formatDate value="${buyDetails.contractEndTime}" pattern="yyyy-MM-dd"/></td>
|
|
|
|
+ <td><fmt:formatDate value="${buyDetails.tryEndTime}" pattern="yyyy-MM-dd"/></td>
|
|
|
|
+ <td><fmt:formatDate value="${buyDetails.transactTime}" pattern="yyyy-MM-dd"/></td>
|
|
|
|
+ <%--试用期结束时间<td><fmt:formatDate value="${buyDetails.tryEndTime}" pattern="yyyy-MM-dd"/></td>--%>
|
|
|
|
+
|
|
|
|
+ <td class="text-left op-td">
|
|
|
|
+ <!-- 文件或图片展示区域 -->
|
|
|
|
+ <span id="laborContractList${varStatus.index}_fileName1">
|
|
|
|
+ <c:if test="${not empty buyDetails.filePathStr}">
|
|
|
|
+ <!-- 提取文件名 -->
|
|
|
|
+ <c:set var="fileNameArr" value="${fn:split(buyDetails.filePath, '/')}" />
|
|
|
|
+ <c:set var="fileName" value="${fileNameArr[fn:length(fileNameArr) - 1]}" />
|
|
|
|
+
|
|
|
|
+ <!-- 提取文件扩展名 -->
|
|
|
|
+ <c:set var="extArr" value="${fn:split(fileName, '.')}" />
|
|
|
|
+ <c:set var="ext" value="${fn:toLowerCase(extArr[fn:length(extArr) - 1])}" />
|
|
|
|
+
|
|
|
|
+ <!-- 判断是否是图片类型 -->
|
|
|
|
+ <c:choose>
|
|
|
|
+ <c:when test="${ext == 'jpg' || ext == 'jpeg' || ext == 'png' || ext == 'gif' || ext == 'bmp' || ext == 'webp'}">
|
|
|
|
+ <!-- 图片预览 -->
|
|
|
|
+ <img src="${buyDetails.filePathStr}" width="24" height="24"
|
|
|
|
+ style="cursor:pointer; vertical-align:middle;"
|
|
|
|
+ onclick="preview('预览','${buyDetails.filePathStr}','90%','90%','1')"
|
|
|
|
+ alt="图片预览" title="点击预览图片" />
|
|
|
|
+ </c:when>
|
|
|
|
+ <c:otherwise>
|
|
|
|
+ <c:choose>
|
|
|
|
+ <c:when test="${fn:containsIgnoreCase(buyDetails.fileName,'pdf')}">
|
|
|
|
+ <a class="attention-info" href="javascript:void(0)" style="color: #007bff;" onclick="preview('预览','${buyDetails.filePathStr}','90%','90%','1')">${buyDetails.fileName}</a>
|
|
|
|
+ </c:when>
|
|
|
|
+ <c:otherwise>
|
|
|
|
+ <a class="attention-info" href="javascript:void(0)" style="color: #007bff;" onclick="preview('预览','${buyDetails.filePathStr}','90%','90%')">${buyDetails.fileName}</a>
|
|
|
|
+ </c:otherwise>
|
|
|
|
+ </c:choose>
|
|
|
|
+ <!-- 普通文件预览(带图标和文件名,文件名超10字符截断) -->
|
|
|
|
+ <%--<a href="${buyDetails.filePathStr}" target="_blank" title="${buyDetails.fileName}" style="text-decoration:none;color:#007bff;">
|
|
|
|
+ <c:choose>
|
|
|
|
+ <c:when test="${fn:length(buyDetails.fileName) > 10}">
|
|
|
|
+ ${fn:substring(buyDetails.fileName, 0, 10)}...
|
|
|
|
+ </c:when>
|
|
|
|
+ <c:otherwise>
|
|
|
|
+ ${buyDetails.fileName}
|
|
|
|
+ </c:otherwise>
|
|
|
|
+ </c:choose>
|
|
|
|
+ </a>--%>
|
|
|
|
+
|
|
|
|
+ </c:otherwise>
|
|
|
|
+ </c:choose>
|
|
|
|
+ </c:if>
|
|
|
|
+ </span>
|
|
|
|
+
|
|
|
|
+ <!-- 下载按钮 -->
|
|
|
|
+ <a href="javascript:void(0);"
|
|
|
|
+ title="下载 ${buyDetails.fileName}"
|
|
|
|
+ style="color: #28a745; margin-left: 5px; text-decoration: none;"
|
|
|
|
+ onclick="downloadFile('${ctx}', '${buyDetails.filePath}', '${buyDetails.fileName}')">
|
|
|
|
+ <i class="fa fa-download"></i>
|
|
|
|
+ </a>
|
|
|
|
+
|
|
|
|
+ </td>
|
|
|
|
+ </tr>
|
|
|
|
+ </c:forEach>
|
|
|
|
+ </tbody>
|
|
|
|
+ </table>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <%--<div class="form-group layui-row">
|
|
<div class="form-group-label"><h2>电子档案</h2></div>
|
|
<div class="form-group-label"><h2>电子档案</h2></div>
|
|
<div class="layui-item layui-col-xs12 form-table-container">
|
|
<div class="layui-item layui-col-xs12 form-table-container">
|
|
<table id="recordTable" class="table table-bordered table-condensed details">
|
|
<table id="recordTable" class="table table-bordered table-condensed details">
|
|
@@ -875,7 +1107,7 @@
|
|
</tbody>
|
|
</tbody>
|
|
</table>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
- </div>
|
|
|
|
|
|
+ </div>--%>
|
|
</form:form>
|
|
</form:form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|