apply.js 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259
  1. var app = getApp()
  2. var that;
  3. var animation;
  4. Page({
  5. data: {
  6. members: '',//用户id
  7. userName: '',//用户名称
  8. items: [{//录入选项列表
  9. checked: true,//判断是否开启指定规则
  10. rule_id: '',//积分分类id
  11. item_id: '',//积分细则id 不选可以为0
  12. remark: '',//备注
  13. event_time: app.globalData.day,//事件时间
  14. reviewer_id: '',//审核人ID
  15. revieweName: '',//审批人姓名(非传)
  16. files: '',//附件数组列表
  17. }],
  18. animationInfo: '',
  19. isShowType: true,//是显示选择规则还是显示选择分类
  20. activeIndex: '',
  21. isArr: ['奖', '扣'],
  22. },
  23. onLoad() {
  24. that = this;
  25. dd.setNavigationBar({ title: "申请积分" });
  26. },
  27. onShow() {
  28. animation = dd.createAnimation({
  29. duration: 200,
  30. timeFunction: "linear",
  31. });
  32. },
  33. //关闭规则
  34. onClose() {
  35. animation.translateY(750).step();
  36. that.setData({
  37. animationInfo: animation.export()
  38. });
  39. },
  40. //选择规则
  41. openSelect(e) {
  42. that.setData({ activeIndex: '' });
  43. that.setData({
  44. isShowType: e.target.dataset.num,
  45. activeIndex: e.target.dataset.index,
  46. });
  47. animation.translateY(0).step();
  48. that.setData({
  49. animationInfo: animation.export()
  50. });
  51. },
  52. //删除图片
  53. deteleImg(e) {
  54. var { itemIndx, index } = e.target.dataset;
  55. var files = that.data.items[itemIndx].files;//获取itemS集合中对应的files
  56. var files_box = `items[${itemIndx}].files`;//
  57. app.globalData.arrRemoveObj(files, files[index]);
  58. that.setData({
  59. [files_box]: files
  60. });
  61. },
  62. //图片选择
  63. openImg(e) {
  64. var index = e.target.dataset.index;
  65. var files = that.data.items[index].files;
  66. if (files.length >= 1) {
  67. app.globalData.showToast("最多能选择一张!");
  68. return false;
  69. }
  70. dd.chooseImage({
  71. count: 1,
  72. success: (res) => {
  73. that.postImg(res, index);
  74. },
  75. });
  76. },
  77. postImg(data, index) {
  78. var files_box = `items[${index}].files`;
  79. dd.showLoading();
  80. dd.httpRequest({
  81. url: app.globalData.imgHttpUrl,
  82. method: 'POST',
  83. data: {
  84. md5: that.random_string(32),
  85. 'name': app.globalData.day
  86. },
  87. success: function (res) {
  88. var key = 'intesys/' + app.globalData.day + '/' + that.random_string(32) + '.png';
  89. var obj = res.data.data;
  90. dd.uploadFile({
  91. url: app.globalData.ALIOSS_URL,
  92. fileType: 'image',
  93. fileName: 'file',
  94. filePath: data.filePaths[0],
  95. formData: {
  96. key: key,
  97. policy: obj.policy,
  98. OSSAccessKeyId: obj.accessid,
  99. success_action_status: 200,
  100. signature: obj.signature
  101. },
  102. success: (res) => {
  103. if (res.statusCode == 200) {
  104. that.setData({
  105. [files_box]: ['http://cdn.intesys.g107.com/' + key]
  106. });
  107. dd.hideLoading();
  108. }
  109. },
  110. });
  111. },
  112. fail: function (res) {
  113. app.globalData.showToast("上传失败");
  114. }
  115. })
  116. },
  117. random_string(len) {
  118. len = len || 32
  119. var chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678'
  120. var maxPos = chars.length
  121. var pwd = ''
  122. for (let i = 0; i < len; i++) {
  123. pwd += chars.charAt(Math.floor(Math.random() * maxPos))
  124. }
  125. return pwd
  126. },
  127. //备注输入
  128. bindTextAreaBlur: function (e) {
  129. var index = e.target.dataset.index;
  130. var remark = `items[${index}].remark`
  131. this.setData({
  132. [remark]: e.detail.value,
  133. });
  134. },
  135. formSubmit() {
  136. var items = this.data.items;
  137. var arr = [];
  138. var isTg = true;
  139. console.log(items);
  140. for (var i = 0; i < items.length; i++) {
  141. var obj = {};
  142. var item = items[i];
  143. if (!item.remark) {
  144. app.globalData.showToast(`第${i + 1}项申请内容不能为空`);
  145. isTg = false;
  146. break;
  147. }
  148. obj.employee_id = app.globalData.userData.id;
  149. if (item.checked) {
  150. obj.rule_id = item.selectRule ? item.selectRule.rule_id : 0;
  151. obj.item_id = item.selectRule ? item.selectRule.id : 0;
  152. } else {
  153. obj.rule_id = 0;
  154. obj.item_id = 0;
  155. }
  156. obj.remark = item.remark;
  157. obj.event_time = item.event_time;
  158. obj.reviewer_id = item.reviewer_id;
  159. obj.files = item.files;
  160. arr.push(obj);
  161. }
  162. if (isTg) {
  163. var data = {
  164. items: JSON.stringify(arr)
  165. }
  166. app.$post("api/integral/review/apply", data).then((res) => {
  167. var is = true;
  168. res.data.data.list.forEach(item => {
  169. if (item.status == 0) {
  170. is = false;
  171. app.globalData.showToast(item.msg);
  172. }
  173. });
  174. if (is) {
  175. app.globalData.showToast('已提交');
  176. setTimeout(() => {
  177. dd.navigateBack({
  178. delta: 1
  179. })
  180. }, 1000);
  181. }
  182. })
  183. }
  184. },
  185. //删除一条
  186. deleteArr(e) {
  187. var index = e.target.dataset.index;
  188. var list = that.data.items;
  189. app.globalData.arrRemoveObj(list, list[index]);
  190. that.setData({
  191. items: list
  192. })
  193. console.log(that.data.items);
  194. },
  195. //选择人
  196. onSelectUser(item) {
  197. var index = this.data.activeIndex;
  198. var reviewer_id = `items[${index}].reviewer_id`
  199. var revieweName = `items[${index}].revieweName`
  200. that.setData({
  201. [reviewer_id]: item[0].id,
  202. [revieweName]: item[0].name,
  203. });
  204. },
  205. //添加一条
  206. addArr() {
  207. var arr = {//录入选项列表
  208. checked: true,//判断是否开启指定规则
  209. rule_id: '',//积分分类id
  210. item_id: '',//积分细则id 不选可以为0
  211. remark: '',//备注
  212. event_time: app.globalData.day,//事件时间
  213. reviewer_id: '',//审核人ID
  214. revieweName: '',//审批人姓名(非传)
  215. files: '',//附件数组列表
  216. };
  217. var list = that.data.items
  218. list.push(arr);
  219. that.setData({
  220. items: list
  221. })
  222. },
  223. switchChange(e) {
  224. var index = e.target.dataset.index;
  225. var item = `items[${index}].checked`
  226. that.setData({
  227. [item]: e.detail.value
  228. })
  229. },
  230. //选择时间
  231. openDate(e) {
  232. var index = e.target.dataset.index;
  233. var item = `items[${index}].event_time`
  234. dd.datePicker({
  235. format: 'yyyy-MM-dd',
  236. currentDate: app.globalData.day,
  237. success: (res) => {
  238. that.setData({
  239. [item]: res.date
  240. })
  241. },
  242. });
  243. },
  244. //选择规则
  245. onSelectItem(item) {
  246. console.log(item);
  247. var index = this.data.activeIndex;
  248. var selectRule = `items[${index}].selectRule`
  249. var remark = `items[${index}].remark`
  250. that.setData({
  251. [selectRule]: item,
  252. [remark]: item.remark,
  253. })
  254. },
  255. });