<apex:page id="Page" showHeader="false" sidebar="false" Controller="SetPersonalTargetController" action="{!init}">
|
<head>
|
<title>部门担当者目标设定(医院担当)</title>
|
|
<apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}"/>
|
<apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}"/>
|
<apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/>
|
<apex:includeScript value="{!URLFOR($Resource.jqueryTableFix)}"/>
|
|
<script type="text/javascript">
|
//CHAN-BDQBLX 20210125 you start
|
var popupBox;
|
popupBox = new SimpleDialog("CSVImportDialogId", false); // 不可拖动
|
popupBox.createDialog();
|
function openPopupCSV() {
|
popupBox.setTitle("导入CSV文件");
|
popupBox.importContentNode(document.getElementById("{!$Component.Form.popupBox}"));
|
popupBox.show(document.getElementById("{!$Component.Form.popupBox}"));
|
}
|
function remoteLocationPost() {
|
blockme();
|
var fbody = document.getElementById("file_input").files[0];
|
if (typeof fbody === "undefined") {
|
alert("请选择CSV文件");
|
return;
|
}
|
else {
|
var reader = new FileReader();
|
reader.readAsText(fbody,"gb2312");//在前台改乱码问题
|
|
reader.onload = function(val) {
|
if(this.result.split("\n").length - 1 > {!detailCountLimit}){
|
alert("文件不可超过" + {!detailCountLimit} + "行");
|
return;
|
}
|
passToController(this.result);
|
popupBox.hide();
|
}
|
|
|
}
|
}
|
//CHAN-BDQBLX 20210125 you end
|
function checkMoney(val, id) {
|
// changeFlgセット
|
j$(escapeVfId('Page:Form:editBlock:changeFlg')).val(1);
|
var ids = id.split(":");
|
var isChangedid = ids[0] + ":" + ids[1] + ":" + ids[2] + ":" + ids[3] + ":" + ids[4] + ":isChanged";
|
j$(escapeVfId(isChangedid)).val("1");
|
j$(escapeVfId(id))[0].style.background="#FFFF33";
|
if (val != null && val != "") {
|
if (isNaN(parseFloat(val))) {
|
alert("请输入数值");
|
j$(escapeVfId(id)).val("");
|
return;
|
}
|
val = localParseFloat(val);
|
val = Math.round(val * 100) / 100;
|
j$(escapeVfId(id)).val(toNumComma(val));
|
}
|
calc();
|
}
|
|
function checkAll(checker) {
|
for (var i = 0; i < {!pSize}; i++) {
|
j$(escapeVfId('Page:Form:headBlock:postRepeat:' + i + ':post'))[0].checked = checker.checked;
|
}
|
searchByFilterJs();
|
}
|
|
function calc() {
|
var isorgtbl = j$('div[name=bodyTable]');
|
var tbl = document.getElementById('MainTable');
|
var datarows = tbl.rows.length;
|
// 如果MainTable没有分成4部分
|
if (isorgtbl.length == 0) {
|
datarows -= 2;
|
}
|
var allSum = 0;
|
var cols = [0, 0, 0, 0, 0, 0, 0, 0];
|
// 行
|
for (var i = 0; i < datarows; i++) {
|
var rowSum = 0;
|
// 列
|
for (var j = 0; j < 8; j++) {
|
var amount = 0;
|
|
var raw = j$(escapeVfId('Page:Form:editBlock:dbRepeat:' + i + ':amountRepeat:' + j + ':inAmountValue')).value();
|
raw = (raw + '').replace(/[^0-9+\-Ee.]/g, '');
|
|
var amount = localParseFloat(raw);
|
rowSum = rowSum + amount;
|
cols[j] = cols[j] + amount;
|
allSum = allSum + amount;
|
}
|
j$(escapeVfId('Page:Form:editBlock:dbRepeat:' + i + ':totalrow')).text(toNumComma(rowSum));
|
}
|
// 列
|
for (var j = 0; j < 8; j++) {
|
j$(escapeVfId('totalcol' + j)).text(toNumComma(cols[j]));
|
}
|
// 総計
|
j$(escapeVfId('totalAll')).text(toNumComma(allSum));
|
}
|
|
function saveJs() {
|
blockme();
|
if (window.confirm('确定要保存吗?')) {
|
save();
|
} else {
|
unblockUI();
|
}
|
}
|
function DisableAllButtons (actionText) {
|
var button = document.getElementById("Page:Form:headBlock:updateToTarget");
|
button.disabled = true;
|
button.classList.add("btnDisabled");
|
}
|
//20200618 SWAG-BQ7CM9 添加UpdateJs 调用Apex 中Update函数 by ljh
|
function UpdateJs(actionText) {
|
blockme_dark();
|
if (window.confirm('确定要反应到目标吗?')) {
|
Update();
|
// j$(escapeVfId('Page:Form:headBlock:updateToTarget')).attr("disabled",true);
|
// alert('请等待提示【反映到目标成功】在做其他操作');
|
DisableAllButtons(actionText);
|
} else {
|
unblockUI();
|
}
|
}
|
function nextJs() {
|
blockme();
|
if (j$(escapeVfId('Page:Form:editBlock:changeFlg')).value() == 1) {
|
if (window.confirm('目标金额有变化,要保存已做的修改吗?\n点击 [确定] 保存并去下年度\n点击 [取消] 只去下年度,不保存')) {
|
next(true);
|
} else {
|
next(false);
|
}
|
} else {
|
next(false);
|
}
|
}
|
|
function prevJs() {
|
blockme();
|
if (j$(escapeVfId('Page:Form:editBlock:changeFlg')).value() == 1) {
|
if (window.confirm('目标金额有变化,要保存已做的修改吗?\n点击 [确定] 保存并去上年度\n点击 [取消] 只去上年度,不保存')) {
|
prev(true);
|
} else {
|
prev(false);
|
}
|
} else {
|
prev(false);
|
}
|
}
|
|
function searchByDptJs() {
|
|
// if (val != null && val != "") {
|
blockme();
|
if (j$(escapeVfId('Page:Form:editBlock:changeFlg')).value() == 1) {
|
if (window.confirm('目标金额有变化,要保存已做的修改吗?\n点击 [确定] 保存并继续\n点击 [取消] 不保存')) {
|
searchByDpt(true);
|
} else {
|
searchByDpt(false);
|
}
|
} else {
|
searchByDpt(false);
|
}
|
// }
|
}
|
|
function searchByProvinceJs() {
|
// if (val != null && val != "") {
|
blockme();
|
if (j$(escapeVfId('Page:Form:editBlock:changeFlg')).value() == 1) {
|
if (window.confirm('目标金额有变化,要保存已做的修改吗?\n点击 [确定] 保存并继续\n点击 [取消] 不保存')) {
|
searchByProvince(true);
|
} else {
|
searchByProvince(false);
|
}
|
} else {
|
searchByProvince(false);
|
}
|
// }
|
}
|
|
function searchByFilterJs() {
|
|
// if (val != null && val != "") {
|
blockme();
|
if (j$(escapeVfId('Page:Form:editBlock:changeFlg')).value() == 1) {
|
if (window.confirm('目标金额有变化,要保存已做的修改吗?\n点击 [确定] 保存并继续\n点击 [取消] 不保存')) {
|
searchByFilter(true);
|
} else {
|
searchByFilter(false);
|
}
|
} else {
|
searchByFilter(false);
|
}
|
// }
|
}
|
//CHAN-BDQBLX 20210125 you start
|
function exportJs() {
|
/**
|
var repFlg = j$(escapeVfId('Page:Form:headBlock:accTypeOptsId')).val();//本部
|
var province = j$(escapeVfId('Page:Form:headBlock:province')).val();//省
|
var jobCategory = j$(escapeVfId('Page:Form:headBlock:jobCategory')).val();//职种
|
var productUserid = j$(escapeVfId('Page:Form:headBlock:productUserid')).val();//医院担当
|
var postid='';//职位
|
for (var i = 0; i < {!pSize}; i++) {
|
postid =j$(escapeVfId('Page:Form:headBlock:postRepeat:' + i + ':post')).checked;
|
}
|
**/
|
if (j$(escapeVfId('Page:Form:editBlock:changeFlg')).value() == 1) {
|
if (window.confirm('目标金额有变化,要保存已做的修改吗?\n点击 [确定] 保存并继续\n点击 [取消] 不保存')) {
|
return;
|
}
|
}
|
//alert('本部'+repFlg+'省'+province+'职种'+jobCategory);
|
exportcsv();
|
}
|
//CHAN-BDQBLX 20210125 you end
|
</script>
|
</head>
|
<!--CHAN-BDQBLX 20210125 you start
|
<apex:form id="Form2">
|
<apex:pageBlock id="headBlock2" tabStyle="Report">
|
|
<table id="ButtonTable2" border="0" width="100%">
|
<tr>
|
<td width="10%" align="right"></td>
|
<td width="30%"></td>
|
|
<td align="center">
|
<apex:inputfile filename="{!csvAsString}" value="{!csvFileBody}" accept="text/csv">
|
</apex:inputfile>
|
</td>
|
|
<td width="30%">
|
<apex:commandbutton action="{!importCSVFile}" id="import" value="导入">
|
</apex:commandbutton>
|
</td>
|
|
<td width="10%" align="right">
|
<apex:commandbutton onclick="exportJs();return false;" id="export" value="导出数据模板">
|
</apex:commandbutton>
|
</td>
|
</tr>
|
</table>
|
|
</apex:pageBlock>
|
</apex:form>
|
CHAN-BDQBLX 20210125 you end -->
|
<apex:form id="Form">
|
<apex:outputPanel id="MessageP">
|
<apex:pagemessages />
|
</apex:outputPanel>
|
<font style="font-size:15px;font-weight:700;">录入担当者各自的目标 (注:请输入含税金额)</font>
|
<!--CHAN-BDQBLX 20210125 you start -->
|
<apex:actionFunction name="exportcsv" action="{!exportBycsv}"/>
|
<apex:actionFunction name="passToController" action="{!importCSVFile}" rerender="Form, MessageP" oncomplete="unblockUI();">
|
<apex:param name="csvData" value="" />
|
</apex:actionFunction>
|
<!--CHAN-BDQBLX 20210125 you end -->
|
<apex:actionFunction name="save" action="{!saveBtn}" rerender="MessageP,editBlock" oncomplete="unblockUI();" />
|
<!-- 20200618 SWAG-BQ7CM9 添加Update action function by ljh -->
|
<apex:actionFunction name="Update" action="{!UpdateBtn}" rerender="MessageP,dataBlock" oncomplete="unblockUI();Secin();" />
|
<apex:actionFunction name="next" action="{!next}" rerender="Form" oncomplete="unblockUI();">
|
<apex:param name="saveFlg" assignTo="{!saveFlg}" value="" />
|
</apex:actionFunction>
|
<apex:actionFunction name="prev" action="{!previous}" rerender="Form" oncomplete="unblockUI();">
|
<apex:param name="saveFlg" assignTo="{!saveFlg}" value="" />
|
</apex:actionFunction>
|
<apex:actionFunction name="searchByDpt" action="{!searchByDpt}" rerender="Form" oncomplete="unblockUI();">
|
<apex:param name="saveFlg" assignTo="{!saveFlg}" value="" />
|
</apex:actionFunction>
|
<apex:actionFunction name="searchByProvince" action="{!searchByProvince}" rerender="Form" oncomplete="unblockUI();">
|
<apex:param name="saveFlg" assignTo="{!saveFlg}" value="" />
|
</apex:actionFunction>
|
<apex:actionFunction name="searchByFilter" action="{!searchByFilter}" rerender="Form" oncomplete="unblockUI();">
|
<apex:param name="saveFlg" assignTo="{!saveFlg}" value="" />
|
</apex:actionFunction>
|
<!--CHAN-BDQBLX 20210125 you start -->
|
<apex:outputPanel style="display:none">
|
<apex:outputPanel id="popupBox" layout="block">
|
<input type="file" id="file_input" name="attFile" accept=".csv" /><br/>
|
<center>
|
<apex:commandButton value="确认" onclick="remoteLocationPost(); return false;" style="width: 20%; margin: 20px 10px 0px 10px" />
|
<apex:commandButton value="取消" onclick="popupBox.hide();" style="width: 20%; margin: 20px 10px 0px 10px" />
|
</center>
|
</apex:outputPanel>
|
</apex:outputPanel>
|
<!--CHAN-BDQBLX 20210125 you end -->
|
|
<apex:pageBlock id="headBlock" tabStyle="Report">
|
<table id="ConditionTable" border="0" width="100%">
|
<tr>
|
<!-- <apex:outputPanel rendered="{!loginUser.ProfileId == $Label.ProfileId_SystemAdmin}" layout="none"> -->
|
<td width="170">本部 <apex:selectList id="accTypeOptsId" value="{!salesDpt}" size="1" style="width:120px;" disabled="{!!(loginUser.ProfileId == $Label.ProfileId_SystemAdmin || loginUser.ProfileId == $Label.ProfileId_103 || loginUser.ProfileId == $Label.ProfileId_2s6dashboard )}" onchange="searchByDptJs();return false;"><apex:selectOptions value="{!salesDptOpts}" />
|
<!--<apex:inputHidden id="salesDptOpts1" value="{!salesDptOpts}" />-->
|
</apex:selectList>
|
|
</td>
|
<!-- </apex:outputPanel> -->
|
<td width="179">省 <apex:inputField id="province" value="{!loginUser.Province__c}" style="width:140px;" onchange="searchByProvinceJs();return false;"></apex:inputField>
|
<script type="text/javascript">
|
var isadmin = {!(loginUser.ProfileId == $Label.ProfileId_SystemAdmin || loginUser.ProfileId == $Label.ProfileId_103 || loginUser.ProfileId == $Label.ProfileId_2s6dashboard)};
|
if (!isadmin) {
|
j$(escapeVfId('Page:Form:headBlock:province')).attr("disabled",true);
|
}
|
</script>
|
</td>
|
<td width="300">
|
职种 <apex:selectList id="jobCategory" value="{!loginUser.Job_Category__c}" size="1" style="width:80px;" onchange="searchByFilterJs();return false;">
|
<apex:selectOptions value="{!userJobCategorys}"/>
|
</apex:selectList>
|
医院担当
|
<apex:selectList value="{!productUser}" id="productUserid" size="1" style="width:100px;" onchange="searchByFilterJs();return false;">
|
<apex:selectOptions value="{!productUserOptions}"/>
|
</apex:selectList>
|
</td>
|
<td width="60"><apex:inputCheckBox id="checkAll" value="{!checkAll}" onchange="checkAll(this);return false;"/><apex:outputLabel value="全选" for="checkAll"/></td>
|
<td>
|
<apex:repeat value="{!plist}" var="p" id="postRepeat">
|
<apex:inputCheckBox value="{!p.check}" id="post" onchange="searchByFilterJs();return false;"/><apex:outputLabel value="{!p.positionName}" for="post"/>
|
</apex:repeat>
|
</td>
|
<td align="right" width="80">
|
<!-- 20200619 add 反应到目标 按钮 -->
|
<apex:commandButton value="反应到目标" id="updateToTarget" style="margin-left: 20px;" rerender="dummy" onclick="UpdateJs(this);return false;" rendered="{!Not(isPast)}"/>
|
</td>
|
<!--CHAN-BDQBLX 20210125 you start -->
|
<td width="80">
|
<apex:commandbutton onclick="exportJs();return false;" id="export" value="导出数据模板">
|
</apex:commandbutton>
|
</td>
|
<td width="40">
|
<apex:commandButton onclick="openPopupCSV(); return false;" value="导入" rerender="Form"/>
|
</td>
|
<!--CHAN-BDQBLX 20210125 you end -->
|
</tr>
|
</table>
|
|
<table id="ButtonTable" border="0" width="100%">
|
<tr>
|
<td width="10%"></td>
|
<td align="center" width="20%">
|
<apex:commandButton value="保存" rerender="dummy" onclick="saveJs();return false;" rendered="{!Not(isPast)}"/>
|
</td>
|
|
|
<td width="10%" align="right"><apex:commandButton action="{!backBtn}" value="返回" rerender="dummy"/></td>
|
|
</tr>
|
<tr>
|
<td width="15%" align="left" ><apex:commandLink value="上年度" style="color:blue;" rendered="{!previousRendered}" onclick="prevJs();return false;"/></td>
|
<td align="center"><apex:outputText id="Year" value="{!currentPeriod}" style="color:blue;"/></td>
|
<td width="15%" align="right"><apex:commandLink value="下年度" style="color:blue;" rendered="{!nextRendered}" onclick="nextJs();return false;"/></td>
|
</tr>
|
|
</table>
|
|
</apex:pageBlock>
|
|
<apex:pageBlock id="editBlock" tabStyle="Report">
|
<!-- バック側にパラメータを増やしたくないため、1になれないパラメータを入れます -->
|
<!-- ここの値は1かどうかの判断のみで使います -->
|
<apex:inputHidden id="changeFlg" value="{!saveFlg}"/>
|
<table class="list" style="border-bottom-width: 0px;" border="0" cellspacing="0" cellpadding="0" id="MainTable">
|
<thead>
|
<tr class="headerRow">
|
<th width="70px" class="headerRow booleanColumn">本部</th>
|
<th width="70px" class="headerRow booleanColumn">省</th>
|
<th class="headerRow booleanColumn">角色</th>
|
<th width="70px" class="headerRow booleanColumn">担当</th>
|
<th width="70px" class="headerRow booleanColumn">HR通用职级</th> <!-- 20220517 lt SWAG-CD28H3 Update -->
|
<th width="70px" class="headerRow booleanColumn">负责<br/>产品分类(主)</th>
|
<!--wangweipeng 20210615-->
|
<th width="70px" class="headerRow booleanColumn">负责<br/>产品分类(兼)</th>
|
<apex:repeat value="{!opportunity_category}" var="oc" id="opportunityCategoryRepeat">
|
<th width="75px" class="headerRow booleanColumn"><apex:outputText id="categoryValue" value="{!oc}"></apex:outputText></th>
|
</apex:repeat>
|
<th width="85" class="headerRow booleanColumn" style="background-color:#AAAACC;">合计</th>
|
</tr>
|
</thead>
|
<tbody>
|
<apex:variable value="{!1}" var="cnt" />
|
<tr class="dataRow {!IF(MOD(cnt, 2)==0, 'odd', 'even')} {!IF(cnt==1, 'first', '')}" bgcolor="#AAAACC">
|
<td class="dataCell"></td>
|
<td class="dataCell"></td>
|
<td class="dataCell"></td>
|
<td class="dataCell"></td>
|
<td class="dataCell"></td>
|
<!--wangweipeng 20210615-->
|
<td class="dataCell"></td>
|
<td class="dataCell" style="text-align:center;">合计</td>
|
<td class="dataCell" style="text-align:right;" id="totalcol0"></td>
|
<td class="dataCell" style="text-align:right;" id="totalcol1"></td>
|
<td class="dataCell" style="text-align:right;" id="totalcol2"></td>
|
<td class="dataCell" style="text-align:right;" id="totalcol3"></td>
|
<td class="dataCell" style="text-align:right;" id="totalcol4"></td>
|
<td class="dataCell" style="text-align:right;" id="totalcol5"></td>
|
<td class="dataCell" style="text-align:right;" id="totalcol6"></td>
|
<td class="dataCell" style="text-align:right;" id="totalcol7"></td>
|
<td class="dataCell" style="text-align:right;" id="totalAll"></td>
|
</tr>
|
<apex:repeat value="{!dataBeans}" var="dbs" id="dbRepeat">
|
<tr class="dataRow {!IF(MOD(cnt, 2)==0, 'odd', 'even')} {!IF(cnt==1, 'first', '')}">
|
<td class="dataCell">{!dbs.user.Salesdepartment__c}</td>
|
<td class="dataCell">{!dbs.user.Province__c}</td>
|
<td class="dataCell">{!dbs.user.UserRole.Name}</td>
|
<td class="dataCell">{!dbs.user.Alias}</td>
|
<td class="dataCell">{!dbs.user.HR_Post__c}</td> <!-- 20220517 lt SWAG-CD28H3 Update -->
|
<td class="dataCell" style="word-wrap:break-word;max-width:70px;">{!SUBSTITUTE(dbs.user.Product_specialist_incharge_product__c, ";", "; ")}</td>
|
<!--wangweipeng 20210615-->
|
<td class="dataCell" style="word-wrap:break-word;max-width:70px;">{!SUBSTITUTE(dbs.user.Responsible_for_Products_Concurrently__c, ";", "; ")}</td>
|
<apex:variable value="{!1}" var="cnt2" />
|
<apex:repeat value="{!dbs.amount}" var="amount" id="amountRepeat">
|
<td class="dataCell" style="text-align:right;">
|
<apex:inputField id="inAmountValue" value="{!amount.Amount}" style="width:92%; text-align:right;" onchange="checkMoney(this.value, this.id);"></apex:inputField>
|
<script type="text/javascript">
|
var ispast = {!isPast};
|
if (ispast) {
|
j$(escapeVfId('Page:Form:editBlock:dbRepeat:' + {!cnt-1} + ':amountRepeat:' + {!cnt2-1} + ':inAmountValue')).attr("disabled",true);
|
}
|
</script>
|
</td>
|
<apex:variable value="{!cnt2 + 1}" var="cnt2" />
|
</apex:repeat>
|
<td class="dataCell" style="text-align:right; background-color:#AAAACC;">
|
<apex:outputText id="totalrow" style="width:92%;" value="{0,number,#,##0.00}">
|
<apex:param value="" />
|
</apex:outputText>
|
<apex:inputHidden id="isChanged" value="{!dbs.isChanged}"/>
|
</td>
|
</tr>
|
<apex:variable value="{!cnt + 1}" var="cnt" />
|
</apex:repeat>
|
</tbody>
|
</table>
|
<script type="text/javascript">
|
j$(function() {
|
var blockHeight = j$(window).innerHeight() - j$(escapeVfId('Page:Form:headBlock')).height() - 60;
|
j$(escapeVfId('MainTable')).tablefix({height: blockHeight, fixRows: 2, fixCols: 0});
|
});
|
calc();
|
</script>
|
</apex:pageBlock>
|
</apex:form>
|
</apex:page>
|