微信小程序
Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

529 linhas
13 KiB

  1. // pages/apply/approval/approval.js
  2. import * as UTIL from '../../../utils/util.js';
  3. import * as API from '../../../utils/API.js';
  4. const app = getApp();
  5. Page({
  6. /**
  7. * 页面的初始数据
  8. */
  9. data: {
  10. isIPX: app.globalData.isIPX,
  11. steps: [
  12. {
  13. assigneeName: '同意',
  14. activityName: '测试测试',
  15. durationInMillis: '描述信息',
  16. endTime: '2022-01-02',
  17. comment: '同意',
  18. type: '1'
  19. },
  20. {
  21. assigneeName: '申请中',
  22. activityName: '测试测试',
  23. durationInMillis: '描述信息',
  24. endTime: '2022-01-02',
  25. comment: '同意',
  26. type: '2'
  27. },
  28. {
  29. assigneeName: '驳回',
  30. activityName: '测试测试',
  31. durationInMillis: '描述信息',
  32. endTime: '2022-01-02',
  33. comment: '同意',
  34. type: '3'
  35. },
  36. {
  37. assigneeName: '步骤四',
  38. activityName: '测试测试',
  39. durationInMillis: '描述信息',
  40. endTime: '2022-01-02',
  41. comment: '同意'
  42. },
  43. ],
  44. //事务总表对象
  45. item:{},
  46. detpId:187,
  47. itemId:13,
  48. active:0,
  49. result:[],
  50. show:false,
  51. showPopup:false,
  52. templateList:[],
  53. templateDetailList:[],
  54. groups:[],
  55. villages:[],
  56. towns:[],
  57. temName:"",
  58. temId:""
  59. },
  60. /**
  61. * 生命周期函数--监听页面加载
  62. */
  63. onLoad(options) {
  64. this.setData({itemId:options.id,deptId:options.deptId});
  65. //this.getApprovalItemList();
  66. this.groupList();
  67. this.townList();
  68. this.villageList();
  69. this.getApprovalItemsById();
  70. },
  71. getApprovalItemsById(){
  72. let _this = this
  73. let url = API.URL_GET_APPROVALITEMSBYID+this.data.itemId
  74. wx.request({
  75. url,
  76. method:"GET",
  77. timeout: 60000,
  78. header: {
  79. 'Authorization':'Bearer '+getApp().globalData.userInfo.token
  80. },
  81. success: function (response) {
  82. _this.setData({item:response.data.data})
  83. if(_this.data.item.templateId!=""&&_this.data.item.templateId!=null){
  84. _this.setData({item:response.data.data,temId:_this.data.itemId})
  85. let d = {
  86. templateId : _this.data.item.templateId,
  87. orderByColumn:"id",
  88. isAsc:"asc"
  89. }
  90. UTIL.httpRequest(API.URL_GET_TEMPLATEDETAIL, d, {
  91. success: (r) => {
  92. if (r.code == API.SUCCESS_CODE) {
  93. _this.setData({templateDetailList:r.rows});
  94. let list = []
  95. r.rows.map(rr => {
  96. list.push(rr.userId+"")
  97. })
  98. _this.setData({result:list})
  99. }
  100. }
  101. })
  102. }else {
  103. _this.getApprovalItemList()
  104. }
  105. }
  106. })
  107. },
  108. inputTem:function(e){
  109. this.setData({temName:e.detail.value})
  110. },
  111. confirmTem:function(e){
  112. let data={
  113. approvalTemplate:{
  114. name:this.data.temName,
  115. type:1,
  116. dataType:0
  117. },
  118. approvalTemplateDetailList:this.data.templateDetailList,
  119. method:"POST"
  120. }
  121. UTIL.httpRequest(API.URL_POST_MOBILEADD,data,{
  122. success: (res) => {
  123. if (res.code == API.SUCCESS_CODE) {
  124. let list = this.data.templateList
  125. list.push(res.data)
  126. this.setData({
  127. temId:res.data.id,
  128. templateList:list,
  129. temName:"",
  130. showPopup:false
  131. });
  132. }
  133. }
  134. })
  135. },
  136. cancelTem:function(e){
  137. this.setData({temName:"",showPopup:false});
  138. },
  139. upItem:function(e){
  140. let index = e.currentTarget.dataset.id
  141. let item = this.data.templateDetailList[index]
  142. let list = this.data.templateDetailList
  143. if(index>0&&index<=list.length){
  144. list.splice(index,1)
  145. list.splice(index-1,0,item)
  146. for(let i = 0;i< list.length;i++){
  147. list[i].name = i+1
  148. }
  149. this.setData({templateDetailList:list});
  150. }
  151. },
  152. downItem:function(e){
  153. let index = e.currentTarget.dataset.id
  154. let item = this.data.templateDetailList[index]
  155. let list = this.data.templateDetailList
  156. if(index>=0&&index<list.length){
  157. list.splice(index,1)
  158. list.splice(index+1,0,item)
  159. for(let i = 0;i< list.length;i++){
  160. list[i].name = i+1
  161. }
  162. this.setData({templateDetailList:list});
  163. }
  164. },
  165. getApprovalItemList:function(){
  166. let data={
  167. dataType:0,
  168. pageNum:1,
  169. pageSize:50
  170. }
  171. UTIL.httpRequest(API.URL_GET_TEMPLATELIST, data, {
  172. success: (res) => {
  173. if (res.code == API.SUCCESS_CODE) {
  174. this.setData({templateList:res.rows});
  175. if(res.total>0){
  176. let d = {
  177. templateId : res.rows[0].id,
  178. orderByColumn:"id",
  179. isAsc:"asc"
  180. }
  181. UTIL.httpRequest(API.URL_GET_TEMPLATEDETAIL, d, {
  182. success: (r) => {
  183. if (r.code == API.SUCCESS_CODE) {
  184. this.setData({templateDetailList:r.rows});
  185. let list = []
  186. r.rows.map(rr => {
  187. list.push(rr.userId+"")
  188. })
  189. this.setData({result:list})
  190. }
  191. }
  192. })
  193. }
  194. }
  195. }
  196. })
  197. },
  198. chooseTemplate:function(e){
  199. let data = {
  200. templateId : e.currentTarget.dataset.id,
  201. orderByColumn:"id",
  202. isAsc:"asc"
  203. }
  204. UTIL.httpRequest(API.URL_GET_TEMPLATEDETAIL, data, {
  205. success: (res) => {
  206. if (res.code == API.SUCCESS_CODE) {
  207. this.setData({templateDetailList:res.rows});
  208. this.closeBox();
  209. }
  210. }
  211. })
  212. },
  213. deleteTemplate:function(e){
  214. let ids = [e.currentTarget.dataset.id]
  215. let url = API.URL_GET_MOBILEREMOVE+ids
  216. let _this = this
  217. wx.request({
  218. url,
  219. method:"GET",
  220. timeout: 60000,
  221. header: {
  222. 'Authorization':'Bearer '+getApp().globalData.userInfo.token
  223. },
  224. success: function (response) {
  225. _this.getApprovalItemList()
  226. }
  227. })
  228. },
  229. townList:function(){
  230. let _this = this
  231. let url = API.URL_GET_TOWNINFOBYDEPTID+0
  232. wx.request({
  233. url,
  234. method:"GET",
  235. timeout: 60000,
  236. header: {
  237. 'Authorization':'Bearer '+getApp().globalData.userInfo.token
  238. },
  239. success: function (response) {
  240. let d = {
  241. deptId:response.data.data.deptId,
  242. deptLevel:3
  243. }
  244. UTIL.httpRequest(API.URL_GET_USERLIST,d,{
  245. success: (res) => {
  246. if (res.code == API.SUCCESS_CODE) {
  247. console.log(res);
  248. _this.setData({towns:res.rows});
  249. }
  250. }
  251. })
  252. }
  253. })
  254. },
  255. groupList:function(){
  256. let data = {
  257. deptId : this.data.deptId,
  258. deptLevel:1
  259. }
  260. UTIL.httpRequest(API.URL_GET_USERLIST,data ,{
  261. success: (res) => {
  262. if (res.code == API.SUCCESS_CODE) {
  263. this.setData({groups:res.rows});
  264. }
  265. }
  266. })
  267. },
  268. villageList:function(){
  269. let data = {
  270. deptId : this.data.deptId,
  271. deptLevel:2
  272. }
  273. UTIL.httpRequest(API.URL_GET_USERLIST,data ,{
  274. success: (res) => {
  275. if (res.code == API.SUCCESS_CODE) {
  276. this.setData({villages:res.rows});
  277. }
  278. }
  279. })
  280. },
  281. onChange(event) {
  282. let _this = this
  283. this.setData({result:event.detail})
  284. this.setData({templateDetailList:[]})
  285. let list = _this.data.templateDetailList
  286. for (let j in event.detail){
  287. let str = event.detail[j]
  288. for(let i in _this.data.groups){
  289. if(_this.data.groups[i].userId == str){
  290. let sin = _this.data.groups[i]
  291. list.push(sin)
  292. _this.setData({templateDetailList:list})
  293. }
  294. }
  295. for(let i in _this.data.villages){
  296. if(_this.data.villages[i].userId == str){
  297. let sin = _this.data.villages[i]
  298. list.push(sin)
  299. _this.setData({templateDetailList:list})
  300. }
  301. }
  302. for(let i in _this.data.towns){
  303. if(_this.data.towns[i].userId == str){
  304. let sin = _this.data.towns[i]
  305. list.push(sin)
  306. _this.setData({templateDetailList:list})
  307. }
  308. }
  309. }
  310. let li = this.data.templateDetailList
  311. li = li.filter(function(e,i,s){
  312. s[i].name = i+1
  313. return true
  314. })
  315. this.setData({templateDetailList:li})
  316. },
  317. back:function(){
  318. wx.navigateBack({
  319. delta: 1
  320. })
  321. },
  322. save:function(){
  323. let _this = this
  324. let list = this.data.templateDetailList
  325. list = list.filter(function(e,i,s){
  326. s[i].name = i+1
  327. return true
  328. })
  329. if(this.data.temId==""||this.data.temId==null){
  330. let data={
  331. approvalTemplate:{
  332. name:this.data.temName,
  333. type:1,
  334. dataType:1
  335. },
  336. approvalTemplateDetailList:list,
  337. method:"POST"
  338. }
  339. UTIL.httpRequest(API.URL_POST_MOBILEADD,data,{
  340. success: (res) => {
  341. if (res.code == API.SUCCESS_CODE) {
  342. let list = this.data.templateList
  343. list.push(res.data)
  344. this.setData({
  345. temId:res.data.id,
  346. templateList:list,
  347. temName:""
  348. });
  349. let item_ = this.data.item
  350. item_.templateId = res.data.id
  351. item_.method = "POST"
  352. UTIL.httpRequest(API.URL_POST_APPROVALITEMSEDIT,item_,{
  353. success: (res) => {
  354. if (res.code == API.SUCCESS_CODE) {
  355. wx.showToast({
  356. title: "暂存成功!",
  357. duration: 2000,
  358. icon:"success"
  359. })
  360. }
  361. }
  362. })
  363. }
  364. }
  365. })
  366. }else{
  367. let url = API.URL_POST_TEMPLATEEDIT
  368. wx.request({
  369. url,
  370. data: list,
  371. method:"POST",
  372. timeout: 60000,
  373. header: {
  374. 'Authorization':'Bearer '+getApp().globalData.userInfo.token
  375. },
  376. success: function (response) {
  377. wx.showToast({
  378. title: "暂存成功!",
  379. duration: 2000,
  380. icon:"success"
  381. })
  382. },
  383. })
  384. }
  385. },
  386. submit:function(){
  387. let _this = this
  388. if(this.data.temId==""||this.data.temId==null){
  389. let data={
  390. approvalTemplate:{
  391. name:this.data.temName,
  392. type:1,
  393. dataType:1
  394. },
  395. approvalTemplateDetailList:this.data.templateDetailList,
  396. method:"POST"
  397. }
  398. UTIL.httpRequest(API.URL_POST_MOBILEADD,data,{
  399. success: (res) => {
  400. if (res.code == API.SUCCESS_CODE) {
  401. let list = this.data.templateList
  402. list.push(res.data)
  403. this.setData({
  404. temId:res.data.id,
  405. templateList:list,
  406. temName:""
  407. });
  408. let item_ = this.data.item
  409. item_.templateId = res.data.id
  410. item_.method = "POST"
  411. UTIL.httpRequest(API.URL_POST_APPROVALITEMSEDIT,item_,{
  412. success: (res) => {
  413. if (res.code == API.SUCCESS_CODE) {
  414. _this.requestSubmit()
  415. }
  416. }
  417. })
  418. }
  419. }
  420. })
  421. }else{
  422. let url = API.URL_POST_TEMPLATEEDIT
  423. wx.request({
  424. url,
  425. data: _this.data.templateDetailList,
  426. method:"POST",
  427. timeout: 60000,
  428. header: {
  429. 'Authorization':'Bearer '+getApp().globalData.userInfo.token
  430. },
  431. success: function (response) {
  432. _this.requestSubmit()
  433. },
  434. })
  435. }
  436. },
  437. requestSubmit:function(){
  438. let url = API.URL_POST_APPROVALITEMSSUBMIT+this.data.item.id+"/"+this.data.item.templateId
  439. wx.request({
  440. url,
  441. method:"POST",
  442. timeout: 60000,
  443. header: {
  444. 'Authorization':'Bearer '+getApp().globalData.userInfo.token
  445. },
  446. success: function (r) {
  447. wx.showToast({
  448. title: "提交成功!",
  449. duration: 2000,
  450. icon:"success"
  451. })
  452. },
  453. })
  454. },
  455. openBox:function(){
  456. var that = this ;
  457. that.setData({
  458. show: true,
  459. })
  460. },
  461. closeBox:function(){
  462. var that = this ;
  463. that.setData({
  464. show: false
  465. })
  466. },
  467. showPopup() {
  468. this.setData({
  469. showPopup: true,
  470. temName:""
  471. });
  472. },
  473. onClose() {
  474. this.setData({ showPopup: false});
  475. },
  476. /**
  477. * 生命周期函数--监听页面初次渲染完成
  478. */
  479. onReady() {
  480. },
  481. /**
  482. * 生命周期函数--监听页面显示
  483. */
  484. onShow() {
  485. },
  486. /**
  487. * 生命周期函数--监听页面隐藏
  488. */
  489. onHide() {
  490. },
  491. /**
  492. * 生命周期函数--监听页面卸载
  493. */
  494. onUnload() {
  495. },
  496. /**
  497. * 页面相关事件处理函数--监听用户下拉动作
  498. */
  499. onPullDownRefresh() {
  500. },
  501. /**
  502. * 页面上拉触底事件的处理函数
  503. */
  504. onReachBottom() {
  505. },
  506. /**
  507. * 用户点击右上角分享
  508. */
  509. onShareAppMessage() {
  510. }
  511. })