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

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