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

list.js 13 KiB

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