微信小程序
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

approval.js 12 KiB

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