tag.php 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304
  1. <?php
  2. require_once 'conn.php';
  3. checkLogin();
  4. $act = $_GET['act'] ?? '';
  5. $tagName = $_GET['tagName'] ?? '';
  6. if (empty($tagName)) {
  7. header('Location: customers.php');
  8. exit;
  9. }
  10. if ($act == 'postchk') {
  11. $keys = urlencode($_GET['Keys'] ?? '');
  12. $chkact = str_replace('t', '', $_POST['chkact'] ?? '');
  13. if (isset($_POST['chkbox'])) {
  14. $ids = implode(',', array_map('intval', (array)$_POST['chkbox']));
  15. $count = count($_POST['chkbox']);
  16. $sqlStr = "(" . $ids . ")";
  17. // 获取员工名称和代码
  18. $stmt = $conn->prepare("SELECT em_code, em_user FROM employee WHERE id = ?");
  19. $stmt->bind_param("i", $chkact);
  20. $stmt->execute();
  21. $result = $stmt->get_result();
  22. $employeeCode = '';
  23. $employeeName = '未知业务员';
  24. if ($row = $result->fetch_assoc()) {
  25. $employeeCode = $row['em_code'];
  26. $employeeName = $row['em_user'];
  27. }
  28. $stmt->close();
  29. // 检查是否有客户已经属于目标业务员
  30. $checkSql = "SELECT GROUP_CONCAT(id) as existing_ids FROM customer
  31. WHERE cs_belong = " . (int)$chkact . " AND id IN " . $sqlStr;
  32. $checkResult = $conn->query($checkSql);
  33. $existingIds = "";
  34. if ($checkResult && $checkRow = $checkResult->fetch_assoc()) {
  35. $existingIds = $checkRow['existing_ids'];
  36. }
  37. if (!empty($existingIds)) {
  38. // 有客户已经属于该业务员,显示错误信息
  39. echo "<script>alert('无法转移,客户ID:{$existingIds} 已经属于业务员【{$employeeName}】!');history.back();</script>";
  40. exit;
  41. }
  42. $updateStr = "UPDATE customer SET
  43. cs_updatetime='" . date('Y-m-d H:i:s') . "',
  44. cs_code=REPLACE(cs_code, '-', '/$employeeCode-'),
  45. cs_belong=" . (int)$chkact . ",
  46. cs_chain=CONCAT(cs_chain,'," . (int)$chkact . "')
  47. WHERE id IN " . $sqlStr;
  48. $deleteTag = "DELETE FROM tagtable WHERE customerId IN " . $sqlStr;
  49. $conn->query($updateStr);
  50. $conn->query($deleteTag);
  51. // 记录操作日志
  52. $action = "{$_SESSION['employee_name']} 从标签【{$tagName}】批量转移{$count}个客户({$ids})给业务员【{$employeeName}】";
  53. logAction($action);
  54. }
  55. header('Location: tag.php?tagName=' . urlencode($tagName));
  56. exit;
  57. }
  58. // Get all tags for the current employee
  59. $tagStr = '';
  60. $result = $conn->query("SELECT DISTINCT tagName FROM tagtable WHERE employeeId=" . $_SESSION['employee_id']);
  61. while ($row = $result->fetch_assoc()) {
  62. $tagStr .= "<span>" . htmlspecialcharsFix($row['tagName']) . "</span>,";
  63. }
  64. ?>
  65. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  66. <html xmlns="http://www.w3.org/1999/xhtml">
  67. <head>
  68. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  69. <title>管理区域</title>
  70. <link rel="stylesheet" href="css/common.css" type="text/css" />
  71. <link rel="stylesheet" href="css/alert.css" type="text/css" />
  72. <script src="system/js/jquery-1.7.2.min.js"></script>
  73. <script src="js/js.js"></script>
  74. <style>
  75. body {
  76. margin: 0;
  77. padding: 20px;
  78. background: #fff;
  79. }
  80. #man_zone {
  81. margin-left: 0;
  82. }
  83. </style>
  84. </head>
  85. <body class="clear">
  86. <?php // require_once 'panel.php'; ?>
  87. <div id="man_zone">
  88. <div class="fastSelect clear">
  89. <H1 class="taghead" contenteditable="true" data-originaltag="<?= htmlspecialcharsFix($tagName) ?>" data-em="<?= $_SESSION['employee_id'] ?>"><?= htmlspecialcharsFix($tagName) ?></H1>
  90. </div>
  91. <form id="form1" method="post" action="?act=postchk&tagName=<?= urlencode($tagName) ?>" onsubmit="return false">
  92. <div width="100%" border="0" cellpadding="3" cellspacing="1" class="table2">
  93. <div class="theader">
  94. <div class="col1"><input type="checkbox" name="chkall" id="chkall" onclick="chkboxall(this,'chkbox')"></div>
  95. <div class="col2">序号</div>
  96. <div class="col3">客户编号</div>
  97. <div class="col4">渠道来源</div>
  98. <div class="col5">区域</div>
  99. <div class="col7">跟进阶段</div>
  100. <div class="col8">录入时间</div>
  101. <div class="col10">操作</div>
  102. </div>
  103. <?php
  104. $sqlStr = "SELECT c.id, c.cs_code, c.cs_from, c.cs_country, c.cs_type, c.cs_deal, c.cs_addtime, c.cs_note,
  105. cc.id as contact_id, cc.contact_name,
  106. cc.tel_1, cc.tel_1_format, cc.tel_1_bu,
  107. cc.tel_2, cc.tel_2_format, cc.tel_2_bu,
  108. cc.tel_3, cc.tel_3_format, cc.tel_3_bu,
  109. cc.email_1, cc.email_1_bu,
  110. cc.email_2, cc.email_2_bu,
  111. cc.email_3, cc.email_3_bu,
  112. cc.whatsapp_1, cc.whatsapp_1_format, cc.whatsapp_1_bu,
  113. cc.whatsapp_2, cc.whatsapp_2_format, cc.whatsapp_2_bu,
  114. cc.whatsapp_3, cc.whatsapp_3_format, cc.whatsapp_3_bu,
  115. cc.wechat_1, cc.wechat_1_bu,
  116. cc.wechat_2, cc.wechat_2_bu,
  117. cc.wechat_3, cc.wechat_3_bu,
  118. cc.linkedin_1, cc.linkedin_1_bu,
  119. cc.linkedin_2, cc.linkedin_2_bu,
  120. cc.linkedin_3, cc.linkedin_3_bu,
  121. cc.facebook_1, cc.facebook_1_bu,
  122. cc.facebook_2, cc.facebook_2_bu,
  123. cc.facebook_3, cc.facebook_3_bu,
  124. cc.alibaba_1, cc.alibaba_1_bu,
  125. cc.alibaba_2, cc.alibaba_2_bu,
  126. cc.alibaba_3, cc.alibaba_3_bu
  127. FROM customer c
  128. LEFT JOIN customer_contact cc ON c.id = cc.customer_id
  129. WHERE c.cs_belong=" . $_SESSION['employee_id'] . "
  130. AND c.id IN (SELECT customerId FROM tagtable WHERE tagName='" . $conn->real_escape_string($tagName) . "')";
  131. $result = $conn->query($sqlStr);
  132. $tempNum = 0;
  133. while ($row = $result->fetch_assoc()) {
  134. $tempNum++;
  135. ?>
  136. <div class="tline">
  137. <div class="col1" align="center"><input type="checkbox" name="chkbox[]" value="<?= $row['id'] ?>"></div>
  138. <div class="col2"><?= $tempNum ?></div>
  139. <div class="col3 slidepanel"><?= htmlspecialcharsFix($row['cs_code']) ?></div>
  140. <div class="col4">
  141. <?php
  142. $qudaoResult = $conn->query("SELECT ch_name FROM qudao WHERE id=" . (int)$row['cs_from']);
  143. echo ($qudaoRow = $qudaoResult->fetch_assoc()) ? htmlspecialcharsFix($qudaoRow['ch_name']) : '未填写';
  144. ?>
  145. </div>
  146. <div class="col5">
  147. <?php
  148. $countryResult = $conn->query("SELECT countryName FROM country WHERE id=" . (int)$row['cs_country']);
  149. echo ($countryRow = $countryResult->fetch_assoc()) ? htmlspecialcharsFix($countryRow['countryName']) : '未填写';
  150. ?>
  151. </div>
  152. <div class="col7">
  153. <?php
  154. if ($row['cs_deal'] == 3) {
  155. echo "<span style='color:red;'>成交</span>";
  156. } elseif ($row['cs_deal'] == 2) {
  157. echo "明确需求";
  158. } elseif ($row['cs_deal'] == 1) {
  159. echo "背景调查";
  160. } else {
  161. echo "无响应";
  162. }
  163. ?>
  164. </div>
  165. <div class="col8"><?= $row['cs_addtime'] ?></div>
  166. <div class="col10"><a href="customerEdit.php?id=<?= $row['id'] ?>" class="ico_edit ico">修改</a></div>
  167. </div>
  168. <div class="notepanel clear">
  169. <div class="noteItem">联系方式</div>
  170. <div class="lx">
  171. <div class="tel">
  172. <?php if(!empty($row['tel_1'])): ?>
  173. <div><?= htmlspecialcharsFix($row['tel_1']) ?></div>
  174. <?php endif; ?>
  175. <?php if(!empty($row['tel_2'])): ?>
  176. <div><?= htmlspecialcharsFix($row['tel_2']) ?></div>
  177. <?php endif; ?>
  178. <?php if(!empty($row['tel_3'])): ?>
  179. <div><?= htmlspecialcharsFix($row['tel_3']) ?></div>
  180. <?php endif; ?>
  181. </div>
  182. <div class="mail">
  183. <?php if(!empty($row['email_1'])): ?>
  184. <div><a href="mailto:<?= htmlspecialcharsFix($row['email_1']) ?>"><?= htmlspecialcharsFix($row['email_1']) ?></a></div>
  185. <?php endif; ?>
  186. <?php if(!empty($row['email_2'])): ?>
  187. <div><a href="mailto:<?= htmlspecialcharsFix($row['email_2']) ?>"><?= htmlspecialcharsFix($row['email_2']) ?></a></div>
  188. <?php endif; ?>
  189. <?php if(!empty($row['email_3'])): ?>
  190. <div><a href="mailto:<?= htmlspecialcharsFix($row['email_3']) ?>"><?= htmlspecialcharsFix($row['email_3']) ?></a></div>
  191. <?php endif; ?>
  192. </div>
  193. <div class="whatsapp">
  194. <?php if(!empty($row['whatsapp_1'])): ?>
  195. <div><?= htmlspecialcharsFix($row['whatsapp_1']) ?></div>
  196. <?php endif; ?>
  197. <?php if(!empty($row['whatsapp_2'])): ?>
  198. <div><?= htmlspecialcharsFix($row['whatsapp_2']) ?></div>
  199. <?php endif; ?>
  200. <?php if(!empty($row['whatsapp_3'])): ?>
  201. <div><?= htmlspecialcharsFix($row['whatsapp_3']) ?></div>
  202. <?php endif; ?>
  203. </div>
  204. <div class="wechat">
  205. <?php if(!empty($row['wechat_1'])): ?>
  206. <div><?= htmlspecialcharsFix($row['wechat_1']) ?></div>
  207. <?php endif; ?>
  208. <?php if(!empty($row['wechat_2'])): ?>
  209. <div><?= htmlspecialcharsFix($row['wechat_2']) ?></div>
  210. <?php endif; ?>
  211. <?php if(!empty($row['wechat_3'])): ?>
  212. <div><?= htmlspecialcharsFix($row['wechat_3']) ?></div>
  213. <?php endif; ?>
  214. </div>
  215. <div class="linkedin">
  216. <?php if(!empty($row['linkedin_1'])): ?>
  217. <div><?= htmlspecialcharsFix($row['linkedin_1']) ?></div>
  218. <?php endif; ?>
  219. <?php if(!empty($row['linkedin_2'])): ?>
  220. <div><?= htmlspecialcharsFix($row['linkedin_2']) ?></div>
  221. <?php endif; ?>
  222. <?php if(!empty($row['linkedin_3'])): ?>
  223. <div><?= htmlspecialcharsFix($row['linkedin_3']) ?></div>
  224. <?php endif; ?>
  225. </div>
  226. <div class="facebook">
  227. <?php if(!empty($row['facebook_1'])): ?>
  228. <div><?= htmlspecialcharsFix($row['facebook_1']) ?></div>
  229. <?php endif; ?>
  230. <?php if(!empty($row['facebook_2'])): ?>
  231. <div><?= htmlspecialcharsFix($row['facebook_2']) ?></div>
  232. <?php endif; ?>
  233. <?php if(!empty($row['facebook_3'])): ?>
  234. <div><?= htmlspecialcharsFix($row['facebook_3']) ?></div>
  235. <?php endif; ?>
  236. </div>
  237. <div class="alibaba">
  238. <?php if(!empty($row['alibaba_1'])): ?>
  239. <div><?= htmlspecialcharsFix($row['alibaba_1']) ?></div>
  240. <?php endif; ?>
  241. <?php if(!empty($row['alibaba_2'])): ?>
  242. <div><?= htmlspecialcharsFix($row['alibaba_2']) ?></div>
  243. <?php endif; ?>
  244. <?php if(!empty($row['alibaba_3'])): ?>
  245. <div><?= htmlspecialcharsFix($row['alibaba_3']) ?></div>
  246. <?php endif; ?>
  247. </div>
  248. </div>
  249. <div class="noteItem2">备注</div>
  250. <div class="notecontent"><?= htmlUnCode($row['cs_note']) ?></div>
  251. <div class="coltag mytag" data-id="<?= $row['id'] ?>" data-em="<?= $_SESSION['employee_id'] ?>">
  252. <?php
  253. $tagStr1 = $tagStr;
  254. $tagResult = $conn->query("SELECT tagName FROM tagtable WHERE customerId=" . $row['id']);
  255. while ($tagRow = $tagResult->fetch_assoc()) {
  256. $tagStr1 = str_replace(
  257. "<span>" . htmlspecialcharsFix($tagRow['tagName']) . "</span>",
  258. "<span class=\"active\">" . htmlspecialcharsFix($tagRow['tagName']) . "</span>",
  259. $tagStr1
  260. );
  261. }
  262. echo $tagStr1;
  263. ?>
  264. </div>
  265. </div>
  266. <?php
  267. }
  268. ?>
  269. <div colspan="9">
  270. <div class="showpagebox">
  271. </div>
  272. <div class="postchkbox">
  273. <select id="chkact" name="chkact">
  274. <?php
  275. $result = $conn->query("SELECT id, em_code, em_user FROM employee ORDER BY em_code ASC");
  276. while ($row = $result->fetch_assoc()) {
  277. echo "<option value=\"t{$row['id']}\">转给" . htmlspecialcharsFix($row['em_user']) . "(" . htmlspecialcharsFix($row['em_code']) . ")</option>";
  278. }
  279. ?>
  280. </select>
  281. <input type="button" value="执行" onclick="postchk(1)" class="btn1">
  282. </div>
  283. </div>
  284. </div>
  285. </form>
  286. </div>
  287. </body>
  288. </html>