|
|
@@ -0,0 +1,575 @@
|
|
|
+<%@ page contentType="text/html;charset=UTF-8" %>
|
|
|
+<%@ include file="/webpage/include/taglib.jsp"%>
|
|
|
+<html>
|
|
|
+<head>
|
|
|
+ <title>个人素养提升计划表</title>
|
|
|
+ <meta name="decorator" content="default"/>
|
|
|
+ <script type="text/javascript" src="${ctxStatic}/layui/layui.js"></script>
|
|
|
+ <link rel='stylesheet' type="text/css" href="${ctxStatic}/layui/css/layui.css"/>
|
|
|
+ <style type="text/css">
|
|
|
+ .section-title { background: #f2f2f2; font-weight: bold; font-size: 14px; padding: 10px 15px; margin: 15px 0 10px 0; border-left: 3px solid #1E9FFF; }
|
|
|
+ .score-row { margin-bottom: 10px; padding: 12px 15px; border: 1px solid #e6e6e6; border-radius: 4px; background: #fafafa; }
|
|
|
+ .score-row .score-title { font-weight: bold; margin-bottom: 8px; font-size: 14px; color: #333; }
|
|
|
+ .score-row .layui-form-label { width: 100px; padding: 9px 0; text-align: right; }
|
|
|
+ .score-row .layui-input-block { margin-left: 120px; }
|
|
|
+ .rate-disabled .layui-rate { pointer-events: none; }
|
|
|
+ .form-section { margin-bottom: 20px; }
|
|
|
+ .info-bar { background: #e8f4fd; padding: 10px 15px; border-radius: 4px; margin-bottom: 15px; }
|
|
|
+ .info-bar span { margin-right: 30px; font-size: 14px; }
|
|
|
+ .cert-table { width: 100%; border-collapse: collapse; margin: 10px 0; }
|
|
|
+ .cert-table td, .cert-table th { border: 1px solid #e6e6e6; padding: 8px 12px; text-align: center; }
|
|
|
+ .cert-table th { background: #f2f2f2; font-weight: bold; }
|
|
|
+ .radio-group { padding: 9px 0; }
|
|
|
+ .radio-group .layui-form-radio { margin-right: 10px; }
|
|
|
+ .work-years-other input { width: 200px; }
|
|
|
+ .readonly-field { background: #f5f5f5; color: #666; cursor: not-allowed; }
|
|
|
+ .layui-form-select .layui-input { background-color: #fff !important; }
|
|
|
+ .require-item { color: red; margin-right: 2px; font-weight: bold; }
|
|
|
+ </style>
|
|
|
+ <script type="text/javascript">
|
|
|
+ var validateForm;
|
|
|
+ var isReadOnly = ${readOnly};
|
|
|
+
|
|
|
+ function doSubmit(type){
|
|
|
+ if(isReadOnly){
|
|
|
+ top.layer.msg('该记录已提交,不可修改!', {icon: 5});
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if(type == 1){
|
|
|
+ // 提交 - 先同步动态字段值,再验证
|
|
|
+ syncWorkYears();
|
|
|
+ var errorMsg = validateAllFields();
|
|
|
+ if(errorMsg){
|
|
|
+ top.layer.msg(errorMsg, {icon: 5});
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ $("#inputForm").attr("action", "${ctx}/workqualityimprovement/wkQualityImprovement/recordSubmit");
|
|
|
+ $("#inputForm").submit();
|
|
|
+ return true;
|
|
|
+ } else {
|
|
|
+ // 暂存
|
|
|
+ syncWorkYears();
|
|
|
+ $("#inputForm").attr("action", "${ctx}/workqualityimprovement/wkQualityImprovement/recordSave");
|
|
|
+ $("#inputForm").submit();
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 验证所有必填项
|
|
|
+ function validateAllFields() {
|
|
|
+ if(!$('#position').val() || !$.trim($('#position').val())) return '请填写岗位';
|
|
|
+ if(!$('#growthStage').val()) return '请选择当前成长阶段';
|
|
|
+ var workYearsVal = $('#workYearsHidden').val();
|
|
|
+ if(!workYearsVal) return '请选择入职年限';
|
|
|
+ if(!$('#weaknessGoal').val() || !$.trim($('#weaknessGoal').val())) return '请填写短板与不足/总体目标';
|
|
|
+
|
|
|
+ var scorePlanFields = [
|
|
|
+ {scoreName: 'scoreMapping', planName: 'planMapping', label: '识图/算量/建模'},
|
|
|
+ {scoreName: 'scorePricing', planName: 'planPricing', label: '清单/定额计价'},
|
|
|
+ {scoreName: 'scoreChange', planName: 'planChange', label: '变更/签证/索赔/争议处理'},
|
|
|
+ {scoreName: 'scoreProcess', planName: 'planProcess', label: '全过程业务能力'},
|
|
|
+ {scoreName: 'scoreCcpm', planName: 'planCcpm', label: 'CCPM系统全流程操作'},
|
|
|
+ {scoreName: 'scoreSoftware', planName: 'planSoftware', label: '广联达/未来/博威等软件'},
|
|
|
+ {scoreName: 'scoreAi', planName: 'planAi', label: 'AI辅助工具应用'},
|
|
|
+ {scoreName: 'scoreCommClient', planName: 'planCommClient', label: '与甲方/施工单位沟通'},
|
|
|
+ {scoreName: 'scoreCommWriting', planName: 'planCommWriting', label: '书面表达/底稿/报告撰写'},
|
|
|
+ {scoreName: 'scoreCommResponse', planName: 'planCommResponse', label: '客户需求响应与关系维护'},
|
|
|
+ {scoreName: 'scoreCommCross', planName: 'planCommCross', label: '跨专业贯通'},
|
|
|
+ {scoreName: 'scoreCommExpand', planName: 'planCommExpand', label: '主动开拓/洽谈业务能力'}
|
|
|
+ ];
|
|
|
+ for(var i = 0; i < scorePlanFields.length; i++){
|
|
|
+ var f = scorePlanFields[i];
|
|
|
+ var scoreVal = parseInt($('input[name="' + f.scoreName + '"]').val());
|
|
|
+ if(!scoreVal || scoreVal <= 0) return '请对「' + f.label + '」进行评分';
|
|
|
+ var planVal = $('textarea[name="' + f.planName + '"]').val();
|
|
|
+ if(!planVal || !$.trim(planVal)) return '请填写「' + f.label + '」的目标措施';
|
|
|
+ }
|
|
|
+
|
|
|
+ // 学习考证与知识更新
|
|
|
+ if(!$('#engineerStatus').val()) return '请选择一级/二级造价工程师状态';
|
|
|
+ if(!$('#engineerPlan').val() || !$.trim($('#engineerPlan').val())) return '请填写一级/二级造价工程师具体计划';
|
|
|
+ if(!$('#engineerDeadline').val() || !$.trim($('#engineerDeadline').val())) return '请填写一级/二级造价工程师完成时限';
|
|
|
+ if(!$('#trainingTypes').val() || !$.trim($('#trainingTypes').val())) return '请选择培训类型';
|
|
|
+ if(!$('#trainingDirection').val() || !$.trim($('#trainingDirection').val())) return '请填写培训方向';
|
|
|
+ if(!$('#trainingDeadline').val() || !$.trim($('#trainingDeadline').val())) return '请填写年度培训完成时限';
|
|
|
+ if(!$('#regulationLevel').val() || !$.trim($('#regulationLevel').val())) return '请选择清单/定额/新规的掌握程度';
|
|
|
+ if(!$('#regulationDeadline').val() || !$.trim($('#regulationDeadline').val())) return '请填写清单/定额/新规完成时限';
|
|
|
+ var caseCount = parseInt($('#caseCount').val());
|
|
|
+ if(isNaN(caseCount) || caseCount < 0) return '请填写案例篇数';
|
|
|
+ var insightCount = parseInt($('#insightCount').val());
|
|
|
+ if(isNaN(insightCount) || insightCount < 0) return '请填写心得篇数';
|
|
|
+ var paperCount = parseInt($('#paperCount').val());
|
|
|
+ if(isNaN(paperCount) || paperCount < 0) return '请填写论文篇数';
|
|
|
+ if(!$('#outputDifficulty').val() || !$.trim($('#outputDifficulty').val())) return '请填写输出困难说明';
|
|
|
+ if(!$('#outputDeadline').val() || !$.trim($('#outputDeadline').val())) return '请填写输出/分享完成时限';
|
|
|
+
|
|
|
+ if(!$('#coreAdvantage').val() || !$.trim($('#coreAdvantage').val())) return '请填写核心优势与提升思路';
|
|
|
+
|
|
|
+ return '';
|
|
|
+ }
|
|
|
+
|
|
|
+ $(document).ready(function() {
|
|
|
+ layui.use(['form', 'layer', 'rate'], function () {
|
|
|
+ var form = layui.form;
|
|
|
+ var rate = layui.rate;
|
|
|
+
|
|
|
+ // 初始化星级评分
|
|
|
+ initRate('scoreMapping', ${wkQualityImprovementRecord.scoreMapping != null ? wkQualityImprovementRecord.scoreMapping : 0});
|
|
|
+ initRate('scorePricing', ${wkQualityImprovementRecord.scorePricing != null ? wkQualityImprovementRecord.scorePricing : 0});
|
|
|
+ initRate('scoreChange', ${wkQualityImprovementRecord.scoreChange != null ? wkQualityImprovementRecord.scoreChange : 0});
|
|
|
+ initRate('scoreProcess', ${wkQualityImprovementRecord.scoreProcess != null ? wkQualityImprovementRecord.scoreProcess : 0});
|
|
|
+ initRate('scoreCcpm', ${wkQualityImprovementRecord.scoreCcpm != null ? wkQualityImprovementRecord.scoreCcpm : 0});
|
|
|
+ initRate('scoreSoftware', ${wkQualityImprovementRecord.scoreSoftware != null ? wkQualityImprovementRecord.scoreSoftware : 0});
|
|
|
+ initRate('scoreAi', ${wkQualityImprovementRecord.scoreAi != null ? wkQualityImprovementRecord.scoreAi : 0});
|
|
|
+ initRate('scoreCommClient', ${wkQualityImprovementRecord.scoreCommClient != null ? wkQualityImprovementRecord.scoreCommClient : 0});
|
|
|
+ initRate('scoreCommWriting', ${wkQualityImprovementRecord.scoreCommWriting != null ? wkQualityImprovementRecord.scoreCommWriting : 0});
|
|
|
+ initRate('scoreCommResponse', ${wkQualityImprovementRecord.scoreCommResponse != null ? wkQualityImprovementRecord.scoreCommResponse : 0});
|
|
|
+ initRate('scoreCommCross', ${wkQualityImprovementRecord.scoreCommCross != null ? wkQualityImprovementRecord.scoreCommCross : 0});
|
|
|
+ initRate('scoreCommExpand', ${wkQualityImprovementRecord.scoreCommExpand != null ? wkQualityImprovementRecord.scoreCommExpand : 0});
|
|
|
+
|
|
|
+ // 初始化入职年限单选按钮(字典value为数字,"其他"对应value=5)
|
|
|
+ var workYearsVal = $('#workYearsHidden').val();
|
|
|
+ if (workYearsVal) {
|
|
|
+ var presetValues = ['1', '2', '3', '4'];
|
|
|
+ if (presetValues.indexOf(workYearsVal) >= 0) {
|
|
|
+ $('input[name="workYearsRadio"][value="' + workYearsVal + '"]').prop('checked', true);
|
|
|
+ } else {
|
|
|
+ $('input[name="workYearsRadio"][value="5"]').prop('checked', true);
|
|
|
+ $('#workYearsOtherDiv').show();
|
|
|
+ $('#workYearsOtherInput').val(workYearsVal);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ form.render('radio');
|
|
|
+ form.render('select');
|
|
|
+
|
|
|
+ // layui单选切换监听
|
|
|
+ form.on('radio(workYearsRadio)', function(data) {
|
|
|
+ toggleWorkYearsOther(data.value);
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ validateForm = $("#inputForm").validate({
|
|
|
+ submitHandler: function(form){
|
|
|
+ loading('正在提交,请稍等...');
|
|
|
+ form.submit();
|
|
|
+ },
|
|
|
+ errorContainer: "#messageBox",
|
|
|
+ errorPlacement: function(error, element) {
|
|
|
+ $("#messageBox").text("输入有误,请先更正。");
|
|
|
+ if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
|
|
|
+ error.appendTo(element.parent().parent());
|
|
|
+ } else {
|
|
|
+ error.insertAfter(element);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ // 只读模式禁用所有输入
|
|
|
+ if(isReadOnly){
|
|
|
+ $('input,textarea,select').attr('disabled', true);
|
|
|
+ $('.layui-rate').css('pointer-events', 'none');
|
|
|
+ }
|
|
|
+
|
|
|
+ // 提交前同步动态字段值
|
|
|
+ $('#inputForm').on('submit', function() {
|
|
|
+ syncWorkYears();
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ function initRate(elemId, value){
|
|
|
+ layui.rate.render({
|
|
|
+ elem: '#' + elemId,
|
|
|
+ value: value,
|
|
|
+ text: true,
|
|
|
+ choose: function(value){
|
|
|
+ $('input[name="' + elemId + '"]').val(value);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ // 入职年限单选切换(字典value=5为"其他")
|
|
|
+ function toggleWorkYearsOther(val) {
|
|
|
+ if (val === '5') {
|
|
|
+ $('#workYearsOtherDiv').show();
|
|
|
+ $('#workYearsOtherInput').focus();
|
|
|
+ } else {
|
|
|
+ $('#workYearsOtherDiv').hide();
|
|
|
+ $('#workYearsOtherInput').val('');
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 提交前将入职年限值同步到隐藏字段(字典value=5为"其他")
|
|
|
+ function syncWorkYears() {
|
|
|
+ var selected = $('input[name="workYearsRadio"]:checked').val();
|
|
|
+ if (selected === '5') {
|
|
|
+ $('#workYearsHidden').val($('#workYearsOtherInput').val());
|
|
|
+ } else {
|
|
|
+ $('#workYearsHidden').val(selected || '');
|
|
|
+ }
|
|
|
+ }
|
|
|
+ </script>
|
|
|
+</head>
|
|
|
+<body>
|
|
|
+<div class="single-form">
|
|
|
+ <div class="container">
|
|
|
+ <form:form id="inputForm" modelAttribute="wkQualityImprovementRecord" action="${ctx}/workqualityimprovement/wkQualityImprovement/recordSave" method="post" class="form-horizontal layui-form">
|
|
|
+ <form:hidden path="id"/>
|
|
|
+ <form:hidden path="taskId"/>
|
|
|
+ <form:hidden path="userId"/>
|
|
|
+ <form:hidden path="processInstanceId"/>
|
|
|
+ <sys:message content="${message}"/>
|
|
|
+
|
|
|
+ <div class="info-bar">
|
|
|
+ <span><b>姓名:</b>${wkQualityImprovementRecord.userName}</span>
|
|
|
+ <span><b>部门:</b>${wkQualityImprovementRecord.officeName}</span>
|
|
|
+ <c:if test="${wkQualityImprovementRecord.submitStatus == '1'}">
|
|
|
+ <span style="color:#5FB878;"><b>状态:已提交</b></span>
|
|
|
+ </c:if>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- 基本信息 -->
|
|
|
+ <div class="form-section">
|
|
|
+ <div class="layui-row" style="margin-bottom:15px;">
|
|
|
+ <div class="layui-item layui-col-sm6">
|
|
|
+ <label class="layui-form-label"><span class="require-item">*</span>岗位:</label>
|
|
|
+ <div class="layui-input-block">
|
|
|
+ <form:input path="position" htmlEscape="false" placeholder="请输入岗位" maxlength="50" class="form-control layui-input"/>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="layui-item layui-col-sm6">
|
|
|
+ <label class="layui-form-label double-line"><span class="require-item">*</span>当前成长阶段:</label>
|
|
|
+ <div class="layui-input-block">
|
|
|
+ <form:select path="growthStage" class="form-control judgment layui-input">
|
|
|
+ <form:option value="" label="请选择"/>
|
|
|
+ <c:forEach items="${fns:getDictList('growth_stage')}" var="dict">
|
|
|
+ <form:option value="${dict.value}" label="${dict.label}"/>
|
|
|
+ </c:forEach>
|
|
|
+ </form:select>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="layui-row" style="margin-bottom:15px;">
|
|
|
+ <div class="layui-item layui-col-sm12">
|
|
|
+ <label class="layui-form-label double-line"><span class="require-item">*</span>入职年限:</label>
|
|
|
+ <div class="layui-input-block">
|
|
|
+ <div class="radio-group">
|
|
|
+ <c:forEach items="${fns:getDictList('work_years')}" var="dict">
|
|
|
+ <input type="radio" name="workYearsRadio" value="${dict.value}" title="${dict.label}" lay-skin="primary" lay-filter="workYearsRadio"/>
|
|
|
+ </c:forEach>
|
|
|
+ </div>
|
|
|
+ <div id="workYearsOtherDiv" style="display:none; padding:5px 0;">
|
|
|
+ <input type="text" id="workYearsOtherInput" class="layui-input" placeholder="请输入具体年限" style="width:200px;"/>
|
|
|
+ </div>
|
|
|
+ <input type="hidden" id="workYearsHidden" name="workYears" value="${wkQualityImprovementRecord.workYears}"/>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="layui-row" style="margin-bottom:15px;">
|
|
|
+ <div class="layui-item layui-col-sm12 with-textarea">
|
|
|
+ <label class="layui-form-label double-line"><span class="require-item">*</span>短板与不足/总体目标:</label>
|
|
|
+ <div class="layui-input-block">
|
|
|
+ <form:textarea path="weaknessGoal" htmlEscape="false" rows="4" placeholder="请描述您的短板与不足,以及总体提升目标" maxlength="500" class="form-control"/>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- (一)专业实操能力提升 -->
|
|
|
+ <div class="section-title">(一)专业实操能力提升</div>
|
|
|
+ <div class="form-section">
|
|
|
+ <div class="score-row">
|
|
|
+ <div class="score-title">1. 识图/算量/建模</div>
|
|
|
+ <div class="layui-row">
|
|
|
+ <div class="layui-item layui-col-sm4">
|
|
|
+ <label class="layui-form-label double-line"><span class="require-item">*</span>当前水平评分:</label>
|
|
|
+ <div class="layui-input-block" id="scoreMapping"></div>
|
|
|
+ <input type="hidden" name="scoreMapping" value="${wkQualityImprovementRecord.scoreMapping}"/>
|
|
|
+ </div>
|
|
|
+ <div class="layui-item layui-col-sm8 with-textarea">
|
|
|
+ <label class="layui-form-label"><span class="require-item">*</span>目标措施:</label>
|
|
|
+ <div class="layui-input-block">
|
|
|
+ <form:textarea path="planMapping" htmlEscape="false" rows="3" placeholder="一年内希望达到的水平及具体行动措施" maxlength="500" class="form-control"/>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="score-row">
|
|
|
+ <div class="score-title">2. 清单/定额计价</div>
|
|
|
+ <div class="layui-row">
|
|
|
+ <div class="layui-item layui-col-sm4">
|
|
|
+ <label class="layui-form-label double-line"><span class="require-item">*</span>当前水平评分:</label>
|
|
|
+ <div class="layui-input-block" id="scorePricing"></div>
|
|
|
+ <input type="hidden" name="scorePricing" value="${wkQualityImprovementRecord.scorePricing}"/>
|
|
|
+ </div>
|
|
|
+ <div class="layui-item layui-col-sm8 with-textarea">
|
|
|
+ <label class="layui-form-label"><span class="require-item">*</span>目标措施:</label>
|
|
|
+ <div class="layui-input-block">
|
|
|
+ <form:textarea path="planPricing" htmlEscape="false" rows="3" placeholder="一年内希望达到的水平及具体行动措施" maxlength="500" class="form-control"/>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="score-row">
|
|
|
+ <div class="score-title">3. 变更/签证/索赔/争议处理</div>
|
|
|
+ <div class="layui-row">
|
|
|
+ <div class="layui-item layui-col-sm4">
|
|
|
+ <label class="layui-form-label double-line"><span class="require-item">*</span>当前水平评分:</label>
|
|
|
+ <div class="layui-input-block" id="scoreChange"></div>
|
|
|
+ <input type="hidden" name="scoreChange" value="${wkQualityImprovementRecord.scoreChange}"/>
|
|
|
+ </div>
|
|
|
+ <div class="layui-item layui-col-sm8 with-textarea">
|
|
|
+ <label class="layui-form-label"><span class="require-item">*</span>目标措施:</label>
|
|
|
+ <div class="layui-input-block">
|
|
|
+ <form:textarea path="planChange" htmlEscape="false" rows="3" placeholder="一年内希望达到的水平及具体行动措施" maxlength="500" class="form-control"/>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="score-row">
|
|
|
+ <div class="score-title">4. 全过程业务能力</div>
|
|
|
+ <div class="layui-row">
|
|
|
+ <div class="layui-item layui-col-sm4">
|
|
|
+ <label class="layui-form-label double-line"><span class="require-item">*</span>当前水平评分:</label>
|
|
|
+ <div class="layui-input-block" id="scoreProcess"></div>
|
|
|
+ <input type="hidden" name="scoreProcess" value="${wkQualityImprovementRecord.scoreProcess}"/>
|
|
|
+ </div>
|
|
|
+ <div class="layui-item layui-col-sm8 with-textarea">
|
|
|
+ <label class="layui-form-label"><span class="require-item">*</span>目标措施:</label>
|
|
|
+ <div class="layui-input-block">
|
|
|
+ <form:textarea path="planProcess" htmlEscape="false" rows="3" placeholder="一年内希望达到的水平及具体行动措施" maxlength="500" class="form-control"/>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- (二)数字化与办公能力提升 -->
|
|
|
+ <div class="section-title">(二)数字化与办公能力提升</div>
|
|
|
+ <div class="form-section">
|
|
|
+ <div class="score-row">
|
|
|
+ <div class="score-title">1. CCPM系统全流程操作</div>
|
|
|
+ <div class="layui-row">
|
|
|
+ <div class="layui-item layui-col-sm4">
|
|
|
+ <label class="layui-form-label double-line"><span class="require-item">*</span>当前水平评分:</label>
|
|
|
+ <div class="layui-input-block" id="scoreCcpm"></div>
|
|
|
+ <input type="hidden" name="scoreCcpm" value="${wkQualityImprovementRecord.scoreCcpm}"/>
|
|
|
+ </div>
|
|
|
+ <div class="layui-item layui-col-sm8 with-textarea">
|
|
|
+ <label class="layui-form-label"><span class="require-item">*</span>目标措施:</label>
|
|
|
+ <div class="layui-input-block">
|
|
|
+ <form:textarea path="planCcpm" htmlEscape="false" rows="3" placeholder="一年内希望达到的水平及具体行动措施" maxlength="500" class="form-control"/>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="score-row">
|
|
|
+ <div class="score-title">2. 广联达/未来/博威等软件</div>
|
|
|
+ <div class="layui-row">
|
|
|
+ <div class="layui-item layui-col-sm4">
|
|
|
+ <label class="layui-form-label double-line"><span class="require-item">*</span>当前水平评分:</label>
|
|
|
+ <div class="layui-input-block" id="scoreSoftware"></div>
|
|
|
+ <input type="hidden" name="scoreSoftware" value="${wkQualityImprovementRecord.scoreSoftware}"/>
|
|
|
+ </div>
|
|
|
+ <div class="layui-item layui-col-sm8 with-textarea">
|
|
|
+ <label class="layui-form-label"><span class="require-item">*</span>目标措施:</label>
|
|
|
+ <div class="layui-input-block">
|
|
|
+ <form:textarea path="planSoftware" htmlEscape="false" rows="3" placeholder="一年内希望达到的水平及具体行动措施" maxlength="500" class="form-control"/>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="score-row">
|
|
|
+ <div class="score-title">3. AI辅助工具应用</div>
|
|
|
+ <div class="layui-row">
|
|
|
+ <div class="layui-item layui-col-sm4">
|
|
|
+ <label class="layui-form-label double-line"><span class="require-item">*</span>当前水平评分:</label>
|
|
|
+ <div class="layui-input-block" id="scoreAi"></div>
|
|
|
+ <input type="hidden" name="scoreAi" value="${wkQualityImprovementRecord.scoreAi}"/>
|
|
|
+ </div>
|
|
|
+ <div class="layui-item layui-col-sm8 with-textarea">
|
|
|
+ <label class="layui-form-label"><span class="require-item">*</span>目标措施:</label>
|
|
|
+ <div class="layui-input-block">
|
|
|
+ <form:textarea path="planAi" htmlEscape="false" rows="3" placeholder="一年内希望达到的水平及具体行动措施" maxlength="500" class="form-control"/>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- (三)学习考证与知识更新 -->
|
|
|
+ <div class="section-title">(三)学习考证与知识更新</div>
|
|
|
+ <div class="form-section">
|
|
|
+ <table class="cert-table">
|
|
|
+ <tr>
|
|
|
+ <th style="width:20%;">项目</th>
|
|
|
+ <th style="width:25%;">目标/状态</th>
|
|
|
+ <th style="width:35%;">具体计划</th>
|
|
|
+ <th style="width:20%;">完成时限</th>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td><span class="require-item">*</span>一级/二级造价工程师</td>
|
|
|
+ <td>
|
|
|
+ <form:select path="engineerStatus" class="form-control">
|
|
|
+ <form:option value="" label="请选择"/>
|
|
|
+ <c:forEach items="${fns:getDictList('engineer_status')}" var="dict">
|
|
|
+ <form:option value="${dict.value}" label="${dict.label}"/>
|
|
|
+ </c:forEach>
|
|
|
+ </form:select>
|
|
|
+ </td>
|
|
|
+ <td><form:input path="engineerPlan" htmlEscape="false" placeholder="具体计划" maxlength="200" class="form-control layui-input"/></td>
|
|
|
+ <td><form:input path="engineerDeadline" htmlEscape="false" placeholder="完成时限" maxlength="50" class="form-control layui-input"/></td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td><span class="require-item">*</span>年度培训计划</td>
|
|
|
+ <td>
|
|
|
+ <form:select path="trainingTypes" class="form-control">
|
|
|
+ <form:option value="" label="请选择"/>
|
|
|
+ <c:forEach items="${fns:getDictList('training_type')}" var="dict">
|
|
|
+ <form:option value="${dict.value}" label="${dict.label}"/>
|
|
|
+ </c:forEach>
|
|
|
+ </form:select>
|
|
|
+ </td>
|
|
|
+ <td><form:input path="trainingDirection" htmlEscape="false" placeholder="可列出想培训的方向" maxlength="200" class="form-control layui-input"/></td>
|
|
|
+ <td><form:input path="trainingDeadline" htmlEscape="false" placeholder="完成时限" maxlength="50" class="form-control layui-input"/></td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td><span class="require-item">*</span>清单/定额/新规的掌握</td>
|
|
|
+ <td>
|
|
|
+ <form:select path="regulationLevel" class="form-control">
|
|
|
+ <form:option value="" label="请选择"/>
|
|
|
+ <c:forEach items="${fns:getDictList('regulation_level')}" var="dict">
|
|
|
+ <form:option value="${dict.value}" label="${dict.label}"/>
|
|
|
+ </c:forEach>
|
|
|
+ </form:select>
|
|
|
+ </td>
|
|
|
+ <td></td>
|
|
|
+ <td><form:input path="regulationDeadline" htmlEscape="false" placeholder="完成时限" maxlength="50" class="form-control layui-input"/></td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td><span class="require-item">*</span>输出/分享</td>
|
|
|
+ <td>
|
|
|
+ <div class="layui-row">
|
|
|
+ <div class="layui-col-sm4">
|
|
|
+ <label class="layui-form-label" style="width:auto;">案例(篇):</label>
|
|
|
+ <form:input path="caseCount" htmlEscape="false" type="number" min="0" class="form-control layui-input" style="width:60px;display:inline;"/>
|
|
|
+ </div>
|
|
|
+ <div class="layui-col-sm4">
|
|
|
+ <label class="layui-form-label" style="width:auto;">心得(篇):</label>
|
|
|
+ <form:input path="insightCount" htmlEscape="false" type="number" min="0" class="form-control layui-input" style="width:60px;display:inline;"/>
|
|
|
+ </div>
|
|
|
+ <div class="layui-col-sm4">
|
|
|
+ <label class="layui-form-label" style="width:auto;">论文(篇):</label>
|
|
|
+ <form:input path="paperCount" htmlEscape="false" type="number" min="0" class="form-control layui-input" style="width:60px;display:inline;"/>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </td>
|
|
|
+ <td><form:input path="outputDifficulty" htmlEscape="false" placeholder="输出困难说明" maxlength="200" class="form-control layui-input"/></td>
|
|
|
+ <td><form:input path="outputDeadline" htmlEscape="false" placeholder="完成时限" maxlength="50" class="form-control layui-input"/></td>
|
|
|
+ </tr>
|
|
|
+ </table>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- (四)沟通服务与业务开拓能力提升 -->
|
|
|
+ <div class="section-title">(四)沟通服务与业务开拓能力提升</div>
|
|
|
+ <div class="form-section">
|
|
|
+ <div class="score-row">
|
|
|
+ <div class="score-title">1. 与甲方/施工单位沟通</div>
|
|
|
+ <div class="layui-row">
|
|
|
+ <div class="layui-item layui-col-sm4">
|
|
|
+ <label class="layui-form-label double-line"><span class="require-item">*</span>当前水平评分:</label>
|
|
|
+ <div class="layui-input-block" id="scoreCommClient"></div>
|
|
|
+ <input type="hidden" name="scoreCommClient" value="${wkQualityImprovementRecord.scoreCommClient}"/>
|
|
|
+ </div>
|
|
|
+ <div class="layui-item layui-col-sm8 with-textarea">
|
|
|
+ <label class="layui-form-label"><span class="require-item">*</span>目标措施:</label>
|
|
|
+ <div class="layui-input-block">
|
|
|
+ <form:textarea path="planCommClient" htmlEscape="false" rows="3" placeholder="一年内希望达到的水平及具体行动措施" maxlength="500" class="form-control"/>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="score-row">
|
|
|
+ <div class="score-title">2. 书面表达/底稿/报告撰写</div>
|
|
|
+ <div class="layui-row">
|
|
|
+ <div class="layui-item layui-col-sm4">
|
|
|
+ <label class="layui-form-label double-line"><span class="require-item">*</span>当前水平评分:</label>
|
|
|
+ <div class="layui-input-block" id="scoreCommWriting"></div>
|
|
|
+ <input type="hidden" name="scoreCommWriting" value="${wkQualityImprovementRecord.scoreCommWriting}"/>
|
|
|
+ </div>
|
|
|
+ <div class="layui-item layui-col-sm8 with-textarea">
|
|
|
+ <label class="layui-form-label"><span class="require-item">*</span>目标措施:</label>
|
|
|
+ <div class="layui-input-block">
|
|
|
+ <form:textarea path="planCommWriting" htmlEscape="false" rows="3" placeholder="一年内希望达到的水平及具体行动措施" maxlength="500" class="form-control"/>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="score-row">
|
|
|
+ <div class="score-title">3. 客户需求响应与关系维护</div>
|
|
|
+ <div class="layui-row">
|
|
|
+ <div class="layui-item layui-col-sm4">
|
|
|
+ <label class="layui-form-label double-line"><span class="require-item">*</span>当前水平评分:</label>
|
|
|
+ <div class="layui-input-block" id="scoreCommResponse"></div>
|
|
|
+ <input type="hidden" name="scoreCommResponse" value="${wkQualityImprovementRecord.scoreCommResponse}"/>
|
|
|
+ </div>
|
|
|
+ <div class="layui-item layui-col-sm8 with-textarea">
|
|
|
+ <label class="layui-form-label"><span class="require-item">*</span>目标措施:</label>
|
|
|
+ <div class="layui-input-block">
|
|
|
+ <form:textarea path="planCommResponse" htmlEscape="false" rows="3" placeholder="一年内希望达到的水平及具体行动措施" maxlength="500" class="form-control"/>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="score-row">
|
|
|
+ <div class="score-title">4. 跨专业(财务/评估/税务)贯通</div>
|
|
|
+ <div class="layui-row">
|
|
|
+ <div class="layui-item layui-col-sm4">
|
|
|
+ <label class="layui-form-label double-line"><span class="require-item">*</span>当前水平评分:</label>
|
|
|
+ <div class="layui-input-block" id="scoreCommCross"></div>
|
|
|
+ <input type="hidden" name="scoreCommCross" value="${wkQualityImprovementRecord.scoreCommCross}"/>
|
|
|
+ </div>
|
|
|
+ <div class="layui-item layui-col-sm8 with-textarea">
|
|
|
+ <label class="layui-form-label"><span class="require-item">*</span>目标措施:</label>
|
|
|
+ <div class="layui-input-block">
|
|
|
+ <form:textarea path="planCommCross" htmlEscape="false" rows="3" placeholder="一年内希望达到的水平及具体行动措施" maxlength="500" class="form-control"/>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="score-row">
|
|
|
+ <div class="score-title">5. 主动开拓/洽谈业务能力</div>
|
|
|
+ <div class="layui-row">
|
|
|
+ <div class="layui-item layui-col-sm4">
|
|
|
+ <label class="layui-form-label double-line"><span class="require-item">*</span>当前水平评分:</label>
|
|
|
+ <div class="layui-input-block" id="scoreCommExpand"></div>
|
|
|
+ <input type="hidden" name="scoreCommExpand" value="${wkQualityImprovementRecord.scoreCommExpand}"/>
|
|
|
+ </div>
|
|
|
+ <div class="layui-item layui-col-sm8 with-textarea">
|
|
|
+ <label class="layui-form-label"><span class="require-item">*</span>目标措施:</label>
|
|
|
+ <div class="layui-input-block">
|
|
|
+ <form:textarea path="planCommExpand" htmlEscape="false" rows="3" placeholder="一年内希望达到的水平及具体行动措施" maxlength="500" class="form-control"/>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- 核心优势 -->
|
|
|
+ <div class="section-title">"我靠什么赢得客户信任"——核心优势与提升思路</div>
|
|
|
+ <div class="form-section">
|
|
|
+ <div class="layui-row">
|
|
|
+ <div class="layui-item layui-col-sm12 with-textarea">
|
|
|
+ <label class="layui-form-label double-line"><span class="require-item">*</span>核心优势与提升思路:</label>
|
|
|
+ <div class="layui-input-block">
|
|
|
+ <form:textarea path="coreAdvantage" htmlEscape="false" rows="4" placeholder="请描述您的核心优势以及未来的提升思路" maxlength="1000" class="form-control"/>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="form-group layui-row page-end"></div>
|
|
|
+ </form:form>
|
|
|
+ </div>
|
|
|
+</div>
|
|
|
+</body>
|
|
|
+</html>
|