微信小程序
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.

477 lines
13 KiB

  1. // pages/bank/bank.js
  2. import * as UTIL from '../../utils/util.js';
  3. import * as API from '../../utils/API.js';
  4. let EVN_CONFIG = require('../../env/env');
  5. const app = getApp();
  6. Page({
  7. /**
  8. * 页面的初始数据
  9. */
  10. data: {
  11. isIPX: app.globalData.isIPX,
  12. list:[],
  13. isLoading:false,
  14. pageNums:1,
  15. scrollHeight:"",
  16. name:"",
  17. showUpload:false,
  18. uploadOptions:[],
  19. fileList:[],
  20. showPopup:false,
  21. showPopupDel:false,
  22. showRelevance:false,
  23. relevanceList:[],
  24. fileEvent:{},
  25. itemId:"",
  26. contractionId:"",
  27. showAdd:true
  28. },
  29. goAdd(){
  30. wx.navigateTo({
  31. url: 'list/list',
  32. })
  33. },
  34. back:function(){
  35. wx.navigateBack({
  36. delta: 1
  37. })
  38. },
  39. /**
  40. * 生命周期函数--监听页面加载
  41. */
  42. onLoad(options) {
  43. var that = this;
  44. let qu = wx.createSelectorQuery()
  45. qu.select("#top_view").boundingClientRect()
  46. qu.select("#top_ban").boundingClientRect()
  47. qu.exec(res => {
  48. that.setData({
  49. scrollHeight:wx.getSystemInfoSync().windowHeight-res[0].height-res[0].top
  50. })
  51. })
  52. },
  53. /**
  54. * 生命周期函数--监听页面初次渲染完成
  55. */
  56. onReady() {
  57. this.getList();
  58. //获取附件字典
  59. UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'common_attach', {method:'GET'}, {
  60. success: (res) => {
  61. if(res.data.length>0){
  62. this.setData({
  63. uploadOptions:res.data,
  64. })
  65. }
  66. }
  67. })
  68. },
  69. getList:function(){
  70. let _this = this
  71. let params = {
  72. pageNum:this.data.pageNums,
  73. pageSize:10,
  74. name:this.data.name
  75. }
  76. UTIL.httpRequest(API.URL_GET_CONTRACTLIST,params,{
  77. success: (res) => {
  78. if(res.code == 200){
  79. if(this.data.pageNums!=1&&this.data.list.length<res.total){
  80. res.rows.map((rr,index) => {
  81. rr.totalAmount = Number(rr.totalAmount ).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, ($0, $1) => {
  82. return $1 + ","; }).replace(/\.$/, "")
  83. if(index==(res.rows.length-1)){
  84. let lists = this.data.list.concat(res.rows)
  85. _this.setData({list:lists})
  86. }
  87. })
  88. }else if(this.data.pageNums==1){
  89. res.rows.map((rr,index) => {
  90. rr.totalAmount = Number(rr.totalAmount ).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, ($0, $1) => {
  91. return $1 + ","; }).replace(/\.$/, "")
  92. if(index==(res.rows.length-1)){
  93. _this.setData({list:res.rows})
  94. }
  95. })
  96. }
  97. }else{
  98. UTIL.showToastNoneIcon(res.msg);
  99. }
  100. }
  101. })
  102. },
  103. paging(){
  104. this.setData({
  105. pageNums:this.data.pageNums+1,
  106. })
  107. this.getList();
  108. },
  109. goSearch(e){
  110. this.setData({name:e.detail})
  111. this.getList();
  112. },
  113. goUpdate(e){
  114. this.setData({
  115. "itemId":"",
  116. "itemIndex":"",
  117. "contractionId":""
  118. });
  119. wx.navigateTo({
  120. url: '/pages/contract/add/add?id='+e.currentTarget.dataset.id,
  121. })
  122. },
  123. addAssets(e){
  124. wx.navigateTo({
  125. url: '/pages/contractAssets/fixedAssets?id='+this.data.contractionId,
  126. })
  127. },
  128. delete(e){
  129. wx.showModal({
  130. title: '提示',
  131. content: '是否删除',
  132. success (res) {
  133. if (res.confirm) {
  134. UTIL.httpRequest(API.URL_GET_CONTRACTDELETE+e.currentTarget.dataset.id , {method:'GET'}, {
  135. success: (res) => {
  136. if(res.code==200){
  137. let new_list = this.data.list
  138. new_list.splice(e.currentTarget.dataset.index,1)
  139. this.setData({'list':new_list})
  140. UTIL.showToastNoneIcon('删除成功!');
  141. }else{
  142. UTIL.showToastNoneIcon('删除失败!');
  143. }
  144. }
  145. })
  146. } else if (res.cancel) {
  147. console.log('用户点击取消')
  148. }
  149. }
  150. })
  151. },
  152. cancelTemDel:function(e){
  153. this.setData({
  154. "itemId":"",
  155. "itemIndex":"",
  156. "showPopupDel":false
  157. });
  158. },
  159. confirmTemDel:function(e){
  160. this.setData({
  161. "showPopupDel":false
  162. });
  163. },
  164. relevanceBack(){
  165. let params = {
  166. contractionId:this.data.contractionId
  167. }
  168. UTIL.httpRequest(API.URL_GET_ASSETLIST, params, {
  169. success: (rr) => {
  170. this.setData({
  171. 'revelanceList':rr.rows,
  172. 'showRelevance':true
  173. })
  174. },
  175. })
  176. },
  177. terminate(e){
  178. wx.showModal({
  179. title: '提示',
  180. content: '是否终止',
  181. success (res) {
  182. if (res.confirm) {
  183. UTIL.httpRequest(API.URL_GET_TERMINATEINFO+ e.currentTarget.dataset.id, {method:'GET'}, {
  184. success: (res) => {
  185. if(res.code==200){
  186. let list = this.data.list
  187. list[e.currentTarget.dataset.index].contractionStatus = '3'
  188. this.setData({'list':list})
  189. UTIL.showToastNoneIcon('终止成功!');
  190. }else{
  191. UTIL.showToastNoneIcon('终止失败!: '+res.msg);
  192. }
  193. }
  194. })
  195. } else if (res.cancel) {
  196. console.log('用户点击取消')
  197. }
  198. }
  199. })
  200. },
  201. cancel(e){
  202. wx.showModal({
  203. title: '提示',
  204. content: '是否撤销',
  205. success (res) {
  206. if (res.confirm) {
  207. UTIL.httpRequest(API.URL_GET_CANCELINFO+ e.currentTarget.dataset.id, {method:'GET'}, {
  208. success: (res) => {
  209. if(res.code==200){
  210. let list = this.data.list
  211. list[e.currentTarget.dataset.index].contractionStatus = '2'
  212. this.setData({'list':list})
  213. UTIL.showToastNoneIcon('撤销成功!');
  214. }else{
  215. UTIL.showToastNoneIcon('撤销失败!: '+res.msg);
  216. }
  217. }
  218. })
  219. } else if (res.cancel) {
  220. console.log('用户点击取消')
  221. }
  222. }
  223. })
  224. },
  225. relevanceDelete(e){
  226. UTIL.httpRequest(API.URL_GET_ASSETREMOVE+ e.currentTarget.dataset.id, {method:'GET'}, {
  227. success: (res) => {
  228. if(res.code==200){
  229. let new_list = this.data.revelanceList
  230. new_list.splice(e.currentTarget.dataset.index,1)
  231. this.setData({'revelanceList':new_list})
  232. UTIL.showToastNoneIcon('删除成功!');
  233. }else{
  234. UTIL.showToastNoneIcon('删除失败!');
  235. }
  236. }
  237. })
  238. },
  239. relevance(e){
  240. let params = {
  241. contractionId:e.currentTarget.dataset.id
  242. }
  243. console.log(e.currentTarget.dataset.contractionstatus);
  244. if (e.currentTarget.dataset.contractionstatus != 1) {
  245. this.setData({showAdd:false})
  246. }else{
  247. this.setData({showAdd:true})
  248. }
  249. UTIL.httpRequest(API.URL_GET_ASSETLIST, params, {
  250. success: (rr) => {
  251. this.setData({
  252. 'revelanceList':rr.rows,
  253. 'showRelevance':true,
  254. 'contractionId':e.currentTarget.dataset.id
  255. })
  256. }
  257. })
  258. },
  259. upload(e){
  260. this.setData({itemId:e.currentTarget.dataset.id});
  261. this.asyncFun(e.currentTarget.dataset.id)
  262. this.setData({"fileList":[]})
  263. },
  264. asyncFun(id){
  265. let uploadList = this.data.uploadOptions
  266. let newList = []
  267. let _this = this
  268. uploadList.map( res => {
  269. let oData = {
  270. tableId: id,
  271. tableName: "t_contraction_info", //上传表
  272. bizPath: "contraction",
  273. fileType: res.dictValue, //附件类型 1原始发票 2会议纪要 3会议照片 4 参会人员签字
  274. method:'GET'
  275. }
  276. UTIL.httpRequest(API.URL_GET_ATTACHMENTLIST, oData, {
  277. success: (rr) => {
  278. if(rr.code==200&&rr.rows.length>0){
  279. rr.rows.map((rrr,index) => {
  280. rrr.url = wx.getStorageSync('dressCode') + rrr.fileUrl
  281. if(index==rr.rows.length-1){
  282. newList.push(Object.assign({},res,{"list":rr.rows}))
  283. _this.setData({"fileList":_this.data.fileList.concat(newList)});
  284. _this.setData({"showUpload":true})
  285. }
  286. })
  287. }else{
  288. let newuploadList = uploadList
  289. newuploadList.map(rd => {
  290. rd.list = newList
  291. })
  292. _this.setData({"fileList":newuploadList});
  293. _this.setData({"showUpload":true})
  294. }
  295. }
  296. })
  297. })
  298. },
  299. closeBox(){
  300. this.setData({"showUpload":false})
  301. this.setData({"showRelevance":false})
  302. },
  303. deleteImg(event){
  304. console.log(event);
  305. this.setData({"fileEvent":event})
  306. this.setData({"showPopup":true});
  307. },
  308. cancelTem:function(e){
  309. this.setData({"fileEvent":"{}"});
  310. this.setData({"showPopup":false});
  311. },
  312. confirmTem:function(e){
  313. let event = this.data.fileEvent
  314. UTIL.httpRequest(API.URL_GET_GETFILEREMOVE+event.detail.file.id , {method:'GET'}, {
  315. success: (res) => {
  316. if(res.code==200){
  317. let ll = this.data.fileList
  318. var jsonlist = ll[event.target.dataset.idx].list;
  319. jsonlist.splice(event.detail.index, 1)
  320. ll[event.target.dataset.idx].list = jsonlist
  321. this.setData({"fileList":ll})
  322. this.setData({showPopup:false});
  323. wx.showToast({
  324. title: '删除成功!',
  325. icon: 'success',
  326. duration: 2000,
  327. })
  328. }
  329. }
  330. })
  331. },
  332. uploadFile(uploadFile,event) {
  333. let _this = this
  334. return new Promise((resolve, reject) => {
  335. wx.uploadFile({
  336. url: wx.getStorageSync('dressCode')+API.URL_GET_UPLOAD,
  337. filePath: uploadFile.file.file.url,
  338. name: 'file',
  339. header: {
  340. "Content-Type": "multipart/form-data",//记得设置
  341. "chartset":"utf-8",
  342. 'Authorization':'Bearer '+getApp().globalData.userInfo.token
  343. },
  344. formData:uploadFile,
  345. success: (res) => {
  346. res.data = JSON.parse(res.data);
  347. if(res.statusCode == 200){
  348. let files = _this.data.fileList
  349. // let fName = res.data.fileUrl.split('/')
  350. // let fLength = fName.length
  351. files[event.currentTarget.dataset.idx].list.push({
  352. // "fileName": fName[fLength-1],
  353. "fileType": "0",
  354. "fileUrl":res.data.fileUrl ,
  355. "id": res.data.id,
  356. "tableId": 6,
  357. "url":wx.getStorageSync('dressCode')+res.data.fileUrl
  358. })
  359. _this.setData({"fileList":files})
  360. wx.hideLoading()
  361. }
  362. },
  363. fail: (err) => {
  364. //上传失败:修改pedding为reject
  365. reject(err)
  366. }
  367. });
  368. })
  369. },
  370. afterRead(event) {
  371. let _this = this
  372. wx.showLoading({
  373. title: '上传中...'
  374. })
  375. let fileForm={
  376. file: event.detail,
  377. fileType:event.currentTarget.dataset.idx,
  378. tableName: "t_contraction_info", //上传表
  379. bizPath: "contraction", //上传目录
  380. tableId:_this.data.itemId
  381. }
  382. this.uploadFile(fileForm,event)
  383. },
  384. lookDown(file,detail){
  385. // 获取指定字符串最后一次出现的位置,返回index
  386. var index1 = file.detail.url.lastIndexOf('.');
  387. // substr(start, length) 抽取从start下标开始的length个字符,返回新的字符串;
  388. var style = file.detail.url.substr(index1 + 1)
  389. //判断图片类型,不需要下载,不做处理
  390. if(style=='png'||style=='jpg'||style=='jpeg'||style=='bmp'||style=='gif'||style=='webp'||style=='psd'||style== 'svg'||style=='tiff'){
  391. //判断非图片类型
  392. }else{
  393. wx.downloadFile({
  394. url: file.detail.url,
  395. success(data){
  396. wx.openDocument({
  397. filePath: data.tempFilePath,
  398. fileType: style,
  399. showMenu:true,
  400. success(res){
  401. }
  402. })
  403. }
  404. })
  405. }
  406. },
  407. /**
  408. * 生命周期函数--监听页面显示
  409. */
  410. onShow() {
  411. if(this.data.contractionId!=""&&this.data.contractionId!=null){
  412. this.relevanceBack()
  413. }else{
  414. let _this = this
  415. let params = {
  416. pageNum:1,
  417. pageSize:10,
  418. name:this.data.name
  419. }
  420. UTIL.httpRequest(API.URL_GET_CONTRACTLIST,params,{
  421. success: (res) => {
  422. if(res.code == 200){
  423. res.rows.map((rr,index) => {
  424. rr.totalAmount = Number(rr.totalAmount ).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, ($0, $1) => {
  425. return $1 + ","; }).replace(/\.$/, "")
  426. if(index==(res.rows.length-1)){
  427. _this.setData({list:res.rows})
  428. }
  429. })
  430. }else{
  431. UTIL.showToastNoneIcon(res.msg);
  432. }
  433. }
  434. })
  435. }
  436. },
  437. /**
  438. * 生命周期函数--监听页面隐藏
  439. */
  440. onHide() {
  441. },
  442. /**
  443. * 生命周期函数--监听页面卸载
  444. */
  445. onUnload() {
  446. },
  447. /**
  448. * 页面相关事件处理函数--监听用户下拉动作
  449. */
  450. onPullDownRefresh() {
  451. },
  452. /**
  453. * 页面上拉触底事件的处理函数
  454. */
  455. onReachBottom() {
  456. },
  457. /**
  458. * 用户点击右上角分享
  459. */
  460. onShareAppMessage() {
  461. }
  462. })