offerAreward.js 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319
  1. var app = getApp()
  2. var that;
  3. var animation;
  4. Page({
  5. data: {
  6. items: {
  7. dept_ids: [],//可见范围
  8. pt_id: 3,//积分种类id
  9. task_name: '',//任务名
  10. task_remark: '',//任务详细描述
  11. base_point: '',//任务参考积分
  12. expire_time: '',//截至时间 格式:2020-02-02 12:00
  13. file_list: [],//附件地址列表
  14. reviewer_id: '',//审批者id
  15. revieweName: '',
  16. timeout_deduction_point: '',//逾期扣分/月
  17. task_cycle: 0,
  18. task_expire_day: 1,
  19. task_type:1,
  20. popupCx: ''
  21. },
  22. reviewerObj: [],//默认审批人
  23. objectArray: [
  24. {
  25. id: 0,
  26. name: '不重复',
  27. },
  28. {
  29. id: 1,
  30. name: '每天重复',
  31. },
  32. {
  33. id: 2,
  34. name: '每周重复',
  35. },
  36. {
  37. id: 3,
  38. name: '每月重复',
  39. },
  40. ],
  41. arrIndex: 0,
  42. defaultSection: [],//选择的部门
  43. },
  44. onLoad() {
  45. that = this;
  46. dd.setNavigationBar({ title: "发布悬赏任务" });
  47. that.setData({
  48. types: app.globalData.types
  49. })
  50. },
  51. bindObjPickerChange(e) {
  52. this.setData({
  53. arrIndex: e.detail.value,
  54. [`items.task_cycle`]: e.detail.value
  55. });
  56. },
  57. openType(e) {
  58. var id = e.target.dataset.id;
  59. that.setData({
  60. [`items.pt_id`]: id
  61. })
  62. },
  63. onShow() {
  64. animation = dd.createAnimation({
  65. duration: 200,
  66. timeFunction: "linear",
  67. });
  68. },
  69. //积分输入
  70. bindKeyInput(e) {
  71. var point = `items.base_point`;
  72. this.setData({
  73. [point]: e.detail.value,
  74. });
  75. },
  76. //积分输入
  77. bindKeyInput2(e) {
  78. var point = `items.timeout_deduction_point`;
  79. this.setData({
  80. [point]: e.detail.value,
  81. });
  82. },
  83. //显示图片
  84. showImg(e) {
  85. var index = e.target.dataset.index;
  86. var item = e.target.dataset.item
  87. dd.previewImage({
  88. current: index,
  89. urls: item
  90. });
  91. },
  92. //关闭规则
  93. onClose() {
  94. animation.translateY(1200).step();
  95. that.setData({
  96. isShowType: '',
  97. popupCx: '',
  98. animationInfo: animation.export()
  99. });
  100. },
  101. //选择部门
  102. onSelectSection(e) {
  103. var arr = [];
  104. if (e.length > 0) {
  105. e.forEach(user => {
  106. arr.push(user.id);
  107. })
  108. that.setData({
  109. defaultSection: e,
  110. [`items.dept_ids`]: arr
  111. })
  112. }
  113. },
  114. //选择弹窗
  115. openSelect(e) {
  116. var num = e.target.dataset.num;
  117. if (e.target.dataset.item) {
  118. if (e.target.dataset.item.id) {
  119. that.setData({ reviewerObj: [e.target.dataset.item] });
  120. } else {
  121. that.setData({ reviewerObj: [] });
  122. }
  123. }
  124. animation.translateY(0).step();
  125. that.setData({
  126. isShowType: num,
  127. popupCx: 'container__mask',
  128. animationInfo: animation.export()
  129. });
  130. },
  131. //删除图片
  132. deteleImg(e) {
  133. var index = e.target.dataset.index;//获取itemS集合中对应的files
  134. var files = that.data.items.file_list;//获取itemS集合中对应的files
  135. var files_box = `items.file_list`;//
  136. app.globalData.arrRemoveObj(files, files[index]);
  137. that.setData({
  138. [files_box]: files
  139. });
  140. },
  141. //图片选择
  142. openImg(e) {
  143. var files = that.data.items.file_list;
  144. if (files.length >= 3) {
  145. app.globalData.showToast("只能上传三张");
  146. return false;
  147. }
  148. dd.chooseImage({
  149. count: 1,
  150. success: (res) => {
  151. that.postImg(res.filePaths[0]);
  152. },
  153. });
  154. },
  155. postImg(img_url) {
  156. var files_box = `items.file_list`;
  157. var files = that.data.items.file_list;
  158. dd.httpRequest({
  159. url: app.globalData.imgHttpUrl,
  160. method: 'POST',
  161. data: {
  162. md5: that.random_string(32),
  163. 'name': app.globalData.day
  164. },
  165. success: function (res) {
  166. if (app.globalData.userData.site_id) {
  167. var key = 'intesys/dd/' + app.globalData.userData.site_id + "/" + app.globalData.day + '/' + that.random_string(32) + '.png';
  168. } else {
  169. var key = 'intesys/dd/' + app.globalData.day + '/' + that.random_string(32) + '.png';
  170. }
  171. var obj = res.data.data;
  172. dd.uploadFile({
  173. url: app.globalData.ALIOSS_URL,
  174. fileType: 'image',
  175. fileName: 'file',
  176. filePath: img_url,
  177. formData: {
  178. key: key,
  179. policy: obj.policy,
  180. OSSAccessKeyId: obj.accessid,
  181. success_action_status: 200,
  182. signature: obj.signature
  183. },
  184. success: (res) => {
  185. if (res.statusCode == 200) {
  186. if (files.length > 0) {
  187. files.push('http://cdn.intesys.g107.com/' + key)
  188. } else {
  189. files = ['http://cdn.intesys.g107.com/' + key];
  190. }
  191. that.setData({
  192. [files_box]: files
  193. });
  194. console.log(that.data.items);
  195. app.globalData.showToast("已上传");
  196. }
  197. },
  198. fail: (err) => {
  199. console.log(err);
  200. }
  201. });
  202. },
  203. fail: function (res) {
  204. app.globalData.showToast("上传失败");
  205. }
  206. })
  207. },
  208. random_string(len) {
  209. len = len || 32
  210. var chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678'
  211. var maxPos = chars.length
  212. var pwd = ''
  213. for (let i = 0; i < len; i++) {
  214. pwd += chars.charAt(Math.floor(Math.random() * maxPos))
  215. }
  216. return pwd
  217. },
  218. //备注输入
  219. bindTextAreaBlur: function (e) {
  220. this.setData({
  221. [`items.task_name`]: e.detail.value,
  222. });
  223. },
  224. //备注输入
  225. bindTextAreaBlur2: function (e) {
  226. this.setData({
  227. [`items.task_remark`]: e.detail.value,
  228. });
  229. },
  230. showToast(text) {
  231. app.globalData.showToast(text);
  232. },
  233. formSubmit() {
  234. var items = this.data.items;
  235. console.log(items);
  236. if (!items.task_name) {
  237. this.showToast('请输入任务内容')
  238. return;
  239. }
  240. if (!items.base_point) {
  241. this.showToast('请输入任务记分')
  242. return;
  243. }
  244. if (!items.reviewer_id) {
  245. this.showToast('请选择审批人')
  246. return;
  247. }
  248. if (!items.expire_time) {
  249. this.showToast('请选择截止时间')
  250. return;
  251. }
  252. // items.file_list=JSON.stringify(items.file_list);
  253. // items.targets=JSON.stringify(items.targets);
  254. if(!items.task_remark){
  255. delete items.task_remark
  256. }
  257. if(!items.timeout_deduction_point){
  258. delete items.timeout_deduction_point
  259. }
  260. if(items.dept_ids.length==0){
  261. delete items.dept_ids
  262. }else{
  263. items.dept_ids=items.dept_ids.toString();
  264. }
  265. items.file_list=items.file_list.toString();
  266. this.setData({ disabled: true });
  267. var url;
  268. if (items.task_cycle == 0) {
  269. url = '/api/integral/task/publish'
  270. } else {
  271. url = '/api/integral/schedule/publish/task'
  272. }
  273. app.$post(url,items).then((res) => {
  274. this.showToast(res.data.msg);
  275. setTimeout(() => {
  276. this.setData({ disabled: false });
  277. dd.navigateBack({ delta: 1 })
  278. }, 1000);
  279. }).finally(err => {
  280. this.setData({ disabled: false });
  281. })
  282. },
  283. switchChange(e) {
  284. var index = e.target.dataset.index;
  285. var item = `items[${index}].checked`;
  286. that.setData({
  287. [item]: e.detail.value
  288. })
  289. },
  290. //选择时间
  291. openDate(e) {
  292. var item = `items.expire_time`
  293. dd.datePicker({
  294. format: 'yyyy-MM-dd HH:mm',
  295. currentDate: that.data.items.expire_time,
  296. success: (res) => {
  297. that.setData({
  298. [item]: res.date
  299. })
  300. },
  301. });
  302. },
  303. //选择审批人
  304. onSelectUser2(item) {
  305. var elm = item.length > 0 ? item[0] : { id: '', name: '' };
  306. var reviewer_id = `items.reviewer_id`
  307. var revieweName = `items.revieweName`
  308. that.setData({
  309. [reviewer_id]: elm.id,
  310. [revieweName]: elm.name,
  311. });
  312. },
  313. });