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

309 lines
7.7 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. fileEvent:{},
  26. itemId:""
  27. },
  28. goAdd(){
  29. wx.navigateTo({
  30. url: 'add/add',
  31. })
  32. },
  33. back:function(){
  34. wx.navigateBack({
  35. delta: 1
  36. })
  37. },
  38. /**
  39. * 生命周期函数--监听页面加载
  40. */
  41. onLoad(options) {
  42. var that = this;
  43. let qu = wx.createSelectorQuery()
  44. qu.select("#top_view").boundingClientRect()
  45. qu.select("#top_ban").boundingClientRect()
  46. qu.exec(res => {
  47. that.setData({
  48. scrollHeight:wx.getSystemInfoSync().windowHeight-res[0].height-res[0].top
  49. })
  50. })
  51. },
  52. /**
  53. * 生命周期函数--监听页面初次渲染完成
  54. */
  55. onReady() {
  56. this.getList();
  57. //获取附件字典
  58. UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'common_attach', {method:'GET'}, {
  59. success: (res) => {
  60. if(res.data.length>0){
  61. this.setData({
  62. uploadOptions:res.data,
  63. })
  64. }
  65. }
  66. })
  67. },
  68. getList:function(){
  69. let params = {
  70. pageNum:this.data.pageNums,
  71. pageSize:10,
  72. name:this.data.name
  73. }
  74. UTIL.httpRequest(API.URL_GET_CONTRACTLIST,params,{
  75. success: (res) => {
  76. console.log(res);
  77. if(res.code == 200){
  78. if(this.data.pageNums!=1&&this.data.list.length<res.total){
  79. let lists = this.data.list.concat(res.rows)
  80. this.setData({list:lists})
  81. }else if(this.data.pageNums==1){
  82. this.setData({list:res.rows})
  83. }
  84. }else{
  85. UTIL.showToastNoneIcon(res.msg);
  86. }
  87. }
  88. })
  89. },
  90. paging(){
  91. this.setData({
  92. pageNums:this.data.pageNums+1,
  93. })
  94. this.getList();
  95. },
  96. goSearch(e){
  97. this.setData({name:e.detail})
  98. this.getList();
  99. },
  100. goUpdate(e){
  101. wx.navigateTo({
  102. url: '/pages/contract/add/add?id='+e.currentTarget.dataset.id,
  103. })
  104. },
  105. delete(e){
  106. UTIL.httpRequest(API.URL_GET_CONTRACTDELETE + e.currentTarget.dataset.id, {method:'GET'}, {
  107. success: (res) => {
  108. if(res.code==200){
  109. let new_list = this.data.list
  110. console.log(e.currentTarget.dataset.index);
  111. new_list.splice(e.currentTarget.dataset.index,1)
  112. this.setData({'list':new_list})
  113. UTIL.showToastNoneIcon('删除成功!');
  114. }else{
  115. UTIL.showToastNoneIcon('删除失败!');
  116. }
  117. }
  118. })
  119. },
  120. upload(e){
  121. this.setData({itemId:e.currentTarget.dataset.id});
  122. this.asyncFun(e.currentTarget.dataset.id)
  123. this.setData({"fileList":[]})
  124. },
  125. asyncFun(id){
  126. let uploadList = this.data.uploadOptions
  127. let newList = []
  128. let _this = this
  129. uploadList.map( res => {
  130. let oData = {
  131. tableId: id,
  132. tableName: "t_contraction_info", //上传表
  133. bizPath: "contraction",
  134. fileType: res.dictValue, //附件类型 1原始发票 2会议纪要 3会议照片 4 参会人员签字
  135. method:'GET'
  136. }
  137. UTIL.httpRequest(API.URL_GET_ATTACHMENTLIST, oData, {
  138. success: (rr) => {
  139. console.log(rr.rows);
  140. rr.rows.map((rrr,index) => {
  141. rrr.url = URL_PREFIX + rrr.fileUrl
  142. if(index==rr.rows.length-1){
  143. newList.push(Object.assign({},res,{"list":rr.rows}))
  144. _this.setData({"fileList":_this.data.fileList.concat(newList)});
  145. _this.setData({"showUpload":true})
  146. }
  147. })
  148. },
  149. fail:(rr) =>{
  150. console.log(rr);
  151. },
  152. complete:(rr) => {
  153. console.log(rr);
  154. }
  155. })
  156. })
  157. },
  158. closeBox(){
  159. this.setData({"showUpload":false})
  160. },
  161. deleteImg(event){
  162. this.setData({"fileEvent":event})
  163. this.setData({"showPopup":true});
  164. },
  165. cancelTem:function(e){
  166. this.setData({"fileEvent":"{}"});
  167. this.setData({"showPopup":false});
  168. },
  169. confirmTem:function(e){
  170. let event = this.data.fileEvent
  171. console.log(event);
  172. UTIL.httpRequest(API.URL_GET_GETFILEREMOVE+event.detail.file.id , {method:'GET'}, {
  173. success: (res) => {
  174. if(res.code==200){
  175. let ll = this.data.fileList
  176. var jsonlist = ll[event.target.dataset.idx].list;
  177. jsonlist.splice(event.detail.index, 1)
  178. ll[event.target.dataset.idx].list = jsonlist
  179. this.setData({"fileList":ll})
  180. this.setData({showPopup:false});
  181. wx.showToast({
  182. title: '删除成功!',
  183. icon: 'success',
  184. duration: 2000,
  185. })
  186. }
  187. }
  188. })
  189. },
  190. uploadFile(uploadFile,event) {
  191. let _this = this
  192. return new Promise((resolve, reject) => {
  193. wx.uploadFile({
  194. url: API.URL_GET_UPLOAD,
  195. filePath: uploadFile.file.file[0].url,
  196. name: 'file',
  197. header: {
  198. "Content-Type": "multipart/form-data",//记得设置
  199. "chartset":"utf-8",
  200. 'Authorization':'Bearer '+getApp().globalData.userInfo.token
  201. },
  202. formData:uploadFile,
  203. success: (res) => {
  204. res.data = JSON.parse(res.data);
  205. if(res.statusCode == 200){
  206. let files = _this.data.fileList
  207. let fName = res.data.fileUrl.split('/')
  208. let fLength = fName.length
  209. files[event.currentTarget.dataset.idx].list.push({
  210. "fileName": fName[fLength-1],
  211. "fileType": "0",
  212. "fileUrl":res.data.fileUrl ,
  213. "id": res.data.id,
  214. "tableId": 6,
  215. "url":URL_PREFIX+res.data.fileUrl
  216. })
  217. _this.setData({"fileList":files})
  218. wx.hideLoading()
  219. }
  220. },
  221. fail: (err) => {
  222. //上传失败:修改pedding为reject
  223. reject(err)
  224. }
  225. });
  226. })
  227. },
  228. afterRead(event) {
  229. let _this = this
  230. wx.showLoading({
  231. title: '上传中...'
  232. })
  233. let fileForm={
  234. file: event.detail,
  235. fileType:event.currentTarget.dataset.idx,
  236. tableName: "t_contraction_info", //上传表
  237. bizPath: "contraction", //上传目录
  238. tableId:_this.data.itemId
  239. }
  240. this.uploadFile(fileForm,event)
  241. },
  242. lookDown(file,detail){
  243. // 获取指定字符串最后一次出现的位置,返回index
  244. var index1 = file.detail.url.lastIndexOf('.');
  245. // substr(start, length) 抽取从start下标开始的length个字符,返回新的字符串;
  246. var style = file.detail.url.substr(index1 + 1)
  247. //判断图片类型,不需要下载,不做处理
  248. if(style=='png'||style=='jpg'||style=='jpeg'||style=='bmp'||style=='gif'||style=='webp'||style=='psd'||style== 'svg'||style=='tiff'){
  249. //判断非图片类型
  250. }else{
  251. wx.downloadFile({
  252. url: file.detail.url,
  253. success(data){
  254. wx.openDocument({
  255. filePath: data.tempFilePath,
  256. fileType: style,
  257. showMenu:true,
  258. success(res){
  259. }
  260. })
  261. }
  262. })
  263. }
  264. },
  265. /**
  266. * 生命周期函数--监听页面显示
  267. */
  268. onShow() {
  269. },
  270. /**
  271. * 生命周期函数--监听页面隐藏
  272. */
  273. onHide() {
  274. },
  275. /**
  276. * 生命周期函数--监听页面卸载
  277. */
  278. onUnload() {
  279. },
  280. /**
  281. * 页面相关事件处理函数--监听用户下拉动作
  282. */
  283. onPullDownRefresh() {
  284. },
  285. /**
  286. * 页面上拉触底事件的处理函数
  287. */
  288. onReachBottom() {
  289. },
  290. /**
  291. * 用户点击右上角分享
  292. */
  293. onShareAppMessage() {
  294. }
  295. })