微信小程序
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

contract.js 7.9 KiB

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