create.js 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. const _Http = getApp().globalData.http;
  2. Page({
  3. data: {
  4. loading: false,
  5. disabled: true,
  6. showAll: false,
  7. form: [{
  8. label: "年度",
  9. error: false,
  10. errMsg: "",
  11. type: "selector",
  12. value: "",
  13. placeholder: "请选择年份",
  14. valueName: "year",
  15. required: true,
  16. range: [],
  17. rangeKey: "name",
  18. rangeIndex: 0
  19. }, {
  20. label: "任务名称",
  21. error: false,
  22. errMsg: "",
  23. type: "text",
  24. value: "",
  25. placeholder: "请输入任务名称",
  26. valueName: "taskname",
  27. required: true,
  28. checking: "base"
  29. }, {
  30. label: "合同模版",
  31. error: false,
  32. errMsg: "",
  33. type: "radio",
  34. value: "",
  35. radioList: [],
  36. valueName: "sa_esign_contract_templateid",
  37. required: true,
  38. checking: "base",
  39. direction: "horizontal"
  40. }, {
  41. label: "备注",
  42. error: false,
  43. errMsg: "",
  44. type: "textarea",
  45. value: "",
  46. placeholder: "请输入备注信息",
  47. valueName: "remarks",
  48. required: false,
  49. checking: "base"
  50. }],
  51. content: {
  52. sa_esign_contract_taskid: 0
  53. }
  54. },
  55. onLoad(options) {
  56. this.getYearList();
  57. this.getTemplateList();
  58. },
  59. /* 生成年份列表 */
  60. getYearList() {
  61. const currentYear = new Date().getFullYear();
  62. const years = [];
  63. for (let i = currentYear - 5; i <= currentYear + 5; i++) {
  64. years.push({ id: i.toString(), name: i.toString() });
  65. }
  66. let form = this.data.form;
  67. let yearField = form.find(v => v.valueName === 'year');
  68. yearField.range = years;
  69. yearField.rangeIndex = 5;
  70. yearField.value = currentYear.toString();
  71. this.setData({ form });
  72. },
  73. /* 获取合同模版列表 */
  74. getTemplateList() {
  75. _Http.basic({
  76. id: '2026042013062102',
  77. content: {
  78. pageNumber: 1,
  79. pageSize: 100
  80. }
  81. }).then(res => {
  82. if (res.code == 1 && res.data && res.data.length) {
  83. let form = this.data.form;
  84. let templateField = form.find(v => v.valueName === 'sa_esign_contract_templateid');
  85. templateField.radioList = res.data.map(item => ({
  86. id: item.sa_esign_contract_templateid,
  87. name: item.name
  88. }));
  89. templateField.value = res.data[0].sa_esign_contract_templateid;
  90. this.setData({ form });
  91. this.selectComponent("#Form").confirm();
  92. }
  93. });
  94. },
  95. /* 表单必填项是否完成 */
  96. onConfirm({ detail }) {
  97. this.setData({
  98. disabled: detail
  99. });
  100. },
  101. /* 表单中断回调 */
  102. interrupt({ detail }) {
  103. // 处理条件变化
  104. },
  105. /* 提交表单 */
  106. submit() {
  107. this.setData({ loading: true });
  108. let formData = this.selectComponent("#Form").submit();
  109. if (!formData) {
  110. this.setData({ loading: false });
  111. return;
  112. }
  113. let content = {
  114. ...this.data.content,
  115. ...formData
  116. };
  117. _Http.basic({
  118. id: '2026041309401702',
  119. content
  120. }).then(res => {
  121. this.setData({ loading: false });
  122. if (res.code == 1) {
  123. const listPage = getCurrentPages().find(v => v.__route__ == 'CRM/contract/index');
  124. if (listPage) {
  125. listPage.getList(true);
  126. }
  127. wx.redirectTo({
  128. url: '/CRM/contract/detail?id=' + res.data.sa_esign_contract_taskid,
  129. success: () => {
  130. wx.showToast({ title: '创建成功', icon: 'none' });
  131. }
  132. });
  133. } else {
  134. wx.showToast({ title: res.msg || '创建失败', icon: 'none' });
  135. }
  136. }).catch(() => {
  137. this.setData({ loading: false });
  138. wx.showToast({ title: '创建失败', icon: 'none' });
  139. });
  140. },
  141. /* 是否显示全部 */
  142. onChange({ detail }) {
  143. this.setData({
  144. showAll: detail
  145. });
  146. },
  147. closePage() {
  148. wx.navigateBack({ delta: 1 });
  149. }
  150. });