|
@@ -0,0 +1,5769 @@
|
|
|
+/*
|
|
|
+ *description : 单人评分
|
|
|
+ *author :caiwei_li
|
|
|
+ *date :2017/08/01
|
|
|
+*/
|
|
|
+var isAutoSubmitVal,hideUnselfWholeGrade,hideUnselfWholeScore,hideReviseResultVal,hideUnselfScore,hideHandlerWeight,hideReviseReasonVal,hideUnselfScoring,hideUnselfWholeGrading,hideUnselfWholeScoring
|
|
|
+ ,hideUnselfWholeCommenting; //参数配置
|
|
|
+var hideNodeWeight= "true";
|
|
|
+var globalPersonBaseData = null; //员工
|
|
|
+var evaObj = null; //当前评估对象id
|
|
|
+var periodId = null; //当前评估对象所在考核周期id
|
|
|
+var personId = null; //当前登录用户对应的员工id
|
|
|
+var personNumber = null; //当前评估对象对应的职员编码
|
|
|
+var showfieldnum = 5; //员工信息区域默认显示6个字段
|
|
|
+var isShowAuditedWholeForm = 0; //我已处理的评分 已评分列表-是否允许查看后续已审核节点评分详情
|
|
|
+var entryType = null; //标志是从哪里进入评分页面:myselfEvalu-我的考核自评
|
|
|
+var that = null;
|
|
|
+var globalIndicatorData = null; //指标数据
|
|
|
+var CREATE_INDICATOR = 1; //1:创建指标明细
|
|
|
+var SWITCH_INDICATOR = 0; //0:切换指标明细
|
|
|
+
|
|
|
+var currentNum = 0;
|
|
|
+var curIndecatorType = null; //当前指标类型
|
|
|
+var currentNodeLevel = 1; //当前节点层级
|
|
|
+var gradeTaskNode = ''; //当前节点运行实例id
|
|
|
+var scoreStatus = ''; //节点评分状态
|
|
|
+
|
|
|
+var _gscoreOrRate = 0; //评分还是打等级[0:评分;1:打等级]
|
|
|
+var _glowLimit = 0; //分数下限
|
|
|
+var _gupLimit = 0; //分数上限
|
|
|
+var _overRang ; //超过分数上限
|
|
|
+var _ftarscore = 0; //超过分数上限
|
|
|
+var _gcanNegative = 0; //可否打负分[0:不可;1:可以]
|
|
|
+var _gcanRate = 0; //是否可以评分[0:不可;1:可以]
|
|
|
+var _gcanOverRang = 0; //是否允许评分超出分制范围[0:不可;1:可以]
|
|
|
+
|
|
|
+var _needScore = 0; //是否允许评分
|
|
|
+var _wholeComment = 0; //整体评语是否必录
|
|
|
+var _perfGradeEvaluate = 0; //是否允许打等级
|
|
|
+var isShowDistribution = '0'; // 是否显示正态分布
|
|
|
+var _indicatorComment = 0; //是否必须打等级
|
|
|
+
|
|
|
+var _noPassVerifyArr = new Array(); //评分校验信息数组
|
|
|
+var _gcanSaveFlag = true; //评分是否通过校验的标识
|
|
|
+var isFirstInit = 0; //第一条指标初始化标志
|
|
|
+var handleName; //当前登陆人姓名
|
|
|
+var nodeSumScore = 0; //当前节点总分
|
|
|
+var nodeGrade = ""; //当前节点等级
|
|
|
+
|
|
|
+var spreadothersFlag = false; //是否默认展开他人评分
|
|
|
+var selectedIndicatorId = ''; //当前点击的指标的id
|
|
|
+var _clicked = false;
|
|
|
+var pageSource = "";//标注请求的来源、EVALUCARDVIEV:请求为考核卡界面请求
|
|
|
+var personName = '';
|
|
|
+var myType = "INIT";
|
|
|
+var viewMode = ""; //用于做扩展业务处理,目前用户已发送列表查看评估表
|
|
|
+
|
|
|
+var rows = 8; //左侧列表默认显示8条数据
|
|
|
+var page = 1; //默认第一页
|
|
|
+var isPageInit = 1;
|
|
|
+var initGradeTaskNode = '';
|
|
|
+var currentIsShowWholeGrade = 0; //当前处理人是否能打整体评价
|
|
|
+var isShowHandlerWeight = 1; //是否展示处理人的权重
|
|
|
+var isTeamEvalu = 0; //是否团队目标评分[0:否;1:是]
|
|
|
+
|
|
|
+//yien 20191122 天虹私包
|
|
|
+var isShowLevelScoreRange = 1; //是否显示等级的分数范围
|
|
|
+var isManualJudgeGrade = 0; //是否手工调整体等级
|
|
|
+var rateIsAutoCaluWholeGrade = 0; //打等级时是否自动计算整体评价等级【0:不自动计算;1:自动计算】 注:不再使用,使用isManualJudgeGrade一个参数控制
|
|
|
+
|
|
|
+var _gExistRejection = 0; //是否存在否决项
|
|
|
+var isEditGradesChange = 0; //是否手工选了整体评价等级
|
|
|
+var isModifyScore = 0; //是否有修改过指标得分
|
|
|
+
|
|
|
+var submitMsg = null; //提交打分时后台组装的提示信息
|
|
|
+var submitNodeGrade = null; //提交时等级
|
|
|
+var submitNodeSumScore = null; //提交时节点总分
|
|
|
+var errorType = ['0', '1']; //[0:指标得分;1:指标评语]
|
|
|
+var evaResultId = "";
|
|
|
+var hideConfirmResult = false;
|
|
|
+var hideAppealResult = false;
|
|
|
+var hideConfirmResultVal = "";
|
|
|
+var hideAppealResultVal = "";
|
|
|
+var isAudited = false; //是否已审核
|
|
|
+var showAttachsOnly = false; // 是否仅显示上传附件但不允许上传
|
|
|
+
|
|
|
+var _gneedScoreArr = new Array(); //评分参数数组
|
|
|
+var isInitLeftListCompleted = 0; //左侧评估对象列表是否已加载
|
|
|
+var personalScoreSearchIdList = "";
|
|
|
+var sourcePeriod = null; //团队目标评分传入的周期id
|
|
|
+var _gneedScoreArr = new Array(); //评分参数数组
|
|
|
+var _wholeCommentIsMustArr = new Array(); //整体评价是否必录-支持矩阵
|
|
|
+var fromPage;
|
|
|
+var _gRadio = null;
|
|
|
+
|
|
|
+var gradeOption = [] // 等级下拉框option
|
|
|
+
|
|
|
+var canEditTable = true; // 默认表格可以编辑
|
|
|
+var lastTable = '';
|
|
|
+var lastrow = '';
|
|
|
+var lastcell = '';
|
|
|
+
|
|
|
+var scoreparams = null; //指标评分参数
|
|
|
+// 组织考核标识
|
|
|
+var isOrg = "0";
|
|
|
+var uploadAttachSize=10; //附件上传大小
|
|
|
+
|
|
|
+//yien:合并打分节点的任务实例
|
|
|
+var combineGradeTaskIds = [];
|
|
|
+
|
|
|
+// 新增校验信息记录对象,用于提交时校验字段必填
|
|
|
+var globalErrorMsg = [];
|
|
|
+
|
|
|
+var interviewData = {}; //补丁18
|
|
|
+shr.defineClass("shr.perfweb.perfscoreNew", shr.framework.List, {
|
|
|
+ targetBillIdMap: {}, //暂存目标流程单据
|
|
|
+ fixedboxWidth: '',
|
|
|
+ initalizeDOM: function () {
|
|
|
+ var defaultPage = this.initData.scoreDefaultPage;
|
|
|
+ if(defaultPage == 'overview'){
|
|
|
+ this.initCurrentPageByConfig();
|
|
|
+ }
|
|
|
+ // 初始化JS环境
|
|
|
+ it = this;
|
|
|
+ that = this;
|
|
|
+ shr.perfweb.perfscoreNew.superClass.initalizeDOM.call(this);
|
|
|
+
|
|
|
+ evaObj = shr.getUrlRequestParam("evaObj");
|
|
|
+ periodId = shr.getUrlRequestParam("periodId");
|
|
|
+ sourcePeriod = periodId;
|
|
|
+ personId = shr.getUrlRequestParam("personId");
|
|
|
+ personNumber = shr.getUrlRequestParam("personNumber");
|
|
|
+ entryType = shr.getUrlRequestParam("entryType");
|
|
|
+ pageSource = shr.getUrlRequestParam("pageSource");
|
|
|
+ personName = shr.getUrlRequestParam("personName");
|
|
|
+ viewMode = shr.getUrlRequestParam("viewMode");
|
|
|
+ initGradeTaskNode = gradeTaskNode = shr.getUrlRequestParam("gradeTaskNode");
|
|
|
+ personalScoreSearchIdList = shr.getUrlRequestParam("personalScoreSearchIdList");
|
|
|
+ fromPage = shr.getUrlRequestParam("fromPage");
|
|
|
+
|
|
|
+ // hideConfirmResultVal = $("#hideConfirmResult").text();
|
|
|
+ // hideAppealResultVal = $("#hideAppealResult").text();
|
|
|
+ var reqRows = shr.getUrlRequestParam("rows");
|
|
|
+ if(null != reqRows && reqRows != undefined){
|
|
|
+ rows = reqRows;
|
|
|
+ }
|
|
|
+ var reqPage = shr.getUrlRequestParam("page");
|
|
|
+ if(null != reqPage && reqPage != undefined){
|
|
|
+ page = reqPage;
|
|
|
+ }
|
|
|
+ this.initConfigData();//初始化参数配置
|
|
|
+
|
|
|
+ //代码还原-yien
|
|
|
+ that.bindGridScoreInputBlurEvent();
|
|
|
+
|
|
|
+ //yien 20191122 天虹私包
|
|
|
+ that.initCustomParamList();
|
|
|
+
|
|
|
+ //获取页面自定义参数,是否展示处理人权重
|
|
|
+ if (hideNodeWeight == 'true') {
|
|
|
+ isShowHandlerWeight = 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(entryType == 'myview'){
|
|
|
+ // currentNodeLevel = shr.getUrlRequestParam("wfLevel");
|
|
|
+ // gradeTaskNode = shr.getUrlRequestParam("gradeTaskNode");
|
|
|
+ // it.initRightContent();//右侧内容
|
|
|
+ // it.initPersonalInformation(); //评估对象个人信息
|
|
|
+
|
|
|
+ it.initLeftList();//左侧列表
|
|
|
+ isInitLeftListCompleted = 1;
|
|
|
+ $(".content_left").remove();
|
|
|
+ $('#saveScore, #submitScore').hide();
|
|
|
+
|
|
|
+ $('.content_right').css({
|
|
|
+ 'width': '100%',
|
|
|
+ 'margin-right': '0'
|
|
|
+ });
|
|
|
+
|
|
|
+ } else if (entryType == 'myselfEvalu') {//个人目标评分入口
|
|
|
+ currentNodeLevel = shr.getUrlRequestParam("wfLevel");
|
|
|
+ gradeTaskNode = shr.getUrlRequestParam("gradeTaskNode");
|
|
|
+ it.initRightContent();//右侧内容
|
|
|
+ // it.initPersonalInformation(); //评估对象个人信息
|
|
|
+ $('.content_right').css({
|
|
|
+ 'width': '100%',
|
|
|
+ 'margin-right': '0'
|
|
|
+ });
|
|
|
+ } else if (entryType == 'viewMyScoreForm') {//查看我参与评分的界面;
|
|
|
+ if(isShowAuditedWholeForm == 'true'){
|
|
|
+ isShowAuditedWholeForm = 1;
|
|
|
+ }
|
|
|
+ canEditTable = false;
|
|
|
+ // 考核结果表单允许查看附件,隐藏上传按钮 2019-09-03 liuzw
|
|
|
+ showAttachsOnly = true;
|
|
|
+ myType = "VIEW";
|
|
|
+ currentNodeLevel = '2';// shr.getUrlRequestParam("wfLevel");
|
|
|
+ gradeTaskNode = shr.getUrlRequestParam("gradeTaskNode");
|
|
|
+ it.initRightContent();//右侧内容
|
|
|
+ // it.initPersonalInformation(); //评估对象个人信息
|
|
|
+ $('.content_right').css({
|
|
|
+ 'width': '100%',
|
|
|
+ 'margin-right': '0'
|
|
|
+ });
|
|
|
+
|
|
|
+ $('#processView').hide();
|
|
|
+ $('#perfHistory').hide();
|
|
|
+ $('#backTo').hide();
|
|
|
+ $('#backtoRema').hide();
|
|
|
+ $('#saveScore').hide();
|
|
|
+ $('#saveScore, #submitScore, .view_manager_header').hide();
|
|
|
+
|
|
|
+ //BT1394720 (Q:之前为什么要隐藏?)
|
|
|
+ // $('#attachments').hide();
|
|
|
+ $('#submitScore').hide();
|
|
|
+ // $('.workInfoWrap').append($('<span id="sumScoreShow" style="margin-left:'+$('.informationBox').offset().left - 40+'px">考核成绩:<span id="sumscore"/><span id="gradeLevel" style="margin-left:10px" /></span>'));
|
|
|
+// $('#controlBtns').prepend($('<span id="sumScoreShow">考核成绩:<span id="sumscore" style="margin-left:10px"/><span id="gradeLevel" style="margin-left:10px" /></span>'));
|
|
|
+
|
|
|
+ //屏蔽指标上的分数
|
|
|
+ $('span[name="indeicatorScore"]').hide();
|
|
|
+ $('span[name="scoreLable"]').hide();
|
|
|
+ $('.informationBox li:gt(' + showfieldnum + ')').hide();
|
|
|
+
|
|
|
+ //获取考核成绩
|
|
|
+ // that.remoteCall({
|
|
|
+ // method: "getEvaReuslt",
|
|
|
+ // param: {
|
|
|
+ // evaObj : evaObj
|
|
|
+ // },
|
|
|
+ // async: false,
|
|
|
+ // success: function (data) {
|
|
|
+ // if (data != null) {
|
|
|
+ // if(data.sumscore != null && data.sumscore != undefined){
|
|
|
+ // $('#sumscore').text(data.sumscore);
|
|
|
+ // }
|
|
|
+ // if(data.gradeLevel != null && data.gradeLevel != undefined){
|
|
|
+ // $('#gradeLevel').text(data.gradeLevel);
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // });
|
|
|
+ //he_tao 查看评分界面,所有输入框不可编辑
|
|
|
+// $("input").attr("disabled", "disabled"); //所有输入框不可编辑
|
|
|
+// $("textarea").attr("disabled", "disabled"); //所有输入框不可编辑
|
|
|
+ } else if (entryType == 'viewEvaForm') {//查看评估表;
|
|
|
+ canEditTable = false;
|
|
|
+ // 考核结果表单允许查看附件,隐藏上传按钮 2019-09-03 liuzw
|
|
|
+ showAttachsOnly = true;
|
|
|
+
|
|
|
+ var perfPlan = shr.getUrlRequestParam("planId");
|
|
|
+ var planName = shr.getUrlRequestParam("planName");
|
|
|
+ isAudited = true;
|
|
|
+
|
|
|
+ //设置自己的面包屑
|
|
|
+ if (pageSource != undefined && pageSource == "EVALUCARDVIEV" && isOrg == "0") {//考核卡的面包屑
|
|
|
+ setTimeout(function () {
|
|
|
+ var nvgStr = '<li class="homepage"><a href="' + shr.getContextPath() + '/home.do" target="_parent">homepage</a></li><li><a id="perf_person_evalcard" href="#">'+
|
|
|
+ jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_23+
|
|
|
+ '</a><span class="divider">/</span></li>'
|
|
|
+ + '<li><a id="perfEvalCardPerson" href="#">' + personName + '</a><span class="divider">/</span></li>'
|
|
|
+ +'<li class="active">'+
|
|
|
+ jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_27+
|
|
|
+ '</li>';
|
|
|
+
|
|
|
+ $("#breadcrumb").children().remove();
|
|
|
+ $("#breadcrumb").append($(nvgStr));
|
|
|
+ $('#perf_person_evalcard').click(function () {
|
|
|
+ that.reloadPage({
|
|
|
+ uipk: 'com.kingdee.shr.perfweb.app.evalu.evalucard.list',
|
|
|
+ serviceId: 'KAuskY/8RUGXUtikP5TmRPI9KRA=',
|
|
|
+ inFrame: "true"
|
|
|
+ })
|
|
|
+
|
|
|
+
|
|
|
+ });
|
|
|
+ $('#perfEvalCardPerson').click(function () {
|
|
|
+ that.reloadPage({
|
|
|
+ uipk: 'com.kingdee.shr.perfweb.app.evalu.evalucard',
|
|
|
+ serviceId: 'KAuskY/8RUGXUtikP5TmRPI9KRA=',
|
|
|
+ inFrame: "true",
|
|
|
+ type: 'VIEW',
|
|
|
+ personId: personId,
|
|
|
+ pageSource: 'EVALUCARDVIEV'
|
|
|
+ })
|
|
|
+
|
|
|
+ });
|
|
|
+ $("#breadcrumb").attr("style", "display: block;");
|
|
|
+ }, 500);
|
|
|
+ // 组织绩效考核卡
|
|
|
+ }else if(pageSource != undefined && pageSource == "EVALUCARDVIEV" && isOrg == "1"){
|
|
|
+ setTimeout(function() {
|
|
|
+ //var nvgStr = '<li class="homepage"><a href="' + shr.getContextPath() + '/home.do" target="_parent">homepage</a> </li><li><a id="perf_org_evalcard" href="#">绩效考核卡</a><span class="divider">/</span></li>'
|
|
|
+ var nvgStr = '<li class="homepage"><a href="' + shr.getContextPath() + '/home.do" target="_parent">homepage</a> </li><li><a id="perf_org_evalcard" href="#">'+jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_23+'</a><span class="divider">/</span></li>'
|
|
|
+ +'<li><a id="perfEvalCardOrg" href="#">' +adminOrgName+ '</a><span class="divider">/</span></li>'
|
|
|
+ //+'<li class="active">考核结果</li>';
|
|
|
+ +'<li class="active">'+jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_27+'</li>';
|
|
|
+
|
|
|
+ $("#breadcrumb").children().remove();
|
|
|
+ $("#breadcrumb").append($(nvgStr));
|
|
|
+ $('#perf_org_evalcard').click(function(){
|
|
|
+ that.reloadPage({
|
|
|
+ uipk: 'com.kingdee.shr.perfweb.app.evalu.ORGevalucard.list',
|
|
|
+ serviceId:'KAuskY/8RUGXUtikP5TmRPI9KRA=',
|
|
|
+ inFrame:"true"
|
|
|
+ })
|
|
|
+
|
|
|
+
|
|
|
+ });
|
|
|
+ $('#perfEvalCardOrg').click(function(){
|
|
|
+ that.reloadPage({
|
|
|
+ uipk: 'com.kingdee.shr.perfweb.app.evalu.ORGevalucard',
|
|
|
+ serviceId:'KAuskY/8RUGXUtikP5TmRPI9KRA=',
|
|
|
+ inFrame:"true",
|
|
|
+ type:'VIEW',
|
|
|
+ adminOrgid:adminOrgId,
|
|
|
+ pageSource:'EVALUCARDVIEV'
|
|
|
+ })
|
|
|
+
|
|
|
+ });
|
|
|
+ $("#breadcrumb").attr("style","display: block;");
|
|
|
+ }, 500);
|
|
|
+ } else if (pageSource != undefined && pageSource == "PERSONHISTORY") {//个人历史
|
|
|
+
|
|
|
+ setTimeout(function () {
|
|
|
+ var nvgStr =
|
|
|
+ // '<li><a id="evaPlanExecuteList" href="#">我的考核结果</a><span class="divider">/</span></li>';
|
|
|
+ // +'<li><a id="evaPlanExecution" href="#">' +personName+ '</a><span class="divider">/</span></li>'
|
|
|
+ '<li class="homepage"><a href="' + shr.getContextPath() + '/home.do" target="_parent">homepage</a></li><li class="active">'+
|
|
|
+ jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_27+
|
|
|
+ '</li>';
|
|
|
+
|
|
|
+ $("#breadcrumb").children().remove();
|
|
|
+ $("#breadcrumb").append($(nvgStr));
|
|
|
+ $("#breadcrumb").attr("style", "display: block;");
|
|
|
+// $('.switchbutton').css('top', 0);
|
|
|
+ }, 500);
|
|
|
+
|
|
|
+ // if (hideConfirmResultVal == 'true') {
|
|
|
+ // hideConfirmResult = true;
|
|
|
+ // }
|
|
|
+ // if (hideAppealResultVal == 'true') {
|
|
|
+ // hideAppealResult = true;
|
|
|
+ // }
|
|
|
+
|
|
|
+ } else if (pageSource != undefined && pageSource == "GROUPHISTORY") {//组织历史
|
|
|
+ setTimeout(function () {
|
|
|
+ var perfPortalUrl = shr.getContextPath()
|
|
|
+ + '/dynamic.do?uipk=com.kingdee.shr.perfweb.app.perfportal.core&inFrame=true&fromHeader=true&serviceId=fUjSqQK1RouZaEJUI2jH5vI9KRA%3D';
|
|
|
+
|
|
|
+ var nvgStr = '<li class="homepage"><a href="' + perfPortalUrl + '" target="_parent">homepage</a><span class="divider">/</span> </li>'
|
|
|
+ + '<li><a id="personalEvaCard" href="#">'+
|
|
|
+ jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_9+
|
|
|
+ '</a><span class="divider">/</span></li><li class="active">'+
|
|
|
+ jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_27+
|
|
|
+ '</li>';
|
|
|
+ $("#breadcrumb").children().remove();
|
|
|
+ $("#breadcrumb").append($(nvgStr));
|
|
|
+ $('#personalEvaCard').click(function () {
|
|
|
+ that.reloadPage({
|
|
|
+ uipk: "com.kingdee.shr.perfweb.app.evalu.evalucard",
|
|
|
+ personId: personId,
|
|
|
+ pageSource: "GROUPHISTORY",
|
|
|
+ type: "VIEW"
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ }, 500);
|
|
|
+ } else{//默认的面包屑
|
|
|
+ var breadcrumb = $('#breadcrumb').shrBreadcrumb();
|
|
|
+ breadcrumb.shrBreadcrumb('pop');
|
|
|
+ breadcrumb.shrBreadcrumb('addItem', {name:
|
|
|
+ shr.formatMsg(jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_1,
|
|
|
+ [planName])});
|
|
|
+
|
|
|
+ isAudited = shr.getUrlRequestParam("isAudited");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ currentNodeLevel = "";
|
|
|
+ gradeTaskNode = "";
|
|
|
+ it.initRightContent();//右侧内容
|
|
|
+ // it.initPersonalInformation(); //评估对象个人信息
|
|
|
+ $('.content_right').css({
|
|
|
+ 'width': '100%',
|
|
|
+ 'margin-right': '0'
|
|
|
+ });
|
|
|
+
|
|
|
+ $('#processView').hide();
|
|
|
+ $('#perfHistory').hide();
|
|
|
+ $('#backTo').hide();
|
|
|
+ $('#backtoRema').hide();
|
|
|
+ $('#saveScore').hide();
|
|
|
+ $('#saveScore, #submitScore').hide();
|
|
|
+ //面谈
|
|
|
+ var interview = shr.getUrlRequestParam("interview");
|
|
|
+ // BT1440954-组织考核不显示“绩效面谈”按钮 modified by Janeou_xie
|
|
|
+ if (interview == 1 && isOrg == '0') {
|
|
|
+ $('#summaryInterview').show();
|
|
|
+ }
|
|
|
+ //BT1394720 (Q:之前为什么要隐藏?)
|
|
|
+ // $('#attachments').hide();
|
|
|
+ $('#submitScore').hide();
|
|
|
+ // var offsetleft = $('.informationBox').offset().left - $('.content_right').offset().left - 40;
|
|
|
+ var boxwidth = $('.workPhoto').length > 0 ? 27.84 : 32;
|
|
|
+ // $('.controlBtns').hide();
|
|
|
+ //$('.workInfo').append($('<span id="sumScoreShow">考核成绩:<span id="sumscore"/><span id="gradeLevel" style="margin-left:10px" /></span>'));
|
|
|
+ //$('.workInfo').append($('<span id="sumScoreShow">'+jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_25+'<span id="sumscore"/><span id="gradeLevel" style="margin-left:10px" /></span>'));
|
|
|
+ // $('.workInfo').append($('<span id="sumScoreShow" style="margin-left:' + (offsetleft) + 'px;width:'+boxwidth+'%">'+
|
|
|
+ $('.info-result-box').append($('<span id="sumScoreShow">'+
|
|
|
+ jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_25+
|
|
|
+ '<span id="sumscore"/></span><span id="gradeLevel" style="margin-left:10px" />'));
|
|
|
+ // var hideReviseReasonVal = $("#hideReviseReason").text();
|
|
|
+ var hideReviseReason = false;
|
|
|
+ if (pageSource != undefined && pageSource == "PERSONHISTORY" && hideReviseReasonVal == 'true') {
|
|
|
+ hideReviseReason = true;
|
|
|
+ }
|
|
|
+ //增加修订原因
|
|
|
+ // BT1444170 查看评估表--列表模式,报错,上面考核成绩不显示,没有找到定义的地方,先默认为0
|
|
|
+ // var offsetleft = 0;
|
|
|
+ if (!hideReviseReason) {
|
|
|
+ $('.info-result-box').append($('<span id="reviseReasonSpan">'+
|
|
|
+ jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_50+
|
|
|
+ '<span id="reviseReason" title=""></span>'));
|
|
|
+ }
|
|
|
+
|
|
|
+ // var hideReviseResultVal = $("#hideReviseResult").text();
|
|
|
+ var hideReviseResult = false;
|
|
|
+ if (pageSource != undefined && pageSource == "PERSONHISTORY" && hideReviseResultVal == 'true') {
|
|
|
+ hideReviseResult = true;
|
|
|
+ }
|
|
|
+ // if($('.workPhoto').length < 1){
|
|
|
+ // $('#sumScoreShow').css('margin-left','1%');
|
|
|
+ // }
|
|
|
+
|
|
|
+ //屏蔽指标上的分数
|
|
|
+ $('span[name="indeicatorScore"]').hide();
|
|
|
+ $('span[name="scoreLable"]').hide();
|
|
|
+ $('.informationBox li:gt(' + showfieldnum + ')').hide();
|
|
|
+
|
|
|
+ //获取考核成绩
|
|
|
+ that.remoteCall({
|
|
|
+ method: "getEvaReuslt",
|
|
|
+ param: {
|
|
|
+ evaObj: evaObj,
|
|
|
+ isAudited: isAudited
|
|
|
+ },
|
|
|
+ async: false,
|
|
|
+ success: function (data) {
|
|
|
+ if (data != null) {
|
|
|
+ if (hideReviseResult) {
|
|
|
+ if (data.realSumscore != null && data.realSumscore != undefined) {
|
|
|
+ $('#sumscore').text(data.realSumscore);
|
|
|
+ }
|
|
|
+ if (data.realGradeLevel != null && data.realGradeLevel != undefined) {
|
|
|
+ $('#gradeLevel').text(data.realGradeLevel);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (data.sumscore != null && data.sumscore != undefined) {
|
|
|
+ $('#sumscore').text(data.sumscore);
|
|
|
+ }
|
|
|
+ if (data.gradeLevel != null && data.gradeLevel != undefined) {
|
|
|
+ $('#gradeLevel').text(data.gradeLevel);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (data.reviseReason != null && data.reviseReason != undefined) {
|
|
|
+ $('#reviseReason').text(data.reviseReason);
|
|
|
+ $('#reviseReason').attr('title', data.reviseReason);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (data.evaResultId) {
|
|
|
+ evaResultId = data.evaResultId;
|
|
|
+ // 屏蔽我的考核历史的结果确认和申诉按钮
|
|
|
+ if (data.needConfirm && !hideConfirmResult && pageSource != undefined && pageSource == "PERSONHISTORY" && fromPage == "RESULTCONFIRM") {
|
|
|
+ $('#confirmResult').show();
|
|
|
+ }else{
|
|
|
+ $('#confirmResult').hide();
|
|
|
+ }
|
|
|
+ if (data.allowAppeal && !hideAppealResult && pageSource != undefined && pageSource == "PERSONHISTORY" && fromPage == "RESULTCONFIRM") {
|
|
|
+ $('#appeal').show();
|
|
|
+ }else{
|
|
|
+ $('#appeal').hide();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ //补丁18 绩效面谈处理
|
|
|
+ that.dealInterviewForm();
|
|
|
+
|
|
|
+ } else {//团队目标评分入口
|
|
|
+ isTeamEvalu = 1;
|
|
|
+ it.initLeftList();//左侧列表
|
|
|
+ isInitLeftListCompleted = 1;
|
|
|
+ //切换列表后根据传入的节点实例id初始定位
|
|
|
+ if (isPageInit == 1) {
|
|
|
+ $("li[workerid='" + evaObj + "'][gradetasknode='" + initGradeTaskNode + "']").click();
|
|
|
+ } else {
|
|
|
+ $("li[workerid='" + evaObj + "'][gradetasknode='" + gradeTaskNode + "']").click();//指哪打哪
|
|
|
+ }
|
|
|
+
|
|
|
+ $('.view_manager_body').css('background', '#EDEFF4');
|
|
|
+ that.getDistributionInfo();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //第一节点隐藏"打回"按钮
|
|
|
+ if (currentNodeLevel == 1) {
|
|
|
+ $("#backTo").css("display", "none");
|
|
|
+ }
|
|
|
+ handleName = $('#ps-profile-set').find('span').text();
|
|
|
+ that.remoteCall({//附件数
|
|
|
+ method: "initialAttachment",
|
|
|
+ param: {evaObj: evaObj, gradeTaskNode: gradeTaskNode},
|
|
|
+ async: true,
|
|
|
+ success: function (data) {
|
|
|
+ // 计算附件数量
|
|
|
+ var attachcount = data.length;
|
|
|
+ $('.attachcount').html(attachcount);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ //获取页面自定义参数,是否展示处理人权重
|
|
|
+ if(hideNodeWeight == 'true'){
|
|
|
+ isShowHandlerWeight = 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ //判断节点是否可被提交,模拟点击"展开他人评分"
|
|
|
+ var scoreObj = that.assembleScoreData();
|
|
|
+ var ids = new Array();
|
|
|
+ for (var i = 0; i < scoreObj.length; i++) {
|
|
|
+ ids.push(scoreObj[i].gradeTaskNode);
|
|
|
+ }
|
|
|
+ that.remoteCall({
|
|
|
+ method: "judgeIsCanSubmit",
|
|
|
+ param: {
|
|
|
+ gradeTaskNode: ids.toString(),
|
|
|
+ evaObj: evaObj,
|
|
|
+ scoreObj: JSON.stringify(scoreObj)
|
|
|
+ },
|
|
|
+ async: false,
|
|
|
+ success: function (data) {
|
|
|
+ if (data != null && data.canSubmit == false) {
|
|
|
+ spreadothersFlag = true;
|
|
|
+ //打开全部展开
|
|
|
+ // $(".scoreItems").find("li").click();
|
|
|
+ // $("#wholeComment").click();
|
|
|
+ // $("div[class='spreadothers']").click();
|
|
|
+ // $("div[class='spreadothers']").hide();
|
|
|
+
|
|
|
+ //已提交的状态下隐藏“保存”和“提交”按钮
|
|
|
+ $("#saveScore").hide();
|
|
|
+ $("#submitScore").hide();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if (fromPage == "APPEAL") {
|
|
|
+ // 从申诉表单页面过来的隐藏确认按钮及申诉按钮
|
|
|
+ $("#appeal, #confirmResult").hide();
|
|
|
+ }
|
|
|
+
|
|
|
+ hideWeight();
|
|
|
+
|
|
|
+ var ch = $(window).height() - $('.view_manager_header').outerHeight() - $('#controlBtns').outerHeight() - $('.headercontain').height() + 'px';
|
|
|
+ if(top != self){
|
|
|
+ ch = parseInt($('#rightContentIframe',parent.document).css('min-height')) - $('.workInfoWrap').outerHeight() + 'px';
|
|
|
+ }
|
|
|
+ $('.centercontainer').css({
|
|
|
+ height: ch
|
|
|
+ });
|
|
|
+
|
|
|
+ //考核结果显示控制
|
|
|
+ if(typeof initScoreDetailResultShow == 'function') {
|
|
|
+ initScoreDetailResultShow();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //补丁18 绩效面谈表单
|
|
|
+ dealInterviewForm: function() {
|
|
|
+ that.remoteCall({
|
|
|
+ method: "getInterviewData",
|
|
|
+ param: {
|
|
|
+ evaResultId: evaResultId
|
|
|
+ },
|
|
|
+ async: true,
|
|
|
+ success: function (data) {
|
|
|
+ if(data.showInterview == '1') {
|
|
|
+ interviewData = data;
|
|
|
+ $('#viewInterviewForm').show();
|
|
|
+ }else {
|
|
|
+ interviewData = {};
|
|
|
+ //隐藏查看绩效面谈表单按钮
|
|
|
+ $('#viewInterviewForm').hide();
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ viewInterviewForm: function() {
|
|
|
+ if(interviewData.showInterview == '1') {
|
|
|
+ var iid = interviewData.billId;
|
|
|
+ var planId = interviewData.planId;
|
|
|
+ var evaObjName = personName;
|
|
|
+ var uipk = 'com.kingdee.shr.perfweb.app.base.evalplan.Interview.form';
|
|
|
+ var safeUrl = shr.safeUrl(shr.getContextPath() + "/dynamic.do?uipk="
|
|
|
+ + uipk
|
|
|
+ + "&inFrame=true&billId=" + encodeURIComponent(iid)
|
|
|
+ + "&planId=" + encodeURIComponent(planId)
|
|
|
+ + "&evaObj=" + encodeURIComponent(evaObj)
|
|
|
+ + "&serviceId=" + encodeURIComponent(shr.getServiceId())
|
|
|
+ + '&editable&evaObjName='+evaObjName + '&shruicode=AF_PERF_PER&from=PRO'
|
|
|
+ );
|
|
|
+ window.open(safeUrl);
|
|
|
+ }else {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * yien
|
|
|
+ * 初始化用户自定义参数设置
|
|
|
+ */
|
|
|
+ initCustomParamList: function () {
|
|
|
+ //yien 20191122 天虹私包
|
|
|
+ // isShowLevelScoreRange = $("#isShowLevelScoreRange").html();
|
|
|
+ if (isShowLevelScoreRange == "false") {
|
|
|
+ isShowLevelScoreRange = 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ if( isManualJudgeGrade==1) {
|
|
|
+ isEditGradesChange = 1; //如果是手工打等级方式,默认为手工修改过等级
|
|
|
+ }else if(_gscoreOrRate == '1' ||isEditGradesChange==1){
|
|
|
+ isEditGradesChange = 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ },
|
|
|
+
|
|
|
+ // 表格内分数字段输入框,失去焦点时自动算分
|
|
|
+ bindGridScoreInputBlurEvent: function(){
|
|
|
+ $('.ui-jqgrid-btable input[type="text"][ctrlrole="text"]').live('blur',function(){
|
|
|
+ if(lastTable){
|
|
|
+ $(lastTable).jqGrid('editStop');
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //
|
|
|
+ // // 表格区域滚动时隐藏下拉选择框的选项,否则会脱离选择框,因为.centercontainer设置了高度
|
|
|
+ bindWindowScrollEvent: function(){
|
|
|
+ $('.centercontainer').on('scroll',function(){
|
|
|
+ $('.dropdown-menu').hide();
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 流程图
|
|
|
+ */
|
|
|
+ workFlowDiagram: function () {
|
|
|
+ $('#workFlowDiagram').unbind('click').bind('click', function () {
|
|
|
+ that.workFlowDiagramAction();
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 审批意见
|
|
|
+ */
|
|
|
+ auditResult : function() {
|
|
|
+ $('#auditResult').unbind('click').bind('click', function () {
|
|
|
+ that.auditResultAction();
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 查看流程图
|
|
|
+ */
|
|
|
+ workFlowDiagramAction: function() {
|
|
|
+ var billId = that.getTargetTransmitBill();
|
|
|
+ if(billId == '-1') {
|
|
|
+ //没有选择记录
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if(billId) {
|
|
|
+ that.getWorkFlowHelper().viewWorkFlowDiagram(billId);
|
|
|
+ }else {
|
|
|
+ //BT1393159 提示信息,目标填报已经提交,但是工作流发起报错,这里还不知道怎么处理好
|
|
|
+ shr.showError({message: jsBizMultLan.perfweb_perfscoreNew_1593331244239_i18n_0});
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查看审批结果
|
|
|
+ */
|
|
|
+ auditResultAction: function() {
|
|
|
+ var billId = that.getTargetTransmitBill();
|
|
|
+ if(billId == '-1') {
|
|
|
+ //没有选择记录
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if(billId) {
|
|
|
+ that.getWorkFlowHelper().viewAuditResult(billId);
|
|
|
+ }else {
|
|
|
+ //BT1393159 提示信息,目标填报已经提交,但是工作流发起报错,这里还不知道怎么处理好
|
|
|
+ shr.showError({message: jsBizMultLan.perfweb_perfscoreNew_1593331244239_i18n_0});
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据评估对象获取审批单据id
|
|
|
+ */
|
|
|
+ getTargetTransmitBill: function() {
|
|
|
+ if(!evaObj) {
|
|
|
+ shr.showWarning({message: jsBizMultLan.perfweb_perfscoreNew_1593331244239_i18n_1});
|
|
|
+ return "-1";
|
|
|
+ }
|
|
|
+ if(typeof that.targetBillIdMap[evaObj] == "undefined") {
|
|
|
+ that.remoteCall({
|
|
|
+// handler: "com.kingdee.shr.perfweb.planexecute.handler.SuperiorUnTransmitListHandler",
|
|
|
+ method: 'getTargetTransmitBill',
|
|
|
+ async: false,
|
|
|
+ param: {
|
|
|
+ "evaObj" : evaObj
|
|
|
+ },
|
|
|
+ success: function (data) {
|
|
|
+ if(data.result == '200') {
|
|
|
+ that.targetBillIdMap[evaObj] = data.billId;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ return that.targetBillIdMap[evaObj];
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 任务列表
|
|
|
+ */
|
|
|
+ perfTaskList: function () {
|
|
|
+ $('#perfTaskList').unbind('click').bind('click', function () {
|
|
|
+ //alert("evaObj:"+evaObj);
|
|
|
+ var uipk = 'com.kingdee.shr.perfweb.app.base.perftask.evaObjPerfTask.list';
|
|
|
+ var safeUrl = shr.safeUrl(shr.getContextPath() + "/dynamic.do?uipk="
|
|
|
+ + uipk + "&inFrame=true&evaObj=" + evaObj);
|
|
|
+ window.open(safeUrl);
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ /*
|
|
|
+ * 加载当前流程参数
|
|
|
+ * */
|
|
|
+ loadNodeParam: function () {
|
|
|
+ that.remoteCall({
|
|
|
+ method: "getNodeParam",
|
|
|
+ param: {
|
|
|
+ evaObj: evaObj,
|
|
|
+ gradeTaskNode: gradeTaskNode
|
|
|
+
|
|
|
+ },
|
|
|
+ async: false,
|
|
|
+ success: function (data) {
|
|
|
+ if (data != null) {
|
|
|
+ _needScore = data.needScore; //是否允许评分
|
|
|
+ _wholeComment = data.wholeComment; //整体评语是否必录
|
|
|
+ _perfGradeEvaluate = data.perfGradeEvaluate; //是否允许打等级
|
|
|
+ _indicatorComment = data.indicatorComment; //是否必须打等级
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 左侧列表
|
|
|
+ * @returns
|
|
|
+ */
|
|
|
+ initLeftList: function () {
|
|
|
+ //获取左侧列表数据
|
|
|
+ $('#content').html('');
|
|
|
+ $('#content').append(leftListHtml());
|
|
|
+ //var periodTmp = periodId;
|
|
|
+ var periodTmp = shr.getUrlRequestParam("periodId");
|
|
|
+ var element = $("#selectionList");
|
|
|
+ var dom = '<span class="up"></span>' +
|
|
|
+ '<div class="scrollBox scrollbarthin">' +
|
|
|
+ '<ul class="workerList">' +
|
|
|
+ '</ul>' +
|
|
|
+ '</div>' +
|
|
|
+ '<span class="down"></span>';
|
|
|
+ element.addClass('utilsSl-list').append(dom);
|
|
|
+ //clickObj.click();
|
|
|
+ //调用左侧人员列表utilsSelectionList.js插件
|
|
|
+ $('#selectionList').utilsSelectionList({
|
|
|
+ method: "getTeamTargetCommentListByPeriod",
|
|
|
+ listType: 'score', //goals:我的目标; score: 个人评分;
|
|
|
+ isAsync: 1,
|
|
|
+ param: { //获取数据需要的参数
|
|
|
+ periodId: periodTmp, //考核周期id
|
|
|
+ page: 1, //当前页数
|
|
|
+ rows: 50, //rows 每页显示记录数
|
|
|
+ evaObj: evaObj, //当前评估对象
|
|
|
+ personId: personId,
|
|
|
+ isTeamEvalu: isTeamEvalu, //是否团队目标评分
|
|
|
+ personalScoreSearchIdList: personalScoreSearchIdList,
|
|
|
+ isOrg: isOrg
|
|
|
+ },
|
|
|
+ clickMenuEvent: function (e) {
|
|
|
+ //点击一条记录触发事件
|
|
|
+ if (isInitLeftListCompleted == 1|| isInitLeftCompleted == 1) {
|
|
|
+ $.block.show();
|
|
|
+ isFirstClickWholeComment = 1;
|
|
|
+ isFirstInit = 0;
|
|
|
+ //20191202 yien 记录当前的周期
|
|
|
+ periodId = $(e).attr("period");
|
|
|
+ _noPassVerifyArr = new Array(); //切换评估对象时清空校验不通过的数据
|
|
|
+ evaObj = $(e).attr("workerid"); //當前評估對象所選id
|
|
|
+ currentNodeLevel = $(e).attr("currentwflevel"); //选中评估对象当前所在流程级数
|
|
|
+ gradeTaskNode = $(e).attr("gradetasknode"); //评估对象节点实例id
|
|
|
+ it.initRightContent();//右侧内容
|
|
|
+ // it.initPersonalInformation(true); //初始化个人信息
|
|
|
+ it.getDistributionInfo();
|
|
|
+ //第一节点隐藏"打回"按钮
|
|
|
+ if (currentNodeLevel == 1) {
|
|
|
+ $("#backTo").css("display", "none");
|
|
|
+ }
|
|
|
+ // it.setScoreBtnLocation();
|
|
|
+ // that.perfScoreOthersScoreBox();
|
|
|
+ hideWeight();
|
|
|
+ that.loadNodeParam();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ clickMenuEvent: function (e) {
|
|
|
+ isFirstClickWholeComment = 1;
|
|
|
+ isFirstInit = 0;
|
|
|
+ //20191202 yien 记录当前的周期
|
|
|
+ periodId = $(e).attr("period");
|
|
|
+ evaObj = $(e).attr("workerid"); //當前評估對象所選id
|
|
|
+ currentNodeLevel = $(e).attr("currentwflevel"); //选中评估对象当前所在流程级数
|
|
|
+ gradeTaskNode = $(e).attr("gradetasknode"); //评估对象节点实例id
|
|
|
+ it.initRightContent();//右侧内容
|
|
|
+ // it.initPersonalInformation(true); //初始化个人信息
|
|
|
+ //第一节点隐藏"打回"按钮
|
|
|
+ if (currentNodeLevel == 1) {
|
|
|
+ $("#backTo").css("display", "none");
|
|
|
+ }
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 模拟左侧列表人员名单数据
|
|
|
+ * @returns
|
|
|
+ */
|
|
|
+ loadingListData: function () {
|
|
|
+ var worksData = null;
|
|
|
+ that.remoteCall({
|
|
|
+ method: "getTeamTargetCommentListByPeriod",
|
|
|
+ param: {
|
|
|
+ period: periodId,
|
|
|
+ personId: personId
|
|
|
+ },
|
|
|
+ async: false,
|
|
|
+ success: function (data) {
|
|
|
+ if (data != null) {
|
|
|
+ worksData = data;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return worksData;
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 展开员工基本信息
|
|
|
+ * @returns
|
|
|
+ */
|
|
|
+ spreadcontrol: function (e) {
|
|
|
+ var informationBoxMeg = {
|
|
|
+ length: showfieldnum, //默认显示几个字段
|
|
|
+ spreadText: jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_51,
|
|
|
+ packupText: jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_47
|
|
|
+ };
|
|
|
+ if($(e).hasClass('spread')){
|
|
|
+ $('.informationBox').hide();
|
|
|
+ $(e).html(informationBoxMeg.spreadText);
|
|
|
+ $(e).removeClass('spread');
|
|
|
+ }else{
|
|
|
+ $('.informationBox').show();
|
|
|
+ $(e).html(informationBoxMeg.packupText);
|
|
|
+ $(e).addClass('spread');
|
|
|
+ }
|
|
|
+ it.setParentIframeHeight();
|
|
|
+ },
|
|
|
+ // 设置绩效工作台iframe高度
|
|
|
+ setParentIframeHeight: function(){
|
|
|
+ if(parent && parent.setIframeHeight){
|
|
|
+ var iframeid = 'rightContentIframe';
|
|
|
+ parent.setIframeHeight(iframeid);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 查看备注
|
|
|
+ * @returns
|
|
|
+ */
|
|
|
+ viewRema: function (e) {
|
|
|
+
|
|
|
+ var backReasonHTML = '<div id="backReasonDiv">' +
|
|
|
+ '<span style="width:560px"><textarea id="backReason" disabled="disabled"></textarea></span>' +
|
|
|
+ '</div>';
|
|
|
+ $(document.body).append(backReasonHTML);
|
|
|
+ $("#backReasonDiv").show();
|
|
|
+
|
|
|
+ that.remoteCall({
|
|
|
+ method: "getRema",
|
|
|
+ param: {
|
|
|
+ gradeTaskNode: gradeTaskNode
|
|
|
+ },
|
|
|
+ async: false,
|
|
|
+ success: function (data) {
|
|
|
+ if (data != null) {
|
|
|
+ $('#backReason').val(data.rema);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ // 将弹出对话框弹出
|
|
|
+ $('#backReasonDiv').dialog({
|
|
|
+ title: jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_7,
|
|
|
+ autoOpen: true,
|
|
|
+ show: "blind",
|
|
|
+ width: 600,
|
|
|
+ height: 380,
|
|
|
+ resizable: true,
|
|
|
+ position: ['center', 'center'],
|
|
|
+ modal: true,
|
|
|
+ buttons: [{
|
|
|
+ text:jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_42,
|
|
|
+ click: function () {
|
|
|
+ $(this).dialog("destroy").remove();
|
|
|
+ }
|
|
|
+ }]
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 加载员工基本信息
|
|
|
+ * @param index
|
|
|
+ * @returns
|
|
|
+ */
|
|
|
+ initPersonalInformation: function (async) {
|
|
|
+ if(null == async || '' == async){
|
|
|
+ async = false;
|
|
|
+ }
|
|
|
+ //加载员工基本信息
|
|
|
+ that.remoteCall({
|
|
|
+ method: "getPersonBaseOfGoals",
|
|
|
+ param: {
|
|
|
+ evaObj: evaObj,
|
|
|
+ periodId: periodId,
|
|
|
+ personId: personId,
|
|
|
+ personNumber: personNumber
|
|
|
+ },
|
|
|
+ async: async,
|
|
|
+ success: function (data) {
|
|
|
+ if (data != null) {
|
|
|
+ globalPersonBaseData = data;
|
|
|
+ $('.workInfo').html('').append(personalInformation(data));
|
|
|
+ if($('.informationBox li').length == 0){
|
|
|
+ $('#spread').hide();
|
|
|
+ }
|
|
|
+ if(isTeamEvalu == 1){
|
|
|
+ $('.workPhoto').remove();
|
|
|
+ // $('.workInfo').css("margin-left","-50px");
|
|
|
+ }else{
|
|
|
+ if($('.workPhoto').length < 1){
|
|
|
+ $('.informationBox,.namebox').css({'width': '100%','margin-left': '0'});
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $('.attachcountbtn').unbind('click').bind('click',function(){
|
|
|
+ $('#attachments').click();
|
|
|
+ })
|
|
|
+ it.uploadFileDialog();//上传附件
|
|
|
+ }
|
|
|
+ getAttachcount();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 右侧区域指标评分内容
|
|
|
+ * @returns
|
|
|
+ */
|
|
|
+ initRightContent: function () {
|
|
|
+ $('.content_right').remove();
|
|
|
+ $('#content').append(rightContentHtml()); //绩效目标评分的一些操作按钮
|
|
|
+ var ch = $(window).height() - $('.view_manager_header').outerHeight() - $('#controlBtns').outerHeight() - $('.headercontain').height() + 'px';
|
|
|
+ if(top != self){
|
|
|
+ ch = parseInt($('#workAreaDiv',parent.document).css('min-height')) - $('#controlBtns').outerHeight() + 'px';
|
|
|
+ }
|
|
|
+ $('.centercontainer').css({
|
|
|
+ height: ch
|
|
|
+ })
|
|
|
+ if(self != top || entryType == 'myselfEvalu' || entryType == 'viewEvaForm'){
|
|
|
+ $('.content_right').css({
|
|
|
+ 'width': '100%',
|
|
|
+ 'margin-right': '0'
|
|
|
+ });
|
|
|
+ }
|
|
|
+ $('.attachcountbtn').unbind('click').bind('click', function () {
|
|
|
+ $('#attachments').click();
|
|
|
+ })
|
|
|
+ it.initPersonalInformation(false);
|
|
|
+ it.bindWindowScrollEvent(); // 绑定滚动事件
|
|
|
+ it.initEvaPlanAndPerfRule(); //考核计划及考核规则信息
|
|
|
+ // it.initScoreItems();//加载左边菜单【左侧区域及指标】
|
|
|
+ it.uploadFileDialog();//上传附件
|
|
|
+ it.processView();//流程查看
|
|
|
+ it.perfHistory();//绩效历史查询
|
|
|
+ it.backTo();//打回
|
|
|
+ it.uploadFile();//上传附件
|
|
|
+ it.delFile();//删除附件
|
|
|
+// it.switchListPage(); //切换页面
|
|
|
+ // $('#spread').click();
|
|
|
+ it.levelSwitchChange();
|
|
|
+ // it.templatePrint();//套打
|
|
|
+ it.perfTaskList();//任务列表
|
|
|
+ $('#summaryInterview').hide();
|
|
|
+ $('#summaryInterview').unbind('click').bind('click', function () {
|
|
|
+ //alert(evaObj);
|
|
|
+ /*var iid = '';
|
|
|
+ var url = shr.getContextPath() + "/dynamic.do?handler=com.kingdee.shr.perfweb.report.handler.EvaResultSummaryInterviewListHandler&method=createInterviewByEvaObj";
|
|
|
+ shr.ajax({
|
|
|
+ type: "post",
|
|
|
+ async: false,
|
|
|
+ url: url,
|
|
|
+ data: {"evaObj": evaObj},
|
|
|
+ success: function (data) {
|
|
|
+ if (data.iid) {
|
|
|
+ iid = data.iid;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if (iid) {
|
|
|
+ var uipk = 'com.kingdee.shr.perfweb.app.base.evalplan.Interview.form';
|
|
|
+ var safeUrl = shr.safeUrl(shr.getContextPath() + "/dynamic.do?uipk=" + uipk + "&inFrame=true&billId=" + iid );
|
|
|
+ window.open(safeUrl);
|
|
|
+ }*/
|
|
|
+
|
|
|
+ // bug-BT-00624090-从员工自助绩效面谈进入查看评估表单,按钮还在,但是使用不了
|
|
|
+ that.remoteCall({
|
|
|
+ method: "createInterviewByEvaObj",
|
|
|
+ param: {
|
|
|
+ evaObj : evaObj
|
|
|
+ },
|
|
|
+ async: false,
|
|
|
+ success: function (data) {
|
|
|
+ if (data.result === 'error') {
|
|
|
+ shr.showError({message : data.summary})
|
|
|
+ } else {
|
|
|
+ var uipk = "com.kingdee.shr.perfweb.app.base.evalplan.Interview.form";
|
|
|
+ window.open(shr.safeUrl(shr.getContextPath() + '/dynamic.do?uipk=' + uipk +
|
|
|
+ '&inFrame=true&method=view&billId=' + data.iid +
|
|
|
+ "&shruicode=" + shr.getUrlRequestParam("shruicode")));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ })
|
|
|
+ //根据查看来源隐藏或显示按钮
|
|
|
+ if(viewMode == 'justViewReport') {
|
|
|
+ it.workFlowDiagram(); //流程图
|
|
|
+ it.auditResult(); //审批意见
|
|
|
+ //隐藏附件按钮
|
|
|
+ $("#attachments").hide();
|
|
|
+ }else {
|
|
|
+ //隐藏流程图 审批意见按钮
|
|
|
+ $('#auditResult').hide();
|
|
|
+ $('#workFlowDiagram').hide();
|
|
|
+ }
|
|
|
+ that.personHistoryParamControl();
|
|
|
+ },
|
|
|
+
|
|
|
+ // 等级切换时,更改选择框的title值
|
|
|
+ levelSwitchChange: function () {
|
|
|
+ $('select[name="_editGrades"],select[name="wholeGrade"]').die('change').live('change', function () {
|
|
|
+ $(this).attr('title', $(this).find("option:selected").text());
|
|
|
+ if($(this).find("option:selected").parent().attr("name") == 'wholeGrade'){
|
|
|
+ isEditGradesChange = 1;
|
|
|
+ }
|
|
|
+ $('.workerList li.current').find("i[name='nodeGrade']").text($(this).val());
|
|
|
+ })
|
|
|
+
|
|
|
+ $('input[id$="gradeORrejection"],input[id$="nodeGrade"]').die('change').live('change', function () {
|
|
|
+ calcTotoalScore(gradeTaskNode);
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 页面切换
|
|
|
+ */
|
|
|
+ initCurrentPageByConfig: function () {
|
|
|
+ var it = this;
|
|
|
+ var param = {
|
|
|
+ evaObj: shr.getUrlRequestParam("evaObj"),
|
|
|
+ periodId: shr.getUrlRequestParam("periodId"),
|
|
|
+ personId: shr.getUrlRequestParam("personId"),
|
|
|
+ personNumber: shr.getUrlRequestParam("personNumber"),
|
|
|
+ entryType: shr.getUrlRequestParam("entryType") ,
|
|
|
+ gradeTaskNode : shr.getUrlRequestParam("gradeTaskNode"),
|
|
|
+ wfLevel : shr.getUrlRequestParam("wfLevel"),
|
|
|
+ personName: shr.getUrlRequestParam("personName"),
|
|
|
+ planId: shr.getUrlRequestParam("planId"),
|
|
|
+ planName: shr.getUrlRequestParam("planName"),
|
|
|
+ pageSource: shr.getUrlRequestParam("pageSource"),
|
|
|
+ viewMode: shr.getUrlRequestParam("viewMode"),
|
|
|
+ isAudited: shr.getUrlRequestParam("isAudited"),
|
|
|
+ personalScoreSearchIdList : shr.getUrlRequestParam("personalScoreSearchIdList"),
|
|
|
+ interview:shr.getUrlRequestParam("interview"),
|
|
|
+ fromPage:shr.getUrlRequestParam("fromPage"),
|
|
|
+ shruicode: shr.getUrlRequestParam("shruicode"),
|
|
|
+ }
|
|
|
+
|
|
|
+ var isFromWFBill = shr.getUrlRequestParam("isFromWFBill");
|
|
|
+ if (isFromWFBill && isFromWFBill == "true") {
|
|
|
+ // 工作流单据过来的进行后端转发
|
|
|
+ param.method = "viewPerfscore";
|
|
|
+ param.isFromWFBill = shr.getUrlRequestParam("isFromWFBill");
|
|
|
+ param.wfBillParentUipk = shr.getUrlRequestParam("wfBillParentUipk");
|
|
|
+ param.shrBillInWfId = shr.getUrlRequestParam("shrBillInWfId");
|
|
|
+ param.billId = shr.getUrlRequestParam("billId");
|
|
|
+ param.assigmentId = shr.getUrlRequestParam("assigmentId");
|
|
|
+ param.ProcInstId = shr.getUrlRequestParam("ProcInstId");
|
|
|
+ param.pageType = '1'; // 1:为概览模式 2:为列表模式
|
|
|
+ param.uipk = "com.kingdee.shr.perfweb.app.base.evalplan.EvaResultAppealBill.form";
|
|
|
+ this.reloadPage(param);
|
|
|
+ } else {
|
|
|
+ param.uipk = 'com.kingdee.shr.perfweb.app.perfscore.core';
|
|
|
+ this.reloadPage(param);
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ //加载考核计划、考核模式、考核规则信息
|
|
|
+ initEvaPlanAndPerfRule: function () {
|
|
|
+ that.remoteCall({
|
|
|
+ method: "compositeEvaObjectData",
|
|
|
+ param: {
|
|
|
+ evaObj: evaObj,
|
|
|
+ gradeTaskNode: gradeTaskNode,
|
|
|
+ entryType: entryType,
|
|
|
+ pageSource:pageSource
|
|
|
+ },
|
|
|
+ async: true,
|
|
|
+ success: function (data) {
|
|
|
+ if (data.result != null) {
|
|
|
+ shr.showError({message: data.result});
|
|
|
+ } else {
|
|
|
+ globalIndicatorData = data;
|
|
|
+ _needScore = data.needScore;
|
|
|
+ _gscoreOrRate = data.scoreOrRate;
|
|
|
+ var perfGoalsHTML = juicer(perfGoalsTpl, data);
|
|
|
+ var ruleHTML = juicer(ruleTpl, data);
|
|
|
+ $(perfGoalsHTML).appendTo($('.centercontainer'));
|
|
|
+ $('.info-wrap').append(ruleHTML);
|
|
|
+ var evaluationdetails = juicer(evaluationdetailsTpl(), data);
|
|
|
+ $(evaluationdetails).appendTo($('.instructions'));
|
|
|
+ it.instructionsBox(); //弹出说明
|
|
|
+ // 其他指标区域
|
|
|
+ var indicatorDatalist = new Array();
|
|
|
+ for(var i=0; i<globalIndicatorData.rows.evaAreaList.length; i++){
|
|
|
+ var areadata = globalIndicatorData.rows.evaAreaList[i];
|
|
|
+ // 组装区域说明字段
|
|
|
+ globalIndicatorData.rows.evaAreaList[i].rema = getAreaRema(areadata.areaId);
|
|
|
+ if(areadata.evaIndicatorList || areadata.evaRecordList){
|
|
|
+ indicatorDatalist.push(areadata.evaIndicatorList || areadata.evaRecordList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ /* var indicatorData = indicatorDatalist[0];
|
|
|
+ indicatorData.areaType = areadata.areaType;
|
|
|
+ indicatorData.scoringWay = areadata.scoringWay;
|
|
|
+ indicatorData.fieldslist = it.getTargetData(areadata.fieldList, indicatorData);
|
|
|
+ var indicatorDetailHTML = juicer(indicatorDetailTpl, {rows:[indicatorData]});
|
|
|
+ $(indicatorDetailHTML).appendTo($('.content_right'));*/
|
|
|
+ $('.fieldsboxhide,#splitDiv').css({
|
|
|
+ height: $('.centercontainer').height() + 'px'
|
|
|
+ })
|
|
|
+ if($('.fieldsboxhide:visible').find('.field-line').length == 0){
|
|
|
+ $('.fieldsboxhide:visible').find('.emptywrap').show();
|
|
|
+ }
|
|
|
+ it.setPersonInfoRema();
|
|
|
+ }
|
|
|
+ it.initScoreItems();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ // 员工信息区域的区域说明显示到页面上
|
|
|
+ setPersonInfoRema: function(){
|
|
|
+ $.each(globalIndicatorData.areaBaseList,function(i,item){
|
|
|
+ if((item.areaType.value == '100' || item.areaType.value == '400') && item.rema){
|
|
|
+ var remaTpl =
|
|
|
+ ['<div class="area-rema-box" area-id="${area.id}">',
|
|
|
+ '<span>',jsBizMultLan.perfweb_evaluationdetailsJuicer_1586069239184_i18n_5,'</span>',
|
|
|
+ '<pre area-id="${area.id}">${area.rema}</pre>',
|
|
|
+ '<div class="area-rema-btn" onclick="showMoreRema(this,\'${area.id}\')">',
|
|
|
+ jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_51,
|
|
|
+ '</div>',
|
|
|
+ '</div>'].join("");
|
|
|
+ var remaHTML = juicer(remaTpl, {area: item});
|
|
|
+ $('.info-more-wrap').after(remaHTML)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 弹出说明
|
|
|
+ */
|
|
|
+ instructionsBox: function () {
|
|
|
+ $(".instructions").die('mouseover').live('mouseover', function () {
|
|
|
+ var box = $('.instructionsboxwrap');
|
|
|
+ box.stop().fadeIn();
|
|
|
+
|
|
|
+ });
|
|
|
+ $(".instructions").die('mouseout').live('mouseout', function () {
|
|
|
+ var box = $('.instructionsboxwrap');
|
|
|
+ box.stop().fadeOut();
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 上传附件弹出框
|
|
|
+ */
|
|
|
+ uploadFileDialog: function () {
|
|
|
+ $('#attachments').unbind('click').bind('click', function () {
|
|
|
+ var html = juicer(uploadAttachmentsTpl, {uploadAttachSize:uploadAttachSize});
|
|
|
+ $(document.body).append(html);
|
|
|
+ $('#uploadFileBox').html('');
|
|
|
+
|
|
|
+ if (showAttachsOnly) {
|
|
|
+ $('.uploadfilebtn').hide();
|
|
|
+ //不给上传,应该同时也不给删除啊
|
|
|
+ $(".delfile").hide();
|
|
|
+ }
|
|
|
+
|
|
|
+ that.remoteCall({
|
|
|
+ method: "initialAttachment",
|
|
|
+ param: {evaObj: evaObj, gradeTaskNode: gradeTaskNode},
|
|
|
+ async: true,
|
|
|
+ /*$.ajax({
|
|
|
+ url: shr.getContextPath() + "/attachmentUpload.do?method=initialAttachment",
|
|
|
+ data: {formId: evaObj},*/
|
|
|
+ success: function (data) {
|
|
|
+ if (data) {
|
|
|
+ for (var i = 0; i < data.length; i++) {
|
|
|
+ var tempData = data[i];
|
|
|
+ var url = that._assembleDownloadUrl(tempData.id, tempData.attachKey);
|
|
|
+ var basetr = '<tr id="' + tempData.id + '" attachKey="' + tempData.attachKey + '">' +
|
|
|
+ '<td class="textOverflow paddingbox">' + tempData.name + '.' + tempData.simpleName + '</td>' +
|
|
|
+ '<td>' + tempData.creator + '</td>'+'<td>' + tempData.createTime + '</td>';
|
|
|
+ var del = '';
|
|
|
+ if (tempData.isSelf && tempData.isSelf == "true") {
|
|
|
+ //del = '<span class="delfile linkstyle">删除</span>';
|
|
|
+ del = '<span class="delfile linkstyle">'+jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_45+'</span>';
|
|
|
+ }
|
|
|
+ if (tempData.simpleName.toUpperCase() == "TXT" || tempData.simpleName.toUpperCase() == "PDF" || tempData.simpleName.toUpperCase() == "GIF" || tempData.simpleName.toUpperCase() == "JPG" || tempData.simpleName.toUpperCase() == "PNG" || tempData.simpleName.toUpperCase() == "BMP") {
|
|
|
+ //basetr += '<td>' + del + '<a class="uploadfile linkstyle" href="' + url + '" target="_blank" style="color:#388cff">下载</a></td>' +
|
|
|
+ basetr += '<td>' + del + '<a class="uploadfile linkstyle" href="' + url + '" target="_blank" style="color:#388cff">'+jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_49+'</a></td>' +
|
|
|
+ '</tr>';
|
|
|
+ } else {
|
|
|
+ //basetr += '<td>' + del + '<a class="uploadfile linkstyle" href="' + url + '" style="color:#388cff">下载</a></td>' +basetr += '<td>' + del + '<a class="uploadfile linkstyle" href="' + url + '" style="color:#388cff">'+jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_49+'</a></td>' +
|
|
|
+ basetr += '<td>' + del + '<a class="uploadfile linkstyle" href="' + url + '" style="color:#388cff">'+jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_49+'</a></td>' +
|
|
|
+ '</tr>';
|
|
|
+ }
|
|
|
+ $('#uploadFileBox').append(basetr);
|
|
|
+ //shr.setIframeHeight();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //it.uploadFile();//上传附件
|
|
|
+ $("#attachmentsDialog").dialog({
|
|
|
+ autoOpen: true,
|
|
|
+ show: "blind",
|
|
|
+ width: 850,
|
|
|
+ height: 500,
|
|
|
+ title: jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_20,
|
|
|
+ resizable: false,
|
|
|
+ position: ['center', 100],
|
|
|
+ modal: true,
|
|
|
+ buttons: [{
|
|
|
+ text:jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_41,
|
|
|
+ click: function () {
|
|
|
+ $(this).dialog('close');
|
|
|
+ /**
|
|
|
+ * 这时要刷新附件数
|
|
|
+ */
|
|
|
+ getAttachcount();
|
|
|
+ }},{
|
|
|
+ text:jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_40,
|
|
|
+ click: function () {
|
|
|
+ $(this).dialog('close');
|
|
|
+ }
|
|
|
+ }],
|
|
|
+ close: function () {
|
|
|
+ $('#attachmentsDialog').remove();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if (showAttachsOnly) {
|
|
|
+ //不给上传,应该同时也不给删除啊
|
|
|
+ $(".delfile").hide();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取上传文件的下载地址
|
|
|
+ * @param id
|
|
|
+ * @returns {string}
|
|
|
+ * @private
|
|
|
+ */
|
|
|
+ _assembleDownloadUrl: function (id, attachKey) {
|
|
|
+ // var params = {
|
|
|
+ // method: 'download',
|
|
|
+ // id: id,
|
|
|
+ // serviceId : decodeURIComponent("fUjSqQK1RouZaEJUI2jH5vI9KRA%3D"),
|
|
|
+ // key: attachKey
|
|
|
+ // }
|
|
|
+ // return shr.getContextPath() + '/attachmentUpload.do?' + $.param(params);
|
|
|
+
|
|
|
+ var self = this;
|
|
|
+ var permItemId = "";
|
|
|
+ if(!self.isFromWF()){
|
|
|
+ permItemId = shr.getCurrentPagePermItemId();
|
|
|
+ }
|
|
|
+ var params = {
|
|
|
+ method: 'download',
|
|
|
+ id: id,
|
|
|
+ permItemId: permItemId,
|
|
|
+ billId:shr.getUrlRequestParam('billId'),
|
|
|
+ shruicode:shr.getShruicode(),
|
|
|
+ uipk:shr.getUrlRequestParam('uipk')
|
|
|
+ // assigmentId:self.getAssignmentId(),
|
|
|
+ // ProcInstId:self.getProcInstId()
|
|
|
+ }
|
|
|
+ return shr.getContextPath() + '/attachmentUpload.do?' + $.param(params);
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 上传文件
|
|
|
+ */
|
|
|
+ uploadFile: function (obj) {
|
|
|
+ /*$(document).on('change', '#uploadAttach', function (e) {*/
|
|
|
+ $('#uploadAttach').die('change').live('change', function (e) {
|
|
|
+ // 检测上传文件的类型
|
|
|
+ var acceptFileArr = ['doc', 'docx', 'xlsx', 'xls', 'jpg', 'jpeg', 'png', 'jpeg', 'pdf','zip','rar'];
|
|
|
+ var fileList = e.target.files;
|
|
|
+ var fileLength = e.target.files.length;
|
|
|
+ if (!fileLength || fileLength == 0) {
|
|
|
+ //shr.showWarning({message: "请选择要上传的文件 !"});
|
|
|
+ shr.showWarning({message: jsBizMultLan.perfweb_perfscoreNew_zw20201229_i18n_01});
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (fileLength > 10) {
|
|
|
+ shr.showWarning({message: $.perfwebI18n.evaobjBatchAttachment.toomanyfiles});
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ var totalSize = 0;
|
|
|
+ for (var i = 0; i < fileLength; i++) {
|
|
|
+ var fileItem = fileList[i];
|
|
|
+ var filePath = fileItem.name;
|
|
|
+ var ext, idx;
|
|
|
+ if (filePath == '') {
|
|
|
+ //shr.showWarning({message: "请选择要上传的文件 !"});
|
|
|
+ shr.showWarning({message: jsBizMultLan.perfweb_perfscoreNew_zw20201229_i18n_01});
|
|
|
+ return false;
|
|
|
+ } else {
|
|
|
+ idx = filePath.lastIndexOf(".");
|
|
|
+ if (idx != -1) {
|
|
|
+ ext = filePath.substr(idx + 1).toUpperCase();
|
|
|
+ ext = ext.toLowerCase();
|
|
|
+ if (!array_contain(acceptFileArr, ext)) {
|
|
|
+ //shr.showWarning({message: "只能上传 .doc,.docx,.xlsx,.xls,.jpg,.jpeg,.png,.jpeg,.pdf 类型的文件!"});
|
|
|
+ shr.showWarning({message: jsBizMultLan.perfweb_perfscoreNew_1642579721_i18n_01});
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ shr.showWarning({message: ""});
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 在这里限制文件大小,ie9要想获取文件大小,就要使用flash插件
|
|
|
+ var size = fileItem.size;
|
|
|
+ if (size / (1024 * 1024 * uploadAttachSize) > 1) {
|
|
|
+ shr.showWarning({
|
|
|
+ //message: "上传文件不能大于5M",
|
|
|
+ message: shr.formatMsg(jsBizMultLan.perf_perfscoreNew_bw0406_01,[uploadAttachSize]),
|
|
|
+ hideAfter: 3
|
|
|
+ });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ totalSize = totalSize + size;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (totalSize / (1024 * 1024 * uploadAttachSize) > 1) {
|
|
|
+ shr.showWarning({
|
|
|
+ //message: "上传文件不能大于5M",
|
|
|
+ message: shr.formatMsg(jsBizMultLan.perf_perfscoreNew_bw0406_01, [uploadAttachSize]),
|
|
|
+ hideAfter: 3
|
|
|
+ });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ that.uploadFileMulity(e);
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ uploadFileMulity: function (e) {
|
|
|
+ var fileObj = $(e.target);
|
|
|
+ var id = fileObj.attr("id");
|
|
|
+ $('#uploadFileBox').append('<image id="loadingGif" src="' + shr.getContextPath() + '/addon/perfweb/web/images/upload.gif"/>').show();
|
|
|
+ $.ajaxFileUpload({
|
|
|
+ // url: shr.getContextPath() +
|
|
|
+ // "/attachmentUpload.do?method=uploadAttachment",
|
|
|
+ // //用于文件上传的服务器端请求地址
|
|
|
+ url: that.dynamicPage_url + "?method=uploadAttachment&uipk=" + that.uipk + "&shruicode=" + shr.getUrlRequestParam("shruicode"),
|
|
|
+ data: {boID: evaObj, gradeTaskNode: gradeTaskNode, type: '3'}, // type=3附件类型为评分
|
|
|
+ secureuri: false, // 是否需要安全协议,一般设置为false
|
|
|
+ fileElementId: id, // 文件上传域的ID
|
|
|
+ dataType: 'json', // 返回值类型 一般设置为json
|
|
|
+ success: function (results) {// 服务器成功响应处理函数
|
|
|
+ if (results && results.result == 'success') {
|
|
|
+ $('#loadingGif').remove();
|
|
|
+ if (results && results.data && results.data.length > 0) {
|
|
|
+ for (var i = 0; i < results.data.length; i++) {
|
|
|
+ var data = results.data[i];
|
|
|
+ var url = that._assembleDownloadUrl(data.id, data.attachKey);
|
|
|
+ // uploadFileEvent();
|
|
|
+ var showDel = "";
|
|
|
+ if (data.isSelf && data.isSelf == "true") {
|
|
|
+ //showDel = '<span class="delfile linkstyle">删除</span>';
|
|
|
+ showDel = '<span class="delfile linkstyle">'+jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_45+'</span>';
|
|
|
+ }
|
|
|
+ var tr = $('<tr id="' + data.id + '" attachKey="' + data.attachKey + '">' +
|
|
|
+ '<td class="textOverflow paddingbox">' + data.filename + '</td>' +
|
|
|
+ '<td>' + data.creator + '</td>' +
|
|
|
+ '<td>' + data.createTime + '</td>' +
|
|
|
+ //'<td>' + showDel + '<a class="uploadfile linkstyle" href="' + url + '" style="color:#388cff">下载</a></td>' +
|
|
|
+ '<td>' + showDel + '<a class="uploadfile linkstyle" href="' + url + '" style="color:#388cff">'+jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_49+'</a></td>' +
|
|
|
+ '</tr>');
|
|
|
+ $('#uploadFileBox').append(tr);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if (results && results.result == 'failed') {
|
|
|
+ var failedMag = results.failedMag;
|
|
|
+ var errMsg = $.perfwebI18n.evaobjBatchAttachment['PERFWEB_F_0021'];
|
|
|
+ if(failedMag && $.perfwebI18n.evaobjBatchAttachment[failedMag]) {
|
|
|
+ errMsg = $.perfwebI18n.evaobjBatchAttachment[failedMag];
|
|
|
+ }else if(failedMag) {
|
|
|
+ errMsg = failedMag;
|
|
|
+ }
|
|
|
+ shr.showError({
|
|
|
+ message: errMsg
|
|
|
+ });
|
|
|
+ $('#loadingGif').remove();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除上传文件
|
|
|
+ */
|
|
|
+ delFile: function () {
|
|
|
+ $(document).on('click', '.delfile', function () {
|
|
|
+ var $del = $(this);
|
|
|
+ var $tr = $del.parent('td').parent('tr');
|
|
|
+ var attachId = $tr.attr('id');
|
|
|
+ var attachKey = $tr.attr('attachKey');
|
|
|
+ shr.showConfirm(jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_43, function () {
|
|
|
+ that.remoteCall({
|
|
|
+ method: "canAttachmentDelete",
|
|
|
+ async: false,
|
|
|
+ param: {attachmentId : attachId},
|
|
|
+ success: function (result) {
|
|
|
+ if (result && result.canDelete) {
|
|
|
+ var formId = evaObj;
|
|
|
+ var permItemId = "";
|
|
|
+ var self = that;
|
|
|
+ if(!self.isFromWF()){
|
|
|
+ permItemId = shr.getCurrentPagePermItemId();
|
|
|
+ }
|
|
|
+ $.ajax({
|
|
|
+ url: shr.getContextPath() + "/attachmentUpload.do?method=deleteAttachment",
|
|
|
+ data: {boID: formId, attachId: attachId, key: attachKey,
|
|
|
+ permItemId: permItemId,
|
|
|
+ billId:shr.getUrlRequestParam('billId'),
|
|
|
+ shruicode:shr.getShruicode(),
|
|
|
+ uipk:shr.getUrlRequestParam('uipk')},
|
|
|
+ success: function (msg) {
|
|
|
+ var tr = $del.parents('tr');
|
|
|
+ tr.remove();
|
|
|
+ getAttachcount();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ shr.showWarning({
|
|
|
+ message: jsBizMultLan.perf_perfscoreNewJuicer_1592900104294_i18n_5,
|
|
|
+ hideAfter: 3
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 流程查看
|
|
|
+ */
|
|
|
+ processView: function () {
|
|
|
+ $('#processView').unbind('click').bind('click', function () {
|
|
|
+ var html = $('<div id="processViewDialog"></div>');
|
|
|
+ $(document.body).append(html);
|
|
|
+ that.remoteCall({
|
|
|
+ method: "getProcessViewData",
|
|
|
+ async: false,
|
|
|
+ param: {gradeTaskNode: gradeTaskNode},
|
|
|
+ success: function (result) {
|
|
|
+ console.log(result);
|
|
|
+ var chart = "";
|
|
|
+ if (result) {
|
|
|
+ var datas = {};
|
|
|
+ datas.data = (result.data)[0];
|
|
|
+ datas.photo = result.photo;
|
|
|
+ chart = juicer(generateProcessView(datas), '');
|
|
|
+ }
|
|
|
+ $('#processViewDialog').append(chart);
|
|
|
+ $("#processViewDialog").dialog({
|
|
|
+ autoOpen: true,
|
|
|
+ show: "blind",
|
|
|
+ width: 800,
|
|
|
+ height: 450,
|
|
|
+ title: jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_30,
|
|
|
+ resizable: false,
|
|
|
+ position: ['center', 'center'],
|
|
|
+ modal: true,
|
|
|
+ close: function () {
|
|
|
+ $('#processViewDialog').remove();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 绩效考核历史弹出框
|
|
|
+ */
|
|
|
+ perfHistory: function () {
|
|
|
+ $('#perfHistory').unbind('click').bind('click', function () {
|
|
|
+ var html = juicer(perfHistoryTpl, '');
|
|
|
+ $(document.body).append(html);
|
|
|
+ $("#perfHistoryDialog").dialog({
|
|
|
+ autoOpen: true,
|
|
|
+ show: "blind",
|
|
|
+ width: 740,
|
|
|
+ height: 500,
|
|
|
+ title: jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_24,
|
|
|
+ resizable: false,
|
|
|
+ position: ['center', 'center'],
|
|
|
+ modal: true,
|
|
|
+ close: function () {
|
|
|
+ $('#perfHistoryDialog').remove();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ it.perfHistoryTable();
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 初始化jqGrid表格
|
|
|
+ * @param obj
|
|
|
+ * @param options
|
|
|
+ */
|
|
|
+ initjqGridTable: function (obj, options) {
|
|
|
+ obj.jqGrid({
|
|
|
+ mtype: "POST",//提交方式
|
|
|
+ datatype: "json",
|
|
|
+ height: options.height,//高度,表格高度。可为数值、百分比或'auto'
|
|
|
+ width: options.width,//这个宽度不能为百分比
|
|
|
+ autowidth: true,
|
|
|
+ colNames: options.name,//'<span class="checkboxs selectallcheckbox"></span>'
|
|
|
+ colModel: options.model,
|
|
|
+ rownumbers: false,//添加左侧行号
|
|
|
+ sortname: 'number',
|
|
|
+ sortorder: 'asc',
|
|
|
+ sortable: true,
|
|
|
+ rowNum: 10,//每页显示记录数
|
|
|
+ multiselect: options.multiselect,//复选框
|
|
|
+ forceFit: true,//如果设置为true,改变列宽,相邻列也将调整以适应整体表格,将不会出现水平滚动条。
|
|
|
+ multiselectWidth: options.multiselectWidth,//复选框列宽度
|
|
|
+ shrinkToFit: options.shrinkToFit,//该项描述计算每列相对于表格宽度的初始宽度的类型。若为true,并且设置了列宽度,则每列的宽度根据定义宽度缩放。若为false,并且设置了列宽度,表格宽度为设置宽度,列宽度不会重新计算,使用colModel中定义的值
|
|
|
+ autoScroll: false,
|
|
|
+ hoverrows: true,
|
|
|
+ hidegrid: false,
|
|
|
+ url: that.dynamicPage_url + "?method=getPerfHistoryList&uipk=" + that.uipk,
|
|
|
+ postData: options.postData,
|
|
|
+ loadComplete: options.loadComplete
|
|
|
+ }).jqGrid('setFrozenColumns');//.jqGrid('setFrozenColumns')冻结列,不生效
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 加载弹出框表格——绩效历史查询
|
|
|
+ */
|
|
|
+ perfHistoryTable: function () {
|
|
|
+ var options = {
|
|
|
+ name: [
|
|
|
+ jsBizMultLan.perf_perfscoreNewJuicer_1592900104294_i18n_6,
|
|
|
+ jsBizMultLan.perf_perfscoreNewJuicer_1592900104294_i18n_7,
|
|
|
+ jsBizMultLan.perf_perfscoreNewJuicer_1592900104294_i18n_8,
|
|
|
+ jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_28,
|
|
|
+ jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_57,
|
|
|
+ jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_13
|
|
|
+ ],
|
|
|
+ model: [
|
|
|
+ {name: 'index', index: 'index', width: 30, align: "left", dataType: "int", sortable: true},
|
|
|
+ {name: 'periodName', index: 'periodName', width: 74, align: "left", dataType: "int", sortable: true},
|
|
|
+ {
|
|
|
+ name: 'periodType.alias',
|
|
|
+ index: 'periodType.alias',
|
|
|
+ width: 74,
|
|
|
+ align: "left",
|
|
|
+ dataType: "int",
|
|
|
+ sortable: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'perfModel.name',
|
|
|
+ index: 'perfModel.name',
|
|
|
+ width: 74,
|
|
|
+ align: "center",
|
|
|
+ dataType: "int",
|
|
|
+ sortable: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'lastSumScore',
|
|
|
+ index: 'lastSumScore',
|
|
|
+ width: 74,
|
|
|
+ align: "center",
|
|
|
+ dataType: "int",
|
|
|
+ sortable: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'lastGradeLevel',
|
|
|
+ index: 'lastGradeLevel',
|
|
|
+ width: 74,
|
|
|
+ align: "center",
|
|
|
+ dataType: "int",
|
|
|
+ sortable: true
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ multiselect: false,
|
|
|
+ multiselectWidth: '',//复选框单元格宽度
|
|
|
+ shrinkToFit: true,//true没有滚动条,false有滚动条
|
|
|
+ width: 640,//这个宽度不能为百分比
|
|
|
+ height: 298,//高度,表格高度。可为数值、百分比或'auto'
|
|
|
+ postData: {
|
|
|
+ rows: 15,
|
|
|
+ page: 1,
|
|
|
+ sord: "DESC",
|
|
|
+ type: '5',
|
|
|
+ evaObj: evaObj
|
|
|
+ },
|
|
|
+ loadComplete: function (data) { //完成服务器请求后,回调函数
|
|
|
+ if (data.rows == undefined || data.records == 0) { //如果没有记录返回,追加提示信息,删除按钮不可用
|
|
|
+ $('#perfHistorytab').find('.norecord td').eq(0).html('').append(
|
|
|
+ '<div class="PromptEmptyData_td">' +
|
|
|
+ '<div class="promptimg_td"></div>' +
|
|
|
+ '<div class="prompttext">'+
|
|
|
+ jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_22+
|
|
|
+ '</div>' +
|
|
|
+ '</div>'
|
|
|
+ );//无数据时的提示样式
|
|
|
+ }
|
|
|
+ }
|
|
|
+ };
|
|
|
+ it.initjqGridTable($('#perfHistorytab'), options);
|
|
|
+ //it.loadingHistoryData($('#perfHistorytab'));
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 加载jqGrid表格数据
|
|
|
+ * @param obj
|
|
|
+ */
|
|
|
+ loadingHistoryData: function (obj) {
|
|
|
+ // var data = [//测试数据
|
|
|
+ // {
|
|
|
+ // 'perfPlan': '总部骨干员工升迁考核(2014.01.01-01.31)',
|
|
|
+ // 'perfModel': 'KPI',
|
|
|
+ // 'scoreSystem': '五分制',
|
|
|
+ // 'totalScore': '4.8',
|
|
|
+ // 'level': 'A'
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // 'perfPlan': '销售线考核计划(2015.01.01-12.31)',
|
|
|
+ // 'perfModel': 'PBC',
|
|
|
+ // 'scoreSystem': '十分制',
|
|
|
+ // 'totalScore': '8.9',
|
|
|
+ // 'level': 'B'
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // 'perfPlan': '总部骨干员工升迁考核(2014.01.01-01.31)',
|
|
|
+ // 'perfModel': 'KPI',
|
|
|
+ // 'scoreSystem': '五分制',
|
|
|
+ // 'totalScore': '4.8',
|
|
|
+ // 'level': 'A'
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // 'perfPlan': '销售线考核计划(2015.01.01-12.31)',
|
|
|
+ // 'perfModel': 'PBC',
|
|
|
+ // 'scoreSystem': '十分制',
|
|
|
+ // 'totalScore': '8.9',
|
|
|
+ // 'level': 'B'
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // 'perfPlan': '总部骨干员工升迁考核(2014.01.01-01.31)',
|
|
|
+ // 'perfModel': 'KPI',
|
|
|
+ // 'scoreSystem': '五分制',
|
|
|
+ // 'totalScore': '4.8',
|
|
|
+ // 'level': 'A'
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // 'perfPlan': '销售线考核计划(2015.01.01-12.31)',
|
|
|
+ // 'perfModel': 'PBC',
|
|
|
+ // 'scoreSystem': '十分制',
|
|
|
+ // 'totalScore': '8.9',
|
|
|
+ // 'level': 'B'
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // 'perfPlan': '总部骨干员工升迁考核(2014.01.01-01.31)',
|
|
|
+ // 'perfModel': 'KPI',
|
|
|
+ // 'scoreSystem': '五分制',
|
|
|
+ // 'totalScore': '4.8',
|
|
|
+ // 'level': 'A'
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // 'perfPlan': '销售线考核计划(2015.01.01-12.31)',
|
|
|
+ // 'perfModel': 'PBC',
|
|
|
+ // 'scoreSystem': '十分制',
|
|
|
+ // 'totalScore': '8.9',
|
|
|
+ // 'level': 'B'
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // 'perfPlan': '总部骨干员工升迁考核(2014.01.01-01.31)',
|
|
|
+ // 'perfModel': 'KPI',
|
|
|
+ // 'scoreSystem': '五分制',
|
|
|
+ // 'totalScore': '4.8',
|
|
|
+ // 'level': 'A'
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // 'perfPlan': '销售线考核计划(2015.01.01-12.31)',
|
|
|
+ // 'perfModel': 'PBC',
|
|
|
+ // 'scoreSystem': '十分制',
|
|
|
+ // 'totalScore': '8.9',
|
|
|
+ // 'level': 'B'
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // 'perfPlan': '总部骨干员工升迁考核(2014.01.01-01.31)',
|
|
|
+ // 'perfModel': 'KPI',
|
|
|
+ // 'scoreSystem': '五分制',
|
|
|
+ // 'totalScore': '4.8',
|
|
|
+ // 'level': 'A'
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // 'perfPlan': '销售线考核计划(2015.01.01-12.31)',
|
|
|
+ // 'perfModel': 'PBC',
|
|
|
+ // 'scoreSystem': '十分制',
|
|
|
+ // 'totalScore': '8.9',
|
|
|
+ // 'level': 'B'
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // 'perfPlan': '总部骨干员工升迁考核(2014.01.01-01.31)',
|
|
|
+ // 'perfModel': 'KPI',
|
|
|
+ // 'scoreSystem': '五分制',
|
|
|
+ // 'totalScore': '4.8',
|
|
|
+ // 'level': 'A'
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // 'perfPlan': '销售线考核计划(2015.01.01-12.31)',
|
|
|
+ // 'perfModel': 'PBC',
|
|
|
+ // 'scoreSystem': '十分制',
|
|
|
+ // 'totalScore': '8.9',
|
|
|
+ // 'level': 'B'
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // 'perfPlan': '总部骨干员工升迁考核(2014.01.01-01.31)',
|
|
|
+ // 'perfModel': 'KPI',
|
|
|
+ // 'scoreSystem': '五分制',
|
|
|
+ // 'totalScore': '4.8',
|
|
|
+ // 'level': 'A'
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // 'perfPlan': '销售线考核计划(2015.01.01-12.31)',
|
|
|
+ // 'perfModel': 'PBC',
|
|
|
+ // 'scoreSystem': '十分制',
|
|
|
+ // 'totalScore': '8.9',
|
|
|
+ // 'level': 'B'
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // 'perfPlan': '总部骨干员工升迁考核(2014.01.01-01.31)',
|
|
|
+ // 'perfModel': 'KPI',
|
|
|
+ // 'scoreSystem': '五分制',
|
|
|
+ // 'totalScore': '4.8',
|
|
|
+ // 'level': 'A'
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // 'perfPlan': '销售线考核计划(2015.01.01-12.31)',
|
|
|
+ // 'perfModel': 'PBC',
|
|
|
+ // 'scoreSystem': '十分制',
|
|
|
+ // 'totalScore': '8.9',
|
|
|
+ // 'level': 'B'
|
|
|
+ // },
|
|
|
+ // ];
|
|
|
+ // for (var i = 0; i < data.length; i++) {
|
|
|
+ // obj.jqGrid("addRowData", i, data[i]);
|
|
|
+ // }
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 打回弹出框
|
|
|
+ */
|
|
|
+ backTo: function () {
|
|
|
+ $('#backTo').unbind('click').bind('click', function () {
|
|
|
+ //先校验是否允许打回
|
|
|
+ var flag = it.checkIsOpenF7();
|
|
|
+ if(flag){
|
|
|
+ var subWidgetOptions = {
|
|
|
+ title: jsBizMultLan.perfweb_perfscore_1586254513646_i18n_53,
|
|
|
+ uipk: "com.kingdee.shr.perfweb.app.base.evalrule.EvaluFormAreaBase.F7",
|
|
|
+ //query:"com.kingdee.shr.perfweb.app.base.evalplan.AreaBaseWorkFlowQuery",
|
|
|
+ multiselect: true,
|
|
|
+ filter: "evaObj.id ='" + evaObj + "' and gradeTaskNode.taskStatus = '1'"
|
|
|
+ };
|
|
|
+ $("#backTo").shrPromptGrid(subWidgetOptions);
|
|
|
+ $("#backTo").shrPromptGrid("open");
|
|
|
+
|
|
|
+ $("#backTo").shrPromptGrid("option", {
|
|
|
+ afterCommitClick: function (e, value) {
|
|
|
+ var datas = value.datas;
|
|
|
+ var ids = new Array();
|
|
|
+ if(datas){
|
|
|
+ for(var i = 0; i < datas.length; i++){
|
|
|
+ ids.push(datas[i]["gradeTaskNode.id"]);
|
|
|
+ }
|
|
|
+ it.realBack(ids);
|
|
|
+ }else{
|
|
|
+ shr.showWarning({
|
|
|
+ message: jsBizMultLan.perfweb_perfscore_1586254513646_i18n_40
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }else{
|
|
|
+ it.realBack(gradeTaskNode);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ checkIsOpenF7 : function(){
|
|
|
+ var flag = '';
|
|
|
+ it.remoteCall({
|
|
|
+ method: "checkOpenF7",
|
|
|
+ param: {
|
|
|
+ evaObj: evaObj
|
|
|
+ },
|
|
|
+ async: false,
|
|
|
+ success: function (data) {
|
|
|
+ flag = data.flag;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return flag;
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 打回弹出框
|
|
|
+ */
|
|
|
+ realBack: function (ids) {
|
|
|
+ var canBackTo = true;
|
|
|
+ var message = null;
|
|
|
+ that.remoteCall({
|
|
|
+ method: "judgeCanBackToUpLevel",
|
|
|
+ param: {
|
|
|
+ gradeTasknode: ids.toString()
|
|
|
+ },
|
|
|
+ async: false,
|
|
|
+ success: function (data) {
|
|
|
+ if (data.result != '200') {
|
|
|
+ message = data.message;
|
|
|
+ canBackTo = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ if (!canBackTo) {
|
|
|
+ shr.showWarning({message: message});
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ var backHTML = '<div id="backToUpLevel">' +
|
|
|
+ '<p class="note-title">'+
|
|
|
+ '<span>'+jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_7+
|
|
|
+ '</p>' +
|
|
|
+ '<p><span class="textareawrap">'+
|
|
|
+ '<textarea id="backReason" placeholder="'+
|
|
|
+ shr.formatMsg(jsBizMultLan.perf_perfscoreNew_202305061455_i18n_0,
|
|
|
+ [2000])+
|
|
|
+ '" style="width:650px!important;height:130px!important;"></textarea></span></p>'+
|
|
|
+ '<p class="note-title">'+
|
|
|
+ // '<span>通知方式:</span>'+
|
|
|
+ '<span>'+jsBizMultLan.perf_perfscoreNew_b10_15626131368_1+'</span>'+
|
|
|
+ // '<p >通知上一节点评分人:</p>'+
|
|
|
+ '<span class="note-obj">'+jsBizMultLan.perf_perfscoreNew_b10_15626131368_0+'</span>'+
|
|
|
+ '</p>'+
|
|
|
+ '<div id="pickReminderDialog" >'+
|
|
|
+ '<div class="type-box">'+
|
|
|
+ '<div>'+
|
|
|
+ '<input id="msgReminder" type="checkbox" value="msg">'+
|
|
|
+ // '<label for="msgReminder" class ="checked">消息通知</label>'+
|
|
|
+ '<label for="msgReminder" class ="checked">'+jsBizMultLan.perf_perfscoreNew_b10_15626131368_2+
|
|
|
+ '</label>'+
|
|
|
+ '</div>'+
|
|
|
+ '<div>'+
|
|
|
+ '<input id="emailReminder" type="checkbox" value="email">'+
|
|
|
+ // '<label for="emailReminder">邮件</label>'+
|
|
|
+ '<label for="emailReminder">'+jsBizMultLan.perf_perfscoreNew_b10_15626131368_3+
|
|
|
+ '</label>'+
|
|
|
+ '</div>'+
|
|
|
+ '<div>'+
|
|
|
+ '<input id="SMSReminder" type="checkbox" value="sms">'+
|
|
|
+ // '<label for="SMSReminder">短信</label>'+
|
|
|
+ '<label for="SMSReminder">'+jsBizMultLan.perf_perfscoreNew_b10_15626131368_4+
|
|
|
+ '</label>'+
|
|
|
+ '</div>'+
|
|
|
+ '<div>'+
|
|
|
+ '<input id="cloudReminder" type="checkbox" value="msg">'+
|
|
|
+ // '<label for="msgReminder">通知</label>'+
|
|
|
+ '<label for="cloudReminder">'+jsBizMultLan.perf_perfscoreNew_bw0416_01+
|
|
|
+ '</label>'+
|
|
|
+ '</div>'+
|
|
|
+ '</div>'+
|
|
|
+ '</div>'+
|
|
|
+ '</div>';
|
|
|
+ $(document.body).append(backHTML);
|
|
|
+ $('#msgReminder, #emailReminder, #SMSReminder, #cloudReminder').shrCheckbox();
|
|
|
+ $('#msgReminder, #emailReminder, #SMSReminder,#cloudReminder').shrCheckbox('onChange', function(){
|
|
|
+ var id = $(this).attr('id');
|
|
|
+ if($(this).shrCheckbox('getValue')){
|
|
|
+ $('label[for="'+id+'"]').addClass('checked');
|
|
|
+ }else{
|
|
|
+ $('label[for="'+id+'"]').removeClass('checked');
|
|
|
+ }
|
|
|
+ });
|
|
|
+ $("#backToUpLevel").show();
|
|
|
+ // 将弹出对话框弹出
|
|
|
+ $('#backToUpLevel').dialog({
|
|
|
+ title: jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_5,
|
|
|
+ autoOpen: true,
|
|
|
+ show: "blind",
|
|
|
+ width: 700,
|
|
|
+ height: 406,
|
|
|
+ resizable: true,
|
|
|
+ position: ['center', 'center'],
|
|
|
+ modal: true,
|
|
|
+ buttons: [{
|
|
|
+ text:jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_42,
|
|
|
+ click: function () {
|
|
|
+ var backReason = $("#backReason").val();
|
|
|
+ var SMSType = "NOSEND";
|
|
|
+ var emailType = "NOSEND";
|
|
|
+ var portalType = "NOSEND";
|
|
|
+ var yzjMsgType = "NOSEND";
|
|
|
+
|
|
|
+ var meg = $('#megReminder').shrCheckbox('isSelected');
|
|
|
+ var email = $('#emailReminder').shrCheckbox('isSelected');
|
|
|
+ var SMS = $('#SMSReminder').shrCheckbox('isSelected');
|
|
|
+ var yzj = $('#YZJReminder').shrCheckbox('isSelected');
|
|
|
+ if (SMS) {
|
|
|
+ SMSType = "SEND"
|
|
|
+ }
|
|
|
+ if (email) {
|
|
|
+ emailType = "SEND"
|
|
|
+ }
|
|
|
+ if (meg) {
|
|
|
+ portalType = "SEND"
|
|
|
+ }
|
|
|
+ if (yzj) {
|
|
|
+ yzjMsgType = "SEND";
|
|
|
+ }
|
|
|
+ var _this = this;
|
|
|
+ that.remoteCall({
|
|
|
+ method: "backToUpLevel",
|
|
|
+ param: {
|
|
|
+ evaObjIds: evaObj,
|
|
|
+ gradeTaskNodeIds: ids.toString(),
|
|
|
+ backReason: backReason,
|
|
|
+ SMSType: SMSType,
|
|
|
+ emailType: emailType,
|
|
|
+ portalType: portalType,
|
|
|
+ yzjMsgType: yzjMsgType
|
|
|
+ },
|
|
|
+ async: false,
|
|
|
+ success: function (data) {
|
|
|
+ //打回成功刷新评估对象列表
|
|
|
+ that.initLeftList();
|
|
|
+ $(_this).dialog("destroy").remove();
|
|
|
+ shr.showInfo({message: data.msg});
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }},{
|
|
|
+ text:jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_40,
|
|
|
+ click: function () {
|
|
|
+ $(this).dialog("destroy").remove();
|
|
|
+ }
|
|
|
+ }]
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 个人评分菜单
|
|
|
+ */
|
|
|
+ initScoreItems: function () {
|
|
|
+ var scoreMenuHTML = null; //评分区域列表
|
|
|
+ // 加载区域指标表格部分
|
|
|
+ globalIndicatorData.entryType = entryType;
|
|
|
+ scoreMenuHTML = juicer(scoreTabsTpl, globalIndicatorData);
|
|
|
+ $(scoreMenuHTML).appendTo($('.scoreItems'));
|
|
|
+ // var hideNodeWeight = $('#hideNodeWeight').text();
|
|
|
+ if(hideNodeWeight === 'true'){ // 是否隐藏节点权重:{true:是;false:否}
|
|
|
+ $('span[name="snodeWeight"]').hide();
|
|
|
+ }else{
|
|
|
+ $('span[name="snodeWeight"]').show();
|
|
|
+ }
|
|
|
+ that.submitScoreClickEvent(); //评分提交事件
|
|
|
+ that.saveScoreEvent(); //评分保存事件
|
|
|
+ it.delgoal(); //目标删除事件
|
|
|
+ it.scoreMenuListClick(); //指标点击事件
|
|
|
+ it.wholeCommentListener();
|
|
|
+ it.scoreInpListener();
|
|
|
+ $('div[name="editScoreDiv"] input[type="text"]').eq(0).focus().select();
|
|
|
+ it.initWholeComment();
|
|
|
+ it.initOthersScore();
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 整体评价监听字数
|
|
|
+ */
|
|
|
+ wholeCommentListener: function () {
|
|
|
+ $('#wholeComment textarea').live('input propertychange', function () {
|
|
|
+ var objVal = $(this).val();
|
|
|
+ var msgShow = $(this).closest('div[name="editTextareaDivForWholeComment"]').find("span[id='WHOLECOMMENT']");
|
|
|
+ var errObj = new Object();
|
|
|
+ existInArrThenDelete(_noPassVerifyArr, errObj);
|
|
|
+
|
|
|
+ var commentLen = objVal.length;
|
|
|
+ msgShow.text(shr.formatMsg(jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_35,
|
|
|
+ [2000,commentLen]));
|
|
|
+ msgShow.show();
|
|
|
+ _noPassVerifyArr.push(errObj);
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 监听评分回车事件
|
|
|
+ */
|
|
|
+ scoreInpListener: function () {
|
|
|
+ $('div[name="editScoreDiv"] input[type="text"]').keydown(function (event) {
|
|
|
+ if (event.keyCode == 13) {
|
|
|
+ var current_index = $('div[name="editScoreDiv"] input[type="text"]').index($(this));
|
|
|
+ if (current_index == $('div[name="editScoreDiv"] input[type="text"]').length - 1) {
|
|
|
+ $('div[name="editScoreDiv"] input[type="text"]').eq(0).focus().select();
|
|
|
+ } else {
|
|
|
+ $('div[name="editScoreDiv"] input[type="text"]').eq(current_index + 1).focus().select();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ //加载其他人评分
|
|
|
+ initOthersScore: function () {
|
|
|
+ scoreparams = it.getCurrentScoreParams();
|
|
|
+ $('.scoretabwrap').each(function(i){
|
|
|
+ // 初始化指标表格
|
|
|
+ it.initScoreTab(i,scoreparams);
|
|
|
+ })
|
|
|
+ $('.scoretabs').each(function(index){
|
|
|
+ var shrinkToFit = $(this).jqGrid('getGridParam','shrinkToFit');
|
|
|
+ $(this).jqGrid('setGridWidth',$('.scoretabwrap').eq(0).width(),shrinkToFit);
|
|
|
+ })
|
|
|
+ it.bindEvent();
|
|
|
+ it.initPerftips();
|
|
|
+ },
|
|
|
+ // 其他人评分信息列tips
|
|
|
+ initPerftips: function(){
|
|
|
+ $.perfTips.init({target:$('.expend-td-box')});
|
|
|
+ },
|
|
|
+
|
|
|
+ // 事件绑定
|
|
|
+ bindEvent: function(){
|
|
|
+ if (_needScore != "3") {
|
|
|
+ $("#totalScore").find("input").attr("disabled", "disabled");
|
|
|
+ }
|
|
|
+ // 查看其他人打分
|
|
|
+ // $('.view_other_btn').die('click').live('click',function(){
|
|
|
+ // var tabid = $(this).closest('table').attr('id');
|
|
|
+ // var rowid = $(this).closest('tr').attr('id');
|
|
|
+ // var rowData = $('#'+tabid).jqGrid('getOriginalRowData',rowid);
|
|
|
+ // var msgdata = it.getCurrentAndPrevScoreMsg(rowid);
|
|
|
+ // it.openOtherScoreDialog(msgdata,rowData);
|
|
|
+ // that.personHistoryParamControl();
|
|
|
+ // })
|
|
|
+ $('.expend-btn').die('click').live('click',function(){
|
|
|
+ // var ul = $(this).closest('td').find('ul');
|
|
|
+ // if(ul.hasClass('show-more')){
|
|
|
+ // ul.removeClass('show-more');
|
|
|
+ // }else{
|
|
|
+ // ul.addClass('show-more');
|
|
|
+ // }
|
|
|
+ var pre = $(this).closest('td').find('pre');
|
|
|
+ if(pre.hasClass('textOverflow3')){
|
|
|
+ pre.removeClass('textOverflow3');
|
|
|
+ }else{
|
|
|
+ pre.addClass('textOverflow3');
|
|
|
+ }
|
|
|
+ })
|
|
|
+ // 编辑指标评语字段
|
|
|
+// $('.commentcell').die('click').live('click',function(){
|
|
|
+// //打总分不能输入指标评语
|
|
|
+// if (_needScore == '3') {
|
|
|
+// return;
|
|
|
+// }
|
|
|
+// var tabid = $(this).closest('table').attr('id');
|
|
|
+// var rowid = $(this).closest('tr').attr('id');
|
|
|
+// var rowData = $('#'+tabid).jqGrid('getOriginalRowData',rowid);
|
|
|
+// it.openCommentDialog(tabid,rowid,rowData);
|
|
|
+// })
|
|
|
+ // 点击序号,查看指标其他字段
|
|
|
+ $('.scoretabs tr').die('click').live('click',function(){
|
|
|
+ var areaIndex = $(this).closest('table').attr('areaindex');
|
|
|
+ var areadata = globalIndicatorData.rows.evaAreaList[areaIndex];
|
|
|
+ var trIndex = $(this).index() - 1;
|
|
|
+ var indicatorDatalist = areadata.evaIndicatorList || areadata.evaRecordList;
|
|
|
+ var indicatorData = indicatorDatalist[trIndex];
|
|
|
+ var isClosedPrev = $('.fieldsboxhide:visible').hasClass('small');
|
|
|
+ indicatorData.areaType = areadata.areaType;
|
|
|
+ indicatorData.scoringWay = areadata.scoringWay;
|
|
|
+ indicatorData.fieldslist = it.getTargetData(areadata.fieldList, indicatorData);
|
|
|
+ $('.fieldsboxhide').hide();
|
|
|
+ if($(shr.xssFilter('.fieldsboxhide[indid="'+indicatorData.FID+'"]')).length > 0){
|
|
|
+ // $('.fieldsboxhide[indid="'+indicatorData.FID+'"]').show();
|
|
|
+ _thisbox = $(shr.xssFilter('.fieldsboxhide[indid="'+indicatorData.FID+'"]'));
|
|
|
+ if(_thisbox.find('.field-line').length > 0){
|
|
|
+ _thisbox.show();
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ indicatorDetailHTML = juicer(indicatorDetailTpl, {rows:[indicatorData]});
|
|
|
+ _thisbox = $(indicatorDetailHTML);
|
|
|
+ if(_thisbox.find('.field-line').length > 0){
|
|
|
+ _thisbox.show();
|
|
|
+ $(indicatorDetailHTML).appendTo($('.indicator-box'));
|
|
|
+ }
|
|
|
+ $('.fieldsboxhide').css({
|
|
|
+ 'height': $('.centercontainer').height() + 'px'
|
|
|
+ })
|
|
|
+ if(it.fixedboxWidth){
|
|
|
+ $('.fieldsboxhide').css({
|
|
|
+ 'width': it.fixedboxWidth + 'px'
|
|
|
+ })
|
|
|
+ }
|
|
|
+ // if($('.fieldsboxhide:visible').find('.field-line').length == 0){
|
|
|
+ // $('.fieldsboxhide:visible').find('.emptywrap').show();
|
|
|
+ // }
|
|
|
+ }
|
|
|
+ var isClosedCurr = $(shr.xssFilter('.fieldsboxhide[indid="'+indicatorData.FID+'"]')).hasClass('small');
|
|
|
+ if(isClosedPrev){ // 其他信息是否展开控制
|
|
|
+ if(!isClosedCurr){
|
|
|
+ $(shr.xssFilter('.fieldsboxhide[indid="'+indicatorData.FID+'"]')).addClass('small');
|
|
|
+ }
|
|
|
+ $('.centercontainer').addClass('big');
|
|
|
+ }else{
|
|
|
+ if(isClosedCurr){
|
|
|
+ $(shr.xssFilter('.fieldsboxhide[indid="'+indicatorData.FID+'"]')).removeClass('small');
|
|
|
+ }
|
|
|
+ $('.centercontainer').removeClass('big');
|
|
|
+ }
|
|
|
+ $('.scoretabs').each(function(index){
|
|
|
+ var shrinkToFit = $(this).jqGrid('getGridParam','shrinkToFit');
|
|
|
+ $(this).jqGrid('setGridWidth',$('.scoretabwrap').eq(0).width(),shrinkToFit);
|
|
|
+ })
|
|
|
+ })
|
|
|
+ // 指标其他字段框控制按钮点击事件
|
|
|
+ $('.fixedboxctrlbtn').die('click').live('click',function(){
|
|
|
+ var fixedbox = $(this).closest('.fieldsboxhide');
|
|
|
+ var centerbox = $('.centercontainer');
|
|
|
+ if($(this).hasClass('isclose')){
|
|
|
+ centerbox.removeClass('big');
|
|
|
+ fixedbox.removeClass('small');
|
|
|
+ $(this).removeClass('isclose');
|
|
|
+ }else{
|
|
|
+ centerbox.addClass('big');
|
|
|
+ fixedbox.addClass('small');
|
|
|
+ $(this).addClass('isclose');
|
|
|
+ }
|
|
|
+ $('.scoretabs').each(function(index){
|
|
|
+ var shrinkToFit = $(this).jqGrid('getGridParam','shrinkToFit');
|
|
|
+ $(this).jqGrid('setGridWidth',$('.scoretabwrap').eq(0).width(),shrinkToFit);
|
|
|
+ })
|
|
|
+ })
|
|
|
+
|
|
|
+ it.bindDragEvent()
|
|
|
+
|
|
|
+ },
|
|
|
+
|
|
|
+ // 拖拽改变宽度事件
|
|
|
+ bindDragEvent: function(){
|
|
|
+ $("#splitDiv").mouseover(function(e) {
|
|
|
+ $(this).css("cursor", "e-resize");
|
|
|
+ $('.centercontainer').addClass('noselect');
|
|
|
+ });
|
|
|
+ $("#splitDiv").mousedown(function(e) {
|
|
|
+ $(this).css("cursor", "e-resize");
|
|
|
+ $("body").mousemove(function(eve) {
|
|
|
+ var _x = eve.pageX - $('.centercontainer').offset().left;
|
|
|
+ $(".centercontainer").animate({
|
|
|
+ width: _x
|
|
|
+ }, 1);
|
|
|
+ $(".fieldsboxhide").animate({
|
|
|
+ width: $('.content_right').width() - _x - 4
|
|
|
+ }, 1);
|
|
|
+ it.fixedboxWidth = $('.content_right').width() - _x - 4;
|
|
|
+ clearTextSelect()
|
|
|
+ })
|
|
|
+ });
|
|
|
+ $("body").mouseup(function(e) {
|
|
|
+ $(this).unbind("mousemove");
|
|
|
+ $(this).css("cursor", "default");
|
|
|
+ $('.scoretabs').each(function(index){
|
|
|
+ var shrinkToFit = $(this).jqGrid('getGridParam','shrinkToFit');
|
|
|
+ $(this).jqGrid('setGridWidth',$('.scoretabwrap').eq(0).width(),shrinkToFit);
|
|
|
+ })
|
|
|
+ $('.centercontainer').removeClass('noselect');
|
|
|
+ // 由于jqgrid组件的savecell方法,会定位到被保存的单元格,所以自动算分的方式修改一下,否则点了评分 整体评价文本框就不能输入包含整体等级,所以注释掉一下代码
|
|
|
+ // var ariaDescribedby = $(e.target).attr('aria-describedby') || $(e.target).closest('td').attr('aria-describedby') || '';
|
|
|
+ // if(lastTable && $(e.target).closest('table').attr('id') != lastTable.substring(1) && !$(e.target).closest('div').hasClass('selectPage')&& !$(e.target).closest('ul').hasClass('messenger')){
|
|
|
+ // $(lastTable).jqGrid("saveCell",lastrow,lastcell);
|
|
|
+ // }
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ // 组装重新组装目标数据结构
|
|
|
+ getTargetData: function(fieldList,item){
|
|
|
+ var targetData = [];
|
|
|
+ for(var i = 0; i < fieldList.length; i++){
|
|
|
+ targetData.push(fieldList[i]);
|
|
|
+ targetData[i].fieldvalue = item[fieldList[i].colName];
|
|
|
+ }
|
|
|
+ return targetData;
|
|
|
+ },
|
|
|
+
|
|
|
+ // 初始化查看其他人评分弹框
|
|
|
+ // openOtherScoreDialog: function(otherScoreList,rowData){
|
|
|
+ // var hideNodeWeightVal = false;
|
|
|
+ // if(pageSource !=undefined && pageSource=="PERSONHISTORY"){
|
|
|
+ // // var hideNodeWeight = $("#hideNodeWeight").text(); //是否隐藏节点权重
|
|
|
+ // if(hideNodeWeight == 'true'){
|
|
|
+ // hideNodeWeightVal = true;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // otherScoreList.currentGradeTaskNode=gradeTaskNode;
|
|
|
+ // var otherScoreDialogHTML = juicer(otherScoreDialogTpl, {
|
|
|
+ // list: otherScoreList,
|
|
|
+ // hideNodeWeightVal: hideNodeWeightVal,
|
|
|
+ // indicator: rowData.id+'Itag0',
|
|
|
+ // isQualityIndicator: rowData.FQUALIORRATION,
|
|
|
+ // isExistComment: rowData.hasOwnProperty('FCOMMENT') ? 1 : 0,
|
|
|
+ // commentName: rowData.commentName,
|
|
|
+ // isShowHandlerWeight: isShowHandlerWeight
|
|
|
+ // });
|
|
|
+ // $(document.body).append(otherScoreDialogHTML);
|
|
|
+ // // 指标评语title显示设置
|
|
|
+ // $('.commentbtn').unbind('mouseover').bind('mouseover', function(){
|
|
|
+ // $('.commentbtn .evaluate').hide();
|
|
|
+ // $(this).find('.evaluate').show();
|
|
|
+ // })
|
|
|
+ // $('.commentbtn').unbind('mouseout').bind('mouseout', function(){
|
|
|
+ // $(this).find('.evaluate').hide();
|
|
|
+ // })
|
|
|
+
|
|
|
+ // var dialogtop = it.setDialogTopPos(500);
|
|
|
+ // $("#otherScoreDialog").dialog({
|
|
|
+ // autoOpen : true,
|
|
|
+ // // show : "blind",
|
|
|
+ // width : 800,
|
|
|
+ // height : 500,
|
|
|
+ // //title : "其他人评分",
|
|
|
+ // title : jsBizMultLan.perfweb_perfscoreNew_zw20201229_i18n_03,
|
|
|
+ // resizable : true,
|
|
|
+ // position : [ 'center', dialogtop ],
|
|
|
+ // modal : true,
|
|
|
+ // buttons: [
|
|
|
+ // {
|
|
|
+ // //'确定' : function() {
|
|
|
+ // text: $.perfwebI18n.perfwebMessageTool.msg1,
|
|
|
+ // click: function () {
|
|
|
+ // $(this).dialog('close');
|
|
|
+ // }
|
|
|
+ // },
|
|
|
+ // //'取消' : function() {
|
|
|
+ // {
|
|
|
+ // text: $.perfwebI18n.perfwebMessageTool.msg2,
|
|
|
+ // click: function () {
|
|
|
+ // $(this).dialog('close');
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // ],
|
|
|
+ // close : function(){
|
|
|
+ // $('#otherScoreDialog').remove();
|
|
|
+ // },
|
|
|
+ // open:function(event, ui){ //取消获取焦点
|
|
|
+ // $(this).parent().focus();
|
|
|
+ // }
|
|
|
+ // });
|
|
|
+ // },
|
|
|
+
|
|
|
+ // 打开指标评语弹框
|
|
|
+// openCommentDialog: function(tabid,rowid,rowData){
|
|
|
+// rowData.FCOMMENT = $(rowData.FCOMMENT)[0].innerHTML;
|
|
|
+// var commentDialogHTML = juicer(commentDialogTpl, {
|
|
|
+// list: rowData,
|
|
|
+// });
|
|
|
+// $(document.body).append(commentDialogHTML);
|
|
|
+// $('textarea.commentwrap').unbind('input propertychange').bind('input propertychange', function() {
|
|
|
+// targetCommentOnblur(this,'propertychange');
|
|
|
+// });
|
|
|
+
|
|
|
+// var dialogtop = it.setDialogTopPos(500);
|
|
|
+// $("#commentDialog").dialog({
|
|
|
+// autoOpen : true,
|
|
|
+// // show : "blind",
|
|
|
+// width : 800,
|
|
|
+// height : 500,
|
|
|
+// title : rowData.commentName,
|
|
|
+// resizable : true,
|
|
|
+// position : [ 'center', dialogtop ],
|
|
|
+// modal : true,
|
|
|
+// buttons: [
|
|
|
+// {
|
|
|
+// //'确定' : function() {
|
|
|
+// text: $.perfwebI18n.perfwebMessageTool.msg1,
|
|
|
+// click: function () {
|
|
|
+// var commentval = $('.commentwrap').val();
|
|
|
+// if (commentval) {
|
|
|
+// $('#' + tabid).jqGrid('setCell', rowid, 'FCOMMENT', commentval.trim());
|
|
|
+// } else {
|
|
|
+// $('#' + tabid).jqGrid('setCell', rowid, 'FCOMMENT', null);
|
|
|
+// }
|
|
|
+// $(this).dialog('close');
|
|
|
+// }
|
|
|
+// },
|
|
|
+// {
|
|
|
+// //'取消' : function() {
|
|
|
+// text: $.perfwebI18n.perfwebMessageTool.msg2,
|
|
|
+// click: function () {
|
|
|
+// $(this).dialog('close');
|
|
|
+// }
|
|
|
+// }],
|
|
|
+// close : function(){
|
|
|
+// $('#commentDialog').remove();
|
|
|
+// },
|
|
|
+// open:function(event, ui){ //取消获取焦点
|
|
|
+// $(this).parent().focus();
|
|
|
+// if(!canEditTable){
|
|
|
+// $('.commentwrap').attr('disabled',true);
|
|
|
+// }
|
|
|
+// }
|
|
|
+// });
|
|
|
+// },
|
|
|
+
|
|
|
+ // 计算iframe内弹框竖直方向位置
|
|
|
+ setDialogTopPos: function(dialogHeight){
|
|
|
+ var dialogtop = 'center';
|
|
|
+ var winheight = $(window.top).height();
|
|
|
+ var winscrolltop = $(window.top).scrollTop();
|
|
|
+ if(self != top){
|
|
|
+ dialogtop = (winheight - dialogHeight)/2 + winscrolltop - 80; // dialogHeight: 弹框高度 80:header高度
|
|
|
+ }
|
|
|
+ return dialogtop;
|
|
|
+ },
|
|
|
+
|
|
|
+ // 加载当前节点和之前节点的整体评价信息
|
|
|
+ initWholeComment: function () {
|
|
|
+ this.remoteCall({
|
|
|
+ method: "getCurrentAndPrevWholeComment",
|
|
|
+ param: {
|
|
|
+ evaObj: evaObj,
|
|
|
+ handlerId: personId,
|
|
|
+ currentNodeLevel: currentNodeLevel,
|
|
|
+ myType: myType,
|
|
|
+ gradeTaskNode: gradeTaskNode,
|
|
|
+ viewMode: viewMode,
|
|
|
+ isModifyScore: isModifyScore,
|
|
|
+ isShowAuditedWholeForm : isShowAuditedWholeForm,
|
|
|
+ isManualJudgeGrade : isManualJudgeGrade
|
|
|
+ },
|
|
|
+ async: false,
|
|
|
+ success: function (data) {
|
|
|
+ if (data != null) {
|
|
|
+ _wholeCommentIsMustArr = new Array();
|
|
|
+ var dataLen = data.length;
|
|
|
+ for(var i=0; i<dataLen; i++){
|
|
|
+ var wholeCommentParam = new Object();
|
|
|
+ wholeCommentParam.gradeTaskNode = data[i].gradeTaskNode;
|
|
|
+ wholeCommentParam.wholeCommentIsMust = data[i].wholeCommentIsMust;
|
|
|
+ _wholeCommentIsMustArr.push(wholeCommentParam);
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($("#wholeComment").find(".details").children().length > 0) {
|
|
|
+ $("#wholeComment").find(".details").empty();
|
|
|
+ var $wholeCommentDiv = $('#wholeCommentDiv');
|
|
|
+ if ($wholeCommentDiv && $wholeCommentDiv.length > 0) {
|
|
|
+ $wholeCommentDiv.remove();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ that.createWholeCommentHtml(data); //生成整体评价区域
|
|
|
+ that.personHistoryParamControl();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ /*
|
|
|
+ * 组装评分数据
|
|
|
+ * @return scoreObj
|
|
|
+ * type: '1' 提交评分,需校验必填
|
|
|
+ * */
|
|
|
+ assembleScoreData: function (type) {
|
|
|
+ globalErrorMsg = [];
|
|
|
+ var dataList = new Array();
|
|
|
+ var scoreObj = new Object();
|
|
|
+ var htmlObj = $(".scoretabs");
|
|
|
+ var currentEdieTextArea = $("div[name='editTextareaDivForWholeComment']");
|
|
|
+ var indeicatorDatas = [];
|
|
|
+ var subAreaChecked = true; // 加减分区域,区域上下限校验
|
|
|
+ var subAreaCheckedMsg = '';
|
|
|
+ for(var i = 0; i < htmlObj.length; i++){
|
|
|
+ var idata = $('#scoreTab_'+i).jqGrid('getRowData');
|
|
|
+ var _subAreaType = '';
|
|
|
+ var _areaAddSub = '';
|
|
|
+ var _areaAddSubDown = '';
|
|
|
+ var _areaAddSubUp = '';
|
|
|
+ var areaSumScore0 = 0;
|
|
|
+ for(var j = 0; j < idata.length; j++){
|
|
|
+ if(j == 0){
|
|
|
+ _subAreaType = idata[j].subAreaType;
|
|
|
+ _areaAddSub = idata[j].areaAddSub;
|
|
|
+ _areaAddSubDown = idata[j].areaAddSubDown;
|
|
|
+ _areaAddSubUp = idata[j].areaAddSubUp;
|
|
|
+ }
|
|
|
+ idata[j].tabIndex = i.toString();
|
|
|
+ indeicatorDatas.push(idata[j]);
|
|
|
+ if (_subAreaType == "1" && _areaAddSub == "1") {
|
|
|
+ var s0 = idata[j].FSCORE;
|
|
|
+ if (s0) {
|
|
|
+ areaSumScore0 += parseFloat(s0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if ("" != _areaAddSubDown && parseFloat(_areaAddSubDown) > areaSumScore0) {
|
|
|
+ subAreaCheckedMsg = $.perfwebI18n.tableConstant.msg14 + _areaAddSubDown;
|
|
|
+ subAreaChecked = false;
|
|
|
+ }
|
|
|
+ if ("" != _areaAddSubUp && parseFloat(_areaAddSubUp) < areaSumScore0) {
|
|
|
+ subAreaCheckedMsg = $.perfwebI18n.tableConstant.msg15 + _areaAddSubUp;
|
|
|
+ subAreaChecked = false;
|
|
|
+ }
|
|
|
+ if(!subAreaChecked){
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(!subAreaChecked){
|
|
|
+ shr.showWarning({
|
|
|
+ message: subAreaCheckedMsg,
|
|
|
+ hideAfter: 3
|
|
|
+ })
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ for (var n = 0; n < $("div[name='editTextareaDivForWholeComment']").size(); n++) {
|
|
|
+ var scoreObj = new Object();
|
|
|
+ var scoreList = new Array();
|
|
|
+ var currentEditTextareaDom = $("div[name='editTextareaDivForWholeComment']")[n];
|
|
|
+ var wholeComment = $(currentEditTextareaDom).find("textarea").val();
|
|
|
+ scoreObj.wholeComment = wholeComment;
|
|
|
+ for (var i = 0; i < indeicatorDatas.length; i++) {
|
|
|
+ // 考虑到会有同一个人处理并发评分的情况,因此增加节点Id的判断
|
|
|
+ if($(currentEditTextareaDom).attr('gradenode') == indeicatorDatas[i].gradeTaskNode){
|
|
|
+ var scoreObject = new Object();
|
|
|
+ var score = null;
|
|
|
+ var nodeGrade = '';
|
|
|
+
|
|
|
+ //BT1354967 yien_fan 打等级的定量指标显示分数
|
|
|
+ //判断评分输入框是否存在,国贸需求,在不允许评分的情况下也显示指标评语
|
|
|
+ if(_gneedScoreArr.length>=2){
|
|
|
+ for(var m=0; m<_gneedScoreArr.length; m++){
|
|
|
+ if(_gneedScoreArr[m].gradeTaskNode == indeicatorDatas[i].gradeTaskNode){
|
|
|
+ _needScore = _gneedScoreArr[m].needScore;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (_needScore == 1 || _needScore == 2|| _needScore == '3') {
|
|
|
+ if (indeicatorDatas[i].FQUALIORRATION == '1' || _gscoreOrRate == 0 || (_gscoreOrRate == 1 && indeicatorDatas[i].subAreaType === '1')) {
|
|
|
+ //判断是否为禁用的分数输入框
|
|
|
+ var $score = '';
|
|
|
+ score = indeicatorDatas[i].FSCORE; //取分数
|
|
|
+ _gcanNegative = indeicatorDatas[i].canNegative; //取是否允许评负分
|
|
|
+ //BT1354967 yien_fan 打等级的定量指标标志位特殊处理为打分
|
|
|
+ scoreObject.scoreOrRate = 0;
|
|
|
+ if (indeicatorDatas[i].FQUALIORRATION != 1 && indeicatorDatas[i].subAreaType !== '1') { // 可编辑评分时才校验 加减分区域不校验是否允许为负参数
|
|
|
+ var reg = /^\d+(\.\d{1,2})?$/;
|
|
|
+ var reg2 = /^-\d+(\.\d{1,2})?$/;
|
|
|
+ if (_gcanNegative == 1) {
|
|
|
+ if ("" != score && !reg2.test(score) && !reg.test(score) && score != undefined) {
|
|
|
+ scoreObj.scoreError = true;
|
|
|
+ }
|
|
|
+ } else if ("" != score && !reg.test(score) && score != undefined) {
|
|
|
+ scoreObj.scoreError = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 如果是定量指标,没有评分公式,且打等级
|
|
|
+ if(!indeicatorDatas[i].FSCORINGFORMULA && _gscoreOrRate == 1){
|
|
|
+ // 打等级,则取等级
|
|
|
+ scoreObject.scoreOrRate = 1;
|
|
|
+ var valueExistFlag = indeicatorDatas[i].nodeGrade == undefined || indeicatorDatas[i].nodeGrade == null || indeicatorDatas[i].nodeGrade == "";
|
|
|
+ nodeGrade = valueExistFlag ? "" : indeicatorDatas[i].nodeGrade.split("(")[0];; //取等级
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ var valueExistFlag = indeicatorDatas[i].nodeGrade == undefined || indeicatorDatas[i].nodeGrade == null || indeicatorDatas[i].nodeGrade == "";
|
|
|
+ nodeGrade = valueExistFlag ? "" : indeicatorDatas[i].nodeGrade.split("(")[0];; //取等级
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ var comment = '';
|
|
|
+ //判断指标评语框是否存在
|
|
|
+ if (indeicatorDatas[i].FCOMMENT) {
|
|
|
+ comment = $(indeicatorDatas[i].FCOMMENT).text();
|
|
|
+ }
|
|
|
+
|
|
|
+ var indicatorId = indeicatorDatas[i].id+'Itag0';
|
|
|
+ scoreObject.score = score;
|
|
|
+ scoreObject.nodeGrade = nodeGrade;
|
|
|
+ scoreObject.comment = comment;
|
|
|
+ scoreObject.actValue = $(indeicatorDatas[i].FACTUALCOMPLEVALUE).text();
|
|
|
+ scoreObject.targetVale = $(indeicatorDatas[i].FTARGETVALUE).text();
|
|
|
+ scoreObject.description = $(indeicatorDatas[i].FACTUALCOMPLETEDESC).text();
|
|
|
+ scoreObject.actulCompleteTime = indeicatorDatas[i].FACTUALCOMPLETETIME;
|
|
|
+ var FQUALIORRATION = indeicatorDatas[i].FQUALIORRATION;
|
|
|
+ var FSCORINGFORMULA = indeicatorDatas[i].FSCORINGFORMULA;
|
|
|
+ if(FQUALIORRATION === '1'){ // 新增无公式的判断,有公式不做校验
|
|
|
+ if(!isNumberVerify2(scoreObject.actValue , 1)){
|
|
|
+ scoreObj.actValError = true;
|
|
|
+ }
|
|
|
+ if(!isNumberVerify2(scoreObject.targetVale , 1)){
|
|
|
+ scoreObj.targetValError = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (scoreObject.description && scoreObject.description.length > 2000) {
|
|
|
+ scoreObj.desError = true;
|
|
|
+ }
|
|
|
+
|
|
|
+ //否决项评定
|
|
|
+ var isRejection = indeicatorDatas[i].isRejection;
|
|
|
+ scoreObject.isRejection = isRejection;
|
|
|
+ if (isRejection == 1) {
|
|
|
+ _gExistRejection = 1;
|
|
|
+ }
|
|
|
+ scoreObject.indicatorId = indicatorId;
|
|
|
+ //如果打分方式没有进行特殊处理,则取考核规则的
|
|
|
+ if (typeof scoreObject.scoreOrRate == "undefined") {
|
|
|
+ scoreObject.scoreOrRate = _gscoreOrRate;
|
|
|
+ }
|
|
|
+ // 扩展字段取值组装
|
|
|
+ var extendInfo = {}
|
|
|
+ for(var key in indeicatorDatas[i]){
|
|
|
+ var colName = 'fillOverwrite_'+key;
|
|
|
+ var colvalue = indeicatorDatas[i][key];
|
|
|
+ var colAttr = $('#scoreTab_'+indeicatorDatas[i].tabIndex).getColProp(key);
|
|
|
+ var classes = colAttr.classes;
|
|
|
+ var td = $('#scoreTab_'+indeicatorDatas[i].tabIndex+ ' tr[id="'+indeicatorDatas[i].id+'"] td[aria-describedby="scoreTab_'+indeicatorDatas[i].tabIndex+'_'+key+'"]');
|
|
|
+ if(colvalue.indexOf('class="cell-height scrollbarthin"') > -1){
|
|
|
+ colvalue = $(colvalue).text();
|
|
|
+ }
|
|
|
+ if(key.indexOf('FEXTEND') == 0){
|
|
|
+ extendInfo[key] = {
|
|
|
+ value: colvalue,
|
|
|
+ fillOverwrite: indeicatorDatas[i][colName]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(type === '1' && ((classes && classes.indexOf('required') > -1) || td.hasClass('required')) && !colvalue && colAttr.editable && !td.hasClass('not-editable-cell') && !colAttr.hidden){
|
|
|
+ globalErrorMsg.push({
|
|
|
+ fid: indeicatorDatas[i].id,
|
|
|
+ tabIndex: indeicatorDatas[i].tabIndex,
|
|
|
+ colName: key,
|
|
|
+ // msg: $('#jqgh_scoreTab_'+indeicatorDatas[i].tabIndex+'_'+key).text()+'不能为空'
|
|
|
+ msg: shr.formatMsg(jsBizMultLan.perf_perfscoreNew_20220826_i18n_2 ,[$('#jqgh_scoreTab_'+indeicatorDatas[i].tabIndex+'_'+key).text()])
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ scoreObject.extendInfo = extendInfo;
|
|
|
+ scoreList.push(scoreObject);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ scoreObj.scoreList = scoreList;
|
|
|
+ scoreObj.evaObj = evaObj;
|
|
|
+ scoreObj.gradeTaskNode = $(currentEditTextareaDom).attr('gradenode');
|
|
|
+ scoreObj.wholeGrade = $('[id="wholeGrade_' + scoreObj.gradeTaskNode + '"]').val();
|
|
|
+ scoreObj.isEditGrade = isEditGradesChange;
|
|
|
+ scoreObj.needScore=$('[id="wholeScore_' + scoreObj.gradeTaskNode+ '"]').attr("data-needScore");
|
|
|
+ scoreObj.sumScore = $('[id="wholeScore_' + scoreObj.gradeTaskNode+ '"]').val();
|
|
|
+ dataList.push(scoreObj);
|
|
|
+ }
|
|
|
+ return dataList;
|
|
|
+ },
|
|
|
+ /*
|
|
|
+ * 评分保存事件
|
|
|
+ * */
|
|
|
+ saveScoreEvent: function () {
|
|
|
+ $('#saveScore').unbind('click').bind('click', function () {
|
|
|
+ // $(lastTable).jqGrid("saveCell",lastrow,lastcell);// 防止评分未校验就保存了
|
|
|
+ $('.scoretabs').each(function(index,tab){
|
|
|
+ $(tab).jqGrid('editStop');
|
|
|
+ })
|
|
|
+ that.doSaveScore('1', 0);
|
|
|
+ //刷新正态分布列表
|
|
|
+ that.getDistributionInfo();
|
|
|
+ });
|
|
|
+ },
|
|
|
+ /*
|
|
|
+ * 保存打分
|
|
|
+ * @param isShowMsg 是否展示提示信息
|
|
|
+ * @param isEditGradesChange 是否下拉选引起的打分保存操作
|
|
|
+ * */
|
|
|
+ doSaveScore: function (isShowMsg, isEditGradesChange) {
|
|
|
+ if (_clicked) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ _clicked = true;
|
|
|
+ //防止连击,设置过1s后点击才有效
|
|
|
+ setTimeout(function () {
|
|
|
+ _clicked = false;
|
|
|
+ }, 1000);
|
|
|
+
|
|
|
+ if (_noPassVerifyArr.length > 0) {
|
|
|
+ shr.showWarning({message: _noPassVerifyArr[0].errortext});
|
|
|
+ //自动点击第一条评分不通过的指标
|
|
|
+ $("input[indicator='" + _noPassVerifyArr[0].indicator + "']").focus();
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+//
|
|
|
+// var canSubmit = false;
|
|
|
+// var isAsync = false;
|
|
|
+ //组装评分数据
|
|
|
+ //组装评分数据
|
|
|
+ var scoreObj = that.assembleScoreData();
|
|
|
+ if(!scoreObj){
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ var ids = new Array();
|
|
|
+ for (var i = 0; i < scoreObj.length; i++) {
|
|
|
+ ids.push(scoreObj[i].gradeTaskNode);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (scoreObj[0].targetValError) {
|
|
|
+ shr.showError({
|
|
|
+ //jsBizMultLan 请检查目标值值输入是否正确
|
|
|
+ message :jsBizMultLan.perfweb_perfscoreNew_20210917ht_01,
|
|
|
+ hideAfter: 3
|
|
|
+ });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (scoreObj[0].actValError) {
|
|
|
+ shr.showError({
|
|
|
+ message : jsBizMultLan.perfweb_perfscoreNew_20210917ht_02,
|
|
|
+ hideAfter: 3
|
|
|
+ });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (scoreObj[0].desError) {
|
|
|
+ shr.showError({
|
|
|
+ message : shr.formatMsg(jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_48,
|
|
|
+ [2000]),
|
|
|
+ hideAfter: 3
|
|
|
+ });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ //1、判断节点是否可被提交
|
|
|
+ that.remoteCall({
|
|
|
+ method: "judgeIsCanSubmit",
|
|
|
+ param: {
|
|
|
+ gradeTaskNode: ids.toString(),
|
|
|
+ evaObj: evaObj,
|
|
|
+ scoreObj: JSON.stringify(scoreObj)
|
|
|
+ },
|
|
|
+ async: false,
|
|
|
+ success: function (result) {
|
|
|
+ for (var i = 0; i < scoreObj.length; i++) {
|
|
|
+ for (var j = 0; j < result.length; j++) {
|
|
|
+ if (result[j].nodeId = scoreObj[i].gradeTaskNode) {
|
|
|
+ data = result[j];
|
|
|
+ }
|
|
|
+ if (data != null && data.canSubmit == true) {
|
|
|
+ //保存评分
|
|
|
+ } else {
|
|
|
+ if (isShowMsg == '1') {
|
|
|
+ shr.showWarning({message : jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_11});
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ that.remoteCall({
|
|
|
+ method: "saveScore",
|
|
|
+ param: {
|
|
|
+ needScore:_needScore,
|
|
|
+ scoreObj: JSON.stringify(scoreObj)
|
|
|
+ },
|
|
|
+ async: false,
|
|
|
+ success: function (data) {
|
|
|
+ if (data != null && data.result == '200') {
|
|
|
+ if (_needScore == "3") {
|
|
|
+ shr.showInfo({message: $.perfwebI18n.commonMsg.msg3});
|
|
|
+ //window.location.reload();
|
|
|
+ //it.initLeftList();//左侧列表
|
|
|
+ $("li[workerid='" + evaObj + "']").removeClass("current");
|
|
|
+ $("li[workerid='" + evaObj + "']").click();
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ //$("li[workerid='"+evaObj+"']").click();//指哪打哪
|
|
|
+ isFirstInit = 0;
|
|
|
+ /* if (isEditGradesChange != 1) {
|
|
|
+ it.initRightContent();//右侧内容
|
|
|
+ }*/
|
|
|
+
|
|
|
+ if (entryType == 'myview') {
|
|
|
+ $('.content_right').css({
|
|
|
+ 'width': '100%',
|
|
|
+ 'margin-right': '0'
|
|
|
+ });
|
|
|
+ } else if (entryType == 'myselfEvalu') {//个人目标评分入口
|
|
|
+ $('.content_right').css({
|
|
|
+ 'width': '100%',
|
|
|
+ 'margin-right': '0'
|
|
|
+ });
|
|
|
+ } else {//团队目标评分入口
|
|
|
+ $('.view_manager_body').css('background', '#EDEFF4');
|
|
|
+ }
|
|
|
+
|
|
|
+ // it.initPersonalInformation(); //评估对象个人信息
|
|
|
+ nodeSumScore = data.nodeSumScore;
|
|
|
+ nodeGrade = data.nodeGrade;
|
|
|
+ var sumScoreText = nodeSumScore;
|
|
|
+ var nodeGradeText = nodeGrade;
|
|
|
+ if (null != sumScoreText) {
|
|
|
+ if(data.gradetaskNode.length<2){
|
|
|
+ $("li[workerid='" + evaObj + "'][gradeTaskNode='" + gradeTaskNode + "']").find("i[name='nodeSumScore']").text(sumScoreText);
|
|
|
+ $("#totalScore").find("input").val(sumScoreText);
|
|
|
+ }
|
|
|
+ //TODO
|
|
|
+ //$("#totalScore").text(sumScoreText);
|
|
|
+ }
|
|
|
+ if (null != nodeGradeText) {
|
|
|
+ if(data.gradetaskNode.length<2){
|
|
|
+ for(var j=0; j<_gneedScoreArr.length;j++){
|
|
|
+ if(data.gradetaskNode == _gneedScoreArr[j].gradeTaskNode){
|
|
|
+ _perfGradeEvaluate = _gneedScoreArr[j].perfGradeEvaluate;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(_perfGradeEvaluate != 0){
|
|
|
+ $("li[workerid='" + evaObj + "'][gradeTaskNode='" + gradeTaskNode + "']").find("i[name='nodeGrade']").text(nodeGradeText);
|
|
|
+ }
|
|
|
+ $("select[id='wholeGrade_" +gradeTaskNode+ "']").val(nodeGradeText);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ var nodeSumScoreList = data.nodeSumScoreList;
|
|
|
+ var gtnLen = nodeSumScoreList.length;
|
|
|
+ for(var i=0; i<gtnLen; i++){
|
|
|
+ var nsumscore = nodeSumScoreList[i].nodeSumscore ? parseFloat(nodeSumScoreList[i].nodeSumscore).toFixed(2) : '';
|
|
|
+ // if(null != nsumscore && "" != nsumscore){
|
|
|
+ $('#wholeComment').find('span[gtnname="'+nodeSumScoreList[i].gradeTaskNode+'"] input').val(nsumscore);
|
|
|
+ $("li[gradetasknode='" +nodeSumScoreList[i].gradeTaskNode+ "']").find("i[name='nodeSumScore']").text(nsumscore);
|
|
|
+ // }else{
|
|
|
+ // //$('#wholeComment').find('span[gtnname="'+nodeSumScoreList[i].gradeTaskNode+'"]').val("");
|
|
|
+ // }
|
|
|
+ }
|
|
|
+
|
|
|
+ //第一节点隐藏"打回"按钮
|
|
|
+ if (currentNodeLevel == 1) {
|
|
|
+ $("#backTo").css("display", "none");
|
|
|
+ }
|
|
|
+ if (isShowMsg == '1') {
|
|
|
+ shr.showInfo({message: data.msg});
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (isShowMsg == '1') {
|
|
|
+ shr.showWarning({message: data.msg});
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if (scoreObj.wholeComment != null && scoreObj.wholeComment != undefined && scoreObj.wholeComment.length > 2000) {
|
|
|
+ //shr.showWarning({message: '整体评价中的评价内容已超过最大长度2000个汉字,请重新输入!'});
|
|
|
+ shr.showWarning({message :shr.formatMsg(jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_53,[2000])});
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ /*
|
|
|
+ * 评分提交事件
|
|
|
+ * */
|
|
|
+ submitScoreClickEvent: function () {
|
|
|
+ $('#submitScore').unbind('click').bind('click', function () {
|
|
|
+ _gExistRejection = 0;
|
|
|
+ // $(lastTable).jqGrid("saveCell",lastrow,lastcell);// 防止评分未校验就保存了
|
|
|
+ $('.scoretabs').each(function(index,tab){
|
|
|
+ $(tab).jqGrid('editStop');
|
|
|
+ })
|
|
|
+ if (gradeTaskNode == '') {
|
|
|
+ shr.showWarning({message: jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_12});
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (_noPassVerifyArr.length > 0) {
|
|
|
+ shr.showWarning({message: _noPassVerifyArr[0].errortext});
|
|
|
+ //自动点击第一条评分不通过的指标
|
|
|
+ $("input[indicator='" + _noPassVerifyArr[0].indicator + "']").focus();
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ //组装评分数据
|
|
|
+ var scoreObj = that.assembleScoreData('1');
|
|
|
+ if(!scoreObj){
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ //进行评分校验
|
|
|
+
|
|
|
+ if (scoreObj[0].scoreError == true) {
|
|
|
+ shr.showError({
|
|
|
+ // message : '分数只能为整数或不超过2位的小数,请检查!',
|
|
|
+ //12月补丁功能-天虹
|
|
|
+ message : jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_31,
|
|
|
+ hideAfter: 3
|
|
|
+ });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (scoreObj[0].targetValError) {
|
|
|
+ shr.showError({
|
|
|
+ message : jsBizMultLan.perfweb_perfscoreNew_20210917ht_01,
|
|
|
+ hideAfter: 3
|
|
|
+ });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (scoreObj[0].actValError) {
|
|
|
+ shr.showError({
|
|
|
+ message : jsBizMultLan.perfweb_perfscoreNew_20210917ht_02,
|
|
|
+ hideAfter: 3
|
|
|
+ });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (scoreObj[0].desError) {
|
|
|
+ shr.showError({
|
|
|
+ message : shr.formatMsg(jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_48,
|
|
|
+ [2000]),
|
|
|
+ hideAfter: 3
|
|
|
+ });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if(globalErrorMsg.length > 0){
|
|
|
+ for(var i=0; i<globalErrorMsg.length;i++){
|
|
|
+ $('#scoreTab_'+globalErrorMsg[i].tabIndex).jqGrid('setCell', globalErrorMsg[i].fid, globalErrorMsg[i].colName, '', 'errorval');
|
|
|
+ }
|
|
|
+
|
|
|
+ // shr.showWarning({message : '必填字段不能为空,请检查'});
|
|
|
+ shr.showWarning({message : jsBizMultLan.perf_perfscoreNew_20220826_i18n_1});
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ //判断整体评价等级是否必填,如果必填则进行必录校验
|
|
|
+ var ids = new Array();
|
|
|
+ for (var i = 0; i < scoreObj.length; i++) {
|
|
|
+ ids.push(scoreObj[i].gradeTaskNode);
|
|
|
+ }
|
|
|
+
|
|
|
+ //打总分校验总分必填
|
|
|
+ if (_needScore == "3" && ($("#totalScore").find("input").val() == undefined || $("#totalScore").find("input").val().length < 1)) {
|
|
|
+ var flag = sumSocreOnblur($("#totalScore").find("input"));
|
|
|
+ if (!flag) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ var canSubmitFlag = false;
|
|
|
+ var scoremsg = '';
|
|
|
+ var confirmMsg = '';
|
|
|
+ var msg = '';
|
|
|
+ var matrixDetail = "";
|
|
|
+ var saveNodeSumScoreList;
|
|
|
+ var marginTop = -(document.body.clientHeight/3);
|
|
|
+ $.block.show({text :
|
|
|
+ //'数据处理中,请稍后...'
|
|
|
+ jsBizMultLan.perfweb_perfscoreNew_zw20201229_i18n_04
|
|
|
+ ,marginTop:marginTop});
|
|
|
+ //1、保存分数
|
|
|
+ that.remoteCall({
|
|
|
+ method: "saveScore",
|
|
|
+ param: {
|
|
|
+ needScore:_needScore,
|
|
|
+ scoreObj: JSON.stringify(scoreObj)
|
|
|
+ },
|
|
|
+ async: false,
|
|
|
+ success: function (data) {
|
|
|
+ if (data != null && data.result == '200') {
|
|
|
+ nodeSumScore = data.nodeSumScore;
|
|
|
+ nodeGrade = data.nodeGrade;
|
|
|
+ matrixDetail = data.detail;
|
|
|
+ saveNodeSumScoreList = data.nodeSumScoreList;
|
|
|
+ var nodeSumScoreList = data.nodeSumScoreList;
|
|
|
+ var gtnLen = nodeSumScoreList.length;
|
|
|
+ for(var i=0; i<gtnLen; i++){
|
|
|
+ var nsumscore = nodeSumScoreList[i].nodeSumscore ? parseFloat(nodeSumScoreList[i].nodeSumscore).toFixed(2) : '';
|
|
|
+ // if(null != nsumscore && "" != nsumscore){
|
|
|
+ $('#wholeComment').find('span[gtnname="'+nodeSumScoreList[i].gradeTaskNode+'"] input').val(nsumscore);
|
|
|
+ $($("li[gradetasknode='" +nodeSumScoreList[i].gradeTaskNode+ "']").find("i[name='nodeSumScore']")).text(nsumscore);
|
|
|
+ // }else{
|
|
|
+ // //$('#wholeComment').find('span[gtnname="'+nodeSumScoreList[i].gradeTaskNode+'"]').text("");
|
|
|
+ // }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ var needrResult = null;
|
|
|
+ //2、判断节点是否可被提交
|
|
|
+ that.remoteCall({
|
|
|
+ method: "judgeIsCanSubmit",
|
|
|
+ param: {
|
|
|
+ gradeTaskNode: ids.toString(),
|
|
|
+ evaObj: evaObj,
|
|
|
+ scoreObj: JSON.stringify(scoreObj)
|
|
|
+ },
|
|
|
+ async: false,
|
|
|
+ success: function (result) {
|
|
|
+ $.block.hide();
|
|
|
+ canSubmitFlag=true;
|
|
|
+ needrResult =result;
|
|
|
+ for (var i = 0; i < scoreObj.length; i++) {
|
|
|
+ var data = '';
|
|
|
+ for (var j = 0; j < result.length; j++) {
|
|
|
+ if (result[j].nodeId = scoreObj[i].gradeTaskNode) {
|
|
|
+ data = result[j];
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (data != null && data.canSubmit == true) {
|
|
|
+ if (scoreObj[i].wholeComment != null && scoreObj[i].wholeComment != undefined && scoreObj[i].wholeComment.length > 2000) {
|
|
|
+ shr.showWarning({
|
|
|
+ message:
|
|
|
+ shr.formatMsg(jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_53,
|
|
|
+ [2000])
|
|
|
+ });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ //判断整体评语是否必录,如果必录则进行必录校验
|
|
|
+ // BT-00580949 绩效管理--绩效工作台--考核目标填报、目标变更--编辑指标,评价标准填写数字,保存js会报错
|
|
|
+ if (scoreObj[i].wholeComment == '' || scoreObj[i].wholeComment == undefined || (scoreObj[i].wholeComment+'').trim().length < 1) {
|
|
|
+ var wholeCommentIsMustLen = _wholeCommentIsMustArr.length;
|
|
|
+ for(var m=0; m<wholeCommentIsMustLen; m++){
|
|
|
+ if(_wholeCommentIsMustArr[m].gradeTaskNode == scoreObj[i].gradeTaskNode
|
|
|
+ && _wholeCommentIsMustArr[m].wholeCommentIsMust == 1){
|
|
|
+ //shr.showWarning({message: '请填写当前节点整体评价中的评价内容!'});
|
|
|
+ shr.showWarning({message: jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_39});
|
|
|
+ $("#wholeComment").click();
|
|
|
+ $("#curWholeComment").focus();
|
|
|
+ canSubmitFlag = false;
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //指标评语是否必录校验,如果必录则提示并定位到其中一条未录评语的指标
|
|
|
+ if(needrResult != null){
|
|
|
+ for(var n=0; n<needrResult.length; n++){
|
|
|
+ if(needrResult[n].isTargetComment == '1' && needrResult[n].unvalidTargetID.length>0){
|
|
|
+ needrResult[n].unvalidTargetID.forEach(function(item){
|
|
|
+ $('.scoretabs').jqGrid('setCell', item, 'FCOMMENT', null, 'errorval');
|
|
|
+ })
|
|
|
+ shr.showWarning({message : needrResult[n].targetCommentMsg});
|
|
|
+ canSubmitFlag = false;
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //判断整体评价等级是否必填,如果必填则进行必录校验(矩阵考核需要根据节点进行判断)
|
|
|
+ var needScoreSize = _gneedScoreArr.length;
|
|
|
+ for(var j=0; j<needScoreSize; j++){
|
|
|
+ if(_gneedScoreArr[j].gradeTaskNode == scoreObj[i].gradeTaskNode
|
|
|
+ && _gneedScoreArr[j].indicatorComment == 1
|
|
|
+ && _gneedScoreArr[j].perfGradeEvaluate == 1){
|
|
|
+ if (scoreObj[i].wholeGrade == '' || scoreObj[i].wholeGrade == undefined) {
|
|
|
+ //shr.showWarning({message: '请填写当前节点整体评价等级!'});
|
|
|
+ shr.showWarning({message: jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_38});
|
|
|
+ canSubmitFlag = false;
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ shr.showWarning({message: data.msg});
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ var resLen = result.length;
|
|
|
+ var needMustCount = 0;
|
|
|
+ for(var m=0; m<resLen; m++){
|
|
|
+ if(result[m].isNeedScore == '2' && result[m].unValidId.length>0){
|
|
|
+ needMustCount++;
|
|
|
+ shr.showWarning({message : result[m].msg});
|
|
|
+ $("li[numval='"+result[m].unValidId[0]+"']").mousedown();
|
|
|
+ canSubmitFlag =false;
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(needMustCount<1){
|
|
|
+ for(var n=0; n<resLen; n++){
|
|
|
+ if(result[n].isNeedScore == '1' && result[n].unValidId.length>0){
|
|
|
+ msg += result[n].msg
|
|
|
+ $("li[numval='"+result[n].unValidId[0]+"']").mousedown();
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(saveNodeSumScoreList != undefined && saveNodeSumScoreList != null && saveNodeSumScoreList.length >= 2){
|
|
|
+
|
|
|
+ confirmMsg = jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_10;
|
|
|
+ for(var i=0; i<saveNodeSumScoreList.length; i++){
|
|
|
+ var scoremsg = '';
|
|
|
+ //12月补丁功能-天虹,如果流程设置为不评分,则不提示评分信息
|
|
|
+ if (_needScore == '1' || _needScore == '2'|| _needScore == '3') {
|
|
|
+ if (saveNodeSumScoreList[i].nodeSumscore == null) {
|
|
|
+ saveNodeSumScoreList[i].nodeSumscore = "";
|
|
|
+ }
|
|
|
+ scoremsg = jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_58 + saveNodeSumScoreList[i].nodeSumscore + ',';
|
|
|
+ }
|
|
|
+ if(matrixDetail != null && matrixDetail != ''){
|
|
|
+ confirmMsg = matrixDetail;
|
|
|
+ }else{
|
|
|
+ confirmMsg += saveNodeSumScoreList[i].nodeHandlerName + scoremsg;
|
|
|
+ //BT1422884 绩效工作台--评分--流程中勾选了不评等级,列表模式下提交时还是显示了等级(1.176 yanju_zhang)
|
|
|
+ for(var j=0; j<_gneedScoreArr.length;j++){
|
|
|
+ if(data.nodeId== _gneedScoreArr[j].gradeTaskNode){
|
|
|
+ _perfGradeEvaluate = _gneedScoreArr[j].perfGradeEvaluate;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(currentIsShowWholeGrade == 1 && _perfGradeEvaluate == 1){
|
|
|
+ confirmMsg += jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_14 + saveNodeSumScoreList[i].nodeGrade + ',';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ //12月补丁功能-天虹,如果流程设置为不评分,则不提示评分信息
|
|
|
+ var scoremsg = '';
|
|
|
+ if (_needScore == '1' || _needScore == '2'|| _needScore == '3') {
|
|
|
+ if (nodeSumScore == null) {
|
|
|
+ nodeSumScore = "";
|
|
|
+ }
|
|
|
+ scoremsg = jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_58 + nodeSumScore + ',';
|
|
|
+ }
|
|
|
+ if(matrixDetail != null && matrixDetail != ''){
|
|
|
+ confirmMsg = matrixDetail;
|
|
|
+ }else{
|
|
|
+ confirmMsg = jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_10 + scoremsg;
|
|
|
+ //BT1422884 绩效工作台--评分--流程中勾选了不评等级,列表模式下提交时还是显示了等级(1.176 yanju_zhang)
|
|
|
+ for(var j=0; j<_gneedScoreArr.length;j++){
|
|
|
+ if(data.nodeId== _gneedScoreArr[j].gradeTaskNode){
|
|
|
+ _perfGradeEvaluate = _gneedScoreArr[j].perfGradeEvaluate;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(currentIsShowWholeGrade == 1 && _perfGradeEvaluate == 1){
|
|
|
+ confirmMsg += jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_14 +nodeGrade + ',';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(null != msg && msg != undefined && msg != 'undefined' && '' != msg){
|
|
|
+ confirmMsg += msg;
|
|
|
+ }
|
|
|
+ if(_gExistRejection == 1){
|
|
|
+ //confirmMsg += '存在否决项,将直接影响绩效最终得分!';
|
|
|
+ confirmMsg += jsBizMultLan.perf_perfscoreNewJuicer_1592900104294_i18n_9;
|
|
|
+ }
|
|
|
+ //confirmMsg += '您确认提交吗?';
|
|
|
+ confirmMsg += jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_33;
|
|
|
+ if(!canSubmitFlag){
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ shr.showConfirm(confirmMsg, function () {
|
|
|
+ //$.block.show({text : '数据处理中,请稍后...',marginTop:marginTop});
|
|
|
+ $.block.show({text : jsBizMultLan.perfweb_perfscoreNew_zw20201229_i18n_04,marginTop:marginTop});
|
|
|
+ // var isAutoSubmitVal = $("#isAutoSubmit").text();
|
|
|
+ // var isAutoSubmit = false;
|
|
|
+ // if (isAutoSubmitVal == 'true') {
|
|
|
+ // isAutoSubmit = true;
|
|
|
+ // }
|
|
|
+ //3、提交
|
|
|
+ that.remoteCall({
|
|
|
+ method: "submitScore",
|
|
|
+ param: {
|
|
|
+ scoreObj: JSON.stringify(scoreObj),
|
|
|
+ // isAutoSubmit: isAutoSubmit
|
|
|
+ },
|
|
|
+ async: false,
|
|
|
+ success: function (data) {
|
|
|
+ $.block.hide();
|
|
|
+ if (data != null && data.result == '200') {
|
|
|
+ scoreStatus = '2';
|
|
|
+ if (_gscoreOrRate == 0) {//评分
|
|
|
+ $("input[name='evaScore']").attr("disabled", "disabled");
|
|
|
+ } else {
|
|
|
+ $("select[name='_editGrades']").attr("disabled", "disabled");
|
|
|
+ }
|
|
|
+ if(!entryType){
|
|
|
+ $("li[workerid='" +evaObj+ "']").remove();
|
|
|
+ shr.showInfo({message: data.msg});
|
|
|
+ if ($('.workerList').find('li').length == 0) {
|
|
|
+ // ==================================================================================
|
|
|
+ /**
|
|
|
+ * 组织考核返回组织目标评价页面,个人考核返回团队个人目标评价页面
|
|
|
+ * modified by Janeou_xie 2020/11/12
|
|
|
+ */
|
|
|
+ if(isOrg == "1"){
|
|
|
+ that.reloadPage({
|
|
|
+ uipk: 'com.kingdee.shr.perfweb.app.perfBatchScore4Org.core',
|
|
|
+ serviceId : decodeURIComponent("fUjSqQK1RouZaEJUI2jH5vI9KRA%3D"),
|
|
|
+ personId : personId
|
|
|
+ })
|
|
|
+ }else {
|
|
|
+ that.reloadPage({
|
|
|
+ uipk: 'com.kingdee.shr.perfweb.app.perfBatchScore.core',
|
|
|
+ serviceId : decodeURIComponent("fUjSqQK1RouZaEJUI2jH5vI9KRA%3D"),
|
|
|
+ personId : personId
|
|
|
+ });
|
|
|
+ }
|
|
|
+ // ==================================================================================
|
|
|
+ return;
|
|
|
+ }else{
|
|
|
+ $(".workerList>li")[0].click();
|
|
|
+ evaObj = $($(".workerList>li")[0]).attr("workerid");
|
|
|
+ }
|
|
|
+ }else if(entryType = 'myselfEvalu'){
|
|
|
+ shr.showInfo({message: data.msg});
|
|
|
+ that.reloadPage({
|
|
|
+ uipk: 'com.kingdee.shr.perfweb.app.perfportal.core',
|
|
|
+ serviceId : decodeURIComponent("fUjSqQK1RouZaEJUI2jH5vI9KRA%3D"),
|
|
|
+ });
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ shr.showWarning({message: data.msg});
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //设置按钮及输入文本框灰选
|
|
|
+ setDisableStatus: function () {
|
|
|
+ $('#saveScore').attr("disabled", 'disabled'); //”保存“按钮置灰
|
|
|
+ $('#submitScore').attr("disabled", 'disabled'); //”提交“按钮置灰
|
|
|
+ $("#home-wrap input").attr("disabled", "disabled"); //所有输入框不可编辑
|
|
|
+ $("textarea").attr("disabled", "disabled"); //所有多行文本框不可编辑
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 个人评分菜单点击事件(左侧区域指标点击)
|
|
|
+ */
|
|
|
+ scoreMenuListClick: function () {
|
|
|
+ var that = this;
|
|
|
+ $('.controller').unbind('click').bind('click', function () {
|
|
|
+ var content = $('#wholeComment').find('.scoreContentboxwrap');
|
|
|
+ var icon = $(this);
|
|
|
+ if ($(this).hasClass('controller_active')) {
|
|
|
+ content.slideUp(function () {
|
|
|
+ icon.removeClass('controller_active');
|
|
|
+ if (self != top) {
|
|
|
+ parent.setIframeHeight('myHistoryIframe');
|
|
|
+ parent.setIframeHeight('processedScoresIframe');
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ content.slideDown(function () {
|
|
|
+ if (self != top) {
|
|
|
+ parent.setIframeHeight('myHistoryIframe');
|
|
|
+ parent.setIframeHeight('processedScoresIframe');
|
|
|
+ }
|
|
|
+ });
|
|
|
+ $(this).addClass('controller_active');
|
|
|
+ }
|
|
|
+ })
|
|
|
+ $('.btn-control').unbind('click').bind('click', function () {
|
|
|
+ var icon = $(this);
|
|
|
+ var areawrap = icon.closest('.scoreMenu');
|
|
|
+ var content = areawrap.find('.scoretabwrap');
|
|
|
+
|
|
|
+ if (icon.hasClass('controller_active')) {
|
|
|
+ content.hide();
|
|
|
+ icon.removeClass('controller_active');
|
|
|
+ if (self != top) {
|
|
|
+ parent.setIframeHeight('myHistoryIframe');
|
|
|
+ parent.setIframeHeight('processedScoresIframe');
|
|
|
+ }
|
|
|
+ areawrap.addClass('areawrap-active');
|
|
|
+ } else {
|
|
|
+ content.show();
|
|
|
+ if (self != top) {
|
|
|
+ parent.setIframeHeight('myHistoryIframe');
|
|
|
+ parent.setIframeHeight('processedScoresIframe');
|
|
|
+ }
|
|
|
+ icon.addClass('controller_active');
|
|
|
+ areawrap.removeClass('areawrap-active');
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ //生成整体评价区域
|
|
|
+ createWholeCommentHtml: function (data) {
|
|
|
+ var wholeCommentHtml = '<div id="wholeCommentDiv" class="scoreContentboxWholeComment">';
|
|
|
+ var controlAreaHtml = '<div class="othersScoreBox">';
|
|
|
+ var currentWholeGrade = '';
|
|
|
+ _gneedScoreArr = new Array();
|
|
|
+ // var hideNodeWeight = $('#hideNodeWeight').text();
|
|
|
+
|
|
|
+ if (data != null && data.length > 0) {
|
|
|
+ var isShowWholeGrade = 0;
|
|
|
+ for (var i = 0; i < data.length; i++) {
|
|
|
+ var wholeCommentEdithtml = '';
|
|
|
+ var _data = data[i];
|
|
|
+ isShowWholeGrade = _data.isShowWholeGrade; //获取当前节点是否可显示总分和总体评价
|
|
|
+ _perfGradeEvaluate = _data.perfGradeEvaluate; //整体评价等级是否允许评定
|
|
|
+ var _needScore = _data.needScore; //是否允许评分
|
|
|
+ var needScoreObj = new Object();
|
|
|
+ needScoreObj.gradeTaskNode = _data.gradeTaskNode;
|
|
|
+ needScoreObj.needScore = _needScore;
|
|
|
+ needScoreObj.indicatorComment = _data.indicatorComment;
|
|
|
+ needScoreObj.perfGradeEvaluate = _perfGradeEvaluate;
|
|
|
+ _gneedScoreArr.push(needScoreObj);
|
|
|
+
|
|
|
+ if (data[i].canEdit == 1) { //当前节点可评价
|
|
|
+ currentIsShowWholeGrade = isShowWholeGrade; //记录当前评分人是否可评总体评价
|
|
|
+ _perfGradeEvaluate = _data.perfGradeEvaluate;
|
|
|
+ // 重新定义一个新的变量,标识当前任务节点能否打等级,_perfGradeEvaluate赋值,使用到的地方太多了,可能会出问题 modified by Janeou_xie
|
|
|
+ isShowDistribution = _data.perfGradeEvaluate
|
|
|
+ _wholeComment = _data.wholeCommentIsMust;
|
|
|
+ //currentWholeGrade = data[i].wholeGrade;
|
|
|
+ currentWholeGrade = _data.scoreToLevel;
|
|
|
+
|
|
|
+ wholeCommentEdithtml = wholeCommentEdithtml
|
|
|
+ + '<label name ="WholenodeHandlerId" value="' +data[i].nodeHandler+ '"></label>'
|
|
|
+ + '<span class="left textOverflow">' +_data.nodeName;
|
|
|
+
|
|
|
+ //yien 判断是否展示处理人权重
|
|
|
+ if(hideNodeWeight != 'true'){
|
|
|
+ wholeCommentEdithtml += '('+_data.nodeWeight + '%)';
|
|
|
+ }
|
|
|
+ wholeCommentEdithtml = wholeCommentEdithtml + (_data.nodeHandlerName == '' ? ':' : ':'+_data.nodeHandlerName );
|
|
|
+ wholeCommentEdithtml = wholeCommentEdithtml + '(' + _data.personNodeWeight + '%)';
|
|
|
+ wholeCommentEdithtml += '</span>';
|
|
|
+
|
|
|
+ //判断是否可评价总分和等级
|
|
|
+ if (isShowWholeGrade) {
|
|
|
+ var wholeScoreTmp = '';
|
|
|
+ if(_needScore == '1' || _needScore == '2'|| _needScore == '3'){
|
|
|
+ wholeScoreTmp = _data.wholeScore;
|
|
|
+ }
|
|
|
+ var disabledClass = 'disabled="disabled"';
|
|
|
+ if (_needScore == '3') {
|
|
|
+ disabledClass = '';
|
|
|
+ }
|
|
|
+ // 评分流程节点设置不能评分,则隐藏总分 modify by janeou
|
|
|
+ //var totalScoreDiv = _needScore == '0' ? '':'<div class="right">总分:<span id="totalScore" ' +
|
|
|
+ var totalScoreDiv = _needScore == '0' ? '':'<div class="right">'+jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_58+'<span id="totalScore" ' +
|
|
|
+ 'gtnname="'+_data.gradeTaskNode+'"><input '+ disabledClass +' id ="wholeScore_' + _data.gradeTaskNode + '" data-needScore="'+_needScore+'" value="'+wholeScoreTmp+'"> ' + '</input></span>';
|
|
|
+ totalScoreDiv = totalScoreDiv + '<div style="padding-left:1%"><span class="shorterinpwrap" id="MSG_SUMSCORE" style="max-width:300px;color:red"></span></div>';
|
|
|
+ wholeCommentEdithtml += totalScoreDiv ;
|
|
|
+ if (data[i].isVetoZero == 1) {
|
|
|
+ //wholeCommentEdithtml += '<span class="vetomsg">存在否决项</span></div>';
|
|
|
+ wholeCommentEdithtml += '<span class="vetomsg">'+jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_3+'</span></div>';
|
|
|
+ } else {
|
|
|
+ //wholeCommentEdithtml += '<span class="vetomsg" style="display:none">存在否决项</span></div>';
|
|
|
+ wholeCommentEdithtml += '<span class="vetomsg" style="display:none">'+jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_3+'</span></div>';
|
|
|
+ }
|
|
|
+ wholeCommentEdithtml += '<div name="editScoreDiv" class="row1 paddingbox">';
|
|
|
+
|
|
|
+ if (_perfGradeEvaluate == '1') {//允许打整体评价等级
|
|
|
+ //wholeCommentEdithtml = wholeCommentEdithtml + '<label>等级:</label><span class="selectwrap">';
|
|
|
+ wholeCommentEdithtml = wholeCommentEdithtml + '<label>'+jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_14+'</label><span class="selectwrap">';
|
|
|
+ } else {
|
|
|
+ //wholeCommentEdithtml = wholeCommentEdithtml + '<label style="display:none">等级:</label><span class="selectwrap" style="display:none">';
|
|
|
+ wholeCommentEdithtml = wholeCommentEdithtml + '<label style="display:none">'+jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_14+'</label><span class="selectwrap" style="display:none">';
|
|
|
+ }
|
|
|
+ wholeCommentEdithtml = wholeCommentEdithtml + '<select name="wholeGrade" id ="wholeGrade_' + _data.gradeTaskNode + '">'
|
|
|
+ + '<option id="blackOp"></option>';
|
|
|
+ var levelSelectValue = _data.levelSelectVal; //等级下拉选值value
|
|
|
+ var levelSelectKey = _data.levelSelectKey; //等级下拉选key
|
|
|
+ var selectOptionArr = new Array();
|
|
|
+ var selectOptionKeyArr = new Array();
|
|
|
+ if (levelSelectValue != null && levelSelectValue != '') {
|
|
|
+ selectOptionArr = levelSelectValue.split(",");
|
|
|
+ selectOptionKeyArr = levelSelectKey.split(",");
|
|
|
+ }
|
|
|
+ for (var j = 0; j < selectOptionArr.length; j++) {
|
|
|
+ //yien 20191122 天虹私包
|
|
|
+ var _selectOptionKeyArr = selectOptionKeyArr[j];
|
|
|
+ var _selectOptionArr = selectOptionArr[j];
|
|
|
+ //不显示分数范围
|
|
|
+ if (isShowLevelScoreRange == 0) {
|
|
|
+ _selectOptionArr = getLevelWidthoutScoreRange(_selectOptionArr);
|
|
|
+ }
|
|
|
+ wholeCommentEdithtml = wholeCommentEdithtml + '<option id="' + _selectOptionKeyArr + '" value="' + _selectOptionKeyArr + '" title="' + _selectOptionArr + '">' + (_selectOptionArr) + '</option>';
|
|
|
+ }
|
|
|
+ wholeCommentEdithtml = wholeCommentEdithtml + '</select>'
|
|
|
+ + '</span>'
|
|
|
+ + '</div>';
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ wholeCommentEdithtml = wholeCommentEdithtml + '<div name="editTextareaDivForWholeComment" gradeNode="' + _data.gradeTaskNode + '" class="row1 paddingbox longeditbox">'
|
|
|
+ + '<label>'+
|
|
|
+ jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_34+
|
|
|
+ '</label>';
|
|
|
+
|
|
|
+ //yien:处理合并打分节点问题
|
|
|
+ combineGradeTaskIds.push(_data.gradeTaskNode);
|
|
|
+
|
|
|
+ if (_wholeComment == '1') {
|
|
|
+ wholeCommentEdithtml = wholeCommentEdithtml + '<span class="longinpwrap evaluate"><textarea id="curWholeComment" class="paddingbox required" onblur="wholeCommentOnblur(this)">' + data[i].wholeComment + '</textarea></span>';
|
|
|
+ wholeCommentEdithtml += '<span class="shorterinpwrap" id="WHOLECOMMENT" style="width:300px;color:red;padding-left:75px;display: none;font-size: 12px;"></span>';
|
|
|
+ } else {
|
|
|
+ wholeCommentEdithtml = wholeCommentEdithtml + '<span class="longinpwrap evaluate"><textarea class="paddingbox" onblur="wholeCommentOnblur(this)">' + data[i].wholeComment + '</textarea></span>';
|
|
|
+ wholeCommentEdithtml += '<span class="shorterinpwrap" id="WHOLECOMMENT" style="width:300px;color:red;padding-left:75px;display: none;font-size: 12px;"></span>'
|
|
|
+ }
|
|
|
+ gradeTaskNode = _data.gradeTaskNode; //当前评估对象节点运行实例id
|
|
|
+ scoreStatus = _data.scoreStatus;
|
|
|
+ $('#wholeComment .details').append(wholeCommentEdithtml);
|
|
|
+
|
|
|
+ } else {
|
|
|
+ if (_data.isVisible != '1') {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ controlAreaHtml = controlAreaHtml + '<div class="cutting_line">'
|
|
|
+ + '<label name ="WholenodeHandlerId" value="' +data[i].nodeHandler+ '"></label>'
|
|
|
+ + '<span class="left textOverflow">' + _data.nodeName;
|
|
|
+ //yien 增加判断是否展示处理人权重
|
|
|
+ if(hideNodeWeight != 'true'){
|
|
|
+ controlAreaHtml += '('+ _data.nodeWeight + '%)';
|
|
|
+ }
|
|
|
+ controlAreaHtml = controlAreaHtml + (data[i].nodeHandlerName == '' ? ':' : ':'+data[i].nodeHandlerName );
|
|
|
+ controlAreaHtml = controlAreaHtml + '(' + _data.personNodeWeight + '%)';
|
|
|
+ controlAreaHtml += '</span>';
|
|
|
+ //判断是否显示总分和等级
|
|
|
+ if (isShowWholeGrade) {
|
|
|
+ //var scoreDivHtml = '<div name="wholeScore" class="right" isself="' +_data.isSelf+ '">总分:' + _data.wholeScore;
|
|
|
+ var scoreDivHtml = '<div name="wholeScore" class="right" isself="' +_data.isSelf+ '">'+jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_58 + _data.wholeScore;
|
|
|
+ //如果节点不能评分,隐藏总分
|
|
|
+ if (data[i].needScore == '0') {
|
|
|
+ scoreDivHtml = '<div>';//增加一个div标签,不然格局有问题,打分过程中隐藏评分人参数失败
|
|
|
+ }
|
|
|
+ controlAreaHtml += scoreDivHtml;
|
|
|
+
|
|
|
+ if (data[i].isVetoZero == 1) {
|
|
|
+ controlAreaHtml += '<span style="margin-left:5px;color:red">'+
|
|
|
+ jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_3+
|
|
|
+ '</span></div>';
|
|
|
+ } else {
|
|
|
+ controlAreaHtml += '</div>';
|
|
|
+ }
|
|
|
+ controlAreaHtml += '<div name="editScoreDiv" class="row1 paddingbox" isself="' +_data.isSelf+ '">';
|
|
|
+ if (_perfGradeEvaluate == '1') {//允许打整体评价等级
|
|
|
+ controlAreaHtml = controlAreaHtml + '<label>'+
|
|
|
+ jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_14+
|
|
|
+ '</label>'
|
|
|
+ + '<span style="float: left;">'
|
|
|
+ + (data[i].wholeGrade)
|
|
|
+ + '</span>'
|
|
|
+ }
|
|
|
+ controlAreaHtml = controlAreaHtml + '</div>';
|
|
|
+ }
|
|
|
+ controlAreaHtml = controlAreaHtml + '<div name="editTextareaDiv" class="row1 paddingbox">'
|
|
|
+ + '<label>'+
|
|
|
+ jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_34+
|
|
|
+ '</label>'
|
|
|
+ + '<span class="longinpwrap evaluate"><textarea disabled="disabled" class="paddingbox" >' + _data.wholeComment + '</textarea></span>'
|
|
|
+ + '</div></div>';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ controlAreaHtml = controlAreaHtml + "</div>";
|
|
|
+
|
|
|
+ if (data.length == 1 && data[0].canEdit == 1) {
|
|
|
+ $('.controller').hide();
|
|
|
+ } else {
|
|
|
+ wholeCommentHtml = wholeCommentHtml + controlAreaHtml;
|
|
|
+ $(wholeCommentHtml).appendTo($('#wholeComment .scoreContentboxwrap'));
|
|
|
+ //$('#wholeComment .controller').click();
|
|
|
+ }
|
|
|
+ if (data) {
|
|
|
+ for (var i = 0; i < data.length; i++) {
|
|
|
+ if (data[i].scoreToLevel) {
|
|
|
+ $('[id="wholeGrade_' + data[i].gradeTaskNode + '"]').find("option[id='" + data[i].scoreToLevel + "']").attr("selected", "selected");
|
|
|
+ } else {
|
|
|
+ $('[id="wholeGrade_' + data[i].gradeTaskNode + '"]').find("option[id='" + data[i].wholeGrade + "']").attr("selected", "selected");
|
|
|
+ }
|
|
|
+ $('[id="wholeGrade_' + data[i].gradeTaskNode + '"]').attr('title', $('#wholeGrade').find("option:selected").text());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (currentWholeGrade == '') {
|
|
|
+ blackOp = "blackOp";
|
|
|
+ }
|
|
|
+ that.spreadScore();
|
|
|
+ $('.spreadothers').trigger('click');
|
|
|
+ it.levelSwitchChange();
|
|
|
+ //整体评价中是否允许修改等级
|
|
|
+ if ( isManualJudgeGrade==2) {
|
|
|
+ $("[name='wholeGrade']").attr("disabled", "disabled");
|
|
|
+ }
|
|
|
+ //总分校验
|
|
|
+ $("#totalScore").find("input").blur(function () {
|
|
|
+ sumSocreOnblur(this);
|
|
|
+ /**
|
|
|
+ * 自动计算等级
|
|
|
+ */
|
|
|
+ var grade = $("#wholeComment").find("select").val();
|
|
|
+ if (isManualJudgeGrade == 2 || isManualJudgeGrade == 0) {
|
|
|
+ // var url = shr.getContextPath() + "/dynamic.do?handler=com.kingdee.shr.perfweb.portal.handler.PerfBatchScoreHandler&uipk="+shr.getUipk() +
|
|
|
+ // "&method=getLeaveByScore&shruicode="+shr.getUrlRequestParam("shruicode");
|
|
|
+ that.remoteCall({
|
|
|
+ method: "getLeaveByScore",
|
|
|
+ async: false,
|
|
|
+ param: {
|
|
|
+ nodeSumScore: $(this).val(),
|
|
|
+ id:gradeTaskNode,
|
|
|
+ shruicode:shr.getUrlRequestParam("shruicode")
|
|
|
+ },
|
|
|
+ // data: {"nodeSumScore": $(this).val(), "id": gradeTaskNode},
|
|
|
+ success: function (data) {
|
|
|
+ //这里的结果类似 {data: "差E"}
|
|
|
+ console.log(data);
|
|
|
+ if (data.data) {
|
|
|
+ $("#wholeComment").find("select").find('option').attr('selected', false);
|
|
|
+ $("#wholeComment").find("select").find("option[value='" + data.data + "']").attr('selected', true);
|
|
|
+ //$("#wholeComment").find("select").val(data.data);
|
|
|
+ $('.workerList li.current').find("i[name='nodeGrade']").text(data.data);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ });
|
|
|
+
|
|
|
+ //考核结果显示控制
|
|
|
+ if(typeof initScoreDetailResultShow == 'function') {
|
|
|
+ initScoreDetailResultShow();
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ getScroeTipsContent: function(items,params){
|
|
|
+ var arr = [];
|
|
|
+ if(items.subAreaType == '1'){ // 加减分区域
|
|
|
+ if (_targetAddSub = "1") { // 指标评分范围
|
|
|
+ if(items.targetAddSubDown && items.targetAddSubUp){
|
|
|
+ arr.push(shr.formatMsg(jsBizMultLan.perfweb_perfscoreNew_i18n_yw20230307_01,
|
|
|
+ [items.targetAddSubDown,items.targetAddSubUp]));
|
|
|
+ }else if(items.targetAddSubDown){
|
|
|
+ arr.push(shr.formatMsg(jsBizMultLan.perfweb_perfscoreNew_i18n_yw20230307_02,
|
|
|
+ [items.targetAddSubDown]));
|
|
|
+ }else if(items.targetAddSubUp){
|
|
|
+ arr.push(shr.formatMsg(jsBizMultLan.perfweb_perfscoreNew_i18n_yw20230307_03,
|
|
|
+ [items.targetAddSubUp]));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(items.areaAddSub == "1"){ // 区域评分范围
|
|
|
+ if(items.areaAddSubDown && items.areaAddSubUp){
|
|
|
+ arr.push(shr.formatMsg(jsBizMultLan.perfweb_perfscoreNew_i18n_yw20230307_04,
|
|
|
+ [items.areaAddSubDown,items.areaAddSubUp]));
|
|
|
+ }else if(items.areaAddSubDown){
|
|
|
+ arr.push(shr.formatMsg(jsBizMultLan.perfweb_perfscoreNew_i18n_yw20230307_05,
|
|
|
+ [items.areaAddSubDown]));
|
|
|
+ }else if(items.areaAddSubUp){
|
|
|
+ arr.push(shr.formatMsg(jsBizMultLan.perfweb_perfscoreNew_i18n_yw20230307_06,
|
|
|
+ [items.areaAddSubUp]));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ var _gcanOverRang = params.canOverSumRange;
|
|
|
+ _gcanNegative = params.canNegative,
|
|
|
+ scoringWay = items.scoringWay,
|
|
|
+ _glowLimit = (params.lowLimit || params.lowLimit === 0) ? params.lowLimit.toString() : '',
|
|
|
+ _gupLimit = (params.uperLimit || params.uperLimit === 0) ? params.uperLimit.toString() : '',
|
|
|
+ _overRang = params.overRange;
|
|
|
+ if(_glowLimit && _gupLimit){
|
|
|
+ arr.push(shr.formatMsg(jsBizMultLan.perfweb_perfscoreNew_i18n_yw20230307_07,
|
|
|
+ [_glowLimit,_gupLimit]));
|
|
|
+ }else if(_glowLimit){
|
|
|
+ arr.push(shr.formatMsg(jsBizMultLan.perfweb_perfscoreNew_i18n_yw20230307_08,
|
|
|
+ [_glowLimit]));
|
|
|
+ }else if(_gupLimit){
|
|
|
+ arr.push(shr.formatMsg(jsBizMultLan.perfweb_perfscoreNew_i18n_yw20230307_09,
|
|
|
+ [_gupLimit]));
|
|
|
+ }
|
|
|
+ if(_gcanOverRang == '1'){//分数允许超出分制范围
|
|
|
+ arr.push(shr.formatMsg(jsBizMultLan.perfweb_perfscoreNew_i18n_1625470317_2,
|
|
|
+ [_overRang]))
|
|
|
+ }
|
|
|
+ if (_gcanNegative == '1') {//允许负分
|
|
|
+ arr.push(jsBizMultLan.perfweb_evaluationdetailsJuicer_1586069239184_i18n_11);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return arr.join(',');
|
|
|
+ },
|
|
|
+
|
|
|
+ _getCurrentScoreLevel: function(){
|
|
|
+ var curScoreMsg = {};
|
|
|
+ that.remoteCall({
|
|
|
+ method: "getCurrentScoreLevel",
|
|
|
+ async: false,
|
|
|
+ param: {
|
|
|
+ evaObj: evaObj
|
|
|
+ },
|
|
|
+ async: false,
|
|
|
+ success: function (data) {
|
|
|
+ if (data != null) {
|
|
|
+ curScoreMsg = data;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return curScoreMsg;
|
|
|
+ },
|
|
|
+ // 判断该区域是否有可以选是否存在字段的指标,没有就不显示该字段
|
|
|
+ judgeIsRejection: function(indicator){
|
|
|
+ var flag = false;
|
|
|
+ for(var j = 0; j < indicator.length; j++){
|
|
|
+ if(indicator[j].FREJECTION == 1){
|
|
|
+ flag = true;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return flag;
|
|
|
+ },
|
|
|
+ // 判断该区域是否全部都是可以选是否存在字段的指标,没有就不显示该字段
|
|
|
+ judgeAllIsRejection: function(indicator){
|
|
|
+ var flag = true;
|
|
|
+ for(var j = 0; j < indicator.length; j++){
|
|
|
+ if(indicator[j].FREJECTION != 1){
|
|
|
+ flag = false;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return flag;
|
|
|
+ },
|
|
|
+ // 指标评语是否必填
|
|
|
+ judgeCommentIsRequired: function(msgdata, area, tabIndex){
|
|
|
+ var isTargetComment = '';
|
|
|
+ for(var i = 0; i < msgdata.length; i++){
|
|
|
+ if(msgdata[i].gradeTaskNode == area[tabIndex].gradeTaskNodeId){
|
|
|
+ isTargetComment = msgdata[i].isTargetComment;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return isTargetComment;
|
|
|
+ },
|
|
|
+ getGradeOption: function(curScoreMsg){
|
|
|
+ if(null != curScoreMsg){
|
|
|
+ var levelSelectValue = curScoreMsg.levelSelectVal; //等级下拉选
|
|
|
+ var levelSelectKey = curScoreMsg.levelSelectKey; //等级下拉选key
|
|
|
+ var selectOptionArr = new Array();
|
|
|
+ var selectOptionKeyArr = new Array();
|
|
|
+ if (levelSelectValue != null && levelSelectValue != '') {
|
|
|
+ selectOptionArr = levelSelectValue.split(",");
|
|
|
+ selectOptionKeyArr = levelSelectKey.split(",");
|
|
|
+ }
|
|
|
+ for(var i = 0; i < selectOptionArr.length; i ++){
|
|
|
+ var selectOptionArrItem = selectOptionArr[i];
|
|
|
+ if(isShowLevelScoreRange == 0 || isShowLevelScoreRange == false){
|
|
|
+ selectOptionArrItem = selectOptionArr[i].split("(")[0];
|
|
|
+ }
|
|
|
+ gradeOption[i] = {};
|
|
|
+ gradeOption[i]["value"] = selectOptionKeyArr[i];
|
|
|
+ gradeOption[i]["alias"] = selectOptionArrItem;
|
|
|
+ gradeOption[i]["isenum"] = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ // 初始化区域指标表格
|
|
|
+ initScoreTab: function(tabIndex,msgdata){
|
|
|
+ var params = that._getGridParams(tabIndex,msgdata);
|
|
|
+ var _grid = $('#scoreTab_'+tabIndex);
|
|
|
+ var options = {
|
|
|
+ datatype: 'local',
|
|
|
+ data: params.tabData,
|
|
|
+ colNames: params.myName,
|
|
|
+ colModel: params.myModel,
|
|
|
+ multiSelect: false,
|
|
|
+ multiselectWidth: '',//复选框单元格宽度
|
|
|
+ shrinkToFit: params.shrinkToFit,//true没有滚动条,false有滚动条
|
|
|
+ rownumbers: true,
|
|
|
+ width: 640,//这个宽度不能为百分比
|
|
|
+ height: 298,//高度,表格高度。可为数值、百分比或'auto'
|
|
|
+ cellEdit: entryType == 'viewMyScoreForm' ? false : true,
|
|
|
+ cellsubmit: 'clientArray',
|
|
|
+ keyOptions:{ // 编辑最后一行的最后一个可编辑单元格时,回车不新增行,而是回到第一个可编辑单元格
|
|
|
+ addNewRowForLastCell: false,
|
|
|
+ loop: true
|
|
|
+ },
|
|
|
+ beforeEditCell: function(rowid, cellname, value, iRow, iCol){
|
|
|
+ that._beforeEditCell(rowid, cellname, value, iRow, iCol, _grid);
|
|
|
+ },
|
|
|
+ afterEditCell: function(rowid, cellname, value, iRow, iCol){
|
|
|
+ that._afterEditCell(rowid, cellname, value, iRow, iCol, _grid);
|
|
|
+ },
|
|
|
+ afterSaveCell: function(rowid, cellname, value, iRow, iCol){
|
|
|
+ that._afterSaveCell(rowid, cellname, value, iRow, iCol, _grid);
|
|
|
+ },
|
|
|
+ loadComplete: function (data) {
|
|
|
+ that._loadComplete(data, _grid, params.scoreTipsText);
|
|
|
+ }
|
|
|
+ };
|
|
|
+ _grid.jqGrid(options);
|
|
|
+ },
|
|
|
+
|
|
|
+ _getGridParams: function(tabIndex,msgdata){
|
|
|
+ var area = globalIndicatorData.rows.evaAreaList;
|
|
|
+ var myModel = [];
|
|
|
+ var myName = [];
|
|
|
+ var indicator = area[tabIndex].evaIndicatorList || area[tabIndex].evaRecordList;
|
|
|
+ var areaNeedScore = area[tabIndex].needScore;
|
|
|
+ var fieldList = area[tabIndex].fieldList;
|
|
|
+ var tabData = [];
|
|
|
+ var isExistComment = 0;
|
|
|
+ var thisIsRejection = that.judgeIsRejection(indicator); // 该区域指标是否含有否决项
|
|
|
+ var thisAllIsRejection = that.judgeAllIsRejection(indicator); // 该区域指标是否都是否决项
|
|
|
+ var scoreOrRate = globalIndicatorData.scoreOrRate; // 0:打分,1:打等级
|
|
|
+ //var curScoreMsg = indicator.length > 0 ? it.getCurrentAndPrevScoreMsg(indicator[0].FID) : []; // 当前节点打分信息
|
|
|
+ var curScoreMsg = that._getCurrentScoreLevel();
|
|
|
+ // 指标评语是否必填
|
|
|
+ var isTargetComment = that.judgeCommentIsRequired(msgdata, area, tabIndex);
|
|
|
+ var scoreTipsText = '';
|
|
|
+
|
|
|
+ that.getGradeOption(curScoreMsg);
|
|
|
+ // 打分字段单独处理
|
|
|
+ var myScoreName='';
|
|
|
+ var myScoreModel={};
|
|
|
+ for (var i = 0; i < fieldList.length; i++) {
|
|
|
+ var fieldName = fieldList[i].colName;
|
|
|
+ var fieldMaintenanceShow = fieldList[i].fieldMaintenanceShow;
|
|
|
+ var fieldShowLocation = fieldList[i].fieldShowLocation;
|
|
|
+ var fieldType = fieldList[i].fieldType;
|
|
|
+ var canEditField = canEditTable && fieldList[i].fieldMaintenanceStage !== '100';
|
|
|
+ var isHidden = fieldShowLocation === '10' ? false : true;
|
|
|
+ var fillOverwrite = '';
|
|
|
+ var required = fieldList[i].required && canEditField;
|
|
|
+ var classes = '';
|
|
|
+ if(fieldName === 'FCOMMENT'){
|
|
|
+ required = canEditField && isTargetComment === '1';
|
|
|
+ }else if(fieldName === 'FSCORE'){
|
|
|
+ required = canEditField && area[tabIndex].needScore === '2';
|
|
|
+ }
|
|
|
+ if(fieldName.indexOf('FEXTEND') > -1){ // 扩展字段匹配可维护流程级数
|
|
|
+ canEditField = canEditTable && (fieldMaintenanceShow === '0' || fieldMaintenanceShow === '1');
|
|
|
+ isHidden = fieldMaintenanceShow === '3';
|
|
|
+ fillOverwrite = fieldList[i].fillOverwrite;
|
|
|
+ required = canEditField && fieldMaintenanceShow === '1';
|
|
|
+ }
|
|
|
+ if(canEditTable && !canEditField){
|
|
|
+ classes = 'disabled';
|
|
|
+ }else if(required){
|
|
|
+ classes = 'required';
|
|
|
+ }
|
|
|
+
|
|
|
+ if(fieldName == 'FWEIGHT' && hideWeight()){
|
|
|
+ isHidden = true;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 分数
|
|
|
+ if(fieldName == "FSCORE"){
|
|
|
+ if(!thisAllIsRejection){
|
|
|
+ // 打分、选是否存在混合字段列
|
|
|
+ if((scoreOrRate == 0 || (scoreOrRate == 1 && area[tabIndex].subAreaType == '1')) && thisIsRejection){
|
|
|
+ //myName.push('评分/是否存在');
|
|
|
+ myName.push(jsBizMultLan.perfweb_perfscoreNew_zw20201229_i18n_05);
|
|
|
+ myModel.push({
|
|
|
+ name: 'scoreORrejection',
|
|
|
+ index: 'scoreORrejection',
|
|
|
+ width: 100,
|
|
|
+ align: "left",
|
|
|
+ sortable: true,
|
|
|
+ editable: canEditField,
|
|
|
+ required: required,
|
|
|
+ classes: classes,
|
|
|
+ hidden:entryType === 'viewEvaForm' ? true :false
|
|
|
+ });
|
|
|
+ }
|
|
|
+ //参数控制打分字段隐藏显示
|
|
|
+ if (hideUnselfScore=='false' && pageSource == 'PERSONHISTORY'){
|
|
|
+ myScoreName=fieldList[i].showName;
|
|
|
+ myScoreModel={
|
|
|
+ name: fieldName,
|
|
|
+ index: fieldName,
|
|
|
+ width: 70,
|
|
|
+ align: "left",
|
|
|
+ sortable: true,
|
|
|
+ editable: canEditField,
|
|
|
+ required: required,
|
|
|
+ classes: classes,
|
|
|
+ // formatter: 'numberField'
|
|
|
+ hidden: false, // 已评分默认显示评分列
|
|
|
+ }
|
|
|
+ }else if (scoreOrRate == 0 || (scoreOrRate == 1 && area[tabIndex].subAreaType == '1')){
|
|
|
+ myName.push(fieldList[i].showName+'\<span\ class="score-tips">\<\/span\>');
|
|
|
+ myModel.push({
|
|
|
+ name: fieldName,
|
|
|
+ index: fieldName,
|
|
|
+ width: 70,
|
|
|
+ align: "left",
|
|
|
+ sortable: true,
|
|
|
+ editable: canEditField,
|
|
|
+ required: required,
|
|
|
+ classes: classes,
|
|
|
+ // formatter: 'numberField'
|
|
|
+ hidden: entryType === 'viewEvaForm' ? true : (thisIsRejection ? true : false), // 既有打分又有否决项指标的区域,隐藏打分列,显示混合字段列
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 组装表格字段名称属性
|
|
|
+ if(scoreOrRate == 1 && !thisAllIsRejection && thisIsRejection && area[tabIndex].subAreaType !== '1'){ // 打等级、选是否存在混合字段列
|
|
|
+ //myName.push('等级/是否存在');
|
|
|
+ myName.push(jsBizMultLan.perfweb_perfscoreNew_zw20201229_i18n_06);
|
|
|
+ myModel.push({
|
|
|
+ name: 'gradeORrejection',
|
|
|
+ index: 'gradeORrejection',
|
|
|
+ width: 100,
|
|
|
+ align: "left",
|
|
|
+ sortable: true,
|
|
|
+ editable: canEditTable,
|
|
|
+ hidden:entryType === 'viewEvaForm' ? true :false
|
|
|
+ });
|
|
|
+ }
|
|
|
+ if(scoreOrRate == 1 && !thisAllIsRejection && area[tabIndex].subAreaType !== '1'){ // 既有打等级又有否决项指标的区域,隐藏等级列,显示混合字段列
|
|
|
+ //myName.push('等级');
|
|
|
+ myName.push(jsBizMultLan.perfweb_perfscoreNew_zw20201229_i18n_07);
|
|
|
+ myModel.push({
|
|
|
+ name: 'nodeGrade',
|
|
|
+ index: 'nodeGrade',
|
|
|
+ width: 100,
|
|
|
+ align: "left",
|
|
|
+ sortable: true,
|
|
|
+ editable: canEditTable,
|
|
|
+ edittype: 'shrselect',
|
|
|
+ editoptions: {
|
|
|
+ selectJson: {
|
|
|
+ data: gradeOption
|
|
|
+ },
|
|
|
+ enumSource: {
|
|
|
+ data: gradeOption
|
|
|
+ }
|
|
|
+ },
|
|
|
+ formatter: 'shrtext',
|
|
|
+ hidden: entryType === 'viewEvaForm' ? true : (thisIsRejection|| areaNeedScore=='0' ? true : false)
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 定性/定量、可见性、否决项
|
|
|
+ else if(fieldName == "FQUALIORRATION" || fieldName == 'FISVISIBLE' || fieldName == 'FREJECTION'){
|
|
|
+ myName.push(fieldList[i].showName);
|
|
|
+ myModel.push({name:fieldName, index:fieldName, width:10, hidden:true});
|
|
|
+ if(fieldName == "FREJECTION" && thisIsRejection){ // 否决项
|
|
|
+ myName.push(
|
|
|
+ //'是否存在'
|
|
|
+ jsBizMultLan.perfweb_perfscoreNew_zw20210105_i18n_01
|
|
|
+ );
|
|
|
+ myModel.push({
|
|
|
+ name: 'isRejection',
|
|
|
+ index: 'isRejection',
|
|
|
+ width: 100,
|
|
|
+ align: "left",
|
|
|
+ sortable: true,
|
|
|
+ editable: canEditField,
|
|
|
+ edittype: 'shrselect',
|
|
|
+ required: required,
|
|
|
+ classes: classes,
|
|
|
+ editoptions: {
|
|
|
+ selectJson: {
|
|
|
+ //data: [{value:"0",alias:"否",isenum:false},{value:"1",alias:"是",isenum:false}],
|
|
|
+ data: [{value:"0",alias:jsBizMultLan.perfweb_perfscoreNew_zw20201229_i18n_09,isenum:false},{value:"1",alias:jsBizMultLan.perfweb_perfscoreNew_zw20201229_i18n_10,isenum:false}],
|
|
|
+ onChange: function(){
|
|
|
+ var $this = $(this);
|
|
|
+ if($this.shrSelect('getValue').value == '1'){
|
|
|
+ //shr.showConfirm('若存在否决项,将直接影响最终得分,确定要选择吗?', function () {
|
|
|
+ shr.showConfirm(jsBizMultLan.perfweb_perfscoreNew_zw20201229_i18n_08, function () {
|
|
|
+ calcTotoalScore(gradeTaskNode);
|
|
|
+ },function(){
|
|
|
+ $this.shrSelect('setValue','0');
|
|
|
+ });
|
|
|
+ }else{
|
|
|
+ setTimeout(function(){
|
|
|
+ calcTotoalScore(gradeTaskNode);
|
|
|
+ },100)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ enumSource: {
|
|
|
+ //data: [{value:"0",alias:"否",isenum:false},{value:"1",alias:"是",isenum:false}]
|
|
|
+ data: [{value:"0",alias:jsBizMultLan.perfweb_perfscoreNew_zw20201229_i18n_09,isenum:false},{value:"1",alias:jsBizMultLan.perfweb_perfscoreNew_zw20201229_i18n_10,isenum:false}]
|
|
|
+ }
|
|
|
+ },
|
|
|
+ formatter: 'shrselect',
|
|
|
+ hidden: entryType === 'viewEvaForm' ? true : (thisAllIsRejection ? false : true),// 既有打等级或评分又有否决项指标的区域,隐藏否决项列,显示混合字段列
|
|
|
+ });
|
|
|
+ }
|
|
|
+ if(fieldShowLocation === '10' && fieldName !== 'FREJECTION'){
|
|
|
+ myName.push(fieldList[i].showName);
|
|
|
+ myModel.push({
|
|
|
+ name: fieldName+'Text',
|
|
|
+ index: fieldName+'Text',
|
|
|
+ width: 100,
|
|
|
+ align: "left",
|
|
|
+ sortable: true,
|
|
|
+ classes: canEditTable ? 'disabled': '',
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 评分公式,用于判断定量指标是否有评分公式
|
|
|
+ else if(fieldName == "FSCORINGFORMULA"){
|
|
|
+ myName.push(fieldList[i].showName);
|
|
|
+ myModel.push({
|
|
|
+ name: fieldName,
|
|
|
+ index: fieldName,
|
|
|
+ width: 120,
|
|
|
+ align: "left",
|
|
|
+ sortable: true,
|
|
|
+ editable: false,
|
|
|
+ required: required,
|
|
|
+ classes: classes,
|
|
|
+ hidden: fieldShowLocation === '10' ? false : true
|
|
|
+ });
|
|
|
+ }
|
|
|
+ // 字段类型为是否、选择项
|
|
|
+ else if(fieldShowLocation === '10' && (fieldType == 'Boolean' || fieldType == 'Select')){
|
|
|
+ var fieldOptions = [];
|
|
|
+ if(fieldType == 'Boolean'){
|
|
|
+ // [{value:"0",alias:"否",isenum:false},{value:"1",alias:"是",isenum:false}]
|
|
|
+ fieldOptions = [{value:"0",alias:jsBizMultLan.perfweb_perfscoreNew_zw20201229_i18n_09,isenum:false},{value:"1",alias:jsBizMultLan.perfweb_perfscoreNew_zw20201229_i18n_10,isenum:false}];
|
|
|
+ }else{
|
|
|
+ var options = fieldList[i].options;
|
|
|
+ $.each(options,function(i,item){
|
|
|
+ fieldOptions.push({
|
|
|
+ value: item.key,
|
|
|
+ alias: item.value
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }
|
|
|
+ myName.push(fieldList[i].showName);
|
|
|
+ myModel.push({
|
|
|
+ name: fieldName,
|
|
|
+ index: fieldName,
|
|
|
+ width: 100,
|
|
|
+ align: "left",
|
|
|
+ sortable: true,
|
|
|
+ editable: canEditField,
|
|
|
+ edittype: 'shrselect',
|
|
|
+ required: required,
|
|
|
+ classes: classes,
|
|
|
+ editoptions: {
|
|
|
+ selectJson: {
|
|
|
+ data: fieldOptions,
|
|
|
+ onChange: function(){
|
|
|
+ }
|
|
|
+ },
|
|
|
+ enumSource: {
|
|
|
+ data: fieldOptions
|
|
|
+ }
|
|
|
+ },
|
|
|
+ formatter: 'shrselect',
|
|
|
+ hidden: isHidden ,
|
|
|
+ });
|
|
|
+ }
|
|
|
+ // 字段类型为长文本 + 实际完成值、目标值
|
|
|
+ else if(fieldShowLocation === '10' && (fieldType == 'LongText' || fieldName == 'FACTUALCOMPLEVALUE' || fieldName == 'FTARGETVALUE')){
|
|
|
+ isExistComment = fieldName == "FCOMMENT" ? 1 : 0;
|
|
|
+ var fw = 400;
|
|
|
+ if(fieldName == 'FNAME' || fieldName == 'FKEYITEM'){
|
|
|
+ fw = 150;
|
|
|
+ }
|
|
|
+ myName.push(fieldList[i].showName);
|
|
|
+ myModel.push({
|
|
|
+ name: fieldName,
|
|
|
+ index: fieldName,
|
|
|
+ width: fw,
|
|
|
+ align: "left",
|
|
|
+ sortable: true,
|
|
|
+ editable: canEditField,
|
|
|
+ edittype: 'wafTextArea',
|
|
|
+ fillOverwrite: fillOverwrite,
|
|
|
+ hidden: (entryType === 'viewEvaForm' && fieldName == "FCOMMENT") || isHidden ? true : false,
|
|
|
+ required: required,
|
|
|
+ classes: classes,
|
|
|
+ formatter: function(val,msg){
|
|
|
+ return '<div class="cell-height scrollbarthin">'+(val?val:'')+'</div>';
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ // 字段类型为短文本、数字
|
|
|
+ else if(fieldShowLocation === '10' && (fieldType == 'Text' || fieldType == 'Number')){
|
|
|
+ myName.push(fieldList[i].showName+(fieldName == "FWEIGHT" ? '(%)' : ''));
|
|
|
+ myModel.push({
|
|
|
+ name: fieldName,
|
|
|
+ index: fieldName,
|
|
|
+ width: fieldList[i].fieldType === 'Text' ? 120 : 90,
|
|
|
+ align: "left",
|
|
|
+ sortable: true,
|
|
|
+ editable: canEditField,
|
|
|
+ hidden: isHidden,
|
|
|
+ fieldType: fieldType,
|
|
|
+ fillOverwrite: fillOverwrite,
|
|
|
+ required: required,
|
|
|
+ classes: classes,
|
|
|
+ formatter: function(val,msg){
|
|
|
+ var text = val;
|
|
|
+ var fieldType = msg.colModel.fieldType;
|
|
|
+ if(fieldType === 'Text'){
|
|
|
+ text = '<div class="cell-height scrollbarthin">'+val+'</div>';
|
|
|
+ }
|
|
|
+ return text;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ // 字段类型为日期
|
|
|
+ else if(fieldShowLocation === '10' && (fieldType == 'Date' || fieldType == 'Time' || fieldType == 'TimeStamp')){
|
|
|
+ if(fieldShowLocation === '10'){
|
|
|
+ myName.push(fieldList[i].showName);
|
|
|
+ myModel.push({
|
|
|
+ name: fieldName,
|
|
|
+ index: fieldName,
|
|
|
+ width: 100,
|
|
|
+ align: "left",
|
|
|
+ sortable: true,
|
|
|
+ editable: canEditField,
|
|
|
+ edittype: 'shrDateTimePicker',
|
|
|
+ hidden : isHidden,
|
|
|
+ fieldType: fieldType,
|
|
|
+ required: required,
|
|
|
+ classes: classes,
|
|
|
+ editoptions: {
|
|
|
+ datepickerjson: {
|
|
|
+ ctrlType: fieldType
|
|
|
+ }
|
|
|
+ },
|
|
|
+ formatter: function(val,msg){
|
|
|
+ return window.dateTimePickerService.transformUTCDate(val,true,'',{ctrlType: msg.colModel.fieldType})
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 其他默认显示在列表的字段
|
|
|
+ else if(fieldShowLocation === '10'){
|
|
|
+ var fw = 120;
|
|
|
+ if(fieldList[i].fieldType === 'LongText'){
|
|
|
+ fw = 300;
|
|
|
+ }
|
|
|
+ myName.push(fieldList[i].showName);
|
|
|
+ myModel.push({
|
|
|
+ name: fieldName,
|
|
|
+ index: fieldName,
|
|
|
+ width:fw,
|
|
|
+ align: "left",
|
|
|
+ sortable: true,
|
|
|
+ hidden: isHidden,
|
|
|
+ fieldType: fieldType,
|
|
|
+ classes: canEditTable ? 'disabled': '',
|
|
|
+ formatter: function(val,msg){
|
|
|
+ var text = val;
|
|
|
+ var fieldType = msg.colModel.fieldType;
|
|
|
+ if(typeof val === "object"){
|
|
|
+ text = val.name;
|
|
|
+ }else if(fieldType === 'Text' || fieldType === 'LongText' || fieldType === 'Unknown'){
|
|
|
+ text = '<div class="cell-height scrollbarthin">'+val+'</div>';
|
|
|
+ }else if(fieldType == 'Boolean'){
|
|
|
+ text = val === '0' ? jsBizMultLan.perfweb_perfscoreNew_zw20201229_i18n_09 : jsBizMultLan.perfweb_perfscoreNew_zw20201229_i18n_10;
|
|
|
+ }else if(fieldType == 'Date' || fieldType == 'Time' || fieldType == 'TimeStamp'){
|
|
|
+ text = window.dateTimePickerService.transformUTCDate(val,true,'',{ctrlType: msg.colModel.fieldType});
|
|
|
+ }
|
|
|
+ return text;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ // 扩展字段加上是否覆盖填写字段值
|
|
|
+ if(fieldName.indexOf('FEXTEND') > -1 && fieldShowLocation === '10'){
|
|
|
+ myName.push('fillOverwrite');
|
|
|
+ myModel.push({name:'fillOverwrite_'+fieldName, index:'fillOverwrite_'+fieldName, width:10, hidden:true});
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //打分字段后置,放在操作前面
|
|
|
+ if (hideUnselfScore=='false' && pageSource == 'PERSONHISTORY' && !thisAllIsRejection){
|
|
|
+ myName.push(myScoreName);
|
|
|
+ myModel.push(myScoreModel);
|
|
|
+ }
|
|
|
+
|
|
|
+ var otherFieldName = jsBizMultLan.perfweb_perfscore_1637291044_i18n_01 ;
|
|
|
+ //当前页面类型:评分页面:'1',查看考核历史页面:'2',专业应用查看评估表:'3'
|
|
|
+ if(pageSource !=undefined && pageSource=="PERSONHISTORY"){
|
|
|
+ otherFieldName = jsBizMultLan.perfweb_perfscore_1637291044_i18n_02 ;
|
|
|
+ }
|
|
|
+ else if(pageSource == undefined && viewMode ==undefined){
|
|
|
+ otherFieldName = jsBizMultLan.perfweb_perfscore_1637291044_i18n_01 ;
|
|
|
+ }
|
|
|
+ else if(pageSource !=undefined && (viewMode == 'viewEvaReport' || viewMode == 'viewAllEffective')){
|
|
|
+ otherFieldName = jsBizMultLan.perfweb_perfscore_1637291044_i18n_02 ;
|
|
|
+ }
|
|
|
+
|
|
|
+ myName.push('FID','canEdit','canNegative','canVeto','gradeTaskNode','canOverSumRange','lowLimit','uperLimit','overRange',
|
|
|
+ //'操作'
|
|
|
+ /*jsBizMultLan.perf_perfscoreNewJuicer_1586255741045_i18n_2,*/otherFieldName,jsBizMultLan.perfweb_perfscore_1637291044_i18n_01,'subAreaType','areaAddSub','areaAddSubDown','areaAddSubUp','targetAddSub','targetAddSubDown','targetAddSubUp'
|
|
|
+ );
|
|
|
+ myModel.push(
|
|
|
+ {name:'id', index:'id', width:10, hidden:true},
|
|
|
+ {name:'canEdit', index:'canEdit', width:10, hidden:true},
|
|
|
+ {name:'canNegative', index:'canNegative', width:10, hidden:true},
|
|
|
+ {name:'canVeto', index:'canVeto', width:10, hidden:true}, // 判断是否可以打否决项canVeto = 2时可以
|
|
|
+ // {name:'otherScoreList', index:'otherScoreList', width:10, hidden:true},
|
|
|
+ {name:'gradeTaskNode', index:'gradeTaskNode', width:10, hidden:true},
|
|
|
+ {name:'canOverSumRange', index:'canOverSumRange', width:10, hidden:true},
|
|
|
+ {name:'lowLimit', index:'lowLimit', width:10, hidden:true},
|
|
|
+ {name:'uperLimit', index:'uperLimit', width:10, hidden:true},
|
|
|
+ {name:'overRange', index:'overRange', width:10, hidden:true},
|
|
|
+ // {name: 'operation', index: 'operation', width: 60, align: "center", sortable: false, formatter: function(){
|
|
|
+ // //var btntext = '查看其他人评分';
|
|
|
+ // var btntext = jsBizMultLan.perfweb_perfscoreNew_zw20201229_i18n_11;
|
|
|
+ // if(entryType === 'viewEvaForm'){
|
|
|
+ // //btntext = '查看评分详情';
|
|
|
+ // btntext = jsBizMultLan.perfweb_perfscoreNew_zw20201229_i18n_12;
|
|
|
+ // }
|
|
|
+ // return '<a class="view_other_btn" href="javascript:;">'+btntext+'</a>'
|
|
|
+ // },},
|
|
|
+ {name:'preNodeScoreList', index:'preNodeScoreList', width:100, hidden:true},
|
|
|
+ {name:'nodeInfoList', index:'nodeInfoList', width:180, hidden: false,classes: canEditTable ? 'disabled': '',formatter: function(value,mmodel,rowData){
|
|
|
+ // hideUnselfScoring === 'true' ? true : false
|
|
|
+ var nodeInfoList = rowData.nodeInfoList ? JSON.parse(rowData.nodeInfoList) : [];
|
|
|
+ var flag = false;
|
|
|
+ $.each(nodeInfoList, function(i, data){
|
|
|
+ if(hideUnselfScoring === "false" || (hideUnselfScoring === "true" && data.nodeHandlerId === personId)){
|
|
|
+ if(data.comment){
|
|
|
+ flag = true;
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ var temp = [
|
|
|
+ '<div class="expend-td-box cell-height scrollbarthin">',
|
|
|
+ '<ul class="other-msg">',
|
|
|
+ '{@each rows as item,i}',
|
|
|
+ // BT-00650981 绩效工作台—组织/员工目标评分——列表页面:其他评分人信息 打等级的就显示等级,后面多一个“分”字
|
|
|
+ // 判断是打等级还是打分,不同展示 jianyu_zhang 2022.02.10
|
|
|
+ '{@if hideUnselfScoring === "false" || (hideUnselfScoring === "true" && item.nodeHandlerId === personId)}',
|
|
|
+ '<li class="node-name">',
|
|
|
+ '{@if item.nodeName}(${item.nodeName}){@/if}${item.handlerName}:',
|
|
|
+ '{@if isRejection == 1 }',
|
|
|
+ '${item.isRejection.alias} ',
|
|
|
+ '{@else}',
|
|
|
+ '{@if item.needScore != "0"}',// 增加评分展示控制,不评分的不展示分数(包括定量指标)
|
|
|
+ '{@if item.score !== undefined && item.score !== null && item.score !== ""}',
|
|
|
+ //分
|
|
|
+ '${item.score}'+ jsBizMultLan.perfweb_perfscoreNew_ht_20220419_20,
|
|
|
+ '{@else if item.gradeRank != undefined && item.gradeRank != null && item.gradeRank != ""}',
|
|
|
+ '${item.gradeRank}',
|
|
|
+ '{@/if}',
|
|
|
+ '{@/if}',
|
|
|
+ '{@/if}',
|
|
|
+ '</li>',
|
|
|
+ '{@/if}',
|
|
|
+ //指标评语
|
|
|
+ '{@if item.comment}',
|
|
|
+ '<li>',
|
|
|
+ '<span class="expend-td-comment-field" title="${item.comment}">'+jsBizMultLan.perfweb_perfscoreNew_ht_20220414_36+':</span>',
|
|
|
+ '</li>',
|
|
|
+ '<li class="expend-td-comment"><pre class="textOverflow3">${item.comment}</pre></li>',
|
|
|
+ '{@/if}',
|
|
|
+ '{@each fieldList as it,j}',
|
|
|
+ '{@if it.colName.indexOf("FEXTEND") > -1 && it.fieldMaintenanceShow !== "3" && it.fillOverwrite === "0"}',
|
|
|
+ '<li field-type="${it.fieldType}">',
|
|
|
+ '<span class="" title="${it.showName}">${it.showName}:</span>',
|
|
|
+ '{@if item[it.colName]}',
|
|
|
+ '<pre class="textOverflow3">${item[it.colName]}</pre>',
|
|
|
+ '{@/if}',
|
|
|
+ '</li>',
|
|
|
+ '{@/if}',
|
|
|
+ '{@/each}',
|
|
|
+
|
|
|
+ '{@/each}',
|
|
|
+ '</ul>',
|
|
|
+ '</div>',
|
|
|
+ flag ? '<div class="expend-btn"></div>': ''
|
|
|
+ ].join('');
|
|
|
+ var tempDom = juicer(temp,{rows: nodeInfoList,isRejection: rowData.FREJECTION,hideUnselfScoring: pageSource === 'PERSONHISTORY'? 'false': hideUnselfScoring,personId: personId,fieldList: rowData.currIndiDetail.fieldList});
|
|
|
+ return tempDom;
|
|
|
+ }},
|
|
|
+ {name:'subAreaType', index:'subAreaType', width:10, hidden:true},
|
|
|
+ {name:'areaAddSub', index:'areaAddSub', width:10, hidden:true},
|
|
|
+ {name:'areaAddSubDown', index:'areaAddSubDown', width:10, hidden:true},
|
|
|
+ {name:'areaAddSubUp', index:'areaAddSubUp', width:10, hidden:true},
|
|
|
+ {name:'targetAddSub', index:'targetAddSub', width:10, hidden:true},
|
|
|
+ {name:'targetAddSubDown', index:'targetAddSubDown', width:10, hidden:true},
|
|
|
+ {name:'targetAddSubUp', index:'targetAddSubUp', width:10, hidden:true}
|
|
|
+ );
|
|
|
+ if(isExistComment == 1){
|
|
|
+ myName.push('commentName'); // 存储指标评语名称字段
|
|
|
+ myModel.push({name:'commentName', index:'commentName', width:10, hidden:true});
|
|
|
+ }
|
|
|
+ // 组装数据
|
|
|
+ var myData = that._getMyData(indicator,scoreOrRate,area,tabIndex,msgdata,fieldList,areaNeedScore);
|
|
|
+ tabData = myData.tabData;
|
|
|
+ scoreTipsText = myData.scoreTipsText;
|
|
|
+
|
|
|
+ // var showFieldWidth = 0;
|
|
|
+ // myModel.forEach(function(item){
|
|
|
+ // if(!item.hidden){
|
|
|
+ // showFieldWidth += item.width;
|
|
|
+ // }
|
|
|
+ // })
|
|
|
+ // var shrinkToFit = showFieldWidth < $('.scoretabwrap').eq(0).width() ? true : false;
|
|
|
+
|
|
|
+ var showFieldWidth = 0;
|
|
|
+ var show_count = 0,text_count = 0;
|
|
|
+ var tabwidth = $('.scoretabwrap').eq(0).width();
|
|
|
+ myModel.forEach(function(item){
|
|
|
+ if(!item.hidden){
|
|
|
+ showFieldWidth += item.width;
|
|
|
+ show_count ++; // 默认显示字段个数
|
|
|
+ if(item.edittype == "wafTextArea" || (item.edittype == "shrtext" && item.fieldType == 'Text')){
|
|
|
+ text_count ++ ; // 文本类型字段个数
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ var shrinkToFit = showFieldWidth < tabwidth ? true : false;
|
|
|
+ if(shrinkToFit){
|
|
|
+ var w1 = tabwidth - showFieldWidth - 34 - show_count * 6; // 可按比例分配宽度 34:复选框列 6:单元格左右内边距
|
|
|
+ var w2 = (w1/text_count).toFixed(2) - 6; // 每个长文本可分配的宽度
|
|
|
+ if(w1 != 0){
|
|
|
+ myModel.forEach(function(item, i){
|
|
|
+ if(!item.hidden && item.name != 'nodeInfoList' && (item.edittype == "wafTextArea" || (item.edittype == "shrtext" && item.fieldType == 'Text'))){
|
|
|
+ myModel[i].width = myModel[i].width + Number(w2); // 新列宽
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return {
|
|
|
+ tabData: tabData,
|
|
|
+ myName: myName,
|
|
|
+ myModel: myModel,
|
|
|
+ shrinkToFit: that.getShrinkToFit(shrinkToFit),
|
|
|
+ scoreTipsText: scoreTipsText
|
|
|
+ };
|
|
|
+ },
|
|
|
+ // 二开扩展点,true没有滚动条,false有滚动条
|
|
|
+ getShrinkToFit: function(shrinkToFit){
|
|
|
+ return shrinkToFit;
|
|
|
+ },
|
|
|
+ _beforeEditCell: function(rowid, cellname, value, iRow, iCol, _grid){
|
|
|
+ if(lastTable != _grid.attr('id')){
|
|
|
+ if(lastTable){
|
|
|
+ $('#'+lastTable).jqGrid('editStop');
|
|
|
+ }
|
|
|
+ lastTable = _grid.attr('id');
|
|
|
+ }
|
|
|
+ },
|
|
|
+ _afterEditCell: function(rowid, cellname, value, iRow, iCol, _grid){
|
|
|
+ var rowData = _grid.jqGrid('getOriginalRowData',rowid);
|
|
|
+ var colAttr = _grid.getColProp(cellname);
|
|
|
+ var fieldType = colAttr.fieldType;
|
|
|
+ if(cellname == 'scoreORrejection' || cellname == 'gradeORrejection' || cellname == 'nodeGrade' || cellname == 'isRejection'){
|
|
|
+ if(rowData.FREJECTION == 1){
|
|
|
+ $('#'+iRow+'_'+cellname).shrSelect({
|
|
|
+ id: iRow+'_'+cellname,
|
|
|
+ //data: [{value:"0",alias:"否",isenum:false},{value:"1",alias:"是",isenum:false}],
|
|
|
+ data: [{value:"0",alias:jsBizMultLan.perfweb_perfscoreNew_zw20201229_i18n_09,isenum:false},{value:"1",alias:jsBizMultLan.perfweb_perfscoreNew_zw20201229_i18n_10,isenum:false}],
|
|
|
+ value: rowData.isRejection,
|
|
|
+ onChange: function(){
|
|
|
+ var $this = $(this);
|
|
|
+ if($this.shrSelect('getValue').value == '1'){
|
|
|
+ //shr.showConfirm('若存在否决项,将直接影响最终得分,确定要选择吗?', function () {
|
|
|
+ shr.showConfirm(jsBizMultLan.perfweb_perfscoreNew_zw20201229_i18n_08, function () {
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'isRejection','1');
|
|
|
+ calcTotoalScore(gradeTaskNode);
|
|
|
+ $('.vetomsg').show();
|
|
|
+ },function(){
|
|
|
+ $this.shrSelect('setValue','0');
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'isRejection','0');
|
|
|
+ });
|
|
|
+ }else{
|
|
|
+ setTimeout(function(){
|
|
|
+ calcTotoalScore(gradeTaskNode);
|
|
|
+ if(that.judgeWheatherThereisVetos()){
|
|
|
+ $('.vetomsg').show();
|
|
|
+ }else{
|
|
|
+ $('.vetomsg').hide();
|
|
|
+ }
|
|
|
+ },100)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }else{
|
|
|
+ if(cellname == 'gradeORrejection' || cellname == 'nodeGrade'){
|
|
|
+ var cellVal = '';
|
|
|
+ $('#'+iRow+'_'+cellname).shrSelect({
|
|
|
+ id: iRow+'_'+cellname,
|
|
|
+ data: gradeOption,
|
|
|
+ // value: cellVal,
|
|
|
+ onChange: function(){}
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // if(cellname == 'FACTUALCOMPLETETIME'){
|
|
|
+ // initDateEven(iRow+'_'+cellname,0);
|
|
|
+ // }
|
|
|
+ // 单元格有滚动条时编辑取值修改
|
|
|
+ if(value.indexOf('class="cell-height scrollbarthin"') > -1){
|
|
|
+ if(fieldType === 'Text'){
|
|
|
+ _grid.find('#'+iRow+'_'+cellname).attr('maxlength','');
|
|
|
+ }
|
|
|
+ _grid.find('#'+iRow+'_'+cellname).val($(value).text());
|
|
|
+ }
|
|
|
+ },
|
|
|
+ _afterSaveCell: function(rowid, cellname, value, iRow, iCol, _grid){
|
|
|
+ var rowData = _grid.jqGrid('getOriginalRowData',rowid);
|
|
|
+ if(rowData.FREJECTION == 1){
|
|
|
+ if(cellname == 'scoreORrejection'){
|
|
|
+ //_grid.jqGrid('setCell', rowData.id, 'isRejection',rowData.scoreORrejection == '是' ? '1' : '0');
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'isRejection',rowData.scoreORrejection == jsBizMultLan.perfweb_perfscoreNew_zw20201229_i18n_10 ? '1' : '0');
|
|
|
+ }else if(cellname == 'gradeORrejection'){
|
|
|
+ //_grid.jqGrid('setCell', rowData.id, 'isRejection',rowData.gradeORrejection == '是' ? '1' : '0');
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'isRejection',rowData.gradeORrejection == jsBizMultLan.perfweb_perfscoreNew_zw20201229_i18n_10 ? '1' : '0');
|
|
|
+ }
|
|
|
+ // that.judgeWheatherThereisVetos();
|
|
|
+ }else{
|
|
|
+ if(cellname == 'scoreORrejection'){
|
|
|
+ // 在此处校验分数是否合法
|
|
|
+ if(value == ''){
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'FSCORE',null);
|
|
|
+ }else{
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'FSCORE',rowData.scoreORrejection);
|
|
|
+ inputOnblur(rowid, cellname, value, iRow, iCol, rowData, _grid)
|
|
|
+ }
|
|
|
+ }else if(cellname == 'gradeORrejection' || cellname == 'nodeGrade'){
|
|
|
+ var cellAlias = '';
|
|
|
+ var cellValue = '';
|
|
|
+ for(var i = 0; i < gradeOption.length; i++){
|
|
|
+ if(rowData.gradeORrejection == gradeOption[i].alias | rowData.nodeGrade == gradeOption[i].value){
|
|
|
+ cellAlias = gradeOption[i].alias;
|
|
|
+ cellValue = gradeOption[i].value;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'nodeGrade',cellValue);
|
|
|
+ // calcTotoalScore(gradeTaskNode);//[BT-01364238]打等级:算分,接口重复调用,注释掉
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'nodeGrade',cellAlias);
|
|
|
+ }
|
|
|
+ /*else if(cellname == 'nodeGrade'){//评等级情况下自动计算总分
|
|
|
+ calcTotoalScore(gradeTaskNode);
|
|
|
+ }*/
|
|
|
+ }
|
|
|
+ if(cellname == 'FACTUALCOMPLEVALUE' || cellname == 'FTARGETVALUE' || cellname == 'FACTUALCOMPLETEDESC' || cellname == 'FSCORE' || cellname == 'FCOMMENT' || cellname.indexOf('FEXTEND') > -1){
|
|
|
+ // 值校验
|
|
|
+ inputOnblur(rowid, cellname, value, iRow, iCol, rowData, _grid)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ _loadComplete: function (data, _grid, scoreTipsText) {
|
|
|
+ if(_grid.height() > 500){
|
|
|
+ _grid.jqGrid('setGridHeight',500);
|
|
|
+ }
|
|
|
+ _grid.closest('.scoretabwrap').find('.score-tips').perfTips({
|
|
|
+ content: scoreTipsText,
|
|
|
+ defaultWidth: 250,
|
|
|
+ defaultHeight: 80
|
|
|
+ })
|
|
|
+ var needScoreTmp = 0;
|
|
|
+ var perfGradeEvaluateTmp = 0;
|
|
|
+ for(var m=0; m<data.rows.length; m++){
|
|
|
+ for(var k=0; k<_gneedScoreArr.length; k++){
|
|
|
+ if(data.rows[m].gradeTaskNode == _gneedScoreArr[k].gradeTaskNode){
|
|
|
+ needScoreTmp = _gneedScoreArr[k].needScore;
|
|
|
+ perfGradeEvaluateTmp = _gneedScoreArr[k].perfGradeEvaluate;
|
|
|
+
|
|
|
+
|
|
|
+ var rowData = data.rows[m];
|
|
|
+ var tmpMap = [];
|
|
|
+ tmpMap['scoreORrejection'] = rowData.scoreORrejection;
|
|
|
+ tmpMap['gradeORrejection'] = rowData.gradeORrejection;
|
|
|
+
|
|
|
+
|
|
|
+ var tmpScore = null;
|
|
|
+ if(rowData.FREJECTION == '1'){
|
|
|
+ tmpScore = "";
|
|
|
+ }
|
|
|
+ if(needScoreTmp !=0 && rowData.FSCORE){
|
|
|
+ tmpScore = parseFloat(rowData.FSCORE).toFixed(2);
|
|
|
+ }
|
|
|
+ if(!rowData.isCanEditActValue){
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'FACTUALCOMPLEVALUE',rowData.FACTUALCOMPLEVALUE, 'not-editable-cell');
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'FTARGETVALUE',rowData.FTARGETVALUE, 'not-editable-cell');
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'FACTUALCOMPLETETIME',rowData.FACTUALCOMPLETETIME, 'not-editable-cell');
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'FACTUALCOMPLETEDESC',rowData.FACTUALCOMPLETEDESC, 'not-editable-cell');
|
|
|
+ }
|
|
|
+ // 评分时定量指标时,分数输入框、等级选择框不可编辑
|
|
|
+ if((entryType != 'viewMyScoreForm') && needScoreTmp == 0){
|
|
|
+ if(rowData.FQUALIORRATION == 1){
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'FSCORE',null, 'not-editable-cell');
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'scoreORrejection',null, 'not-editable-cell');
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'gradeORrejection',null, 'not-editable-cell');
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'nodeGrade',null, 'not-editable-cell');
|
|
|
+ }else{
|
|
|
+ if(needScoreTmp != 0){
|
|
|
+ if(rowData.FSCORE){
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'FSCORE',tmpScore, 'not-editable-cell');
|
|
|
+ //_grid.jqGrid('setCell', rowData.id, 'gradeORrejection',tmpScore, 'not-editable-cell');
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'nodeGrade',rowData.nodeGrade, 'not-editable-cell');
|
|
|
+ }
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'gradeORrejection',tmpScore, 'not-editable-cell');
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'scoreORrejection',rowData.scoreORrejection, 'not-editable-cell');
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'isRejection',rowData.isRejection, 'not-editable-cell');
|
|
|
+ }else{
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'FSCORE',null, 'not-editable-cell');
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'scoreORrejection',null, 'not-editable-cell');
|
|
|
+ if(rowData.FREJECTION != 1){
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'gradeORrejection',null, 'not-editable-cell');
|
|
|
+ }
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'nodeGrade',null, 'not-editable-cell');
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //BT-00543726 绩效工作台—个人目标评价 列表页面 定量指标没有公式是可以列表编辑的 跟概览保持一致 8612也要同步
|
|
|
+ }else if(needScoreTmp == 0 && !$.isEmptyObject(rowData.FSCORINGFORMULA)){
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'FSCORE',null, 'not-editable-cell');
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'scoreORrejection',null, 'not-editable-cell');
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'gradeORrejection',null, 'not-editable-cell');
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'nodeGrade',null, 'not-editable-cell');
|
|
|
+ }
|
|
|
+ if(needScoreTmp !=0 && !$.isEmptyObject(rowData.FSCORINGFORMULA)){
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'scoreORrejection',rowData.scoreORrejection, 'not-editable-cell');
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'scoreORrejection',tmpScore, 'not-editable-cell');
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'FSCORE',tmpScore, 'not-editable-cell');
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'gradeORrejection',tmpScore, 'not-editable-cell');
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'nodeGrade',tmpScore, 'not-editable-cell');
|
|
|
+ //R20201111-1363
|
|
|
+ }else if(needScoreTmp != 0 && $.isEmptyObject(rowData.FSCORINGFORMULA)){
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'scoreORrejection',tmpMap['scoreORrejection']);
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'FSCORE',tmpScore);
|
|
|
+ }else{
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'scoreORrejection',tmpMap['scoreORrejection'], 'not-editable-cell');
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'FSCORE',tmpScore,'not-editable-cell');
|
|
|
+ }
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'FCOMMENT',rowData.FCOMMENT, 'commentcell');
|
|
|
+ if (rowData.FREJECTION == 1 && rowData.canVeto != 2) { // 是否决项,但不可编辑是否存在字段
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'scoreORrejection', tmpMap['scoreORrejection'], 'not-editable-cell');
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'isRejection', rowData.isRejection, 'not-editable-cell');
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'gradeORrejection', tmpMap['gradeORrejection'], 'not-editable-cell');
|
|
|
+ }
|
|
|
+ //if(rowData.FREJECTION != 1 && scoreOrRate == 1 && thisIsRejection && !thisAllIsRejection){
|
|
|
+ if(rowData.gradeORrejection != null && rowData.gradeORrejection != undefined){
|
|
|
+ var cellAlias = '';
|
|
|
+ for(var j = 0; j < gradeOption.length; j++){
|
|
|
+ if(rowData.gradeORrejection == gradeOption[j].value){
|
|
|
+ cellAlias = gradeOption[j].alias;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'gradeORrejection',cellAlias);
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'isRejection',rowData.isRejection);
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'nodeGrade',cellAlias);
|
|
|
+ }
|
|
|
+
|
|
|
+ //打总分的节点不能评分
|
|
|
+ if (_needScore == '3') {
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'scoreORrejection', tmpMap['scoreORrejection'], 'not-editable-cell');
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'isRejection', rowData.isRejection, 'not-editable-cell');
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'FSCORE', tmpScore, 'not-editable-cell');
|
|
|
+ _grid.jqGrid('setCell', rowData.id, 'FCOMMENT', rowData.FCOMMENT, 'not-editable-cell');
|
|
|
+ //_grid.find("td[aria-describedby='scoreTab_" + tabIndex + "_FSCORE']").addClass('disabled')
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 组装数据
|
|
|
+ _getMyData: function(indicator,scoreOrRate,area,tabIndex,msgdata,fieldList,areaNeedScore){
|
|
|
+ var tabData = [];
|
|
|
+ var scoreTipsText = '';
|
|
|
+ for (var j = 0; j < indicator.length; j++) {
|
|
|
+ tabData[j] = {};
|
|
|
+ tabData[j]['FQUALIORRATION'] = indicator[j].FQUALIORRATION;
|
|
|
+ tabData[j]['FQUALIORRATIONText'] = indicator[j].FQUALIORRATION === '0' ? jsBizMultLan.perfweb_perfscoreNewJuicer_zw20201229_i18n_15 : jsBizMultLan.perfweb_perfscoreNewJuicer_zw20201229_i18n_16;
|
|
|
+ tabData[j]['FISVISIBLEText'] = indicator[j].FISVISIBLE === '0' ? jsBizMultLan.perfweb_perfscoreNewJuicer_zw20201229_i18n_17 : jsBizMultLan.perfweb_perfscoreNewJuicer_zw20201229_i18n_18;
|
|
|
+ if(indicator[j].FREJECTION == 1 && indicator[j]['isRejection']){ // 如果是否决项
|
|
|
+ tabData[j]['scoreORrejection'] = indicator[j]['isRejection'].alias;
|
|
|
+ tabData[j]['gradeORrejection'] = indicator[j]['isRejection'].alias;
|
|
|
+ tabData[j]['isRejection'] = indicator[j]['isRejection'].value;
|
|
|
+ tabData[j]['FREJECTIONText'] = indicator[j]['isRejection'].alias;
|
|
|
+ }else{
|
|
|
+ if(scoreOrRate == 0){
|
|
|
+ tabData[j]['scoreORrejection'] = indicator[j]['targetScore'];
|
|
|
+ }else if(scoreOrRate == 1){
|
|
|
+ tabData[j]['gradeORrejection'] = indicator[j]['gradeRank'];
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 加减分
|
|
|
+ tabData[j]['subAreaType'] = area[tabIndex].subAreaType;
|
|
|
+ tabData[j]['areaAddSub'] = area[tabIndex].areaAddSub;
|
|
|
+ tabData[j]['areaAddSubDown'] = area[tabIndex].areaAddSubDown;
|
|
|
+ tabData[j]['areaAddSubUp'] = area[tabIndex].areaAddSubUp;
|
|
|
+ tabData[j]['targetAddSub'] = area[tabIndex].targetAddSub;
|
|
|
+ tabData[j]['targetAddSubDown'] = area[tabIndex].targetAddSubDown;
|
|
|
+ tabData[j]['targetAddSubUp'] = area[tabIndex].targetAddSubUp;
|
|
|
+ tabData[j]['isCanEditActValue'] = indicator[j].isCanEditActValue;
|
|
|
+ tabData[j]['id'] = indicator[j].FID;
|
|
|
+ tabData[j]['nodeGrade'] = indicator[j].gradeRank;
|
|
|
+ for(var i = 0; i < msgdata.length; i++){
|
|
|
+ // 从执行计划列表进入表单,目前后端无法传递正确的节点Id,先不做节点Id过滤
|
|
|
+ if(entryType == 'viewEvaForm' && msgdata[i].targetId == indicator[j].FID){
|
|
|
+ tabData[j]['nodeInfoList'] =JSON.stringify(msgdata[i].nodeInfoList);
|
|
|
+ }
|
|
|
+ if(entryType != 'viewMyScoreForm' && msgdata[i].canEdit != '1'){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if(entryType == 'viewMyScoreForm' && msgdata[i].canEdit == '1'){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ // 考虑到会有同一个人处理并发评分的情况,因此增加了节点Id的判断
|
|
|
+ if(msgdata[i].targetId == indicator[j].FID && msgdata[i].gradeTaskNode == indicator[j].nodeTask){ // 为1才是当前节点评分信息,否则是其他人打分
|
|
|
+ tabData[j]['canEdit'] = msgdata[i].canEdit;
|
|
|
+ tabData[j]['canNegative'] = msgdata[i].canNegative;
|
|
|
+ tabData[j]['gradeTaskNode'] = msgdata[i].gradeTaskNode;
|
|
|
+ tabData[j]['canVeto'] = msgdata[i].canVeto;
|
|
|
+ tabData[j]['canOverSumRange'] = msgdata[i].canOverSumRange;
|
|
|
+ tabData[j]['lowLimit'] = msgdata[i].lowLimit;
|
|
|
+ tabData[j]['uperLimit'] = msgdata[i].uperLimit;
|
|
|
+ tabData[j]['overRange'] = msgdata[i].overRange;
|
|
|
+ // 新增赋值,在已评分页面针对并发场景做赋值操作
|
|
|
+ tabData[j]['nodeInfoList'] =JSON.stringify(msgdata[i].nodeInfoList);
|
|
|
+ tabData[j]['preNodeScoreList'] = msgdata[i].nodeScoreList;
|
|
|
+ tabData[j]['currIndiDetail'] = msgdata[i];
|
|
|
+ tabData[j]['FCOMMENT'] = msgdata[i].fcomment;
|
|
|
+ }
|
|
|
+ if(entryType == 'viewMyScoreForm' && gradeTaskNode){
|
|
|
+ tabData[j]['gradeTaskNode'] = gradeTaskNode;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 组装评分字段tips文本
|
|
|
+ if(!scoreTipsText){
|
|
|
+ // 组装评分字段tips文本
|
|
|
+ var _params = {
|
|
|
+ canOverSumRange: tabData[j]['canOverSumRange'],
|
|
|
+ canNegative: tabData[j]['canNegative'],
|
|
|
+ lowLimit: tabData[j]['lowLimit'],
|
|
|
+ uperLimit: tabData[j]['uperLimit'],
|
|
|
+ overRange: tabData[j]['overRange']
|
|
|
+ }
|
|
|
+ scoreTipsText = that.getScroeTipsContent(area[tabIndex], _params);
|
|
|
+ }
|
|
|
+
|
|
|
+ if(!tabData[j]['currIndiDetail']){
|
|
|
+ tabData[j]['currIndiDetail'] = {};
|
|
|
+ }
|
|
|
+ tabData[j]['currIndiDetail']['fieldList'] = fieldList;
|
|
|
+ for (var i = 0; i < fieldList.length; i++) {
|
|
|
+ var fieldName = fieldList[i].colName;
|
|
|
+ var fillOverwrite = fieldList[i].fillOverwrite;
|
|
|
+ if(fieldName == "FSCORE"){ // 分数
|
|
|
+ // tabData[j][fieldName] = indicator[j]["targetScore"]
|
|
|
+ //yien 补丁11 改成获取指标汇总分数,和概览页面保持一致
|
|
|
+ tabData[j][fieldName] = indicator[j]["FSCORE"]
|
|
|
+ if(pageSource == 'PERSONHISTORY' && indicator[j].FREJECTION == 1 && indicator[j]['isRejection']){
|
|
|
+ tabData[j][fieldName] = null;
|
|
|
+ }
|
|
|
+ tabData[j]['FSCORE'] = pageSource=="PERSONHISTORY" ? tabData[j]['FSCORE'] : (tabData[j]['currIndiDetail'].targetScore || '');
|
|
|
+ }else if(fieldName == "FCOMMENT"){ // 存储指标评语名称
|
|
|
+ tabData[j]['commentName'] = fieldList[i].showName;
|
|
|
+ // tabData[j][fieldName] = indicator[j][fieldName];
|
|
|
+ }else if(fieldName == "FREJECTION"){ // 否决项
|
|
|
+ tabData[j][fieldName] = indicator[j].FREJECTION;
|
|
|
+ }else if(fieldName == "FREJECTION" && indicator[j].isRejection){ // 是否存在
|
|
|
+ tabData[j]['isRejection'] = indicator[j].isRejection.value;
|
|
|
+ }else if(indicator[j].FREJECTION == 1 && fieldName == "FTARSCORE"){ // 否决项时,目标分值无值
|
|
|
+ tabData[j][fieldName] = null;
|
|
|
+ }
|
|
|
+ // else if(fieldName == 'FACTUALCOMPLETETIME'){
|
|
|
+ // tabData[j][fieldName] = indicator[j][fieldName] ? indicator[j][fieldName].substr(0 , 10) : indicator[j][fieldName];
|
|
|
+ // }
|
|
|
+ //BT-00543726 绩效工作台—个人目标评价 列表页面 定量指标没有公式是可以列表编辑的 跟概览保持一致 8612也要同步
|
|
|
+ else if(fieldName == 'FSCORINGFORMULA'){
|
|
|
+ //BT-00653483 评分公式显示不正确,之前显示的是 indicator[j][fieldName].id jianyu_zhang 2022.02.10
|
|
|
+ tabData[j][fieldName] = $.isEmptyObject(indicator[j][fieldName]) ? '' : indicator[j][fieldName].name;
|
|
|
+ }
|
|
|
+ else if(fieldName.indexOf('FEXTEND') > -1 && fillOverwrite === '0'){
|
|
|
+ tabData[j][fieldName] = tabData[j]['currIndiDetail'][fieldName] || '';
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ tabData[j][fieldName] = indicator[j][fieldName];
|
|
|
+ }
|
|
|
+ // 组装覆盖填写参数值
|
|
|
+ if(fieldName.indexOf('FEXTEND') > -1){
|
|
|
+ tabData[j]['fillOverwrite_'+fieldName] = fillOverwrite;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ // tabData[j]['otherScoreList'] = JSON.stringify(msgdata);
|
|
|
+ // 区域节点为不评分,则不展示分数
|
|
|
+ if(areaNeedScore == "0" && pageSource !== 'PERSONHISTORY'){
|
|
|
+ tabData[j]['FSCORE'] = null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ var myData = {
|
|
|
+ tabData: tabData,
|
|
|
+ scoreTipsText: scoreTipsText
|
|
|
+ }
|
|
|
+ return myData;
|
|
|
+ },
|
|
|
+ // 判断是否存在否决项,存在显示整体评价处的提示,不存在隐藏
|
|
|
+ judgeWheatherThereisVetos: function(){
|
|
|
+ var htmlObj = $(".scoretabs");
|
|
|
+ var flag = false; // 不存在否决项
|
|
|
+ for(var i = 0; i < htmlObj.length; i++){
|
|
|
+ var idata = $('#scoreTab_'+i).jqGrid('getRowData');
|
|
|
+ for(var j = 0; j < idata.length; j++){
|
|
|
+ if(idata[j].isRejection == 1){ // 是否决项
|
|
|
+ flag = true;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(flag){ // 存在否决项
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(flag){
|
|
|
+ if($('#wholeComment .vetomsg').length == 0){
|
|
|
+ //$('#totalScore').after('<span class="vetomsg">存在否决项</span>');
|
|
|
+ $('#totalScore').after('<span class="vetomsg">'+jsBizMultLan.perfweb_perfscoreNew_zw20201229_i18n_13+'</span>');
|
|
|
+ }else{
|
|
|
+ $('#wholeComment .vetomsg').show();
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ $('#wholeComment .vetomsg').hide();
|
|
|
+ }
|
|
|
+ return flag;
|
|
|
+ },
|
|
|
+
|
|
|
+ //加载当前节点和之前节点对选中目标的评分信息
|
|
|
+ getCurrentAndPrevScoreMsg: function(FID){
|
|
|
+ var msgdata = [];
|
|
|
+ that.remoteCall({
|
|
|
+ method: "getCurrentAndPrevScore",
|
|
|
+ async: false,
|
|
|
+ param: {
|
|
|
+ gradeTaskNode: gradeTaskNode,
|
|
|
+ evaObj: evaObj,
|
|
|
+ handlerId: personId,
|
|
|
+ currentNodeLevel: currentNodeLevel,
|
|
|
+ indicatorId: FID,
|
|
|
+ myType: myType,
|
|
|
+ viewMode: viewMode,
|
|
|
+ isModifyScore: isModifyScore
|
|
|
+ },
|
|
|
+ async: false,
|
|
|
+ success: function (data) {
|
|
|
+ if (data != null) {
|
|
|
+ msgdata = data;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return msgdata;
|
|
|
+ },
|
|
|
+
|
|
|
+ //加载当前节点的评分参数
|
|
|
+ getCurrentScoreParams: function(){
|
|
|
+
|
|
|
+ //当前页面类型:评分页面:'1',查看考核历史页面:'2',专业应用查看评估表:'3'
|
|
|
+ var _currentPageType = '1';
|
|
|
+ if(pageSource !=undefined && pageSource=="PERSONHISTORY"){
|
|
|
+ _currentPageType = '2';
|
|
|
+ }
|
|
|
+ else if(pageSource == undefined && viewMode ==undefined){
|
|
|
+ _currentPageType = '1';
|
|
|
+ }
|
|
|
+ else if(pageSource !=undefined && (viewMode == 'viewEvaReport' || viewMode == 'viewAllEffective')){
|
|
|
+ _currentPageType = '3';
|
|
|
+ }
|
|
|
+
|
|
|
+ var params = [];
|
|
|
+ that.remoteCall({
|
|
|
+ method: "getCurrentScoreParams",
|
|
|
+ async: false,
|
|
|
+ param: {
|
|
|
+ gradeTaskNode: gradeTaskNode,
|
|
|
+ evaObj: evaObj,
|
|
|
+ viewMode: viewMode,
|
|
|
+ currentPageType:_currentPageType,
|
|
|
+ //yien BT-00646275 切换其他评估对象,返回来指标分数不展示了
|
|
|
+ combineGradeTaskIds: combineGradeTaskIds.join(',')
|
|
|
+ },
|
|
|
+ async: false,
|
|
|
+ success: function (data) {
|
|
|
+ if (data != null) {
|
|
|
+ params = data;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return params;
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除一条指标
|
|
|
+ */
|
|
|
+ delgoal: function () {
|
|
|
+ $('.delgoal').unbind('click').bind('click', function () {
|
|
|
+ var parent = $(this).closest('li');
|
|
|
+ var list = $('.scoreMenuWrap li');
|
|
|
+ var index = $('.scoreMenuWrap li').index(parent);
|
|
|
+ var prev = list.eq(index - 1);
|
|
|
+ var next = list.eq(index + 1);
|
|
|
+ if ((index - 1) > -1) { //有上一条数据
|
|
|
+ prev.click();
|
|
|
+ } else if ((index + 1) < $('.scoreMenuWrap li').length) { //有下一条数据
|
|
|
+ next.click();
|
|
|
+ } else { //没有数据
|
|
|
+ $('.scoreContentbox').html('');
|
|
|
+ promptImages($('.scoreContentbox'),
|
|
|
+ jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_32);
|
|
|
+ }
|
|
|
+ parent.remove();
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 展开他人评分
|
|
|
+ */
|
|
|
+ spreadScore: function () {
|
|
|
+ $('.spreadothers').unbind('click').bind('click', function () {
|
|
|
+ if ($(this).hasClass('spreadbox')) {
|
|
|
+ $(this).prev('.othersScoreBox').hide();
|
|
|
+ $(this).removeClass('spreadbox');
|
|
|
+ //$(this).html('展开他人评分');
|
|
|
+ $(this).html(jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_52);
|
|
|
+ if (self != top) {
|
|
|
+ parent.setIframeHeight('myHistoryIframe');
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+// var height=$('.innerWrap').innerHeight();
|
|
|
+ $(this).prev('.othersScoreBox').show();
|
|
|
+ $(this).addClass('spreadbox');
|
|
|
+ $(this).html(
|
|
|
+ //'收起'
|
|
|
+ jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_47
|
|
|
+ );
|
|
|
+ if (self != top) {
|
|
|
+ parent.setIframeHeight('myHistoryIframe');
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /*
|
|
|
+ * 个人考核历史参数控制
|
|
|
+ * */
|
|
|
+ personHistoryParamControl : function(){
|
|
|
+ //根据视图设置参数,对页面展示进行控制(我的考核历史)
|
|
|
+ if(pageSource !=undefined && pageSource=="PERSONHISTORY"){
|
|
|
+ // var hideUnselfScore = $("#hideUnselfScore").text();
|
|
|
+ if(hideUnselfScore == 'true'){
|
|
|
+ //参数控制 隐藏非本人节点打分、评语及否决项
|
|
|
+ $("input[name='evaScore'][isself='0']").closest('div.row1.paddingbox').hide();
|
|
|
+ //BT1436623 绩效工作台--我的考核历史--视图参数这些不起作用了
|
|
|
+ $("span[name='evaScore'][isself='0']").closest('div.row1.paddingbox').hide();
|
|
|
+
|
|
|
+ $("span[isveto='veto'][isself='0']").closest('div.row1.paddingbox').hide();//否决项
|
|
|
+ }
|
|
|
+
|
|
|
+ // var hideUnselfWholeScore = $("#hideUnselfWholeScore").text();
|
|
|
+ if(hideUnselfWholeScore == 'true'){
|
|
|
+ $("div[name='wholeScore'][isself='0']").hide();
|
|
|
+ }
|
|
|
+ // var hideUnselfWholeGrade = $("#hideUnselfWholeGrade").text();
|
|
|
+ if(hideUnselfWholeGrade == 'true'){
|
|
|
+ $("div[name='editScoreDiv'][isself='0']").hide();
|
|
|
+ }
|
|
|
+
|
|
|
+ //整体评价 连同评分人和评语一并隐藏hideUnselfWholeScore
|
|
|
+ if (hideUnselfWholeScore == 'true' && hideUnselfWholeGrade == 'true') {
|
|
|
+ $("div[name='wholeScore'][isself='0']").parent().hide();
|
|
|
+ $("div[name='editScoreDiv'][isself='0']").parent().hide();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //针对打分过程,隐藏非本人打分情况,自评或者他评时
|
|
|
+ if(pageSource==""&&(entryType==""||entryType=="myselfEvalu"||entryType=="viewMyScoreForm")){
|
|
|
+ if(hideUnselfScoring == 'true'){
|
|
|
+ $("label[name='nodeHandlerId']").each(function(j,item){
|
|
|
+ if($(item).attr("value")!=personId){
|
|
|
+ $(item).parent().hide();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ // var hideUnselfWholeScore = $("#hideUnselfWholeScore").text();
|
|
|
+ if(hideUnselfWholeScoring == 'true'){
|
|
|
+ $("label[name='WholenodeHandlerId']").each(function(j,item){
|
|
|
+ if($(item).attr("value")!=personId){
|
|
|
+ $(item).parent().children("div[name='wholeScore']").hide();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ // var hideUnselfWholeGrade = $("#hideUnselfWholeGrade").text();
|
|
|
+ if(hideUnselfWholeGrading == 'true'){
|
|
|
+ $("label[name='WholenodeHandlerId']").each(function(j,item){
|
|
|
+ if($(item).attr("value")!=personId){
|
|
|
+ $(item).parent().children("div[name='editScoreDiv']").hide();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ //整体评价 hideUnselfWholeCommenting
|
|
|
+ if(hideUnselfWholeCommenting == 'true'){
|
|
|
+ $("label[name='WholenodeHandlerId']").each(function(j,item){
|
|
|
+ if($(item).attr("value")!=personId){
|
|
|
+ $(item).parent().children("div[name='editTextareaDiv']").hide();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ //整体评价 hideUnselfWholeCommenting
|
|
|
+ if(hideUnselfWholeScoring == 'true'&&hideUnselfWholeGrading == 'true'&&hideUnselfWholeCommenting == 'true'){
|
|
|
+ $("label[name='WholenodeHandlerId']").each(function(j,item){
|
|
|
+ if($(item).attr("value")!=personId){
|
|
|
+ $(item).parent().hide();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ //正态分布信息
|
|
|
+ getDistributionInfo: function () {
|
|
|
+ if (isTeamEvalu != 1) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ //正态分布信息
|
|
|
+ if (isShowDistribution == '1') {//必须打等级
|
|
|
+ that.remoteCall({
|
|
|
+ method: "getDistributionInfo",
|
|
|
+ param: {periodId: periodId},
|
|
|
+ async: true,
|
|
|
+ success: function (data) {
|
|
|
+ if (data) {
|
|
|
+ var perfPeriod = data.perfPeriod;
|
|
|
+ var perfPlan = data.perfPlan;
|
|
|
+ var all = data.all;
|
|
|
+ var scored = data.scored;
|
|
|
+ var distributionInfoDivDom = $("#distributionInfoDiv");
|
|
|
+ distributionInfoDivDom.remove();
|
|
|
+
|
|
|
+ var distributionInfoHtml = '<div id="distributionInfoDiv"><table class="table table-hover" id="tablebox">\n' +
|
|
|
+ ' <tr>\n' +
|
|
|
+ ' <td colspan="12">'
|
|
|
+ + perfPlan + ' ' + perfPeriod
|
|
|
+ //+ ' 需评价' + all + '人, ' + '<span style="color: #00afff">已评分' + scored + '人</span>, ' + '已评分等级分布情况如下:'
|
|
|
+ + shr.formatMsg(jsBizMultLan.perfweb_perfscoreNew_zw20201229_i18n_14, [all]) + '<span style="color: #00afff">'+shr.formatMsg(jsBizMultLan.perfweb_perfscoreNew_zw20201229_i18n_15, [scored])+'</span> ' + jsBizMultLan.perfweb_perfscoreNew_zw20201229_i18n_16
|
|
|
+ '</td>\n' +
|
|
|
+ ' </tr>\n';
|
|
|
+ if (data.leveStrMap) {
|
|
|
+ distributionInfoHtml = distributionInfoHtml + '<tr>\n';
|
|
|
+ $.each(data.leveStrMap, function (k, v) {
|
|
|
+ distributionInfoHtml = distributionInfoHtml + '<td> ' + k + '(' + v + ') </td>\n';
|
|
|
+ });
|
|
|
+ distributionInfoHtml = distributionInfoHtml + '</tr>\n';
|
|
|
+ }
|
|
|
+ distributionInfoHtml = distributionInfoHtml + '</table></div>';
|
|
|
+ // $(distributionInfoHtml).insertBefore($(".distributionInfo"));
|
|
|
+ $('#content').prepend(distributionInfoHtml);
|
|
|
+ }
|
|
|
+ //console.log(data);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 初始化配置参数
|
|
|
+ */
|
|
|
+
|
|
|
+ initConfigData:function(){
|
|
|
+ isManualJudgeGrade= this.initData.isManualJudgeGrade;//单人评分页面-是否手工调整等级
|
|
|
+ isShowLevelScoreRange= this.initData.isShowLevelScoreRange;//单人评分页面-录入等级是否显示分数
|
|
|
+ // scoreLocate= this.initData.scoreLocate;// 单人评分页面-打分默认为定位位置
|
|
|
+ isShowAuditedWholeForm= this.initData.isShowAuditedWholeForm;//已评分列表-是否允许查看后续已审核节点评分详情
|
|
|
+ // isAutoSubmitVal= this.initData.isAutoSubmit;//单人评分页面-相邻节点同一人直接提交
|
|
|
+ // rateIsAutoCaluWholeGrade= this.initData.rateIsAutoCaluWholeGrade;//单人评分页面-是否自动计算整体评价等级
|
|
|
+ hideUnselfWholeGrade= this.initData.hideUnselfWholeGrade;//单人评分页面-是否隐藏非本人整体评价等级
|
|
|
+ hideUnselfWholeScore= this.initData.hideUnselfWholeScore;//单人评分页面-是否隐藏非本人整体评价总分
|
|
|
+ hideReviseResultVal= this.initData.hideReviseResult;//单人评分页面-是否隐藏修订结果
|
|
|
+ // hideConfirmResultVal= this.initData.hideConfirmResult;//单人评分页面-是否隐藏确认按钮及列表确认状态
|
|
|
+ hideUnselfScore= this.initData.hideUnselfScore;//单人评分页面-是否隐藏非本人节点得分或等级
|
|
|
+ hideReviseReasonVal= this.initData.hideReviseReason;//单人评分页面-是否隐藏修订原因
|
|
|
+ // scoreAndCommentDisplayMode= this.initData.scoreAndCommentDisplayMode;//单人评分页面-评分评语显示模式
|
|
|
+ // hideAppealResultVal= this.initData.hideAppealResult;//单人评分页面-是否隐藏申诉按钮及列表申诉状态
|
|
|
+ hideAppealResult= isOrg=="0"?this.initData.khjgqrAppeal:this.initData.zzkhjgqrAppeal;//单人评分页面-是否隐藏申诉按钮
|
|
|
+ hideConfirmResult= isOrg=="0"?this.initData.khjgqrConfirm:this.initData.zzkhjgqrConfirm;//单人评分页面-是否隐藏确认按钮
|
|
|
+
|
|
|
+ hideUnselfScoring =this.initData.hideUnselfScoring;//单人评分页面-是否隐藏非本人节点得分或等级(针对打分过程)
|
|
|
+ hideUnselfWholeGrading =this.initData.hideUnselfWholeGrading;//单人评分页面-是否隐藏非本人整体评价等级(针对打分过程)
|
|
|
+ hideUnselfWholeScoring=this.initData.hideUnselfWholeScoring;//单人评分页面-是否隐藏非本人整体评价总分(针对打分过程)
|
|
|
+ hideUnselfWholeCommenting=this.initData.hideUnselfWholeCommenting;//单人评分页面-是否隐藏非本人整体评价评论(针对打分过程)
|
|
|
+ if (isNumber(this.initData.uploadAttachSize)){
|
|
|
+ uploadAttachSize= this.initData.uploadAttachSize;//附件上传大小
|
|
|
+ }
|
|
|
+ //隐藏节点处理人权重
|
|
|
+ if (this.initData.hideHandlerWeight=='false'&& pageSource=='PERSONHISTORY'){ //评分时的列表概览权重
|
|
|
+ hideNodeWeight ='false';
|
|
|
+ }
|
|
|
+ if (this.initData.hideNodeWeight =='false' && pageSource!='PERSONHISTORY'){ //我的考核历史列表概览权重
|
|
|
+ hideNodeWeight ='false';
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+})
|
|
|
+
|
|
|
+//校验列表字段值
|
|
|
+function inputOnblur(rowid, cellname, value, iRow, iCol, rowData, _grid) {
|
|
|
+ var tr = _grid[0].rows.namedItem(rowid),
|
|
|
+ td = tr.cells[iCol],
|
|
|
+ startGradeTaskNode = rowData.gradeTaskNode,flag = true;
|
|
|
+ var objVal = value;
|
|
|
+ var colAttr = _grid.getColProp(cellname);
|
|
|
+ var fieldType = colAttr.fieldType;
|
|
|
+ if (objVal) {
|
|
|
+ objVal = objVal.trim();
|
|
|
+ }
|
|
|
+
|
|
|
+ var errObj = new Object();
|
|
|
+ var indicator = rowData.id;
|
|
|
+ errObj.indicator = indicator;
|
|
|
+ errObj.errorType = cellname;
|
|
|
+ existInArrThenDelete(_noPassVerifyArr, errObj);
|
|
|
+
|
|
|
+ var inputObj = $("input[indicator='" + indicator + "']");
|
|
|
+ _gcanOverRang = rowData.canOverSumRange;
|
|
|
+ _gcanNegative = rowData.canNegative;
|
|
|
+ _glowLimit = parseFloat(rowData.lowLimit);
|
|
|
+ _gupLimit = parseFloat(rowData.uperLimit);
|
|
|
+ _overRang = parseFloat(rowData.overRange);
|
|
|
+ _ftarscore= parseFloat(rowData.FTARSCORE);
|
|
|
+
|
|
|
+ _subAreaType = rowData.subAreaType;
|
|
|
+ _areaAddSub = rowData.areaAddSub;
|
|
|
+ _areaAddSubDown = rowData.areaAddSubDown;
|
|
|
+ _areaAddSubUp = rowData.areaAddSubUp;
|
|
|
+ _targetAddSub = rowData.targetAddSub;
|
|
|
+ _targetAddSubDown = rowData.targetAddSubDown;
|
|
|
+ _targetAddSubUp = rowData.targetAddSubUp;
|
|
|
+
|
|
|
+
|
|
|
+ // if(!objVal){
|
|
|
+ // return false;
|
|
|
+ // }
|
|
|
+ // objVal = Number(objVal);
|
|
|
+
|
|
|
+ if((cellname == 'FACTUALCOMPLEVALUE' || cellname == 'FTARGETVALUE') && rowData.FQUALIORRATION === '1'){ // 定量校验目标值和实际完成值字段类型为数值型
|
|
|
+ flag = isNumberVerify2(value,1);
|
|
|
+ if(!false){ // 定性指标可输入其他类型
|
|
|
+ //提示语
|
|
|
+ // 请输入最多两位小数的数字
|
|
|
+ errObj.errortext = jsBizMultLan.perfweb_perfscoreNew_20210926ht_20;
|
|
|
+ }
|
|
|
+ }else if(cellname == 'FACTUALCOMPLETEDESC' || cellname === 'FCOMMENT' || fieldType === 'Text' || fieldType === 'LongText'){
|
|
|
+ if(value.length > 2000){
|
|
|
+ flag = false;
|
|
|
+ errObj.errortext = shr.formatMsg(jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_48,
|
|
|
+ [2000]);
|
|
|
+ }
|
|
|
+ }else if(cellname == 'scoreORrejection' || cellname == 'FSCORE'){ // 校验打分
|
|
|
+ objVal = Number(objVal);
|
|
|
+ var dataReg = /^(-?\d+)(\.\d+)?$/; //浮点数
|
|
|
+ if (!dataReg.test(objVal)) {
|
|
|
+ //errObj.errortext = '请输入数值!';
|
|
|
+ errObj.errortext = jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_36;
|
|
|
+ flag = false;
|
|
|
+ } else {
|
|
|
+ //加减分的特殊处理
|
|
|
+ if (_subAreaType == "1") {
|
|
|
+ var flag0 = true;
|
|
|
+ if (_targetAddSub = "1") {
|
|
|
+ if (flag0 && "" != _targetAddSubDown && parseFloat(_targetAddSubDown) > objVal) {
|
|
|
+ errObj.errortext = $.perfwebI18n.tableConstant.msg12 + _targetAddSubDown;
|
|
|
+ flag0 = false;
|
|
|
+ }
|
|
|
+ if (flag0 && "" != _targetAddSubUp && parseFloat(_targetAddSubUp) < objVal) {
|
|
|
+ errObj.errortext = $.perfwebI18n.tableConstant.msg13 + _targetAddSubUp;
|
|
|
+ flag0 = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (_areaAddSub == "1") {
|
|
|
+ var liList = $(tr).parent().find("tr.ui-widget-content");
|
|
|
+ var areaSumScore0 = 0;
|
|
|
+ if (liList && liList.length > 0) {
|
|
|
+ for (var ii = 0; ii < liList.length; ii++) {
|
|
|
+ var td = liList[ii].cells[iCol];
|
|
|
+ var s0 = $(td).text();
|
|
|
+ if (s0) {
|
|
|
+ areaSumScore0 += parseFloat(s0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (flag0 && "" != _areaAddSubDown && parseFloat(_areaAddSubDown) > areaSumScore0) {
|
|
|
+ errObj.errortext = $.perfwebI18n.tableConstant.msg14 + _areaAddSubDown;
|
|
|
+ flag0 = false;
|
|
|
+ }
|
|
|
+ if (flag0 && "" != _areaAddSubUp && parseFloat(_areaAddSubUp) < areaSumScore0) {
|
|
|
+ errObj.errortext = $.perfwebI18n.tableConstant.msg15 + _areaAddSubUp;
|
|
|
+ flag0 = false;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ if(objVal > 99999.99){
|
|
|
+ errObj.errortext = shr.formatMsg($.perfwebI18n.tableConstant.msg20,[99999.99]) ;
|
|
|
+ flag0 = false;
|
|
|
+ }
|
|
|
+ if(objVal < -99999.99){
|
|
|
+ errObj.errortext = shr.formatMsg($.perfwebI18n.tableConstant.msg21,[-99999.99]) ;
|
|
|
+ flag0 = false;
|
|
|
+ }
|
|
|
+ if (flag0) {
|
|
|
+ $(td).removeClass("errorval");
|
|
|
+ if (cellname == 'FSCORE') {
|
|
|
+ calcTotoalScore(startGradeTaskNode);
|
|
|
+ }
|
|
|
+ _noPassVerifyArr = new Array();
|
|
|
+ } else {
|
|
|
+ _grid.jqGrid('setCell', rowData.id, cellname, value, 'errorval');
|
|
|
+ shr.showWarning({
|
|
|
+ message: errObj.errortext,
|
|
|
+ hideAfter: 3
|
|
|
+ });
|
|
|
+ _noPassVerifyArr.push(errObj);
|
|
|
+ }
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (_gcanOverRang == 0) {//分数不能超出分制范围
|
|
|
+ if (_gcanNegative == 0) {//不允许负分
|
|
|
+ var reg = /^\d+(\.\d{1,2})?$/;
|
|
|
+ if (!reg.test(objVal)) {
|
|
|
+ //errObj.errortext = '请输入正数,可带2位小数!';
|
|
|
+ errObj.errortext = jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_37;
|
|
|
+ flag = false;
|
|
|
+ } else {
|
|
|
+ if (globalIndicatorData.scoringWay == 1) {
|
|
|
+ var scoreLimit = rowData.FTARSCORE;
|
|
|
+ if (scoreLimit && parseFloat(objVal) > parseFloat(scoreLimit)) {
|
|
|
+ //errObj.errortext = '分数大于目标分值上限,请重新输入!';
|
|
|
+ errObj.errortext = jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_18;
|
|
|
+ flag = false;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (objVal < _glowLimit) {
|
|
|
+ //errObj.errortext = '分数小于分制控制的分数下限,请重新输入!';
|
|
|
+ errObj.errortext = jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_19;
|
|
|
+ flag = false;
|
|
|
+ } else if (objVal > _gupLimit) {
|
|
|
+ //errObj.errortext = '分数大于分制控制的分数上限,请重新输入!';
|
|
|
+ errObj.errortext = jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_17;
|
|
|
+ flag = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ //允许为负分
|
|
|
+ if (globalIndicatorData.scoringWay == 1) {
|
|
|
+ var scoreLimit = rowData.FTARSCORE;
|
|
|
+ if (scoreLimit && parseFloat(objVal) > parseFloat(scoreLimit)) {
|
|
|
+ //errObj.errortext = '分数大于目标分值上限,请重新输入!';
|
|
|
+ errObj.errortext = jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_18;
|
|
|
+ flag = false;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (objVal < _glowLimit && objVal > 0) {
|
|
|
+ //errObj.errortext = '分数小于分制控制的分数下限,请重新输入!';
|
|
|
+ errObj.errortext = jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_19;
|
|
|
+ flag = false;
|
|
|
+ } else if (objVal > _gupLimit) {
|
|
|
+ //errObj.errortext = '分数大于分制控制的分数上限,请重新输入!';
|
|
|
+ errObj.errortext = jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_17;
|
|
|
+ flag = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {//可正向超出分制范围
|
|
|
+
|
|
|
+ if(_overRang != null || _overRang != undefined){//勾选参数,不维护超出上限,那么打分时输入值不控制
|
|
|
+ if(globalIndicatorData.scoringWay == 1){
|
|
|
+ //按分值评分,“允许评分超出分值范围,超出上限□%“
|
|
|
+ var recordIndWeigVal = _ftarscore ; //指标分值
|
|
|
+ var limitUp = parseFloat((parseFloat(recordIndWeigVal)*(1+_overRang/100)).toFixed(2));
|
|
|
+ var limitLow = 0 - parseFloat((parseFloat(recordIndWeigVal) * (_overRang / 100)).toFixed(2));
|
|
|
+ if (isNumber(limitUp) && parseFloat(objVal) > limitUp) {
|
|
|
+ errObj.errortext = jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_18;
|
|
|
+ flag = false;
|
|
|
+ } else if (isNumber(limitLow) && objVal < limitLow) {
|
|
|
+ errObj.errortext = jsBizMultLan.perf_perfscoreNew_1629278085_i18n_19;
|
|
|
+ flag = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else{
|
|
|
+
|
|
|
+ var limitUp = parseFloat((_gupLimit + (_gupLimit - _glowLimit)*(_overRang/100)).toFixed(2));
|
|
|
+ var limitLow = parseFloat((_glowLimit - (_gupLimit - _glowLimit)*(_overRang/100)).toFixed(2));
|
|
|
+ if ( objVal < limitLow) {
|
|
|
+ // $(_this).focus();
|
|
|
+ errObj.errortext = jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_19;
|
|
|
+ flag = false;
|
|
|
+ } else if (objVal > limitUp) {
|
|
|
+ // $(_this).focus();
|
|
|
+ errObj.errortext = jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_17;
|
|
|
+ flag = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (_gcanNegative == 0) {//不允许负分
|
|
|
+ var reg = /^\d+(\.\d{1,2})?$/;
|
|
|
+ if (!reg.test(objVal)) {
|
|
|
+ //errObj.errortext = '请输入正数,可带2位小数!';
|
|
|
+ errObj.errortext = jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_37;
|
|
|
+ flag = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else if(cellname.indexOf('FEXTEND') > -1){
|
|
|
+ if(fieldType === 'Number'){
|
|
|
+ flag = isNumberVerify(value,1);
|
|
|
+ if(!flag){
|
|
|
+ errObj.errortext = jsBizMultLan.perfweb_perfscoreNew_20210926ht_20;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(flag){
|
|
|
+ $(td).removeClass("errorval");
|
|
|
+ if(cellname == 'scoreORrejection' || cellname == 'FSCORE'){
|
|
|
+ calcTotoalScore(startGradeTaskNode);
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ _grid.jqGrid('setCell', rowData.id, cellname, value, 'errorval');
|
|
|
+ shr.showWarning({
|
|
|
+ message: errObj.errortext,
|
|
|
+ hideAfter: 3
|
|
|
+ });
|
|
|
+ _noPassVerifyArr.push(errObj);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+function wholeCommentOnblur(_this) {
|
|
|
+ var objVal = $(_this).val();
|
|
|
+ var msgShow = $("span[id='WHOLECOMMENT']");
|
|
|
+ var errObj = new Object();
|
|
|
+ existInArrThenDelete(_noPassVerifyArr, errObj);
|
|
|
+
|
|
|
+ var commentLen = objVal.length;
|
|
|
+ if (commentLen > 2000) {//限制目标评价为2000个字符
|
|
|
+ $(_this).focus();
|
|
|
+ //msgShow.text('指标评语最大支持2000个字符,您目前已输入'+commentLen+'个字符!');
|
|
|
+ msgShow.text(
|
|
|
+ shr.formatMsg(jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_48,
|
|
|
+ [2000]));
|
|
|
+ msgShow.show();
|
|
|
+ _noPassVerifyArr.push(errObj);
|
|
|
+ } else {
|
|
|
+ msgShow.hide();
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+//目标评价长度校验
|
|
|
+function targetCommentOnblur(_this,eventName) {
|
|
|
+ var maxlength = 2000;
|
|
|
+ var objVal = $(_this).val();
|
|
|
+ var msgShow = $('span.showmsg');
|
|
|
+ var errObj = new Object();
|
|
|
+ var indicator = $(_this).attr("indicator");
|
|
|
+ errObj.indicator = indicator;
|
|
|
+ existInArrThenDelete(_noPassVerifyArr, errObj);
|
|
|
+
|
|
|
+ var commentLen = objVal.length;
|
|
|
+ if(eventName == 'propertychange'){ // propertychange事件
|
|
|
+ if (commentLen > maxlength) {//限制目标评价为2000个字符2000
|
|
|
+ $(_this).val(objVal.substr(0,maxlength));
|
|
|
+ objVal = $(_this).val();
|
|
|
+ commentLen = objVal.length;
|
|
|
+ }
|
|
|
+ msgShow.text(shr.formatMsg(jsBizMultLan.perfweb_perfscore_1586254513646_i18n_62,
|
|
|
+ [commentLen,maxlength-commentLen]));
|
|
|
+ msgShow.show();
|
|
|
+ }else{ // blur事件
|
|
|
+ msgShow.hide();
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+function existInArrThenDelete(arr, obj) {
|
|
|
+ for (var i = 0; i < arr.length; i++) {
|
|
|
+ if (arr[i].errorType) {
|
|
|
+ if (arr[i].indicator == obj.indicator && obj.errorType == arr[i].errorType) {
|
|
|
+ arr.splice(i, 1);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (arr[i].indicator == obj.indicator) {
|
|
|
+ arr.splice(i, 1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return;
|
|
|
+}
|
|
|
+
|
|
|
+//单击其他地方下拉选择框隐藏
|
|
|
+$(document).click(function (e) {
|
|
|
+ if (!$(e.target).hasClass('instructions') && !$(e.target).hasClass('instructionsboxwrap') && $(e.target).closest('.instructionsboxwrap').length < 1) {
|
|
|
+ $(".instructionsboxwrap").fadeOut();
|
|
|
+ }
|
|
|
+});
|
|
|
+
|
|
|
+//计算总分
|
|
|
+function calcTotoalScore(startGradeTaskNode) {
|
|
|
+ if (_noPassVerifyArr.length > 0) {
|
|
|
+ // shr.showWarning({message: _noPassVerifyArr[0].errortext});
|
|
|
+ // //自动点击第一条评分不通过的指标
|
|
|
+ // $("li[numval='" + _noPassVerifyArr[0].indicator + "']").click();
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ // $(lastTable).jqGrid("saveCell",lastrow,lastcell);
|
|
|
+ $('.scoretabs').each(function(index,tab){
|
|
|
+ $(tab).jqGrid('editStop');
|
|
|
+ })
|
|
|
+ var scoreObj = that.assembleScoreData();
|
|
|
+ if(!scoreObj){
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ var nodeSumScoreList;
|
|
|
+ //保存评分
|
|
|
+ that.remoteCall({
|
|
|
+ /* method: "calcTotalScore",
|
|
|
+ param: {
|
|
|
+ scoreObj: JSON.stringify(scoreObj)
|
|
|
+ },*/
|
|
|
+ method: "saveScore",
|
|
|
+ param: {
|
|
|
+ needScore:_needScore,
|
|
|
+ scoreObj: JSON.stringify(scoreObj)
|
|
|
+ },
|
|
|
+ async: false, //不能使用异步,下面要使用结果数据计算等级
|
|
|
+ success: function (data) {
|
|
|
+ if (data != null && data.result == '200') {
|
|
|
+ nodeSumScore = data.nodeSumScore;
|
|
|
+ nodeGrade = data.nodeGrade;
|
|
|
+ matrixDetail = data.detail;
|
|
|
+ nodeSumScoreList = data.nodeSumScoreList;
|
|
|
+ var gtnLen = nodeSumScoreList.length;
|
|
|
+ for(var i=0; i<gtnLen; i++){
|
|
|
+ var nsumscore = nodeSumScoreList[i].nodeSumscore ? parseFloat(nodeSumScoreList[i].nodeSumscore).toFixed(2) : '';
|
|
|
+ // if(null != nsumscore && "" != nsumscore){
|
|
|
+ $('#wholeComment').find('span[gtnname="'+nodeSumScoreList[i].gradeTaskNode+'"] input').val(nsumscore);
|
|
|
+ $("li[gradetasknode='" +nodeSumScoreList[i].gradeTaskNode+ "']").find("i[name='nodeSumScore']").text(nsumscore);
|
|
|
+ // }else{
|
|
|
+ // //$('#wholeComment').find('span[gtnname="'+nodeSumScoreList[i].gradeTaskNode+'"]').text("");
|
|
|
+ // }
|
|
|
+ var isVetoZero = nodeSumScoreList[i].isVetoZero;
|
|
|
+ if(isVetoZero == '1'){
|
|
|
+ $($('#wholeComment').find('span[gtnname="'+nodeSumScoreList[i].gradeTaskNode+'"]')).next().show();
|
|
|
+ }else{
|
|
|
+ $($('#wholeComment').find('span[gtnname="'+nodeSumScoreList[i].gradeTaskNode+'"]')).next().hide();
|
|
|
+ }
|
|
|
+
|
|
|
+ if(nodeSumScoreList[i].nodeGrade){
|
|
|
+ $('[id="wholeGrade_' + nodeSumScoreList[i].gradeTaskNode+ '"]').find("option[id='" + nodeSumScoreList[i].nodeGrade + "']").attr("selected", "selected");
|
|
|
+ $("li[gradetasknode='" +nodeSumScoreList[i].gradeTaskNode+ "']").find("i[name='nodeGrade']").text(nodeSumScoreList[i].nodeGrade);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ /**
|
|
|
+ * 自动计算等级
|
|
|
+ */
|
|
|
+ var grade = $("#wholeComment").find("select").val();
|
|
|
+ if (isManualJudgeGrade == 2 || isManualJudgeGrade == 0) {
|
|
|
+ // var url = shr.getContextPath() + "/dynamic.do?handler=com.kingdee.shr.perfweb.portal.handler.PerfBatchScoreHandler&uipk="+shr.getUipk() +
|
|
|
+ // "&method=getLeaveByScore&shruicode="+shr.getUrlRequestParam("shruicode");
|
|
|
+ if(nodeSumScoreList){
|
|
|
+ for(var i=0; i< nodeSumScoreList.length; i++){
|
|
|
+ that.remoteCall({
|
|
|
+ method: "getLeaveByScore",
|
|
|
+ async: false,
|
|
|
+ param: {
|
|
|
+ nodeSumScore: $('#wholeComment').find('span[gtnname="'+nodeSumScoreList[i].gradeTaskNode+'"] input').val(),
|
|
|
+ id: nodeSumScoreList[i].gradeTaskNode
|
|
|
+ },
|
|
|
+ //data: {"nodeSumScore": $('#wholeComment').find('span[gtnname="'+nodeSumScoreList[i].gradeTaskNode+'"] input').val(), "id": nodeSumScoreList[i].gradeTaskNode},
|
|
|
+ success: function (data) {
|
|
|
+ //这里的结果类似 {data: "差E"}
|
|
|
+ console.log(data);
|
|
|
+ if (data.data) {
|
|
|
+ $("#wholeComment").find("select").find('option').attr('selected', false);
|
|
|
+ $("#wholeComment").find("[id='wholeGrade_"+nodeSumScoreList[i].gradeTaskNode+"']").find("option[value='" + data.data + "']").attr('selected', true);
|
|
|
+ //$("#wholeComment").find("select").val(data.data);
|
|
|
+ $('.workerList li.current').find("i[name='nodeGrade']").text(data.data);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ that.remoteCall({
|
|
|
+ method: "getLeaveByScore",
|
|
|
+ async: false,
|
|
|
+ param: {
|
|
|
+ nodeSumScore: $('#wholeComment').find('span[gtnname="'+startGradeTaskNode+'"] input').val(),
|
|
|
+ id:gradeTaskNode
|
|
|
+ },
|
|
|
+ data: {"nodeSumScore": $('#wholeComment').find('span[gtnname="'+startGradeTaskNode+'"] input').val(), "id": gradeTaskNode},
|
|
|
+ success: function (data) {
|
|
|
+ //这里的结果类似 {data: "差E"}
|
|
|
+ console.log(data);
|
|
|
+ if (data.data) {
|
|
|
+ $("#wholeComment").find("select").find('option').attr('selected', false);
|
|
|
+ $("#wholeComment").find("[id='wholeGrade_"+gradeTaskNode+"']").find("option[value='" + data.data + "']").attr('selected', true);
|
|
|
+ //$("#wholeComment").find("select").val(data.data);
|
|
|
+ $('.workerList li.current').find("i[name='nodeGrade']").text(data.data);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+//初始化定性定量下拉列表
|
|
|
+function initQualiOrRationSelectEven(indicatorId, isUnit) {
|
|
|
+ var qualiOrRationId = "FQUALIORRATION" + indicatorId;
|
|
|
+ // var $qualiOrRation = $('#' + qualiOrRationId);
|
|
|
+ var $qualiOrRation = $('input[id="' + qualiOrRationId + '"]');
|
|
|
+ // 初始化下拉选择框
|
|
|
+ var options = [
|
|
|
+ {value:0,alias:jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_16},
|
|
|
+ {value:1,alias:jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_15}
|
|
|
+ ];
|
|
|
+ var qualiOrRation = $qualiOrRation.val() ? $qualiOrRation.val() : 0;
|
|
|
+ $qualiOrRation.shrSelect({
|
|
|
+ // 'id': qualiOrRationId,
|
|
|
+ 'id': encodeURIComponent(qualiOrRationId),
|
|
|
+ 'data': options
|
|
|
+ });
|
|
|
+
|
|
|
+ //如果分组未下达,则绑定选中事件
|
|
|
+ if (isUnit != 1) {
|
|
|
+ $qualiOrRation.shrSelect("option", "onChange", function (e, value) {
|
|
|
+ var selectVal = value.selectVal;
|
|
|
+ // 判断是定性定量
|
|
|
+ if (selectVal == 0) {
|
|
|
+ //定性,屏蔽评分公式和单位
|
|
|
+ disableUnitAndFormulaTag(indicatorId);
|
|
|
+ } else if (selectVal == 1) {
|
|
|
+ //定量,打开评分公式和单位
|
|
|
+ // var $unit = $('#FUNIT' + indicatorId);
|
|
|
+ var $unit = $('input[id="' + 'FUNIT' + indicatorId + '"]');
|
|
|
+ // var $scoringFormula = $('#FSCORINGFORMULA' + indicatorId);
|
|
|
+ var $scoringFormula = $('input[id="' + 'FSCORINGFORMULA' + indicatorId + '"]');
|
|
|
+ if ($unit.attr('fname')) {
|
|
|
+ $unit.removeAttr('disabled');
|
|
|
+ }
|
|
|
+ if ($scoringFormula.attr('fname')) {
|
|
|
+ $scoringFormula.shrPromptBox('enable');
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ //屏蔽选择
|
|
|
+ $qualiOrRation.shrSelect('disable', true);
|
|
|
+ }
|
|
|
+
|
|
|
+ $qualiOrRation.shrSelect('setValue', qualiOrRation);
|
|
|
+}
|
|
|
+
|
|
|
+//初始化定性定量下拉列表
|
|
|
+function initIsVisibleSelectEven(indicatorId, isUnited) {
|
|
|
+ // 初始化下拉选择框
|
|
|
+ // var $isVisible = $('#FISVISIBLE' + indicatorId);
|
|
|
+ var $isVisible = $('input[id="' + 'FISVISIBLE' + indicatorId + '"]');
|
|
|
+ var options = [
|
|
|
+ {value:0,alias:jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_2},
|
|
|
+ {value:1,alias:jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_21}
|
|
|
+ ];
|
|
|
+ var selectedVal = $isVisible.val() ? $isVisible.val() : 0;
|
|
|
+ $isVisible.shrSelect({
|
|
|
+ // 'id': 'FISVISIBLE' + indicatorId,
|
|
|
+ 'id': encodeURIComponent('FISVISIBLE' + indicatorId),
|
|
|
+ 'data': options
|
|
|
+ });
|
|
|
+
|
|
|
+ $isVisible.shrSelect('setValue', selectedVal);
|
|
|
+
|
|
|
+ //如果是统一下达,则屏蔽选择按钮
|
|
|
+ if (isUnited == 1) {
|
|
|
+ $isVisible.shrSelect('disable', true);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 屏蔽单位和公式
|
|
|
+ */
|
|
|
+function disableUnitAndFormulaTag(indicatorId) {
|
|
|
+ // var $unit = $('#FUNIT' + indicatorId);
|
|
|
+ var $unit = $('input[id="' + 'FUNIT' + indicatorId + '"]');
|
|
|
+ // var $scoringFormula = $('#FSCORINGFORMULA' + indicatorId);
|
|
|
+ var $scoringFormula = $('input[id="' + 'FSCORINGFORMULA' + indicatorId + '"]');
|
|
|
+ if ($unit.attr('fname')) {
|
|
|
+ $unit.val('');
|
|
|
+ $unit.attr('disabled', 'disabled');
|
|
|
+ }
|
|
|
+ if ($scoringFormula.attr('fname')) {
|
|
|
+ $scoringFormula.shrPromptBox("setValue", '');
|
|
|
+ $scoringFormula.shrPromptBox('disable');
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 初始化业绩日期
|
|
|
+ * 兼容IE
|
|
|
+ * @param indicateId
|
|
|
+ * @param isUnited
|
|
|
+ */
|
|
|
+function initDateEven(tagId , isUnited) {
|
|
|
+ // var $tag = $('#' + tagId);
|
|
|
+ var $tag = $('input[id="'+ tagId +'"]');
|
|
|
+ var selectedVal = $tag.val();
|
|
|
+ if(selectedVal) {
|
|
|
+ //截取日期部分
|
|
|
+ selectedVal = selectedVal.substr(0 , 10);
|
|
|
+ $tag.shrDateTimePicker({
|
|
|
+ // value: selectedVal,
|
|
|
+ isShowUTC:false,
|
|
|
+ ctrlType: 'Date'
|
|
|
+ });
|
|
|
+ $tag.shrDateTimePicker('setValue',selectedVal);
|
|
|
+ }else {
|
|
|
+ var currentDate = new Date();
|
|
|
+ var currentDateStr = currentDate.getFullYear();
|
|
|
+ if(currentDate.getMonth() < 9) {
|
|
|
+ currentDateStr += "-0" + (currentDate.getMonth() + 1);
|
|
|
+ }else {
|
|
|
+ currentDateStr += "-" + (currentDate.getMonth() + 1);
|
|
|
+ }
|
|
|
+ if(currentDate.getDate() < 10) {
|
|
|
+ currentDateStr += "-0" + currentDate.getDate();
|
|
|
+ }else {
|
|
|
+ currentDateStr += "-" + currentDate.getDate();
|
|
|
+ }
|
|
|
+ $tag.shrDateTimePicker({
|
|
|
+ // value: currentDateStr,
|
|
|
+ isShowUTC:false,
|
|
|
+ ctrlType: 'Date'
|
|
|
+ }); // 设置完成时间
|
|
|
+ $tag.shrDateTimePicker('setValue',currentDateStr)
|
|
|
+ }
|
|
|
+ if(isUnited == 1) {
|
|
|
+ //屏蔽选择
|
|
|
+ $tag.shrDateTimePicker('disable');
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 初始化否决项
|
|
|
+ * @param tagObj
|
|
|
+ * @param isUnited
|
|
|
+ */
|
|
|
+function initRejection(tagId, isUnited) {
|
|
|
+ var $tag = $('input[id="' + tagId + '"]');
|
|
|
+ $tag.shrCheckbox();
|
|
|
+ var $tagHidden = $('input[id="HIDDEN_' + tagId + '"]');
|
|
|
+ var selectedVal = 0;
|
|
|
+ if ($tagHidden.length > 0) {
|
|
|
+ selectedVal = $tagHidden.val();
|
|
|
+ }
|
|
|
+ if (selectedVal != '') {
|
|
|
+ if (selectedVal == 1) {
|
|
|
+ $tag.shrCheckbox('check')
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (isUnited == 1) {
|
|
|
+ //屏蔽选择
|
|
|
+ $tag.attr({'readonly': 'true', 'disabled': 'disabled'});
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 初始化否决项评分选择框
|
|
|
+ * @param targetId
|
|
|
+ */
|
|
|
+function initRejectionScore(targetId) {
|
|
|
+
|
|
|
+ var vetoVal = $('input[name="HIDDENVETO_' + targetId + '"][gradeNode="' + gradeTaskNode + '"]');
|
|
|
+ var selectedVal = 0;
|
|
|
+ var canEdit = 0;
|
|
|
+
|
|
|
+ var $tag = $('span[name="vetospan_' + targetId + '"]');
|
|
|
+ $tag.each(function (i, el) {
|
|
|
+ var inputObj = $($(el).parent().parent().find("input"));
|
|
|
+ selectedVal = inputObj.val();
|
|
|
+ if (!selectedVal) {
|
|
|
+ inputObj = $($(el).parent().parent().parent().find("input"));
|
|
|
+ selectedVal = inputObj.val();
|
|
|
+ }
|
|
|
+ canEdit = inputObj.attr("canEdit");
|
|
|
+ $(el).removeClass("radio-checked");
|
|
|
+ if (selectedVal != '' && selectedVal == 1) {
|
|
|
+ if ($(el).attr("data-value") == 1) {
|
|
|
+ $(el).addClass("radio-checked");
|
|
|
+ }
|
|
|
+ _gExistRejection = 1;
|
|
|
+ } else {
|
|
|
+ if ($(el).attr("data-value") == 0) {
|
|
|
+ $(el).addClass("radio-checked");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (canEdit != 1) {
|
|
|
+ $(el).attr({'readonly': 'true', 'disabled': 'disabled'});
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * yien
|
|
|
+ * 返回没有分数范围的等级
|
|
|
+ * @param selectedKey
|
|
|
+ */
|
|
|
+function getLevelWidthoutScoreRange(selectedKey) {
|
|
|
+ if (typeof selectedKey != "undefined") {
|
|
|
+ var endIndex = selectedKey.indexOf('(');
|
|
|
+ if (endIndex != -1) {
|
|
|
+ selectedKey = selectedKey.substr(0, endIndex);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return selectedKey;
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 确认考核结果
|
|
|
+ */
|
|
|
+function confirm() {
|
|
|
+ /*var url = shr.getContextPath() + "/dynamic.do?handler=com.kingdee.shr.perfweb.evaluresult.handler.EvaluCardListHandler&method=confirm";
|
|
|
+ shr.ajax({
|
|
|
+ type: "post",
|
|
|
+ async: false,
|
|
|
+ url: url,
|
|
|
+ data: {id : evaResultId,isOrg: isOrg},
|
|
|
+ success: function (res) {
|
|
|
+ if (res.result === 'error') {
|
|
|
+ shr.showError({message : res.summary})
|
|
|
+ } else {
|
|
|
+ //shr.showInfo({message : '操作成功!'});
|
|
|
+ shr.showInfo({message: jsBizMultLan.perf_perfscoreNewJuicer_1592900104294_i18n_10});
|
|
|
+ }
|
|
|
+ },
|
|
|
+ error: function (res) {
|
|
|
+ console.log('res', res)
|
|
|
+ }
|
|
|
+ });*/
|
|
|
+
|
|
|
+ // bug-BT-00624018-我的考核历史,用户张一点击申诉提示无权限
|
|
|
+ that.remoteCall({
|
|
|
+ method: "confirm",
|
|
|
+ param: {
|
|
|
+ id : evaResultId,
|
|
|
+ isOrg: isOrg
|
|
|
+ },
|
|
|
+ async: false,
|
|
|
+ success: function (data) {
|
|
|
+ if (data.result === 'error') {
|
|
|
+ shr.showError({message : data.summary})
|
|
|
+ } else {
|
|
|
+ shr.showInfo({message : jsBizMultLan.perf_perfscoreNewJuicer_1592900104294_i18n_10});
|
|
|
+ window.history.back(-1);//返回上一级列表
|
|
|
+ }
|
|
|
+ },
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 确认考核结果
|
|
|
+ */
|
|
|
+function confirmResult() {
|
|
|
+ // 确认考核结果前检查是否有未提交的申诉单据
|
|
|
+ /*var url = shr.getContextPath() + "/dynamic.do?handler=com.kingdee.shr.perfweb.evaluresult.handler.EvaluCardListHandler&method=confirmCheck";
|
|
|
+ shr.ajax({
|
|
|
+ type: "post",
|
|
|
+ async: false,
|
|
|
+ url: url,
|
|
|
+ data: {id : evaResultId,isOrg: isOrg},
|
|
|
+ success: function (res) {
|
|
|
+ if (res.result === 'error') {
|
|
|
+ shr.showError({message : res.summary})
|
|
|
+ } else {
|
|
|
+ if (res && res.appealBillSaved == 1) {
|
|
|
+ //shr.showConfirm('您存在未提交的申诉单据,确认后该申诉单据将作废!', function() {
|
|
|
+ shr.showConfirm(jsBizMultLan.perfweb_perfscoreNew_zw20201229_i18n_17, function() {
|
|
|
+ confirm();
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ confirm();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ error: function (res) {
|
|
|
+ console.log('res', res)
|
|
|
+ }
|
|
|
+ });*/
|
|
|
+ // bug-BT-00624018-我的考核历史,用户张一点击申诉提示无权限
|
|
|
+ that.remoteCall({
|
|
|
+ method: "confirmCheck",
|
|
|
+ param: {
|
|
|
+ id : evaResultId,
|
|
|
+ isOrg: isOrg
|
|
|
+ },
|
|
|
+ async: false,
|
|
|
+ success: function (res) {
|
|
|
+ if (res.result === 'error') {
|
|
|
+ shr.showError({message : res.summary})
|
|
|
+ } else {
|
|
|
+ if (res && res.appealBillSaved == 1) {
|
|
|
+ //shr.showConfirm('您存在未提交的申诉单据,确认后该申诉单据将作废!', function() {
|
|
|
+ shr.showConfirm(jsBizMultLan.perfweb_perfscoreNew_zw20201229_i18n_17, function() {
|
|
|
+ confirm();
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ confirm();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+/**
|
|
|
+ * 申诉
|
|
|
+ */
|
|
|
+function appeal() {
|
|
|
+
|
|
|
+ //PBG169113 工作流 --审批中 -页面打不开
|
|
|
+ //BT1464136 组织考核历史--列表页面,点击申诉,报500
|
|
|
+ /*shr.callHandler({
|
|
|
+ handler:"com.kingdee.shr.perfweb.evaluresult.handler.EvaluCardListHandler",
|
|
|
+ action:"appeal",
|
|
|
+ param: {
|
|
|
+ id : evaResultId,
|
|
|
+ isOrg: isOrg //补丁10 组织考核-yien
|
|
|
+ },
|
|
|
+ async: false,
|
|
|
+ success:function(data){
|
|
|
+ var uipk = "com.kingdee.shr.perfweb.app.base.evalplan.EvaResultAppealBill.form";
|
|
|
+ if(isOrg == '1') {
|
|
|
+ uipk = "com.kingdee.shr.perfweb.app.base.evalplan.EvaResultAppealBill4Org.form";
|
|
|
+ }
|
|
|
+
|
|
|
+ var methodchagge= data.operateState ? data.operateState.toLowerCase():null;
|
|
|
+ if(methodchagge===null||methodchagge===undefined){
|
|
|
+ methodchagge= fromPage!='RESULTCONFIRM'?'view':'edit';
|
|
|
+ }
|
|
|
+ that.reloadPage({
|
|
|
+ uipk : uipk,
|
|
|
+ billId : data.billId,
|
|
|
+ method : methodchagge,
|
|
|
+ isAddNew: data.isAddNew // yien 是否新增
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });*/
|
|
|
+ // bug-BT-00624018-我的考核历史,用户张一点击申诉提示无权限
|
|
|
+ that.remoteCall({
|
|
|
+ method: "appeal",
|
|
|
+ param: {
|
|
|
+ id : evaResultId,
|
|
|
+ isOrg: isOrg //补丁10 组织考核-yien
|
|
|
+ },
|
|
|
+ async: false,
|
|
|
+ success: function (data) {
|
|
|
+ var uipk = "com.kingdee.shr.perfweb.app.base.evalplan.EvaResultAppealBill.form";
|
|
|
+ if(isOrg == '1') {
|
|
|
+ uipk = "com.kingdee.shr.perfweb.app.base.evalplan.EvaResultAppealBill4Org.form";
|
|
|
+ }
|
|
|
+
|
|
|
+ var methodchagge= data.operateState ? data.operateState.toLowerCase():null;
|
|
|
+ if(methodchagge===null||methodchagge===undefined){
|
|
|
+ methodchagge= fromPage!='RESULTCONFIRM'?'view':'edit';
|
|
|
+ }
|
|
|
+ that.reloadPage({
|
|
|
+ uipk : uipk,
|
|
|
+ billId : data.billId,
|
|
|
+ method : methodchagge,
|
|
|
+ isAddNew: data.isAddNew, // yien 是否新增
|
|
|
+ shruicode: shr.getUrlRequestParam("shruicode")
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+function getAttachcount() {
|
|
|
+ that.remoteCall({//附件数
|
|
|
+ method: "initialAttachment",
|
|
|
+ param: {evaObj: evaObj, gradeTaskNode: gradeTaskNode},
|
|
|
+ async: true,
|
|
|
+ success: function (data) {
|
|
|
+ // 计算附件数量
|
|
|
+ var attachcount = data.length;
|
|
|
+ $('.attachcount').html(attachcount);
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+// 清空选中文本
|
|
|
+var clearTextSelect = 'getSelection' in window ? function(){
|
|
|
+ window.getSelection().removeAllRanges();
|
|
|
+} : function(){
|
|
|
+ document.selection.empty();
|
|
|
+};
|
|
|
+
|
|
|
+function array_contain(array, obj){
|
|
|
+ for (var i = 0; i < array.length; i++){
|
|
|
+ if (array[i] == obj)//如果要求数据类型也一致,这里可使用恒等号===
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 判断是否为数字
|
|
|
+ * @param fieldVal
|
|
|
+ * @returns {boolean}
|
|
|
+ */
|
|
|
+function isNumber(fieldVal) {
|
|
|
+ var reg = /^\d+(\.\d+)?$/;
|
|
|
+ if (fieldVal) {
|
|
|
+ return reg.test(fieldVal);
|
|
|
+ } else if (parseFloat(fieldVal) == 0) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+}
|
|
|
+
|
|
|
+//总分校验
|
|
|
+function sumSocreOnblur(_this) {
|
|
|
+ var errObj = new Object();
|
|
|
+ var objVal = $(_this).val();
|
|
|
+ var msgShow = $("span[id='MSG_SUMSCORE']");
|
|
|
+ msgShow.hide();
|
|
|
+ console.log(objVal);
|
|
|
+ var dataReg = /^(-?\d+)(\.\d{1,2})?$/; //浮点数
|
|
|
+ if (!dataReg.test(objVal)) {
|
|
|
+ //$(_this).focus();
|
|
|
+ errObj.errortext = jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_36;
|
|
|
+ msgShow.text(errObj.errortext);
|
|
|
+ msgShow.show();
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+/**
|
|
|
+ * 隐藏权重参数控制
|
|
|
+ */
|
|
|
+function hideWeight() {
|
|
|
+ var flag = false; // 列表模式判断用
|
|
|
+ //团队目标评分 个人目标评分 已办已评分
|
|
|
+ if (isTeamEvalu == 1 || entryType == 'myselfEvalu' || entryType == 'viewMyScoreForm') {
|
|
|
+ if (globalIndicatorData && globalIndicatorData.scoringWay == 0) {//权重模式
|
|
|
+ if (that.initData && that.initData.hideWeight == "true") {
|
|
|
+ // $(".scoretabs").setGridParam().hideCol("FWEIGHT");
|
|
|
+ $(".grade.areaWeight").hide();
|
|
|
+ flag = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return flag;
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 判断是否保留小数点后两位
|
|
|
+ * @param _fieldVal
|
|
|
+ * @param _type 1:整数或带两位小数;undefined/0:整数或带两位小数
|
|
|
+ * @returns {boolean}
|
|
|
+ */
|
|
|
+function isNumberVerify(_fieldVal , _type) {
|
|
|
+ var reg = /^\d+(\.\d{1,2})?$/;
|
|
|
+ if(1 == _type) {
|
|
|
+ reg = /^(-)?\d+(\.\d{1,2})?$/;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(_fieldVal) {
|
|
|
+ return reg.test(_fieldVal);
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+}
|
|
|
+
|
|
|
+function isNumberVerify2(_fieldVal , _type) {
|
|
|
+ var reg = /^\d+(\.\d{1,10})?$/;
|
|
|
+ if(1 == _type) {
|
|
|
+ reg = /^(-)?\d+(\.\d{1,10})?$/;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(_fieldVal) {
|
|
|
+ return reg.test(_fieldVal);
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+}
|
|
|
+
|
|
|
+$.extend($.jgrid, {
|
|
|
+ focusKnv: function($t){}
|
|
|
+})
|
|
|
+
|
|
|
+// 返回指定区域的区域说明数据
|
|
|
+var getAreaRema = function(areaId){
|
|
|
+ var rema = '';
|
|
|
+ globalIndicatorData.areaBaseList.forEach(function(item){
|
|
|
+ if(item.id === areaId){
|
|
|
+ rema = item.rema;
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ return rema;
|
|
|
+}
|
|
|
+
|
|
|
+// 控制查看更多区域说明信息
|
|
|
+function showMoreRema(e, areaId){
|
|
|
+ var remabox = $('.area-rema-box[area-id="'+areaId+'"]');
|
|
|
+ var textArr = [jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_51,jsBizMultLan.perf_perfscoreNew_1586255739735_i18n_47]; // 展开、收起
|
|
|
+ if(remabox.hasClass('opened')){
|
|
|
+ remabox.removeClass('opened');
|
|
|
+ $(e).text(textArr[0]);
|
|
|
+ }else{
|
|
|
+ remabox.addClass('opened');
|
|
|
+ $(e).text(textArr[1]);
|
|
|
+ }
|
|
|
+}
|