UDF.js 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. var colFieldIDs = [];
  2. function init(colFields) {
  3. const colFieldData = JSON.parse(colFields);
  4. console.log(colFieldData);
  5. for (var i = 0; i < colFieldData.length; i++) {
  6. let colField = colFieldData[i];
  7. colFieldIDs.push(colField.name);
  8. if (colField.type == 526) {//单行文本
  9. let htmlRow = '<div class="awsui-row" ' + (colField.readonly == 1 ? 'style="pointer-events: none;"' : '') + '><div class="awsui-col-xs-2 awsui-col-sm-2 awsui-col-md-2 awsui-col-lg-2 awsui-text">' + colField.comment + '</div><div class="awsui-col-xs-10 awsui-col-sm-10 awsui-col-md-10 awsui-col-lg-10 awsui-form-parent"><span class=" ' + (colField.required == 1 ? 'required' : '') + '" style="width:100%;"><input type="text" class="awsui-input" id="' + colField.name + '" name="' + colField.name + '"></span></div></div>';
  10. $("#udfForm").append(htmlRow);
  11. } else if (colField.type == 527) {//多行文本
  12. let htmlRow = '<div class="awsui-row" ' + (colField.readonly == 1 ? 'style="pointer-events: none;"' : '') + '><div class="awsui-col-xs-2 awsui-col-sm-2 awsui-col-md-2 awsui-col-lg-2 awsui-textar">' + colField.comment + '</div><div class="awsui-col-xs-10 awsui-col-sm-10 awsui-col-md-10 awsui-col-lg-10 awsui-form-parent"><span class=" ' + (colField.required == 1 ? 'required' : '') + '" style="width:100%;"><textarea type="text" rows="3" class="awsui-input" id="' + colField.name + '" name="' + colField.name + '">' + colField.value + '</textarea></span></div></div>';
  13. $("#udfForm").append(htmlRow);
  14. } else if (colField.type == 528) {//日期
  15. let htmlRow = '<div class="awsui-row" ' + (colField.readonly == 1 ? 'style="pointer-events: none;"' : '') + '><div class="awsui-col-xs-2 awsui-col-sm-2 awsui-col-md-2 awsui-col-lg-2 awsui-text">' + colField.comment + '</div><div class="awsui-col-xs-10 awsui-col-sm-10 awsui-col-md-10 awsui-col-lg-10 awsui-form-parent"><span class=" ' + (colField.required == 1 ? 'required' : '') + '" style="width:100%;"><input type="text" class="awsui-datepicker awsui-input" id="' + colField.name + '" name="' + colField.name + '"/></span></div></div>';
  16. $("#udfForm").append(htmlRow);
  17. } else if (colField.type == 529) {//数字
  18. let htmlRow = '<div class="awsui-row" ' + (colField.readonly == 1 ? 'style="pointer-events: none;"' : '') + '><div class="awsui-col-xs-2 awsui-col-sm-2 awsui-col-md-2 awsui-col-lg-2 awsui-text">' + colField.comment + '</div><div class="awsui-col-xs-10 awsui-col-sm-10 awsui-col-md-10 awsui-col-lg-10 awsui-form-parent"><span class=" ' + (colField.required == 1 ? 'required' : '') + '" style="width:100%;"><input type="number" class="awsui-input" id="' + colField.name + '" name="' + colField.name + '"></span></div></div>';
  19. $("#udfForm").append(htmlRow);
  20. } else if (colField.type == 530) {//列表
  21. let options = '';
  22. for (var j = 0; j < colField.list.length; j++) {
  23. let option = colField.list[j];
  24. options += '<option value="' + option.VALUE + '">' + option.LABEL + '</option>';
  25. }
  26. //console.log("options",options);
  27. let htmlRow = '<div class="awsui-row" ' + (colField.readonly == 1 ? 'style="pointer-events: none;"' : '') + '><div class="awsui-col-xs-2 awsui-col-sm-2 awsui-col-md-2 awsui-col-lg-2 awsui-text">' + colField.comment + '</div><div class="awsui-col-xs-10 awsui-col-sm-10 awsui-col-md-10 awsui-col-lg-10 awsui-form-parent"><span class=" ' + (colField.required == 1 ? 'required' : '') + '" style="width:100%;"><select id="' + colField.name + '" name="' + colField.name + '">' + options + '</select></span></div></div>';
  28. $("#udfForm").append(htmlRow);
  29. } else if (colField.type == 532) {//布尔
  30. let htmlRow = '<div class="awsui-row" ' + (colField.readonly == 1 ? 'style="pointer-events: none;"' : '') + '><div class="awsui-col-xs-2 awsui-col-sm-2 awsui-col-md-2 awsui-col-lg-2 awsui-text">' + colField.comment + '</div><div class="awsui-col-xs-10 awsui-col-sm-10 awsui-col-md-10 awsui-col-lg-10 awsui-form-parent"><span class=" ' + (colField.required == 1 ? 'required' : '') + '" style="width:100%;"><input type="checkbox" id="' + colField.name + '" name="' + colField.name + '" ' + (colField.value == 1 ? 'checked' : '') + '></span></div></div>';
  31. $("#udfForm").append(htmlRow);
  32. }
  33. $("#" + colField.name).val(colField.value);
  34. if (colField.type == 528) {
  35. $("#" + colField.name).datepicker({
  36. format: "yyyy-mm-dd",
  37. autoclose: true
  38. });
  39. } else if (colField.type == 530) {
  40. $("#" + colField.name).select2();
  41. $(".select2-container").css("width", "100%");
  42. $("#" + colField.name).val([colField.value]).trigger("change"); //单选赋值
  43. } else if (colField.type == 532 && colField.value == 1) {
  44. $("#" + colField.name).switchButton();
  45. }
  46. }
  47. // $("#udfFormDiv").css("height", colFieldIDs.length*50+"px");
  48. /*
  49. $(".required").find(".awsui-input").focus(function () {
  50. $.each($(".required").find(".awsui-input"), function (i, el) {
  51. $(el).css("background-color", "#fff");
  52. });
  53. $(this).css("background-color", "#FFFFCC");
  54. });
  55. $(".required").find(".awsui-input").blur(function () {
  56. var inputVal = $(this).val();
  57. if (inputVal == "") {
  58. $(this).tooltip({
  59. positon: "top",
  60. text: "不允许为空,请重新输入",
  61. bgcolor: "#f9f9f9",
  62. color: "red",
  63. borderColor: "red",
  64. close: false
  65. });
  66. return false;
  67. }
  68. });
  69. */
  70. }
  71. /**
  72. * 保存用户定义字段(UDF)的数据
  73. * 此函数负责收集所有必需的用户定义字段数据,并通过AJAX请求将其保存到服务器
  74. * @param {string} objectId - 关联的对象ID,用于标识特定的记录或实体
  75. */
  76. function getUDFColumnData(objectId) {
  77. let udfForm = {};
  78. // 遍历收集所有用户定义字段的值
  79. for (var i = 0; i < colFieldIDs.length; i++) {
  80. let id = colFieldIDs[i];
  81. // 将每个字段的值存储到udfForm对象中
  82. udfForm[id] = $("#" + id).val().toString();
  83. }
  84. return udfForm;
  85. }
  86. function saveUDF(objectId) {
  87. // 必填校验
  88. // 遍历所有标记为必填的输入字段,检查是否有空值
  89. $(".required").find(".awsui-input").each(function () {
  90. if ($(this).val() == "") {
  91. // 如果发现空值,通常会在这里添加一些提示用户输入的逻辑
  92. }
  93. });
  94. // 创建一个对象来存储所有用户定义字段的数据
  95. let udfForm = {};
  96. // 遍历收集所有用户定义字段的值
  97. for (var i = 0; i < colFieldIDs.length; i++) {
  98. let id = colFieldIDs[i];
  99. // 将每个字段的值存储到udfForm对象中
  100. udfForm[id] = $("#" + id).val().toString();
  101. }
  102. // 使用AWSUI框架的AJAX请求方法,向服务器发送POST请求以保存数据
  103. awsui.ajax.request({
  104. type: "POST",
  105. // 定义请求的URL,包含命令和会话ID
  106. url: "./jd?cmd=com.awspaas.user.apps.donenow_sys_udf_save&sid=" + sid,
  107. // 将类别ID、对象ID和用户定义字段数据作为请求数据发送
  108. data: "cateId="+cateId+"&objectId="+objectId+"&data="+JSON.stringify(udfForm),
  109. alert: false,
  110. // 定义请求成功时的回调函数
  111. success: function (res) {
  112. // 在控制台输出服务器返回的响应数据,通常在这里处理成功后的逻辑
  113. console.log(res);
  114. }
  115. });
  116. }