Browse Source

修改库存盘点页面中负责人选择功能

lwx_dev
erdanergou 3 years ago
parent
commit
8fa791c5fd
  1. 8
      src/main/java/com/dreamchaser/depository_manage/config/PortConfig.java
  2. 48
      src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java
  3. 24
      src/main/java/com/dreamchaser/depository_manage/controller/GroupController.java
  4. 4
      src/main/java/com/dreamchaser/depository_manage/controller/StockTakingController.java
  5. 44
      src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java
  6. 12
      src/main/java/com/dreamchaser/depository_manage/service/impl/QyWxOperationService.java
  7. 34
      src/main/java/com/dreamchaser/depository_manage/service/impl/StockTakingServiceImpl.java
  8. 10
      src/main/resources/application-test.yml
  9. 0
      target/classes/.restartTriggerFile
  10. 17
      target/classes/META-INF/spring-configuration-metadata.json
  11. 10
      target/classes/application-test.yml
  12. 86
      target/classes/static/css/inputTag.css
  13. 104
      target/classes/static/css/inputTag.less
  14. 152
      target/classes/static/js/lay-module/inputTag.js
  15. 7
      target/classes/static/lib/jquery-3.4.1/jquery.tagsinput.css
  16. 390
      target/classes/static/lib/jquery-3.4.1/jquery.tagsinput.js

8
src/main/java/com/dreamchaser/depository_manage/config/PortConfig.java

@ -24,10 +24,10 @@ import java.util.Map;
public class PortConfig { public class PortConfig {
// 部署数据库 depository NhE47edekBHxhjYk // 部署数据库 depository NhE47edekBHxhjYk
// 接口地址 // 接口地址
public static String external_url = "http://172.20.2.87:39168"; // public static String external_url = "http://172.20.2.87:39168";
// public static String external_url = "http://127.0.0.1:39168"; public static String external_url = "http://127.0.0.1:39168";
public static String external_url_6666 = "http://172.20.2.87:6666"; // public static String external_url_6666 = "http://172.20.2.87:6666";
// public static String external_url_6666 = "http://127.0.0.1:6666"; public static String external_url_6666 = "http://127.0.0.1:6666";
/** /**

48
src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java

@ -318,12 +318,12 @@ public class DepositoryRecordController {
List<UserByPort> departmentHeadByUsers = LinkInterfaceUtil.findDepartmentHeadByUser(userToken); List<UserByPort> departmentHeadByUsers = LinkInterfaceUtil.findDepartmentHeadByUser(userToken);
StringBuilder departmentHeadId = new StringBuilder(); StringBuilder departmentHeadId = new StringBuilder();
StringBuilder departMentHeadQyWxName = new StringBuilder(); StringBuilder departMentHeadQyWxName = new StringBuilder();
// for (int i = 0; i < departmentHeadByUsers.size(); i++) { for (int i = 0; i < departmentHeadByUsers.size(); i++) {
// departmentHeadId.append(departmentHeadByUsers.get(i).getId()).append(","); departmentHeadId.append(departmentHeadByUsers.get(i).getId()).append(",");
// departMentHeadQyWxName.append(departmentHeadByUsers.get(i).getWorkwechat()+","); departMentHeadQyWxName.append(departmentHeadByUsers.get(i).getWorkwechat()+",");
// } }
departmentHeadId.append("78").append(","); // departmentHeadId.append("78").append(",");
departMentHeadQyWxName.append("PangFuZhen").append(","); // departMentHeadQyWxName.append("PangFuZhen").append(",");
map.put("departmenthead", departmentHeadId.toString()); map.put("departmenthead", departmentHeadId.toString());
List<Integer> params = (List<Integer>) map.get("params"); List<Integer> params = (List<Integer>) map.get("params");
Integer integer = 0; Integer integer = 0;
@ -718,12 +718,12 @@ public class DepositoryRecordController {
String crypt = Md5.crypt(header); String crypt = Md5.crypt(header);
StringBuilder departmentHeadId = new StringBuilder(); StringBuilder departmentHeadId = new StringBuilder();
StringBuilder departMentHeadQyWxName = new StringBuilder(); StringBuilder departMentHeadQyWxName = new StringBuilder();
// for (int i = 0; i < departmentHeadByUsers.size(); i++) { for (int i = 0; i < departmentHeadByUsers.size(); i++) {
// departmentHeadId.append(departmentHeadByUsers.get(i).getId()).append(","); departmentHeadId.append(departmentHeadByUsers.get(i).getId()).append(",");
// departMentHeadQyWxName.append(departmentHeadByUsers.get(i).getWorkwechat()+","); departMentHeadQyWxName.append(departmentHeadByUsers.get(i).getWorkwechat()+",");
// } }
departmentHeadId.append("78").append(","); // departmentHeadId.append("78").append(",");
departMentHeadQyWxName.append("PangFuZhen").append(","); // departMentHeadQyWxName.append("PangFuZhen").append(",");
map.put("departmenthead", departmentHeadId.toString()); map.put("departmenthead", departmentHeadId.toString());
map.put("departMentHeadQyWxName", departMentHeadQyWxName.toString()); map.put("departMentHeadQyWxName", departMentHeadQyWxName.toString());
List<Integer> params = (List<Integer>) map.get("params"); List<Integer> params = (List<Integer>) map.get("params");
@ -959,12 +959,12 @@ public class DepositoryRecordController {
List<UserByPort> departmentHeadByUsers = LinkInterfaceUtil.findDepartmentHeadByUser(userToken); List<UserByPort> departmentHeadByUsers = LinkInterfaceUtil.findDepartmentHeadByUser(userToken);
StringBuilder departmentHeadId = new StringBuilder(); StringBuilder departmentHeadId = new StringBuilder();
StringBuilder departMentHeadQyWxName = new StringBuilder(); StringBuilder departMentHeadQyWxName = new StringBuilder();
// for (int i = 0; i < departmentHeadByUsers.size(); i++) { for (int i = 0; i < departmentHeadByUsers.size(); i++) {
// departmentHeadId.append(departmentHeadByUsers.get(i).getId()).append(","); departmentHeadId.append(departmentHeadByUsers.get(i).getId()).append(",");
// departMentHeadQyWxName.append(departmentHeadByUsers.get(i).getWorkwechat()+","); departMentHeadQyWxName.append(departmentHeadByUsers.get(i).getWorkwechat()+",");
// } }
departmentHeadId.append("78").append(","); // departmentHeadId.append("78").append(",");
departMentHeadQyWxName.append("PangFuZhen").append(","); // departMentHeadQyWxName.append("PangFuZhen").append(",");
map.put("departmenthead", departmentHeadId.toString()); map.put("departmenthead", departmentHeadId.toString());
// 待出库物料id // 待出库物料id
Integer mid = ObjectFormatUtil.toInteger(map.get("iid")); Integer mid = ObjectFormatUtil.toInteger(map.get("iid"));
@ -1100,12 +1100,12 @@ public class DepositoryRecordController {
List<UserByPort> departmentHeadByUsers = LinkInterfaceUtil.findDepartmentHeadByUser(userToken); List<UserByPort> departmentHeadByUsers = LinkInterfaceUtil.findDepartmentHeadByUser(userToken);
StringBuilder departmentHeadId = new StringBuilder(); StringBuilder departmentHeadId = new StringBuilder();
StringBuilder departMentHeadQyWxName = new StringBuilder(); StringBuilder departMentHeadQyWxName = new StringBuilder();
// for (int i = 0; i < departmentHeadByUsers.size(); i++) { for (int i = 0; i < departmentHeadByUsers.size(); i++) {
// departmentHeadId.append(departmentHeadByUsers.get(i).getId()).append(","); departmentHeadId.append(departmentHeadByUsers.get(i).getId()).append(",");
// departMentHeadQyWxName.append(departmentHeadByUsers.get(i).getWorkwechat()+","); departMentHeadQyWxName.append(departmentHeadByUsers.get(i).getWorkwechat()+",");
// } }
departmentHeadId.append("78").append(","); // departmentHeadId.append("78").append(",");
departMentHeadQyWxName.append("PangFuZhen").append(","); // departMentHeadQyWxName.append("PangFuZhen").append(",");
mainRecord.put("applicantId", userToken.getId()); mainRecord.put("applicantId", userToken.getId());
mainRecord.put("applyRemark", ""); mainRecord.put("applyRemark", "");
mainRecord.put("quantity", sumQuantity.toString()); mainRecord.put("quantity", sumQuantity.toString());

24
src/main/java/com/dreamchaser/depository_manage/controller/GroupController.java

@ -531,12 +531,12 @@ public class GroupController {
StringBuilder departmentHeadId = new StringBuilder(); StringBuilder departmentHeadId = new StringBuilder();
// 部门负责人企业微信user // 部门负责人企业微信user
StringBuilder departMentHeadQyWxName = new StringBuilder(); StringBuilder departMentHeadQyWxName = new StringBuilder();
// for (int i = 0; i < departmentHeadByUsers.size(); i++) { for (int i = 0; i < departmentHeadByUsers.size(); i++) {
// departmentHeadId.append(departmentHeadByUsers.get(i).getId()).append(","); departmentHeadId.append(departmentHeadByUsers.get(i).getId()).append(",");
// departMentHeadQyWxName.append(departmentHeadByUsers.get(i).getWorkwechat()+","); departMentHeadQyWxName.append(departmentHeadByUsers.get(i).getWorkwechat()+",");
// } }
departmentHeadId.append("78").append(","); // departmentHeadId.append("78").append(",");
departMentHeadQyWxName.append("PangFuZhen").append(","); // departMentHeadQyWxName.append("PangFuZhen").append(",");
map.put("departmenthead", departmentHeadId.toString()); map.put("departmenthead", departmentHeadId.toString());
// 获取当前提交数 // 获取当前提交数
List<String> params = (List<String>) map.get("params"); List<String> params = (List<String>) map.get("params");
@ -685,12 +685,12 @@ public class GroupController {
StringBuilder departmentHeadId = new StringBuilder(); StringBuilder departmentHeadId = new StringBuilder();
// 部门负责人企业微信user // 部门负责人企业微信user
StringBuilder departMentHeadQyWxName = new StringBuilder(); StringBuilder departMentHeadQyWxName = new StringBuilder();
// for (int i = 0; i < departmentHeadByUsers.size(); i++) { for (int i = 0; i < departmentHeadByUsers.size(); i++) {
// departmentHeadId.append(departmentHeadByUsers.get(i).getId()).append(","); departmentHeadId.append(departmentHeadByUsers.get(i).getId()).append(",");
// departMentHeadQyWxName.append(departmentHeadByUsers.get(i).getWorkwechat()+","); departMentHeadQyWxName.append(departmentHeadByUsers.get(i).getWorkwechat()+",");
// } }
departmentHeadId.append("78").append(","); // departmentHeadId.append("78").append(",");
departMentHeadQyWxName.append("PangFuZhen").append(","); // departMentHeadQyWxName.append("PangFuZhen").append(",");
map.put("departmenthead", departmentHeadId.toString()); map.put("departmenthead", departmentHeadId.toString());
// 执行结果 // 执行结果

4
src/main/java/com/dreamchaser/depository_manage/controller/StockTakingController.java

@ -74,9 +74,9 @@ public class StockTakingController {
continue; continue;
} }
UserByPort departmentManager = PortConfig.findUserByPortByNumber(s); UserByPort departmentManager = PortConfig.findUserByPortByNumber(s);
// QyWxDepartmentManager.append(departmentManager.getWorkwechat()+","); QyWxDepartmentManager.append(departmentManager.getWorkwechat()+",");
} }
QyWxDepartmentManager.append("PangFuZhen").append(","); // QyWxDepartmentManager.append("PangFuZhen").append(",");
map.put("state",3); map.put("state",3);
map.put("departmentManagerState",3); map.put("departmentManagerState",3);
map.remove("departmentManagerId"); map.remove("departmentManagerId");

44
src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java

@ -1586,9 +1586,9 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
for (int i = 0; i < depositoryManagers.length; i++) { for (int i = 0; i < depositoryManagers.length; i++) {
Integer uid = ObjectFormatUtil.toInteger(depositoryManagers[i]); Integer uid = ObjectFormatUtil.toInteger(depositoryManagers[i]);
UserByPort depositoryManager = LinkInterfaceUtil.FindUserById(uid, userByPort); UserByPort depositoryManager = LinkInterfaceUtil.FindUserById(uid, userByPort);
// depositoryManagerByQyWx.append(depositoryManager.getWorkwechat()+","); depositoryManagerByQyWx.append(depositoryManager.getWorkwechat()+",");
} }
depositoryManagerByQyWx.append("PangFuZhen,"); // depositoryManagerByQyWx.append("PangFuZhen,");
JSONObject jsonObject = qyWxOperationService.sendCcMessageToUsers(depositoryManagerByQyWx.toString(), record.getId(), userAgent); JSONObject jsonObject = qyWxOperationService.sendCcMessageToUsers(depositoryManagerByQyWx.toString(), record.getId(), userAgent);
// 删除redis中本订单 // 删除redis中本订单
@ -1708,9 +1708,9 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
// 更新redis中用户记录 // 更新redis中用户记录
redisTemplate.opsForHash().putAll("user:" + integer, userRecord); redisTemplate.opsForHash().putAll("user:" + integer, userRecord);
minRecordManage.append(integer).append(","); minRecordManage.append(integer).append(",");
// QyWxUid.append(manager.getWorkwechat()+","); QyWxUid.append(manager.getWorkwechat()+",");
} }
QyWxUid.append("PangFuZhen,"); // QyWxUid.append("PangFuZhen,");
minRecord.put("manager", minRecordManage.toString()); minRecord.put("manager", minRecordManage.toString());
// 添加子订单到redis中 // 添加子订单到redis中
redisTemplate.opsForHash().putAll(minRecordKey, minRecord); redisTemplate.opsForHash().putAll(minRecordKey, minRecord);
@ -1731,9 +1731,9 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
StringBuilder QyWxUid = new StringBuilder(); StringBuilder QyWxUid = new StringBuilder();
for (Integer value : userIdByDid) { for (Integer value : userIdByDid) {
UserByPort manager = LinkInterfaceUtil.FindUserById(value, userByPort); UserByPort manager = LinkInterfaceUtil.FindUserById(value, userByPort);
// QyWxUid.append(manager.getWorkwechat()+","); QyWxUid.append(manager.getWorkwechat()+",");
} }
QyWxUid.append("PangFuZhen,"); // QyWxUid.append("PangFuZhen,");
// 根据仓库向仓库管理员发送审批 // 根据仓库向仓库管理员发送审批
JSONObject jsonObject = qyWxOperationService.sendOutApprovalTemplateOut(userAgent, userByPort, ObjectFormatUtil.toInteger(mainId), minIdList, QyWxUid.toString()); JSONObject jsonObject = qyWxOperationService.sendOutApprovalTemplateOut(userAgent, userByPort, ObjectFormatUtil.toInteger(mainId), minIdList, QyWxUid.toString());
String sp_no = jsonObject.getString("sp_no"); String sp_no = jsonObject.getString("sp_no");
@ -1789,9 +1789,9 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
StringBuilder QyWxUid = new StringBuilder(); StringBuilder QyWxUid = new StringBuilder();
for (int i = 0; i < departmentHeadByUser.size(); i++) { for (int i = 0; i < departmentHeadByUser.size(); i++) {
depositoryManager.append(departmentHeadByUser.get(i).getId() + ","); depositoryManager.append(departmentHeadByUser.get(i).getId() + ",");
// QyWxUid.append(departmentHeadByUser.get(i).getWorkwechat()+","); QyWxUid.append(departmentHeadByUser.get(i).getWorkwechat()+",");
} }
QyWxUid.append("PangFuZhen" + ","); // QyWxUid.append("PangFuZhen" + ",");
map.put("depositoryManager", depositoryManager.toString()); map.put("depositoryManager", depositoryManager.toString());
} else { } else {
// 如果点击的是驳回 // 如果点击的是驳回
@ -1935,9 +1935,9 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
StringBuilder QyWxUid = new StringBuilder(); StringBuilder QyWxUid = new StringBuilder();
for (int i = 0; i < departmentHeadByUser.size(); i++) { for (int i = 0; i < departmentHeadByUser.size(); i++) {
depositoryManager.append(departmentHeadByUser.get(i).getId() + ","); depositoryManager.append(departmentHeadByUser.get(i).getId() + ",");
// QyWxUid.append(departmentHeadByUser.get(i).getWorkwechat() + ","); QyWxUid.append(departmentHeadByUser.get(i).getWorkwechat() + ",");
} }
QyWxUid.append("PangFuZhen,"); // QyWxUid.append("PangFuZhen,");
map.put("depositoryManager", depositoryManager.toString()); map.put("depositoryManager", depositoryManager.toString());
// 向仓储中心负责人发送新的消息 // 向仓储中心负责人发送新的消息
new Thread(new Runnable() { new Thread(new Runnable() {
@ -1995,7 +1995,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
QyWxUid.append(userByPort.getWorkwechat()).append(","); QyWxUid.append(userByPort.getWorkwechat()).append(",");
} }
String s = QyWxUid.toString(); String s = QyWxUid.toString();
s = "PangFuZhen,"; // s = "PangFuZhen,";
qyWxOperationService.sendMessageForOtherUserByCard(ObjectFormatUtil.toInteger(id), s, userAgent, 1); qyWxOperationService.sendMessageForOtherUserByCard(ObjectFormatUtil.toInteger(id), s, userAgent, 1);
} }
}).start(); }).start();
@ -2078,9 +2078,9 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
redisTemplate.opsForHash().putAll("user:" + integer, userRecord); redisTemplate.opsForHash().putAll("user:" + integer, userRecord);
minRecordManage.append(integer).append(","); minRecordManage.append(integer).append(",");
UserByPort userByPort = LinkInterfaceUtil.FindUserById(integer, userToken); UserByPort userByPort = LinkInterfaceUtil.FindUserById(integer, userToken);
// QyWxUid.append(userByPort.getWorkwechat() + ","); QyWxUid.append(userByPort.getWorkwechat() + ",");
} }
QyWxUid.append("PangFuZhen,"); // QyWxUid.append("PangFuZhen,");
minRecord.put("manager", minRecordManage.toString()); minRecord.put("manager", minRecordManage.toString());
// 添加子订单到redis中 // 添加子订单到redis中
redisTemplate.opsForHash().putAll(minRecordKey, minRecord); redisTemplate.opsForHash().putAll(minRecordKey, minRecord);
@ -2103,9 +2103,9 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
StringBuilder QyWxUid = new StringBuilder(); StringBuilder QyWxUid = new StringBuilder();
for (int j = 0; j < userIdByDid.size(); j++) { for (int j = 0; j < userIdByDid.size(); j++) {
UserByPort manager = LinkInterfaceUtil.FindUserById(userIdByDid.get(j), userToken); UserByPort manager = LinkInterfaceUtil.FindUserById(userIdByDid.get(j), userToken);
// QyWxUid.append(manager.getWorkwechat()+","); QyWxUid.append(manager.getWorkwechat()+",");
} }
QyWxUid.append("PangFuZhen,"); // QyWxUid.append("PangFuZhen,");
// 根据仓库向仓库管理员发送审批 // 根据仓库向仓库管理员发送审批
JSONObject jsonObject = qyWxOperationService.sendOutApprovalTemplateOut(userAgent, userToken, ObjectFormatUtil.toInteger(id), minIdList, QyWxUid.toString()); JSONObject jsonObject = qyWxOperationService.sendOutApprovalTemplateOut(userAgent, userToken, ObjectFormatUtil.toInteger(id), minIdList, QyWxUid.toString());
String sp_no = jsonObject.getString("sp_no"); String sp_no = jsonObject.getString("sp_no");
@ -2140,7 +2140,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
QyWxUid.append(userByPort.getWorkwechat()).append(","); QyWxUid.append(userByPort.getWorkwechat()).append(",");
} }
String s = QyWxUid.toString(); String s = QyWxUid.toString();
s = "PangFuZhen,"; // s = "PangFuZhen,";
qyWxOperationService.sendMessageForOtherUserByCard(ObjectFormatUtil.toInteger(id), s, userAgent, 1); qyWxOperationService.sendMessageForOtherUserByCard(ObjectFormatUtil.toInteger(id), s, userAgent, 1);
} }
}).start(); }).start();
@ -2221,9 +2221,9 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
StringBuilder QyWxUid = new StringBuilder(); StringBuilder QyWxUid = new StringBuilder();
for (int i = 0; i < departmentHeadByUser.size(); i++) { for (int i = 0; i < departmentHeadByUser.size(); i++) {
depositoryManager.append(departmentHeadByUser.get(i).getId() + ","); depositoryManager.append(departmentHeadByUser.get(i).getId() + ",");
// QyWxUid.append(departmentHeadByUser.get(i).getWorkwechat()+","); QyWxUid.append(departmentHeadByUser.get(i).getWorkwechat()+",");
} }
QyWxUid.append("PangFuZhen" + ","); // QyWxUid.append("PangFuZhen" + ",");
map.put("depositoryManager", depositoryManager.toString()); map.put("depositoryManager", depositoryManager.toString());
// 向仓储中心负责人发送新的消息 // 向仓储中心负责人发送新的消息
JSONObject jsonObject = qyWxOperationService.sendQyWxToApplicationOutMessage(QyWxUid.toString(), ObjectFormatUtil.toInteger(outId), false, userAgent); JSONObject jsonObject = qyWxOperationService.sendQyWxToApplicationOutMessage(QyWxUid.toString(), ObjectFormatUtil.toInteger(outId), false, userAgent);
@ -2314,9 +2314,9 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
// 更新redis中用户记录 // 更新redis中用户记录
redisTemplate.opsForHash().putAll("user:" + userIdByDid.get(j), userRecord); redisTemplate.opsForHash().putAll("user:" + userIdByDid.get(j), userRecord);
minRecordManage.append(userIdByDid.get(j)).append(","); minRecordManage.append(userIdByDid.get(j)).append(",");
// QyWxUid.append(manager.getWorkwechat()+","); QyWxUid.append(manager.getWorkwechat()+",");
} }
QyWxUid.append("PangFuZhen,"); // QyWxUid.append("PangFuZhen,");
minRecord.put("manager", minRecordManage.toString()); minRecord.put("manager", minRecordManage.toString());
// 添加子订单到redis中 // 添加子订单到redis中
redisTemplate.opsForHash().putAll(minRecordKey, minRecord); redisTemplate.opsForHash().putAll(minRecordKey, minRecord);
@ -2337,9 +2337,9 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
StringBuilder QyWxUid = new StringBuilder(); StringBuilder QyWxUid = new StringBuilder();
for (int j = 0; j < userIdByDid.size(); j++) { for (int j = 0; j < userIdByDid.size(); j++) {
UserByPort manager = LinkInterfaceUtil.FindUserById(userIdByDid.get(j), userByPort); UserByPort manager = LinkInterfaceUtil.FindUserById(userIdByDid.get(j), userByPort);
// QyWxUid.append(manager.getWorkwechat()+","); QyWxUid.append(manager.getWorkwechat()+",");
} }
QyWxUid.append("PangFuZhen,"); // QyWxUid.append("PangFuZhen,");
// 根据仓库向仓库管理员发送审批 // 根据仓库向仓库管理员发送审批
JSONObject jsonObject = qyWxOperationService.sendOutApprovalTemplateOut(userAgent, userByPort, ObjectFormatUtil.toInteger(outId), minIdList, QyWxUid.toString()); JSONObject jsonObject = qyWxOperationService.sendOutApprovalTemplateOut(userAgent, userByPort, ObjectFormatUtil.toInteger(outId), minIdList, QyWxUid.toString());
String sp_no = jsonObject.getString("sp_no"); String sp_no = jsonObject.getString("sp_no");

12
src/main/java/com/dreamchaser/depository_manage/service/impl/QyWxOperationService.java

@ -2054,13 +2054,13 @@ public class QyWxOperationService {
// 获取处理的仓储负责人 // 获取处理的仓储负责人
List<String> notifyerList = new ArrayList<>(); List<String> notifyerList = new ArrayList<>();
// // 查询负责人 // // 查询负责人
// String user = userToken.getWorkwechat(); String user = userToken.getWorkwechat();
// if (user == null || "".equals(user)) { if (user == null || "".equals(user)) {
// user = userToken.getWechat(); user = userToken.getWechat();
// } }
// notifyerList.add(user); // notifyerList.add(user);
workwechat = "PangFuZhen"; // workwechat = "PangFuZhen";
notifyerList.add(workwechat); // notifyerList.add(workwechat);
approvalTemplate.setNotifyer(notifyerList); approvalTemplate.setNotifyer(notifyerList);
//抄送方式:1-提单时抄送(默认值); 2-单据通过后抄送;3-提单和单据通过后抄送。仅use_template_approver为0时生效。 //抄送方式:1-提单时抄送(默认值); 2-单据通过后抄送;3-提单和单据通过后抄送。仅use_template_approver为0时生效。

34
src/main/java/com/dreamchaser/depository_manage/service/impl/StockTakingServiceImpl.java

@ -485,9 +485,9 @@ public class StockTakingServiceImpl implements StockTakingService {
public void run() { public void run() {
// 获取盘点人员 // 获取盘点人员
UserByPort originator = LinkInterfaceUtil.FindUserById(mainRecord.getOriginator(), userToken); UserByPort originator = LinkInterfaceUtil.FindUserById(mainRecord.getOriginator(), userToken);
// String workwechat = originator.getWorkwechat(); String workwechat = originator.getWorkwechat();
JSONObject jsonObject = qyWxOperationService.sendQyWxToStockTakingMessage("PangFuZhen,", mainId, normalMinId, userAgent); // JSONObject jsonObject = qyWxOperationService.sendQyWxToStockTakingMessage("PangFuZhen,", mainId, normalMinId, userAgent);
// JSONObject jsonObject = qyWxOperationService.sendQyWxToStockTakingMessage(workwechat, mainId, normalMinId, userAgent); JSONObject jsonObject = qyWxOperationService.sendQyWxToStockTakingMessage(workwechat, mainId, normalMinId, userAgent);
// 将当前返回结果保存到redis中 // 将当前返回结果保存到redis中
if (jsonObject != null) { if (jsonObject != null) {
Map<String, Object> QyWxMessageMap = new HashMap<>(); Map<String, Object> QyWxMessageMap = new HashMap<>();
@ -545,7 +545,7 @@ public class StockTakingServiceImpl implements StockTakingService {
QyWxUid.append(userByPort.getWorkwechat()).append(","); QyWxUid.append(userByPort.getWorkwechat()).append(",");
} }
String s = QyWxUid.toString(); String s = QyWxUid.toString();
s = "PangFuZhen,"; // s = "PangFuZhen,";
qyWxOperationService.sendMessageForOtherUserByCard(ObjectFormatUtil.toInteger(mainId),s,userAgent,2); qyWxOperationService.sendMessageForOtherUserByCard(ObjectFormatUtil.toInteger(mainId),s,userAgent,2);
} }
}).start(); }).start();
@ -911,7 +911,7 @@ public class StockTakingServiceImpl implements StockTakingService {
@Override @Override
public void run() { public void run() {
String s = QyWxUid.toString(); String s = QyWxUid.toString();
s = "PangFuZhen,"; // s = "PangFuZhen,";
JSONObject jsonObject = qyWxOperationService.sendCcStockTakingMessageToHead(s, map, userToken, finalMainRecord, userAgent); JSONObject jsonObject = qyWxOperationService.sendCcStockTakingMessageToHead(s, map, userToken, finalMainRecord, userAgent);
} }
}).start(); }).start();
@ -1339,7 +1339,7 @@ public class StockTakingServiceImpl implements StockTakingService {
QyWxUid.append(userByPort1.getWorkwechat()).append(","); QyWxUid.append(userByPort1.getWorkwechat()).append(",");
} }
String s = QyWxUid.toString(); String s = QyWxUid.toString();
s = "PangFuZhen,"; // s = "PangFuZhen,";
JSONObject jsonObject = qyWxOperationService.sendCcStockTakingMessageToHead(s, map, null, finalMainRecord, userAgent); JSONObject jsonObject = qyWxOperationService.sendCcStockTakingMessageToHead(s, map, null, finalMainRecord, userAgent);
} }
}).start(); }).start();
@ -1544,9 +1544,9 @@ public class StockTakingServiceImpl implements StockTakingService {
public void run() { public void run() {
// 获取盘点人员 // 获取盘点人员
UserByPort originator = LinkInterfaceUtil.FindUserById(mainRecord.getOriginator(), null); UserByPort originator = LinkInterfaceUtil.FindUserById(mainRecord.getOriginator(), null);
// String workwechat = originator.getWorkwechat(); String workwechat = originator.getWorkwechat();
JSONObject jsonObject = qyWxOperationService.sendQyWxToStockTakingMessage("PangFuZhen,", ObjectFormatUtil.toInteger(mainId), normalMinId, userAgent); // JSONObject jsonObject = qyWxOperationService.sendQyWxToStockTakingMessage("PangFuZhen,", ObjectFormatUtil.toInteger(mainId), normalMinId, userAgent);
// JSONObject jsonObject = qyWxOperationService.sendQyWxToStockTakingMessage(workwechat, ObjectFormatUtil.toInteger(mainId), normalMinId, userAgent); JSONObject jsonObject = qyWxOperationService.sendQyWxToStockTakingMessage(workwechat, ObjectFormatUtil.toInteger(mainId), normalMinId, userAgent);
// 将当前返回结果保存到redis中 // 将当前返回结果保存到redis中
if (jsonObject != null) { if (jsonObject != null) {
Map<String, Object> QyWxMessageMap = new HashMap<>(); Map<String, Object> QyWxMessageMap = new HashMap<>();
@ -2431,8 +2431,8 @@ public class StockTakingServiceImpl implements StockTakingService {
map.put("minIds", minIds); map.put("minIds", minIds);
StringBuilder departMentHeadQyWxName = new StringBuilder(); StringBuilder departMentHeadQyWxName = new StringBuilder();
UserByPort userByPort = LinkInterfaceUtil.FindUserById(ObjectFormatUtil.toInteger(originator), userToken); UserByPort userByPort = LinkInterfaceUtil.FindUserById(ObjectFormatUtil.toInteger(originator), userToken);
// departMentHeadQyWxName.append(userByPort.getWorkwechat()+","); departMentHeadQyWxName.append(userByPort.getWorkwechat()+",");
departMentHeadQyWxName.append("PangFuZhen,"); // departMentHeadQyWxName.append("PangFuZhen,");
JSONObject jsonObject = qyWxOperationService.sendCcStockTakingTransferMessageToHead(departMentHeadQyWxName.toString(), map, userToken, finalMainRecord, userAgent); JSONObject jsonObject = qyWxOperationService.sendCcStockTakingTransferMessageToHead(departMentHeadQyWxName.toString(), map, userToken, finalMainRecord, userAgent);
} }
}).start(); }).start();
@ -2635,9 +2635,9 @@ public class StockTakingServiceImpl implements StockTakingService {
public void run() { public void run() {
// 获取盘点人员 // 获取盘点人员
UserByPort originator = LinkInterfaceUtil.FindUserById(mainRecord.getOriginator(), null); UserByPort originator = LinkInterfaceUtil.FindUserById(mainRecord.getOriginator(), null);
// String workwechat = originator.getWorkwechat(); String workwechat = originator.getWorkwechat();
JSONObject jsonObject = qyWxOperationService.sendQyWxToStockTakingMessage("PangFuZhen,", mainId, normalMinIds, userAgent); // JSONObject jsonObject = qyWxOperationService.sendQyWxToStockTakingMessage("PangFuZhen,", mainId, normalMinIds, userAgent);
// JSONObject jsonObject = qyWxOperationService.sendQyWxToStockTakingMessage(workwechat, mainId, normalMinIds, userAgent); JSONObject jsonObject = qyWxOperationService.sendQyWxToStockTakingMessage(workwechat, mainId, normalMinIds, userAgent);
if (jsonObject != null) { if (jsonObject != null) {
// 将当前返回结果保存到redis中 // 将当前返回结果保存到redis中
Map<String, Object> QyWxMessageMap = new HashMap<>(); Map<String, Object> QyWxMessageMap = new HashMap<>();
@ -2659,9 +2659,9 @@ public class StockTakingServiceImpl implements StockTakingService {
public void run() { public void run() {
// 获取盘点人员 // 获取盘点人员
UserByPort originator = LinkInterfaceUtil.FindUserById(mainRecord.getOriginator(), null); UserByPort originator = LinkInterfaceUtil.FindUserById(mainRecord.getOriginator(), null);
// String workwechat = originator.getWorkwechat(); String workwechat = originator.getWorkwechat();
qyWxOperationService.sendStockTakingErrMessageToHead("PangFuZhen,", errIds, mainRecord, null, userAgent); // qyWxOperationService.sendStockTakingErrMessageToHead("PangFuZhen,", errIds, mainRecord, null, userAgent);
// qyWxOperationService.sendStockTakingErrMessageToHead(workwechat, errIds, mainRecord, null, userAgent); qyWxOperationService.sendStockTakingErrMessageToHead(workwechat, errIds, mainRecord, null, userAgent);
} }
}).start(); }).start();
} }

10
src/main/resources/application-test.yml

@ -17,8 +17,8 @@ spring:
##数据库设置 ##数据库设置
datasource: datasource:
username: root username: depository
password: root password: NhE47edekBHxhjYk
url: jdbc:mysql://localhost:3306/depository?serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8 url: jdbc:mysql://localhost:3306/depository?serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8
driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource type: com.alibaba.druid.pool.DruidDataSource
@ -79,9 +79,9 @@ mybatis:
log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl
log-prefix: mapper. log-prefix: mapper.
mybatis-plus: #mybatis-plus:
configuration: # configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
file: file:
uploadPath: D:/upLoad uploadPath: D:/upLoad

0
target/classes/.restartTriggerFile

17
target/classes/META-INF/spring-configuration-metadata.json

@ -1,17 +0,0 @@
{
"groups": [
{
"name": "file",
"type": "com.dreamchaser.depository_manage.config.FileConfig",
"sourceType": "com.dreamchaser.depository_manage.config.FileConfig"
}
],
"properties": [
{
"name": "file.upload-path",
"type": "java.lang.String",
"sourceType": "com.dreamchaser.depository_manage.config.FileConfig"
}
],
"hints": []
}

10
target/classes/application-test.yml

@ -17,8 +17,8 @@ spring:
##数据库设置 ##数据库设置
datasource: datasource:
username: root username: depository
password: root password: NhE47edekBHxhjYk
url: jdbc:mysql://localhost:3306/depository?serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8 url: jdbc:mysql://localhost:3306/depository?serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8
driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource type: com.alibaba.druid.pool.DruidDataSource
@ -79,9 +79,9 @@ mybatis:
log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl
log-prefix: mapper. log-prefix: mapper.
mybatis-plus: #mybatis-plus:
configuration: # configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
file: file:
uploadPath: D:/upLoad uploadPath: D:/upLoad

86
target/classes/static/css/inputTag.css

@ -0,0 +1,86 @@
@keyframes fariy-fadein {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
.fairy-tag-container {
width: 100%;
height: 38px;
border: 1px solid #e6e6e6;
background-color: #ffffff;
}
.fairy-tag-container:hover {
border-color: #d2d2d2;
}
.fairy-tag-container span.fairy-tag {
float: left;
font-size: 13px;
padding: 5px 8px;
margin-right: 5px;
margin-bottom: 5px;
border-radius: 2px;
line-height: 16px;
}
.fairy-tag-container span.fairy-tag a {
font-size: 11px;
font-weight: bolder;
color: #ffffff;
text-decoration: none;
margin-left: 6px;
}
.fairy-tag-container span.fairy-tag a:hover {
cursor: pointer;
}
.fairy-tag-container span.fairy-bg-red {
background-color: #FF5722;
}
.fairy-tag-container span.fairy-bg-orange {
background-color: #FFB800;
}
.fairy-tag-container span.fairy-bg-green {
background-color: #009688;
}
.fairy-tag-container span.fairy-bg-cyan {
background-color: #2F4056;
}
.fairy-tag-container span.fairy-bg-blue {
background-color: #1E9FFF;
}
.fairy-tag-container span.fairy-bg-black {
background-color: #393D49;
}
.fairy-tag-container span.fairy-bg-red,
.fairy-tag-container span.fairy-bg-orange,
.fairy-tag-container span.fairy-bg-green,
.fairy-tag-container span.fairy-bg-cyan,
.fairy-tag-container span.fairy-bg-blue,
.fairy-tag-container span.fairy-bg-black {
color: #ffffff;
}
.fairy-tag-container .fairy-anim-fadein {
animation: fariy-fadein 0.3s both;
}
.fairy-tag-container .fairy-tag-input[type='text'] {
width: 80px;
font-size: 13px;
padding: 6px;
background: transparent;
border: 0 none;
outline: 0;
}
.fairy-tag-container .fairy-tag-input[type='text']:focus::-webkit-input-placeholder {
color: transparent;
}
.fairy-tag-container .fairy-tag-input[type='text']:focus:-moz-placeholder {
color: transparent;
}
.fairy-tag-container .fairy-tag-input[type='text']:focus:-moz-placeholder {
color: transparent;
}
.fairy-tag-container .fairy-tag-input[type='text']:focus:-ms-input-placeholder {
color: transparent;
}
/*# sourceMappingURL=inputTag.css.map */

104
target/classes/static/css/inputTag.less

@ -0,0 +1,104 @@
@keyframes fariy-fadein {
0% {
opacity: 0
}
100% {
opacity: 1
}
}
.fairy-tag-container {
width: auto;
min-height: 100px;
padding: 5px;
border: 1px solid #e6e6e6;
background-color: #ffffff;
&:hover {
border-color: #d2d2d2;
}
span {
&.fairy-tag {
float: left;
font-size: 13px;
padding: 5px 8px;
margin-right: 5px;
margin-bottom: 5px;
border-radius: 2px;
line-height: 16px;
a {
font-size: 11px;
font-weight: bolder;
color: #ffffff;
text-decoration: none;
margin-left: 6px;
&:hover {
cursor: pointer;
}
}
}
&.fairy-bg-red {
background-color: #FF5722;
}
&.fairy-bg-orange {
background-color: #FFB800;
}
&.fairy-bg-green {
background-color: #009688;
}
&.fairy-bg-cyan {
background-color: #2F4056;
}
&.fairy-bg-blue {
background-color: #1E9FFF;
}
&.fairy-bg-black {
background-color: #393D49;
}
&.fairy-bg-red, &.fairy-bg-orange, &.fairy-bg-green, &.fairy-bg-cyan, &.fairy-bg-blue, &.fairy-bg-black {
color: #ffffff;
}
}
.fairy-anim-fadein {
animation: fariy-fadein .3s both;
}
.fairy-tag-input[type='text'] {
width: 80px;
font-size: 13px;
padding: 6px;
background: transparent;
border: 0 none;
outline: 0;
&:focus {
&::-webkit-input-placeholder {
color: transparent;
}
&:-moz-placeholder {
color: transparent;
}
&:-moz-placeholder {
color: transparent;
}
&:-ms-input-placeholder {
color: transparent;
}
}
}
}

152
target/classes/static/js/lay-module/inputTag.js

@ -0,0 +1,152 @@
/*
* Name: inputTag
* Author: cshaptx4869
* Project: https://github.com/cshaptx4869/inputTag
*/
(function (define) {
define(['jquery'], function ($) {
"use strict";
class InputTag {
options = {
elem: '.fairy-tag-input',
theme: ['fairy-bg-red', 'fairy-bg-orange', 'fairy-bg-green', 'fairy-bg-cyan', 'fairy-bg-blue', 'fairy-bg-black'],
data: [],
removeKeyNum: 8,
createKeyNum: 13,
permanentData: [],
};
get elem() {
return $(this.options.elem);
}
get copyData() {
return [...this.options.data];
}
constructor(options) {
this.render(options);
}
render(options) {
this.init(options);
this.listen();
}
init(options) {
var spans = '', that = this;
this.options = $.extend(this.options, options);
!this.elem.attr('placeholder') && this.elem.attr('placeholder', '添加标签');
$.each(this.options.data, function (index, item) {
spans += that.spanHtml(item);
});
this.elem.before(spans);
}
listen() {
var that = this;
this.elem.parent().on('click', 'a', function () {
that.removeItem($(this).parent('span'));
});
this.elem.parent().on('click', function () {
that.elem.focus();
});
this.elem.keydown(function (event) {
var keyNum = (event.keyCode ? event.keyCode : event.which);
if (keyNum === that.options.removeKeyNum) {
if (!that.elem.val().trim()) {
var closeItems = that.elem.parent().find('a');
if (closeItems.length) {
that.removeItem($(closeItems[closeItems.length - 1]).parent('span'));
event.preventDefault();
}
}
}
});
this.elem.focusout(function(event){
that.createItem();
event.preventDefault();
})
}
createItem() {
var value = this.elem.val().trim();
if (this.options.beforeCreate && typeof this.options.beforeCreate === 'function') {
var modifiedValue = this.options.beforeCreate(this.copyData, value);
if (typeof modifiedValue == 'string' && modifiedValue) {
value = modifiedValue;
} else {
value = '';
}
}
if (value) {
if (!this.options.data.includes(value)) {
this.options.data.push(value);
this.elem.before(this.spanHtml(value));
this.onChange(value, 'create');
}
}
this.elem.val('');
}
removeItem(target) {
var that = this;
var closeSpan = target.remove(),
closeSpanText = $(closeSpan).children('span').text();
var closeSpanTextIndex = $.inArray(closeSpanText, that.options.data);
var value = that.options.data.splice($.inArray(closeSpanText, that.options.data), 1);
value.length === 1 && that.onChange(value[0], 'remove',closeSpanTextIndex);
}
randomColor() {
return this.options.theme[Math.floor(Math.random() * this.options.theme.length)];
}
spanHtml(value) {
return '<span class="fairy-tag fairy-anim-fadein ' + this.randomColor() + '">' +
'<span>' + value + '</span>' +
(this.options.permanentData.includes(value) ? '' : '<a href="#" title="删除标签">&times;</a>') +
'</span>';
}
onChange(value, type,index) {
this.options.onChange && typeof this.options.onChange === 'function' && this.options.onChange(this.copyData, value, type,index);
}
getData() {
return this.copyData;
}
clearData() {
this.options.data = [];
this.elem.prevAll('span.fairy-tag').remove();
}
}
return {
render(options) {
return new InputTag(options);
}
}
});
}(typeof define === 'function' && define.amd ? define : function (deps, factory) {
var MOD_NAME = 'inputTag';
if (typeof module !== 'undefined' && module.exports) { //Node
module.exports = factory(require('jquery'));
} else if (window.layui && layui.define) {
layui.define('jquery', function (exports) { //layui加载
exports(MOD_NAME, factory(layui.jquery));
});
} else {
window[MOD_NAME] = factory(window.jQuery);
}
}));

7
target/classes/static/lib/jquery-3.4.1/jquery.tagsinput.css

@ -0,0 +1,7 @@
div.tagsinput { border:1px solid #CCC; background: #FFF; padding:5px; width:300px; height:100px; overflow-y: auto;}
div.tagsinput span.tag { border: 1px solid #a5d24a; -moz-border-radius:2px; -webkit-border-radius:2px; display: block; float: left; padding: 5px; text-decoration:none; background: #cde69c; color: #638421; margin-right: 5px; margin-bottom:5px;font-family: helvetica; font-size:13px;}
div.tagsinput span.tag a { font-weight: bold; color: #82ad2b; text-decoration:none; font-size: 11px; }
div.tagsinput input { width:80px; margin:0px; font-family: helvetica; font-size: 13px; border:1px solid transparent; padding:5px; background: transparent; color: #000; outline:0px; margin-right:5px; margin-bottom:5px; }
div.tagsinput div { display:block; float: left; }
.tags_clear { clear: both; width: 100%; height: 0px; }
.not_valid {background: #FBD8DB !important; color: #90111A !important;}

390
target/classes/static/lib/jquery-3.4.1/jquery.tagsinput.js

@ -0,0 +1,390 @@
/*
jQuery Tags Input Plugin 1.3.3
Copyright (c) 2011 XOXCO, Inc
Documentation for this plugin lives here:
http://xoxco.com/clickable/jquery-tags-input
Licensed under the MIT license:
http://www.opensource.org/licenses/mit-license.php
ben@xoxco.com
*/
(function($) {
var delimiter = new Array();
var tags_callbacks = new Array();
$.fn.doAutosize = function(o){
var minWidth = $(this).data('minwidth'),
maxWidth = $(this).data('maxwidth'),
val = '',
input = $(this),
testSubject = $('#'+$(this).data('tester_id'));
if (val === (val = input.val())) {return;}
// Enter new content into testSubject
var escaped = val.replace(/&/g, '&amp;').replace(/\s/g,' ').replace(/</g, '&lt;').replace(/>/g, '&gt;');
testSubject.html(escaped);
// Calculate new width + whether to change
var testerWidth = testSubject.width(),
newWidth = (testerWidth + o.comfortZone) >= minWidth ? testerWidth + o.comfortZone : minWidth,
currentWidth = input.width(),
isValidWidthChange = (newWidth < currentWidth && newWidth >= minWidth)
|| (newWidth > minWidth && newWidth < maxWidth);
// Animate width
if (isValidWidthChange) {
input.width(newWidth);
}
};
$.fn.resetAutosize = function(options){
// alert(JSON.stringify(options));
var minWidth = $(this).data('minwidth') || options.minInputWidth || $(this).width(),
maxWidth = $(this).data('maxwidth') || options.maxInputWidth || ($(this).closest('.tagsinput').width() - options.inputPadding),
val = '',
input = $(this),
testSubject = $('<tester/>').css({
position: 'absolute',
top: -9999,
left: -9999,
width: 'auto',
fontSize: input.css('fontSize'),
fontFamily: input.css('fontFamily'),
fontWeight: input.css('fontWeight'),
letterSpacing: input.css('letterSpacing'),
whiteSpace: 'nowrap'
}),
testerId = $(this).attr('id')+'_autosize_tester';
if(! $('#'+testerId).length > 0){
testSubject.attr('id', testerId);
testSubject.appendTo('body');
}
input.data('minwidth', minWidth);
input.data('maxwidth', maxWidth);
input.data('tester_id', testerId);
input.css('width', minWidth);
};
$.fn.addTag = function(value,options) {
options = jQuery.extend({focus:false,callback:true},options);
this.each(function() {
var id = $(this).attr('id');
var tagslist = $(this).val().split(delimiter[id]);
if (tagslist[0] == '') {
tagslist = new Array();
}
value = jQuery.trim(value);
if (options.unique) {
var skipTag = $(this).tagExist(value);
if(skipTag == true) {
//Marks fake input as not_valid to let styling it
$('#'+id+'_tag').addClass('not_valid');
}
} else {
var skipTag = false;
}
if (value !='' && skipTag != true) {
$('<span>').addClass('tag').append(
$('<span>').text(value).append('&nbsp;&nbsp;'),
$('<a>', {
href : '#',
title : 'Removing tag',
text : 'x'
}).click(function () {
return $('#' + id).removeTag(escape(value));
})
).insertBefore('#' + id + '_addTag');
tagslist.push(value);
$('#'+id+'_tag').val('');
if (options.focus) {
$('#'+id+'_tag').focus();
} else {
$('#'+id+'_tag').blur();
}
$.fn.tagsInput.updateTagsField(this,tagslist);
if (options.callback && tags_callbacks[id] && tags_callbacks[id]['onAddTag']) {
var f = tags_callbacks[id]['onAddTag'];
f.call(this, value);
}
if(tags_callbacks[id] && tags_callbacks[id]['onChange'])
{
var i = tagslist.length;
var f = tags_callbacks[id]['onChange'];
f.call(this, $(this), tagslist[i-1]);
}
}
});
return false;
};
$.fn.removeTag = function(value) {
value = unescape(value);
this.each(function() {
var id = $(this).attr('id');
var old = $(this).val().split(delimiter[id]);
$('#'+id+'_tagsinput .tag').remove();
str = '';
for (i=0; i< old.length; i++) {
if (old[i]!=value) {
str = str + delimiter[id] +old[i];
}
}
$.fn.tagsInput.importTags(this,str);
if (tags_callbacks[id] && tags_callbacks[id]['onRemoveTag']) {
var f = tags_callbacks[id]['onRemoveTag'];
f.call(this, value);
}
});
return false;
};
$.fn.tagExist = function(val) {
var id = $(this).attr('id');
var tagslist = $(this).val().split(delimiter[id]);
return (jQuery.inArray(val, tagslist) >= 0); //true when tag exists, false when not
};
// clear all existing tags and import new ones from a string
$.fn.importTags = function(str) {
var id = $(this).attr('id');
$('#'+id+'_tagsinput .tag').remove();
$.fn.tagsInput.importTags(this,str);
}
$.fn.tagsInput = function(options) {
var settings = jQuery.extend({
interactive:true,
defaultText:'add a tag',
minChars:0,
width:'300px',
height:'100px',
autocomplete: {selectFirst: false },
hide:true,
delimiter: ',',
unique:true,
removeWithBackspace:true,
placeholderColor:'#666666',
autosize: true,
comfortZone: 20,
inputPadding: 6*2
},options);
var uniqueIdCounter = 0;
this.each(function() {
// If we have already initialized the field, do not do it again
if (typeof $(this).attr('data-tagsinput-init') !== 'undefined') {
return;
}
// Mark the field as having been initialized
$(this).attr('data-tagsinput-init', true);
if (settings.hide) {
$(this).hide();
}
var id = $(this).attr('id');
if (!id || delimiter[$(this).attr('id')]) {
id = $(this).attr('id', 'tags' + new Date().getTime() + (uniqueIdCounter++)).attr('id');
}
var data = jQuery.extend({
pid:id,
real_input: '#'+id,
holder: '#'+id+'_tagsinput',
input_wrapper: '#'+id+'_addTag',
fake_input: '#'+id+'_tag'
},settings);
delimiter[id] = data.delimiter;
if (settings.onAddTag || settings.onRemoveTag || settings.onChange) {
tags_callbacks[id] = new Array();
tags_callbacks[id]['onAddTag'] = settings.onAddTag;
tags_callbacks[id]['onRemoveTag'] = settings.onRemoveTag;
tags_callbacks[id]['onChange'] = settings.onChange;
}
var markup = '<div id="'+id+'_tagsinput" class="tagsinput"><div id="'+id+'_addTag">';
if (settings.interactive) {
markup = markup + '<input id="'+id+'_tag" value="" data-default="'+settings.defaultText+'" />';
}
markup = markup + '</div><div class="tags_clear"></div></div>';
$(markup).insertAfter(this);
$(data.holder).css('width',settings.width);
$(data.holder).css('min-height',settings.height);
$(data.holder).css('height',settings.height);
if ($(data.real_input).val()!='') {
$.fn.tagsInput.importTags($(data.real_input),$(data.real_input).val());
}
if (settings.interactive) {
$(data.fake_input).val($(data.fake_input).attr('data-default'));
$(data.fake_input).css('color',settings.placeholderColor);
$(data.fake_input).resetAutosize(settings);
$(data.holder).bind('click',data,function(event) {
$(event.data.fake_input).focus();
});
$(data.fake_input).bind('focus',data,function(event) {
if ($(event.data.fake_input).val()==$(event.data.fake_input).attr('data-default')) {
$(event.data.fake_input).val('');
}
$(event.data.fake_input).css('color','#000000');
});
if (settings.autocomplete_url != undefined) {
autocomplete_options = {source: settings.autocomplete_url};
for (attrname in settings.autocomplete) {
autocomplete_options[attrname] = settings.autocomplete[attrname];
}
if (jQuery.Autocompleter !== undefined) {
$(data.fake_input).autocomplete(settings.autocomplete_url, settings.autocomplete);
$(data.fake_input).bind('result',data,function(event,data,formatted) {
if (data) {
$('#'+id).addTag(data[0] + "",{focus:true,unique:(settings.unique)});
}
});
} else if (jQuery.ui.autocomplete !== undefined) {
$(data.fake_input).autocomplete(autocomplete_options);
$(data.fake_input).bind('autocompleteselect',data,function(event,ui) {
$(event.data.real_input).addTag(ui.item.value,{focus:true,unique:(settings.unique)});
return false;
});
}
} else {
// if a user tabs out of the field, create a new tag
// this is only available if autocomplete is not used.
$(data.fake_input).bind('blur',data,function(event) {
var d = $(this).attr('data-default');
if ($(event.data.fake_input).val()!='' && $(event.data.fake_input).val()!=d) {
if( (event.data.minChars <= $(event.data.fake_input).val().length) && (!event.data.maxChars || (event.data.maxChars >= $(event.data.fake_input).val().length)) )
$(event.data.real_input).addTag($(event.data.fake_input).val(),{focus:true,unique:(settings.unique)});
} else {
$(event.data.fake_input).val($(event.data.fake_input).attr('data-default'));
$(event.data.fake_input).css('color',settings.placeholderColor);
}
return false;
});
}
// if user types a default delimiter like comma,semicolon and then create a new tag
$(data.fake_input).bind('keypress',data,function(event) {
if (_checkDelimiter(event)) {
event.preventDefault();
if( (event.data.minChars <= $(event.data.fake_input).val().length) && (!event.data.maxChars || (event.data.maxChars >= $(event.data.fake_input).val().length)) )
$(event.data.real_input).addTag($(event.data.fake_input).val(),{focus:true,unique:(settings.unique)});
$(event.data.fake_input).resetAutosize(settings);
return false;
} else if (event.data.autosize) {
$(event.data.fake_input).doAutosize(settings);
}
});
//Delete last tag on backspace
data.removeWithBackspace && $(data.fake_input).bind('keydown', function(event)
{
if(event.keyCode == 8 && $(this).val() == '')
{
event.preventDefault();
var last_tag = $(this).closest('.tagsinput').find('.tag:last').text();
var id = $(this).attr('id').replace(/_tag$/, '');
last_tag = last_tag.replace(/[\s]+x$/, '');
$('#' + id).removeTag(escape(last_tag));
$(this).trigger('focus');
}
});
$(data.fake_input).blur();
//Removes the not_valid class when user changes the value of the fake input
if(data.unique) {
$(data.fake_input).keydown(function(event){
if(event.keyCode == 8 || String.fromCharCode(event.which).match(/\w+|[áéíóúÁÉÍÓÚñÑ,/]+/)) {
$(this).removeClass('not_valid');
}
});
}
} // if settings.interactive
});
return this;
};
$.fn.tagsInput.updateTagsField = function(obj,tagslist) {
var id = $(obj).attr('id');
$(obj).val(tagslist.join(delimiter[id]));
};
$.fn.tagsInput.importTags = function(obj,val) {
$(obj).val('');
var id = $(obj).attr('id');
var tags = val.split(delimiter[id]);
for (i=0; i<tags.length; i++) {
$(obj).addTag(tags[i],{focus:false,callback:false});
}
if(tags_callbacks[id] && tags_callbacks[id]['onChange'])
{
var f = tags_callbacks[id]['onChange'];
f.call(obj, obj, tags[i]);
}
};
/**
* check delimiter Array
* @param event
* @returns {boolean}
* @private
*/
var _checkDelimiter = function(event){
var found = false;
if (event.which == 13) {
return true;
}
if (typeof event.data.delimiter === 'string') {
if (event.which == event.data.delimiter.charCodeAt(0)) {
found = true;
}
} else {
$.each(event.data.delimiter, function(index, delimiter) {
if (event.which == delimiter.charCodeAt(0)) {
found = true;
}
});
}
return found;
}
})(jQuery);
Loading…
Cancel
Save