市长热线演示版

callplanfpset.aspx 39KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630
  1. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="callplanfpset.aspx.cs"
  2. Inherits="HySoft.BaseCallCenter.Web.calloutmanage.callplanfpset" %>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml">
  5. <head id="Head1" runat="server">
  6. <title>外呼分配</title>
  7. <link href="../scripts/ui/skins/Aqua/css/ligerui-all.css" rel="stylesheet" type="text/css" />
  8. <script src="/scripts/jquery/jquery-1.3.2.min.js" type="text/javascript"></script>
  9. <script type="text/javascript" src="/scripts/jquery/jquery.form.js"></script>
  10. <script type="text/javascript" src="/scripts/jquery/jquery.validate.min.js"></script>
  11. <script type="text/javascript" src="/scripts/jquery/messages_cn.js"></script>
  12. <script src="../scripts/ui/js/core/base.js" type="text/javascript"></script>
  13. <script src="../scripts/ui/js/ligerui.min.js" type="text/javascript"></script>
  14. <link href="../scripts/ui/skins/Tab/css/tab.css" rel="stylesheet" type="text/css" />
  15. <link href="../scripts/ui/skins/Tab/css/grid.css" rel="stylesheet" type="text/css" />
  16. <script src="../scripts/ui/js/plugins/ligerGrid.js" type="text/javascript"></script>
  17. <script src="../scripts/ui/js/plugins/ligerLayout.js" type="text/javascript"></script>
  18. <script src="../scripts/ui/js/plugins/ligerTree.js" type="text/javascript"></script>
  19. <script src="../scripts/ui/js/plugins/ligerMenu.js" type="text/javascript"></script>
  20. <link href="../scripts/ui/skins/ligerui-icons.css" rel="stylesheet" type="text/css" />
  21. <script src="../scripts/My97DatePicker/lang/zh-cn.js" type="text/javascript"></script>
  22. <link href="../images/style.css" rel="stylesheet" type="text/css" />
  23. <script type="text/javascript">
  24. var selectplan = "";
  25. var tellist;
  26. var userlist;
  27. var pagername = "";
  28. var planname = "";
  29. function BindData(taskid) {
  30. var timeno = new Date().getTime();
  31. if (taskid != "") {
  32. $("#dropFieldList").ligerComboBox({
  33. url: 'ajax/callplanfpset.ashx?action=getfieldlist&taskid=' + taskid + "&timeno=" + timeno,
  34. valueField: '_f_dbfieldlname',
  35. textField: '_f_name',
  36. width:90,
  37. selectBoxWidth:90,
  38. autocomplete: true,
  39. onSelected: function (newvalue) {
  40. $("#hiddFieldValue").val(newvalue);
  41. }
  42. });
  43. }
  44. }
  45. function LoadUserList() {
  46. try {
  47. $.ajax({
  48. type: 'get',
  49. url: 'ajax/callplanfpset.ashx?action=getuserlist',
  50. data: { userid: '' },
  51. dataType: 'html',
  52. async: false,
  53. cache: false,
  54. success: function (res) {
  55. if (res != "") {
  56. document.getElementById("divUserList").innerHTML = res;
  57. }
  58. }
  59. });
  60. }
  61. catch (e) {
  62. $.ligerDialog.error("加载失败,错误信息:" + e.Message);
  63. }
  64. }
  65. function LoadTelList() {
  66. var vwidth = document.body.clientWidth - 400;
  67. selectplan = document.getElementById("txtPlanId").value;
  68. var key = escape(document.getElementById("txtKeywords").value);
  69. var field = document.getElementById("hiddFieldValue").value;
  70. var timeno = new Date().getTime();
  71. tellist = $("#divTelList").ligerGrid({
  72. height: '97%',
  73. width: vwidth,
  74. checkbox: true,
  75. columns: [
  76. { display: '外呼计划', align: 'center', width: '130', name: '_taskname' },
  77. { display: '号码', width: '130', name: '_f_phone', render: function (rowdata, rowindex, value) {
  78. return "<img src='../images/phone3.png' style='width:16px' />&nbsp;&nbsp;<font color='green'>" + value + "</font>";
  79. }
  80. },
  81. { display: '名称', align: 'left', width: '130', name: '_f_customer' },
  82. { display: '导入时间', align: 'center', width: '130', name: '_f_createtime', type: 'date', format: 'yyyy-MM-dd hh:mm:ss' },
  83. { display: '分配坐席', align: 'center', width: '70', name: '_f_username' },
  84. { display: '呼叫状态', align: 'center', width: '70', name: '_f_hcstate', render: function (rowdata, rowindex, value) {
  85. if (value == 0) {
  86. return "未呼叫";
  87. }
  88. else {
  89. return "已呼叫";
  90. }
  91. }
  92. },
  93. { display: '接通状态', align: 'center', width: '70', name: '_f_yjstate', render: function (rowdata, rowindex, value) {
  94. if (value == 0) {
  95. return "未接通";
  96. }
  97. else {
  98. return "已接通";
  99. }
  100. }
  101. }
  102. ],
  103. url: 'ajax/callplantelnum.ashx?action=getwfplist&taskid=' + selectplan + '&key=' + key + '&field=' + field + '&timeno=' + timeno, pageSize: 50, pageSizeOptions: [10, 20, 50, 100], rownumbers: true,
  104. isChecked: f_isChecked, onCheckRow: f_onCheckRow, onCheckAllRow: f_onCheckAllRow,
  105. onSelectRow: function (data, rowindex, rowobj) {
  106. },
  107. onSuccess: function (data, obj) {
  108. document.getElementById("txtAllCount").value = data.Total;
  109. },
  110. onAfterShowData: function (data) {
  111. }
  112. });
  113. $("#pageloading").hide();
  114. }
  115. $(function () {
  116. selectplan = "0";
  117. LoadUserList();
  118. LoadTelList();
  119. });
  120. function Init() {
  121. selectplan = "0";
  122. LoadTelList();
  123. }
  124. document.onkeydown = function (event) {
  125. var e = event || window.event || arguments.callee.caller.arguments[0];
  126. if (e && e.keyCode == 13) {
  127. Init();
  128. }
  129. };
  130. var sflag = true;
  131. function SelectPlan() {
  132. sflag = true;
  133. document.getElementById("divShowPlanList").style.display = "block";
  134. LoadPlanList();
  135. }
  136. function ChangeFlag() {
  137. sflag = true;
  138. }
  139. function HideList() {
  140. document.getElementById("divShowPlanList").style.display = "none";
  141. }
  142. function ChangeKey() {
  143. if (sflag) {
  144. if (document.getElementById("txtPlanName").value == "") {
  145. document.getElementById("txtPlanId").value = "0";
  146. document.getElementById("divShowPlanList").style.display = "none";
  147. }
  148. else {
  149. document.getElementById("divShowPlanList").style.display = "block";
  150. LoadPlanList();
  151. }
  152. }
  153. }
  154. var planlist;
  155. function LoadPlanList() {
  156. var key = escape(document.getElementById("txtPlanName").value);
  157. planlist = $("#divPlanList").ligerGrid({
  158. height: 300,
  159. width: 300,
  160. columns: [
  161. { display: '计划名称', align: 'left', width: '130', name: '_taskname' },
  162. { display: '号码数量', align: 'center', width: '60', name: '_y_hmcount' }
  163. ],
  164. toolbar: {
  165. items: [
  166. { text: '关闭', click: itemclick1, icon: 'delete' }
  167. ]
  168. },
  169. url: 'ajax/callplan.ashx?action=getlist&key=' + key, pageSize: 20, pageSizeOptions: [10, 20, 50], rownumbers: true,
  170. onDblClickRow: function (data, rowindex, rowobj) {
  171. sflag = false;
  172. var vid = "0";
  173. var vname = "";
  174. try {
  175. vid = data._taskid;
  176. vname = data._taskname;
  177. document.getElementById("txtPlanId").value = vid;
  178. document.getElementById("txtPlanName").value = vname;
  179. document.getElementById("divField1").style.display = "block";
  180. document.getElementById("divField2").style.display = "block";
  181. BindData(vid);
  182. LoadTelList();
  183. }
  184. catch (e) {
  185. }
  186. document.getElementById("divShowPlanList").style.display = "none";
  187. }
  188. });
  189. }
  190. function itemclick1(item) {
  191. switch (item.icon) {
  192. case "delete":
  193. HideList();
  194. break;
  195. }
  196. }
  197. function SelectAll() {
  198. var bl = document.getElementById("chkAll").checked;
  199. var chkList = document.getElementsByName("chkuser");
  200. for (var i = 0; i < chkList.length; i++) {
  201. chkList[i].checked = bl;
  202. }
  203. }
  204. function FpData() {
  205. $.ligerDialog.waitting('号码分配中,请稍后...');
  206. var fptype = "0";
  207. var fpvalue = "0";
  208. var txmsg = "";
  209. if (document.getElementById("fptype1").checked) {
  210. fptype = "0";
  211. fpvalue = document.getElementById("txtFPValue1").value;
  212. if (fpvalue == "0") {
  213. $.ligerDialog.closeWaitting();
  214. $.ligerDialog.error('分配数量不能为0');
  215. return false;
  216. }
  217. txmsg = "确定按数量平均分配" + "【<font color=\"red\">" + fpvalue + "条</font>】" + "到坐席?";
  218. }
  219. if (document.getElementById("fptype2").checked) {
  220. fptype = "1";
  221. fpvalue = document.getElementById("txtFPValue2").value;
  222. if (fpvalue == "0") {
  223. $.ligerDialog.closeWaitting();
  224. $.ligerDialog.error('分配比例不能为0');
  225. return false;
  226. }
  227. txmsg = "确定按比例分配计划内的" + "【<font color=\"red\">" + fpvalue + "%</font>】" + "到坐席?";
  228. }
  229. if (document.getElementById("fptype3").checked) {
  230. fptype = "2";
  231. fpvalue = document.getElementById("txtFPValue3").value;
  232. if (fpvalue == "0") {
  233. $.ligerDialog.closeWaitting();
  234. $.ligerDialog.error('没有选择要分配的号码');
  235. return false;
  236. }
  237. txmsg = "确定按选择号码" + "【<font color=\"red\">" + fpvalue + "条</font>】" + "平均分配到坐席?";
  238. }
  239. var scount = 0;
  240. var arruser = "";
  241. var arrphone = "";
  242. var arrname = "";
  243. var sltList = document.getElementsByName("chkuser");
  244. for (var i = 0; i < sltList.length; i++) {
  245. if (sltList[i].checked) {
  246. scount++;
  247. var objid = sltList[i].id.replace("chkuserid_", "");
  248. arruser += objid + ",";
  249. var name = document.getElementById("spanuser_" + objid).innerHTML;
  250. arrname += name + ",";
  251. }
  252. }
  253. if (scount == 0) {
  254. $.ligerDialog.closeWaitting();
  255. $.ligerDialog.error('没有选择要分配任务的坐席');
  256. return false;
  257. }
  258. document.getElementById("txtArrUser").value = arruser;
  259. document.getElementById("txtArrName").value = arrname;
  260. document.getElementById("txtArrPhone").value = checkedCustomer.join(',')
  261. var id = document.getElementById("txtPlanId").value;
  262. if (id == "0") {
  263. $.ligerDialog.closeWaitting();
  264. $.ligerDialog.error('没有选择要分配的外呼计划');
  265. return false;
  266. }
  267. var key = escape(document.getElementById("txtKeywords").value);
  268. $.ligerDialog.confirm(txmsg, function (yes) {
  269. if (yes) {
  270. $("#form1").ajaxSubmit({
  271. beforeSubmit: function (formData, jqForm, options) {
  272. },
  273. success: function (data, textStatus) {
  274. if (data.msg == 1) {
  275. LoadUserList();
  276. LoadTelList();
  277. document.getElementById("txtArrPhone").value = "";
  278. document.getElementById("txtFPValue3").value = "0";
  279. checkedCustomer.length = 0;
  280. $.ligerDialog.success(data.info);
  281. $.ligerDialog.closeWaitting();
  282. } else {
  283. $.ligerDialog.closeWaitting();
  284. $.ligerDialog.error("分配失败:" + data.info);
  285. }
  286. },
  287. error: function (data, status, e) {
  288. $.ligerDialog.closeWaitting();
  289. $.ligerDialog.error("分配失败,错误信息:" + e);
  290. },
  291. url: "ajax/callplanfpset.ashx?action=fpdata&taskid=" + id + "&fptypepara=" + fptype + "&fpvalue=" + fpvalue + "&key=" + key,
  292. type: "post",
  293. dataType: "json"
  294. });
  295. }
  296. else {
  297. $.ligerDialog.closeWaitting();
  298. }
  299. });
  300. }
  301. function f_onCheckAllRow(checked) {
  302. for (var rowid in this.records) {
  303. if (checked)
  304. addCheckedCustomer(this.records[rowid]['_f_id']);
  305. else
  306. removeCheckedCustomer(this.records[rowid]['_f_id']);
  307. }
  308. f_getChecked();
  309. }
  310. var checkedCustomer = [];
  311. function findCheckedCustomer(CustomerID) {
  312. for (var i = 0; i < checkedCustomer.length; i++) {
  313. if (checkedCustomer[i] == CustomerID) return i;
  314. }
  315. return -1;
  316. }
  317. function addCheckedCustomer(CustomerID) {
  318. if (findCheckedCustomer(CustomerID) == -1)
  319. checkedCustomer.push(CustomerID);
  320. }
  321. function removeCheckedCustomer(CustomerID) {
  322. var i = findCheckedCustomer(CustomerID);
  323. if (i == -1) return;
  324. checkedCustomer.splice(i, 1);
  325. }
  326. function f_isChecked(rowdata) {
  327. if (findCheckedCustomer(rowdata._f_id) == -1)
  328. return false;
  329. return true;
  330. }
  331. function f_onCheckRow(checked, data) {
  332. if (checked) addCheckedCustomer(data._f_id);
  333. else removeCheckedCustomer(data._f_id);
  334. f_getChecked();
  335. }
  336. function f_getChecked() {
  337. document.getElementById("txtFPValue3").value = checkedCustomer.length;
  338. }
  339. </script>
  340. </head>
  341. <body>
  342. <form id="form1" runat="server">
  343. <asp:HiddenField ID="txtArrUser" runat="server" Value="" />
  344. <asp:HiddenField ID="txtArrName" runat="server" Value="" />
  345. <asp:HiddenField ID="txtArrPhone" runat="server" Value="" />
  346. <div id="divShowPlanList" style="display: none; position: absolute; z-index: 9999;
  347. top: 68px; left: 397px; width: 470px; height: 230px;">
  348. <div id="divPlanList" style="width: 470px; height: 200px;">
  349. </div>
  350. </div>
  351. <table id="tableMessage" cellpadding="3" cellspacing="3" border="0" style="width: 100%;">
  352. <tr>
  353. <td valign="top" style="width: 399px; padding: 0px 2px 5px 2px;">
  354. <div class="tools_box" style="height: 30px;">
  355. <div class="tools_bar">
  356. <div style="float: left; padding-top: 6px; padding-left: 1px; font-weight: bold;
  357. color: red;">
  358. <img src="../images/icon_site.gif" />&nbsp;外呼分配</div>
  359. </div>
  360. </div>
  361. <div id="divPlanInfo" style="background-color: White;">
  362. <table id="tableFP" class="form_table" style="width: 100%; height: 100%;">
  363. <colgroup>
  364. <col width="90" />
  365. <col />
  366. </colgroup>
  367. <tr>
  368. <th style="border-right: 1px dotted #cccccc;">
  369. <span>当前未分配:</span>
  370. </th>
  371. <td>
  372. <input id="txtAllCount" type="text" runat="server" onkeyup="this.value=this.value.replace(/[^\d]/g,'');if(this.value.split('.').length>2){this.value=this.value.split('.')[0]+'.'+this.value.split('.')[1]}"
  373. class="txtInput normal" value="0" readonly style="background-color: #cccccc;
  374. width: 40px; color: Red;" />&nbsp;条
  375. </td>
  376. </tr>
  377. <tr style="height: 200px;">
  378. <th style="border-right: 1px dotted #cccccc; border-top: 1px dotted #cccccc;">
  379. <span style="color: #ff0000; font-family: Wingdings;">v</span><span>分配坐席:</span>
  380. </th>
  381. <td style="border-top: 1px dotted #cccccc; padding: 0px;">
  382. <div id="divUserList" style="height: 200px; width: 100%; overflow-y: auto; scrollbar-face-color: #DBEBFE;
  383. scrollbar-shadow-color: #B8D6FA; scrollbar-highlight-color: #FFFFFF; scrollbar-3dlight-color: #DBEBFE;
  384. scrollbar-darkshadow-color: #458CE4; scrollbar-track-color: #FFFFFF; scrollbar-arrow-color: #458CE4;">
  385. <table border="0" cellpadding="0" cellspacing="0" width="100%" align='center'>
  386. <tr style="text-align: center;">
  387. <td style="height: 15px; width: 60px; background-color: #D5EDFE; border-left: 1px solid #CCCCCC;
  388. border-right: 1px solid #CCCCCC; border-top: 1px solid #CCCCCC; border-bottom: 1px solid #CCCCCC;
  389. padding: 1px; text-align: center;">
  390. <input id="chkAll" type="checkbox" name="chkuser" /><label for="chkAll">全选</label>
  391. </td>
  392. <td style="height: 15px; width: 90px; background-color: #D5EDFE; border-left: 1px solid #CCCCCC;
  393. border-right: 1px solid #CCCCCC; border-top: 1px solid #CCCCCC; border-bottom: 1px solid #CCCCCC;
  394. padding: 1px; text-align: center;">
  395. 用户工号
  396. </td>
  397. <td style="height: 15px; width: 90px; background-color: #D5EDFE; border-left: 1px solid #CCCCCC;
  398. border-right: 1px solid #CCCCCC; border-top: 1px solid #CCCCCC; border-bottom: 1px solid #CCCCCC;
  399. padding: 1px; text-align: center;">
  400. 用户名称
  401. </td>
  402. <td style="height: 15px; width: 90px; background-color: #D5EDFE; border-left: 1px solid #CCCCCC;
  403. border-right: 1px solid #CCCCCC; border-top: 1px solid #CCCCCC; border-bottom: 1px solid #CCCCCC;
  404. padding: 1px; text-align: center;">
  405. 未执行任务
  406. </td>
  407. </tr>
  408. <tr align="center" valign="middle" onmouseover="this.style.backgroundColor='#F6F6F6'"
  409. onmouseout="this.style.backgroundColor='#ffffff'" bgcolor="#ffffff">
  410. <td style="vertical-align: middle; border-top: 0px solid #CCCCCC; border-bottom: 1px solid #CCCCCC;
  411. border-left: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC; padding-left: 2px;
  412. height: 15px; padding-top: 1px; padding-bottom: 1px;">
  413. &nbsp;
  414. </td>
  415. <td style="vertical-align: middle; border-top: 0px solid #CCCCCC; border-bottom: 1px solid #CCCCCC;
  416. border-left: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC; padding-left: 2px;
  417. height: 15px; padding-top: 1px; padding-bottom: 1px;">
  418. &nbsp;
  419. </td>
  420. <td style="vertical-align: middle; border-top: 0px solid #CCCCCC; border-bottom: 1px solid #CCCCCC;
  421. border-left: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC; padding-left: 2px;
  422. height: 15px; padding-top: 1px; padding-bottom: 1px;">
  423. &nbsp;
  424. </td>
  425. <td style="vertical-align: middle; border-top: 0px solid #CCCCCC; border-bottom: 1px solid #CCCCCC;
  426. border-left: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC; padding-left: 2px;
  427. height: 15px; padding-top: 1px; padding-bottom: 1px;">
  428. &nbsp;
  429. </td>
  430. </tr>
  431. <tr align="center" valign="middle" onmouseover="this.style.backgroundColor='#F6F6F6'"
  432. onmouseout="this.style.backgroundColor='#ffffff'" bgcolor="#ffffff">
  433. <td style="vertical-align: middle; border-top: 0px solid #CCCCCC; border-bottom: 1px solid #CCCCCC;
  434. border-left: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC; padding-left: 2px;
  435. height: 15px; padding-top: 1px; padding-bottom: 1px;">
  436. &nbsp;
  437. </td>
  438. <td style="vertical-align: middle; border-top: 0px solid #CCCCCC; border-bottom: 1px solid #CCCCCC;
  439. border-left: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC; padding-left: 2px;
  440. height: 15px; padding-top: 1px; padding-bottom: 1px;">
  441. &nbsp;
  442. </td>
  443. <td style="vertical-align: middle; border-top: 0px solid #CCCCCC; border-bottom: 1px solid #CCCCCC;
  444. border-left: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC; padding-left: 2px;
  445. height: 15px; padding-top: 1px; padding-bottom: 1px;">
  446. &nbsp;
  447. </td>
  448. <td style="vertical-align: middle; border-top: 0px solid #CCCCCC; border-bottom: 1px solid #CCCCCC;
  449. border-left: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC; padding-left: 2px;
  450. height: 15px; padding-top: 1px; padding-bottom: 1px;">
  451. &nbsp;
  452. </td>
  453. </tr>
  454. <tr align="center" valign="middle" onmouseover="this.style.backgroundColor='#F6F6F6'"
  455. onmouseout="this.style.backgroundColor='#ffffff'" bgcolor="#ffffff">
  456. <td style="vertical-align: middle; border-top: 0px solid #CCCCCC; border-bottom: 1px solid #CCCCCC;
  457. border-left: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC; padding-left: 2px;
  458. height: 15px; padding-top: 1px; padding-bottom: 1px;">
  459. &nbsp;
  460. </td>
  461. <td style="vertical-align: middle; border-top: 0px solid #CCCCCC; border-bottom: 1px solid #CCCCCC;
  462. border-left: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC; padding-left: 2px;
  463. height: 15px; padding-top: 1px; padding-bottom: 1px;">
  464. &nbsp;
  465. </td>
  466. <td style="vertical-align: middle; border-top: 0px solid #CCCCCC; border-bottom: 1px solid #CCCCCC;
  467. border-left: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC; padding-left: 2px;
  468. height: 15px; padding-top: 1px; padding-bottom: 1px;">
  469. &nbsp;
  470. </td>
  471. <td style="vertical-align: middle; border-top: 0px solid #CCCCCC; border-bottom: 1px solid #CCCCCC;
  472. border-left: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC; padding-left: 2px;
  473. height: 15px; padding-top: 1px; padding-bottom: 1px;">
  474. &nbsp;
  475. </td>
  476. </tr>
  477. <tr align="center" valign="middle" onmouseover="this.style.backgroundColor='#F6F6F6'"
  478. onmouseout="this.style.backgroundColor='#ffffff'" bgcolor="#ffffff">
  479. <td style="vertical-align: middle; border-top: 0px solid #CCCCCC; border-bottom: 1px solid #CCCCCC;
  480. border-left: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC; padding-left: 2px;
  481. height: 15px; padding-top: 1px; padding-bottom: 1px;">
  482. &nbsp;
  483. </td>
  484. <td style="vertical-align: middle; border-top: 0px solid #CCCCCC; border-bottom: 1px solid #CCCCCC;
  485. border-left: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC; padding-left: 2px;
  486. height: 15px; padding-top: 1px; padding-bottom: 1px;">
  487. &nbsp;
  488. </td>
  489. <td style="vertical-align: middle; border-top: 0px solid #CCCCCC; border-bottom: 1px solid #CCCCCC;
  490. border-left: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC; padding-left: 2px;
  491. height: 15px; padding-top: 1px; padding-bottom: 1px;">
  492. &nbsp;
  493. </td>
  494. <td style="vertical-align: middle; border-top: 0px solid #CCCCCC; border-bottom: 1px solid #CCCCCC;
  495. border-left: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC; padding-left: 2px;
  496. height: 15px; padding-top: 1px; padding-bottom: 1px;">
  497. &nbsp;
  498. </td>
  499. </tr>
  500. <tr align="center" valign="middle" onmouseover="this.style.backgroundColor='#F6F6F6'"
  501. onmouseout="this.style.backgroundColor='#ffffff'" bgcolor="#ffffff">
  502. <td style="vertical-align: middle; border-top: 0px solid #CCCCCC; border-bottom: 1px solid #CCCCCC;
  503. border-left: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC; padding-left: 2px;
  504. height: 15px; padding-top: 1px; padding-bottom: 1px;">
  505. &nbsp;
  506. </td>
  507. <td style="vertical-align: middle; border-top: 0px solid #CCCCCC; border-bottom: 1px solid #CCCCCC;
  508. border-left: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC; padding-left: 2px;
  509. height: 15px; padding-top: 1px; padding-bottom: 1px;">
  510. &nbsp;
  511. </td>
  512. <td style="vertical-align: middle; border-top: 0px solid #CCCCCC; border-bottom: 1px solid #CCCCCC;
  513. border-left: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC; padding-left: 2px;
  514. height: 15px; padding-top: 1px; padding-bottom: 1px;">
  515. &nbsp;
  516. </td>
  517. <td style="vertical-align: middle; border-top: 0px solid #CCCCCC; border-bottom: 1px solid #CCCCCC;
  518. border-left: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC; padding-left: 2px;
  519. height: 15px; padding-top: 1px; padding-bottom: 1px;">
  520. &nbsp;
  521. </td>
  522. </tr>
  523. <tr align="center" valign="middle" onmouseover="this.style.backgroundColor='#F6F6F6'"
  524. onmouseout="this.style.backgroundColor='#ffffff'" bgcolor="#ffffff">
  525. <td style="vertical-align: middle; border-top: 0px solid #CCCCCC; border-bottom: 1px solid #CCCCCC;
  526. border-left: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC; padding-left: 2px;
  527. height: 15px; padding-top: 1px; padding-bottom: 1px;">
  528. &nbsp;
  529. </td>
  530. <td style="vertical-align: middle; border-top: 0px solid #CCCCCC; border-bottom: 1px solid #CCCCCC;
  531. border-left: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC; padding-left: 2px;
  532. height: 15px; padding-top: 1px; padding-bottom: 1px;">
  533. &nbsp;
  534. </td>
  535. <td style="vertical-align: middle; border-top: 0px solid #CCCCCC; border-bottom: 1px solid #CCCCCC;
  536. border-left: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC; padding-left: 2px;
  537. height: 15px; padding-top: 1px; padding-bottom: 1px;">
  538. &nbsp;
  539. </td>
  540. <td style="vertical-align: middle; border-top: 0px solid #CCCCCC; border-bottom: 1px solid #CCCCCC;
  541. border-left: 1px solid #CCCCCC; border-right: 1px solid #CCCCCC; padding-left: 2px;
  542. height: 15px; padding-top: 1px; padding-bottom: 1px;">
  543. &nbsp;
  544. </td>
  545. </tr>
  546. </table>
  547. </div>
  548. </td>
  549. </tr>
  550. <tr>
  551. <th style="border-right: 1px dotted #cccccc; border-top: 1px dotted #cccccc;">
  552. <span style="color: #ff0000; font-family: Wingdings;">v</span><span>分配策略:</span>
  553. </th>
  554. <td style="border-top: 1px dotted #cccccc; padding-left: 0px;">
  555. <div style="padding: 2px;">
  556. <input id="fptype1" checked type="radio" name="fptype" /><label id="lbfptype1" for="fptype1">按数量平均分配</label>
  557. &nbsp;&nbsp;<input id="txtFPValue1" type="text" runat="server" onkeyup="this.value=this.value.replace(/[^\d]/g,'');if(this.value.split('.').length>2){this.value=this.value.split('.')[0]+'.'+this.value.split('.')[1]}"
  558. class="txtInput normal" value="0" style="width: 40px;" />&nbsp;条</div>
  559. <div style="padding-left: 20px; color: blue; width: 100%; border-bottom: 1px dotted #cccccc;">
  560. (为选择的坐席分配录入数量的任务)
  561. </div>
  562. <div style="padding: 2px;">
  563. <input id="fptype2" type="radio" name="fptype" /><label id="lbfptype2" for="fptype2">按比例平均分配</label>
  564. &nbsp;&nbsp;<input id="txtFPValue2" type="text" runat="server" class="txtInput normal"
  565. value="100" onkeyup="this.value=this.value.replace(/[^\d]/g,'');if(this.value.split('.').length>2){this.value=this.value.split('.')[0]+'.'+this.value.split('.')[1]}"
  566. style="width: 40px;" />&nbsp;%</div>
  567. <div style="padding-left: 20px; color: blue; width: 100%; border-bottom: 1px dotted #cccccc;">
  568. (为选择的坐席平均分配一定比例的任务)
  569. </div>
  570. <div style="padding: 2px;">
  571. <input id="fptype3" type="radio" name="fptype" /><label id="lbfptype3" for="fptype3">按选择任务分配</label>
  572. &nbsp;&nbsp;<input id="txtFPValue3" type="text" runat="server" onkeyup="this.value=this.value.replace(/[^\d]/g,'');if(this.value.split('.').length>2){this.value=this.value.split('.')[0]+'.'+this.value.split('.')[1]}"
  573. class="txtInput normal" value="0" readonly style="background-color: #cccccc;
  574. width: 40px; color:Red;" />&nbsp;条</div>
  575. <div style="padding-left: 20px; color: blue;">
  576. (把选择的任务平均分配为选择的坐席)
  577. </div>
  578. </td>
  579. </tr>
  580. <tr>
  581. <td style="border-top: 1px dotted #cccccc;">
  582. &nbsp;
  583. </td>
  584. <td style="border-top: 1px dotted #cccccc;">
  585. <input id="btnSubmit" type="button" class="btnSubmit" onclick="FpData();" value="执行分配" />
  586. </td>
  587. </tr>
  588. <tr id="trnull">
  589. <td colspan="2">
  590. </td>
  591. </tr>
  592. </table>
  593. </div>
  594. </td>
  595. <td valign="top" style="padding: 0px 2px 5px 2px;">
  596. <div class="tools_box" style="height: 30px;">
  597. <div class="tools_bar">
  598. <div style="float: left; padding-top: 6px; padding-left: 1px; font-weight: bold;
  599. color: red;">
  600. <img src="../images/phone.png" style="height: 20px;" />&nbsp;<span id="spanPlanInfo"></span>外呼号码</div>
  601. </div>
  602. </div>
  603. <div class="tools_box">
  604. <asp:HiddenField ID="hdF_FunctionId" runat="server" />
  605. <asp:HiddenField ID="hdF_ModuleId" runat="server" />
  606. <div class="tools_bar">
  607. <div class="search_box" style="float: left;">
  608. <div style="float:left;">外呼计划:
  609. <asp:HiddenField ID="txtPlanId" runat="server" Value="0" />
  610. <asp:TextBox ID="txtPlanName" runat="server" CssClass="txtInput normal" onclick="SelectPlan();"
  611. onPropertyChange="ChangeKey();" Style="width: 100px;"></asp:TextBox>&nbsp;</div><div id="divField1" style="float:left; display:none;">过滤项:</div><div id="divField2" style="float:left; display:none;"><asp:TextBox
  612. ID="dropFieldList" runat="server" Style="width: 80px;"></asp:TextBox><asp:HiddenField
  613. ID="hiddFieldValue" runat="server" Value="" /></div><div style="float:left;">条件:<asp:TextBox
  614. ID="txtKeywords" runat="server" Style="width: 80px;" CssClass="txtInput"></asp:TextBox>&nbsp;
  615. <input id="btnSearch" type="button" value="搜 索" class="btnSearch" onclick="Init();" /></div>
  616. </div>
  617. </div>
  618. </div>
  619. <div id="divTelList">
  620. </div>
  621. </td>
  622. </tr>
  623. </table>
  624. </form>
  625. </body>
  626. </html>