apply.js 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328
  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. reviewerObj: [],
  23. disabled: false,
  24. },
  25. onLoad() {
  26. that = this;
  27. dd.setNavigationBar({ title: "申请积分" });
  28. // var userDeptId=app.globalData.userData.employee_detail.dept_list[0].dept_id;//当前登录人部门ID
  29. // var superior=app.globalData.userData.employee_detail.superior_list;//当前登录人上级领导
  30. // this.getData(userDeptId);
  31. this.setData({
  32. items: [{//录入选项列表
  33. checked: true,//判断是否开启指定规则
  34. rule_id: '',//积分分类id
  35. item_id: '',//积分细则id 不选可以为0
  36. remark: '',//备注
  37. event_time: app.globalData.day,//事件时间
  38. reviewer_id:'',
  39. revieweName:'',
  40. // reviewer_id: app.globalData.userData.employee_detail.superior_list[0].id,//审核人ID
  41. // revieweName: app.globalData.userData.employee_detail.superior_list[0].name,//审批人姓名(非传)
  42. files: '',//附件数组列表
  43. }],
  44. })
  45. },
  46. onShow() {
  47. animation = dd.createAnimation({
  48. duration: 200,
  49. timeFunction: "linear",
  50. });
  51. },
  52. //获取人员列表
  53. getData(dept_id) {
  54. var superior=app.globalData.userData.employee_detail.superior_list;
  55. app.$get("api/employee/list", { dept_id: dept_id }).then((res) => {
  56. var list = res.data.data.list||[];
  57. })
  58. },
  59. //显示图片
  60. showImg(e) {
  61. var index = e.target.dataset.index;
  62. var item = e.target.dataset.item
  63. dd.previewImage({
  64. current: index,
  65. urls: item
  66. });
  67. },
  68. //关闭规则
  69. onClose() {
  70. animation.translateY(1200).step();
  71. that.setData({
  72. animationInfo: animation.export()
  73. });
  74. that.setData({
  75. isShowType: ''
  76. });
  77. },
  78. //选择规则
  79. openSelect(e) {
  80. if (e.target.dataset.item) {
  81. that.setData({ reviewerObj: [e.target.dataset.item] });
  82. }
  83. that.setData({ activeIndex: '' });
  84. that.setData({
  85. isShowType: e.target.dataset.num,
  86. activeIndex: e.target.dataset.index,
  87. });
  88. animation.translateY(0).step();
  89. that.setData({
  90. animationInfo: animation.export()
  91. });
  92. },
  93. //删除图片
  94. deteleImg(e) {
  95. var { itemIndx, index } = e.target.dataset;
  96. var files = that.data.items[itemIndx].files;//获取itemS集合中对应的files
  97. var files_box = `items[${itemIndx}].files`;//
  98. app.globalData.arrRemoveObj(files, files[index]);
  99. that.setData({
  100. [files_box]: files
  101. });
  102. },
  103. //图片选择
  104. openImg(e) {
  105. var index = e.target.dataset.index;
  106. var files = that.data.items[index].files;
  107. if (files.length >= 3) {
  108. app.globalData.showToast("最多能选择三张");
  109. return false;
  110. }
  111. dd.chooseImage({
  112. count: 1,
  113. success: (res) => {
  114. that.postImg(res, index);
  115. },
  116. });
  117. },
  118. postImg(data, index) {
  119. var files_box = `items[${index}].files`;
  120. var files = that.data.items[index].files;
  121. dd.httpRequest({
  122. url: app.globalData.imgHttpUrl,
  123. method: 'POST',
  124. data: {
  125. md5: that.random_string(32),
  126. 'name': app.globalData.day
  127. },
  128. success: function (res) {
  129. if (app.globalData.userData.site_id) {
  130. var key = 'intesys/dd/' + app.globalData.userData.site_id + "/" + app.globalData.day + '/' + that.random_string(32) + '.png';
  131. } else {
  132. var key = 'intesys/dd/' + app.globalData.day + '/' + that.random_string(32) + '.png';
  133. }
  134. var obj = res.data.data;
  135. dd.uploadFile({
  136. url: app.globalData.ALIOSS_URL,
  137. fileType: 'image',
  138. fileName: 'file',
  139. filePath: data.filePaths[0],
  140. formData: {
  141. key: key,
  142. policy: obj.policy,
  143. OSSAccessKeyId: obj.accessid,
  144. success_action_status: 200,
  145. signature: obj.signature
  146. },
  147. success: (res) => {
  148. if (res.statusCode == 200) {
  149. if (files.length > 0) {
  150. files.push('http://cdn.intesys.g107.com/' + key)
  151. } else {
  152. files = ['http://cdn.intesys.g107.com/' + key];
  153. }
  154. that.setData({
  155. [files_box]: files
  156. });
  157. app.globalData.showToast("已上传");
  158. }
  159. },
  160. });
  161. },
  162. fail: function (res) {
  163. app.globalData.showToast("上传失败");
  164. }
  165. })
  166. },
  167. random_string(len) {
  168. len = len || 32
  169. var chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678'
  170. var maxPos = chars.length
  171. var pwd = ''
  172. for (let i = 0; i < len; i++) {
  173. pwd += chars.charAt(Math.floor(Math.random() * maxPos))
  174. }
  175. return pwd
  176. },
  177. //备注输入
  178. bindTextAreaBlur: function (e) {
  179. var index = e.target.dataset.index;
  180. var remark = `items[${index}].remark`
  181. this.setData({
  182. [remark]: e.detail.value,
  183. });
  184. },
  185. formSubmit() {
  186. var items = this.data.items;
  187. var arr = [];
  188. var isTg = true;
  189. for (var i = 0; i < items.length; i++) {
  190. var obj = {};
  191. var item = items[i];
  192. if (!item.remark) {
  193. app.globalData.showToast(`第${i + 1}项申请内容不能为空`);
  194. isTg = false;
  195. break;
  196. }
  197. if (!item.reviewer_id) {
  198. app.globalData.showToast(`第${i + 1}项申请审批人不能为空`);
  199. isTg = false;
  200. break;
  201. }
  202. obj.employee_id = app.globalData.userData.id;
  203. if (item.checked) {
  204. obj.rule_id = item.selectRule ? item.selectRule.rule_id : 0;
  205. obj.item_id = item.selectRule ? item.selectRule.id : 0;
  206. } else {
  207. obj.rule_id = 0;
  208. obj.item_id = 0;
  209. }
  210. if (item.checked) {
  211. if (!obj.rule_id) {
  212. app.globalData.showToast(`第${i + 1}项必须选择规则`);
  213. isTg = false;
  214. break;
  215. }
  216. }
  217. obj.remark = item.remark;
  218. obj.event_time = item.event_time;
  219. obj.reviewer_id = item.reviewer_id;
  220. obj.files = item.files;
  221. arr.push(obj);
  222. }
  223. if (isTg) {
  224. var data = {
  225. items: JSON.stringify(arr)
  226. }
  227. this.setData({ disabled: true });
  228. app.$post("api/integral/review/apply", data).then((res) => {
  229. var is = true;
  230. res.data.data.list.forEach(item => {
  231. if (item.status == 0) {
  232. is = false;
  233. this.setData({ disabled: false });
  234. app.globalData.showToast(item.msg);
  235. }
  236. });
  237. if (is) {
  238. app.globalData.showToast('申请成功');
  239. setTimeout(() => {
  240. dd.navigateBack({
  241. delta: 1
  242. })
  243. this.setData({ disabled: false });
  244. }, 1000);
  245. }
  246. }).catch(err => {
  247. this.setData({ disabled: false });
  248. })
  249. }
  250. },
  251. //删除一条
  252. deleteArr(e) {
  253. var index = e.target.dataset.index;
  254. var list = that.data.items;
  255. app.globalData.arrRemoveObj(list, list[index]);
  256. that.setData({
  257. items: list
  258. })
  259. console.log(that.data.items);
  260. },
  261. //选择人
  262. onSelectUser(item) {
  263. var elm = item.length > 0 ? item[0] : { id: '', name: '' };
  264. var index = this.data.activeIndex;
  265. var reviewer_id = `items[${index}].reviewer_id`
  266. var revieweName = `items[${index}].revieweName`
  267. that.setData({
  268. [reviewer_id]: elm.id,
  269. [revieweName]: elm.name,
  270. });
  271. },
  272. //添加一条
  273. addArr() {
  274. var arr = {//录入选项列表
  275. checked: true,//判断是否开启指定规则
  276. rule_id: '',//积分分类id
  277. item_id: '',//积分细则id 不选可以为0
  278. remark: '',//备注
  279. event_time: app.globalData.day,//事件时间
  280. reviewer_id:'',//审核人ID
  281. revieweName:'',//审批人姓名(非传)
  282. // reviewer_id: app.globalData.userData.employee_detail.superior_list[0].id,//审核人ID
  283. // revieweName: app.globalData.userData.employee_detail.superior_list[0].name,//审批人姓名(非传)
  284. files: '',//附件数组列表
  285. };
  286. var list = that.data.items
  287. list.push(arr);
  288. that.setData({
  289. items: list
  290. })
  291. },
  292. switchChange(e) {
  293. var index = e.target.dataset.index;
  294. var item = `items[${index}].checked`
  295. that.setData({
  296. [item]: e.detail.value
  297. })
  298. },
  299. //选择时间
  300. openDate(e) {
  301. var index = e.target.dataset.index;
  302. var item = `items[${index}].event_time`
  303. dd.datePicker({
  304. format: 'yyyy-MM-dd',
  305. currentDate: app.globalData.day,
  306. success: (res) => {
  307. that.setData({
  308. [item]: res.date
  309. })
  310. },
  311. });
  312. },
  313. //选择规则
  314. onSelectItem(item) {
  315. var index = this.data.activeIndex;
  316. var selectRule = `items[${index}].selectRule`
  317. var remark = `items[${index}].remark`
  318. that.setData({
  319. [selectRule]: item,
  320. [remark]: item.remark,
  321. })
  322. },
  323. });